@instruments/materia-ui 0.4.5 → 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 (127) hide show
  1. package/agent-docs.md +4 -0
  2. package/dist/components/accordion/accordion-variants.js +1 -0
  3. package/dist/components/alert/alert-root.js +1 -0
  4. package/dist/components/anchor/anchor-root.js +1 -0
  5. package/dist/components/aspect-ratio/aspect-ratio-root.d.ts +7 -3
  6. package/dist/components/aspect-ratio/aspect-ratio-root.js +5 -3
  7. package/dist/components/avatar/avatar-badge.d.ts +1 -1
  8. package/dist/components/avatar/avatar-fallback.d.ts +1 -1
  9. package/dist/components/avatar/avatar-root.d.ts +1 -1
  10. package/dist/components/avatar/avatar-status.d.ts +2 -1
  11. package/dist/components/badge/badge-button.d.ts +1 -0
  12. package/dist/components/badge/badge-button.js +1 -0
  13. package/dist/components/badge/badge-root.d.ts +4 -1
  14. package/dist/components/breadcrumb/breadcrumb-root.d.ts +1 -0
  15. package/dist/components/button/button-variants.js +7 -0
  16. package/dist/components/button-group/button-group-root.js +4 -0
  17. package/dist/components/card/card-root.d.ts +1 -0
  18. package/dist/components/card/card-root.js +1 -0
  19. package/dist/components/checkbox-card/checkbox-card-root.d.ts +1 -1
  20. package/dist/components/checkbox-field/checkbox-field-root.d.ts +4 -1
  21. package/dist/components/context-menu/context-menu-checkbox-item.d.ts +1 -1
  22. package/dist/components/context-menu/context-menu-content.d.ts +1 -1
  23. package/dist/components/context-menu/context-menu-item.d.ts +1 -1
  24. package/dist/components/context-menu/context-menu-radio-item.d.ts +1 -1
  25. package/dist/components/context-menu/context-menu-separator.d.ts +2 -2
  26. package/dist/components/context-menu/context-menu-separator.js +1 -1
  27. package/dist/components/context-menu/context-menu-sub-trigger.d.ts +1 -1
  28. package/dist/components/dot/dot-root.js +1 -0
  29. package/dist/components/drawer/drawer-root.d.ts +1 -0
  30. package/dist/components/dropdown-menu/dropdown-menu-checkbox-item.d.ts +1 -1
  31. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +1 -1
  32. package/dist/components/dropdown-menu/dropdown-menu-item.d.ts +1 -1
  33. package/dist/components/dropdown-menu/dropdown-menu-radio-item.d.ts +1 -1
  34. package/dist/components/dropdown-menu/dropdown-menu-separator.d.ts +2 -2
  35. package/dist/components/dropdown-menu/dropdown-menu-separator.js +1 -1
  36. package/dist/components/dropdown-menu/dropdown-menu-sub-trigger.d.ts +1 -1
  37. package/dist/components/empty/empty-root.js +1 -0
  38. package/dist/components/expand-button/expand-button-root.js +1 -0
  39. package/dist/components/field/field-error.d.ts +1 -0
  40. package/dist/components/field/field-variants.js +1 -0
  41. package/dist/components/icon-box/icon-box-root.js +4 -0
  42. package/dist/components/identified-surface.d.ts +5 -0
  43. package/dist/components/input/input-variants.js +1 -0
  44. package/dist/components/input-card/input-card-root.d.ts +3 -0
  45. package/dist/components/input-group/input-group-button.d.ts +7 -3
  46. package/dist/components/item/item-group.js +1 -0
  47. package/dist/components/item/item-media.d.ts +8 -0
  48. package/dist/components/item/item-media.js +1 -0
  49. package/dist/components/item/item-root.d.ts +1 -0
  50. package/dist/components/item/item-root.js +1 -0
  51. package/dist/components/kbd/kbd-root.js +2 -0
  52. package/dist/components/media-frame/media-frame-root.d.ts +2 -0
  53. package/dist/components/media-frame/media-frame-root.js +2 -0
  54. package/dist/components/menu-item/menu-item-variants.js +5 -0
  55. package/dist/components/menu-parts-types.d.ts +82 -0
  56. package/dist/components/menu-parts-types.js +1 -0
  57. package/dist/components/menu-parts.d.ts +3 -66
  58. package/dist/components/menubar/menubar-checkbox-item.d.ts +1 -1
  59. package/dist/components/menubar/menubar-content.d.ts +1 -1
  60. package/dist/components/menubar/menubar-item.d.ts +1 -1
  61. package/dist/components/menubar/menubar-radio-item.d.ts +1 -1
  62. package/dist/components/menubar/menubar-separator.d.ts +2 -2
  63. package/dist/components/menubar/menubar-separator.js +1 -1
  64. package/dist/components/menubar/menubar-sub-trigger.d.ts +1 -1
  65. package/dist/components/phone-input/phone-input-root.js +2 -0
  66. package/dist/components/pill/pill-root.d.ts +1 -0
  67. package/dist/components/pill/pill-variants.js +3 -0
  68. package/dist/components/popover/popover-root.d.ts +2 -0
  69. package/dist/components/progress/progress-root.d.ts +2 -0
  70. package/dist/components/scroll-frame/scroll-frame-root.d.ts +8 -2
  71. package/dist/components/segmented-control/segmented-control-root.d.ts +8 -2
  72. package/dist/components/select/select-content.d.ts +1 -0
  73. package/dist/components/select/select-trigger.d.ts +9 -1
  74. package/dist/components/select/select-trigger.js +1 -1
  75. package/dist/components/sidepanel/sidepanel-header.d.ts +4 -0
  76. package/dist/components/sub-navigation/sub-navigation-link.d.ts +1 -0
  77. package/dist/components/swatch/swatch-root.d.ts +2 -0
  78. package/dist/components/swatch/swatch-root.js +2 -0
  79. package/dist/components/swatch/swatch-tile.d.ts +2 -1
  80. package/dist/components/swatch/swatch-tile.js +1 -1
  81. package/dist/components/tab-navigation/tab-navigation-link.d.ts +1 -0
  82. package/dist/components/tabs/tabs-panel.d.ts +4 -0
  83. package/dist/components/tabs/tabs-variants.js +4 -0
  84. package/dist/components/thinking-loader/thinking-loader-counter.d.ts +2 -0
  85. package/dist/components/thinking-loader/thinking-loader-icon.d.ts +2 -0
  86. package/dist/components/thinking-loader/thinking-loader-step.d.ts +2 -0
  87. package/dist/components/toggle/toggle-root.js +2 -0
  88. package/dist/components/voice/voice-error-popover.d.ts +2 -0
  89. package/dist/components/voice/voice-pill.d.ts +2 -0
  90. package/dist/compositions/attribute-card.d.ts +1 -0
  91. package/dist/compositions/card-grid/card-grid-rows.d.ts +13 -0
  92. package/dist/compositions/data-grid/data-grid-checkbox.d.ts +8 -0
  93. package/dist/compositions/data-grid/data-grid-expand.d.ts +1 -0
  94. package/dist/compositions/data-grid/data-grid-filterable-header.d.ts +1 -0
  95. package/dist/compositions/data-grid/data-grid-types.d.ts +6 -0
  96. package/dist/compositions/data-grid-column-header/data-grid-column-header-root.d.ts +5 -0
  97. package/dist/compositions/data-grid-table/data-grid-table-body.d.ts +13 -1
  98. package/dist/compositions/data-grid-table/data-grid-table-body.js +1 -1
  99. package/dist/compositions/data-grid-table/data-grid-table-header.d.ts +5 -0
  100. package/dist/compositions/document-list/document-list-icon.d.ts +1 -0
  101. package/dist/compositions/document-list/document-list-root.js +4 -0
  102. package/dist/compositions/editorial-card/editorial-card-content.d.ts +2 -0
  103. package/dist/compositions/file-upload/file-upload-dropzone.d.ts +3 -0
  104. package/dist/compositions/folder-tile/folder-tile-types.d.ts +2 -0
  105. package/dist/compositions/mobile-navigation/mobile-navigation-header.d.ts +5 -2
  106. package/dist/compositions/mobile-navigation/mobile-navigation-header.js +0 -1
  107. package/dist/compositions/mobile-navigation/mobile-navigation-item.d.ts +2 -0
  108. package/dist/compositions/mobile-navigation/mobile-navigation-profile.d.ts +1 -0
  109. package/dist/compositions/mobile-navigation/mobile-navigation-root.d.ts +1 -0
  110. package/dist/compositions/page-toolbar/page-toolbar-applied.d.ts +4 -1
  111. package/dist/compositions/page-toolbar/page-toolbar-sort.d.ts +3 -0
  112. package/dist/compositions/product-card/product-card-content.d.ts +1 -0
  113. package/dist/compositions/product-card/product-card-image-types.d.ts +8 -2
  114. package/dist/compositions/product-card/product-card-provider-types.d.ts +47 -2
  115. package/dist/compositions/product-card/product-card-root.d.ts +3 -0
  116. package/dist/compositions/product-card/product-card-root.js +2 -0
  117. package/dist/compositions/product-card/product-card-swatch.d.ts +2 -0
  118. package/dist/compositions/product-card/product-card-tools-types.d.ts +6 -0
  119. package/dist/compositions/product-specifications-selector/product-specifications-selector.d.ts +14 -0
  120. package/dist/compositions/sidebar/sidebar-group.d.ts +4 -0
  121. package/dist/compositions/sidebar/sidebar-menu-button.d.ts +11 -0
  122. package/dist/compositions/sidebar/sidebar-menu-sub.d.ts +4 -0
  123. package/dist/compositions/sidebar/sidebar-trigger.d.ts +2 -0
  124. package/dist/compositions/variant-selector/variant-selector-item.d.ts +1 -0
  125. package/dist/data/docs-manifest.js +580 -32
  126. package/dist/utils/with-test-id.d.ts +1 -0
  127. package/package.json +2 -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
  },
@@ -458,8 +464,8 @@ export const docsManifest = {
458
464
  name: "ratio",
459
465
  type: "number",
460
466
  required: false,
461
- defaultValue: "16 / 9",
462
- description: "Desired width-to-height ratio, expressed as a single number (width / height).",
467
+ defaultValue: "1",
468
+ description: "Desired width-to-height ratio, expressed as a single number (width / height).\nSquare unless asked: a material is shown at 1:1, and only scenes and\nvideo take a wide ratio.",
463
469
  },
464
470
  ],
465
471
  },
