@instruments/materia-ui 0.4.6 → 0.4.7

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 (119) hide show
  1. package/dist/components/accordion/accordion-variants.js +1 -0
  2. package/dist/components/alert/alert-root.js +1 -0
  3. package/dist/components/anchor/anchor-root.js +1 -0
  4. package/dist/components/avatar/avatar-badge.d.ts +1 -1
  5. package/dist/components/avatar/avatar-fallback.d.ts +1 -1
  6. package/dist/components/avatar/avatar-root.d.ts +1 -1
  7. package/dist/components/avatar/avatar-status.d.ts +2 -1
  8. package/dist/components/badge/badge-button.d.ts +1 -0
  9. package/dist/components/badge/badge-button.js +1 -0
  10. package/dist/components/badge/badge-root.d.ts +4 -1
  11. package/dist/components/breadcrumb/breadcrumb-root.d.ts +1 -0
  12. package/dist/components/button/button-variants.js +7 -0
  13. package/dist/components/button-group/button-group-root.js +4 -0
  14. package/dist/components/card/card-root.d.ts +1 -0
  15. package/dist/components/card/card-root.js +1 -0
  16. package/dist/components/checkbox-card/checkbox-card-root.d.ts +1 -1
  17. package/dist/components/checkbox-field/checkbox-field-root.d.ts +4 -1
  18. package/dist/components/context-menu/context-menu-checkbox-item.d.ts +1 -1
  19. package/dist/components/context-menu/context-menu-content.d.ts +1 -1
  20. package/dist/components/context-menu/context-menu-item.d.ts +1 -1
  21. package/dist/components/context-menu/context-menu-radio-item.d.ts +1 -1
  22. package/dist/components/context-menu/context-menu-separator.d.ts +2 -2
  23. package/dist/components/context-menu/context-menu-separator.js +1 -1
  24. package/dist/components/context-menu/context-menu-sub-trigger.d.ts +1 -1
  25. package/dist/components/dot/dot-root.js +1 -0
  26. package/dist/components/drawer/drawer-root.d.ts +1 -0
  27. package/dist/components/dropdown-menu/dropdown-menu-checkbox-item.d.ts +1 -1
  28. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +1 -1
  29. package/dist/components/dropdown-menu/dropdown-menu-item.d.ts +1 -1
  30. package/dist/components/dropdown-menu/dropdown-menu-radio-item.d.ts +1 -1
  31. package/dist/components/dropdown-menu/dropdown-menu-separator.d.ts +2 -2
  32. package/dist/components/dropdown-menu/dropdown-menu-separator.js +1 -1
  33. package/dist/components/dropdown-menu/dropdown-menu-sub-trigger.d.ts +1 -1
  34. package/dist/components/empty/empty-root.js +1 -0
  35. package/dist/components/expand-button/expand-button-root.js +1 -0
  36. package/dist/components/field/field-error.d.ts +1 -0
  37. package/dist/components/field/field-variants.js +1 -0
  38. package/dist/components/icon-box/icon-box-root.js +4 -0
  39. package/dist/components/identified-surface.d.ts +5 -0
  40. package/dist/components/input/input-variants.js +1 -0
  41. package/dist/components/input-card/input-card-root.d.ts +3 -0
  42. package/dist/components/input-group/input-group-button.d.ts +7 -3
  43. package/dist/components/item/item-group.js +1 -0
  44. package/dist/components/item/item-media.d.ts +8 -0
  45. package/dist/components/item/item-media.js +1 -0
  46. package/dist/components/item/item-root.d.ts +1 -0
  47. package/dist/components/item/item-root.js +1 -0
  48. package/dist/components/kbd/kbd-root.js +2 -0
  49. package/dist/components/menu-item/menu-item-variants.js +5 -0
  50. package/dist/components/menu-parts-types.d.ts +82 -0
  51. package/dist/components/menu-parts-types.js +1 -0
  52. package/dist/components/menu-parts.d.ts +3 -66
  53. package/dist/components/menubar/menubar-checkbox-item.d.ts +1 -1
  54. package/dist/components/menubar/menubar-content.d.ts +1 -1
  55. package/dist/components/menubar/menubar-item.d.ts +1 -1
  56. package/dist/components/menubar/menubar-radio-item.d.ts +1 -1
  57. package/dist/components/menubar/menubar-separator.d.ts +2 -2
  58. package/dist/components/menubar/menubar-separator.js +1 -1
  59. package/dist/components/menubar/menubar-sub-trigger.d.ts +1 -1
  60. package/dist/components/phone-input/phone-input-root.js +2 -0
  61. package/dist/components/pill/pill-root.d.ts +1 -0
  62. package/dist/components/pill/pill-variants.js +3 -0
  63. package/dist/components/popover/popover-root.d.ts +2 -0
  64. package/dist/components/progress/progress-root.d.ts +2 -0
  65. package/dist/components/scroll-frame/scroll-frame-root.d.ts +8 -2
  66. package/dist/components/segmented-control/segmented-control-root.d.ts +8 -2
  67. package/dist/components/select/select-content.d.ts +1 -0
  68. package/dist/components/select/select-trigger.d.ts +9 -1
  69. package/dist/components/select/select-trigger.js +1 -1
  70. package/dist/components/sidepanel/sidepanel-header.d.ts +4 -0
  71. package/dist/components/sub-navigation/sub-navigation-link.d.ts +1 -0
  72. package/dist/components/swatch/swatch-tile.d.ts +2 -1
  73. package/dist/components/swatch/swatch-tile.js +1 -1
  74. package/dist/components/tab-navigation/tab-navigation-link.d.ts +1 -0
  75. package/dist/components/tabs/tabs-panel.d.ts +4 -0
  76. package/dist/components/tabs/tabs-variants.js +4 -0
  77. package/dist/components/thinking-loader/thinking-loader-counter.d.ts +2 -0
  78. package/dist/components/thinking-loader/thinking-loader-icon.d.ts +2 -0
  79. package/dist/components/thinking-loader/thinking-loader-step.d.ts +2 -0
  80. package/dist/components/toggle/toggle-root.js +2 -0
  81. package/dist/components/voice/voice-error-popover.d.ts +2 -0
  82. package/dist/components/voice/voice-pill.d.ts +2 -0
  83. package/dist/compositions/attribute-card.d.ts +1 -0
  84. package/dist/compositions/card-grid/card-grid-rows.d.ts +13 -0
  85. package/dist/compositions/data-grid/data-grid-checkbox.d.ts +8 -0
  86. package/dist/compositions/data-grid/data-grid-expand.d.ts +1 -0
  87. package/dist/compositions/data-grid/data-grid-filterable-header.d.ts +1 -0
  88. package/dist/compositions/data-grid/data-grid-types.d.ts +6 -0
  89. package/dist/compositions/data-grid-column-header/data-grid-column-header-root.d.ts +5 -0
  90. package/dist/compositions/data-grid-table/data-grid-table-body.d.ts +13 -1
  91. package/dist/compositions/data-grid-table/data-grid-table-body.js +1 -1
  92. package/dist/compositions/data-grid-table/data-grid-table-header.d.ts +5 -0
  93. package/dist/compositions/document-list/document-list-icon.d.ts +1 -0
  94. package/dist/compositions/document-list/document-list-root.js +4 -0
  95. package/dist/compositions/editorial-card/editorial-card-content.d.ts +2 -0
  96. package/dist/compositions/file-upload/file-upload-dropzone.d.ts +3 -0
  97. package/dist/compositions/folder-tile/folder-tile-types.d.ts +2 -0
  98. package/dist/compositions/mobile-navigation/mobile-navigation-header.d.ts +5 -2
  99. package/dist/compositions/mobile-navigation/mobile-navigation-header.js +0 -1
  100. package/dist/compositions/mobile-navigation/mobile-navigation-item.d.ts +2 -0
  101. package/dist/compositions/mobile-navigation/mobile-navigation-profile.d.ts +1 -0
  102. package/dist/compositions/mobile-navigation/mobile-navigation-root.d.ts +1 -0
  103. package/dist/compositions/page-toolbar/page-toolbar-applied.d.ts +4 -1
  104. package/dist/compositions/page-toolbar/page-toolbar-sort.d.ts +3 -0
  105. package/dist/compositions/product-card/product-card-content.d.ts +1 -0
  106. package/dist/compositions/product-card/product-card-image-types.d.ts +8 -2
  107. package/dist/compositions/product-card/product-card-provider-types.d.ts +47 -2
  108. package/dist/compositions/product-card/product-card-root.d.ts +1 -0
  109. package/dist/compositions/product-card/product-card-swatch.d.ts +2 -0
  110. package/dist/compositions/product-card/product-card-tools-types.d.ts +6 -0
  111. package/dist/compositions/product-specifications-selector/product-specifications-selector.d.ts +14 -0
  112. package/dist/compositions/sidebar/sidebar-group.d.ts +4 -0
  113. package/dist/compositions/sidebar/sidebar-menu-button.d.ts +11 -0
  114. package/dist/compositions/sidebar/sidebar-menu-sub.d.ts +4 -0
  115. package/dist/compositions/sidebar/sidebar-trigger.d.ts +2 -0
  116. package/dist/compositions/variant-selector/variant-selector-item.d.ts +1 -0
  117. package/dist/data/docs-manifest.js +551 -26
  118. package/dist/utils/with-test-id.d.ts +1 -0
  119. package/package.json +1 -1
@@ -19,6 +19,8 @@ export const docsManifest = {
19
19
  name: "variant",
20
20
  type: '"default" | "outline" | "solid" | null | undefined',
21
21
  required: false,
22
+ defaultValue: '"default"',
23
+ description: "Item styling, inherited by every item: `default` is ruled rows divided by bottom borders, `outline` bordered cards, `solid` filled cards. `outline` and `solid` space the items apart.",
22
24
  },
23
25
  {
24
26
  name: "className",
@@ -127,6 +129,8 @@ export const docsManifest = {
127
129
  name: "tone",
128
130
  type: '"neutral" | "danger" | null | undefined',
129
131
  required: false,
132
+ defaultValue: '"neutral"',
133
+ description: "Semantic colour: `neutral` for information, `danger` for an error or a destructive warning.",
130
134
  },
131
135
  ],
132
136
  },
@@ -319,6 +323,8 @@ export const docsManifest = {
319
323
  name: "variant",
320
324
  type: '"default" | "muted" | "plain" | null | undefined',
321
325
  required: false,
326
+ defaultValue: '"default"',
327
+ description: "Link treatment: `default` is a medium-weight underlined link, `muted` reads as body text until hovered, `plain` has no underline until hovered.",
322
328
  },
323
329
  ],
324
330
  },
@@ -506,6 +512,7 @@ export const docsManifest = {
506
512
  type: "AvatarSize | undefined",
507
513
  required: false,
508
514
  defaultValue: '"base"',
515
+ description: "Avatar width and height, `2xs` (20px) to `6xl` (128px). Inside an `AvatarGroup`, the group's `size` wins.",
509
516
  },
510
517
  {
511
518
  name: "radius",
@@ -574,6 +581,7 @@ export const docsManifest = {
574
581
  type: '"bottom-right" | "top-right" | "bottom-left" | "top-left"',
575
582
  required: false,
576
583
  defaultValue: '"top-right"',
584
+ description: "Which corner of the avatar the badge overlaps.",
577
585
  },
578
586
  {
579
587
  name: "size",
@@ -610,6 +618,7 @@ export const docsManifest = {
610
618
  type: "AvatarSize | undefined",
611
619
  required: false,
612
620
  defaultValue: '"base"',
621
+ description: "Initials text size; set it to the same `size` as the parent `AvatarRoot`, as it does not inherit it. At `2xs` and `xs` only one initial shows.",
613
622
  },
614
623
  {
615
624
  name: "name",
@@ -735,6 +744,7 @@ export const docsManifest = {
735
744
  type: '"bottom-right" | "top-right" | "bottom-left" | "top-left"',
736
745
  required: false,
737
746
  defaultValue: '"bottom-right"',
747
+ description: "Which corner of the avatar the dot sits in.",
738
748
  },
739
749
  {
740
750
  name: "size",
@@ -746,6 +756,7 @@ export const docsManifest = {
746
756
  name: "status",
747
757
  type: "AvatarStatusType",
748
758
  required: true,
759
+ description: "Presence shown by the dot colour: `online` green, `away` and `busy` amber (the same colour), `dnd` red, `offline` muted grey.",
749
760
  },
750
761
  {
751
762
  name: "withBorder",
@@ -800,6 +811,7 @@ export const docsManifest = {
800
811
  name: "disabled",
801
812
  type: "boolean",
802
813
  required: false,
814
+ description: "Dims the badge to half opacity and stops it receiving pointer events.",
803
815
  },
804
816
  {
805
817
  name: "focused",
@@ -817,12 +829,14 @@ export const docsManifest = {
817
829
  name: "icon",
818
830
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
819
831
  required: false,
832
+ description: "Icon component (not an element) drawn beside the text, sized to match the badge. Replaced by a spinner while `loading`.",
820
833
  },
821
834
  {
822
835
  name: "iconPlacement",
823
836
  type: '"end" | "start"',
824
837
  required: false,
825
838
  defaultValue: '"start"',
839
+ description: "Which side of the text `icon` sits on.",
826
840
  },
827
841
  {
828
842
  name: "label",
@@ -846,6 +860,7 @@ export const docsManifest = {
846
860
  name: "testid",
847
861
  type: "string",
848
862
  required: false,
863
+ description: "Sets `data-testid` on the badge. Lower-case `testid`, unlike the `testId` prop on other components.",
849
864
  },
850
865
  {
851
866
  name: "value",
@@ -877,16 +892,22 @@ export const docsManifest = {
877
892
  name: "tone",
878
893
  type: '"neutral" | "brand" | "danger" | "warning" | "success" | "info" | null | undefined',
879
894
  required: false,
895
+ defaultValue: '"neutral"',
896
+ description: "Semantic colour: `neutral` for plain labels, `brand` for the house yellow, `success` / `warning` / `info` / `danger` for status.",
880
897
  },
881
898
  {
882
899
  name: "radius",
883
900
  type: '"rounded" | "square" | "full" | null | undefined',
884
901
  required: false,
902
+ defaultValue: '"full"',
903
+ description: "Corner shape: `full` is a capsule, `rounded` a soft rectangle, `square` has sharp corners. Overrides the size's own corner radius.",
885
904
  },
886
905
  {
887
906
  name: "emphasis",
888
907
  type: '"outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
889
908
  required: false,
909
+ defaultValue: '"solid"',
910
+ description: "Visual weight: `solid` is a filled pill, `soft` a pale tint, `outline` a border, `ghost` text only, `transparent` frosted glass for use over images only.",
890
911
  },
891
912
  {
892
913
  name: "asInput",
@@ -904,11 +925,14 @@ export const docsManifest = {
904
925
  name: "icon",
905
926
  type: "React.ReactNode",
906
927
  required: false,
928
+ description: "Element shown when no `children` are given, an X icon unless replaced; an icon-only button needs an `aria-label`.",
907
929
  },
908
930
  {
909
931
  name: "variant",
910
932
  type: '"default" | null | undefined',
911
933
  required: false,
934
+ defaultValue: '"default"',
935
+ description: "Button style; `default` is the only one, so leave it unset.",
912
936
  },
913
937
  ],
914
938
  },
@@ -1107,6 +1131,7 @@ export const docsManifest = {
1107
1131
  name: "separator",
1108
1132
  type: "React.ReactNode",
1109
1133
  required: false,
1134
+ description: "Not used by `Breadcrumb`: set the divider by passing children to each `BreadcrumbSeparator` instead.",
1110
1135
  },
1111
1136
  ],
1112
1137
  },
@@ -1211,36 +1236,50 @@ export const docsManifest = {
1211
1236
  name: "tone",
1212
1237
  type: '"neutral" | "brand" | "danger" | null | undefined',
1213
1238
  required: false,
1239
+ defaultValue: '"neutral"',
1240
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
1214
1241
  },
1215
1242
  {
1216
1243
  name: "radius",
1217
1244
  type: '"rounded" | "square" | "full" | null | undefined',
1218
1245
  required: false,
1246
+ defaultValue: '"full"',
1247
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
1219
1248
  },
1220
1249
  {
1221
1250
  name: "square",
1222
1251
  type: "boolean | null | undefined",
1223
1252
  required: false,
1253
+ defaultValue: "false",
1254
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
1224
1255
  },
1225
1256
  {
1226
1257
  name: "emphasis",
1227
1258
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
1228
1259
  required: false,
1260
+ defaultValue: '"solid"',
1261
+ description: "Visual weight, paired with `tone`: `solid` and `soft` are filled, `outline` and `ghost` lighter, `transparent` a blurred translucent fill, `link` plain text.",
1229
1262
  },
1230
1263
  {
1231
1264
  name: "asInput",
1232
1265
  type: "boolean | null | undefined",
1233
1266
  required: false,
1267
+ defaultValue: "false",
1268
+ description: "Style the button as a form field (input background and border), for a trigger that opens a picker.",
1234
1269
  },
1235
1270
  {
1236
1271
  name: "align",
1237
1272
  type: '"center" | "end" | "start" | null | undefined',
1238
1273
  required: false,
1274
+ defaultValue: '"center"',
1275
+ description: "Where the content sits along the button; `start` or `end` only shows on a button wider than its content.",
1239
1276
  },
1240
1277
  {
1241
1278
  name: "pressed",
1242
1279
  type: "boolean | null | undefined",
1243
1280
  required: false,
1281
+ defaultValue: "true",
1282
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
1244
1283
  },
1245
1284
  {
1246
1285
  name: "size",
@@ -1328,6 +1367,7 @@ export const docsManifest = {
1328
1367
  name: "testId",
1329
1368
  type: "string",
1330
1369
  required: false,
1370
+ description: "Rendered as `data-testid`, for Playwright selectors.",
1331
1371
  },
1332
1372
  ],
1333
1373
  },
@@ -1426,21 +1466,28 @@ export const docsManifest = {
1426
1466
  name: "orientation",
1427
1467
  type: '"horizontal" | "vertical" | null | undefined',
1428
1468
  required: false,
1469
+ defaultValue: '"horizontal"',
1470
+ description: "Direction the children are laid out: `horizontal` in a row, `vertical` in a column.",
1429
1471
  },
1430
1472
  {
1431
1473
  name: "variant",
1432
1474
  type: '"segmented" | "joined" | null | undefined',
1433
1475
  required: false,
1476
+ defaultValue: '"joined"',
1477
+ description: "Group style: `joined` lets each child draw its own border and merges the shared edges; `segmented` draws one bordered, shadowed container around the children.",
1434
1478
  },
1435
1479
  {
1436
1480
  name: "radius",
1437
1481
  type: '"rounded" | "square" | "full" | null | undefined',
1438
1482
  required: false,
1483
+ defaultValue: '"full"',
1484
+ description: "Outer corners of the group: only the first and last child are rounded, the inner edges stay square. `segmented` rounds the container too.",
1439
1485
  },
1440
1486
  {
1441
1487
  name: "dividers",
1442
1488
  type: "boolean | null | undefined",
1443
1489
  required: false,
1490
+ description: "Draw a line between children. Defaults on for the `segmented` variant and off for `joined`.",
1444
1491
  },
1445
1492
  ],
1446
1493
  },
@@ -1518,6 +1565,8 @@ export const docsManifest = {
1518
1565
  name: "border",
1519
1566
  type: "BorderStyle",
1520
1567
  required: false,
1568
+ defaultValue: '"none"',
1569
+ description: "Outline: `none` draws no border, `solid` a 1px border, `dashed` a faint dashed one for placeholder or drop areas.",
1521
1570
  },
1522
1571
  {
1523
1572
  name: "inset",
@@ -1543,11 +1592,14 @@ export const docsManifest = {
1543
1592
  name: "testId",
1544
1593
  type: "string",
1545
1594
  required: false,
1595
+ description: "Rendered as `data-testid`, for Playwright selectors.",
1546
1596
  },
1547
1597
  {
1548
1598
  name: "variant",
1549
1599
  type: '"muted" | "ghost" | "accent" | "card" | null | undefined',
1550
1600
  required: false,
1601
+ defaultValue: '"card"',
1602
+ description: "Surface: `card` is the standard card fill, `muted` and `accent` are tinted fills, `ghost` has no fill or shadow.",
1551
1603
  },
1552
1604
  ],
1553
1605
  },
@@ -2199,6 +2251,7 @@ export const docsManifest = {
2199
2251
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
2200
2252
  required: false,
2201
2253
  defaultValue: '"base"',
2254
+ description: "Padding, corner radius and icon size of every card in the group; items read it from context.",
2202
2255
  },
2203
2256
  ],
