@assure-one/design-system 1.35.0 → 1.36.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.
package/dist/index.d.ts CHANGED
@@ -1,21 +1,23 @@
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-BDU18fVg.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-CQwzTm0v.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-CQwzTm0v.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
16
  import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
17
17
  import * as DialogPrimitive from '@radix-ui/react-dialog';
18
18
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
19
+ import { F as FileUploadMessages, S as SearchInputMessages, a as SelectMessages, b as FieldMessages, C as ComboboxMessages } from './design-system-provider-cPUklDJv.js';
20
+ export { c as DesignSystemProvider, D as DesignSystemProviderProps, d as DsDirection, e as DsMessageNamespace, f as DsMessages, g as DsMessagesOverride, I as ImageComponent, h as ImageComponentProps, L as LinkComponent, i as LinkComponentProps, T as TooltipDefaults, u as useDsMessages } from './design-system-provider-cPUklDJv.js';
19
21
  import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
20
22
  import * as LabelPrimitive from '@radix-ui/react-label';
21
23
  import * as PopoverPrimitive from '@radix-ui/react-popover';
@@ -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
@@ -173,12 +207,13 @@ type FileUploadSlot = "root" | "dropzone" | "input" | "error";
173
207
  * `Dialog` parts, stamped as `data-slot="dialog-<part>"` (ADR-008). There is
174
208
  * no `root`: `Dialog` is Radix's non-rendering root. `close` is stamped on
175
209
  * 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.
210
+ * a control that dismisses the dialog. `body` is the scroll region between
211
+ * header and footer (W5-05). States: `data-size` on the content.
177
212
  * Radix's `data-state` is left as it is (`P-DATA-STATE`).
178
213
  *
179
214
  * @experimental Slot names are experimental until ADR-008 is accepted (W2-18).
180
215
  */
181
- type DialogSlot = "overlay" | "content" | "header" | "title" | "description" | "footer" | "close";
216
+ type DialogSlot = "overlay" | "content" | "header" | "title" | "description" | "body" | "footer" | "close";
182
217
  /**
183
218
  * `AlertDialog` parts, stamped as `data-slot="alert-dialog-<part>"`
184
219
  * (ADR-008). No `root` — Radix's root renders no element.
@@ -188,13 +223,14 @@ type DialogSlot = "overlay" | "content" | "header" | "title" | "description" | "
188
223
  type AlertDialogSlot = "overlay" | "content" | "header" | "title" | "description" | "footer" | "action" | "cancel";
189
224
  /**
190
225
  * `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.
226
+ * `body` is the scroll region between header and footer (W5-07). States:
227
+ * `data-size` on the content, carrying the `size` step (or the deprecated
228
+ * `width` preset, C-SHEET-WIDTH; `default` when neither is given). The
229
+ * `side` is not in the §29.2 vocabulary and stays a class.
194
230
  *
195
231
  * @experimental Slot names are experimental until ADR-008 is accepted (W2-18).
196
232
  */
197
- type SheetSlot = "overlay" | "content" | "header" | "title" | "description" | "footer" | "close";
233
+ type SheetSlot = "overlay" | "content" | "header" | "title" | "description" | "body" | "footer" | "close";
198
234
  /**
199
235
  * `SideDrawer` parts, stamped as `data-slot="side-drawer[-<part>]"`
200
236
  * (ADR-008). `root` is the panel. The screen-reader-only Radix title that the
@@ -415,275 +451,44 @@ type IconButtonSlot = "root" | "icon" | "spinner";
415
451
  * @experimental Slot names are experimental until ADR-008 is accepted (W3-15).
416
452
  */
417
453
  type ChipSlot = "root" | "icon" | "label" | "count" | "remove";
418
-
419
- declare const AlertDialog: React$1.FC<AlertDialogPrimitive.AlertDialogProps>;
420
- declare const AlertDialogTrigger: React$1.ForwardRefExoticComponent<AlertDialogPrimitive.AlertDialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
421
- declare const AlertDialogPortal: React$1.FC<AlertDialogPrimitive.AlertDialogPortalProps>;
422
- declare const AlertDialogOverlay: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
423
- declare const AlertDialogContent: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
424
- declare const AlertDialogHeader: {
425
- ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
426
- displayName: string;
427
- };
428
- declare const AlertDialogFooter: {
429
- ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
430
- displayName: string;
431
- };
432
- declare const AlertDialogTitle: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
433
- 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>>;
435
- declare const AlertDialogCancel: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogCancelProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
436
-
437
454
  /**
438
- * Alert inline banner. Variants align with the three Assure status families
439
- * (success, warning, danger) plus a cyan-accent `info` (per spec §3 — three
440
- * statuses, not five).
441
- */
442
- declare const alertVariants: (props?: ({
443
- variant?: "info" | "success" | "warning" | "destructive" | null | undefined;
444
- } & class_variance_authority_types.ClassProp) | undefined) => string;
445
- interface AlertProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof alertVariants> {
446
- }
447
- declare const Alert: React$1.ForwardRefExoticComponent<AlertProps & React$1.RefAttributes<HTMLDivElement>>;
448
- declare const AlertTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLHeadingElement> & React$1.RefAttributes<HTMLHeadingElement>>;
449
- declare const AlertDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLParagraphElement> & React$1.RefAttributes<HTMLParagraphElement>>;
450
-
451
- /**
452
- * AreaChart — single-series area + line trend (the "Financial overview"
453
- * chart). SVG `path` area under a 2.5px line, vertical gradient fill, and
454
- * hover points with a floating tooltip.
455
+ * `Field` parts, stamped as `data-slot="field[-<part>]"` (ADR-008, W4-01):
456
+ * the root (the layout wrapper, no chrome), the `label` (a `Label` rendered
457
+ * inside a field stamps this over its own `label`, the way `Card` stamps
458
+ * `card` over `surface`), its `required` asterisk and `optional` indicator,
459
+ * the `description` and the `error`. The control is not a part: it keeps its
460
+ * own anatomy (`input`, `select-trigger`, …) and is found by the field's id.
461
+ * States on the root: `data-orientation`, `data-invalid`, `data-disabled`,
462
+ * `data-required`.
455
463
  *
456
- * Width is measured with a ResizeObserver so the chart fills its column;
457
- * the initial width is a safe SSR default (no `window` read on the server).
458
- * The gradient gets a `useId`-scoped `<defs>` id so multiple instances on
459
- * one page don't collide.
460
- *
461
- * Stroke + gradient come from the tokenized chart line color
462
- * (`--color-chart-line`, `--color-chart-area-*`).
464
+ * @experimental Slot names are experimental until ADR-008 is accepted (W4-01).
463
465
  */
464
- interface AreaPoint {
465
- label: string;
466
- value: number;
467
- }
468
- interface AreaChartProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
469
- data: AreaPoint[];
470
- /** Plot height in px (excludes the x-axis label row). */
471
- height?: number;
472
- /** Format a value for the hover tooltip. Defaults to a thin-space number. */
473
- formatValue?: (value: number) => string;
474
- /** Show the x-axis label row under the plot. Default `true`. */
475
- showAxis?: boolean;
476
- }
477
- declare const AreaChart: React$1.ForwardRefExoticComponent<AreaChartProps & React$1.RefAttributes<HTMLDivElement>>;
478
-
479
- interface AspectRatioProps extends React$1.ComponentPropsWithoutRef<typeof AspectRatioPrimitive.Root> {
480
- ratio?: number;
481
- children: React$1.ReactNode;
482
- }
483
- declare const AspectRatio: React$1.ForwardRefExoticComponent<AspectRatioProps & React$1.RefAttributes<HTMLDivElement>>;
484
-
466
+ type FieldSlot = "root" | "label" | "required" | "optional" | "description" | "error";
485
467
  /**
486
- * AttachmentChip a full attachment / file row.
487
- *
488
- * Layout: FileTypeBadge + (name truncate + meta below) + trailing ghost
489
- * icon actions (view / download, then any `actions` the consumer adds).
490
- * Presentational: handlers and the file URL are passed in, so the chip
491
- * itself never owns state.
492
- *
493
- * Two variants:
494
- *
495
- * default — settled row on a page / panel (border + surface, hover bg-2),
496
- * matches the v2 `.txq-ai-file` transaction-receipt row.
497
- * onAccent — for outbound chat bubbles painted with the suite accent;
498
- * translucent-white fill and on-accent text, matches the v2
499
- * `.v2-cx-row.out .v2-cx-file` message attachment.
500
- */
501
- declare const attachmentChipVariants: (props?: ({
502
- variant?: "default" | "onAccent" | null | undefined;
503
- } & class_variance_authority_types.ClassProp) | undefined) => string;
504
- interface AttachmentChipProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof attachmentChipVariants> {
505
- /** File name, e.g. `2023-return.pdf`. Truncates when it overflows. */
506
- name: string;
507
- /** Format label for the FileTypeBadge. Derived from `name` when omitted. */
508
- fileType?: string;
509
- /** Secondary line — size and/or date, e.g. `2.4 MB · uploaded just now`. */
510
- meta?: string;
511
- /** View handler — renders the eye action as a button. */
512
- onView?: () => void;
513
- /** Download handler — renders the download action as a button. */
514
- onDownload?: () => void;
515
- /** File URL — backs the view action as a real anchor when `onView` is absent. */
516
- href?: string;
517
- /**
518
- * App-specific trailing actions, rendered in the same action group after
519
- * view / download — so a third affordance reads as part of the chip rather
520
- * than as a second box beside it. Pass `<Button variant="ghost"
521
- * size="icon-sm">` nodes to match the built-in actions.
522
- *
523
- * On the `onAccent` variant, style them against the accent fill with the
524
- * root's group scope: `group-data-[variant=onAccent]/attachment-chip:…`.
525
- */
526
- actions?: React.ReactNode;
527
- }
528
- declare const AttachmentChip: React$1.ForwardRefExoticComponent<AttachmentChipProps & React$1.RefAttributes<HTMLDivElement>>;
529
-
530
- declare const avatarVariants: (props?: ({
531
- size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
532
- variant?: "initials" | "branded" | null | undefined;
533
- } & class_variance_authority_types.ClassProp) | undefined) => string;
534
- declare const statusStyles: {
535
- readonly online: "ds:bg-success-fg";
536
- readonly away: "ds:bg-warning-fg";
537
- readonly busy: "ds:bg-danger-fg";
538
- readonly offline: "ds:bg-fg-4";
539
- };
540
-
541
- /**
542
- * Props of `Avatar`. Everything not listed spreads onto the frame (the Radix
543
- * root), as it always has.
544
- */
545
- interface AvatarProps extends Omit<React$1.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>, "children">, VariantProps<typeof avatarVariants> {
546
- src?: string | null;
547
- alt?: string;
548
- name?: string;
549
- status?: keyof typeof statusStyles;
550
- /**
551
- * One class per part, keyed by `AvatarSlot` (ADR-008 decision 4). `root` is
552
- * the outer wrapper — where a `shrink-0` or a margin belongs; `frame` is the
553
- * circle, the same element `className` lands on. Each part's class comes
554
- * after the design system's own and, on the frame, before `className`, so a
555
- * consumer's `className` keeps winning exactly as it does today.
556
- *
557
- * Spelled out as `Partial<Record<AvatarSlot, string>>` rather than through the
558
- * internal `SlotClassNames` helper so the public declaration names no
559
- * unexported type.
560
- *
561
- * @experimental
562
- */
563
- classNames?: Partial<Record<AvatarSlot, string>>;
564
- }
565
- declare const Avatar: React$1.ForwardRefExoticComponent<AvatarProps & React$1.RefAttributes<HTMLSpanElement>>;
566
-
567
- /** The emphasis subset a badge offers. @experimental */
568
- type BadgeVariant = Extract<Variant, "solid" | "soft" | "outline">;
569
- /** The badge's own size scale, spelled with the shared names (§17). @experimental */
570
- type BadgeSize = Extract<ControlSize, "xs" | "sm" | "md">;
571
- /** Corner treatment; omitted keeps today's corner (D1). @experimental */
572
- type BadgeShape = Extract<Shape, "rounded" | "pill">;
573
- /**
574
- * The one-axis words Badge accepted before W3-13. Each resolves to a
575
- * `{ variant, intent }` pair through `resolveBadgeAppearance` and renders the
576
- * same classes it always did.
577
- *
578
- * @deprecated Use `variant` (`solid | soft | outline`) with `intent` instead:
579
- * `default` → `solid` + `brand`, `secondary` → `soft` + `neutral`,
580
- * `destructive` → `soft` + `danger`, `success | warning | info` → `soft` +
581
- * the same word. `outline` is already an emphasis and is not deprecated.
582
- */
583
- type BadgeLegacyVariant = "default" | "secondary" | "destructive" | "success" | "warning" | "info";
584
- /** A resolved `{ variant, intent }` pair. @experimental */
585
- interface BadgeAppearance {
586
- variant: BadgeVariant;
587
- intent: Intent;
588
- }
589
- /** What a badge can be asked for: the two axes, either one, or a legacy word. @experimental */
590
- interface BadgeAppearanceInput {
591
- variant?: BadgeVariant | BadgeLegacyVariant | null | undefined;
592
- intent?: Intent | null | undefined;
593
- }
594
- /**
595
- * Resolves what a consumer asked for into the pair the class table is keyed by.
596
- *
597
- * - both axes: taken as given (a legacy `variant` word with an explicit
598
- * `intent` keeps the word's emphasis and takes the intent);
599
- * - `variant` only: the per-variant default intent, or the legacy pair;
600
- * - `intent` only: the per-intent default variant;
601
- * - nothing: `solid` + `brand`, today's default.
468
+ * `Fieldset` parts, stamped as `data-slot="fieldset[-<part>]"` (ADR-008,
469
+ * W4-01): the `<fieldset>` root and its `<legend>`. States on the root:
470
+ * `data-disabled`, `data-invalid`.
602
471
  *
603
- * @experimental
604
- */
605
- declare function resolveBadgeAppearance({ variant, intent, }?: BadgeAppearanceInput): BadgeAppearance;
606
- /** The inputs `badgeVariants` accepts (the legacy `variant` words included). @experimental */
607
- interface BadgeVariantsProps extends BadgeAppearanceInput {
608
- size?: BadgeSize | null | undefined;
609
- shape?: BadgeShape | null | undefined;
610
- class?: string | null | undefined;
611
- className?: string | null | undefined;
612
- }
613
- /**
614
- * The badge's class string, for consumers that style their own element.
615
- * Same call shape as before W3-13 (`variant`, `size`, `class`/`className`),
616
- * plus `intent` and `shape`; a legacy `variant` word yields the string it
617
- * always did.
618
- */
619
- declare function badgeVariants({ variant, intent, size, shape, class: classValue, className, }?: BadgeVariantsProps): string;
620
- interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
621
- /**
622
- * Visual emphasis: `solid` (filled), `soft` (tinted, the status look) or
623
- * `outline`. Omitted, it follows `intent` (brand is solid, the rest soft);
624
- * with neither prop the badge is `solid` + `brand`, as it always was.
625
- * The legacy one-axis words are accepted and deprecated (`BadgeLegacyVariant`).
626
- */
627
- variant?: BadgeVariant | BadgeLegacyVariant;
628
- /**
629
- * Semantic meaning → colour family. Omitted, it follows `variant`
630
- * (`solid` is brand, `soft` and `outline` are neutral).
631
- * @experimental
632
- */
633
- intent?: Intent;
634
- /** `xs` (10px text, W3-13), `sm` (default) or `md`. */
635
- size?: BadgeSize;
636
- /**
637
- * Corner treatment. Omitted keeps today's corner (`--radius-pill`);
638
- * `rounded` is the `radius.badge` role, `pill` is `radius.full` (D1).
639
- * @experimental
640
- */
641
- shape?: BadgeShape;
642
- /** Leading status dot, drawn in the text colour. */
643
- dot?: boolean;
644
- /** Leading 14px glyph. */
645
- icon?: React.ReactNode;
646
- }
647
- declare const Badge: React$1.ForwardRefExoticComponent<BadgeProps & React$1.RefAttributes<HTMLSpanElement>>;
648
-
649
- /**
650
- * Blockquote — semantic quote with optional attribution. Uses `font-display`
651
- * (Inter) at a comfortable reading scale; smart quotes are wrapped automatically.
472
+ * @experimental Slot names are experimental until ADR-008 is accepted (W4-01).
652
473
  */
653
- interface BlockquoteProps extends React.BlockquoteHTMLAttributes<HTMLQuoteElement> {
654
- author?: string;
655
- role?: string;
656
- }
657
- declare const Blockquote: React$1.ForwardRefExoticComponent<BlockquoteProps & React$1.RefAttributes<HTMLQuoteElement>>;
658
-
659
- interface BrandIconProps extends React.SVGAttributes<SVGElement> {
660
- size?: number;
661
- }
662
- declare function AssureProBrandIcon({ size, ...props }: BrandIconProps): react_jsx_runtime.JSX.Element;
663
- declare function AssureAuditBrandIcon({ size, ...props }: BrandIconProps): react_jsx_runtime.JSX.Element;
664
- declare function AssureBooksBrandIcon({ size, ...props }: BrandIconProps): react_jsx_runtime.JSX.Element;
665
- declare function AssureTaxBrandIcon({ size, ...props }: BrandIconProps): react_jsx_runtime.JSX.Element;
666
-
474
+ type FieldsetSlot = "root" | "legend";
667
475
  /**
668
- * Breadcrumb semantic navigation primitive. Uses the catalog `ChevronRightIcon` as the
669
- * default separator. Current page (BreadcrumbPage) leans on Pro purple to
670
- * mirror the active-state language used elsewhere in the firm app.
476
+ * `Combobox` parts, stamped as `data-slot="combobox[-<part>]"` (ADR-008,
477
+ * W4-10): the `root` (the frame that holds the control and its form bridge),
478
+ * the `control` (the field-shaped box the popover anchors to), the `value`
479
+ * (a custom `renderValue` node over the input), the `chips` row and its
480
+ * `Chip`s in `multiple` mode, the `input` (the `role="combobox"` element that
481
+ * keeps focus), the leading `icon`, the `clear` and `toggle` buttons; then
482
+ * the portalled `content` with an optional `header`, the `list`
483
+ * (`role="listbox"`), a `group` with its `group-heading`, each `item`
484
+ * (`role="option"`, see `behavior/collection/item-attributes.ts`) and its
485
+ * `item-indicator`, the `create` row, the `empty` and `loading` states and an
486
+ * optional `footer`. States on the root: `data-state` (`open` · `closed`),
487
+ * `data-disabled`, `data-invalid`, `data-size`.
671
488
  *
672
- * Public API preserved: Breadcrumb / BreadcrumbList / BreadcrumbItem /
673
- * BreadcrumbLink / BreadcrumbPage / BreadcrumbSeparator.
489
+ * @experimental Slot names are experimental until ADR-008 is accepted (W4-10).
674
490
  */
