@astryxdesign/core 0.1.2-canary.eb7243a → 0.1.2-canary.f03e2cc

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 (339) hide show
  1. package/README.md +12 -12
  2. package/dist/Avatar/Avatar.d.ts.map +1 -1
  3. package/dist/Avatar/Avatar.js +5 -11
  4. package/dist/Breadcrumbs/BreadcrumbItem.d.ts +1 -1
  5. package/dist/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
  6. package/dist/Breadcrumbs/BreadcrumbItem.js +5 -24
  7. package/dist/Calendar/Calendar.d.ts.map +1 -1
  8. package/dist/Calendar/Calendar.js +28 -43
  9. package/dist/Calendar/styles.d.ts +9 -3
  10. package/dist/Calendar/styles.d.ts.map +1 -1
  11. package/dist/Calendar/styles.js +11 -3
  12. package/dist/Carousel/Carousel.d.ts.map +1 -1
  13. package/dist/Carousel/Carousel.js +3 -17
  14. package/dist/Chat/ChatMessageList.d.ts +1 -14
  15. package/dist/Chat/ChatMessageList.d.ts.map +1 -1
  16. package/dist/Chat/ChatMessageList.js +0 -2
  17. package/dist/Chat/useTriggerMenu.d.ts.map +1 -1
  18. package/dist/Chat/useTriggerMenu.js +1 -4
  19. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  20. package/dist/CheckboxInput/CheckboxInput.js +2 -4
  21. package/dist/CheckboxList/CheckboxList.d.ts.map +1 -1
  22. package/dist/CheckboxList/CheckboxList.js +4 -12
  23. package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
  24. package/dist/CodeBlock/CodeBlock.js +37 -49
  25. package/dist/ContextMenu/ContextMenu.d.ts +5 -4
  26. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  27. package/dist/ContextMenu/ContextMenu.js +11 -93
  28. package/dist/DateInput/DateInput.d.ts.map +1 -1
  29. package/dist/DateInput/DateInput.js +2 -17
  30. package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  31. package/dist/DateRangeInput/DateRangeInput.js +4 -9
  32. package/dist/DateTimeInput/DateTimeInput.d.ts +1 -7
  33. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  34. package/dist/DateTimeInput/DateTimeInput.js +3 -15
  35. package/dist/Dialog/Dialog.d.ts.map +1 -1
  36. package/dist/Dialog/Dialog.js +0 -12
  37. package/dist/DropdownMenu/DropdownMenu.d.ts +8 -1
  38. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  39. package/dist/DropdownMenu/DropdownMenu.js +14 -42
  40. package/dist/Field/Field.d.ts +2 -19
  41. package/dist/Field/Field.d.ts.map +1 -1
  42. package/dist/Field/Field.js +0 -4
  43. package/dist/Field/FieldLabel.d.ts +2 -21
  44. package/dist/Field/FieldLabel.d.ts.map +1 -1
  45. package/dist/Field/FieldLabel.js +26 -41
  46. package/dist/FileInput/FileInput.d.ts.map +1 -1
  47. package/dist/FileInput/FileInput.js +6 -27
  48. package/dist/InputGroup/InputGroup.d.ts.map +1 -1
  49. package/dist/InputGroup/InputGroup.js +1 -4
  50. package/dist/Kbd/Kbd.d.ts.map +1 -1
  51. package/dist/Kbd/Kbd.js +1 -33
  52. package/dist/Layer/layerAnimations.stylex.d.ts +0 -4
  53. package/dist/Layer/layerAnimations.stylex.d.ts.map +1 -1
  54. package/dist/Layer/layerAnimations.stylex.js +4 -8
  55. package/dist/Layer/useLayer.d.ts +0 -10
  56. package/dist/Layer/useLayer.d.ts.map +1 -1
  57. package/dist/Layer/useLayer.js +6 -41
  58. package/dist/Layout/padding.stylex.d.ts +0 -51
  59. package/dist/Layout/padding.stylex.d.ts.map +1 -1
  60. package/dist/Layout/padding.stylex.js +0 -63
  61. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  62. package/dist/Lightbox/Lightbox.js +2 -4
  63. package/dist/Link/Link.d.ts +1 -7
  64. package/dist/Link/Link.d.ts.map +1 -1
  65. package/dist/Link/Link.js +7 -15
  66. package/dist/Markdown/Markdown.d.ts.map +1 -1
  67. package/dist/Markdown/Markdown.js +0 -5
  68. package/dist/MoreMenu/MoreMenu.d.ts +7 -1
  69. package/dist/MoreMenu/MoreMenu.d.ts.map +1 -1
  70. package/dist/MoreMenu/MoreMenu.js +2 -0
  71. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  72. package/dist/MultiSelector/MultiSelector.js +17 -73
  73. package/dist/MultiSelector/hooks.d.ts +1 -12
  74. package/dist/MultiSelector/hooks.d.ts.map +1 -1
  75. package/dist/MultiSelector/hooks.js +1 -14
  76. package/dist/NavMenu/NavHeadingMenu.d.ts.map +1 -1
  77. package/dist/NavMenu/NavHeadingMenu.js +3 -34
  78. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  79. package/dist/NumberInput/NumberInput.js +1 -7
  80. package/dist/Pagination/Pagination.d.ts +1 -1
  81. package/dist/Pagination/Pagination.d.ts.map +1 -1
  82. package/dist/Pagination/Pagination.js +1 -15
  83. package/dist/Popover/usePopover.d.ts +2 -25
  84. package/dist/Popover/usePopover.d.ts.map +1 -1
  85. package/dist/Popover/usePopover.js +6 -18
  86. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  87. package/dist/PowerSearch/PowerSearch.js +1 -4
  88. package/dist/ProgressBar/ProgressBar.js +1 -1
  89. package/dist/RadioList/RadioList.d.ts +1 -1
  90. package/dist/RadioList/RadioList.d.ts.map +1 -1
  91. package/dist/RadioList/RadioList.js +3 -76
  92. package/dist/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  93. package/dist/SegmentedControl/SegmentedControl.js +0 -22
  94. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  95. package/dist/SegmentedControl/SegmentedControlItem.js +2 -6
  96. package/dist/Selector/Selector.d.ts.map +1 -1
  97. package/dist/Selector/Selector.js +18 -54
  98. package/dist/Selector/hooks.d.ts +1 -8
  99. package/dist/Selector/hooks.d.ts.map +1 -1
  100. package/dist/Selector/hooks.js +1 -14
  101. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  102. package/dist/SideNav/SideNavItem.js +1 -1
  103. package/dist/Skeleton/Skeleton.d.ts.map +1 -1
  104. package/dist/Skeleton/Skeleton.js +2 -8
  105. package/dist/Spinner/Spinner.d.ts.map +1 -1
  106. package/dist/Spinner/Spinner.js +1 -1
  107. package/dist/Stack/Stack.d.ts +1 -28
  108. package/dist/Stack/Stack.d.ts.map +1 -1
  109. package/dist/Stack/Stack.js +1 -17
  110. package/dist/Stack/StackItem.d.ts +1 -12
  111. package/dist/Stack/StackItem.d.ts.map +1 -1
  112. package/dist/Stack/StackItem.js +1 -8
  113. package/dist/TabList/Tab.d.ts.map +1 -1
  114. package/dist/TabList/Tab.js +0 -6
  115. package/dist/TabList/TabList.d.ts +4 -15
  116. package/dist/TabList/TabList.d.ts.map +1 -1
  117. package/dist/TabList/TabList.js +4 -58
  118. package/dist/TabList/TabListContext.d.ts +0 -5
  119. package/dist/TabList/TabListContext.d.ts.map +1 -1
  120. package/dist/TabList/TabListContext.js +0 -5
  121. package/dist/TabList/TabMenu.d.ts.map +1 -1
  122. package/dist/TabList/TabMenu.js +1 -6
  123. package/dist/Table/Table.d.ts.map +1 -1
  124. package/dist/Table/Table.js +1 -7
  125. package/dist/Table/plugins/pagination/paginateData.d.ts +1 -2
  126. package/dist/Table/plugins/pagination/paginateData.d.ts.map +1 -1
  127. package/dist/Table/plugins/pagination/paginateData.js +3 -8
  128. package/dist/Table/plugins/pagination/useTablePagination.d.ts.map +1 -1
  129. package/dist/Table/plugins/pagination/useTablePagination.js +1 -6
  130. package/dist/Table/tableContextMenu.d.ts.map +1 -1
  131. package/dist/Table/tableContextMenu.js +3 -0
  132. package/dist/Toast/Toast.d.ts.map +1 -1
  133. package/dist/Toast/Toast.js +0 -14
  134. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  135. package/dist/Toast/ToastViewport.js +3 -132
  136. package/dist/Toolbar/Toolbar.d.ts.map +1 -1
  137. package/dist/Toolbar/Toolbar.js +3 -7
  138. package/dist/Tooltip/useTooltip.d.ts.map +1 -1
  139. package/dist/Tooltip/useTooltip.js +9 -56
  140. package/dist/TreeList/TreeList.d.ts +1 -1
  141. package/dist/TreeList/TreeList.d.ts.map +1 -1
  142. package/dist/TreeList/TreeList.js +2 -78
  143. package/dist/TreeList/TreeListItem.d.ts +1 -10
  144. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  145. package/dist/TreeList/TreeListItem.js +12 -51
  146. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  147. package/dist/Typeahead/BaseTypeahead.js +4 -58
  148. package/dist/astryx.css +0 -7
  149. package/dist/astryx.umd.js +48 -48
  150. package/dist/astryx.umd.js.map +4 -4
  151. package/dist/hooks/index.d.ts +2 -10
  152. package/dist/hooks/index.d.ts.map +1 -1
  153. package/dist/hooks/index.js +2 -6
  154. package/dist/hooks/useClickableContainer.d.ts +1 -16
  155. package/dist/hooks/useClickableContainer.d.ts.map +1 -1
  156. package/dist/hooks/useClickableContainer.js +4 -16
  157. package/dist/hooks/useEntryAnimation.d.ts.map +1 -1
  158. package/dist/hooks/useEntryAnimation.js +4 -4
  159. package/dist/hooks/useFocusTrap.d.ts +0 -18
  160. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  161. package/dist/hooks/useFocusTrap.js +3 -87
  162. package/dist/hooks/useGridFocus.d.ts +1 -32
  163. package/dist/hooks/useGridFocus.d.ts.map +1 -1
  164. package/dist/hooks/useGridFocus.js +58 -143
  165. package/dist/hooks/useListFocus.d.ts +7 -78
  166. package/dist/hooks/useListFocus.d.ts.map +1 -1
  167. package/dist/hooks/useListFocus.js +52 -305
  168. package/dist/index.d.ts +0 -1
  169. package/dist/index.d.ts.map +1 -1
  170. package/dist/index.js +0 -1
  171. package/dist/utils/index.d.ts +0 -2
  172. package/dist/utils/index.d.ts.map +1 -1
  173. package/dist/utils/index.js +0 -1
  174. package/package.json +5 -11
  175. package/src/Avatar/Avatar.tsx +5 -10
  176. package/src/Breadcrumbs/BreadcrumbItem.tsx +7 -25
  177. package/src/Breadcrumbs/Breadcrumbs.test.tsx +10 -31
  178. package/src/Calendar/Calendar.doc.mjs +1 -1
  179. package/src/Calendar/Calendar.test.tsx +4 -147
  180. package/src/Calendar/Calendar.tsx +43 -52
  181. package/src/Calendar/styles.ts +9 -4
  182. package/src/Carousel/Carousel.test.tsx +0 -20
  183. package/src/Carousel/Carousel.tsx +1 -16
  184. package/src/Chat/ChatMessageList.doc.mjs +0 -8
  185. package/src/Chat/ChatMessageList.test.tsx +0 -18
  186. package/src/Chat/ChatMessageList.tsx +0 -16
  187. package/src/Chat/useTriggerMenu.tsx +0 -3
  188. package/src/CheckboxInput/CheckboxInput.test.tsx +25 -14
  189. package/src/CheckboxInput/CheckboxInput.tsx +2 -4
  190. package/src/CheckboxList/CheckboxList.test.tsx +14 -30
  191. package/src/CheckboxList/CheckboxList.tsx +3 -18
  192. package/src/CodeBlock/CodeBlock.tsx +33 -61
  193. package/src/ContextMenu/ContextMenu.doc.mjs +4 -4
  194. package/src/ContextMenu/ContextMenu.test.tsx +1 -155
  195. package/src/ContextMenu/ContextMenu.tsx +16 -113
  196. package/src/DateInput/DateInput.test.tsx +0 -59
  197. package/src/DateInput/DateInput.tsx +7 -24
  198. package/src/DateRangeInput/DateRangeInput.test.tsx +18 -69
  199. package/src/DateRangeInput/DateRangeInput.tsx +3 -7
  200. package/src/DateTimeInput/DateTimeInput.doc.mjs +0 -7
  201. package/src/DateTimeInput/DateTimeInput.test.tsx +6 -99
  202. package/src/DateTimeInput/DateTimeInput.tsx +3 -32
  203. package/src/Dialog/Dialog.tsx +0 -12
  204. package/src/DropdownMenu/DropdownMenu.doc.mjs +8 -1
  205. package/src/DropdownMenu/DropdownMenu.test.tsx +42 -56
  206. package/src/DropdownMenu/DropdownMenu.tsx +18 -52
  207. package/src/Field/Field.test.tsx +0 -32
  208. package/src/Field/Field.tsx +5 -23
  209. package/src/Field/FieldLabel.tsx +17 -55
  210. package/src/FileInput/FileInput.test.tsx +49 -104
  211. package/src/FileInput/FileInput.tsx +3 -27
  212. package/src/InputGroup/InputGroup.test.tsx +63 -21
  213. package/src/InputGroup/InputGroup.tsx +1 -4
  214. package/src/Kbd/Kbd.test.tsx +4 -22
  215. package/src/Kbd/Kbd.tsx +3 -35
  216. package/src/Layer/layerAnimations.stylex.ts +4 -20
  217. package/src/Layer/useLayer.doc.mjs +0 -5
  218. package/src/Layer/useLayer.tsx +6 -67
  219. package/src/Layout/padding.stylex.ts +0 -52
  220. package/src/Lightbox/Lightbox.test.tsx +5 -53
  221. package/src/Lightbox/Lightbox.tsx +4 -9
  222. package/src/Link/Link.doc.mjs +0 -14
  223. package/src/Link/Link.test.tsx +0 -32
  224. package/src/Link/Link.tsx +4 -41
  225. package/src/Markdown/Markdown.test.tsx +0 -11
  226. package/src/Markdown/Markdown.tsx +0 -5
  227. package/src/MetadataList/MetadataListItem.doc.mjs +0 -4
  228. package/src/MoreMenu/MoreMenu.doc.mjs +17 -2
  229. package/src/MoreMenu/MoreMenu.tsx +9 -0
  230. package/src/MultiSelector/MultiSelector.test.tsx +8 -226
  231. package/src/MultiSelector/MultiSelector.tsx +19 -91
  232. package/src/MultiSelector/hooks.ts +0 -27
  233. package/src/NavMenu/NavHeadingMenu.test.tsx +1 -77
  234. package/src/NavMenu/NavHeadingMenu.tsx +3 -50
  235. package/src/NumberInput/NumberInput.test.tsx +38 -72
  236. package/src/NumberInput/NumberInput.tsx +1 -12
  237. package/src/Pagination/Pagination.doc.mjs +3 -3
  238. package/src/Pagination/Pagination.test.tsx +5 -117
  239. package/src/Pagination/Pagination.tsx +1 -21
  240. package/src/Popover/usePopover.doc.mjs +3 -7
  241. package/src/Popover/usePopover.tsx +6 -49
  242. package/src/PowerSearch/PowerSearch.tsx +0 -3
  243. package/src/ProgressBar/ProgressBar.test.tsx +26 -34
  244. package/src/ProgressBar/ProgressBar.tsx +1 -1
  245. package/src/RadioList/RadioList.test.tsx +14 -129
  246. package/src/RadioList/RadioList.tsx +8 -103
  247. package/src/SegmentedControl/SegmentedControl.test.tsx +40 -84
  248. package/src/SegmentedControl/SegmentedControl.tsx +0 -26
  249. package/src/SegmentedControl/SegmentedControlItem.tsx +1 -4
  250. package/src/SelectableCard/SelectableCard.doc.mjs +1 -1
  251. package/src/Selector/Selector.test.tsx +14 -199
  252. package/src/Selector/Selector.tsx +38 -74
  253. package/src/Selector/hooks.ts +0 -23
  254. package/src/SideNav/SideNav.test.tsx +0 -16
  255. package/src/SideNav/SideNavItem.tsx +4 -2
  256. package/src/Skeleton/Skeleton.tsx +1 -11
  257. package/src/Spinner/Spinner.tsx +1 -7
  258. package/src/Stack/Stack.doc.mjs +0 -57
  259. package/src/Stack/Stack.test.tsx +5 -55
  260. package/src/Stack/Stack.tsx +1 -53
  261. package/src/Stack/StackItem.test.tsx +0 -23
  262. package/src/Stack/StackItem.tsx +0 -20
  263. package/src/TabList/Tab.tsx +0 -6
  264. package/src/TabList/TabList.doc.mjs +0 -6
  265. package/src/TabList/TabList.test.tsx +0 -167
  266. package/src/TabList/TabList.tsx +9 -72
  267. package/src/TabList/TabListContext.ts +3 -7
  268. package/src/TabList/TabMenu.tsx +3 -6
  269. package/src/Table/Table.test.tsx +0 -10
  270. package/src/Table/Table.tsx +0 -5
  271. package/src/Table/plugins/pagination/paginateData.ts +3 -10
  272. package/src/Table/plugins/pagination/useTablePagination.test.tsx +0 -16
  273. package/src/Table/plugins/pagination/useTablePagination.tsx +1 -8
  274. package/src/Table/tableContextMenu.tsx +5 -1
  275. package/src/Toast/Toast.tsx +0 -14
  276. package/src/Toast/ToastViewport.tsx +21 -167
  277. package/src/Toolbar/Toolbar.test.tsx +0 -45
  278. package/src/Toolbar/Toolbar.tsx +2 -5
  279. package/src/Tooltip/Tooltip.test.tsx +0 -68
  280. package/src/Tooltip/useTooltip.tsx +8 -55
  281. package/src/TreeList/TreeList.test.tsx +6 -295
  282. package/src/TreeList/TreeList.tsx +1 -84
  283. package/src/TreeList/TreeListItem.tsx +5 -50
  284. package/src/Typeahead/BaseTypeahead.tsx +8 -69
  285. package/src/Typeahead/Typeahead.test.tsx +0 -160
  286. package/src/hooks/index.ts +2 -21
  287. package/src/hooks/useClickableContainer.ts +4 -16
  288. package/src/hooks/useEntryAnimation.ts +4 -16
  289. package/src/hooks/useFocusTrap.ts +4 -98
  290. package/src/hooks/useGridFocus.ts +64 -184
  291. package/src/hooks/useListFocus.doc.mjs +10 -49
  292. package/src/hooks/useListFocus.ts +57 -395
  293. package/src/index.ts +0 -1
  294. package/src/utils/index.ts +0 -7
  295. package/dist/TreeList/treeListItem.markers.stylex.d.ts +0 -16
  296. package/dist/TreeList/treeListItem.markers.stylex.d.ts.map +0 -1
  297. package/dist/TreeList/treeListItem.markers.stylex.js +0 -22
  298. package/dist/VisuallyHidden/VisuallyHidden.d.ts +0 -61
  299. package/dist/VisuallyHidden/VisuallyHidden.d.ts.map +0 -1
  300. package/dist/VisuallyHidden/VisuallyHidden.js +0 -65
  301. package/dist/VisuallyHidden/index.d.ts +0 -11
  302. package/dist/VisuallyHidden/index.d.ts.map +0 -1
  303. package/dist/VisuallyHidden/index.js +0 -13
  304. package/dist/hooks/focusableSelector.d.ts +0 -22
  305. package/dist/hooks/focusableSelector.d.ts.map +0 -1
  306. package/dist/hooks/focusableSelector.js +0 -24
  307. package/dist/hooks/useAnnounce.d.ts +0 -40
  308. package/dist/hooks/useAnnounce.d.ts.map +0 -1
  309. package/dist/hooks/useAnnounce.js +0 -142
  310. package/dist/hooks/useLongPress.d.ts +0 -21
  311. package/dist/hooks/useLongPress.d.ts.map +0 -1
  312. package/dist/hooks/useLongPress.js +0 -89
  313. package/dist/hooks/useTreeFocus.d.ts +0 -133
  314. package/dist/hooks/useTreeFocus.d.ts.map +0 -1
  315. package/dist/hooks/useTreeFocus.js +0 -274
  316. package/dist/hooks/useTypeahead.d.ts +0 -63
  317. package/dist/hooks/useTypeahead.d.ts.map +0 -1
  318. package/dist/hooks/useTypeahead.js +0 -117
  319. package/src/Avatar/Avatar.test.tsx +0 -37
  320. package/src/CodeBlock/CodeBlock.test.tsx +0 -115
  321. package/src/Skeleton/Skeleton.test.tsx +0 -25
  322. package/src/Toast/ToastViewport.test.tsx +0 -204
  323. package/src/TreeList/treeListItem.markers.stylex.ts +0 -20
  324. package/src/VisuallyHidden/VisuallyHidden.doc.mjs +0 -80
  325. package/src/VisuallyHidden/VisuallyHidden.test.tsx +0 -76
  326. package/src/VisuallyHidden/VisuallyHidden.tsx +0 -113
  327. package/src/VisuallyHidden/index.ts +0 -15
  328. package/src/hooks/focusableSelector.ts +0 -25
  329. package/src/hooks/useAnnounce.test.tsx +0 -101
  330. package/src/hooks/useAnnounce.ts +0 -168
  331. package/src/hooks/useFocusTrap.test.tsx +0 -132
  332. package/src/hooks/useListFocus.test.tsx +0 -375
  333. package/src/hooks/useLongPress.test.tsx +0 -134
  334. package/src/hooks/useLongPress.ts +0 -119
  335. package/src/hooks/useTreeFocus.doc.mjs +0 -126
  336. package/src/hooks/useTreeFocus.test.tsx +0 -214
  337. package/src/hooks/useTreeFocus.ts +0 -464
  338. package/src/hooks/useTypeahead.test.tsx +0 -109
  339. package/src/hooks/useTypeahead.ts +0 -183