2204
2257
  },
@@ -2297,21 +2350,25 @@ export const docsManifest = {
2297
2350
  type: '"xs" | "sm"',
2298
2351
  required: false,
2299
2352
  defaultValue: '"xs"',
2353
+ description: "Checkbox size; only `xs` and `sm` are allowed.",
2300
2354
  },
2301
2355
  {
2302
2356
  name: "checkboxClassName",
2303
2357
  type: "string",
2304
2358
  required: false,
2359
+ description: "Extra classes for the checkbox itself; `className` styles the outer field row.",
2305
2360
  },
2306
2361
  {
2307
2362
  name: "labelClassName",
2308
2363
  type: "string",
2309
2364
  required: false,
2365
+ description: "Extra classes for the label text.",
2310
2366
  },
2311
2367
  {
2312
2368
  name: "descriptionClassName",
2313
2369
  type: "string",
2314
2370
  required: false,
2371
+ description: "Extra classes for the description text; only applied when `description` is set.",
2315
2372
  },
2316
2373
  ],
2317
2374
  },
@@ -2939,7 +2996,7 @@ export const docsManifest = {
2939
2996
  },
2940
2997
  {
2941
2998
  name: "render",
2942
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
2999
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
2943
3000
  required: false,
2944
3001
  description: "Replace the default `<button>` row; glyph props render inside it, around `children`.",
2945
3002
  },
@@ -2964,6 +3021,8 @@ export const docsManifest = {
2964
3021
  name: "size",
2965
3022
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
2966
3023
  required: false,
3024
+ defaultValue: '"sm"',
3025
+ description: "Size of every item, label and shortcut inside, which read it from context. Submenus inherit it.",
2967
3026
  },
2968
3027
  {
2969
3028
  name: "itemRadius",
@@ -3009,16 +3068,20 @@ export const docsManifest = {
3009
3068
  name: "inset",
3010
3069
  type: "boolean",
3011
3070
  required: false,
3071
+ description: "Pads the start so a row with no leading glyph lines up with rows that have an icon, dot or avatar.",
3012
3072
  },
3013
3073
  {
3014
3074
  name: "tone",
3015
3075
  type: '"neutral" | "danger"',
3016
3076
  required: false,
3077
+ defaultValue: '"neutral"',
3078
+ description: "`danger` marks a destructive action with red text and a red highlight.",
3017
3079
  },
3018
3080
  {
3019
3081
  name: "avatar",
3020
3082
  type: "React.ReactNode",
3021
3083
  required: false,
3084
+ description: "Custom leading element, such as an `Avatar`. Takes precedence over `dot` and `icon`.",
3022
3085
  },
3023
3086
  {
3024
3087
  name: "dot",
@@ -3030,21 +3093,25 @@ export const docsManifest = {
3030
3093
  name: "icon",
3031
3094
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
3032
3095
  required: false,
3096
+ description: "Leading icon, passed as a component (such as a Lucide icon) rather than an element. Hidden when `avatar` or `dot` is set.",
3033
3097
  },
3034
3098
  {
3035
3099
  name: "suffixIcon",
3036
3100
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
3037
3101
  required: false,
3102
+ description: "Trailing icon, passed as a component. Replaces `kbd` when both are set.",
3038
3103
  },
3039
3104
  {
3040
3105
  name: "kbd",
3041
3106
  type: "string[]",
3042
3107
  required: false,
3108
+ description: 'Keyboard shortcut keys shown as keycaps at the end, for example `["⌘", "C"]`. Ignored when `suffixIcon` is set.',
3043
3109
  },
3044
3110
  {
3045
3111
  name: "suffix",
3046
3112
  type: "React.ReactNode",
3047
3113
  required: false,
3114
+ description: "Custom trailing content, rendered after `suffixIcon` or `kbd`.",
3048
3115
  },
3049
3116
  {
3050
3117
  name: "active",
@@ -3060,7 +3127,7 @@ export const docsManifest = {
3060
3127
  },
3061
3128
  {
3062
3129
  name: "render",
3063
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
3130
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
3064
3131
  required: false,
3065
3132
  description: "Replace the default `<button>` row (e.g. with a link); glyph props render inside it, around `children`.",
3066
3133
  },
@@ -3085,6 +3152,7 @@ export const docsManifest = {
3085
3152
  name: "inset",
3086
3153
  type: "boolean",
3087
3154
  required: false,
3155
+ description: "Pads the start so the label lines up with items that have a leading icon.",
3088
3156
  },
3089
3157
  ],
3090
3158
  },
@@ -3109,7 +3177,7 @@ export const docsManifest = {
3109
3177
  },
3110
3178
  {
3111
3179
  name: "render",
3112
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
3180
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
3113
3181
  required: false,
3114
3182
  description: "Replace the default `<button>` row; glyph props render inside it, around `children`.",
3115
3183
  },
@@ -3134,6 +3202,8 @@ export const docsManifest = {
3134
3202
  name: "spacing",
3135
3203
  type: '"default" | "compact"',
3136
3204
  required: false,
3205
+ defaultValue: '"default"',
3206
+ description: "`default` is a 1px rule with 4px margins. `compact` centres the same rule in a taller transparent band, leaving more room around it.",
3137
3207
  },
3138
3208
  ],
3139
3209
  },
@@ -3160,6 +3230,7 @@ export const docsManifest = {
3160
3230
  name: "size",
3161
3231
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
3162
3232
  required: false,
3233
+ description: "Item size for this submenu only. Omit to inherit the parent menu's `size`.",
3163
3234
  },
3164
3235
  ],
3165
3236
  },
@@ -3174,7 +3245,7 @@ export const docsManifest = {
3174
3245
  },
3175
3246
  {
3176
3247
  name: "render",
3177
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
3248
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
3178
3249
  required: false,
3179
3250
  description: "Replace the default `<button>` row; glyph props render inside it, around `children`.",
3180
3251
  },
@@ -3188,11 +3259,13 @@ export const docsManifest = {
3188
3259
  name: "inset",
3189
3260
  type: "boolean",
3190
3261
  required: false,
3262
+ description: "Pads the start so a row with no leading icon lines up with rows that have one.",
3191
3263
  },
3192
3264
  {
3193
3265
  name: "icon",
3194
3266
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
3195
3267
  required: false,
3268
+ description: "Leading icon, passed as a component (such as a Lucide icon) rather than an element. The trailing chevron is added for you.",
3196
3269
  },
3197
3270
  ],
3198
3271
  },
@@ -3690,6 +3763,8 @@ export const docsManifest = {
3690
3763
  name: "tone",
3691
3764
  type: '"neutral" | "brand" | "danger" | "warning" | "success" | "info" | null | undefined',
3692
3765
  required: false,
3766
+ defaultValue: '"neutral"',
3767
+ description: "Semantic colour: `success`, `warning`, `danger` and `info` for status, `brand` for the accent, `neutral` for a muted grey. Ignored when `color` is set.",
3693
3768
  },
3694
3769
  ],
3695
3770
  },
@@ -3807,6 +3882,7 @@ export const docsManifest = {
3807
3882
  name: "container",
3808
3883
  type: "HTMLElement | null",
3809
3884
  required: false,
3885
+ description: "Element the drawer and its scrim portal into, bounding them to that element instead of the page. Omit to portal to the document body.",
3810
3886
  },
3811
3887
  ],
3812
3888
  },
@@ -3930,7 +4006,7 @@ export const docsManifest = {
3930
4006
  },
3931
4007
  {
3932
4008
  name: "render",
3933
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
4009
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
3934
4010
  required: false,
3935
4011
  description: "Replace the default `<button>` row; glyph props render inside it, around `children`.",
3936
4012
  },
@@ -3955,6 +4031,8 @@ export const docsManifest = {
3955
4031
  name: "size",
3956
4032
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
3957
4033
  required: false,
4034
+ defaultValue: '"sm"',
4035
+ description: "Size of every item, label and shortcut inside, which read it from context. Submenus inherit it.",
3958
4036
  },
3959
4037
  {
3960
4038
  name: "itemRadius",
@@ -4000,16 +4078,20 @@ export const docsManifest = {
4000
4078
  name: "inset",
4001
4079
  type: "boolean",
4002
4080
  required: false,
4081
+ description: "Pads the start so a row with no leading glyph lines up with rows that have an icon, dot or avatar.",
4003
4082
  },
4004
4083
  {
4005
4084
  name: "tone",
4006
4085
  type: '"neutral" | "danger"',
4007
4086
  required: false,
4087
+ defaultValue: '"neutral"',
4088
+ description: "`danger` marks a destructive action with red text and a red highlight.",
4008
4089
  },
4009
4090
  {
4010
4091
  name: "avatar",
4011
4092
  type: "React.ReactNode",
4012
4093
  required: false,
4094
+ description: "Custom leading element, such as an `Avatar`. Takes precedence over `dot` and `icon`.",
4013
4095
  },
4014
4096
  {
4015
4097
  name: "dot",
@@ -4021,21 +4103,25 @@ export const docsManifest = {
4021
4103
  name: "icon",
4022
4104
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
4023
4105
  required: false,
4106
+ description: "Leading icon, passed as a component (such as a Lucide icon) rather than an element. Hidden when `avatar` or `dot` is set.",
4024
4107
  },
4025
4108
  {
4026
4109
  name: "suffixIcon",
4027
4110
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
4028
4111
  required: false,
4112
+ description: "Trailing icon, passed as a component. Replaces `kbd` when both are set.",
4029
4113
  },
4030
4114
  {
4031
4115
  name: "kbd",
4032
4116
  type: "string[]",
4033
4117
  required: false,
4118
+ description: 'Keyboard shortcut keys shown as keycaps at the end, for example `["⌘", "C"]`. Ignored when `suffixIcon` is set.',
4034
4119
  },
4035
4120
  {
4036
4121
  name: "suffix",
4037
4122
  type: "React.ReactNode",
4038
4123
  required: false,
4124
+ description: "Custom trailing content, rendered after `suffixIcon` or `kbd`.",
4039
4125
  },
4040
4126
  {
4041
4127
  name: "active",
@@ -4051,7 +4137,7 @@ export const docsManifest = {
4051
4137
  },
4052
4138
  {
4053
4139
  name: "render",
4054
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
4140
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
4055
4141
  required: false,
4056
4142
  description: "Replace the default `<button>` row (e.g. with a link); glyph props render inside it, around `children`.",
4057
4143
  },
@@ -4076,6 +4162,7 @@ export const docsManifest = {
4076
4162
  name: "inset",
4077
4163
  type: "boolean",
4078
4164
  required: false,
4165
+ description: "Pads the start so the label lines up with items that have a leading icon.",
4079
4166
  },
4080
4167
  ],
4081
4168
  },
@@ -4100,7 +4187,7 @@ export const docsManifest = {
4100
4187
  },
4101
4188
  {
4102
4189
  name: "render",
4103
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
4190
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
4104
4191
  required: false,
4105
4192
  description: "Replace the default `<button>` row; glyph props render inside it, around `children`.",
4106
4193
  },
@@ -4125,6 +4212,8 @@ export const docsManifest = {
4125
4212
  name: "spacing",
4126
4213
  type: '"default" | "compact"',
4127
4214
  required: false,
4215
+ defaultValue: '"default"',
4216
+ description: "`default` is a 1px rule with 4px margins. `compact` centres the same rule in a taller transparent band, leaving more room around it.",
4128
4217
  },
4129
4218
  ],
4130
4219
  },
@@ -4151,6 +4240,7 @@ export const docsManifest = {
4151
4240
  name: "size",
4152
4241
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
4153
4242
  required: false,
4243
+ description: "Item size for this submenu only. Omit to inherit the parent menu's `size`.",
4154
4244
  },
4155
4245
  ],
4156
4246
  },
@@ -4165,7 +4255,7 @@ export const docsManifest = {
4165
4255
  },
4166
4256
  {
4167
4257
  name: "render",
4168
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
4258
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
4169
4259
  required: false,
4170
4260
  description: "Replace the default `<button>` row; glyph props render inside it, around `children`.",
4171
4261
  },
@@ -4179,11 +4269,13 @@ export const docsManifest = {
4179
4269
  name: "inset",
4180
4270
  type: "boolean",
4181
4271
  required: false,
4272
+ description: "Pads the start so a row with no leading icon lines up with rows that have one.",
4182
4273
  },
4183
4274
  {
4184
4275
  name: "icon",
4185
4276
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
4186
4277
  required: false,
4278
+ description: "Leading icon, passed as a component (such as a Lucide icon) rather than an element. The trailing chevron is added for you.",
4187
4279
  },
4188
4280
  ],
4189
4281
  },
@@ -4359,6 +4451,8 @@ export const docsManifest = {
4359
4451
  name: "size",
4360
4452
  type: '"base" | "sm" | "lg" | null | undefined',
4361
4453
  required: false,
4454
+ defaultValue: '"base"',
4455
+ description: "Scale of the whole empty state: the title, description and icon sizes, the gaps, and the vertical padding in the `card` layouts.",
4362
4456
  },
