@astryxdesign/core 0.1.4-canary.d267394 → 0.1.4-canary.d5cbae3

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 (190) hide show
  1. package/dist/Banner/Banner.d.ts.map +1 -1
  2. package/dist/Banner/Banner.js +8 -1
  3. package/dist/Calendar/Calendar.js +5 -1
  4. package/dist/Card/Card.d.ts +4 -2
  5. package/dist/Card/Card.d.ts.map +1 -1
  6. package/dist/Card/Card.js +15 -7
  7. package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
  8. package/dist/Chat/ChatToolCalls.js +8 -1
  9. package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
  10. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  11. package/dist/CheckboxInput/CheckboxInput.js +3 -1
  12. package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
  13. package/dist/ClickableCard/ClickableCard.js +26 -3
  14. package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
  15. package/dist/CodeBlock/CodeBlock.js +15 -3
  16. package/dist/Collapsible/Collapsible.d.ts +2 -1
  17. package/dist/Collapsible/Collapsible.d.ts.map +1 -1
  18. package/dist/Collapsible/Collapsible.js +11 -2
  19. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  20. package/dist/ContextMenu/ContextMenu.js +2 -0
  21. package/dist/DateTimeInput/DateTimeInput.d.ts +5 -2
  22. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  23. package/dist/DateTimeInput/DateTimeInput.js +4 -0
  24. package/dist/DateTimeInput/index.d.ts +1 -1
  25. package/dist/DateTimeInput/index.d.ts.map +1 -1
  26. package/dist/Icon/Icon.d.ts.map +1 -1
  27. package/dist/Icon/Icon.js +5 -1
  28. package/dist/InputGroup/InputGroup.js +2 -2
  29. package/dist/Item/Item.js +1 -1
  30. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  31. package/dist/Lightbox/Lightbox.js +26 -2
  32. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  33. package/dist/NumberInput/NumberInput.js +32 -16
  34. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  35. package/dist/PowerSearch/PowerSearch.js +39 -21
  36. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  37. package/dist/ProgressBar/ProgressBar.js +2 -1
  38. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  39. package/dist/Resizable/ResizeHandle.js +10 -2
  40. package/dist/SideNav/SideNav.d.ts.map +1 -1
  41. package/dist/SideNav/SideNav.js +6 -2
  42. package/dist/TabList/TabMenu.d.ts.map +1 -1
  43. package/dist/TabList/TabMenu.js +34 -7
  44. package/dist/Table/BaseTable.d.ts.map +1 -1
  45. package/dist/Table/BaseTable.js +8 -3
  46. package/dist/Table/plugins/pagination/paginateData.d.ts.map +1 -1
  47. package/dist/Table/plugins/pagination/paginateData.js +5 -1
  48. package/dist/Table/plugins/selection/useTableSelectionState.d.ts.map +1 -1
  49. package/dist/Table/plugins/selection/useTableSelectionState.js +11 -1
  50. package/dist/Table/plugins/sortable/useTableSortableState.d.ts.map +1 -1
  51. package/dist/Table/plugins/sortable/useTableSortableState.js +8 -4
  52. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  53. package/dist/TimeInput/TimeInput.js +6 -1
  54. package/dist/Toast/Toast.d.ts.map +1 -1
  55. package/dist/Toast/Toast.js +11 -3
  56. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  57. package/dist/Toast/ToastViewport.js +12 -0
  58. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  59. package/dist/Typeahead/BaseTypeahead.js +5 -2
  60. package/dist/astryx.css +6 -0
  61. package/dist/astryx.umd.js +46 -46
  62. package/dist/astryx.umd.js.map +4 -4
  63. package/dist/docs-types.d.ts +1 -1
  64. package/dist/docs-types.d.ts.map +1 -1
  65. package/dist/hooks/focusableSelector.d.ts +1 -1
  66. package/dist/hooks/focusableSelector.d.ts.map +1 -1
  67. package/dist/hooks/focusableSelector.js +1 -1
  68. package/dist/hooks/useFocusTrap.d.ts +3 -0
  69. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  70. package/dist/hooks/useFocusTrap.js +38 -1
  71. package/dist/theme/hct.d.ts +0 -15
  72. package/dist/theme/hct.d.ts.map +1 -1
  73. package/dist/theme/hct.js +9 -9
  74. package/dist/theme/tokens.d.ts +10 -2
  75. package/dist/theme/tokens.d.ts.map +1 -1
  76. package/dist/theme/tokens.js +220 -4
  77. package/dist/utils/color.d.ts +42 -0
  78. package/dist/utils/color.d.ts.map +1 -0
  79. package/dist/utils/color.js +150 -0
  80. package/dist/utils/index.d.ts +2 -0
  81. package/dist/utils/index.d.ts.map +1 -1
  82. package/dist/utils/index.js +2 -1
  83. package/dist/utils/timeParser.d.ts.map +1 -1
  84. package/dist/utils/timeParser.js +8 -5
  85. package/package.json +1 -1
  86. package/src/Avatar/Avatar.doc.mjs +11 -0
  87. package/src/Banner/Banner.doc.mjs +8 -0
  88. package/src/Banner/Banner.test.tsx +38 -0
  89. package/src/Banner/Banner.tsx +8 -1
  90. package/src/Calendar/Calendar.test.tsx +18 -0
  91. package/src/Calendar/Calendar.tsx +3 -0
  92. package/src/Card/Card.tsx +16 -6
  93. package/src/Chat/Chat.doc.mjs +1 -1
  94. package/src/Chat/ChatToolCalls.test.tsx +55 -0
  95. package/src/Chat/ChatToolCalls.tsx +10 -12
  96. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
  97. package/src/CheckboxInput/CheckboxInput.test.tsx +71 -4
  98. package/src/CheckboxInput/CheckboxInput.tsx +2 -0
  99. package/src/Citation/Citation.doc.mjs +5 -0
  100. package/src/ClickableCard/ClickableCard.tsx +45 -2
  101. package/src/CodeBlock/CodeBlock.doc.mjs +2 -2
  102. package/src/CodeBlock/CodeBlock.test.tsx +63 -2
  103. package/src/CodeBlock/CodeBlock.tsx +25 -1
  104. package/src/Collapsible/Collapsible.doc.mjs +3 -3
  105. package/src/Collapsible/Collapsible.tsx +19 -2
  106. package/src/Collapsible/CollapsibleGroup.test.tsx +16 -0
  107. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +5 -0
  108. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +10 -0
  109. package/src/CommandPalette/CommandPaletteInput.doc.mjs +6 -0
  110. package/src/CommandPalette/CommandPaletteItem.doc.mjs +6 -0
  111. package/src/CommandPalette/CommandPaletteList.doc.mjs +9 -0
  112. package/src/ContextMenu/ContextMenu.doc.mjs +15 -0
  113. package/src/ContextMenu/ContextMenu.test.tsx +15 -0
  114. package/src/ContextMenu/ContextMenu.tsx +2 -0
  115. package/src/ContextMenu/ContextMenuItem.doc.mjs +6 -0
  116. package/src/DateTimeInput/DateTimeInput.doc.mjs +3 -2
  117. package/src/DateTimeInput/DateTimeInput.test.tsx +109 -0
  118. package/src/DateTimeInput/DateTimeInput.tsx +8 -2
  119. package/src/DateTimeInput/index.ts +1 -0
  120. package/src/Dialog/DialogHeader.doc.mjs +45 -0
  121. package/src/DropdownMenu/DropdownMenu.doc.mjs +1 -1
  122. package/src/Field/FieldLabel.test.tsx +2 -2
  123. package/src/Icon/Icon.test.tsx +41 -29
  124. package/src/Icon/Icon.tsx +6 -2
  125. package/src/InputGroup/InputGroup.tsx +2 -2
  126. package/src/Item/Item.tsx +1 -1
  127. package/src/Lightbox/Lightbox.doc.mjs +5 -0
  128. package/src/Lightbox/Lightbox.test.tsx +123 -2
  129. package/src/Lightbox/Lightbox.tsx +29 -1
  130. package/src/NavMenu/NavMenu.doc.mjs +6 -0
  131. package/src/NumberInput/NumberInput.test.tsx +48 -3
  132. package/src/NumberInput/NumberInput.tsx +32 -15
  133. package/src/Overlay/Overlay.doc.mjs +6 -0
  134. package/src/Popover/Popover.test.tsx +65 -0
  135. package/src/PowerSearch/PowerSearch.doc.mjs +2 -2
  136. package/src/PowerSearch/PowerSearch.test.tsx +109 -1
  137. package/src/PowerSearch/PowerSearch.tsx +37 -16
  138. package/src/ProgressBar/ProgressBar.test.tsx +10 -0
  139. package/src/ProgressBar/ProgressBar.tsx +2 -1
  140. package/src/Resizable/ResizeHandle.test.tsx +180 -0
  141. package/src/Resizable/ResizeHandle.tsx +10 -2
  142. package/src/SegmentedControl/SegmentedControl.doc.mjs +1 -1
  143. package/src/SelectableCard/SelectableCard.doc.mjs +1 -1
  144. package/src/SideNav/SideNav.doc.mjs +1 -1
  145. package/src/SideNav/SideNav.test.tsx +20 -0
  146. package/src/SideNav/SideNav.tsx +6 -2
  147. package/src/TabList/TabList.test.tsx +185 -1
  148. package/src/TabList/TabMenu.tsx +45 -9
  149. package/src/Table/BaseTable.tsx +7 -2
  150. package/src/Table/Table.test.tsx +28 -0
  151. package/src/Table/plugins/pagination/paginateData.ts +5 -1
  152. package/src/Table/plugins/pagination/useTablePagination.test.tsx +13 -0
  153. package/src/Table/plugins/selection/useTableSelectionState.test.tsx +23 -0
  154. package/src/Table/plugins/selection/useTableSelectionState.tsx +11 -6
  155. package/src/Table/plugins/sortable/useTableSortableState.test.tsx +35 -1
  156. package/src/Table/plugins/sortable/useTableSortableState.tsx +8 -4
  157. package/src/TextArea/TextArea.test.tsx +3 -3
  158. package/src/TextInput/TextInput.test.tsx +3 -3
  159. package/src/TimeInput/TimeInput.test.tsx +37 -0
  160. package/src/TimeInput/TimeInput.tsx +11 -1
  161. package/src/Timestamp/Timestamp.doc.mjs +1 -1
  162. package/src/Toast/Toast.tsx +11 -3
  163. package/src/Toast/ToastViewport.test.tsx +64 -0
  164. package/src/Toast/ToastViewport.tsx +12 -0
  165. package/src/ToggleButton/ToggleButton.doc.mjs +1 -0
  166. package/src/Tokenizer/Tokenizer.doc.mjs +2 -2
  167. package/src/TopNav/TopNav.doc.mjs +1 -1
  168. package/src/TreeList/TreeList.doc.mjs +2 -2
  169. package/src/Typeahead/BaseTypeahead.doc.mjs +13 -4
  170. package/src/Typeahead/BaseTypeahead.tsx +5 -2
  171. package/src/Typeahead/Typeahead.doc.mjs +1 -1
  172. package/src/Typeahead/Typeahead.test.tsx +45 -1
  173. package/src/__tests__/TestIcon.tsx +26 -0
  174. package/src/docPropReferences.test.ts +2 -2
  175. package/src/docs-types.ts +2 -0
  176. package/src/hooks/focusableSelector.ts +1 -1
  177. package/src/hooks/useFocusTrap.doc.mjs +4 -2
  178. package/src/hooks/useFocusTrap.test.tsx +149 -1
  179. package/src/hooks/useFocusTrap.ts +50 -1
  180. package/src/theme/SyntaxTheme.doc.mjs +1 -1
  181. package/src/theme/derivedVarRegistry.test.ts +2 -2
  182. package/src/theme/hct.ts +9 -17
  183. package/src/theme/tokens.test.ts +182 -9
  184. package/src/theme/tokens.ts +239 -4
  185. package/src/theme/useTheme.test.tsx +20 -0
  186. package/src/utils/color.test.ts +133 -0
  187. package/src/utils/color.ts +148 -0
  188. package/src/utils/index.ts +3 -0
  189. package/src/utils/timeParser.test.ts +13 -0
  190. package/src/utils/timeParser.ts +8 -5
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../src/Banner/Banner.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAW,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAE/C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAsB5C;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;IACZ,OAAO,EAAE,IAAI,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,IAAI,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC5D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,MAAM,EAAE,YAAY,CAAC;IACrB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA2JD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,KAAK,EACL,WAAW,EACX,IAAI,EACJ,aAAqB,EACrB,SAAS,EACT,UAAU,EACV,SAAkB,EAClB,iBAAyB,EACzB,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,IAAI,EACR,EAAE,WAAW,sCA0Hb;yBA1Ie,MAAM"}
1
+ {"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../src/Banner/Banner.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAkB,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAsB5C;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;IACZ,OAAO,EAAE,IAAI,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,IAAI,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC5D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,MAAM,EAAE,YAAY,CAAC;IACrB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA2JD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,KAAK,EACL,WAAW,EACX,IAAI,EACJ,aAAqB,EACrB,SAAS,EACT,UAAU,EACV,SAAkB,EAClB,iBAAyB,EACzB,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,IAAI,EACR,EAAE,WAAW,sCAiIb;yBAjJe,MAAM"}
@@ -30,7 +30,7 @@
30
30
  * - /apps/storybook/stories/Banner.stories.tsx (storybook stories)
