@assure-one/design-system 1.35.0 → 1.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +52 -0
  2. package/codemods/README.md +155 -12
  3. package/codemods/lib/registry.mjs +5 -0
  4. package/codemods/transforms/cm-07-input-size.mjs +104 -0
  5. package/codemods/transforms/cm-08-search-select-to-combobox.mjs +236 -0
  6. package/codemods/transforms/cm-09-side-drawer-to-sheet.mjs +348 -0
  7. package/codemods/transforms/cm-10-date-picker-value-change.mjs +416 -0
  8. package/codemods/transforms/cm-13-tooltip-delay.mjs +99 -0
  9. package/codemods/transforms/cm-14-hidden-mirrors.mjs +2 -2
  10. package/dist/css/components.css +1 -1
  11. package/dist/css/legacy-aliases.css +25 -1
  12. package/dist/css/shadcn.css +2 -2
  13. package/dist/css/tailwind.css +9 -0
  14. package/dist/css/tokens.css +64 -38
  15. package/dist/design-system-provider-C8UlFe52.d.ts +549 -0
  16. package/dist/icons/index.d.ts +2 -2
  17. package/dist/icons/index.js +6 -2
  18. package/dist/icons/index.js.map +1 -1
  19. package/dist/{index-B3OiMlQv.d.ts → index-vztxMSfl.d.ts} +7 -4
  20. package/dist/index.d.ts +2259 -345
  21. package/dist/index.js +7229 -3057
  22. package/dist/index.js.map +1 -1
  23. package/dist/next/index.d.ts +20 -0
  24. package/dist/next/index.js +16 -0
  25. package/dist/next/index.js.map +1 -0
  26. package/dist/styles.css +1 -1
  27. package/dist/{system-lyhOUTpa.d.ts → system-CyAVbHhM.d.ts} +17 -17
  28. package/dist/testing/index.cjs +133 -11
  29. package/dist/testing/index.d.cts +98 -2
  30. package/dist/testing/index.d.ts +98 -2
  31. package/dist/testing/index.js +132 -12
  32. package/dist/tokens/index.d.ts +1 -1
  33. package/dist/tokens/index.js +8 -8
  34. package/dist/tokens/index.js.map +1 -1
  35. package/docs/components.md +606 -0
  36. package/docs/components.registry.json +1604 -0
  37. package/docs/for-ai-agents.md +153 -0
  38. package/package.json +15 -3
package/dist/index.d.ts CHANGED
@@ -1,18 +1,20 @@
1
- export { C as ColorName, R as ReferenceTokens, S as SystemTokens, c as colors, r as radii, a as reference, s as shadows, d as spacing, e as surfaces, f as systemTokens, t as typography } from './system-lyhOUTpa.js';
1
+ export { C as ColorName, R as ReferenceTokens, S as SystemTokens, c as colors, r as radii, a as reference, s as shadows, b as spacing, d as surfaces, e as systemTokens, t as typography } from './system-CyAVbHhM.js';
2
2
  import * as React$1 from 'react';
3
- import { ReactNode, CSSProperties } from 'react';
3
+ import { ReactNode, InputHTMLAttributes, HTMLAttributes, RefCallback, ReactElement, FieldsetHTMLAttributes, CSSProperties } from 'react';
4
4
  import * as AccordionPrimitive from '@radix-ui/react-accordion';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
6
  import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
7
+ import { V as Variant, I as Intent, C as ControlSize, S as Shape } from './index-vztxMSfl.js';
8
+ export { A as AlertCircleIcon, a as AlertTriangleIcon, b as AlertTriangleSolidIcon, c as ArchiveIcon, d as ArrowDownIcon, e as ArrowLeftIcon, f as ArrowRightIcon, g as ArrowRightSmallIcon, h as ArrowUpIcon, i as AtSignIcon, B as BarChartIcon, j as BellIcon, k as BoldIcon, l as BrainIcon, m as BriefcaseIcon, n as Building2Icon, o as BuildingIcon, p as CalendarIcon, q as ChatBubbleIcon, r as CheckCircle2Icon, s as CheckCircleSolidIcon, t as CheckIcon, u as ChevronDownIcon, v as ChevronLeftIcon, w as ChevronRightIcon, x as ChevronUpIcon, y as ChevronsDownUpIcon, z as ChevronsUpDownIcon, D as CircleDotIcon, E as CircleIcon, F as ClipboardCheckIcon, G as ClockIcon, H as CloseIcon, J as CommandIcon, K as CopyIcon, L as CornerDownLeftIcon, M as CreditCardIcon, N as DocumentIcon, O as DollarSignIcon, P as DownloadIcon, Q as ExternalLinkIcon, R as ExtractIcon, T as EyeIcon, U as EyeOffIcon, W as FileIcon, X as FileReturnIcon, Y as FileTextIcon, Z as FilterIcon, _ as FlagIcon, $ as FolderClosedIcon, a0 as FolderOpenIcon, a1 as FolderPlusIcon, a2 as FolderUpIcon, a3 as GlobeIcon, a4 as GoogleBrandIcon, a5 as GripVerticalIcon, a6 as HelpCircleIcon, a7 as HistoryIcon, a8 as HomeIcon, a9 as IconComponent, aa as IconDefinition, ab as IconProps, ac as IconSize, ad as InboxIcon, ae as InfoCircleSolidIcon, af as InfoIcon, ag as ItalicIcon, ah as KanbanIcon, ai as KeyIcon, aj as LandmarkIcon, ak as LayersIcon, al as LayoutDashboardIcon, am as LayoutGridIcon, an as LayoutListIcon, ao as LightningIcon, ap as Link2Icon, aq as LinkIcon, ar as ListChecksIcon, as as ListIcon, at as ListOrderedIcon, au as LoaderIcon, av as LockIcon, aw as LockKeyholeIcon, ax as LockOpenIcon, ay as LogOutIcon, az as MailIcon, aA as MapPinIcon, aB as MaximizeIcon, aC as MenuIcon, aD as MessageCircleIcon, aE as MessageCircleWarningIcon, aF as MicIcon, aG as MicrosoftBrandIcon, aH as MinimizeIcon, aI as MinusIcon, aJ as MonitorIcon, aK as MoonIcon, aL as MoreHorizontalIcon, aM as MoveIcon, aN as PaletteIcon, aO as PanelLeftCloseIcon, aP as PanelLeftIcon, aQ as PanelRightIcon, aR as PaperclipIcon, aS as PauseIcon, aT as PenSignIcon, aU as PenToolIcon, aV as PencilIcon, aW as PhoneIcon, aX as PlayIcon, aY as PlusIcon, aZ as ReceiptIcon, a_ as RefreshCwIcon, a$ as ReplyIcon, b0 as RotateCcwIcon, b1 as SaveIcon, b2 as SearchIcon, b3 as SendIcon, b4 as SettingsIcon, b5 as ShieldIcon, b6 as SigmaIcon, b7 as SlashIcon, b8 as SmartphoneIcon, b9 as SparkleIcon, ba as SparklesIcon, bb as StarIcon, bc as StopIcon, bd as StrikethroughIcon, be as SunIcon, bf as TableIcon, bg as TagIcon, bh as TeamIcon, bi as ThumbsDownIcon, bj as ThumbsUpIcon, bk as TimerIcon, bl as Trash2Icon, bm as TrashIcon, bn as TrashSolidIcon, bo as TrendingDownIcon, bp as TrendingUpIcon, bq as UnderlineIcon, br as UploadIcon, bs as UserCircleIcon, bt as UserIcon, bu as UsersIcon, bv as VideoIcon, bw as Volume2Icon, bx as VolumeXIcon, by as WorkflowIcon, bz as XCircleSolidIcon, bA as XIcon, bB as ZoomInIcon, bC as ZoomOutIcon, bD as createIcon } from './index-vztxMSfl.js';
7
9
  import * as class_variance_authority_types from 'class-variance-authority/types';
8
10
  import { VariantProps } from 'class-variance-authority';
9
11
  import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio';
10
12
  import * as AvatarPrimitive from '@radix-ui/react-avatar';
11
- import { V as Variant, I as Intent, C as ControlSize, S as Shape } from './index-B3OiMlQv.js';
12
- export { A as AlertCircleIcon, a as AlertTriangleIcon, b as AlertTriangleSolidIcon, c as ArchiveIcon, d as ArrowDownIcon, e as ArrowLeftIcon, f as ArrowRightIcon, g as ArrowRightSmallIcon, h as ArrowUpIcon, i as AtSignIcon, B as BarChartIcon, j as BellIcon, k as BoldIcon, l as BrainIcon, m as BriefcaseIcon, n as Building2Icon, o as BuildingIcon, p as CalendarIcon, q as ChatBubbleIcon, r as CheckCircle2Icon, s as CheckCircleSolidIcon, t as CheckIcon, u as ChevronDownIcon, v as ChevronLeftIcon, w as ChevronRightIcon, x as ChevronUpIcon, y as ChevronsDownUpIcon, z as ChevronsUpDownIcon, D as CircleDotIcon, E as CircleIcon, F as ClipboardCheckIcon, G as ClockIcon, H as CloseIcon, J as CommandIcon, K as CopyIcon, L as CornerDownLeftIcon, M as CreditCardIcon, N as DocumentIcon, O as DollarSignIcon, P as DownloadIcon, Q as ExternalLinkIcon, R as ExtractIcon, T as EyeIcon, U as EyeOffIcon, W as FileIcon, X as FileReturnIcon, Y as FileTextIcon, Z as FilterIcon, _ as FlagIcon, $ as FolderClosedIcon, a0 as FolderOpenIcon, a1 as FolderPlusIcon, a2 as FolderUpIcon, a3 as GlobeIcon, a4 as GoogleBrandIcon, a5 as GripVerticalIcon, a6 as HelpCircleIcon, a7 as HistoryIcon, a8 as HomeIcon, a9 as IconComponent, aa as IconDefinition, ab as IconProps, ac as IconSize, ad as InboxIcon, ae as InfoCircleSolidIcon, af as InfoIcon, ag as ItalicIcon, ah as KanbanIcon, ai as KeyIcon, aj as LandmarkIcon, ak as LayersIcon, al as LayoutDashboardIcon, am as LayoutGridIcon, an as LayoutListIcon, ao as LightningIcon, ap as Link2Icon, aq as LinkIcon, ar as ListChecksIcon, as as ListIcon, at as ListOrderedIcon, au as LoaderIcon, av as LockIcon, aw as LockKeyholeIcon, ax as LockOpenIcon, ay as LogOutIcon, az as MailIcon, aA as MapPinIcon, aB as MaximizeIcon, aC as MenuIcon, aD as MessageCircleIcon, aE as MessageCircleWarningIcon, aF as MicIcon, aG as MicrosoftBrandIcon, aH as MinimizeIcon, aI as MinusIcon, aJ as MonitorIcon, aK as MoonIcon, aL as MoreHorizontalIcon, aM as MoveIcon, aN as PaletteIcon, aO as PanelLeftCloseIcon, aP as PanelLeftIcon, aQ as PanelRightIcon, aR as PaperclipIcon, aS as PauseIcon, aT as PenSignIcon, aU as PenToolIcon, aV as PencilIcon, aW as PhoneIcon, aX as PlayIcon, aY as PlusIcon, aZ as ReceiptIcon, a_ as RefreshCwIcon, a$ as ReplyIcon, b0 as RotateCcwIcon, b1 as SaveIcon, b2 as SearchIcon, b3 as SendIcon, b4 as SettingsIcon, b5 as ShieldIcon, b6 as SigmaIcon, b7 as SlashIcon, b8 as SmartphoneIcon, b9 as SparkleIcon, ba as SparklesIcon, bb as StarIcon, bc as StopIcon, bd as StrikethroughIcon, be as SunIcon, bf as TableIcon, bg as TagIcon, bh as TeamIcon, bi as ThumbsDownIcon, bj as ThumbsUpIcon, bk as TimerIcon, bl as Trash2Icon, bm as TrashIcon, bn as TrashSolidIcon, bo as TrendingDownIcon, bp as TrendingUpIcon, bq as UnderlineIcon, br as UploadIcon, bs as UserCircleIcon, bt as UserIcon, bu as UsersIcon, bv as VideoIcon, bw as Volume2Icon, bx as VolumeXIcon, by as WorkflowIcon, bz as XCircleSolidIcon, bA as XIcon, bB as ZoomInIcon, bC as ZoomOutIcon, bD as createIcon } from './index-B3OiMlQv.js';
13
13
  import { DayPickerProps } from 'react-day-picker';
14
14
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
15
15
  import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
16
+ import { C as CommandPaletteMessages, a as ConfirmMessages, b as CopyButtonMessages, F as FileUploadMessages, K as KeyboardShortcutsMessages, P as PaginationMessages, c as PhoneFieldMessages, S as SearchInputMessages, d as SelectMessages, T as ToastMessages, e as FieldMessages, f as ComboboxMessages } from './design-system-provider-C8UlFe52.js';
17
+ export { g as DesignSystemProvider, D as DesignSystemProviderProps, h as DsDirection, i as DsMessageNamespace, j as DsMessages, k as DsMessagesOverride, I as ImageComponent, l as ImageComponentProps, L as LinkComponent, m as LinkComponentProps, n as TooltipDefaults, u as useDsMessages } from './design-system-provider-C8UlFe52.js';
16
18
  import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
17
19
  import * as DialogPrimitive from '@radix-ui/react-dialog';
18
20
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
@@ -31,6 +33,7 @@ import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
31
33
  import * as TooltipPrimitive from '@radix-ui/react-tooltip';
32
34
  import * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';
33
35
  import { ClassValue } from 'clsx';
36
+ import { BrandTheme } from './tokens/index.js';
34
37
 
35
38
  type AccordionProps = React$1.ComponentPropsWithoutRef<typeof AccordionPrimitive.Root>;
36
39
  declare const Accordion: React$1.ForwardRefExoticComponent<AccordionProps & React$1.RefAttributes<HTMLDivElement>>;
@@ -91,19 +94,20 @@ type BadgeSlot = "root" | "dot" | "icon";
91
94
  * `className` lands on (`C-INPUT-CLASSNAME`). The wrappers around it are
92
95
  * private (target architecture §29.2).
93
96
  * States on the root: `data-variant`, `data-size`, `data-disabled`,
94
- * `data-invalid`.
97
+ * `data-invalid`. `description` is the `description` sugar's hint text (W4-05).
95
98
  *
96
99
  * @experimental Slot names are experimental until ADR-008 is accepted (W2-18).
97
100
  */
98
- type InputSlot = "root" | "label" | "icon-start" | "icon-end" | "password-toggle" | "error";
101
+ type InputSlot = "root" | "label" | "icon-start" | "icon-end" | "password-toggle" | "description" | "error";
99
102
  /**
100
103
  * `Textarea` parts, stamped as `data-slot="textarea[-<part>]"` (ADR-008).
101
104
  * `root` is the `<textarea>`. States on the root: `data-variant`, `data-size`,
102
- * `data-disabled`, `data-invalid`.
105
+ * `data-disabled`, `data-invalid`. `description` is the `description` sugar's
106
+ * hint text (W4-06).
103
107
  *
104
108
  * @experimental Slot names are experimental until ADR-008 is accepted (W2-18).
105
109
  */
106
- type TextareaSlot = "root" | "label" | "error" | "count";
110
+ type TextareaSlot = "root" | "label" | "description" | "error" | "count";
107
111
  /**
108
112
  * `SearchInput` parts, stamped as `data-slot="search-input[-<part>]"`
109
113
  * (ADR-008). `root` is the positioning wrapper `className` lands on;
@@ -114,18 +118,23 @@ type TextareaSlot = "root" | "label" | "error" | "count";
114
118
  */
115
119
  type SearchInputSlot = "root" | "control" | "icon" | "clear";
116
120
  /**
117
- * `Select` parts, stamped as `data-slot="select-<part>"` (ADR-008). There is
118
- * no `root`: `SelectRoot` renders no element. Radix's own `data-state`,
119
- * `data-disabled`, `data-placeholder` and `data-highlighted` are left as they
120
- * are (`P-DATA-STATE`).
121
+ * `Select` parts, stamped as `data-slot="select-<part>"` (ADR-008).
122
+ * `SelectRoot` renders no element: `root` is the wrapper the options-driven
123
+ * `Select clearable` renders around the trigger and the `clear` button (W4-08),
124
+ * and exists only then. Radix's own `data-state`, `data-disabled`,
125
+ * `data-placeholder` and `data-highlighted` are left as they are
126
+ * (`P-DATA-STATE`); the trigger adds `data-size` when a `size` is set.
121
127
  *
122
128
  * `SelectValue` and `SelectGroup` are re-exported Radix components with no
123
- * wrapper of ours, so they carry no slot yet; W4-08 gives them one along with
124
- * `classNames.value` (`C-DOM-10`).
129
+ * wrapper of ours, so they carry no slot of their own. `value` is the span
130
+ * the options-driven `Select` wraps Radix's value in when `classNames.value`
131
+ * or `clearable` asks for it (Radix's own span drops `className`); a legacy
132
+ * call renders no wrapper, so the `SelectTrigger > span` structure PRO selects
133
+ * on stays as frozen by `C-DOM-10`.
125
134
  *
126
135
  * @experimental Slot names are experimental until ADR-008 is accepted (W2-18).
127
136
  */
128
- type SelectSlot = "trigger" | "icon" | "content" | "viewport" | "item" | "item-indicator" | "label" | "separator" | "scroll-up-button" | "scroll-down-button";
137
+ type SelectSlot = "root" | "trigger" | "value" | "icon" | "clear" | "content" | "viewport" | "item" | "item-indicator" | "label" | "separator" | "scroll-up-button" | "scroll-down-button";
129
138
  /**
130
139
  * `Checkbox` parts, stamped as `data-slot="checkbox[-<part>]"` (ADR-008).
131
140
  * `root` is the Radix root — the box, and the element `className` lands on.
@@ -139,11 +148,14 @@ type CheckboxSlot = "root" | "indicator" | "label";
139
148
  /**
140
149
  * `RadioGroup` / `RadioGroupItem` parts, stamped as
141
150
  * `data-slot="radio-group[-<part>]"` (ADR-008). `root` is the group,
142
- * `item` the radio. Radix's `data-state` is left as it is.
151
+ * `item` the radio. Radix's `data-state` is left as it is. With
152
+ * `appearance="card"` (W4-14) the root carries `data-appearance="card"` and
153
+ * every item is wrapped in a `card` holding the `label` (stretched over the
154
+ * card, so the whole box is the click target) and an optional `description`.
143
155
  *
144
156
  * @experimental Slot names are experimental until ADR-008 is accepted (W2-18).
145
157
  */
146
- type RadioGroupSlot = "root" | "item" | "indicator" | "label";
158
+ type RadioGroupSlot = "root" | "item" | "indicator" | "label" | "card" | "description";
147
159
  /**
148
160
  * `Switch` parts, stamped as `data-slot="switch[-<part>]"` (ADR-008).
149
161
  * `root` is the Radix root — the track, and the element `className` lands on;
@@ -159,6 +171,28 @@ type SwitchSlot = "root" | "thumb" | "label";
159
171
  * @experimental Slot names are experimental until ADR-008 is accepted (W2-18).
160
172
  */
161
173
  type LabelSlot = "root" | "required";
174
+ /**
175
+ * `NumberInput` parts, stamped as `data-slot="number-input"` (ADR-008).
176
+ * `root` is the `<input>` itself — the control frame and the element
177
+ * `className` lands on, like `Input`. The hidden inputs `FormBridge` renders
178
+ * next to it are not parts. States on the root: `data-variant`, `data-size`,
179
+ * `data-disabled`, `data-invalid`.
180
+ *
181
+ * @experimental Slot names are experimental until ADR-008 is accepted (W4-21).
182
+ */
183
+ type NumberInputSlot = "root";
184
+ /**
185
+ * `PhoneField` parts, stamped as `data-slot="phone-field[-<part>]"` (ADR-008).
186
+ * `root` is the row (the element `className` lands on), `number` the `tel`
187
+ * `<input>` on the control chrome, `flag` a `CountryFlag` (the SVG, or its
188
+ * placeholder while the flag set loads). `country` is the country picker: a
189
+ * `Combobox`, stamped with its own anatomy and styled through
190
+ * `classNames.country`. States on the root: `data-variant`, `data-size`,
191
+ * `data-disabled`, `data-invalid`.
192
+ *
193
+ * @experimental Slot names are experimental until ADR-008 is accepted (W4-22).
194
+ */
195
+ type PhoneFieldSlot = "root" | "country" | "number" | "flag";
162
196
  /**
163
197
  * `FileUpload` parts, stamped as `data-slot="file-upload[-<part>]"` (ADR-008).
164
198
  * `dropzone` is the `<label>` that `C-DOM-04` freezes and that
@@ -169,16 +203,28 @@ type LabelSlot = "root" | "required";
169
203
  * @experimental Slot names are experimental until ADR-008 is accepted (W2-18).
170
204
  */
171
205
  type FileUploadSlot = "root" | "dropzone" | "input" | "error";
206
+ /**
207
+ * `Command` / `CommandPalette` parts, stamped as `data-slot="command-<part>"`
208
+ * (ADR-008, W5-19). `overlay`, `content`, `title` and `description` are the
209
+ * spotlight modal (`CommandDialog`); `root`, `input`, `list`, `empty`,
210
+ * `group` and `item` are the command-list parts; `footer` is the
211
+ * keyboard-hint strip `CommandPalette` renders below the list.
212
+ *
213
+ * @experimental Slot names are experimental until ADR-008 is accepted (W2-18).
214
+ */
215
+ type CommandSlot = "overlay" | "content" | "title" | "description" | "root" | "input" | "list" | "empty" | "group" | "item" | "footer";
172
216
  /**
173
217
  * `Dialog` parts, stamped as `data-slot="dialog-<part>"` (ADR-008). There is
174
218
  * no `root`: `Dialog` is Radix's non-rendering root. `close` is stamped on
175
219
  * both the built-in close button and `DialogClose`; they are the same part —
176
- * a control that dismisses the dialog. States: `data-size` on the content.
177
- * Radix's `data-state` is left as it is (`P-DATA-STATE`).
220
+ * a control that dismisses the dialog. `body` is the scroll region between
221
+ * header and footer (W5-05). States: `data-size` on the content, and
222
+ * `data-variant="responsive"` when it presents as a bottom sheet below `sm`
223
+ * (W5-09). Radix's `data-state` is left as it is (`P-DATA-STATE`).
178
224
  *
179
225
  * @experimental Slot names are experimental until ADR-008 is accepted (W2-18).
180
226
  */
181
- type DialogSlot = "overlay" | "content" | "header" | "title" | "description" | "footer" | "close";
227
+ type DialogSlot = "overlay" | "content" | "header" | "title" | "description" | "body" | "footer" | "close";
182
228
  /**
183
229
  * `AlertDialog` parts, stamped as `data-slot="alert-dialog-<part>"`
184
230
  * (ADR-008). No `root` — Radix's root renders no element.
@@ -188,13 +234,14 @@ type DialogSlot = "overlay" | "content" | "header" | "title" | "description" | "
188
234
  type AlertDialogSlot = "overlay" | "content" | "header" | "title" | "description" | "footer" | "action" | "cancel";
189
235
  /**
190
236
  * `Sheet` parts, stamped as `data-slot="sheet-<part>"` (ADR-008).
191
- * States: `data-size` on the content, carrying today's `width` preset — the
192
- * prop `C-SHEET-WIDTH` renames to `size` in W5-07. The `side` is not in the
193
- * §29.2 vocabulary and stays a class.
237
+ * `body` is the scroll region between header and footer (W5-07). States:
238
+ * `data-size` on the content, carrying the `size` step (or the deprecated
239
+ * `width` preset, C-SHEET-WIDTH; `default` when neither is given). The
240
+ * `side` is not in the §29.2 vocabulary and stays a class.
194
241
  *
195
242
  * @experimental Slot names are experimental until ADR-008 is accepted (W2-18).
196
243
  */
197
- type SheetSlot = "overlay" | "content" | "header" | "title" | "description" | "footer" | "close";
244
+ type SheetSlot = "overlay" | "content" | "header" | "title" | "description" | "body" | "footer" | "close";
198
245
  /**
199
246
  * `SideDrawer` parts, stamped as `data-slot="side-drawer[-<part>]"`
200
247
  * (ADR-008). `root` is the panel. The screen-reader-only Radix title that the
@@ -415,6 +462,229 @@ type IconButtonSlot = "root" | "icon" | "spinner";
415
462
  * @experimental Slot names are experimental until ADR-008 is accepted (W3-15).
416
463
  */
417
464
  type ChipSlot = "root" | "icon" | "label" | "count" | "remove";