4363
4457
  ],
4364
4458
  },
@@ -4505,6 +4599,8 @@ export const docsManifest = {
4505
4599
  name: "size",
4506
4600
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
4507
4601
  required: false,
4602
+ defaultValue: '"sm"',
4603
+ description: "Square button edge and icon size, `2xs` (14px) to `3xl` (32px). Smaller than a `Button` of the same size, so it suits dense rows.",
4508
4604
  },
4509
4605
  {
4510
4606
  name: "expanded",
@@ -4690,6 +4786,8 @@ export const docsManifest = {
4690
4786
  name: "orientation",
4691
4787
  type: '"horizontal" | "vertical" | "responsive" | null | undefined',
4692
4788
  required: false,
4789
+ defaultValue: '"vertical"',
4790
+ description: "How label and control are arranged: `vertical` stacks them, `horizontal` puts them in a row, `responsive` stacks until the enclosing `FieldGroup` reaches its `md` container width, then switches to a row (needs a `FieldGroup` ancestor).",
4693
4791
  },
4694
4792
  {
4695
4793
  name: "className",
@@ -4728,6 +4826,7 @@ export const docsManifest = {
4728
4826
  name: "errors",
4729
4827
  type: "({ message?: string; } | undefined)[]",
4730
4828
  required: false,
4829
+ description: "Validation errors to show: one renders as plain text, several as a bulleted list. Duplicate messages collapse; ignored when `children` is set.",
4731
4830
  },
4732
4831
  ],
4733
4832
  },
@@ -5589,21 +5688,29 @@ export const docsManifest = {
5589
5688
  name: "tone",
5590
5689
  type: '"neutral" | "brand" | "danger" | "warning" | "success" | "info" | null | undefined',
5591
5690
  required: false,
5691
+ defaultValue: '"neutral"',
5692
+ description: "Semantic colour of the icon and its tinted surface: `brand` for the accent, `danger`, `warning`, `success` and `info` for status, `neutral` for everything else.",
5592
5693
  },
5593
5694
  {
5594
5695
  name: "radius",
5595
5696
  type: '"rounded" | "square" | "full" | null | undefined',
5596
5697
  required: false,
5698
+ defaultValue: '"rounded"',
5699
+ description: "Corner shape: `rounded` scales with `size`, `square` has sharp corners, `full` is a circle.",
5597
5700
  },
5598
5701
  {
5599
5702
  name: "size",
5600
5703
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
5601
5704
  required: false,
5705
+ defaultValue: '"base"',
5706
+ description: "Box width and height, `2xs` (16px) to `3xl` (96px); the icon and corner radius scale with it.",
5602
5707
  },
5603
5708
  {
5604
5709
  name: "emphasis",
5605
5710
  type: '"outline" | "solid" | "ghost" | "soft" | null | undefined',
5606
5711
  required: false,
5712
+ defaultValue: '"solid"',
5713
+ description: "Surface fill: `solid` is the tinted fill, `soft` the same except `neutral` takes the muted fill, `outline` a border with no fill, `ghost` neither. The icon keeps the tone's colour in every case.",
5607
5714
  },
5608
5715
  ],
5609
5716
  },
@@ -5655,6 +5762,7 @@ export const docsManifest = {
5655
5762
  name: "testId",
5656
5763
  type: "string",
5657
5764
  required: false,
5765
+ description: "Rendered as `data-testid`, for Playwright selectors.",
5658
5766
  },
5659
5767
  ],
5660
5768
  },
@@ -5775,16 +5883,21 @@ export const docsManifest = {
5775
5883
  name: "label",
5776
5884
  type: "string",
5777
5885
  required: true,
5886
+ description: "Name of the identified object, shown in the label pill. The label appears only while `highlighted` or `active`.",
5778
5887
  },
5779
5888
  {
5780
5889
  name: "labelAlign",
5781
5890
  type: '"center" | "end" | "start"',
5782
5891
  required: false,
5892
+ defaultValue: '"center"',
5893
+ description: "Which edge of the frame the label lines up with: `start` the left, `end` the right, `center` centred.",
5783
5894
  },
5784
5895
  {
5785
5896
  name: "labelPlacement",
5786
5897
  type: '"above" | "below"',
5787
5898
  required: false,
5899
+ defaultValue: '"above"',
5900
+ description: "Whether the label sits above or below the frame.",
5788
5901
  },
5789
5902
  {
5790
5903
  name: "persistentFrame",
@@ -5796,11 +5909,13 @@ export const docsManifest = {
5796
5909
  name: "secondaryLabel",
5797
5910
  type: "string | undefined",
5798
5911
  required: false,
5912
+ description: "Smaller grey text after `label`, such as a code or category; truncated to a short width.",
5799
5913
  },
5800
5914
  {
5801
5915
  name: "thumbnailUrl",
5802
5916
  type: "string | null | undefined",
5803
5917
  required: false,
5918
+ description: "Image URL for a small round thumbnail at the start of the label. Decorative, so it carries empty alt text.",
5804
5919
  },
5805
5920
  ],
5806
5921
  },
@@ -5833,11 +5948,14 @@ export const docsManifest = {
5833
5948
  name: "testId",
5834
5949
  type: "string",
5835
5950
  required: false,
5951
+ description: "Rendered as `data-testid`, for Playwright selectors.",
5836
5952
  },
5837
5953
  {
5838
5954
  name: "radius",
5839
5955
  type: '"rounded" | "square" | "full" | null | undefined',
5840
5956
  required: false,
5957
+ defaultValue: '"rounded"',
5958
+ description: "Corner shape: `rounded` is the standard 8px radius, `square` has sharp corners, `full` is a pill.",
5841
5959
  },
5842
5960
  {
5843
5961
  name: "size",
@@ -5945,16 +6063,19 @@ export const docsManifest = {
5945
6063
  name: "icon",
5946
6064
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
5947
6065
  required: true,
6066
+ description: "Icon component (not an element) to draw.",
5948
6067
  },
5949
6068
  {
5950
6069
  name: "selected",
5951
6070
  type: "boolean",
5952
6071
  required: false,
6072
+ description: "Tints the icon with the primary colour instead of muted.",
5953
6073
  },
5954
6074
  {
5955
6075
  name: "size",
5956
6076
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
5957
6077
  required: true,
6078
+ description: "Size of the parent card, not of the icon: the icon renders smaller than the card (`xs` at `base`).",
5958
6079
  },
5959
6080
  ],
5960
6081
  },
@@ -6073,12 +6194,15 @@ export const docsManifest = {
6073
6194
  name: "tone",
6074
6195
  type: '"neutral" | "brand" | "danger"',
6075
6196
  required: false,
6076
- description: "Button tone.",
6197
+ defaultValue: '"neutral"',
6198
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.\nSemantic colour, as on Button.",
6077
6199
  },
6078
6200
  {
6079
6201
  name: "radius",
6080
6202
  type: '"rounded" | "square" | "full" | null | undefined',
6081
6203
  required: false,
6204
+ defaultValue: '"full"',
6205
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.\nCorner shape; leave unset - the corners follow the InputGroup's `radius`, tighter inside the field.",
6082
6206
  },
6083
6207
  {
6084
6208
  name: "dot",
@@ -6097,6 +6221,8 @@ export const docsManifest = {
6097
6221
  name: "square",
6098
6222
  type: "boolean | null | undefined",
6099
6223
  required: false,
6224
+ defaultValue: "false",
6225
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.\nSquare by default, as an icon button sized from the InputGroup.",
6100
6226
  },
6101
6227
  {
6102
6228
  name: "icon",
@@ -6108,27 +6234,35 @@ export const docsManifest = {
6108
6234
  name: "emphasis",
6109
6235
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent"',
6110
6236
  required: false,
6111
- description: "Button emphasis.",
6237
+ defaultValue: '"solid"',
6238
+ description: "Visual weight, paired with `tone`: `solid` and `soft` are filled, `outline` and `ghost` lighter, `transparent` a blurred translucent fill, `link` plain text.\nVisual weight, as on Button; ghost keeps the button quiet inside the field.",
6112
6239
  },
6113
6240
  {
6114
6241
  name: "asInput",
6115
6242
  type: "boolean | null | undefined",
6116
6243
  required: false,
6244
+ defaultValue: "false",
6245
+ description: "Style the button as a form field (input background and border), for a trigger that opens a picker.",
6117
6246
  },
6118
6247
  {
6119
6248
  name: "align",
6120
6249
  type: '"center" | "end" | "start" | null | undefined',
6121
6250
  required: false,
6251
+ defaultValue: '"center"',
6252
+ description: "Where the content sits along the button; `start` or `end` only shows on a button wider than its content.",
6122
6253
  },
6123
6254
  {
6124
6255
  name: "pressed",
6125
6256
  type: "boolean | null | undefined",
6126
6257
  required: false,
6258
+ defaultValue: "true",
6259
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
6127
6260
  },
6128
6261
  {
6129
6262
  name: "testId",
6130
6263
  type: "string",
6131
6264
  required: false,
6265
+ description: "Rendered as `data-testid`, for Playwright selectors.",
6132
6266
  },
6133
6267
  {
6134
6268
  name: "suffixIcon",
@@ -6348,11 +6482,15 @@ export const docsManifest = {
6348
6482
  name: "size",
6349
6483
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
6350
6484
  required: false,
6485
+ defaultValue: '"base"',
6486
+ description: "Padding and gap between the item's parts, `2xs` (tightest) to `3xl` (roomiest).",
6351
6487
  },
6352
6488
  {
6353
6489
  name: "variant",
6354
6490
  type: '"default" | "outline" | "muted" | "card" | null | undefined',
6355
6491
  required: false,
6492
+ defaultValue: '"default"',
6493
+ description: "Surface: `default` is transparent, `outline` adds a border, `muted` a faint fill, `card` a bordered rounded card. Inside an `ItemGroup` the group's variant overrides most of this.",
6356
6494
  },
6357
6495
  ],
6358
6496
  },
@@ -6396,6 +6534,8 @@ export const docsManifest = {
6396
6534
  name: "variant",
6397
6535
  type: '"divided" | "separated" | "grouped" | null | undefined',
6398
6536
  required: false,
6537
+ defaultValue: '"divided"',
6538
+ description: "List style: `divided` is plain rows with lines between, `separated` makes each item its own card with a gap, `grouped` joins the items inside one bordered card.",
6399
6539
  },
6400
6540
  ],
6401
6541
  },
@@ -6422,27 +6562,35 @@ export const docsManifest = {
6422
6562
  name: "tone",
6423
6563
  type: '"neutral" | "brand" | "danger" | "warning" | "success" | "info" | null | undefined',
6424
6564
  required: false,
6565
+ defaultValue: '"neutral"',
6566
+ description: "Has no effect: the `icon` variant always renders a `neutral` icon box.",
6425
6567
  },
6426
6568
  {
6427
6569
  name: "radius",
6428
6570
  type: '"rounded" | "square" | "full" | null | undefined',
6429
6571
  required: false,
6572
+ defaultValue: '"rounded"',
6573
+ description: "Has no effect: the `icon` variant always renders the default icon box corners.",
6430
6574
  },
6431
6575
  {
6432
6576
  name: "size",
6433
6577
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
6434
6578
  required: false,
6579
+ defaultValue: '"base"',
6580
+ description: "Has no effect: the `icon` variant always renders a `sm` (32px) icon box.",
6435
6581
  },
6436
6582
  {
6437
- name: "icon",
6438
- type: 'import("../../tokens/icon-component").IconComponent',
6583
+ name: "emphasis",
6584
+ type: '"outline" | "solid" | "ghost" | "soft" | null | undefined',
6439
6585
  required: false,
6440
- description: "Icon component from lucide-react or any SVG React component.",
6586
+ defaultValue: '"solid"',
6587
+ description: "Has no effect: the `icon` variant always renders the default solid icon box.",
6441
6588
  },
6442
6589
  {
6443
- name: "emphasis",
6444
- type: '"outline" | "solid" | "ghost" | "soft" | null | undefined',
6590
+ name: "icon",
6591
+ type: 'import("../../tokens/icon-component").IconComponent',
6445
6592
  required: false,
6593
+ description: "Icon component from lucide-react or any SVG React component.",
6446
6594
  },
6447
6595
  {
6448
6596
  name: "iconSize",
@@ -6460,6 +6608,8 @@ export const docsManifest = {
6460
6608
  name: "variant",
6461
6609
  type: '"image" | "default" | "icon" | null | undefined',
6462
6610
  required: false,
6611
+ defaultValue: '"default"',
6612
+ description: "Media type: `icon` renders the `icon` prop in a small neutral `IconBox`, `image` crops its child `<img>` to a 40px square, `default` wraps any children as they are.",
6463
6613
  },
6464
6614
  ],
6465
6615
  },
@@ -6561,11 +6711,15 @@ export const docsManifest = {
6561
6711
  name: "tone",
6562
6712
  type: '"neutral" | "brand" | "danger" | null | undefined',
6563
6713
  required: false,
6714
+ defaultValue: '"neutral"',
6715
+ description: 'Semantic colour: `neutral` for ordinary keys, `brand` to highlight one, `danger` for a destructive shortcut. `brand` and `danger` are only styled with `emphasis="solid"`.',
6564
6716
  },
6565
6717
  {
6566
6718
  name: "emphasis",
6567
6719
  type: '"outline" | "solid" | "ghost" | "soft" | null | undefined',
6568
6720
  required: false,
6721
+ defaultValue: '"solid"',
6722
+ description: "Fill treatment: `solid` is a muted chip, `soft` a secondary-coloured fill, `outline` a bordered key on the page background, `ghost` bare text.",
6569
6723
  },
6570
6724
  {
6571
6725
  name: "size",
@@ -6730,6 +6884,7 @@ export const docsManifest = {
6730
6884
  name: "testId",
6731
6885
  type: "string",
6732
6886
  required: false,
6887
+ description: "Rendered as `data-testid`, for Playwright selectors.",
6733
6888
  },
6734
6889
  ],
6735
6890
  },
@@ -7016,26 +7171,36 @@ export const docsManifest = {
7016
7171
  name: "variant",
7017
7172
  type: '"input" | "default" | "outline" | null | undefined',
7018
7173
  required: false,
7174
+ defaultValue: '"default"',
7175
+ description: "Surface treatment: `default` tints on hover, `input` uses the input fill, `outline` adds a ring.",
7019
7176
  },
7020
7177
  {
7021
7178
  name: "tone",
7022
7179
  type: '"neutral" | "danger" | null | undefined',
7023
7180
  required: false,
7181
+ defaultValue: '"neutral"',
7182
+ description: "`danger` marks a destructive action with red text and a red hover and active tint.",
7024
7183
  },
7025
7184
  {
7026
7185
  name: "inset",
7027
7186
  type: "boolean | null | undefined",
7028
7187
  required: false,
7188
+ defaultValue: "false",
7189
+ description: "Pads the start so a row with no leading glyph lines up with rows that have an icon, dot or avatar. Switched on automatically when `indicator` is set.",
7029
7190
  },
7030
7191
  {
7031
7192
  name: "radius",
7032
7193
  type: '"rounded" | "square" | "full" | null | undefined',
7033
7194
  required: false,
7195
+ defaultValue: '"full"',
7196
+ description: "Corner shape: `full` is a pill, `rounded` a soft rectangle, `square` has sharp corners.",
7034
7197
  },
7035
7198
  {
7036
7199
  name: "size",
7037
7200
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
7038
7201
  required: false,
7202
+ defaultValue: '"sm"',
7203
+ description: "Row height, padding and text size, on the shared component scale. Match the surrounding menu's `size`.",
7039
7204
  },
