@imfusion/web-ui 0.10.1-dev.6.gf715361a → 0.10.1-dev.60.g7891a716

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/CHANGELOG.md +159 -0
  2. package/README.md +8 -32
  3. package/THIRD_PARTY_NOTICES.md +110 -0
  4. package/dist/code-NTcddiYk.js +139 -0
  5. package/dist/components/account-card/account-card.d.ts +9 -26
  6. package/dist/components/app-shell/app-shell.d.ts +48 -26
  7. package/dist/components/callout/callout.d.ts +1 -1
  8. package/dist/components/chip/chip.d.ts +1 -1
  9. package/dist/components/color-scheme-toggle/color-scheme-preference.d.ts +3 -0
  10. package/dist/components/color-scheme-toggle/color-scheme-toggle.d.ts +17 -0
  11. package/dist/components/color-scheme-toggle/color-scheme-toggle.meta.d.ts +2 -0
  12. package/dist/components/color-scheme-toggle/index.d.ts +2 -0
  13. package/dist/components/dialog/dialog.d.ts +151 -0
  14. package/dist/components/dialog/dialog.meta.d.ts +2 -0
  15. package/dist/components/dialog/index.d.ts +2 -0
  16. package/dist/components/drawer/drawer.d.ts +1 -1
  17. package/dist/components/logo/index.d.ts +1 -0
  18. package/dist/components/logo/product/index.d.ts +1 -0
  19. package/dist/components/logo/product/marks.d.ts +11 -0
  20. package/dist/components/logo/product/product.d.ts +17 -0
  21. package/dist/components/scroll-area/index.d.ts +2 -0
  22. package/dist/components/scroll-area/scroll-area.d.ts +49 -0
  23. package/dist/components/scroll-area/scroll-area.meta.d.ts +2 -0
  24. package/dist/components/select/select.d.ts +18 -4
  25. package/dist/components/separator/separator.d.ts +4 -2
  26. package/dist/components/skeleton/skeleton.d.ts +17 -2
  27. package/dist/components/table/table.d.ts +12 -4
  28. package/dist/components/toggle/toggle.d.ts +8 -2
  29. package/dist/components/toggle-group/toggle-group-size.d.ts +3 -0
  30. package/dist/components/toggle-group/toggle-group.d.ts +7 -3
  31. package/dist/hooks/index.d.ts +2 -0
  32. package/dist/hooks/use-disclosure.d.ts +17 -0
  33. package/dist/icons.js +1 -2
  34. package/dist/index.d.ts +7 -3
  35. package/dist/index.js +2705 -2093
  36. package/dist/integrations/code-highlight.js +2 -2
  37. package/dist/integrations/frame-selection.js +2 -2
  38. package/dist/integrations/image-display-options.js +123 -113
  39. package/dist/{rolldown-runtime-Dy4uBu1J.js → resolve-state-props-DQf9WiGv.js} +12 -1
  40. package/dist/scroll-area-z9Lf9uIk.js +89 -0
  41. package/dist/{separator-lzz4A3x_.js → separator-BV2TR8U0.js} +16 -8
  42. package/dist/slider-Bf274cMe.js +106 -0
  43. package/dist/style.css +1 -1
  44. package/dist/{tabs-DRyqtS04.js → tabs-CU46aGud.js} +106 -88
  45. package/dist/vite/local-web-ui-link.d.ts +17 -4
  46. package/dist/vite.js +25 -20
  47. package/dist/web-ui-cli.js +11 -11
  48. package/docs/user-guide/UsagePatterns.mdx +4 -0
  49. package/package.json +11 -9
  50. package/src/docgen/doc.gen.json +2292 -1071
  51. package/src/llms/install-templates/hooks/baseline-staleness.sh +2 -0
  52. package/src/llms/install-templates/hooks/stop.sh +7 -2
  53. package/src/llms/llms.gen.txt +18 -1
  54. package/src/llms/skills/imf-web-ui-audit/SKILL.md +24 -11
  55. package/src/llms/skills/imf-web-ui-conventions/templates/AUDIT_CHECKLIST.md +4 -2
  56. package/src/llms/skills/imf-web-ui-conventions/topics/data.md +17 -2
  57. package/src/llms/skills/imf-web-ui-conventions/topics/git.md +5 -2
  58. package/src/llms/skills/imf-web-ui-conventions/topics/library-setup.md +3 -0
  59. package/src/llms/skills/imf-web-ui-conventions/topics/project-structure.md +5 -2
  60. package/src/llms/skills/imf-web-ui-conventions/topics/styling.md +3 -1
  61. package/src/llms/skills/imf-web-ui-conventions/topics/tooling.md +47 -8
  62. package/src/llms/skills/imf-web-ui-conventions/topics/typescript.md +2 -0
  63. package/src/llms/skills/imf-web-ui-setup/SKILL.md +10 -1
  64. package/src/llms/skills/imf-web-ui-update/SKILL.md +7 -0
  65. package/src/llms/skills/imf-web-ui-ux/SKILL.md +47 -26
  66. package/src/llms/skills/imf-web-ui-ux/references/forms.md +6 -6
  67. package/src/llms/skills/imf-web-ui-ux/references/usability-heuristics.md +3 -3
  68. package/src/llms/skills/imf-web-ui-ux/references/visual-design.md +3 -3
  69. package/src/llms/tokens.gen.json +13 -5
  70. package/dist/code-BYkr5k55.js +0 -134
  71. package/dist/slider-Cqpreglu.js +0 -116