31
31
  * - /packages/cli/templates/blocks/components/Banner/ (showcase blocks)
32
32
  */
33
- import { useState } from 'react';
33
+ import { useId, useState } from 'react';
34
34
  import * as stylex from '@stylexjs/stylex';
35
35
  import { Button } from "../Button/index.js";
36
36
  import { Icon } from "../Icon/index.js";
@@ -249,6 +249,11 @@ export function Banner({
249
249
  }) {
250
250
  const [isDismissed, setIsDismissed] = useState(false);
251
251
  const [isExpanded, setIsExpanded] = useState(defaultIsExpanded);
252
+ // Links the expand/collapse toggle to the content region it shows/hides so
253
+ // assistive tech can move from the button to its controlled content
254
+ // (disclosure pattern). The region is conditionally rendered, so aria-controls
255
+ // below is set only while it's mounted to avoid a dangling reference.
256
+ const contentId = useId();
252
257
  const defaultIconName = defaultIconNames[status];
253
258
  const role = statusRole[status];
254
259
  const iconColor = statusIconColor[status];
@@ -333,6 +338,7 @@ export function Banner({
333
338
  }),
334
339
  onClick: handleToggleExpand,
335
340
  "aria-expanded": isExpanded,
341
+ "aria-controls": showContent ? contentId : undefined,
336
342
  isIconOnly: true
337
343
  }), isDismissable && /*#__PURE__*/_jsx(Button, {
338
344
  variant: "ghost",
@@ -349,6 +355,7 @@ export function Banner({
349
355
  })]
350
356
  })]