@@ -472,8 +478,16 @@ export const docsManifest = {
472
478
  bestPractices: [
473
479
  "Give it exactly one child and let it fill - set the media to `size-full object-cover`; `AspectRatio` sizes to the available width and derives height from `ratio`.",
474
480
  "Use `as` to change the element (a tag); use `render` only to swap in a component (e.g. a router Link). Never `render={<Box as=…/>}` - pass `as` directly.",
481
+ "Show a material, swatch or sample at the default 1:1 - never landscape. A sample is cut square, and a wide crop reads as room photography; set a wide `ratio` only for a scene, an interior or video.",
482
+ ],
483
+ keywords: [
484
+ "material image",
485
+ "swatch image",
486
+ "sample image",
487
+ "thumbnail",
488
+ "square",
489
+ "image ratio",
475
490
  ],
476
- keywords: [],
477
491
  uses: [],
478
492
  usedBy: [],
479
493
  anatomy: {
@@ -498,6 +512,7 @@ export const docsManifest = {
498
512
  type: "AvatarSize | undefined",
499
513
  required: false,
500
514
  defaultValue: '"base"',
515
+ description: "Avatar width and height, `2xs` (20px) to `6xl` (128px). Inside an `AvatarGroup`, the group's `size` wins.",
501
516
  },
502
517
  {
503
518
  name: "radius",
@@ -566,6 +581,7 @@ export const docsManifest = {
566
581
  type: '"bottom-right" | "top-right" | "bottom-left" | "top-left"',
567
582
  required: false,
568
583
  defaultValue: '"top-right"',
584
+ description: "Which corner of the avatar the badge overlaps.",
569
585
  },
570
586
  {
571
587
  name: "size",
@@ -602,6 +618,7 @@ export const docsManifest = {
602
618
  type: "AvatarSize | undefined",
603
619
  required: false,
604
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.",
605
622
  },
606
623
  {
607
624
  name: "name",
@@ -727,6 +744,7 @@ export const docsManifest = {
727
744
  type: '"bottom-right" | "top-right" | "bottom-left" | "top-left"',
728
745
  required: false,
729
746
  defaultValue: '"bottom-right"',
747
+ description: "Which corner of the avatar the dot sits in.",
730
748
  },
731
749
  {
732
750
  name: "size",
@@ -738,6 +756,7 @@ export const docsManifest = {
738
756
  name: "status",
739
757
  type: "AvatarStatusType",
740
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.",
741
760
  },
742
761
  {
743
762
  name: "withBorder",
@@ -792,6 +811,7 @@ export const docsManifest = {
792
811
  name: "disabled",
793
812
  type: "boolean",
794
813
  required: false,
814
+ description: "Dims the badge to half opacity and stops it receiving pointer events.",
795
815
  },
796
816
  {
797
817
  name: "focused",
@@ -809,12 +829,14 @@ export const docsManifest = {
809
829
  name: "icon",
810
830
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
811
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`.",
812
833
  },
813
834
  {
814
835
  name: "iconPlacement",
815
836
  type: '"end" | "start"',
816
837
  required: false,
817
838
  defaultValue: '"start"',
839
+ description: "Which side of the text `icon` sits on.",
818
840
  },
819
841
  {
820
842
  name: "label",
@@ -838,6 +860,7 @@ export const docsManifest = {
838
860
  name: "testid",
839
861
  type: "string",
840
862
  required: false,
863
+ description: "Sets `data-testid` on the badge. Lower-case `testid`, unlike the `testId` prop on other components.",
841
864
  },
842
865
  {
843
866
  name: "value",
@@ -869,16 +892,22 @@ export const docsManifest = {
869
892
  name: "tone",
870
893
  type: '"neutral" | "brand" | "danger" | "warning" | "success" | "info" | null | undefined',
871
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.",
872
897
  },
873
898
  {
874
899
  name: "radius",
875
900
  type: '"rounded" | "square" | "full" | null | undefined',
876
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.",
877
904
  },
878
905
  {
879
906
  name: "emphasis",
880
907
  type: '"outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
881
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.",
882
911
  },
883
912
  {
884
913
  name: "asInput",
@@ -896,11 +925,14 @@ export const docsManifest = {
896
925
  name: "icon",
897
926
  type: "React.ReactNode",
898
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`.",
899
929
  },
900
930
  {
901
931
  name: "variant",
902
932
  type: '"default" | null | undefined',
903
933
  required: false,
934
+ defaultValue: '"default"',
935
+ description: "Button style; `default` is the only one, so leave it unset.",
904
936
  },
905
937
  ],
906
938
  },
@@ -1099,6 +1131,7 @@ export const docsManifest = {
1099
1131
  name: "separator",
1100
1132
  type: "React.ReactNode",
1101
1133
  required: false,
1134
+ description: "Not used by `Breadcrumb`: set the divider by passing children to each `BreadcrumbSeparator` instead.",
1102
1135
  },
1103
1136
  ],
1104
1137
  },
@@ -1203,36 +1236,50 @@ export const docsManifest = {
1203
1236
  name: "tone",
1204
1237
  type: '"neutral" | "brand" | "danger" | null | undefined',
1205
1238
  required: false,
1239
+ defaultValue: '"neutral"',
1240
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
1206
1241
  },
1207
1242
  {
1208
1243
  name: "radius",
1209
1244
  type: '"rounded" | "square" | "full" | null | undefined',
1210
1245
  required: false,
1246
+ defaultValue: '"full"',
1247
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
1211
1248
  },
1212
1249
  {
1213
1250
  name: "square",
1214
1251
  type: "boolean | null | undefined",
1215
1252
  required: false,
1253
+ defaultValue: "false",
1254
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
1216
1255
  },
1217
1256
  {
1218
1257
  name: "emphasis",
1219
1258
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
1220
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.",
1221
1262
  },
1222
1263
  {
1223
1264
  name: "asInput",
1224
1265
  type: "boolean | null | undefined",
1225
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.",
1226
1269
  },
1227
1270
  {
1228
1271
  name: "align",
1229
1272
  type: '"center" | "end" | "start" | null | undefined',
1230
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.",
1231
1276
  },
1232
1277
  {
1233
1278
  name: "pressed",
1234
1279
  type: "boolean | null | undefined",
1235
1280
  required: false,
1281
+ defaultValue: "true",
1282
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
1236
1283
  },
1237
1284
  {
1238
1285
  name: "size",
@@ -1320,6 +1367,7 @@ export const docsManifest = {
1320
1367
  name: "testId",
1321
1368
  type: "string",
1322
1369
  required: false,
1370
+ description: "Rendered as `data-testid`, for Playwright selectors.",
1323
1371
  },
1324
1372
  ],
1325
1373
  },
@@ -1418,21 +1466,28 @@ export const docsManifest = {
1418
1466
  name: "orientation",
1419
1467
  type: '"horizontal" | "vertical" | null | undefined',
1420
1468
  required: false,
1469
+ defaultValue: '"horizontal"',
1470
+ description: "Direction the children are laid out: `horizontal` in a row, `vertical` in a column.",
1421
1471
  },
1422
1472
  {
1423
1473
  name: "variant",
1424
1474
  type: '"segmented" | "joined" | null | undefined',
1425
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.",
1426
1478
  },
1427
1479
  {
1428
1480
  name: "radius",
1429
1481
  type: '"rounded" | "square" | "full" | null | undefined',
1430
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.",
1431
1485
  },
1432
1486
  {
1433
1487
  name: "dividers",
1434
1488
  type: "boolean | null | undefined",
1435
1489
  required: false,
1490
+ description: "Draw a line between children. Defaults on for the `segmented` variant and off for `joined`.",
1436
1491
  },
1437
1492
  ],
1438
1493
  },
@@ -1510,6 +1565,8 @@ export const docsManifest = {
1510
1565
  name: "border",
1511
1566
  type: "BorderStyle",
1512
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.",
1513
1570
  },
1514
1571
  {
1515
1572
  name: "inset",
@@ -1535,11 +1592,14 @@ export const docsManifest = {
1535
1592
  name: "testId",
1536
1593
  type: "string",
1537
1594
  required: false,
1595
+ description: "Rendered as `data-testid`, for Playwright selectors.",
1538
1596
  },
1539
1597
  {
1540
1598
  name: "variant",
1541
1599
  type: '"muted" | "ghost" | "accent" | "card" | null | undefined',
1542
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.",
1543
1603
  },
1544
1604
  ],
1545
1605
  },
@@ -2191,6 +2251,7 @@ export const docsManifest = {
2191
2251
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
2192
2252
  required: false,
2193
2253
  defaultValue: '"base"',
2254
+ description: "Padding, corner radius and icon size of every card in the group; items read it from context.",
2194
2255
  },
2195
2256
  ],
2196
2257
  },
@@ -2289,21 +2350,25 @@ export const docsManifest = {
2289
2350
  type: '"xs" | "sm"',
2290
2351
  required: false,
2291
2352
  defaultValue: '"xs"',
2353
+ description: "Checkbox size; only `xs` and `sm` are allowed.",
2292
2354
  },
2293
2355
  {
2294
2356
  name: "checkboxClassName",
2295
2357
  type: "string",
2296
2358
  required: false,
2359
+ description: "Extra classes for the checkbox itself; `className` styles the outer field row.",
2297
2360
  },
2298
2361
  {
2299
2362
  name: "labelClassName",
2300
2363
  type: "string",
2301
2364
  required: false,
2365
+ description: "Extra classes for the label text.",
2302
2366
  },
2303
2367
  {
2304
2368
  name: "descriptionClassName",
2305
2369
  type: "string",
2306
2370
  required: false,
2371
+ description: "Extra classes for the description text; only applied when `description` is set.",
2307
2372
  },
2308
2373
  ],
2309
2374
  },
@@ -2931,7 +2996,7 @@ export const docsManifest = {
2931
2996
  },
2932
2997
  {
2933
2998
  name: "render",
2934
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
2999
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
2935
3000
  required: false,
2936
3001
  description: "Replace the default `<button>` row; glyph props render inside it, around `children`.",
2937
3002
  },
@@ -2956,6 +3021,8 @@ export const docsManifest = {
2956
3021
  name: "size",
2957
3022
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
2958
3023
  required: false,
3024
+ defaultValue: '"sm"',
3025
+ description: "Size of every item, label and shortcut inside, which read it from context. Submenus inherit it.",
2959
3026
  },
2960
3027
  {
2961
3028
  name: "itemRadius",
@@ -3001,16 +3068,20 @@ export const docsManifest = {
3001
3068
  name: "inset",
3002
3069
  type: "boolean",
3003
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.",
3004
3072
  },
3005
3073
  {
3006
3074
  name: "tone",
3007
3075
  type: '"neutral" | "danger"',
3008
3076
  required: false,
3077
+ defaultValue: '"neutral"',
3078
+ description: "`danger` marks a destructive action with red text and a red highlight.",
3009
3079
  },
3010
3080
  {
3011
3081
  name: "avatar",
3012
3082
  type: "React.ReactNode",
3013
3083
  required: false,
3084
+ description: "Custom leading element, such as an `Avatar`. Takes precedence over `dot` and `icon`.",
3014
3085
  },
3015
3086
  {
3016
3087
  name: "dot",
@@ -3022,21 +3093,25 @@ export const docsManifest = {
3022
3093
  name: "icon",
3023
3094
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
3024
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.",
3025
3097
  },
3026
3098
  {
3027
3099
  name: "suffixIcon",
3028
3100
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
3029
3101
  required: false,
3102
+ description: "Trailing icon, passed as a component. Replaces `kbd` when both are set.",
3030
3103
  },
3031
3104
  {
3032
3105
  name: "kbd",
3033
3106
  type: "string[]",
3034
3107
  required: false,
3108
+ description: 'Keyboard shortcut keys shown as keycaps at the end, for example `["⌘", "C"]`. Ignored when `suffixIcon` is set.',
3035
3109
  },
3036
3110
  {
3037
3111
  name: "suffix",
3038
3112
  type: "React.ReactNode",
3039
3113
  required: false,
3114
+ description: "Custom trailing content, rendered after `suffixIcon` or `kbd`.",
3040
3115
  },
3041
3116
  {
3042
3117
  name: "active",
@@ -3052,7 +3127,7 @@ export const docsManifest = {
3052
3127
  },
3053
3128
  {
3054
3129
  name: "render",
3055
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
3130
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
3056
3131
  required: false,
3057
3132
  description: "Replace the default `<button>` row (e.g. with a link); glyph props render inside it, around `children`.",
3058
3133
  },
@@ -3077,6 +3152,7 @@ export const docsManifest = {
3077
3152
  name: "inset",
3078
3153
  type: "boolean",
3079
3154
  required: false,
3155
+ description: "Pads the start so the label lines up with items that have a leading icon.",
3080
3156
  },
3081
3157
  ],
3082
3158
  },
@@ -3101,7 +3177,7 @@ export const docsManifest = {
3101
3177
  },
3102
3178
  {
3103
3179
  name: "render",
3104
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
3180
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
3105
3181
  required: false,
3106
3182
  description: "Replace the default `<button>` row; glyph props render inside it, around `children`.",
3107
3183
  },
@@ -3126,6 +3202,8 @@ export const docsManifest = {
3126
3202
  name: "spacing",
3127
3203
  type: '"default" | "compact"',
3128
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.",
3129
3207
  },
3130
3208
  ],
3131
3209
  },
@@ -3152,6 +3230,7 @@ export const docsManifest = {
3152
3230
  name: "size",
3153
3231
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
3154
3232
  required: false,
3233
+ description: "Item size for this submenu only. Omit to inherit the parent menu's `size`.",
3155
3234
  },
3156
3235
  ],
3157
3236
  },
@@ -3166,7 +3245,7 @@ export const docsManifest = {
3166
3245
  },
3167
3246
  {
3168
3247
  name: "render",
3169
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
3248
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
3170
3249
  required: false,
3171
3250
  description: "Replace the default `<button>` row; glyph props render inside it, around `children`.",
3172
3251
  },
@@ -3180,11 +3259,13 @@ export const docsManifest = {
3180
3259
  name: "inset",
3181
3260
  type: "boolean",
3182
3261
  required: false,
3262
+ description: "Pads the start so a row with no leading icon lines up with rows that have one.",
3183
3263
  },
3184
3264
  {
3185
3265
  name: "icon",
3186
3266
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
3187
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.",
3188
3269
  },
3189
3270
  ],
3190
3271
  },
@@ -3682,6 +3763,8 @@ export const docsManifest = {
3682
3763
  name: "tone",
3683
3764
  type: '"neutral" | "brand" | "danger" | "warning" | "success" | "info" | null | undefined',
3684
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.",
3685
3768
  },
3686
3769
  ],
3687
3770
  },
@@ -3799,6 +3882,7 @@ export const docsManifest = {
3799
3882
  name: "container",
3800
3883
  type: "HTMLElement | null",
3801
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.",
3802
3886
  },
3803
3887
  ],
3804
3888
  },
@@ -3922,7 +4006,7 @@ export const docsManifest = {
3922
4006
  },
3923
4007
  {
3924
4008
  name: "render",
3925
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
4009
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
3926
4010
  required: false,
3927
4011
  description: "Replace the default `<button>` row; glyph props render inside it, around `children`.",
3928
4012
  },
@@ -3947,6 +4031,8 @@ export const docsManifest = {
3947
4031
  name: "size",
3948
4032
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
3949
4033
  required: false,
4034
+ defaultValue: '"sm"',
4035
+ description: "Size of every item, label and shortcut inside, which read it from context. Submenus inherit it.",
3950
4036
  },
3951
4037
  {
3952
4038
  name: "itemRadius",
@@ -3992,16 +4078,20 @@ export const docsManifest = {
3992
4078
  name: "inset",
3993
4079
  type: "boolean",
3994
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.",
3995
4082
  },
3996
4083
  {
3997
4084
  name: "tone",
3998
4085
  type: '"neutral" | "danger"',
3999
4086
  required: false,
4087
+ defaultValue: '"neutral"',
4088
+ description: "`danger` marks a destructive action with red text and a red highlight.",
4000
4089
  },
4001
4090
  {
4002
4091
  name: "avatar",
4003
4092
  type: "React.ReactNode",
4004
4093
  required: false,
4094
+ description: "Custom leading element, such as an `Avatar`. Takes precedence over `dot` and `icon`.",
4005
4095
  },
4006
4096
  {
4007
4097
  name: "dot",
@@ -4013,21 +4103,25 @@ export const docsManifest = {
4013
4103
  name: "icon",
4014
4104
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
4015
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.",
4016
4107
  },
4017
4108
  {
4018
4109
  name: "suffixIcon",
4019
4110
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
4020
4111
  required: false,
4112
+ description: "Trailing icon, passed as a component. Replaces `kbd` when both are set.",
4021
4113
  },
4022
4114
  {
4023
4115
  name: "kbd",
4024
4116
  type: "string[]",
4025
4117
  required: false,
4118
+ description: 'Keyboard shortcut keys shown as keycaps at the end, for example `["⌘", "C"]`. Ignored when `suffixIcon` is set.',
4026
4119
  },
4027
4120
  {
4028
4121
  name: "suffix",
4029
4122
  type: "React.ReactNode",
4030
4123
  required: false,
4124
+ description: "Custom trailing content, rendered after `suffixIcon` or `kbd`.",
4031
4125
  },
4032
4126
  {
4033
4127
  name: "active",
@@ -4043,7 +4137,7 @@ export const docsManifest = {
4043
4137
  },
4044
4138
  {
4045
4139
  name: "render",
4046
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
4140
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
4047
4141
  required: false,
4048
4142
  description: "Replace the default `<button>` row (e.g. with a link); glyph props render inside it, around `children`.",
4049
4143
  },
@@ -4068,6 +4162,7 @@ export const docsManifest = {
4068
4162
  name: "inset",
4069
4163
  type: "boolean",
4070
4164
  required: false,
4165
+ description: "Pads the start so the label lines up with items that have a leading icon.",
4071
4166
  },
4072
4167
  ],
4073
4168
  },
@@ -4092,7 +4187,7 @@ export const docsManifest = {
4092
4187
  },
4093
4188
  {
4094
4189
  name: "render",
4095
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
4190
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
4096
4191
  required: false,
4097
4192
  description: "Replace the default `<button>` row; glyph props render inside it, around `children`.",
4098
4193
  },
@@ -4117,6 +4212,8 @@ export const docsManifest = {
4117
4212
  name: "spacing",
4118
4213
  type: '"default" | "compact"',
4119
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.",
4120
4217
  },
4121
4218
  ],