675
- type BreadcrumbProps = React.HTMLAttributes<HTMLElement>;
676
- declare const Breadcrumb: React$1.ForwardRefExoticComponent<BreadcrumbProps & React$1.RefAttributes<HTMLElement>>;
677
- type BreadcrumbListProps = React.HTMLAttributes<HTMLOListElement>;
678
- declare const BreadcrumbList: React$1.ForwardRefExoticComponent<BreadcrumbListProps & React$1.RefAttributes<HTMLOListElement>>;
679
- type BreadcrumbItemProps = React.HTMLAttributes<HTMLLIElement>;
680
- declare const BreadcrumbItem: React$1.ForwardRefExoticComponent<BreadcrumbItemProps & React$1.RefAttributes<HTMLLIElement>>;
681
- type BreadcrumbLinkProps = React.AnchorHTMLAttributes<HTMLAnchorElement>;
682
- declare const BreadcrumbLink: React$1.ForwardRefExoticComponent<BreadcrumbLinkProps & React$1.RefAttributes<HTMLAnchorElement>>;
683
- type BreadcrumbPageProps = React.HTMLAttributes<HTMLSpanElement>;
684
- declare const BreadcrumbPage: React$1.ForwardRefExoticComponent<BreadcrumbPageProps & React$1.RefAttributes<HTMLSpanElement>>;
685
- type BreadcrumbSeparatorProps = React.HTMLAttributes<HTMLSpanElement>;
686
- declare const BreadcrumbSeparator: React$1.ForwardRefExoticComponent<BreadcrumbSeparatorProps & React$1.RefAttributes<HTMLSpanElement>>;
491
+ type ComboboxSlot = "root" | "control" | "value" | "chips" | "input" | "icon" | "clear" | "toggle" | "content" | "header" | "list" | "group" | "group-heading" | "item" | "item-indicator" | "create" | "empty" | "loading" | "footer";
687
492
 
688
493
  /**
689
494
  * L1a behaviour primitive (private). Not exported from the package.
@@ -851,24 +656,310 @@ declare function buttonVariants({ variant, intent, size, class: classProp, class
851
656
  *
852
657
  * @experimental
853
658
  */