351
357
  }), showContent && /*#__PURE__*/_jsx("div", {
358
+ id: contentId,
352
359
  ...mergeProps(themeProps('banner-content', {
353
360
  container,
354
361
  status
@@ -660,7 +660,11 @@ function DayCell({
660
660
  type: "button",
661
661
  "data-date": day.iso,
662
662
  "aria-label": plainDateFormat(date, DATE_FORMAT_WITH_WEEKDAY),
663
- "aria-disabled": state.effectivelyDisabled || undefined,
663
+ "aria-disabled": state.effectivelyDisabled || undefined
664
+ // Mark today's cell programmatically (APG date-picker pattern), not just
665
+ // visually, so screen-reader users can identify the current date.
666
+ ,
667
+ "aria-current": state.isToday ? 'date' : undefined,
664
668
  disabled: isDisabled
665
669
  // Initial roving tab-stop seed; useGridFocus owns it after mount.
666
670
  ,
@@ -21,8 +21,10 @@ import type { BaseProps } from '../BaseProps';
21
21
  * - Non-semantic palette: `blue | cyan | gray | green | orange | pink | purple | red | teal | yellow`
22
22
  * Each uses the corresponding `--color-background-<name>` token (20% opacity tint).
23
23
  *
24
- * All variants include a transparent border to prevent layout jitter
25
- * when switching variants. Themes can override borderWidth/borderColor.
24
+ * Only `default` draws a visible border. Its border width is subtracted from
25
+ * the padding so the total inset (border + padding) equals the padding token —
26
+ * keeping content geometry faithful to the spacing scale and identical to the
27
+ * borderless variants. Themes can override borderWidth/borderColor.
26
28
  */
27
29
  export type CardVariant = 'default' | 'transparent' | 'muted' | 'blue' | 'cyan' | 'gray' | 'green' | 'orange' | 'pink' | 'purple' | 'red' | 'teal' | 'yellow';
28
30
  export type { SizeValue } from '../utils/types';
@@ -1 +1 @@
1
- {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../src/Card/Card.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAYrC,OAAO,KAAK,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAE3D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAO5C;;;;;;;;;;GAUG;AACH,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,aAAa,GACb,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,KAAK,GACL,MAAM,GACN,QAAQ,CAAC;AAkFb,YAAY,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAE9C,MAAM,WAAW,SAAU,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC1D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,IAAI,CAAC,EACnB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,OAAO,EACP,OAAmB,EACnB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,SAAS,+BAwDX;yBArEe,IAAI"}
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../src/Card/Card.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAYrC,OAAO,KAAK,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAE3D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAO5C;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,aAAa,GACb,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,KAAK,GACL,MAAM,GACN,QAAQ,CAAC;AAwFb,YAAY,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAE9C,MAAM,WAAW,SAAU,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC1D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,IAAI,CAAC,EACnB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,OAAO,EACP,OAAmB,EACnB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,SAAS,+BA0DX;yBAvEe,IAAI"}
package/dist/Card/Card.js CHANGED
@@ -34,8 +34,10 @@ import { themeProps } from "../utils/themeProps.js";
34
34
  * - Non-semantic palette: `blue | cyan | gray | green | orange | pink | purple | red | teal | yellow`
35
35
  * Each uses the corresponding `--color-background-<name>` token (20% opacity tint).
36
36
  *
37
- * All variants include a transparent border to prevent layout jitter
38
- * when switching variants. Themes can override borderWidth/borderColor.
37
+ * Only `default` draws a visible border. Its border width is subtracted from
38
+ * the padding so the total inset (border + padding) equals the padding token —
39
+ * keeping content geometry faithful to the spacing scale and identical to the
40
+ * borderless variants. Themes can override borderWidth/borderColor.
39
41
  */
40
42
  import { jsx as _jsx } from "react/jsx-runtime";
41
43
  // =============================================================================
@@ -47,13 +49,16 @@ const styles = {
47
49
  "--_card-radius": "x2kkz0m",
48
50
  kaIpWk: "x153u1i6",
49
51
  kVQacm: "x7giv3",
50
- kMzoRj: "x1litavf",
51
- ksu8eU: "x1y0btm7",
52
- kVAM5u: "x9r1u3d",
53
52
  $$css: true
54
53
  },
55
54
  withBorder: {
55
+ kMzoRj: "x1litavf",
56
+ ksu8eU: "x1y0btm7",
56
57
  kVAM5u: "xvy26l8",
58
+ kZCmMZ: "xs19ii7",
59
+ kwRFfy: "x12frdag",
60
+ kLKAdn: "x1nex4ik",
61
+ kGO01o: "xbv1mwh",
57
62
  $$css: true
58
63
  },
59
64
  scrollable: {
@@ -192,14 +197,17 @@ export function Card({
192
197
  ref: ref,
193
198
  ...mergeProps(themeProps('card', {
194
199
  variant
195
- }), stylex.props(styles.card, variantStyles[variant], variant === 'default' && styles.withBorder, hasFixedHeight && styles.scrollable, dynamicStyles.sizing(width ?? null, height ?? null, maxWidth ?? null, minHeight ?? null), ...container(useThemeDefault ? {
200
+ }), stylex.props(styles.card, variantStyles[variant], hasFixedHeight && styles.scrollable, dynamicStyles.sizing(width ?? null, height ?? null, maxWidth ?? null, minHeight ?? null), ...container(useThemeDefault ? {
196
201
  useThemeDefault: 'card'
197
202
  } : {
198
203
  paddingInnerX: paddingToken,
199
204
  paddingInnerY: paddingToken,
200
205
  paddingOuterX: paddingToken,
201
206
  paddingOuterY: paddingToken
202
- }), !useThemeDefault && effectivePadding !== 4 && paddingStyles[effectivePadding], !useThemeDefault && effectivePadding !== 4 && containerPaddingInlineVarStyles[effectivePadding], !useThemeDefault && effectivePadding !== 4 && containerPaddingBlockStartVarStyles[effectivePadding], !useThemeDefault && effectivePadding !== 4 && containerPaddingBlockEndVarStyles[effectivePadding], xstyle), className, style),
207
+ }), !useThemeDefault && effectivePadding !== 4 && paddingStyles[effectivePadding], !useThemeDefault && effectivePadding !== 4 && containerPaddingInlineVarStyles[effectivePadding], !useThemeDefault && effectivePadding !== 4 && containerPaddingBlockStartVarStyles[effectivePadding], !useThemeDefault && effectivePadding !== 4 && containerPaddingBlockEndVarStyles[effectivePadding],
208
+ // Applied after the container padding so the border-inset calc wins;
209
+ // it reads the --container-padding-* vars set above.
210
+ variant === 'default' && styles.withBorder, xstyle), className, style),
203
211
  ...props,
204
212
  children: children
205
213
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ChatToolCalls.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatToolCalls.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,EAAwB,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AACnE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAsB5C,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,SAAS,GACT,UAAU,GACV,OAAO,CAAC;AAEZ,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,2FAA2F;IAC3F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6FAA6F;IAC7F,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACnE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,+BAA+B;IAC/B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;CAClD;AAsXD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,4BAkJtD;yBAlJe,aAAa"}
1
+ {"version":3,"file":"ChatToolCalls.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatToolCalls.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,EAA+B,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAC1E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAsB5C,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAE9E,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,2FAA2F;IAC3F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6FAA6F;IAC7F,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACnE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,+BAA+B;IAC/B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;CAClD;AAqXD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,4BAqJtD;yBArJe,aAAa"}
@@ -17,7 +17,7 @@
17
17
  * data prop matches that shape directly — no nested compound components
18
18
  * for builders to wire up.
19
19
  */
20
- import React, { useState, useCallback } from 'react';
20
+ import React, { useState, useCallback, useId } from 'react';
21
21
  import * as stylex from '@stylexjs/stylex';
22
22
  import "../theme/tokens.stylex.js";
23
23
  import { colorVars, spacingVars, typeScaleVars, typographyVars, fontWeightVars, radiusVars, durationVars, easeVars } from "../theme/tokens.stylex.js";
@@ -106,10 +106,13 @@ function CallRow({
106
106
  const status = call.status ?? 'complete';
107
107
  const hasDetail = call.resultDetail != null;
108
108
  const [isDetailOpen, setIsDetailOpen] = useState(false);
109
+ const detailId = useId();
109
110
  const toggleDetail = hasDetail ? () => setIsDetailOpen(prev => !prev) : undefined;
110
111
  const row = /*#__PURE__*/_jsxs("div", {
111
112
  role: hasDetail ? 'button' : undefined,
112
113
  tabIndex: hasDetail ? 0 : undefined,
114
+ "aria-expanded": hasDetail ? isDetailOpen : undefined,
115
+ "aria-controls": hasDetail && isDetailOpen ? detailId : undefined,
113
116
  onClick: toggleDetail,
114
117
  onKeyDown: hasDetail ? e => {
115
118
  if (e.key === 'Enter' || e.key === ' ') {
@@ -205,6 +208,7 @@ function CallRow({
205
208
  }
206
209
  return /*#__PURE__*/_jsxs("div", {
207
210
  children: [row, isDetailOpen && /*#__PURE__*/_jsx("div", {
211
+ id: detailId,
208
212
  ...{
209
213
  className: "x1f43n9v x1wesfrj"
210
214
  },
@@ -253,6 +257,7 @@ export function ChatToolCalls(props) {
253
257
  } = props;
254
258
  const autoDefault = defaultIsExpanded ?? false;
255
259
  const [internalExpanded, setInternalExpanded] = useState(autoDefault);
260
+ const contentId = useId();
256
261
  const isControlled = controlledExpanded !== undefined;
257
262
  const isExpanded = isControlled ? controlledExpanded : internalExpanded;
258
263
  const toggle = useCallback(() => {
@@ -289,6 +294,7 @@ export function ChatToolCalls(props) {
289
294
  role: "button",
290
295
  tabIndex: 0,
291
296
  "aria-expanded": isExpanded,
297
+ "aria-controls": contentId,
292
298
  onClick: toggle,
293
299
  onKeyDown: e => {
294
300
  if (e.key === 'Enter' || e.key === ' ') {
@@ -378,6 +384,7 @@ export function ChatToolCalls(props) {
378
384
  })
379
385
  })]
380
386
  }), /*#__PURE__*/_jsx("div", {
387
+ id: contentId,
381
388
  ...{
382
389
  0: {
383
390
  className: "xrvj5dj xihq33y xb0j27v"
@@ -158,7 +158,7 @@ export interface CheckboxInputProps extends Omit<BaseProps, 'onChange'> {
158
158
  * />
159
159
  * ```
160
160
  */
161
- export declare function CheckboxInput({ label, isLabelHidden, description, onChange, changeAction, isLoading, value, isDisabled, htmlName, disabledMessage, isReadOnly, isOptional, isRequired, size, onFocus, onBlur, labelIcon, status, width, xstyle, className, style, ref, }: CheckboxInputProps): import("react").JSX.Element;
161
+ export declare function CheckboxInput({ label, isLabelHidden, description, onChange, changeAction, isLoading, value, isDisabled, htmlName, disabledMessage, isReadOnly, isOptional, isRequired, size, onFocus, onBlur, labelIcon, status, width, xstyle, className, style, ref, ...rest }: CheckboxInputProps): import("react").JSX.Element;
162
162
  export declare namespace CheckboxInput {
163
163
  var displayName: string;
164
164
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxInput.d.ts","sourceRoot":"","sources":["../../src/CheckboxInput/CheckboxInput.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAY3C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAG9C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AA8IhD,QAAA,MAAM,iBAAiB;;;;;;;;;EASrB,CAAC;AAmCH,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE/D,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IACrE,wDAAwD;IACxD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxE;;OAEG;IACH,YAAY,CAAC,EAAE,CACb,OAAO,EAAE,OAAO,EAChB,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAC7B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,KAAK,EAAE,OAAO,GAAG,eAAe,CAAC;IACjC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACpD;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACnD;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAOD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,aAAqB,EACrB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,SAAiB,EACjB,KAAK,EACL,UAAkB,EAClB,QAAQ,EACR,eAAe,EACf,UAAkB,EAClB,UAAkB,EAClB,UAAkB,EAClB,IAAW,EACX,OAAO,EACP,MAAM,EACN,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,GACJ,EAAE,kBAAkB,+BAuNpB;yBA/Oe,aAAa"}
1
+ {"version":3,"file":"CheckboxInput.d.ts","sourceRoot":"","sources":["../../src/CheckboxInput/CheckboxInput.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAY3C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAG9C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AA8IhD,QAAA,MAAM,iBAAiB;;;;;;;;;EASrB,CAAC;AAmCH,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE/D,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IACrE,wDAAwD;IACxD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxE;;OAEG;IACH,YAAY,CAAC,EAAE,CACb,OAAO,EAAE,OAAO,EAChB,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAC7B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,KAAK,EAAE,OAAO,GAAG,eAAe,CAAC;IACjC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACpD;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACnD;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAOD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,aAAqB,EACrB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,SAAiB,EACjB,KAAK,EACL,UAAkB,EAClB,QAAQ,EACR,eAAe,EACf,UAAkB,EAClB,UAAkB,EAClB,UAAkB,EAClB,IAAW,EACX,OAAO,EACP,MAAM,EACN,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,IAAI,EACR,EAAE,kBAAkB,+BAwNpB;yBAjPe,aAAa"}
@@ -219,7 +219,8 @@ export function CheckboxInput({
219
219
  xstyle,
220
220
  className,
221
221
  style,
222
- ref
222
+ ref,
223
+ ...rest
223
224
  }) {
224
225
  const id = useId();
225
226
  const descriptionID = useId();
@@ -292,6 +293,7 @@ export function CheckboxInput({
292
293
  children: [/*#__PURE__*/_jsxs("div", {
293
294
  ...stylex.props(styles.checkboxWrapper, wrapperSizeStyles[size]),
294
295
  children: [/*#__PURE__*/_jsx("input", {
296
+ ...rest,
295
297
  ref: mergeRefs(ref, indeterminateRef, disabledMessageTooltip.positionRef),
296
298
  id: id,
297
299
  type: "checkbox"
@@ -1 +1 @@
1
- {"version":3,"file":"ClickableCard.d.ts","sourceRoot":"","sources":["../../src/ClickableCard/ClickableCard.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAC,KAAK,SAAS,EAAE,KAAK,UAAU,EAAU,KAAK,GAAG,EAAC,MAAM,OAAO,CAAC;AAIxE,OAAO,KAAK,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAG3D,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAoE5C,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,yCAAyC;IACzC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAE1B;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAEnD;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB,yBAAyB;IACzB,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,IAAI,EACJ,MAAM,EACN,UAAkB,EAClB,QAAQ,EACR,OAAO,EACP,OAAmB,EACnB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,GAAG,EACH,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,aAAa,EACxB,KAAK,EACL,GAAG,KAAK,EACT,EAAE,kBAAkB,+BAuEpB;yBAzFe,aAAa"}
1
+ {"version":3,"file":"ClickableCard.d.ts","sourceRoot":"","sources":["../../src/ClickableCard/ClickableCard.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAC,KAAK,SAAS,EAAE,KAAK,UAAU,EAAU,KAAK,GAAG,EAAC,MAAM,OAAO,CAAC;AASxE,OAAO,KAAK,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAG3D,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAmG5C,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,yCAAyC;IACzC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAE1B;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAEnD;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB,yBAAyB;IACzB,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,IAAI,EACJ,MAAM,EACN,UAAkB,EAClB,QAAQ,EACR,OAAO,EACP,OAAmB,EACnB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,GAAG,EACH,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,aAAa,EACxB,KAAK,EACL,GAAG,KAAK,EACT,EAAE,kBAAkB,+BA8EpB;yBAhGe,aAAa"}
@@ -30,7 +30,7 @@
30
30
  import { useRef } from 'react';
31
31
  import * as stylex from '@stylexjs/stylex';
32
32
  import "../theme/tokens.stylex.js";
33
- import { colorVars, durationVars, easeVars } from "../theme/tokens.stylex.js";
33
+ import { borderVars, colorVars, durationVars, easeVars } from "../theme/tokens.stylex.js";
34
34
  import { mergeProps, mergeRefs } from "../utils/index.js";
35
35
  import { Card } from "../Card/Card.js";
36
36
  import { useClickableContainer } from "../hooks/useClickableContainer.js";
@@ -59,7 +59,6 @@ const styles = {
59
59
  k5JduY: "x1s928wv",
60
60
  kwXMNM: "x1j6awrg",
61
61
  kv0HGH: "xarstr8",
62
- kUfP38: "x1k48kgn",
63
62
  kloYau: "x2q1x1w",
64
63
  kRicXK: "x1ywzrc5",
65
64
  kPNhGg: "x97pup0",
@@ -72,6 +71,25 @@ const styles = {
72
71
  kJs8I2: "x1vwwndy",
73
72
  $$css: true
74
73
  },
74
+ borderless: {
75
+ kMzoRj: "xc342km",
76
+ $$css: true
77
+ },
78
+ bordered: {
79
+ kVAM5u: "x14i3s5s",
80
+ kZCmMZ: "xs19ii7",
81
+ kwRFfy: "x12frdag",
82
+ kLKAdn: "x1nex4ik",
83
+ kGO01o: "xbv1mwh",
84
+ k1ekBW: "xshfolx",
85
+ kIyJzY: "xuedmi6",
86
+ kAMwcw: "xlr8y92",
87
+ $$css: true
88
+ },
89
+ borderedHoverOnPointer: {
90
+ kbt25U: "x1ww4t2b",
91
+ $$css: true
92
+ },
75
93
  disabled: {
76
94
  kkrTdU: "x1h6gzvc",
77
95
  kSiTet: "xbyyjgo",
@@ -157,6 +175,11 @@ export function ClickableCard({
157
175
  onMouseUpProp(e);
158
176
  } : onMouseUp;
159
177
  const isLink = href != null;
178
+
179
+ // Only the `default` variant has a visible border. Card draws a transparent
180
+ // 1px border on every other variant purely to avoid layout jitter; we drop
181
+ // it here so the hover overlay covers the full box with no untinted ring.
182
+ const hasBorder = variant === 'default';
160
183
  return /*#__PURE__*/_jsxs(Card, {
161
184
  ref: mergeRefs(ref, containerRef),
162
185
  width: width,
@@ -170,7 +193,7 @@ export function ClickableCard({
170
193
  className: classNameProp,
171
194
  style
172
195
  }),
173
- xstyle: [styles.interactive, styles.focusWithin, !isDisabled && styles.overlay, !isDisabled && styles.hoverOnPointer, isDisabled && styles.disabled, xstyleProp],
196
+ xstyle: [styles.interactive, styles.focusWithin, hasBorder ? styles.bordered : styles.borderless, !isDisabled && styles.overlay, !isDisabled && styles.hoverOnPointer, !isDisabled && hasBorder && styles.borderedHoverOnPointer, isDisabled && styles.disabled, xstyleProp],
174
197
  onClick: !isDisabled ? onClick : undefined,
175
198
  onMouseUp: !isDisabled ? handleMouseUp : undefined,
176
199
  ...props,
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../src/CodeBlock/CodeBlock.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAyB5C,OAAO,EAAc,KAAK,qBAAqB,EAAC,MAAM,iBAAiB,CAAC;AA8SxE,MAAM,WAAW,cAAe,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC/D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,CACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,KACb;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAClD,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5C;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC;AAgOD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,QAAsB,EACtB,KAAK,EACL,gBAAuB,EACvB,cAAsB,EACtB,cAAc,EACd,aAAoB,EACpB,MAAM,EACN,SAAiB,EACjB,SAAS,EACT,aAAqB,EACrB,oBAAyB,EACzB,IAAW,EACX,KAAK,EAAE,SAAyB,EAChC,SAAkB,EAClB,SAAS,EAAE,eAAe,EAC1B,aAAsB,EACtB,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,cAAc,qBAwMhB;yBAhOe,SAAS"}
1
+ {"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../src/CodeBlock/CodeBlock.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA0B5C,OAAO,EAAc,KAAK,qBAAqB,EAAC,MAAM,iBAAiB,CAAC;AAyTxE,MAAM,WAAW,cAAe,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC/D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,CACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,KACb;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAClD,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5C;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC;AAgOD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,QAAsB,EACtB,KAAK,EACL,gBAAuB,EACvB,cAAsB,EACtB,cAAc,EACd,aAAoB,EACpB,MAAM,EACN,SAAiB,EACjB,SAAS,EACT,aAAqB,EACrB,oBAAyB,EACzB,IAAW,EACX,KAAK,EAAE,SAAyB,EAChC,SAAkB,EAClB,SAAS,EAAE,eAAe,EAC1B,aAAsB,EACtB,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,cAAc,qBAmNhB;yBA3Oe,SAAS"}
@@ -8,12 +8,13 @@
8
8
  * @output Exports CodeBlock component and CodeBlockProps
9
9
  * @position Core implementation; read-only syntax-highlighted code display
10
10
  */
11
- import { useInsertionEffect, useEffect, useRef, useState, useCallback, useMemo } from 'react';
11
+ import { useInsertionEffect, useEffect, useId, useRef, useState, useCallback, useMemo } from 'react';
12
12
  import * as React from 'react';
13
13
  import * as stylex from '@stylexjs/stylex';
14
14
  import "../theme/tokens.stylex.js";
15
15
  import { colorVars, spacingVars, radiusVars, typographyVars, fontWeightVars, typeScaleVars, borderVars, durationVars, easeVars } from "../theme/tokens.stylex.js";
16
16
  import { mergeProps } from "../utils/index.js";
17
+ import { useAnnounce } from "../hooks/useAnnounce.js";
17
18
  import { Icon } from "../Icon/index.js";
18
19
  import { tokenize, tokenizeAsync, flatTokensToLines, SYNC_TOKENIZE_THRESHOLD } from "./tokenizer.js";
19
20
  import { ensureHighlightStyles } from "./highlightStyles.js";
@@ -378,6 +379,7 @@ export function CodeBlock({
378
379
  ...props
379
380
  }) {
380
381
  const [copied, setCopied] = useState(false);
382
+ const announce = useAnnounce();
381
383
  const useSpans = highlightMode === 'spans' || highlightMode === 'auto' && !hasHighlightAPI() || highlightMode === 'auto' && isSafari();
382
384
  const lines = useMemo(() => {
383
385
  const l = code.split('\n');
@@ -392,18 +394,26 @@ export function CodeBlock({
392
394
  try {
393
395
  await navigator.clipboard.writeText(code);
394
396
  setCopied(true);
397
+ // Swapping the button's aria-label alone isn't reliably announced by
398
+ // screen readers, so confirm the copy via a polite live region.
399
+ announce('Copied');
395
400
  onCopy?.();
396
401
  setTimeout(() => setCopied(false), 2000);
397
402
  } catch {
398
403
  // Clipboard failures leave the copied state unchanged.
399
404
  }
400
- }, [code, onCopy]);
405
+ }, [code, onCopy, announce]);
401
406
  const sizeStyle = size === 'sm' ? styles.sizeSm : styles.sizeMd;
402
407
  const gutterSizeStyle = size === 'sm' ? styles.gutterSm : styles.gutterMd;
403
408
  const languageLabel = hasLanguageLabel && language !== 'plaintext' ? language : null;
404
409
  const showHeader = title != null || languageLabel != null;
405
410
  const canCollapse = isCollapsible && lines.length >= collapsibleThreshold;
406
411
  const [isCollapsed, setIsCollapsed] = useState(false);
412
+ // Links the collapsible header to the code region it shows/hides so assistive
413
+ // tech can move from the button to its controlled content (disclosure
414
+ // pattern). The region stays mounted when collapsed (CSS grid animation), so
415
+ // this is always a resolvable reference — aria-controls can be unconditional.
416
+ const regionId = useId();
407
417
  const scrollContainerRef = useRef(null);
408
418
  const scrollStyle = maxHeight ? {
409
419
  maxHeight: typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight
@@ -444,6 +454,7 @@ export function CodeBlock({
444
454
  role: canCollapse ? 'button' : undefined,
445
455
  tabIndex: canCollapse ? 0 : undefined,
446
456
  "aria-expanded": canCollapse ? !isCollapsed : undefined,
457
+ "aria-controls": canCollapse ? regionId : undefined,
447
458
  onClick: canCollapse ? () => setIsCollapsed(prev => !prev) : undefined,
448
459
  onKeyDown: canCollapse ? e => {
449
460
  if (e.key === 'Enter' || e.key === ' ') {
@@ -456,7 +467,7 @@ export function CodeBlock({
456
467
  className: "x78zum5 x6s0dn4 x98rzlu xeuugli x1717udv xjbqb8w x1heor9g xln7xf2 x1yc453h"
457
468
  },
458
469
  1: {
459
- className: "x78zum5 x6s0dn4 x98rzlu xeuugli x1717udv xjbqb8w x1heor9g xln7xf2 x1yc453h x1ypdohk x87ps6o"
470
+ className: "x78zum5 x6s0dn4 x98rzlu xeuugli x1717udv xjbqb8w x1heor9g xln7xf2 x1yc453h x1ypdohk x87ps6o x17nn4n9 x1wfwxd8 x7s97pk"
460
471
  }
461
472
  }[!!canCollapse << 0],
462
473
  children: /*#__PURE__*/_jsxs("span", {
@@ -541,6 +552,7 @@ export function CodeBlock({
541
552
  }), stylex.props(styles.root, dynamicStyles.width(widthProp), containerStyles[container], xstyle), className, style),
542
553
  ...props,
543
554
  children: [headerEl, canCollapse ? /*#__PURE__*/_jsx("div", {
555
+ id: regionId,
544
556
  ...{
545
557
  0: {
546
558
  className: "xrvj5dj x1tu4anv x1qn9uv2 x80gvsz xlr8y92"
@@ -6,7 +6,8 @@
6
6
  *
7
7
  * Collapsible is a standalone primitive that makes any content collapsible.
8
8
  * It renders a trigger area (always visible) and a content area that toggles.
9
- * Handles state management, accessibility (aria-expanded), and chevron indicator.
9
+ * Handles state management, accessibility (aria-expanded + aria-controls linking
10
+ * the trigger to its content region), and chevron indicator.
10
11
  *
11
12
  * Works standalone or coordinated by CollapsibleGroup via the `value` prop.
12
13
  * When the surrounding CollapsibleGroup enables `dividers`, each Collapsible
@@ -1 +1 @@
1
- {"version":3,"file":"Collapsible.d.ts","sourceRoot":"","sources":["../../src/Collapsible/Collapsible.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAM,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAgB1C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAwF5C,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;OAGG;IACH,OAAO,EAAE,SAAS,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,QAAQ,EACR,aAAa,EACb,MAAM,EAAE,gBAAgB,EACxB,YAAY,EACZ,KAAK,EACL,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,gBAAgB,+BAgElB;yBA5Ee,WAAW"}
1
+ {"version":3,"file":"Collapsible.d.ts","sourceRoot":"","sources":["../../src/Collapsible/Collapsible.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAa,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAgBjD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAkG5C,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;OAGG;IACH,OAAO,EAAE,SAAS,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,QAAQ,EACR,aAAa,EACb,MAAM,EAAE,gBAAgB,EACxB,YAAY,EACZ,KAAK,EACL,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,gBAAgB,+BAsElB;yBAlFe,WAAW"}
@@ -10,7 +10,8 @@
10
10
  *
11
11
  * Collapsible is a standalone primitive that makes any content collapsible.
12
12
  * It renders a trigger area (always visible) and a content area that toggles.
13
- * Handles state management, accessibility (aria-expanded), and chevron indicator.
13
+ * Handles state management, accessibility (aria-expanded + aria-controls linking
14
+ * the trigger to its content region), and chevron indicator.
14
15
  *
15
16
  * Works standalone or coordinated by CollapsibleGroup via the `value` prop.
16
17
  * When the surrounding CollapsibleGroup enables `dividers`, each Collapsible
@@ -25,7 +26,7 @@
25
26
  * - /apps/storybook/stories/Collapsible.stories.tsx
26
27
  * - /packages/cli/templates/blocks/components/Collapsible/ (showcase blocks)
27
28
  */
28
- import { use } from 'react';
29
+ import { use, useId } from 'react';
29
30
  import * as stylex from '@stylexjs/stylex';
30
31
  import "../theme/tokens.stylex.js";
31
32
  import { borderVars, colorVars, typographyVars, fontWeightVars, spacingVars, typeScaleVars, durationVars, easeVars } from "../theme/tokens.stylex.js";
@@ -53,6 +54,8 @@ const styles = {
53
54
  kMwMTN: "x1tgivj0",
54
55
  k9WMMc: "x1yc453h",
55
56
  k8WAf4: "xt970qd",
57
+ kI3sdo: "x17nn4n9",
58
+ kInvED: "x1wfwxd8 x7s97pk",
56
59
  $$css: true
57
60
  },
58
61
  contentHidden: {
@@ -179,6 +182,10 @@ export function Collapsible({
179
182
  const isDivided = presentation != null && presentation.dividers !== 'none';
180
183
  const density = presentation?.density ?? null;
181
184
  const chevronIcon = getIcon('chevronDown');
185
+
186
+ // Links the trigger to the region it shows/hides so assistive tech can move
187
+ // from the button to its controlled content (disclosure pattern).
188
+ const contentId = useId();
182
189
  return /*#__PURE__*/_jsxs("div", {
183
190
  ref: ref,
184
191
  ...mergeProps(themeProps('collapsible', {
@@ -190,6 +197,7 @@ export function Collapsible({
190
197
  type: "button",
191
198
  onClick: toggle,
192
199
  "aria-expanded": isOpen,
200
+ "aria-controls": contentId,
193
201
  ...stylex.props(styles.trigger, density != null && triggerDensity[density]),
194
202
  children: [/*#__PURE__*/_jsx("span", {
195
203
  ...{
@@ -208,6 +216,7 @@ export function Collapsible({
208
216
  children: chevronIcon
209
217
  })]
210
218
  }), /*#__PURE__*/_jsx("div", {
219
+ id: contentId,
211
220
  ...stylex.props(styles.content, density != null && contentDensity[density], !isOpen && styles.contentHidden),
212
221
  children: presentation != null ? /*#__PURE__*/_jsx(CollapsibleGroupPresentationContext, {
213
222
  value: null,
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../src/ContextMenu/ContextMenu.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAON,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAqBrC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AAsCtC,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAEvD,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAErD,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAMnD,UAAU,oBAAqB,SAAQ,SAAS;IAC9C,oDAAoD;IACpD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IAC9C,+DAA+D;IAC/D,QAAQ,EAAE,SAAS,CAAC;IACpB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,wCAAwC;IACxC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,oBAAqB,SAAQ,oBAAoB;IACzD,gDAAgD;IAChD,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,UAAU,wBAAyB,SAAQ,oBAAoB;IAC7D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,+CAA+C;IAC/C,WAAW,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,wBAAwB,CAAC;AAM/E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,SAAS,EACT,IAAW,EACX,KAAsB,EACtB,UAAkB,EAClB,YAAY,EACZ,GAAG,EACH,SAAS,EACT,KAAK,EACL,MAAM,EACN,aAAa,EACb,aAAa,EAAE,MAAM,EACrB,GAAG,KAAK,EACT,EAAE,gBAAgB,qBAwOlB;yBAtPe,WAAW"}
1
+ {"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../src/ContextMenu/ContextMenu.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAON,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAqBrC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AAuCtC,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAEvD,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAErD,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAMnD,UAAU,oBAAqB,SAAQ,SAAS;IAC9C,oDAAoD;IACpD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IAC9C,+DAA+D;IAC/D,QAAQ,EAAE,SAAS,CAAC;IACpB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,wCAAwC;IACxC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,oBAAqB,SAAQ,oBAAoB;IACzD,gDAAgD;IAChD,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,UAAU,wBAAyB,SAAQ,oBAAoB;IAC7D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,+CAA+C;IAC/C,WAAW,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,wBAAwB,CAAC;AAM/E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,SAAS,EACT,IAAW,EACX,KAAsB,EACtB,UAAkB,EAClB,YAAY,EACZ,GAAG,EACH,SAAS,EACT,KAAK,EACL,MAAM,EACN,aAAa,EACb,aAAa,EAAE,MAAM,EACrB,GAAG,KAAK,EACT,EAAE,gBAAgB,qBAyOlB;yBAvPe,WAAW"}
@@ -60,6 +60,7 @@ const styles = {
60
60
  k1ekBW: "x19991ni",
61
61
  kIyJzY: "xuedmi6",
62
62
  kAMwcw: "xlr8y92",
63
+ kfSwDN: "x87ps6o",
63
64
  $$css: true
64
65
  },
65
66
  popover: {
@@ -297,6 +298,7 @@ export function ContextMenu({
297
298
  role: "menu",
298
299
  "aria-label": label,
299
300
  onKeyDown: listKeyDown,
301
+ onContextMenu: e => e.preventDefault(),
300
302
  ...mergeProps(themeProps('context-menu'), stylex.props(styles.menu, xstyle), className, style),
301
303
  children: /*#__PURE__*/_jsx(DropdownMenuContext, {
302
304
  value: contextValue,
@@ -6,6 +6,8 @@ export type ISODateTimeString = string & {
6
6
  };
7
7
  export type DateTimeInputHourFormat = '12h' | '24h';
8
8
  export type DateTimeInputSize = 'sm' | 'md' | 'lg';
9
+ /** Supported minute increments for arrow-key stepping of the time field. */
10
+ export type DateTimeInputTimeIncrement = 1 | 5 | 10 | 15 | 30;
9
11
  export type { InputStatus as DateTimeInputStatus, InputStatusType as DateTimeInputStatusType, } from '../Field';
10
12
  export interface DateTimeInputProps extends Omit<BaseProps, 'onChange' | 'defaultValue'> {
11
13
  /** Ref forwarded to the date input element */
@@ -104,10 +106,11 @@ export interface DateTimeInputProps extends Omit<BaseProps, 'onChange' | 'defaul
104
106
  */
105
107
  hourFormat?: DateTimeInputHourFormat;
106
108
  /**
107
- * Time increment in minutes when using arrow keys in the time input.
109
+ * Minutes added or subtracted when stepping the time field with the arrow
110
+ * keys. Constrained to a set of sensible increments.
108
111
  * @default 1
109
112
  */
110
- timeIncrement?: number;
113
+ timeIncrement?: DateTimeInputTimeIncrement;
111
114
  /**
112
115
  * Whether to show a clear button when a value is set.
113
116
  * @default false
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeInput.d.ts","sourceRoot":"","sources":["../../src/DateTimeInput/DateTimeInput.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DateTimeInput.d.ts","sourceRoot":"","sources":["../../src/DateTimeInput/DateTimeInput.tsx"],"names":[],"mappings":"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"}
@@ -32,6 +32,8 @@ import { parseDateInput, parseTimeInput, formatDisplayTime12h, formatDisplayTime
32
32
  import { plainDateFromISO, plainDateToISO, plainDateFormat, DATE_FORMAT_LONG } from "../utils/plainDate.js";
33
33
  import { useSize } from "../SizeContext/SizeContext.js";
34
34
  import { themeProps } from "../utils/themeProps.js";
35
+
36
+ /** Supported minute increments for arrow-key stepping of the time field. */
35
37
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
36
38
  const styles = {
37
39
  row: {
@@ -598,8 +600,10 @@ export function DateTimeInput({
598
600
  "aria-disabled": showsDisabledMessage ? 'true' : undefined,
599
601
  readOnly: showsDisabledMessage || undefined,
600
602
  "aria-label": timeLabel ?? `${label} time`,
603
+ "aria-describedby": ariaDescribedBy,
601
604
  "aria-required": isRequired === true ? 'true' : undefined,
602
605
  "aria-invalid": status?.type === 'error' || !isTimeInputValid ? 'true' : undefined,
606
+ "aria-busy": isBusy || undefined,
603
607
  ...{
604
608
  0: {
605
609
  className: "x1lliihq x98rzlu xeuugli xc342km xng3xce x1717udv x9ynric xjm74w1 x6pjikd xw6l6zx x1tgivj0 xjbqb8w x1a2a7pz xeyghm5"
@@ -5,5 +5,5 @@
5
5
  * @position Package entry point for DateTimeInput
6
6
  */
7
7
  export { DateTimeInput } from './DateTimeInput';
8
- export type { DateTimeInputProps, DateTimeInputSize, DateTimeInputHourFormat, DateTimeInputStatus, DateTimeInputStatusType, ISODateTimeString, } from './DateTimeInput';
8
+ export type { DateTimeInputProps, DateTimeInputSize, DateTimeInputHourFormat, DateTimeInputTimeIncrement, DateTimeInputStatus, DateTimeInputStatusType, ISODateTimeString, } from './DateTimeInput';
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/DateTimeInput/index.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/DateTimeInput/index.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../src/Icon/Icon.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,EAAC,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/D,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAG3C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAqBnD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2Df,CAAC;AAEH;;;GAGG;AACH,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;EAiBd,CAAC;AAiCH,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,WAAW,CAAC;AACjD,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,UAAU,CAAC;AAE/C;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,SAAU,SAAQ,IAAI,CACrC,QAAQ,CAAC,aAAa,CAAC,EACvB,KAAK,GAAG,OAAO,CAChB;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/B;;;;OAIG;IACH,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAMD;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,EACnB,IAAI,EACJ,KAAiB,EACjB,IAAW,EACX,GAAG,EACH,GAAG,KAAK,EACT,EAAE,SAAS,qBA0BX;yBAhCe,IAAI;;;AA6EpB;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,KAAK,CAAC,SAAS,GAAG,QAAQ,EAChC,KAAK,CAAC,EAAE;IAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAC,GAC3C,KAAK,CAAC,SAAS,CAYjB"}
1
+ {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../src/Icon/Icon.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,EAAC,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/D,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAG3C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAqBnD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2Df,CAAC;AAEH;;;GAGG;AACH,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;EAiBd,CAAC;AAiCH,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,WAAW,CAAC;AACjD,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,UAAU,CAAC;AAE/C;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,SAAU,SAAQ,IAAI,CACrC,QAAQ,CAAC,aAAa,CAAC,EACvB,KAAK,GAAG,OAAO,CAChB;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/B;;;;OAIG;IACH,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAMD;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,EACnB,IAAI,EACJ,KAAiB,EACjB,IAAW,EACX,GAAG,EACH,GAAG,KAAK,EACT,EAAE,SAAS,qBA0BX;yBAhCe,IAAI;;;AAiFpB;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,KAAK,CAAC,SAAS,GAAG,QAAQ,EAChC,KAAK,CAAC,EAAE;IAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAC,GAC3C,KAAK,CAAC,SAAS,CAYjB"}
package/dist/Icon/Icon.js CHANGED
@@ -262,12 +262,16 @@ function IconFromRegistry({
262
262
  return null;
263
263
  }
264
264
  return /*#__PURE__*/_jsx("span", {
265
+ // Decorative by default, but placed BEFORE the prop spread so consumers
266
+ // can override it (e.g. `aria-hidden={false}` + `role="img"` +
267
+ // `aria-label`) to expose a meaningful standalone icon. This matches
268
+ // component-mode Icon, which already sets aria-hidden before its spread.
269
+ "aria-hidden": "true",
265
270
  ...spanProps,
266
271
  ...mergeProps(themeProps('icon', {
267
272
  size,
268
273
  color
269
274
  }), stylex.props(styles.span, colorStyles[color], spanSizeStyles[size])),
270
- "aria-hidden": "true",
271
275
  children: resolvedIcon
272
276
  });
273
277
  }
@@ -122,11 +122,11 @@ export function InputGroup({
122
122
  labelTooltip: labelTooltip,
123
123
  children: /*#__PURE__*/_jsx("div", {
124
124
  ref: ref,
125
+ "data-testid": testId,
126
+ ...rest,
125
127
  role: "group",
126
128
  "aria-labelledby": labelID,
127
129
  "aria-describedby": describedByIDs,
128
- "data-testid": testId,
129
- ...rest,
130
130
  ...mergeProps(themeProps('input-group', {
131
131
  size,
132
132
  status: status?.type ?? null