4122
4219
  },
@@ -4143,6 +4240,7 @@ export const docsManifest = {
4143
4240
  name: "size",
4144
4241
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
4145
4242
  required: false,
4243
+ description: "Item size for this submenu only. Omit to inherit the parent menu's `size`.",
4146
4244
  },
4147
4245
  ],
4148
4246
  },
@@ -4157,7 +4255,7 @@ export const docsManifest = {
4157
4255
  },
4158
4256
  {
4159
4257
  name: "render",
4160
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
4258
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
4161
4259
  required: false,
4162
4260
  description: "Replace the default `<button>` row; glyph props render inside it, around `children`.",
4163
4261
  },
@@ -4171,11 +4269,13 @@ export const docsManifest = {
4171
4269
  name: "inset",
4172
4270
  type: "boolean",
4173
4271
  required: false,
4272
+ description: "Pads the start so a row with no leading icon lines up with rows that have one.",
4174
4273
  },
4175
4274
  {
4176
4275
  name: "icon",
4177
4276
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
4178
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.",
4179
4279
  },
4180
4280
  ],
4181
4281
  },
@@ -4351,6 +4451,8 @@ export const docsManifest = {
4351
4451
  name: "size",
4352
4452
  type: '"base" | "sm" | "lg" | null | undefined',
4353
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.",
4354
4456
  },
4355
4457
  ],
4356
4458
  },
@@ -4497,6 +4599,8 @@ export const docsManifest = {
4497
4599
  name: "size",
4498
4600
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
4499
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.",
4500
4604
  },
4501
4605
  {
4502
4606
  name: "expanded",
@@ -4682,6 +4786,8 @@ export const docsManifest = {
4682
4786
  name: "orientation",
4683
4787
  type: '"horizontal" | "vertical" | "responsive" | null | undefined',
4684
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).",
4685
4791
  },
4686
4792
  {
4687
4793
  name: "className",
@@ -4720,6 +4826,7 @@ export const docsManifest = {
4720
4826
  name: "errors",
4721
4827
  type: "({ message?: string; } | undefined)[]",
4722
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.",
4723
4830
  },
4724
4831
  ],
4725
4832
  },
@@ -5581,21 +5688,29 @@ export const docsManifest = {
5581
5688
  name: "tone",
5582
5689
  type: '"neutral" | "brand" | "danger" | "warning" | "success" | "info" | null | undefined',
5583
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.",
5584
5693
  },
5585
5694
  {
5586
5695
  name: "radius",
5587
5696
  type: '"rounded" | "square" | "full" | null | undefined',
5588
5697
  required: false,
5698
+ defaultValue: '"rounded"',
5699
+ description: "Corner shape: `rounded` scales with `size`, `square` has sharp corners, `full` is a circle.",
5589
5700
  },
5590
5701
  {
5591
5702
  name: "size",
5592
5703
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
5593
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.",
5594
5707
  },
5595
5708
  {
5596
5709
  name: "emphasis",
5597
5710
  type: '"outline" | "solid" | "ghost" | "soft" | null | undefined',
5598
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.",
5599
5714
  },
5600
5715
  ],
5601
5716
  },
@@ -5647,6 +5762,7 @@ export const docsManifest = {
5647
5762
  name: "testId",
5648
5763
  type: "string",
5649
5764
  required: false,
5765
+ description: "Rendered as `data-testid`, for Playwright selectors.",
5650
5766
  },
5651
5767
  ],
5652
5768
  },
@@ -5767,16 +5883,21 @@ export const docsManifest = {
5767
5883
  name: "label",
5768
5884
  type: "string",
5769
5885
  required: true,
5886
+ description: "Name of the identified object, shown in the label pill. The label appears only while `highlighted` or `active`.",
5770
5887
  },
5771
5888
  {
5772
5889
  name: "labelAlign",
5773
5890
  type: '"center" | "end" | "start"',
5774
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.",
5775
5894
  },
5776
5895
  {
5777
5896
  name: "labelPlacement",
5778
5897
  type: '"above" | "below"',
5779
5898
  required: false,
5899
+ defaultValue: '"above"',
5900
+ description: "Whether the label sits above or below the frame.",
5780
5901
  },
5781
5902
  {
5782
5903
  name: "persistentFrame",
@@ -5788,11 +5909,13 @@ export const docsManifest = {
5788
5909
  name: "secondaryLabel",
5789
5910
  type: "string | undefined",
5790
5911
  required: false,
5912
+ description: "Smaller grey text after `label`, such as a code or category; truncated to a short width.",
5791
5913
  },
5792
5914
  {
5793
5915
  name: "thumbnailUrl",
5794
5916
  type: "string | null | undefined",
5795
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.",
5796
5919
  },
5797
5920
  ],
5798
5921
  },
@@ -5825,11 +5948,14 @@ export const docsManifest = {
5825
5948
  name: "testId",
5826
5949
  type: "string",
5827
5950
  required: false,
5951
+ description: "Rendered as `data-testid`, for Playwright selectors.",
5828
5952
  },
5829
5953
  {
5830
5954
  name: "radius",
5831
5955
  type: '"rounded" | "square" | "full" | null | undefined',
5832
5956
  required: false,
5957
+ defaultValue: '"rounded"',
5958
+ description: "Corner shape: `rounded` is the standard 8px radius, `square` has sharp corners, `full` is a pill.",
5833
5959
  },
5834
5960
  {
5835
5961
  name: "size",
@@ -5937,16 +6063,19 @@ export const docsManifest = {
5937
6063
  name: "icon",
5938
6064
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
5939
6065
  required: true,
6066
+ description: "Icon component (not an element) to draw.",
5940
6067
  },
5941
6068
  {
5942
6069
  name: "selected",
5943
6070
  type: "boolean",
5944
6071
  required: false,
6072
+ description: "Tints the icon with the primary colour instead of muted.",
5945
6073
  },
5946
6074
  {
5947
6075
  name: "size",
5948
6076
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
5949
6077
  required: true,
6078
+ description: "Size of the parent card, not of the icon: the icon renders smaller than the card (`xs` at `base`).",
5950
6079
  },
5951
6080
  ],
5952
6081
  },
@@ -6065,12 +6194,15 @@ export const docsManifest = {
6065
6194
  name: "tone",
6066
6195
  type: '"neutral" | "brand" | "danger"',
6067
6196
  required: false,
6068
- 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.",
6069
6199
  },
6070
6200
  {
6071
6201
  name: "radius",
6072
6202
  type: '"rounded" | "square" | "full" | null | undefined',
6073
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.",
6074
6206
  },
6075
6207
  {
6076
6208
  name: "dot",
@@ -6089,6 +6221,8 @@ export const docsManifest = {
6089
6221
  name: "square",
6090
6222
  type: "boolean | null | undefined",
6091
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.",
6092
6226
  },
6093
6227
  {
6094
6228
  name: "icon",
@@ -6100,27 +6234,35 @@ export const docsManifest = {
6100
6234
  name: "emphasis",
6101
6235
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent"',
6102
6236
  required: false,
6103
- 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.",
6104
6239
  },
6105
6240
  {
6106
6241
  name: "asInput",
6107
6242
  type: "boolean | null | undefined",
6108
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.",
6109
6246
  },
6110
6247
  {
6111
6248
  name: "align",
6112
6249
  type: '"center" | "end" | "start" | null | undefined',
6113
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.",
6114
6253
  },
6115
6254
  {
6116
6255
  name: "pressed",
6117
6256
  type: "boolean | null | undefined",
6118
6257
  required: false,
6258
+ defaultValue: "true",
6259
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
6119
6260
  },
6120
6261
  {
6121
6262
  name: "testId",
6122
6263
  type: "string",
6123
6264
  required: false,
6265
+ description: "Rendered as `data-testid`, for Playwright selectors.",
6124
6266
  },
6125
6267
  {
6126
6268
  name: "suffixIcon",
@@ -6340,11 +6482,15 @@ export const docsManifest = {
6340
6482
  name: "size",
6341
6483
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
6342
6484
  required: false,
6485
+ defaultValue: '"base"',
6486
+ description: "Padding and gap between the item's parts, `2xs` (tightest) to `3xl` (roomiest).",
6343
6487
  },
6344
6488
  {
6345
6489
  name: "variant",
6346
6490
  type: '"default" | "outline" | "muted" | "card" | null | undefined',
6347
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.",
6348
6494
  },
6349
6495
  ],
6350
6496
  },
@@ -6388,6 +6534,8 @@ export const docsManifest = {
6388
6534
  name: "variant",
6389
6535
  type: '"divided" | "separated" | "grouped" | null | undefined',
6390
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.",
6391
6539
  },
6392
6540
  ],
6393
6541
  },
@@ -6414,27 +6562,35 @@ export const docsManifest = {
6414
6562
  name: "tone",
6415
6563
  type: '"neutral" | "brand" | "danger" | "warning" | "success" | "info" | null | undefined',
6416
6564
  required: false,
6565
+ defaultValue: '"neutral"',
6566
+ description: "Has no effect: the `icon` variant always renders a `neutral` icon box.",
6417
6567
  },
6418
6568
  {
6419
6569
  name: "radius",
6420
6570
  type: '"rounded" | "square" | "full" | null | undefined',
6421
6571
  required: false,
6572
+ defaultValue: '"rounded"',
6573
+ description: "Has no effect: the `icon` variant always renders the default icon box corners.",
6422
6574
  },
6423
6575
  {
6424
6576
  name: "size",
6425
6577
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
6426
6578
  required: false,
6579
+ defaultValue: '"base"',
6580
+ description: "Has no effect: the `icon` variant always renders a `sm` (32px) icon box.",
6427
6581
  },
6428
6582
  {
6429
- name: "icon",
6430
- type: 'import("../../tokens/icon-component").IconComponent',
6583
+ name: "emphasis",
6584
+ type: '"outline" | "solid" | "ghost" | "soft" | null | undefined',
6431
6585
  required: false,
6432
- 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.",
6433
6588
  },
6434
6589
  {
6435
- name: "emphasis",
6436
- type: '"outline" | "solid" | "ghost" | "soft" | null | undefined',
6590
+ name: "icon",
6591
+ type: 'import("../../tokens/icon-component").IconComponent',
6437
6592
  required: false,
6593
+ description: "Icon component from lucide-react or any SVG React component.",
6438
6594
  },
6439
6595
  {
6440
6596
  name: "iconSize",
@@ -6452,6 +6608,8 @@ export const docsManifest = {
6452
6608
  name: "variant",
6453
6609
  type: '"image" | "default" | "icon" | null | undefined',
6454
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.",
6455
6613
  },
6456
6614
  ],
6457
6615
  },
@@ -6553,11 +6711,15 @@ export const docsManifest = {
6553
6711
  name: "tone",
6554
6712
  type: '"neutral" | "brand" | "danger" | null | undefined',
6555
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"`.',
6556
6716
  },
6557
6717
  {
6558
6718
  name: "emphasis",
6559
6719
  type: '"outline" | "solid" | "ghost" | "soft" | null | undefined',
6560
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.",
6561
6723
  },
6562
6724
  {
6563
6725
  name: "size",
@@ -6722,6 +6884,7 @@ export const docsManifest = {
6722
6884
  name: "testId",
6723
6885
  type: "string",
6724
6886
  required: false,
6887
+ description: "Rendered as `data-testid`, for Playwright selectors.",
6725
6888
  },
6726
6889
  ],
6727
6890
  },
@@ -6957,8 +7120,9 @@ export const docsManifest = {
6957
7120
  "Use `as` to change the element (a tag); use `render` only to swap in a component (e.g. a router Link). Never `render={<Box as=…/>}` - pass `as` directly.",
6958
7121
  "Set `edge` to frame photography with an inset hairline that stays above the media; do not fake it with a border or an inset shadow on the frame, which the media hides.",
6959
7122
  "Reach for `raised` only when the frame sits on the same fill as its surface; in a dense row the edge already separates it.",
7123
+ "Frame a material, swatch or sample square: give the frame `aspect-square` (or wrap it in `AspectRatio`, which defaults to 1:1). Never crop a material landscape.",
6960
7124
  ],
6961
- keywords: [],
7125
+ keywords: ["material image", "product image", "photo frame", "thumbnail"],
6962
7126
  uses: [],
6963
7127
  usedBy: ["editorial-card", "product-card"],
6964
7128
  },
@@ -7007,26 +7171,36 @@ export const docsManifest = {
7007
7171
  name: "variant",
7008
7172
  type: '"input" | "default" | "outline" | null | undefined',
7009
7173
  required: false,
7174
+ defaultValue: '"default"',
7175
+ description: "Surface treatment: `default` tints on hover, `input` uses the input fill, `outline` adds a ring.",
7010
7176
  },
7011
7177
  {
7012
7178
  name: "tone",
7013
7179
  type: '"neutral" | "danger" | null | undefined',
7014
7180
  required: false,
7181
+ defaultValue: '"neutral"',
7182
+ description: "`danger` marks a destructive action with red text and a red hover and active tint.",
7015
7183
  },
7016
7184
  {
7017
7185
  name: "inset",
7018
7186
  type: "boolean | null | undefined",
7019
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.",
7020
7190
  },