7040
7205
  {
7041
7206
  name: "render",
@@ -7203,7 +7368,7 @@ export const docsManifest = {
7203
7368
  },
7204
7369
  {
7205
7370
  name: "render",
7206
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
7371
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
7207
7372
  required: false,
7208
7373
  description: "Replace the default `<button>` row; glyph props render inside it, around `children`.",
7209
7374
  },
@@ -7228,6 +7393,8 @@ export const docsManifest = {
7228
7393
  name: "size",
7229
7394
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
7230
7395
  required: false,
7396
+ defaultValue: '"sm"',
7397
+ description: "Size of every item, label and shortcut inside, which read it from context. Submenus inherit it.",
7231
7398
  },
7232
7399
  {
7233
7400
  name: "itemRadius",
@@ -7273,16 +7440,20 @@ export const docsManifest = {
7273
7440
  name: "inset",
7274
7441
  type: "boolean",
7275
7442
  required: false,
7443
+ description: "Pads the start so a row with no leading glyph lines up with rows that have an icon, dot or avatar.",
7276
7444
  },
7277
7445
  {
7278
7446
  name: "tone",
7279
7447
  type: '"neutral" | "danger"',
7280
7448
  required: false,
7449
+ defaultValue: '"neutral"',
7450
+ description: "`danger` marks a destructive action with red text and a red highlight.",
7281
7451
  },
7282
7452
  {
7283
7453
  name: "avatar",
7284
7454
  type: "React.ReactNode",
7285
7455
  required: false,
7456
+ description: "Custom leading element, such as an `Avatar`. Takes precedence over `dot` and `icon`.",
7286
7457
  },
7287
7458
  {
7288
7459
  name: "dot",
@@ -7294,21 +7465,25 @@ export const docsManifest = {
7294
7465
  name: "icon",
7295
7466
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
7296
7467
  required: false,
7468
+ description: "Leading icon, passed as a component (such as a Lucide icon) rather than an element. Hidden when `avatar` or `dot` is set.",
7297
7469
  },
7298
7470
  {
7299
7471
  name: "suffixIcon",
7300
7472
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
7301
7473
  required: false,
7474
+ description: "Trailing icon, passed as a component. Replaces `kbd` when both are set.",
7302
7475
  },
7303
7476
  {
7304
7477
  name: "kbd",
7305
7478
  type: "string[]",
7306
7479
  required: false,
7480
+ description: 'Keyboard shortcut keys shown as keycaps at the end, for example `["⌘", "C"]`. Ignored when `suffixIcon` is set.',
7307
7481
  },
7308
7482
  {
7309
7483
  name: "suffix",
7310
7484
  type: "React.ReactNode",
7311
7485
  required: false,
7486
+ description: "Custom trailing content, rendered after `suffixIcon` or `kbd`.",
7312
7487
  },
7313
7488
  {
7314
7489
  name: "active",
@@ -7324,7 +7499,7 @@ export const docsManifest = {
7324
7499
  },
7325
7500
  {
7326
7501
  name: "render",
7327
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
7502
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
7328
7503
  required: false,
7329
7504
  description: "Replace the default `<button>` row (e.g. with a link); glyph props render inside it, around `children`.",
7330
7505
  },
@@ -7349,6 +7524,7 @@ export const docsManifest = {
7349
7524
  name: "inset",
7350
7525
  type: "boolean",
7351
7526
  required: false,
7527
+ description: "Pads the start so the label lines up with items that have a leading icon.",
7352
7528
  },
7353
7529
  ],
7354
7530
  },
@@ -7378,7 +7554,7 @@ export const docsManifest = {
7378
7554
  },
7379
7555
  {
7380
7556
  name: "render",
7381
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
7557
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
7382
7558
  required: false,
7383
7559
  description: "Replace the default `<button>` row; glyph props render inside it, around `children`.",
7384
7560
  },
@@ -7403,6 +7579,8 @@ export const docsManifest = {
7403
7579
  name: "spacing",
7404
7580
  type: '"default" | "compact"',
7405
7581
  required: false,
7582
+ defaultValue: '"default"',
7583
+ description: "`default` is a 1px rule with 4px margins. `compact` centres the same rule in a taller transparent band, leaving more room around it.",
7406
7584
  },
7407
7585
  ],
7408
7586
  },
@@ -7429,6 +7607,7 @@ export const docsManifest = {
7429
7607
  name: "size",
7430
7608
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
7431
7609
  required: false,
7610
+ description: "Item size for this submenu only. Omit to inherit the parent menu's `size`.",
7432
7611
  },
7433
7612
  ],
7434
7613
  },
@@ -7443,7 +7622,7 @@ export const docsManifest = {
7443
7622
  },
7444
7623
  {
7445
7624
  name: "render",
7446
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
7625
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
7447
7626
  required: false,
7448
7627
  description: "Replace the default `<button>` row; glyph props render inside it, around `children`.",
7449
7628
  },
@@ -7457,11 +7636,13 @@ export const docsManifest = {
7457
7636
  name: "inset",
7458
7637
  type: "boolean",
7459
7638
  required: false,
7639
+ description: "Pads the start so a row with no leading icon lines up with rows that have one.",
7460
7640
  },
7461
7641
  {
7462
7642
  name: "icon",
7463
7643
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
7464
7644
  required: false,
7645
+ description: "Leading icon, passed as a component (such as a Lucide icon) rather than an element. The trailing chevron is added for you.",
7465
7646
  },
7466
7647
  ],
7467
7648
  },
@@ -8142,11 +8323,15 @@ export const docsManifest = {
8142
8323
  name: "radius",
8143
8324
  type: '"rounded" | "full" | null | undefined',
8144
8325
  required: false,
8326
+ defaultValue: '"rounded"',
8327
+ description: "Corner shape: `rounded` for a soft rectangle, `full` for a capsule.",
8145
8328
  },
8146
8329
  {
8147
8330
  name: "size",
8148
8331
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
8149
8332
  required: false,
8333
+ defaultValue: '"xl"',
8334
+ description: "Control height and text size, matching Button and Input at the same size. Also sizes the country selector.",
8150
8335
  },
8151
8336
  {
8152
8337
  name: "value",
@@ -8194,6 +8379,7 @@ export const docsManifest = {
8194
8379
  name: "testId",
8195
8380
  type: "string",
8196
8381
  required: false,
8382
+ description: "Rendered as `data-testid`, for Playwright selectors.",
8197
8383
  },
8198
8384
  ],
8199
8385
  },
@@ -8234,6 +8420,7 @@ export const docsManifest = {
8234
8420
  name: "disabled",
8235
8421
  type: "boolean",
8236
8422
  required: false,
8423
+ description: "Dims the pill and blocks pointer events. Styling only: no `disabled` attribute reaches the element.",
8237
8424
  },
8238
8425
  {
8239
8426
  name: "render",
@@ -8258,16 +8445,22 @@ export const docsManifest = {
8258
8445
  name: "tone",
8259
8446
  type: '"neutral" | "brand" | "danger" | "warning" | "success" | "info" | null | undefined',
8260
8447
  required: false,
8448
+ defaultValue: '"neutral"',
8449
+ description: "Semantic colour: `neutral` for plain labels, `brand` for the house yellow, `success` / `warning` / `info` / `danger` for status.",
8261
8450
  },
8262
8451
  {
8263
8452
  name: "radius",
8264
8453
  type: '"rounded" | "square" | "full" | null | undefined',
8265
8454
  required: false,
8455
+ defaultValue: '"full"',
8456
+ description: "Corner shape: `full` is a capsule, `rounded` a soft rectangle, `square` has sharp corners. Overrides the size's own corner radius.",
8266
8457
  },
8267
8458
  {
8268
8459
  name: "emphasis",
8269
8460
  type: '"outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
8270
8461
  required: false,
8462
+ defaultValue: '"solid"',
8463
+ description: "Visual weight: `solid` is a filled pill, `soft` a pale tint, `outline` a border, `ghost` text only, `transparent` frosted glass for use over images only.",
8271
8464
  },
8272
8465
  {
8273
8466
  name: "asInput",
@@ -8442,11 +8635,14 @@ export const docsManifest = {
8442
8635
  name: "positionerClassName",
8443
8636
  type: "string",
8444
8637
  required: false,
8638
+ description: "Classes for the positioning layer around the content, such as a lower `z-*` for a panel that sits beneath fixed chrome. Defaults to `z-50`.",
8445
8639
  },
8446
8640
  {
8447
8641
  name: "size",
8448
8642
  type: "PopoverSize",
8449
8643
  required: false,
8644
+ defaultValue: '"lg"',
8645
+ description: "Padding and corner radius: `sm` is compact (8px), `base` is 16px, `lg` is roomy (24px).",
8450
8646
  },
8451
8647
  ],
8452
8648
  },
@@ -8513,6 +8709,7 @@ export const docsManifest = {
8513
8709
  name: "indicatorClassName",
8514
8710
  type: "string",
8515
8711
  required: false,
8712
+ description: "Classes for the filled arc, for example a stroke colour such as `stroke-brand`. Defaults to `stroke-primary`.",
8516
8713
  },
8517
8714
  {
8518
8715
  name: "label",
@@ -8545,6 +8742,7 @@ export const docsManifest = {
8545
8742
  name: "trackClassName",
8546
8743
  type: "string",
8547
8744
  required: false,
8745
+ description: "Classes for the unfilled ring behind the arc, for example a stroke colour such as `stroke-border`. Defaults to `stroke-muted`.",
8548
8746
  },
8549
8747
  {
8550
8748
  name: "value",
@@ -9302,6 +9500,7 @@ export const docsManifest = {
9302
9500
  type: "ScrollFrameFadeMode | undefined",
9303
9501
  required: false,
9304
9502
  defaultValue: '"color"',
9503
+ description: "How the fades are drawn: `color` blends a gradient of `fadeTheme` into a solid surface, `mask` fades the content itself to transparent, for use over images or blurs.",
9305
9504
  },
9306
9505
  {
9307
9506
  name: "fades",
@@ -9336,6 +9535,7 @@ export const docsManifest = {
9336
9535
  type: "Orientation | undefined",
9337
9536
  required: false,
9338
9537
  defaultValue: '"vertical"',
9538
+ description: "Scroll axis: `vertical` scrolls up and down, `horizontal` left and right, as for a row of chips.",
9339
9539
  },
9340
9540
  {
9341
9541
  name: "viewportClassName",
@@ -9571,12 +9771,14 @@ export const docsManifest = {
9571
9771
  type: 'ResponsiveValue<"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl">',
9572
9772
  required: false,
9573
9773
  defaultValue: '"sm"',
9774
+ description: 'Size of every segment (text and padding), or an object per breakpoint like `{ base: "sm", md: "lg" }`.',
9574
9775
  },
9575
9776
  {
9576
9777
  name: "fullWidth",
9577
9778
  type: "boolean",
9578
9779
  required: false,
9579
9780
  defaultValue: "false",
9781
+ description: "Stretches the control to its container's width, with the segments sharing the space equally; otherwise it hugs its content.",
9580
9782
  },
9581
9783
  ],
9582
9784
  },
@@ -9674,6 +9876,7 @@ export const docsManifest = {
9674
9876
  name: "testId",
9675
9877
  type: "string",
9676
9878
  required: false,
9879
+ description: "Rendered as `data-testid`, for Playwright selectors.",
9677
9880
  },
9678
9881
  ],
9679
9882
  },
@@ -9695,11 +9898,14 @@ export const docsManifest = {
9695
9898
  name: "size",
9696
9899
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
9697
9900
  required: false,
9901
+ defaultValue: '"sm"',
9902
+ description: "Size of every SelectItem, label and group inside, which read it from context. Match the trigger's `size`.",
9698
9903
  },
9699
9904
  {
9700
9905
  name: "testId",
9701
9906
  type: "string",
9702
9907
  required: false,
9908
+ description: "Rendered as `data-testid`, for Playwright selectors.",
9703
9909
  },
9704
9910
  ],
9705
9911
  },
@@ -9711,6 +9917,7 @@ export const docsManifest = {
9711
9917
  name: "testId",
9712
9918
  type: "string",
9713
9919
  required: false,
9920
+ description: "Rendered as `data-testid`, for Playwright selectors.",
9714
9921
  },
9715
9922
  ],
9716
9923
  },
@@ -9727,6 +9934,7 @@ export const docsManifest = {
9727
9934
  name: "testId",
9728
9935
  type: "string",
9729
9936
  required: false,
9937
+ description: "Rendered as `data-testid`, for Playwright selectors.",
9730
9938
  },
9731
9939
  ],
9732
9940
  },
@@ -9743,6 +9951,7 @@ export const docsManifest = {
9743
9951
  name: "testId",
9744
9952
  type: "string",
9745
9953
  required: false,
9954
+ description: "Rendered as `data-testid`, for Playwright selectors.",
9746
9955
  },
9747
9956
  ],
9748
9957
  },
@@ -9759,6 +9968,7 @@ export const docsManifest = {
9759
9968
  name: "testId",
9760
9969
  type: "string",
9761
9970
  required: false,
9971
+ description: "Rendered as `data-testid`, for Playwright selectors.",
9762
9972
  },
9763
9973
  ],
9764
9974
  },
@@ -9770,21 +9980,29 @@ export const docsManifest = {
9770
9980
  name: "tone",
9771
9981
  type: '"neutral" | "brand" | "danger" | null | undefined',
9772
9982
  required: false,
9983
+ defaultValue: '"neutral"',
9984
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.\nSemantic colour of the trigger, as on Button.",
9773
9985
  },
9774
9986
  {
9775
9987
  name: "radius",
9776
9988
  type: '"rounded" | "square" | "full" | null | undefined',
9777
9989
  required: false,
9990
+ defaultValue: '"full"',
9991
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.\nCorner shape, as on Button.",
9778
9992
  },
9779
9993
  {
9780
9994
  name: "emphasis",
9781
9995
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
9782
9996
  required: false,
9997
+ defaultValue: '"solid"',
9998
+ description: "Visual weight, paired with `tone`: `solid` and `soft` are filled, `outline` and `ghost` lighter, `transparent` a blurred translucent fill, `link` plain text.\nVisual weight, as on Button; the outline reads as a form field.",
9783
9999
  },
9784
10000
  {
9785
10001
  name: "pressed",
9786
10002
  type: "boolean | null | undefined",
9787
10003
  required: false,
10004
+ defaultValue: "true",
10005
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.\nShrink while held down, as on Button, but off by default here.",
9788
10006
  },
9789
10007
  {
9790
10008
  name: "className",
@@ -9802,6 +10020,7 @@ export const docsManifest = {
9802
10020
  name: "testId",
9803
10021
  type: "string",
9804
10022
  required: false,
10023
+ description: "Rendered as `data-testid`, for Playwright selectors.",
9805
10024
  },
9806
10025
  ],
9807
10026
  },
@@ -9813,6 +10032,7 @@ export const docsManifest = {
9813
10032
  name: "testId",
9814
10033
  type: "string",
9815
10034
  required: false,
10035
+ description: "Rendered as `data-testid`, for Playwright selectors.",
9816
10036
  },
9817
10037
  ],
9818
10038
  },
@@ -10272,11 +10492,15 @@ export const docsManifest = {
10272
10492
  name: "tone",
10273
10493
  type: '"neutral" | "brand" | "danger" | null | undefined',
10274
10494
  required: false,
10495
+ defaultValue: '"neutral"',
10496
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
10275
10497
  },
10276
10498
  {
10277
10499
  name: "radius",
10278
10500
  type: '"rounded" | "square" | "full" | null | undefined',
10279
10501
  required: false,
10502
+ defaultValue: '"full"',
10503
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
10280
10504
  },
10281
10505
  {
10282
10506
  name: "dot",
@@ -10295,26 +10519,35 @@ export const docsManifest = {
10295
10519
  name: "square",
10296
10520
  type: "boolean | null | undefined",
10297
10521
  required: false,
10522
+ defaultValue: "false",
10523
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
10298
10524
  },
10299
10525
  {
10300
10526
  name: "asInput",
10301
10527
  type: "boolean | null | undefined",
10302
10528
  required: false,
10529
+ defaultValue: "false",
10530
+ description: "Style the button as a form field (input background and border), for a trigger that opens a picker.",
10303
10531
  },
10304
10532
  {
10305
10533
  name: "align",
10306
10534
  type: '"center" | "end" | "start" | null | undefined',
10307
10535
  required: false,
10536
+ defaultValue: '"center"',
10537
+ description: "Where the content sits along the button; `start` or `end` only shows on a button wider than its content.",
10308
10538
  },
10309
10539
  {
10310
10540
  name: "pressed",
10311
10541
  type: "boolean | null | undefined",
10312
10542
  required: false,
10543
+ defaultValue: "true",
10544
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
10313
10545
  },
10314
10546
  {
10315
10547
  name: "testId",
10316
10548
  type: "string",
10317
10549
  required: false,
10550
+ description: "Rendered as `data-testid`, for Playwright selectors.",
10318
10551
  },
10319
10552
  {
10320
10553
  name: "suffixIcon",
@@ -10465,6 +10698,8 @@ export const docsManifest = {
10465
10698
  name: "variant",
10466
10699
  type: "SidepanelHeaderVariant",
10467
10700
  required: false,
10701
+ defaultValue: '"default"',
10702
+ description: "`default` is a stacked title and description with a bottom border. `bar` is a transparent toolbar pinned over the top of the panel, for two `SidepanelControls` groups.",
10468
10703
  },
10469
10704
  ],
10470
10705
  },
@@ -11438,6 +11673,7 @@ export const docsManifest = {
11438
11673
  name: "href",
11439
11674
  type: "string",
11440
11675
  required: false,
11676
+ description: "Destination of the default `<a>`. Not used when `render` supplies its own element.",
11441
11677
  },
11442
11678
  {
11443
11679
  name: "icon",
@@ -11695,6 +11931,7 @@ export const docsManifest = {
11695
11931
  name: "radius",
11696
11932
  type: "string",
11697
11933
  required: true,
11934
+ description: "Tailwind rounding class (such as `rounded-xl`) matching the framed container's corners, so the ring follows them.",
11698
11935
  },
11699
11936
  ],