@@ -7,17 +7,6 @@ interface UseMultiComboboxOptions {
7
7
  onOpen: () => void;
8
8
  onClose: () => void;
9
9
  onToggle: (itemValue: string) => void;
10
- /**
11
- * Clear all selected values. When provided, pressing Delete or Backspace on
12
- * the closed trigger clears the selection — a keyboard equivalent of the
13
- * clear button (comboboxes-2). No-op when the popup is open or search is on.
14
- */
15
- onClear?: () => void;
16
- /**
17
- * Whether at least one value is selected (i.e. there is something to clear).
18
- * The Delete/Backspace clear path is skipped when false.
19
- */
20
- hasValue?: boolean;
21
10
  listboxId: string;
22
11
  }
23
12
  interface UseMultiComboboxResult {
@@ -34,6 +23,6 @@ interface UseMultiComboboxResult {
34
23
  *
35
24
  * The caller must ensure selectableItems is in the same order as the rendered DOM.
36
25
  */
37
- export declare function useMultiCombobox({ selectableItems, isDisabled, isOpen, hasSearch, onOpen, onClose, onToggle, onClear, hasValue, listboxId, }: UseMultiComboboxOptions): UseMultiComboboxResult;
26
+ export declare function useMultiCombobox({ selectableItems, isDisabled, isOpen, hasSearch, onOpen, onClose, onToggle, listboxId, }: UseMultiComboboxOptions): UseMultiComboboxResult;
38
27
  export {};
39
28
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/MultiSelector/hooks.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,SAAS,CAAC;AAErD,UAAU,uBAAuB;IAC/B,eAAe,EAAE,uBAAuB,EAAE,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,sBAAsB;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;IAC5C,gBAAgB,EAAE,CAAC,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,eAAe,EACf,UAAkB,EAClB,MAAM,EACN,SAAiB,EACjB,MAAM,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,QAAgB,EAChB,SAAS,GACV,EAAE,uBAAuB,GAAG,sBAAsB,CAiMlD"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/MultiSelector/hooks.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,SAAS,CAAC;AAErD,UAAU,uBAAuB;IAC/B,eAAe,EAAE,uBAAuB,EAAE,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,sBAAsB;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;IAC5C,gBAAgB,EAAE,CAAC,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,eAAe,EACf,UAAkB,EAClB,MAAM,EACN,SAAiB,EACjB,MAAM,EACN,OAAO,EACP,QAAQ,EACR,SAAS,GACV,EAAE,uBAAuB,GAAG,sBAAsB,CAmLlD"}
@@ -26,8 +26,6 @@ export function useMultiCombobox({
26
26
  onOpen,
27
27
  onClose,
28
28
  onToggle,
29
- onClear,
30
- hasValue = false,
31
29
  listboxId
32
30
  }) {
33
31
  const [highlightedIndex, setHighlightedIndex] = useState(-1);
@@ -129,17 +127,6 @@ export function useMultiCombobox({
129
127
  setHighlightedIndex(enabledIndices[enabledIndices.length - 1]);
130
128
  }
131
129
  break;
132
- case 'Delete':
133
- case 'Backspace':
134
- // Keyboard equivalent of the clear button (comboboxes-2): clear all
135
- // selected values from the closed trigger so clearing is not
136
- // mouse-only. Skipped in search mode (keys edit the query) and while
137
- // the popup is open (arrow navigation owns interaction).
138
- if (!hasSearch && !isOpen && onClear != null && hasValue) {
139
- e.preventDefault();
140
- onClear();
141
- }
142
- break;
143
130
  default:
144
131
  // Typeahead only when search is not present
145
132
  if (!hasSearch && e.key.length === 1 && !e.ctrlKey && !e.metaKey) {
@@ -161,7 +148,7 @@ export function useMultiCombobox({
161
148
  }
162
149
  break;
163
150
  }
164
- }, [isDisabled, isOpen, onOpen, closeAndReset, selectableItems, highlightedIndex, onToggle, getEnabledIndices, typeahead, hasSearch, onClear, hasValue]);
151
+ }, [isDisabled, isOpen, onOpen, closeAndReset, selectableItems, highlightedIndex, onToggle, getEnabledIndices, typeahead, hasSearch]);
165
152
  return {
166
153
  highlightedIndex,
167
154
  setHighlightedIndex,
@@ -1 +1 @@
1
- {"version":3,"file":"NavHeadingMenu.d.ts","sourceRoot":"","sources":["../../src/NavMenu/NavHeadingMenu.tsx"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,EAAuB,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAIlE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAI5C,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,kBAAkB,CAAC;AAsB1B,MAAM,WAAW,mBAAoB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACpE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,iEAAiE;IACjE,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,GAAG,EACH,QAAQ,EACR,IAAW,EACX,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,MAAM,GACtB,EAAE,mBAAmB,qBAiFrB;yBA1Fe,cAAc"}
1
+ {"version":3,"file":"NavHeadingMenu.d.ts","sourceRoot":"","sources":["../../src/NavMenu/NavHeadingMenu.tsx"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,EAAU,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAIrD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAG5C,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,kBAAkB,CAAC;AAsB1B,MAAM,WAAW,mBAAoB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACpE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,iEAAiE;IACjE,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,GAAG,EACH,QAAQ,EACR,IAAW,EACX,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,MAAM,GACtB,EAAE,mBAAmB,qBAmCrB;yBA5Ce,cAAc"}
@@ -11,13 +11,12 @@
11
11
  * SYNC: When modified, update:
12
12
  * - /packages/core/src/NavMenu/index.ts
13
13
  */
14
- import React, { useCallback, useMemo } from 'react';
14
+ import React, { useMemo } from 'react';
15
15
  import * as stylex from '@stylexjs/stylex';
16
16
  import "../theme/tokens.stylex.js";
17
17
  import { spacingVars } from "../theme/tokens.stylex.js";
18
18
  import { mergeProps, mergeRefs } from "../utils/index.js";
19
19
  import { useListFocus } from "../hooks/useListFocus.js";
20
- import { useTypeahead } from "../hooks/useTypeahead.js";
21
20
  import { themeProps } from "../utils/themeProps.js";
22
21
  import { NavHeadingMenuContext, useNavHeadingCloseContext } from "./NavMenuContext.js";
23
22
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -80,40 +79,10 @@ export function NavHeadingMenu({
80
79
  const closeMenu = closeCtx?.closeMenu;
81
80
  const {
82
81
  listRef,
83
- handleKeyDown,
84
- focusItem
82
+ handleKeyDown
85
83
  } = useListFocus({
86
- itemSelector: '[role="menuitem"]:not([aria-disabled="true"])',
87
84
  onEscape: closeMenu
88
85
  });
89
-
90
- // First-character typeahead over the (enabled) menu items (menus-11).
91
- const getMenuItems = useCallback(() => listRef.current ? Array.from(listRef.current.querySelectorAll('[role="menuitem"]:not([aria-disabled="true"])')) : [], [listRef]);
92
- const typeahead = useTypeahead({
93
- getItemLabels: () => getMenuItems().map(el => el.textContent),
94
- onMatch: focusItem,
95
- getCurrentIndex: () => getMenuItems().findIndex(el => el === document.activeElement || el.contains(document.activeElement))
96
- });
97
-
98
- // Extend useListFocus with Enter/Space activation. Items rendered without an
99
- // `href` are `<div role="menuitem">` elements, which have no native keyboard
100
- // activation — without this, Enter/Space on a focused onClick-only item does
101
- // nothing. Anchor items (with `href`) already activate on Enter natively.
102
- const listKeyDown = useCallback(e => {
103
- if (e.key === 'Enter' || e.key === ' ') {
104
- const focused = document.activeElement;
105
- if (focused?.getAttribute('role') === 'menuitem') {
106
- e.preventDefault();
107
- focused.click();
108
- return;
109
- }
110
- }
111
- if (typeahead.onKeyDown(e)) {
112
- e.preventDefault();
113
- return;
114
- }
115
- handleKeyDown(e);
116
- }, [handleKeyDown, typeahead]);
117
86
  const ctx = useMemo(() => ({
118
87
  closeMenu: closeMenu ?? (() => {}),
119
88
  size
@@ -127,7 +96,7 @@ export function NavHeadingMenu({
127
96
  children: /*#__PURE__*/_jsx("div", {
128
97
  ref: mergeRefs(ref, listRef),
129
98
  role: "menu",
130
- onKeyDown: listKeyDown,
99
+ onKeyDown: handleKeyDown,
131
100
  "data-testid": testId,
132
101
  ...mergeProps(themeProps('nav-heading-menu', {
133
102
  size
@@ -1 +1 @@
1
- {"version":3,"file":"NumberInput.d.ts","sourceRoot":"","sources":["../../src/NumberInput/NumberInput.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NumberInput.d.ts","sourceRoot":"","sources":["../../src/NumberInput/NumberInput.tsx"],"names":[],"mappings":"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"}
@@ -21,7 +21,6 @@ import "../theme/tokens.stylex.js";
21
21
  import { colorVars, sizeVars, radiusVars, typographyVars, typeScaleVars, borderVars } from "../theme/tokens.stylex.js";
22
22
  import { Field, inputWrapperStyles, inputStatusBorderStyles, inputStatusHoverShadowStyles, inputStatusFocusWithinStyles } from "../Field/index.js";
23
23
  import { Icon, renderIconSlot } from "../Icon/index.js";
24
- import { VisuallyHidden } from "../VisuallyHidden/index.js";
25
24
  import { useSize } from "../SizeContext/SizeContext.js";
26
25
  import { useInputContainer } from "../hooks/useInputContainer.js";
27
26
  import { useInputGroup } from "../InputGroup/InputGroupContext.js";
@@ -287,7 +286,7 @@ export function NumberInput({
287
286
  step: step ?? undefined,
288
287
  "aria-describedby": ariaDescribedBy,
289
288
  "aria-required": isRequired === true ? 'true' : undefined,
290
- "aria-invalid": status?.type === 'error' || !isInputValid ? 'true' : undefined,
289
+ "aria-invalid": status?.type === 'error' ? 'true' : undefined,
291
290
  "aria-label": inputGroup ? label : undefined,
292
291
  ...{
293
292
  0: {
@@ -308,11 +307,6 @@ export function NumberInput({
308
307
  className: "x9ynric xjm74w1 xw6l6zx xv1l7n4 x2lah0s"
309
308
  },
310
309
  children: units
311
- }), /*#__PURE__*/_jsx(VisuallyHidden, {
312
- as: "div",
313
- role: "alert",
314
- "aria-live": "assertive",
315
- children: !isInputValid ? 'Invalid number' : ''
316
310
  }), hasClear && value != null && !isDisabled && /*#__PURE__*/_jsx("button", {
317
311
  type: "button",
318
312
  onClick: handleClear,
@@ -116,7 +116,7 @@ export declare function generatePageRange(currentPage: number, totalPages: numbe
116
116
  * />
117
117
  * ```
118
118
  */
119
- export declare function Pagination({ page, onChange, changeAction, totalItems, totalPages: totalPagesProp, hasMore, pageSize: pageSizeProp, pageSizeOptions, onPageSizeChange, variant, siblingCount, size, isDisabled, label, 'data-testid': testId, xstyle, className, style, ref, }: PaginationProps): import("react").JSX.Element | null;
119
+ export declare function Pagination({ page, onChange, changeAction, totalItems, totalPages: totalPagesProp, hasMore, pageSize, pageSizeOptions, onPageSizeChange, variant, siblingCount, size, isDisabled, label, 'data-testid': testId, xstyle, className, style, ref, }: PaginationProps): import("react").JSX.Element | null;
120
120
  export declare namespace Pagination {
121
121
  var displayName: string;
122
122
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../src/Pagination/Pagination.tsx"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAO5C;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,IAAI,CAAC;IACZ,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC;AAE3D,uCAAuC;AACvC,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzC,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,SAAS,CAAC,WAAW,CAAC,EACtB,UAAU,CACX;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE7B,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGtD;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAG9C;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IAGtB,wDAAwD;IACxD,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,qCAAqC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAiGD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CA6CpB;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,UAAU,EAAE,cAAc,EAC1B,OAAO,EACP,QAAQ,EAAE,YAAiB,EAC3B,eAAe,EACf,gBAAgB,EAChB,OAAiB,EACjB,YAAgB,EAChB,IAAW,EACX,UAAkB,EAClB,KAAoB,EACpB,aAAa,EAAE,MAAM,EACrB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,GACJ,EAAE,eAAe,sCAiQjB;yBArRe,UAAU"}
1
+ {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../src/Pagination/Pagination.tsx"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAO5C;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,IAAI,CAAC;IACZ,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC;AAE3D,uCAAuC;AACvC,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzC,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,SAAS,CAAC,WAAW,CAAC,EACtB,UAAU,CACX;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE7B,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGtD;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAG9C;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IAGtB,wDAAwD;IACxD,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,qCAAqC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAiGD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CA6CpB;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,UAAU,EAAE,cAAc,EAC1B,OAAO,EACP,QAAa,EACb,eAAe,EACf,gBAAgB,EAChB,OAAiB,EACjB,YAAgB,EAChB,IAAW,EACX,UAAkB,EAClB,KAAoB,EACpB,aAAa,EAAE,MAAM,EACrB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,GACJ,EAAE,eAAe,sCA8OjB;yBAlQe,UAAU"}
@@ -26,7 +26,6 @@ import { Button } from "../Button/index.js";
26
26
  import { Icon } from "../Icon/index.js";
27
27
  import { Selector } from "../Selector/index.js";
28
28
  import { Text } from "../Text/index.js";
29
- import { useAnnounce } from "../hooks/useAnnounce.js";
30
29
  import { mergeProps } from "../utils/index.js";
31
30
  import { themeProps } from "../utils/themeProps.js";
32
31
 
@@ -160,7 +159,7 @@ export function Pagination({
160
159
  totalItems,
161
160
  totalPages: totalPagesProp,
162
161
  hasMore,
163
- pageSize: pageSizeProp = 10,
162
+ pageSize = 10,
164
163
  pageSizeOptions,
165
164
  onPageSizeChange,
166
165
  variant = 'pages',
@@ -176,18 +175,6 @@ export function Pagination({
176
175
  }) {
177
176
  const [, startTransition] = useTransition();
178
177
 
179
- // pageSize is typed as number, so 0, NaN, and negatives are valid at the
180
- // type level but yield Infinity/NaN page counts, and
181
- // Array.from({length: Infinity}) crashes the dots variant. Coerce to a
182
- // positive integer; non-finite values fall back to the default.
183
- const pageSize = Number.isFinite(pageSizeProp) ? Math.max(1, Math.floor(pageSizeProp)) : 10;
184
-
185
- // Announce page changes politely (navigation-10). The controls carry no
186
- // live region, so page transitions were previously silent to screen readers.
187
- // Only user-driven changes go through handlePageChange, so initial mount is
188
- // never announced.
189
- const announce = useAnnounce();
190
-
191
178
  // Track the page optimistically so rapid prev/next clicks advance from the
192
179
  // in-flight target instead of stalling on the last committed page.
193
180
  const [optimisticPage, setOptimisticPage] = useOptimistic(page);
@@ -215,7 +202,6 @@ export function Pagination({
215
202
  // Keep onChange urgent so controlled page state updates in the same commit
216
203
  // as the click; only the optimistic indicator and changeAction defer.
217
204
  onChange(newPage);
218
- announce(computedTotalPages != null ? `Page ${newPage} of ${computedTotalPages}` : `Page ${newPage}`);
219
205
  startTransition(async () => {
220
206
  setOptimisticPage(newPage);
221
207
  await changeAction?.(newPage);
@@ -60,32 +60,9 @@ export interface UsePopoverOptions {
60
60
  closeButtonLabel?: string;
61
61
  /**
62
62
  * Accessible label for the dialog.
63
- * Required for screen readers to announce the dialog purpose
64
- * (only applies when `role` is `'dialog'`).
63
+ * Required for screen readers to announce the dialog purpose.
65
64
  */
66
65
  dialogLabel?: string;
67
- /**
68
- * ARIA role stamped on the popover content wrapper.
69
- *
70
- * - `'dialog'` (default): the wrapper is a `role="dialog"` and, when
71
- * `isModal` is true, carries `aria-modal`. Use for genuine dialog content.
72
- * - `'none'`: the wrapper carries no role or `aria-modal`, so the popup's own
73
- * content role (e.g. a child `role="listbox"` or `role="menu"`) is the
74
- * exposed semantics. Use for comboboxes, listboxes, and menus — their
75
- * trigger keeps DOM focus, so announcing an unnamed modal dialog around
76
- * them is incorrect.
77
- *
78
- * @default 'dialog'
79
- */
80
- role?: 'dialog' | 'none';
81
- /**
82
- * Whether the dialog is modal (`aria-modal`). Only applies when `role` is
83
- * `'dialog'`. Set to `false` for non-modal dialogs that do not inert the rest
84
- * of the page.
85
- *
86
- * @default true
87
- */
88
- isModal?: boolean;
89
66
  /**
90
67
  * Whether to apply the default popover surface (background, border-radius,
91
68
  * box-shadow) to the content wrapper.
@@ -159,7 +136,7 @@ export interface UsePopoverReturn {
159
136
  * ARIA attributes to spread on the trigger element
160
137
  */
161
138
  triggerProps: {
162
- 'aria-haspopup': 'dialog' | 'true';
139
+ 'aria-haspopup': 'dialog';
163
140
  'aria-expanded': boolean;
164
141
  'aria-controls': string;
165
142
  };
@@ -1 +1 @@
1
- {"version":3,"file":"usePopover.d.ts","sourceRoot":"","sources":["../../src/Popover/usePopover.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,EAAiC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAE5E,OAAO,EAAW,KAAK,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAyDnD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAEzB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,EAAE,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAE7C;;;;OAIG;IACH,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAEnD;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAC,KAAK,IAAI,CAAC;IAEpD;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;;;;;;;;;OAWG;IACH,MAAM,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,kBAAkB,KAAK,SAAS,CAAC;IAEvE;;OAEG;IACH,YAAY,EAAE;QACZ,eAAe,EAAE,QAAQ,GAAG,MAAM,CAAC;QACnC,eAAe,EAAE,OAAO,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,UAAU,CACxB,OAAO,GAAE,iBAAsB,GAC9B,gBAAgB,CAsJlB"}
1
+ {"version":3,"file":"usePopover.d.ts","sourceRoot":"","sources":["../../src/Popover/usePopover.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,EAAiC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAE5E,OAAO,EAAW,KAAK,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAyDnD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,EAAE,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAE7C;;;;OAIG;IACH,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAEnD;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAC,KAAK,IAAI,CAAC;IAEpD;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;;;;;;;;;OAWG;IACH,MAAM,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,kBAAkB,KAAK,SAAS,CAAC;IAEvE;;OAEG;IACH,YAAY,EAAE;QACZ,eAAe,EAAE,QAAQ,CAAC;QAC1B,eAAe,EAAE,OAAO,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,UAAU,CACxB,OAAO,GAAE,iBAAsB,GAC9B,gBAAgB,CAoIlB"}
@@ -93,9 +93,7 @@ export function usePopover(options = {}) {
93
93
  hasSurface = true,
94
94
  hasCloseButton = true,
95
95
  closeButtonLabel = 'Close popover',
96
- dialogLabel,
97
- role = 'dialog',
98
- isModal = true
96
+ dialogLabel
99
97
  } = options;
100
98
 
101
99
  // Track the trigger element for returning focus
@@ -158,28 +156,18 @@ export function usePopover(options = {}) {
158
156
 
159
157
  // ARIA attributes for the trigger
160
158
  const triggerProps = {
161
- 'aria-haspopup': role === 'dialog' ? 'dialog' : 'true',
159
+ 'aria-haspopup': 'dialog',
162
160
  'aria-expanded': layer.isOpen,
163
161
  'aria-controls': layer.id
164
162
  };
165
163
 
166
- // Dev-time guardrail: a dialog popover should always be labeled. Warn once
167
- // per hook instance (in an effect) rather than on every render.
168
- const warnedUnnamedDialogRef = useRef(false);
169
- useEffect(() => {
170
- if (role === 'dialog' && !dialogLabel && !warnedUnnamedDialogRef.current) {
171
- warnedUnnamedDialogRef.current = true;
172
- console.warn('usePopover: role="dialog" without a `dialogLabel` renders an unnamed ' + 'dialog. Pass `dialogLabel`, or use `role: "none"` for listbox/menu ' + 'popups whose content already carries its own role.');
173
- }
174
- }, [role, dialogLabel]);
175
-
176
164
  // Wrapped render function that includes surface styles and optional hidden close button
177
165
  const render = useCallback((children, props) => {
178
166
  return layer.render(/*#__PURE__*/_jsxs("div", {
179
167
  ref: contentRef,
180
- role: role === 'dialog' ? 'dialog' : undefined,
181
- "aria-modal": role === 'dialog' && isModal ? true : undefined,
182
- "aria-label": role === 'dialog' ? dialogLabel : undefined,
168
+ role: "dialog",
169
+ "aria-modal": "true",
170
+ "aria-label": dialogLabel,
183
171
  ...stylex.props(styles.contentWrapper, hasSurface && styles.surface, xstyle),
184
172
  children: [children, hasCloseButton && /*#__PURE__*/_jsx("div", {
185
173
  ...{
@@ -195,7 +183,7 @@ export function usePopover(options = {}) {
195
183
  ...props,
196
184
  xstyle: props?.xstyle
197
185
  });
198
- }, [layer, hasCloseButton, hasSurface, closeButtonLabel, contentRef, dialogLabel, role, isModal, xstyle]);
186
+ }, [layer, hasCloseButton, hasSurface, closeButtonLabel, contentRef, dialogLabel, xstyle]);
199
187
  return {
200
188
  triggerRef,
201
189
  contentRef,
@@ -1 +1 @@
1
- {"version":3,"file":"PowerSearch.d.ts","sourceRoot":"","sources":["../../src/PowerSearch/PowerSearch.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,EAMZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,cAAc,CAAC;AAMtB,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AAEtC,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AAe1C,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAIjB,qBAAqB,EACrB,iBAAiB,EAIjB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAyQjB,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAC5C,SAAS,CAAC,WAAW,CAAC,EACtB,UAAU,CACX;IACC,yEAAyE;IACzE,MAAM,EAAE,iBAAiB,CAAC;IAC1B,gCAAgC;IAChC,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC1C,kCAAkC;IAClC,QAAQ,EAAE,CACR,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAC,EACzC,UAAU,EAAE,qBAAqB,EACjC,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;IACV,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oDAAoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACjC,6DAA6D;IAC7D,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,yDAAyD;IACzD,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACvC,yBAAyB;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sCAAsC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kEAAkE;IAClE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,yBAAyB,CAAC;IAClD;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,yCAAyC;IACzC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACzC;;;OAGG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB;;;OAGG;IACH,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EAAE,UAAU,EAClB,OAAO,EACP,QAAQ,EACR,KAAgB,EAChB,aAAoB,EACpB,WAAyB,EACzB,YAAoB,EACpB,QAAe,EACf,UAAkB,EAClB,UAAkB,EAClB,SAAS,EACT,OAAO,EACP,MAAM,EACN,MAAM,EACN,cAAmB,EACnB,sBAAgC,EAChC,UAAU,EACV,qBAAqB,EACrB,UAAU,EACV,WAAW,EACX,GAAG,EACH,SAAS,EACT,IAAI,EAAE,QAAQ,EACd,aAAa,EAAE,MAAM,EACrB,MAAM,EACN,SAAS,EACT,KAAK,EACL,UAAU,EAAE,kBAAkB,GAC/B,EAAE,gBAAgB,qBA+dlB;yBA5fe,WAAW"}
1
+ {"version":3,"file":"PowerSearch.d.ts","sourceRoot":"","sources":["../../src/PowerSearch/PowerSearch.tsx"],"names":[],"mappings":"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"}
@@ -408,10 +408,7 @@ export function PowerSearch({
408
408
  onHide: handleLayerHide,
409
409
  hasLightDismiss: true,
410
410
  hasCloseButton: false,
411
- hasAutoFocus: false,
412
- // The popup's own listbox/menu content is the exposed semantics; focus
413
- // stays on the tokenizer input, so a modal dialog wrapper is incorrect.
414
- role: 'none'
411
+ hasAutoFocus: false
415
412
  });
416
413
 
417
414
  // Wrapper that manages layer visibility and tokenizer focus alongside state
@@ -201,7 +201,7 @@ export function ProgressBar({
201
201
  },
202
202
  children: label
203
203
  }), /*#__PURE__*/_jsx("div", {
204
- role: "progressbar",
204
+ role: isIndeterminate ? 'progressbar' : 'meter',
205
205
  "aria-valuenow": isIndeterminate ? undefined : clampedValue,
206
206
  "aria-valuemin": isIndeterminate ? undefined : 0,
207
207
  "aria-valuemax": isIndeterminate ? undefined : max,
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @file RadioList.tsx
3
- * @input Uses React useId, useCallback, useRef, createContext, ReactNode, Field, InputStatus
3
+ * @input Uses React useId, createContext, ReactNode, Field, InputStatus
4
4
  * @output Exports RadioList component, RadioListProps, RadioListContext
5
5
  * @position Core implementation; consumed by index.ts, tested by RadioList.test.tsx
6
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"RadioList.d.ts","sourceRoot":"","sources":["../../src/RadioList/RadioList.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,EAMZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAG9C;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;AAExC,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,eAAO,MAAM,gBAAgB,6CAE5B,CAAC;AAiBF,MAAM,WAAW,cAAe,SAAQ,IAAI,CAC1C,SAAS,CAAC,WAAW,CAAC,EACtB,UAAU,CACX;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;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,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;;OAGG;IACH,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,EACxB,GAAG,EACH,KAAK,EACL,aAAqB,EACrB,WAAW,EACX,KAAK,EACL,QAAQ,EACR,WAAwB,EACxB,UAAkB,EAClB,UAAkB,EAClB,UAAkB,EAClB,IAAW,EACX,MAAM,EACN,YAAY,EACZ,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,UAAU,EACzB,QAAQ,GACT,EAAE,cAAc,qBAuJhB;yBA3Ke,SAAS"}
1
+ {"version":3,"file":"RadioList.d.ts","sourceRoot":"","sources":["../../src/RadioList/RadioList.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,EAAgC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAI3E,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAG9C;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;AAExC,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,eAAO,MAAM,gBAAgB,6CACsB,CAAC;AAiBpD,MAAM,WAAW,cAAe,SAAQ,IAAI,CAC1C,SAAS,CAAC,WAAW,CAAC,EACtB,UAAU,CACX;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;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,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;;OAGG;IACH,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,EACxB,GAAG,EACH,KAAK,EACL,aAAqB,EACrB,WAAW,EACX,KAAK,EACL,QAAQ,EACR,WAAwB,EACxB,UAAkB,EAClB,UAAkB,EAClB,UAAkB,EAClB,IAAW,EACX,MAAM,EACN,YAAY,EACZ,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,UAAU,EACzB,QAAQ,GACT,EAAE,cAAc,qBAgEhB;yBApFe,SAAS"}
@@ -4,7 +4,7 @@
4
4
 
5
5
  /**
6
6
  * @file RadioList.tsx
7
- * @input Uses React useId, useCallback, useRef, createContext, ReactNode, Field, InputStatus
7
+ * @input Uses React useId, createContext, ReactNode, Field, InputStatus
8
8
  * @output Exports RadioList component, RadioListProps, RadioListContext
9
9
  * @position Core implementation; consumed by index.ts, tested by RadioList.test.tsx
10
10
  *
@@ -15,7 +15,7 @@
15
15
  * - /apps/storybook/stories/RadioList.stories.tsx
16
16
  * - /packages/cli/templates/blocks/components/RadioList/ (showcase blocks)
17
17
  */
18
- import React, { createContext, useCallback, useId, useMemo, useRef } from 'react';
18
+ import React, { createContext, useId, useMemo } from 'react';
19
19
  import * as stylex from '@stylexjs/stylex';
20
20
  import "../theme/tokens.stylex.js";
21
21
  import { spacingVars } from "../theme/tokens.stylex.js";
@@ -67,10 +67,8 @@ export function RadioList({
67
67
  }) {
68
68
  const name = useId();
69
69
  const inputID = useId();
70
- const labelID = useId();
71
70
  const descriptionID = useId();
72
71
  const statusMessageID = useId();
73
- const groupRef = useRef(null);
74
72
  const contextValue = useMemo(() => ({
75
73
  name,
76
74
  value,
@@ -80,73 +78,6 @@ export function RadioList({
80
78
  size,
81
79
  status
82
80
  }), [name, value, onChange, isDisabled, isRequired, size, status]);
83
-
84
- /**
85
- * Make the tab stop deterministic when a radio group has no selected value.
86
- *
87
- * Native `<input type="radio">` groups (same `name`) implement roving
88
- * tabindex for free: when a value is selected, that radio is the single tab
89
- * stop and receives focus, so no correction is needed there. But the ARIA
90
- * radio-group pattern (APG) also requires a deterministic tab stop when the
91
- * group has *no* selection — and browsers disagree here. Chrome, when
92
- * Shift+Tab moves focus backward into an unselected group, lands on the
93
- * *last* radio; forward Tab lands on the *first*. To keep the entry point
94
- * predictable we redirect focus:
95
- * - forward entry → first enabled radio (APG default)
96
- * - backward entry → last enabled radio (matches Chrome's backward tab)
97
- *
98
- * The redirect only runs when focus arrives from *outside* the group's own
99
- * radios (guarded via `relatedTarget` containment). Moving between radios
100
- * inside the group — arrow keys, clicks, programmatic focus of a sibling —
101
- * is never hijacked.
102
- */
103
- const handleFocus = useCallback(e => {
104
- // Only correct the no-selection case; a selected value already provides
105
- // a deterministic native tab stop.
106
- if (value !== '') {
107
- return;
108
- }
109
- const group = groupRef.current;
110
- if (!group) {
111
- return;
112
- }
113
-
114
- // Ignore focus moving *within* the group. `relatedTarget` is the element
115
- // losing focus; if it was inside the group, this is intra-group movement
116
- // (arrow keys, clicking a sibling) and must not be hijacked. Some browsers
117
- // report a null `relatedTarget`; fall back to checking whether the group
118
- // already contained the active element before this focus landed.
119
- const relatedTarget = e.relatedTarget;
120
- if (relatedTarget) {
121
- if (group.contains(relatedTarget)) {
122
- return;
123
- }
124
- } else if (document.activeElement && document.activeElement !== e.target && group.contains(document.activeElement)) {
125
- return;
126
- }
127
- const radios = Array.from(group.querySelectorAll('input[type="radio"]:not([disabled])'));
128
- if (radios.length === 0) {
129
- return;
130
- }
131
- const target = e.target;
132
- const targetIndex = radios.findIndex(radio => radio === target);
133
- // Only correct when the focus target is one of our enabled radios (not a
134
- // nested control such as end-content).
135
- if (targetIndex === -1) {
136
- return;
137
- }
138
-
139
- // Infer tab direction from which end the browser chose. On a backward
140
- // (Shift+Tab) entry into an unselected group, browsers focus the *last*
141
- // radio; keep it as the deterministic backward tab stop. Any other entry
142
- // (forward Tab, or a browser that lands mid-group) is normalized to the
143
- // *first* enabled radio, the APG default.
144
- const isBackwardEntry = targetIndex === radios.length - 1;
145
- const intended = isBackwardEntry ? radios[radios.length - 1] : radios[0];
146
- if (target !== intended) {
147
- intended.focus();
148
- }
149
- }, [value]);
150
81
  return /*#__PURE__*/_jsx(Field, {
151
82
  ref: ref,
152
83
  "data-testid": dataTestId,
@@ -154,8 +85,6 @@ export function RadioList({
154
85
  isLabelHidden: isLabelHidden,
155
86
  description: description,
156
87
  inputID: inputID,
157
- labelID: labelID,
158
- isGroupLabel: true,
159
88
  descriptionID: description ? descriptionID : undefined,
160
89
  isOptional: isOptional,
161
90
  isRequired: isRequired,
@@ -172,10 +101,8 @@ export function RadioList({
172
101
  className: className,
173
102
  style: style,
174
103
  children: /*#__PURE__*/_jsx("div", {
175
- ref: groupRef,
176
104
  role: "radiogroup",
177
- "aria-labelledby": labelID,
178
- onFocus: handleFocus,
105
+ "aria-label": label,
179
106
  "aria-describedby": [description ? descriptionID : null, status?.message ? statusMessageID : null].filter(Boolean).join(' ') || undefined,
180
107
  "aria-invalid": status?.type === 'error' ? true : undefined,
181
108
  "aria-required": isRequired || undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../src/SegmentedControl/SegmentedControl.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,EAA+B,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAK1E,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAG5C,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CACjD,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,CACX;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAwCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,GAAG,EACH,KAAK,EACL,QAAQ,EACR,KAAK,EACL,IAAI,EAAE,QAAQ,EACd,MAAc,EACd,UAAkB,EAClB,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,GACN,EAAE,qBAAqB,qBAmHvB;yBA/He,gBAAgB"}
1
+ {"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../src/SegmentedControl/SegmentedControl.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,EAA+B,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAI1E,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAG5C,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CACjD,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,CACX;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAwCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,GAAG,EACH,KAAK,EACL,QAAQ,EACR,KAAK,EACL,IAAI,EAAE,QAAQ,EACd,MAAc,EACd,UAAkB,EAClB,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,GACN,EAAE,qBAAqB,qBA0FvB;yBAtGe,gBAAgB"}
@@ -19,7 +19,6 @@ import * as stylex from '@stylexjs/stylex';
19
19
  import "../theme/tokens.stylex.js";
20
20
  import { colorVars, spacingVars, radiusVars } from "../theme/tokens.stylex.js";
21
21
  import { SegmentedControlContext } from "./SegmentedControlContext.js";
22
- import { useIsomorphicLayoutEffect } from "../hooks/useIsomorphicLayoutEffect.js";
23
22
  import { mergeProps, mergeRefs } from "../utils/index.js";
24
23
  import { useSize } from "../SizeContext/SizeContext.js";
25
24
  import { themeProps } from "../utils/themeProps.js";
@@ -140,27 +139,6 @@ export function SegmentedControl({
140
139
  layout,
141
140
  isDisabled
142
141
  }), [value, onChange, size, layout, isDisabled]);
143
-
144
- // Tab-stop repair (navigation-6): each item sets tabIndex=0 only when its
145
- // value matches the group value, so a stale/unmatched `value` (or a disabled
146
- // selected item) can leave every segment at tabIndex=-1 — making the whole
147
- // radiogroup unreachable by Tab. After render, if no enabled radio is
148
- // tabbable, promote the first enabled radio to tabIndex=0 so the group always
149
- // has exactly one tab stop. Mirrors Base UI's Composite tab-stop repair.
150
- useIsomorphicLayoutEffect(() => {
151
- const container = containerRef.current;
152
- if (!container) {
153
- return;
154
- }
155
- const enabled = Array.from(container.querySelectorAll('[role="radio"]:not([aria-disabled="true"])'));
156
- if (enabled.length === 0) {
157
- return;
158
- }
159
- const hasTabStop = enabled.some(el => el.tabIndex === 0);
160
- if (!hasTabStop) {
161
- enabled[0].tabIndex = 0;
162
- }
163
- });
164
142
  return /*#__PURE__*/_jsx(SegmentedControlContext, {
165
143
  value: contextValue,
166
144
  children: /*#__PURE__*/_jsx("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedControlItem.d.ts","sourceRoot":"","sources":["../../src/SegmentedControl/SegmentedControlItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,EAAc,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAezD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAG5C,MAAM,WAAW,yBAA0B,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IAC7E,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA6FD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,GAAG,EACH,KAAK,EACL,KAAK,EACL,aAAqB,EACrB,IAAI,EACJ,UAAkB,GACnB,EAAE,yBAAyB,qBAmD3B;yBA1De,oBAAoB"}
1
+ {"version":3,"file":"SegmentedControlItem.d.ts","sourceRoot":"","sources":["../../src/SegmentedControl/SegmentedControlItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,EAAc,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAezD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAG5C,MAAM,WAAW,yBAA0B,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IAC7E,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA6FD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,GAAG,EACH,KAAK,EACL,KAAK,EACL,aAAqB,EACrB,IAAI,EACJ,UAAkB,GACnB,EAAE,yBAAyB,qBAgD3B;yBAvDe,oBAAoB"}
@@ -157,12 +157,8 @@ export function SegmentedControlItem({
157
157
  "aria-checked": isSelected,
158
158
  "aria-disabled": isItemDisabled || undefined,
159
159
  "aria-label": isLabelHidden ? label : undefined,
160
- "data-value": value
161
- // Disabled items (including when the whole group is disabled) are not tab
162
- // stops — otherwise the selected segment stays keyboard-focusable but is
163
- // silently dead (arrows and activation are no-ops) (navigation-13).
164
- ,
165
- tabIndex: isSelected && !isItemDisabled ? 0 : -1,
160
+ "data-value": value,
161
+ tabIndex: isSelected ? 0 : -1,
166
162
  onClick: handleClick,
167
163
  ...mergeProps(themeProps('segmented-control-item', {
168
164
  size,
@@ -1 +1 @@
1
- {"version":3,"file":"Selector.d.ts","sourceRoot":"","sources":["../../src/Selector/Selector.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Selector.d.ts","sourceRoot":"","sources":["../../src/Selector/Selector.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,EASZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,EAAuB,KAAK,QAAQ,EAAC,MAAM,SAAS,CAAC;AAU5D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AActD,OAAO,KAAK,EAAC,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAC;AAYpE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AA6P9C,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE9C,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAEjE,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,EAAE,kBAAkB,CAAC;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,iBAAiB,CACzB,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,CACjD,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,cAAc,CAAC;IACpD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,OAAO,EAAE,CAAC,EAAE,CAAC;IAIb;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;IAEpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;IAExB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAEjC;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,SAAS,CAAC;IAEzD;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,KAAK,yBAAyB,CAC5B,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,IAC/C,iBAAiB,CAAC,CAAC,CAAC,GAAG;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD,CAAC;AAEF,KAAK,sBAAsB,CACzB,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,IAC/C,iBAAiB,CAAC,CAAC,CAAC,GAAG;IACzB;;;;;OAKG;IACH,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D,CAAC;AAEF,MAAM,MAAM,aAAa,CACvB,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,IAC/C,yBAAyB,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;AAc7D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,kBAAkB,EACnD,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,qBA0cxB;yBA3ce,QAAQ"}