7021
7191
  {
7022
7192
  name: "radius",
7023
7193
  type: '"rounded" | "square" | "full" | null | undefined',
7024
7194
  required: false,
7195
+ defaultValue: '"full"',
7196
+ description: "Corner shape: `full` is a pill, `rounded` a soft rectangle, `square` has sharp corners.",
7025
7197
  },
7026
7198
  {
7027
7199
  name: "size",
7028
7200
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
7029
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`.",
7030
7204
  },
7031
7205
  {
7032
7206
  name: "render",
@@ -7194,7 +7368,7 @@ export const docsManifest = {
7194
7368
  },
7195
7369
  {
7196
7370
  name: "render",
7197
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
7371
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
7198
7372
  required: false,
7199
7373
  description: "Replace the default `<button>` row; glyph props render inside it, around `children`.",
7200
7374
  },
@@ -7219,6 +7393,8 @@ export const docsManifest = {
7219
7393
  name: "size",
7220
7394
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
7221
7395
  required: false,
7396
+ defaultValue: '"sm"',
7397
+ description: "Size of every item, label and shortcut inside, which read it from context. Submenus inherit it.",
7222
7398
  },
7223
7399
  {
7224
7400
  name: "itemRadius",
@@ -7264,16 +7440,20 @@ export const docsManifest = {
7264
7440
  name: "inset",
7265
7441
  type: "boolean",
7266
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.",
7267
7444
  },
7268
7445
  {
7269
7446
  name: "tone",
7270
7447
  type: '"neutral" | "danger"',
7271
7448
  required: false,
7449
+ defaultValue: '"neutral"',
7450
+ description: "`danger` marks a destructive action with red text and a red highlight.",
7272
7451
  },
7273
7452
  {
7274
7453
  name: "avatar",
7275
7454
  type: "React.ReactNode",
7276
7455
  required: false,
7456
+ description: "Custom leading element, such as an `Avatar`. Takes precedence over `dot` and `icon`.",
7277
7457
  },
7278
7458
  {
7279
7459
  name: "dot",
@@ -7285,21 +7465,25 @@ export const docsManifest = {
7285
7465
  name: "icon",
7286
7466
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
7287
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.",
7288
7469
  },
7289
7470
  {
7290
7471
  name: "suffixIcon",
7291
7472
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
7292
7473
  required: false,
7474
+ description: "Trailing icon, passed as a component. Replaces `kbd` when both are set.",
7293
7475
  },
7294
7476
  {
7295
7477
  name: "kbd",
7296
7478
  type: "string[]",
7297
7479
  required: false,
7480
+ description: 'Keyboard shortcut keys shown as keycaps at the end, for example `["⌘", "C"]`. Ignored when `suffixIcon` is set.',
7298
7481
  },
7299
7482
  {
7300
7483
  name: "suffix",
7301
7484
  type: "React.ReactNode",
7302
7485
  required: false,
7486
+ description: "Custom trailing content, rendered after `suffixIcon` or `kbd`.",
7303
7487
  },
7304
7488
  {
7305
7489
  name: "active",
@@ -7315,7 +7499,7 @@ export const docsManifest = {
7315
7499
  },
7316
7500
  {
7317
7501
  name: "render",
7318
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
7502
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
7319
7503
  required: false,
7320
7504
  description: "Replace the default `<button>` row (e.g. with a link); glyph props render inside it, around `children`.",
7321
7505
  },
@@ -7340,6 +7524,7 @@ export const docsManifest = {
7340
7524
  name: "inset",
7341
7525
  type: "boolean",
7342
7526
  required: false,
7527
+ description: "Pads the start so the label lines up with items that have a leading icon.",
7343
7528
  },
7344
7529
  ],
7345
7530
  },
@@ -7369,7 +7554,7 @@ export const docsManifest = {
7369
7554
  },
7370
7555
  {
7371
7556
  name: "render",
7372
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
7557
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
7373
7558
  required: false,
7374
7559
  description: "Replace the default `<button>` row; glyph props render inside it, around `children`.",
7375
7560
  },
@@ -7394,6 +7579,8 @@ export const docsManifest = {
7394
7579
  name: "spacing",
7395
7580
  type: '"default" | "compact"',
7396
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.",
7397
7584
  },
7398
7585
  ],
7399
7586
  },
@@ -7420,6 +7607,7 @@ export const docsManifest = {
7420
7607
  name: "size",
7421
7608
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
7422
7609
  required: false,
7610
+ description: "Item size for this submenu only. Omit to inherit the parent menu's `size`.",
7423
7611
  },
7424
7612
  ],
7425
7613
  },
@@ -7434,7 +7622,7 @@ export const docsManifest = {
7434
7622
  },
7435
7623
  {
7436
7624
  name: "render",
7437
- type: "useRender.RenderProp<Record<string, unknown>> | undefined",
7625
+ type: 'import("@base-ui/react").useRender.RenderProp<Record<string, unknown>> | undefined',
7438
7626
  required: false,
7439
7627
  description: "Replace the default `<button>` row; glyph props render inside it, around `children`.",
7440
7628
  },
@@ -7448,11 +7636,13 @@ export const docsManifest = {
7448
7636
  name: "inset",
7449
7637
  type: "boolean",
7450
7638
  required: false,
7639
+ description: "Pads the start so a row with no leading icon lines up with rows that have one.",
7451
7640
  },
7452
7641
  {
7453
7642
  name: "icon",
7454
7643
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
7455
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.",
7456
7646
  },
7457
7647
  ],
7458
7648
  },
@@ -8133,11 +8323,15 @@ export const docsManifest = {
8133
8323
  name: "radius",
8134
8324
  type: '"rounded" | "full" | null | undefined',
8135
8325
  required: false,
8326
+ defaultValue: '"rounded"',
8327
+ description: "Corner shape: `rounded` for a soft rectangle, `full` for a capsule.",
8136
8328
  },
8137
8329
  {
8138
8330
  name: "size",
8139
8331
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
8140
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.",
8141
8335
  },
8142
8336
  {
8143
8337
  name: "value",
@@ -8185,6 +8379,7 @@ export const docsManifest = {
8185
8379
  name: "testId",
8186
8380
  type: "string",
8187
8381
  required: false,
8382
+ description: "Rendered as `data-testid`, for Playwright selectors.",
8188
8383
  },
8189
8384
  ],
8190
8385
  },
@@ -8225,6 +8420,7 @@ export const docsManifest = {
8225
8420
  name: "disabled",
8226
8421
  type: "boolean",
8227
8422
  required: false,
8423
+ description: "Dims the pill and blocks pointer events. Styling only: no `disabled` attribute reaches the element.",
8228
8424
  },
8229
8425
  {
8230
8426
  name: "render",
@@ -8249,16 +8445,22 @@ export const docsManifest = {
8249
8445
  name: "tone",
8250
8446
  type: '"neutral" | "brand" | "danger" | "warning" | "success" | "info" | null | undefined',
8251
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.",
8252
8450
  },
8253
8451
  {
8254
8452
  name: "radius",
8255
8453
  type: '"rounded" | "square" | "full" | null | undefined',
8256
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.",
8257
8457
  },
8258
8458
  {
8259
8459
  name: "emphasis",
8260
8460
  type: '"outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
8261
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.",
8262
8464
  },
8263
8465
  {
8264
8466
  name: "asInput",
@@ -8433,11 +8635,14 @@ export const docsManifest = {
8433
8635
  name: "positionerClassName",
8434
8636
  type: "string",
8435
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`.",
8436
8639
  },
8437
8640
  {
8438
8641
  name: "size",
8439
8642
  type: "PopoverSize",
8440
8643
  required: false,
8644
+ defaultValue: '"lg"',
8645
+ description: "Padding and corner radius: `sm` is compact (8px), `base` is 16px, `lg` is roomy (24px).",
8441
8646
  },
8442
8647
  ],
8443
8648
  },
@@ -8504,6 +8709,7 @@ export const docsManifest = {
8504
8709
  name: "indicatorClassName",
8505
8710
  type: "string",
8506
8711
  required: false,
8712
+ description: "Classes for the filled arc, for example a stroke colour such as `stroke-brand`. Defaults to `stroke-primary`.",
8507
8713
  },
8508
8714
  {
8509
8715
  name: "label",
@@ -8536,6 +8742,7 @@ export const docsManifest = {
8536
8742
  name: "trackClassName",
8537
8743
  type: "string",
8538
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`.",
8539
8746
  },
8540
8747
  {
8541
8748
  name: "value",
@@ -9293,6 +9500,7 @@ export const docsManifest = {
9293
9500
  type: "ScrollFrameFadeMode | undefined",
9294
9501
  required: false,
9295
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.",
9296
9504
  },
9297
9505
  {
9298
9506
  name: "fades",
@@ -9327,6 +9535,7 @@ export const docsManifest = {
9327
9535
  type: "Orientation | undefined",
9328
9536
  required: false,
9329
9537
  defaultValue: '"vertical"',
9538
+ description: "Scroll axis: `vertical` scrolls up and down, `horizontal` left and right, as for a row of chips.",
9330
9539
  },
9331
9540
  {
9332
9541
  name: "viewportClassName",
@@ -9562,12 +9771,14 @@ export const docsManifest = {
9562
9771
  type: 'ResponsiveValue<"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl">',
9563
9772
  required: false,
9564
9773
  defaultValue: '"sm"',
9774
+ description: 'Size of every segment (text and padding), or an object per breakpoint like `{ base: "sm", md: "lg" }`.',
9565
9775
  },
9566
9776
  {
9567
9777
  name: "fullWidth",
9568
9778
  type: "boolean",
9569
9779
  required: false,
9570
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.",
9571
9782
  },
9572
9783
  ],
9573
9784
  },
@@ -9665,6 +9876,7 @@ export const docsManifest = {
9665
9876
  name: "testId",
9666
9877
  type: "string",
9667
9878
  required: false,
9879
+ description: "Rendered as `data-testid`, for Playwright selectors.",
9668
9880
  },
9669
9881
  ],
9670
9882
  },
@@ -9686,11 +9898,14 @@ export const docsManifest = {
9686
9898
  name: "size",
9687
9899
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
9688
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`.",
9689
9903
  },
9690
9904
  {
9691
9905
  name: "testId",
9692
9906
  type: "string",
9693
9907
  required: false,
9908
+ description: "Rendered as `data-testid`, for Playwright selectors.",
9694
9909
  },
9695
9910
  ],
9696
9911
  },
@@ -9702,6 +9917,7 @@ export const docsManifest = {
9702
9917
  name: "testId",
9703
9918
  type: "string",
9704
9919
  required: false,
9920
+ description: "Rendered as `data-testid`, for Playwright selectors.",
9705
9921
  },
9706
9922
  ],
9707
9923
  },
@@ -9718,6 +9934,7 @@ export const docsManifest = {
9718
9934
  name: "testId",
9719
9935
  type: "string",
9720
9936
  required: false,
9937
+ description: "Rendered as `data-testid`, for Playwright selectors.",
9721
9938
  },
9722
9939
  ],
9723
9940
  },
@@ -9734,6 +9951,7 @@ export const docsManifest = {
9734
9951
  name: "testId",
9735
9952
  type: "string",
9736
9953
  required: false,
9954
+ description: "Rendered as `data-testid`, for Playwright selectors.",
9737
9955
  },
9738
9956
  ],
9739
9957
  },
@@ -9750,6 +9968,7 @@ export const docsManifest = {
9750
9968
  name: "testId",
9751
9969
  type: "string",
9752
9970
  required: false,
9971
+ description: "Rendered as `data-testid`, for Playwright selectors.",
9753
9972
  },
9754
9973
  ],
9755
9974
  },
@@ -9761,21 +9980,29 @@ export const docsManifest = {
9761
9980
  name: "tone",
9762
9981
  type: '"neutral" | "brand" | "danger" | null | undefined',
9763
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.",
9764
9985
  },
9765
9986
  {
9766
9987
  name: "radius",
9767
9988
  type: '"rounded" | "square" | "full" | null | undefined',
9768
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.",
9769
9992
  },
9770
9993
  {
9771
9994
  name: "emphasis",
9772
9995
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
9773
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.",
9774
9999
  },
9775
10000
  {
9776
10001
  name: "pressed",
9777
10002
  type: "boolean | null | undefined",
9778
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.",
9779
10006
  },
9780
10007
  {
9781
10008
  name: "className",
@@ -9793,6 +10020,7 @@ export const docsManifest = {
9793
10020
  name: "testId",
9794
10021
  type: "string",
9795
10022
  required: false,
10023
+ description: "Rendered as `data-testid`, for Playwright selectors.",
9796
10024
  },
9797
10025
  ],
9798
10026
  },
@@ -9804,6 +10032,7 @@ export const docsManifest = {
9804
10032
  name: "testId",
9805
10033
  type: "string",
9806
10034
  required: false,
10035
+ description: "Rendered as `data-testid`, for Playwright selectors.",
9807
10036
  },
9808
10037
  ],
9809
10038
  },
@@ -10263,11 +10492,15 @@ export const docsManifest = {
10263
10492
  name: "tone",
10264
10493
  type: '"neutral" | "brand" | "danger" | null | undefined',
10265
10494
  required: false,
10495
+ defaultValue: '"neutral"',
10496
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
10266
10497
  },
10267
10498
  {
10268
10499
  name: "radius",
10269
10500
  type: '"rounded" | "square" | "full" | null | undefined',
10270
10501
  required: false,
10502
+ defaultValue: '"full"',
10503
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
10271
10504
  },
