| author | |
| committer | |
| log | f3d3fe4569274c5ee6f3c5435809330bef494a2d |
| tree | fe149d390e95a8f7e3154444916cb99ea5a36e91 |
| parent | aa2b25d29b4b13ef1c2ee80e1afade1635de9ca8 |
| signature | Signed by PGP key B5690EEEBB952194 |
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>16 files changed, 30 insertions(+), 26 deletions(-)
apps/web/src/components/CustomSnoozeDialog.tsx+1-1| ... | ... | @@ -94,7 +94,7 @@ function CustomSnoozeDialog() { |
| 94 | 94 | <DialogTitle>Custom snooze</DialogTitle> |
| 95 | 95 | <DialogDescription>Choose when snoozed threads return to your inbox.</DialogDescription> |
| 96 | 96 | </DialogHeader> |
| 97 | <DialogPanel className="flex flex-col gap-4 text-base sm:text-sm"> | |
| 97 | <DialogPanel className="text-base sm:text-sm"> | |
| 98 | 98 | <Tabs.Root |
| 99 | 99 | value={mode} |
| 100 | 100 | onValueChange={(value) => { |
apps/web/src/components/GitActionsControl.tsx+1-1| ... | ... | @@ -1882,7 +1882,7 @@ export default function GitActionsControl({ |
| 1882 | 1882 | <DialogTitle>{COMMIT_DIALOG_TITLE}</DialogTitle> |
| 1883 | 1883 | <DialogDescription>{COMMIT_DIALOG_DESCRIPTION}</DialogDescription> |
| 1884 | 1884 | </DialogHeader> |
| 1885 | <DialogPanel className="space-y-4"> | |
| 1885 | <DialogPanel> | |
| 1886 | 1886 | <div className="space-y-3 rounded-xl bg-zinc-25 p-3 text-sm ring-1 ring-black/5 dark:bg-white/[0.035] dark:ring-white/5"> |
| 1887 | 1887 | <div className="grid grid-cols-[auto_1fr] items-center gap-x-2 gap-y-1"> |
| 1888 | 1888 | <span className="text-muted-foreground">Branch</span> |
apps/web/src/components/LegacySidebar.tsx+2-2| ... | ... | @@ -2514,7 +2514,7 @@ const SidebarProjectItem = memo(function SidebarProjectItem(props: SidebarProjec |
| 2514 | 2514 | : "Update the project title."} |
| 2515 | 2515 | </DialogDescription> |
| 2516 | 2516 | </DialogHeader> |
| 2517 | <DialogPanel className="space-y-4"> | |
| 2517 | <DialogPanel> | |
| 2518 | 2518 | <div className="grid gap-1.5"> |
| 2519 | 2519 | <span className="text-xs font-medium text-foreground">Project title</span> |
| 2520 | 2520 | <Input |
| ... | ... | @@ -2561,7 +2561,7 @@ const SidebarProjectItem = memo(function SidebarProjectItem(props: SidebarProjec |
| 2561 | 2561 | : "Choose how this project should be grouped in the sidebar."} |
| 2562 | 2562 | </DialogDescription> |
| 2563 | 2563 | </DialogHeader> |
| 2564 | <DialogPanel className="space-y-4"> | |
| 2564 | <DialogPanel> | |
| 2565 | 2565 | <div className="grid gap-1.5"> |
| 2566 | 2566 | <span className="text-xs font-medium text-foreground">Grouping rule</span> |
| 2567 | 2567 | <Select |
apps/web/src/components/PullRequestThreadDialog.tsx+1-1| ... | ... | @@ -205,7 +205,7 @@ export function PullRequestThreadDialog({ |
| 205 | 205 | the draft thread in the main repo or in a dedicated worktree. |
| 206 | 206 | </DialogDescription> |
| 207 | 207 | </DialogHeader> |
| 208 | <DialogPanel className="space-y-4"> | |
| 208 | <DialogPanel> | |
| 209 | 209 | <label className="grid gap-1.5"> |
| 210 | 210 | <span className="text-xs font-medium text-foreground capitalize"> |
| 211 | 211 | {terminology.singular} |
apps/web/src/components/chat/ProposedPlanCard.tsx+1-1| ... | ... | @@ -223,7 +223,7 @@ export const ProposedPlanCard = memo(function ProposedPlanCard({ |
| 223 | 223 | Enter a path relative to <code>{workspaceRoot ?? "the workspace"}</code>. |
| 224 | 224 | </DialogDescription> |
| 225 | 225 | </DialogHeader> |
| 226 | <DialogPanel className="space-y-3"> | |
| 226 | <DialogPanel> | |
| 227 | 227 | <label htmlFor={savePathInputId} className="grid gap-1.5"> |
| 228 | 228 | <span className="text-xs font-medium text-foreground">Workspace path</span> |
| 229 | 229 | <Input |
apps/web/src/components/desktop/SshPasswordPromptDialog.tsx+1-1| ... | ... | @@ -164,7 +164,7 @@ function ActiveSshPasswordPrompt({ |
| 164 | 164 | to the local SSH process for this connection attempt and is not saved by T3 Code. |
| 165 | 165 | </DialogDescription> |
| 166 | 166 | </DialogHeader> |
| 167 | <DialogPanel className="space-y-3" scrollFade={false}> | |
| 167 | <DialogPanel scrollFade={false}> | |
| 168 | 168 | <form |
| 169 | 169 | className="space-y-3" |
| 170 | 170 | id={formId} |
apps/web/src/components/pullRequest/LinkPullRequestDialog.tsx+1-1| ... | ... | @@ -208,7 +208,7 @@ function LinkPullRequestDialog({ |
| 208 | 208 | this environment has a project for. |
| 209 | 209 | </DialogDescription> |
| 210 | 210 | </DialogHeader> |
| 211 | <DialogPanel className="space-y-3"> | |
| 211 | <DialogPanel> | |
| 212 | 212 | <Input |
| 213 | 213 | ref={inputRef} |
| 214 | 214 | placeholder="Pull request URL or #42" |
apps/web/src/components/settings/BrowserImportWizard.tsx+12-8| ... | ... | @@ -490,9 +490,11 @@ function ImportingStep() { |
| 490 | 490 | <DialogTitle>Importing cookies</DialogTitle> |
| 491 | 491 | <DialogDescription>This may take a moment.</DialogDescription> |
| 492 | 492 | </DialogHeader> |
| 493 | <DialogPanel className="flex items-center gap-3 py-6"> | |
| 494 | <Spinner size="md" tone="muted" /> | |
| 495 | <span className="text-sm text-muted-foreground">Importing…</span> | |
| 493 | <DialogPanel> | |
| 494 | <div className="flex items-center gap-3 py-2"> | |
| 495 | <Spinner size="md" tone="muted" /> | |
| 496 | <span className="text-sm text-muted-foreground">Importing…</span> | |
| 497 | </div> | |
| 496 | 498 | </DialogPanel> |
| 497 | 499 | </> |
| 498 | 500 | ); |
| ... | ... | @@ -515,11 +517,13 @@ function CheckingStep({ |
| 515 | 517 | : "Checking whether the browser has closed."} |
| 516 | 518 | </DialogDescription> |
| 517 | 519 | </DialogHeader> |
| 518 | <DialogPanel className="flex items-center gap-3 py-6"> | |
| 519 | <Spinner size="md" tone="muted" /> | |
| 520 | <span className="text-sm text-muted-foreground"> | |
| 521 | {check === "fullDiskAccess" ? "Checking access…" : "Checking…"} | |
| 522 | </span> | |
| 520 | <DialogPanel> | |
| 521 | <div className="flex items-center gap-3 py-2"> | |
| 522 | <Spinner size="md" tone="muted" /> | |
| 523 | <span className="text-sm text-muted-foreground"> | |
| 524 | {check === "fullDiskAccess" ? "Checking access…" : "Checking…"} | |
| 525 | </span> | |
| 526 | </div> | |
| 523 | 527 | </DialogPanel> |
| 524 | 528 | </> |
| 525 | 529 | ); |
apps/web/src/components/settings/ConnectionsSettings.tsx+3-3| ... | ... | @@ -828,7 +828,7 @@ const PairingLinkListRow = memo(function PairingLinkListRow({ |
| 828 | 828 | : "Clipboard copy is unavailable here. Manually copy this code into another client."} |
| 829 | 829 | </DialogDescription> |
| 830 | 830 | </DialogHeader> |
| 831 | <DialogPanel className="space-y-4"> | |
| 831 | <DialogPanel> | |
| 832 | 832 | <Textarea |
| 833 | 833 | readOnly |
| 834 | 834 | value={revealValue} |
| ... | ... | @@ -1133,7 +1133,7 @@ const AuthorizedClientsHeaderAction = memo(function AuthorizedClientsHeaderActio |
| 1133 | 1133 | authorized client. |
| 1134 | 1134 | </DialogDescription> |
| 1135 | 1135 | </DialogHeader> |
| 1136 | <DialogPanel className="space-y-5"> | |
| 1136 | <DialogPanel> | |
| 1137 | 1137 | <label className="block"> |
| 1138 | 1138 | <span className="mb-1.5 block text-xs font-medium text-foreground"> |
| 1139 | 1139 | Client label (optional) |
| ... | ... | @@ -3602,7 +3602,7 @@ export function ConnectionsSettings() { |
| 3602 | 3602 | Tailscale to proxy HTTPS traffic to this backend. |
| 3603 | 3603 | </DialogDescription> |
| 3604 | 3604 | </DialogHeader> |
| 3605 | <DialogPanel className="space-y-4"> | |
| 3605 | <DialogPanel> | |
| 3606 | 3606 | <label className="block"> |
| 3607 | 3607 | <span className="text-sm font-medium text-foreground">HTTPS port</span> |
| 3608 | 3608 | <Input |
apps/web/src/components/settings/DeviceHostEditor.tsx+1-1| ... | ... | @@ -72,7 +72,7 @@ export function DeviceHostEditor({ |
| 72 | 72 | Hosts on the same machine are skipped. |
| 73 | 73 | </DialogDescription> |
| 74 | 74 | </DialogHeader> |
| 75 | <DialogPanel className="space-y-4"> | |
| 75 | <DialogPanel> | |
| 76 | 76 | <label className="block space-y-1.5 text-sm"> |
| 77 | 77 | <span>Name</span> |
| 78 | 78 | <Input |
apps/web/src/components/settings/ProjectIconPickerDialog.tsx+1-1| ... | ... | @@ -105,7 +105,7 @@ export function ProjectIconPickerDialog({ |
| 105 | 105 | <DialogTitle>Choose project icon</DialogTitle> |
| 106 | 106 | <DialogDescription>Choose an icon, emoji, or monogram.</DialogDescription> |
| 107 | 107 | </DialogHeader> |
| 108 | <DialogPanel className="flex min-h-0 flex-col gap-4"> | |
| 108 | <DialogPanel className="flex min-h-0 flex-col"> | |
| 109 | 109 | <ToggleGroup |
| 110 | 110 | aria-label="Icon type" |
| 111 | 111 | variant="segmented" |
apps/web/src/components/settings/SettingsPanels.tsx+1-1| ... | ... | @@ -899,7 +899,7 @@ function BackgroundActivityAdvancedDialog({ |
| 899 | 899 | Tune the shared power policy and the background intervals that feed it. |
| 900 | 900 | </DialogDescription> |
| 901 | 901 | </DialogHeader> |
| 902 | <DialogPanel className="space-y-0 px-6 pb-5"> | |
| 902 | <DialogPanel> | |
| 903 | 903 | <div className="overflow-hidden rounded-xl border bg-card text-card-foreground"> |
| 904 | 904 | <div className="flex flex-col gap-3 border-b px-4 py-3 sm:flex-row sm:items-center sm:justify-between"> |
| 905 | 905 | <div className="min-w-0 space-y-1"> |
apps/web/src/components/settings/ThemeImportDialog.tsx+1-1| ... | ... | @@ -427,7 +427,7 @@ export function ThemeImportDialog({ |
| 427 | 427 | <DialogHeader> |
| 428 | 428 | <DialogTitle>Add a theme</DialogTitle> |
| 429 | 429 | </DialogHeader> |
| 430 | <DialogPanel className="space-y-5"> | |
| 430 | <DialogPanel> | |
| 431 | 431 | <ThemeSearchSection |
| 432 | 432 | onInstalled={(themes, context) => { |
| 433 | 433 | onImportedMany(themes, context); |
apps/web/src/components/ui/dialog.tsx+1-1| ... | ... | @@ -171,7 +171,7 @@ function DialogPanel({ |
| 171 | 171 | <ScrollArea scrollFade={scrollFade}> |
| 172 | 172 | <div |
| 173 | 173 | className={cn( |
| 174 | "p-6 in-[[data-slot=dialog-popup]:has([data-slot=dialog-header])]:pt-1 in-[[data-slot=dialog-popup]:has([data-slot=dialog-footer]:not(.border-t))]:pb-1", | |
| 174 | "space-y-4 p-6 in-[[data-slot=dialog-popup]:has([data-slot=dialog-header])]:pt-1 in-[[data-slot=dialog-popup]:has([data-slot=dialog-footer]:not(.border-t))]:pb-1", | |
| 175 | 175 | className, |
| 176 | 176 | )} |
| 177 | 177 | data-slot="dialog-panel" |
apps/web/src/components/usage/UsagePriceOverrides.tsx+1-1| ... | ... | @@ -252,7 +252,7 @@ export function UsagePriceOverrides({ |
| 252 | 252 | Prices apply to all past and future usage on the environments you select. |
| 253 | 253 | </DialogDescription> |
| 254 | 254 | </DialogHeader> |
| 255 | <DialogPanel className="grid gap-4"> | |
| 255 | <DialogPanel> | |
| 256 | 256 | <div className="flex flex-wrap items-center justify-between gap-2"> |
| 257 | 257 | <div className="flex min-w-0 items-center gap-2"> |
| 258 | 258 | <Label id="usage-prices-apply-label" className="shrink-0"> |
scripts/lint-restyle-ceiling.ts+1-1| ... | ... | @@ -8,7 +8,7 @@ import * as NodeURL from "node:url"; |
| 8 | 8 | // components/ui exports are migrated to variants (see vite.config.ts). This gate keeps the |
| 9 | 9 | // count from growing: CI fails when findings exceed the ceiling. Lower the ceiling when you |
| 10 | 10 | // migrate a file, and delete this script when the rule becomes an error. |
| 11 | export const RESTYLE_CEILING = 921; | |
| 11 | export const RESTYLE_CEILING = 899; | |
| 12 | 12 | |
| 13 | 13 | const RULE = "shadcn(no-restyle)"; |
| 14 | 14 |