854
- interface ButtonIconProps {
855
- /** Icon before the label (logical start). */
856
- iconStart?: ReactNode;
857
- /** Icon after the label (logical end). */
858
- iconEnd?: ReactNode;
659
+ interface ButtonIconProps {
660
+ /** Icon before the label (logical start). */
661
+ iconStart?: ReactNode;
662
+ /** Icon after the label (logical end). */
663
+ iconEnd?: ReactNode;
664
+ /**
665
+ * Alias of `iconStart`. The codemod CM-05 renames it.
666
+ *
667
+ * @deprecated Use `iconStart`.
668
+ */
669
+ iconLeft?: ReactNode;
670
+ /**
671
+ * Alias of `iconEnd`. The codemod CM-05 renames it.
672
+ *
673
+ * @deprecated Use `iconEnd`.
674
+ */
675
+ iconRight?: ReactNode;
676
+ }
677
+
678
+ declare const AlertDialog: React$1.FC<AlertDialogPrimitive.AlertDialogProps>;
679
+ declare const AlertDialogTrigger: React$1.ForwardRefExoticComponent<AlertDialogPrimitive.AlertDialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
680
+ declare const AlertDialogPortal: React$1.FC<AlertDialogPrimitive.AlertDialogPortalProps>;
681
+ declare const AlertDialogOverlay: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
682
+ declare const AlertDialogContent: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
683
+ declare const AlertDialogHeader: {
684
+ (props: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
685
+ displayName: string;
686
+ };
687
+ declare const AlertDialogFooter: {
688
+ (props: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
689
+ displayName: string;
690
+ };
691
+ declare const AlertDialogTitle: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
692
+ declare const AlertDialogDescription: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
693
+ /**
694
+ * Props of `AlertDialogAction` (W5-06): Radix's action props plus the two
695
+ * Button axes.
696
+ *
697
+ * @experimental
698
+ */
699
+ interface AlertDialogActionProps extends React$1.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action> {
700
+ /**
701
+ * Emphasis, as on `Button` (ADR-007): `solid · soft · outline · ghost ·
702
+ * link`, or a legacy word. Without `variant` and `intent` the action keeps
703
+ * its 1.x destructive look; naming either resolves through the Button
704
+ * recipe, so `intent="brand"` is a non-destructive confirm.
705
+ */
706
+ variant?: ButtonVariant;
707
+ /** Meaning, as on `Button`: `brand · neutral · success · danger`. */
708
+ intent?: ButtonIntent | ButtonIntentAlias;
709
+ }
710
+ declare const AlertDialogAction: React$1.ForwardRefExoticComponent<AlertDialogActionProps & React$1.RefAttributes<HTMLButtonElement>>;
711
+ declare const AlertDialogCancel: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogCancelProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
712
+
713
+ /**
714
+ * Alert — inline banner. Variants align with the three Assure status families
715
+ * (success, warning, danger) plus a cyan-accent `info` (per spec §3 — three
716
+ * statuses, not five).
717
+ */
718
+ declare const alertVariants: (props?: ({
719
+ variant?: "info" | "success" | "warning" | "destructive" | null | undefined;
720
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
721
+ interface AlertProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof alertVariants> {
722
+ }
723
+ declare const Alert: React$1.ForwardRefExoticComponent<AlertProps & React$1.RefAttributes<HTMLDivElement>>;
724
+ declare const AlertTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLHeadingElement> & React$1.RefAttributes<HTMLHeadingElement>>;
725
+ declare const AlertDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLParagraphElement> & React$1.RefAttributes<HTMLParagraphElement>>;
726
+
727
+ /**
728
+ * AreaChart — single-series area + line trend (the "Financial overview"
729
+ * chart). SVG `path` area under a 2.5px line, vertical gradient fill, and
730
+ * hover points with a floating tooltip.
731
+ *
732
+ * Width is measured with a ResizeObserver so the chart fills its column;
733
+ * the initial width is a safe SSR default (no `window` read on the server).
734
+ * The gradient gets a `useId`-scoped `<defs>` id so multiple instances on
735
+ * one page don't collide.
736
+ *
737
+ * Stroke + gradient come from the tokenized chart line color
738
+ * (`--color-chart-line`, `--color-chart-area-*`).
739
+ */
740
+ interface AreaPoint {
741
+ label: string;
742
+ value: number;
743
+ }
744
+ interface AreaChartProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
745
+ data: AreaPoint[];
746
+ /** Plot height in px (excludes the x-axis label row). */
747
+ height?: number;
748
+ /** Format a value for the hover tooltip. Defaults to a thin-space number. */
749
+ formatValue?: (value: number) => string;
750
+ /** Show the x-axis label row under the plot. Default `true`. */
751
+ showAxis?: boolean;
752
+ }
753
+ declare const AreaChart: React$1.ForwardRefExoticComponent<AreaChartProps & React$1.RefAttributes<HTMLDivElement>>;
754
+
755
+ interface AspectRatioProps extends React$1.ComponentPropsWithoutRef<typeof AspectRatioPrimitive.Root> {
756
+ ratio?: number;
757
+ children: React$1.ReactNode;
758
+ }
759
+ declare const AspectRatio: React$1.ForwardRefExoticComponent<AspectRatioProps & React$1.RefAttributes<HTMLDivElement>>;
760
+
761
+ /**
762
+ * AttachmentChip — a full attachment / file row.
763
+ *
764
+ * Layout: FileTypeBadge + (name truncate + meta below) + trailing ghost
765
+ * icon actions (view / download, then any `actions` the consumer adds).
766
+ * Presentational: handlers and the file URL are passed in, so the chip
767
+ * itself never owns state.
768
+ *
769
+ * Two variants:
770
+ *
771
+ * default — settled row on a page / panel (border + surface, hover bg-2),
772
+ * matches the v2 `.txq-ai-file` transaction-receipt row.
773
+ * onAccent — for outbound chat bubbles painted with the suite accent;
774
+ * translucent-white fill and on-accent text, matches the v2
775
+ * `.v2-cx-row.out .v2-cx-file` message attachment.
776
+ */
777
+ declare const attachmentChipVariants: (props?: ({
778
+ variant?: "default" | "onAccent" | null | undefined;
779
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
780
+ interface AttachmentChipProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof attachmentChipVariants> {
781
+ /** File name, e.g. `2023-return.pdf`. Truncates when it overflows. */
782
+ name: string;
783
+ /** Format label for the FileTypeBadge. Derived from `name` when omitted. */
784
+ fileType?: string;
785
+ /** Secondary line — size and/or date, e.g. `2.4 MB · uploaded just now`. */
786
+ meta?: string;
787
+ /** View handler — renders the eye action as a button. */
788
+ onView?: () => void;
789
+ /** Download handler — renders the download action as a button. */
790
+ onDownload?: () => void;
791
+ /** File URL — backs the view action as a real anchor when `onView` is absent. */
792
+ href?: string;
793
+ /**
794
+ * App-specific trailing actions, rendered in the same action group after
795
+ * view / download — so a third affordance reads as part of the chip rather
796
+ * than as a second box beside it. Pass `<Button variant="ghost"
797
+ * size="icon-sm">` nodes to match the built-in actions.
798
+ *
799
+ * On the `onAccent` variant, style them against the accent fill with the
800
+ * root's group scope: `group-data-[variant=onAccent]/attachment-chip:…`.
801
+ */
802
+ actions?: React.ReactNode;
803
+ }
804
+ declare const AttachmentChip: React$1.ForwardRefExoticComponent<AttachmentChipProps & React$1.RefAttributes<HTMLDivElement>>;
805
+
806
+ declare const avatarVariants: (props?: ({
807
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
808
+ variant?: "initials" | "branded" | null | undefined;
809
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
810
+ declare const statusStyles: {
811
+ readonly online: "ds:bg-success-fg";
812
+ readonly away: "ds:bg-warning-fg";
813
+ readonly busy: "ds:bg-danger-fg";
814
+ readonly offline: "ds:bg-fg-4";
815
+ };
816
+
817
+ /**
818
+ * Props of `Avatar`. Everything not listed spreads onto the frame (the Radix
819
+ * root), as it always has.
820
+ */
821
+ interface AvatarProps extends Omit<React$1.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>, "children">, VariantProps<typeof avatarVariants> {
822
+ src?: string | null;
823
+ alt?: string;
824
+ name?: string;
825
+ status?: keyof typeof statusStyles;
826
+ /**
827
+ * One class per part, keyed by `AvatarSlot` (ADR-008 decision 4). `root` is
828
+ * the outer wrapper — where a `shrink-0` or a margin belongs; `frame` is the
829
+ * circle, the same element `className` lands on. Each part's class comes
830
+ * after the design system's own and, on the frame, before `className`, so a
831
+ * consumer's `className` keeps winning exactly as it does today.
832
+ *
833
+ * Spelled out as `Partial<Record<AvatarSlot, string>>` rather than through the
834
+ * internal `SlotClassNames` helper so the public declaration names no
835
+ * unexported type.
836
+ *
837
+ * @experimental
838
+ */
839
+ classNames?: Partial<Record<AvatarSlot, string>>;
840
+ }
841
+ declare const Avatar: React$1.ForwardRefExoticComponent<AvatarProps & React$1.RefAttributes<HTMLSpanElement>>;
842
+
843
+ /** The emphasis subset a badge offers. @experimental */
844
+ type BadgeVariant = Extract<Variant, "solid" | "soft" | "outline">;
845
+ /** The badge's own size scale, spelled with the shared names (§17). @experimental */
846
+ type BadgeSize = Extract<ControlSize, "xs" | "sm" | "md">;
847
+ /** Corner treatment; omitted keeps today's corner (D1). @experimental */
848
+ type BadgeShape = Extract<Shape, "rounded" | "pill">;
849
+ /**
850
+ * The one-axis words Badge accepted before W3-13. Each resolves to a
851
+ * `{ variant, intent }` pair through `resolveBadgeAppearance` and renders the
852
+ * same classes it always did.
853
+ *
854
+ * @deprecated Use `variant` (`solid | soft | outline`) with `intent` instead:
855
+ * `default` → `solid` + `brand`, `secondary` → `soft` + `neutral`,
856
+ * `destructive` → `soft` + `danger`, `success | warning | info` → `soft` +
857
+ * the same word. `outline` is already an emphasis and is not deprecated.
858
+ */
859
+ type BadgeLegacyVariant = "default" | "secondary" | "destructive" | "success" | "warning" | "info";
860
+ /** A resolved `{ variant, intent }` pair. @experimental */
861
+ interface BadgeAppearance {
862
+ variant: BadgeVariant;
863
+ intent: Intent;
864
+ }
865
+ /** What a badge can be asked for: the two axes, either one, or a legacy word. @experimental */
866
+ interface BadgeAppearanceInput {
867
+ variant?: BadgeVariant | BadgeLegacyVariant | null | undefined;
868
+ intent?: Intent | null | undefined;
869
+ }
870
+ /**
871
+ * Resolves what a consumer asked for into the pair the class table is keyed by.
872
+ *
873
+ * - both axes: taken as given (a legacy `variant` word with an explicit
874
+ * `intent` keeps the word's emphasis and takes the intent);
875
+ * - `variant` only: the per-variant default intent, or the legacy pair;
876
+ * - `intent` only: the per-intent default variant;
877
+ * - nothing: `solid` + `brand`, today's default.
878
+ *
879
+ * @experimental
880
+ */
881
+ declare function resolveBadgeAppearance({ variant, intent, }?: BadgeAppearanceInput): BadgeAppearance;
882
+ /** The inputs `badgeVariants` accepts (the legacy `variant` words included). @experimental */
883
+ interface BadgeVariantsProps extends BadgeAppearanceInput {
884
+ size?: BadgeSize | null | undefined;
885
+ shape?: BadgeShape | null | undefined;
886
+ class?: string | null | undefined;
887
+ className?: string | null | undefined;
888
+ }
889
+ /**
890
+ * The badge's class string, for consumers that style their own element.
891
+ * Same call shape as before W3-13 (`variant`, `size`, `class`/`className`),
892
+ * plus `intent` and `shape`; a legacy `variant` word yields the string it
893
+ * always did.
894
+ */
895
+ declare function badgeVariants({ variant, intent, size, shape, class: classValue, className, }?: BadgeVariantsProps): string;
896
+ interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
859
897
  /**
860
- * Alias of `iconStart`. The codemod CM-05 renames it.
861
- *
862
- * @deprecated Use `iconStart`.
898
+ * Visual emphasis: `solid` (filled), `soft` (tinted, the status look) or
899
+ * `outline`. Omitted, it follows `intent` (brand is solid, the rest soft);
900
+ * with neither prop the badge is `solid` + `brand`, as it always was.
901
+ * The legacy one-axis words are accepted and deprecated (`BadgeLegacyVariant`).
863
902
  */
864
- iconLeft?: ReactNode;
903
+ variant?: BadgeVariant | BadgeLegacyVariant;
865
904
  /**
866
- * Alias of `iconEnd`. The codemod CM-05 renames it.
867
- *
868
- * @deprecated Use `iconEnd`.
905
+ * Semantic meaning colour family. Omitted, it follows `variant`
906
+ * (`solid` is brand, `soft` and `outline` are neutral).
907
+ * @experimental
869
908
  */
870
- iconRight?: ReactNode;
909
+ intent?: Intent;
910
+ /** `xs` (10px text, W3-13), `sm` (default) or `md`. */
911
+ size?: BadgeSize;
912
+ /**
913
+ * Corner treatment. Omitted keeps today's corner (`--radius-pill`);
914
+ * `rounded` is the `radius.badge` role, `pill` is `radius.full` (D1).
915
+ * @experimental
916
+ */
917
+ shape?: BadgeShape;
918
+ /** Leading status dot, drawn in the text colour. */
919
+ dot?: boolean;
920
+ /** Leading 14px glyph. */
921
+ icon?: React.ReactNode;
922
+ }
923
+ declare const Badge: React$1.ForwardRefExoticComponent<BadgeProps & React$1.RefAttributes<HTMLSpanElement>>;
924
+
925
+ /**
926
+ * Blockquote — semantic quote with optional attribution. Uses `font-display`
927
+ * (Inter) at a comfortable reading scale; smart quotes are wrapped automatically.
928
+ */
929
+ interface BlockquoteProps extends React.BlockquoteHTMLAttributes<HTMLQuoteElement> {
930
+ author?: string;
931
+ role?: string;
932
+ }
933
+ declare const Blockquote: React$1.ForwardRefExoticComponent<BlockquoteProps & React$1.RefAttributes<HTMLQuoteElement>>;
934
+
935
+ interface BrandIconProps extends React.SVGAttributes<SVGElement> {
936
+ size?: number;
871
937
  }
938
+ declare function AssureProBrandIcon({ size, ...props }: BrandIconProps): react_jsx_runtime.JSX.Element;
939
+ declare function AssureAuditBrandIcon({ size, ...props }: BrandIconProps): react_jsx_runtime.JSX.Element;
940
+ declare function AssureBooksBrandIcon({ size, ...props }: BrandIconProps): react_jsx_runtime.JSX.Element;
941
+ declare function AssureTaxBrandIcon({ size, ...props }: BrandIconProps): react_jsx_runtime.JSX.Element;
942
+
943
+ /**
944
+ * Breadcrumb — semantic navigation primitive. Uses the catalog `ChevronRightIcon` as the
945
+ * default separator. Current page (BreadcrumbPage) leans on Pro purple to
946
+ * mirror the active-state language used elsewhere in the firm app.
947
+ *
948
+ * Public API preserved: Breadcrumb / BreadcrumbList / BreadcrumbItem /
949
+ * BreadcrumbLink / BreadcrumbPage / BreadcrumbSeparator.
950
+ */
951
+ type BreadcrumbProps = React.HTMLAttributes<HTMLElement>;
952
+ declare const Breadcrumb: React$1.ForwardRefExoticComponent<BreadcrumbProps & React$1.RefAttributes<HTMLElement>>;
953
+ type BreadcrumbListProps = React.HTMLAttributes<HTMLOListElement>;
954
+ declare const BreadcrumbList: React$1.ForwardRefExoticComponent<BreadcrumbListProps & React$1.RefAttributes<HTMLOListElement>>;
955
+ type BreadcrumbItemProps = React.HTMLAttributes<HTMLLIElement>;
956
+ declare const BreadcrumbItem: React$1.ForwardRefExoticComponent<BreadcrumbItemProps & React$1.RefAttributes<HTMLLIElement>>;
957
+ type BreadcrumbLinkProps = React.AnchorHTMLAttributes<HTMLAnchorElement>;
958
+ declare const BreadcrumbLink: React$1.ForwardRefExoticComponent<BreadcrumbLinkProps & React$1.RefAttributes<HTMLAnchorElement>>;
959
+ type BreadcrumbPageProps = React.HTMLAttributes<HTMLSpanElement>;
960
+ declare const BreadcrumbPage: React$1.ForwardRefExoticComponent<BreadcrumbPageProps & React$1.RefAttributes<HTMLSpanElement>>;
961
+ type BreadcrumbSeparatorProps = React.HTMLAttributes<HTMLSpanElement>;
962
+ declare const BreadcrumbSeparator: React$1.ForwardRefExoticComponent<BreadcrumbSeparatorProps & React$1.RefAttributes<HTMLSpanElement>>;
872
963
 
873
964
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, ButtonIconProps {
874
965
  /**
@@ -920,15 +1011,41 @@ interface CalendarHighlight {
920
1011
  date: Date;
921
1012
  color?: CalendarHighlightColor;
922
1013
  }
923
- interface CalendarProps extends Omit<DayPickerProps, "mode" | "selected" | "onSelect" | "modifiers" | "modifiersClassNames"> {
924
- selected?: Date | null;
925
- onSelect?: (date: Date) => void;
1014
+ /** A range as `Calendar mode="range"` reports it: either edge may be missing while the user picks. */
1015
+ interface CalendarRange {
1016
+ from?: Date;
1017
+ to?: Date;
1018
+ }
1019
+ /** Props shared by both modes of `Calendar`. */
1020
+ interface CalendarBaseProps extends Omit<DayPickerProps, "mode" | "selected" | "onSelect" | "modifiers" | "modifiersClassNames" | "locale" | "required"> {
926
1021
  highlights?: CalendarHighlight[];
927
1022
  minDate?: Date;
928
1023
  maxDate?: Date;
929
1024
  className?: string;
1025
+ /**
1026
+ * A BCP 47 language tag (`"en-US"`, `"fr-FR"`), or a `date-fns` locale
1027
+ * object as before. Default: the provider's locale, else `"en-US"` (A3).
1028
+ */
1029
+ locale?: string | DayPickerProps["locale"];
1030
+ }
1031
+ /** Single-date calendar (the default mode). */
1032
+ interface CalendarProps extends CalendarBaseProps {
1033
+ mode?: "single";
1034
+ selected?: Date | null;
1035
+ onSelect?: (date: Date) => void;
1036
+ }
1037
+ /**
1038
+ * Range calendar: `selected` is a `{ from, to }` pair and `onSelect` reports
1039
+ * the pair react-day-picker produced, `undefined` when it cleared the range.
1040
+ *
1041
+ * @experimental
1042
+ */
1043
+ interface CalendarRangeProps extends CalendarBaseProps {
1044
+ mode: "range";
1045
+ selected?: CalendarRange | null;
1046
+ onSelect?: (range: CalendarRange | undefined) => void;
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
+ 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
1049
  declare namespace Calendar {
933
1050
  var displayName: string;
934
1051
  }
@@ -1167,16 +1284,33 @@ interface CategoryDividerProps extends React.HTMLAttributes<HTMLDivElement>, Var
1167
1284
  }
1168
1285
  declare const CategoryDivider: React$1.ForwardRefExoticComponent<CategoryDividerProps & React$1.RefAttributes<HTMLDivElement>>;
1169
1286
 
1287
+ /** The states a checkbox renders: checked, unchecked, or partly checked. */
1288
+ type CheckboxChecked = boolean | "indeterminate";
1170
1289
  interface CheckboxProps extends Omit<React$1.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>, "checked" | "defaultChecked"> {
1171
- /** Optional inline label rendered to the right of the box */
1290
+ /** Optional inline label rendered to the right of the box. Names the button through `htmlFor`. */
1172
1291
  label?: string;
1173
1292
  /** Tri-state support: true | false | "indeterminate" */
1174
- checked?: boolean | "indeterminate";
1175
- defaultChecked?: boolean | "indeterminate";
1176
- /** Convenience: render with indeterminate state. Mirrors legacy prop. */
1293
+ checked?: CheckboxChecked;
1294
+ defaultChecked?: CheckboxChecked;
1295
+ /**
1296
+ * Render the indeterminate state.
1297
+ *
1298
+ * @deprecated Pass `checked="indeterminate"` instead (C-CHECKBOX-INDET;
1299
+ * codemod CM-11 rewrites it). Removed in 3.0.
1300
+ */
1177
1301
  indeterminate?: boolean;
1178
1302
  /** Box shape. Defaults to "square". */
1179
1303
  shape?: "square" | "circle";
1304
+ /**
1305
+ * The value submitted with `name` while checked. Default `"on"`, like a
1306
+ * native checkbox.
1307
+ */
1308
+ value?: string;
1309
+ /**
1310
+ * The checkbox is in error: `aria-invalid` and `data-invalid`. Implied by
1311
+ * the surrounding `Field`'s `invalid` or a mounted `FieldError`.
1312
+ */
1313
+ invalid?: boolean;
1180
1314
  }
1181
1315
  declare const Checkbox: React$1.ForwardRefExoticComponent<CheckboxProps & React$1.RefAttributes<HTMLButtonElement>>;
1182
1316
 
@@ -1277,9 +1411,17 @@ declare const ContextMenuSubTrigger: React$1.ForwardRefExoticComponent<Omit<Cont
1277
1411
  declare const ContextMenuSubContent: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1278
1412
  declare const ContextMenuContent: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1279
1413
  interface ContextMenuItemProps extends React$1.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> {
1414
+ /** Render as a destructive (danger) action — the `intent="danger"` look of the shared Menu recipe. */
1280
1415
  destructive?: boolean;
1416
+ /** Increase left padding to align with checkbox/radio items. */
1281
1417
  inset?: boolean;
1282
1418
  }
1419
+ /**
1420
+ * A menu item. Activation fires both `onSelect` (canonical; call
1421
+ * `event.preventDefault()` on it to keep the menu open) and `onClick`
1422
+ * (tolerated): Radix composes `onClick` with its select handler and a
1423
+ * keyboard activation clicks the element.
1424
+ */
1283
1425
  declare const ContextMenuItem: React$1.ForwardRefExoticComponent<ContextMenuItemProps & React$1.RefAttributes<HTMLDivElement>>;
1284
1426
  declare const ContextMenuCheckboxItem: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuCheckboxItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1285
1427
  declare const ContextMenuRadioItem: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuRadioItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
@@ -1322,10 +1464,25 @@ declare function isoToYear(iso: string | undefined | null): string;
1322
1464
  declare function yearToIso(year: string): string;
1323
1465
  /** Apply the `YYYY` mask while the user types. */
1324
1466
  declare function applyYearMask(input: string): string;
1467
+ /** A display pattern: the tokens `MM`, `DD` and `YYYY`, once each, around literal separators — `"MM/DD/YYYY"`, `"DD.MM.YYYY"`, `"YYYY-MM-DD"`. */
1468
+ type DatePattern = string;
1325
1469
 
1326
1470
  interface DatePickerProps {
1327
- value?: string;
1471
+ /** ISO `YYYY-MM-DD`; `""` or `null` is "controlled, empty". */
1472
+ value?: string | null;
1328
1473
  defaultValue?: string;
1474
+ /**
1475
+ * The value callback: the ISO date, or `null` when the field is cleared.
1476
+ * Fires before the legacy `onChange` when both are passed.
1477
+ *
1478
+ * @experimental
1479
+ */
1480
+ onValueChange?: (value: string | null) => void;
1481
+ /**
1482
+ * Legacy fake-event callback (C-DATE-FAKEEVENT): `{ target: { name, value } }`
1483
+ * with the ISO string (`""` when cleared). Prefer `onValueChange`; codemod
1484
+ * CM-10 rewrites the recognisable shapes.
1485
+ */
1329
1486
  onChange?: (event: {
1330
1487
  target: {
1331
1488
  name?: string;
@@ -1333,6 +1490,22 @@ interface DatePickerProps {
1333
1490
  };
1334
1491
  }) => void;
1335
1492
  name?: string;
1493
+ /** `id` of the form to submit with when the picker is rendered outside it (Dialog, Sheet). */
1494
+ form?: string;
1495
+ /**
1496
+ * BCP 47 tag deciding the typed pattern, the mask and the default
1497
+ * placeholder. Default: the provider's locale, else `"en-US"` (`MM/DD/YYYY`).
1498
+ *
1499
+ * @experimental
1500
+ */
1501
+ locale?: string;
1502
+ /**
1503
+ * The display pattern, overriding the locale's: `MM`, `DD` and `YYYY`
1504
+ * once each around literal separators (`"DD.MM.YYYY"`). Ignored in year mode.
1505
+ *
1506
+ * @experimental
1507
+ */
1508
+ dateFormat?: DatePattern;
1336
1509
  id?: string;
1337
1510
  label?: string;
1338
1511
  error?: string;
@@ -1377,11 +1550,33 @@ interface DateRangeValue {
1377
1550
  from?: string;
1378
1551
  to?: string;
1379
1552
  }
1553
+ /** The two form field names of a range. */
1554
+ interface DateRangeNames {
1555
+ from: string;
1556
+ to: string;
1557
+ }
1380
1558
  interface DateRangePickerProps {
1381
1559
  value?: DateRangeValue;
1382
1560
  defaultValue?: DateRangeValue;
1383
1561
  onChange?: (value: DateRangeValue) => void;
1562
+ /** Base of the two field names: `${name}_from` / `${name}_to` unless `names` says otherwise. */
1384
1563
  name?: string;
1564
+ /**
1565
+ * Explicit field names for the two edges, replacing the `${name}_from` /
1566
+ * `${name}_to` default (C-DATERANGE-NAMES, kept through 2.x).
1567
+ *
1568
+ * @experimental
1569
+ */
1570
+ names?: DateRangeNames;
1571
+ /** `id` of the form to submit with when the picker is rendered outside it (Dialog, Sheet). */
1572
+ form?: string;
1573
+ /**
1574
+ * BCP 47 tag deciding the displayed pattern of both edges and the
1575
+ * calendar's language. Default: the provider's locale, else `"en-US"`.
1576
+ *
1577
+ * @experimental
1578
+ */
1579
+ locale?: string;
1385
1580
  id?: string;
1386
1581
  label?: string;
1387
1582
  error?: string;
@@ -1404,28 +1599,92 @@ declare const Dialog: React$1.FC<DialogPrimitive.DialogProps>;
1404
1599
  declare const DialogTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
1405
1600
  declare const DialogPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
1406
1601
  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
- };
1602
+ /**
1603
+ * Width of a `DialogContent`, as a step of the dialog width scale (W5-05):
1604
+ * `sm` 24rem · `md` 32rem (default) · `lg` 42rem · `xl` 56rem · `full` the
1605
+ * viewport minus a 1rem gutter. `sm`/`md`/`lg`/`full` are the 1.x steps,
1606
+ * pixel for pixel; `xl` is new. Every step yields to `--ds-dialog-width`
1607
+ * when a consumer sets it (on the content, or on a scope above it), which
1608
+ * is the replacement for the `!max-w-*` overrides products write today.
1609
+ *
1610
+ * @experimental
1611
+ */
1612
+ type DialogSize$1 = "sm" | "md" | "lg" | "xl" | "full";
1613
+ /**
1614
+ * Height of a `DialogContent` (W5-05). `auto` (default) grows with the
1615
+ * content and scrolls the whole box past `100vh - 6rem`, as it always did.
1616
+ * A fixed step (`sm` 24rem · `md` 32rem · `lg` 44rem · `full` the viewport
1617
+ * minus the same gutter, each capped at the viewport) turns the box into a
1618
+ * column whose `DialogBody` is the scroll region, so header and footer stay
1619
+ * put while long content scrolls.
1620
+ *
1621
+ * @experimental
1622
+ */
1623
+ type DialogHeight = "auto" | "sm" | "md" | "lg" | "full";
1624
+ /**
1625
+ * The copy a `Dialog` renders (target architecture §24.5). English defaults
1626
+ * until the messages contract of the provider lands (W5-20).
1627
+ *
1628
+ * @experimental
1629
+ */
1630
+ interface DialogMessages {
1631
+ /** The accessible name of the built-in close button. Default `"Close"`. */
1632
+ close: string;
1633
+ }
1634
+ /**
1635
+ * Props of `DialogContent`: Radix's content props plus the sizing and
1636
+ * dismiss options.
1637
+ *
1638
+ * @experimental
1639
+ */
1413
1640
  interface DialogContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {
1414
- size?: keyof typeof dialogSizeStyles;
1641
+ /** Width step. Default `md`. See {@link DialogSize}. */
1642
+ size?: DialogSize$1;
1643
+ /** Height step. Default `auto`. See {@link DialogHeight}. */
1644
+ height?: DialogHeight;
1415
1645
  /**
1416
1646
  * If false, the built-in close button is hidden. Default: true.
1417
1647
  * Use `<DialogClose>` inside content to render your own close UI.
1418
1648
  */
1419
1649
  showCloseButton?: boolean;
1650
+ /**
1651
+ * The accessible name of the built-in close button. Takes precedence over
1652
+ * `messages.close`. Default `"Close"`.
1653
+ */
1654
+ closeLabel?: string;
1655
+ /** Overrides of the copy the dialog renders (English defaults until W5-20). */
1656
+ messages?: Partial<DialogMessages>;
1420
1657
  }
1421
1658
  declare const DialogContent: React$1.ForwardRefExoticComponent<DialogContentProps & React$1.RefAttributes<HTMLDivElement>>;
1422
1659
  declare const DialogClose: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
1423
1660
  declare const DialogHeader: {
1424
- ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
1661
+ (props: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
1425
1662
  displayName: string;
1426
1663
  };
1664
+ /**
1665
+ * Props of `DialogBody` (W5-05).
1666
+ *
1667
+ * @experimental
1668
+ */
1669
+ interface DialogBodyProps extends React$1.HTMLAttributes<HTMLDivElement> {
1670
+ /**
1671
+ * Inner padding. Default `none`: the content box already pads itself
1672
+ * (`p-6`), so the body only needs its own padding when the content is
1673
+ * `height`-fixed and a scrolling region wants breathing room.
1674
+ */
1675
+ padding?: "none" | "sm" | "md" | "lg";
1676
+ }
1677
+ /**
1678
+ * The scroll region of a dialog between `DialogHeader` and `DialogFooter`
1679
+ * (W5-05). With `height="auto"` (the default) the whole content scrolls as
1680
+ * before and the body is a plain block; with a fixed `height` it takes the
1681
+ * remaining height and scrolls while the header and footer stay in place.
1682
+ *
1683
+ * @experimental
1684
+ */
1685
+ declare const DialogBody: React$1.ForwardRefExoticComponent<DialogBodyProps & React$1.RefAttributes<HTMLDivElement>>;
1427
1686
  declare const DialogFooter: {
1428
- ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
1687
+ (props: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
1429
1688
  displayName: string;
1430
1689
  };
1431
1690
  declare const DialogTitle: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
@@ -1526,6 +1785,22 @@ interface DonutChartProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "ch
1526
1785
  }
1527
1786
  declare const DonutChart: React$1.ForwardRefExoticComponent<DonutChartProps & React$1.RefAttributes<HTMLDivElement>>;
1528
1787
 
1788
+ /**
1789
+ * L1a behaviour primitive (private). Not exported from the package.
1790
+ *
1791
+ * The `width` of a menu content surface (W5-13; target architecture §14
1792
+ * "Menus: `width: auto | trigger | sm | md`" — 62% of consumer
1793
+ * `DropdownMenuContent` uses override the width by class today). `auto` is
1794
+ * the default and adds nothing, so every existing menu keeps its class string
1795
+ * byte for byte; the other values are opt-in. `trigger` reads the Popper
1796
+ * variable Radix stamps on the content, so the menu is as wide as the element
1797
+ * that opened it.
1798
+ *
1799
+ * Full literals, one per row, so Tailwind's scanner sees them.
1800
+ */
1801
+ /** How wide a menu content surface is. */
1802
+ type MenuWidth = "auto" | "trigger" | "sm" | "md";
1803
+
1529
1804
  declare const DropdownMenu: React$1.FC<DropdownMenuPrimitive.DropdownMenuProps>;
1530
1805
  declare const DropdownMenuTrigger: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
1531
1806
  declare const DropdownMenuGroup: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React$1.RefAttributes<HTMLDivElement>>;
@@ -1536,13 +1811,32 @@ declare const DropdownMenuSubTrigger: React$1.ForwardRefExoticComponent<Omit<Dro
1536
1811
  inset?: boolean;
1537
1812
  } & React$1.RefAttributes<HTMLDivElement>>;
1538
1813
  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>>;
1814
+ interface DropdownMenuContentProps extends React$1.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content> {
1815
+ /**
1816
+ * The width of the menu surface. `auto` (default) sizes to the items with
1817
+ * the 10rem minimum; `trigger` matches the element that opened the menu;
1818
+ * `sm` and `md` are fixed widths (12rem, 16rem). Replaces the `w-*` class
1819
+ * overrides most consumers write today.
1820
+ * @default "auto"
1821
+ */
1822
+ width?: MenuWidth;
1823
+ }
1824
+ declare const DropdownMenuContent: React$1.ForwardRefExoticComponent<DropdownMenuContentProps & React$1.RefAttributes<HTMLDivElement>>;
1540
1825
  interface DropdownMenuItemProps extends React$1.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> {
1541
- /** Render as a destructive (danger) action. */
1826
+ /**
1827
+ * Render as a destructive (danger) action — the `intent="danger"` look of
1828
+ * the shared Menu recipe (`menu.item.destructive.*` tokens).
1829
+ */
1542
1830
  destructive?: boolean;
1543
1831
  /** Increase left padding to align with checkbox/radio items. */
1544
1832
  inset?: boolean;
1545
1833
  }
1834
+ /**
1835
+ * A menu item. Activation fires both `onSelect` (canonical; call
1836
+ * `event.preventDefault()` on it to keep the menu open) and `onClick`
1837
+ * (tolerated): Radix composes `onClick` with its select handler and a
1838
+ * keyboard activation clicks the element.
1839
+ */
1546
1840
  declare const DropdownMenuItem: React$1.ForwardRefExoticComponent<DropdownMenuItemProps & React$1.RefAttributes<HTMLDivElement>>;
1547
1841
  declare const DropdownMenuCheckboxItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1548
1842
  declare const DropdownMenuRadioItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
@@ -1633,21 +1927,87 @@ interface FileTypeBadgeProps extends Omit<React.HTMLAttributes<HTMLSpanElement>,
1633
1927
  }
1634
1928
  declare const FileTypeBadge: React$1.ForwardRefExoticComponent<FileTypeBadgeProps & React$1.RefAttributes<HTMLSpanElement>>;
1635
1929
 
1930
+ /**
1931
+ * The looks of the dropzone: `default` stacks the icon and the copy in a
1932
+ * padded tile; `compact` lays them out in one row for dialogs and dense
1933
+ * forms.
1934
+ *
1935
+ * @experimental
1936
+ */
1937
+ type FileUploadVariant = "default" | "compact";
1938
+
1939
+ /**
1940
+ * Props of `FileUpload`.
1941
+ *
1942
+ * @experimental The W4-24 additions (`name`, `form`, `required`, `classNames`,
1943
+ * `variant`, `inputRef`) are experimental; the legacy props keep their contract.
1944
+ */
1636
1945
  interface FileUploadProps extends React.HTMLAttributes<HTMLDivElement> {
1637
1946
  accept?: string;
1638
1947
  maxSize?: number;
1639
1948
  multiple?: boolean;
1640
1949
  onFilesSelected?: (files: File[]) => void;
1641
1950
  disabled?: boolean;
1951
+ /**
1952
+ * The form field name. With it the owned `<input type="file">` submits the
1953
+ * selected or dropped files; a surrounding `Field` can supply it.
1954
+ */
1955
+ name?: string;
1956
+ /** `id` of the form to submit with when the dropzone is rendered outside it. */
1957
+ form?: string;
1958
+ /** Block native submission while no file is selected. */
1959
+ required?: boolean;
1960
+ /** `default` (stacked tile) or `compact` (one row). */
1961
+ variant?: FileUploadVariant;
1962
+ /**
1963
+ * One class per part, keyed by `FileUploadSlot` (ADR-008). `className`
1964
+ * keeps landing on the root; `dropzone` is the `<label>` that
1965
+ * `[&_label]` selectors reach for today (C-DOM-04), `input` the file
1966
+ * input, `error` the message.
1967
+ */
1968
+ classNames?: Partial<Record<Exclude<FileUploadSlot, "root">, string>>;
1969
+ /** A ref to the owned file input. */
1970
+ inputRef?: React.Ref<HTMLInputElement>;
1971
+ /** Overrides for the default dropzone copy (W5-20). @experimental */
1972
+ messages?: Partial<FileUploadMessages>;
1642
1973
  }
1643
- declare function FileUpload({ accept, maxSize, multiple, onFilesSelected, disabled, className, children, ...props }: FileUploadProps): react_jsx_runtime.JSX.Element;
1974
+ 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
1975
 
1976
+ /**
1977
+ * `FormError` / `FormSuccess` — the pre-Field inline messages (contract
1978
+ * C-FORM-MSG, replaced by the Field parts in W4-25, removed in 3.0).
1979
+ *
1980
+ * They are deliberately **not** thin adapters over `FieldError` and
1981
+ * `FieldDescription`: the Field parts stamp `data-slot="field-error"` /
1982
+ * `data-slot="field-description"`, always render a part `id` (a `useId`
1983
+ * fallback outside a `Field`), and `FieldError` renders nothing without
1984
+ * content and chooses its `role` from the mount timing — none of which
1985
+ * today's `<p role="alert"><svg/><span>…</span></p>` has. Rendering through
1986
+ * the parts would therefore change the DOM every consumer freezes (C-DOM
1987
+ * snapshots) for no visible gain, so the markup below stays byte for byte
1988
+ * until 3.0 and the replacement is a call-site migration:
1989
+ *
1990
+ * ```tsx
1991
+ * <Field invalid={!!error}>
1992
+ * <Label>Email</Label>
1993
+ * <Input />
1994
+ * <FieldError>{error}</FieldError>
1995
+ * </Field>
1996
+ * ```
1997
+ *
1998
+ * `FormSuccess` has no Field counterpart by design: a confirmation is a
1999
+ * `FieldDescription` (or a toast), not a field state.
2000
+ */
1645
2001
  interface FormErrorProps extends React.HTMLAttributes<HTMLParagraphElement> {
1646
2002
  children: React.ReactNode;
1647
2003
  }
1648
2004
  /**
1649
2005
  * Inline form error — paired below an input to communicate validation failure.
1650
2006
  * Uses architectural --color-danger-fg token.
2007
+ *
2008
+ * @deprecated Use `FieldError` inside a `Field` (W4-25, C-FORM-MSG): it wires
2009
+ * `aria-describedby` and `aria-invalid` on the control and announces itself
2010
+ * only after an interaction. Removed in 3.0.
1651
2011
  */
1652
2012
  declare function FormError({ children, className, ...props }: FormErrorProps): react_jsx_runtime.JSX.Element;
1653
2013
  interface FormSuccessProps extends React.HTMLAttributes<HTMLParagraphElement> {
@@ -1656,6 +2016,10 @@ interface FormSuccessProps extends React.HTMLAttributes<HTMLParagraphElement> {
1656
2016
  /**
1657
2017
  * Inline form success — paired below an input to confirm a saved value.
1658
2018
  * Uses architectural --color-success-fg token.
2019
+ *
2020
+ * @deprecated Use `FieldDescription` inside a `Field` for a per-field
2021
+ * confirmation, or a toast for a saved form (W4-25, C-FORM-MSG). Removed in
2022
+ * 3.0.
1659
2023
  */
1660
2024
  declare function FormSuccess({ children, className, ...props }: FormSuccessProps): react_jsx_runtime.JSX.Element;
1661
2025
 
@@ -1674,6 +2038,21 @@ declare function FormSuccess({ children, className, ...props }: FormSuccessProps
1674
2038
  * For marketing-style centered section heads, prefer `<SectionHeader>`.
1675
2039
  * For lower-level title+description blocks that aren't part of a form,
1676
2040
  * use `<SectionHead>` from `./section`.
2041
+ *
2042
+ * Contract C-FORM-MSG (W4-25): replaced by `Fieldset` + `FieldsetLegend`,
2043
+ * removed in 3.0. It is deliberately **not** an adapter over them: `Fieldset`
2044
+ * stamps `data-slot="fieldset"` and lays its children out as a
2045
+ * `flex-col gap-3` column, `FieldsetLegend` adds `mb-1.5` — both would move
2046
+ * the heading row and the fields this component renders today. The markup
2047
+ * below therefore stays byte for byte until 3.0; the replacement is a
2048
+ * call-site migration:
2049
+ *
2050
+ * ```tsx
2051
+ * <Fieldset>
2052
+ * <FieldsetLegend>Contact</FieldsetLegend>
2053
+ * <Field>…</Field>
2054
+ * </Fieldset>
2055
+ * ```
1677
2056
  */
1678
2057
  interface FormSectionProps extends Omit<React.FieldsetHTMLAttributes<HTMLFieldSetElement>, "title"> {
1679
2058
  /** The section heading (renders as `<legend>` text). */
@@ -1685,6 +2064,14 @@ interface FormSectionProps extends Omit<React.FieldsetHTMLAttributes<HTMLFieldSe
1685
2064
  /** Space between the heading block and the fields. Default `mt-4`. */
1686
2065
  headSpacing?: string;
1687
2066
  }
2067
+ /**
2068
+ * A grouped block of a settings/profile form: `<fieldset>` + `<legend>` with
2069
+ * an optional description and trailing action.
2070
+ *
2071
+ * @deprecated Use `Fieldset` with `FieldsetLegend` (W4-25, C-FORM-MSG); put
2072
+ * a description in a `Text` and each control in its own `Field`. Removed in
2073
+ * 3.0.
2074
+ */
1688
2075
  declare const FormSection: React$1.ForwardRefExoticComponent<FormSectionProps & React$1.RefAttributes<HTMLFieldSetElement>>;
1689
2076
 
1690
2077
  declare const HoverCard: React$1.FC<HoverCardPrimitive.HoverCardProps>;
@@ -1747,30 +2134,101 @@ interface IconTileVariantProps {
1747
2134
  * @deprecated Use `intent`. `pro` → `brand`; status values keep their name;
1748
2135
  * `audit` / `books` / `tax` stay here (no intent).
1749
2136
  */
1750
- tone?: IconTileTone | null;
1751
- size?: IconTileSize | null;
1752
- }
1753
- /** The IconTile class string. Accepts `intent` or the deprecated `tone`. */
1754
- declare function resolveIconTileVariants({ intent, tone, size }?: IconTileVariantProps): string;
1755
-
1756
- interface IconTileProps extends React.HTMLAttributes<HTMLDivElement>, IconTileVariantProps {
1757
- /** The icon (or any node) rendered centered inside the tile. */
1758
- icon: React.ReactNode;
1759
- /** Optional overlay pinned to the top-right corner, e.g. a count badge. */
1760
- badge?: React.ReactNode;
2137
+ tone?: IconTileTone | null;
2138
+ size?: IconTileSize | null;
2139
+ }
2140
+ /** The IconTile class string. Accepts `intent` or the deprecated `tone`. */
2141
+ declare function resolveIconTileVariants({ intent, tone, size }?: IconTileVariantProps): string;
2142
+
2143
+ interface IconTileProps extends React.HTMLAttributes<HTMLDivElement>, IconTileVariantProps {
2144
+ /** The icon (or any node) rendered centered inside the tile. */
2145
+ icon: React.ReactNode;
2146
+ /** Optional overlay pinned to the top-right corner, e.g. a count badge. */
2147
+ badge?: React.ReactNode;
2148
+ }
2149
+ declare const IconTile: React$1.ForwardRefExoticComponent<IconTileProps & React$1.RefAttributes<HTMLDivElement>>;
2150
+
2151
+ /**
2152
+ * The emphases an Input offers: the shared chrome's `default` (a
2153
+ * `--color-rule-strong` hairline) and `ghost` (no border and no background
2154
+ * until focused). Spelled out rather than aliased to the recipe's private
2155
+ * type so the public declaration names no unexported symbol; the
2156
+ * `satisfies` below keeps the two in step.
2157
+ *
2158
+ * @experimental
2159
+ */
2160
+ type InputVariant = "default" | "ghost";
2161
+ /**
2162
+ * The 1.31 aliases of `sm` / `md` / `lg` (C-INPUT-SIZE). No known consumer
2163
+ * uses them; they leave with `inputSize` in 3.0.
2164
+ *
2165
+ * @deprecated Use `size="sm"`, `"md"` or `"lg"`.
2166
+ * @experimental
2167
+ */
2168
+ type InputSizeAlias = "compact" | "default" | "comfortable";
2169
+ /**
2170
+ * The size names an Input knows (W4-05, ADR-013): the shared control scale
2171
+ * `xs · sm · md · lg · xl` (`ControlSize`) and the 1.31 aliases.
2172
+ *
2173
+ * `sm` and `md` are today's pixels *and* the scale's steps (32 / 36px), so
2174
+ * they read `--control-height-{sm,md}` and follow the density scope. `lg` is
2175
+ * the A1 mismatch recorded in `baselines/size-geometry.json` (44px where the
2176
+ * scale says 40): it keeps today's pixels through the D5-gated compat token
2177
+ * `--input-height-lg` until decision D5 (W2-05). `xs` and `xl` are new and
2178
+ * read the shared rows in full. Padding and text of the compat rows stay on
2179
+ * Tailwind's steps — nothing about them moves until D5.
2180
+ *
2181
+ * @experimental
2182
+ */
2183
+ type InputSize = ControlSize | InputSizeAlias;
2184
+ /**
2185
+ * What {@link inputVariants} takes: the emphasis, the size (either name — the
2186
+ * new `size` wins when both are given) and cva's class props.
2187
+ *
2188
+ * @experimental
2189
+ */
2190
+ interface InputVariantsOptions {
2191
+ variant?: InputVariant | null;
2192
+ size?: InputSize | null;
2193
+ /**
2194
+ * The legacy size prop (C-INPUT-SIZE): today's rows, byte for byte, so a
2195
+ * call that has not moved to `size` renders the classes it always did.
2196
+ *
2197
+ * @deprecated Use `size`. Codemod CM-07 renames it.
2198
+ */
2199
+ inputSize?: InputSize | null;
2200
+ class?: string | null;
2201
+ className?: string | null;
1761
2202
  }
1762
- declare const IconTile: React$1.ForwardRefExoticComponent<IconTileProps & React$1.RefAttributes<HTMLDivElement>>;
1763
-
2203
+ /** The variant props of `inputVariants` (cva's `VariantProps` shape, kept for the API report). */
2204
+ type InputVariants = Omit<InputVariantsOptions, "class" | "className">;
1764
2205
  /**
1765
- * Input variants. Mirrors the raw HTML `<input>` styled per the suite tokens
1766
- * (rule-strong border, surface bg, accent focus ring).
2206
+ * The Input class recipe (W4-05): the shared control chrome
2207
+ * (`behavior/control-chrome.ts` border, VN-5 focus edge + field halo,
2208
+ * `aria-invalid`, `disabled`, `ghost`) called with the emphasis and, for the
2209
+ * scale steps `xs` / `xl`, the shared size row; then the file-selector reset
2210
+ * and, for the compat sizes, Input's own row (see {@link InputSize}).
2211
+ *
2212
+ * Emits the same *set* of classes as the cva it replaces for every legacy
2213
+ * `variant` × `inputSize` (`src/primitives/__tests__/input-chrome-classes.test.tsx`
2214
+ * pins the set and the browser test pins the pixels); only the position of
2215
+ * the file reset moved, which Tailwind does not read. Server-safe.
2216
+ *
2217
+ * @experimental
2218
+ */
2219
+ declare function inputVariants({ variant, size, inputSize, class: classProp, className, }?: InputVariantsOptions): string;
2220
+ /**
2221
+ * Props of `Input` (W4-05; target architecture §24.3, §29.1).
2222
+ *
2223
+ * @experimental The name is exported since W4-05; the props it lists have been
2224
+ * stable since 1.x.
1767
2225
  */
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
2226
  interface InputProps$1 extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size">, InputVariants {
2227
+ /**
2228
+ * Sugar for the field label: renders the label above the control, bound
2229
+ * through the field wiring (`htmlFor`/`id`), exactly as
2230
+ * `<Field><Label>…</Label><Input/></Field>` binds it.
2231
+ */
1774
2232
  label?: string;
1775
2233
  /**
1776
2234
  * Render `label` inside the field instead of stacked above it: it rests like
@@ -1782,10 +2240,50 @@ interface InputProps$1 extends Omit<React.InputHTMLAttributes<HTMLInputElement>,
1782
2240
  * ("e.g. 555-0100") can still sit behind the label without competing with it.
1783
2241
  */
1784
2242
  floatingLabel?: boolean;
2243
+ /**
2244
+ * Sugar for the hint text under the control, referenced first in the
2245
+ * control's `aria-describedby` (before `error`).
2246
+ */
2247
+ description?: string;
2248
+ /**
2249
+ * Sugar for the error message: renders it under the control, linked through
2250
+ * `aria-describedby`, and marks the control invalid.
2251
+ */
1785
2252
  error?: string;
1786
- prefixIcon?: React.ReactNode;
1787
- suffixIcon?: React.ReactNode;
2253
+ /**
2254
+ * The value is invalid without a message to show: `aria-invalid`,
2255
+ * `data-invalid` and the chrome's invalid treatment. Implied by `error`.
2256
+ */
2257
+ invalid?: boolean;
2258
+ prefixIcon?: ReactNode;
2259
+ suffixIcon?: ReactNode;
2260
+ /**
2261
+ * Called with the new string value on every change, next to `onChange`
2262
+ * (which keeps receiving the event).
2263
+ */
2264
+ onValueChange?: (value: string) => void;
2265
+ /**
2266
+ * Classes per anatomy part (the `input-*` slots). The `<input>` is
2267
+ * the root part and takes `className` (C-INPUT-CLASSNAME), so it has no
2268
+ * entry here.
2269
+ */
2270
+ classNames?: Partial<Record<Exclude<InputSlot, "root">, string>>;
2271
+ /**
2272
+ * Classes for the outer wrapper around the control and its parts.
2273
+ * Transitional (C-INPUT-CLASSNAME): `className` keeps landing on the
2274
+ * `<input>` because 192 consumer overrides depend on it; this is the name
2275
+ * for the wrapper until `className` moves there in 3.0.
2276
+ */
2277
+ rootClassName?: string;
1788
2278
  }
2279
+ /**
2280
+ * A single-line text field (target architecture §24, §29). The control is a
2281
+ * native `<input>` and takes part in a form on its own. Inside a `Field` it
2282
+ * binds itself through `useFieldControl` — id, name, `aria-describedby`,
2283
+ * invalid / required / disabled come from the field; explicit props win. The
2284
+ * `label` / `description` / `error` sugar renders the same wiring around the
2285
+ * control for the call sites that never adopt the compound form.
2286
+ */
1789
2287
  declare const Input: React$1.ForwardRefExoticComponent<InputProps$1 & React$1.RefAttributes<HTMLInputElement>>;
1790
2288
 
1791
2289
  interface KeyboardShortcut {
@@ -1818,6 +2316,14 @@ declare const labelVariants: (props?: class_variance_authority_types.ClassProp |
1818
2316
  interface LabelProps extends React$1.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>, VariantProps<typeof labelVariants> {
1819
2317
  required?: boolean;
1820
2318
  }
2319
+ /**
2320
+ * The label of a form control. On its own, a `<label>` that names the
2321
+ * control `htmlFor` points to. Inside a `Field` (W4-01, target architecture
2322
+ * §24) it binds itself: `htmlFor` is the field's control id, `id` is the id a
2323
+ * non-native control references through `aria-labelledby`, `required` and
2324
+ * `optional` come from the field, and a click focuses a control that
2325
+ * `htmlFor` cannot reach (a `div` editor). Explicit props win.
2326
+ */
1821
2327
  declare const Label: React$1.ForwardRefExoticComponent<LabelProps & React$1.RefAttributes<HTMLLabelElement>>;
1822
2328
 
1823
2329
  interface LinkButtonProps$1 extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, "href">, ButtonIconProps {
@@ -1845,7 +2351,7 @@ interface LinkButtonProps$1 extends Omit<React.AnchorHTMLAttributes<HTMLAnchorEl
1845
2351
  children: React.ReactNode;
1846
2352
  className?: string;
1847
2353
  /**
1848
- * Render a native `<a>` instead of `next/link`. Use for:
2354
+ * Render a native `<a>` instead of the router link. Use for:
1849
2355
  * - cross-origin URLs (e.g. https://other-app.example/sign-in)
1850
2356
  * - same-origin `/api/*` route handlers that 302-redirect off-app
1851
2357
  * (next/link tries to client-route, which doesn't follow the 302)
@@ -1871,7 +2377,10 @@ interface LinkButtonProps$1 extends Omit<React.AnchorHTMLAttributes<HTMLAnchorEl
1871
2377
  * Shares `buttonVariants` so styling stays in lock-step: the same `variant`
1872
2378
  * + `intent` axes and the same legacy aliases (W3-02).
1873
2379
  *
1874
- * - Default: renders `next/link` (client-routed internal navigation).
2380
+ * - Default: renders the provider's `linkComponent` (W5-21, ADR-010) when a
2381
+ * `DesignSystemProvider` supplies one, else `next/link` (client-routed
2382
+ * internal navigation). The static `next/link` import stays until 2.0
2383
+ * (C-NEXT-PEER), so a Next.js app without a provider is unchanged.
1875
2384
  * - `external`: renders a native `<a>` so the browser handles the request
1876
2385
  * end-to-end. Required for cross-origin URLs and same-origin `/api/*`
1877
2386
  * handlers that 302 off-app.
@@ -1918,6 +2427,11 @@ declare const LoadingRows: React$1.ForwardRefExoticComponent<LoadingRowsProps &
1918
2427
  * - `productName` (the suffix text; `null` renders just "Assure")
1919
2428
  * - `className`, `iconClassName`, `textClassName` (style overrides)
1920
2429
  *
2430
+ * The link and the wordmark image are the provider's `linkComponent` /
2431
+ * `imageComponent` when a `DesignSystemProvider` supplies them (W5-21,
2432
+ * ADR-010), else `next/link` / `next/image`; the static imports stay until 2.0
2433
+ * (C-NEXT-PEER), so a Next.js app without a provider is unchanged.
2434
+ *
1921
2435
  * By default the lockup is a link (`href="/"`). Pass `href={null}` to render a
1922
2436
  * non-interactive `<span>` wrapper instead — required when embedding the lockup
1923
2437
  * inside another interactive element (a menu trigger `<button>`, a
@@ -2044,27 +2558,99 @@ declare namespace MultiSelectField {
2044
2558
  var displayName: string;
2045
2559
  }
2046
2560
 
2561
+ /**
2562
+ * Props of `NumberInput`. Everything a text `<input>` takes except the
2563
+ * value-shaped attributes the component owns (`value`, `defaultValue`,
2564
+ * `onChange`, `type`, `min`, `max`, `step`, `size`).
2565
+ *
2566
+ * @experimental
2567
+ */
2568
+ interface NumberInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "value" | "defaultValue" | "onChange" | "type" | "min" | "max" | "step" | "size"> {
2569
+ /** The controlled value; `null` is an empty field. */
2570
+ value?: number | null;
2571
+ /** The initial value while uncontrolled. */
2572
+ defaultValue?: number | null;
2573
+ /** Called with the new value on every change; `null` when the field is emptied. */
2574
+ onValueChange?: (value: number | null) => void;
2575
+ /**
2576
+ * The BCP 47 locale the value is formatted and parsed in: this prop, else
2577
+ * `DesignSystemProvider locale`, else `"en-US"` on the server and the client
2578
+ * alike (A3) — never `navigator.language`.
2579
+ */
2580
+ locale?: string;
2581
+ /** `Intl.NumberFormat` options: fraction digits, `style: "currency"`, `style: "percent"`, … */
2582
+ formatOptions?: Intl.NumberFormatOptions;
2583
+ /** The lowest committed value; ArrowDown and Home stop here. */
2584
+ min?: number;
2585
+ /** The highest committed value; ArrowUp and End stop here. */
2586
+ max?: number;
2587
+ /** The increment of the arrow keys. Default `1`. */
2588
+ step?: number;
2589
+ /** The control scale (`--control-*-<size>`). Default `md`. */
2590
+ size?: ControlSize;
2591
+ /**
2592
+ * `default` draws the field border; `ghost` draws none until focused. The
2593
+ * words are `ControlChromeVariant` (`behavior/control-chrome.ts`), spelled
2594
+ * out so the public declaration names no unexported type.
2595
+ */
2596
+ variant?: "default" | "ghost";
2597
+ /** Marks the control invalid (`aria-invalid`, danger chrome); a surrounding `Field` can set it too. */
2598
+ invalid?: boolean;
2599
+ /** One class per part, keyed by `NumberInputSlot`. `root` is the `<input>`, the element `className` lands on too. */
2600
+ classNames?: Partial<Record<NumberInputSlot, string>>;
2601
+ }
2602
+ /**
2603
+ * The design-system number field: a locale-formatted `number | null` that
2604
+ * submits its canonical value and reads as a spinbutton.
2605
+ *
2606
+ * @experimental
2607
+ */
2608
+ declare const NumberInput: React$1.ForwardRefExoticComponent<NumberInputProps & React$1.RefAttributes<HTMLInputElement>>;
2609
+
2610
+ /**
2611
+ * Props of `OTPInput`.
2612
+ *
2613
+ * @experimental The Field / form additions of W4-23 (`onValueChange`,
2614
+ * `required`, `form`, `invalid`, an optional `name`) are experimental; the
2615
+ * legacy props keep their contract.
2616
+ */
2047
2617
  interface OTPInputProps {
2048
- name: string;
2618
+ /** The form field name. Optional since W4-23: a surrounding `Field` can supply it. */
2619
+ name?: string;
2049
2620
  length?: number;
2050
2621
  error?: string;
2622
+ /**
2623
+ * Move focus into the code on mount. Opt-in: only for a screen whose one
2624
+ * purpose is the code (step-up auth, post-redirect verification), never in
2625
+ * a form with other fields. Documented in the `AutoFocus` story.
2626
+ */
2051
2627
  autoFocus?: boolean;
2052
2628
  className?: string;
2053
2629
  defaultValue?: string;
2054
2630
  /** Optional controlled value (additive). */
2055
2631
  value?: string;
2056
- /** Optional controlled onChange (additive). */
2632
+ /** Optional controlled onChange (additive). Fires with the same string as `onValueChange`. */
2057
2633
  onChange?: (value: string) => void;
2634
+ /** Called with the new code on every change (ADR-006 spelling). */
2635
+ onValueChange?: (value: string) => void;
2058
2636
  /** Optional callback fired when all slots are filled (additive). */
2059
2637
  onComplete?: (value: string) => void;
2060
2638
  /** Optional id for the underlying input (additive). */
2061
2639
  id?: string;
2062
2640
  /** Optional disabled flag (additive). */
2063
2641
  disabled?: boolean;
2064
- /** Accessible label for the underlying one-time-code input. */
2642
+ /** Block native submission while the code is empty. */
2643
+ required?: boolean;
2644
+ /** `id` of the form to submit with when the input is rendered outside it. */
2645
+ form?: string;
2646
+ /** Marks the input invalid without a message of its own; `error` and a `Field` can set it too. */
2647
+ invalid?: boolean;
2648
+ /** Accessible label for the underlying one-time-code input. A `Field` label takes precedence. */
2065
2649
  "aria-label"?: string;
2650
+ "aria-labelledby"?: string;
2651
+ "aria-describedby"?: string;
2066
2652
  }
2067
- declare function OTPInput({ name, length, error, autoFocus, className, defaultValue, value, onChange, onComplete, id, disabled, "aria-label": ariaLabel, }: OTPInputProps): react_jsx_runtime.JSX.Element;
2653
+ 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
2654
  declare namespace OTPInput {
2069
2655
  var displayName: string;
2070
2656
  }
@@ -2142,14 +2728,6 @@ interface PdfPreviewProps extends React.HTMLAttributes<HTMLDivElement>, VariantP
2142
2728
  }
2143
2729
  declare const PdfPreview: React$1.ForwardRefExoticComponent<PdfPreviewProps & React$1.RefAttributes<HTMLDivElement>>;
2144
2730
 
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
2731
  interface CountryCode {
2154
2732
  iso: string;
2155
2733
  name: string;
@@ -2171,14 +2749,108 @@ declare function parsePhoneForEditing(phone: string): {
2171
2749
  localPhone: string;
2172
2750
  };
2173
2751
 
2752
+ /**
2753
+ * Every string the phone field renders, so a consumer can localise it until
2754
+ * the messages contract of the provider lands (W5-20, ADR-010).
2755
+ * Deterministic English defaults (A3).
2756
+ *
2757
+ * @experimental
2758
+ */
2759
+ interface PhoneFieldMessages {
2760
+ /** The accessible name of the country combobox. */
2761
+ country: string;
2762
+ /** The placeholder of the country combobox while its list is open. */
2763
+ searchCountries: string;
2764
+ /** The empty state when the query matches no country. */
2765
+ noCountries: string;
2766
+ }
2767
+ declare const DEFAULT_PHONE_FIELD_MESSAGES: PhoneFieldMessages;
2768
+ /** What `onValueChange` is told besides the E.164 value. @experimental */
2769
+ interface PhoneFieldChangeDetails {
2770
+ /** The ISO 3166-1 alpha-2 code of the picked country. */
2771
+ country: string;
2772
+ /** The national digits as typed, without the dial code. */
2773
+ nationalNumber: string;
2774
+ }
2775
+ /**
2776
+ * Props of `PhoneField`. Everything a `tel` `<input>` takes except the
2777
+ * value-shaped attributes the component owns.
2778
+ *
2779
+ * @experimental
2780
+ */
2781
+ interface PhoneFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "value" | "defaultValue" | "onChange" | "type" | "size"> {
2782
+ /** The controlled E.164 value; `null` (or `""`) is an empty field. */
2783
+ value?: string | null;
2784
+ /** The initial E.164 value while uncontrolled. */
2785
+ defaultValue?: string | null;
2786
+ /** Called with the E.164 value on every change; `null` when the number is emptied. */
2787
+ onValueChange?: (value: string | null, details: PhoneFieldChangeDetails) => void;
2788
+ /**
2789
+ * The controlled country (ISO 3166-1 alpha-2). Without `onCountryChange`
2790
+ * the country is fixed and the picker is not rendered.
2791
+ */
2792
+ country?: string;
2793
+ /** The initial country while uncontrolled. Default `"US"`. */
2794
+ defaultCountry?: string;
2795
+ onCountryChange?: (country: string) => void;
2796
+ /** The countries offered. Default: every entry of `COUNTRY_CODES`. */
2797
+ countries?: readonly CountryCode[];
2798
+ /** The control scale (`--control-*-<size>`). Default `md`. */
2799
+ size?: ControlSize;
2800
+ /**
2801
+ * `default` draws the field border; `ghost` draws none until focused. The
2802
+ * words are `ControlChromeVariant` (`behavior/control-chrome.ts`).
2803
+ */
2804
+ variant?: "default" | "ghost";
2805
+ /** Marks the control invalid (`aria-invalid`, danger chrome); a surrounding `Field` can set it too. */
2806
+ invalid?: boolean;
2807
+ messages?: Partial<PhoneFieldMessages>;
2808
+ /** One class per part, keyed by `PhoneFieldSlot`. `root` is the row, the element `className` lands on too. */
2809
+ classNames?: Partial<Record<PhoneFieldSlot, string>>;
2810
+ }
2811
+ /**
2812
+ * The design-system phone field: a country picker beside a national number,
2813
+ * one E.164 value.
2814
+ *
2815
+ * @experimental
2816
+ */
2817
+ declare const PhoneField: React$1.ForwardRefExoticComponent<PhoneFieldProps & React$1.RefAttributes<HTMLInputElement>>;
2818
+
2819
+ type InputProps = React.ComponentProps<typeof Input>;
2820
+ interface PhoneInputProps extends Omit<InputProps, "type" | "onChange" | "value" | "defaultValue"> {
2821
+ value?: string;
2822
+ defaultValue?: string;
2823
+ onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
2824
+ }
2825
+ /**
2826
+ * @deprecated Use `PhoneField` (`country="US"` for the fixed-country mode;
2827
+ * `value` is E.164). Removed in 3.0.
2828
+ */
2829
+ declare const PhoneInput: React$1.ForwardRefExoticComponent<Omit<PhoneInputProps, "ref"> & React$1.RefAttributes<HTMLInputElement>>;
2830
+
2831
+ /**
2832
+ * The legacy flag: the same 20×14 box and ISO fallback as before, drawn from
2833
+ * `PhoneField`'s lazily loaded flag set (a same-size placeholder until it
2834
+ * lands).
2835
+ *
2836
+ * @deprecated Use `PhoneField`'s `CountryFlag`. Removed in 3.0.
2837
+ */
2174
2838
  declare function CountryFlag({ iso }: {
2175
2839
  iso: string;
2176
2840
  }): react_jsx_runtime.JSX.Element;
2841
+ /**
2842
+ * @deprecated Use `PhoneField` (its country picker is a `Combobox`). Removed
2843
+ * in 3.0.
2844
+ */
2177
2845
  declare function CountrySelect({ value, onChange, disabled, }: {
2178
2846
  value: string;
2179
2847
  onChange: (iso: string) => void;
2180
2848
  disabled?: boolean;
2181
2849
  }): react_jsx_runtime.JSX.Element;
2850
+ /**
2851
+ * @deprecated Use `PhoneField`: one E.164 `value` / `onValueChange`, Field
2852
+ * binding and form submission built in. Removed in 3.0.
2853
+ */
2182
2854
  declare function PhoneCountryInput({ countryIso, localPhone, onCountryChange, onPhoneChange, placeholder, error, disabled, id, }: {
2183
2855
  countryIso: string;
2184
2856
  localPhone: string;
@@ -2365,10 +3037,27 @@ interface ProgressRingProps extends React.HTMLAttributes<HTMLDivElement>, Progre
2365
3037
  }
2366
3038
  declare const ProgressRing: React$1.ForwardRefExoticComponent<ProgressRingProps & React$1.RefAttributes<HTMLDivElement>>;
2367
3039
 
2368
- declare const RadioGroup: React$1.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
3040
+ /** How the items render: the bare radio (`plain`, default) or a selectable card. */
3041
+ type RadioGroupAppearance = "plain" | "card";
3042
+ interface RadioGroupProps extends React$1.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root> {
3043
+ /** `card` renders each item as a bordered, clickable card with its label and description. */
3044
+ appearance?: RadioGroupAppearance;
3045
+ /**
3046
+ * The group is in error: `aria-invalid` and `data-invalid` on the group
3047
+ * and `aria-invalid` on every item. Implied by the surrounding `Field`'s
3048
+ * `invalid` or a mounted `FieldError`.
3049
+ */
3050
+ invalid?: boolean;
3051
+ }
3052
+ declare const RadioGroup: React$1.ForwardRefExoticComponent<RadioGroupProps & React$1.RefAttributes<HTMLDivElement>>;
2369
3053
  interface RadioGroupItemProps extends React$1.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item> {
2370
3054
  /** Optional inline label rendered to the right of the radio */
2371
3055
  label?: string;
3056
+ /**
3057
+ * Secondary text under the label, referenced by the radio through
3058
+ * `aria-describedby`. Rendered only with `appearance="card"` on the group.
3059
+ */
3060
+ description?: React$1.ReactNode;
2372
3061
  }
2373
3062
  declare const RadioGroupItem: React$1.ForwardRefExoticComponent<RadioGroupItemProps & React$1.RefAttributes<HTMLButtonElement>>;
2374
3063
 
@@ -2399,7 +3088,7 @@ interface RankedBarsProps extends React.HTMLAttributes<HTMLUListElement> {
2399
3088
  }
2400
3089
  declare const RankedBars: React$1.ForwardRefExoticComponent<RankedBarsProps & React$1.RefAttributes<HTMLUListElement>>;
2401
3090
 
2402
- type SheetSide = "top" | "right" | "bottom" | "left";
3091
+ type SheetSide$1 = "top" | "right" | "bottom" | "left";
2403
3092
  type DialogSize = "sm" | "md" | "lg" | "full";
2404
3093
  interface ResponsiveDialogProps {
2405
3094
  /** Controlled open state. */
@@ -2420,7 +3109,7 @@ interface ResponsiveDialogProps {
2420
3109
  /** Class applied to the rendered Sheet/Dialog content surface. */
2421
3110
  className?: string;
2422
3111
  /** Sheet side on mobile. Default `"bottom"`. */
2423
- side?: SheetSide;
3112
+ side?: SheetSide$1;
2424
3113
  /** Desktop Dialog max-width preset. Default `"md"`. */
2425
3114
  size?: DialogSize;
2426
3115
  }
@@ -2459,18 +3148,78 @@ interface ScrollAreaProps extends React$1.ComponentPropsWithoutRef<typeof Scroll
2459
3148
  declare const ScrollArea: React$1.ForwardRefExoticComponent<ScrollAreaProps & React$1.RefAttributes<HTMLDivElement>>;
2460
3149
  declare const ScrollBar: React$1.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaScrollbarProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2461
3150
 
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>;
3151
+ /**
3152
+ * The size names a SearchInput knows (W4-07): the three steps Input's compat
3153
+ * rows cover, plus the 1.31 aliases (deprecated with `inputSize`).
3154
+ *
3155
+ * @experimental
3156
+ */
3157
+ type SearchInputSize = Extract<ControlSize, "sm" | "md" | "lg"> | InputSizeAlias;
3158
+
3159
+ /**
3160
+ * What {@link searchInputVariants} takes: the size (either name — `size`
3161
+ * wins when both are given) and cva's class props.
3162
+ *
3163
+ * @experimental
3164
+ */
3165
+ interface SearchInputVariantsOptions {
3166
+ size?: SearchInputSize | null;
3167
+ /**
3168
+ * The legacy size prop (C-INPUT-SIZE): today's rows, byte for byte.
3169
+ *
3170
+ * @deprecated Use `size`. Codemod CM-07 renames it.
3171
+ */
3172
+ inputSize?: SearchInputSize | null;
3173
+ class?: string | null;
3174
+ className?: string | null;
3175
+ }
3176
+ /** The variant props of `searchInputVariants` (cva's `VariantProps` shape, kept for the API report). */
3177
+ type SearchInputVariants = Omit<SearchInputVariantsOptions, "class" | "className">;
3178
+ /**
3179
+ * The SearchInput class recipe (W4-07): the shared control chrome
3180
+ * (`behavior/control-chrome.ts`) in its `default` emphasis and no height
3181
+ * row, the native search-decoration reset, then the row of the size.
3182
+ *
3183
+ * Against the cva it replaces (W4-03 mapping, PR #199) the set of classes
3184
+ * gains the chrome's `aria-[invalid=true]` rows — inert until a caller sets
3185
+ * `aria-invalid` — and is otherwise identical for every legacy `inputSize`;
3186
+ * `border-rule-strong` moved after the base, which Tailwind does not read.
3187
+ * Server-safe.
3188
+ *
3189
+ * @experimental
3190
+ */
3191
+ declare function searchInputVariants({ size, inputSize, class: classProp, className, }?: SearchInputVariantsOptions): string;
3192
+ /**
3193
+ * Props of `SearchInput` (W4-07).
3194
+ *
3195
+ * @experimental The name is exported since W4-07; the props it lists have been
3196
+ * stable since 1.x.
3197
+ */
2466
3198
  interface SearchInputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, "type" | "onChange" | "size">, SearchInputVariants {
3199
+ /** The current query (controlled). */
2467
3200
  value: string;
3201
+ /** Called with the new query on every keystroke and with `""` when cleared or the form resets. */
2468
3202
  onValueChange: (value: string) => void;
3203
+ /** Called with the query once it has been stable for `debounceMs`. */
2469
3204
  onSearch?: (value: string) => void;
3205
+ /** Default 300. */
2470
3206
  debounceMs?: number;
3207
+ /** Overrides of the copy the component renders (English defaults). */
3208
+ messages?: Partial<SearchInputMessages>;
3209
+ /**
3210
+ * Classes per anatomy part (the `search-input-*` slots). The wrapper
3211
+ * is the root part and takes `className`, so it has no entry here.
3212
+ */
3213
+ classNames?: Partial<Record<Exclude<SearchInputSlot, "root">, string>>;
2471
3214
  }
3215
+ /**
3216
+ * A search field. The control is a native `<input type="search">`
3217
+ * (`role="searchbox"`); name it with `aria-label`, or through a `Field`,
3218
+ * which it binds to with `useFieldControl`.
3219
+ */
2472
3220
  declare const SearchInput: React$1.ForwardRefExoticComponent<SearchInputProps & React$1.RefAttributes<HTMLInputElement>>;
2473
3221
 
3222
+ /** @deprecated Use `Combobox` with `Option` (`{ value, label }`). Removed in 3.0 (C-SEARCHSELECT, CM-08). */
2474
3223
  interface SearchSelectOption {
2475
3224
  id: string;
2476
3225
  label: string;
@@ -2504,6 +3253,7 @@ interface SearchSelectOption {
2504
3253
  */
2505
3254
  description?: string;
2506
3255
  }
3256
+ /** @deprecated Use `ComboboxProps`. Removed in 3.0 (C-SEARCHSELECT, CM-08). */
2507
3257
  interface SearchSelectProps {
2508
3258
  options: SearchSelectOption[];
2509
3259
  /**
@@ -2566,8 +3316,22 @@ interface SearchSelectProps {
2566
3316
  * reads as a tag instead of running into the label. Single-mode only.
2567
3317
  */
2568
3318
  descriptionVariant?: "inline" | "pill";
3319
+ /** The accessible name (W4-12). Without it, `placeholder` names the input as before. */
3320
+ "aria-label"?: string;
3321
+ /** Names the input from another element, for example a visible label (W4-12). */
3322
+ "aria-labelledby"?: string;
3323
+ "aria-describedby"?: string;
3324
+ /** The input's id, so a `<label htmlFor>` can point at it (W4-12). */
3325
+ id?: string;
2569
3326
  }
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;
3327
+ /**
3328
+ * @deprecated Use `Combobox` (single: `value` / `onValueChange` with `null` for
3329
+ * empty; multi: `multiple` with `TValue[]`) and the `Option` shape
3330
+ * (`{ value, label }`). `SearchSelect` is an adapter over it and is removed in
3331
+ * 3.0 (compatibility registry C-SEARCHSELECT); codemod CM-08 rewrites call
3332
+ * sites and flags the ones a human must look at.
3333
+ */
3334
+ declare function SearchSelect({ options, selected: selectedProp, onSelect: onSelectProp, onRemove: onRemoveProp, value, onValueChange, onCreate, placeholder, className, disabled, groupFilter, pinnedGroups, closeOnSelect: closeOnSelectProp, showGroupCounts, onCreateNew, createNewLabel, descriptionVariant, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, id, }: SearchSelectProps): react_jsx_runtime.JSX.Element;
2571
3335
  declare namespace SearchSelect {
2572
3336
  var displayName: string;
2573
3337
  }
@@ -2645,10 +3409,53 @@ declare const SegmentedProgress: React$1.ForwardRefExoticComponent<SegmentedProg
2645
3409
  declare const SelectRoot: React$1.FC<SelectPrimitive.SelectProps>;
2646
3410
  declare const SelectGroup: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React$1.RefAttributes<HTMLDivElement>>;
2647
3411
  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>>;
3412
+ /**
3413
+ * The Select sizes: the shared control scale, nothing else (A1, ADR-013).
3414
+ *
3415
+ * @experimental
3416
+ */
3417
+ type SelectSize = ControlSize;
3418
+ /**
3419
+ * The parts a `classNames` entry can reach on the options-driven `Select`,
3420
+ * keyed by the anatomy (ADR-008 decision 4). `value` is a span of ours
3421
+ * around Radix's value (Radix's own span drops `className`), rendered only
3422
+ * when `classNames.value` or `clearable` asks for it, so a legacy call keeps
3423
+ * the `SelectTrigger > span` structure C-DOM-10 freezes.
3424
+ *
3425
+ * @experimental
3426
+ */
3427
+ type SelectClassNames = Partial<Record<SelectSlot, string>>;
3428
+
3429
+ /**
3430
+ * Props of `SelectTrigger`: Radix's trigger props plus the control-scale
3431
+ * `size` and a class for the chevron.
3432
+ *
3433
+ * @experimental `size` and `classNames`
3434
+ */
3435
+ interface SelectTriggerProps extends React$1.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> {
3436
+ /**
3437
+ * Height, horizontal padding, label size, gap and glyph size from the shared
3438
+ * control scale (A1). Omitted, the trigger keeps its legacy geometry (36px,
3439
+ * the same pixels as `md`).
3440
+ */
3441
+ size?: SelectSize | null;
3442
+ /** Classes for the parts the trigger renders itself: the chevron `icon`. */
3443
+ classNames?: Pick<SelectClassNames, "icon">;
3444
+ }
3445
+ declare const SelectTrigger: React$1.ForwardRefExoticComponent<SelectTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
2649
3446
  declare const SelectScrollUpButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2650
3447
  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>>;
3448
+ /**
3449
+ * Props of `SelectContent`: Radix's content props plus a class for the
3450
+ * viewport (C-DOM-19's `[data-radix-select-viewport]` selector replacement).
3451
+ *
3452
+ * @experimental `classNames`
3453
+ */
3454
+ interface SelectContentProps extends React$1.ComponentPropsWithoutRef<typeof SelectPrimitive.Content> {
3455
+ /** Classes for the parts the content renders itself: the scrolling `viewport`. */
3456
+ classNames?: Pick<SelectClassNames, "viewport">;
3457
+ }
3458
+ declare const SelectContent: React$1.ForwardRefExoticComponent<SelectContentProps & React$1.RefAttributes<HTMLDivElement>>;
2652
3459
  declare const SelectLabel: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2653
3460
  declare const SelectItem: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2654
3461
  declare const SelectSeparator: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
@@ -2665,26 +3472,104 @@ interface SelectOption {
2665
3472
  interface SelectProps {
2666
3473
  /** Option list. Required to preserve legacy API. */
2667
3474
  options: SelectOption[];
2668
- /** Controlled value. */
2669
- value?: string;
2670
- /** Uncontrolled initial value. */
2671
- defaultValue?: string;
3475
+ /**
3476
+ * Controlled value. `null` is "nothing selected" (target architecture §32);
3477
+ * `""` means the same and stays accepted through 2.x (C-SELECT-EMPTY).
3478
+ */
3479
+ value?: string | null;
3480
+ /** Uncontrolled initial value; restored on form reset. `null` = nothing selected. */
3481
+ defaultValue?: string | null;
3482
+ /**
3483
+ * Called with the picked option's value, and with `""` when the selection
3484
+ * is cleared (`clearable`) — the signature every existing handler already
3485
+ * has. Reporting `null` is a 3.0 change (C-SELECT-EMPTY).
3486
+ */
2672
3487
  onValueChange?: (value: string) => void;
2673
3488
  placeholder?: string;
2674
- /** Accepted for back-compat. NO-OP — see file header for migration. */
3489
+ /**
3490
+ * @deprecated NO-OP: Radix Select cannot filter. Use `Combobox` (or
3491
+ * `SearchSelect`) for filterable selection. Warns once in development;
3492
+ * removed in 2.0 (C-SELECT-DEAD, codemod CM-11).
3493
+ */
2675
3494
  searchable?: boolean;
2676
3495
  disabled?: boolean;
3496
+ /**
3497
+ * Submit the value under this name through the form the trigger sits in
3498
+ * (or `form`). Inside a `<Field name>` the field's name applies.
3499
+ */
2677
3500
  name?: string;
3501
+ /**
3502
+ * Block native submission while nothing is selected; the trigger carries
3503
+ * `aria-required`. Inside a `<Field required>` the field's flag applies.
3504
+ */
2678
3505
  required?: boolean;
3506
+ /**
3507
+ * The `id` of the form to submit with when the trigger is rendered outside
3508
+ * it — inside a portalled Dialog or Sheet (ADR-006).
3509
+ *
3510
+ * @experimental
3511
+ */
3512
+ form?: string;
3513
+ /**
3514
+ * The trigger's `id`; inside a `<Field>` the field's control id applies.
3515
+ *
3516
+ * @experimental
3517
+ */
3518
+ id?: string;
3519
+ /**
3520
+ * The control scale (A1, ADR-013): `xs` 28 · `sm` 32 · `md` 36 · `lg` 40 ·
3521
+ * `xl` 48. Omitted, the trigger keeps its legacy 36px row; a `<Field size>`
3522
+ * supplies it.
3523
+ *
3524
+ * @experimental
3525
+ */
3526
+ size?: SelectSize;
3527
+ /**
3528
+ * Show a clear button beside the chevron while a value is selected. Clearing
3529
+ * reports `""` through `onValueChange` and focuses the trigger. Renders the
3530
+ * `root` part (`data-slot="select"`) around the trigger — `className` lands
3531
+ * on that wrapper then, `classNames.trigger` on the trigger.
3532
+ *
3533
+ * @experimental
3534
+ */
3535
+ clearable?: boolean;
3536
+ /**
3537
+ * The outermost element's class: the trigger, or the `root` wrapper when
3538
+ * `clearable`.
3539
+ */
2679
3540
  className?: string;
2680
- /** Forwarded to the trigger. */
3541
+ /**
3542
+ * One class per part (ADR-008 decision 4): `trigger`, `value`, `icon`
3543
+ * (chevron), `content`, `viewport`, `item`, `clear`, `root`. Each part's
3544
+ * class comes after the design system's own and before `className`.
3545
+ * `value` wraps Radix's value span in one of ours (see `SelectClassNames`).
3546
+ *
3547
+ * @experimental
3548
+ */
3549
+ classNames?: SelectClassNames;
3550
+ /** Overrides of the copy the select renders (English defaults until W5-20). */
3551
+ messages?: Partial<SelectMessages>;
3552
+ /**
3553
+ * @deprecated Use `classNames.trigger` (C-CLASSNAME-PROPS, codemod CM-11).
3554
+ * Removed in 3.0.
3555
+ */
2681
3556
  triggerClassName?: string;
2682
- /** Forwarded to the content. */
3557
+ /**
3558
+ * @deprecated Use `classNames.content` (C-CLASSNAME-PROPS, codemod CM-11).
3559
+ * Removed in 3.0.
3560
+ */
2683
3561
  contentClassName?: string;
2684
- /** aria-invalid + danger styling on trigger. */
3562
+ /** aria-invalid + danger styling on trigger. Inside a `<Field invalid>` the field's flag applies. */
2685
3563
  "aria-invalid"?: boolean;
2686
- /** aria-label fallback when there is no visible label. */
3564
+ /**
3565
+ * aria-label fallback when there is no visible label. Inside a `<Field>`
3566
+ * with a `Label` the trigger is named by the label instead.
3567
+ */
2687
3568
  "aria-label"?: string;
3569
+ /** Explicit `aria-labelledby`; wins over the surrounding `Field`. */
3570
+ "aria-labelledby"?: string;
3571
+ /** Explicit `aria-describedby`; appended after the field's description and error. */
3572
+ "aria-describedby"?: string;
2688
3573
  }
2689
3574
  /**
2690
3575
  * Convenience `Select` — preserved options-driven API.
@@ -2700,15 +3585,48 @@ interface SelectProps {
2700
3585
  * </SelectContent>
2701
3586
  * </SelectRoot>
2702
3587
  */
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;
3588
+ declare function Select({ options, value: valueProp, defaultValue: defaultValueProp, onValueChange, placeholder, 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
3589
  declare namespace Select {
2705
3590
  var displayName: string;
2706
3591
  }
2707
3592
 
2708
3593
  declare const Separator: React$1.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2709
3594
 
2710
- type Side = "top" | "right" | "bottom" | "left";
2711
- type SheetWidth = "default" | "sm" | "md" | "lg" | "xl" | "full";
3595
+ /**
3596
+ * The edge a `Sheet` slides in from.
3597
+ *
3598
+ * @experimental
3599
+ */
3600
+ type SheetSide = "top" | "right" | "bottom" | "left";
3601
+ type Side = SheetSide;
3602
+ /**
3603
+ * Width of a left/right `SheetContent`, as a step of the sheet width scale
3604
+ * (W5-07): `sm` 420px · `md` 520px · `lg` 640px · `xl` 760px from the `sm`
3605
+ * breakpoint (95vw below it) · `full` the viewport. Omitted, the panel keeps
3606
+ * its 1.x geometry (`w-3/4 max-w-sm`). Every step and the default yield to
3607
+ * `--ds-sheet-width` when a consumer sets it. Top/bottom sheets span the
3608
+ * viewport and ignore it.
3609
+ *
3610
+ * @experimental
3611
+ */
3612
+ type SheetSize = "sm" | "md" | "lg" | "xl" | "full";
3613
+ /**
3614
+ * What the deprecated `width` prop accepts: the size steps plus `default`.
3615
+ *
3616
+ * @deprecated Use `size` (C-SHEET-WIDTH, codemod CM-11). Removed in 3.0.
3617
+ * @experimental
3618
+ */
3619
+ type SheetWidth = "default" | SheetSize;
3620
+ /**
3621
+ * The copy a `Sheet` renders (target architecture §24.5). English defaults
3622
+ * until the messages contract of the provider lands (W5-20).
3623
+ *
3624
+ * @experimental
3625
+ */
3626
+ interface SheetMessages {
3627
+ /** The accessible name of the built-in close button. Default `"Close"`. */
3628
+ close: string;
3629
+ }
2712
3630
  interface SheetProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Root> {
2713
3631
  /**
2714
3632
  * Default side for SheetContent if it doesn't specify its own.
@@ -2725,31 +3643,72 @@ declare const SheetTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.Di
2725
3643
  declare const SheetClose: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>>;
2726
3644
  declare const SheetPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
2727
3645
  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> {
3646
+ /**
3647
+ * Props of `SheetContent`: Radix's content props plus the side, the sizing
3648
+ * and the dismiss options.
3649
+ *
3650
+ * @experimental
3651
+ */
3652
+ interface SheetContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {
3653
+ /** The edge the panel slides in from. Default `right` (or the `Sheet` root's `side`). */
3654
+ side?: SheetSide | null;
3655
+ /**
3656
+ * Width step for left/right sheets. Omit for the 1.x geometry
3657
+ * (`w-3/4 max-w-sm`). See {@link SheetSize}.
3658
+ */
3659
+ size?: SheetSize;
2732
3660
  /** If false, the built-in close button is hidden. Default: true. */
2733
3661
  showCloseButton?: boolean;
2734
3662
  /**
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.
3663
+ * The accessible name of the built-in close button. Takes precedence over
3664
+ * `messages.close`. Default `"Close"`.
3665
+ */
3666
+ closeLabel?: string;
3667
+ /** Overrides of the copy the sheet renders (English defaults until W5-20). */
3668
+ messages?: Partial<SheetMessages>;
3669
+ /**
3670
+ * Width preset for left/right sheets — the same steps as `size`, plus
3671
+ * `default`. When both are given `size` wins.
3672
+ *
3673
+ * @deprecated Use `size` (C-SHEET-WIDTH, codemod CM-11). Removed in 3.0.
2737
3674
  */
2738
3675
  width?: SheetWidth;
2739
3676
  /**
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.
3677
+ * Custom CSS width for left/right sheets, e.g. `"520px"`, rendered as an
3678
+ * inline `width` with `max-width: 95vw`.
3679
+ *
3680
+ * @deprecated Set the `--ds-sheet-width` custom property instead
3681
+ * (C-SHEET-WIDTH, codemod CM-11). Removed in 3.0.
2743
3682
  */
2744
3683
  customWidth?: string;
2745
3684
  }
2746
- declare const SheetContent: React$1.ForwardRefExoticComponent<SheetContentProps & React$1.RefAttributes<HTMLDivElement>>;
2747
- declare const SheetHeader: {
2748
- ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
2749
- displayName: string;
2750
- };
3685
+ declare const SheetContent: React$1.ForwardRefExoticComponent<SheetContentProps & React$1.RefAttributes<HTMLDivElement>>;
3686
+ declare const SheetHeader: {
3687
+ (props: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
3688
+ displayName: string;
3689
+ };
3690
+ /**
3691
+ * Props of `SheetBody` (W5-07).
3692
+ *
3693
+ * @experimental
3694
+ */
3695
+ interface SheetBodyProps extends React$1.HTMLAttributes<HTMLDivElement> {
3696
+ /**
3697
+ * Horizontal padding, matching the header's and footer's `p-6` at `md`
3698
+ * (the default). The panel's own `gap-4` spaces the parts vertically.
3699
+ */
3700
+ padding?: "none" | "sm" | "md" | "lg";
3701
+ }
3702
+ /**
3703
+ * The scroll region of a sheet between `SheetHeader` and `SheetFooter`
3704
+ * (W5-07): takes the remaining height of the panel and scrolls on its own,
3705
+ * so the header and the footer stay in place.
3706
+ *
3707
+ * @experimental
3708
+ */
3709
+ declare const SheetBody: React$1.ForwardRefExoticComponent<SheetBodyProps & React$1.RefAttributes<HTMLDivElement>>;
2751
3710
  declare const SheetFooter: {
2752
- ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
3711
+ (props: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
2753
3712
  displayName: string;
2754
3713
  };
2755
3714
  declare const SheetTitle: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
@@ -2808,11 +3767,42 @@ interface SkeletonCircleProps extends React.HTMLAttributes<HTMLDivElement> {
2808
3767
  }
2809
3768
  declare const SkeletonCircle: React$1.ForwardRefExoticComponent<SkeletonCircleProps & React$1.RefAttributes<HTMLDivElement>>;
2810
3769
 
3770
+ /**
3771
+ * Slider — a Radix slider with the design system's track and thumb (W4-16,
3772
+ * plan §16.1).
3773
+ *
3774
+ * **Form participation** is Radix's own (ADR-006 §1): the thumb is paired
3775
+ * with a hidden native input carrying `name` (`name[]` for a range), the
3776
+ * current value, `disabled` and `form`, so `FormData` holds the number as a
3777
+ * string. Radix Slider does not follow a form `reset`; the wrapper does
3778
+ * (`useFormReset`), restoring `defaultValue`.
3779
+ *
3780
+ * **Field binding** through `useFieldControl`: inside a `Field` the thumb
3781
+ * (the focusable `role="slider"`) references the `Label` through
3782
+ * `aria-labelledby` and the description / error through `aria-describedby`;
3783
+ * `name`, `disabled` and `invalid` come from the field. Explicit props win.
3784
+ * Outside a field the thumb is named by `aria-label`, the `label` sugar, or
3785
+ * "Slider value".
3786
+ *
3787
+ * **Sizes** (`size`, own geometry per plan §2.1): `md` (default) is today's
3788
+ * 6px track and 16px thumb; `sm` and `lg` read the control scale's glyph
3789
+ * tokens for the thumb (`--control-icon-sm` 14px, `--control-icon-xl` 20px)
3790
+ * with a 4px / 8px track.
3791
+ */
3792
+ /** The slider sizes: the component's own geometry, `md` is today's. */
3793
+ type SliderSize = Extract<ControlSize, "sm" | "md" | "lg">;
2811
3794
  interface SliderProps extends React$1.ComponentPropsWithoutRef<typeof SliderPrimitive.Root> {
2812
- /** Optional inline label rendered above the track */
3795
+ /** Optional inline label rendered above the track. Names the thumb. */
2813
3796
  label?: string;
2814
3797
  /** When true, renders the current value to the right of the label */
2815
3798
  showValue?: boolean;
3799
+ /** Track and thumb geometry. Default `md` (today's 6px track, 16px thumb). */
3800
+ size?: SliderSize;
3801
+ /**
3802
+ * The slider is in error: `aria-invalid` on the thumb and `data-invalid`
3803
+ * on the root. Implied by the surrounding `Field`'s `invalid`.
3804
+ */
3805
+ invalid?: boolean;
2816
3806
  }
2817
3807
  declare const Slider: React$1.ForwardRefExoticComponent<SliderProps & React$1.RefAttributes<HTMLSpanElement>>;
2818
3808
 
@@ -3258,8 +4248,18 @@ declare const SuiteProgress: React$1.ForwardRefExoticComponent<SuiteProgressProp
3258
4248
  declare const switchVariants: (props?: ({
3259
4249
  size?: "sm" | "md" | null | undefined;
3260
4250
  } & class_variance_authority_types.ClassProp) | undefined) => string;
4251
+ /** The switch sizes: the component's own geometry (`sm` 20×36, `md` 24×44). */
4252
+ type SwitchSize = NonNullable<VariantProps<typeof switchVariants>["size"]>;
3261
4253
  interface SwitchProps extends Omit<React$1.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root>, "size">, VariantProps<typeof switchVariants> {
4254
+ /** Optional inline label rendered to the right of the track. Names the button through `htmlFor`. */
3262
4255
  label?: string;
4256
+ /** The value submitted with `name` while on. Default `"on"`, like a native checkbox. */
4257
+ value?: string;
4258
+ /**
4259
+ * The switch is in error: `aria-invalid` and `data-invalid`. Implied by the
4260
+ * surrounding `Field`'s `invalid` or a mounted `FieldError`.
4261
+ */
4262
+ invalid?: boolean;
3263
4263
  }
3264
4264
  declare const Switch: React$1.ForwardRefExoticComponent<SwitchProps & React$1.RefAttributes<HTMLButtonElement>>;
3265
4265
 
@@ -3311,17 +4311,95 @@ declare namespace TeamMemberSelect {
3311
4311
  var displayName: string;
3312
4312
  }
3313
4313
 
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>;
4314
+ /**
4315
+ * The emphases a Textarea offers: the shared chrome's `default` and `ghost`
4316
+ * (spelled out, as on Input, so the public declaration names no unexported
4317
+ * symbol; the `satisfies` keeps it in step with the recipe).
4318
+ *
4319
+ * @experimental
4320
+ */
4321
+ type TextareaVariant = "default" | "ghost";
4322
+ /**
4323
+ * The size names a Textarea knows (W4-06): the three steps that have a
4324
+ * `--textarea-min-height-<size>` token (64 / 80 / 96px). A textarea grows
4325
+ * with its content, so `size` is a *minimum* height, not the outer height
4326
+ * the shared scale promises (`baselines/size-geometry.json` keeps Textarea
4327
+ * out of A1 on purpose). Padding and text stay on today's steps until D5.
4328
+ *
4329
+ * @experimental
4330
+ */
4331
+ type TextareaSize = Extract<ControlSize, "sm" | "md" | "lg">;
4332
+ /**
4333
+ * What {@link textareaVariants} takes: the emphasis, the size (either name —
4334
+ * `size` wins when both are given) and cva's class props.
4335
+ *
4336
+ * @experimental
4337
+ */
4338
+ interface TextareaVariantsOptions {
4339
+ variant?: TextareaVariant | null;
4340
+ size?: TextareaSize | null;
4341
+ /**
4342
+ * The legacy size prop (C-INPUT-SIZE): today's rows, byte for byte.
4343
+ *
4344
+ * @deprecated Use `size`. Codemod CM-07 renames it.
4345
+ */
4346
+ inputSize?: TextareaSize | null;
4347
+ class?: string | null;
4348
+ className?: string | null;
4349
+ }
4350
+ /** The variant props of `textareaVariants` (cva's `VariantProps` shape, kept for the API report). */
4351
+ type TextareaVariants = Omit<TextareaVariantsOptions, "class" | "className">;
4352
+ /**
4353
+ * The Textarea class recipe (W4-06): the shared control chrome
4354
+ * (`behavior/control-chrome.ts`) with the emphasis and no height row, then
4355
+ * the `min-height` row of the size.
4356
+ *
4357
+ * Against the cva it replaces the set of classes differs in one place, on
4358
+ * purpose (W4-03 mapping, PR #199): the motion string is the shared
4359
+ * `microInteractions.control` — same transitioned properties, the feedback
4360
+ * duration token (the same 150ms `--duration-fast` was) and the `enter`
4361
+ * easing where the copy declared none. `tests/browser/textarea-parity.test.tsx`
4362
+ * holds every other computed property equal under each host fixture.
4363
+ * Server-safe.
4364
+ *
4365
+ * @experimental
4366
+ */
4367
+ declare function textareaVariants({ variant, size, inputSize, class: classProp, className, }?: TextareaVariantsOptions): string;
4368
+ /**
4369
+ * Props of `Textarea` (W4-06).
4370
+ *
4371
+ * @experimental The name is exported since W4-06; the props it lists have been
4372
+ * stable since 1.x.
4373
+ */
3319
4374
  interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, "size">, TextareaVariants {
4375
+ /** Sugar for the field label, bound through the field wiring (`htmlFor`/`id`). */
3320
4376
  label?: string;
4377
+ /** Sugar for the hint text under the control, referenced before `error` in `aria-describedby`. */
4378
+ description?: string;
4379
+ /** Sugar for the error message: linked through `aria-describedby`, marks the control invalid. */
3321
4380
  error?: string;
4381
+ /** The value is invalid without a message to show. Implied by `error`. */
4382
+ invalid?: boolean;
4383
+ /** Show `<length>/<maxLength>` under the control. Needs `maxLength`. */
3322
4384
  showCount?: boolean;
4385
+ /** Grow with the content instead of scrolling. */
3323
4386
  autoResize?: boolean;
4387
+ /** Called with the new string value on every change, next to `onChange`. */
4388
+ onValueChange?: (value: string) => void;
4389
+ /**
4390
+ * Classes per anatomy part (the `textarea-*` slots). The `<textarea>`
4391
+ * is the root part and takes `className` (C-INPUT-CLASSNAME), so it has no
4392
+ * entry here.
4393
+ */
4394
+ classNames?: Partial<Record<Exclude<TextareaSlot, "root">, string>>;
4395
+ /** Classes for the outer wrapper (transitional, C-INPUT-CLASSNAME — see `Input`). */
4396
+ rootClassName?: string;
3324
4397
  }
4398
+ /**
4399
+ * A multi-line text field. The control is a native `<textarea>`; inside a
4400
+ * `Field` it binds itself through `useFieldControl`, and the
4401
+ * `label` / `description` / `error` sugar renders the same wiring around it.
4402
+ */
3325
4403
  declare const Textarea: React$1.ForwardRefExoticComponent<TextareaProps & React$1.RefAttributes<HTMLTextAreaElement>>;
3326
4404
 
3327
4405
  type ToastVariant = "default" | "success" | "destructive" | "warning" | "info" | "loading";
@@ -3373,8 +4451,34 @@ declare function ToastProvider({ children }: ToastProviderProps): react_jsx_runt
3373
4451
  declare const itemVariants: (props?: ({
3374
4452
  variant?: "outline" | "default" | null | undefined;
3375
4453
  } & 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>>;
4454
+ /** The toggle-group sizes: the shared control scale (A1). */
4455
+ type ToggleGroupSize = ControlSize;
4456
+ /** The item's look: bare (`default`) or with a border (`outline`). */
4457
+ type ToggleGroupVariant = NonNullable<VariantProps<typeof itemVariants>["variant"]>;
4458
+ type RadixRootProps = React$1.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root>;
4459
+ /** The props every group shares, whatever its `type`. */
4460
+ interface ToggleGroupFormProps extends VariantProps<typeof itemVariants> {
4461
+ /** Outer height from the shared control scale (A1). Omitted: today's geometry. */
4462
+ size?: ToggleGroupSize;
4463
+ /** The form field name. Without it the group does not take part in a form. */
4464
+ name?: string;
4465
+ /** `id` of the form to submit with when the group is rendered outside it. */
4466
+ form?: string;
4467
+ /** Block native submission while nothing is pressed. */
4468
+ required?: boolean;
4469
+ /**
4470
+ * The group is in error: `aria-invalid` and `data-invalid`. Implied by the
4471
+ * surrounding `Field`'s `invalid` or a mounted `FieldError`.
4472
+ */
4473
+ invalid?: boolean;
4474
+ /**
4475
+ * Single groups only: submit `name=""` while nothing is pressed (`true`,
4476
+ * the default and what a Select does) or omit the entry (`false`).
4477
+ */
4478
+ submitEmpty?: boolean;
4479
+ }
4480
+ type ToggleGroupProps = RadixRootProps & ToggleGroupFormProps;
4481
+ declare const ToggleGroup: React$1.ForwardRefExoticComponent<ToggleGroupProps & React$1.RefAttributes<HTMLDivElement>>;
3378
4482
  interface ToggleGroupItemProps extends React$1.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item>, VariantProps<typeof itemVariants> {
3379
4483
  }
3380
4484
  declare const ToggleGroupItem: React$1.ForwardRefExoticComponent<ToggleGroupItemProps & React$1.RefAttributes<HTMLButtonElement>>;
@@ -4007,6 +5111,440 @@ declare function resolveChipStyle({ variant, intent, pressed, }: {
4007
5111
  */
4008
5112
  declare const Chip: React$1.ForwardRefExoticComponent<ChipProps & React$1.RefAttributes<HTMLElement>>;
4009
5113
 
5114
+ /**
5115
+ * How a `Field` lays out its parts: stacked (`vertical`, the default) or on
5116
+ * one row (`horizontal`: settings rows, Switch and Checkbox rows).
5117
+ *
5118
+ * @experimental
5119
+ */
5120
+ type FieldOrientation = "vertical" | "horizontal";
5121
+
5122
+ /**
5123
+ * Props of `Field`.
5124
+ *
5125
+ * @experimental
5126
+ */
5127
+ interface FieldProps extends HTMLAttributes<HTMLDivElement> {
5128
+ /**
5129
+ * The control's id and the base of every part id (`<id>-label`,
5130
+ * `<id>-description`, `<id>-error`). Generated with `useId` when omitted.
5131
+ */
5132
+ id?: string;
5133
+ /** The control's `name`, when the control does not set its own. */
5134
+ name?: string;
5135
+ /**
5136
+ * The field is in error: the control gets `aria-invalid` and
5137
+ * `data-invalid`. Implied by a mounted `FieldError` with content.
5138
+ */
5139
+ invalid?: boolean;
5140
+ /**
5141
+ * The value is required: a native control gets `required`, any other
5142
+ * `aria-required`; the `Label` shows the asterisk.
5143
+ */
5144
+ required?: boolean;
5145
+ /** The value is optional: the `Label` shows the `optional` message after the text. */
5146
+ optional?: boolean;
5147
+ /** Propagated to the control. */
5148
+ disabled?: boolean;
5149
+ /** Propagated to the control. */
5150
+ readOnly?: boolean;
5151
+ /** Stacked (`vertical`, default) or on one row (`horizontal`). */
5152
+ orientation?: FieldOrientation;
5153
+ /** The control size the field's controls read (from W4-05). */
5154
+ size?: ControlSize;
5155
+ /** Overrides of the copy the field renders (English defaults until W5-20). */
5156
+ messages?: Partial<FieldMessages>;
5157
+ children?: ReactNode;
5158
+ }
5159
+ /**
5160
+ * One form control with its label, description and error (target
5161
+ * architecture §24.1). Renders a `div` with the field anatomy and puts the
5162
+ * wiring in context.
5163
+ *
5164
+ * @experimental
5165
+ */
5166
+ declare const Field: React$1.ForwardRefExoticComponent<FieldProps & React$1.RefAttributes<HTMLDivElement>>;
5167
+ /**
5168
+ * Props of `FieldDescription`.
5169
+ *
5170
+ * @experimental
5171
+ */
5172
+ type FieldDescriptionProps = HTMLAttributes<HTMLParagraphElement>;
5173
+ /**
5174
+ * Hint text for the field's control, referenced first in the control's
5175
+ * `aria-describedby`. Registers itself, so an unmounted description is not
5176
+ * referenced.
5177
+ *
5178
+ * @experimental
5179
+ */
5180
+ declare const FieldDescription: React$1.ForwardRefExoticComponent<FieldDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>>;
5181
+ /**
5182
+ * Props of `FieldError`.
5183
+ *
5184
+ * @experimental
5185
+ */
5186
+ type FieldErrorProps = HTMLAttributes<HTMLParagraphElement>;
5187
+ /**
5188
+ * The field's error message, referenced after the description in the
5189
+ * control's `aria-describedby`; a mounted error with content also makes the
5190
+ * field invalid. Renders nothing (and registers nothing) without content, so
5191
+ * `<FieldError>{error}</FieldError>` is the whole call site.
5192
+ *
5193
+ * Announcement (target architecture §24.1): an error that appears after the
5194
+ * field is on screen — after an interaction — is a `role="alert"` live
5195
+ * region, announced once when it mounts and again when its text changes. An
5196
+ * error rendered with the field (server-rendered validation results, the
5197
+ * first client paint) is plain text: it is read with the control through
5198
+ * `aria-describedby`, not shouted on page load. Pass `role` to override.
5199
+ *
5200
+ * @experimental
5201
+ */
5202
+ declare const FieldError: React$1.ForwardRefExoticComponent<FieldErrorProps & React$1.RefAttributes<HTMLParagraphElement>>;
5203
+
5204
+ /**
5205
+ * L1b (W2-19 scaffolding, public since W4-02). The integration contract of
5206
+ * target architecture §24.2: a control asks for its wiring and never knows
5207
+ * about labels. Explicit props always win over the surrounding `Field`, and a
5208
+ * control outside a field keeps working.
5209
+ *
5210
+ * Every design-system form control calls this hook (from W4-05 on). It is
5211
+ * public for product-built controls — a rich-text editor, an annotation
5212
+ * editor — that want the same binding; `FieldControl` is the same contract as
5213
+ * a Slot for a control that is already a component.
5214
+ */
5215
+ /**
5216
+ * What a control tells `useFieldControl`. Every prop is optional: inside a
5217
+ * `Field` the context supplies the rest, outside one the hook generates an id
5218
+ * and adds nothing else.
5219
+ *
5220
+ * @experimental
5221
+ */
5222
+ interface UseFieldControlProps {
5223
+ id?: string | undefined;
5224
+ name?: string | undefined;
5225
+ invalid?: boolean | undefined;
5226
+ required?: boolean | undefined;
5227
+ disabled?: boolean | undefined;
5228
+ readOnly?: boolean | undefined;
5229
+ "aria-labelledby"?: string | undefined;
5230
+ "aria-describedby"?: string | undefined;
5231
+ /**
5232
+ * `false` for a control that cannot be the target of `htmlFor` — a Radix
5233
+ * trigger, a checkbox button, a slider thumb. Those are named with
5234
+ * `aria-labelledby` and cannot carry the native `required` attribute.
5235
+ * Default `true` (`input`, `textarea`, `select`).
5236
+ */
5237
+ native?: boolean | undefined;
5238
+ }
5239
+ /**
5240
+ * The wiring `useFieldControl` returns. Spread it onto the control's element
5241
+ * (`<input {...wiring} />`); merge `ref` with your own through a ref callback
5242
+ * when you keep one.
5243
+ *
5244
+ * @experimental
5245
+ */
5246
+ interface FieldControlWiring {
5247
+ id: string;
5248
+ name: string | undefined;
5249
+ "aria-labelledby": string | undefined;
5250
+ "aria-describedby": string | undefined;
5251
+ "aria-invalid": true | undefined;
5252
+ "aria-required": true | undefined;
5253
+ required: true | undefined;
5254
+ disabled: boolean | undefined;
5255
+ readOnly: boolean | undefined;
5256
+ /** State attributes per ADR-008: present when true, absent otherwise. */
5257
+ "data-invalid": "" | undefined;
5258
+ "data-disabled": "" | undefined;
5259
+ /**
5260
+ * Attach to the control's element. In development the hook checks, once the
5261
+ * element is in the document, that it has an accessible name, and prints an
5262
+ * error (once per control) when it has none. Nothing in production.
5263
+ */
5264
+ ref: RefCallback<HTMLElement>;
5265
+ }
5266
+ /**
5267
+ * The wiring of one form control: `id`, `name`, ARIA references to the
5268
+ * mounted `Field` parts (description before error), invalid / required /
5269
+ * disabled / readOnly and the matching state attributes.
5270
+ *
5271
+ * Merge order: an explicit prop wins over the field; `aria-describedby` is
5272
+ * merged (field ids first, then the prop). Outside a `Field` only the
5273
+ * explicit props and a generated id remain.
5274
+ *
5275
+ * @experimental
5276
+ */
5277
+ declare function useFieldControl(props?: UseFieldControlProps): FieldControlWiring;
5278
+
5279
+ /**
5280
+ * Props of `FieldControl`.
5281
+ *
5282
+ * @experimental
5283
+ */
5284
+ interface FieldControlProps extends Pick<UseFieldControlProps, "native"> {
5285
+ /** Exactly one element. Its own `id`, `aria-*` and state props win over the field. */
5286
+ children: ReactElement;
5287
+ }
5288
+ /**
5289
+ * Injects the field's wiring into its only child (see `useFieldControl`).
5290
+ *
5291
+ * `native` defaults to whether the child is an intrinsic `input`, `select`
5292
+ * or `textarea`. A native child receives the full wiring, including `name`,
5293
+ * `required`, `disabled` and `readOnly`. Any other child receives the id,
5294
+ * the ARIA references and states (`aria-labelledby`, `aria-describedby`,
5295
+ * `aria-invalid`, `aria-required`, `aria-disabled`, `aria-readonly`) and the
5296
+ * `data-invalid` / `data-disabled` attributes, and reads `disabled` itself
5297
+ * through `useFieldControl` when it needs the prop.
5298
+ *
5299
+ * @experimental
5300
+ */
5301
+ declare function FieldControl({ children, native }: FieldControlProps): ReactElement;
5302
+
5303
+ /**
5304
+ * Props of `Fieldset`.
5305
+ *
5306
+ * @experimental
5307
+ */
5308
+ interface FieldsetProps extends FieldsetHTMLAttributes<HTMLFieldSetElement> {
5309
+ /** The group is in error; `data-invalid` for styling. Each field carries its own `aria-invalid`. */
5310
+ invalid?: boolean;
5311
+ }
5312
+ /**
5313
+ * A group of fields under one legend. No visual chrome: the browser's
5314
+ * fieldset border and padding are reset.
5315
+ *
5316
+ * @experimental
5317
+ */
5318
+ declare const Fieldset: React$1.ForwardRefExoticComponent<FieldsetProps & React$1.RefAttributes<HTMLFieldSetElement>>;
5319
+ /**
5320
+ * Props of `FieldsetLegend`.
5321
+ *
5322
+ * @experimental
5323
+ */
5324
+ type FieldsetLegendProps = HTMLAttributes<HTMLLegendElement>;
5325
+ /**
5326
+ * The group's name. Must be the first child of `Fieldset` for the browser to
5327
+ * treat it as the legend. Inside a `Fieldset` it carries the id a grouped
5328
+ * control references through `aria-labelledby`; an explicit `id` wins.
5329
+ *
5330
+ * @experimental
5331
+ */
5332
+ declare const FieldsetLegend: React$1.ForwardRefExoticComponent<FieldsetLegendProps & React$1.RefAttributes<HTMLLegendElement>>;
5333
+
5334
+ /**
5335
+ * L1a behaviour primitive (private). Not exported from the package.
5336
+ *
5337
+ * The canonical option model of every list-shaped control (W4-09; target
5338
+ * architecture §32): `Select`, the coming `Combobox` (W4-10) and its
5339
+ * `MultiSelect` preset (W4-11), the `SearchSelect` adapter (W4-12) and the
5340
+ * `PeoplePicker` pattern all read one shape, in place of the six that ship
5341
+ * today (`{value,label}`, `{id,label,group…}`, `{id,label,email}`,
5342
+ * `{id,fullName}`, `{key,label,dot}`, `string[]`).
5343
+ *
5344
+ * Two halves:
5345
+ *
5346
+ * - {@link Option} and its accessors: what a row *is*. Consumers with domain
5347
+ * objects pass {@link OptionAccessors} (`getOptionValue`/`getOptionLabel`)
5348
+ * instead of remapping, and {@link toOptions} normalises everything — a
5349
+ * `string[]`, domain objects, `Option`s — into one array the list renders.
5350
+ * - The selection helpers: what a control's *value* is, discriminated by
5351
+ * `multiple` (single `TValue | null`, multi `TValue[]`; §32 "Value"). `""`
5352
+ * keeps meaning empty in 2.x (§32 "Compat"), so {@link normalizeSingleValue}
5353
+ * folds it to `null` at the boundary.
5354
+ *
5355
+ * No React, no client directive, no DOM: plain functions over plain data, so
5356
+ * the same module serves a Server Component, a test and the keyboard helper.
5357
+ */
5358
+ /**
5359
+ * One row of a list-shaped control.
5360
+ *
5361
+ * `value` is never `""`: emptiness is `value === null` on the control, not a
5362
+ * sentinel row (§32). `label` is the string typeahead, filtering and the
5363
+ * accessible name read; `description` and `icon` are rendered, never searched.
5364
+ * `keywords` widen the match without showing. `meta` carries consumer data
5365
+ * through to `renderOption` / `onValueChange` details untouched.
5366
+ *
5367
+ * @experimental
5368
+ */
5369
+ interface Option<TValue extends string = string, TMeta = unknown> {
5370
+ value: TValue;
5371
+ label: string;
5372
+ description?: ReactNode;
5373
+ /** Leading visual: icon, avatar, flag, colour swatch. */
5374
+ icon?: ReactNode;
5375
+ disabled?: boolean;
5376
+ group?: string;
5377
+ keywords?: readonly string[];
5378
+ meta?: TMeta;
5379
+ }
5380
+ /**
5381
+ * How a list reads a consumer's own item type. Only `getOptionValue` and
5382
+ * `getOptionLabel` are required: an item with no `disabled`/`group`/`keywords`
5383
+ * accessor is enabled, ungrouped and matched on its label alone.
5384
+ *
5385
+ * @experimental
5386
+ */
5387
+ interface OptionAccessors<TItem, TValue extends string = string> {
5388
+ getOptionValue: (item: TItem) => TValue;
5389
+ getOptionLabel: (item: TItem) => string;
5390
+ getOptionDisabled?: (item: TItem) => boolean;
5391
+ getOptionGroup?: (item: TItem) => string | undefined;
5392
+ getOptionKeywords?: (item: TItem) => readonly string[] | undefined;
5393
+ }
5394
+
5395
+ /** The English defaults (the `combobox` namespace of the catalogue). */
5396
+ declare const DEFAULT_COMBOBOX_MESSAGES: ComboboxMessages;
5397
+ /** The sizes a combobox offers: the shared control scale (A1). @experimental */
5398
+ type ComboboxSize = ControlSize;
5399
+ /** What `renderOption` is told about the row it renders. @experimental */
5400
+ interface ComboboxOptionState {
5401
+ selected: boolean;
5402
+ highlighted: boolean;
5403
+ disabled: boolean;
5404
+ }
5405
+ /**
5406
+ * Class overrides per part, for the consumer who must restyle one slot
5407
+ * without reaching into the DOM.
5408
+ *
5409
+ * @experimental
5410
+ */
5411
+ interface ComboboxClassNames {
5412
+ root?: string;
5413
+ control?: string;
5414
+ input?: string;
5415
+ chip?: string;
5416
+ content?: string;
5417
+ list?: string;
5418
+ item?: string;
5419
+ }
5420
+ /** @experimental */
5421
+ interface ComboboxBaseProps<TItem, TValue extends string> extends Partial<OptionAccessors<TItem, TValue>> {
5422
+ /** The rows: `Option`s, strings, or domain objects read through the accessors. */
5423
+ options: readonly TItem[];
5424
+ id?: string;
5425
+ /** The form field name. Without it nothing is submitted. */
5426
+ name?: string;
5427
+ /** The `id` of the form to submit with when the control is rendered outside it. */
5428
+ form?: string;
5429
+ required?: boolean;
5430
+ disabled?: boolean;
5431
+ readOnly?: boolean;
5432
+ invalid?: boolean;
5433
+ /** The accessible name of a combobox outside a `Field`. */
5434
+ "aria-label"?: string;
5435
+ "aria-labelledby"?: string;
5436
+ "aria-describedby"?: string;
5437
+ placeholder?: string;
5438
+ /** Outer height from the shared control scale. Default `md` (36px). */
5439
+ size?: ComboboxSize;
5440
+ /** A leading glyph inside the control, decorative. */
5441
+ icon?: ReactNode;
5442
+ /** Show a clear button while a value is set. Default `true`. */
5443
+ clearable?: boolean;
5444
+ /** Open the list when the input receives focus. Default `false`. */
5445
+ openOnFocus?: boolean;
5446
+ /** Whether the list surface flips to stay in the viewport. Default `true`. */
5447
+ avoidCollisions?: boolean;
5448
+ open?: boolean;
5449
+ defaultOpen?: boolean;
5450
+ onOpenChange?: (open: boolean) => void;
5451
+ /** The typed query (controlled). */
5452
+ search?: string;
5453
+ defaultSearch?: string;
5454
+ /** Called with every query the user types (an async source fetches here). */
5455
+ onSearchChange?: (query: string) => void;
5456
+ /**
5457
+ * Filter `options` by the query (`true`, the default). `false` when the
5458
+ * consumer filters — the options are already the answer to the query.
5459
+ */
5460
+ shouldFilter?: boolean;
5461
+ /** An async source is fetching: a spinner in the control, `loadingState` in the list. */
5462
+ loading?: boolean;
5463
+ emptyState?: ReactNode;
5464
+ loadingState?: ReactNode;
5465
+ /** Rendered above the list, inside the popover. */
5466
+ header?: ReactNode;
5467
+ /** Rendered below the list, inside the popover. */
5468
+ footer?: ReactNode;
5469
+ /** Offer a "Create …" row for a query that matches no option exactly. */
5470
+ onCreate?: (query: string) => void;
5471
+ /** Replaces the content of a row. */
5472
+ renderOption?: (option: Option<TValue, unknown>, state: ComboboxOptionState) => ReactNode;
5473
+ messages?: Partial<ComboboxMessages>;
5474
+ className?: string;
5475
+ classNames?: ComboboxClassNames;
5476
+ /** The input element. */
5477
+ ref?: React$1.Ref<HTMLInputElement>;
5478
+ }
5479
+ /** @experimental */
5480
+ interface ComboboxSingleProps<TItem, TValue extends string> extends ComboboxBaseProps<TItem, TValue> {
5481
+ multiple?: false;
5482
+ /** The picked value, or `null`. `""` means empty (2.x compat). */
5483
+ value?: TValue | "" | null;
5484
+ defaultValue?: TValue | "" | null;
5485
+ onValueChange?: (value: TValue | null, details: {
5486
+ option: Option<TValue, unknown> | null;
5487
+ }) => void;
5488
+ /** Replaces the closed control's text for the picked option. */
5489
+ renderValue?: (option: Option<TValue, unknown>) => ReactNode;
5490
+ /** Close the list after a pick. Default `true`. */
5491
+ closeOnSelect?: boolean;
5492
+ }
5493
+ /** What `renderValue` receives in `multiple` mode besides the picked options. @experimental */
5494
+ interface ComboboxSelectionControls<TValue extends string> {
5495
+ /** Removes one value from the selection. */
5496
+ remove: (value: TValue) => void;
5497
+ }
5498
+ /** @experimental */
5499
+ interface ComboboxMultipleProps<TItem, TValue extends string> extends ComboboxBaseProps<TItem, TValue> {
5500
+ multiple: true;
5501
+ /** The picked values, in pick order. Empty strings are dropped. */
5502
+ value?: readonly (TValue | "")[];
5503
+ defaultValue?: readonly (TValue | "")[];
5504
+ onValueChange?: (value: TValue[], details: {
5505
+ option: Option<TValue, unknown> | null;
5506
+ }) => void;
5507
+ /**
5508
+ * Replaces the chips inside the control: called with the picked options
5509
+ * and `remove`. Return `null` to render nothing there.
5510
+ */
5511
+ renderValue?: (options: Option<TValue, unknown>[], controls: ComboboxSelectionControls<TValue>) => ReactNode;
5512
+ /** Close the list after a pick. Default `false`: keep picking. */
5513
+ closeOnSelect?: boolean;
5514
+ /** Drop picked rows from the list (the chips already show them). Default `false`. */
5515
+ hideSelected?: boolean;
5516
+ }
5517
+ /**
5518
+ * The props, discriminated by `multiple` (target architecture §32 "Value"):
5519
+ * a single pick is `TValue | null`, a multi pick is `TValue[]`.
5520
+ *
5521
+ * @experimental
5522
+ */
5523
+ type ComboboxProps<TItem = Option, TValue extends string = string> = ComboboxSingleProps<TItem, TValue> | ComboboxMultipleProps<TItem, TValue>;
5524
+ /**
5525
+ * The searchable pick: one input, a portalled listbox, the option model.
5526
+ * See the module comment.
5527
+ *
5528
+ * @experimental
5529
+ */
5530
+ declare function Combobox<TItem = Option, TValue extends string = string>(props: ComboboxProps<TItem, TValue>): react_jsx_runtime.JSX.Element;
5531
+ declare namespace Combobox {
5532
+ var displayName: string;
5533
+ }
5534
+
5535
+ /** @experimental */
5536
+ type MultiSelectProps<TItem = Option, TValue extends string = string> = Omit<ComboboxMultipleProps<TItem, TValue>, "multiple">;
5537
+ /**
5538
+ * `Combobox multiple`: values as `TValue[]`, chips inside the control, one
5539
+ * form entry per value.
5540
+ *
5541
+ * @experimental
5542
+ */
5543
+ declare function MultiSelect<TItem = Option, TValue extends string = string>(props: MultiSelectProps<TItem, TValue>): react_jsx_runtime.JSX.Element;
5544
+ declare namespace MultiSelect {
5545
+ var displayName: string;
5546
+ }
5547
+
4010
5548
  /**
4011
5549
  * AgreementViewer — the chrome + navigation shell for a multi-step, branded
4012
5550
  * agreement / proposal (the "Signed Agreement Viewer"). It owns the header,
@@ -7288,4 +8826,78 @@ interface BrandScopeProps extends React.HTMLAttributes<HTMLDivElement> {
7288
8826
  */
7289
8827
  declare const BrandScope: React$1.ForwardRefExoticComponent<BrandScopeProps & React$1.RefAttributes<HTMLDivElement>>;
7290
8828
 
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 };
8829
+ /**
8830
+ * Theme scope — the host dimensions a subtree renders with (W5-02).
8831
+ *
8832
+ * The design system's scopes are DOM attributes: `[data-ds-scheme]`,
8833
+ * `[data-ds-brand]`, `[data-ds-density]`, `dir`, and the `--ds-*` style a
8834
+ * runtime brand writes (`createBrandTheme`). Set on the document root they
8835
+ * reach everything, portalled overlays included. Set on a *subtree* they stop
8836
+ * at the subtree: a Dialog or Popover opened from inside it renders in
8837
+ * `document.body`, outside the scope, and comes up in the root theme.
8838
+ *
8839
+ * `ThemeScope` fixes that. It stamps the attributes on its own element, as a
8840
+ * hand-written scope would, **and** registers them in context, so the shared
8841
+ * `Portal` (`primitives/behavior/portal.tsx`) can re-stamp the same attributes
8842
+ * and runtime-brand style on the container wrapper it mounts portalled content
8843
+ * into. Nested scopes merge: a `density="compact"` scope inside a `brand="tax"`
8844
+ * one propagates both.
8845
+ *
8846
+ * Apps that scope the document root need none of this; the portal path is
8847
+ * unchanged for them (no wrapper is created).
8848
+ */
8849
+ /** The scheme a subtree renders with (`[data-ds-scheme]`). */
8850
+ type ThemeScheme = "light" | "dark";
8851
+ /** A built-in brand scope (`[data-ds-brand]`). */
8852
+ type ThemeBrand = "pro" | "audit" | "books" | "tax";
8853
+ /** The density scope (`[data-ds-density]`, W2-06). */
8854
+ type ThemeDensity = "comfortable" | "compact";
8855
+ /** Text direction (`dir`). */
8856
+ type ThemeDirection = "ltr" | "rtl";
8857
+ /**
8858
+ * The dimensions a scope sets. Every field is optional; an unset field is
8859
+ * inherited from the enclosing scope, then from the document.
8860
+ *
8861
+ * @experimental
8862
+ */
8863
+ interface ThemeScopeValue {
8864
+ scheme?: ThemeScheme;
8865
+ brand?: ThemeBrand;
8866
+ density?: ThemeDensity;
8867
+ dir?: ThemeDirection;
8868
+ /**
8869
+ * A registered runtime brand: the object `createBrandTheme()` returns. It is
8870
+ * applied as inline `--ds-*` style on the scope element and re-applied on
8871
+ * portalled content.
8872
+ */
8873
+ brandTheme?: BrandTheme;
8874
+ }
8875
+ /** Props of {@link ThemeScope}. @experimental */
8876
+ interface ThemeScopeProps extends ThemeScopeValue, Omit<React.HTMLAttributes<HTMLDivElement>, "dir"> {
8877
+ children?: ReactNode;
8878
+ }
8879
+ /**
8880
+ * A `<div>` that scopes the host dimensions of its subtree — scheme, brand,
8881
+ * density, direction and a runtime brand — and propagates them into every
8882
+ * overlay opened from inside it (Dialog, Sheet, Popover, Tooltip, menus,
8883
+ * Select, Toast …), which would otherwise render in the document's theme.
8884
+ *
8885
+ * ```tsx
8886
+ * <ThemeScope brand="tax" density="compact">
8887
+ * <Popover>…</Popover> // its content renders as compact Tax, too
8888
+ * </ThemeScope>
8889
+ *
8890
+ * <ThemeScope brandTheme={createBrandTheme({ brand: firm.primary })}>
8891
+ * <Dialog>…</Dialog> // the runtime brand follows the dialog to <body>
8892
+ * </ThemeScope>
8893
+ * ```
8894
+ *
8895
+ * Nothing changes for apps that scope `<html>` or `<body>`: no wrapper is
8896
+ * created around portalled content when no `ThemeScope` encloses it.
8897
+ *
8898
+ * @experimental W5-02. The public shape follows decision D7 for the runtime
8899
+ * brand seed.
8900
+ */
8901
+ declare const ThemeScope: React$1.ForwardRefExoticComponent<ThemeScopeProps & React$1.RefAttributes<HTMLDivElement>>;
8902
+
8903
+ 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, 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, 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 DialogSize$1 as 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, 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 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, 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, type PhoneFieldMessages, type PhoneFieldProps, type PhoneFieldSlot, 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, 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, type ToastOptions, ToastProvider, type ToastSlot, type ToastVariant, ToggleGroup, type ToggleGroupFormProps, ToggleGroupItem, type ToggleGroupItemProps, type ToggleGroupProps, type ToggleGroupSize, type ToggleGroupVariant, Toolbar, type ToolbarProps, Tooltip, TooltipContent, TooltipPortal, 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, useFieldControl, useSidebarPeekLock, useSidebarState, useStopwatch, useToast, yearToIso };