10272
10505
  {
10273
10506
  name: "dot",
@@ -10286,26 +10519,35 @@ export const docsManifest = {
10286
10519
  name: "square",
10287
10520
  type: "boolean | null | undefined",
10288
10521
  required: false,
10522
+ defaultValue: "false",
10523
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
10289
10524
  },
10290
10525
  {
10291
10526
  name: "asInput",
10292
10527
  type: "boolean | null | undefined",
10293
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.",
10294
10531
  },
10295
10532
  {
10296
10533
  name: "align",
10297
10534
  type: '"center" | "end" | "start" | null | undefined',
10298
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.",
10299
10538
  },
10300
10539
  {
10301
10540
  name: "pressed",
10302
10541
  type: "boolean | null | undefined",
10303
10542
  required: false,
10543
+ defaultValue: "true",
10544
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
10304
10545
  },
10305
10546
  {
10306
10547
  name: "testId",
10307
10548
  type: "string",
10308
10549
  required: false,
10550
+ description: "Rendered as `data-testid`, for Playwright selectors.",
10309
10551
  },
10310
10552
  {
10311
10553
  name: "suffixIcon",
@@ -10456,6 +10698,8 @@ export const docsManifest = {
10456
10698
  name: "variant",
10457
10699
  type: "SidepanelHeaderVariant",
10458
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.",
10459
10703
  },
10460
10704
  ],
10461
10705
  },
@@ -11429,6 +11673,7 @@ export const docsManifest = {
11429
11673
  name: "href",
11430
11674
  type: "string",
11431
11675
  required: false,
11676
+ description: "Destination of the default `<a>`. Not used when `render` supplies its own element.",
11432
11677
  },
11433
11678
  {
11434
11679
  name: "icon",
@@ -11686,6 +11931,7 @@ export const docsManifest = {
11686
11931
  name: "radius",
11687
11932
  type: "string",
11688
11933
  required: true,
11934
+ description: "Tailwind rounding class (such as `rounded-xl`) matching the framed container's corners, so the ring follows them.",
11689
11935
  },
11690
11936
  ],
11691
11937
  },
@@ -11704,8 +11950,15 @@ export const docsManifest = {
11704
11950
  "Feed fills through `color`/`background`/`colors`, never a hex in `className`/`style` - the props drive the contrast-aware text colour, selection ring, and darkening overlay.",
11705
11951
  "Reach for `Swatch` for a selectable colour/gradient/material chip or tile; a tiny non-interactive status marker is `Dot`, and a display-only status/category label is `Badge`.",
11706
11952
  "For a gradient or image chip fill pass `light` - auto contrast detection (`isLightColor`) only reads solid colours, so overlaid icons/labels lose legibility without it.",
11953
+ "A material swatch is always square, as Swatch draws it; never stretch a tile into a landscape crop, and in a grid let the column set the size.",
11954
+ ],
11955
+ keywords: [
11956
+ "material swatch",
11957
+ "material sample",
11958
+ "finish",
11959
+ "colourway",
11960
+ "colour chip",
11707
11961
  ],
11708
- keywords: [],
11709
11962
  uses: ["center", "flex", "icon"],
11710
11963
  usedBy: [
11711
11964
  "swatch-fan",
@@ -12002,6 +12255,7 @@ export const docsManifest = {
12002
12255
  name: "href",
12003
12256
  type: "string",
12004
12257
  required: true,
12258
+ description: "Destination of the link. Also forwarded to the element given in `render`, such as a router `Link`.",
12005
12259
  },
12006
12260
  {
12007
12261
  name: "icon",
@@ -12020,11 +12274,13 @@ export const docsManifest = {
12020
12274
  name: "variant",
12021
12275
  type: '"line" | "pill" | null | undefined',
12022
12276
  required: false,
12277
+ description: "Ignored on its own: the parent `Tabs` or `TabNavigation` sets the style for every part, so set `variant` there.",
12023
12278
  },
12024
12279
  {
12025
12280
  name: "size",
12026
12281
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
12027
12282
  required: false,
12283
+ description: "Ignored on its own: the parent `Tabs` or `TabNavigation` sets the size for every part, so set `size` there.",
12028
12284
  },
12029
12285
  ],
12030
12286
  },
@@ -12036,11 +12292,13 @@ export const docsManifest = {
12036
12292
  name: "variant",
12037
12293
  type: '"line" | "pill" | null | undefined',
12038
12294
  required: false,
12295
+ description: "Ignored on its own: the parent `Tabs` or `TabNavigation` sets the style for every part, so set `variant` there.",
12039
12296
  },
12040
12297
  {
12041
12298
  name: "size",
12042
12299
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
12043
12300
  required: false,
12301
+ description: "Ignored on its own: the parent `Tabs` or `TabNavigation` sets the size for every part, so set `size` there.",
12044
12302
  },
12045
12303
  ],
12046
12304
  },
@@ -12214,11 +12472,13 @@ export const docsManifest = {
12214
12472
  name: "variant",
12215
12473
  type: '"line" | "pill" | null | undefined',
12216
12474
  required: false,
12475
+ description: "Ignored on its own: the parent `Tabs` or `TabNavigation` sets the style for every part, so set `variant` there.",
12217
12476
  },
12218
12477
  {
12219
12478
  name: "size",
12220
12479
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
12221
12480
  required: false,
12481
+ description: "Ignored on its own: the parent `Tabs` or `TabNavigation` sets the size for every part, so set `size` there.",
12222
12482
  },
12223
12483
  ],
12224
12484
  },
@@ -12240,6 +12500,8 @@ export const docsManifest = {
12240
12500
  name: "layout",
12241
12501
  type: 'boolean | "position" | "size" | "preserve-aspect"',
12242
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.',
12243
12505
  },
12244
12506
  ],
12245
12507
  },
@@ -12251,11 +12513,13 @@ export const docsManifest = {
12251
12513
  name: "variant",
12252
12514
  type: '"line" | "pill" | null | undefined',
12253
12515
  required: false,
12516
+ description: "Ignored on its own: the parent `Tabs` or `TabNavigation` sets the style for every part, so set `variant` there.",
12254
12517
  },
12255
12518
  {
12256
12519
  name: "size",
12257
12520
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
12258
12521
  required: false,
12522
+ description: "Ignored on its own: the parent `Tabs` or `TabNavigation` sets the size for every part, so set `size` there.",
12259
12523
  },
12260
12524
  {
12261
12525
  name: "className",
@@ -12402,16 +12666,22 @@ export const docsManifest = {
12402
12666
  name: "tone",
12403
12667
  type: '"neutral" | "brand" | "danger" | "warning" | "success" | "info" | null | undefined',
12404
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.",
12405
12671
  },
12406
12672
  {
12407
12673
  name: "radius",
12408
12674
  type: '"rounded" | "square" | "full" | null | undefined',
12409
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.",
12410
12678
  },
12411
12679
  {
12412
12680
  name: "emphasis",
12413
12681
  type: '"outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
12414
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.",
12415
12685
  },
12416
12686
  {
12417
12687
  name: "asInput",
@@ -12563,6 +12833,7 @@ export const docsManifest = {
12563
12833
  name: "testId",
12564
12834
  type: "string",
12565
12835
  required: false,
12836
+ description: "Rendered as `data-testid`, for Playwright selectors.",
12566
12837
  },
12567
12838
  ],
12568
12839
  },
@@ -12678,11 +12949,13 @@ export const docsManifest = {
12678
12949
  name: "current",
12679
12950
  type: "number",
12680
12951
  required: true,
12952
+ description: "Number shown before the slash, counted from one (the first step is `1`).",
12681
12953
  },
12682
12954
  {
12683
12955
  name: "total",
12684
12956
  type: "number",
12685
12957
  required: true,
12958
+ description: "Number shown after the slash.",
12686
12959
  },
12687
12960
  ],
12688
12961
  },
@@ -12694,11 +12967,13 @@ export const docsManifest = {
12694
12967
  name: "icon",
12695
12968
  type: "LucideIcon | undefined",
12696
12969
  required: true,
12970
+ description: "Icon to show. Renders nothing when `undefined`.",
12697
12971
  },
12698
12972
  {
12699
12973
  name: "stepId",
12700
12974
  type: "string",
12701
12975
  required: true,
12976
+ description: "Id of the current step. A new id makes the previous icon crossfade into this one.",
12702
12977
  },
12703
12978
  ],
12704
12979
  },
@@ -12737,6 +13012,8 @@ export const docsManifest = {
12737
13012
  name: "shimmer",
12738
13013
  type: "boolean",
12739
13014
  required: false,
13015
+ defaultValue: "true",
13016
+ description: "Sweeps a highlight across the label; `false` renders it as plain text.",
12740
13017
  },
12741
13018
  {
12742
13019
  name: "shimmerVariant",
@@ -12748,6 +13025,7 @@ export const docsManifest = {
12748
13025
  name: "step",
12749
13026
  type: "ThinkingStep",
12750
13027
  required: true,
13028
+ description: "The step to show: its `label` is the text, and its `icon` leads it unless `hideIcon` is set.",
12751
13029
  },
12752
13030
  ],
12753
13031
  },
@@ -13053,11 +13331,15 @@ export const docsManifest = {
13053
13331
  name: "variant",
13054
13332
  type: '"default" | "secondary" | null | undefined',
13055
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.",
13056
13336
  },
13057
13337
  {
13058
13338
  name: "radius",
13059
13339
  type: '"rounded" | "full" | null | undefined',
13060
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.",
13061
13343
  },
13062
13344
  {
13063
13345
  name: "icon",
@@ -13402,11 +13684,13 @@ export const docsManifest = {
13402
13684
  name: "onAction",
13403
13685
  type: "() => void",
13404
13686
  required: false,
13687
+ description: "Called when the action button is clicked. The button only appears when `actionLabel` is set.",
13405
13688
  },
13406
13689
  {
13407
13690
  name: "onDismiss",
13408
13691
  type: "() => void",
13409
13692
  required: false,
13693
+ description: "Called when the dismiss button is clicked. The parent should then set `open` to `false`.",
13410
13694
  },
13411
13695
  {
13412
13696
  name: "dismissLabel",
@@ -13461,11 +13745,14 @@ export const docsManifest = {
13461
13745
  name: "onClick",
13462
13746
  type: "() => void",
13463
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.",
13464
13749
  },
13465
13750
  {
13466
13751
  name: "disabled",
13467
13752
  type: "boolean",
13468
13753
  required: false,
13754
+ defaultValue: "false",
13755
+ description: "Block presses and dim the pill.",
13469
13756
  },
13470
13757
  {
13471
13758
  name: "label",
@@ -13535,6 +13822,7 @@ export const docsManifest = {
13535
13822
  name: "icon",
13536
13823
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
13537
13824
  required: false,
13825
+ description: "Icon component (e.g. a Lucide icon), not a rendered element; shown small and muted at the top right.",
13538
13826
  },
13539
13827
  {
13540
13828
  name: "valueLabel",
@@ -13662,31 +13950,37 @@ export const docsManifest = {
13662
13950
  name: "getItemKey",
13663
13951
  type: "(item: T) => string",
13664
13952
  required: true,
13953
+ description: "Stable unique key for an item, such as its id; never the array index.",
13665
13954
  },
13666
13955
  {
13667
13956
  name: "getRowKey",
13668
13957
  type: "(row: T[], rowIndex: number) => string",
13669
13958
  required: false,
13959
+ description: "Stable key for a row. Defaults to `row-<rowIndex>`; supply one when rows can reorder or be re-chunked.",
13670
13960
  },
13671
13961
  {
13672
13962
  name: "metrics",
13673
13963
  type: 'Omit<CardGridRowMetrics, "rowWidth">',
13674
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.",
13675
13966
  },
13676
13967
  {
13677
13968
  name: "renderAfterRow",
13678
13969
  type: "(props: { metrics: CardGridRowMetrics; row: T[]; rowIndex: number; }) => ReactNode",
13679
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.",
13680
13972
  },
13681
13973
  {
13682
13974
  name: "renderItem",
13683
13975
  type: "(props: { index: number; item: T; row: T[]; rowIndex: number; }) => ReactNode",
13684
13976
  required: true,
13977
+ description: "Renders one item's card; each result is wrapped in a `CardGridItem`. `index` is the position within its row.",
13685
13978
  },
13686
13979
  {
13687
13980
  name: "rows",
13688
13981
  type: "T[][]",
13689
13982
  required: true,
13983
+ description: "Items already chunked into rows, e.g. with `chunkIntoRows`; one `CardGrid` is rendered per row.",
13690
13984
  },
13691
13985
  ],
13692
13986
  },
@@ -14032,11 +14326,13 @@ export const docsManifest = {
14032
14326
  name: "loading",
14033
14327
  type: "boolean",
14034
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.",
14035
14330
  },
14036
14331
  {
14037
14332
  name: "loadingMessage",
14038
14333
  type: "ReactNode",
14039
14334
  required: false,
14335
+ description: 'Text beside the spinner while loading; only shown when `loadingMode` is `"spinner"`. Defaults to "Loading...".',
14040
14336
  },
14041
14337
  {
14042
14338
  name: "loadingMode",
@@ -14112,6 +14408,8 @@ export const docsManifest = {
14112
14408
  name: "size",
14113
14409
  type: "DataGridControlSize",
14114
14410
  required: false,
14411
+ defaultValue: '"xs"',
14412
+ description: "Checkbox size; the grid only uses the two compact steps.",
14115
14413
  },
14116
14414
  ],
14117
14415
  },
@@ -14151,6 +14449,7 @@ export const docsManifest = {
14151
14449
  name: "row",
14152
14450
  type: "Row<TData>",
14153
14451
  required: true,
14452
+ description: "The TanStack row to expand or collapse. The toggle renders nothing unless `row.getCanExpand()` is true.",
14154
14453
  },
14155
14454
  ],
14156
14455
  },
@@ -14172,6 +14471,7 @@ export const docsManifest = {
14172
14471
  name: "column",
14173
14472
  type: "Column<TData, TValue>",
14174
14473
  required: true,
14474
+ description: "The TanStack column this header sorts and filters.",
14175
14475
  },