@@ -2,7 +2,7 @@
2
2
  "account-card": {
3
3
  "root": {
4
4
  "name": "AccountCard.Root",
5
- "description": "AccountCard.Root — the signed-in person's card: `AccountCard.Link` and, in its top row, `AccountCard.Action`. The\naction sits beside the link, not inside it, since a link cannot contain a button.",
5
+ "description": "AccountCard.Root — the signed-in person's row, holding `AccountCard.Avatar`, `AccountCard.Title`, `AccountCard.Subtitle`,\n`AccountCard.Description`, `AccountCard.Role`, and, at its top right, `AccountCard.Action`. The row itself is not\ninteractive; the action's buttons are.",
6
6
  "props": [
7
7
  {
8
8
  "name": "context",
@@ -23,7 +23,7 @@
23
23
  "subComponents": [
24
24
  {
25
25
  "name": "AccountCard.Action",
26
- "description": "AccountCard.Action — a slot in the card's top row, beside the link, such as a ghost icon `Button` that logs out. The\nbutton carries its own `aria-label` and its own `context`.",
26
+ "description": "AccountCard.Action — the card's top-right slot for ghost `IconButton`s, such as one that logs out. The\nbutton carries its own `aria-label` and its own `context`.",
27
27
  "props": [
28
28
  {
29
29
  "name": "ref",
@@ -49,7 +49,7 @@
49
49
  "name": "size",
50
50
  "required": false,
51
51
  "type": "\"sm\" | \"md\" | \"lg\" | null",
52
- "defaultValue": "md",
52
+ "defaultValue": "sm",
53
53
  "description": "The avatar size."
54
54
  },
55
55
  {
@@ -63,33 +63,7 @@
63
63
  },
64
64
  {
65
65
  "name": "AccountCard.Description",
66
- "description": "AccountCard.Description — the organization, under a rule at the foot of the card.",
67
- "props": [
68
- {
69
- "name": "ref",
70
- "required": false,
71
- "type": "Ref<HTMLDivElement>",
72
- "defaultValue": null,
73
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
74
- }
75
- ]
76
- },
77
- {
78
- "name": "AccountCard.Group",
79
- "description": "AccountCard.Group — a list of cards, such as accounts to switch between. Inside it a link with `aria-current=\"page\"`\nshows as current; a standalone card is always the signed-in account and shows no current state.",
80
- "props": [
81
- {
82
- "name": "ref",
83
- "required": false,
84
- "type": "Ref<HTMLDivElement>",
85
- "defaultValue": null,
86
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
87
- }
88
- ]
89
- },
90
- {
91
- "name": "AccountCard.Link",
92
- "description": "AccountCard.Link — the link to the account, holding `AccountCard.Avatar`, `AccountCard.Title`,\n`AccountCard.Subtitle`, `AccountCard.Description`, and `AccountCard.Role`. Pass a router link through `render`. Its\naccessible name is its text; the avatar stays decorative.",
66
+ "description": "AccountCard.Description — the organization, set apart below the subtitle.",
93
67
  "props": [
94
68
  {
95
69
  "name": "ref",
@@ -97,19 +71,12 @@
97
71
  "type": "Ref<HTMLDivElement>",
98
72
  "defaultValue": null,
99
73
  "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
100
- },
101
- {
102
- "name": "render",
103
- "required": false,
104
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, {}>",
105
- "defaultValue": null,
106
- "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
107
74
  }
108
75
  ]
109
76
  },
110
77
  {
111
78
  "name": "AccountCard.Role",
112
- "description": "AccountCard.Role — a mono uppercase label beside the description, such as the person's role.",
79
+ "description": "AccountCard.Role — a mono uppercase label under the description, such as the person's role.",
113
80
  "props": [
114
81
  {
115
82
  "name": "ref",
@@ -135,7 +102,7 @@
135
102
  },
136
103
  {
137
104
  "name": "AccountCard.Title",
138
- "description": "AccountCard.Title — the account's name, or the email's local part until a name exists. Set large; text wraps before\nan `@` and after a dot.",
105
+ "description": "AccountCard.Title — the account's name, or the email's local part until a name exists. Text wraps before an `@` and\nafter a dot.",
139
106
  "props": [
140
107
  {
141
108
  "name": "ref",
@@ -151,7 +118,7 @@
151
118
  "app-shell": {
152
119
  "root": {
153
120
  "name": "AppShell.Root",
154
- "description": "",
121
+ "description": "AppShell — application layout shell.\n\nThe classic dashboard frame: collapsible navbar/aside sidebars, a page\nheader, an optional footer, and a scrolling main content area. Also called\nan app layout, application frame, dashboard shell, or sidebar layout.\n\nComposed of eight sub-components used with dot-notation: `AppShell.Root` wraps\n`AppShell.Header`, `AppShell.Navbar`, `AppShell.Aside`, `AppShell.Footer`,\n`AppShell.Main`, and (inside a sidebar) `AppShell.Section` and `AppShell.NavItem`.\n\nSizing is CSS-driven — override the `--imf-ui-appshell-*` custom properties\nrather than passing dimension props. Below the responsive breakpoints the\nnavbar (`md`) and aside (`lg`) open as drawers, and the shell renders the\nnavbar's toggle itself.\n\nCopied and adapted from Mantine's AppShell; no upstream runtime dependency.\nMIT licensed (see Mantine repo).",
155
122
  "props": [
156
123
  {
157
124
  "name": "ref",
@@ -167,6 +134,20 @@
167
134
  "name": "AppShell.Aside",
168
135
  "description": "Below `lg` the aside opens as a drawer: from the bottom on phones, from the inline end on tablets.",
169
136
  "props": [
137
+ {
138
+ "name": "closeLabel",
139
+ "required": false,
140
+ "type": "string",
141
+ "defaultValue": "Close panel",
142
+ "description": "Accessible name of the close button shown while the aside is a drawer."
143
+ },
144
+ {
145
+ "name": "defaultOpen",
146
+ "required": false,
147
+ "type": "boolean",
148
+ "defaultValue": null,
149
+ "description": "Whether the drawer starts open when `open` is omitted."
150
+ },
170
151
  {
171
152
  "name": "onOpenChange",
172
153
  "required": false,
@@ -211,68 +192,6 @@
211
192
  }
212
193
  ]
213
194
  },
214
- {
215
- "name": "AppShell.Burger",
216
- "description": "AppShell.Burger — the header's menu toggle: three sheared bands that cross when `opened`. Takes its color from the\nsurface and hides from `md` up, where the navbar is docked.",
217
- "props": [
218
- {
219
- "name": "className",
220
- "required": false,
221
- "type": "string | ((state: ButtonState) => string)",
222
- "defaultValue": null,
223
- "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
224
- },
225
- {
226
- "name": "focusableWhenDisabled",
227
- "required": false,
228
- "type": "boolean",
229
- "defaultValue": "false",
230
- "description": "Whether the button should be focusable when disabled."
231
- },
232
- {
233
- "name": "label",
234
- "required": false,
235
- "type": "string",
236
- "defaultValue": null,
237
- "description": "Accessible name. Defaults to \"Open navigation\" or \"Close navigation\" from `opened`."
238
- },
239
- {
240
- "name": "nativeButton",
241
- "required": false,
242
- "type": "boolean",
243
- "defaultValue": "true",
244
- "description": "Whether the component renders a native `<button>` element when replacing it\nvia the `render` prop.\nSet to `false` if the rendered element is not a button (for example, `<div>`)."
245
- },
246
- {
247
- "name": "opened",
248
- "required": false,
249
- "type": "boolean",
250
- "defaultValue": "false",
251
- "description": "Whether the navigation it controls is open; draws the cross and sets `aria-expanded`."
252
- },
253
- {
254
- "name": "ref",
255
- "required": false,
256
- "type": "Ref<HTMLDivElement>",
257
- "defaultValue": null,
258
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
259
- },
260
- {
261
- "name": "render",
262
- "required": false,
263
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, ButtonState>",
264
- "defaultValue": null,
265
- "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
266
- },
267
- {
268
- "name": "style",
269
- "required": false,
270
- "type": "| CSSProperties\n| ((state: ButtonState) => CSSProperties)",
271
- "defaultValue": null,
272
- "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
273
- }
274
- ]
275
- },
276
195
  {
277
196
  "name": "AppShell.Footer",
278
197
  "description": "",
@@ -288,7 +207,7 @@
288
207
  },
289
208
  {
290
209
  "name": "AppShell.Header",
291
- "description": "",
210
+ "description": "AppShell.Header — the page row: a title and actions at every width. Below `md` it sits under the shell's bar, and from\n`md` it sits beside the rail.",
292
211
  "props": [
293
212
  {
294
213
  "name": "ref",
@@ -314,8 +233,29 @@
314
233
  },
315
234
  {
316
235
  "name": "AppShell.Navbar",
317
- "description": "`variant=\"branded\"` paints the primary color; children opt into on-color themselves. Below `md` the navbar opens as a\ndrawer from the inline end.",
236
+ "description": "The navbar owns its frame: `logo` on top, the children (nav items) in the middle, `account` at the foot. Without a\nHeader the logo's bottom edge sits on the baseline of Main's first heading. `variant=\"branded\"` paints the primary\ncolor; children opt into on-color themselves. Below `md` the navbar opens as a drawer from the inline start, with its\nclose on the logo row.",
318
237
  "props": [
238
+ {
239
+ "name": "account",
240
+ "required": false,
241
+ "type": "ReactNode",
242
+ "defaultValue": null,
243
+ "description": "The signed-in account at the foot of the rail, usually an `AccountCard`. Without it the foot is omitted."
244
+ },
245
+ {
246
+ "name": "defaultOpen",
247
+ "required": false,
248
+ "type": "boolean",
249
+ "defaultValue": null,
250
+ "description": "Whether the drawer starts open when `open` is omitted."
251
+ },
252
+ {
253
+ "name": "logo",
254
+ "required": false,
255
+ "type": "ReactNode",
256
+ "defaultValue": "variant === \"branded\" ? oncolorLogo : brandLogo",
257
+ "description": "The brand at the top of the rail. Defaults to the ImFusion logo; `null` leaves the row empty."
258
+ },
319
259
  {
320
260
  "name": "onOpenChange",
321
261
  "required": false,
@@ -348,7 +288,7 @@
348
288
  },
349
289
  {
350
290
  "name": "AppShell.NavItem",
351
- "description": "AppShell.NavItem — a navbar link: icon, mono label, and an optional description. Takes its color from the navbar;\n`aria-current=\"page\"` marks the current page. Pass a router link through `render`.",
291
+ "description": "AppShell.NavItem — a navbar link: icon, mono label, and an optional description. Takes its color from the navbar;\n`aria-current=\"page\"` underlines the label. Pass a router link through `render`. Followed inside the navbar drawer,\nit closes the drawer.",
352
292
  "props": [
353
293
  {
354
294
  "name": "description",
@@ -707,7 +647,7 @@
707
647
  },
708
648
  {
709
649
  "name": "Callout.Title",
710
- "description": "Callout.Title — an optional short heading, set in the semi-mono UPPERCASE technical voice.",
650
+ "description": "Callout.Title — an optional short heading, set in the mono UPPERCASE technical voice.",
711
651
  "props": [
712
652
  {
713
653
  "name": "ref",
@@ -1389,6 +1329,99 @@
1389
1329
  }
1390
1330
  ]
1391
1331
  },
1332
+ "color-scheme-toggle": {
1333
+ "root": {
1334
+ "name": "ColorSchemeToggle",
1335
+ "description": "ColorSchemeToggle - lets the user pick Light, System, or Dark. It reads and stores the preference through\n`useColorScheme`, so placing it is enough. System stays pressed while the page follows the operating system.",
1336
+ "props": [
1337
+ {
1338
+ "name": "className",
1339
+ "required": false,
1340
+ "type": "string | ((state: ToggleGroupState) => string)",
1341
+ "defaultValue": null,
1342
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
1343
+ },
1344
+ {
1345
+ "name": "darkLabel",
1346
+ "required": false,
1347
+ "type": "string",
1348
+ "defaultValue": "Dark",
1349
+ "description": "Text of the segment that picks the dark scheme."
1350
+ },
1351
+ {
1352
+ "name": "disabled",
1353
+ "required": false,
1354
+ "type": "boolean",
1355
+ "defaultValue": "false",
1356
+ "description": "Whether the toggle group should ignore user interaction."
1357
+ },
1358
+ {
1359
+ "name": "label",
1360
+ "required": false,
1361
+ "type": "string",
1362
+ "defaultValue": "Color scheme",
1363
+ "description": "Accessible name of the group."
1364
+ },
1365
+ {
1366
+ "name": "lightLabel",
1367
+ "required": false,
1368
+ "type": "string",
1369
+ "defaultValue": "Light",
1370
+ "description": "Text of the segment that picks the light scheme."
1371
+ },
1372
+ {
1373
+ "name": "loopFocus",
1374
+ "required": false,
1375
+ "type": "boolean",
1376
+ "defaultValue": "true",
1377
+ "description": "Whether to loop keyboard focus back to the first item\nwhen the end of the list is reached while using the arrow keys."
1378
+ },
1379
+ {
1380
+ "name": "orientation",
1381
+ "required": false,
1382
+ "type": "Orientation",
1383
+ "defaultValue": "horizontal",
1384
+ "description": ""
1385
+ },
1386
+ {
1387
+ "name": "ref",
1388
+ "required": false,
1389
+ "type": "Ref<HTMLDivElement>",
1390
+ "defaultValue": null,
1391
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
1392
+ },
1393
+ {
1394
+ "name": "render",
1395
+ "required": false,
1396
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, ToggleGroupState>",
1397
+ "defaultValue": null,
1398
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
1399
+ },
1400
+ {
1401
+ "name": "size",
1402
+ "required": false,
1403
+ "type": "\"sm\" | \"md\" | null",
1404
+ "defaultValue": null,
1405
+ "description": ""
1406
+ },
1407
+ {
1408
+ "name": "style",
1409
+ "required": false,
1410
+ "type": "| CSSProperties\n| ((state: ToggleGroupState) => CSSProperties)",
1411
+ "defaultValue": null,
1412
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
1413
+ },
1414
+ {
1415
+ "name": "systemLabel",
1416
+ "required": false,
1417
+ "type": "string",
1418
+ "defaultValue": "System",
1419
+ "description": "Text of the segment that follows the operating system."
1420
+ }
1421
+ ]
1422
+ },
1423
+ "subComponents": []
1424
+ },
1392
1425
  "copy-button": {
1393
1426
  "root": {
1394
1427
  "name": "CopyButton",
@@ -1517,155 +1550,99 @@
1517
1550
  },
1518
1551
  "subComponents": []
1519
1552
  },
1520
- "drawer": {
1553
+ "dialog": {
1521
1554
  "root": {
1522
- "name": "Drawer.Root",
1523
- "description": "Drawer.Root — container that manages open/closed state and gesture interaction.",
1555
+ "name": "Dialog.Root",
1556
+ "description": "Dialog.Root — container that manages open/closed state.",
1524
1557
  "props": [
1525
1558
  {
1526
1559
  "name": "actionsRef",
1527
1560
  "required": false,
1528
- "type": "RefObject<DrawerRootActions | null>",
1561
+ "type": "RefObject<DialogRootActions | null>",
1529
1562
  "defaultValue": null,
1530
- "description": "A ref to imperative actions.\n- `unmount`: Manually unmounts the drawer.\nCall this after any externally controlled closing animation finishes.\n- `close`: Closes the drawer imperatively when called."
1531
- },
1532
- {
1533
- "name": "borderColor",
1534
- "required": false,
1535
- "type": "BorderColor",
1536
- "defaultValue": "primary",
1537
- "description": "Colour of the border on the panel's open edge. Inherited by Drawer.Popup;\na Popup-level prop overrides it."
1538
- },
1539
- {
1540
- "name": "borderStyle",
1541
- "required": false,
1542
- "type": "BorderStyle",
1543
- "defaultValue": "solid",
1544
- "description": "Stroke style of the border on the panel's open edge. Inherited by\nDrawer.Popup; a Popup-level prop overrides it."
1563
+ "description": "A ref to imperative actions.\n- `unmount`: Manually unmounts the dialog.\nCall this after any externally controlled closing animation finishes.\n- `close`: Closes the dialog imperatively when called."
1545
1564
  },
1546
1565
  {
1547
1566
  "name": "children",
1548
1567
  "required": false,
1549
1568
  "type": "ReactNode | PayloadChildRenderFunction<Payload>",
1550
1569
  "defaultValue": null,
1551
- "description": "The content of the drawer."
1570
+ "description": "The content of the dialog.\nThis can be a regular React node or a render function that receives the `payload` of the active trigger."
1552
1571
  },
1553
1572
  {
1554
1573
  "name": "defaultOpen",
1555
1574
  "required": false,
1556
1575
  "type": "boolean",
1557
1576
  "defaultValue": "false",
1558
- "description": "Whether the drawer is initially open.\n\nTo render a controlled drawer, use the `open` prop instead."
1559
- },
1560
- {
1561
- "name": "defaultSnapPoint",
1562
- "required": false,
1563
- "type": "DrawerSnapPoint | null",
1564
- "defaultValue": null,
1565
- "description": "The initial snap point value when uncontrolled."
1577
+ "description": "Whether the dialog is initially open.\n\nTo render a controlled dialog, use the `open` prop instead."
1566
1578
  },
1567
1579
  {
1568
1580
  "name": "defaultTriggerId",
1569
1581
  "required": false,
1570
1582
  "type": "string | null",
1571
1583
  "defaultValue": null,
1572
- "description": "ID of the trigger that the drawer is associated with.\nThis is useful in conjunction with the `defaultOpen` prop to create an initially open drawer."
1584
+ "description": "ID of the trigger that the dialog is associated with.\nThis is useful in conjunction with the `defaultOpen` prop to create an initially open dialog."
1573
1585
  },
1574
1586
  {
1575
1587
  "name": "disablePointerDismissal",
1576
1588
  "required": false,
1577
1589
  "type": "boolean",
1578
1590
  "defaultValue": "false",
1579
- "description": "Whether to prevent the drawer from closing on outside presses.\nFor non-modal drawers, this also prevents the drawer from closing when focus moves outside of it."
1591
+ "description": "Whether to prevent the dialog from closing on outside presses.\nFor non-modal dialogs, this also prevents the dialog from closing when focus moves outside of it."
1580
1592
  },
1581
1593
  {
1582
1594
  "name": "handle",
1583
1595
  "required": false,
1584
1596
  "type": "DialogHandle<Payload>",
1585
1597
  "defaultValue": null,
1586
- "description": "A handle to associate the drawer with a trigger.\nIf specified, allows detached triggers to control the drawer's open state.\nCan be created with the Drawer.createHandle() method."
1598
+ "description": "A handle to associate the dialog with a trigger.\nIf specified, allows external triggers to control the dialog's open state.\nCan be created with the Dialog.createHandle() method."
1587
1599
  },
1588
1600
  {
1589
1601
  "name": "modal",
1590
1602
  "required": false,
1591
1603
  "type": "boolean | \"trap-focus\"",
1592
1604
  "defaultValue": "true",
1593
- "description": "Determines if the drawer enters a modal state when open.\n- `true`: user interaction is limited to just the drawer: focus is trapped, document page scroll is locked, and pointer interactions on outside elements are disabled.\n- `false`: user interaction with the rest of the document is allowed.\n- `'trap-focus'`: focus is trapped inside the drawer, but document page scroll is not locked and pointer interactions outside of it remain enabled."
1605
+ "description": "Determines if the dialog enters a modal state when open.\n- `true`: user interaction is limited to just the dialog: focus is trapped, document page scroll is locked, and pointer interactions on outside elements are disabled.\n- `false`: user interaction with the rest of the document is allowed.\n- `'trap-focus'`: focus is trapped inside the dialog, but document page scroll is not locked and pointer interactions outside of it remain enabled.\n\nWhen `modal` is `true` or `'trap-focus'`, render `<Dialog.Close>` inside `<Dialog.Popup>` so\ntouch screen readers can escape the popup."
1594
1606
  },
1595
1607
  {
1596
1608
  "name": "onOpenChange",
1597
1609
  "required": false,
1598
- "type": "(\n open: boolean,\n eventDetails: DrawerRootChangeEventDetails\n) => void",
1610
+ "type": "(\n open: boolean,\n eventDetails: DialogRootChangeEventDetails\n) => void",
1599
1611
  "defaultValue": null,
1600
- "description": "Event handler called when the drawer is opened or closed."
1612
+ "description": "Event handler called when the dialog is opened or closed."
1601
1613
  },
1602
1614
  {
1603
1615
  "name": "onOpenChangeComplete",
1604
1616
  "required": false,
1605
1617
  "type": "(open: boolean) => void",
1606
1618
  "defaultValue": null,
1607
- "description": "Event handler called after any animations complete when the drawer is opened or closed."
1608
- },
1609
- {
1610
- "name": "onSnapPointChange",
1611
- "required": false,
1612
- "type": "(\n snapPoint: DrawerSnapPoint | null,\n eventDetails: DrawerRootSnapPointChangeEventDetails\n) => void",
1613
- "defaultValue": null,
1614
- "description": "Callback fired when the snap point changes."
1619
+ "description": "Event handler called after any animations complete when the dialog is opened or closed."
1615
1620
  },
1616
1621
  {
1617
1622
  "name": "open",
1618
1623
  "required": false,
1619
1624
  "type": "boolean",
1620
1625
  "defaultValue": null,
1621
- "description": "Whether the drawer is currently open."
1622
- },
1623
- {
1624
- "name": "snapPoint",
1625
- "required": false,
1626
- "type": "DrawerSnapPoint | null",
1627
- "defaultValue": null,
1628
- "description": "The currently active snap point. Use with `onSnapPointChange` to control the snap point."
1629
- },
1630
- {
1631
- "name": "snapPoints",
1632
- "required": false,
1633
- "type": "DrawerSnapPoint[]",
1634
- "defaultValue": null,
1635
- "description": "Snap points used to position the drawer.\nUse numbers between 0 and 1 to represent fractions of the viewport height,\nnumbers greater than 1 as pixel values, or strings in `px`/`rem` units\n(for example, `'148px'` or `'30rem'`)."
1636
- },
1637
- {
1638
- "name": "snapToSequentialPoints",
1639
- "required": false,
1640
- "type": "boolean",
1641
- "defaultValue": "false",
1642
- "description": "Disables velocity-based snap skipping so drag distance determines the next snap point."
1643
- },
1644
- {
1645
- "name": "swipeDirection",
1646
- "required": false,
1647
- "type": "SwipeDirection",
1648
- "defaultValue": "down",
1649
- "description": "The swipe direction used to dismiss the drawer."
1626
+ "description": "Whether the dialog is currently open."
1650
1627
  },
1651
1628
  {
1652
1629
  "name": "triggerId",
1653
1630
  "required": false,
1654
1631
  "type": "string | null",
1655
1632
  "defaultValue": null,
1656
- "description": "ID of the trigger that the drawer is associated with.\nThis is useful in conjunction with the `open` prop to create a controlled drawer.\nThere's no need to specify this prop when the drawer is uncontrolled (that is, when the `open` prop is not set)."
1633
+ "description": "ID of the trigger that the dialog is associated with.\nThis is useful in conjunction with the `open` prop to create a controlled dialog.\nThere's no need to specify this prop when the dialog is uncontrolled (that is, when the `open` prop is not set)."
1657
1634
  }
1658
1635
  ]
1659
1636
  },
1660
1637
  "subComponents": [
1661
1638
  {
1662
- "name": "Drawer.Backdrop",
1663
- "description": "Drawer.Backdrop — semi-transparent overlay that dims the page content behind the drawer.",
1639
+ "name": "Dialog.Backdrop",
1640
+ "description": "Dialog.Backdrop — flat dark overlay that dims the page behind the dialog.",
1664
1641
  "props": [
1665
1642
  {
1666
1643
  "name": "className",
1667
1644
  "required": false,
1668
- "type": "string | ((state: DrawerBackdropState) => string)",
1645
+ "type": "string | ((state: DialogBackdropState) => string)",
1669
1646
  "defaultValue": null,
1670
1647
  "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
1671
1648
  },
@@ -1686,36 +1663,43 @@
1686
1663
  {
1687
1664
  "name": "render",
1688
1665
  "required": false,
1689
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerBackdropState>",
1666
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DialogBackdropState>",
1690
1667
  "defaultValue": null,
1691
1668
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
1692
1669
  },
1693
1670
  {
1694
1671
  "name": "style",
1695
1672
  "required": false,
1696
- "type": "| CSSProperties\n| ((state: DrawerBackdropState) => CSSProperties)",
1673
+ "type": "| CSSProperties\n| ((state: DialogBackdropState) => CSSProperties)",
1697
1674
  "defaultValue": null,
1698
1675
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
1699
1676
  }
1700
1677
  ]
1701
1678
  },
1702
1679
  {
1703
- "name": "Drawer.Close",
1704
- "description": "Drawer.Close — button that closes the drawer.",
1680
+ "name": "Dialog.Body",
1681
+ "description": "Dialog.Body — the scrolling region between header and footer, a ScrollArea with the library's thumb and edge fades.",
1705
1682
  "props": [
1706
1683
  {
1707
1684
  "name": "className",
1708
1685
  "required": false,
1709
- "type": "string | ((state: DrawerCloseState) => string)",
1686
+ "type": "string | ((state: ScrollAreaRootState) => string)",
1710
1687
  "defaultValue": null,
1711
1688
  "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
1712
1689
  },
1713
1690
  {
1714
- "name": "nativeButton",
1691
+ "name": "orientation",
1715
1692
  "required": false,
1716
- "type": "boolean",
1717
- "defaultValue": "true",
1718
- "description": "Whether the component renders a native `<button>` element when replacing it\nvia the `render` prop.\nSet to `false` if the rendered element is not a button (for example, `<div>`)."
1693
+ "type": "\"none\" | \"both\" | \"horizontal\" | \"vertical\"",
1694
+ "defaultValue": "vertical",
1695
+ "description": "Which scrollbars to render. `both` also adds the Corner; `none` scrolls and fades without a visible bar."
1696
+ },
1697
+ {
1698
+ "name": "overflowEdgeThreshold",
1699
+ "required": false,
1700
+ "type": "| number\n| Partial<{\n xStart: number;\n xEnd: number;\n yStart: number;\n yEnd: number;\n }>",
1701
+ "defaultValue": "0",
1702
+ "description": "The threshold in pixels that must be passed before the overflow edge attributes are applied.\nAccepts a single number for all edges or an object to configure them individually."
1719
1703
  },
1720
1704
  {
1721
1705
  "name": "ref",
@@ -1727,30 +1711,37 @@
1727
1711
  {
1728
1712
  "name": "render",
1729
1713
  "required": false,
1730
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerCloseState>",
1714
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, ScrollAreaRootState>",
1731
1715
  "defaultValue": null,
1732
1716
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
1733
1717
  },
1734
1718
  {
1735
1719
  "name": "style",
1736
1720
  "required": false,
1737
- "type": "| CSSProperties\n| ((state: DrawerCloseState) => CSSProperties)",
1721
+ "type": "| CSSProperties\n| ((state: ScrollAreaRootState) => CSSProperties)",
1738
1722
  "defaultValue": null,
1739
1723
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
1740
1724
  }
1741
1725
  ]
1742
1726
  },
1743
1727
  {
1744
- "name": "Drawer.Content",
1745
- "description": "Drawer.Content — scrollable content wrapper inside the popup.",
1728
+ "name": "Dialog.Close",
1729
+ "description": "Dialog.Close — button that closes the dialog. With no `children` and no `render` it renders the library's ghost close\nbutton (a boxed × icon labelled \"Close\"); otherwise render your own `Button`.",
1746
1730
  "props": [
1747
1731
  {
1748
1732
  "name": "className",
1749
1733
  "required": false,
1750
- "type": "string | ((state: DrawerContentState) => string)",
1734
+ "type": "string | ((state: DialogCloseState) => string)",
1751
1735
  "defaultValue": null,
1752
1736
  "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
1753
1737
  },
1738
+ {
1739
+ "name": "nativeButton",
1740
+ "required": false,
1741
+ "type": "boolean",
1742
+ "defaultValue": "true",
1743
+ "description": "Whether the component renders a native `<button>` element when replacing it\nvia the `render` prop.\nSet to `false` if the rendered element is not a button (for example, `<div>`)."
1744
+ },
1754
1745
  {
1755
1746
  "name": "ref",
1756
1747
  "required": false,
@@ -1761,27 +1752,27 @@
1761
1752
  {
1762
1753
  "name": "render",
1763
1754
  "required": false,
1764
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerContentState>",
1755
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DialogCloseState>",
1765
1756
  "defaultValue": null,
1766
1757
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
1767
1758
  },
1768
1759
  {
1769
1760
  "name": "style",
1770
1761
  "required": false,
1771
- "type": "| CSSProperties\n| ((state: DrawerContentState) => CSSProperties)",
1762
+ "type": "| CSSProperties\n| ((state: DialogCloseState) => CSSProperties)",
1772
1763
  "defaultValue": null,
1773
1764
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
1774
1765
  }
1775
1766
  ]
1776
1767
  },
1777
1768
  {
1778
- "name": "Drawer.Description",
1779
- "description": "Drawer.Description — supplementary paragraph describing the drawer's purpose for screen readers.",
1769
+ "name": "Dialog.Description",
1770
+ "description": "Dialog.Description — supplementary paragraph that describes the dialog for screen readers, set as `Typo.P`.",
1780
1771
  "props": [
1781
1772
  {
1782
1773
  "name": "className",
1783
1774
  "required": false,
1784
- "type": "| string\n| ((state: DrawerDescriptionState) => string)",
1775
+ "type": "| string\n| ((state: DialogDescriptionState) => string)",
1785
1776
  "defaultValue": null,
1786
1777
  "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
1787
1778
  },
@@ -1795,219 +1786,215 @@
1795
1786
  {
1796
1787
  "name": "render",
1797
1788
  "required": false,
1798
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerDescriptionState>",
1789
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DialogDescriptionState>",
1799
1790
  "defaultValue": null,
1800
1791
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
1801
1792
  },
1802
1793
  {
1803
1794
  "name": "style",
1804
1795
  "required": false,
1805
- "type": "| CSSProperties\n| ((state: DrawerDescriptionState) => CSSProperties)",
1796
+ "type": "| CSSProperties\n| ((state: DialogDescriptionState) => CSSProperties)",
1806
1797
  "defaultValue": null,
1807
1798
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
1808
1799
  }
1809
1800
  ]
1810
1801
  },
1811
1802
  {
1812
- "name": "Drawer.Indent",
1813
- "description": "Drawer.Indent — wraps app content that scales and lifts when a drawer opens. Receives `data-active` from Base UI; use `--drawer-swipe-progress` in CSS to drive the animation.",
1803
+ "name": "Dialog.Footer",
1804
+ "description": "Dialog.Footer — row of actions pinned to the bottom of the popup.",
1814
1805
  "props": [
1815
- {
1816
- "name": "className",
1817
- "required": false,
1818
- "type": "string | ((state: DrawerIndentState) => string)",
1819
- "defaultValue": null,
1820
- "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
1821
- },
1822
1806
  {
1823
1807
  "name": "ref",
1824
1808
  "required": false,
1825
1809
  "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
1826
1810
  "defaultValue": null,
1827
1811
  "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
1828
- },
1812
+ }
1813
+ ]
1814
+ },
1815
+ {
1816
+ "name": "Dialog.Header",
1817
+ "description": "Dialog.Header — band at the top of the popup that holds the title, description, and close button.",
1818
+ "props": [
1829
1819
  {
1830
- "name": "render",
1820
+ "name": "ref",
1831
1821
  "required": false,
1832
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerIndentState>",
1822
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
1833
1823
  "defaultValue": null,
1834
- "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
1824
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
1835
1825
  },
1836
1826
  {
1837
- "name": "style",
1827
+ "name": "variant",
1838
1828
  "required": false,
1839
- "type": "| CSSProperties\n| ((state: DrawerIndentState) => CSSProperties)",
1840
- "defaultValue": null,
1841
- "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
1829
+ "type": "HeaderVariant",
1830
+ "defaultValue": "main",
1831
+ "description": "Colour of the header band. On `primary` the title, description, and close button turn light."
1842
1832
  }
1843
1833
  ]
1844
1834
  },
1845
1835
  {
1846
- "name": "Drawer.IndentBackground",
1847
- "description": "Drawer.IndentBackground — background layer placed behind Drawer.Indent. Styled to reveal a dark surface as the app content scales away.",
1836
+ "name": "Dialog.Inline",
1837
+ "description": "Dialog.Inline — like Dialog.Simple, but the trigger is text inside a sentence.",
1848
1838
  "props": [
1849
1839
  {
1850
- "name": "className",
1840
+ "name": "actions",
1851
1841
  "required": false,
1852
- "type": "| string\n| ((state: DrawerIndentBackgroundState) => string)",
1842
+ "type": "ReactNode",
1853
1843
  "defaultValue": null,
1854
- "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
1844
+ "description": "Content of the footer, usually buttons. The footer renders only when this is set, and then replaces the header's\nclose button, so include a way out such as a Cancel `Dialog.Close`."
1855
1845
  },
1856
1846
  {
1857
- "name": "ref",
1847
+ "name": "actionsRef",
1858
1848
  "required": false,
1859
- "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
1849
+ "type": "RefObject<DialogRootActions | null>",
1860
1850
  "defaultValue": null,
1861
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
1851
+ "description": "A ref to imperative actions.\n- `unmount`: Manually unmounts the dialog.\nCall this after any externally controlled closing animation finishes.\n- `close`: Closes the dialog imperatively when called."
1862
1852
  },
1863
1853
  {
1864
- "name": "render",
1854
+ "name": "children",
1865
1855
  "required": false,
1866
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<\n HTMLProps,\n DrawerIndentBackgroundState\n >",
1856
+ "type": "ReactNode",
1867
1857
  "defaultValue": null,
1868
- "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
1858
+ "description": "Content of the body."
1869
1859
  },
1870
1860
  {
1871
- "name": "style",
1861
+ "name": "defaultOpen",
1872
1862
  "required": false,
1873
- "type": "| CSSProperties\n| ((state: DrawerIndentBackgroundState) => CSSProperties)",
1874
- "defaultValue": null,
1875
- "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
1876
- }
1877
- ]
1878
- },
1879
- {
1880
- "name": "Drawer.Popup",
1881
- "description": "Drawer.Popup — the visible panel surface. Positioning is driven automatically by the nearest Drawer.Root's swipeDirection.",
1882
- "props": [
1863
+ "type": "boolean",
1864
+ "defaultValue": "false",
1865
+ "description": "Whether the dialog is initially open.\n\nTo render a controlled dialog, use the `open` prop instead."
1866
+ },
1883
1867
  {
1884
- "name": "borderColor",
1868
+ "name": "defaultTriggerId",
1885
1869
  "required": false,
1886
- "type": "BorderColor",
1870
+ "type": "string | null",
1887
1871
  "defaultValue": null,
1888
- "description": "Colour of the border on the open edge. Overrides the value inherited from\nDrawer.Root; defaults to it when unset."
1872
+ "description": "ID of the trigger that the dialog is associated with.\nThis is useful in conjunction with the `defaultOpen` prop to create an initially open dialog."
1889
1873
  },
1890
1874
  {
1891
- "name": "borderStyle",
1875
+ "name": "description",
1892
1876
  "required": false,
1893
- "type": "BorderStyle",
1877
+ "type": "ReactNode",
1894
1878
  "defaultValue": null,
1895
- "description": "Stroke style of the border on the open edge. Overrides the value inherited\nfrom Drawer.Root; defaults to it when unset."
1879
+ "description": "Line of context under the title."
1896
1880
  },
1897
1881
  {
1898
- "name": "className",
1882
+ "name": "disablePointerDismissal",
1899
1883
  "required": false,
1900
- "type": "string | ((state: DrawerPopupState) => string)",
1901
- "defaultValue": null,
1902
- "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
1884
+ "type": "boolean",
1885
+ "defaultValue": "false",
1886
+ "description": "Whether to prevent the dialog from closing on outside presses.\nFor non-modal dialogs, this also prevents the dialog from closing when focus moves outside of it."
1903
1887
  },
1904
1888
  {
1905
- "name": "finalFocus",
1889
+ "name": "eyebrow",
1906
1890
  "required": false,
1907
- "type": "| boolean\n| RefObject<HTMLElement | null>\n| ((\n closeType: InteractionType\n ) => boolean | void | HTMLElement | null)",
1891
+ "type": "ReactNode",
1908
1892
  "defaultValue": null,
1909
- "description": "Determines the element to focus when the drawer is closed.\n\n- `false`: Do not move focus.\n- `true`: Move focus based on the default behavior (trigger or previously focused element).\n- `RefObject`: Move focus to the ref element.\n- `function`: Called with the interaction type (`mouse`, `touch`, `pen`, or `keyboard`).\n Return an element to focus, `true` to use the default behavior, or `false`/`undefined` to do nothing."
1893
+ "description": "Short uppercase label above the title."
1910
1894
  },
1911
1895
  {
1912
- "name": "initialFocus",
1896
+ "name": "handle",
1913
1897
  "required": false,
1914
- "type": "| boolean\n| RefObject<HTMLElement | null>\n| ((\n openType: InteractionType\n ) => boolean | void | HTMLElement | null)",
1898
+ "type": "DialogHandle<Payload>",
1915
1899
  "defaultValue": null,
1916
- "description": "Determines the element to focus when the drawer is opened.\n\n- `false`: Do not move focus.\n- `true`: Move focus based on the default behavior (first tabbable element or popup).\n- `RefObject`: Move focus to the ref element.\n- `function`: Called with the interaction type (`mouse`, `touch`, `pen`, or `keyboard`).\n Return an element to focus, `true` to use the default behavior, or `false`/`undefined` to do nothing."
1900
+ "description": "A handle to associate the dialog with a trigger.\nIf specified, allows external triggers to control the dialog's open state.\nCan be created with the Dialog.createHandle() method."
1917
1901
  },
1918
1902
  {
1919
- "name": "ref",
1903
+ "name": "headerVariant",
1920
1904
  "required": false,
1921
- "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
1922
- "defaultValue": null,
1923
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
1905
+ "type": "HeaderVariant",
1906
+ "defaultValue": "main",
1907
+ "description": "Colour of the header band."
1924
1908
  },
1925
1909
  {
1926
- "name": "render",
1910
+ "name": "modal",
1927
1911
  "required": false,
1928
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerPopupState>",
1929
- "defaultValue": null,
1930
- "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
1912
+ "type": "boolean | \"trap-focus\"",
1913
+ "defaultValue": "true",
1914
+ "description": "Determines if the dialog enters a modal state when open.\n- `true`: user interaction is limited to just the dialog: focus is trapped, document page scroll is locked, and pointer interactions on outside elements are disabled.\n- `false`: user interaction with the rest of the document is allowed.\n- `'trap-focus'`: focus is trapped inside the dialog, but document page scroll is not locked and pointer interactions outside of it remain enabled.\n\nWhen `modal` is `true` or `'trap-focus'`, render `<Dialog.Close>` inside `<Dialog.Popup>` so\ntouch screen readers can escape the popup."
1931
1915
  },
1932
1916
  {
1933
- "name": "style",
1917
+ "name": "onOpenChange",
1934
1918
  "required": false,
1935
- "type": "| CSSProperties\n| ((state: DrawerPopupState) => CSSProperties)",
1919
+ "type": "(\n open: boolean,\n eventDetails: DialogRootChangeEventDetails\n) => void",
1936
1920
  "defaultValue": null,
1937
- "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
1938
- }
1939
- ]
1940
- },
1941
- {
1942
- "name": "Drawer.Portal",
1943
- "description": "Drawer.Portal — renders backdrop and popup in a portal outside the main document flow.",
1944
- "props": [
1921
+ "description": "Event handler called when the dialog is opened or closed."
1922
+ },
1945
1923
  {
1946
- "name": "className",
1924
+ "name": "onOpenChangeComplete",
1947
1925
  "required": false,
1948
- "type": "string | ((state: DrawerPortalState) => string)",
1926
+ "type": "(open: boolean) => void",
1949
1927
  "defaultValue": null,
1950
- "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
1928
+ "description": "Event handler called after any animations complete when the dialog is opened or closed."
1951
1929
  },
1952
1930
  {
1953
- "name": "container",
1931
+ "name": "open",
1954
1932
  "required": false,
1955
- "type": "| HTMLElement\n| ShadowRoot\n| RefObject<HTMLElement | ShadowRoot | null>\n| null",
1933
+ "type": "boolean",
1956
1934
  "defaultValue": null,
1957
- "description": "A parent element to render the portal element into."
1935
+ "description": "Whether the dialog is currently open."
1958
1936
  },
1959
1937
  {
1960
- "name": "keepMounted",
1938
+ "name": "size",
1961
1939
  "required": false,
1962
- "type": "boolean",
1963
- "defaultValue": "false",
1964
- "description": "Whether to keep the portal mounted in the DOM while the popup is hidden."
1940
+ "type": "\"sm\" | \"md\" | \"lg\" | \"full\"",
1941
+ "defaultValue": "md",
1942
+ "description": "Width of the window."
1965
1943
  },
1966
1944
  {
1967
- "name": "ref",
1945
+ "name": "status",
1968
1946
  "required": false,
1969
- "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
1947
+ "type": "| NonNullable<\n \"info\" | \"positive\" | \"warning\" | \"negative\" | null\n >\n| undefined",
1970
1948
  "defaultValue": null,
1971
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
1949
+ "description": "Adds a `Dialog.Status` with this variant at the start of the popup."
1972
1950
  },
1973
1951
  {
1974
- "name": "render",
1975
- "required": false,
1976
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerPortalState>",
1952
+ "name": "title",
1953
+ "required": true,
1954
+ "type": "ReactNode",
1977
1955
  "defaultValue": null,
1978
- "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
1956
+ "description": "Heading of the dialog."
1979
1957
  },
1980
1958
  {
1981
- "name": "style",
1959
+ "name": "trigger",
1960
+ "required": true,
1961
+ "type": "ReactNode",
1962
+ "defaultValue": null,
1963
+ "description": "Text of the trigger, set as an inline term inside running prose."
1964
+ },
1965
+ {
1966
+ "name": "triggerId",
1982
1967
  "required": false,
1983
- "type": "| CSSProperties\n| ((state: DrawerPortalState) => CSSProperties)",
1968
+ "type": "string | null",
1984
1969
  "defaultValue": null,
1985
- "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
1970
+ "description": "ID of the trigger that the dialog is associated with.\nThis is useful in conjunction with the `open` prop to create a controlled dialog.\nThere's no need to specify this prop when the dialog is uncontrolled (that is, when the `open` prop is not set)."
1986
1971
  }
1987
1972
  ]
1988
1973
  },
1989
1974
  {
1990
- "name": "Drawer.Provider",
1991
- "description": "Drawer.Provider — shared context for coordinating indent/background effects across multiple drawers. Required ancestor for Drawer.Indent and Drawer.IndentBackground.",
1992
- "props": []
1993
- },
1994
- {
1995
- "name": "Drawer.SwipeArea",
1996
- "description": "Drawer.SwipeArea — invisible fixed region that listens for swipe gestures to open the drawer. Position and size it at the screen edge relevant to the swipeDirection.",
1975
+ "name": "Dialog.Popup",
1976
+ "description": "Dialog.Popup — the window. Holds Header, Body, and Footer, or any free content.",
1997
1977
  "props": [
1998
1978
  {
1999
1979
  "name": "className",
2000
1980
  "required": false,
2001
- "type": "| string\n| ((state: DrawerSwipeAreaState) => string)",
1981
+ "type": "string | ((state: DialogPopupState) => string)",
2002
1982
  "defaultValue": null,
2003
1983
  "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2004
1984
  },
2005
1985
  {
2006
- "name": "disabled",
1986
+ "name": "finalFocus",
2007
1987
  "required": false,
2008
- "type": "boolean",
2009
- "defaultValue": "false",
2010
- "description": "Whether the swipe area is disabled."
1988
+ "type": "| boolean\n| RefObject<HTMLElement | null>\n| ((\n closeType: InteractionType\n ) => boolean | void | HTMLElement | null)",
1989
+ "defaultValue": null,
1990
+ "description": "Determines the element to focus when the dialog is closed.\n\n- `false`: Do not move focus.\n- `true`: Move focus based on the default behavior (trigger or previously focused element).\n- `RefObject`: Move focus to the ref element.\n- `function`: Called with the interaction type (`mouse`, `touch`, `pen`, or `keyboard`).\n Return an element to focus, `true` to use the default behavior, `null` to fall back to the default behavior, or `false`/`undefined` to do nothing."
1991
+ },
1992
+ {
1993
+ "name": "initialFocus",
1994
+ "required": false,
1995
+ "type": "| boolean\n| RefObject<HTMLElement | null>\n| ((\n openType: InteractionType\n ) => boolean | void | HTMLElement | null)",
1996
+ "defaultValue": null,
1997
+ "description": "Determines the element to focus when the dialog is opened.\nBy default, focus moves to the first tabbable element inside the popup, except when the dialog\nis opened by touch — then the popup itself is focused to avoid opening the virtual keyboard.\n\n- `false`: Do not move focus.\n- `true`: Move focus based on the default behavior (first tabbable element or popup).\n- `RefObject`: Move focus to the ref element.\n- `function`: Called with the interaction type (`mouse`, `touch`, `pen`, or `keyboard`).\n Return an element to focus, `true` to use the default behavior, `null` to fall back to the default behavior, or `false`/`undefined` to do nothing."
2011
1998
  },
2012
1999
  {
2013
2000
  "name": "ref",
@@ -2019,37 +2006,51 @@
2019
2006
  {
2020
2007
  "name": "render",
2021
2008
  "required": false,
2022
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerSwipeAreaState>",
2009
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DialogPopupState>",
2023
2010
  "defaultValue": null,
2024
2011
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2025
2012
  },
2026
2013
  {
2027
- "name": "style",
2014
+ "name": "size",
2028
2015
  "required": false,
2029
- "type": "| CSSProperties\n| ((state: DrawerSwipeAreaState) => CSSProperties)",
2030
- "defaultValue": null,
2031
- "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2016
+ "type": "\"sm\" | \"md\" | \"lg\" | \"full\"",
2017
+ "defaultValue": "md",
2018
+ "description": "Width of the window. `full` fills the screen minus a margin."
2032
2019
  },
2033
2020
  {
2034
- "name": "swipeDirection",
2021
+ "name": "style",
2035
2022
  "required": false,
2036
- "type": "SwipeDirection",
2023
+ "type": "| CSSProperties\n| ((state: DialogPopupState) => CSSProperties)",
2037
2024
  "defaultValue": null,
2038
- "description": "The swipe direction that opens the drawer.\nDefaults to the opposite of `Drawer.Root` `swipeDirection`."
2025
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2039
2026
  }
2040
2027
  ]
2041
2028
  },
2042
2029
  {
2043
- "name": "Drawer.Title",
2044
- "description": "Drawer.Title — semantic heading for the drawer for screen readers.",
2030
+ "name": "Dialog.Portal",
2031
+ "description": "Dialog.Portal — renders backdrop and popup in a portal outside the main document flow.",
2045
2032
  "props": [
2046
2033
  {
2047
2034
  "name": "className",
2048
2035
  "required": false,
2049
- "type": "string | ((state: DrawerTitleState) => string)",
2036
+ "type": "string | ((state: DialogPortalState) => string)",
2050
2037
  "defaultValue": null,
2051
2038
  "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2052
2039
  },
2040
+ {
2041
+ "name": "container",
2042
+ "required": false,
2043
+ "type": "| HTMLElement\n| ShadowRoot\n| RefObject<HTMLElement | ShadowRoot | null>\n| null",
2044
+ "defaultValue": null,
2045
+ "description": "A parent element to render the portal element into."
2046
+ },
2047
+ {
2048
+ "name": "keepMounted",
2049
+ "required": false,
2050
+ "type": "boolean",
2051
+ "defaultValue": "false",
2052
+ "description": "Whether to keep the portal mounted in the DOM while the popup is hidden."
2053
+ },
2053
2054
  {
2054
2055
  "name": "ref",
2055
2056
  "required": false,
@@ -2060,651 +2061,1505 @@
2060
2061
  {
2061
2062
  "name": "render",
2062
2063
  "required": false,
2063
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerTitleState>",
2064
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DialogPortalState>",
2064
2065
  "defaultValue": null,
2065
2066
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2066
2067
  },
2067
2068
  {
2068
2069
  "name": "style",
2069
2070
  "required": false,
2070
- "type": "| CSSProperties\n| ((state: DrawerTitleState) => CSSProperties)",
2071
+ "type": "| CSSProperties\n| ((state: DialogPortalState) => CSSProperties)",
2071
2072
  "defaultValue": null,
2072
2073
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2073
2074
  }
2074
2075
  ]
2075
2076
  },
2076
2077
  {
2077
- "name": "Drawer.Trigger",
2078
- "description": "Drawer.Trigger — button that opens the drawer.",
2078
+ "name": "Dialog.Simple",
2079
+ "description": "Dialog.Simple — pre-composed dialog: trigger, header with title, description, and optional status, a scrolling body,\nand either a close button in the header or a footer of `actions`. Root props pass through.",
2079
2080
  "props": [
2080
2081
  {
2081
- "name": "className",
2082
+ "name": "actions",
2082
2083
  "required": false,
2083
- "type": "string | ((state: DrawerTriggerState) => string)",
2084
+ "type": "ReactNode",
2084
2085
  "defaultValue": null,
2085
- "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2086
+ "description": "Content of the footer, usually buttons. The footer renders only when this is set, and then replaces the header's\nclose button, so include a way out such as a Cancel `Dialog.Close`."
2086
2087
  },
2087
2088
  {
2088
- "name": "handle",
2089
+ "name": "actionsRef",
2089
2090
  "required": false,
2090
- "type": "DialogHandle<unknown>",
2091
+ "type": "RefObject<DialogRootActions | null>",
2091
2092
  "defaultValue": null,
2092
- "description": "A handle to associate the trigger with a drawer.\nCan be created with the Drawer.createHandle() method."
2093
+ "description": "A ref to imperative actions.\n- `unmount`: Manually unmounts the dialog.\nCall this after any externally controlled closing animation finishes.\n- `close`: Closes the dialog imperatively when called."
2093
2094
  },
2094
2095
  {
2095
- "name": "id",
2096
+ "name": "children",
2096
2097
  "required": false,
2097
- "type": "string",
2098
+ "type": "ReactNode",
2098
2099
  "defaultValue": null,
2099
- "description": "ID of the trigger. In addition to being forwarded to the rendered element,\nit is also used to specify the active trigger for drawers in controlled mode (with the Drawer.Root `triggerId` prop)."
2100
+ "description": "Content of the body."
2100
2101
  },
2101
2102
  {
2102
- "name": "nativeButton",
2103
+ "name": "defaultOpen",
2103
2104
  "required": false,
2104
2105
  "type": "boolean",
2105
- "defaultValue": "true",
2106
- "description": "Whether the component renders a native `<button>` element when replacing it\nvia the `render` prop.\nSet to `false` if the rendered element is not a button (for example, `<div>`)."
2106
+ "defaultValue": "false",
2107
+ "description": "Whether the dialog is initially open.\n\nTo render a controlled dialog, use the `open` prop instead."
2107
2108
  },
2108
2109
  {
2109
- "name": "payload",
2110
+ "name": "defaultTriggerId",
2110
2111
  "required": false,
2111
- "type": "unknown",
2112
+ "type": "string | null",
2112
2113
  "defaultValue": null,
2113
- "description": "A payload to pass to the drawer when it is opened."
2114
+ "description": "ID of the trigger that the dialog is associated with.\nThis is useful in conjunction with the `defaultOpen` prop to create an initially open dialog."
2114
2115
  },
2115
2116
  {
2116
- "name": "ref",
2117
+ "name": "description",
2117
2118
  "required": false,
2118
- "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
2119
+ "type": "ReactNode",
2119
2120
  "defaultValue": null,
2120
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2121
+ "description": "Line of context under the title."
2121
2122
  },
2122
2123
  {
2123
- "name": "render",
2124
+ "name": "disablePointerDismissal",
2124
2125
  "required": false,
2125
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerTriggerState>",
2126
- "defaultValue": null,
2127
- "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2126
+ "type": "boolean",
2127
+ "defaultValue": "false",
2128
+ "description": "Whether to prevent the dialog from closing on outside presses.\nFor non-modal dialogs, this also prevents the dialog from closing when focus moves outside of it."
2128
2129
  },
2129
2130
  {
2130
- "name": "style",
2131
+ "name": "eyebrow",
2131
2132
  "required": false,
2132
- "type": "| CSSProperties\n| ((state: DrawerTriggerState) => CSSProperties)",
2133
+ "type": "ReactNode",
2133
2134
  "defaultValue": null,
2134
- "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2135
- }
2136
- ]
2137
- },
2138
- {
2139
- "name": "Drawer.Viewport",
2140
- "description": "Drawer.Viewport — full-screen container that positions the popup.",
2141
- "props": [
2135
+ "description": "Short uppercase label above the title."
2136
+ },
2142
2137
  {
2143
- "name": "className",
2138
+ "name": "handle",
2144
2139
  "required": false,
2145
- "type": "string | ((state: DrawerViewportState) => string)",
2140
+ "type": "DialogHandle<Payload>",
2146
2141
  "defaultValue": null,
2147
- "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2142
+ "description": "A handle to associate the dialog with a trigger.\nIf specified, allows external triggers to control the dialog's open state.\nCan be created with the Dialog.createHandle() method."
2148
2143
  },
2149
2144
  {
2150
- "name": "ref",
2145
+ "name": "headerVariant",
2151
2146
  "required": false,
2152
- "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
2153
- "defaultValue": null,
2154
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2147
+ "type": "HeaderVariant",
2148
+ "defaultValue": "main",
2149
+ "description": "Colour of the header band."
2155
2150
  },
2156
2151
  {
2157
- "name": "render",
2152
+ "name": "modal",
2158
2153
  "required": false,
2159
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerViewportState>",
2160
- "defaultValue": null,
2161
- "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2154
+ "type": "boolean | \"trap-focus\"",
2155
+ "defaultValue": "true",
2156
+ "description": "Determines if the dialog enters a modal state when open.\n- `true`: user interaction is limited to just the dialog: focus is trapped, document page scroll is locked, and pointer interactions on outside elements are disabled.\n- `false`: user interaction with the rest of the document is allowed.\n- `'trap-focus'`: focus is trapped inside the dialog, but document page scroll is not locked and pointer interactions outside of it remain enabled.\n\nWhen `modal` is `true` or `'trap-focus'`, render `<Dialog.Close>` inside `<Dialog.Popup>` so\ntouch screen readers can escape the popup."
2162
2157
  },
2163
2158
  {
2164
- "name": "style",
2159
+ "name": "onOpenChange",
2165
2160
  "required": false,
2166
- "type": "| CSSProperties\n| ((state: DrawerViewportState) => CSSProperties)",
2161
+ "type": "(\n open: boolean,\n eventDetails: DialogRootChangeEventDetails\n) => void",
2167
2162
  "defaultValue": null,
2168
- "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2169
- }
2170
- ]
2171
- }
2172
- ]
2173
- },
2174
- "field": {
2175
- "root": {
2176
- "name": "Field.Root",
2177
- "description": "Field.Root — groups a label, control, validation state, and supporting copy.",
2178
- "props": [
2179
- {
2180
- "name": "actionsRef",
2181
- "required": false,
2182
- "type": "RefObject<FieldRootActions | null>",
2183
- "defaultValue": null,
2184
- "description": "A ref to imperative actions.\n- `validate`: Validates the field when called."
2185
- },
2186
- {
2187
- "name": "className",
2188
- "required": false,
2189
- "type": "string | ((state: FieldRootState) => string)",
2190
- "defaultValue": null,
2191
- "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2192
- },
2193
- {
2194
- "name": "dirty",
2195
- "required": false,
2196
- "type": "boolean",
2197
- "defaultValue": null,
2198
- "description": "Whether the field's value has been changed from its initial value.\nUseful when the field state is controlled by an external library."
2199
- },
2200
- {
2201
- "name": "disabled",
2202
- "required": false,
2203
- "type": "boolean",
2204
- "defaultValue": "false",
2205
- "description": "Whether the component should ignore user interaction.\nTakes precedence over the `disabled` prop on the `<Field.Control>` component."
2206
- },
2207
- {
2208
- "name": "invalid",
2209
- "required": false,
2210
- "type": "boolean",
2211
- "defaultValue": null,
2212
- "description": "Whether the field is invalid.\nUseful when the field state is controlled by an external library."
2213
- },
2214
- {
2215
- "name": "name",
2216
- "required": false,
2217
- "type": "string",
2218
- "defaultValue": null,
2219
- "description": "Identifies the field when a form is submitted.\nTakes precedence over the `name` prop on the `<Field.Control>` component."
2220
- },
2221
- {
2222
- "name": "ref",
2223
- "required": false,
2224
- "type": "Ref<HTMLDivElement>",
2225
- "defaultValue": null,
2226
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2227
- },
2228
- {
2229
- "name": "render",
2230
- "required": false,
2231
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, FieldRootState>",
2232
- "defaultValue": null,
2233
- "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2234
- },
2235
- {
2236
- "name": "style",
2237
- "required": false,
2238
- "type": "| CSSProperties\n| ((state: FieldRootState) => CSSProperties)",
2239
- "defaultValue": null,
2240
- "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2241
- },
2242
- {
2243
- "name": "touched",
2244
- "required": false,
2245
- "type": "boolean",
2246
- "defaultValue": null,
2247
- "description": "Whether the field has been touched.\nUseful when the field state is controlled by an external library."
2248
- },
2249
- {
2250
- "name": "validate",
2251
- "required": false,
2252
- "type": "(\n value: unknown,\n formValues: Record<string, any>\n) =>\n | string\n | string[]\n | Promise<string | string[] | null>\n | null",
2253
- "defaultValue": null,
2254
- "description": "A function for custom validation. Return a string or an array of strings with\nthe error message(s) if the value is invalid, or `null` if the value is valid.\nAsynchronous functions are supported, but they do not prevent form submission\nwhen using `validationMode=\"onSubmit\"`."
2255
- },
2256
- {
2257
- "name": "validationDebounceTime",
2258
- "required": false,
2259
- "type": "number",
2260
- "defaultValue": "0",
2261
- "description": "How long to wait between `validate` callbacks if\n`validationMode=\"onChange\"` is used. Specified in milliseconds."
2262
- },
2263
- {
2264
- "name": "validationMode",
2265
- "required": false,
2266
- "type": "FormValidationMode",
2267
- "defaultValue": "onSubmit",
2268
- "description": "Determines when the field should be validated.\nThis takes precedence over the `validationMode` prop on `<Form>`.\n\n- `onSubmit`: triggers validation when the form is submitted, and re-validates on change after submission.\n- `onBlur`: triggers validation when the control loses focus.\n- `onChange`: triggers validation on every change to the control value."
2269
- }
2270
- ]
2271
- },
2272
- "subComponents": [
2273
- {
2274
- "name": "Field.Control",
2275
- "description": "Field.Control — a native input control with Field labeling and validation.",
2276
- "props": [
2163
+ "description": "Event handler called when the dialog is opened or closed."
2164
+ },
2277
2165
  {
2278
- "name": "className",
2166
+ "name": "onOpenChangeComplete",
2279
2167
  "required": false,
2280
- "type": "string | ((state: FieldControlState) => string)",
2168
+ "type": "(open: boolean) => void",
2281
2169
  "defaultValue": null,
2282
- "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2170
+ "description": "Event handler called after any animations complete when the dialog is opened or closed."
2283
2171
  },
2284
2172
  {
2285
- "name": "defaultValue",
2173
+ "name": "open",
2286
2174
  "required": false,
2287
- "type": "string | number | readonly string[]",
2175
+ "type": "boolean",
2288
2176
  "defaultValue": null,
2289
- "description": ""
2177
+ "description": "Whether the dialog is currently open."
2290
2178
  },
2291
2179
  {
2292
- "name": "onValueChange",
2180
+ "name": "size",
2293
2181
  "required": false,
2294
- "type": "(\n value: string,\n eventDetails: {\n reason: \"none\";\n event: Event;\n cancel: () => void;\n allowPropagation: () => void;\n isCanceled: boolean;\n isPropagationAllowed: boolean;\n trigger: Element;\n }\n) => void",
2295
- "defaultValue": null,
2296
- "description": "Callback fired when the `value` changes. Use when controlled."
2182
+ "type": "\"sm\" | \"md\" | \"lg\" | \"full\"",
2183
+ "defaultValue": "md",
2184
+ "description": "Width of the window."
2297
2185
  },
2298
2186
  {
2299
- "name": "ref",
2187
+ "name": "status",
2300
2188
  "required": false,
2301
- "type": "Ref<HTMLDivElement>",
2189
+ "type": "| NonNullable<\n \"info\" | \"positive\" | \"warning\" | \"negative\" | null\n >\n| undefined",
2302
2190
  "defaultValue": null,
2303
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2191
+ "description": "Adds a `Dialog.Status` with this variant at the start of the popup."
2304
2192
  },
2305
2193
  {
2306
- "name": "render",
2194
+ "name": "title",
2195
+ "required": true,
2196
+ "type": "ReactNode",
2197
+ "defaultValue": null,
2198
+ "description": "Heading of the dialog."
2199
+ },
2200
+ {
2201
+ "name": "trigger",
2307
2202
  "required": false,
2308
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, FieldControlState>",
2203
+ "type": "ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n>",
2309
2204
  "defaultValue": null,
2310
- "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2205
+ "description": "Element rendered as the trigger, such as a `Button`. Omit it for a controlled dialog."
2311
2206
  },
2312
2207
  {
2313
- "name": "style",
2208
+ "name": "triggerId",
2314
2209
  "required": false,
2315
- "type": "| CSSProperties\n| ((state: FieldControlState) => CSSProperties)",
2210
+ "type": "string | null",
2316
2211
  "defaultValue": null,
2317
- "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2212
+ "description": "ID of the trigger that the dialog is associated with.\nThis is useful in conjunction with the `open` prop to create a controlled dialog.\nThere's no need to specify this prop when the dialog is uncontrolled (that is, when the `open` prop is not set)."
2318
2213
  }
2319
2214
  ]
2320
2215
  },
2321
2216
  {
2322
- "name": "Field.Description",
2323
- "description": "Field.Description — supporting information for a field.",
2217
+ "name": "Dialog.Status",
2218
+ "description": "Dialog.Status — a tinted column at the start of the popup, spanning its full height, that marks the dialog's\nstatus with the variant's glyph. Place it first inside `Dialog.Popup`. Pass children to replace the glyph.\nDecorative (`aria-hidden`); the title carries the status.",
2219
+ "props": [
2220
+ {
2221
+ "name": "ref",
2222
+ "required": false,
2223
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
2224
+ "defaultValue": null,
2225
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2226
+ },
2227
+ {
2228
+ "name": "variant",
2229
+ "required": false,
2230
+ "type": "| \"info\"\n| \"positive\"\n| \"warning\"\n| \"negative\"\n| null",
2231
+ "defaultValue": "info",
2232
+ "description": ""
2233
+ }
2234
+ ]
2235
+ },
2236
+ {
2237
+ "name": "Dialog.Title",
2238
+ "description": "Dialog.Title — heading that names the dialog for screen readers, set as `Typo.H2`. Light on a `primary` header.",
2324
2239
  "props": [
2325
2240
  {
2326
2241
  "name": "className",
2327
2242
  "required": false,
2328
- "type": "| string\n| ((state: FieldDescriptionState) => string)",
2243
+ "type": "string | ((state: DialogTitleState) => string)",
2329
2244
  "defaultValue": null,
2330
2245
  "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2331
2246
  },
2332
2247
  {
2333
2248
  "name": "ref",
2334
2249
  "required": false,
2335
- "type": "Ref<HTMLDivElement>",
2250
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
2336
2251
  "defaultValue": null,
2337
2252
  "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2338
2253
  },
2339
2254
  {
2340
2255
  "name": "render",
2341
2256
  "required": false,
2342
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, FieldDescriptionState>",
2257
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DialogTitleState>",
2343
2258
  "defaultValue": null,
2344
2259
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2345
2260
  },
2346
2261
  {
2347
2262
  "name": "style",
2348
2263
  "required": false,
2349
- "type": "| CSSProperties\n| ((state: FieldDescriptionState) => CSSProperties)",
2264
+ "type": "| CSSProperties\n| ((state: DialogTitleState) => CSSProperties)",
2350
2265
  "defaultValue": null,
2351
2266
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2352
2267
  }
2353
2268
  ]
2354
2269
  },
2355
2270
  {
2356
- "name": "Field.Error",
2357
- "description": "Field.Error — an inline validation message shown when its match condition fails.\nIt announces itself with `role=\"alert\"`; pass another `role` to quiet it.",
2271
+ "name": "Dialog.Trigger",
2272
+ "description": "Dialog.Trigger — button that opens the dialog. `inline` styles it as a dashed-underlined term inside running text.",
2358
2273
  "props": [
2359
2274
  {
2360
2275
  "name": "className",
2361
2276
  "required": false,
2362
- "type": "string | ((state: FieldErrorState) => string)",
2277
+ "type": "string | ((state: DialogTriggerState) => string)",
2363
2278
  "defaultValue": null,
2364
2279
  "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2365
2280
  },
2366
2281
  {
2367
- "name": "match",
2282
+ "name": "handle",
2368
2283
  "required": false,
2369
- "type": "boolean | keyof ValidityState",
2284
+ "type": "DialogHandle<unknown>",
2370
2285
  "defaultValue": null,
2371
- "description": "Determines whether to show the error message according to the field's\n[ValidityState](https://developer.mozilla.org/en-US/docs/Web/API/ValidityState).\nSpecifying `true` will always show the error message, and lets external libraries\ncontrol the visibility."
2286
+ "description": "A handle to associate the trigger with a dialog.\nCan be created with the Dialog.createHandle() method."
2287
+ },
2288
+ {
2289
+ "name": "id",
2290
+ "required": false,
2291
+ "type": "string",
2292
+ "defaultValue": null,
2293
+ "description": "ID of the trigger. In addition to being forwarded to the rendered element,\nit is also used to specify the active trigger for the dialog in controlled mode (with the DialogRoot `triggerId` prop)."
2294
+ },
2295
+ {
2296
+ "name": "inline",
2297
+ "required": false,
2298
+ "type": "boolean | null",
2299
+ "defaultValue": "false",
2300
+ "description": ""
2301
+ },
2302
+ {
2303
+ "name": "nativeButton",
2304
+ "required": false,
2305
+ "type": "boolean",
2306
+ "defaultValue": "true",
2307
+ "description": "Whether the component renders a native `<button>` element when replacing it\nvia the `render` prop.\nSet to `false` if the rendered element is not a button (for example, `<div>`)."
2308
+ },
2309
+ {
2310
+ "name": "payload",
2311
+ "required": false,
2312
+ "type": "unknown",
2313
+ "defaultValue": null,
2314
+ "description": "A payload to pass to the dialog when it is opened."
2372
2315
  },
2373
2316
  {
2374
2317
  "name": "ref",
2375
2318
  "required": false,
2376
- "type": "Ref<HTMLDivElement>",
2319
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
2377
2320
  "defaultValue": null,
2378
2321
  "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2379
2322
  },
2380
2323
  {
2381
2324
  "name": "render",
2382
2325
  "required": false,
2383
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, FieldErrorState>",
2326
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DialogTriggerState>",
2384
2327
  "defaultValue": null,
2385
2328
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2386
2329
  },
2387
2330
  {
2388
2331
  "name": "style",
2389
2332
  "required": false,
2390
- "type": "| CSSProperties\n| ((state: FieldErrorState) => CSSProperties)",
2333
+ "type": "| CSSProperties\n| ((state: DialogTriggerState) => CSSProperties)",
2391
2334
  "defaultValue": null,
2392
2335
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2393
2336
  }
2394
2337
  ]
2395
2338
  },
2396
2339
  {
2397
- "name": "Field.Item",
2398
- "description": "Field.Item — groups one checkable option with its label and description.",
2340
+ "name": "Dialog.Viewport",
2341
+ "description": "Dialog.Viewport — full-screen container that centres the popup.",
2399
2342
  "props": [
2400
2343
  {
2401
2344
  "name": "className",
2402
2345
  "required": false,
2403
- "type": "string | ((state: FieldItemState) => string)",
2346
+ "type": "string | ((state: DialogViewportState) => string)",
2404
2347
  "defaultValue": null,
2405
2348
  "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2406
2349
  },
2407
- {
2408
- "name": "disabled",
2409
- "required": false,
2410
- "type": "boolean",
2411
- "defaultValue": "false",
2412
- "description": "Whether the wrapped control should ignore user interaction.\nThe `disabled` prop on `<Field.Root>` takes precedence over this."
2413
- },
2414
2350
  {
2415
2351
  "name": "ref",
2416
2352
  "required": false,
2417
- "type": "Ref<HTMLDivElement>",
2353
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
2418
2354
  "defaultValue": null,
2419
2355
  "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2420
2356
  },
2421
2357
  {
2422
2358
  "name": "render",
2423
2359
  "required": false,
2424
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, FieldItemState>",
2360
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DialogViewportState>",
2425
2361
  "defaultValue": null,
2426
2362
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2427
2363
  },
2428
2364
  {
2429
2365
  "name": "style",
2430
2366
  "required": false,
2431
- "type": "| CSSProperties\n| ((state: FieldItemState) => CSSProperties)",
2367
+ "type": "| CSSProperties\n| ((state: DialogViewportState) => CSSProperties)",
2432
2368
  "defaultValue": null,
2433
2369
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2434
2370
  }
2435
2371
  ]
2436
- },
2437
- {
2438
- "name": "Field.Label",
2439
- "description": "Field.Label — an accessible label automatically associated with the control.",
2440
- "props": [
2441
- {
2442
- "name": "className",
2443
- "required": false,
2444
- "type": "string | ((state: FieldLabelState) => string)",
2445
- "defaultValue": null,
2446
- "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2447
- },
2448
- {
2449
- "name": "nativeLabel",
2450
- "required": false,
2451
- "type": "boolean",
2452
- "defaultValue": "true",
2453
- "description": "Whether the component renders a native `<label>` element when replacing it via the `render` prop.\nSet to `false` if the rendered element is not a label (for example, `<div>`).\n\nThis is useful to avoid inheriting label behaviors on `<button>` controls (such as `<Select.Trigger>` and `<Combobox.Trigger>`), including avoiding `:hover` on the button when hovering the label, and preventing clicks on the label from firing on the button."
2454
- },
2455
- {
2456
- "name": "ref",
2457
- "required": false,
2458
- "type": "Ref<HTMLDivElement>",
2459
- "defaultValue": null,
2460
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2461
- },
2462
- {
2463
- "name": "render",
2464
- "required": false,
2465
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, FieldLabelState>",
2466
- "defaultValue": null,
2467
- "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2468
- },
2469
- {
2470
- "name": "style",
2471
- "required": false,
2472
- "type": "| CSSProperties\n| ((state: FieldLabelState) => CSSProperties)",
2473
- "defaultValue": null,
2474
- "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2475
- }
2476
- ]
2477
- },
2478
- {
2479
- "name": "Field.Validity",
2480
- "description": "Field.Validity — renderless access to the field validity data for custom messages.\nIts function child owns the rendered element and therefore its identity and styling.",
2481
- "props": [
2482
- {
2483
- "name": "children",
2484
- "required": true,
2485
- "type": "(state: FieldValidityState) => ReactNode",
2486
- "defaultValue": null,
2487
- "description": "A function that accepts the field validity state as an argument.\n\n```jsx\n<Field.Validity>\n {(validity) => {\n return <div>...</div>\n }}\n</Field.Validity>\n```"
2488
- }
2489
- ]
2490
2372
  }
2491
2373
  ]
2492
2374
  },
2493
- "fieldset": {
2375
+ "drawer": {
2494
2376
  "root": {
2495
- "name": "Fieldset.Root",
2496
- "description": "Fieldset.Root — semantic grouping for related form controls and a shared legend.",
2377
+ "name": "Drawer.Root",
2378
+ "description": "Drawer.Root — container that manages open/closed state and gesture interaction.",
2497
2379
  "props": [
2498
2380
  {
2499
- "name": "className",
2381
+ "name": "actionsRef",
2500
2382
  "required": false,
2501
- "type": "string | ((state: FieldsetRootState) => string)",
2383
+ "type": "RefObject<DrawerRootActions | null>",
2502
2384
  "defaultValue": null,
2503
- "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2385
+ "description": "A ref to imperative actions.\n- `unmount`: Manually unmounts the drawer.\nCall this after any externally controlled closing animation finishes.\n- `close`: Closes the drawer imperatively when called."
2504
2386
  },
2505
2387
  {
2506
- "name": "ref",
2388
+ "name": "borderColor",
2507
2389
  "required": false,
2508
- "type": "Ref<HTMLElement>",
2509
- "defaultValue": null,
2510
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2390
+ "type": "BorderColor",
2391
+ "defaultValue": "primary",
2392
+ "description": "Colour of the border on the panel's open edge. Inherited by Drawer.Popup;\na Popup-level prop overrides it."
2511
2393
  },
2512
2394
  {
2513
- "name": "render",
2395
+ "name": "borderStyle",
2514
2396
  "required": false,
2515
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, FieldsetRootState>",
2516
- "defaultValue": null,
2517
- "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2397
+ "type": "BorderStyle",
2398
+ "defaultValue": "solid",
2399
+ "description": "Stroke style of the border on the panel's open edge. Inherited by\nDrawer.Popup; a Popup-level prop overrides it."
2518
2400
  },
2519
2401
  {
2520
- "name": "style",
2402
+ "name": "children",
2521
2403
  "required": false,
2522
- "type": "| CSSProperties\n| ((state: FieldsetRootState) => CSSProperties)",
2523
- "defaultValue": null,
2524
- "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2525
- }
2526
- ]
2527
- },
2528
- "subComponents": [
2529
- {
2530
- "name": "Fieldset.Legend",
2531
- "description": "Fieldset.Legend — the accessible label for its related controls.",
2532
- "props": [
2533
- {
2534
- "name": "className",
2535
- "required": false,
2536
- "type": "string | ((state: FieldsetLegendState) => string)",
2537
- "defaultValue": null,
2538
- "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2539
- },
2540
- {
2541
- "name": "ref",
2542
- "required": false,
2543
- "type": "Ref<HTMLElement>",
2544
- "defaultValue": null,
2545
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2546
- },
2547
- {
2548
- "name": "render",
2549
- "required": false,
2550
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, FieldsetLegendState>",
2551
- "defaultValue": null,
2552
- "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2553
- },
2554
- {
2555
- "name": "style",
2556
- "required": false,
2557
- "type": "| CSSProperties\n| ((state: FieldsetLegendState) => CSSProperties)",
2558
- "defaultValue": null,
2559
- "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2560
- }
2561
- ]
2562
- }
2563
- ]
2564
- },
2565
- "icon": {
2566
- "root": {
2567
- "name": "Icon",
2568
- "description": "Icon — renders an icon component with a semantic Web UI foreground color.",
2569
- "props": [
2570
- {
2571
- "name": "glyph",
2572
- "required": true,
2573
- "type": "IconComponent",
2404
+ "type": "ReactNode | PayloadChildRenderFunction<Payload>",
2574
2405
  "defaultValue": null,
2575
- "description": "Icon component imported from `@imfusion/web-ui/icons`."
2406
+ "description": "The content of the drawer."
2576
2407
  },
2577
2408
  {
2578
- "name": "ref",
2409
+ "name": "defaultOpen",
2579
2410
  "required": false,
2580
- "type": "Ref<SVGSVGElement>",
2581
- "defaultValue": null,
2582
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2411
+ "type": "boolean",
2412
+ "defaultValue": "false",
2413
+ "description": "Whether the drawer is initially open.\n\nTo render a controlled drawer, use the `open` prop instead."
2583
2414
  },
2584
2415
  {
2585
- "name": "size",
2416
+ "name": "defaultSnapPoint",
2586
2417
  "required": false,
2587
- "type": "string | number",
2418
+ "type": "DrawerSnapPoint | null",
2588
2419
  "defaultValue": null,
2589
- "description": "Sets both SVG dimensions unless `width` or `height` is provided."
2420
+ "description": "The initial snap point value when uncontrolled."
2590
2421
  },
2591
2422
  {
2592
- "name": "variant",
2593
- "required": false,
2594
- "type": "| \"inherit\"\n| \"main\"\n| \"support\"\n| \"minor\"\n| \"brand\"\n| \"primary\"\n| \"positive\"\n| \"negative\"\n| \"warning\"\n| \"info\"\n| \"oncolor\"\n| \"accent-1\"\n| \"accent-2\"\n| \"accent-3\"\n| null",
2595
- "defaultValue": "inherit",
2596
- "description": ""
2597
- }
2598
- ]
2599
- },
2600
- "subComponents": []
2601
- },
2602
- "icon-button": {
2603
- "root": {
2604
- "name": "IconButton",
2605
- "description": "IconButton — a square Button that shows a single Icon. Composes Button, so every Button variant and native attribute\npasses through.",
2606
- "props": [
2607
- {
2608
- "name": "chamfer",
2423
+ "name": "defaultTriggerId",
2609
2424
  "required": false,
2610
- "type": "boolean | null",
2425
+ "type": "string | null",
2611
2426
  "defaultValue": null,
2612
- "description": ""
2427
+ "description": "ID of the trigger that the drawer is associated with.\nThis is useful in conjunction with the `defaultOpen` prop to create an initially open drawer."
2613
2428
  },
2614
2429
  {
2615
- "name": "className",
2430
+ "name": "disablePointerDismissal",
2616
2431
  "required": false,
2617
- "type": "string | ((state: ButtonState) => string)",
2618
- "defaultValue": null,
2619
- "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2432
+ "type": "boolean",
2433
+ "defaultValue": "false",
2434
+ "description": "Whether to prevent the drawer from closing on outside presses.\nFor non-modal drawers, this also prevents the drawer from closing when focus moves outside of it."
2620
2435
  },
2621
2436
  {
2622
- "name": "context",
2437
+ "name": "handle",
2623
2438
  "required": false,
2624
- "type": "\"default\" | \"oncolor\" | null",
2439
+ "type": "DialogHandle<Payload>",
2625
2440
  "defaultValue": null,
2626
- "description": ""
2441
+ "description": "A handle to associate the drawer with a trigger.\nIf specified, allows detached triggers to control the drawer's open state.\nCan be created with the Drawer.createHandle() method."
2627
2442
  },
2628
2443
  {
2629
- "name": "focusableWhenDisabled",
2444
+ "name": "modal",
2630
2445
  "required": false,
2631
- "type": "boolean",
2632
- "defaultValue": "false",
2633
- "description": "Whether the button should be focusable when disabled."
2446
+ "type": "boolean | \"trap-focus\"",
2447
+ "defaultValue": "true",
2448
+ "description": "Determines if the drawer enters a modal state when open.\n- `true`: user interaction is limited to just the drawer: focus is trapped, document page scroll is locked, and pointer interactions on outside elements are disabled.\n- `false`: user interaction with the rest of the document is allowed.\n- `'trap-focus'`: focus is trapped inside the drawer, but document page scroll is not locked and pointer interactions outside of it remain enabled."
2634
2449
  },
2635
2450
  {
2636
- "name": "glyph",
2637
- "required": true,
2638
- "type": "IconComponent",
2451
+ "name": "onOpenChange",
2452
+ "required": false,
2453
+ "type": "(\n open: boolean,\n eventDetails: DrawerRootChangeEventDetails\n) => void",
2639
2454
  "defaultValue": null,
2640
- "description": "Icon component imported from `@imfusion/web-ui/icons`."
2455
+ "description": "Event handler called when the drawer is opened or closed."
2641
2456
  },
2642
2457
  {
2643
- "name": "iconProps",
2458
+ "name": "onOpenChangeComplete",
2644
2459
  "required": false,
2645
- "type": "Omit<Omit<Omit<SVGProps<SVGSVGElement>, \"ref\"> & RefAttributes<SVGSVGElement>, \"color\"> & VariantProps<(props?: (ConfigVariants<...> & ClassProp)) => string> & { ...; }, \"glyph\">",
2460
+ "type": "(open: boolean) => void",
2646
2461
  "defaultValue": null,
2647
- "description": "Props for the inner Icon, such as `strokeWidth` or a `size` override."
2462
+ "description": "Event handler called after any animations complete when the drawer is opened or closed."
2648
2463
  },
2649
2464
  {
2650
- "name": "label",
2651
- "required": true,
2652
- "type": "string",
2465
+ "name": "onSnapPointChange",
2466
+ "required": false,
2467
+ "type": "(\n snapPoint: DrawerSnapPoint | null,\n eventDetails: DrawerRootSnapPointChangeEventDetails\n) => void",
2653
2468
  "defaultValue": null,
2654
- "description": "Accessible name; the button renders no visible text."
2469
+ "description": "Callback fired when the snap point changes."
2655
2470
  },
2656
2471
  {
2657
- "name": "nativeButton",
2472
+ "name": "open",
2658
2473
  "required": false,
2659
2474
  "type": "boolean",
2660
- "defaultValue": "true",
2661
- "description": "Whether the component renders a native `<button>` element when replacing it\nvia the `render` prop.\nSet to `false` if the rendered element is not a button (for example, `<div>`)."
2662
- },
2663
- {
2664
- "name": "radius",
2665
- "required": false,
2666
- "type": "\"sm\" | \"md\" | \"lg\" | \"none\" | \"round\" | null",
2667
2475
  "defaultValue": null,
2668
- "description": ""
2476
+ "description": "Whether the drawer is currently open."
2669
2477
  },
2670
2478
  {
2671
- "name": "ref",
2479
+ "name": "snapPoint",
2672
2480
  "required": false,
2673
- "type": "Ref<HTMLElement>",
2481
+ "type": "DrawerSnapPoint | null",
2674
2482
  "defaultValue": null,
2675
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2483
+ "description": "The currently active snap point. Use with `onSnapPointChange` to control the snap point."
2676
2484
  },
2677
2485
  {
2678
- "name": "render",
2486
+ "name": "snapPoints",
2679
2487
  "required": false,
2680
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, ButtonState>",
2488
+ "type": "DrawerSnapPoint[]",
2681
2489
  "defaultValue": null,
2682
- "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2490
+ "description": "Snap points used to position the drawer.\nUse numbers between 0 and 1 to represent fractions of the viewport height,\nnumbers greater than 1 as pixel values, or strings in `px`/`rem` units\n(for example, `'148px'` or `'30rem'`)."
2683
2491
  },
2684
2492
  {
2685
- "name": "shortcut",
2493
+ "name": "snapToSequentialPoints",
2686
2494
  "required": false,
2687
- "type": "string",
2688
- "defaultValue": null,
2689
- "description": "Key hint shown in the top corner at the end of the line, such as `\"S\"` or `\"Ctrl Z\"`. It also sets\n`aria-keyshortcuts` in its notation (`Control+Z`), which an explicit\n`aria-keyshortcuts` prop overrides. Display only: bind the key in the app, for example with `useHotkey` from TanStack Hotkeys."
2495
+ "type": "boolean",
2496
+ "defaultValue": "false",
2497
+ "description": "Disables velocity-based snap skipping so drag distance determines the next snap point."
2690
2498
  },
2691
2499
  {
2692
- "name": "size",
2500
+ "name": "swipeDirection",
2693
2501
  "required": false,
2694
- "type": "\"sm\" | \"md\" | \"lg\" | \"hero\" | null",
2695
- "defaultValue": "md",
2696
- "description": ""
2502
+ "type": "SwipeDirection",
2503
+ "defaultValue": "down",
2504
+ "description": "The swipe direction used to dismiss the drawer."
2697
2505
  },
2698
2506
  {
2699
- "name": "style",
2507
+ "name": "triggerId",
2700
2508
  "required": false,
2701
- "type": "| CSSProperties\n| ((state: ButtonState) => CSSProperties)",
2509
+ "type": "string | null",
2702
2510
  "defaultValue": null,
2703
- "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2704
- },
2705
- {
2706
- "name": "variant",
2707
- "required": false,
2511
+ "description": "ID of the trigger that the drawer is associated with.\nThis is useful in conjunction with the `open` prop to create a controlled drawer.\nThere's no need to specify this prop when the drawer is uncontrolled (that is, when the `open` prop is not set)."
2512
+ }
2513
+ ]
2514
+ },
2515
+ "subComponents": [
2516
+ {
2517
+ "name": "Drawer.Backdrop",
2518
+ "description": "Drawer.Backdrop — semi-transparent overlay that dims the page content behind the drawer.",
2519
+ "props": [
2520
+ {
2521
+ "name": "className",
2522
+ "required": false,
2523
+ "type": "string | ((state: DrawerBackdropState) => string)",
2524
+ "defaultValue": null,
2525
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2526
+ },
2527
+ {
2528
+ "name": "forceRender",
2529
+ "required": false,
2530
+ "type": "boolean",
2531
+ "defaultValue": "false",
2532
+ "description": "Whether the backdrop is forced to render even when nested."
2533
+ },
2534
+ {
2535
+ "name": "ref",
2536
+ "required": false,
2537
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
2538
+ "defaultValue": null,
2539
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2540
+ },
2541
+ {
2542
+ "name": "render",
2543
+ "required": false,
2544
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerBackdropState>",
2545
+ "defaultValue": null,
2546
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2547
+ },
2548
+ {
2549
+ "name": "style",
2550
+ "required": false,
2551
+ "type": "| CSSProperties\n| ((state: DrawerBackdropState) => CSSProperties)",
2552
+ "defaultValue": null,
2553
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2554
+ }
2555
+ ]
2556
+ },
2557
+ {
2558
+ "name": "Drawer.Close",
2559
+ "description": "Drawer.Close — button that closes the drawer.",
2560
+ "props": [
2561
+ {
2562
+ "name": "className",
2563
+ "required": false,
2564
+ "type": "string | ((state: DrawerCloseState) => string)",
2565
+ "defaultValue": null,
2566
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2567
+ },
2568
+ {
2569
+ "name": "nativeButton",
2570
+ "required": false,
2571
+ "type": "boolean",
2572
+ "defaultValue": "true",
2573
+ "description": "Whether the component renders a native `<button>` element when replacing it\nvia the `render` prop.\nSet to `false` if the rendered element is not a button (for example, `<div>`)."
2574
+ },
2575
+ {
2576
+ "name": "ref",
2577
+ "required": false,
2578
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
2579
+ "defaultValue": null,
2580
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2581
+ },
2582
+ {
2583
+ "name": "render",
2584
+ "required": false,
2585
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerCloseState>",
2586
+ "defaultValue": null,
2587
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2588
+ },
2589
+ {
2590
+ "name": "style",
2591
+ "required": false,
2592
+ "type": "| CSSProperties\n| ((state: DrawerCloseState) => CSSProperties)",
2593
+ "defaultValue": null,
2594
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2595
+ }
2596
+ ]
2597
+ },
2598
+ {
2599
+ "name": "Drawer.Content",
2600
+ "description": "Drawer.Content — scrollable content wrapper inside the popup.",
2601
+ "props": [
2602
+ {
2603
+ "name": "className",
2604
+ "required": false,
2605
+ "type": "string | ((state: DrawerContentState) => string)",
2606
+ "defaultValue": null,
2607
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2608
+ },
2609
+ {
2610
+ "name": "ref",
2611
+ "required": false,
2612
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
2613
+ "defaultValue": null,
2614
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2615
+ },
2616
+ {
2617
+ "name": "render",
2618
+ "required": false,
2619
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerContentState>",
2620
+ "defaultValue": null,
2621
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2622
+ },
2623
+ {
2624
+ "name": "style",
2625
+ "required": false,
2626
+ "type": "| CSSProperties\n| ((state: DrawerContentState) => CSSProperties)",
2627
+ "defaultValue": null,
2628
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2629
+ }
2630
+ ]
2631
+ },
2632
+ {
2633
+ "name": "Drawer.Description",
2634
+ "description": "Drawer.Description — supplementary paragraph describing the drawer's purpose for screen readers.",
2635
+ "props": [
2636
+ {
2637
+ "name": "className",
2638
+ "required": false,
2639
+ "type": "| string\n| ((state: DrawerDescriptionState) => string)",
2640
+ "defaultValue": null,
2641
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2642
+ },
2643
+ {
2644
+ "name": "ref",
2645
+ "required": false,
2646
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
2647
+ "defaultValue": null,
2648
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2649
+ },
2650
+ {
2651
+ "name": "render",
2652
+ "required": false,
2653
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerDescriptionState>",
2654
+ "defaultValue": null,
2655
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2656
+ },
2657
+ {
2658
+ "name": "style",
2659
+ "required": false,
2660
+ "type": "| CSSProperties\n| ((state: DrawerDescriptionState) => CSSProperties)",
2661
+ "defaultValue": null,
2662
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2663
+ }
2664
+ ]
2665
+ },
2666
+ {
2667
+ "name": "Drawer.Indent",
2668
+ "description": "Drawer.Indent — wraps app content that scales and lifts when a drawer opens. Receives `data-active` from Base UI; use `--drawer-swipe-progress` in CSS to drive the animation.",
2669
+ "props": [
2670
+ {
2671
+ "name": "className",
2672
+ "required": false,
2673
+ "type": "string | ((state: DrawerIndentState) => string)",
2674
+ "defaultValue": null,
2675
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2676
+ },
2677
+ {
2678
+ "name": "ref",
2679
+ "required": false,
2680
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
2681
+ "defaultValue": null,
2682
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2683
+ },
2684
+ {
2685
+ "name": "render",
2686
+ "required": false,
2687
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerIndentState>",
2688
+ "defaultValue": null,
2689
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2690
+ },
2691
+ {
2692
+ "name": "style",
2693
+ "required": false,
2694
+ "type": "| CSSProperties\n| ((state: DrawerIndentState) => CSSProperties)",
2695
+ "defaultValue": null,
2696
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2697
+ }
2698
+ ]
2699
+ },
2700
+ {
2701
+ "name": "Drawer.IndentBackground",
2702
+ "description": "Drawer.IndentBackground — background layer placed behind Drawer.Indent. Styled to reveal a dark surface as the app content scales away.",
2703
+ "props": [
2704
+ {
2705
+ "name": "className",
2706
+ "required": false,
2707
+ "type": "| string\n| ((state: DrawerIndentBackgroundState) => string)",
2708
+ "defaultValue": null,
2709
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2710
+ },
2711
+ {
2712
+ "name": "ref",
2713
+ "required": false,
2714
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
2715
+ "defaultValue": null,
2716
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2717
+ },
2718
+ {
2719
+ "name": "render",
2720
+ "required": false,
2721
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<\n HTMLProps,\n DrawerIndentBackgroundState\n >",
2722
+ "defaultValue": null,
2723
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2724
+ },
2725
+ {
2726
+ "name": "style",
2727
+ "required": false,
2728
+ "type": "| CSSProperties\n| ((state: DrawerIndentBackgroundState) => CSSProperties)",
2729
+ "defaultValue": null,
2730
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2731
+ }
2732
+ ]
2733
+ },
2734
+ {
2735
+ "name": "Drawer.Popup",
2736
+ "description": "Drawer.Popup — the visible panel surface. Positioning is driven automatically by the nearest Drawer.Root's swipeDirection.",
2737
+ "props": [
2738
+ {
2739
+ "name": "borderColor",
2740
+ "required": false,
2741
+ "type": "BorderColor",
2742
+ "defaultValue": null,
2743
+ "description": "Colour of the border on the open edge. Overrides the value inherited from\nDrawer.Root; defaults to it when unset."
2744
+ },
2745
+ {
2746
+ "name": "borderStyle",
2747
+ "required": false,
2748
+ "type": "BorderStyle",
2749
+ "defaultValue": null,
2750
+ "description": "Stroke style of the border on the open edge. Overrides the value inherited\nfrom Drawer.Root; defaults to it when unset."
2751
+ },
2752
+ {
2753
+ "name": "className",
2754
+ "required": false,
2755
+ "type": "string | ((state: DrawerPopupState) => string)",
2756
+ "defaultValue": null,
2757
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2758
+ },
2759
+ {
2760
+ "name": "finalFocus",
2761
+ "required": false,
2762
+ "type": "| boolean\n| RefObject<HTMLElement | null>\n| ((\n closeType: InteractionType\n ) => boolean | void | HTMLElement | null)",
2763
+ "defaultValue": null,
2764
+ "description": "Determines the element to focus when the drawer is closed.\n\n- `false`: Do not move focus.\n- `true`: Move focus based on the default behavior (trigger or previously focused element).\n- `RefObject`: Move focus to the ref element.\n- `function`: Called with the interaction type (`mouse`, `touch`, `pen`, or `keyboard`).\n Return an element to focus, `true` to use the default behavior, or `false`/`undefined` to do nothing."
2765
+ },
2766
+ {
2767
+ "name": "initialFocus",
2768
+ "required": false,
2769
+ "type": "| boolean\n| RefObject<HTMLElement | null>\n| ((\n openType: InteractionType\n ) => boolean | void | HTMLElement | null)",
2770
+ "defaultValue": null,
2771
+ "description": "Determines the element to focus when the drawer is opened.\n\n- `false`: Do not move focus.\n- `true`: Move focus based on the default behavior (first tabbable element or popup).\n- `RefObject`: Move focus to the ref element.\n- `function`: Called with the interaction type (`mouse`, `touch`, `pen`, or `keyboard`).\n Return an element to focus, `true` to use the default behavior, or `false`/`undefined` to do nothing."
2772
+ },
2773
+ {
2774
+ "name": "ref",
2775
+ "required": false,
2776
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
2777
+ "defaultValue": null,
2778
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2779
+ },
2780
+ {
2781
+ "name": "render",
2782
+ "required": false,
2783
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerPopupState>",
2784
+ "defaultValue": null,
2785
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2786
+ },
2787
+ {
2788
+ "name": "style",
2789
+ "required": false,
2790
+ "type": "| CSSProperties\n| ((state: DrawerPopupState) => CSSProperties)",
2791
+ "defaultValue": null,
2792
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2793
+ }
2794
+ ]
2795
+ },
2796
+ {
2797
+ "name": "Drawer.Portal",
2798
+ "description": "Drawer.Portal — renders backdrop and popup in a portal outside the main document flow.",
2799
+ "props": [
2800
+ {
2801
+ "name": "className",
2802
+ "required": false,
2803
+ "type": "string | ((state: DrawerPortalState) => string)",
2804
+ "defaultValue": null,
2805
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2806
+ },
2807
+ {
2808
+ "name": "container",
2809
+ "required": false,
2810
+ "type": "| HTMLElement\n| ShadowRoot\n| RefObject<HTMLElement | ShadowRoot | null>\n| null",
2811
+ "defaultValue": null,
2812
+ "description": "A parent element to render the portal element into."
2813
+ },
2814
+ {
2815
+ "name": "keepMounted",
2816
+ "required": false,
2817
+ "type": "boolean",
2818
+ "defaultValue": "false",
2819
+ "description": "Whether to keep the portal mounted in the DOM while the popup is hidden."
2820
+ },
2821
+ {
2822
+ "name": "ref",
2823
+ "required": false,
2824
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
2825
+ "defaultValue": null,
2826
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2827
+ },
2828
+ {
2829
+ "name": "render",
2830
+ "required": false,
2831
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerPortalState>",
2832
+ "defaultValue": null,
2833
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2834
+ },
2835
+ {
2836
+ "name": "style",
2837
+ "required": false,
2838
+ "type": "| CSSProperties\n| ((state: DrawerPortalState) => CSSProperties)",
2839
+ "defaultValue": null,
2840
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2841
+ }
2842
+ ]
2843
+ },
2844
+ {
2845
+ "name": "Drawer.Provider",
2846
+ "description": "Drawer.Provider — shared context for coordinating indent/background effects across multiple drawers. Required ancestor for Drawer.Indent and Drawer.IndentBackground.",
2847
+ "props": []
2848
+ },
2849
+ {
2850
+ "name": "Drawer.SwipeArea",
2851
+ "description": "Drawer.SwipeArea — invisible fixed region that listens for swipe gestures to open the drawer. Position and size it at the screen edge relevant to the swipeDirection.",
2852
+ "props": [
2853
+ {
2854
+ "name": "className",
2855
+ "required": false,
2856
+ "type": "| string\n| ((state: DrawerSwipeAreaState) => string)",
2857
+ "defaultValue": null,
2858
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2859
+ },
2860
+ {
2861
+ "name": "disabled",
2862
+ "required": false,
2863
+ "type": "boolean",
2864
+ "defaultValue": "false",
2865
+ "description": "Whether the swipe area is disabled."
2866
+ },
2867
+ {
2868
+ "name": "ref",
2869
+ "required": false,
2870
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
2871
+ "defaultValue": null,
2872
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2873
+ },
2874
+ {
2875
+ "name": "render",
2876
+ "required": false,
2877
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerSwipeAreaState>",
2878
+ "defaultValue": null,
2879
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2880
+ },
2881
+ {
2882
+ "name": "style",
2883
+ "required": false,
2884
+ "type": "| CSSProperties\n| ((state: DrawerSwipeAreaState) => CSSProperties)",
2885
+ "defaultValue": null,
2886
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2887
+ },
2888
+ {
2889
+ "name": "swipeDirection",
2890
+ "required": false,
2891
+ "type": "SwipeDirection",
2892
+ "defaultValue": null,
2893
+ "description": "The swipe direction that opens the drawer.\nDefaults to the opposite of `Drawer.Root` `swipeDirection`."
2894
+ }
2895
+ ]
2896
+ },
2897
+ {
2898
+ "name": "Drawer.Title",
2899
+ "description": "Drawer.Title — semantic heading for the drawer for screen readers.",
2900
+ "props": [
2901
+ {
2902
+ "name": "className",
2903
+ "required": false,
2904
+ "type": "string | ((state: DrawerTitleState) => string)",
2905
+ "defaultValue": null,
2906
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2907
+ },
2908
+ {
2909
+ "name": "ref",
2910
+ "required": false,
2911
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
2912
+ "defaultValue": null,
2913
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2914
+ },
2915
+ {
2916
+ "name": "render",
2917
+ "required": false,
2918
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerTitleState>",
2919
+ "defaultValue": null,
2920
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2921
+ },
2922
+ {
2923
+ "name": "style",
2924
+ "required": false,
2925
+ "type": "| CSSProperties\n| ((state: DrawerTitleState) => CSSProperties)",
2926
+ "defaultValue": null,
2927
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2928
+ }
2929
+ ]
2930
+ },
2931
+ {
2932
+ "name": "Drawer.Trigger",
2933
+ "description": "Drawer.Trigger — button that opens the drawer.",
2934
+ "props": [
2935
+ {
2936
+ "name": "className",
2937
+ "required": false,
2938
+ "type": "string | ((state: DrawerTriggerState) => string)",
2939
+ "defaultValue": null,
2940
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
2941
+ },
2942
+ {
2943
+ "name": "handle",
2944
+ "required": false,
2945
+ "type": "DialogHandle<unknown>",
2946
+ "defaultValue": null,
2947
+ "description": "A handle to associate the trigger with a drawer.\nCan be created with the Drawer.createHandle() method."
2948
+ },
2949
+ {
2950
+ "name": "id",
2951
+ "required": false,
2952
+ "type": "string",
2953
+ "defaultValue": null,
2954
+ "description": "ID of the trigger. In addition to being forwarded to the rendered element,\nit is also used to specify the active trigger for drawers in controlled mode (with the Drawer.Root `triggerId` prop)."
2955
+ },
2956
+ {
2957
+ "name": "nativeButton",
2958
+ "required": false,
2959
+ "type": "boolean",
2960
+ "defaultValue": "true",
2961
+ "description": "Whether the component renders a native `<button>` element when replacing it\nvia the `render` prop.\nSet to `false` if the rendered element is not a button (for example, `<div>`)."
2962
+ },
2963
+ {
2964
+ "name": "payload",
2965
+ "required": false,
2966
+ "type": "unknown",
2967
+ "defaultValue": null,
2968
+ "description": "A payload to pass to the drawer when it is opened."
2969
+ },
2970
+ {
2971
+ "name": "ref",
2972
+ "required": false,
2973
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
2974
+ "defaultValue": null,
2975
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
2976
+ },
2977
+ {
2978
+ "name": "render",
2979
+ "required": false,
2980
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerTriggerState>",
2981
+ "defaultValue": null,
2982
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
2983
+ },
2984
+ {
2985
+ "name": "style",
2986
+ "required": false,
2987
+ "type": "| CSSProperties\n| ((state: DrawerTriggerState) => CSSProperties)",
2988
+ "defaultValue": null,
2989
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
2990
+ }
2991
+ ]
2992
+ },
2993
+ {
2994
+ "name": "Drawer.Viewport",
2995
+ "description": "Drawer.Viewport — full-screen container that positions the popup.",
2996
+ "props": [
2997
+ {
2998
+ "name": "className",
2999
+ "required": false,
3000
+ "type": "string | ((state: DrawerViewportState) => string)",
3001
+ "defaultValue": null,
3002
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
3003
+ },
3004
+ {
3005
+ "name": "ref",
3006
+ "required": false,
3007
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
3008
+ "defaultValue": null,
3009
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
3010
+ },
3011
+ {
3012
+ "name": "render",
3013
+ "required": false,
3014
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, DrawerViewportState>",
3015
+ "defaultValue": null,
3016
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
3017
+ },
3018
+ {
3019
+ "name": "style",
3020
+ "required": false,
3021
+ "type": "| CSSProperties\n| ((state: DrawerViewportState) => CSSProperties)",
3022
+ "defaultValue": null,
3023
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
3024
+ }
3025
+ ]
3026
+ }
3027
+ ]
3028
+ },
3029
+ "field": {
3030
+ "root": {
3031
+ "name": "Field.Root",
3032
+ "description": "Field.Root — groups a label, control, validation state, and supporting copy.",
3033
+ "props": [
3034
+ {
3035
+ "name": "actionsRef",
3036
+ "required": false,
3037
+ "type": "RefObject<FieldRootActions | null>",
3038
+ "defaultValue": null,
3039
+ "description": "A ref to imperative actions.\n- `validate`: Validates the field when called."
3040
+ },
3041
+ {
3042
+ "name": "className",
3043
+ "required": false,
3044
+ "type": "string | ((state: FieldRootState) => string)",
3045
+ "defaultValue": null,
3046
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
3047
+ },
3048
+ {
3049
+ "name": "dirty",
3050
+ "required": false,
3051
+ "type": "boolean",
3052
+ "defaultValue": null,
3053
+ "description": "Whether the field's value has been changed from its initial value.\nUseful when the field state is controlled by an external library."
3054
+ },
3055
+ {
3056
+ "name": "disabled",
3057
+ "required": false,
3058
+ "type": "boolean",
3059
+ "defaultValue": "false",
3060
+ "description": "Whether the component should ignore user interaction.\nTakes precedence over the `disabled` prop on the `<Field.Control>` component."
3061
+ },
3062
+ {
3063
+ "name": "invalid",
3064
+ "required": false,
3065
+ "type": "boolean",
3066
+ "defaultValue": null,
3067
+ "description": "Whether the field is invalid.\nUseful when the field state is controlled by an external library."
3068
+ },
3069
+ {
3070
+ "name": "name",
3071
+ "required": false,
3072
+ "type": "string",
3073
+ "defaultValue": null,
3074
+ "description": "Identifies the field when a form is submitted.\nTakes precedence over the `name` prop on the `<Field.Control>` component."
3075
+ },
3076
+ {
3077
+ "name": "ref",
3078
+ "required": false,
3079
+ "type": "Ref<HTMLDivElement>",
3080
+ "defaultValue": null,
3081
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
3082
+ },
3083
+ {
3084
+ "name": "render",
3085
+ "required": false,
3086
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, FieldRootState>",
3087
+ "defaultValue": null,
3088
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
3089
+ },
3090
+ {
3091
+ "name": "style",
3092
+ "required": false,
3093
+ "type": "| CSSProperties\n| ((state: FieldRootState) => CSSProperties)",
3094
+ "defaultValue": null,
3095
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
3096
+ },
3097
+ {
3098
+ "name": "touched",
3099
+ "required": false,
3100
+ "type": "boolean",
3101
+ "defaultValue": null,
3102
+ "description": "Whether the field has been touched.\nUseful when the field state is controlled by an external library."
3103
+ },
3104
+ {
3105
+ "name": "validate",
3106
+ "required": false,
3107
+ "type": "(\n value: unknown,\n formValues: Record<string, any>\n) =>\n | string\n | string[]\n | Promise<string | string[] | null>\n | null",
3108
+ "defaultValue": null,
3109
+ "description": "A function for custom validation. Return a string or an array of strings with\nthe error message(s) if the value is invalid, or `null` if the value is valid.\nAsynchronous functions are supported, but they do not prevent form submission\nwhen using `validationMode=\"onSubmit\"`."
3110
+ },
3111
+ {
3112
+ "name": "validationDebounceTime",
3113
+ "required": false,
3114
+ "type": "number",
3115
+ "defaultValue": "0",
3116
+ "description": "How long to wait between `validate` callbacks if\n`validationMode=\"onChange\"` is used. Specified in milliseconds."
3117
+ },
3118
+ {
3119
+ "name": "validationMode",
3120
+ "required": false,
3121
+ "type": "FormValidationMode",
3122
+ "defaultValue": "onSubmit",
3123
+ "description": "Determines when the field should be validated.\nThis takes precedence over the `validationMode` prop on `<Form>`.\n\n- `onSubmit`: triggers validation when the form is submitted, and re-validates on change after submission.\n- `onBlur`: triggers validation when the control loses focus.\n- `onChange`: triggers validation on every change to the control value."
3124
+ }
3125
+ ]
3126
+ },
3127
+ "subComponents": [
3128
+ {
3129
+ "name": "Field.Control",
3130
+ "description": "Field.Control — a native input control with Field labeling and validation.",
3131
+ "props": [
3132
+ {
3133
+ "name": "className",
3134
+ "required": false,
3135
+ "type": "string | ((state: FieldControlState) => string)",
3136
+ "defaultValue": null,
3137
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
3138
+ },
3139
+ {
3140
+ "name": "defaultValue",
3141
+ "required": false,
3142
+ "type": "string | number | readonly string[]",
3143
+ "defaultValue": null,
3144
+ "description": ""
3145
+ },
3146
+ {
3147
+ "name": "onValueChange",
3148
+ "required": false,
3149
+ "type": "(\n value: string,\n eventDetails: {\n reason: \"none\";\n event: Event;\n cancel: () => void;\n allowPropagation: () => void;\n isCanceled: boolean;\n isPropagationAllowed: boolean;\n trigger: Element;\n }\n) => void",
3150
+ "defaultValue": null,
3151
+ "description": "Callback fired when the `value` changes. Use when controlled."
3152
+ },
3153
+ {
3154
+ "name": "ref",
3155
+ "required": false,
3156
+ "type": "Ref<HTMLDivElement>",
3157
+ "defaultValue": null,
3158
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
3159
+ },
3160
+ {
3161
+ "name": "render",
3162
+ "required": false,
3163
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, FieldControlState>",
3164
+ "defaultValue": null,
3165
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
3166
+ },
3167
+ {
3168
+ "name": "style",
3169
+ "required": false,
3170
+ "type": "| CSSProperties\n| ((state: FieldControlState) => CSSProperties)",
3171
+ "defaultValue": null,
3172
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
3173
+ }
3174
+ ]
3175
+ },
3176
+ {
3177
+ "name": "Field.Description",
3178
+ "description": "Field.Description — supporting information for a field.",
3179
+ "props": [
3180
+ {
3181
+ "name": "className",
3182
+ "required": false,
3183
+ "type": "| string\n| ((state: FieldDescriptionState) => string)",
3184
+ "defaultValue": null,
3185
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
3186
+ },
3187
+ {
3188
+ "name": "ref",
3189
+ "required": false,
3190
+ "type": "Ref<HTMLDivElement>",
3191
+ "defaultValue": null,
3192
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
3193
+ },
3194
+ {
3195
+ "name": "render",
3196
+ "required": false,
3197
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, FieldDescriptionState>",
3198
+ "defaultValue": null,
3199
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
3200
+ },
3201
+ {
3202
+ "name": "style",
3203
+ "required": false,
3204
+ "type": "| CSSProperties\n| ((state: FieldDescriptionState) => CSSProperties)",
3205
+ "defaultValue": null,
3206
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
3207
+ }
3208
+ ]
3209
+ },
3210
+ {
3211
+ "name": "Field.Error",
3212
+ "description": "Field.Error — an inline validation message shown when its match condition fails.\nIt announces itself with `role=\"alert\"`; pass another `role` to quiet it.",
3213
+ "props": [
3214
+ {
3215
+ "name": "className",
3216
+ "required": false,
3217
+ "type": "string | ((state: FieldErrorState) => string)",
3218
+ "defaultValue": null,
3219
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
3220
+ },
3221
+ {
3222
+ "name": "match",
3223
+ "required": false,
3224
+ "type": "boolean | keyof ValidityState",
3225
+ "defaultValue": null,
3226
+ "description": "Determines whether to show the error message according to the field's\n[ValidityState](https://developer.mozilla.org/en-US/docs/Web/API/ValidityState).\nSpecifying `true` will always show the error message, and lets external libraries\ncontrol the visibility."
3227
+ },
3228
+ {
3229
+ "name": "ref",
3230
+ "required": false,
3231
+ "type": "Ref<HTMLDivElement>",
3232
+ "defaultValue": null,
3233
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
3234
+ },
3235
+ {
3236
+ "name": "render",
3237
+ "required": false,
3238
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, FieldErrorState>",
3239
+ "defaultValue": null,
3240
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
3241
+ },
3242
+ {
3243
+ "name": "style",
3244
+ "required": false,
3245
+ "type": "| CSSProperties\n| ((state: FieldErrorState) => CSSProperties)",
3246
+ "defaultValue": null,
3247
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
3248
+ }
3249
+ ]
3250
+ },
3251
+ {
3252
+ "name": "Field.Item",
3253
+ "description": "Field.Item — groups one checkable option with its label and description.",
3254
+ "props": [
3255
+ {
3256
+ "name": "className",
3257
+ "required": false,
3258
+ "type": "string | ((state: FieldItemState) => string)",
3259
+ "defaultValue": null,
3260
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
3261
+ },
3262
+ {
3263
+ "name": "disabled",
3264
+ "required": false,
3265
+ "type": "boolean",
3266
+ "defaultValue": "false",
3267
+ "description": "Whether the wrapped control should ignore user interaction.\nThe `disabled` prop on `<Field.Root>` takes precedence over this."
3268
+ },
3269
+ {
3270
+ "name": "ref",
3271
+ "required": false,
3272
+ "type": "Ref<HTMLDivElement>",
3273
+ "defaultValue": null,
3274
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
3275
+ },
3276
+ {
3277
+ "name": "render",
3278
+ "required": false,
3279
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, FieldItemState>",
3280
+ "defaultValue": null,
3281
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
3282
+ },
3283
+ {
3284
+ "name": "style",
3285
+ "required": false,
3286
+ "type": "| CSSProperties\n| ((state: FieldItemState) => CSSProperties)",
3287
+ "defaultValue": null,
3288
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
3289
+ }
3290
+ ]
3291
+ },
3292
+ {
3293
+ "name": "Field.Label",
3294
+ "description": "Field.Label — an accessible label automatically associated with the control.",
3295
+ "props": [
3296
+ {
3297
+ "name": "className",
3298
+ "required": false,
3299
+ "type": "string | ((state: FieldLabelState) => string)",
3300
+ "defaultValue": null,
3301
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
3302
+ },
3303
+ {
3304
+ "name": "nativeLabel",
3305
+ "required": false,
3306
+ "type": "boolean",
3307
+ "defaultValue": "true",
3308
+ "description": "Whether the component renders a native `<label>` element when replacing it via the `render` prop.\nSet to `false` if the rendered element is not a label (for example, `<div>`).\n\nThis is useful to avoid inheriting label behaviors on `<button>` controls (such as `<Select.Trigger>` and `<Combobox.Trigger>`), including avoiding `:hover` on the button when hovering the label, and preventing clicks on the label from firing on the button."
3309
+ },
3310
+ {
3311
+ "name": "ref",
3312
+ "required": false,
3313
+ "type": "Ref<HTMLDivElement>",
3314
+ "defaultValue": null,
3315
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
3316
+ },
3317
+ {
3318
+ "name": "render",
3319
+ "required": false,
3320
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, FieldLabelState>",
3321
+ "defaultValue": null,
3322
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
3323
+ },
3324
+ {
3325
+ "name": "style",
3326
+ "required": false,
3327
+ "type": "| CSSProperties\n| ((state: FieldLabelState) => CSSProperties)",
3328
+ "defaultValue": null,
3329
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
3330
+ }
3331
+ ]
3332
+ },
3333
+ {
3334
+ "name": "Field.Validity",
3335
+ "description": "Field.Validity — renderless access to the field validity data for custom messages.\nIts function child owns the rendered element and therefore its identity and styling.",
3336
+ "props": [
3337
+ {
3338
+ "name": "children",
3339
+ "required": true,
3340
+ "type": "(state: FieldValidityState) => ReactNode",
3341
+ "defaultValue": null,
3342
+ "description": "A function that accepts the field validity state as an argument.\n\n```jsx\n<Field.Validity>\n {(validity) => {\n return <div>...</div>\n }}\n</Field.Validity>\n```"
3343
+ }
3344
+ ]
3345
+ }
3346
+ ]
3347
+ },
3348
+ "fieldset": {
3349
+ "root": {
3350
+ "name": "Fieldset.Root",
3351
+ "description": "Fieldset.Root — semantic grouping for related form controls and a shared legend.",
3352
+ "props": [
3353
+ {
3354
+ "name": "className",
3355
+ "required": false,
3356
+ "type": "string | ((state: FieldsetRootState) => string)",
3357
+ "defaultValue": null,
3358
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
3359
+ },
3360
+ {
3361
+ "name": "ref",
3362
+ "required": false,
3363
+ "type": "Ref<HTMLElement>",
3364
+ "defaultValue": null,
3365
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
3366
+ },
3367
+ {
3368
+ "name": "render",
3369
+ "required": false,
3370
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, FieldsetRootState>",
3371
+ "defaultValue": null,
3372
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
3373
+ },
3374
+ {
3375
+ "name": "style",
3376
+ "required": false,
3377
+ "type": "| CSSProperties\n| ((state: FieldsetRootState) => CSSProperties)",
3378
+ "defaultValue": null,
3379
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
3380
+ }
3381
+ ]
3382
+ },
3383
+ "subComponents": [
3384
+ {
3385
+ "name": "Fieldset.Legend",
3386
+ "description": "Fieldset.Legend — the accessible label for its related controls.",
3387
+ "props": [
3388
+ {
3389
+ "name": "className",
3390
+ "required": false,
3391
+ "type": "string | ((state: FieldsetLegendState) => string)",
3392
+ "defaultValue": null,
3393
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
3394
+ },
3395
+ {
3396
+ "name": "ref",
3397
+ "required": false,
3398
+ "type": "Ref<HTMLElement>",
3399
+ "defaultValue": null,
3400
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
3401
+ },
3402
+ {
3403
+ "name": "render",
3404
+ "required": false,
3405
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, FieldsetLegendState>",
3406
+ "defaultValue": null,
3407
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
3408
+ },
3409
+ {
3410
+ "name": "style",
3411
+ "required": false,
3412
+ "type": "| CSSProperties\n| ((state: FieldsetLegendState) => CSSProperties)",
3413
+ "defaultValue": null,
3414
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
3415
+ }
3416
+ ]
3417
+ }
3418
+ ]
3419
+ },
3420
+ "icon": {
3421
+ "root": {
3422
+ "name": "Icon",
3423
+ "description": "Icon — renders an icon component with a semantic Web UI foreground color.",
3424
+ "props": [
3425
+ {
3426
+ "name": "glyph",
3427
+ "required": true,
3428
+ "type": "IconComponent",
3429
+ "defaultValue": null,
3430
+ "description": "Icon component imported from `@imfusion/web-ui/icons`."
3431
+ },
3432
+ {
3433
+ "name": "ref",
3434
+ "required": false,
3435
+ "type": "Ref<SVGSVGElement>",
3436
+ "defaultValue": null,
3437
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
3438
+ },
3439
+ {
3440
+ "name": "size",
3441
+ "required": false,
3442
+ "type": "string | number",
3443
+ "defaultValue": null,
3444
+ "description": "Sets both SVG dimensions unless `width` or `height` is provided."
3445
+ },
3446
+ {
3447
+ "name": "variant",
3448
+ "required": false,
3449
+ "type": "| \"inherit\"\n| \"main\"\n| \"support\"\n| \"minor\"\n| \"brand\"\n| \"primary\"\n| \"positive\"\n| \"negative\"\n| \"warning\"\n| \"info\"\n| \"oncolor\"\n| \"accent-1\"\n| \"accent-2\"\n| \"accent-3\"\n| null",
3450
+ "defaultValue": "inherit",
3451
+ "description": ""
3452
+ }
3453
+ ]
3454
+ },
3455
+ "subComponents": []
3456
+ },
3457
+ "icon-button": {
3458
+ "root": {
3459
+ "name": "IconButton",
3460
+ "description": "IconButton — a square Button that shows a single Icon. Composes Button, so every Button variant and native attribute\npasses through.",
3461
+ "props": [
3462
+ {
3463
+ "name": "chamfer",
3464
+ "required": false,
3465
+ "type": "boolean | null",
3466
+ "defaultValue": null,
3467
+ "description": ""
3468
+ },
3469
+ {
3470
+ "name": "className",
3471
+ "required": false,
3472
+ "type": "string | ((state: ButtonState) => string)",
3473
+ "defaultValue": null,
3474
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
3475
+ },
3476
+ {
3477
+ "name": "context",
3478
+ "required": false,
3479
+ "type": "\"default\" | \"oncolor\" | null",
3480
+ "defaultValue": null,
3481
+ "description": ""
3482
+ },
3483
+ {
3484
+ "name": "focusableWhenDisabled",
3485
+ "required": false,
3486
+ "type": "boolean",
3487
+ "defaultValue": "false",
3488
+ "description": "Whether the button should be focusable when disabled."
3489
+ },
3490
+ {
3491
+ "name": "glyph",
3492
+ "required": true,
3493
+ "type": "IconComponent",
3494
+ "defaultValue": null,
3495
+ "description": "Icon component imported from `@imfusion/web-ui/icons`."
3496
+ },
3497
+ {
3498
+ "name": "iconProps",
3499
+ "required": false,
3500
+ "type": "Omit<Omit<Omit<SVGProps<SVGSVGElement>, \"ref\"> & RefAttributes<SVGSVGElement>, \"color\"> & VariantProps<(props?: (ConfigVariants<...> & ClassProp)) => string> & { ...; }, \"glyph\">",
3501
+ "defaultValue": null,
3502
+ "description": "Props for the inner Icon, such as `strokeWidth` or a `size` override."
3503
+ },
3504
+ {
3505
+ "name": "label",
3506
+ "required": true,
3507
+ "type": "string",
3508
+ "defaultValue": null,
3509
+ "description": "Accessible name; the button renders no visible text."
3510
+ },
3511
+ {
3512
+ "name": "nativeButton",
3513
+ "required": false,
3514
+ "type": "boolean",
3515
+ "defaultValue": "true",
3516
+ "description": "Whether the component renders a native `<button>` element when replacing it\nvia the `render` prop.\nSet to `false` if the rendered element is not a button (for example, `<div>`)."
3517
+ },
3518
+ {
3519
+ "name": "radius",
3520
+ "required": false,
3521
+ "type": "\"sm\" | \"md\" | \"lg\" | \"none\" | \"round\" | null",
3522
+ "defaultValue": null,
3523
+ "description": ""
3524
+ },
3525
+ {
3526
+ "name": "ref",
3527
+ "required": false,
3528
+ "type": "Ref<HTMLElement>",
3529
+ "defaultValue": null,
3530
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
3531
+ },
3532
+ {
3533
+ "name": "render",
3534
+ "required": false,
3535
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, ButtonState>",
3536
+ "defaultValue": null,
3537
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
3538
+ },
3539
+ {
3540
+ "name": "shortcut",
3541
+ "required": false,
3542
+ "type": "string",
3543
+ "defaultValue": null,
3544
+ "description": "Key hint shown in the top corner at the end of the line, such as `\"S\"` or `\"Ctrl Z\"`. It also sets\n`aria-keyshortcuts` in its notation (`Control+Z`), which an explicit\n`aria-keyshortcuts` prop overrides. Display only: bind the key in the app, for example with `useHotkey` from TanStack Hotkeys."
3545
+ },
3546
+ {
3547
+ "name": "size",
3548
+ "required": false,
3549
+ "type": "\"sm\" | \"md\" | \"lg\" | \"hero\" | null",
3550
+ "defaultValue": "md",
3551
+ "description": ""
3552
+ },
3553
+ {
3554
+ "name": "style",
3555
+ "required": false,
3556
+ "type": "| CSSProperties\n| ((state: ButtonState) => CSSProperties)",
3557
+ "defaultValue": null,
3558
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
3559
+ },
3560
+ {
3561
+ "name": "variant",
3562
+ "required": false,
2708
3563
  "type": "| \"primary\"\n| \"secondary\"\n| \"positive\"\n| \"negative\"\n| \"outline\"\n| \"ghost\"\n| null",
2709
3564
  "defaultValue": null,
2710
3565
  "description": ""
@@ -4665,11 +5520,229 @@
4665
5520
  "description": "Popover.Arrow — visual pointer arrow anchored to the popup edge. Receives data-side for orientation.",
4666
5521
  "props": [
4667
5522
  {
4668
- "name": "className",
5523
+ "name": "className",
5524
+ "required": false,
5525
+ "type": "string | ((state: PopoverArrowState) => string)",
5526
+ "defaultValue": null,
5527
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
5528
+ },
5529
+ {
5530
+ "name": "ref",
5531
+ "required": false,
5532
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
5533
+ "defaultValue": null,
5534
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
5535
+ },
5536
+ {
5537
+ "name": "render",
5538
+ "required": false,
5539
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverArrowState>",
5540
+ "defaultValue": null,
5541
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
5542
+ },
5543
+ {
5544
+ "name": "style",
5545
+ "required": false,
5546
+ "type": "| CSSProperties\n| ((state: PopoverArrowState) => CSSProperties)",
5547
+ "defaultValue": null,
5548
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
5549
+ }
5550
+ ]
5551
+ },
5552
+ {
5553
+ "name": "Popover.Backdrop",
5554
+ "description": "Popover.Backdrop — overlay beneath the popover. Receives data-open/data-closed for transitions.",
5555
+ "props": [
5556
+ {
5557
+ "name": "className",
5558
+ "required": false,
5559
+ "type": "| string\n| ((state: PopoverBackdropState) => string)",
5560
+ "defaultValue": null,
5561
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
5562
+ },
5563
+ {
5564
+ "name": "ref",
5565
+ "required": false,
5566
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
5567
+ "defaultValue": null,
5568
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
5569
+ },
5570
+ {
5571
+ "name": "render",
5572
+ "required": false,
5573
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverBackdropState>",
5574
+ "defaultValue": null,
5575
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
5576
+ },
5577
+ {
5578
+ "name": "style",
5579
+ "required": false,
5580
+ "type": "| CSSProperties\n| ((state: PopoverBackdropState) => CSSProperties)",
5581
+ "defaultValue": null,
5582
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
5583
+ }
5584
+ ]
5585
+ },
5586
+ {
5587
+ "name": "Popover.Close",
5588
+ "description": "Popover.Close — button that dismisses the popover.",
5589
+ "props": [
5590
+ {
5591
+ "name": "className",
5592
+ "required": false,
5593
+ "type": "string | ((state: PopoverCloseState) => string)",
5594
+ "defaultValue": null,
5595
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
5596
+ },
5597
+ {
5598
+ "name": "nativeButton",
5599
+ "required": false,
5600
+ "type": "boolean",
5601
+ "defaultValue": "true",
5602
+ "description": "Whether the component renders a native `<button>` element when replacing it\nvia the `render` prop.\nSet to `false` if the rendered element is not a button (for example, `<div>`).\nWhether the component renders a native `<button>` element when replacing it\nvia the `render` prop.\nSet to `false` if the rendered element is not a button (e.g. `<div>`)."
5603
+ },
5604
+ {
5605
+ "name": "ref",
5606
+ "required": false,
5607
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
5608
+ "defaultValue": null,
5609
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
5610
+ },
5611
+ {
5612
+ "name": "render",
5613
+ "required": false,
5614
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverCloseState>",
5615
+ "defaultValue": null,
5616
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
5617
+ },
5618
+ {
5619
+ "name": "style",
5620
+ "required": false,
5621
+ "type": "| CSSProperties\n| ((state: PopoverCloseState) => CSSProperties)",
5622
+ "defaultValue": null,
5623
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
5624
+ }
5625
+ ]
5626
+ },
5627
+ {
5628
+ "name": "Popover.Description",
5629
+ "description": "Popover.Description — supplementary paragraph for the popover's accessible description.",
5630
+ "props": [
5631
+ {
5632
+ "name": "className",
5633
+ "required": false,
5634
+ "type": "| string\n| ((state: PopoverDescriptionState) => string)",
5635
+ "defaultValue": null,
5636
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
5637
+ },
5638
+ {
5639
+ "name": "ref",
5640
+ "required": false,
5641
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
5642
+ "defaultValue": null,
5643
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
5644
+ },
5645
+ {
5646
+ "name": "render",
5647
+ "required": false,
5648
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverDescriptionState>",
5649
+ "defaultValue": null,
5650
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
5651
+ },
5652
+ {
5653
+ "name": "style",
5654
+ "required": false,
5655
+ "type": "| CSSProperties\n| ((state: PopoverDescriptionState) => CSSProperties)",
5656
+ "defaultValue": null,
5657
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
5658
+ }
5659
+ ]
5660
+ },
5661
+ {
5662
+ "name": "Popover.Eyebrow",
5663
+ "description": "Popover.Eyebrow — small uppercase label above Title, for a category or kicker (e.g. \"Glossary definition\").",
5664
+ "props": [
5665
+ {
5666
+ "name": "ref",
5667
+ "required": false,
5668
+ "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
5669
+ "defaultValue": null,
5670
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
5671
+ }
5672
+ ]
5673
+ },
5674
+ {
5675
+ "name": "Popover.Inline",
5676
+ "description": "Popover.Inline — pre-composed inline annotation. Wraps the full\nRoot → Trigger(inline, openOnHover) → Portal → Positioner → Popup\npattern into a single component for annotating terms in running prose.",
5677
+ "props": [
5678
+ {
5679
+ "name": "children",
5680
+ "required": false,
5681
+ "type": "ReactNode",
5682
+ "defaultValue": null,
5683
+ "description": "Description or body content inside the popup."
5684
+ },
5685
+ {
5686
+ "name": "delay",
5687
+ "required": false,
5688
+ "type": "number",
5689
+ "defaultValue": "150",
5690
+ "description": "Hover delay in ms before the popover opens."
5691
+ },
5692
+ {
5693
+ "name": "side",
5694
+ "required": false,
5695
+ "type": "Side",
5696
+ "defaultValue": "top",
5697
+ "description": "Which side of the trigger the popup appears on."
5698
+ },
5699
+ {
5700
+ "name": "sideOffset",
5701
+ "required": false,
5702
+ "type": "number",
5703
+ "defaultValue": "6",
5704
+ "description": "Gap between trigger and popup in px."
5705
+ },
5706
+ {
5707
+ "name": "title",
5708
+ "required": false,
5709
+ "type": "ReactNode",
5710
+ "defaultValue": null,
5711
+ "description": "Optional heading shown at the top of the popup."
5712
+ },
5713
+ {
5714
+ "name": "trigger",
5715
+ "required": true,
5716
+ "type": "ReactNode",
5717
+ "defaultValue": null,
5718
+ "description": "The annotated text rendered as the trigger."
5719
+ }
5720
+ ]
5721
+ },
5722
+ {
5723
+ "name": "Popover.Popup",
5724
+ "description": "Popover.Popup — the visible surface of the popover. Token-mapped background, border, and shadow.",
5725
+ "props": [
5726
+ {
5727
+ "name": "className",
5728
+ "required": false,
5729
+ "type": "string | ((state: PopoverPopupState) => string)",
5730
+ "defaultValue": null,
5731
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
5732
+ },
5733
+ {
5734
+ "name": "finalFocus",
5735
+ "required": false,
5736
+ "type": "| boolean\n| RefObject<HTMLElement | null>\n| ((\n closeType: InteractionType\n ) => boolean | void | HTMLElement | null)",
5737
+ "defaultValue": null,
5738
+ "description": "Determines the element to focus when the popover is closed.\n\n- `false`: Do not move focus.\n- `true`: Move focus based on the default behavior (trigger or previously focused element).\n- `RefObject`: Move focus to the ref element.\n- `function`: Called with the interaction type (`mouse`, `touch`, `pen`, or `keyboard`).\n Return an element to focus, `true` to use the default behavior, `null` to fall back to the default behavior, or `false`/`undefined` to do nothing."
5739
+ },
5740
+ {
5741
+ "name": "initialFocus",
4669
5742
  "required": false,
4670
- "type": "string | ((state: PopoverArrowState) => string)",
5743
+ "type": "| boolean\n| RefObject<HTMLElement | null>\n| ((\n openType: InteractionType\n ) => boolean | void | HTMLElement | null)",
4671
5744
  "defaultValue": null,
4672
- "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
5745
+ "description": "Determines the element to focus when the popover is opened.\nBy default, focus moves to the first tabbable element inside the popup, except when the popover\nis opened by touch — then the popup itself is focused to avoid opening the virtual keyboard.\n\n- `false`: Do not move focus.\n- `true`: Move focus based on the default behavior (first tabbable element or popup).\n- `RefObject`: Move focus to the ref element.\n- `function`: Called with the interaction type (`mouse`, `touch`, `pen`, or `keyboard`).\n Return an element to focus, `true` to use the default behavior, `null` to fall back to the default behavior, or `false`/`undefined` to do nothing."
4673
5746
  },
4674
5747
  {
4675
5748
  "name": "ref",
@@ -4681,30 +5754,51 @@
4681
5754
  {
4682
5755
  "name": "render",
4683
5756
  "required": false,
4684
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverArrowState>",
5757
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverPopupState>",
4685
5758
  "defaultValue": null,
4686
5759
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
4687
5760
  },
4688
5761
  {
4689
5762
  "name": "style",
4690
5763
  "required": false,
4691
- "type": "| CSSProperties\n| ((state: PopoverArrowState) => CSSProperties)",
5764
+ "type": "| CSSProperties\n| ((state: PopoverPopupState) => CSSProperties)",
4692
5765
  "defaultValue": null,
4693
5766
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
5767
+ },
5768
+ {
5769
+ "name": "variant",
5770
+ "required": false,
5771
+ "type": "| \"ghost\"\n| \"outline\"\n| \"primary\"\n| \"secondary\"\n| \"positive\"\n| \"negative\"\n| null",
5772
+ "defaultValue": null,
5773
+ "description": "Match to the Trigger variant to tint the popup border accordingly."
4694
5774
  }
4695
5775
  ]
4696
5776
  },
4697
5777
  {
4698
- "name": "Popover.Backdrop",
4699
- "description": "Popover.Backdrop — overlay beneath the popover. Receives data-open/data-closed for transitions.",
5778
+ "name": "Popover.Portal",
5779
+ "description": "Popover.Portal — renders the positioner in a portal outside the main document flow.",
4700
5780
  "props": [
4701
5781
  {
4702
5782
  "name": "className",
4703
5783
  "required": false,
4704
- "type": "| string\n| ((state: PopoverBackdropState) => string)",
5784
+ "type": "string | ((state: PopoverPortalState) => string)",
4705
5785
  "defaultValue": null,
4706
5786
  "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
4707
5787
  },
5788
+ {
5789
+ "name": "container",
5790
+ "required": false,
5791
+ "type": "| HTMLElement\n| ShadowRoot\n| RefObject<HTMLElement | ShadowRoot | null>\n| null",
5792
+ "defaultValue": null,
5793
+ "description": "A parent element to render the portal element into."
5794
+ },
5795
+ {
5796
+ "name": "keepMounted",
5797
+ "required": false,
5798
+ "type": "boolean",
5799
+ "defaultValue": "false",
5800
+ "description": "Whether to keep the portal mounted in the DOM while the popup is hidden."
5801
+ },
4708
5802
  {
4709
5803
  "name": "ref",
4710
5804
  "required": false,
@@ -4715,36 +5809,92 @@
4715
5809
  {
4716
5810
  "name": "render",
4717
5811
  "required": false,
4718
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverBackdropState>",
5812
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverPortalState>",
4719
5813
  "defaultValue": null,
4720
5814
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
4721
5815
  },
4722
5816
  {
4723
5817
  "name": "style",
4724
5818
  "required": false,
4725
- "type": "| CSSProperties\n| ((state: PopoverBackdropState) => CSSProperties)",
5819
+ "type": "| CSSProperties\n| ((state: PopoverPortalState) => CSSProperties)",
4726
5820
  "defaultValue": null,
4727
5821
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
4728
5822
  }
4729
5823
  ]
4730
5824
  },
4731
5825
  {
4732
- "name": "Popover.Close",
4733
- "description": "Popover.Close — button that dismisses the popover.",
5826
+ "name": "Popover.Positioner",
5827
+ "description": "Popover.Positioner — positions the popup relative to the trigger via floating-point layout.",
4734
5828
  "props": [
5829
+ {
5830
+ "name": "align",
5831
+ "required": false,
5832
+ "type": "Align",
5833
+ "defaultValue": "center",
5834
+ "description": "How to align the popup relative to the specified side."
5835
+ },
5836
+ {
5837
+ "name": "alignOffset",
5838
+ "required": false,
5839
+ "type": "number | OffsetFunction",
5840
+ "defaultValue": "0",
5841
+ "description": "Additional offset along the alignment axis in pixels.\nAlso accepts a function that returns the offset to read the dimensions of the anchor\nand positioner elements, along with its side and alignment.\n\nThe function takes a `data` object parameter with the following properties:\n- `data.anchor`: the dimensions of the anchor element with properties `width` and `height`.\n- `data.positioner`: the dimensions of the positioner element with properties `width` and `height`.\n- `data.side`: which side of the anchor element the positioner is aligned against.\n- `data.align`: how the positioner is aligned relative to the specified side.\n@example ```jsx\n<Positioner\n alignOffset={({ side, align, anchor, positioner }) => {\n return side === 'top' || side === 'bottom'\n ? anchor.width\n : anchor.height;\n }}\n/>\n```"
5842
+ },
5843
+ {
5844
+ "name": "anchor",
5845
+ "required": false,
5846
+ "type": "| Element\n| VirtualElement\n| RefObject<Element | null>\n| (() => Element | VirtualElement | null)\n| null",
5847
+ "defaultValue": null,
5848
+ "description": "An element to position the popup against.\nBy default, the popup will be positioned against the trigger."
5849
+ },
5850
+ {
5851
+ "name": "arrowPadding",
5852
+ "required": false,
5853
+ "type": "number",
5854
+ "defaultValue": "5",
5855
+ "description": "Minimum distance to maintain between the arrow and the edges of the popup.\n\nUse it to prevent the arrow element from hanging out of the rounded corners of a popup."
5856
+ },
4735
5857
  {
4736
5858
  "name": "className",
4737
5859
  "required": false,
4738
- "type": "string | ((state: PopoverCloseState) => string)",
5860
+ "type": "| string\n| ((state: PopoverPositionerState) => string)",
4739
5861
  "defaultValue": null,
4740
5862
  "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
4741
5863
  },
4742
5864
  {
4743
- "name": "nativeButton",
5865
+ "name": "collisionAvoidance",
5866
+ "required": false,
5867
+ "type": "CollisionAvoidance",
5868
+ "defaultValue": null,
5869
+ "description": "Determines how to handle collisions when positioning the popup.\n\n`side` controls overflow on the preferred placement axis (`top`/`bottom` or `left`/`right`):\n- `'flip'`: keep the requested side when it fits; otherwise try the opposite side\n (`top` and `bottom`, or `left` and `right`).\n- `'shift'`: never change side; keep the requested side and move the popup within\n the clipping boundary so it stays visible.\n- `'none'`: do not correct side-axis overflow.\n\n`align` controls overflow on the alignment axis (`start`/`center`/`end`):\n- `'flip'`: keep side, but swap `start` and `end` when the requested alignment overflows.\n- `'shift'`: keep side and requested alignment, then nudge the popup along the\n alignment axis to fit.\n- `'none'`: do not correct alignment-axis overflow.\n\n`fallbackAxisSide` controls fallback behavior on the perpendicular axis when the\npreferred axis cannot fit:\n- `'start'`: allow perpendicular fallback and try the logical start side first\n (`top` before `bottom`, or `left` before `right` in LTR).\n- `'end'`: allow perpendicular fallback and try the logical end side first\n (`bottom` before `top`, or `right` before `left` in LTR).\n- `'none'`: do not fallback to the perpendicular axis.\n\nWhen `side` is `'shift'`, explicitly setting `align` only supports `'shift'` or `'none'`.\nIf `align` is omitted, it defaults to `'flip'`.\n@example ```jsx\n<Positioner\n collisionAvoidance={{\n side: 'shift',\n align: 'shift',\n fallbackAxisSide: 'none',\n }}\n/>\n```"
5870
+ },
5871
+ {
5872
+ "name": "collisionBoundary",
5873
+ "required": false,
5874
+ "type": "Boundary",
5875
+ "defaultValue": "clipping-ancestors",
5876
+ "description": "An element or a rectangle that delimits the area that the popup is confined to."
5877
+ },
5878
+ {
5879
+ "name": "collisionPadding",
5880
+ "required": false,
5881
+ "type": "Padding",
5882
+ "defaultValue": "5",
5883
+ "description": "Additional space to maintain from the edge of the collision boundary."
5884
+ },
5885
+ {
5886
+ "name": "disableAnchorTracking",
4744
5887
  "required": false,
4745
5888
  "type": "boolean",
4746
- "defaultValue": "true",
4747
- "description": "Whether the component renders a native `<button>` element when replacing it\nvia the `render` prop.\nSet to `false` if the rendered element is not a button (for example, `<div>`).\nWhether the component renders a native `<button>` element when replacing it\nvia the `render` prop.\nSet to `false` if the rendered element is not a button (e.g. `<div>`)."
5889
+ "defaultValue": "false",
5890
+ "description": "Whether to disable the popup from tracking any layout shift of its positioning anchor."
5891
+ },
5892
+ {
5893
+ "name": "positionMethod",
5894
+ "required": false,
5895
+ "type": "\"absolute\" | \"fixed\"",
5896
+ "defaultValue": "absolute",
5897
+ "description": "Determines which CSS `position` property to use."
4748
5898
  },
4749
5899
  {
4750
5900
  "name": "ref",
@@ -4756,27 +5906,48 @@
4756
5906
  {
4757
5907
  "name": "render",
4758
5908
  "required": false,
4759
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverCloseState>",
5909
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverPositionerState>",
4760
5910
  "defaultValue": null,
4761
5911
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
4762
5912
  },
5913
+ {
5914
+ "name": "side",
5915
+ "required": false,
5916
+ "type": "Side",
5917
+ "defaultValue": "bottom",
5918
+ "description": "Which side of the anchor element to align the popup against.\nMay automatically change to avoid collisions."
5919
+ },
5920
+ {
5921
+ "name": "sideOffset",
5922
+ "required": false,
5923
+ "type": "number | OffsetFunction",
5924
+ "defaultValue": "0",
5925
+ "description": "Distance between the anchor and the popup in pixels.\nAlso accepts a function that returns the distance to read the dimensions of the anchor\nand positioner elements, along with its side and alignment.\n\nThe function takes a `data` object parameter with the following properties:\n- `data.anchor`: the dimensions of the anchor element with properties `width` and `height`.\n- `data.positioner`: the dimensions of the positioner element with properties `width` and `height`.\n- `data.side`: which side of the anchor element the positioner is aligned against.\n- `data.align`: how the positioner is aligned relative to the specified side.\n@example ```jsx\n<Positioner\n sideOffset={({ side, align, anchor, positioner }) => {\n return side === 'top' || side === 'bottom'\n ? anchor.height\n : anchor.width;\n }}\n/>\n```"
5926
+ },
5927
+ {
5928
+ "name": "sticky",
5929
+ "required": false,
5930
+ "type": "boolean",
5931
+ "defaultValue": "false",
5932
+ "description": "Whether to maintain the popup in the viewport after\nthe anchor element was scrolled out of view."
5933
+ },
4763
5934
  {
4764
5935
  "name": "style",
4765
5936
  "required": false,
4766
- "type": "| CSSProperties\n| ((state: PopoverCloseState) => CSSProperties)",
5937
+ "type": "| CSSProperties\n| ((state: PopoverPositionerState) => CSSProperties)",
4767
5938
  "defaultValue": null,
4768
5939
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
4769
5940
  }
4770
5941
  ]
4771
5942
  },
4772
5943
  {
4773
- "name": "Popover.Description",
4774
- "description": "Popover.Description — supplementary paragraph for the popover's accessible description.",
5944
+ "name": "Popover.Title",
5945
+ "description": "Popover.Title — semantic heading for the popover's accessible name.",
4775
5946
  "props": [
4776
5947
  {
4777
5948
  "name": "className",
4778
5949
  "required": false,
4779
- "type": "| string\n| ((state: PopoverDescriptionState) => string)",
5950
+ "type": "string | ((state: PopoverTitleState) => string)",
4780
5951
  "defaultValue": null,
4781
5952
  "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
4782
5953
  },
@@ -4790,104 +5961,78 @@
4790
5961
  {
4791
5962
  "name": "render",
4792
5963
  "required": false,
4793
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverDescriptionState>",
5964
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverTitleState>",
4794
5965
  "defaultValue": null,
4795
5966
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
4796
5967
  },
4797
5968
  {
4798
5969
  "name": "style",
4799
5970
  "required": false,
4800
- "type": "| CSSProperties\n| ((state: PopoverDescriptionState) => CSSProperties)",
5971
+ "type": "| CSSProperties\n| ((state: PopoverTitleState) => CSSProperties)",
4801
5972
  "defaultValue": null,
4802
5973
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
4803
5974
  }
4804
5975
  ]
4805
5976
  },
4806
5977
  {
4807
- "name": "Popover.Eyebrow",
4808
- "description": "Popover.Eyebrow — small uppercase label above Title, for a category or kicker (e.g. \"Glossary definition\").",
4809
- "props": [
4810
- {
4811
- "name": "ref",
4812
- "required": false,
4813
- "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
4814
- "defaultValue": null,
4815
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
4816
- }
4817
- ]
4818
- },
4819
- {
4820
- "name": "Popover.Inline",
4821
- "description": "Popover.Inline — pre-composed inline annotation. Wraps the full\nRoot → Trigger(inline, openOnHover) → Portal → Positioner → Popup\npattern into a single component for annotating terms in running prose.",
5978
+ "name": "Popover.Trigger",
5979
+ "description": "Popover.Trigger — button that opens the popover.",
4822
5980
  "props": [
4823
5981
  {
4824
- "name": "children",
5982
+ "name": "className",
4825
5983
  "required": false,
4826
- "type": "ReactNode",
5984
+ "type": "string | ((state: PopoverTriggerState) => string)",
4827
5985
  "defaultValue": null,
4828
- "description": "Description or body content inside the popup."
5986
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
4829
5987
  },
4830
5988
  {
4831
- "name": "delay",
5989
+ "name": "closeDelay",
4832
5990
  "required": false,
4833
5991
  "type": "number",
4834
- "defaultValue": "150",
4835
- "description": "Hover delay in ms before the popover opens."
4836
- },
4837
- {
4838
- "name": "side",
4839
- "required": false,
4840
- "type": "Side",
4841
- "defaultValue": "top",
4842
- "description": "Which side of the trigger the popup appears on."
5992
+ "defaultValue": "0",
5993
+ "description": "How long to wait before closing the popover that was opened on hover.\nSpecified in milliseconds.\n\nRequires the `openOnHover` prop."
4843
5994
  },
4844
5995
  {
4845
- "name": "sideOffset",
5996
+ "name": "delay",
4846
5997
  "required": false,
4847
5998
  "type": "number",
4848
- "defaultValue": "6",
4849
- "description": "Gap between trigger and popup in px."
5999
+ "defaultValue": "300",
6000
+ "description": "How long to wait before the popover may be opened on hover. Specified in milliseconds.\n\nRequires the `openOnHover` prop."
4850
6001
  },
4851
6002
  {
4852
- "name": "title",
6003
+ "name": "handle",
4853
6004
  "required": false,
4854
- "type": "ReactNode",
6005
+ "type": "PopoverHandle<unknown>",
4855
6006
  "defaultValue": null,
4856
- "description": "Optional heading shown at the top of the popup."
6007
+ "description": "A handle to associate the trigger with a popover."
4857
6008
  },
4858
6009
  {
4859
- "name": "trigger",
4860
- "required": true,
4861
- "type": "ReactNode",
4862
- "defaultValue": null,
4863
- "description": "The annotated text rendered as the trigger."
4864
- }
4865
- ]
4866
- },
4867
- {
4868
- "name": "Popover.Popup",
4869
- "description": "Popover.Popup — the visible surface of the popover. Token-mapped background, border, and shadow.",
4870
- "props": [
6010
+ "name": "inline",
6011
+ "required": false,
6012
+ "type": "boolean | null",
6013
+ "defaultValue": "false",
6014
+ "description": ""
6015
+ },
4871
6016
  {
4872
- "name": "className",
6017
+ "name": "nativeButton",
4873
6018
  "required": false,
4874
- "type": "string | ((state: PopoverPopupState) => string)",
4875
- "defaultValue": null,
4876
- "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
6019
+ "type": "boolean",
6020
+ "defaultValue": "true",
6021
+ "description": "Whether the component renders a native `<button>` element when replacing it\nvia the `render` prop.\nSet to `false` if the rendered element is not a button (for example, `<div>`).\nWhether the component renders a native `<button>` element when replacing it\nvia the `render` prop.\nSet to `false` if the rendered element is not a button (e.g. `<div>`)."
4877
6022
  },
4878
6023
  {
4879
- "name": "finalFocus",
6024
+ "name": "openOnHover",
4880
6025
  "required": false,
4881
- "type": "| boolean\n| RefObject<HTMLElement | null>\n| ((\n closeType: InteractionType\n ) => boolean | void | HTMLElement | null)",
4882
- "defaultValue": null,
4883
- "description": "Determines the element to focus when the popover is closed.\n\n- `false`: Do not move focus.\n- `true`: Move focus based on the default behavior (trigger or previously focused element).\n- `RefObject`: Move focus to the ref element.\n- `function`: Called with the interaction type (`mouse`, `touch`, `pen`, or `keyboard`).\n Return an element to focus, `true` to use the default behavior, `null` to fall back to the default behavior, or `false`/`undefined` to do nothing."
6026
+ "type": "boolean",
6027
+ "defaultValue": "false",
6028
+ "description": "Whether the popover should also open when the trigger is hovered."
4884
6029
  },
4885
6030
  {
4886
- "name": "initialFocus",
6031
+ "name": "payload",
4887
6032
  "required": false,
4888
- "type": "| boolean\n| RefObject<HTMLElement | null>\n| ((\n openType: InteractionType\n ) => boolean | void | HTMLElement | null)",
6033
+ "type": "unknown",
4889
6034
  "defaultValue": null,
4890
- "description": "Determines the element to focus when the popover is opened.\nBy default, focus moves to the first tabbable element inside the popup, except when the popover\nis opened by touch — then the popup itself is focused to avoid opening the virtual keyboard.\n\n- `false`: Do not move focus.\n- `true`: Move focus based on the default behavior (first tabbable element or popup).\n- `RefObject`: Move focus to the ref element.\n- `function`: Called with the interaction type (`mouse`, `touch`, `pen`, or `keyboard`).\n Return an element to focus, `true` to use the default behavior, `null` to fall back to the default behavior, or `false`/`undefined` to do nothing."
6035
+ "description": "A payload to pass to the popover when it is opened."
4891
6036
  },
4892
6037
  {
4893
6038
  "name": "ref",
@@ -4899,14 +6044,14 @@
4899
6044
  {
4900
6045
  "name": "render",
4901
6046
  "required": false,
4902
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverPopupState>",
6047
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverTriggerState>",
4903
6048
  "defaultValue": null,
4904
6049
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
4905
6050
  },
4906
6051
  {
4907
6052
  "name": "style",
4908
6053
  "required": false,
4909
- "type": "| CSSProperties\n| ((state: PopoverPopupState) => CSSProperties)",
6054
+ "type": "| CSSProperties\n| ((state: PopoverTriggerState) => CSSProperties)",
4910
6055
  "defaultValue": null,
4911
6056
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
4912
6057
  },
@@ -4914,35 +6059,28 @@
4914
6059
  "name": "variant",
4915
6060
  "required": false,
4916
6061
  "type": "| \"ghost\"\n| \"outline\"\n| \"primary\"\n| \"secondary\"\n| \"positive\"\n| \"negative\"\n| null",
4917
- "defaultValue": null,
4918
- "description": "Match to the Trigger variant to tint the popup border accordingly."
6062
+ "defaultValue": "ghost",
6063
+ "description": ""
4919
6064
  }
4920
6065
  ]
4921
6066
  },
4922
6067
  {
4923
- "name": "Popover.Portal",
4924
- "description": "Popover.Portal — renders the positioner in a portal outside the main document flow.",
6068
+ "name": "Popover.Viewport",
6069
+ "description": "Popover.Viewport — content wrapper that supports direction-aware animations.",
4925
6070
  "props": [
4926
6071
  {
4927
- "name": "className",
4928
- "required": false,
4929
- "type": "string | ((state: PopoverPortalState) => string)",
4930
- "defaultValue": null,
4931
- "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
4932
- },
4933
- {
4934
- "name": "container",
6072
+ "name": "children",
4935
6073
  "required": false,
4936
- "type": "| HTMLElement\n| ShadowRoot\n| RefObject<HTMLElement | ShadowRoot | null>\n| null",
6074
+ "type": "ReactNode",
4937
6075
  "defaultValue": null,
4938
- "description": "A parent element to render the portal element into."
6076
+ "description": "The content to render inside the transition container."
4939
6077
  },
4940
6078
  {
4941
- "name": "keepMounted",
6079
+ "name": "className",
4942
6080
  "required": false,
4943
- "type": "boolean",
4944
- "defaultValue": "false",
4945
- "description": "Whether to keep the portal mounted in the DOM while the popup is hidden."
6081
+ "type": "| string\n| ((state: PopoverViewportState) => string)",
6082
+ "defaultValue": null,
6083
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
4946
6084
  },
4947
6085
  {
4948
6086
  "name": "ref",
@@ -4954,297 +6092,395 @@
4954
6092
  {
4955
6093
  "name": "render",
4956
6094
  "required": false,
4957
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverPortalState>",
6095
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverViewportState>",
4958
6096
  "defaultValue": null,
4959
6097
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
4960
6098
  },
4961
6099
  {
4962
6100
  "name": "style",
4963
6101
  "required": false,
4964
- "type": "| CSSProperties\n| ((state: PopoverPortalState) => CSSProperties)",
6102
+ "type": "| CSSProperties\n| ((state: PopoverViewportState) => CSSProperties)",
4965
6103
  "defaultValue": null,
4966
6104
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
4967
6105
  }
4968
6106
  ]
4969
- },
6107
+ }
6108
+ ]
6109
+ },
6110
+ "prose": {
6111
+ "root": {
6112
+ "name": "Prose",
6113
+ "description": "",
6114
+ "props": [
6115
+ {
6116
+ "name": "ref",
6117
+ "required": false,
6118
+ "type": "Ref<HTMLDivElement>",
6119
+ "defaultValue": null,
6120
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
6121
+ }
6122
+ ]
6123
+ },
6124
+ "subComponents": []
6125
+ },
6126
+ "rich-link": {
6127
+ "root": {
6128
+ "name": "RichLink",
6129
+ "description": "RichLink — a link as a whole row: an optional leading icon on a tinted tile, the label with an optional description\nline, and a trailing icon for where it leads. Draws no divider; stacked links get their spacing from the layout. Wrap it\nwith TanStack Router's `createLink` to use it as a router link.",
6130
+ "props": [
6131
+ {
6132
+ "name": "description",
6133
+ "required": false,
6134
+ "type": "ReactNode",
6135
+ "defaultValue": null,
6136
+ "description": "Second line under the label. When set, the label turns bold."
6137
+ },
6138
+ {
6139
+ "name": "endGlyph",
6140
+ "required": false,
6141
+ "type": "IconComponent",
6142
+ "defaultValue": null,
6143
+ "description": "Trailing icon from `@imfusion/web-ui/icons`, replacing the arrow `kind` picks, such as `Download` for a file."
6144
+ },
6145
+ {
6146
+ "name": "glyph",
6147
+ "required": false,
6148
+ "type": "IconComponent",
6149
+ "defaultValue": null,
6150
+ "description": "Leading icon from `@imfusion/web-ui/icons`, shown on a tile in the primary color."
6151
+ },
6152
+ {
6153
+ "name": "kind",
6154
+ "required": false,
6155
+ "type": "\"external\" | \"internal\"",
6156
+ "defaultValue": "external",
6157
+ "description": "Link target scope. `\"external\"` (default) opens in a new tab with a diagonal `ArrowUpRight` icon; `\"internal\"` stays in the current tab with a horizontal `ArrowRight` icon."
6158
+ },
6159
+ {
6160
+ "name": "ref",
6161
+ "required": false,
6162
+ "type": "Ref<HTMLAnchorElement>",
6163
+ "defaultValue": null,
6164
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
6165
+ }
6166
+ ]
6167
+ },
6168
+ "subComponents": []
6169
+ },
6170
+ "row": {
6171
+ "root": {
6172
+ "name": "Row",
6173
+ "description": "Row — horizontal layout primitive.\n\nCopied and adapted from Mantine's Group; no upstream runtime\ndependency. Pure row flex container with token-driven gap and constrained\nalign/justify unions.",
6174
+ "props": [
6175
+ {
6176
+ "name": "align",
6177
+ "required": false,
6178
+ "type": "\"center\" | \"start\" | \"end\" | \"stretch\"",
6179
+ "defaultValue": "stretch",
6180
+ "description": "Cross-axis alignment. Sets both `align-items` (item alignment within a\nrow) and `align-content` (row distribution when `wrap` is on). `\"stretch\"`\nkeeps rows packed together via `align-content: flex-start` while items\nfill their row height."
6181
+ },
6182
+ {
6183
+ "name": "gap",
6184
+ "required": false,
6185
+ "type": "| \"1\"\n| \"2\"\n| \"3\"\n| \"4\"\n| \"5\"\n| \"6\"\n| \"7\"\n| \"8\"\n| \"9\"\n| \"10\"\n| null",
6186
+ "defaultValue": "2",
6187
+ "description": ""
6188
+ },
6189
+ {
6190
+ "name": "justify",
6191
+ "required": false,
6192
+ "type": "| \"center\"\n| \"start\"\n| \"end\"\n| \"between\"\n| \"around\"\n| \"evenly\"\n| null",
6193
+ "defaultValue": "start",
6194
+ "description": ""
6195
+ },
6196
+ {
6197
+ "name": "ref",
6198
+ "required": false,
6199
+ "type": "Ref<HTMLDivElement>",
6200
+ "defaultValue": null,
6201
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
6202
+ },
6203
+ {
6204
+ "name": "wrap",
6205
+ "required": false,
6206
+ "type": "boolean | null",
6207
+ "defaultValue": "false",
6208
+ "description": ""
6209
+ }
6210
+ ]
6211
+ },
6212
+ "subComponents": []
6213
+ },
6214
+ "scroll-area": {
6215
+ "root": {
6216
+ "name": "ScrollArea.Root",
6217
+ "description": "ScrollArea.Root — groups the viewport and its scrollbars. Give it a height or max-height.",
6218
+ "props": [
6219
+ {
6220
+ "name": "className",
6221
+ "required": false,
6222
+ "type": "string | ((state: ScrollAreaRootState) => string)",
6223
+ "defaultValue": null,
6224
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
6225
+ },
6226
+ {
6227
+ "name": "overflowEdgeThreshold",
6228
+ "required": false,
6229
+ "type": "| number\n| Partial<{\n xStart: number;\n xEnd: number;\n yStart: number;\n yEnd: number;\n }>",
6230
+ "defaultValue": "0",
6231
+ "description": "The threshold in pixels that must be passed before the overflow edge attributes are applied.\nAccepts a single number for all edges or an object to configure them individually."
6232
+ },
6233
+ {
6234
+ "name": "ref",
6235
+ "required": false,
6236
+ "type": "Ref<HTMLDivElement>",
6237
+ "defaultValue": null,
6238
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
6239
+ },
6240
+ {
6241
+ "name": "render",
6242
+ "required": false,
6243
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, ScrollAreaRootState>",
6244
+ "defaultValue": null,
6245
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
6246
+ },
6247
+ {
6248
+ "name": "style",
6249
+ "required": false,
6250
+ "type": "| CSSProperties\n| ((state: ScrollAreaRootState) => CSSProperties)",
6251
+ "defaultValue": null,
6252
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
6253
+ }
6254
+ ]
6255
+ },
6256
+ "subComponents": [
4970
6257
  {
4971
- "name": "Popover.Positioner",
4972
- "description": "Popover.Positioner — positions the popup relative to the trigger via floating-point layout.",
6258
+ "name": "ScrollArea.Auto",
6259
+ "description": "ScrollArea.Auto — Root, Viewport, Content, and the scrollbars for `orientation`, around `children`.",
4973
6260
  "props": [
4974
6261
  {
4975
- "name": "align",
4976
- "required": false,
4977
- "type": "Align",
4978
- "defaultValue": "center",
4979
- "description": "How to align the popup relative to the specified side."
4980
- },
4981
- {
4982
- "name": "alignOffset",
4983
- "required": false,
4984
- "type": "number | OffsetFunction",
4985
- "defaultValue": "0",
4986
- "description": "Additional offset along the alignment axis in pixels.\nAlso accepts a function that returns the offset to read the dimensions of the anchor\nand positioner elements, along with its side and alignment.\n\nThe function takes a `data` object parameter with the following properties:\n- `data.anchor`: the dimensions of the anchor element with properties `width` and `height`.\n- `data.positioner`: the dimensions of the positioner element with properties `width` and `height`.\n- `data.side`: which side of the anchor element the positioner is aligned against.\n- `data.align`: how the positioner is aligned relative to the specified side.\n@example ```jsx\n<Positioner\n alignOffset={({ side, align, anchor, positioner }) => {\n return side === 'top' || side === 'bottom'\n ? anchor.width\n : anchor.height;\n }}\n/>\n```"
4987
- },
4988
- {
4989
- "name": "anchor",
6262
+ "name": "className",
4990
6263
  "required": false,
4991
- "type": "| Element\n| VirtualElement\n| RefObject<Element | null>\n| (() => Element | VirtualElement | null)\n| null",
6264
+ "type": "string | ((state: ScrollAreaRootState) => string)",
4992
6265
  "defaultValue": null,
4993
- "description": "An element to position the popup against.\nBy default, the popup will be positioned against the trigger."
6266
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
4994
6267
  },
4995
6268
  {
4996
- "name": "arrowPadding",
6269
+ "name": "orientation",
4997
6270
  "required": false,
4998
- "type": "number",
4999
- "defaultValue": "5",
5000
- "description": "Minimum distance to maintain between the arrow and the edges of the popup.\n\nUse it to prevent the arrow element from hanging out of the rounded corners of a popup."
6271
+ "type": "\"none\" | \"both\" | \"horizontal\" | \"vertical\"",
6272
+ "defaultValue": "vertical",
6273
+ "description": "Which scrollbars to render. `both` also adds the Corner; `none` scrolls and fades without a visible bar."
5001
6274
  },
5002
6275
  {
5003
- "name": "className",
6276
+ "name": "overflowEdgeThreshold",
5004
6277
  "required": false,
5005
- "type": "| string\n| ((state: PopoverPositionerState) => string)",
5006
- "defaultValue": null,
5007
- "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
6278
+ "type": "| number\n| Partial<{\n xStart: number;\n xEnd: number;\n yStart: number;\n yEnd: number;\n }>",
6279
+ "defaultValue": "0",
6280
+ "description": "The threshold in pixels that must be passed before the overflow edge attributes are applied.\nAccepts a single number for all edges or an object to configure them individually."
5008
6281
  },
5009
6282
  {
5010
- "name": "collisionAvoidance",
6283
+ "name": "ref",
5011
6284
  "required": false,
5012
- "type": "CollisionAvoidance",
6285
+ "type": "Ref<HTMLDivElement>",
5013
6286
  "defaultValue": null,
5014
- "description": "Determines how to handle collisions when positioning the popup.\n\n`side` controls overflow on the preferred placement axis (`top`/`bottom` or `left`/`right`):\n- `'flip'`: keep the requested side when it fits; otherwise try the opposite side\n (`top` and `bottom`, or `left` and `right`).\n- `'shift'`: never change side; keep the requested side and move the popup within\n the clipping boundary so it stays visible.\n- `'none'`: do not correct side-axis overflow.\n\n`align` controls overflow on the alignment axis (`start`/`center`/`end`):\n- `'flip'`: keep side, but swap `start` and `end` when the requested alignment overflows.\n- `'shift'`: keep side and requested alignment, then nudge the popup along the\n alignment axis to fit.\n- `'none'`: do not correct alignment-axis overflow.\n\n`fallbackAxisSide` controls fallback behavior on the perpendicular axis when the\npreferred axis cannot fit:\n- `'start'`: allow perpendicular fallback and try the logical start side first\n (`top` before `bottom`, or `left` before `right` in LTR).\n- `'end'`: allow perpendicular fallback and try the logical end side first\n (`bottom` before `top`, or `right` before `left` in LTR).\n- `'none'`: do not fallback to the perpendicular axis.\n\nWhen `side` is `'shift'`, explicitly setting `align` only supports `'shift'` or `'none'`.\nIf `align` is omitted, it defaults to `'flip'`.\n@example ```jsx\n<Positioner\n collisionAvoidance={{\n side: 'shift',\n align: 'shift',\n fallbackAxisSide: 'none',\n }}\n/>\n```"
5015
- },
5016
- {
5017
- "name": "collisionBoundary",
5018
- "required": false,
5019
- "type": "Boundary",
5020
- "defaultValue": "clipping-ancestors",
5021
- "description": "An element or a rectangle that delimits the area that the popup is confined to."
6287
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
5022
6288
  },
5023
6289
  {
5024
- "name": "collisionPadding",
6290
+ "name": "render",
5025
6291
  "required": false,
5026
- "type": "Padding",
5027
- "defaultValue": "5",
5028
- "description": "Additional space to maintain from the edge of the collision boundary."
6292
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, ScrollAreaRootState>",
6293
+ "defaultValue": null,
6294
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
5029
6295
  },
5030
6296
  {
5031
- "name": "disableAnchorTracking",
6297
+ "name": "style",
5032
6298
  "required": false,
5033
- "type": "boolean",
5034
- "defaultValue": "false",
5035
- "description": "Whether to disable the popup from tracking any layout shift of its positioning anchor."
5036
- },
6299
+ "type": "| CSSProperties\n| ((state: ScrollAreaRootState) => CSSProperties)",
6300
+ "defaultValue": null,
6301
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
6302
+ }
6303
+ ]
6304
+ },
6305
+ {
6306
+ "name": "ScrollArea.Content",
6307
+ "description": "ScrollArea.Content — wraps the scrolled content so the viewport can measure it.",
6308
+ "props": [
5037
6309
  {
5038
- "name": "positionMethod",
6310
+ "name": "className",
5039
6311
  "required": false,
5040
- "type": "\"absolute\" | \"fixed\"",
5041
- "defaultValue": "absolute",
5042
- "description": "Determines which CSS `position` property to use."
6312
+ "type": "| string\n| ((state: ScrollAreaContentState) => string)",
6313
+ "defaultValue": null,
6314
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
5043
6315
  },
5044
6316
  {
5045
6317
  "name": "ref",
5046
6318
  "required": false,
5047
- "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
6319
+ "type": "Ref<HTMLDivElement>",
5048
6320
  "defaultValue": null,
5049
6321
  "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
5050
6322
  },
5051
6323
  {
5052
6324
  "name": "render",
5053
6325
  "required": false,
5054
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverPositionerState>",
6326
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, ScrollAreaContentState>",
5055
6327
  "defaultValue": null,
5056
6328
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
5057
6329
  },
5058
- {
5059
- "name": "side",
5060
- "required": false,
5061
- "type": "Side",
5062
- "defaultValue": "bottom",
5063
- "description": "Which side of the anchor element to align the popup against.\nMay automatically change to avoid collisions."
5064
- },
5065
- {
5066
- "name": "sideOffset",
5067
- "required": false,
5068
- "type": "number | OffsetFunction",
5069
- "defaultValue": "0",
5070
- "description": "Distance between the anchor and the popup in pixels.\nAlso accepts a function that returns the distance to read the dimensions of the anchor\nand positioner elements, along with its side and alignment.\n\nThe function takes a `data` object parameter with the following properties:\n- `data.anchor`: the dimensions of the anchor element with properties `width` and `height`.\n- `data.positioner`: the dimensions of the positioner element with properties `width` and `height`.\n- `data.side`: which side of the anchor element the positioner is aligned against.\n- `data.align`: how the positioner is aligned relative to the specified side.\n@example ```jsx\n<Positioner\n sideOffset={({ side, align, anchor, positioner }) => {\n return side === 'top' || side === 'bottom'\n ? anchor.height\n : anchor.width;\n }}\n/>\n```"
5071
- },
5072
- {
5073
- "name": "sticky",
5074
- "required": false,
5075
- "type": "boolean",
5076
- "defaultValue": "false",
5077
- "description": "Whether to maintain the popup in the viewport after\nthe anchor element was scrolled out of view."
5078
- },
5079
6330
  {
5080
6331
  "name": "style",
5081
6332
  "required": false,
5082
- "type": "| CSSProperties\n| ((state: PopoverPositionerState) => CSSProperties)",
6333
+ "type": "| CSSProperties\n| ((state: ScrollAreaContentState) => CSSProperties)",
5083
6334
  "defaultValue": null,
5084
6335
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
5085
6336
  }
5086
6337
  ]
5087
6338
  },
5088
6339
  {
5089
- "name": "Popover.Title",
5090
- "description": "Popover.Title — semantic heading for the popover's accessible name.",
6340
+ "name": "ScrollArea.Corner",
6341
+ "description": "ScrollArea.Corner — the square where a vertical and a horizontal scrollbar meet.",
5091
6342
  "props": [
5092
6343
  {
5093
6344
  "name": "className",
5094
6345
  "required": false,
5095
- "type": "string | ((state: PopoverTitleState) => string)",
6346
+ "type": "| string\n| ((state: ScrollAreaCornerState) => string)",
5096
6347
  "defaultValue": null,
5097
6348
  "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
5098
6349
  },
5099
6350
  {
5100
6351
  "name": "ref",
5101
6352
  "required": false,
5102
- "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
6353
+ "type": "Ref<HTMLDivElement>",
5103
6354
  "defaultValue": null,
5104
6355
  "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
5105
6356
  },
5106
6357
  {
5107
6358
  "name": "render",
5108
6359
  "required": false,
5109
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverTitleState>",
6360
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, ScrollAreaCornerState>",
5110
6361
  "defaultValue": null,
5111
6362
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
5112
6363
  },
5113
6364
  {
5114
6365
  "name": "style",
5115
6366
  "required": false,
5116
- "type": "| CSSProperties\n| ((state: PopoverTitleState) => CSSProperties)",
6367
+ "type": "| CSSProperties\n| ((state: ScrollAreaCornerState) => CSSProperties)",
5117
6368
  "defaultValue": null,
5118
6369
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
5119
6370
  }
5120
6371
  ]
5121
6372
  },
5122
6373
  {
5123
- "name": "Popover.Trigger",
5124
- "description": "Popover.Trigger — button that opens the popover.",
6374
+ "name": "ScrollArea.Scrollbar",
6375
+ "description": "ScrollArea.Scrollbar — overlay bar that shows while the area is hovered or scrolling.",
5125
6376
  "props": [
5126
6377
  {
5127
6378
  "name": "className",
5128
6379
  "required": false,
5129
- "type": "string | ((state: PopoverTriggerState) => string)",
6380
+ "type": "| string\n| ((state: ScrollAreaScrollbarState) => string)",
5130
6381
  "defaultValue": null,
5131
6382
  "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
5132
6383
  },
5133
6384
  {
5134
- "name": "closeDelay",
6385
+ "name": "keepMounted",
5135
6386
  "required": false,
5136
- "type": "number",
5137
- "defaultValue": "0",
5138
- "description": "How long to wait before closing the popover that was opened on hover.\nSpecified in milliseconds.\n\nRequires the `openOnHover` prop."
6387
+ "type": "boolean",
6388
+ "defaultValue": "false",
6389
+ "description": "Whether to keep the HTML element in the DOM when the viewport isn't scrollable."
5139
6390
  },
5140
6391
  {
5141
- "name": "delay",
6392
+ "name": "orientation",
5142
6393
  "required": false,
5143
- "type": "number",
5144
- "defaultValue": "300",
5145
- "description": "How long to wait before the popover may be opened on hover. Specified in milliseconds.\n\nRequires the `openOnHover` prop."
6394
+ "type": "\"horizontal\" | \"vertical\"",
6395
+ "defaultValue": "vertical",
6396
+ "description": "Whether the scrollbar controls vertical or horizontal scroll."
5146
6397
  },
5147
6398
  {
5148
- "name": "handle",
6399
+ "name": "ref",
5149
6400
  "required": false,
5150
- "type": "PopoverHandle<unknown>",
6401
+ "type": "Ref<HTMLDivElement>",
5151
6402
  "defaultValue": null,
5152
- "description": "A handle to associate the trigger with a popover."
5153
- },
5154
- {
5155
- "name": "inline",
5156
- "required": false,
5157
- "type": "boolean | null",
5158
- "defaultValue": "false",
5159
- "description": ""
6403
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
5160
6404
  },
5161
6405
  {
5162
- "name": "nativeButton",
6406
+ "name": "render",
5163
6407
  "required": false,
5164
- "type": "boolean",
5165
- "defaultValue": "true",
5166
- "description": "Whether the component renders a native `<button>` element when replacing it\nvia the `render` prop.\nSet to `false` if the rendered element is not a button (for example, `<div>`).\nWhether the component renders a native `<button>` element when replacing it\nvia the `render` prop.\nSet to `false` if the rendered element is not a button (e.g. `<div>`)."
6408
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, ScrollAreaScrollbarState>",
6409
+ "defaultValue": null,
6410
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
5167
6411
  },
5168
6412
  {
5169
- "name": "openOnHover",
6413
+ "name": "style",
5170
6414
  "required": false,
5171
- "type": "boolean",
5172
- "defaultValue": "false",
5173
- "description": "Whether the popover should also open when the trigger is hovered."
5174
- },
6415
+ "type": "| CSSProperties\n| ((state: ScrollAreaScrollbarState) => CSSProperties)",
6416
+ "defaultValue": null,
6417
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
6418
+ }
6419
+ ]
6420
+ },
6421
+ {
6422
+ "name": "ScrollArea.Thumb",
6423
+ "description": "ScrollArea.Thumb — the draggable part of the scrollbar.",
6424
+ "props": [
5175
6425
  {
5176
- "name": "payload",
6426
+ "name": "className",
5177
6427
  "required": false,
5178
- "type": "unknown",
6428
+ "type": "| string\n| ((state: ScrollAreaThumbState) => string)",
5179
6429
  "defaultValue": null,
5180
- "description": "A payload to pass to the popover when it is opened."
6430
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
5181
6431
  },
5182
6432
  {
5183
6433
  "name": "ref",
5184
6434
  "required": false,
5185
- "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
6435
+ "type": "Ref<HTMLDivElement>",
5186
6436
  "defaultValue": null,
5187
6437
  "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
5188
6438
  },
5189
6439
  {
5190
6440
  "name": "render",
5191
6441
  "required": false,
5192
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverTriggerState>",
6442
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, ScrollAreaThumbState>",
5193
6443
  "defaultValue": null,
5194
6444
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
5195
6445
  },
5196
6446
  {
5197
6447
  "name": "style",
5198
6448
  "required": false,
5199
- "type": "| CSSProperties\n| ((state: PopoverTriggerState) => CSSProperties)",
6449
+ "type": "| CSSProperties\n| ((state: ScrollAreaThumbState) => CSSProperties)",
5200
6450
  "defaultValue": null,
5201
6451
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
5202
- },
5203
- {
5204
- "name": "variant",
5205
- "required": false,
5206
- "type": "| \"ghost\"\n| \"outline\"\n| \"primary\"\n| \"secondary\"\n| \"positive\"\n| \"negative\"\n| null",
5207
- "defaultValue": "ghost",
5208
- "description": ""
5209
6452
  }
5210
6453
  ]
5211
6454
  },
5212
6455
  {
5213
- "name": "Popover.Viewport",
5214
- "description": "Popover.Viewport — content wrapper that supports direction-aware animations.",
6456
+ "name": "ScrollArea.Viewport",
6457
+ "description": "ScrollArea.Viewport — the scrolling box. It fades its content out at each edge with more to scroll.",
5215
6458
  "props": [
5216
- {
5217
- "name": "children",
5218
- "required": false,
5219
- "type": "ReactNode",
5220
- "defaultValue": null,
5221
- "description": "The content to render inside the transition container."
5222
- },
5223
6459
  {
5224
6460
  "name": "className",
5225
6461
  "required": false,
5226
- "type": "| string\n| ((state: PopoverViewportState) => string)",
6462
+ "type": "| string\n| ((state: ScrollAreaViewportState) => string)",
5227
6463
  "defaultValue": null,
5228
6464
  "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
5229
6465
  },
5230
6466
  {
5231
6467
  "name": "ref",
5232
6468
  "required": false,
5233
- "type": "((instance: HTMLButtonElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<HTMLButtonElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly)) | RefObject<...> | null",
6469
+ "type": "Ref<HTMLDivElement>",
5234
6470
  "defaultValue": null,
5235
6471
  "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
5236
6472
  },
5237
6473
  {
5238
6474
  "name": "render",
5239
6475
  "required": false,
5240
- "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, PopoverViewportState>",
6476
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, ScrollAreaViewportState>",
5241
6477
  "defaultValue": null,
5242
6478
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
5243
6479
  },
5244
6480
  {
5245
6481
  "name": "style",
5246
6482
  "required": false,
5247
- "type": "| CSSProperties\n| ((state: PopoverViewportState) => CSSProperties)",
6483
+ "type": "| CSSProperties\n| ((state: ScrollAreaViewportState) => CSSProperties)",
5248
6484
  "defaultValue": null,
5249
6485
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
5250
6486
  }
@@ -5252,110 +6488,6 @@
5252
6488
  }
5253
6489
  ]
5254
6490
  },
5255
- "prose": {
5256
- "root": {
5257
- "name": "Prose",
5258
- "description": "",
5259
- "props": [
5260
- {
5261
- "name": "ref",
5262
- "required": false,
5263
- "type": "Ref<HTMLDivElement>",
5264
- "defaultValue": null,
5265
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
5266
- }
5267
- ]
5268
- },
5269
- "subComponents": []
5270
- },
5271
- "rich-link": {
5272
- "root": {
5273
- "name": "RichLink",
5274
- "description": "RichLink — a link as a whole row: an optional leading icon on a tinted tile, the label with an optional description\nline, and a trailing icon for where it leads. Draws no divider; stacked links get their spacing from the layout. Wrap it\nwith TanStack Router's `createLink` to use it as a router link.",
5275
- "props": [
5276
- {
5277
- "name": "description",
5278
- "required": false,
5279
- "type": "ReactNode",
5280
- "defaultValue": null,
5281
- "description": "Second line under the label. When set, the label turns bold."
5282
- },
5283
- {
5284
- "name": "endGlyph",
5285
- "required": false,
5286
- "type": "IconComponent",
5287
- "defaultValue": null,
5288
- "description": "Trailing icon from `@imfusion/web-ui/icons`, replacing the arrow `kind` picks, such as `Download` for a file."
5289
- },
5290
- {
5291
- "name": "glyph",
5292
- "required": false,
5293
- "type": "IconComponent",
5294
- "defaultValue": null,
5295
- "description": "Leading icon from `@imfusion/web-ui/icons`, shown on a tile in the primary color."
5296
- },
5297
- {
5298
- "name": "kind",
5299
- "required": false,
5300
- "type": "\"external\" | \"internal\"",
5301
- "defaultValue": "external",
5302
- "description": "Link target scope. `\"external\"` (default) opens in a new tab with a diagonal `ArrowUpRight` icon; `\"internal\"` stays in the current tab with a horizontal `ArrowRight` icon."
5303
- },
5304
- {
5305
- "name": "ref",
5306
- "required": false,
5307
- "type": "Ref<HTMLAnchorElement>",
5308
- "defaultValue": null,
5309
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
5310
- }
5311
- ]
5312
- },
5313
- "subComponents": []
5314
- },
5315
- "row": {
5316
- "root": {
5317
- "name": "Row",
5318
- "description": "Row — horizontal layout primitive.\n\nCopied and adapted from Mantine's Group; no upstream runtime\ndependency. Pure row flex container with token-driven gap and constrained\nalign/justify unions.",
5319
- "props": [
5320
- {
5321
- "name": "align",
5322
- "required": false,
5323
- "type": "\"center\" | \"start\" | \"end\" | \"stretch\"",
5324
- "defaultValue": "stretch",
5325
- "description": "Cross-axis alignment. Sets both `align-items` (item alignment within a\nrow) and `align-content` (row distribution when `wrap` is on). `\"stretch\"`\nkeeps rows packed together via `align-content: flex-start` while items\nfill their row height."
5326
- },
5327
- {
5328
- "name": "gap",
5329
- "required": false,
5330
- "type": "| \"1\"\n| \"2\"\n| \"3\"\n| \"4\"\n| \"5\"\n| \"6\"\n| \"7\"\n| \"8\"\n| \"9\"\n| \"10\"\n| null",
5331
- "defaultValue": "2",
5332
- "description": ""
5333
- },
5334
- {
5335
- "name": "justify",
5336
- "required": false,
5337
- "type": "| \"center\"\n| \"start\"\n| \"end\"\n| \"between\"\n| \"around\"\n| \"evenly\"\n| null",
5338
- "defaultValue": "start",
5339
- "description": ""
5340
- },
5341
- {
5342
- "name": "ref",
5343
- "required": false,
5344
- "type": "Ref<HTMLDivElement>",
5345
- "defaultValue": null,
5346
- "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
5347
- },
5348
- {
5349
- "name": "wrap",
5350
- "required": false,
5351
- "type": "boolean | null",
5352
- "defaultValue": "false",
5353
- "description": ""
5354
- }
5355
- ]
5356
- },
5357
- "subComponents": []
5358
- },
5359
6491
  "select": {
5360
6492
  "root": {
5361
6493
  "name": "Select.Root",
@@ -5535,6 +6667,13 @@
5535
6667
  "type": "SelectValueType<Value, Multiple> | null",
5536
6668
  "defaultValue": null,
5537
6669
  "description": "The value of the select. Use when controlled."
6670
+ },
6671
+ {
6672
+ "name": "width",
6673
+ "required": false,
6674
+ "type": "\"auto\" | \"wide\" | \"full\" | null",
6675
+ "defaultValue": "auto",
6676
+ "description": "Trigger width: `auto` keeps the compact minimum; `wide` raises it; `full` fills the parent."
5538
6677
  }
5539
6678
  ]
5540
6679
  },
@@ -5771,9 +6910,22 @@
5771
6910
  }
5772
6911
  ]
5773
6912
  },
6913
+ {
6914
+ "name": "Select.ItemDescription",
6915
+ "description": "Select.ItemDescription — a muted second line under an item's text, such as what a role allows. It stays out of the\ntrigger, which shows only `Select.ItemText`.",
6916
+ "props": [
6917
+ {
6918
+ "name": "ref",
6919
+ "required": false,
6920
+ "type": "Ref<HTMLDivElement>",
6921
+ "defaultValue": null,
6922
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
6923
+ }
6924
+ ]
6925
+ },
5774
6926
  {
5775
6927
  "name": "Select.ItemIndicator",
5776
- "description": "Select.ItemIndicator — visual marker (e.g. checkmark) inside the selected item.",
6928
+ "description": "Select.ItemIndicator — marker inside the selected item. Without children it draws a check icon in the item's text colour.",
5777
6929
  "props": [
5778
6930
  {
5779
6931
  "name": "className",
@@ -6102,7 +7254,7 @@
6102
7254
  "name": "sideOffset",
6103
7255
  "required": false,
6104
7256
  "type": "number | OffsetFunction",
6105
- "defaultValue": "0",
7257
+ "defaultValue": "4",
6106
7258
  "description": "Distance between the anchor and the popup in pixels.\nAlso accepts a function that returns the distance to read the dimensions of the anchor\nand positioner elements, along with its side and alignment.\n\nThe function takes a `data` object parameter with the following properties:\n- `data.anchor`: the dimensions of the anchor element with properties `width` and `height`.\n- `data.positioner`: the dimensions of the positioner element with properties `width` and `height`.\n- `data.side`: which side of the anchor element the positioner is aligned against.\n- `data.align`: how the positioner is aligned relative to the specified side.\n@example ```jsx\n<Positioner\n sideOffset={({ side, align, anchor, positioner }) => {\n return side === 'top' || side === 'bottom'\n ? anchor.height\n : anchor.width;\n }}\n/>\n```"
6107
7259
  },
6108
7260
  {
@@ -6345,7 +7497,7 @@
6345
7497
  "separator": {
6346
7498
  "root": {
6347
7499
  "name": "Separator",
6348
- "description": "Separator — visual divider between content sections.",
7500
+ "description": "Separator — visual divider between content sections. `tone=\"minor\"` draws a neutral line for a quiet break inside a\npage; the default primary line marks a stronger division.",
6349
7501
  "props": [
6350
7502
  {
6351
7503
  "name": "className",
@@ -6382,6 +7534,13 @@
6382
7534
  "defaultValue": null,
6383
7535
  "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
6384
7536
  },
7537
+ {
7538
+ "name": "tone",
7539
+ "required": false,
7540
+ "type": "\"primary\" | \"minor\" | null",
7541
+ "defaultValue": "primary",
7542
+ "description": ""
7543
+ },
6385
7544
  {
6386
7545
  "name": "variant",
6387
7546
  "required": false,
@@ -6396,7 +7555,7 @@
6396
7555
  "skeleton": {
6397
7556
  "root": {
6398
7557
  "name": "Skeleton.Root",
6399
- "description": "Skeleton.Root — marks a region as loading. The view inside renders for real; bones stand in for the data. While\n`loading`, sets `aria-busy` and announces `label` once, however many bones it holds. When `loading` turns false, the\ndata fades in over the bones.",
7558
+ "description": "Skeleton.Root — marks a region as loading. The view inside renders for real; bones stand in for the data. While\n`loading`, sets `aria-busy` and announces `label` once, however many bones it holds. When `loading` turns false, the\ndata fades in.",
6400
7559
  "props": [
6401
7560
  {
6402
7561
  "name": "animation",
@@ -6470,6 +7629,26 @@
6470
7629
  }
6471
7630
  ]
6472
7631
  },
7632
+ {
7633
+ "name": "Skeleton.Suspense",
7634
+ "description": "Skeleton.Suspense — a Suspense boundary whose fallback is bones in a busy Root. When the children mount after the\nfallback showed, they fade in over it. Content that was ready without suspending mounts without a fade.",
7635
+ "props": [
7636
+ {
7637
+ "name": "fallback",
7638
+ "required": true,
7639
+ "type": "ReactNode",
7640
+ "defaultValue": null,
7641
+ "description": "Bones shown while the children suspend."
7642
+ },
7643
+ {
7644
+ "name": "label",
7645
+ "required": true,
7646
+ "type": "string",
7647
+ "defaultValue": null,
7648
+ "description": "Announced once through a visually hidden status while the fallback shows."
7649
+ }
7650
+ ]
7651
+ },
6473
7652
  {
6474
7653
  "name": "Skeleton.Text",
6475
7654
  "description": "Skeleton.Text — a text bar exactly one line of the parent's font tall. Place it inside the real Typo element so the\nrow keeps the loaded row's height.",
@@ -7179,6 +8358,13 @@
7179
8358
  "name": "Table.Root",
7180
8359
  "description": "Table.Root — the `<table>` element.",
7181
8360
  "props": [
8361
+ {
8362
+ "name": "density",
8363
+ "required": false,
8364
+ "type": "\"compact\" | \"comfortable\" | \"spacious\"",
8365
+ "defaultValue": "comfortable",
8366
+ "description": "Cell padding: `compact` for dense data, `spacious` for a few rows at a glance."
8367
+ },
7182
8368
  {
7183
8369
  "name": "ref",
7184
8370
  "required": false,
@@ -7206,6 +8392,13 @@
7206
8392
  "name": "Table.Cell",
7207
8393
  "description": "Table.Cell — a `<td>` data cell.",
7208
8394
  "props": [
8395
+ {
8396
+ "name": "action",
8397
+ "required": false,
8398
+ "type": "boolean",
8399
+ "defaultValue": "false",
8400
+ "description": "Marks an action column: it shrinks to its content and keeps it on one line."
8401
+ },
7209
8402
  {
7210
8403
  "name": "ref",
7211
8404
  "required": false,
@@ -7245,6 +8438,13 @@
7245
8438
  "name": "Table.HeaderCell",
7246
8439
  "description": "Table.HeaderCell — a `<th>` header cell.",
7247
8440
  "props": [
8441
+ {
8442
+ "name": "action",
8443
+ "required": false,
8444
+ "type": "boolean",
8445
+ "defaultValue": "false",
8446
+ "description": "Marks an action column: it shrinks to its content and keeps it on one line."
8447
+ },
7248
8448
  {
7249
8449
  "name": "ref",
7250
8450
  "required": false,
@@ -7291,6 +8491,13 @@
7291
8491
  "name": "Table.SortableHeaderCell",
7292
8492
  "description": "Table.SortableHeaderCell — a header cell whose label is a sort toggle,\npre-composing HeaderCell + HeaderButton so `aria-sort` and the direction\nindicator aren't re-derived per consumer. Omit `onToggle` for a plain cell.",
7293
8493
  "props": [
8494
+ {
8495
+ "name": "action",
8496
+ "required": false,
8497
+ "type": "boolean",
8498
+ "defaultValue": null,
8499
+ "description": "Marks an action column: it shrinks to its content and keeps it on one line."
8500
+ },
7294
8501
  {
7295
8502
  "name": "ref",
7296
8503
  "required": false,
@@ -8183,6 +9390,13 @@
8183
9390
  "defaultValue": null,
8184
9391
  "description": "Key hint shown in the top corner at the end of the line, such as `\"P\"` or `\"Ctrl Z\"`. It also sets\n`aria-keyshortcuts` in its notation (`Control+Z`), which an explicit\n`aria-keyshortcuts` prop overrides. Display only: bind the key in the app, for example with `useHotkey` from TanStack Hotkeys."
8185
9392
  },
9393
+ {
9394
+ "name": "size",
9395
+ "required": false,
9396
+ "type": "\"sm\" | \"md\" | null",
9397
+ "defaultValue": null,
9398
+ "description": "Defaults to the enclosing `ToggleGroup`'s `size`, or `\"md\"` standalone."
9399
+ },
8186
9400
  {
8187
9401
  "name": "style",
8188
9402
  "required": false,
@@ -8204,7 +9418,7 @@
8204
9418
  "toggle-group": {
8205
9419
  "root": {
8206
9420
  "name": "ToggleGroup",
8207
- "description": "ToggleGroup - a set of connected `Toggle`s sharing one value. Single-select by\ndefault (a segmented control); set `multiple` for multi-select. Compose one\n`Toggle` per segment, each with a `value`.",
9421
+ "description": "ToggleGroup - a set of connected `Toggle`s sharing one value. Single-select by\ndefault (a segmented control); set `multiple` for multi-select. Compose one\n`Toggle` per segment, each with a `value`. `size` applies to every toggle in the group.",
8208
9422
  "props": [
8209
9423
  {
8210
9424
  "name": "className",
@@ -8269,6 +9483,13 @@
8269
9483
  "defaultValue": null,
8270
9484
  "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
8271
9485
  },
9486
+ {
9487
+ "name": "size",
9488
+ "required": false,
9489
+ "type": "\"sm\" | \"md\" | null",
9490
+ "defaultValue": "md",
9491
+ "description": ""
9492
+ },
8272
9493
  {
8273
9494
  "name": "style",
8274
9495
  "required": false,