465
+ /**
466
+ * `Field` parts, stamped as `data-slot="field[-<part>]"` (ADR-008, W4-01):
467
+ * the root (the layout wrapper, no chrome), the `label` (a `Label` rendered
468
+ * inside a field stamps this over its own `label`, the way `Card` stamps
469
+ * `card` over `surface`), its `required` asterisk and `optional` indicator,
470
+ * the `description` and the `error`. The control is not a part: it keeps its
471
+ * own anatomy (`input`, `select-trigger`, …) and is found by the field's id.
472
+ * States on the root: `data-orientation`, `data-invalid`, `data-disabled`,
473
+ * `data-required`.
474
+ *
475
+ * @experimental Slot names are experimental until ADR-008 is accepted (W4-01).
476
+ */
477
+ type FieldSlot = "root" | "label" | "required" | "optional" | "description" | "error";
478
+ /**
479
+ * `Fieldset` parts, stamped as `data-slot="fieldset[-<part>]"` (ADR-008,
480
+ * W4-01): the `<fieldset>` root and its `<legend>`. States on the root:
481
+ * `data-disabled`, `data-invalid`.
482
+ *
483
+ * @experimental Slot names are experimental until ADR-008 is accepted (W4-01).
484
+ */
485
+ type FieldsetSlot = "root" | "legend";
486
+ /**
487
+ * `Combobox` parts, stamped as `data-slot="combobox[-<part>]"` (ADR-008,
488
+ * W4-10): the `root` (the frame that holds the control and its form bridge),
489
+ * the `control` (the field-shaped box the popover anchors to), the `value`
490
+ * (a custom `renderValue` node over the input), the `chips` row and its
491
+ * `Chip`s in `multiple` mode, the `input` (the `role="combobox"` element that
492
+ * keeps focus), the leading `icon`, the `clear` and `toggle` buttons; then
493
+ * the portalled `content` with an optional `header`, the `list`
494
+ * (`role="listbox"`), a `group` with its `group-heading`, each `item`
495
+ * (`role="option"`, see `behavior/collection/item-attributes.ts`) and its
496
+ * `item-indicator`, the `create` row, the `empty` and `loading` states and an
497
+ * optional `footer`. States on the root: `data-state` (`open` · `closed`),
498
+ * `data-disabled`, `data-invalid`, `data-size`.
499
+ *
500
+ * @experimental Slot names are experimental until ADR-008 is accepted (W4-10).
501
+ */
502
+ type ComboboxSlot = "root" | "control" | "value" | "chips" | "input" | "icon" | "clear" | "toggle" | "content" | "header" | "list" | "group" | "group-heading" | "item" | "item-indicator" | "create" | "empty" | "loading" | "footer";
503
+
504
+ /**
505
+ * L1a behaviour primitive (private). Not exported from the package.
506
+ *
507
+ * `buttonBase` — the one class recipe every button-shaped control renders
508
+ * (W3-03; target architecture §4 L1a, §30), and the `variant` + `intent`
509
+ * resolver in front of it (W3-02; ADR-007). `Button`, `LinkButton` and
510
+ * `SubmitButton` read both through the public `buttonVariants`;
511
+ * `IconButton` (W3-09) and `Chip` (W3-15) read them next, so the geometry,
512
+ * the focus ring, the disabled treatment, the press feedback and the colour
513
+ * table of an action are written once.
514
+ *
515
+ * Two axes, one table: `variant` says how loudly (`solid · soft · outline ·
516
+ * ghost · link`), `intent` says what it means (`brand · neutral · success ·
517
+ * danger`), and every pair has one row in {@link BUTTON_LOOKS}. The legacy
518
+ * single-axis words (`primary`, `secondary`, `destructive`, `success`,
519
+ * `accent`, `dashed`) resolve to a pair through {@link LEGACY_BUTTON_VARIANTS}
520
+ * and produce the class string they always did:
521
+ * `src/primitives/__tests__/button-legacy-classes.test.tsx` pins every legacy
522
+ * `variant` × `size` to the output recorded from `main` before W3-02.
523
+ *
524
+ * No React, no client directive: plain functions of props to a string, so a
525
+ * Server Component can call them once the root entry is server-safe (S3).
526
+ */
527
+ /**
528
+ * The emphases a Button offers: all five of the shared vocabulary.
529
+ *
530
+ * @experimental
531
+ */
532
+ type ButtonEmphasis = Variant;
533
+ /**
534
+ * The intents a Button offers (ADR-007 §1; `info` and `warning` are not actions).
535
+ *
536
+ * @experimental
537
+ */
538
+ type ButtonIntent = Extract<Intent, "brand" | "neutral" | "success" | "danger">;
539
+ /**
540
+ * `destructive` is accepted where an intent is expected, as an alias of
541
+ * `danger`, until decision D4 settles the canonical word (ADR-007 §5).
542
+ *
543
+ * @deprecated Use `intent="danger"`.
544
+ * @experimental
545
+ */
546
+ type ButtonIntentAlias = "destructive";
547
+ /**
548
+ * The single-axis words Button accepted before W3-02, each a fixed
549
+ * `{ variant, intent }` pair (ADR-007 §4, target architecture §28):
550
+ *
551
+ * - `primary` → `solid` + `brand` (the default; nothing to migrate)
552
+ * - `secondary` → `soft` + `neutral`
553
+ * - `destructive` → `solid` + `danger`
554
+ * - `success` → `solid` + `success`
555
+ * - `accent` → `solid` + `brand` in the suite-action colour; folds into
556
+ * `intent="brand"` and is dropped in 2.0 (decision D13)
557
+ * - `dashed` → `outline` + `neutral` with a dashed 2px border; kept for the
558
+ * 2.x line
559
+ *
560
+ * `ghost`, `outline` and `link` are not legacy: they already are emphases.
561
+ *
562
+ * @deprecated Pass `variant` (emphasis) and `intent` (meaning) instead. The
563
+ * codemod CM-04 rewrites call sites mechanically.
564
+ * @experimental
565
+ */
566
+ type ButtonLegacyVariant = "primary" | "secondary" | "destructive" | "success" | "accent" | "dashed";
567
+ /** What `variant` accepts on the Button family: the vocabulary plus the deprecated aliases. */
568
+ type ButtonVariant = ButtonEmphasis | ButtonLegacyVariant;
569
+ /**
570
+ * A row of the colour table: a `variant`/`intent` pair or one of the two
571
+ * legacy-only looks. The separator is `/`, not `-`: the keys of the table are
572
+ * text Tailwind scans, and an `outline` emphasis joined to an intent with a
573
+ * hyphen would compile to an outline-colour utility nobody asked for.
574
+ *
575
+ * @experimental
576
+ */
577
+ type ButtonLook = `${ButtonEmphasis}/${ButtonIntent}` | "accent" | "dashed";
578
+ /**
579
+ * The resolved appearance of a Button.
580
+ *
581
+ * @experimental
582
+ */
583
+ interface ButtonStyle {
584
+ variant: ButtonEmphasis;
585
+ intent: ButtonIntent;
586
+ /** The row of the colour table the pair renders. */
587
+ look: ButtonLook;
588
+ }
589
+ /**
590
+ * Resolve what a Button renders from the two-axis props, accepting every
591
+ * legacy word (W3-02, ADR-007 §4).
592
+ *
593
+ * - No `variant`: `solid` + `brand` (what `primary` always rendered).
594
+ * - A legacy `variant` alone: its fixed pair; `accent` and `dashed` keep
595
+ * their own look.
596
+ * - A legacy `variant` with an explicit `intent`: the alias contributes its
597
+ * emphasis, the intent is the caller's (`variant="primary" intent="danger"`
598
+ * is a solid danger button). `accent`'s and `dashed`'s own looks apply only
599
+ * without a competing intent.
600
+ * - `intent="destructive"` is `danger` (deprecated alias, D4).
601
+ *
602
+ * @experimental
603
+ */
604
+ declare function resolveButtonStyle({ variant, intent, }: {
605
+ variant?: ButtonVariant | null;
606
+ intent?: ButtonIntent | ButtonIntentAlias | null;
607
+ }): ButtonStyle;
608
+ /**
609
+ * The size names the recipe knows (W3-05, ADR-013): the shared control scale
610
+ * `xs · sm · md · lg · xl` (`ControlSize`), the 1.31 aliases
611
+ * `compact` / `default` / `comfortable` of `sm` / `md` / `lg`, and the square
612
+ * icon-only steps `icon-xs` / `icon-sm` / `icon` (C-BTN-SIZE-ICON).
613
+ *
614
+ * `xs` and `xl` are new in W3-05 and read the shared scale
615
+ * (`--control-*-{xs,xl}`: 28px and 48px tall), so they follow the density
616
+ * scope. `md` (40px) and `lg` (48px) are the two A1 mismatches recorded in
617
+ * `baselines/size-geometry.json`: they keep today's pixels through the
618
+ * D5-gated compat tokens `--button-height-md` / `--button-height-lg` and
619
+ * their padding, gap and label size stay on Tailwind's scale — nothing about
620
+ * them moves until decision D5 (W2-05, CM-03). `sm` (32px) already agrees
621
+ * with the scale's `sm` step, so it reads the shared row like `xs`/`xl`.
622
+ */
623
+ type ButtonSize = ControlSize | ButtonSizeAlias | ButtonIconSize;
624
+ /**
625
+ * The 1.31 aliases of `sm` / `md` / `lg` (C-BTN-SIZE-ALIAS). No known consumer
626
+ * uses them; they leave in 2.0.
627
+ *
628
+ * @deprecated Use `size="sm"`, `"md"` or `"lg"`.
629
+ * @experimental
630
+ */
631
+ type ButtonSizeAlias = "compact" | "default" | "comfortable";
632
+ /**
633
+ * The icon-only squares (C-BTN-SIZE-ICON): 24 / 28 / 40px. `IconButton`
634
+ * (W3-09) owns icon-only geometry; the codemod CM-03 rewrites the call sites.
635
+ * Removed in 3.0.
636
+ *
637
+ * @deprecated Use `IconButton`.
638
+ * @experimental
639
+ */
640
+ type ButtonIconSize = "icon-xs" | "icon-sm" | "icon";
641
+ /**
642
+ * What {@link buttonVariants} takes: the two axes, the size and cva's class
643
+ * pass-through.
644
+ *
645
+ * @experimental
646
+ */
647
+ interface ButtonVariantsProps {
648
+ variant?: ButtonVariant | null;
649
+ intent?: ButtonIntent | ButtonIntentAlias | null;
650
+ size?: ButtonSize | null;
651
+ class?: string | null;
652
+ className?: string | null;
653
+ }
654
+ /**
655
+ * The public recipe of the Button family: resolves `variant` + `intent`
656
+ * (legacy words included) and renders the row with the size. Same name and
657
+ * output as before W3-02 for every call that existed; `intent` is the one
658
+ * addition. Server-safe.
659
+ */
660
+ declare function buttonVariants({ variant, intent, size, class: classProp, className, }?: ButtonVariantsProps): string;
661
+ /**
662
+ * The icon slots of the Button family (W3-07). `iconStart` / `iconEnd` are
663
+ * logical — start is the left in LTR and the right in RTL, because the button
664
+ * is a flex row and the slot follows the writing direction. `iconLeft` /
665
+ * `iconRight` are the names consumers use today (140 call sites) and stay as
666
+ * aliases of the same slots.
667
+ *
668
+ * @experimental
669
+ */
670
+ interface ButtonIconProps {
671
+ /** Icon before the label (logical start). */
672
+ iconStart?: ReactNode;
673
+ /** Icon after the label (logical end). */
674
+ iconEnd?: ReactNode;
675
+ /**
676
+ * Alias of `iconStart`. The codemod CM-05 renames it.
677
+ *
678
+ * @deprecated Use `iconStart`.
679
+ */
680
+ iconLeft?: ReactNode;
681
+ /**
682
+ * Alias of `iconEnd`. The codemod CM-05 renames it.
683
+ *
684
+ * @deprecated Use `iconEnd`.
685
+ */
686
+ iconRight?: ReactNode;
687
+ }
418
688
 
419
689
  declare const AlertDialog: React$1.FC<AlertDialogPrimitive.AlertDialogProps>;
420
690
  declare const AlertDialogTrigger: React$1.ForwardRefExoticComponent<AlertDialogPrimitive.AlertDialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
@@ -422,16 +692,33 @@ declare const AlertDialogPortal: React$1.FC<AlertDialogPrimitive.AlertDialogPort
422
692
  declare const AlertDialogOverlay: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
423
693
  declare const AlertDialogContent: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