14176
14476
  {
14177
14477
  name: "options",
@@ -14228,11 +14528,13 @@ export const docsManifest = {
14228
14528
  name: "loading",
14229
14529
  type: "boolean",
14230
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.",
14231
14532
  },
14232
14533
  {
14233
14534
  name: "loadingMessage",
14234
14535
  type: "ReactNode",
14235
14536
  required: false,
14537
+ description: 'Text beside the spinner while loading; only shown when `loadingMode` is `"spinner"`. Defaults to "Loading...".',
14236
14538
  },
14237
14539
  {
14238
14540
  name: "loadingMode",
@@ -14294,11 +14596,13 @@ export const docsManifest = {
14294
14596
  name: "disabled",
14295
14597
  type: "boolean",
14296
14598
  required: false,
14599
+ description: "Disable the checkbox; `createSelectionColumn` sets it when the row cannot be selected.",
14297
14600
  },
14298
14601
  {
14299
14602
  name: "row",
14300
14603
  type: "Row<TData>",
14301
14604
  required: true,
14605
+ description: "The TanStack row this checkbox selects.",
14302
14606
  },
14303
14607
  ],
14304
14608
  },
@@ -14310,11 +14614,13 @@ export const docsManifest = {
14310
14614
  name: "disabled",
14311
14615
  type: "boolean",
14312
14616
  required: false,
14617
+ description: "Disable the checkbox, e.g. while loading or when the page has no rows.",
14313
14618
  },
14314
14619
  {
14315
14620
  name: "table",
14316
14621
  type: "Table<TData>",
14317
14622
  required: true,
14623
+ description: "The TanStack table whose current-page rows this checkbox selects.",
14318
14624
  },
14319
14625
  ],
14320
14626
  },
@@ -14536,11 +14842,13 @@ export const docsManifest = {
14536
14842
  name: "icon",
14537
14843
  type: "ReactNode",
14538
14844
  required: false,
14845
+ description: "Leading glyph shown before the title.",
14539
14846
  },
14540
14847
  {
14541
14848
  name: "pinnable",
14542
14849
  type: "boolean",
14543
14850
  required: false,
14851
+ description: "Not read by the header. Pinning is controlled by `tableLayout.columnsPinnable`\non `DataGrid` and the column's own `enablePinning`.",
14544
14852
  },
14545
14853
  {
14546
14854
  name: "title",
@@ -14755,21 +15063,25 @@ export const docsManifest = {
14755
15063
  name: "row",
14756
15064
  type: "Row<TData>",
14757
15065
  required: true,
15066
+ description: 'The TanStack row to render; its selection state sets `data-state="selected"` and its original data goes to `onRowClick`.',
14758
15067
  },
14759
15068
  {
14760
15069
  name: "dndRef",
14761
15070
  type: "React.Ref<HTMLTableRowElement>",
14762
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.",
14763
15073
  },
14764
15074
  {
14765
15075
  name: "dndStyle",
14766
15076
  type: "React.CSSProperties",
14767
15077
  required: false,
15078
+ description: "Inline style merged over the row height, e.g. a drag library's transform.",
14768
15079
  },
14769
15080
  {
14770
15081
  name: "dataIndex",
14771
15082
  type: "number",
14772
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.",
14773
15085
  },
14774
15086
  ],
14775
15087
  },
@@ -14786,16 +15098,19 @@ export const docsManifest = {
14786
15098
  name: "cell",
14787
15099
  type: "Cell<TData>",
14788
15100
  required: true,
15101
+ description: "The TanStack cell to render; its column sets pinning, edge and `meta.cellClassName` styling.",
14789
15102
  },
14790
15103
  {
14791
15104
  name: "dndRef",
14792
15105
  type: "React.Ref<HTMLTableCellElement>",
14793
15106
  required: false,
15107
+ description: "Ref attached to the `<td>`, for a drag library's node ref.",
14794
15108
  },
14795
15109
  {
14796
15110
  name: "dndStyle",
14797
15111
  type: "React.CSSProperties",
14798
15112
  required: false,
15113
+ description: "Inline style merged over the pinning styles, e.g. a drag library's transform.",
14799
15114
  },
14800
15115
  ],
14801
15116
  },
@@ -14807,6 +15122,7 @@ export const docsManifest = {
14807
15122
  name: "row",
14808
15123
  type: "Row<TData>",
14809
15124
  required: true,
15125
+ description: "The expanded row; its `original` data is passed to the first column's `meta.expandedContent`.",
14810
15126
  },
14811
15127
  ],
14812
15128
  },
@@ -14834,6 +15150,7 @@ export const docsManifest = {
14834
15150
  name: "column",
14835
15151
  type: "Column<TData>",
14836
15152
  required: true,
15153
+ description: "The column this placeholder cell sits in; supplies pinning, edge and `meta.cellClassName` styling.",
14837
15154
  },
14838
15155
  ],
14839
15156
  },
@@ -14866,6 +15183,7 @@ export const docsManifest = {
14866
15183
  name: "headerGroup",
14867
15184
  type: "HeaderGroup<TData>",
14868
15185
  required: true,
15186
+ description: "The TanStack header group this row renders; it supplies the row's React key.",
14869
15187
  },
14870
15188
  ],
14871
15189
  },
@@ -14882,16 +15200,19 @@ export const docsManifest = {
14882
15200
  name: "header",
14883
15201
  type: "Header<TData>",
14884
15202
  required: true,
15203
+ description: "The TanStack header this `<th>` renders; its column sets size, pinning and `meta.headerClassName`.",
14885
15204
  },
14886
15205
  {
14887
15206
  name: "dndRef",
14888
15207
  type: "React.Ref<HTMLTableCellElement>",
14889
15208
  required: false,
15209
+ description: "Ref attached to the `<th>`, for a drag library's node ref.",
14890
15210
  },
14891
15211
  {
14892
15212
  name: "dndStyle",
14893
15213
  type: "React.CSSProperties",
14894
15214
  required: false,
15215
+ description: "Inline style merged over width and pinning styles, e.g. a drag library's transform.",
14895
15216
  },
14896
15217
  ],
14897
15218
  },
@@ -14903,6 +15224,7 @@ export const docsManifest = {
14903
15224
  name: "header",
14904
15225
  type: "Header<TData>",
14905
15226
  required: true,
15227
+ description: "The header whose column this handle resizes.",
14906
15228
  },
14907
15229
  ],
14908
15230
  },
@@ -14919,11 +15241,13 @@ export const docsManifest = {
14919
15241
  name: "row",
14920
15242
  type: "Row<TData>",
14921
15243
  required: true,
15244
+ description: "The TanStack row this checkbox selects.",
14922
15245
  },
14923
15246
  {
14924
15247
  name: "size",
14925
15248
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
14926
15249
  required: false,
15250
+ description: 'Mirrors the table\'s size: `"2xs"` and `"xs"` (or omitted) give the `"xs"` checkbox, anything larger the `"sm"` one.',
14927
15251
  },
14928
15252
  ],
14929
15253
  },
@@ -14935,6 +15259,7 @@ export const docsManifest = {
14935
15259
  name: "size",
14936
15260
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
14937
15261
  required: false,
15262
+ description: 'Mirrors the table\'s size: `"2xs"` and `"xs"` (or omitted) give the `"xs"` checkbox, anything larger the `"sm"` one.',
14938
15263
  },
14939
15264
  ],
14940
15265
  },
@@ -15085,6 +15410,8 @@ export const docsManifest = {
15085
15410
  name: "variant",
15086
15411
  type: '"divided" | "separated" | "grouped" | null | undefined',
15087
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.',
15088
15415
  },
15089
15416
  ],
15090
15417
  },
@@ -15135,6 +15462,7 @@ export const docsManifest = {
15135
15462
  name: "icon",
15136
15463
  type: "LucideIcon | React.ComponentType<React.SVGProps<SVGSVGElement>>",
15137
15464
  required: true,
15465
+ description: "Icon component (a Lucide icon), not a rendered element; sized from the list's `size`.",
15138
15466
  },
15139
15467
  ],
15140
15468
  },
@@ -15296,11 +15624,13 @@ export const docsManifest = {
15296
15624
  name: "subtitle",
15297
15625
  type: "string",
15298
15626
  required: false,
15627
+ description: "Small muted line above the title, such as a category or date. Omitted when empty.",
15299
15628
  },
15300
15629
  {
15301
15630
  name: "title",
15302
15631
  type: "string",
15303
15632
  required: true,
15633
+ description: "Main line, shown larger and medium weight.",
15304
15634
  },
15305
15635
  ],
15306
15636
  },
@@ -15517,6 +15847,8 @@ export const docsManifest = {
15517
15847
  name: "size",
15518
15848
  type: '"base" | "sm" | "lg" | null | undefined',
15519
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.",
15520
15852
  },
15521
15853
  ],
15522
15854
  },
@@ -15611,6 +15943,8 @@ export const docsManifest = {
15611
15943
  name: "size",
15612
15944
  type: '"base" | "sm" | "lg" | null | undefined',
15613
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.",
15614
15948
  },
15615
15949
  ],
15616
15950
  },
@@ -15706,16 +16040,19 @@ export const docsManifest = {
15706
16040
  name: "onDragLeave",
15707
16041
  type: "(e: DragEvent<HTMLElement>) => void",
15708
16042
  required: false,
16043
+ description: "Fires when a drag leaves the zone; pass `handleDragLeave` to clear the drag state.",
15709
16044
  },
15710
16045
  {
15711
16046
  name: "onDragOver",
15712
16047
  type: "(e: DragEvent<HTMLElement>) => void",
15713
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.",
15714
16050
  },
15715
16051
  {
15716
16052
  name: "onDrop",
15717
16053
  type: "(e: DragEvent<HTMLElement>) => void",
15718
16054
  required: false,
16055
+ description: "Fires when files are dropped; pass `handleDrop` to validate and add them.",
15719
16056
  },