11700
11937
  },
@@ -12018,6 +12255,7 @@ export const docsManifest = {
12018
12255
  name: "href",
12019
12256
  type: "string",
12020
12257
  required: true,
12258
+ description: "Destination of the link. Also forwarded to the element given in `render`, such as a router `Link`.",
12021
12259
  },
12022
12260
  {
12023
12261
  name: "icon",
@@ -12036,11 +12274,13 @@ export const docsManifest = {
12036
12274
  name: "variant",
12037
12275
  type: '"line" | "pill" | null | undefined',
12038
12276
  required: false,
12277
+ description: "Ignored on its own: the parent `Tabs` or `TabNavigation` sets the style for every part, so set `variant` there.",
12039
12278
  },
12040
12279
  {
12041
12280
  name: "size",
12042
12281
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
12043
12282
  required: false,
12283
+ description: "Ignored on its own: the parent `Tabs` or `TabNavigation` sets the size for every part, so set `size` there.",
12044
12284
  },
12045
12285
  ],
12046
12286
  },
@@ -12052,11 +12292,13 @@ export const docsManifest = {
12052
12292
  name: "variant",
12053
12293
  type: '"line" | "pill" | null | undefined',
12054
12294
  required: false,
12295
+ description: "Ignored on its own: the parent `Tabs` or `TabNavigation` sets the style for every part, so set `variant` there.",
12055
12296
  },
12056
12297
  {
12057
12298
  name: "size",
12058
12299
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
12059
12300
  required: false,
12301
+ description: "Ignored on its own: the parent `Tabs` or `TabNavigation` sets the size for every part, so set `size` there.",
12060
12302
  },
12061
12303
  ],
12062
12304
  },
@@ -12230,11 +12472,13 @@ export const docsManifest = {
12230
12472
  name: "variant",
12231
12473
  type: '"line" | "pill" | null | undefined',
12232
12474
  required: false,
12475
+ description: "Ignored on its own: the parent `Tabs` or `TabNavigation` sets the style for every part, so set `variant` there.",
12233
12476
  },
12234
12477
  {
12235
12478
  name: "size",
12236
12479
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
12237
12480
  required: false,
12481
+ description: "Ignored on its own: the parent `Tabs` or `TabNavigation` sets the size for every part, so set `size` there.",
12238
12482
  },
12239
12483
  ],
12240
12484
  },
@@ -12256,6 +12500,8 @@ export const docsManifest = {
12256
12500
  name: "layout",
12257
12501
  type: 'boolean | "position" | "size" | "preserve-aspect"',
12258
12502
  required: false,
12503
+ defaultValue: "true",
12504
+ description: 'Motion `layout` value for the height animation when the active tab\'s content changes size: `false` switches it off, `"size"` or `"position"` animates only that, `"preserve-aspect"` keeps the aspect ratio.',
12259
12505
  },
12260
12506
  ],
12261
12507
  },
@@ -12267,11 +12513,13 @@ export const docsManifest = {
12267
12513
  name: "variant",
12268
12514
  type: '"line" | "pill" | null | undefined',
12269
12515
  required: false,
12516
+ description: "Ignored on its own: the parent `Tabs` or `TabNavigation` sets the style for every part, so set `variant` there.",
12270
12517
  },
12271
12518
  {
12272
12519
  name: "size",
12273
12520
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
12274
12521
  required: false,
12522
+ description: "Ignored on its own: the parent `Tabs` or `TabNavigation` sets the size for every part, so set `size` there.",
12275
12523
  },
12276
12524
  {
12277
12525
  name: "className",
@@ -12418,16 +12666,22 @@ export const docsManifest = {
12418
12666
  name: "tone",
12419
12667
  type: '"neutral" | "brand" | "danger" | "warning" | "success" | "info" | null | undefined',
12420
12668
  required: false,
12669
+ defaultValue: '"neutral"',
12670
+ description: "Semantic colour: `neutral` for plain labels, `brand` for the house yellow, `success` / `warning` / `info` / `danger` for status.",
12421
12671
  },
12422
12672
  {
12423
12673
  name: "radius",
12424
12674
  type: '"rounded" | "square" | "full" | null | undefined',
12425
12675
  required: false,
12676
+ defaultValue: '"full"',
12677
+ description: "Corner shape: `full` is a capsule, `rounded` a soft rectangle, `square` has sharp corners. Overrides the size's own corner radius.",
12426
12678
  },
12427
12679
  {
12428
12680
  name: "emphasis",
12429
12681
  type: '"outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
12430
12682
  required: false,
12683
+ defaultValue: '"solid"',
12684
+ description: "Visual weight: `solid` is a filled pill, `soft` a pale tint, `outline` a border, `ghost` text only, `transparent` frosted glass for use over images only.",
12431
12685
  },
12432
12686
  {
12433
12687
  name: "asInput",
@@ -12579,6 +12833,7 @@ export const docsManifest = {
12579
12833
  name: "testId",
12580
12834
  type: "string",
12581
12835
  required: false,
12836
+ description: "Rendered as `data-testid`, for Playwright selectors.",
12582
12837
  },
12583
12838
  ],
12584
12839
  },
@@ -12694,11 +12949,13 @@ export const docsManifest = {
12694
12949
  name: "current",
12695
12950
  type: "number",
12696
12951
  required: true,
12952
+ description: "Number shown before the slash, counted from one (the first step is `1`).",
12697
12953
  },
12698
12954
  {
12699
12955
  name: "total",
12700
12956
  type: "number",
12701
12957
  required: true,
12958
+ description: "Number shown after the slash.",
12702
12959
  },
12703
12960
  ],
12704
12961
  },
@@ -12710,11 +12967,13 @@ export const docsManifest = {
12710
12967
  name: "icon",
12711
12968
  type: "LucideIcon | undefined",
12712
12969
  required: true,
12970
+ description: "Icon to show. Renders nothing when `undefined`.",
12713
12971
  },
12714
12972
  {
12715
12973
  name: "stepId",
12716
12974
  type: "string",
12717
12975
  required: true,
12976
+ description: "Id of the current step. A new id makes the previous icon crossfade into this one.",
12718
12977
  },
12719
12978
  ],
12720
12979
  },
@@ -12753,6 +13012,8 @@ export const docsManifest = {
12753
13012
  name: "shimmer",
12754
13013
  type: "boolean",
12755
13014
  required: false,
13015
+ defaultValue: "true",
13016
+ description: "Sweeps a highlight across the label; `false` renders it as plain text.",
12756
13017
  },
12757
13018
  {
12758
13019
  name: "shimmerVariant",
@@ -12764,6 +13025,7 @@ export const docsManifest = {
12764
13025
  name: "step",
12765
13026
  type: "ThinkingStep",
12766
13027
  required: true,
13028
+ description: "The step to show: its `label` is the text, and its `icon` leads it unless `hideIcon` is set.",
12767
13029
  },
12768
13030
  ],
12769
13031
  },
@@ -13069,11 +13331,15 @@ export const docsManifest = {
13069
13331
  name: "variant",
13070
13332
  type: '"default" | "secondary" | null | undefined',
13071
13333
  required: false,
13334
+ defaultValue: '"default"',
13335
+ description: "How a pressed toggle shows it is on: `default` greys the fill and border, `secondary` darkens the border only. Inside a `ToggleGroup` the group's value wins.",
13072
13336
  },
13073
13337
  {
13074
13338
  name: "radius",
13075
13339
  type: '"rounded" | "full" | null | undefined',
13076
13340
  required: false,
13341
+ defaultValue: '"rounded"',
13342
+ description: "Corner shape: `rounded` for soft corners, `full` for a pill. There is no sharp option. Inside a `ToggleGroup` the group's value wins.",
13077
13343
  },
13078
13344
  {
13079
13345
  name: "icon",
@@ -13418,11 +13684,13 @@ export const docsManifest = {
13418
13684
  name: "onAction",
13419
13685
  type: "() => void",
13420
13686
  required: false,
13687
+ description: "Called when the action button is clicked. The button only appears when `actionLabel` is set.",
13421
13688
  },
13422
13689
  {
13423
13690
  name: "onDismiss",
13424
13691
  type: "() => void",
13425
13692
  required: false,
13693
+ description: "Called when the dismiss button is clicked. The parent should then set `open` to `false`.",
13426
13694
  },
13427
13695
  {
13428
13696
  name: "dismissLabel",
@@ -13477,11 +13745,14 @@ export const docsManifest = {
13477
13745
  name: "onClick",
13478
13746
  type: "() => void",
13479
13747
  required: false,
13748
+ description: "Called when the pill is pressed. The parent decides what the press does in each `state`, such as starting or stopping capture.",
13480
13749
  },
13481
13750
  {
13482
13751
  name: "disabled",
13483
13752
  type: "boolean",
13484
13753
  required: false,
13754
+ defaultValue: "false",
13755
+ description: "Block presses and dim the pill.",
13485
13756
  },
13486
13757
  {
13487
13758
  name: "label",
@@ -13551,6 +13822,7 @@ export const docsManifest = {
13551
13822
  name: "icon",
13552
13823
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
13553
13824
  required: false,
13825
+ description: "Icon component (e.g. a Lucide icon), not a rendered element; shown small and muted at the top right.",
13554
13826
  },
13555
13827
  {
13556
13828
  name: "valueLabel",
@@ -13678,31 +13950,37 @@ export const docsManifest = {
13678
13950
  name: "getItemKey",
13679
13951
  type: "(item: T) => string",
13680
13952
  required: true,
13953
+ description: "Stable unique key for an item, such as its id; never the array index.",
13681
13954
  },
13682
13955
  {
13683
13956
  name: "getRowKey",
13684
13957
  type: "(row: T[], rowIndex: number) => string",
13685
13958
  required: false,
13959
+ description: "Stable key for a row. Defaults to `row-<rowIndex>`; supply one when rows can reorder or be re-chunked.",
13686
13960
  },
13687
13961
  {
13688
13962
  name: "metrics",
13689
13963
  type: 'Omit<CardGridRowMetrics, "rowWidth">',
13690
13964
  required: true,
13965
+ description: "Pixel `cardWidth` and `gap` the rows were chunked with (e.g. from\n`calculateColumns`). They only size `renderAfterRow`'s `rowWidth`; they do\nnot lay the cards out.",
13691
13966
  },
13692
13967
  {
13693
13968
  name: "renderAfterRow",
13694
13969
  type: "(props: { metrics: CardGridRowMetrics; row: T[]; rowIndex: number; }) => ReactNode",
13695
13970
  required: false,
13971
+ description: "Content rendered beneath a row, such as an expanded detail panel. Receives\n`metrics` with `rowWidth`, the row's pixel width, so the panel can align to it.",
13696
13972
  },
13697
13973
  {
13698
13974
  name: "renderItem",
13699
13975
  type: "(props: { index: number; item: T; row: T[]; rowIndex: number; }) => ReactNode",
13700
13976
  required: true,
13977
+ description: "Renders one item's card; each result is wrapped in a `CardGridItem`. `index` is the position within its row.",
13701
13978
  },
13702
13979
  {
13703
13980
  name: "rows",
13704
13981
  type: "T[][]",
13705
13982
  required: true,
13983
+ description: "Items already chunked into rows, e.g. with `chunkIntoRows`; one `CardGrid` is rendered per row.",
13706
13984
  },
13707
13985
  ],
13708
13986
  },
@@ -14048,11 +14326,13 @@ export const docsManifest = {
14048
14326
  name: "loading",
14049
14327
  type: "boolean",
14050
14328
  required: false,
14329
+ description: "Set while the application fetches rows. The body shows placeholder rows or\na spinner per `loadingMode`, and the select-all checkbox and\n`DataGridColumnHeader` buttons are disabled.",
14051
14330
  },
14052
14331
  {
14053
14332
  name: "loadingMessage",
14054
14333
  type: "ReactNode",
14055
14334
  required: false,
14335
+ description: 'Text beside the spinner while loading; only shown when `loadingMode` is `"spinner"`. Defaults to "Loading...".',
14056
14336
  },
14057
14337
  {
14058
14338
  name: "loadingMode",
@@ -14128,6 +14408,8 @@ export const docsManifest = {
14128
14408
  name: "size",
14129
14409
  type: "DataGridControlSize",
14130
14410
  required: false,
14411
+ defaultValue: '"xs"',
14412
+ description: "Checkbox size; the grid only uses the two compact steps.",
14131
14413
  },
14132
14414
  ],
14133
14415
  },
@@ -14167,6 +14449,7 @@ export const docsManifest = {
14167
14449
  name: "row",
14168
14450
  type: "Row<TData>",
14169
14451
  required: true,
14452
+ description: "The TanStack row to expand or collapse. The toggle renders nothing unless `row.getCanExpand()` is true.",
14170
14453
  },
14171
14454
  ],
14172
14455
  },
@@ -14188,6 +14471,7 @@ export const docsManifest = {
14188
14471
  name: "column",
14189
14472
  type: "Column<TData, TValue>",
14190
14473
  required: true,
14474
+ description: "The TanStack column this header sorts and filters.",
14191
14475
  },
14192
14476
  {
14193
14477
  name: "options",
@@ -14244,11 +14528,13 @@ export const docsManifest = {
14244
14528
  name: "loading",
14245
14529
  type: "boolean",
14246
14530
  required: false,
14531
+ description: "Set while the application fetches rows. The body shows placeholder rows or\na spinner per `loadingMode`, and the select-all checkbox and\n`DataGridColumnHeader` buttons are disabled.",
14247
14532
  },
14248
14533
  {
14249
14534
  name: "loadingMessage",
14250
14535
  type: "ReactNode",
14251
14536
  required: false,
14537
+ description: 'Text beside the spinner while loading; only shown when `loadingMode` is `"spinner"`. Defaults to "Loading...".',
14252
14538
  },
14253
14539
  {
14254
14540
  name: "loadingMode",
@@ -14310,11 +14596,13 @@ export const docsManifest = {
14310
14596
  name: "disabled",
14311
14597
  type: "boolean",
14312
14598
  required: false,
14599
+ description: "Disable the checkbox; `createSelectionColumn` sets it when the row cannot be selected.",
14313
14600
  },
14314
14601
  {
14315
14602
  name: "row",
14316
14603
  type: "Row<TData>",
14317
14604
  required: true,
14605
+ description: "The TanStack row this checkbox selects.",
14318
14606
  },
14319
14607
  ],
14320
14608
  },
@@ -14326,11 +14614,13 @@ export const docsManifest = {
14326
14614
  name: "disabled",
14327
14615
  type: "boolean",
14328
14616
  required: false,
14617
+ description: "Disable the checkbox, e.g. while loading or when the page has no rows.",
14329
14618
  },
14330
14619
  {
14331
14620
  name: "table",
14332
14621
  type: "Table<TData>",
14333
14622
  required: true,
14623
+ description: "The TanStack table whose current-page rows this checkbox selects.",
14334
14624
  },
14335
14625
  ],
14336
14626
  },
@@ -14552,11 +14842,13 @@ export const docsManifest = {
14552
14842
  name: "icon",
14553
14843
  type: "ReactNode",
14554
14844
  required: false,
14845
+ description: "Leading glyph shown before the title.",
14555
14846
  },
14556
14847
  {
14557
14848
  name: "pinnable",
14558
14849
  type: "boolean",
14559
14850
  required: false,
14851
+ description: "Not read by the header. Pinning is controlled by `tableLayout.columnsPinnable`\non `DataGrid` and the column's own `enablePinning`.",
14560
14852
  },
14561
14853
  {
14562
14854
  name: "title",
@@ -14771,21 +15063,25 @@ export const docsManifest = {
14771
15063
  name: "row",
14772
15064
  type: "Row<TData>",
14773
15065
  required: true,
15066
+ description: 'The TanStack row to render; its selection state sets `data-state="selected"` and its original data goes to `onRowClick`.',
14774
15067
  },
14775
15068
  {
14776
15069
  name: "dndRef",
14777
15070
  type: "React.Ref<HTMLTableRowElement>",
14778
15071
  required: false,
15072
+ description: "Ref attached to the `<tr>`; the virtualiser passes its row-measuring ref here, a drag library can pass its node ref.",
14779
15073
  },
14780
15074
  {
14781
15075
  name: "dndStyle",
14782
15076
  type: "React.CSSProperties",
14783
15077
  required: false,
15078
+ description: "Inline style merged over the row height, e.g. a drag library's transform.",
14784
15079
  },
14785
15080
  {
14786
15081
  name: "dataIndex",
14787
15082
  type: "number",
14788
15083
  required: false,
15084
+ description: "Row position in the full row model, written to `data-index` so the virtualiser can find the row when measuring.",
14789
15085
  },
14790
15086
  ],