424
694
  declare const AlertDialogHeader: {
425
- ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
695
+ (props: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
426
696
  displayName: string;
427
697
  };
428
698
  declare const AlertDialogFooter: {
429
- ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
699
+ (props: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
430
700
  displayName: string;
431
701
  };
432
702
  declare const AlertDialogTitle: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
433
703
  declare const AlertDialogDescription: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
434
- declare const AlertDialogAction: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogActionProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
704
+ /**
705
+ * Props of `AlertDialogAction` (W5-06): Radix's action props plus the two
706
+ * Button axes.
707
+ *
708
+ * @experimental
709
+ */
710
+ interface AlertDialogActionProps extends React$1.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action> {
711
+ /**
712
+ * Emphasis, as on `Button` (ADR-007): `solid · soft · outline · ghost ·
713
+ * link`, or a legacy word. Without `variant` and `intent` the action keeps
714
+ * its 1.x destructive look; naming either resolves through the Button
715
+ * recipe, so `intent="brand"` is a non-destructive confirm.
716
+ */
717
+ variant?: ButtonVariant;
718
+ /** Meaning, as on `Button`: `brand · neutral · success · danger`. */
719
+ intent?: ButtonIntent | ButtonIntentAlias;
720
+ }
721
+ declare const AlertDialogAction: React$1.ForwardRefExoticComponent<AlertDialogActionProps & React$1.RefAttributes<HTMLButtonElement>>;
435
722
  declare const AlertDialogCancel: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogCancelProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
436
723
 
437
724
  /**
@@ -685,191 +972,6 @@ declare const BreadcrumbPage: React$1.ForwardRefExoticComponent<BreadcrumbPagePr
685
972
  type BreadcrumbSeparatorProps = React.HTMLAttributes<HTMLSpanElement>;
686
973
  declare const BreadcrumbSeparator: React$1.ForwardRefExoticComponent<BreadcrumbSeparatorProps & React$1.RefAttributes<HTMLSpanElement>>;
687
974
 
688
- /**
689
- * L1a behaviour primitive (private). Not exported from the package.
690
- *
691
- * `buttonBase` — the one class recipe every button-shaped control renders
692
- * (W3-03; target architecture §4 L1a, §30), and the `variant` + `intent`
693
- * resolver in front of it (W3-02; ADR-007). `Button`, `LinkButton` and
694
- * `SubmitButton` read both through the public `buttonVariants`;
695
- * `IconButton` (W3-09) and `Chip` (W3-15) read them next, so the geometry,
696
- * the focus ring, the disabled treatment, the press feedback and the colour
697
- * table of an action are written once.
698
- *
699
- * Two axes, one table: `variant` says how loudly (`solid · soft · outline ·
700
- * ghost · link`), `intent` says what it means (`brand · neutral · success ·
701
- * danger`), and every pair has one row in {@link BUTTON_LOOKS}. The legacy
702
- * single-axis words (`primary`, `secondary`, `destructive`, `success`,
703
- * `accent`, `dashed`) resolve to a pair through {@link LEGACY_BUTTON_VARIANTS}
704
- * and produce the class string they always did:
705
- * `src/primitives/__tests__/button-legacy-classes.test.tsx` pins every legacy
706
- * `variant` × `size` to the output recorded from `main` before W3-02.
707
- *
708
- * No React, no client directive: plain functions of props to a string, so a
709
- * Server Component can call them once the root entry is server-safe (S3).
710
- */
711
- /**
712
- * The emphases a Button offers: all five of the shared vocabulary.
713
- *
714
- * @experimental
715
- */
716
- type ButtonEmphasis = Variant;
717
- /**
718
- * The intents a Button offers (ADR-007 §1; `info` and `warning` are not actions).
719
- *
720
- * @experimental
721
- */
722
- type ButtonIntent = Extract<Intent, "brand" | "neutral" | "success" | "danger">;
723
- /**
724
- * `destructive` is accepted where an intent is expected, as an alias of
725
- * `danger`, until decision D4 settles the canonical word (ADR-007 §5).
726
- *
727
- * @deprecated Use `intent="danger"`.
728
- * @experimental
729
- */
730
- type ButtonIntentAlias = "destructive";
731
- /**
732
- * The single-axis words Button accepted before W3-02, each a fixed
733
- * `{ variant, intent }` pair (ADR-007 §4, target architecture §28):
734
- *
735
- * - `primary` → `solid` + `brand` (the default; nothing to migrate)
736
- * - `secondary` → `soft` + `neutral`
737
- * - `destructive` → `solid` + `danger`
738
- * - `success` → `solid` + `success`
739
- * - `accent` → `solid` + `brand` in the suite-action colour; folds into
740
- * `intent="brand"` and is dropped in 2.0 (decision D13)
741
- * - `dashed` → `outline` + `neutral` with a dashed 2px border; kept for the
742
- * 2.x line
743
- *
744
- * `ghost`, `outline` and `link` are not legacy: they already are emphases.
745
- *
746
- * @deprecated Pass `variant` (emphasis) and `intent` (meaning) instead. The
747
- * codemod CM-04 rewrites call sites mechanically.
748
- * @experimental
749
- */
750
- type ButtonLegacyVariant = "primary" | "secondary" | "destructive" | "success" | "accent" | "dashed";
751
- /** What `variant` accepts on the Button family: the vocabulary plus the deprecated aliases. */
752
- type ButtonVariant = ButtonEmphasis | ButtonLegacyVariant;
753
- /**
754
- * A row of the colour table: a `variant`/`intent` pair or one of the two
755
- * legacy-only looks. The separator is `/`, not `-`: the keys of the table are
756
- * text Tailwind scans, and an `outline` emphasis joined to an intent with a
757
- * hyphen would compile to an outline-colour utility nobody asked for.
758
- *
759
- * @experimental
760
- */
761
- type ButtonLook = `${ButtonEmphasis}/${ButtonIntent}` | "accent" | "dashed";
762
- /**
763
- * The resolved appearance of a Button.
764
- *
765
- * @experimental
766
- */
767
- interface ButtonStyle {
768
- variant: ButtonEmphasis;
769
- intent: ButtonIntent;
770
- /** The row of the colour table the pair renders. */
771
- look: ButtonLook;
772
- }
773
- /**
774
- * Resolve what a Button renders from the two-axis props, accepting every
775
- * legacy word (W3-02, ADR-007 §4).
776
- *
777
- * - No `variant`: `solid` + `brand` (what `primary` always rendered).
778
- * - A legacy `variant` alone: its fixed pair; `accent` and `dashed` keep
779
- * their own look.
780
- * - A legacy `variant` with an explicit `intent`: the alias contributes its
781
- * emphasis, the intent is the caller's (`variant="primary" intent="danger"`
782
- * is a solid danger button). `accent`'s and `dashed`'s own looks apply only
783
- * without a competing intent.
784
- * - `intent="destructive"` is `danger` (deprecated alias, D4).
785
- *
786
- * @experimental
787
- */
788
- declare function resolveButtonStyle({ variant, intent, }: {
789
- variant?: ButtonVariant | null;
790
- intent?: ButtonIntent | ButtonIntentAlias | null;
791
- }): ButtonStyle;
792
- /**
793
- * The size names the recipe knows (W3-05, ADR-013): the shared control scale
794
- * `xs · sm · md · lg · xl` (`ControlSize`), the 1.31 aliases
795
- * `compact` / `default` / `comfortable` of `sm` / `md` / `lg`, and the square
796
- * icon-only steps `icon-xs` / `icon-sm` / `icon` (C-BTN-SIZE-ICON).
797
- *
798
- * `xs` and `xl` are new in W3-05 and read the shared scale
799
- * (`--control-*-{xs,xl}`: 28px and 48px tall), so they follow the density
800
- * scope. `md` (40px) and `lg` (48px) are the two A1 mismatches recorded in
801
- * `baselines/size-geometry.json`: they keep today's pixels through the
802
- * D5-gated compat tokens `--button-height-md` / `--button-height-lg` and
803
- * their padding, gap and label size stay on Tailwind's scale — nothing about
804
- * them moves until decision D5 (W2-05, CM-03). `sm` (32px) already agrees
805
- * with the scale's `sm` step, so it reads the shared row like `xs`/`xl`.
806
- */
807
- type ButtonSize = ControlSize | ButtonSizeAlias | ButtonIconSize;
808
- /**
809
- * The 1.31 aliases of `sm` / `md` / `lg` (C-BTN-SIZE-ALIAS). No known consumer
810
- * uses them; they leave in 2.0.
811
- *
812
- * @deprecated Use `size="sm"`, `"md"` or `"lg"`.
813
- * @experimental
814
- */
815
- type ButtonSizeAlias = "compact" | "default" | "comfortable";
816
- /**
817
- * The icon-only squares (C-BTN-SIZE-ICON): 24 / 28 / 40px. `IconButton`
818
- * (W3-09) owns icon-only geometry; the codemod CM-03 rewrites the call sites.
819
- * Removed in 3.0.
820
- *
821
- * @deprecated Use `IconButton`.
822
- * @experimental
823
- */
824
- type ButtonIconSize = "icon-xs" | "icon-sm" | "icon";
825
- /**
826
- * What {@link buttonVariants} takes: the two axes, the size and cva's class
827
- * pass-through.
828
- *
829
- * @experimental
830
- */
831
- interface ButtonVariantsProps {
832
- variant?: ButtonVariant | null;
833
- intent?: ButtonIntent | ButtonIntentAlias | null;
834
- size?: ButtonSize | null;
835
- class?: string | null;
836
- className?: string | null;
837
- }
838
- /**
839
- * The public recipe of the Button family: resolves `variant` + `intent`
840
- * (legacy words included) and renders the row with the size. Same name and
841
- * output as before W3-02 for every call that existed; `intent` is the one
842
- * addition. Server-safe.
843
- */
844
- declare function buttonVariants({ variant, intent, size, class: classProp, className, }?: ButtonVariantsProps): string;
845
- /**
846
- * The icon slots of the Button family (W3-07). `iconStart` / `iconEnd` are
847
- * logical — start is the left in LTR and the right in RTL, because the button
848
- * is a flex row and the slot follows the writing direction. `iconLeft` /
849
- * `iconRight` are the names consumers use today (140 call sites) and stay as
850
- * aliases of the same slots.
851
- *
852
- * @experimental
853
- */
854
- interface ButtonIconProps {
855
- /** Icon before the label (logical start). */
856
- iconStart?: ReactNode;
857
- /** Icon after the label (logical end). */
858
- iconEnd?: ReactNode;
859
- /**
860
- * Alias of `iconStart`. The codemod CM-05 renames it.
861
- *
862
- * @deprecated Use `iconStart`.
863
- */
864
- iconLeft?: ReactNode;
865
- /**
866
- * Alias of `iconEnd`. The codemod CM-05 renames it.
867
- *
868
- * @deprecated Use `iconEnd`.
869
- */
870
- iconRight?: ReactNode;
871
- }
872
-
873
975
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, ButtonIconProps {
874
976
  /**
875
977
  * Visual emphasis: `solid` (default) · `soft` · `outline` · `ghost` · `link`.
@@ -920,15 +1022,41 @@ interface CalendarHighlight {
920
1022
  date: Date;
921
1023
  color?: CalendarHighlightColor;
922
1024
  }
923
- interface CalendarProps extends Omit<DayPickerProps, "mode" | "selected" | "onSelect" | "modifiers" | "modifiersClassNames"> {
1025
+ /** A range as `Calendar mode="range"` reports it: either edge may be missing while the user picks. */
1026
+ interface CalendarRange {
1027
+ from?: Date;
1028
+ to?: Date;
1029
+ }
1030
+ /** Props shared by both modes of `Calendar`. */
1031
+ interface CalendarBaseProps extends Omit<DayPickerProps, "mode" | "selected" | "onSelect" | "modifiers" | "modifiersClassNames" | "locale" | "required"> {
1032
+ highlights?: CalendarHighlight[];
1033
+ minDate?: Date;
1034
+ maxDate?: Date;
1035
+ className?: string;
1036
+ /**
1037
+ * A BCP 47 language tag (`"en-US"`, `"fr-FR"`), or a `date-fns` locale
1038
+ * object as before. Default: the provider's locale, else `"en-US"` (A3).
1039
+ */
1040
+ locale?: string | DayPickerProps["locale"];
1041
+ }
1042
+ /** Single-date calendar (the default mode). */
1043
+ interface CalendarProps extends CalendarBaseProps {
1044
+ mode?: "single";
924
1045
  selected?: Date | null;
925
1046
  onSelect?: (date: Date) => void;
926
- highlights?: CalendarHighlight[];
927
- minDate?: Date;
928
- maxDate?: Date;
929
- className?: string;
930
1047
  }
931
- declare function Calendar({ selected, onSelect, highlights, minDate, maxDate, className, classNames, captionLayout, navLayout, startMonth, endMonth, components, ...props }: CalendarProps): react_jsx_runtime.JSX.Element;
1048
+ /**
1049
+ * Range calendar: `selected` is a `{ from, to }` pair and `onSelect` reports
1050
+ * the pair react-day-picker produced, `undefined` when it cleared the range.
1051
+ *
1052
+ * @experimental
1053
+ */
1054
+ interface CalendarRangeProps extends CalendarBaseProps {
1055
+ mode: "range";
1056
+ selected?: CalendarRange | null;
1057
+ onSelect?: (range: CalendarRange | undefined) => void;
1058
+ }
1059
+ declare function Calendar({ mode, selected, onSelect, highlights, minDate, maxDate, className, classNames, captionLayout, navLayout, startMonth, endMonth, components, locale: localeProp, today: todayProp, formatters, labels, lang, weekStartsOn, ...props }: CalendarProps | CalendarRangeProps): react_jsx_runtime.JSX.Element;
932
1060
  declare namespace Calendar {
933
1061
  var displayName: string;
934
1062
  }
@@ -1167,16 +1295,33 @@ interface CategoryDividerProps extends React.HTMLAttributes<HTMLDivElement>, Var
1167
1295
  }
1168
1296
  declare const CategoryDivider: React$1.ForwardRefExoticComponent<CategoryDividerProps & React$1.RefAttributes<HTMLDivElement>>;
1169
1297
 
1298
+ /** The states a checkbox renders: checked, unchecked, or partly checked. */
1299
+ type CheckboxChecked = boolean | "indeterminate";
1170
1300
  interface CheckboxProps extends Omit<React$1.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>, "checked" | "defaultChecked"> {
1171
- /** Optional inline label rendered to the right of the box */
1301
+ /** Optional inline label rendered to the right of the box. Names the button through `htmlFor`. */
1172
1302
  label?: string;
1173
1303
  /** Tri-state support: true | false | "indeterminate" */
1174
- checked?: boolean | "indeterminate";
1175
- defaultChecked?: boolean | "indeterminate";
1176
- /** Convenience: render with indeterminate state. Mirrors legacy prop. */
1304
+ checked?: CheckboxChecked;
1305
+ defaultChecked?: CheckboxChecked;
1306
+ /**
1307
+ * Render the indeterminate state.
1308
+ *
1309
+ * @deprecated Pass `checked="indeterminate"` instead (C-CHECKBOX-INDET;
1310
+ * codemod CM-11 rewrites it). Removed in 3.0.
1311
+ */
1177
1312
  indeterminate?: boolean;
1178
1313
  /** Box shape. Defaults to "square". */
1179
1314
  shape?: "square" | "circle";
1315
+ /**
1316
+ * The value submitted with `name` while checked. Default `"on"`, like a
1317
+ * native checkbox.
1318
+ */
1319
+ value?: string;
1320
+ /**
1321
+ * The checkbox is in error: `aria-invalid` and `data-invalid`. Implied by
1322
+ * the surrounding `Field`'s `invalid` or a mounted `FieldError`.
1323
+ */
1324
+ invalid?: boolean;
1180
1325
  }
1181
1326
  declare const Checkbox: React$1.ForwardRefExoticComponent<CheckboxProps & React$1.RefAttributes<HTMLButtonElement>>;
1182
1327
 
@@ -1229,12 +1374,111 @@ interface CommandItem {
1229
1374
  }
1230
1375
  interface CommandPaletteProps {
1231
1376
  items: CommandItem[];
1377
+ /** Controlled open state. Omit for the uncontrolled palette (Cmd/Ctrl+K toggles it). */
1232
1378
  open?: boolean;
1379
+ /** The initial open state of an uncontrolled palette. Default `false`. */
1380
+ defaultOpen?: boolean;
1233
1381
  onOpenChange?: (open: boolean) => void;
1382
+ /** The search input's placeholder. Default `messages.search` (`"Type a command or search..."`). */
1234
1383
  placeholder?: string;
1384
+ /** Overrides of the copy the palette renders (W5-22). */
1385
+ messages?: Partial<CommandPaletteMessages>;
1235
1386
  }
1236
1387
 
1237
- declare function CommandPalette({ items, open: controlledOpen, onOpenChange, placeholder, }: CommandPaletteProps): react_jsx_runtime.JSX.Element;
1388
+ declare function CommandPalette({ items, open: controlledOpen, defaultOpen, onOpenChange, placeholder: placeholderProp, messages: messagesProp, }: CommandPaletteProps): react_jsx_runtime.JSX.Element;
1389
+
1390
+ /** The meaning of a confirmation, as on `Button`. @experimental */
1391
+ type ConfirmIntent = Extract<Intent, "brand" | "neutral" | "success" | "danger">;
1392
+ /**
1393
+ * How the dialog presents (W5-09). `dialog` (default) is the centred box;
1394
+ * `responsive` renders the same content as a bottom sheet below the `sm`
1395
+ * breakpoint once the overlay primitives support it. Forwarded as is.
1396
+ *
1397
+ * @experimental
1398
+ */
1399
+ type ConfirmPresentation = "dialog" | "responsive";
1400
+ /** Where focus starts when a `ConfirmDialog` opens. @experimental */
1401
+ type ConfirmInitialFocus = "cancel" | "confirm" | "none";
1402
+ /** The result of `onConfirm`: `false` keeps the dialog open. @experimental */
1403
+ type ConfirmResult = void | boolean;
1404
+ /**
1405
+ * Props of `ConfirmDialog`.
1406
+ *
1407
+ * @experimental
1408
+ */
1409
+ interface ConfirmDialogProps {
1410
+ /** Controlled open state. */
1411
+ open?: boolean;
1412
+ /** Initial open state for uncontrolled usage. */
1413
+ defaultOpen?: boolean;
1414
+ /** Called when the dialog requests an open-state change. */
1415
+ onOpenChange?: (open: boolean) => void;
1416
+ /**
1417
+ * Element rendered as the dialog trigger (`<AlertDialogTrigger asChild>`).
1418
+ * Omit it when the dialog is driven entirely by `open` / `onOpenChange`.
1419
+ */
1420
+ trigger?: React$1.ReactNode;
1421
+ /** The question. Required: an alert dialog needs a name. */
1422
+ title: React$1.ReactNode;
1423
+ /** The explanation under the title (inline content — it renders in a paragraph). */
1424
+ description?: React$1.ReactNode;
1425
+ /**
1426
+ * Block content between the description and the actions: a form field, a
1427
+ * list of what will be affected, a fee notice. Not read as the dialog's
1428
+ * description; label it on its own.
1429
+ */
1430
+ children?: React$1.ReactNode;
1431
+ /** The confirm button's label. Default: `messages.confirm` (`"Confirm"`). */
1432
+ confirmLabel?: React$1.ReactNode;
1433
+ /** The confirm button's label while `onConfirm` is pending. Default: `confirmLabel`. */
1434
+ pendingLabel?: React$1.ReactNode;
1435
+ /** The cancel button's label. Default: `messages.cancel` (`"Cancel"`). */
1436
+ cancelLabel?: React$1.ReactNode;
1437
+ /** Overrides of the copy the dialog renders; the provider's `messages.confirm` sits below. */
1438
+ messages?: Partial<ConfirmMessages>;
1439
+ /**
1440
+ * Awaited. The dialog closes when it resolves (to anything but `false`)
1441
+ * and stays open when it rejects or resolves `false`.
1442
+ */
1443
+ onConfirm: () => ConfirmResult | Promise<ConfirmResult>;
1444
+ /** Called when the user cancels (button, Escape, backdrop). */
1445
+ onCancel?: () => void;
1446
+ /**
1447
+ * Called when `onConfirm` rejects, with the rejection. The dialog stays
1448
+ * open either way; see `inlineError` for what renders.
1449
+ */
1450
+ onError?: (error: unknown) => void;
1451
+ /**
1452
+ * Whether a rejection renders inline (a `FieldError`-style alert under the
1453
+ * content: the `Error`'s message, or `messages.failed`). Default `true`.
1454
+ * `false` leaves the surfacing to `onError` (a toast, for example).
1455
+ */
1456
+ inlineError?: boolean;
1457
+ /** Meaning. Default `danger`. See {@link ConfirmIntent}. */
1458
+ intent?: ConfirmIntent;
1459
+ /**
1460
+ * Where focus starts when the dialog opens. Default: `cancel` for `danger`
1461
+ * (a destructive confirmation must not proceed on a reflex Enter), `confirm`
1462
+ * for every other intent. `none` leaves it to the content — the element
1463
+ * with `autoFocus` inside `children`, as `usePrompt` does for its input.
1464
+ */
1465
+ initialFocus?: ConfirmInitialFocus;
1466
+ /** Disables the confirm button (a type-to-confirm or required field that is not satisfied yet). */
1467
+ confirmDisabled?: boolean;
1468
+ /** Presentation. Default `dialog`. See {@link ConfirmPresentation}. */
1469
+ presentation?: ConfirmPresentation;
1470
+ /** Forwarded to the content for one-off layout overrides. */
1471
+ className?: string;
1472
+ }
1473
+ /**
1474
+ * The confirmation pattern (W5-16). See the file comment.
1475
+ *
1476
+ * @experimental
1477
+ */
1478
+ declare function ConfirmDialog({ open, defaultOpen, onOpenChange, trigger, title, description, children, confirmLabel, pendingLabel, cancelLabel, messages: messagesOverride, onConfirm, onCancel, onError, inlineError, intent, initialFocus, confirmDisabled, presentation, className, }: ConfirmDialogProps): react_jsx_runtime.JSX.Element;
1479
+ declare namespace ConfirmDialog {
1480
+ var displayName: string;
1481
+ }
1238
1482
 
1239
1483
  interface ConfirmActionButtonProps {
1240
1484
  /** Element rendered as the dialog trigger via `<AlertDialogTrigger asChild>`.
@@ -1244,16 +1488,45 @@ interface ConfirmActionButtonProps {
1244
1488
  trigger?: React$1.ReactNode;
1245
1489
  title: React$1.ReactNode;
1246
1490
  description?: React$1.ReactNode;
1491
+ /** Default `"Confirm"` (the provider's `messages.confirm.confirm`). */
1247
1492
  confirmLabel?: React$1.ReactNode;
1248
1493
  /** Shown on the confirm button while `onConfirm` is awaiting. Falls back to
1249
1494
  * `confirmLabel` when omitted, so existing callers are unaffected. */
1250
1495
  pendingLabel?: React$1.ReactNode;
1496
+ /** Default `"Cancel"` (the provider's `messages.confirm.cancel`). */
1251
1497
  cancelLabel?: React$1.ReactNode;
1252
- /** Awaited; dialog closes after resolve, stays open on reject. */
1253
- onConfirm: () => void | Promise<void>;
1254
- /** When true (default) the Action button uses the destructive palette;
1255
- * when false it uses the brand primary palette (bg-brand). */
1498
+ /** Awaited; dialog closes after resolve, stays open on reject (or a resolved `false`). */
1499
+ onConfirm: () => void | boolean | Promise<void | boolean>;
1500
+ /** Called with the rejection of `onConfirm` (the dialog stays open). @experimental */
1501
+ onError?: (error: unknown) => void;
1502
+ /**
1503
+ * When true (default) the Action button uses the destructive palette;
1504
+ * when false it uses the brand primary palette.
1505
+ *
1506
+ * Alias of `intent` (W5-17): `true` is `intent="danger"`, `false` is
1507
+ * `intent="brand"`. `intent`, when passed, wins.
1508
+ */
1256
1509
  destructive?: boolean;
1510
+ /**
1511
+ * Meaning of the confirmation, as on `ConfirmDialog`: `danger` (default)
1512
+ * keeps the destructive action and starts focus on Cancel; `brand`,
1513
+ * `neutral` and `success` render the action through the Button recipe and
1514
+ * start focus on the confirm button.
1515
+ *
1516
+ * @experimental
1517
+ */
1518
+ intent?: ConfirmIntent;
1519
+ /**
1520
+ * Render the rejection of `onConfirm` inline under the description instead
1521
+ * of leaving it to the consumer. Default `false` (the 1.x behaviour).
1522
+ *
1523
+ * @experimental
1524
+ */
1525
+ inlineError?: boolean;
1526
+ /** Presentation of the dialog (W5-09). Default `dialog`. @experimental */
1527
+ presentation?: ConfirmPresentation;
1528
+ /** Block content between the description and the actions (a form field). @experimental */
1529
+ children?: React$1.ReactNode;
1257
1530
  /** Forwarded to AlertDialogContent for one-off layout overrides. */
1258
1531
  contentClassName?: string;
1259
1532
  /** Controlled open state for menu-hoisted or externally triggered dialogs. */
@@ -1263,7 +1536,7 @@ interface ConfirmActionButtonProps {
1263
1536
  /** Called when the dialog requests an open-state change. */
1264
1537
  onOpenChange?: (open: boolean) => void;
1265
1538
  }
1266
- declare function ConfirmActionButton({ trigger, title, description, confirmLabel, pendingLabel, cancelLabel, onConfirm, destructive, contentClassName, open, defaultOpen, onOpenChange, }: ConfirmActionButtonProps): react_jsx_runtime.JSX.Element;
1539
+ declare function ConfirmActionButton({ trigger, title, description, confirmLabel, pendingLabel, cancelLabel, onConfirm, onError, destructive, intent, inlineError, presentation, children, contentClassName, open, defaultOpen, onOpenChange, }: ConfirmActionButtonProps): react_jsx_runtime.JSX.Element;
1267
1540
 
1268
1541
  declare const ContextMenu: React$1.FC<ContextMenuPrimitive.ContextMenuProps>;
1269
1542
  declare const ContextMenuTrigger: React$1.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuTriggerProps & React$1.RefAttributes<HTMLSpanElement>>;
@@ -1277,9 +1550,17 @@ declare const ContextMenuSubTrigger: React$1.ForwardRefExoticComponent<Omit<Cont
1277
1550
  declare const ContextMenuSubContent: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1278
1551
  declare const ContextMenuContent: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1279
1552
  interface ContextMenuItemProps extends React$1.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> {
1553
+ /** Render as a destructive (danger) action — the `intent="danger"` look of the shared Menu recipe. */
1280
1554
  destructive?: boolean;
1555
+ /** Increase left padding to align with checkbox/radio items. */
1281
1556
  inset?: boolean;
1282
1557
  }
1558
+ /**
1559
+ * A menu item. Activation fires both `onSelect` (canonical; call
1560
+ * `event.preventDefault()` on it to keep the menu open) and `onClick`
1561
+ * (tolerated): Radix composes `onClick` with its select handler and a
1562
+ * keyboard activation clicks the element.
1563
+ */
1283
1564
  declare const ContextMenuItem: React$1.ForwardRefExoticComponent<ContextMenuItemProps & React$1.RefAttributes<HTMLDivElement>>;
1284
1565
  declare const ContextMenuCheckboxItem: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuCheckboxItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1285
1566
  declare const ContextMenuRadioItem: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuRadioItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
@@ -1295,6 +1576,8 @@ declare const ContextMenuShortcut: {
1295
1576
  interface CopyButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
1296
1577
  value: string;
1297
1578
  feedbackDuration?: number;
1579
+ /** Overrides of the two accessible names (W5-22): prop > provider `messages.copyButton` > English. */
1580
+ messages?: Partial<CopyButtonMessages>;
1298
1581
  }
1299
1582
  /**
1300
1583
  * CopyButton — single-click clipboard copy with check-mark feedback.
@@ -1322,10 +1605,25 @@ declare function isoToYear(iso: string | undefined | null): string;
1322
1605
  declare function yearToIso(year: string): string;
1323
1606
  /** Apply the `YYYY` mask while the user types. */
1324
1607
  declare function applyYearMask(input: string): string;
1608
+ /** A display pattern: the tokens `MM`, `DD` and `YYYY`, once each, around literal separators — `"MM/DD/YYYY"`, `"DD.MM.YYYY"`, `"YYYY-MM-DD"`. */
1609
+ type DatePattern = string;
1325
1610
 
1326
1611
  interface DatePickerProps {
1327
- value?: string;
1612
+ /** ISO `YYYY-MM-DD`; `""` or `null` is "controlled, empty". */
1613
+ value?: string | null;
1328
1614
  defaultValue?: string;
1615
+ /**
1616
+ * The value callback: the ISO date, or `null` when the field is cleared.
1617
+ * Fires before the legacy `onChange` when both are passed.
1618
+ *
1619
+ * @experimental
1620
+ */
1621
+ onValueChange?: (value: string | null) => void;
1622
+ /**
1623
+ * Legacy fake-event callback (C-DATE-FAKEEVENT): `{ target: { name, value } }`
1624
+ * with the ISO string (`""` when cleared). Prefer `onValueChange`; codemod
1625
+ * CM-10 rewrites the recognisable shapes.
1626
+ */
1329
1627
  onChange?: (event: {
1330
1628
  target: {
1331
1629
  name?: string;
@@ -1333,6 +1631,22 @@ interface DatePickerProps {
1333
1631
  };
1334
1632
  }) => void;
1335
1633
  name?: string;
1634
+ /** `id` of the form to submit with when the picker is rendered outside it (Dialog, Sheet). */
1635
+ form?: string;
1636
+ /**
1637
+ * BCP 47 tag deciding the typed pattern, the mask and the default
1638
+ * placeholder. Default: the provider's locale, else `"en-US"` (`MM/DD/YYYY`).
1639
+ *
1640
+ * @experimental
1641
+ */
1642
+ locale?: string;
1643
+ /**
1644
+ * The display pattern, overriding the locale's: `MM`, `DD` and `YYYY`
1645
+ * once each around literal separators (`"DD.MM.YYYY"`). Ignored in year mode.
1646
+ *
1647
+ * @experimental
1648
+ */
1649
+ dateFormat?: DatePattern;
1336
1650
  id?: string;
1337
1651
  label?: string;
1338
1652
  error?: string;
@@ -1377,11 +1691,33 @@ interface DateRangeValue {
1377
1691
  from?: string;
1378
1692
  to?: string;
1379
1693
  }
1694
+ /** The two form field names of a range. */
1695
+ interface DateRangeNames {
1696
+ from: string;
1697
+ to: string;
1698
+ }
1380
1699
  interface DateRangePickerProps {
1381
1700
  value?: DateRangeValue;
1382
1701
  defaultValue?: DateRangeValue;
1383
1702
  onChange?: (value: DateRangeValue) => void;
1703
+ /** Base of the two field names: `${name}_from` / `${name}_to` unless `names` says otherwise. */
1384
1704
  name?: string;
1705
+ /**
1706
+ * Explicit field names for the two edges, replacing the `${name}_from` /
1707
+ * `${name}_to` default (C-DATERANGE-NAMES, kept through 2.x).
1708
+ *
1709
+ * @experimental
1710
+ */
1711
+ names?: DateRangeNames;
1712
+ /** `id` of the form to submit with when the picker is rendered outside it (Dialog, Sheet). */
1713
+ form?: string;
1714
+ /**
1715
+ * BCP 47 tag deciding the displayed pattern of both edges and the
1716
+ * calendar's language. Default: the provider's locale, else `"en-US"`.
1717
+ *
1718
+ * @experimental
1719
+ */
1720
+ locale?: string;
1385
1721
  id?: string;
1386
1722
  label?: string;
1387
1723
  error?: string;
@@ -1404,28 +1740,106 @@ declare const Dialog: React$1.FC<DialogPrimitive.DialogProps>;
1404
1740
  declare const DialogTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
1405
1741
  declare const DialogPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
1406
1742
  declare const DialogOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1407
- declare const dialogSizeStyles: {
1408
- readonly sm: "ds:max-w-sm";
1409
- readonly md: "ds:max-w-lg";
1410
- readonly lg: "ds:max-w-2xl";
1411
- readonly full: "ds:max-w-[calc(100vw-2rem)]";
1412
- };
1743
+ /**
1744
+ * Width of a `DialogContent`, as a step of the dialog width scale (W5-05):
1745
+ * `sm` 24rem · `md` 32rem (default) · `lg` 42rem · `xl` 56rem · `full` the
1746
+ * viewport minus a 1rem gutter. `sm`/`md`/`lg`/`full` are the 1.x steps,
1747
+ * pixel for pixel; `xl` is new. Every step yields to `--ds-dialog-width`
1748
+ * when a consumer sets it (on the content, or on a scope above it), which
1749
+ * is the replacement for the `!max-w-*` overrides products write today.
1750
+ *
1751
+ * @experimental
1752
+ */
1753
+ type DialogSize = "sm" | "md" | "lg" | "xl" | "full";
1754
+ /**
1755
+ * Height of a `DialogContent` (W5-05). `auto` (default) grows with the
1756
+ * content and scrolls the whole box past `100vh - 6rem`, as it always did.
1757
+ * A fixed step (`sm` 24rem · `md` 32rem · `lg` 44rem · `full` the viewport
1758
+ * minus the same gutter, each capped at the viewport) turns the box into a
1759
+ * column whose `DialogBody` is the scroll region, so header and footer stay
1760
+ * put while long content scrolls.
1761
+ *
1762
+ * @experimental
1763
+ */
1764
+ type DialogHeight = "auto" | "sm" | "md" | "lg" | "full";
1765
+ /**
1766
+ * How a `DialogContent` presents (W5-09). `dialog` (default) is the centred
1767
+ * box. `responsive` renders the same content as a bottom sheet below the `sm`
1768
+ * breakpoint (full width, top corners rounded, safe-area padding, `85vh`
1769
+ * cap) and as the centred box from it — one Radix root and one content node
1770
+ * whose surface CSS switches at the breakpoint, so focus, form state and
1771
+ * scroll position survive a resize or rotation. `size` and `--ds-dialog-width`
1772
+ * apply to the centred form only.
1773
+ *
1774
+ * @experimental
1775
+ */
1776
+ type DialogPresentation = "dialog" | "responsive";
1777
+ /**
1778
+ * The copy a `Dialog` renders (target architecture §24.5). English defaults
1779
+ * until the messages contract of the provider lands (W5-20).
1780
+ *
1781
+ * @experimental
1782
+ */
1783
+ interface DialogMessages {
1784
+ /** The accessible name of the built-in close button. Default `"Close"`. */
1785
+ close: string;
1786
+ }
1787
+ /**
1788
+ * Props of `DialogContent`: Radix's content props plus the sizing and
1789
+ * dismiss options.
1790
+ *
1791
+ * @experimental
1792
+ */
1413
1793
  interface DialogContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {
1414
- size?: keyof typeof dialogSizeStyles;
1794
+ /** Width step. Default `md`. See {@link DialogSize}. */
1795
+ size?: DialogSize;
1796
+ /** Height step. Default `auto`. See {@link DialogHeight}. */
1797
+ height?: DialogHeight;
1798
+ /** Centred box, or a bottom sheet below `sm`. Default `dialog`. See {@link DialogPresentation}. */
1799
+ presentation?: DialogPresentation;
1415
1800
  /**
1416
1801
  * If false, the built-in close button is hidden. Default: true.
1417
1802
  * Use `<DialogClose>` inside content to render your own close UI.
1418
1803
  */
1419
1804
  showCloseButton?: boolean;
1805
+ /**
1806
+ * The accessible name of the built-in close button. Takes precedence over
1807
+ * `messages.close`. Default `"Close"`.
1808
+ */
1809
+ closeLabel?: string;
1810
+ /** Overrides of the copy the dialog renders (English defaults until W5-20). */
1811
+ messages?: Partial<DialogMessages>;
1420
1812
  }
1421
1813
  declare const DialogContent: React$1.ForwardRefExoticComponent<DialogContentProps & React$1.RefAttributes<HTMLDivElement>>;
1422
1814
  declare const DialogClose: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
1423
1815
  declare const DialogHeader: {
1424
- ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
1816
+ (props: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
1425
1817
  displayName: string;
1426
1818
  };
1819
+ /**
1820
+ * Props of `DialogBody` (W5-05).
1821
+ *
1822
+ * @experimental
1823
+ */
1824
+ interface DialogBodyProps extends React$1.HTMLAttributes<HTMLDivElement> {
1825
+ /**
1826
+ * Inner padding. Default `none`: the content box already pads itself
1827
+ * (`p-6`), so the body only needs its own padding when the content is
1828
+ * `height`-fixed and a scrolling region wants breathing room.
1829
+ */
1830
+ padding?: "none" | "sm" | "md" | "lg";
1831
+ }
1832
+ /**
1833
+ * The scroll region of a dialog between `DialogHeader` and `DialogFooter`
1834
+ * (W5-05). With `height="auto"` (the default) the whole content scrolls as
1835
+ * before and the body is a plain block; with a fixed `height` it takes the
1836
+ * remaining height and scrolls while the header and footer stay in place.
1837
+ *
1838
+ * @experimental
1839
+ */
1840
+ declare const DialogBody: React$1.ForwardRefExoticComponent<DialogBodyProps & React$1.RefAttributes<HTMLDivElement>>;
1427
1841
  declare const DialogFooter: {
1428
- ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
1842
+ (props: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
1429
1843
  displayName: string;
1430
1844
  };
1431
1845
  declare const DialogTitle: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
@@ -1526,6 +1940,22 @@ interface DonutChartProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "ch
1526
1940
  }
1527
1941
  declare const DonutChart: React$1.ForwardRefExoticComponent<DonutChartProps & React$1.RefAttributes<HTMLDivElement>>;
1528
1942
 
1943
+ /**
1944
+ * L1a behaviour primitive (private). Not exported from the package.
1945
+ *
1946
+ * The `width` of a menu content surface (W5-13; target architecture §14
1947
+ * "Menus: `width: auto | trigger | sm | md`" — 62% of consumer
1948
+ * `DropdownMenuContent` uses override the width by class today). `auto` is
1949
+ * the default and adds nothing, so every existing menu keeps its class string
1950
+ * byte for byte; the other values are opt-in. `trigger` reads the Popper
1951
+ * variable Radix stamps on the content, so the menu is as wide as the element
1952
+ * that opened it.
1953
+ *
1954
+ * Full literals, one per row, so Tailwind's scanner sees them.
1955
+ */
1956
+ /** How wide a menu content surface is. */
1957
+ type MenuWidth = "auto" | "trigger" | "sm" | "md";
1958
+
1529
1959
  declare const DropdownMenu: React$1.FC<DropdownMenuPrimitive.DropdownMenuProps>;
1530
1960
  declare const DropdownMenuTrigger: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
1531
1961
  declare const DropdownMenuGroup: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React$1.RefAttributes<HTMLDivElement>>;
@@ -1536,13 +1966,32 @@ declare const DropdownMenuSubTrigger: React$1.ForwardRefExoticComponent<Omit<Dro
1536
1966
  inset?: boolean;
1537
1967
  } & React$1.RefAttributes<HTMLDivElement>>;
1538
1968
  declare const DropdownMenuSubContent: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1539
- declare const DropdownMenuContent: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1969
+ interface DropdownMenuContentProps extends React$1.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content> {
1970
+ /**
1971
+ * The width of the menu surface. `auto` (default) sizes to the items with
1972
+ * the 10rem minimum; `trigger` matches the element that opened the menu;
1973
+ * `sm` and `md` are fixed widths (12rem, 16rem). Replaces the `w-*` class
1974
+ * overrides most consumers write today.
1975
+ * @default "auto"
1976
+ */
1977
+ width?: MenuWidth;
1978
+ }
1979
+ declare const DropdownMenuContent: React$1.ForwardRefExoticComponent<DropdownMenuContentProps & React$1.RefAttributes<HTMLDivElement>>;
1540
1980
  interface DropdownMenuItemProps extends React$1.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> {
1541
- /** Render as a destructive (danger) action. */
1981
+ /**
1982
+ * Render as a destructive (danger) action — the `intent="danger"` look of
1983
+ * the shared Menu recipe (`menu.item.destructive.*` tokens).
1984
+ */
1542
1985
  destructive?: boolean;
1543
1986
  /** Increase left padding to align with checkbox/radio items. */
1544
1987
  inset?: boolean;
1545
1988
  }
1989
+ /**
1990
+ * A menu item. Activation fires both `onSelect` (canonical; call
1991
+ * `event.preventDefault()` on it to keep the menu open) and `onClick`
1992
+ * (tolerated): Radix composes `onClick` with its select handler and a
1993
+ * keyboard activation clicks the element.
1994
+ */
1546
1995
  declare const DropdownMenuItem: React$1.ForwardRefExoticComponent<DropdownMenuItemProps & React$1.RefAttributes<HTMLDivElement>>;
1547
1996
  declare const DropdownMenuCheckboxItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1548
1997
  declare const DropdownMenuRadioItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
@@ -1556,7 +2005,8 @@ declare const DropdownMenuShortcut: {
1556
2005
  };
1557
2006
 
1558
2007
  /**
1559
- * EmptyState — display headline (Inter), fg-3 description, neutral icon halo on bg-2.
2008
+ * EmptyState — display headline (Inter), fg-3 description, icon tile on surface-2 with a
2009
+ * hairline ring (Polish 2 §3.10: the tile reads as a surface, the icon as content).
1560
2010
  *
1561
2011
  * Public API preserved: `icon`, `title`, `description`, `action`.
1562
2012
  */
@@ -1633,21 +2083,87 @@ interface FileTypeBadgeProps extends Omit<React.HTMLAttributes<HTMLSpanElement>,
1633
2083
  }
1634
2084
  declare const FileTypeBadge: React$1.ForwardRefExoticComponent<FileTypeBadgeProps & React$1.RefAttributes<HTMLSpanElement>>;
1635
2085
 
2086
+ /**
2087
+ * The looks of the dropzone: `default` stacks the icon and the copy in a
2088
+ * padded tile; `compact` lays them out in one row for dialogs and dense
2089
+ * forms.
2090
+ *
2091
+ * @experimental
2092
+ */
2093
+ type FileUploadVariant = "default" | "compact";
2094
+
2095
+ /**
2096
+ * Props of `FileUpload`.
2097
+ *
2098
+ * @experimental The W4-24 additions (`name`, `form`, `required`, `classNames`,
2099
+ * `variant`, `inputRef`) are experimental; the legacy props keep their contract.
2100
+ */
1636
2101
  interface FileUploadProps extends React.HTMLAttributes<HTMLDivElement> {
1637
2102
  accept?: string;
1638
2103
  maxSize?: number;
1639
2104
  multiple?: boolean;
1640
2105
  onFilesSelected?: (files: File[]) => void;
1641
2106
  disabled?: boolean;
2107
+ /**
2108
+ * The form field name. With it the owned `<input type="file">` submits the
2109
+ * selected or dropped files; a surrounding `Field` can supply it.
2110
+ */
2111
+ name?: string;
2112
+ /** `id` of the form to submit with when the dropzone is rendered outside it. */
2113
+ form?: string;
2114
+ /** Block native submission while no file is selected. */
2115
+ required?: boolean;
2116
+ /** `default` (stacked tile) or `compact` (one row). */
2117
+ variant?: FileUploadVariant;
2118
+ /**
2119
+ * One class per part, keyed by `FileUploadSlot` (ADR-008). `className`
2120
+ * keeps landing on the root; `dropzone` is the `<label>` that
2121
+ * `[&_label]` selectors reach for today (C-DOM-04), `input` the file
2122
+ * input, `error` the message.
2123
+ */
2124
+ classNames?: Partial<Record<Exclude<FileUploadSlot, "root">, string>>;
2125
+ /** A ref to the owned file input. */
2126
+ inputRef?: React.Ref<HTMLInputElement>;
2127
+ /** Overrides for the default dropzone copy (W5-20). @experimental */
2128
+ messages?: Partial<FileUploadMessages>;
1642
2129
  }
1643
- declare function FileUpload({ accept, maxSize, multiple, onFilesSelected, disabled, className, children, ...props }: FileUploadProps): react_jsx_runtime.JSX.Element;
2130
+ declare function FileUpload({ accept, maxSize, multiple, onFilesSelected, disabled, name, form, required, variant, classNames, inputRef: inputRefProp, messages: messagesProp, className, children, ...props }: FileUploadProps): react_jsx_runtime.JSX.Element;
1644
2131
 
2132
+ /**
2133
+ * `FormError` / `FormSuccess` — the pre-Field inline messages (contract
2134
+ * C-FORM-MSG, replaced by the Field parts in W4-25, removed in 3.0).
2135
+ *
2136
+ * They are deliberately **not** thin adapters over `FieldError` and
2137
+ * `FieldDescription`: the Field parts stamp `data-slot="field-error"` /
2138
+ * `data-slot="field-description"`, always render a part `id` (a `useId`
2139
+ * fallback outside a `Field`), and `FieldError` renders nothing without
2140
+ * content and chooses its `role` from the mount timing — none of which
2141
+ * today's `<p role="alert"><svg/><span>…</span></p>` has. Rendering through
2142
+ * the parts would therefore change the DOM every consumer freezes (C-DOM
2143
+ * snapshots) for no visible gain, so the markup below stays byte for byte
2144
+ * until 3.0 and the replacement is a call-site migration:
2145
+ *
2146
+ * ```tsx
2147
+ * <Field invalid={!!error}>
2148
+ * <Label>Email</Label>
2149
+ * <Input />
2150
+ * <FieldError>{error}</FieldError>
2151
+ * </Field>
2152
+ * ```
2153
+ *
2154
+ * `FormSuccess` has no Field counterpart by design: a confirmation is a
2155
+ * `FieldDescription` (or a toast), not a field state.
2156
+ */
1645
2157
  interface FormErrorProps extends React.HTMLAttributes<HTMLParagraphElement> {
1646
2158
  children: React.ReactNode;
1647
2159
  }
1648
2160
  /**
1649
2161
  * Inline form error — paired below an input to communicate validation failure.
1650
2162
  * Uses architectural --color-danger-fg token.
2163
+ *
2164
+ * @deprecated Use `FieldError` inside a `Field` (W4-25, C-FORM-MSG): it wires
2165
+ * `aria-describedby` and `aria-invalid` on the control and announces itself
2166
+ * only after an interaction. Removed in 3.0.
1651
2167
  */
1652
2168
  declare function FormError({ children, className, ...props }: FormErrorProps): react_jsx_runtime.JSX.Element;
1653
2169
  interface FormSuccessProps extends React.HTMLAttributes<HTMLParagraphElement> {
@@ -1656,6 +2172,10 @@ interface FormSuccessProps extends React.HTMLAttributes<HTMLParagraphElement> {
1656
2172
  /**
1657
2173
  * Inline form success — paired below an input to confirm a saved value.
1658
2174
  * Uses architectural --color-success-fg token.
2175
+ *
2176
+ * @deprecated Use `FieldDescription` inside a `Field` for a per-field
2177
+ * confirmation, or a toast for a saved form (W4-25, C-FORM-MSG). Removed in
2178
+ * 3.0.
1659
2179
  */
1660
2180
  declare function FormSuccess({ children, className, ...props }: FormSuccessProps): react_jsx_runtime.JSX.Element;
1661
2181
 
@@ -1674,6 +2194,21 @@ declare function FormSuccess({ children, className, ...props }: FormSuccessProps
1674
2194
  * For marketing-style centered section heads, prefer `<SectionHeader>`.
1675
2195
  * For lower-level title+description blocks that aren't part of a form,
1676
2196
  * use `<SectionHead>` from `./section`.
2197
+ *
2198
+ * Contract C-FORM-MSG (W4-25): replaced by `Fieldset` + `FieldsetLegend`,
2199
+ * removed in 3.0. It is deliberately **not** an adapter over them: `Fieldset`
2200
+ * stamps `data-slot="fieldset"` and lays its children out as a
2201
+ * `flex-col gap-3` column, `FieldsetLegend` adds `mb-1.5` — both would move
2202
+ * the heading row and the fields this component renders today. The markup
2203
+ * below therefore stays byte for byte until 3.0; the replacement is a
2204
+ * call-site migration:
2205
+ *
2206
+ * ```tsx
2207
+ * <Fieldset>
2208
+ * <FieldsetLegend>Contact</FieldsetLegend>
2209
+ * <Field>…</Field>
2210
+ * </Fieldset>
2211
+ * ```
1677
2212
  */
1678
2213
  interface FormSectionProps extends Omit<React.FieldsetHTMLAttributes<HTMLFieldSetElement>, "title"> {
1679
2214
  /** The section heading (renders as `<legend>` text). */
@@ -1685,12 +2220,53 @@ interface FormSectionProps extends Omit<React.FieldsetHTMLAttributes<HTMLFieldSe
1685
2220
  /** Space between the heading block and the fields. Default `mt-4`. */
1686
2221
  headSpacing?: string;
1687
2222
  }
2223
+ /**
2224
+ * A grouped block of a settings/profile form: `<fieldset>` + `<legend>` with
2225
+ * an optional description and trailing action.
2226
+ *
2227
+ * @deprecated Use `Fieldset` with `FieldsetLegend` (W4-25, C-FORM-MSG); put
2228
+ * a description in a `Text` and each control in its own `Field`. Removed in
2229
+ * 3.0.
2230
+ */
1688
2231
  declare const FormSection: React$1.ForwardRefExoticComponent<FormSectionProps & React$1.RefAttributes<HTMLFieldSetElement>>;
1689
2232
 
2233
+ /**
2234
+ * How wide a floating surface is (W5-11; target architecture §14 "Popover /
2235
+ * HoverCard: `width: auto | trigger | sm | md | lg`" — 100% of consumer
2236
+ * `PopoverContent` uses override width or padding by class today). `auto`
2237
+ * adds nothing (the content sizes the box); `trigger` reads the popper
2238
+ * variable Radix stamps on the content; `sm`/`md`/`lg` are 16/18/24rem —
2239
+ * `md` is the `w-72` Popover always wrote, `sm` the `w-64` of HoverCard.
2240
+ */
2241
+ type FloatingWidth = "auto" | "trigger" | "sm" | "md" | "lg";
2242
+ /** Inner padding of a floating surface; `md` is the `p-4` both adopters wrote. */
2243
+ type FloatingPadding = "none" | "sm" | "md";
2244
+
2245
+ /** How wide a `HoverCardContent` is. @experimental */
2246
+ type HoverCardWidth = FloatingWidth;
2247
+ /** Inner padding of a `HoverCardContent`. @experimental */
2248
+ type HoverCardPadding = FloatingPadding;
1690
2249
  declare const HoverCard: React$1.FC<HoverCardPrimitive.HoverCardProps>;
1691
2250
  declare const HoverCardTrigger: React$1.ForwardRefExoticComponent<HoverCardPrimitive.HoverCardTriggerProps & React$1.RefAttributes<HTMLAnchorElement>>;
1692
2251
  declare const HoverCardPortal: React$1.FC<HoverCardPrimitive.HoverCardPortalProps>;
1693
- declare const HoverCardContent: React$1.ForwardRefExoticComponent<Omit<HoverCardPrimitive.HoverCardContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2252
+ interface HoverCardContentProps extends React$1.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content> {
2253
+ /**
2254
+ * The width of the surface. `sm` (default, 16rem) is what the hover card
2255
+ * always rendered; `auto` sizes to the content, `trigger` matches the
2256
+ * element that opened it, `md` and `lg` are 18rem and 24rem.
2257
+ *
2258
+ * @experimental
2259
+ */
2260
+ width?: HoverCardWidth;
2261
+ /**
2262
+ * Inner padding of the surface. `md` (default) is the `p-4` the hover card
2263
+ * always rendered; `sm` is `p-3`; `none` lets the content pad itself.
2264
+ *
2265
+ * @experimental
2266
+ */
2267
+ padding?: HoverCardPadding;
2268
+ }
2269
+ declare const HoverCardContent: React$1.ForwardRefExoticComponent<HoverCardContentProps & React$1.RefAttributes<HTMLDivElement>>;
1694
2270
 
1695
2271
  /**
1696
2272
  * IconTile — the recurring tinted rounded-square icon chip. An intent tint
@@ -1762,15 +2338,86 @@ interface IconTileProps extends React.HTMLAttributes<HTMLDivElement>, IconTileVa
1762
2338
  declare const IconTile: React$1.ForwardRefExoticComponent<IconTileProps & React$1.RefAttributes<HTMLDivElement>>;
1763
2339
 
1764
2340
  /**
1765
- * Input variants. Mirrors the raw HTML `<input>` styled per the suite tokens
1766
- * (rule-strong border, surface bg, accent focus ring).
2341
+ * The emphases an Input offers: the shared chrome's `default` (a
2342
+ * `--color-rule-strong` hairline) and `ghost` (no border and no background
2343
+ * until focused). Spelled out rather than aliased to the recipe's private
2344
+ * type so the public declaration names no unexported symbol; the
2345
+ * `satisfies` below keeps the two in step.
2346
+ *
2347
+ * @experimental
2348
+ */
2349
+ type InputVariant = "default" | "ghost";
2350
+ /**
2351
+ * The 1.31 aliases of `sm` / `md` / `lg` (C-INPUT-SIZE). No known consumer
2352
+ * uses them; they leave with `inputSize` in 3.0.
2353
+ *
2354
+ * @deprecated Use `size="sm"`, `"md"` or `"lg"`.
2355
+ * @experimental
2356
+ */
2357
+ type InputSizeAlias = "compact" | "default" | "comfortable";
2358
+ /**
2359
+ * The size names an Input knows (W4-05, ADR-013): the shared control scale
2360
+ * `xs · sm · md · lg · xl` (`ControlSize`) and the 1.31 aliases.
2361
+ *
2362
+ * `sm` and `md` are today's pixels *and* the scale's steps (32 / 36px), so
2363
+ * they read `--control-height-{sm,md}` and follow the density scope. `lg` is
2364
+ * the A1 mismatch recorded in `baselines/size-geometry.json` (44px where the
2365
+ * scale says 40): it keeps today's pixels through the D5-gated compat token
2366
+ * `--input-height-lg` until decision D5 (W2-05). `xs` and `xl` are new and
2367
+ * read the shared rows in full. Padding and text of the compat rows stay on
2368
+ * Tailwind's steps — nothing about them moves until D5.
2369
+ *
2370
+ * @experimental
2371
+ */
2372
+ type InputSize = ControlSize | InputSizeAlias;
2373
+ /**
2374
+ * What {@link inputVariants} takes: the emphasis, the size (either name — the
2375
+ * new `size` wins when both are given) and cva's class props.
2376
+ *
2377
+ * @experimental
2378
+ */
2379
+ interface InputVariantsOptions {
2380
+ variant?: InputVariant | null;
2381
+ size?: InputSize | null;
2382
+ /**
2383
+ * The legacy size prop (C-INPUT-SIZE): today's rows, byte for byte, so a
2384
+ * call that has not moved to `size` renders the classes it always did.
2385
+ *
2386
+ * @deprecated Use `size`. Codemod CM-07 renames it.
2387
+ */
2388
+ inputSize?: InputSize | null;
2389
+ class?: string | null;
2390
+ className?: string | null;
2391
+ }
2392
+ /** The variant props of `inputVariants` (cva's `VariantProps` shape, kept for the API report). */
2393
+ type InputVariants = Omit<InputVariantsOptions, "class" | "className">;
2394
+ /**
2395
+ * The Input class recipe (W4-05): the shared control chrome
2396
+ * (`behavior/control-chrome.ts` — border, VN-5 focus edge + field halo,
2397
+ * `aria-invalid`, `disabled`, `ghost`) called with the emphasis and, for the
2398
+ * scale steps `xs` / `xl`, the shared size row; then the file-selector reset
2399
+ * and, for the compat sizes, Input's own row (see {@link InputSize}).
2400
+ *
2401
+ * Emits the same *set* of classes as the cva it replaces for every legacy
2402
+ * `variant` × `inputSize` (`src/primitives/__tests__/input-chrome-classes.test.tsx`
2403
+ * pins the set and the browser test pins the pixels); only the position of
2404
+ * the file reset moved, which Tailwind does not read. Server-safe.
2405
+ *
2406
+ * @experimental
2407
+ */
2408
+ declare function inputVariants({ variant, size, inputSize, class: classProp, className, }?: InputVariantsOptions): string;
2409
+ /**
2410
+ * Props of `Input` (W4-05; target architecture §24.3, §29.1).
2411
+ *
2412
+ * @experimental The name is exported since W4-05; the props it lists have been
2413
+ * stable since 1.x.
1767
2414
  */
1768
- declare const inputVariants: (props?: ({
1769
- variant?: "ghost" | "default" | null | undefined;
1770
- inputSize?: "sm" | "md" | "lg" | "default" | "compact" | "comfortable" | null | undefined;
1771
- } & class_variance_authority_types.ClassProp) | undefined) => string;
1772
- type InputVariants = VariantProps<typeof inputVariants>;
1773
2415
  interface InputProps$1 extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size">, InputVariants {
2416
+ /**
2417
+ * Sugar for the field label: renders the label above the control, bound
2418
+ * through the field wiring (`htmlFor`/`id`), exactly as
2419
+ * `<Field><Label>…</Label><Input/></Field>` binds it.
2420
+ */
1774
2421
  label?: string;
1775
2422
  /**
1776
2423
  * Render `label` inside the field instead of stacked above it: it rests like
@@ -1782,10 +2429,50 @@ interface InputProps$1 extends Omit<React.InputHTMLAttributes<HTMLInputElement>,
1782
2429
  * ("e.g. 555-0100") can still sit behind the label without competing with it.
1783
2430
  */
1784
2431
  floatingLabel?: boolean;
2432
+ /**
2433
+ * Sugar for the hint text under the control, referenced first in the
2434
+ * control's `aria-describedby` (before `error`).
2435
+ */
2436
+ description?: string;
2437
+ /**
2438
+ * Sugar for the error message: renders it under the control, linked through
2439
+ * `aria-describedby`, and marks the control invalid.
2440
+ */
1785
2441
  error?: string;
1786
- prefixIcon?: React.ReactNode;
1787
- suffixIcon?: React.ReactNode;
2442
+ /**
2443
+ * The value is invalid without a message to show: `aria-invalid`,
2444
+ * `data-invalid` and the chrome's invalid treatment. Implied by `error`.
2445
+ */
2446
+ invalid?: boolean;
2447
+ prefixIcon?: ReactNode;
2448
+ suffixIcon?: ReactNode;
2449
+ /**
2450
+ * Called with the new string value on every change, next to `onChange`
2451
+ * (which keeps receiving the event).
2452
+ */
2453
+ onValueChange?: (value: string) => void;
2454
+ /**
2455
+ * Classes per anatomy part (the `input-*` slots). The `<input>` is
2456
+ * the root part and takes `className` (C-INPUT-CLASSNAME), so it has no
2457
+ * entry here.
2458
+ */
2459
+ classNames?: Partial<Record<Exclude<InputSlot, "root">, string>>;
2460
+ /**
2461
+ * Classes for the outer wrapper around the control and its parts.
2462
+ * Transitional (C-INPUT-CLASSNAME): `className` keeps landing on the
2463
+ * `<input>` because 192 consumer overrides depend on it; this is the name
2464
+ * for the wrapper until `className` moves there in 3.0.
2465
+ */
2466
+ rootClassName?: string;
1788
2467
  }
2468
+ /**
2469
+ * A single-line text field (target architecture §24, §29). The control is a
2470
+ * native `<input>` and takes part in a form on its own. Inside a `Field` it
2471
+ * binds itself through `useFieldControl` — id, name, `aria-describedby`,
2472
+ * invalid / required / disabled come from the field; explicit props win. The
2473
+ * `label` / `description` / `error` sugar renders the same wiring around the
2474
+ * control for the call sites that never adopt the compound form.
2475
+ */
1789
2476
  declare const Input: React$1.ForwardRefExoticComponent<InputProps$1 & React$1.RefAttributes<HTMLInputElement>>;
1790
2477
 
1791
2478
  interface KeyboardShortcut {
@@ -1811,13 +2498,29 @@ interface KeyboardShortcutsDialogProps {
1811
2498
  * keydown handling.
1812
2499
  */
1813
2500
  hotkey?: string | null;
2501
+ /** Controlled open state (W5-19). Omit for the uncontrolled dialog. */
2502
+ open?: boolean;
2503
+ /** The initial open state of an uncontrolled dialog. Default `false`. */
2504
+ defaultOpen?: boolean;
2505
+ /** Called with the next open state — on the hotkey, the close button, Escape and the backdrop. */
2506
+ onOpenChange?: (open: boolean) => void;
2507
+ /** Overrides of the copy the dialog renders (W5-22). */
2508
+ messages?: Partial<KeyboardShortcutsMessages>;
1814
2509
  }
1815
- declare function KeyboardShortcutsDialog({ sections, hotkey, }?: KeyboardShortcutsDialogProps): react_jsx_runtime.JSX.Element;
2510
+ declare function KeyboardShortcutsDialog({ sections, hotkey, open: controlledOpen, defaultOpen, onOpenChange, messages: messagesProp, }?: KeyboardShortcutsDialogProps): react_jsx_runtime.JSX.Element;
1816
2511
 
1817
2512
  declare const labelVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1818
2513
  interface LabelProps extends React$1.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>, VariantProps<typeof labelVariants> {
1819
2514
  required?: boolean;
1820
2515
  }
2516
+ /**
2517
+ * The label of a form control. On its own, a `<label>` that names the
2518
+ * control `htmlFor` points to. Inside a `Field` (W4-01, target architecture
2519
+ * §24) it binds itself: `htmlFor` is the field's control id, `id` is the id a
2520
+ * non-native control references through `aria-labelledby`, `required` and
2521
+ * `optional` come from the field, and a click focuses a control that
2522
+ * `htmlFor` cannot reach (a `div` editor). Explicit props win.
2523
+ */
1821
2524
  declare const Label: React$1.ForwardRefExoticComponent<LabelProps & React$1.RefAttributes<HTMLLabelElement>>;
1822
2525
 
1823
2526
  interface LinkButtonProps$1 extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, "href">, ButtonIconProps {
@@ -1845,7 +2548,7 @@ interface LinkButtonProps$1 extends Omit<React.AnchorHTMLAttributes<HTMLAnchorEl
1845
2548
  children: React.ReactNode;
1846
2549
  className?: string;
1847
2550
  /**
1848
- * Render a native `<a>` instead of `next/link`. Use for:
2551
+ * Render a native `<a>` instead of the router link. Use for:
1849
2552
  * - cross-origin URLs (e.g. https://other-app.example/sign-in)
1850
2553
  * - same-origin `/api/*` route handlers that 302-redirect off-app
1851
2554
  * (next/link tries to client-route, which doesn't follow the 302)
@@ -1871,7 +2574,10 @@ interface LinkButtonProps$1 extends Omit<React.AnchorHTMLAttributes<HTMLAnchorEl
1871
2574
  * Shares `buttonVariants` so styling stays in lock-step: the same `variant`
1872
2575
  * + `intent` axes and the same legacy aliases (W3-02).
1873
2576
  *
1874
- * - Default: renders `next/link` (client-routed internal navigation).
2577
+ * - Default: renders the provider's `linkComponent` (W5-21, ADR-010) when a
2578
+ * `DesignSystemProvider` supplies one, else `next/link` (client-routed
2579
+ * internal navigation). The static `next/link` import stays until 2.0
2580
+ * (C-NEXT-PEER), so a Next.js app without a provider is unchanged.
1875
2581
  * - `external`: renders a native `<a>` so the browser handles the request
1876
2582
  * end-to-end. Required for cross-origin URLs and same-origin `/api/*`
1877
2583
  * handlers that 302 off-app.
@@ -1900,7 +2606,7 @@ interface LoadingRowsProps extends React.HTMLAttributes<HTMLDivElement> {
1900
2606
  gap?: string;
1901
2607
  /** Override the row Skeleton className (radius, width, etc). */
1902
2608
  rowClassName?: string;
1903
- /** Accessible label announced to screen readers. */
2609
+ /** Accessible label announced to screen readers. Default `messages.loadingRows.loading` (`"Loading"`). */
1904
2610
  label?: string;
1905
2611
  }
1906
2612
  declare const LoadingRows: React$1.ForwardRefExoticComponent<LoadingRowsProps & React$1.RefAttributes<HTMLDivElement>>;
@@ -1918,6 +2624,11 @@ declare const LoadingRows: React$1.ForwardRefExoticComponent<LoadingRowsProps &
1918
2624
  * - `productName` (the suffix text; `null` renders just "Assure")
1919
2625
  * - `className`, `iconClassName`, `textClassName` (style overrides)
1920
2626
  *
2627
+ * The link and the wordmark image are the provider's `linkComponent` /
2628
+ * `imageComponent` when a `DesignSystemProvider` supplies them (W5-21,
2629
+ * ADR-010), else `next/link` / `next/image`; the static imports stay until 2.0
2630
+ * (C-NEXT-PEER), so a Next.js app without a provider is unchanged.
2631
+ *
1921
2632
  * By default the lockup is a link (`href="/"`). Pass `href={null}` to render a
1922
2633
  * non-interactive `<span>` wrapper instead — required when embedding the lockup
1923
2634
  * inside another interactive element (a menu trigger `<button>`, a
@@ -2044,27 +2755,99 @@ declare namespace MultiSelectField {
2044
2755
  var displayName: string;
2045
2756
  }
2046
2757
 
2758
+ /**
2759
+ * Props of `NumberInput`. Everything a text `<input>` takes except the
2760
+ * value-shaped attributes the component owns (`value`, `defaultValue`,
2761
+ * `onChange`, `type`, `min`, `max`, `step`, `size`).
2762
+ *
2763
+ * @experimental
2764
+ */
2765
+ interface NumberInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "value" | "defaultValue" | "onChange" | "type" | "min" | "max" | "step" | "size"> {
2766
+ /** The controlled value; `null` is an empty field. */
2767
+ value?: number | null;
2768
+ /** The initial value while uncontrolled. */
2769
+ defaultValue?: number | null;
2770
+ /** Called with the new value on every change; `null` when the field is emptied. */
2771
+ onValueChange?: (value: number | null) => void;
2772
+ /**
2773
+ * The BCP 47 locale the value is formatted and parsed in: this prop, else
2774
+ * `DesignSystemProvider locale`, else `"en-US"` on the server and the client
2775
+ * alike (A3) — never `navigator.language`.
2776
+ */
2777
+ locale?: string;
2778
+ /** `Intl.NumberFormat` options: fraction digits, `style: "currency"`, `style: "percent"`, … */
2779
+ formatOptions?: Intl.NumberFormatOptions;
2780
+ /** The lowest committed value; ArrowDown and Home stop here. */
2781
+ min?: number;
2782
+ /** The highest committed value; ArrowUp and End stop here. */
2783
+ max?: number;
2784
+ /** The increment of the arrow keys. Default `1`. */
2785
+ step?: number;
2786
+ /** The control scale (`--control-*-<size>`). Default `md`. */
2787
+ size?: ControlSize;
2788
+ /**
2789
+ * `default` draws the field border; `ghost` draws none until focused. The
2790
+ * words are `ControlChromeVariant` (`behavior/control-chrome.ts`), spelled
2791
+ * out so the public declaration names no unexported type.
2792
+ */
2793
+ variant?: "default" | "ghost";
2794
+ /** Marks the control invalid (`aria-invalid`, danger chrome); a surrounding `Field` can set it too. */
2795
+ invalid?: boolean;
2796
+ /** One class per part, keyed by `NumberInputSlot`. `root` is the `<input>`, the element `className` lands on too. */
2797
+ classNames?: Partial<Record<NumberInputSlot, string>>;
2798
+ }
2799
+ /**
2800
+ * The design-system number field: a locale-formatted `number | null` that
2801
+ * submits its canonical value and reads as a spinbutton.
2802
+ *
2803
+ * @experimental
2804
+ */
2805
+ declare const NumberInput: React$1.ForwardRefExoticComponent<NumberInputProps & React$1.RefAttributes<HTMLInputElement>>;
2806
+
2807
+ /**
2808
+ * Props of `OTPInput`.
2809
+ *
2810
+ * @experimental The Field / form additions of W4-23 (`onValueChange`,
2811
+ * `required`, `form`, `invalid`, an optional `name`) are experimental; the
2812
+ * legacy props keep their contract.
2813
+ */
2047
2814
  interface OTPInputProps {
2048
- name: string;
2815
+ /** The form field name. Optional since W4-23: a surrounding `Field` can supply it. */
2816
+ name?: string;
2049
2817
  length?: number;
2050
2818
  error?: string;
2819
+ /**
2820
+ * Move focus into the code on mount. Opt-in: only for a screen whose one
2821
+ * purpose is the code (step-up auth, post-redirect verification), never in
2822
+ * a form with other fields. Documented in the `AutoFocus` story.
2823
+ */
2051
2824
  autoFocus?: boolean;
2052
2825
  className?: string;
2053
2826
  defaultValue?: string;
2054
2827
  /** Optional controlled value (additive). */
2055
2828
  value?: string;
2056
- /** Optional controlled onChange (additive). */
2829
+ /** Optional controlled onChange (additive). Fires with the same string as `onValueChange`. */
2057
2830
  onChange?: (value: string) => void;
2831
+ /** Called with the new code on every change (ADR-006 spelling). */
2832
+ onValueChange?: (value: string) => void;
2058
2833
  /** Optional callback fired when all slots are filled (additive). */
2059
2834
  onComplete?: (value: string) => void;
2060
2835
  /** Optional id for the underlying input (additive). */
2061
2836
  id?: string;
2062
2837
  /** Optional disabled flag (additive). */
2063
2838
  disabled?: boolean;
2064
- /** Accessible label for the underlying one-time-code input. */
2839
+ /** Block native submission while the code is empty. */
2840
+ required?: boolean;
2841
+ /** `id` of the form to submit with when the input is rendered outside it. */
2842
+ form?: string;
2843
+ /** Marks the input invalid without a message of its own; `error` and a `Field` can set it too. */
2844
+ invalid?: boolean;
2845
+ /** Accessible label for the underlying one-time-code input. A `Field` label takes precedence. */
2065
2846
  "aria-label"?: string;
2847
+ "aria-labelledby"?: string;
2848
+ "aria-describedby"?: string;
2066
2849
  }
2067
- declare function OTPInput({ name, length, error, autoFocus, className, defaultValue, value, onChange, onComplete, id, disabled, "aria-label": ariaLabel, }: OTPInputProps): react_jsx_runtime.JSX.Element;
2850
+ declare function OTPInput({ name, length, error, autoFocus, className, defaultValue, value: valueProp, onChange, onValueChange, onComplete, id, disabled, required, form, invalid, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, }: OTPInputProps): react_jsx_runtime.JSX.Element;
2068
2851
  declare namespace OTPInput {
2069
2852
  var displayName: string;
2070
2853
  }
@@ -2078,6 +2861,8 @@ interface PaginationProps extends React.HTMLAttributes<HTMLElement> {
2078
2861
  totalItems?: number;
2079
2862
  /** Items per page — used with totalItems for range display */
2080
2863
  pageSize?: number;
2864
+ /** Overrides of the copy the pager renders (W5-22): prop > provider `messages.pagination` > English. */
2865
+ messages?: Partial<PaginationMessages>;
2081
2866
  }
2082
2867
  declare const Pagination: React$1.ForwardRefExoticComponent<PaginationProps & React$1.RefAttributes<HTMLElement>>;
2083
2868
 
@@ -2142,14 +2927,6 @@ interface PdfPreviewProps extends React.HTMLAttributes<HTMLDivElement>, VariantP
2142
2927
  }
2143
2928
  declare const PdfPreview: React$1.ForwardRefExoticComponent<PdfPreviewProps & React$1.RefAttributes<HTMLDivElement>>;
2144
2929
 
2145
- type InputProps = React.ComponentProps<typeof Input>;
2146
- interface PhoneInputProps extends Omit<InputProps, "type" | "onChange" | "value" | "defaultValue"> {
2147
- value?: string;
2148
- defaultValue?: string;
2149
- onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
2150
- }
2151
- declare const PhoneInput: React$1.ForwardRefExoticComponent<Omit<PhoneInputProps, "ref"> & React$1.RefAttributes<HTMLInputElement>>;
2152
-
2153
2930
  interface CountryCode {
2154
2931
  iso: string;
2155
2932
  name: string;
@@ -2171,14 +2948,93 @@ declare function parsePhoneForEditing(phone: string): {
2171
2948
  localPhone: string;
2172
2949
  };
2173
2950
 
2951
+ declare const DEFAULT_PHONE_FIELD_MESSAGES: PhoneFieldMessages;
2952
+ /** What `onValueChange` is told besides the E.164 value. @experimental */
2953
+ interface PhoneFieldChangeDetails {
2954
+ /** The ISO 3166-1 alpha-2 code of the picked country. */
2955
+ country: string;
2956
+ /** The national digits as typed, without the dial code. */
2957
+ nationalNumber: string;
2958
+ }
2959
+ /**
2960
+ * Props of `PhoneField`. Everything a `tel` `<input>` takes except the
2961
+ * value-shaped attributes the component owns.
2962
+ *
2963
+ * @experimental
2964
+ */
2965
+ interface PhoneFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "value" | "defaultValue" | "onChange" | "type" | "size"> {
2966
+ /** The controlled E.164 value; `null` (or `""`) is an empty field. */
2967
+ value?: string | null;
2968
+ /** The initial E.164 value while uncontrolled. */
2969
+ defaultValue?: string | null;
2970
+ /** Called with the E.164 value on every change; `null` when the number is emptied. */
2971
+ onValueChange?: (value: string | null, details: PhoneFieldChangeDetails) => void;
2972
+ /**
2973
+ * The controlled country (ISO 3166-1 alpha-2). Without `onCountryChange`
2974
+ * the country is fixed and the picker is not rendered.
2975
+ */
2976
+ country?: string;
2977
+ /** The initial country while uncontrolled. Default `"US"`. */
2978
+ defaultCountry?: string;
2979
+ onCountryChange?: (country: string) => void;
2980
+ /** The countries offered. Default: every entry of `COUNTRY_CODES`. */
2981
+ countries?: readonly CountryCode[];
2982
+ /** The control scale (`--control-*-<size>`). Default `md`. */
2983
+ size?: ControlSize;
2984
+ /**
2985
+ * `default` draws the field border; `ghost` draws none until focused. The
2986
+ * words are `ControlChromeVariant` (`behavior/control-chrome.ts`).
2987
+ */
2988
+ variant?: "default" | "ghost";
2989
+ /** Marks the control invalid (`aria-invalid`, danger chrome); a surrounding `Field` can set it too. */
2990
+ invalid?: boolean;
2991
+ messages?: Partial<PhoneFieldMessages>;
2992
+ /** One class per part, keyed by `PhoneFieldSlot`. `root` is the row, the element `className` lands on too. */
2993
+ classNames?: Partial<Record<PhoneFieldSlot, string>>;
2994
+ }
2995
+ /**
2996
+ * The design-system phone field: a country picker beside a national number,
2997
+ * one E.164 value.
2998
+ *
2999
+ * @experimental
3000
+ */
3001
+ declare const PhoneField: React$1.ForwardRefExoticComponent<PhoneFieldProps & React$1.RefAttributes<HTMLInputElement>>;
3002
+
3003
+ type InputProps = React.ComponentProps<typeof Input>;
3004
+ interface PhoneInputProps extends Omit<InputProps, "type" | "onChange" | "value" | "defaultValue"> {
3005
+ value?: string;
3006
+ defaultValue?: string;
3007
+ onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
3008
+ }
3009
+ /**
3010
+ * @deprecated Use `PhoneField` (`country="US"` for the fixed-country mode;
3011
+ * `value` is E.164). Removed in 3.0.
3012
+ */
3013
+ declare const PhoneInput: React$1.ForwardRefExoticComponent<Omit<PhoneInputProps, "ref"> & React$1.RefAttributes<HTMLInputElement>>;
3014
+
3015
+ /**
3016
+ * The legacy flag: the same 20×14 box and ISO fallback as before, drawn from
3017
+ * `PhoneField`'s lazily loaded flag set (a same-size placeholder until it
3018
+ * lands).
3019
+ *
3020
+ * @deprecated Use `PhoneField`'s `CountryFlag`. Removed in 3.0.
3021
+ */
2174
3022
  declare function CountryFlag({ iso }: {
2175
3023
  iso: string;
2176
3024
  }): react_jsx_runtime.JSX.Element;
3025
+ /**
3026
+ * @deprecated Use `PhoneField` (its country picker is a `Combobox`). Removed
3027
+ * in 3.0.
3028
+ */
2177
3029
  declare function CountrySelect({ value, onChange, disabled, }: {
2178
3030
  value: string;
2179
3031
  onChange: (iso: string) => void;
2180
3032
  disabled?: boolean;
2181
3033
  }): react_jsx_runtime.JSX.Element;
3034
+ /**
3035
+ * @deprecated Use `PhoneField`: one E.164 `value` / `onValueChange`, Field
3036
+ * binding and form submission built in. Removed in 3.0.
3037
+ */
2182
3038
  declare function PhoneCountryInput({ countryIso, localPhone, onCountryChange, onPhoneChange, placeholder, error, disabled, id, }: {
2183
3039
  countryIso: string;
2184
3040
  localPhone: string;
@@ -2190,12 +3046,35 @@ declare function PhoneCountryInput({ countryIso, localPhone, onCountryChange, on
2190
3046
  id?: string;
2191
3047
  }): react_jsx_runtime.JSX.Element;
2192
3048
 
3049
+ /** How wide a `PopoverContent` is. @experimental */
3050
+ type PopoverWidth = FloatingWidth;
3051
+ /** Inner padding of a `PopoverContent`. @experimental */
3052
+ type PopoverPadding = FloatingPadding;
2193
3053
  declare const Popover: React$1.FC<PopoverPrimitive.PopoverProps>;
2194
3054
  declare const PopoverTrigger: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
2195
3055
  declare const PopoverAnchor: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & React$1.RefAttributes<HTMLDivElement>>;
2196
3056
  declare const PopoverPortal: React$1.FC<PopoverPrimitive.PopoverPortalProps>;
2197
3057
  declare const PopoverClose: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverCloseProps & React$1.RefAttributes<HTMLButtonElement>>;
2198
- declare const PopoverContent: React$1.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
3058
+ interface PopoverContentProps extends React$1.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> {
3059
+ /**
3060
+ * The width of the surface. `md` (default, 18rem) is what the popover
3061
+ * always rendered; `auto` sizes to the content, `trigger` matches the
3062
+ * element that opened it, `sm` and `lg` are 16rem and 24rem. Replaces the
3063
+ * `w-*` class consumers wrote on `className`.
3064
+ *
3065
+ * @experimental
3066
+ */
3067
+ width?: PopoverWidth;
3068
+ /**
3069
+ * Inner padding of the surface. `md` (default) is the `p-4` the popover
3070
+ * always rendered; `sm` is `p-3`; `none` lets the content pad itself (a
3071
+ * list, a form). Replaces the `p-*` class consumers wrote on `className`.
3072
+ *
3073
+ * @experimental
3074
+ */
3075
+ padding?: PopoverPadding;
3076
+ }
3077
+ declare const PopoverContent: React$1.ForwardRefExoticComponent<PopoverContentProps & React$1.RefAttributes<HTMLDivElement>>;
2199
3078
 
2200
3079
  interface PressableProps extends React.ButtonHTMLAttributes<HTMLElement> {
2201
3080
  /**
@@ -2365,10 +3244,27 @@ interface ProgressRingProps extends React.HTMLAttributes<HTMLDivElement>, Progre
2365
3244
  }
2366
3245
  declare const ProgressRing: React$1.ForwardRefExoticComponent<ProgressRingProps & React$1.RefAttributes<HTMLDivElement>>;
2367
3246
 
2368
- declare const RadioGroup: React$1.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
3247
+ /** How the items render: the bare radio (`plain`, default) or a selectable card. */
3248
+ type RadioGroupAppearance = "plain" | "card";
3249
+ interface RadioGroupProps extends React$1.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root> {
3250
+ /** `card` renders each item as a bordered, clickable card with its label and description. */
3251
+ appearance?: RadioGroupAppearance;
3252
+ /**
3253
+ * The group is in error: `aria-invalid` and `data-invalid` on the group
3254
+ * and `aria-invalid` on every item. Implied by the surrounding `Field`'s
3255
+ * `invalid` or a mounted `FieldError`.
3256
+ */
3257
+ invalid?: boolean;
3258
+ }
3259
+ declare const RadioGroup: React$1.ForwardRefExoticComponent<RadioGroupProps & React$1.RefAttributes<HTMLDivElement>>;
2369
3260
  interface RadioGroupItemProps extends React$1.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item> {
2370
3261
  /** Optional inline label rendered to the right of the radio */
2371
3262
  label?: string;
3263
+ /**
3264
+ * Secondary text under the label, referenced by the radio through
3265
+ * `aria-describedby`. Rendered only with `appearance="card"` on the group.
3266
+ */
3267
+ description?: React$1.ReactNode;
2372
3268
  }
2373
3269
  declare const RadioGroupItem: React$1.ForwardRefExoticComponent<RadioGroupItemProps & React$1.RefAttributes<HTMLButtonElement>>;
2374
3270
 
@@ -2399,16 +3295,29 @@ interface RankedBarsProps extends React.HTMLAttributes<HTMLUListElement> {
2399
3295
  }
2400
3296
  declare const RankedBars: React$1.ForwardRefExoticComponent<RankedBarsProps & React$1.RefAttributes<HTMLUListElement>>;
2401
3297
 
2402
- type SheetSide = "top" | "right" | "bottom" | "left";
2403
- type DialogSize = "sm" | "md" | "lg" | "full";
3298
+ /**
3299
+ * Props of `ResponsiveDialog`.
3300
+ *
3301
+ * @experimental
3302
+ */
2404
3303
  interface ResponsiveDialogProps {
2405
- /** Controlled open state. */
2406
- open: boolean;
2407
- /** Open-state change handler (fires on overlay/esc/close as well). */
2408
- onOpenChange: (open: boolean) => void;
2409
- /** Accessible title. When omitted, a visually-hidden label is supplied. */
2410
- title?: React$1.ReactNode;
2411
- /** Supporting description rendered under the title. */
3304
+ /** Controlled open state. Omit it (with `defaultOpen` / `trigger`) for uncontrolled mode. */
3305
+ open?: boolean;
3306
+ /** Initial open state in uncontrolled mode. Default `false`. */
3307
+ defaultOpen?: boolean;
3308
+ /** Open-state change handler (fires on backdrop, Escape and close as well). */
3309
+ onOpenChange?: (open: boolean) => void;
3310
+ /**
3311
+ * The element that opens the dialog, rendered as the Radix trigger
3312
+ * (`asChild`), so focus returns to it on close. Useful in uncontrolled mode.
3313
+ */
3314
+ trigger?: React$1.ReactNode;
3315
+ /**
3316
+ * The accessible name and visible heading. Required: a dialog without a
3317
+ * title is announced as "dialog" only (development error when missing).
3318
+ */
3319
+ title: React$1.ReactNode;
3320
+ /** Supporting copy rendered under the title. */
2412
3321
  description?: React$1.ReactNode;
2413
3322
  /** Body content. */
2414
3323
  children?: React$1.ReactNode;
@@ -2417,18 +3326,28 @@ interface ResponsiveDialogProps {
2417
3326
  * callback (`() => onOpenChange(false)`) for self-dismissing buttons.
2418
3327
  */
2419
3328
  footer?: React$1.ReactNode | ((close: () => void) => React$1.ReactNode);
2420
- /** Class applied to the rendered Sheet/Dialog content surface. */
3329
+ /** Class applied to the content surface (both presentations). */
2421
3330
  className?: string;
2422
- /** Sheet side on mobile. Default `"bottom"`. */
2423
- side?: SheetSide;
2424
- /** Desktop Dialog max-width preset. Default `"md"`. */
3331
+ /**
3332
+ * The edge the small-viewport sheet slides in from. Only `bottom` is
3333
+ * rendered: the responsive presentation is a bottom sheet.
3334
+ *
3335
+ * @deprecated Ignored (development warning for a value other than
3336
+ * `bottom`). Removed in 3.0.
3337
+ */
3338
+ side?: "top" | "right" | "bottom" | "left";
3339
+ /** Width step of the centred dialog. Default `md`. See `DialogSize`. */
2425
3340
  size?: DialogSize;
2426
3341
  }
2427
3342
  /**
2428
- * Renders a bottom Sheet on mobile and a centered Dialog on desktop from one
2429
- * controlled API. Composes the existing Sheet and Dialog primitives.
3343
+ * A bottom sheet on small viewports and a centred dialog from the `sm`
3344
+ * breakpoint, from one API: a thin wrapper over
3345
+ * `<Dialog><DialogContent presentation="responsive">` with the header and
3346
+ * footer parts filled from props.
3347
+ *
3348
+ * @experimental
2430
3349
  */
2431
- declare function ResponsiveDialog({ open, onOpenChange, title, description, children, footer, className, side, size, }: ResponsiveDialogProps): react_jsx_runtime.JSX.Element;
3350
+ declare function ResponsiveDialog({ open, defaultOpen, onOpenChange, trigger, title, description, children, footer, className, side, size, }: ResponsiveDialogProps): react_jsx_runtime.JSX.Element;
2432
3351
  declare namespace ResponsiveDialog {
2433
3352
  var displayName: string;
2434
3353
  }
@@ -2459,18 +3378,78 @@ interface ScrollAreaProps extends React$1.ComponentPropsWithoutRef<typeof Scroll
2459
3378
  declare const ScrollArea: React$1.ForwardRefExoticComponent<ScrollAreaProps & React$1.RefAttributes<HTMLDivElement>>;
2460
3379
  declare const ScrollBar: React$1.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaScrollbarProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2461
3380
 
2462
- declare const searchInputVariants: (props?: ({
2463
- inputSize?: "sm" | "md" | "lg" | "default" | "compact" | "comfortable" | null | undefined;
2464
- } & class_variance_authority_types.ClassProp) | undefined) => string;
2465
- type SearchInputVariants = VariantProps<typeof searchInputVariants>;
3381
+ /**
3382
+ * The size names a SearchInput knows (W4-07): the three steps Input's compat
3383
+ * rows cover, plus the 1.31 aliases (deprecated with `inputSize`).
3384
+ *
3385
+ * @experimental
3386
+ */
3387
+ type SearchInputSize = Extract<ControlSize, "sm" | "md" | "lg"> | InputSizeAlias;
3388
+
3389
+ /**
3390
+ * What {@link searchInputVariants} takes: the size (either name — `size`
3391
+ * wins when both are given) and cva's class props.
3392
+ *
3393
+ * @experimental
3394
+ */
3395
+ interface SearchInputVariantsOptions {
3396
+ size?: SearchInputSize | null;
3397
+ /**
3398
+ * The legacy size prop (C-INPUT-SIZE): today's rows, byte for byte.
3399
+ *
3400
+ * @deprecated Use `size`. Codemod CM-07 renames it.
3401
+ */
3402
+ inputSize?: SearchInputSize | null;
3403
+ class?: string | null;
3404
+ className?: string | null;
3405
+ }
3406
+ /** The variant props of `searchInputVariants` (cva's `VariantProps` shape, kept for the API report). */
3407
+ type SearchInputVariants = Omit<SearchInputVariantsOptions, "class" | "className">;
3408
+ /**
3409
+ * The SearchInput class recipe (W4-07): the shared control chrome
3410
+ * (`behavior/control-chrome.ts`) in its `default` emphasis and no height
3411
+ * row, the native search-decoration reset, then the row of the size.
3412
+ *
3413
+ * Against the cva it replaces (W4-03 mapping, PR #199) the set of classes
3414
+ * gains the chrome's `aria-[invalid=true]` rows — inert until a caller sets
3415
+ * `aria-invalid` — and is otherwise identical for every legacy `inputSize`;
3416
+ * `border-rule-strong` moved after the base, which Tailwind does not read.
3417
+ * Server-safe.
3418
+ *
3419
+ * @experimental
3420
+ */
3421
+ declare function searchInputVariants({ size, inputSize, class: classProp, className, }?: SearchInputVariantsOptions): string;
3422
+ /**
3423
+ * Props of `SearchInput` (W4-07).
3424
+ *
3425
+ * @experimental The name is exported since W4-07; the props it lists have been
3426
+ * stable since 1.x.
3427
+ */
2466
3428
  interface SearchInputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, "type" | "onChange" | "size">, SearchInputVariants {
3429
+ /** The current query (controlled). */
2467
3430
  value: string;
3431
+ /** Called with the new query on every keystroke and with `""` when cleared or the form resets. */
2468
3432
  onValueChange: (value: string) => void;
3433
+ /** Called with the query once it has been stable for `debounceMs`. */
2469
3434
  onSearch?: (value: string) => void;
3435
+ /** Default 300. */
2470
3436
  debounceMs?: number;
3437
+ /** Overrides of the copy the component renders (English defaults). */
3438
+ messages?: Partial<SearchInputMessages>;
3439
+ /**
3440
+ * Classes per anatomy part (the `search-input-*` slots). The wrapper
3441
+ * is the root part and takes `className`, so it has no entry here.
3442
+ */
3443
+ classNames?: Partial<Record<Exclude<SearchInputSlot, "root">, string>>;
2471
3444
  }
3445
+ /**
3446
+ * A search field. The control is a native `<input type="search">`
3447
+ * (`role="searchbox"`); name it with `aria-label`, or through a `Field`,
3448
+ * which it binds to with `useFieldControl`.
3449
+ */
2472
3450
  declare const SearchInput: React$1.ForwardRefExoticComponent<SearchInputProps & React$1.RefAttributes<HTMLInputElement>>;
2473
3451
 
3452
+ /** @deprecated Use `Combobox` with `Option` (`{ value, label }`). Removed in 3.0 (C-SEARCHSELECT, CM-08). */
2474
3453
  interface SearchSelectOption {
2475
3454
  id: string;
2476
3455
  label: string;
@@ -2504,6 +3483,7 @@ interface SearchSelectOption {
2504
3483
  */
2505
3484
  description?: string;
2506
3485
  }
3486
+ /** @deprecated Use `ComboboxProps`. Removed in 3.0 (C-SEARCHSELECT, CM-08). */
2507
3487
  interface SearchSelectProps {
2508
3488
  options: SearchSelectOption[];
2509
3489
  /**
@@ -2566,8 +3546,22 @@ interface SearchSelectProps {
2566
3546
  * reads as a tag instead of running into the label. Single-mode only.
2567
3547
  */
2568
3548
  descriptionVariant?: "inline" | "pill";
3549
+ /** The accessible name (W4-12). Without it, `placeholder` names the input as before. */
3550
+ "aria-label"?: string;
3551
+ /** Names the input from another element, for example a visible label (W4-12). */
3552
+ "aria-labelledby"?: string;
3553
+ "aria-describedby"?: string;
3554
+ /** The input's id, so a `<label htmlFor>` can point at it (W4-12). */
3555
+ id?: string;
2569
3556
  }
2570
- declare function SearchSelect({ options, selected: selectedProp, onSelect: onSelectProp, onRemove: onRemoveProp, value, onValueChange, onCreate, placeholder, className, disabled, groupFilter, pinnedGroups, closeOnSelect: closeOnSelectProp, showGroupCounts, onCreateNew, createNewLabel, descriptionVariant, }: SearchSelectProps): react_jsx_runtime.JSX.Element;
3557
+ /**
3558
+ * @deprecated Use `Combobox` (single: `value` / `onValueChange` with `null` for
3559
+ * empty; multi: `multiple` with `TValue[]`) and the `Option` shape
3560
+ * (`{ value, label }`). `SearchSelect` is an adapter over it and is removed in
3561
+ * 3.0 (compatibility registry C-SEARCHSELECT); codemod CM-08 rewrites call
3562
+ * sites and flags the ones a human must look at.
3563
+ */
3564
+ declare function SearchSelect({ options, selected: selectedProp, onSelect: onSelectProp, onRemove: onRemoveProp, value, onValueChange, onCreate, placeholder: placeholderProp, className, disabled, groupFilter, pinnedGroups, closeOnSelect: closeOnSelectProp, showGroupCounts, onCreateNew, createNewLabel: createNewLabelProp, descriptionVariant, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, id, }: SearchSelectProps): react_jsx_runtime.JSX.Element;
2571
3565
  declare namespace SearchSelect {
2572
3566
  var displayName: string;
2573
3567
  }
@@ -2645,10 +3639,53 @@ declare const SegmentedProgress: React$1.ForwardRefExoticComponent<SegmentedProg
2645
3639
  declare const SelectRoot: React$1.FC<SelectPrimitive.SelectProps>;
2646
3640
  declare const SelectGroup: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React$1.RefAttributes<HTMLDivElement>>;
2647
3641
  declare const SelectValue: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React$1.RefAttributes<HTMLSpanElement>>;
2648
- declare const SelectTrigger: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
3642
+ /**
3643
+ * The Select sizes: the shared control scale, nothing else (A1, ADR-013).
3644
+ *
3645
+ * @experimental
3646
+ */
3647
+ type SelectSize = ControlSize;
3648
+ /**
3649
+ * The parts a `classNames` entry can reach on the options-driven `Select`,
3650
+ * keyed by the anatomy (ADR-008 decision 4). `value` is a span of ours
3651
+ * around Radix's value (Radix's own span drops `className`), rendered only
3652
+ * when `classNames.value` or `clearable` asks for it, so a legacy call keeps
3653
+ * the `SelectTrigger > span` structure C-DOM-10 freezes.
3654
+ *
3655
+ * @experimental
3656
+ */
3657
+ type SelectClassNames = Partial<Record<SelectSlot, string>>;
3658
+
3659
+ /**
3660
+ * Props of `SelectTrigger`: Radix's trigger props plus the control-scale
3661
+ * `size` and a class for the chevron.
3662
+ *
3663
+ * @experimental `size` and `classNames`
3664
+ */
3665
+ interface SelectTriggerProps extends React$1.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> {
3666
+ /**
3667
+ * Height, horizontal padding, label size, gap and glyph size from the shared
3668
+ * control scale (A1). Omitted, the trigger keeps its legacy geometry (36px,
3669
+ * the same pixels as `md`).
3670
+ */
3671
+ size?: SelectSize | null;
3672
+ /** Classes for the parts the trigger renders itself: the chevron `icon`. */
3673
+ classNames?: Pick<SelectClassNames, "icon">;
3674
+ }
3675
+ declare const SelectTrigger: React$1.ForwardRefExoticComponent<SelectTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
2649
3676
  declare const SelectScrollUpButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2650
3677
  declare const SelectScrollDownButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2651
- declare const SelectContent: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
3678
+ /**
3679
+ * Props of `SelectContent`: Radix's content props plus a class for the
3680
+ * viewport (C-DOM-19's `[data-radix-select-viewport]` selector replacement).
3681
+ *
3682
+ * @experimental `classNames`
3683
+ */
3684
+ interface SelectContentProps extends React$1.ComponentPropsWithoutRef<typeof SelectPrimitive.Content> {
3685
+ /** Classes for the parts the content renders itself: the scrolling `viewport`. */
3686
+ classNames?: Pick<SelectClassNames, "viewport">;
3687
+ }
3688
+ declare const SelectContent: React$1.ForwardRefExoticComponent<SelectContentProps & React$1.RefAttributes<HTMLDivElement>>;
2652
3689
  declare const SelectLabel: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2653
3690
  declare const SelectItem: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2654
3691
  declare const SelectSeparator: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
@@ -2665,26 +3702,104 @@ interface SelectOption {
2665
3702
  interface SelectProps {
2666
3703
  /** Option list. Required to preserve legacy API. */
2667
3704
  options: SelectOption[];
2668
- /** Controlled value. */
2669
- value?: string;
2670
- /** Uncontrolled initial value. */
2671
- defaultValue?: string;
3705
+ /**
3706
+ * Controlled value. `null` is "nothing selected" (target architecture §32);
3707
+ * `""` means the same and stays accepted through 2.x (C-SELECT-EMPTY).
3708
+ */
3709
+ value?: string | null;
3710
+ /** Uncontrolled initial value; restored on form reset. `null` = nothing selected. */
3711
+ defaultValue?: string | null;
3712
+ /**
3713
+ * Called with the picked option's value, and with `""` when the selection
3714
+ * is cleared (`clearable`) — the signature every existing handler already
3715
+ * has. Reporting `null` is a 3.0 change (C-SELECT-EMPTY).
3716
+ */
2672
3717
  onValueChange?: (value: string) => void;
2673
3718
  placeholder?: string;
2674
- /** Accepted for back-compat. NO-OP — see file header for migration. */
3719
+ /**
3720
+ * @deprecated NO-OP: Radix Select cannot filter. Use `Combobox` (or
3721
+ * `SearchSelect`) for filterable selection. Warns once in development;
3722
+ * removed in 2.0 (C-SELECT-DEAD, codemod CM-11).
3723
+ */
2675
3724
  searchable?: boolean;
2676
3725
  disabled?: boolean;
3726
+ /**
3727
+ * Submit the value under this name through the form the trigger sits in
3728
+ * (or `form`). Inside a `<Field name>` the field's name applies.
3729
+ */
2677
3730
  name?: string;
3731
+ /**
3732
+ * Block native submission while nothing is selected; the trigger carries
3733
+ * `aria-required`. Inside a `<Field required>` the field's flag applies.
3734
+ */
2678
3735
  required?: boolean;
3736
+ /**
3737
+ * The `id` of the form to submit with when the trigger is rendered outside
3738
+ * it — inside a portalled Dialog or Sheet (ADR-006).
3739
+ *
3740
+ * @experimental
3741
+ */
3742
+ form?: string;
3743
+ /**
3744
+ * The trigger's `id`; inside a `<Field>` the field's control id applies.
3745
+ *
3746
+ * @experimental
3747
+ */
3748
+ id?: string;
3749
+ /**
3750
+ * The control scale (A1, ADR-013): `xs` 28 · `sm` 32 · `md` 36 · `lg` 40 ·
3751
+ * `xl` 48. Omitted, the trigger keeps its legacy 36px row; a `<Field size>`
3752
+ * supplies it.
3753
+ *
3754
+ * @experimental
3755
+ */
3756
+ size?: SelectSize;
3757
+ /**
3758
+ * Show a clear button beside the chevron while a value is selected. Clearing
3759
+ * reports `""` through `onValueChange` and focuses the trigger. Renders the
3760
+ * `root` part (`data-slot="select"`) around the trigger — `className` lands
3761
+ * on that wrapper then, `classNames.trigger` on the trigger.
3762
+ *
3763
+ * @experimental
3764
+ */
3765
+ clearable?: boolean;
3766
+ /**
3767
+ * The outermost element's class: the trigger, or the `root` wrapper when
3768
+ * `clearable`.
3769
+ */
2679
3770
  className?: string;
2680
- /** Forwarded to the trigger. */
3771
+ /**
3772
+ * One class per part (ADR-008 decision 4): `trigger`, `value`, `icon`
3773
+ * (chevron), `content`, `viewport`, `item`, `clear`, `root`. Each part's
3774
+ * class comes after the design system's own and before `className`.
3775
+ * `value` wraps Radix's value span in one of ours (see `SelectClassNames`).
3776
+ *
3777
+ * @experimental
3778
+ */
3779
+ classNames?: SelectClassNames;
3780
+ /** Overrides of the copy the select renders (English defaults until W5-20). */
3781
+ messages?: Partial<SelectMessages>;
3782
+ /**
3783
+ * @deprecated Use `classNames.trigger` (C-CLASSNAME-PROPS, codemod CM-11).
3784
+ * Removed in 3.0.
3785
+ */
2681
3786
  triggerClassName?: string;
2682
- /** Forwarded to the content. */
3787
+ /**
3788
+ * @deprecated Use `classNames.content` (C-CLASSNAME-PROPS, codemod CM-11).
3789
+ * Removed in 3.0.
3790
+ */
2683
3791
  contentClassName?: string;
2684
- /** aria-invalid + danger styling on trigger. */
3792
+ /** aria-invalid + danger styling on trigger. Inside a `<Field invalid>` the field's flag applies. */
2685
3793
  "aria-invalid"?: boolean;
2686
- /** aria-label fallback when there is no visible label. */
3794
+ /**
3795
+ * aria-label fallback when there is no visible label. Inside a `<Field>`
3796
+ * with a `Label` the trigger is named by the label instead.
3797
+ */
2687
3798
  "aria-label"?: string;
3799
+ /** Explicit `aria-labelledby`; wins over the surrounding `Field`. */
3800
+ "aria-labelledby"?: string;
3801
+ /** Explicit `aria-describedby`; appended after the field's description and error. */
3802
+ "aria-describedby"?: string;
2688
3803
  }
2689
3804
  /**
2690
3805
  * Convenience `Select` — preserved options-driven API.
@@ -2700,15 +3815,48 @@ interface SelectProps {
2700
3815
  * </SelectContent>
2701
3816
  * </SelectRoot>
2702
3817
  */
2703
- declare function Select({ options, value, defaultValue, onValueChange, placeholder, searchable, disabled, name, required, className, triggerClassName, contentClassName, "aria-invalid": ariaInvalid, "aria-label": ariaLabel, }: SelectProps): react_jsx_runtime.JSX.Element;
3818
+ declare function Select({ options, value: valueProp, defaultValue: defaultValueProp, onValueChange, placeholder: placeholderProp, searchable, disabled: disabledProp, name: nameProp, required: requiredProp, form, id: idProp, size: sizeProp, clearable, className, classNames, messages, triggerClassName, contentClassName, "aria-invalid": ariaInvalid, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, }: SelectProps): react_jsx_runtime.JSX.Element;
2704
3819
  declare namespace Select {
2705
3820
  var displayName: string;
2706
3821
  }
2707
3822
 
2708
3823
  declare const Separator: React$1.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2709
3824
 
2710
- type Side = "top" | "right" | "bottom" | "left";
2711
- type SheetWidth = "default" | "sm" | "md" | "lg" | "xl" | "full";
3825
+ /**
3826
+ * The edge a `Sheet` slides in from.
3827
+ *
3828
+ * @experimental
3829
+ */
3830
+ type SheetSide = "top" | "right" | "bottom" | "left";
3831
+ type Side = SheetSide;
3832
+ /**
3833
+ * Width of a left/right `SheetContent`, as a step of the sheet width scale
3834
+ * (W5-07): `sm` 420px · `md` 520px · `lg` 640px · `xl` 760px from the `sm`
3835
+ * breakpoint (95vw below it) · `full` the viewport. Omitted, the panel keeps
3836
+ * its 1.x geometry (`w-3/4 max-w-sm`). Every step and the default yield to
3837
+ * `--ds-sheet-width` when a consumer sets it. Top/bottom sheets span the
3838
+ * viewport and ignore it.
3839
+ *
3840
+ * @experimental
3841
+ */
3842
+ type SheetSize = "sm" | "md" | "lg" | "xl" | "full";
3843
+ /**
3844
+ * What the deprecated `width` prop accepts: the size steps plus `default`.
3845
+ *
3846
+ * @deprecated Use `size` (C-SHEET-WIDTH, codemod CM-11). Removed in 3.0.
3847
+ * @experimental
3848
+ */
3849
+ type SheetWidth = "default" | SheetSize;
3850
+ /**
3851
+ * The copy a `Sheet` renders (target architecture §24.5). English defaults
3852
+ * until the messages contract of the provider lands (W5-20).
3853
+ *
3854
+ * @experimental
3855
+ */
3856
+ interface SheetMessages {
3857
+ /** The accessible name of the built-in close button. Default `"Close"`. */
3858
+ close: string;
3859
+ }
2712
3860
  interface SheetProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Root> {
2713
3861
  /**
2714
3862
  * Default side for SheetContent if it doesn't specify its own.
@@ -2725,47 +3873,95 @@ declare const SheetTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.Di
2725
3873
  declare const SheetClose: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>>;
2726
3874
  declare const SheetPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
2727
3875
  declare const SheetOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2728
- declare const sheetVariants: (props?: ({
2729
- side?: "left" | "right" | "bottom" | "top" | null | undefined;
2730
- } & class_variance_authority_types.ClassProp) | undefined) => string;
2731
- interface SheetContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
3876
+ /**
3877
+ * Props of `SheetContent`: Radix's content props plus the side, the sizing
3878
+ * and the dismiss options.
3879
+ *
3880
+ * @experimental
3881
+ */
3882
+ interface SheetContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {
3883
+ /** The edge the panel slides in from. Default `right` (or the `Sheet` root's `side`). */
3884
+ side?: SheetSide | null;
3885
+ /**
3886
+ * Width step for left/right sheets. Omit for the 1.x geometry
3887
+ * (`w-3/4 max-w-sm`). See {@link SheetSize}.
3888
+ */
3889
+ size?: SheetSize;
2732
3890
  /** If false, the built-in close button is hidden. Default: true. */
2733
3891
  showCloseButton?: boolean;
2734
3892
  /**
2735
- * Width preset for left/right sheets. Omit for the historical default
2736
- * (`w-3/4 max-w-sm`). Top/bottom sheets ignore this prop.
3893
+ * The accessible name of the built-in close button. Takes precedence over
3894
+ * `messages.close`. Default `"Close"`.
3895
+ */
3896
+ closeLabel?: string;
3897
+ /** Overrides of the copy the sheet renders (English defaults until W5-20). */
3898
+ messages?: Partial<SheetMessages>;
3899
+ /**
3900
+ * Width preset for left/right sheets — the same steps as `size`, plus
3901
+ * `default`. When both are given `size` wins.
3902
+ *
3903
+ * @deprecated Use `size` (C-SHEET-WIDTH, codemod CM-11). Removed in 3.0.
2737
3904
  */
2738
3905
  width?: SheetWidth;
2739
3906
  /**
2740
- * Custom CSS width for left/right sheets, e.g. `"520px"` or
2741
- * `"min(95vw, 720px)"`. Prefer `width` presets unless a product surface
2742
- * has a proven one-off contract.
3907
+ * Custom CSS width for left/right sheets, e.g. `"520px"`, rendered as an
3908
+ * inline `width` with `max-width: 95vw`.
3909
+ *
3910
+ * @deprecated Set the `--ds-sheet-width` custom property instead
3911
+ * (C-SHEET-WIDTH, codemod CM-11). Removed in 3.0.
2743
3912
  */
2744
3913
  customWidth?: string;
2745
3914
  }
2746
3915
  declare const SheetContent: React$1.ForwardRefExoticComponent<SheetContentProps & React$1.RefAttributes<HTMLDivElement>>;
2747
3916
  declare const SheetHeader: {
2748
- ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
3917
+ (props: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
2749
3918
  displayName: string;
2750
3919
  };
3920
+ /**
3921
+ * Props of `SheetBody` (W5-07).
3922
+ *
3923
+ * @experimental
3924
+ */
3925
+ interface SheetBodyProps extends React$1.HTMLAttributes<HTMLDivElement> {
3926
+ /**
3927
+ * Horizontal padding, matching the header's and footer's `p-6` at `md`
3928
+ * (the default). The panel's own `gap-4` spaces the parts vertically.
3929
+ */
3930
+ padding?: "none" | "sm" | "md" | "lg";
3931
+ }
3932
+ /**
3933
+ * The scroll region of a sheet between `SheetHeader` and `SheetFooter`
3934
+ * (W5-07): takes the remaining height of the panel and scrolls on its own,
3935
+ * so the header and the footer stay in place.
3936
+ *
3937
+ * @experimental
3938
+ */
3939
+ declare const SheetBody: React$1.ForwardRefExoticComponent<SheetBodyProps & React$1.RefAttributes<HTMLDivElement>>;
2751
3940
  declare const SheetFooter: {
2752
- ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
3941
+ (props: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
2753
3942
  displayName: string;
2754
3943
  };
2755
3944
  declare const SheetTitle: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
2756
3945
  declare const SheetDescription: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
2757
3946
 
2758
- declare const sideDrawerVariants: (props?: ({
2759
- side?: "left" | "right" | null | undefined;
2760
- width?: "sm" | "md" | "lg" | null | undefined;
2761
- } & class_variance_authority_types.ClassProp) | undefined) => string;
2762
- interface SideDrawerProps extends VariantProps<typeof sideDrawerVariants> {
3947
+ type SideDrawerWidth = "sm" | "md" | "lg";
3948
+ type SideDrawerSide = "right" | "left";
3949
+ /**
3950
+ * Props of `SideDrawer`.
3951
+ *
3952
+ * @deprecated Use `Sheet` (`SheetContent side size`, `SheetHeader`,
3953
+ * `SheetBody`, `SheetFooter`, `onOpenChange`); codemod CM-09. Removed in 3.0.
3954
+ */
3955
+ interface SideDrawerProps {
2763
3956
  open: boolean;
2764
3957
  onClose: () => void;
2765
- width?: "sm" | "md" | "lg";
2766
- side?: "right" | "left";
3958
+ width?: SideDrawerWidth;
3959
+ side?: SideDrawerSide;
2767
3960
  children: React$1.ReactNode;
2768
3961
  }
3962
+ /**
3963
+ * @deprecated Use `Sheet` (C-SIDEDRAWER, codemod CM-09). Removed in 3.0.
3964
+ */
2769
3965
  declare function SideDrawer({ open, onClose, width, side, children, }: SideDrawerProps): react_jsx_runtime.JSX.Element;
2770
3966
  declare namespace SideDrawer {
2771
3967
  var Header: typeof SideDrawerHeader;
@@ -2790,11 +3986,6 @@ interface SideDrawerFooterProps {
2790
3986
  }
2791
3987
  declare function SideDrawerFooter({ children, className }: SideDrawerFooterProps): react_jsx_runtime.JSX.Element;
2792
3988
 
2793
- /**
2794
- * Skeleton — animated placeholder. The `.skeleton` global class supplies
2795
- * the shimmer animation (defined in tokens.css). All three primitives are
2796
- * `aria-hidden` because they're decorative loading affordances.
2797
- */
2798
3989
  interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {
2799
3990
  className?: string;
2800
3991
  }
@@ -2808,11 +3999,42 @@ interface SkeletonCircleProps extends React.HTMLAttributes<HTMLDivElement> {
2808
3999
  }
2809
4000
  declare const SkeletonCircle: React$1.ForwardRefExoticComponent<SkeletonCircleProps & React$1.RefAttributes<HTMLDivElement>>;
2810
4001
 
4002
+ /**
4003
+ * Slider — a Radix slider with the design system's track and thumb (W4-16,
4004
+ * plan §16.1).
4005
+ *
4006
+ * **Form participation** is Radix's own (ADR-006 §1): the thumb is paired
4007
+ * with a hidden native input carrying `name` (`name[]` for a range), the
4008
+ * current value, `disabled` and `form`, so `FormData` holds the number as a
4009
+ * string. Radix Slider does not follow a form `reset`; the wrapper does
4010
+ * (`useFormReset`), restoring `defaultValue`.
4011
+ *
4012
+ * **Field binding** through `useFieldControl`: inside a `Field` the thumb
4013
+ * (the focusable `role="slider"`) references the `Label` through
4014
+ * `aria-labelledby` and the description / error through `aria-describedby`;
4015
+ * `name`, `disabled` and `invalid` come from the field. Explicit props win.
4016
+ * Outside a field the thumb is named by `aria-label`, the `label` sugar, or
4017
+ * "Slider value".
4018
+ *
4019
+ * **Sizes** (`size`, own geometry per plan §2.1): `md` (default) is today's
4020
+ * 6px track and 16px thumb; `sm` and `lg` read the control scale's glyph
4021
+ * tokens for the thumb (`--control-icon-sm` 14px, `--control-icon-xl` 20px)
4022
+ * with a 4px / 8px track.
4023
+ */
4024
+ /** The slider sizes: the component's own geometry, `md` is today's. */
4025
+ type SliderSize = Extract<ControlSize, "sm" | "md" | "lg">;
2811
4026
  interface SliderProps extends React$1.ComponentPropsWithoutRef<typeof SliderPrimitive.Root> {
2812
- /** Optional inline label rendered above the track */
4027
+ /** Optional inline label rendered above the track. Names the thumb. */
2813
4028
  label?: string;
2814
4029
  /** When true, renders the current value to the right of the label */
2815
4030
  showValue?: boolean;
4031
+ /** Track and thumb geometry. Default `md` (today's 6px track, 16px thumb). */
4032
+ size?: SliderSize;
4033
+ /**
4034
+ * The slider is in error: `aria-invalid` on the thumb and `data-invalid`
4035
+ * on the root. Implied by the surrounding `Field`'s `invalid`.
4036
+ */
4037
+ invalid?: boolean;
2816
4038
  }
2817
4039
  declare const Slider: React$1.ForwardRefExoticComponent<SliderProps & React$1.RefAttributes<HTMLSpanElement>>;
2818
4040
 
@@ -3258,8 +4480,18 @@ declare const SuiteProgress: React$1.ForwardRefExoticComponent<SuiteProgressProp
3258
4480
  declare const switchVariants: (props?: ({
3259
4481
  size?: "sm" | "md" | null | undefined;
3260
4482
  } & class_variance_authority_types.ClassProp) | undefined) => string;
4483
+ /** The switch sizes: the component's own geometry (`sm` 20×36, `md` 24×44). */
4484
+ type SwitchSize = NonNullable<VariantProps<typeof switchVariants>["size"]>;
3261
4485
  interface SwitchProps extends Omit<React$1.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root>, "size">, VariantProps<typeof switchVariants> {
4486
+ /** Optional inline label rendered to the right of the track. Names the button through `htmlFor`. */
3262
4487
  label?: string;
4488
+ /** The value submitted with `name` while on. Default `"on"`, like a native checkbox. */
4489
+ value?: string;
4490
+ /**
4491
+ * The switch is in error: `aria-invalid` and `data-invalid`. Implied by the
4492
+ * surrounding `Field`'s `invalid` or a mounted `FieldError`.
4493
+ */
4494
+ invalid?: boolean;
3263
4495
  }
3264
4496
  declare const Switch: React$1.ForwardRefExoticComponent<SwitchProps & React$1.RefAttributes<HTMLButtonElement>>;
3265
4497
 
@@ -3310,18 +4542,96 @@ declare function TeamMemberSelect({ teamMembers, currentUserId, value, onValueCh
3310
4542
  declare namespace TeamMemberSelect {
3311
4543
  var displayName: string;
3312
4544
  }
3313
-
3314
- declare const textareaVariants: (props?: ({
3315
- variant?: "ghost" | "default" | null | undefined;
3316
- inputSize?: "sm" | "md" | "lg" | null | undefined;
3317
- } & class_variance_authority_types.ClassProp) | undefined) => string;
3318
- type TextareaVariants = VariantProps<typeof textareaVariants>;
4545
+
4546
+ /**
4547
+ * The emphases a Textarea offers: the shared chrome's `default` and `ghost`
4548
+ * (spelled out, as on Input, so the public declaration names no unexported
4549
+ * symbol; the `satisfies` keeps it in step with the recipe).
4550
+ *
4551
+ * @experimental
4552
+ */
4553
+ type TextareaVariant = "default" | "ghost";
4554
+ /**
4555
+ * The size names a Textarea knows (W4-06): the three steps that have a
4556
+ * `--textarea-min-height-<size>` token (64 / 80 / 96px). A textarea grows
4557
+ * with its content, so `size` is a *minimum* height, not the outer height
4558
+ * the shared scale promises (`baselines/size-geometry.json` keeps Textarea
4559
+ * out of A1 on purpose). Padding and text stay on today's steps until D5.
4560
+ *
4561
+ * @experimental
4562
+ */
4563
+ type TextareaSize = Extract<ControlSize, "sm" | "md" | "lg">;
4564
+ /**
4565
+ * What {@link textareaVariants} takes: the emphasis, the size (either name —
4566
+ * `size` wins when both are given) and cva's class props.
4567
+ *
4568
+ * @experimental
4569
+ */
4570
+ interface TextareaVariantsOptions {
4571
+ variant?: TextareaVariant | null;
4572
+ size?: TextareaSize | null;
4573
+ /**
4574
+ * The legacy size prop (C-INPUT-SIZE): today's rows, byte for byte.
4575
+ *
4576
+ * @deprecated Use `size`. Codemod CM-07 renames it.
4577
+ */
4578
+ inputSize?: TextareaSize | null;
4579
+ class?: string | null;
4580
+ className?: string | null;
4581
+ }
4582
+ /** The variant props of `textareaVariants` (cva's `VariantProps` shape, kept for the API report). */
4583
+ type TextareaVariants = Omit<TextareaVariantsOptions, "class" | "className">;
4584
+ /**
4585
+ * The Textarea class recipe (W4-06): the shared control chrome
4586
+ * (`behavior/control-chrome.ts`) with the emphasis and no height row, then
4587
+ * the `min-height` row of the size.
4588
+ *
4589
+ * Against the cva it replaces the set of classes differs in one place, on
4590
+ * purpose (W4-03 mapping, PR #199): the motion string is the shared
4591
+ * `microInteractions.control` — same transitioned properties, the feedback
4592
+ * duration token (the same 150ms `--duration-fast` was) and the `enter`
4593
+ * easing where the copy declared none. `tests/browser/textarea-parity.test.tsx`
4594
+ * holds every other computed property equal under each host fixture.
4595
+ * Server-safe.
4596
+ *
4597
+ * @experimental
4598
+ */
4599
+ declare function textareaVariants({ variant, size, inputSize, class: classProp, className, }?: TextareaVariantsOptions): string;
4600
+ /**
4601
+ * Props of `Textarea` (W4-06).
4602
+ *
4603
+ * @experimental The name is exported since W4-06; the props it lists have been
4604
+ * stable since 1.x.
4605
+ */
3319
4606
  interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, "size">, TextareaVariants {
4607
+ /** Sugar for the field label, bound through the field wiring (`htmlFor`/`id`). */
3320
4608
  label?: string;
4609
+ /** Sugar for the hint text under the control, referenced before `error` in `aria-describedby`. */
4610
+ description?: string;
4611
+ /** Sugar for the error message: linked through `aria-describedby`, marks the control invalid. */
3321
4612
  error?: string;
4613
+ /** The value is invalid without a message to show. Implied by `error`. */
4614
+ invalid?: boolean;
4615
+ /** Show `<length>/<maxLength>` under the control. Needs `maxLength`. */
3322
4616
  showCount?: boolean;
4617
+ /** Grow with the content instead of scrolling. */
3323
4618
  autoResize?: boolean;
4619
+ /** Called with the new string value on every change, next to `onChange`. */
4620
+ onValueChange?: (value: string) => void;
4621
+ /**
4622
+ * Classes per anatomy part (the `textarea-*` slots). The `<textarea>`
4623
+ * is the root part and takes `className` (C-INPUT-CLASSNAME), so it has no
4624
+ * entry here.
4625
+ */
4626
+ classNames?: Partial<Record<Exclude<TextareaSlot, "root">, string>>;
4627
+ /** Classes for the outer wrapper (transitional, C-INPUT-CLASSNAME — see `Input`). */
4628
+ rootClassName?: string;
3324
4629
  }
4630
+ /**
4631
+ * A multi-line text field. The control is a native `<textarea>`; inside a
4632
+ * `Field` it binds itself through `useFieldControl`, and the
4633
+ * `label` / `description` / `error` sugar renders the same wiring around it.
4634
+ */
3325
4635
  declare const Textarea: React$1.ForwardRefExoticComponent<TextareaProps & React$1.RefAttributes<HTMLTextAreaElement>>;
3326
4636
 
3327
4637
  type ToastVariant = "default" | "success" | "destructive" | "warning" | "info" | "loading";
@@ -3365,16 +4675,49 @@ interface ToastContextValue {
3365
4675
  }) => Promise<T>;
3366
4676
  }
3367
4677
  declare function useToast(): ToastContextValue;
4678
+
3368
4679
  interface ToastProviderProps {
3369
4680
  children: React.ReactNode;
4681
+ /**
4682
+ * Overrides of the copy the region and its toasts render (the region's
4683
+ * accessible name, the dismiss button). Default English; the provider's
4684
+ * `messages.toast` applies below it.
4685
+ */
4686
+ messages?: Partial<ToastMessages>;
3370
4687
  }
3371
- declare function ToastProvider({ children }: ToastProviderProps): react_jsx_runtime.JSX.Element;
4688
+ declare function ToastProvider({ children, messages: messagesProp }: ToastProviderProps): react_jsx_runtime.JSX.Element;
3372
4689
 
3373
4690
  declare const itemVariants: (props?: ({
3374
4691
  variant?: "outline" | "default" | null | undefined;
3375
4692
  } & class_variance_authority_types.ClassProp) | undefined) => string;
3376
- type ToggleGroupRootProps = React$1.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root> & VariantProps<typeof itemVariants>;
3377
- declare const ToggleGroup: React$1.ForwardRefExoticComponent<ToggleGroupRootProps & React$1.RefAttributes<HTMLDivElement>>;
4693
+ /** The toggle-group sizes: the shared control scale (A1). */
4694
+ type ToggleGroupSize = ControlSize;
4695
+ /** The item's look: bare (`default`) or with a border (`outline`). */
4696
+ type ToggleGroupVariant = NonNullable<VariantProps<typeof itemVariants>["variant"]>;
4697
+ type RadixRootProps = React$1.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root>;
4698
+ /** The props every group shares, whatever its `type`. */
4699
+ interface ToggleGroupFormProps extends VariantProps<typeof itemVariants> {
4700
+ /** Outer height from the shared control scale (A1). Omitted: today's geometry. */
4701
+ size?: ToggleGroupSize;
4702
+ /** The form field name. Without it the group does not take part in a form. */
4703
+ name?: string;
4704
+ /** `id` of the form to submit with when the group is rendered outside it. */
4705
+ form?: string;
4706
+ /** Block native submission while nothing is pressed. */
4707
+ required?: boolean;
4708
+ /**
4709
+ * The group is in error: `aria-invalid` and `data-invalid`. Implied by the
4710
+ * surrounding `Field`'s `invalid` or a mounted `FieldError`.
4711
+ */
4712
+ invalid?: boolean;
4713
+ /**
4714
+ * Single groups only: submit `name=""` while nothing is pressed (`true`,
4715
+ * the default and what a Select does) or omit the entry (`false`).
4716
+ */
4717
+ submitEmpty?: boolean;
4718
+ }
4719
+ type ToggleGroupProps = RadixRootProps & ToggleGroupFormProps;
4720
+ declare const ToggleGroup: React$1.ForwardRefExoticComponent<ToggleGroupProps & React$1.RefAttributes<HTMLDivElement>>;
3378
4721
  interface ToggleGroupItemProps extends React$1.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item>, VariantProps<typeof itemVariants> {
3379
4722
  }
3380
4723
  declare const ToggleGroupItem: React$1.ForwardRefExoticComponent<ToggleGroupItemProps & React$1.RefAttributes<HTMLButtonElement>>;
@@ -3418,13 +4761,16 @@ declare const TooltipTrigger: React$1.ForwardRefExoticComponent<TooltipPrimitive
3418
4761
  declare const TooltipPortal: React$1.FC<TooltipPrimitive.TooltipPortalProps>;
3419
4762
  interface TooltipProps extends React$1.ComponentPropsWithoutRef<typeof TooltipPrimitive.Root> {
3420
4763
  /**
3421
- * Backwards-compat alias for Radix's `delayDuration`. Kept so existing
3422
- * call sites that passed `delayMs={…}` keep working unchanged.
4764
+ * Alias of Radix's `delayDuration`. `delayDuration` wins when both are
4765
+ * given. Contract C-TOOLTIP-DELAY, removed in 3.0; codemod CM-13 renames it.
4766
+ *
4767
+ * @deprecated Use `delayDuration`.
3423
4768
  */
3424
4769
  delayMs?: number;
3425
4770
  /**
3426
- * Optional delayDuration applied to the implicit Provider. Forwarded
3427
- * here when no surrounding `<TooltipProvider>` is present.
4771
+ * How long the pointer rests on the trigger before the tooltip opens, in
4772
+ * milliseconds. Default: the surrounding provider's (`DesignSystemProvider
4773
+ * tooltip.delayDuration`), or 300 without one.
3428
4774
  */
3429
4775
  delayDuration?: number;
3430
4776
  }
@@ -3432,7 +4778,20 @@ declare const Tooltip: {
3432
4778
  ({ delayMs, delayDuration, children, ...props }: TooltipProps): react_jsx_runtime.JSX.Element;
3433
4779
  displayName: string;
3434
4780
  };
3435
- declare const TooltipContent: React$1.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
4781
+ /**
4782
+ * How wide a `TooltipContent` may grow before its text wraps. `xs` (20rem)
4783
+ * is what the tooltip always rendered; `sm` and `md` are 24rem and 28rem for
4784
+ * multi-line help; `none` lets the text set the width. Replaces the `max-w-*`
4785
+ * class consumers wrote on `className` (a third of them today).
4786
+ *
4787
+ * @experimental
4788
+ */
4789
+ type TooltipMaxWidth = "xs" | "sm" | "md" | "none";
4790
+ interface TooltipContentProps extends React$1.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> {
4791
+ /** See {@link TooltipMaxWidth}. Default `xs`. @experimental */
4792
+ maxWidth?: TooltipMaxWidth;
4793
+ }
4794
+ declare const TooltipContent: React$1.ForwardRefExoticComponent<TooltipContentProps & React$1.RefAttributes<HTMLDivElement>>;
3436
4795
 
3437
4796
  /**
3438
4797
  * VisuallyHidden — hides content from sighted users while keeping it
@@ -4007,6 +5366,440 @@ declare function resolveChipStyle({ variant, intent, pressed, }: {
4007
5366
  */
4008
5367
  declare const Chip: React$1.ForwardRefExoticComponent<ChipProps & React$1.RefAttributes<HTMLElement>>;
4009
5368
 
5369
+ /**
5370
+ * How a `Field` lays out its parts: stacked (`vertical`, the default) or on
5371
+ * one row (`horizontal`: settings rows, Switch and Checkbox rows).
5372
+ *
5373
+ * @experimental
5374
+ */
5375
+ type FieldOrientation = "vertical" | "horizontal";
5376
+
5377
+ /**
5378
+ * Props of `Field`.
5379
+ *
5380
+ * @experimental
5381
+ */
5382
+ interface FieldProps extends HTMLAttributes<HTMLDivElement> {
5383
+ /**
5384
+ * The control's id and the base of every part id (`<id>-label`,
5385
+ * `<id>-description`, `<id>-error`). Generated with `useId` when omitted.
5386
+ */
5387
+ id?: string;
5388
+ /** The control's `name`, when the control does not set its own. */
5389
+ name?: string;
5390
+ /**
5391
+ * The field is in error: the control gets `aria-invalid` and
5392
+ * `data-invalid`. Implied by a mounted `FieldError` with content.
5393
+ */
5394
+ invalid?: boolean;
5395
+ /**
5396
+ * The value is required: a native control gets `required`, any other
5397
+ * `aria-required`; the `Label` shows the asterisk.
5398
+ */
5399
+ required?: boolean;
5400
+ /** The value is optional: the `Label` shows the `optional` message after the text. */
5401
+ optional?: boolean;
5402
+ /** Propagated to the control. */
5403
+ disabled?: boolean;
5404
+ /** Propagated to the control. */
5405
+ readOnly?: boolean;
5406
+ /** Stacked (`vertical`, default) or on one row (`horizontal`). */
5407
+ orientation?: FieldOrientation;
5408
+ /** The control size the field's controls read (from W4-05). */
5409
+ size?: ControlSize;
5410
+ /** Overrides of the copy the field renders (English defaults until W5-20). */
5411
+ messages?: Partial<FieldMessages>;
5412
+ children?: ReactNode;
5413
+ }
5414
+ /**
5415
+ * One form control with its label, description and error (target
5416
+ * architecture §24.1). Renders a `div` with the field anatomy and puts the
5417
+ * wiring in context.
5418
+ *
5419
+ * @experimental
5420
+ */
5421
+ declare const Field: React$1.ForwardRefExoticComponent<FieldProps & React$1.RefAttributes<HTMLDivElement>>;
5422
+ /**
5423
+ * Props of `FieldDescription`.
5424
+ *
5425
+ * @experimental
5426
+ */
5427
+ type FieldDescriptionProps = HTMLAttributes<HTMLParagraphElement>;
5428
+ /**
5429
+ * Hint text for the field's control, referenced first in the control's
5430
+ * `aria-describedby`. Registers itself, so an unmounted description is not
5431
+ * referenced.
5432
+ *
5433
+ * @experimental
5434
+ */
5435
+ declare const FieldDescription: React$1.ForwardRefExoticComponent<FieldDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>>;
5436
+ /**
5437
+ * Props of `FieldError`.
5438
+ *
5439
+ * @experimental
5440
+ */
5441
+ type FieldErrorProps = HTMLAttributes<HTMLParagraphElement>;
5442
+ /**
5443
+ * The field's error message, referenced after the description in the
5444
+ * control's `aria-describedby`; a mounted error with content also makes the
5445
+ * field invalid. Renders nothing (and registers nothing) without content, so
5446
+ * `<FieldError>{error}</FieldError>` is the whole call site.
5447
+ *
5448
+ * Announcement (target architecture §24.1): an error that appears after the
5449
+ * field is on screen — after an interaction — is a `role="alert"` live
5450
+ * region, announced once when it mounts and again when its text changes. An
5451
+ * error rendered with the field (server-rendered validation results, the
5452
+ * first client paint) is plain text: it is read with the control through
5453
+ * `aria-describedby`, not shouted on page load. Pass `role` to override.
5454
+ *
5455
+ * @experimental
5456
+ */
5457
+ declare const FieldError: React$1.ForwardRefExoticComponent<FieldErrorProps & React$1.RefAttributes<HTMLParagraphElement>>;
5458
+
5459
+ /**
5460
+ * L1b (W2-19 scaffolding, public since W4-02). The integration contract of
5461
+ * target architecture §24.2: a control asks for its wiring and never knows
5462
+ * about labels. Explicit props always win over the surrounding `Field`, and a
5463
+ * control outside a field keeps working.
5464
+ *
5465
+ * Every design-system form control calls this hook (from W4-05 on). It is
5466
+ * public for product-built controls — a rich-text editor, an annotation
5467
+ * editor — that want the same binding; `FieldControl` is the same contract as
5468
+ * a Slot for a control that is already a component.
5469
+ */
5470
+ /**
5471
+ * What a control tells `useFieldControl`. Every prop is optional: inside a
5472
+ * `Field` the context supplies the rest, outside one the hook generates an id
5473
+ * and adds nothing else.
5474
+ *
5475
+ * @experimental
5476
+ */
5477
+ interface UseFieldControlProps {
5478
+ id?: string | undefined;
5479
+ name?: string | undefined;
5480
+ invalid?: boolean | undefined;
5481
+ required?: boolean | undefined;
5482
+ disabled?: boolean | undefined;
5483
+ readOnly?: boolean | undefined;
5484
+ "aria-labelledby"?: string | undefined;
5485
+ "aria-describedby"?: string | undefined;
5486
+ /**
5487
+ * `false` for a control that cannot be the target of `htmlFor` — a Radix
5488
+ * trigger, a checkbox button, a slider thumb. Those are named with
5489
+ * `aria-labelledby` and cannot carry the native `required` attribute.
5490
+ * Default `true` (`input`, `textarea`, `select`).
5491
+ */
5492
+ native?: boolean | undefined;
5493
+ }
5494
+ /**
5495
+ * The wiring `useFieldControl` returns. Spread it onto the control's element
5496
+ * (`<input {...wiring} />`); merge `ref` with your own through a ref callback
5497
+ * when you keep one.
5498
+ *
5499
+ * @experimental
5500
+ */
5501
+ interface FieldControlWiring {
5502
+ id: string;
5503
+ name: string | undefined;
5504
+ "aria-labelledby": string | undefined;
5505
+ "aria-describedby": string | undefined;
5506
+ "aria-invalid": true | undefined;
5507
+ "aria-required": true | undefined;
5508
+ required: true | undefined;
5509
+ disabled: boolean | undefined;
5510
+ readOnly: boolean | undefined;
5511
+ /** State attributes per ADR-008: present when true, absent otherwise. */
5512
+ "data-invalid": "" | undefined;
5513
+ "data-disabled": "" | undefined;
5514
+ /**
5515
+ * Attach to the control's element. In development the hook checks, once the
5516
+ * element is in the document, that it has an accessible name, and prints an
5517
+ * error (once per control) when it has none. Nothing in production.
5518
+ */
5519
+ ref: RefCallback<HTMLElement>;
5520
+ }
5521
+ /**
5522
+ * The wiring of one form control: `id`, `name`, ARIA references to the
5523
+ * mounted `Field` parts (description before error), invalid / required /
5524
+ * disabled / readOnly and the matching state attributes.
5525
+ *
5526
+ * Merge order: an explicit prop wins over the field; `aria-describedby` is
5527
+ * merged (field ids first, then the prop). Outside a `Field` only the
5528
+ * explicit props and a generated id remain.
5529
+ *
5530
+ * @experimental
5531
+ */
5532
+ declare function useFieldControl(props?: UseFieldControlProps): FieldControlWiring;
5533
+
5534
+ /**
5535
+ * Props of `FieldControl`.
5536
+ *
5537
+ * @experimental
5538
+ */
5539
+ interface FieldControlProps extends Pick<UseFieldControlProps, "native"> {
5540
+ /** Exactly one element. Its own `id`, `aria-*` and state props win over the field. */
5541
+ children: ReactElement;
5542
+ }
5543
+ /**
5544
+ * Injects the field's wiring into its only child (see `useFieldControl`).
5545
+ *
5546
+ * `native` defaults to whether the child is an intrinsic `input`, `select`
5547
+ * or `textarea`. A native child receives the full wiring, including `name`,
5548
+ * `required`, `disabled` and `readOnly`. Any other child receives the id,
5549
+ * the ARIA references and states (`aria-labelledby`, `aria-describedby`,
5550
+ * `aria-invalid`, `aria-required`, `aria-disabled`, `aria-readonly`) and the
5551
+ * `data-invalid` / `data-disabled` attributes, and reads `disabled` itself
5552
+ * through `useFieldControl` when it needs the prop.
5553
+ *
5554
+ * @experimental
5555
+ */
5556
+ declare function FieldControl({ children, native }: FieldControlProps): ReactElement;
5557
+
5558
+ /**
5559
+ * Props of `Fieldset`.
5560
+ *
5561
+ * @experimental
5562
+ */
5563
+ interface FieldsetProps extends FieldsetHTMLAttributes<HTMLFieldSetElement> {
5564
+ /** The group is in error; `data-invalid` for styling. Each field carries its own `aria-invalid`. */
5565
+ invalid?: boolean;
5566
+ }
5567
+ /**
5568
+ * A group of fields under one legend. No visual chrome: the browser's
5569
+ * fieldset border and padding are reset.
5570
+ *
5571
+ * @experimental
5572
+ */
5573
+ declare const Fieldset: React$1.ForwardRefExoticComponent<FieldsetProps & React$1.RefAttributes<HTMLFieldSetElement>>;
5574
+ /**
5575
+ * Props of `FieldsetLegend`.
5576
+ *
5577
+ * @experimental
5578
+ */
5579
+ type FieldsetLegendProps = HTMLAttributes<HTMLLegendElement>;
5580
+ /**
5581
+ * The group's name. Must be the first child of `Fieldset` for the browser to
5582
+ * treat it as the legend. Inside a `Fieldset` it carries the id a grouped
5583
+ * control references through `aria-labelledby`; an explicit `id` wins.
5584
+ *
5585
+ * @experimental
5586
+ */
5587
+ declare const FieldsetLegend: React$1.ForwardRefExoticComponent<FieldsetLegendProps & React$1.RefAttributes<HTMLLegendElement>>;
5588
+
5589
+ /**
5590
+ * L1a behaviour primitive (private). Not exported from the package.
5591
+ *
5592
+ * The canonical option model of every list-shaped control (W4-09; target
5593
+ * architecture §32): `Select`, the coming `Combobox` (W4-10) and its
5594
+ * `MultiSelect` preset (W4-11), the `SearchSelect` adapter (W4-12) and the
5595
+ * `PeoplePicker` pattern all read one shape, in place of the six that ship
5596
+ * today (`{value,label}`, `{id,label,group…}`, `{id,label,email}`,
5597
+ * `{id,fullName}`, `{key,label,dot}`, `string[]`).
5598
+ *
5599
+ * Two halves:
5600
+ *
5601
+ * - {@link Option} and its accessors: what a row *is*. Consumers with domain
5602
+ * objects pass {@link OptionAccessors} (`getOptionValue`/`getOptionLabel`)
5603
+ * instead of remapping, and {@link toOptions} normalises everything — a
5604
+ * `string[]`, domain objects, `Option`s — into one array the list renders.
5605
+ * - The selection helpers: what a control's *value* is, discriminated by
5606
+ * `multiple` (single `TValue | null`, multi `TValue[]`; §32 "Value"). `""`
5607
+ * keeps meaning empty in 2.x (§32 "Compat"), so {@link normalizeSingleValue}
5608
+ * folds it to `null` at the boundary.
5609
+ *
5610
+ * No React, no client directive, no DOM: plain functions over plain data, so
5611
+ * the same module serves a Server Component, a test and the keyboard helper.
5612
+ */
5613
+ /**
5614
+ * One row of a list-shaped control.
5615
+ *
5616
+ * `value` is never `""`: emptiness is `value === null` on the control, not a
5617
+ * sentinel row (§32). `label` is the string typeahead, filtering and the
5618
+ * accessible name read; `description` and `icon` are rendered, never searched.
5619
+ * `keywords` widen the match without showing. `meta` carries consumer data
5620
+ * through to `renderOption` / `onValueChange` details untouched.
5621
+ *
5622
+ * @experimental
5623
+ */
5624
+ interface Option<TValue extends string = string, TMeta = unknown> {
5625
+ value: TValue;
5626
+ label: string;
5627
+ description?: ReactNode;
5628
+ /** Leading visual: icon, avatar, flag, colour swatch. */
5629
+ icon?: ReactNode;
5630
+ disabled?: boolean;
5631
+ group?: string;
5632
+ keywords?: readonly string[];
5633
+ meta?: TMeta;
5634
+ }
5635
+ /**
5636
+ * How a list reads a consumer's own item type. Only `getOptionValue` and
5637
+ * `getOptionLabel` are required: an item with no `disabled`/`group`/`keywords`
5638
+ * accessor is enabled, ungrouped and matched on its label alone.
5639
+ *
5640
+ * @experimental
5641
+ */
5642
+ interface OptionAccessors<TItem, TValue extends string = string> {
5643
+ getOptionValue: (item: TItem) => TValue;
5644
+ getOptionLabel: (item: TItem) => string;
5645
+ getOptionDisabled?: (item: TItem) => boolean;
5646
+ getOptionGroup?: (item: TItem) => string | undefined;
5647
+ getOptionKeywords?: (item: TItem) => readonly string[] | undefined;
5648
+ }
5649
+
5650
+ /** The English defaults (the `combobox` namespace of the catalogue). */
5651
+ declare const DEFAULT_COMBOBOX_MESSAGES: ComboboxMessages;
5652
+ /** The sizes a combobox offers: the shared control scale (A1). @experimental */
5653
+ type ComboboxSize = ControlSize;
5654
+ /** What `renderOption` is told about the row it renders. @experimental */
5655
+ interface ComboboxOptionState {
5656
+ selected: boolean;
5657
+ highlighted: boolean;
5658
+ disabled: boolean;
5659
+ }
5660
+ /**
5661
+ * Class overrides per part, for the consumer who must restyle one slot
5662
+ * without reaching into the DOM.
5663
+ *
5664
+ * @experimental
5665
+ */
5666
+ interface ComboboxClassNames {
5667
+ root?: string;
5668
+ control?: string;
5669
+ input?: string;
5670
+ chip?: string;
5671
+ content?: string;
5672
+ list?: string;
5673
+ item?: string;
5674
+ }
5675
+ /** @experimental */
5676
+ interface ComboboxBaseProps<TItem, TValue extends string> extends Partial<OptionAccessors<TItem, TValue>> {
5677
+ /** The rows: `Option`s, strings, or domain objects read through the accessors. */
5678
+ options: readonly TItem[];
5679
+ id?: string;
5680
+ /** The form field name. Without it nothing is submitted. */
5681
+ name?: string;
5682
+ /** The `id` of the form to submit with when the control is rendered outside it. */
5683
+ form?: string;
5684
+ required?: boolean;
5685
+ disabled?: boolean;
5686
+ readOnly?: boolean;
5687
+ invalid?: boolean;
5688
+ /** The accessible name of a combobox outside a `Field`. */
5689
+ "aria-label"?: string;
5690
+ "aria-labelledby"?: string;
5691
+ "aria-describedby"?: string;
5692
+ placeholder?: string;
5693
+ /** Outer height from the shared control scale. Default `md` (36px). */
5694
+ size?: ComboboxSize;
5695
+ /** A leading glyph inside the control, decorative. */
5696
+ icon?: ReactNode;
5697
+ /** Show a clear button while a value is set. Default `true`. */
5698
+ clearable?: boolean;
5699
+ /** Open the list when the input receives focus. Default `false`. */
5700
+ openOnFocus?: boolean;
5701
+ /** Whether the list surface flips to stay in the viewport. Default `true`. */
5702
+ avoidCollisions?: boolean;
5703
+ open?: boolean;
5704
+ defaultOpen?: boolean;
5705
+ onOpenChange?: (open: boolean) => void;
5706
+ /** The typed query (controlled). */
5707
+ search?: string;
5708
+ defaultSearch?: string;
5709
+ /** Called with every query the user types (an async source fetches here). */
5710
+ onSearchChange?: (query: string) => void;
5711
+ /**
5712
+ * Filter `options` by the query (`true`, the default). `false` when the
5713
+ * consumer filters — the options are already the answer to the query.
5714
+ */
5715
+ shouldFilter?: boolean;
5716
+ /** An async source is fetching: a spinner in the control, `loadingState` in the list. */
5717
+ loading?: boolean;
5718
+ emptyState?: ReactNode;
5719
+ loadingState?: ReactNode;
5720
+ /** Rendered above the list, inside the popover. */
5721
+ header?: ReactNode;
5722
+ /** Rendered below the list, inside the popover. */
5723
+ footer?: ReactNode;
5724
+ /** Offer a "Create …" row for a query that matches no option exactly. */
5725
+ onCreate?: (query: string) => void;
5726
+ /** Replaces the content of a row. */
5727
+ renderOption?: (option: Option<TValue, unknown>, state: ComboboxOptionState) => ReactNode;
5728
+ messages?: Partial<ComboboxMessages>;
5729
+ className?: string;
5730
+ classNames?: ComboboxClassNames;
5731
+ /** The input element. */
5732
+ ref?: React$1.Ref<HTMLInputElement>;
5733
+ }
5734
+ /** @experimental */
5735
+ interface ComboboxSingleProps<TItem, TValue extends string> extends ComboboxBaseProps<TItem, TValue> {
5736
+ multiple?: false;
5737
+ /** The picked value, or `null`. `""` means empty (2.x compat). */
5738
+ value?: TValue | "" | null;
5739
+ defaultValue?: TValue | "" | null;
5740
+ onValueChange?: (value: TValue | null, details: {
5741
+ option: Option<TValue, unknown> | null;
5742
+ }) => void;
5743
+ /** Replaces the closed control's text for the picked option. */
5744
+ renderValue?: (option: Option<TValue, unknown>) => ReactNode;
5745
+ /** Close the list after a pick. Default `true`. */
5746
+ closeOnSelect?: boolean;
5747
+ }
5748
+ /** What `renderValue` receives in `multiple` mode besides the picked options. @experimental */
5749
+ interface ComboboxSelectionControls<TValue extends string> {
5750
+ /** Removes one value from the selection. */
5751
+ remove: (value: TValue) => void;
5752
+ }
5753
+ /** @experimental */
5754
+ interface ComboboxMultipleProps<TItem, TValue extends string> extends ComboboxBaseProps<TItem, TValue> {
5755
+ multiple: true;
5756
+ /** The picked values, in pick order. Empty strings are dropped. */
5757
+ value?: readonly (TValue | "")[];
5758
+ defaultValue?: readonly (TValue | "")[];
5759
+ onValueChange?: (value: TValue[], details: {
5760
+ option: Option<TValue, unknown> | null;
5761
+ }) => void;
5762
+ /**
5763
+ * Replaces the chips inside the control: called with the picked options
5764
+ * and `remove`. Return `null` to render nothing there.
5765
+ */
5766
+ renderValue?: (options: Option<TValue, unknown>[], controls: ComboboxSelectionControls<TValue>) => ReactNode;
5767
+ /** Close the list after a pick. Default `false`: keep picking. */
5768
+ closeOnSelect?: boolean;
5769
+ /** Drop picked rows from the list (the chips already show them). Default `false`. */
5770
+ hideSelected?: boolean;
5771
+ }
5772
+ /**
5773
+ * The props, discriminated by `multiple` (target architecture §32 "Value"):
5774
+ * a single pick is `TValue | null`, a multi pick is `TValue[]`.
5775
+ *
5776
+ * @experimental
5777
+ */
5778
+ type ComboboxProps<TItem = Option, TValue extends string = string> = ComboboxSingleProps<TItem, TValue> | ComboboxMultipleProps<TItem, TValue>;
5779
+ /**
5780
+ * The searchable pick: one input, a portalled listbox, the option model.
5781
+ * See the module comment.
5782
+ *
5783
+ * @experimental
5784
+ */
5785
+ declare function Combobox<TItem = Option, TValue extends string = string>(props: ComboboxProps<TItem, TValue>): react_jsx_runtime.JSX.Element;
5786
+ declare namespace Combobox {
5787
+ var displayName: string;
5788
+ }
5789
+
5790
+ /** @experimental */
5791
+ type MultiSelectProps<TItem = Option, TValue extends string = string> = Omit<ComboboxMultipleProps<TItem, TValue>, "multiple">;
5792
+ /**
5793
+ * `Combobox multiple`: values as `TValue[]`, chips inside the control, one
5794
+ * form entry per value.
5795
+ *
5796
+ * @experimental
5797
+ */
5798
+ declare function MultiSelect<TItem = Option, TValue extends string = string>(props: MultiSelectProps<TItem, TValue>): react_jsx_runtime.JSX.Element;
5799
+ declare namespace MultiSelect {
5800
+ var displayName: string;
5801
+ }
5802
+
4010
5803
  /**
4011
5804
  * AgreementViewer — the chrome + navigation shell for a multi-step, branded
4012
5805
  * agreement / proposal (the "Signed Agreement Viewer"). It owns the header,
@@ -6836,7 +8629,7 @@ declare const BulkActionBarAction: React$1.ForwardRefExoticComponent<BulkActionB
6836
8629
  declare function BulkActionBarSeparator({ className }: {
6837
8630
  className?: string;
6838
8631
  }): react_jsx_runtime.JSX.Element;
6839
- declare function BulkActionBar({ variant, selectedCount, label, children, onClear, clearLabel, clearDisabled, footer, className, ...props }: BulkActionBarProps): react_jsx_runtime.JSX.Element | null;
8632
+ declare function BulkActionBar({ variant, selectedCount, label, children, onClear, clearLabel: clearLabelProp, clearDisabled, footer, className, ...props }: BulkActionBarProps): react_jsx_runtime.JSX.Element | null;
6840
8633
 
6841
8634
  /**
6842
8635
  * Intent-named action wrappers (Phase 4).
@@ -7209,6 +9002,53 @@ type StickyStackSectionHeaderProps = StickyStackStickyProps;
7209
9002
  */
7210
9003
  declare const StickyStackSectionHeader: React$1.ForwardRefExoticComponent<StickyStackStickyProps & React$1.RefAttributes<HTMLDivElement>>;
7211
9004
 
9005
+ /** What `useConfirm()` asks with: the copy and the meaning of one confirmation. @experimental */
9006
+ interface ConfirmOptions {
9007
+ title: React$1.ReactNode;
9008
+ description?: React$1.ReactNode;
9009
+ confirmLabel?: React$1.ReactNode;
9010
+ cancelLabel?: React$1.ReactNode;
9011
+ intent?: ConfirmIntent;
9012
+ presentation?: ConfirmPresentation;
9013
+ /** Block content under the description (see `ConfirmDialog children`). */
9014
+ content?: React$1.ReactNode;
9015
+ }
9016
+ /** What `usePrompt()` asks with: a confirmation around one text input. @experimental */
9017
+ interface PromptOptions extends ConfirmOptions {
9018
+ /** The input's label. Falls back to the title as the accessible name when it is a string. */
9019
+ label?: string;
9020
+ defaultValue?: string;
9021
+ placeholder?: string;
9022
+ /** The confirm button stays disabled while the value is empty. Default `false`. */
9023
+ required?: boolean;
9024
+ /** The input type. Default `"text"`. */
9025
+ inputType?: "text" | "email" | "number" | "password" | "tel" | "url";
9026
+ }
9027
+ /** The function `useConfirm()` returns. @experimental */
9028
+ type ConfirmFn = (options: ConfirmOptions) => Promise<boolean>;
9029
+ /** The function `usePrompt()` returns. @experimental */
9030
+ type PromptFn = (options: PromptOptions) => Promise<string | null>;
9031
+ /** The design system's imperative confirm. See the file comment. @experimental */
9032
+ declare function useConfirm(): ConfirmFn;
9033
+ /** The design system's imperative prompt. See the file comment. @experimental */
9034
+ declare function usePrompt(): PromptFn;
9035
+ /** Props of `ConfirmHost`. @experimental */
9036
+ interface ConfirmHostProps {
9037
+ children?: React$1.ReactNode;
9038
+ }
9039
+ /**
9040
+ * Where `useConfirm` / `usePrompt` render (W5-18). Mount it once, high in the
9041
+ * tree — `DesignSystemProvider confirm` does — and every hook below it shares
9042
+ * the queue. Renders no DOM of its own while nothing is asked. On the server
9043
+ * a request resolves as cancelled at once (nothing can answer it).
9044
+ *
9045
+ * @experimental
9046
+ */
9047
+ declare function ConfirmHost({ children }: ConfirmHostProps): react_jsx_runtime.JSX.Element;
9048
+ declare namespace ConfirmHost {
9049
+ var displayName: string;
9050
+ }
9051
+
7212
9052
  declare function cn(...inputs: ClassValue[]): string;
7213
9053
 
7214
9054
  /**
@@ -7288,4 +9128,78 @@ interface BrandScopeProps extends React.HTMLAttributes<HTMLDivElement> {
7288
9128
  */
7289
9129
  declare const BrandScope: React$1.ForwardRefExoticComponent<BrandScopeProps & React$1.RefAttributes<HTMLDivElement>>;
7290
9130
 
7291
- export { AIReceiptPanel, type AIReceiptPanelProps, type AIReceiptResult, Accordion, AccordionContent, AccordionItem, AccordionTrigger, type ActivityDotVariant, ActivityEventItem, type ActivityEventItemProps, ActivityItem, type ActivityItemProps, ActivityList, type ActivityListProps, type AgreementFirm, AgreementPaneHeading, type AgreementPaneHeadingProps, type AgreementStatus, type AgreementStep, AgreementViewer, type AgreementViewerProps, AiDraftCard, type AiDraftCardProps, type AiDraftState, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, type AlertDialogSlot, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, AppHeader, AppHeaderActions, type AppHeaderActionsProps, AppHeaderBreadcrumb, type AppHeaderBreadcrumbProps, type AppHeaderProps, AppHeaderSearch, type AppHeaderSearchProps, AppHeaderTitle, type AppHeaderTitleProps, AreaChart, type AreaChartProps, type AreaPoint, AspectRatio, Assignee, AssureAuditBrandIcon, AssureBooksBrandIcon, AssureProBrandIcon, AssureTaxBrandIcon, AttachmentChip, type AttachmentChipProps, AttentionItem, type AttentionItemProps, type AttentionUrgency, Avatar, type AvatarProps, type AvatarSlot, BRAND_PRODUCTS, Badge, type BadgeAppearance, type BadgeAppearanceInput, type BadgeLegacyVariant, type BadgeProps, type BadgeShape, type BadgeSize, type BadgeSlot, type BadgeVariant, type BadgeVariantsProps, Blockquote, BottomNav, type BottomNavProps, type BottomNavTab, type BrandIconProps, type BrandProduct, BrandScope, type BrandScopeProps, BrandScopeProvider, Breadcrumb, BreadcrumbItem, type BreadcrumbItemProps, BreadcrumbLink, type BreadcrumbLinkProps, BreadcrumbList, type BreadcrumbListProps, BreadcrumbPage, type BreadcrumbPageProps, type BreadcrumbProps, BreadcrumbSeparator, type BreadcrumbSeparatorProps, BulkActionBar, BulkActionBarAction, type BulkActionBarActionProps, type BulkActionBarProps, BulkActionBarSeparator, type BulkActionBarVariant, Button, type ButtonEmphasis, type ButtonIconProps, type ButtonIconSize, type ButtonIntent, type ButtonIntentAlias, type ButtonLegacyVariant, type ButtonLook, type ButtonProps, type ButtonSize, type ButtonSizeAlias, type ButtonSlot, type ButtonStyle, type ButtonVariant, type ButtonVariantsProps, COUNTRY_CODES, Calendar, type CalendarCaptionLayout, type CalendarHighlight, type CalendarHighlightColor, type CalendarProps, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, type CardSlot, CardTitle, type CardTitleProps, type CardVariants, CategoryDivider, type CategoryDividerProps, CategoryTag, type CategoryTagProps, type CategoryTone, type CellValue, type ChannelTabItem, ChannelTabs, type ChannelTabsProps, type ChannelTone, Checkbox, type CheckboxSlot, Chip, type ChipIntent, type ChipProps, type ChipSize, type ChipSlot, type ChipStyle, type ChipVariant, ClientRailGroupHeader, type ClientRailGroupHeaderProps, ClientRailItem, type ClientRailItemProps, ClientSelect, type ClientSelectOption, Code, type CodeProps, type CodeSlot, type CodeVariant, Collapsible, CollapsibleContent, CollapsibleTrigger, ComingSoon, type ComingSoonProps, type CommandItem, CommandPalette, ConfirmActionButton, type ConfirmActionButtonProps, Content, type ContentProps, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, type ContextMenuSlot, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, ControlSize, CopyButton, type CountryCode, CountryFlag, CountrySelect, DATE_DISPLAY_PLACEHOLDER, DangerAction, type DangerActionProps, Dash, DashGrid, type DashGridProps, type DashWidget, DataItem, DataTable, DataTableBody, type DataTableBodyProps, DataTableCell, DataTableCellDue, type DataTableCellDueProps, DataTableCellId, DataTableCellMono, DataTableCellName, type DataTableCellProps, DataTableCheckbox, type DataTableCheckboxProps, DataTableHead, type DataTableHeadProps, DataTableHeader, type DataTableHeaderProps, DataTablePagination, type DataTablePaginationProps, type DataTableProps, DataTableResultsCount, type DataTableResultsCountProps, DataTableRow, type DataTableRowProps, DataTableSearch, type DataTableSearchProps, type DataTableSlot, DataTableSpacer, type DataTableSpacerProps, DataTableToolbar, type DataTableToolbarProps, DataTableView, type DataTableViewColumn, type DataTableViewFilter, type DataTableViewProps, type DataTableViewSelection, DatePicker, DateRangePicker, type DateRangeValue, DetailGrid, type DetailGridProps, DetailMain, type DetailMainProps, DetailSpine, DetailSpineHeader, type DetailSpineHeaderProps, type DetailSpineProps, DetailSpineSection, type DetailSpineSectionProps, DetailSpineStats, type DetailSpineStatsProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, type DialogSlot, DialogTitle, DialogTrigger, DismissibleChip, DisplayMenu, type DisplayMenuOption, type DisplayMenuProps, type DisplayMenuSection, DocumentChecklist, type DocumentChecklistFile, type DocumentChecklistItem, type DocumentChecklistProps, type DocumentChecklistStatus, DocumentDetailActions, type DocumentDetailActionsProps, DocumentDetailBody, type DocumentDetailBodyProps, DocumentDetailHeader, type DocumentDetailHeaderProps, DocumentDetailMetaRow, type DocumentDetailMetaRowProps, DocumentDetailPanel, type DocumentDetailPanelProps, DocumentDetailRequester, type DocumentDetailRequesterProps, DocumentDetailTitle, type DocumentDetailTitleProps, DocumentFileCard, type DocumentFileCardProps, DocumentFileLine, type DocumentFileLineProps, DocumentFileRow, type DocumentFileRowProps, type DocumentItemState, DocumentList, type DocumentListProps, DocumentListSection, type DocumentListSectionProps, type DocumentRequestActivityKind, type DocumentRequestAssigneeOption, DocumentRequestCard, type DocumentRequestCardProps, DocumentRequestDetail, type DocumentRequestDetailActivityEvent, type DocumentRequestDetailComment, type DocumentRequestDetailDoc, type DocumentRequestDetailProps, type DocumentRequestDetailTab, DocumentRequestField, type DocumentRequestFieldProps, type DocumentRequestItemSummary, type DocumentRequestRequestedItem, type DocumentRequestReviewStatusOption, type DocumentRequestTone, DocumentRequestUpload, type DocumentRequestUploadFile, type DocumentRequestUploadProps, DocumentRow, type DocumentRowProps, type DocumentSource, DocumentSourceFilter, type DocumentSourceFilterProps, type DocumentSourceFilterValue, DocumentSourceTag, type DocumentSourceTagProps, DocumentsWorkspaceLayout, type DocumentsWorkspaceLayoutProps, DonutChart, type DonutChartProps, type DonutSegment, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, type DropdownMenuSlot, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmailMessageCard, type EmailMessageCardProps, EmptyState, type EmptyStateProps, EngagementCard, type EngagementCardProps, EngagementTimeline, type EngagementTimelineProps, EngagementTimelineStep, type EngagementTimelineStepProps, Eyebrow, type EyebrowProps, FileChip, type FileChipProps, type FileKind, FileTypeBadge, type FileTypeBadgeProps, type FileTypeTone, FileUpload, type FileUploadSlot, FilterChip, type FilterChipProps, type FolderNode, FolderTree, type FolderTreeProps, FormError, FormSection, FormSuccess, Grid, type GridColumn, type GridInputType, type GridProps, type GridRow, type GridValue, Heading, type HeadingLevel, type HeadingProps, type HeadingSize, type HeadingSlot, HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger, ICON_TILE_TONE_TO_INTENT, IconAction, type IconActionProps, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonSlot, type IconButtonTooltipSide, IconTile, type IconTileIntent, type IconTileProps, type IconTileSize, type IconTileSuiteTone, type IconTileTone, type IconTileVariantProps, Inline, type InlineProps, type InlineSlot, Input, type InputSlot, type InputVariants, Intent, IntentBadge, type IntentBadgeProps, type IntentTone, Kanban, KanbanCard, type KanbanCardProps, KanbanColumn, type KanbanColumnProps, type KanbanProps, Kbd, type KbdGlyph, KbdHint, type KbdHintProps, type KbdProps, type KbdSlot, type KbdVariant, type KeyboardShortcut, type KeyboardShortcutSection, KeyboardShortcutsDialog, type KeyboardShortcutsDialogProps, KpiCard, type KpiCardProps, type KpiDelta, Label, type LabelSlot, type LayoutAlign, type LayoutBreakpoint, type LayoutGap, type LayoutJustify, LinkAction, type LinkActionProps, LinkButton, type LinkButtonProps$1 as LinkButtonProps, type LinkButtonSlot, LoadingRows, Logo, Main, type MainProps, MasterDetailLayout, type MasterDetailLayoutProps, MessageBubble, MessageBubbleAction, type MessageBubbleActionProps, type MessageBubbleProps, MessageBubbleTombstone, type MessageBubbleTombstoneProps, MessageComposer, type MessageComposerProps, MetadataGrid, type MissingDocumentItem, MissingDocumentsPanel, type MissingDocumentsPanelProps, MoneyCell, MultiFilterPill, MultiSelectField, MutedSpec, type MutedSpecProps, NewMenu, type NewMenuAction, type NewMenuGroup, type NewMenuProps, NotificationFilter, type NotificationFilterProps, type NotificationFilterValue, NotificationItem, type NotificationItemProps, NotificationList, type NotificationListProps, NotificationPanel, NotificationPanelFooter, type NotificationPanelFooterProps, NotificationPanelHeader, type NotificationPanelHeaderProps, type NotificationPanelProps, Numeric, type NumericProps, OTPInput, type OnlyStatuses, PROGRESS_LEGACY_TO_INTENT, PageHeader, type PageHeaderProps, PageHeaderSep, type PageHeaderSepProps, PageHeaderSpec, type PageHeaderSpecProps, Pagination, type PaginationProps, type PaginationSlot, PdfPreview, type PdfPreviewProps, PhoneCountryInput, PhoneInput, type PillStatus, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, type PopoverSlot, PopoverTrigger, Pressable, type PressableProps, type PressableSlot, PrimaryAction, type PrimaryActionProps, type Priority, PriorityIcon, type PriorityIconProps, ProgressBar, type ProgressBarProps, type ProgressBarVariant, type ProgressBarVariantProps, type ProgressIntent, type ProgressLegacyColour, ProgressRing, type ProgressRingProps, type ProgressRingVariant, type ProgressRingVariantProps, ProposalAddOn, type ProposalAddOnProps, type ProposalBillingMode, type ProposalBillingRow, ProposalBillingTerms, type ProposalBillingTermsProps, ProposalConsentGate, type ProposalConsentGateProps, ProposalCustomPage, type ProposalCustomPageKind, type ProposalCustomPageProps, ProposalNote, type ProposalNoteProps, ProposalPackageCard, type ProposalPackageCardProps, type ProposalPackageMode, ProposalPaymentCapture, type ProposalPaymentCaptureProps, ProposalPricingSummary, type ProposalPricingSummaryProps, ProposalServiceRow, type ProposalServiceRowProps, ProposalSignatureBlock, type ProposalSignatureBlockProps, type ProposalSigner, ProposalSignerList, type ProposalSignerListProps, type ProposalSignerStatus, type QuestionAddressValue, type QuestionFileValue, type QuestionHelp, type QuestionLabeledColumn, type QuestionLabeledRow, type QuestionLabeledValue, type QuestionNameValue, type QuestionOption, type QuestionTableColumn, type QuestionTableRow, type QuestionType, QuestionnairePanel, type QuestionnairePanelGroup, type QuestionnairePanelProps, type QuestionnairePanelSection, type QuestionnairePanelStatus, Questions, type QuestionsProps, type QuickReplyChip, RadioGroup, RadioGroupItem, type RadioGroupSlot, type RankedBar, RankedBars, type RankedBarsProps, type Responsive, ResponsiveDialog, type ResponsiveDialogProps, RouteTransition, type RouteTransitionProps, SERVICE_TONES, SPINNER_TONE_TO_INTENT, STATUS_DOT_TONE_TO_INTENT, ScrollArea, ScrollBar, SearchInput, type SearchInputSlot, type SearchInputVariants, SearchSelect, type SearchSelectOption, SecondaryAction, type SecondaryActionProps, Section, SectionHead, SectionHeader, SegmentedProgress, type SegmentedProgressProps, type SegmentedServiceTone, type SegmentedTone, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, type SelectOption, type SelectProps, SelectRoot, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, type SelectSlot, SelectTrigger, SelectValue, SelectableKpiCard, type SelectableKpiCardProps, Separator, type ServiceTone, Shape, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, type SheetSlot, SheetTitle, SheetTrigger, Shell, type ShellProps, type ShellSlot, SideDrawer, type SideDrawerSlot, Sidebar, SidebarBrand, type SidebarBrandProps, SidebarBrandSwitcher, type SidebarBrandSwitcherExtra, type SidebarBrandSwitcherItem, type SidebarBrandSwitcherProps, type SidebarBrandSwitcherSlot, SidebarBrandSwitcherTile, SidebarBrandText, type SidebarBrandTextProps, SidebarFooter, type SidebarFooterProps, SidebarLink, SidebarLinkAction, type SidebarLinkActionProps, SidebarLinkBadge, type SidebarLinkBadgeProps, type SidebarLinkBadgeVariants, SidebarLinkGroup, type SidebarLinkGroupProps, SidebarLinkLabel, type SidebarLinkLabelProps, type SidebarLinkProps, SidebarPinButton, type SidebarPinButtonProps, type SidebarProps, SidebarProvider, type SidebarProviderProps, SidebarSection, type SidebarSectionProps, type SidebarSlot, type SidebarState, SidebarTrigger, type SidebarTriggerProps, SidebarUser, type SidebarUserProps, SignatureEditor, type SignatureEditorProps, Skeleton, SkeletonCircle, SkeletonText, Slider, type SortDirection, Spinner, type SpinnerIntent, type SpinnerProps, type SpinnerSize, type SpinnerTone, type SpinnerVariantProps, SpreadsheetPreview, type SpreadsheetPreviewProps, Stack, type StackDirection, type StackProps, type StackSlot, StackedBarChart, type StackedBarChartProps, type StackedBarDatum, type StackedBarSeries, StagePill, StarRating, type StarRatingProps, Stat, StatusBadge, type StatusBadgeProps, type StatusBadgeSlot, StatusDot, type StatusDotIntent, type StatusDotProps, type StatusDotSize, type StatusDotTone, type StatusDotVariantProps, StatusIcon, type StatusIconProps, type StatusMap, StatusPill, type StatusPillProps, type StatusPresentation, type StatusState, type Step, Stepper, type StepperProps, StickyActionBar, type StickyActionBarProps, StickyStack, StickyStackLayer, type StickyStackLayerProps, type StickyStackProps, StickyStackSectionHeader, type StickyStackSectionHeaderProps, StickyStackSticky, type StickyStackStickyProps, SubmitButton, SuggestionPills, type SuggestionPillsProps, SuiteProgress, type SuiteProgressFillVariantProps, type SuiteProgressProps, type SuiteProgressSize, type SuiteProgressSuiteTone, type SuiteProgressTone, Surface, type SurfaceElevation, type SurfacePadding, type SurfaceProps, type SurfaceRadius, type SurfaceSlot, Switch, type SwitchSlot, Table, TableBody, type TableBodyProps, TableCaption, type TableCaptionProps, TableCell, type TableCellProps, TableFooter, type TableFooterProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowData, type TableRowProps, type TableSlot, type TableTone, Tabs, TabsContent, TabsList, TabsTrigger, TagsCell, TeamMemberSelect, Text, type TextColor, type TextProps, type TextSize, type TextSlot, type TextWeight, Textarea, type TextareaSlot, type TextareaVariants, TimeLogger, TimeLoggerActions, type TimeLoggerActionsProps, TimeLoggerBillable, type TimeLoggerBillableProps, TimeLoggerContextRow, type TimeLoggerContextRowProps, TimeLoggerEntry, TimeLoggerEntryList, type TimeLoggerEntryListProps, type TimeLoggerEntryProps, TimeLoggerField, type TimeLoggerFieldProps, TimeLoggerFooter, type TimeLoggerFooterProps, TimeLoggerHeader, type TimeLoggerHeaderProps, TimeLoggerNotes, type TimeLoggerNotesProps, type TimeLoggerPhase, type TimeLoggerProps, type TimeLoggerTier, TimeLoggerTimer, type TimeLoggerTimerProps, type TimelineState, type ToastAction, type ToastContextValue, type ToastOptions, ToastProvider, type ToastSlot, type ToastVariant, ToggleGroup, ToggleGroupItem, Toolbar, type ToolbarProps, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, type TooltipSlot, TooltipTrigger, type UseStopwatchReturn, Variant, VisuallyHidden, YEAR_DISPLAY_PLACEHOLDER, alertVariants, applyMask, applyYearMask, assetPath, attachmentChipVariants, badgeVariants, brandLabel, brandScope, buttonVariants, cardVariants, chipVariants, cn, dateToIso, defineStatusMap, displayToIso, fileTypeBadgeVariants, fileTypeFromName, filterChipVariants, formatClock, formatCurrency, formatDuration, getAssetBasePath, getFlagEmoji, iconButtonVariants, resolveIconTileVariants as iconTileVariants, inputVariants, isoToDate, isoToDisplay, isoToYear, labelVariants, parseDuration, parsePhoneForEditing, progressBarVariants, progressRingVariants, resolveBadgeAppearance, resolveButtonStyle, resolveChipStyle, searchInputVariants, serviceToneLabel, serviceToneStyle, setAssetBasePath, sidebarLinkBadgeVariants, spinnerVariants, starRatingVariants, statusDotVariants, suiteProgressFillVariants, textareaVariants, useBrandScope, useSidebarPeekLock, useSidebarState, useStopwatch, useToast, yearToIso };
9131
+ /**
9132
+ * Theme scope — the host dimensions a subtree renders with (W5-02).
9133
+ *
9134
+ * The design system's scopes are DOM attributes: `[data-ds-scheme]`,
9135
+ * `[data-ds-brand]`, `[data-ds-density]`, `dir`, and the `--ds-*` style a
9136
+ * runtime brand writes (`createBrandTheme`). Set on the document root they
9137
+ * reach everything, portalled overlays included. Set on a *subtree* they stop
9138
+ * at the subtree: a Dialog or Popover opened from inside it renders in
9139
+ * `document.body`, outside the scope, and comes up in the root theme.
9140
+ *
9141
+ * `ThemeScope` fixes that. It stamps the attributes on its own element, as a
9142
+ * hand-written scope would, **and** registers them in context, so the shared
9143
+ * `Portal` (`primitives/behavior/portal.tsx`) can re-stamp the same attributes
9144
+ * and runtime-brand style on the container wrapper it mounts portalled content
9145
+ * into. Nested scopes merge: a `density="compact"` scope inside a `brand="tax"`
9146
+ * one propagates both.
9147
+ *
9148
+ * Apps that scope the document root need none of this; the portal path is
9149
+ * unchanged for them (no wrapper is created).
9150
+ */
9151
+ /** The scheme a subtree renders with (`[data-ds-scheme]`). */
9152
+ type ThemeScheme = "light" | "dark";
9153
+ /** A built-in brand scope (`[data-ds-brand]`). */
9154
+ type ThemeBrand = "pro" | "audit" | "books" | "tax";
9155
+ /** The density scope (`[data-ds-density]`, W2-06). */
9156
+ type ThemeDensity = "comfortable" | "compact";
9157
+ /** Text direction (`dir`). */
9158
+ type ThemeDirection = "ltr" | "rtl";
9159
+ /**
9160
+ * The dimensions a scope sets. Every field is optional; an unset field is
9161
+ * inherited from the enclosing scope, then from the document.
9162
+ *
9163
+ * @experimental
9164
+ */
9165
+ interface ThemeScopeValue {
9166
+ scheme?: ThemeScheme;
9167
+ brand?: ThemeBrand;
9168
+ density?: ThemeDensity;
9169
+ dir?: ThemeDirection;
9170
+ /**
9171
+ * A registered runtime brand: the object `createBrandTheme()` returns. It is
9172
+ * applied as inline `--ds-*` style on the scope element and re-applied on
9173
+ * portalled content.
9174
+ */
9175
+ brandTheme?: BrandTheme;
9176
+ }
9177
+ /** Props of {@link ThemeScope}. @experimental */
9178
+ interface ThemeScopeProps extends ThemeScopeValue, Omit<React.HTMLAttributes<HTMLDivElement>, "dir"> {
9179
+ children?: ReactNode;
9180
+ }
9181
+ /**
9182
+ * A `<div>` that scopes the host dimensions of its subtree — scheme, brand,
9183
+ * density, direction and a runtime brand — and propagates them into every
9184
+ * overlay opened from inside it (Dialog, Sheet, Popover, Tooltip, menus,
9185
+ * Select, Toast …), which would otherwise render in the document's theme.
9186
+ *
9187
+ * ```tsx
9188
+ * <ThemeScope brand="tax" density="compact">
9189
+ * <Popover>…</Popover> // its content renders as compact Tax, too
9190
+ * </ThemeScope>
9191
+ *
9192
+ * <ThemeScope brandTheme={createBrandTheme({ brand: firm.primary })}>
9193
+ * <Dialog>…</Dialog> // the runtime brand follows the dialog to <body>
9194
+ * </ThemeScope>
9195
+ * ```
9196
+ *
9197
+ * Nothing changes for apps that scope `<html>` or `<body>`: no wrapper is
9198
+ * created around portalled content when no `ThemeScope` encloses it.
9199
+ *
9200
+ * @experimental W5-02. The public shape follows decision D7 for the runtime
9201
+ * brand seed.
9202
+ */
9203
+ declare const ThemeScope: React$1.ForwardRefExoticComponent<ThemeScopeProps & React$1.RefAttributes<HTMLDivElement>>;
9204
+
9205
+ export { AIReceiptPanel, type AIReceiptPanelProps, type AIReceiptResult, Accordion, AccordionContent, AccordionItem, AccordionTrigger, type ActivityDotVariant, ActivityEventItem, type ActivityEventItemProps, ActivityItem, type ActivityItemProps, ActivityList, type ActivityListProps, type AgreementFirm, AgreementPaneHeading, type AgreementPaneHeadingProps, type AgreementStatus, type AgreementStep, AgreementViewer, type AgreementViewerProps, AiDraftCard, type AiDraftCardProps, type AiDraftState, Alert, AlertDescription, AlertDialog, AlertDialogAction, type AlertDialogActionProps, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, type AlertDialogSlot, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, AppHeader, AppHeaderActions, type AppHeaderActionsProps, AppHeaderBreadcrumb, type AppHeaderBreadcrumbProps, type AppHeaderProps, AppHeaderSearch, type AppHeaderSearchProps, AppHeaderTitle, type AppHeaderTitleProps, AreaChart, type AreaChartProps, type AreaPoint, AspectRatio, Assignee, AssureAuditBrandIcon, AssureBooksBrandIcon, AssureProBrandIcon, AssureTaxBrandIcon, AttachmentChip, type AttachmentChipProps, AttentionItem, type AttentionItemProps, type AttentionUrgency, Avatar, type AvatarProps, type AvatarSlot, BRAND_PRODUCTS, Badge, type BadgeAppearance, type BadgeAppearanceInput, type BadgeLegacyVariant, type BadgeProps, type BadgeShape, type BadgeSize, type BadgeSlot, type BadgeVariant, type BadgeVariantsProps, Blockquote, BottomNav, type BottomNavProps, type BottomNavTab, type BrandIconProps, type BrandProduct, BrandScope, type BrandScopeProps, BrandScopeProvider, Breadcrumb, BreadcrumbItem, type BreadcrumbItemProps, BreadcrumbLink, type BreadcrumbLinkProps, BreadcrumbList, type BreadcrumbListProps, BreadcrumbPage, type BreadcrumbPageProps, type BreadcrumbProps, BreadcrumbSeparator, type BreadcrumbSeparatorProps, BulkActionBar, BulkActionBarAction, type BulkActionBarActionProps, type BulkActionBarProps, BulkActionBarSeparator, type BulkActionBarVariant, Button, type ButtonEmphasis, type ButtonIconProps, type ButtonIconSize, type ButtonIntent, type ButtonIntentAlias, type ButtonLegacyVariant, type ButtonLook, type ButtonProps, type ButtonSize, type ButtonSizeAlias, type ButtonSlot, type ButtonStyle, type ButtonVariant, type ButtonVariantsProps, COUNTRY_CODES, Calendar, type CalendarBaseProps, type CalendarCaptionLayout, type CalendarHighlight, type CalendarHighlightColor, type CalendarProps, type CalendarRange, type CalendarRangeProps, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, type CardSlot, CardTitle, type CardTitleProps, type CardVariants, CategoryDivider, type CategoryDividerProps, CategoryTag, type CategoryTagProps, type CategoryTone, type CellValue, type ChannelTabItem, ChannelTabs, type ChannelTabsProps, type ChannelTone, Checkbox, type CheckboxChecked, type CheckboxProps, type CheckboxSlot, Chip, type ChipIntent, type ChipProps, type ChipSize, type ChipSlot, type ChipStyle, type ChipVariant, ClientRailGroupHeader, type ClientRailGroupHeaderProps, ClientRailItem, type ClientRailItemProps, ClientSelect, type ClientSelectOption, Code, type CodeProps, type CodeSlot, type CodeVariant, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, type ComboboxBaseProps, type ComboboxClassNames, ComboboxMessages, type ComboboxMultipleProps, type ComboboxOptionState, type ComboboxProps, type ComboboxSelectionControls, type ComboboxSingleProps, type ComboboxSize, type ComboboxSlot, ComingSoon, type ComingSoonProps, type CommandItem, CommandPalette, CommandPaletteMessages, type CommandSlot, ConfirmActionButton, type ConfirmActionButtonProps, ConfirmDialog, type ConfirmDialogProps, type ConfirmFn, ConfirmHost, type ConfirmHostProps, type ConfirmInitialFocus, type ConfirmIntent, ConfirmMessages, type ConfirmOptions, type ConfirmPresentation, type ConfirmResult, Content, type ContentProps, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, type ContextMenuSlot, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, ControlSize, CopyButton, type CountryCode, CountryFlag, CountrySelect, DATE_DISPLAY_PLACEHOLDER, DEFAULT_COMBOBOX_MESSAGES, DEFAULT_PHONE_FIELD_MESSAGES, DangerAction, type DangerActionProps, Dash, DashGrid, type DashGridProps, type DashWidget, DataItem, DataTable, DataTableBody, type DataTableBodyProps, DataTableCell, DataTableCellDue, type DataTableCellDueProps, DataTableCellId, DataTableCellMono, DataTableCellName, type DataTableCellProps, DataTableCheckbox, type DataTableCheckboxProps, DataTableHead, type DataTableHeadProps, DataTableHeader, type DataTableHeaderProps, DataTablePagination, type DataTablePaginationProps, type DataTableProps, DataTableResultsCount, type DataTableResultsCountProps, DataTableRow, type DataTableRowProps, DataTableSearch, type DataTableSearchProps, type DataTableSlot, DataTableSpacer, type DataTableSpacerProps, DataTableToolbar, type DataTableToolbarProps, DataTableView, type DataTableViewColumn, type DataTableViewFilter, type DataTableViewProps, type DataTableViewSelection, type DatePattern, DatePicker, type DatePickerProps, type DateRangeNames, DateRangePicker, type DateRangePickerProps, type DateRangeValue, DetailGrid, type DetailGridProps, DetailMain, type DetailMainProps, DetailSpine, DetailSpineHeader, type DetailSpineHeaderProps, type DetailSpineProps, DetailSpineSection, type DetailSpineSectionProps, DetailSpineStats, type DetailSpineStatsProps, Dialog, DialogBody, type DialogBodyProps, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, type DialogHeight, type DialogMessages, DialogOverlay, DialogPortal, type DialogPresentation, type DialogSize, type DialogSlot, DialogTitle, DialogTrigger, DismissibleChip, DisplayMenu, type DisplayMenuOption, type DisplayMenuProps, type DisplayMenuSection, DocumentChecklist, type DocumentChecklistFile, type DocumentChecklistItem, type DocumentChecklistProps, type DocumentChecklistStatus, DocumentDetailActions, type DocumentDetailActionsProps, DocumentDetailBody, type DocumentDetailBodyProps, DocumentDetailHeader, type DocumentDetailHeaderProps, DocumentDetailMetaRow, type DocumentDetailMetaRowProps, DocumentDetailPanel, type DocumentDetailPanelProps, DocumentDetailRequester, type DocumentDetailRequesterProps, DocumentDetailTitle, type DocumentDetailTitleProps, DocumentFileCard, type DocumentFileCardProps, DocumentFileLine, type DocumentFileLineProps, DocumentFileRow, type DocumentFileRowProps, type DocumentItemState, DocumentList, type DocumentListProps, DocumentListSection, type DocumentListSectionProps, type DocumentRequestActivityKind, type DocumentRequestAssigneeOption, DocumentRequestCard, type DocumentRequestCardProps, DocumentRequestDetail, type DocumentRequestDetailActivityEvent, type DocumentRequestDetailComment, type DocumentRequestDetailDoc, type DocumentRequestDetailProps, type DocumentRequestDetailTab, DocumentRequestField, type DocumentRequestFieldProps, type DocumentRequestItemSummary, type DocumentRequestRequestedItem, type DocumentRequestReviewStatusOption, type DocumentRequestTone, DocumentRequestUpload, type DocumentRequestUploadFile, type DocumentRequestUploadProps, DocumentRow, type DocumentRowProps, type DocumentSource, DocumentSourceFilter, type DocumentSourceFilterProps, type DocumentSourceFilterValue, DocumentSourceTag, type DocumentSourceTagProps, DocumentsWorkspaceLayout, type DocumentsWorkspaceLayoutProps, DonutChart, type DonutChartProps, type DonutSegment, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, type DropdownMenuSlot, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmailMessageCard, type EmailMessageCardProps, EmptyState, type EmptyStateProps, EngagementCard, type EngagementCardProps, EngagementTimeline, type EngagementTimelineProps, EngagementTimelineStep, type EngagementTimelineStepProps, Eyebrow, type EyebrowProps, Field, FieldControl, type FieldControlProps, type FieldControlWiring, FieldDescription, type FieldDescriptionProps, FieldError, type FieldErrorProps, FieldMessages, type FieldOrientation, type FieldProps, type FieldSlot, Fieldset, FieldsetLegend, type FieldsetLegendProps, type FieldsetProps, type FieldsetSlot, FileChip, type FileChipProps, type FileKind, FileTypeBadge, type FileTypeBadgeProps, type FileTypeTone, FileUpload, FileUploadMessages, type FileUploadProps, type FileUploadSlot, type FileUploadVariant, FilterChip, type FilterChipProps, type FolderNode, FolderTree, type FolderTreeProps, FormError, FormSection, FormSuccess, Grid, type GridColumn, type GridInputType, type GridProps, type GridRow, type GridValue, Heading, type HeadingLevel, type HeadingProps, type HeadingSize, type HeadingSlot, HoverCard, HoverCardContent, type HoverCardContentProps, type HoverCardPadding, HoverCardPortal, HoverCardTrigger, type HoverCardWidth, ICON_TILE_TONE_TO_INTENT, IconAction, type IconActionProps, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonSlot, type IconButtonTooltipSide, IconTile, type IconTileIntent, type IconTileProps, type IconTileSize, type IconTileSuiteTone, type IconTileTone, type IconTileVariantProps, Inline, type InlineProps, type InlineSlot, Input, type InputProps$1 as InputProps, type InputSize, type InputSizeAlias, type InputSlot, type InputVariant, type InputVariants, type InputVariantsOptions, Intent, IntentBadge, type IntentBadgeProps, type IntentTone, Kanban, KanbanCard, type KanbanCardProps, KanbanColumn, type KanbanColumnProps, type KanbanProps, Kbd, type KbdGlyph, KbdHint, type KbdHintProps, type KbdProps, type KbdSlot, type KbdVariant, type KeyboardShortcut, type KeyboardShortcutSection, KeyboardShortcutsDialog, type KeyboardShortcutsDialogProps, KeyboardShortcutsMessages, KpiCard, type KpiCardProps, type KpiDelta, Label, type LabelSlot, type LayoutAlign, type LayoutBreakpoint, type LayoutGap, type LayoutJustify, LinkAction, type LinkActionProps, LinkButton, type LinkButtonProps$1 as LinkButtonProps, type LinkButtonSlot, LoadingRows, Logo, Main, type MainProps, MasterDetailLayout, type MasterDetailLayoutProps, MessageBubble, MessageBubbleAction, type MessageBubbleActionProps, type MessageBubbleProps, MessageBubbleTombstone, type MessageBubbleTombstoneProps, MessageComposer, type MessageComposerProps, MetadataGrid, type MissingDocumentItem, MissingDocumentsPanel, type MissingDocumentsPanelProps, MoneyCell, MultiFilterPill, MultiSelect, MultiSelectField, type MultiSelectProps, MutedSpec, type MutedSpecProps, NewMenu, type NewMenuAction, type NewMenuGroup, type NewMenuProps, NotificationFilter, type NotificationFilterProps, type NotificationFilterValue, NotificationItem, type NotificationItemProps, NotificationList, type NotificationListProps, NotificationPanel, NotificationPanelFooter, type NotificationPanelFooterProps, NotificationPanelHeader, type NotificationPanelHeaderProps, type NotificationPanelProps, NumberInput, type NumberInputProps, type NumberInputSlot, Numeric, type NumericProps, OTPInput, type OTPInputProps, type OnlyStatuses, type Option, type OptionAccessors, PROGRESS_LEGACY_TO_INTENT, PageHeader, type PageHeaderProps, PageHeaderSep, type PageHeaderSepProps, PageHeaderSpec, type PageHeaderSpecProps, Pagination, type PaginationProps, type PaginationSlot, PdfPreview, type PdfPreviewProps, PhoneCountryInput, PhoneField, type PhoneFieldChangeDetails, PhoneFieldMessages, type PhoneFieldProps, type PhoneFieldSlot, PhoneInput, type PillStatus, Popover, PopoverAnchor, PopoverClose, PopoverContent, type PopoverContentProps, type PopoverPadding, PopoverPortal, type PopoverSlot, PopoverTrigger, type PopoverWidth, Pressable, type PressableProps, type PressableSlot, PrimaryAction, type PrimaryActionProps, type Priority, PriorityIcon, type PriorityIconProps, ProgressBar, type ProgressBarProps, type ProgressBarVariant, type ProgressBarVariantProps, type ProgressIntent, type ProgressLegacyColour, ProgressRing, type ProgressRingProps, type ProgressRingVariant, type ProgressRingVariantProps, type PromptFn, type PromptOptions, ProposalAddOn, type ProposalAddOnProps, type ProposalBillingMode, type ProposalBillingRow, ProposalBillingTerms, type ProposalBillingTermsProps, ProposalConsentGate, type ProposalConsentGateProps, ProposalCustomPage, type ProposalCustomPageKind, type ProposalCustomPageProps, ProposalNote, type ProposalNoteProps, ProposalPackageCard, type ProposalPackageCardProps, type ProposalPackageMode, ProposalPaymentCapture, type ProposalPaymentCaptureProps, ProposalPricingSummary, type ProposalPricingSummaryProps, ProposalServiceRow, type ProposalServiceRowProps, ProposalSignatureBlock, type ProposalSignatureBlockProps, type ProposalSigner, ProposalSignerList, type ProposalSignerListProps, type ProposalSignerStatus, type QuestionAddressValue, type QuestionFileValue, type QuestionHelp, type QuestionLabeledColumn, type QuestionLabeledRow, type QuestionLabeledValue, type QuestionNameValue, type QuestionOption, type QuestionTableColumn, type QuestionTableRow, type QuestionType, QuestionnairePanel, type QuestionnairePanelGroup, type QuestionnairePanelProps, type QuestionnairePanelSection, type QuestionnairePanelStatus, Questions, type QuestionsProps, type QuickReplyChip, RadioGroup, type RadioGroupAppearance, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, type RadioGroupSlot, type RankedBar, RankedBars, type RankedBarsProps, type Responsive, ResponsiveDialog, type ResponsiveDialogProps, RouteTransition, type RouteTransitionProps, SERVICE_TONES, SPINNER_TONE_TO_INTENT, STATUS_DOT_TONE_TO_INTENT, ScrollArea, ScrollBar, SearchInput, SearchInputMessages, type SearchInputProps, type SearchInputSize, type SearchInputSlot, type SearchInputVariants, type SearchInputVariantsOptions, SearchSelect, type SearchSelectOption, type SearchSelectProps, SecondaryAction, type SecondaryActionProps, Section, SectionHead, SectionHeader, SegmentedProgress, type SegmentedProgressProps, type SegmentedServiceTone, type SegmentedTone, Select, type SelectClassNames, SelectContent, type SelectContentProps, SelectGroup, SelectItem, SelectLabel, SelectMessages, type SelectOption, type SelectProps, SelectRoot, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, type SelectSize, type SelectSlot, SelectTrigger, type SelectTriggerProps, SelectValue, SelectableKpiCard, type SelectableKpiCardProps, Separator, type ServiceTone, Shape, Sheet, SheetBody, type SheetBodyProps, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, type SheetMessages, SheetOverlay, SheetPortal, type SheetSide, type SheetSize, type SheetSlot, SheetTitle, SheetTrigger, type SheetWidth, Shell, type ShellProps, type ShellSlot, SideDrawer, type SideDrawerSlot, Sidebar, SidebarBrand, type SidebarBrandProps, SidebarBrandSwitcher, type SidebarBrandSwitcherExtra, type SidebarBrandSwitcherItem, type SidebarBrandSwitcherProps, type SidebarBrandSwitcherSlot, SidebarBrandSwitcherTile, SidebarBrandText, type SidebarBrandTextProps, SidebarFooter, type SidebarFooterProps, SidebarLink, SidebarLinkAction, type SidebarLinkActionProps, SidebarLinkBadge, type SidebarLinkBadgeProps, type SidebarLinkBadgeVariants, SidebarLinkGroup, type SidebarLinkGroupProps, SidebarLinkLabel, type SidebarLinkLabelProps, type SidebarLinkProps, SidebarPinButton, type SidebarPinButtonProps, type SidebarProps, SidebarProvider, type SidebarProviderProps, SidebarSection, type SidebarSectionProps, type SidebarSlot, type SidebarState, SidebarTrigger, type SidebarTriggerProps, SidebarUser, type SidebarUserProps, SignatureEditor, type SignatureEditorProps, Skeleton, SkeletonCircle, SkeletonText, Slider, type SliderProps, type SliderSize, type SortDirection, Spinner, type SpinnerIntent, type SpinnerProps, type SpinnerSize, type SpinnerTone, type SpinnerVariantProps, SpreadsheetPreview, type SpreadsheetPreviewProps, Stack, type StackDirection, type StackProps, type StackSlot, StackedBarChart, type StackedBarChartProps, type StackedBarDatum, type StackedBarSeries, StagePill, StarRating, type StarRatingProps, Stat, StatusBadge, type StatusBadgeProps, type StatusBadgeSlot, StatusDot, type StatusDotIntent, type StatusDotProps, type StatusDotSize, type StatusDotTone, type StatusDotVariantProps, StatusIcon, type StatusIconProps, type StatusMap, StatusPill, type StatusPillProps, type StatusPresentation, type StatusState, type Step, Stepper, type StepperProps, StickyActionBar, type StickyActionBarProps, StickyStack, StickyStackLayer, type StickyStackLayerProps, type StickyStackProps, StickyStackSectionHeader, type StickyStackSectionHeaderProps, StickyStackSticky, type StickyStackStickyProps, SubmitButton, SuggestionPills, type SuggestionPillsProps, SuiteProgress, type SuiteProgressFillVariantProps, type SuiteProgressProps, type SuiteProgressSize, type SuiteProgressSuiteTone, type SuiteProgressTone, Surface, type SurfaceElevation, type SurfacePadding, type SurfaceProps, type SurfaceRadius, type SurfaceSlot, Switch, type SwitchProps, type SwitchSize, type SwitchSlot, Table, TableBody, type TableBodyProps, TableCaption, type TableCaptionProps, TableCell, type TableCellProps, TableFooter, type TableFooterProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowData, type TableRowProps, type TableSlot, type TableTone, Tabs, TabsContent, TabsList, TabsTrigger, TagsCell, TeamMemberSelect, Text, type TextColor, type TextProps, type TextSize, type TextSlot, type TextWeight, Textarea, type TextareaProps, type TextareaSize, type TextareaSlot, type TextareaVariant, type TextareaVariants, type TextareaVariantsOptions, type ThemeBrand, type ThemeDensity, type ThemeDirection, type ThemeScheme, ThemeScope, type ThemeScopeProps, type ThemeScopeValue, TimeLogger, TimeLoggerActions, type TimeLoggerActionsProps, TimeLoggerBillable, type TimeLoggerBillableProps, TimeLoggerContextRow, type TimeLoggerContextRowProps, TimeLoggerEntry, TimeLoggerEntryList, type TimeLoggerEntryListProps, type TimeLoggerEntryProps, TimeLoggerField, type TimeLoggerFieldProps, TimeLoggerFooter, type TimeLoggerFooterProps, TimeLoggerHeader, type TimeLoggerHeaderProps, TimeLoggerNotes, type TimeLoggerNotesProps, type TimeLoggerPhase, type TimeLoggerProps, type TimeLoggerTier, TimeLoggerTimer, type TimeLoggerTimerProps, type TimelineState, type ToastAction, type ToastContextValue, ToastMessages, type ToastOptions, ToastProvider, type ToastSlot, type ToastVariant, ToggleGroup, type ToggleGroupFormProps, ToggleGroupItem, type ToggleGroupItemProps, type ToggleGroupProps, type ToggleGroupSize, type ToggleGroupVariant, Toolbar, type ToolbarProps, Tooltip, TooltipContent, type TooltipContentProps, type TooltipMaxWidth, TooltipPortal, type TooltipProps, TooltipProvider, type TooltipSlot, TooltipTrigger, type UseFieldControlProps, type UseStopwatchReturn, Variant, VisuallyHidden, YEAR_DISPLAY_PLACEHOLDER, alertVariants, applyMask, applyYearMask, assetPath, attachmentChipVariants, badgeVariants, brandLabel, brandScope, buttonVariants, cardVariants, chipVariants, cn, dateToIso, defineStatusMap, displayToIso, fileTypeBadgeVariants, fileTypeFromName, filterChipVariants, formatClock, formatCurrency, formatDuration, getAssetBasePath, getFlagEmoji, iconButtonVariants, resolveIconTileVariants as iconTileVariants, inputVariants, isoToDate, isoToDisplay, isoToYear, labelVariants, parseDuration, parsePhoneForEditing, progressBarVariants, progressRingVariants, resolveBadgeAppearance, resolveButtonStyle, resolveChipStyle, searchInputVariants, serviceToneLabel, serviceToneStyle, setAssetBasePath, sidebarLinkBadgeVariants, spinnerVariants, starRatingVariants, statusDotVariants, suiteProgressFillVariants, textareaVariants, useBrandScope, useConfirm, useFieldControl, usePrompt, useSidebarPeekLock, useSidebarState, useStopwatch, useToast, yearToIso };