15720
16057
  {
15721
16058
  name: "ref",
@@ -15905,11 +16242,15 @@ export const docsManifest = {
15905
16242
  name: "tone",
15906
16243
  type: '"neutral" | "brand" | "danger" | null | undefined',
15907
16244
  required: false,
16245
+ defaultValue: '"neutral"',
16246
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
15908
16247
  },
15909
16248
  {
15910
16249
  name: "radius",
15911
16250
  type: '"rounded" | "square" | "full" | null | undefined',
15912
16251
  required: false,
16252
+ defaultValue: '"full"',
16253
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
15913
16254
  },
15914
16255
  {
15915
16256
  name: "size",
@@ -15935,6 +16276,8 @@ export const docsManifest = {
15935
16276
  name: "square",
15936
16277
  type: "boolean | null | undefined",
15937
16278
  required: false,
16279
+ defaultValue: "false",
16280
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
15938
16281
  },
15939
16282
  {
15940
16283
  name: "icon",
@@ -15946,26 +16289,35 @@ export const docsManifest = {
15946
16289
  name: "emphasis",
15947
16290
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
15948
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.",
15949
16294
  },
15950
16295
  {
15951
16296
  name: "asInput",
15952
16297
  type: "boolean | null | undefined",
15953
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.",
15954
16301
  },
15955
16302
  {
15956
16303
  name: "align",
15957
16304
  type: '"center" | "end" | "start" | null | undefined',
15958
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.",
15959
16308
  },
15960
16309
  {
15961
16310
  name: "pressed",
15962
16311
  type: "boolean | null | undefined",
15963
16312
  required: false,
16313
+ defaultValue: "true",
16314
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
15964
16315
  },
15965
16316
  {
15966
16317
  name: "testId",
15967
16318
  type: "string",
15968
16319
  required: false,
16320
+ description: "Rendered as `data-testid`, for Playwright selectors.",
15969
16321
  },
15970
16322
  {
15971
16323
  name: "suffixIcon",
@@ -16118,6 +16470,7 @@ export const docsManifest = {
16118
16470
  name: "selected",
16119
16471
  type: "boolean",
16120
16472
  required: false,
16473
+ description: 'Marks the folder as chosen: selected styling and `aria-pressed="true"`. Has no effect while `showSelectedState` is false.',
16121
16474
  },
16122
16475
  {
16123
16476
  name: "showSelectedState",
@@ -16135,6 +16488,7 @@ export const docsManifest = {
16135
16488
  name: "testId",
16136
16489
  type: "string",
16137
16490
  required: false,
16491
+ description: "Rendered as `data-testid` on the outer wrapper (not the button), for Playwright targeting.",
16138
16492
  },
16139
16493
  ],
16140
16494
  },
@@ -16255,6 +16609,7 @@ export const docsManifest = {
16255
16609
  name: "positionerClassName",
16256
16610
  type: "string",
16257
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`.",
16258
16613
  },
16259
16614
  ],
16260
16615
  },
@@ -16501,11 +16856,15 @@ export const docsManifest = {
16501
16856
  name: "tone",
16502
16857
  type: '"neutral" | "brand" | "danger" | null | undefined',
16503
16858
  required: false,
16859
+ defaultValue: '"neutral"',
16860
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
16504
16861
  },
16505
16862
  {
16506
16863
  name: "radius",
16507
16864
  type: '"rounded" | "square" | "full" | null | undefined',
16508
16865
  required: false,
16866
+ defaultValue: '"full"',
16867
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
16509
16868
  },
16510
16869
  {
16511
16870
  name: "size",
@@ -16531,31 +16890,42 @@ export const docsManifest = {
16531
16890
  name: "square",
16532
16891
  type: "boolean | null | undefined",
16533
16892
  required: false,
16893
+ defaultValue: "false",
16894
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
16534
16895
  },
16535
16896
  {
16536
16897
  name: "emphasis",
16537
16898
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
16538
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.",
16539
16902
  },
16540
16903
  {
16541
16904
  name: "asInput",
16542
16905
  type: "boolean | null | undefined",
16543
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.",
16544
16909
  },
16545
16910
  {
16546
16911
  name: "align",
16547
16912
  type: '"center" | "end" | "start" | null | undefined',
16548
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.",
16549
16916
  },
16550
16917
  {
16551
16918
  name: "pressed",
16552
16919
  type: "boolean | null | undefined",
16553
16920
  required: false,
16921
+ defaultValue: "true",
16922
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
16554
16923
  },
16555
16924
  {
16556
16925
  name: "testId",
16557
16926
  type: "string",
16558
16927
  required: false,
16928
+ description: "Rendered as `data-testid`, for Playwright selectors.",
16559
16929
  },
16560
16930
  {
16561
16931
  name: "suffixIcon",
@@ -16725,6 +17095,7 @@ export const docsManifest = {
16725
17095
  name: "displayName",
16726
17096
  type: "string",
16727
17097
  required: true,
17098
+ description: "The user's name, shown in medium weight; also the avatar image's alt text.",
16728
17099
  },
16729
17100
  {
16730
17101
  name: "email",
@@ -16918,36 +17289,50 @@ export const docsManifest = {
16918
17289
  name: "tone",
16919
17290
  type: '"neutral" | "brand" | "danger" | null | undefined',
16920
17291
  required: false,
17292
+ defaultValue: '"neutral"',
17293
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
16921
17294
  },
16922
17295
  {
16923
17296
  name: "radius",
16924
17297
  type: '"rounded" | "square" | "full" | null | undefined',
16925
17298
  required: false,
17299
+ defaultValue: '"full"',
17300
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
16926
17301
  },
16927
17302
  {
16928
17303
  name: "square",
16929
17304
  type: "boolean | null | undefined",
16930
17305
  required: false,
17306
+ defaultValue: "false",
17307
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
16931
17308
  },
16932
17309
  {
16933
17310
  name: "emphasis",
16934
17311
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
16935
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.",
16936
17315
  },
16937
17316
  {
16938
17317
  name: "asInput",
16939
17318
  type: "boolean | null | undefined",
16940
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.",
16941
17322
  },
16942
17323
  {
16943
17324
  name: "align",
16944
17325
  type: '"center" | "end" | "start" | null | undefined',
16945
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.",
16946
17329
  },
16947
17330
  {
16948
17331
  name: "pressed",
16949
17332
  type: "boolean | null | undefined",
16950
17333
  required: false,
17334
+ defaultValue: "true",
17335
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
16951
17336
  },
16952
17337
  {
16953
17338
  name: "size",
@@ -17035,6 +17420,7 @@ export const docsManifest = {
17035
17420
  name: "testId",
17036
17421
  type: "string",
17037
17422
  required: false,
17423
+ description: "Rendered as `data-testid`, for Playwright selectors.",
17038
17424
  },
17039
17425
  ],
17040
17426
  },
@@ -17113,6 +17499,7 @@ export const docsManifest = {
17113
17499
  name: "onClose",
17114
17500
  type: "() => void",
17115
17501
  required: true,
17502
+ description: "Called when the close button is pressed; set your open state to false here.",
17116
17503
  },
17117
17504
  ],
17118
17505
  },
@@ -17124,36 +17511,50 @@ export const docsManifest = {
17124
17511
  name: "tone",
17125
17512
  type: '"neutral" | "brand" | "danger" | null | undefined',
17126
17513
  required: false,
17514
+ defaultValue: '"neutral"',
17515
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
17127
17516
  },
17128
17517
  {
17129
17518
  name: "radius",
17130
17519
  type: '"rounded" | "square" | "full" | null | undefined',
17131
17520
  required: false,
17521
+ defaultValue: '"full"',
17522
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
17132
17523
  },
17133
17524
  {
17134
17525
  name: "square",
17135
17526
  type: "boolean | null | undefined",
17136
17527
  required: false,
17528
+ defaultValue: "false",
17529
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
17137
17530
  },
17138
17531
  {
17139
17532
  name: "emphasis",
17140
17533
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
17141
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.",
17142
17537
  },
17143
17538
  {
17144
17539
  name: "asInput",
17145
17540
  type: "boolean | null | undefined",
17146
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.",
17147
17544
  },
17148
17545
  {
17149
17546
  name: "align",
17150
17547
  type: '"center" | "end" | "start" | null | undefined',
17151
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.",
17152
17551
  },
17153
17552
  {
17154
17553
  name: "pressed",
17155
17554
  type: "boolean | null | undefined",
17156
17555
  required: false,
17556
+ defaultValue: "true",
17557
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
17157
17558
  },
17158
17559
  {
17159
17560
  name: "size",
@@ -17241,6 +17642,7 @@ export const docsManifest = {
17241
17642
  name: "testId",
17242
17643
  type: "string",
17243
17644
  required: false,
17645
+ description: "Rendered as `data-testid`, for Playwright selectors.",
17244
17646
  },
17245
17647
  ],
17246
17648
  },
@@ -17299,11 +17701,15 @@ export const docsManifest = {
17299
17701
  name: "tone",
17300
17702
  type: '"neutral" | "brand" | "danger" | null | undefined',
17301
17703
  required: false,
17704
+ defaultValue: '"neutral"',
17705
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
17302
17706
  },
17303
17707
  {
17304
17708
  name: "radius",
17305
17709
  type: '"rounded" | "square" | "full" | null | undefined',
17306
17710
  required: false,
17711
+ defaultValue: '"full"',
17712
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
17307
17713
  },
17308
17714
  {
17309
17715
  name: "size",
@@ -17323,31 +17729,42 @@ export const docsManifest = {
17323
17729
  name: "square",
17324
17730
  type: "boolean | null | undefined",
17325
17731
  required: false,
17732
+ defaultValue: "false",
17733
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
17326
17734
  },
17327
17735
  {
17328
17736
  name: "emphasis",
17329
17737
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
17330
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.",
17331
17741
  },
17332
17742
  {
17333
17743
  name: "asInput",
17334
17744
  type: "boolean | null | undefined",
17335
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.",
17336
17748
  },
17337
17749
  {
17338
17750
  name: "align",
17339
17751
  type: '"center" | "end" | "start" | null | undefined',
17340
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.",
17341
17755
  },
17342
17756
  {
17343
17757
  name: "pressed",
17344
17758
  type: "boolean | null | undefined",
17345
17759
  required: false,
17760
+ defaultValue: "true",
17761
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
17346
17762
  },
17347
17763
  {
17348
17764
  name: "testId",
17349
17765
  type: "string",
17350
17766
  required: false,
17767
+ description: "Rendered as `data-testid`, for Playwright selectors.",
17351
17768
  },
17352
17769
  {
17353
17770
  name: "expandable",
@@ -17492,11 +17909,15 @@ export const docsManifest = {
17492
17909
  name: "tone",
17493
17910
  type: '"neutral" | "brand" | "danger" | null | undefined',
17494
17911
  required: false,
17912
+ defaultValue: '"neutral"',
17913
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
17495
17914
  },
17496
17915
  {
17497
17916
  name: "radius",
17498
17917
  type: '"rounded" | "square" | "full" | null | undefined',
17499
17918
  required: false,
17919
+ defaultValue: '"full"',
17920
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
17500
17921
  },
17501
17922
  {
17502
17923
  name: "size",
@@ -17515,6 +17936,8 @@ export const docsManifest = {
17515
17936
  name: "square",
17516
17937
  type: "boolean | null | undefined",
17517
17938
  required: false,
17939
+ defaultValue: "false",
17940
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
17518
17941
  },
17519
17942
  {
17520
17943
  name: "icon",
@@ -17526,26 +17949,35 @@ export const docsManifest = {
17526
17949
  name: "emphasis",
17527
17950
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
17528
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.",
17529
17954
  },
17530
17955
  {
17531
17956
  name: "asInput",
17532
17957
  type: "boolean | null | undefined",
17533
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.",
17534
17961
  },
17535
17962
  {
17536
17963
  name: "align",
17537
17964
  type: '"center" | "end" | "start" | null | undefined',
17538
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.",
17539
17968
  },
17540
17969
  {
17541
17970
  name: "pressed",
17542
17971
  type: "boolean | null | undefined",
17543
17972
  required: false,
17973
+ defaultValue: "true",
17974
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
17544
17975
  },
17545
17976
  {
17546
17977
  name: "testId",
17547
17978
  type: "string",
17548
17979
  required: false,
17980
+ description: "Rendered as `data-testid`, for Playwright selectors.",
17549
17981
  },
17550
17982
  {
17551
17983
  name: "suffixIcon",
@@ -17624,6 +18056,7 @@ export const docsManifest = {
17624
18056
  name: "label",
17625
18057
  type: "React.ReactNode",
17626
18058
  required: true,
18059
+ description: "Project name; truncates to one line.",
17627
18060
  },
17628
18061
  {
17629
18062
  name: "onAction",
@@ -17635,6 +18068,7 @@ export const docsManifest = {
17635
18068
  name: "actionIcon",
17636
18069
  type: 'import("../../tokens/icon-component").IconComponent',
17637
18070
  required: true,
18071
+ description: "Icon for the trailing action button, such as an ellipsis for project options.",
17638
18072
  },
17639
18073
  {
17640
18074
  name: "actionLabel",
@@ -17668,6 +18102,7 @@ export const docsManifest = {
17668
18102
  name: "onClose",
17669
18103
  type: "() => void",
17670
18104
  required: false,
18105
+ description: "Called when Escape is pressed. The overlay never unmounts itself, so set your open state to false here.",
17671
18106
  },
17672
18107
  ],
17673
18108
  },
@@ -18110,6 +18545,7 @@ export const docsManifest = {
18110
18545
  type: "string",
18111
18546
  required: false,
18112
18547
  defaultValue: '"Clear all"',
18548
+ description: "Text of the button that calls `onClear`.",
18113
18549
  },
18114
18550
  {
18115
18551
  name: "separator",
@@ -18212,6 +18648,8 @@ export const docsManifest = {
18212
18648
  name: "variant",
18213
18649
  type: '"default" | "secondary" | null | undefined',
18214
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.",
18215
18653
  },
18216
18654
  {
18217
18655
  name: "size",
@@ -18332,6 +18770,8 @@ export const docsManifest = {
18332
18770
  name: "radius",
18333
18771
  type: '"rounded" | "square" | "full" | null | undefined',
18334
18772
  required: false,
18773
+ defaultValue: '"full"',
18774
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
18335
18775
  },
18336
18776
  {
18337
18777
  name: "size",
@@ -18357,26 +18797,35 @@ export const docsManifest = {
18357
18797
  name: "square",
18358
18798
  type: "boolean | null | undefined",
18359
18799
  required: false,
18800
+ defaultValue: "false",
18801
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
18360
18802
  },
18361
18803
  {
18362
18804
  name: "asInput",
18363
18805
  type: "boolean | null | undefined",
18364
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.",
18365
18809
  },
18366
18810
  {
18367
18811
  name: "align",
18368
18812
  type: '"center" | "end" | "start" | null | undefined',
18369
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.",
18370
18816
  },
18371
18817
  {
18372
18818
  name: "pressed",
18373
18819
  type: "boolean | null | undefined",
18374
18820
  required: false,
18821
+ defaultValue: "true",
18822
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
18375
18823
  },
18376
18824
  {
18377
18825
  name: "testId",
18378
18826
  type: "string",
18379
18827
  required: false,
18828
+ description: "Rendered as `data-testid`, for Playwright selectors.",
18380
18829
  },
18381
18830
  {
18382
18831
  name: "suffixIcon",
@@ -18466,16 +18915,19 @@ export const docsManifest = {
18466
18915
  name: "onDirectionChange",
18467
18916
  type: "(direction: PageToolbarSortDirection) => void",
18468
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.',
18469
18919
  },
18470
18920
  {
18471
18921
  name: "onValueChange",
18472
18922
  type: "(value: string) => void",
18473
18923
  required: true,
18924
+ description: "Called with the chosen option's `value` when the user picks an order.",
18474
18925
  },
18475
18926
  {
18476
18927
  name: "options",
18477
18928
  type: "readonly PageToolbarSortOption[]",
18478
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.",
18479
18931
  },
18480
18932
  {
18481
18933
  name: "value",
@@ -18712,6 +19164,7 @@ export const docsManifest = {
18712
19164
  name: "product",
18713
19165
  type: "ProductCardProduct",
18714
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.',
18715
19168
  },
18716
19169
  {
18717
19170
  name: "productUrl",
@@ -18753,13 +19206,13 @@ export const docsManifest = {
18753
19206
  name: "overrideImageUrl",
18754
19207
  type: "string | undefined",
18755
19208
  required: false,
18756
- 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.',
18757
19210
  },
18758
19211
  {
18759
19212
  name: "priority",
18760
19213
  type: "boolean | undefined",
18761
19214
  required: false,
18762
- 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.',
18763
19216
  },
18764
19217
  {
18765
19218
  name: "productBrandLines",
@@ -18771,21 +19224,29 @@ export const docsManifest = {
18771
19224
  name: "productNameLines",
18772
19225
  type: "1 | 2 | undefined",
18773
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.",
18774
19229
  },
18775
19230
  {
18776
19231
  name: "showAddToCart",
18777
19232
  type: "boolean | undefined",
18778
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.",
18779
19236
  },
18780
19237
  {
18781
19238
  name: "showProductBrand",
18782
19239
  type: "boolean | undefined",
18783
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.",
18784
19243
  },
18785
19244
  {
18786
19245
  name: "showProductName",
18787
19246
  type: "boolean | undefined",
18788
19247
  required: false,
19248
+ defaultValue: "true",
19249
+ description: "Show the product name.",
18789
19250
  },
18790
19251
  {
18791
19252
  name: "showSwatches",
@@ -18798,6 +19259,7 @@ export const docsManifest = {
18798
19259
  name: "similarityScore",
18799
19260
  type: "number | undefined",
18800
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.',
18801
19263
  },
18802
19264
  ],
18803
19265
  },
@@ -18979,13 +19441,13 @@ export const docsManifest = {
18979
19441
  name: "overrideImageUrl",
18980
19442
  type: "string | undefined",
18981
19443
  required: false,
18982
- 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.',
18983
19445
  },
18984
19446
  {
18985
19447
  name: "priority",
18986
19448
  type: "boolean | undefined",
18987
19449
  required: false,
18988
- 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.',
18989
19451
  },
18990
19452
  {
18991
19453
  name: "productBrandLines",
@@ -18997,31 +19459,41 @@ export const docsManifest = {
18997
19459
  name: "productNameLines",
18998
19460
  type: "1 | 2 | undefined",
18999
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.",
19000
19464
  },
19001
19465
  {
19002
19466
  name: "showAddToCart",
19003
19467
  type: "boolean | undefined",
19004
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.",
19005
19471
  },
19006
19472
  {
19007
19473
  name: "showProductBrand",
19008
19474
  type: "boolean | undefined",
19009
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.",
19010
19478
  },
19011
19479
  {
19012
19480
  name: "showProductName",
19013
19481
  type: "boolean | undefined",
19014
19482
  required: false,
19483
+ defaultValue: "true",
19484
+ description: "Show the product name.",
19015
19485
  },
19016
19486
  {
19017
19487
  name: "similarityScore",
19018
19488
  type: "number | undefined",
19019
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.',
19020
19491
  },
19021
19492
  {
19022
19493
  name: "onAddToCartSuccess",
19023
19494
  type: "(() => void) | undefined",
19024
19495
  required: false,
19496
+ description: "Called when the `renderAddToCart` slot reports a successful add, via the `onAdded` it receives.",
19025
19497
  },
19026
19498
  ],
19027
19499
  },
@@ -19085,23 +19557,26 @@ export const docsManifest = {
19085
19557
  name: "overrideImageUrl",
19086
19558
  type: "string | undefined",
19087
19559
  required: false,
19088
- 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.",
19089
19561
  },
19090
19562
  {
19091
19563
  name: "priority",
19092
19564
  type: "boolean | undefined",
19093
19565
  required: false,
19094
- 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`.',
19095
19567
  },
19096
19568
  {
19097
19569
  name: "showSimilarityScore",
19098
19570
  type: "boolean | undefined",
19099
19571
  required: false,
19572
+ defaultValue: "false",
19573
+ description: 'Show the `similarityScore` pill. Needs `similarityScore` too, and is\nignored outside `"single"` and `"inspiration"` modes.',
19100
19574
  },
19101
19575
  {
19102
19576
  name: "similarityScore",
19103
19577
  type: "number | undefined",
19104
19578
  required: false,
19579
+ description: "Match from `0` to `1`, shown as a rounded percentage (`0.87` reads `87%`).",
19105
19580
  },
19106
19581
  ],
19107
19582
  },
@@ -19227,6 +19702,7 @@ export const docsManifest = {
19227
19702
  name: "display",
19228
19703
  type: "ProductCardDisplayOptions | undefined",
19229
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.",
19230
19706
  },
19231
19707
  {
19232
19708
  name: "dragAdapter",
@@ -19349,6 +19825,7 @@ export const docsManifest = {
19349
19825
  name: "product",
19350
19826
  type: "ProductCardProduct",
19351
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.',
19352
19829
  },
19353
19830
  {
19354
19831
  name: "productUrl",
@@ -19540,11 +20017,13 @@ export const docsManifest = {
19540
20017
  name: "overrideImageUrl",
19541
20018
  type: "string | undefined",
19542
20019
  required: false,
20020
+ description: "Image URL shown in place of the variant's first image.",
19543
20021
  },
19544
20022
  {
19545
20023
  name: "priority",
19546
20024
  type: "boolean | undefined",
19547
20025
  required: false,
20026
+ description: "Load the tile's image eagerly; forwarded to `renderImage`.",
19548
20027
  },
19549
20028
  ],
19550
20029
  },
@@ -19625,6 +20104,8 @@ export const docsManifest = {
19625
20104
  name: "active",
19626
20105
  type: "boolean",
19627
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.",
19628
20109
  },
19629
20110
  {
19630
20111
  name: "className",
@@ -19657,10 +20138,17 @@ export const docsManifest = {
19657
20138
  bestPractices: [
19658
20139
  "In Next.js apps pass `renderImage` wrapping `next/image` and\n`linkAs={Link}` - the defaults are a plain `<img>` and `<a>`.",
19659
20140
  "Cart UI renders only when a `renderAddToCart` slot is\nprovided; keep `dragAdapter` referentially stable (module-level constant).",
20141
+ "Use ProductCard for a material in a grid or list; its image is square, which is how a material is always shown. Don't rebuild the card with a landscape image.",
19660
20142
  "Pass `renderImage` wrapping `next/image` in Next.js apps -\nthe default renderer is a plain `<img>` and skips Next's optimisation.",
19661
20143
  "Keep `dragAdapter` referentially stable (a module-level\nconstant) - an inline factory remounts the image subtree and drops the\ndrag ref mid-drag.",
19662
20144
  ],
19663
- keywords: [],
20145
+ keywords: [
20146
+ "material card",
20147
+ "material tile",
20148
+ "sample card",
20149
+ "catalogue card",
20150
+ "product tile",
20151
+ ],
19664
20152
  uses: [
19665
20153
  "badge",
19666
20154
  "box",
@@ -19698,11 +20186,13 @@ export const docsManifest = {
19698
20186
  name: "filters",
19699
20187
  type: "Record<string, string | null>",
19700
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.',
19701
20190
  },
19702
20191
  {
19703
20192
  name: "onFilterChange",
19704
20193
  type: "(key: string, value: string | null) => void",
19705
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.",
19706
20196
  },
19707
20197
  {
19708
20198
  name: "onSiblingSelect",
@@ -19738,6 +20228,7 @@ export const docsManifest = {
19738
20228
  name: "variantOptions",
19739
20229
  type: 'Partial<Record<"pattern" | "length" | "width" | "size" | "colorName" | "finish" | "substrate" | "finishType", import("./product-specifications-types").VariantOption[]>>',
19740
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.",
19741
20232
  },
19742
20233
  ],
19743
20234
  },
@@ -19771,6 +20262,7 @@ export const docsManifest = {
19771
20262
  name: "testId",
19772
20263
  type: "string",
19773
20264
  required: false,
20265
+ description: "Rendered as `data-testid`, for Playwright selectors.",
19774
20266
  },
19775
20267
  ],
19776
20268
  },
@@ -20626,6 +21118,8 @@ export const docsManifest = {
20626
21118
  name: "border",
20627
21119
  type: "BorderStyle",
20628
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.",
20629
21123
  },
20630
21124
  {
20631
21125
  name: "inset",
@@ -20651,11 +21145,14 @@ export const docsManifest = {
20651
21145
  name: "testId",
20652
21146
  type: "string",
20653
21147
  required: false,
21148
+ description: "Rendered as `data-testid`, for Playwright selectors.",
20654
21149
  },
20655
21150
  {
20656
21151
  name: "variant",
20657
21152
  type: '"muted" | "ghost" | "accent" | "card" | null | undefined',
20658
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.",
20659
21156
  },
20660
21157
  ],
20661
21158
  },