14791
15087
  },
@@ -14802,16 +15098,19 @@ export const docsManifest = {
14802
15098
  name: "cell",
14803
15099
  type: "Cell<TData>",
14804
15100
  required: true,
15101
+ description: "The TanStack cell to render; its column sets pinning, edge and `meta.cellClassName` styling.",
14805
15102
  },
14806
15103
  {
14807
15104
  name: "dndRef",
14808
15105
  type: "React.Ref<HTMLTableCellElement>",
14809
15106
  required: false,
15107
+ description: "Ref attached to the `<td>`, for a drag library's node ref.",
14810
15108
  },
14811
15109
  {
14812
15110
  name: "dndStyle",
14813
15111
  type: "React.CSSProperties",
14814
15112
  required: false,
15113
+ description: "Inline style merged over the pinning styles, e.g. a drag library's transform.",
14815
15114
  },
14816
15115
  ],
14817
15116
  },
@@ -14823,6 +15122,7 @@ export const docsManifest = {
14823
15122
  name: "row",
14824
15123
  type: "Row<TData>",
14825
15124
  required: true,
15125
+ description: "The expanded row; its `original` data is passed to the first column's `meta.expandedContent`.",
14826
15126
  },
14827
15127
  ],
14828
15128
  },
@@ -14850,6 +15150,7 @@ export const docsManifest = {
14850
15150
  name: "column",
14851
15151
  type: "Column<TData>",
14852
15152
  required: true,
15153
+ description: "The column this placeholder cell sits in; supplies pinning, edge and `meta.cellClassName` styling.",
14853
15154
  },
14854
15155
  ],
14855
15156
  },
@@ -14882,6 +15183,7 @@ export const docsManifest = {
14882
15183
  name: "headerGroup",
14883
15184
  type: "HeaderGroup<TData>",
14884
15185
  required: true,
15186
+ description: "The TanStack header group this row renders; it supplies the row's React key.",
14885
15187
  },
14886
15188
  ],
14887
15189
  },
@@ -14898,16 +15200,19 @@ export const docsManifest = {
14898
15200
  name: "header",
14899
15201
  type: "Header<TData>",
14900
15202
  required: true,
15203
+ description: "The TanStack header this `<th>` renders; its column sets size, pinning and `meta.headerClassName`.",
14901
15204
  },
14902
15205
  {
14903
15206
  name: "dndRef",
14904
15207
  type: "React.Ref<HTMLTableCellElement>",
14905
15208
  required: false,
15209
+ description: "Ref attached to the `<th>`, for a drag library's node ref.",
14906
15210
  },
14907
15211
  {
14908
15212
  name: "dndStyle",
14909
15213
  type: "React.CSSProperties",
14910
15214
  required: false,
15215
+ description: "Inline style merged over width and pinning styles, e.g. a drag library's transform.",
14911
15216
  },
14912
15217
  ],
14913
15218
  },
@@ -14919,6 +15224,7 @@ export const docsManifest = {
14919
15224
  name: "header",
14920
15225
  type: "Header<TData>",
14921
15226
  required: true,
15227
+ description: "The header whose column this handle resizes.",
14922
15228
  },
14923
15229
  ],
14924
15230
  },
@@ -14935,11 +15241,13 @@ export const docsManifest = {
14935
15241
  name: "row",
14936
15242
  type: "Row<TData>",
14937
15243
  required: true,
15244
+ description: "The TanStack row this checkbox selects.",
14938
15245
  },
14939
15246
  {
14940
15247
  name: "size",
14941
15248
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
14942
15249
  required: false,
15250
+ description: 'Mirrors the table\'s size: `"2xs"` and `"xs"` (or omitted) give the `"xs"` checkbox, anything larger the `"sm"` one.',
14943
15251
  },
14944
15252
  ],
14945
15253
  },
@@ -14951,6 +15259,7 @@ export const docsManifest = {
14951
15259
  name: "size",
14952
15260
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
14953
15261
  required: false,
15262
+ description: 'Mirrors the table\'s size: `"2xs"` and `"xs"` (or omitted) give the `"xs"` checkbox, anything larger the `"sm"` one.',
14954
15263
  },
14955
15264
  ],
14956
15265
  },
@@ -15101,6 +15410,8 @@ export const docsManifest = {
15101
15410
  name: "variant",
15102
15411
  type: '"divided" | "separated" | "grouped" | null | undefined',
15103
15412
  required: false,
15413
+ defaultValue: '"grouped"',
15414
+ description: 'Container treatment: `"grouped"` is one bordered, rounded card with the rows inside, `"divided"` separates rows with hairlines and no frame, `"separated"` leaves a gap between rows so each can carry its own surface.',
15104
15415
  },
15105
15416
  ],
15106
15417
  },
@@ -15151,6 +15462,7 @@ export const docsManifest = {
15151
15462
  name: "icon",
15152
15463
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
15153
15464
  required: true,
15465
+ description: "Icon component (a Lucide icon), not a rendered element; sized from the list's `size`.",
15154
15466
  },
15155
15467
  ],
15156
15468
  },
@@ -15312,11 +15624,13 @@ export const docsManifest = {
15312
15624
  name: "subtitle",
15313
15625
  type: "string",
15314
15626
  required: false,
15627
+ description: "Small muted line above the title, such as a category or date. Omitted when empty.",
15315
15628
  },
15316
15629
  {
15317
15630
  name: "title",
15318
15631
  type: "string",
15319
15632
  required: true,
15633
+ description: "Main line, shown larger and medium weight.",
15320
15634
  },
15321
15635
  ],
15322
15636
  },
@@ -15533,6 +15847,8 @@ export const docsManifest = {
15533
15847
  name: "size",
15534
15848
  type: '"base" | "sm" | "lg" | null | undefined',
15535
15849
  required: false,
15850
+ defaultValue: '"base"',
15851
+ description: "Scale of the whole empty state: the title, description and icon sizes, the gaps, and the vertical padding in the `card` layouts.",
15536
15852
  },
15537
15853
  ],
15538
15854
  },
@@ -15627,6 +15943,8 @@ export const docsManifest = {
15627
15943
  name: "size",
15628
15944
  type: '"base" | "sm" | "lg" | null | undefined',
15629
15945
  required: false,
15946
+ defaultValue: '"base"',
15947
+ description: "Scale of the whole empty state: the title, description and icon sizes, the gaps, and the vertical padding in the `card` layouts.",
15630
15948
  },
15631
15949
  ],
15632
15950
  },
@@ -15722,16 +16040,19 @@ export const docsManifest = {
15722
16040
  name: "onDragLeave",
15723
16041
  type: "(e: DragEvent<HTMLElement>) => void",
15724
16042
  required: false,
16043
+ description: "Fires when a drag leaves the zone; pass `handleDragLeave` to clear the drag state.",
15725
16044
  },
15726
16045
  {
15727
16046
  name: "onDragOver",
15728
16047
  type: "(e: DragEvent<HTMLElement>) => void",
15729
16048
  required: false,
16049
+ description: "Fires continuously while a drag is over the zone; pass `handleDragOver`, which cancels the default so the zone accepts a drop.",
15730
16050
  },
15731
16051
  {
15732
16052
  name: "onDrop",
15733
16053
  type: "(e: DragEvent<HTMLElement>) => void",
15734
16054
  required: false,
16055
+ description: "Fires when files are dropped; pass `handleDrop` to validate and add them.",
15735
16056
  },
15736
16057
  {
15737
16058
  name: "ref",
@@ -15921,11 +16242,15 @@ export const docsManifest = {
15921
16242
  name: "tone",
15922
16243
  type: '"neutral" | "brand" | "danger" | null | undefined',
15923
16244
  required: false,
16245
+ defaultValue: '"neutral"',
16246
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
15924
16247
  },
15925
16248
  {
15926
16249
  name: "radius",
15927
16250
  type: '"rounded" | "square" | "full" | null | undefined',
15928
16251
  required: false,
16252
+ defaultValue: '"full"',
16253
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
15929
16254
  },
15930
16255
  {
15931
16256
  name: "size",
@@ -15951,6 +16276,8 @@ export const docsManifest = {
15951
16276
  name: "square",
15952
16277
  type: "boolean | null | undefined",
15953
16278
  required: false,
16279
+ defaultValue: "false",
16280
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
15954
16281
  },
15955
16282
  {
15956
16283
  name: "icon",
@@ -15962,26 +16289,35 @@ export const docsManifest = {
15962
16289
  name: "emphasis",
15963
16290
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
15964
16291
  required: false,
16292
+ defaultValue: '"solid"',
16293
+ description: "Visual weight, paired with `tone`: `solid` and `soft` are filled, `outline` and `ghost` lighter, `transparent` a blurred translucent fill, `link` plain text.",
15965
16294
  },
15966
16295
  {
15967
16296
  name: "asInput",
15968
16297
  type: "boolean | null | undefined",
15969
16298
  required: false,
16299
+ defaultValue: "false",
16300
+ description: "Style the button as a form field (input background and border), for a trigger that opens a picker.",
15970
16301
  },
15971
16302
  {
15972
16303
  name: "align",
15973
16304
  type: '"center" | "end" | "start" | null | undefined',
15974
16305
  required: false,
16306
+ defaultValue: '"center"',
16307
+ description: "Where the content sits along the button; `start` or `end` only shows on a button wider than its content.",
15975
16308
  },
15976
16309
  {
15977
16310
  name: "pressed",
15978
16311
  type: "boolean | null | undefined",
15979
16312
  required: false,
16313
+ defaultValue: "true",
16314
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
15980
16315
  },
15981
16316
  {
15982
16317
  name: "testId",
15983
16318
  type: "string",
15984
16319
  required: false,
16320
+ description: "Rendered as `data-testid`, for Playwright selectors.",
15985
16321
  },
15986
16322
  {
15987
16323
  name: "suffixIcon",
@@ -16134,6 +16470,7 @@ export const docsManifest = {
16134
16470
  name: "selected",
16135
16471
  type: "boolean",
16136
16472
  required: false,
16473
+ description: 'Marks the folder as chosen: selected styling and `aria-pressed="true"`. Has no effect while `showSelectedState` is false.',
16137
16474
  },
16138
16475
  {
16139
16476
  name: "showSelectedState",
@@ -16151,6 +16488,7 @@ export const docsManifest = {
16151
16488
  name: "testId",
16152
16489
  type: "string",
16153
16490
  required: false,
16491
+ description: "Rendered as `data-testid` on the outer wrapper (not the button), for Playwright targeting.",
16154
16492
  },
16155
16493
  ],
16156
16494
  },
@@ -16271,6 +16609,7 @@ export const docsManifest = {
16271
16609
  name: "positionerClassName",
16272
16610
  type: "string",
16273
16611
  required: false,
16612
+ description: "Classes for the positioning layer around the content, such as a lower `z-*` for a panel that sits beneath fixed chrome. Defaults to `z-50`.",
16274
16613
  },
16275
16614
  ],
16276
16615
  },
@@ -16517,11 +16856,15 @@ export const docsManifest = {
16517
16856
  name: "tone",
16518
16857
  type: '"neutral" | "brand" | "danger" | null | undefined',
16519
16858
  required: false,
16859
+ defaultValue: '"neutral"',
16860
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
16520
16861
  },
16521
16862
  {
16522
16863
  name: "radius",
16523
16864
  type: '"rounded" | "square" | "full" | null | undefined',
16524
16865
  required: false,
16866
+ defaultValue: '"full"',
16867
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
16525
16868
  },
16526
16869
  {
16527
16870
  name: "size",
@@ -16547,31 +16890,42 @@ export const docsManifest = {
16547
16890
  name: "square",
16548
16891
  type: "boolean | null | undefined",
16549
16892
  required: false,
16893
+ defaultValue: "false",
16894
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
16550
16895
  },
16551
16896
  {
16552
16897
  name: "emphasis",
16553
16898
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
16554
16899
  required: false,
16900
+ defaultValue: '"solid"',
16901
+ description: "Visual weight, paired with `tone`: `solid` and `soft` are filled, `outline` and `ghost` lighter, `transparent` a blurred translucent fill, `link` plain text.",
16555
16902
  },
16556
16903
  {
16557
16904
  name: "asInput",
16558
16905
  type: "boolean | null | undefined",
16559
16906
  required: false,
16907
+ defaultValue: "false",
16908
+ description: "Style the button as a form field (input background and border), for a trigger that opens a picker.",
16560
16909
  },
16561
16910
  {
16562
16911
  name: "align",
16563
16912
  type: '"center" | "end" | "start" | null | undefined',
16564
16913
  required: false,
16914
+ defaultValue: '"center"',
16915
+ description: "Where the content sits along the button; `start` or `end` only shows on a button wider than its content.",
16565
16916
  },
16566
16917
  {
16567
16918
  name: "pressed",
16568
16919
  type: "boolean | null | undefined",
16569
16920
  required: false,
16921
+ defaultValue: "true",
16922
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
16570
16923
  },
16571
16924
  {
16572
16925
  name: "testId",
16573
16926
  type: "string",
16574
16927
  required: false,
16928
+ description: "Rendered as `data-testid`, for Playwright selectors.",
16575
16929
  },
16576
16930
  {
16577
16931
  name: "suffixIcon",
@@ -16741,6 +17095,7 @@ export const docsManifest = {
16741
17095
  name: "displayName",
16742
17096
  type: "string",
16743
17097
  required: true,
17098
+ description: "The user's name, shown in medium weight; also the avatar image's alt text.",
16744
17099
  },
16745
17100
  {
16746
17101
  name: "email",
@@ -16934,36 +17289,50 @@ export const docsManifest = {
16934
17289
  name: "tone",
16935
17290
  type: '"neutral" | "brand" | "danger" | null | undefined',
16936
17291
  required: false,
17292
+ defaultValue: '"neutral"',
17293
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
16937
17294
  },
16938
17295
  {
16939
17296
  name: "radius",
16940
17297
  type: '"rounded" | "square" | "full" | null | undefined',
16941
17298
  required: false,
17299
+ defaultValue: '"full"',
17300
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
16942
17301
  },
16943
17302
  {
16944
17303
  name: "square",
16945
17304
  type: "boolean | null | undefined",
16946
17305
  required: false,
17306
+ defaultValue: "false",
17307
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
16947
17308
  },
16948
17309
  {
16949
17310
  name: "emphasis",
16950
17311
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
16951
17312
  required: false,
17313
+ defaultValue: '"solid"',
17314
+ description: "Visual weight, paired with `tone`: `solid` and `soft` are filled, `outline` and `ghost` lighter, `transparent` a blurred translucent fill, `link` plain text.",
16952
17315
  },
16953
17316
  {
16954
17317
  name: "asInput",
16955
17318
  type: "boolean | null | undefined",
16956
17319
  required: false,
17320
+ defaultValue: "false",
17321
+ description: "Style the button as a form field (input background and border), for a trigger that opens a picker.",
16957
17322
  },
16958
17323
  {
16959
17324
  name: "align",
16960
17325
  type: '"center" | "end" | "start" | null | undefined',
16961
17326
  required: false,
17327
+ defaultValue: '"center"',
17328
+ description: "Where the content sits along the button; `start` or `end` only shows on a button wider than its content.",
16962
17329
  },
16963
17330
  {
16964
17331
  name: "pressed",
16965
17332
  type: "boolean | null | undefined",
16966
17333
  required: false,
17334
+ defaultValue: "true",
17335
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
16967
17336
  },
16968
17337
  {
16969
17338
  name: "size",
@@ -17051,6 +17420,7 @@ export const docsManifest = {
17051
17420
  name: "testId",
17052
17421
  type: "string",
17053
17422
  required: false,
17423
+ description: "Rendered as `data-testid`, for Playwright selectors.",
17054
17424
  },
17055
17425
  ],
17056
17426
  },
@@ -17129,6 +17499,7 @@ export const docsManifest = {
17129
17499
  name: "onClose",
17130
17500
  type: "() => void",
17131
17501
  required: true,
17502
+ description: "Called when the close button is pressed; set your open state to false here.",
17132
17503
  },
17133
17504
  ],
17134
17505
  },
@@ -17140,36 +17511,50 @@ export const docsManifest = {
17140
17511
  name: "tone",
17141
17512
  type: '"neutral" | "brand" | "danger" | null | undefined',
17142
17513
  required: false,
17514
+ defaultValue: '"neutral"',
17515
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
17143
17516
  },
17144
17517
  {
17145
17518
  name: "radius",
17146
17519
  type: '"rounded" | "square" | "full" | null | undefined',
17147
17520
  required: false,
17521
+ defaultValue: '"full"',
17522
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
17148
17523
  },
17149
17524
  {
17150
17525
  name: "square",
17151
17526
  type: "boolean | null | undefined",
17152
17527
  required: false,
17528
+ defaultValue: "false",
17529
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
17153
17530
  },
17154
17531
  {
17155
17532
  name: "emphasis",
17156
17533
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
17157
17534
  required: false,
17535
+ defaultValue: '"solid"',
17536
+ description: "Visual weight, paired with `tone`: `solid` and `soft` are filled, `outline` and `ghost` lighter, `transparent` a blurred translucent fill, `link` plain text.\nVisual weight, as on Button.",
17158
17537
  },
17159
17538
  {
17160
17539
  name: "asInput",
17161
17540
  type: "boolean | null | undefined",
17162
17541
  required: false,
17542
+ defaultValue: "false",
17543
+ description: "Style the button as a form field (input background and border), for a trigger that opens a picker.",
17163
17544
  },
17164
17545
  {
17165
17546
  name: "align",
17166
17547
  type: '"center" | "end" | "start" | null | undefined',
17167
17548
  required: false,
17549
+ defaultValue: '"center"',
17550
+ description: "Where the content sits along the button; `start` or `end` only shows on a button wider than its content.",
17168
17551
  },
17169
17552
  {
17170
17553
  name: "pressed",
17171
17554
  type: "boolean | null | undefined",
17172
17555
  required: false,
17556
+ defaultValue: "true",
17557
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
17173
17558
  },
17174
17559
  {
17175
17560
  name: "size",
@@ -17257,6 +17642,7 @@ export const docsManifest = {
17257
17642
  name: "testId",
17258
17643
  type: "string",
17259
17644
  required: false,
17645
+ description: "Rendered as `data-testid`, for Playwright selectors.",
17260
17646
  },
17261
17647
  ],
17262
17648
  },