@@ -20915,43 +21412,57 @@ export const docsManifest = {
20915
21412
  name: "tone",
20916
21413
  type: '"neutral" | "brand" | "danger" | null | undefined',
20917
21414
  required: false,
21415
+ defaultValue: '"neutral"',
21416
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
20918
21417
  },
20919
21418
  {
20920
21419
  name: "radius",
20921
21420
  type: '"rounded" | "square" | "full" | null | undefined',
20922
21421
  required: false,
21422
+ defaultValue: '"full"',
21423
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
20923
21424
  },
20924
21425
  {
20925
21426
  name: "square",
20926
21427
  type: "boolean | null | undefined",
20927
21428
  required: false,
21429
+ defaultValue: "false",
21430
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
20928
21431
  },
20929
21432
  {
20930
21433
  name: "emphasis",
20931
21434
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
20932
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.",
20933
21438
  },
20934
21439
  {
20935
21440
  name: "asInput",
20936
21441
  type: "boolean | null | undefined",
20937
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.",
20938
21445
  },
20939
21446
  {
20940
21447
  name: "align",
20941
21448
  type: '"center" | "end" | "start" | null | undefined',
20942
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.",
20943
21452
  },
20944
21453
  {
20945
21454
  name: "pressed",
20946
21455
  type: "boolean | null | undefined",
20947
21456
  required: false,
21457
+ defaultValue: "true",
21458
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
20948
21459
  },
20949
21460
  {
20950
21461
  name: "size",
20951
21462
  type: "ButtonSizeProp",
20952
21463
  required: false,
20953
21464
  defaultValue: '"base"',
20954
- 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.',
20955
21466
  },
20956
21467
  {
20957
21468
  name: "render",
@@ -21032,6 +21543,7 @@ export const docsManifest = {
21032
21543
  name: "testId",
21033
21544
  type: "string",
21034
21545
  required: false,
21546
+ description: "Rendered as `data-testid`, for Playwright selectors.",
21035
21547
  },
21036
21548
  {
21037
21549
  name: "showWhenCollapsed",
@@ -21064,11 +21576,14 @@ export const docsManifest = {
21064
21576
  name: "testId",
21065
21577
  type: "string",
21066
21578
  required: false,
21579
+ description: "Rendered as `data-testid`, for Playwright selectors.",
21067
21580
  },
21068
21581
  {
21069
21582
  name: "radius",
21070
21583
  type: '"rounded" | "square" | "full" | null | undefined',
21071
21584
  required: false,
21585
+ defaultValue: '"rounded"',
21586
+ description: "Corner shape: `rounded` is the standard 8px radius, `square` has sharp corners, `full` is a pill.",
21072
21587
  },
21073
21588
  {
21074
21589
  name: "size",
@@ -21197,16 +21712,21 @@ export const docsManifest = {
21197
21712
  name: "size",
21198
21713
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl"',
21199
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.',
21200
21717
  },
21201
21718
  {
21202
21719
  name: "variant",
21203
21720
  type: '"input" | "default" | "outline"',
21204
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.',
21205
21724
  },
21206
21725
  {
21207
21726
  name: "icon",
21208
21727
  type: "IconComponent",
21209
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.",
21210
21730
  },
21211
21731
  {
21212
21732
  name: "collapsedIcon",
@@ -21224,6 +21744,7 @@ export const docsManifest = {
21224
21744
  name: "suffixIcon",
21225
21745
  type: "IconComponent",
21226
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.",
21227
21748
  },
21228
21749
  {
21229
21750
  name: "forceExpanded",
@@ -21235,6 +21756,7 @@ export const docsManifest = {
21235
21756
  name: "kbd",
21236
21757
  type: "string[]",
21237
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.',
21238
21760
  },
21239
21761
  {
21240
21762
  name: "children",
@@ -21311,6 +21833,8 @@ export const docsManifest = {
21311
21833
  name: "variant",
21312
21834
  type: '"input" | "default" | "outline" | null | undefined',
21313
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.",
21314
21838
  },
21315
21839
  {
21316
21840
  name: "indicator",
@@ -21322,21 +21846,29 @@ export const docsManifest = {
21322
21846
  name: "tone",
21323
21847
  type: '"neutral" | "danger" | null | undefined',
21324
21848
  required: false,
21849
+ defaultValue: '"neutral"',
21850
+ description: "`danger` marks a destructive action with red text and a red hover and active tint.",
21325
21851
  },
21326
21852
  {
21327
21853
  name: "inset",
21328
21854
  type: "boolean | null | undefined",
21329
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.",
21330
21858
  },
21331
21859
  {
21332
21860
  name: "radius",
21333
21861
  type: '"rounded" | "square" | "full" | null | undefined',
21334
21862
  required: false,
21863
+ defaultValue: '"full"',
21864
+ description: "Corner shape: `full` is a pill, `rounded` a soft rectangle, `square` has sharp corners.",
21335
21865
  },
21336
21866
  {
21337
21867
  name: "size",
21338
21868
  type: '"base" | "2xs" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | null | undefined',
21339
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.",
21340
21872
  },
21341
21873
  {
21342
21874
  name: "loading",
@@ -21592,11 +22124,15 @@ export const docsManifest = {
21592
22124
  name: "tone",
21593
22125
  type: '"neutral" | "brand" | "danger" | null | undefined',
21594
22126
  required: false,
22127
+ defaultValue: '"neutral"',
22128
+ description: "Semantic colour: `brand` for the primary action, `danger` for a destructive one.",
21595
22129
  },
21596
22130
  {
21597
22131
  name: "radius",
21598
22132
  type: '"rounded" | "square" | "full" | null | undefined',
21599
22133
  required: false,
22134
+ defaultValue: '"full"',
22135
+ description: "Corner shape: `full` is a pill (or circle when square), `rounded` a soft corner, `square` sharp.",
21600
22136
  },
21601
22137
  {
21602
22138
  name: "size",
@@ -21622,31 +22158,42 @@ export const docsManifest = {
21622
22158
  name: "square",
21623
22159
  type: "boolean | null | undefined",
21624
22160
  required: false,
22161
+ defaultValue: "false",
22162
+ description: "Lock width to height so an `icon-*` size draws a square or circle; ignored with `expandable`.",
21625
22163
  },
21626
22164
  {
21627
22165
  name: "emphasis",
21628
22166
  type: '"link" | "outline" | "solid" | "ghost" | "soft" | "transparent" | null | undefined',
21629
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.",
21630
22170
  },
21631
22171
  {
21632
22172
  name: "asInput",
21633
22173
  type: "boolean | null | undefined",
21634
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.",
21635
22177
  },
21636
22178
  {
21637
22179
  name: "align",
21638
22180
  type: '"center" | "end" | "start" | null | undefined',
21639
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.",
21640
22184
  },
21641
22185
  {
21642
22186
  name: "pressed",
21643
22187
  type: "boolean | null | undefined",
21644
22188
  required: false,
22189
+ defaultValue: "true",
22190
+ description: "Shrink slightly while held down (`:active`); `false` keeps the button still.",
21645
22191
  },
21646
22192
  {
21647
22193
  name: "testId",
21648
22194
  type: "string",
21649
22195
  required: false,
22196
+ description: "Rendered as `data-testid`, for Playwright selectors.",
21650
22197
  },
21651
22198
  {
21652
22199
  name: "suffixIcon",
@@ -22891,6 +23438,7 @@ export const docsManifest = {
22891
23438
  name: "image",
22892
23439
  type: "ReactNode",
22893
23440
  required: false,
23441
+ description: "Picture shown inside the tile, such as an `<img>` of the variant; omit it for a plain `color` tile.",
22894
23442
  },
22895
23443
  {
22896
23444
  name: "label",