@@ -17315,11 +17701,15 @@ export const docsManifest = {
17315
17701
  name: "tone",
17316
17702
  type: '"neutral" | "brand" | "danger" | null | undefined',
17317
17703
  required: false,
17704
+ defaultValue: '"neutral"',
17705
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
17318
17706
  },
17319
17707
  {
17320
17708
  name: "radius",
17321
17709
  type: '"rounded" | "square" | "full" | null | undefined',
17322
17710
  required: false,
17711
+ defaultValue: '"full"',
17712
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
17323
17713
  },
17324
17714
  {
17325
17715
  name: "size",
@@ -17339,31 +17729,42 @@ export const docsManifest = {
17339
17729
  name: "square",
17340
17730
  type: "boolean | null | undefined",
17341
17731
  required: false,
17732
+ defaultValue: "false",
17733
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
17342
17734
  },
17343
17735
  {
17344
17736
  name: "emphasis",
17345
17737
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
17346
17738
  required: false,
17739
+ defaultValue: '"solid"',
17740
+ description: "Visual weight, paired with `tone`: `solid` and `soft` are filled, `outline` and `ghost` lighter, `transparent` a blurred translucent fill, `link` plain text.",
17347
17741
  },
17348
17742
  {
17349
17743
  name: "asInput",
17350
17744
  type: "boolean | null | undefined",
17351
17745
  required: false,
17746
+ defaultValue: "false",
17747
+ description: "Style the button as a form field (input background and border), for a trigger that opens a picker.",
17352
17748
  },
17353
17749
  {
17354
17750
  name: "align",
17355
17751
  type: '"center" | "end" | "start" | null | undefined',
17356
17752
  required: false,
17753
+ defaultValue: '"center"',
17754
+ description: "Where the content sits along the button; `start` or `end` only shows on a button wider than its content.",
17357
17755
  },
17358
17756
  {
17359
17757
  name: "pressed",
17360
17758
  type: "boolean | null | undefined",
17361
17759
  required: false,
17760
+ defaultValue: "true",
17761
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
17362
17762
  },
17363
17763
  {
17364
17764
  name: "testId",
17365
17765
  type: "string",
17366
17766
  required: false,
17767
+ description: "Rendered as `data-testid`, for Playwright selectors.",
17367
17768
  },
17368
17769
  {
17369
17770
  name: "expandable",
@@ -17508,11 +17909,15 @@ export const docsManifest = {
17508
17909
  name: "tone",
17509
17910
  type: '"neutral" | "brand" | "danger" | null | undefined',
17510
17911
  required: false,
17912
+ defaultValue: '"neutral"',
17913
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
17511
17914
  },
17512
17915
  {
17513
17916
  name: "radius",
17514
17917
  type: '"rounded" | "square" | "full" | null | undefined',
17515
17918
  required: false,
17919
+ defaultValue: '"full"',
17920
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
17516
17921
  },
17517
17922
  {
17518
17923
  name: "size",
@@ -17531,6 +17936,8 @@ export const docsManifest = {
17531
17936
  name: "square",
17532
17937
  type: "boolean | null | undefined",
17533
17938
  required: false,
17939
+ defaultValue: "false",
17940
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
17534
17941
  },
17535
17942
  {
17536
17943
  name: "icon",
@@ -17542,26 +17949,35 @@ export const docsManifest = {
17542
17949
  name: "emphasis",
17543
17950
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
17544
17951
  required: false,
17952
+ defaultValue: '"solid"',
17953
+ description: "Visual weight, paired with `tone`: `solid` and `soft` are filled, `outline` and `ghost` lighter, `transparent` a blurred translucent fill, `link` plain text.",
17545
17954
  },
17546
17955
  {
17547
17956
  name: "asInput",
17548
17957
  type: "boolean | null | undefined",
17549
17958
  required: false,
17959
+ defaultValue: "false",
17960
+ description: "Style the button as a form field (input background and border), for a trigger that opens a picker.",
17550
17961
  },
17551
17962
  {
17552
17963
  name: "align",
17553
17964
  type: '"center" | "end" | "start" | null | undefined',
17554
17965
  required: false,
17966
+ defaultValue: '"center"',
17967
+ description: "Where the content sits along the button; `start` or `end` only shows on a button wider than its content.",
17555
17968
  },
17556
17969
  {
17557
17970
  name: "pressed",
17558
17971
  type: "boolean | null | undefined",
17559
17972
  required: false,
17973
+ defaultValue: "true",
17974
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
17560
17975
  },
17561
17976
  {
17562
17977
  name: "testId",
17563
17978
  type: "string",
17564
17979
  required: false,
17980
+ description: "Rendered as `data-testid`, for Playwright selectors.",
17565
17981
  },
17566
17982
  {
17567
17983
  name: "suffixIcon",
@@ -17640,6 +18056,7 @@ export const docsManifest = {
17640
18056
  name: "label",
17641
18057
  type: "React.ReactNode",
17642
18058
  required: true,
18059
+ description: "Project name; truncates to one line.",
17643
18060
  },
17644
18061
  {
17645
18062
  name: "onAction",
@@ -17651,6 +18068,7 @@ export const docsManifest = {
17651
18068
  name: "actionIcon",
17652
18069
  type: 'import("../../tokens/icon-component").IconComponent',
17653
18070
  required: true,
18071
+ description: "Icon for the trailing action button, such as an ellipsis for project options.",
17654
18072
  },
17655
18073
  {
17656
18074
  name: "actionLabel",
@@ -17684,6 +18102,7 @@ export const docsManifest = {
17684
18102
  name: "onClose",
17685
18103
  type: "() => void",
17686
18104
  required: false,
18105
+ description: "Called when Escape is pressed. The overlay never unmounts itself, so set your open state to false here.",
17687
18106
  },
17688
18107
  ],
17689
18108
  },
@@ -18126,6 +18545,7 @@ export const docsManifest = {
18126
18545
  type: "string",
18127
18546
  required: false,
18128
18547
  defaultValue: '"Clear all"',
18548
+ description: "Text of the button that calls `onClear`.",
18129
18549
  },
18130
18550
  {
18131
18551
  name: "separator",
@@ -18228,6 +18648,8 @@ export const docsManifest = {
18228
18648
  name: "variant",
18229
18649
  type: '"default" | "secondary" | null | undefined',
18230
18650
  required: false,
18651
+ defaultValue: '"default"',
18652
+ description: "How a pressed toggle shows it is on: `default` greys the fill and border, `secondary` darkens the border only. Inside a `ToggleGroup` the group's value wins.",
18231
18653
  },
18232
18654
  {
18233
18655
  name: "size",
@@ -18348,6 +18770,8 @@ export const docsManifest = {
18348
18770
  name: "radius",
18349
18771
  type: '"rounded" | "square" | "full" | null | undefined',
18350
18772
  required: false,
18773
+ defaultValue: '"full"',
18774
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
18351
18775
  },
18352
18776
  {
18353
18777
  name: "size",
@@ -18373,26 +18797,35 @@ export const docsManifest = {
18373
18797
  name: "square",
18374
18798
  type: "boolean | null | undefined",
18375
18799
  required: false,
18800
+ defaultValue: "false",
18801
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
18376
18802
  },
18377
18803
  {
18378
18804
  name: "asInput",
18379
18805
  type: "boolean | null | undefined",
18380
18806
  required: false,
18807
+ defaultValue: "false",
18808
+ description: "Style the button as a form field (input background and border), for a trigger that opens a picker.",
18381
18809
  },
18382
18810
  {
18383
18811
  name: "align",
18384
18812
  type: '"center" | "end" | "start" | null | undefined',
18385
18813
  required: false,
18814
+ defaultValue: '"center"',
18815
+ description: "Where the content sits along the button; `start` or `end` only shows on a button wider than its content.",
18386
18816
  },
18387
18817
  {
18388
18818
  name: "pressed",
18389
18819
  type: "boolean | null | undefined",
18390
18820
  required: false,
18821
+ defaultValue: "true",
18822
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
18391
18823
  },
18392
18824
  {
18393
18825
  name: "testId",
18394
18826
  type: "string",
18395
18827
  required: false,
18828
+ description: "Rendered as `data-testid`, for Playwright selectors.",
18396
18829
  },
18397
18830
  {
18398
18831
  name: "suffixIcon",
@@ -18482,16 +18915,19 @@ export const docsManifest = {
18482
18915
  name: "onDirectionChange",
18483
18916
  type: "(direction: PageToolbarSortDirection) => void",
18484
18917
  required: false,
18918
+ description: 'Called with `"asc"` or `"desc"` when the user picks a direction. The Ascending and Descending choices only appear when both this and `direction` are set.',
18485
18919
  },
18486
18920
  {
18487
18921
  name: "onValueChange",
18488
18922
  type: "(value: string) => void",
18489
18923
  required: true,
18924
+ description: "Called with the chosen option's `value` when the user picks an order.",
18490
18925
  },
18491
18926
  {
18492
18927
  name: "options",
18493
18928
  type: "readonly PageToolbarSortOption[]",
18494
18929
  required: true,
18930
+ description: "The orders to offer, each a `value` and a `label`; the label of the current one shows on the button.",
18495
18931
  },
18496
18932
  {
18497
18933
  name: "value",
@@ -18728,6 +19164,7 @@ export const docsManifest = {
18728
19164
  name: "product",
18729
19165
  type: "ProductCardProduct",
18730
19166
  required: true,
19167
+ description: 'The material to show. In `"group"` mode its `variants` become the colourway\nswatches (the card falls back to the product itself when there are none),\nand `images[0]` of the selected variant is the photograph. A product whose\nselected variant has no images renders a "no photography" placeholder.',
18731
19168
  },
18732
19169
  {
18733
19170
  name: "productUrl",
@@ -18769,13 +19206,13 @@ export const docsManifest = {
18769
19206
  name: "overrideImageUrl",
18770
19207
  type: "string | undefined",
18771
19208
  required: false,
18772
- description: "Override image URL - used for visual search to show the matched image",
19209
+ description: 'Image URL shown in place of the product\'s own first image, e.g. the\nmatched crop in a visual search. Honoured in `"single"` and `"swatch"`\nmodes only.',
18773
19210
  },
18774
19211
  {
18775
19212
  name: "priority",
18776
19213
  type: "boolean | undefined",
18777
19214
  required: false,
18778
- description: 'Prioritise loading images (sets loading="eager" and adds preload link)',
19215
+ description: 'Load the main image eagerly (`loading="eager"`, high fetch priority in the\ndefault renderer, and forwarded to `renderImage`). Set it on above-the-fold\ncards, not the whole grid.',
18779
19216
  },
18780
19217
  {
18781
19218
  name: "productBrandLines",
@@ -18787,21 +19224,29 @@ export const docsManifest = {
18787
19224
  name: "productNameLines",
18788
19225
  type: "1 | 2 | undefined",
18789
19226
  required: false,
19227
+ defaultValue: "1",
19228
+ description: "How many lines the product name may take before it clamps. Choose `2`\nwhere names differ only at the end; rows stay level because the clamp is\na maximum, not a reserved height.",
18790
19229
  },
18791
19230
  {
18792
19231
  name: "showAddToCart",
18793
19232
  type: "boolean | undefined",
18794
19233
  required: false,
19234
+ defaultValue: "true",
19235
+ description: "Show the cart control. It only ever appears when `renderAddToCart` is also\nsupplied, and `primaryAction` can replace it with another action.",
18795
19236
  },
18796
19237
  {
18797
19238
  name: "showProductBrand",
18798
19239
  type: "boolean | undefined",
18799
19240
  required: false,
19241
+ defaultValue: "true",
19242
+ description: "Show the brand name above the product name. Cards without a brand name\nomit the line either way.",
18800
19243
  },
18801
19244
  {
18802
19245
  name: "showProductName",
18803
19246
  type: "boolean | undefined",
18804
19247
  required: false,
19248
+ defaultValue: "true",
19249
+ description: "Show the product name.",
18805
19250
  },
18806
19251
  {
18807
19252
  name: "showSwatches",
@@ -18814,6 +19259,7 @@ export const docsManifest = {
18814
19259
  name: "similarityScore",
18815
19260
  type: "number | undefined",
18816
19261
  required: false,
19262
+ description: 'Visual-search match from `0` to `1` (not a percentage), shown as a\nrounded percentage pill over the image: `0.87` reads `87%`. Only\n`"single"` and `"inspiration"` modes show it; omit it for no pill.',
18817
19263
  },
18818
19264
  ],
18819
19265
  },
@@ -18995,13 +19441,13 @@ export const docsManifest = {
18995
19441
  name: "overrideImageUrl",
18996
19442
  type: "string | undefined",
18997
19443
  required: false,
18998
- description: "Override image URL - used for visual search to show the matched image",
19444
+ description: 'Image URL shown in place of the product\'s own first image, e.g. the\nmatched crop in a visual search. Honoured in `"single"` and `"swatch"`\nmodes only.',
18999
19445
  },
19000
19446
  {
19001
19447
  name: "priority",
19002
19448
  type: "boolean | undefined",
19003
19449
  required: false,
19004
- description: 'Prioritise loading images (sets loading="eager" and adds preload link)',
19450
+ description: 'Load the main image eagerly (`loading="eager"`, high fetch priority in the\ndefault renderer, and forwarded to `renderImage`). Set it on above-the-fold\ncards, not the whole grid.',
19005
19451
  },
19006
19452
  {
19007
19453
  name: "productBrandLines",
@@ -19013,31 +19459,41 @@ export const docsManifest = {
19013
19459
  name: "productNameLines",
19014
19460
  type: "1 | 2 | undefined",
19015
19461
  required: false,
19462
+ defaultValue: "1",
19463
+ description: "How many lines the product name may take before it clamps. Choose `2`\nwhere names differ only at the end; rows stay level because the clamp is\na maximum, not a reserved height.",
19016
19464
  },
19017
19465
  {
19018
19466
  name: "showAddToCart",
19019
19467
  type: "boolean | undefined",
19020
19468
  required: false,
19469
+ defaultValue: "true",
19470
+ description: "Show the cart control. It only ever appears when `renderAddToCart` is also\nsupplied, and `primaryAction` can replace it with another action.",
19021
19471
  },
19022
19472
  {
19023
19473
  name: "showProductBrand",
19024
19474
  type: "boolean | undefined",
19025
19475
  required: false,
19476
+ defaultValue: "true",
19477
+ description: "Show the brand name above the product name. Cards without a brand name\nomit the line either way.",
19026
19478
  },
19027
19479
  {
19028
19480
  name: "showProductName",
19029
19481
  type: "boolean | undefined",
19030
19482
  required: false,
19483
+ defaultValue: "true",
19484
+ description: "Show the product name.",
19031
19485
  },
19032
19486
  {
19033
19487
  name: "similarityScore",
19034
19488
  type: "number | undefined",
19035
19489
  required: false,
19490
+ description: 'Visual-search match from `0` to `1` (not a percentage), shown as a\nrounded percentage pill over the image: `0.87` reads `87%`. Only\n`"single"` and `"inspiration"` modes show it; omit it for no pill.',
19036
19491
  },
19037
19492
  {
19038
19493
  name: "onAddToCartSuccess",
19039
19494
  type: "(() => void) | undefined",
19040
19495
  required: false,
19496
+ description: "Called when the `renderAddToCart` slot reports a successful add, via the `onAdded` it receives.",
19041
19497
  },
19042
19498
  ],
19043
19499
  },
@@ -19101,23 +19557,26 @@ export const docsManifest = {
19101
19557
  name: "overrideImageUrl",
19102
19558
  type: "string | undefined",
19103
19559
  required: false,
19104
- description: "Override image URL - used for visual search to show the matched image",
19560
+ description: "Image URL shown in place of the variant's first image, e.g. the matched crop in a visual search.",
19105
19561
  },
19106
19562
  {
19107
19563
  name: "priority",
19108
19564
  type: "boolean | undefined",
19109
19565
  required: false,
19110
- description: 'Prioritise loading this image (sets loading="eager" and adds preload link)',
19566
+ description: 'Load this image eagerly (`loading="eager"`, high fetch priority in the default renderer); forwarded to `renderImage`.',
19111
19567
  },
19112
19568
  {
19113
19569
  name: "showSimilarityScore",
19114
19570
  type: "boolean | undefined",
19115
19571
  required: false,
19572
+ defaultValue: "false",
19573
+ description: 'Show the `similarityScore` pill. Needs `similarityScore` too, and is\nignored outside `"single"` and `"inspiration"` modes.',
19116
19574
  },
19117
19575
  {
19118
19576
  name: "similarityScore",
19119
19577
  type: "number | undefined",
19120
19578
  required: false,
19579
+ description: "Match from `0` to `1`, shown as a rounded percentage (`0.87` reads `87%`).",
19121
19580
  },
19122
19581
  ],
19123
19582
  },
@@ -19243,6 +19702,7 @@ export const docsManifest = {
19243
19702
  name: "display",
19244
19703
  type: "ProductCardDisplayOptions | undefined",
19245
19704
  required: false,
19705
+ description: "Which parts of the card show: brand, name, line clamps, swatches, add to\ncart. `ProductCard` takes the same switches as flat props (`showProductBrand`\nand so on) and builds this for you; pass `display` only when using\n`ProductCardProvider` directly. Each key falls back to its own default.",
19246
19706
  },
19247
19707
  {
19248
19708
  name: "dragAdapter",
@@ -19365,6 +19825,7 @@ export const docsManifest = {
19365
19825
  name: "product",
19366
19826
  type: "ProductCardProduct",
19367
19827
  required: true,
19828
+ description: 'The material to show. In `"group"` mode its `variants` become the colourway\nswatches (the card falls back to the product itself when there are none),\nand `images[0]` of the selected variant is the photograph. A product whose\nselected variant has no images renders a "no photography" placeholder.',
19368
19829
  },
19369
19830
  {
19370
19831
  name: "productUrl",
@@ -19556,11 +20017,13 @@ export const docsManifest = {
19556
20017
  name: "overrideImageUrl",
19557
20018
  type: "string | undefined",
19558
20019
  required: false,
20020
+ description: "Image URL shown in place of the variant's first image.",
19559
20021
  },
19560
20022
  {
19561
20023
  name: "priority",
19562
20024
  type: "boolean | undefined",
19563
20025
  required: false,
20026
+ description: "Load the tile's image eagerly; forwarded to `renderImage`.",
19564
20027
  },
19565
20028
  ],
19566
20029
  },
@@ -19641,6 +20104,8 @@ export const docsManifest = {
19641
20104
  name: "active",
19642
20105
  type: "boolean",
19643
20106
  required: false,
20107
+ defaultValue: "true",
20108
+ description: "Whether the `renderTools` buttons are mounted. `ProductCard` sets it while\nthe pointer or keyboard focus is inside the card, so a large grid does not\nrender every hidden action.",
19644
20109
  },
19645
20110
  {
19646
20111
  name: "className",
@@ -19721,11 +20186,13 @@ export const docsManifest = {
19721
20186
  name: "filters",
19722
20187
  type: "Record<string, string | null>",
19723
20188
  required: true,
20189
+ description: 'The current selection, keyed by filter key (`"color"` for `colorName`, otherwise the\ndimension name such as `"finish"`) to the selected option\'s `value`, or `null` for none.',
19724
20190
  },
19725
20191
  {
19726
20192
  name: "onFilterChange",
19727
20193
  type: "(key: string, value: string | null) => void",
19728
20194
  required: true,
20195
+ description: "Called when an option is picked, with the filter key and the option's `value`;\npicking the selected option again sends `null` to clear it. When `onSiblingSelect` and\n`siblingsWithAttributes` find a matching sibling, that fires instead.",
19729
20196
  },
19730
20197
  {
19731
20198
  name: "onSiblingSelect",
@@ -19761,6 +20228,7 @@ export const docsManifest = {
19761
20228
  name: "variantOptions",
19762
20229
  type: 'Partial<Record<"pattern" | "length" | "width" | "size" | "colorName" | "finish" | "substrate" | "finishType", import("./product-specifications-types").VariantOption[]>>',
19763
20230
  required: true,
20231
+ description: "The options on offer per dimension (`colorName`, `pattern`, `finish`, `size`, `width`,\n`length`, `substrate`, `finishType`). Each present dimension becomes one field, ordered\nwith colourways first; an option with `available: false` is shown as unavailable.",
19764
20232
  },
19765
20233
  ],
19766
20234
  },
@@ -19794,6 +20262,7 @@ export const docsManifest = {
19794
20262
  name: "testId",
19795
20263
  type: "string",
19796
20264
  required: false,
20265
+ description: "Rendered as `data-testid`, for Playwright selectors.",
19797
20266
  },
19798
20267
  ],
19799
20268
  },
@@ -20649,6 +21118,8 @@ export const docsManifest = {
20649
21118
  name: "border",
20650
21119
  type: "BorderStyle",
20651
21120
  required: false,
21121
+ defaultValue: '"none"',
21122
+ description: "Outline: `none` draws no border, `solid` a 1px border, `dashed` a faint dashed one for placeholder or drop areas.",
20652
21123
  },
20653
21124
  {
20654
21125
  name: "inset",
@@ -20674,11 +21145,14 @@ export const docsManifest = {
20674
21145
  name: "testId",
20675
21146
  type: "string",
20676
21147
  required: false,
21148
+ description: "Rendered as `data-testid`, for Playwright selectors.",
20677
21149
  },
20678
21150
  {
20679
21151
  name: "variant",
20680
21152
  type: '"muted" | "ghost" | "accent" | "card" | null | undefined',
20681
21153
  required: false,
21154
+ defaultValue: '"card"',
21155
+ description: "Surface: `card` is the standard card fill, `muted` and `accent` are tinted fills, `ghost` has no fill or shadow.",
20682
21156
  },
20683
21157
  ],
20684
21158
  },
@@ -20938,43 +21412,57 @@ export const docsManifest = {
20938
21412
  name: "tone",
20939
21413
  type: '"neutral" | "brand" | "danger" | null | undefined',
20940
21414
  required: false,
21415
+ defaultValue: '"neutral"',
21416
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
20941
21417
  },
20942
21418
  {
20943
21419
  name: "radius",
20944
21420
  type: '"rounded" | "square" | "full" | null | undefined',
20945
21421
  required: false,
21422
+ defaultValue: '"full"',
21423
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
20946
21424
  },
20947
21425
  {
20948
21426
  name: "square",
20949
21427
  type: "boolean | null | undefined",
20950
21428
  required: false,
21429
+ defaultValue: "false",
21430
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
20951
21431
  },
20952
21432
  {
20953
21433
  name: "emphasis",
20954
21434
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
20955
21435
  required: false,
21436
+ defaultValue: '"solid"',
21437
+ description: "Visual weight, paired with `tone`: `solid` and `soft` are filled, `outline` and `ghost` lighter, `transparent` a blurred translucent fill, `link` plain text.\nVisual weight, as on Button.",
20956
21438
  },
20957
21439
  {
20958
21440
  name: "asInput",
20959
21441
  type: "boolean | null | undefined",
20960
21442
  required: false,
21443
+ defaultValue: "false",
21444
+ description: "Style the button as a form field (input background and border), for a trigger that opens a picker.",
20961
21445
  },
20962
21446
  {
20963
21447
  name: "align",
20964
21448
  type: '"center" | "end" | "start" | null | undefined',
20965
21449
  required: false,
21450
+ defaultValue: '"center"',
21451
+ description: "Where the content sits along the button; `start` or `end` only shows on a button wider than its content.",
20966
21452
  },
20967
21453
  {
20968
21454
  name: "pressed",
20969
21455
  type: "boolean | null | undefined",
20970
21456
  required: false,
21457
+ defaultValue: "true",
21458
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
20971
21459
  },
20972
21460
  {
20973
21461
  name: "size",
20974
21462
  type: "ButtonSizeProp",
20975
21463
  required: false,
20976
21464
  defaultValue: '"base"',
20977
- description: 'Size token; `icon-*` variants produce a square icon-only button. Also\naccepts a responsive object keyed by viewport breakpoints and/or `@`-prefixed\ncontainer queries - e.g. `{ base: "sm", md: "base", "@sm": "lg" }`.',
21465
+ description: 'Size token; `icon-*` variants produce a square icon-only button. Also\naccepts a responsive object keyed by viewport breakpoints and/or `@`-prefixed\ncontainer queries - e.g. `{ base: "sm", md: "base", "@sm": "lg" }`.\nSize token, as on Button.',
20978
21466
  },
20979
21467
  {
20980
21468
  name: "render",
@@ -21055,6 +21543,7 @@ export const docsManifest = {
21055
21543
  name: "testId",
21056
21544
  type: "string",
21057
21545
  required: false,
21546
+ description: "Rendered as `data-testid`, for Playwright selectors.",
21058
21547
  },
21059
21548
  {
21060
21549
  name: "showWhenCollapsed",
@@ -21087,11 +21576,14 @@ export const docsManifest = {
21087
21576
  name: "testId",
21088
21577
  type: "string",
21089
21578
  required: false,
21579
+ description: "Rendered as `data-testid`, for Playwright selectors.",
21090
21580
  },
21091
21581
  {
21092
21582
  name: "radius",
21093
21583
  type: '"rounded" | "square" | "full" | null | undefined',
21094
21584
  required: false,
21585
+ defaultValue: '"rounded"',
21586
+ description: "Corner shape: `rounded` is the standard 8px radius, `square` has sharp corners, `full` is a pill.",
21095
21587
  },
21096
21588
  {
21097
21589
  name: "size",
@@ -21220,16 +21712,21 @@ export const docsManifest = {
21220
21712
  name: "size",
21221
21713
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
21222
21714
  required: false,
21715
+ defaultValue: '"base"',
21716
+ description: 'Row height and text size. Use `"xl"` in an icon-collapsible sidebar so the collapsed square centres on the rail.',
21223
21717
  },
21224
21718
  {
21225
21719
  name: "variant",
21226
21720
  type: '"input" | "default" | "outline"',
21227
21721
  required: false,
21722
+ defaultValue: '"input"',
21723
+ description: 'Surface treatment: `"input"` uses the sidebar\'s accent fill on hover and when active, `"default"` the standard accent tint, `"outline"` adds a ring.',
21228
21724
  },
21229
21725
  {
21230
21726
  name: "icon",
21231
21727
  type: "IconComponent",
21232
21728
  required: false,
21729
+ description: "Leading icon component. When the sidebar collapses to the rail it is the only thing shown, unless `collapsedIcon` or `collapsedContent` replaces it.",
21233
21730
  },
21234
21731
  {
21235
21732
  name: "collapsedIcon",
@@ -21247,6 +21744,7 @@ export const docsManifest = {
21247
21744
  name: "suffixIcon",
21248
21745
  type: "IconComponent",
21249
21746
  required: false,
21747
+ description: "Trailing icon component, such as a chevron for a submenu. Replaces the `kbd` hint when both are set, and hides when the sidebar collapses.",
21250
21748
  },
21251
21749
  {
21252
21750
  name: "forceExpanded",
@@ -21258,6 +21756,7 @@ export const docsManifest = {
21258
21756
  name: "kbd",
21259
21757
  type: "string[]",
21260
21758
  required: false,
21759
+ description: 'Keyboard shortcut keys shown as keycaps at the end of the row, one string per key (e.g. `["⌘", "K"]`). Hidden when collapsed or when `suffixIcon` is set.',
21261
21760
  },
21262
21761
  {
21263
21762
  name: "children",
@@ -21334,6 +21833,8 @@ export const docsManifest = {
21334
21833
  name: "variant",
21335
21834
  type: '"input" | "default" | "outline" | null | undefined',
21336
21835
  required: false,
21836
+ defaultValue: '"default"',
21837
+ description: "Surface treatment: `default` tints on hover, `input` uses the input fill, `outline` adds a ring.\nRow style, as on MenuItem.",
21337
21838
  },
21338
21839
  {
21339
21840
  name: "indicator",
@@ -21345,21 +21846,29 @@ export const docsManifest = {
21345
21846
  name: "tone",
21346
21847
  type: '"neutral" | "danger" | null | undefined',
21347
21848
  required: false,
21849
+ defaultValue: '"neutral"',
21850
+ description: "`danger` marks a destructive action with red text and a red hover and active tint.",
21348
21851
  },
21349
21852
  {
21350
21853
  name: "inset",
21351
21854
  type: "boolean | null | undefined",
21352
21855
  required: false,
21856
+ defaultValue: "false",
21857
+ description: "Pads the start so a row with no leading glyph lines up with rows that have an icon, dot or avatar. Switched on automatically when `indicator` is set.",
21353
21858
  },
21354
21859
  {
21355
21860
  name: "radius",
21356
21861
  type: '"rounded" | "square" | "full" | null | undefined',
21357
21862
  required: false,
21863
+ defaultValue: '"full"',
21864
+ description: "Corner shape: `full` is a pill, `rounded` a soft rectangle, `square` has sharp corners.",
21358
21865
  },
21359
21866
  {
21360
21867
  name: "size",
21361
21868
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
21362
21869
  required: false,
21870
+ defaultValue: '"sm"',
21871
+ description: "Row height, padding and text size, on the shared component scale. Match the surrounding menu's `size`.\nRow size, as on MenuItem.",
21363
21872
  },
21364
21873
  {
21365
21874
  name: "loading",
@@ -21615,11 +22124,15 @@ export const docsManifest = {
21615
22124
  name: "tone",
21616
22125
  type: '"neutral" | "brand" | "danger" | null | undefined',
21617
22126
  required: false,
22127
+ defaultValue: '"neutral"',
22128
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
21618
22129
  },
21619
22130
  {
21620
22131
  name: "radius",
21621
22132
  type: '"rounded" | "square" | "full" | null | undefined',
21622
22133
  required: false,
22134
+ defaultValue: '"full"',
22135
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
21623
22136
  },
21624
22137
  {
21625
22138
  name: "size",
@@ -21645,31 +22158,42 @@ export const docsManifest = {
21645
22158
  name: "square",
21646
22159
  type: "boolean | null | undefined",
21647
22160
  required: false,
22161
+ defaultValue: "false",
22162
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
21648
22163
  },
21649
22164
  {
21650
22165
  name: "emphasis",
21651
22166
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
21652
22167
  required: false,
22168
+ defaultValue: '"solid"',
22169
+ description: "Visual weight, paired with `tone`: `solid` and `soft` are filled, `outline` and `ghost` lighter, `transparent` a blurred translucent fill, `link` plain text.\nVisual weight, as on Button.",
21653
22170
  },
21654
22171
  {
21655
22172
  name: "asInput",
21656
22173
  type: "boolean | null | undefined",
21657
22174
  required: false,
22175
+ defaultValue: "false",
22176
+ description: "Style the button as a form field (input background and border), for a trigger that opens a picker.",
21658
22177
  },
21659
22178
  {
21660
22179
  name: "align",
21661
22180
  type: '"center" | "end" | "start" | null | undefined',
21662
22181
  required: false,
22182
+ defaultValue: '"center"',
22183
+ description: "Where the content sits along the button; `start` or `end` only shows on a button wider than its content.",
21663
22184
  },
21664
22185
  {
21665
22186
  name: "pressed",
21666
22187
  type: "boolean | null | undefined",
21667
22188
  required: false,
22189
+ defaultValue: "true",
22190
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
21668
22191
  },
21669
22192
  {
21670
22193
  name: "testId",
21671
22194
  type: "string",
21672
22195
  required: false,
22196
+ description: "Rendered as `data-testid`, for Playwright selectors.",
21673
22197
  },
21674
22198
  {
21675
22199
  name: "suffixIcon",
@@ -22914,6 +23438,7 @@ export const docsManifest = {
22914
23438
  name: "image",
22915
23439
  type: "ReactNode",
22916
23440
  required: false,
23441
+ description: "Picture shown inside the tile, such as an `<img>` of the variant; omit it for a plain `color` tile.",
22917
23442
  },
22918
23443
  {
22919
23444
  name: "label",