@astryxdesign/core 0.2.0-canary.85f5022 → 0.2.0-canary.8dfd7cf

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 (966) hide show
  1. package/dist/AlertDialog/AlertDialog.d.ts +1 -1
  2. package/dist/AlertDialog/AlertDialog.js +1 -1
  3. package/dist/AppShell/AppShell.d.ts +2 -20
  4. package/dist/AppShell/AppShell.d.ts.map +1 -1
  5. package/dist/AppShell/AppShell.js +1 -14
  6. package/dist/AppShell/index.d.ts +20 -1
  7. package/dist/AppShell/index.d.ts.map +1 -1
  8. package/dist/AppShell/index.js +14 -0
  9. package/dist/AspectRatio/AspectRatio.d.ts +1 -1
  10. package/dist/AspectRatio/AspectRatio.js +1 -1
  11. package/dist/Avatar/Avatar.d.ts +1 -1
  12. package/dist/Avatar/Avatar.d.ts.map +1 -1
  13. package/dist/Avatar/Avatar.js +4 -4
  14. package/dist/Avatar/AvatarStatusDot.d.ts +2 -26
  15. package/dist/Avatar/AvatarStatusDot.d.ts.map +1 -1
  16. package/dist/Avatar/AvatarStatusDot.js +1 -22
  17. package/dist/Avatar/index.d.ts +26 -1
  18. package/dist/Avatar/index.d.ts.map +1 -1
  19. package/dist/Avatar/index.js +21 -0
  20. package/dist/AvatarGroup/AvatarGroup.d.ts +1 -1
  21. package/dist/AvatarGroup/AvatarGroup.js +1 -1
  22. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts +2 -2
  23. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
  24. package/dist/AvatarGroup/AvatarGroupOverflow.js +7 -3
  25. package/dist/Badge/Badge.d.ts +2 -30
  26. package/dist/Badge/Badge.d.ts.map +1 -1
  27. package/dist/Badge/Badge.js +2 -17
  28. package/dist/Badge/index.d.ts +31 -2
  29. package/dist/Badge/index.d.ts.map +1 -1
  30. package/dist/Badge/index.js +15 -1
  31. package/dist/Banner/Banner.d.ts +2 -37
  32. package/dist/Banner/Banner.d.ts.map +1 -1
  33. package/dist/Banner/Banner.js +6 -34
  34. package/dist/Banner/index.d.ts +37 -1
  35. package/dist/Banner/index.d.ts.map +1 -1
  36. package/dist/Banner/index.js +27 -0
  37. package/dist/Blockquote/Blockquote.d.ts +1 -1
  38. package/dist/Blockquote/Blockquote.js +1 -1
  39. package/dist/Breadcrumbs/BreadcrumbItem.d.ts +1 -1
  40. package/dist/Breadcrumbs/BreadcrumbItem.js +4 -3
  41. package/dist/Breadcrumbs/Breadcrumbs.d.ts +2 -18
  42. package/dist/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  43. package/dist/Breadcrumbs/Breadcrumbs.js +1 -15
  44. package/dist/Breadcrumbs/index.d.ts +18 -1
  45. package/dist/Breadcrumbs/index.d.ts.map +1 -1
  46. package/dist/Breadcrumbs/index.js +14 -0
  47. package/dist/Button/Button.d.ts +3 -21
  48. package/dist/Button/Button.d.ts.map +1 -1
  49. package/dist/Button/Button.js +6 -19
  50. package/dist/Button/index.d.ts +21 -3
  51. package/dist/Button/index.d.ts.map +1 -1
  52. package/dist/Button/index.js +15 -1
  53. package/dist/ButtonGroup/ButtonGroup.d.ts +1 -1
  54. package/dist/ButtonGroup/ButtonGroup.js +1 -1
  55. package/dist/Calendar/Calendar.js +1 -1
  56. package/dist/Calendar/styles.d.ts +2 -2
  57. package/dist/Calendar/styles.js +2 -2
  58. package/dist/Card/Card.d.ts +1 -1
  59. package/dist/Card/Card.js +1 -1
  60. package/dist/Carousel/Carousel.d.ts +1 -1
  61. package/dist/Carousel/Carousel.js +1 -1
  62. package/dist/Center/Center.d.ts +21 -4
  63. package/dist/Center/Center.d.ts.map +1 -1
  64. package/dist/Center/Center.js +11 -3
  65. package/dist/Chat/ChatComposer.d.ts +1 -1
  66. package/dist/Chat/ChatComposer.js +9 -9
  67. package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
  68. package/dist/Chat/ChatComposerDrawer.js +3 -3
  69. package/dist/Chat/ChatComposerInput.d.ts +1 -1
  70. package/dist/Chat/ChatComposerInput.js +1 -1
  71. package/dist/Chat/ChatDictationButton.d.ts +1 -1
  72. package/dist/Chat/ChatDictationButton.js +1 -1
  73. package/dist/Chat/ChatLayout.d.ts +8 -1
  74. package/dist/Chat/ChatLayout.d.ts.map +1 -1
  75. package/dist/Chat/ChatLayout.js +15 -4
  76. package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
  77. package/dist/Chat/ChatLayoutScrollButton.js +1 -1
  78. package/dist/Chat/ChatMessage.d.ts +1 -1
  79. package/dist/Chat/ChatMessage.js +1 -1
  80. package/dist/Chat/ChatMessageBubble.d.ts +1 -1
  81. package/dist/Chat/ChatMessageBubble.js +1 -1
  82. package/dist/Chat/ChatMessageList.d.ts +1 -1
  83. package/dist/Chat/ChatMessageList.js +1 -1
  84. package/dist/Chat/ChatSendButton.d.ts.map +1 -1
  85. package/dist/Chat/ChatSendButton.js +4 -2
  86. package/dist/Chat/ChatSystemMessage.d.ts +1 -1
  87. package/dist/Chat/ChatSystemMessage.js +1 -1
  88. package/dist/Chat/ChatTokenizedText.d.ts +1 -1
  89. package/dist/Chat/ChatTokenizedText.js +1 -1
  90. package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
  91. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  92. package/dist/CheckboxInput/CheckboxInput.js +3 -3
  93. package/dist/CheckboxList/CheckboxList.d.ts +1 -1
  94. package/dist/CheckboxList/CheckboxList.js +1 -1
  95. package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
  96. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  97. package/dist/CheckboxList/CheckboxListItem.js +20 -5
  98. package/dist/Citation/Citation.d.ts +1 -1
  99. package/dist/Citation/Citation.js +1 -1
  100. package/dist/ClickableCard/ClickableCard.d.ts +3 -3
  101. package/dist/ClickableCard/ClickableCard.js +3 -3
  102. package/dist/Code/Code.d.ts +2 -2
  103. package/dist/Code/Code.js +2 -2
  104. package/dist/CodeBlock/CodeBlock.js +2 -2
  105. package/dist/Collapsible/Collapsible.d.ts +1 -1
  106. package/dist/Collapsible/Collapsible.js +3 -3
  107. package/dist/Collapsible/CollapsibleGroup.d.ts +1 -1
  108. package/dist/Collapsible/CollapsibleGroup.js +1 -1
  109. package/dist/Collapsible/CollapsibleGroupContext.js +1 -1
  110. package/dist/CommandPalette/CommandPalette.d.ts +1 -1
  111. package/dist/CommandPalette/CommandPalette.js +1 -1
  112. package/dist/CommandPalette/CommandPaletteEmpty.js +1 -1
  113. package/dist/CommandPalette/CommandPaletteFooter.js +1 -1
  114. package/dist/CommandPalette/CommandPaletteGroup.js +1 -1
  115. package/dist/CommandPalette/CommandPaletteInput.d.ts +2 -2
  116. package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
  117. package/dist/CommandPalette/CommandPaletteInput.js +4 -2
  118. package/dist/CommandPalette/CommandPaletteItem.d.ts +1 -1
  119. package/dist/CommandPalette/CommandPaletteItem.js +1 -1
  120. package/dist/CommandPalette/CommandPaletteList.js +1 -1
  121. package/dist/ContextMenu/ContextMenu.d.ts +2 -2
  122. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  123. package/dist/ContextMenu/ContextMenu.js +24 -6
  124. package/dist/DateInput/DateInput.js +1 -1
  125. package/dist/DateRangeInput/DateRangeInput.js +1 -1
  126. package/dist/DateTimeInput/DateTimeInput.js +1 -1
  127. package/dist/Dialog/Dialog.d.ts +46 -23
  128. package/dist/Dialog/Dialog.d.ts.map +1 -1
  129. package/dist/Dialog/Dialog.js +59 -31
  130. package/dist/Dialog/DialogHeader.d.ts +1 -1
  131. package/dist/Dialog/DialogHeader.js +1 -1
  132. package/dist/Dialog/index.d.ts +18 -1
  133. package/dist/Dialog/index.d.ts.map +1 -1
  134. package/dist/Dialog/index.js +14 -0
  135. package/dist/Divider/Divider.d.ts +2 -18
  136. package/dist/Divider/Divider.d.ts.map +1 -1
  137. package/dist/Divider/Divider.js +1 -15
  138. package/dist/Divider/index.d.ts +18 -1
  139. package/dist/Divider/index.d.ts.map +1 -1
  140. package/dist/Divider/index.js +14 -0
  141. package/dist/DropdownMenu/DropdownMenu.d.ts +9 -3
  142. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  143. package/dist/DropdownMenu/DropdownMenu.js +23 -19
  144. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +18 -12
  145. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  146. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +38 -63
  147. package/dist/DropdownMenu/DropdownMenuItem.d.ts +1 -1
  148. package/dist/DropdownMenu/DropdownMenuItem.js +1 -1
  149. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts +8 -11
  150. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts.map +1 -1
  151. package/dist/DropdownMenu/DropdownMenuRadioGroup.js +3 -1
  152. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +1 -1
  153. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  154. package/dist/DropdownMenu/DropdownMenuRadioItem.js +6 -2
  155. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +1 -1
  156. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  157. package/dist/DropdownMenu/DropdownMenuSubMenu.js +14 -6
  158. package/dist/DropdownMenu/menuItemHover.d.ts +1 -0
  159. package/dist/DropdownMenu/menuItemHover.d.ts.map +1 -1
  160. package/dist/DropdownMenu/menuItemHover.js +1 -0
  161. package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
  162. package/dist/DropdownMenu/renderDropdownItems.js +6 -4
  163. package/dist/EmptyState/EmptyState.d.ts +1 -1
  164. package/dist/EmptyState/EmptyState.js +1 -1
  165. package/dist/Field/Field.d.ts +1 -1
  166. package/dist/Field/Field.js +1 -1
  167. package/dist/Field/FieldLabel.d.ts +4 -3
  168. package/dist/Field/FieldLabel.d.ts.map +1 -1
  169. package/dist/Field/FieldLabel.js +48 -5
  170. package/dist/FieldStatus/FieldStatus.d.ts +1 -18
  171. package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
  172. package/dist/FieldStatus/FieldStatus.js +13 -17
  173. package/dist/FieldStatus/index.d.ts +19 -1
  174. package/dist/FieldStatus/index.d.ts.map +1 -1
  175. package/dist/FieldStatus/index.js +14 -0
  176. package/dist/FileInput/FileInput.js +1 -1
  177. package/dist/FormLayout/FormLayout.d.ts +1 -1
  178. package/dist/FormLayout/FormLayout.d.ts.map +1 -1
  179. package/dist/FormLayout/FormLayout.js +1 -1
  180. package/dist/Grid/Grid.d.ts +1 -1
  181. package/dist/Grid/Grid.js +1 -1
  182. package/dist/Grid/GridSpan.d.ts +1 -1
  183. package/dist/Grid/GridSpan.js +1 -1
  184. package/dist/HStack/HStack.d.ts +1 -1
  185. package/dist/HStack/HStack.js +1 -1
  186. package/dist/Heading/Heading.d.ts +2 -2
  187. package/dist/Heading/Heading.d.ts.map +1 -1
  188. package/dist/Heading/Heading.js +5 -4
  189. package/dist/HoverCard/HoverCard.d.ts +1 -1
  190. package/dist/HoverCard/HoverCard.js +1 -1
  191. package/dist/Icon/Icon.d.ts +1 -1
  192. package/dist/Icon/Icon.d.ts.map +1 -1
  193. package/dist/Icon/Icon.js +4 -2
  194. package/dist/Icon/globalIconRegistry.d.ts +6 -4
  195. package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
  196. package/dist/Icon/globalIconRegistry.js +25 -6
  197. package/dist/Icon/index.d.ts +3 -2
  198. package/dist/Icon/index.d.ts.map +1 -1
  199. package/dist/Icon/index.js +1 -0
  200. package/dist/Icon/useIcon.d.ts +14 -0
  201. package/dist/Icon/useIcon.d.ts.map +1 -0
  202. package/dist/Icon/useIcon.js +21 -0
  203. package/dist/IconButton/IconButton.d.ts +1 -1
  204. package/dist/IconButton/IconButton.js +1 -1
  205. package/dist/InputGroup/InputGroup.d.ts +1 -1
  206. package/dist/InputGroup/InputGroup.js +1 -1
  207. package/dist/InputGroup/InputGroupText.d.ts +1 -1
  208. package/dist/InputGroup/InputGroupText.js +1 -1
  209. package/dist/Item/Item.d.ts +17 -4
  210. package/dist/Item/Item.d.ts.map +1 -1
  211. package/dist/Item/Item.js +32 -7
  212. package/dist/Kbd/Kbd.d.ts +1 -1
  213. package/dist/Kbd/Kbd.js +1 -1
  214. package/dist/Layout/Layout.d.ts +1 -1
  215. package/dist/Layout/Layout.js +1 -1
  216. package/dist/Layout/LayoutContent.d.ts +1 -1
  217. package/dist/Layout/LayoutContent.js +1 -1
  218. package/dist/Layout/LayoutFooter.d.ts +1 -1
  219. package/dist/Layout/LayoutFooter.js +1 -1
  220. package/dist/Layout/LayoutHeader.d.ts +1 -1
  221. package/dist/Layout/LayoutHeader.js +1 -1
  222. package/dist/Layout/LayoutPanel.d.ts +1 -1
  223. package/dist/Layout/LayoutPanel.js +1 -1
  224. package/dist/Lightbox/Lightbox.d.ts +1 -1
  225. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  226. package/dist/Lightbox/Lightbox.js +16 -3
  227. package/dist/Link/Link.d.ts +1 -1
  228. package/dist/Link/Link.js +1 -1
  229. package/dist/Link/LinkProvider.d.ts +2 -2
  230. package/dist/Link/LinkProvider.js +2 -2
  231. package/dist/List/List.d.ts +1 -1
  232. package/dist/List/List.js +1 -1
  233. package/dist/List/ListItem.d.ts +12 -2
  234. package/dist/List/ListItem.d.ts.map +1 -1
  235. package/dist/List/ListItem.js +3 -1
  236. package/dist/Markdown/Markdown.js +4 -4
  237. package/dist/MetadataList/MetadataList.d.ts +2 -2
  238. package/dist/MetadataList/MetadataList.d.ts.map +1 -1
  239. package/dist/MetadataList/MetadataList.js +5 -3
  240. package/dist/MetadataList/MetadataListItem.d.ts +1 -1
  241. package/dist/MetadataList/MetadataListItem.js +1 -1
  242. package/dist/MobileNav/MobileNav.d.ts +1 -1
  243. package/dist/MobileNav/MobileNav.js +1 -1
  244. package/dist/MoreMenu/MoreMenu.d.ts +1 -1
  245. package/dist/MoreMenu/MoreMenu.js +3 -3
  246. package/dist/MultiSelector/MultiSelector.d.ts +1 -1
  247. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  248. package/dist/MultiSelector/MultiSelector.js +21 -6
  249. package/dist/NavIcon/NavIcon.d.ts +1 -1
  250. package/dist/NavIcon/NavIcon.js +1 -1
  251. package/dist/NumberInput/NumberInput.d.ts +1 -1
  252. package/dist/NumberInput/NumberInput.js +1 -1
  253. package/dist/Outline/Outline.js +1 -1
  254. package/dist/OverflowList/OverflowList.d.ts +1 -1
  255. package/dist/OverflowList/OverflowList.js +1 -1
  256. package/dist/Pagination/Pagination.d.ts +1 -20
  257. package/dist/Pagination/Pagination.d.ts.map +1 -1
  258. package/dist/Pagination/Pagination.js +1 -15
  259. package/dist/Pagination/index.d.ts +21 -1
  260. package/dist/Pagination/index.d.ts.map +1 -1
  261. package/dist/Pagination/index.js +14 -0
  262. package/dist/Popover/Popover.d.ts +20 -3
  263. package/dist/Popover/Popover.d.ts.map +1 -1
  264. package/dist/Popover/Popover.js +5 -1
  265. package/dist/Popover/usePopover.d.ts.map +1 -1
  266. package/dist/Popover/usePopover.js +14 -3
  267. package/dist/PowerSearch/PowerSearch.d.ts +1 -1
  268. package/dist/PowerSearch/PowerSearch.js +1 -1
  269. package/dist/ProgressBar/ProgressBar.d.ts +1 -20
  270. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  271. package/dist/ProgressBar/ProgressBar.js +1 -15
  272. package/dist/ProgressBar/index.d.ts +21 -1
  273. package/dist/ProgressBar/index.d.ts.map +1 -1
  274. package/dist/ProgressBar/index.js +14 -0
  275. package/dist/RadioList/RadioList.d.ts +1 -1
  276. package/dist/RadioList/RadioList.js +1 -1
  277. package/dist/RadioList/RadioListItem.d.ts +1 -1
  278. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  279. package/dist/RadioList/RadioListItem.js +2 -2
  280. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  281. package/dist/Resizable/ResizeHandle.js +3 -10
  282. package/dist/Section/Section.d.ts +2 -19
  283. package/dist/Section/Section.d.ts.map +1 -1
  284. package/dist/Section/Section.js +1 -15
  285. package/dist/Section/index.d.ts +19 -1
  286. package/dist/Section/index.d.ts.map +1 -1
  287. package/dist/Section/index.js +14 -0
  288. package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
  289. package/dist/SegmentedControl/SegmentedControl.js +1 -1
  290. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  291. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  292. package/dist/SegmentedControl/SegmentedControlItem.js +4 -3
  293. package/dist/SelectableCard/SelectableCard.d.ts +4 -3
  294. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  295. package/dist/SelectableCard/SelectableCard.js +15 -3
  296. package/dist/Selector/Selector.d.ts +1 -1
  297. package/dist/Selector/Selector.d.ts.map +1 -1
  298. package/dist/Selector/Selector.js +12 -3
  299. package/dist/SideNav/SideNav.d.ts +1 -1
  300. package/dist/SideNav/SideNav.js +1 -1
  301. package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
  302. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  303. package/dist/SideNav/SideNavCollapseButton.js +4 -3
  304. package/dist/SideNav/SideNavHeading.d.ts +1 -1
  305. package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
  306. package/dist/SideNav/SideNavHeading.js +8 -7
  307. package/dist/SideNav/SideNavItem.d.ts +2 -2
  308. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  309. package/dist/SideNav/SideNavItem.js +6 -7
  310. package/dist/SideNav/SideNavSection.d.ts +1 -1
  311. package/dist/SideNav/SideNavSection.js +1 -1
  312. package/dist/Skeleton/Skeleton.d.ts +1 -1
  313. package/dist/Skeleton/Skeleton.d.ts.map +1 -1
  314. package/dist/Skeleton/Skeleton.js +3 -3
  315. package/dist/Slider/Slider.d.ts.map +1 -1
  316. package/dist/Slider/Slider.js +78 -68
  317. package/dist/Spinner/Spinner.d.ts +1 -1
  318. package/dist/Spinner/Spinner.js +1 -1
  319. package/dist/Stack/Stack.d.ts +1 -1
  320. package/dist/Stack/Stack.js +1 -1
  321. package/dist/Stack/StackItem.d.ts +1 -1
  322. package/dist/Stack/StackItem.js +1 -1
  323. package/dist/StatusDot/StatusDot.d.ts +1 -20
  324. package/dist/StatusDot/StatusDot.d.ts.map +1 -1
  325. package/dist/StatusDot/StatusDot.js +2 -17
  326. package/dist/StatusDot/index.d.ts +21 -1
  327. package/dist/StatusDot/index.d.ts.map +1 -1
  328. package/dist/StatusDot/index.js +14 -0
  329. package/dist/Switch/Switch.d.ts +1 -1
  330. package/dist/Switch/Switch.d.ts.map +1 -1
  331. package/dist/Switch/Switch.js +16 -5
  332. package/dist/TabList/Tab.d.ts +1 -1
  333. package/dist/TabList/Tab.js +1 -1
  334. package/dist/TabList/TabList.d.ts +1 -1
  335. package/dist/TabList/TabList.js +1 -1
  336. package/dist/TabList/TabMenu.d.ts +1 -1
  337. package/dist/TabList/TabMenu.js +1 -1
  338. package/dist/Table/BaseTable.d.ts +1 -1
  339. package/dist/Table/BaseTable.js +1 -1
  340. package/dist/Table/Table.d.ts +1 -1
  341. package/dist/Table/Table.js +1 -1
  342. package/dist/Table/TableCell.d.ts +1 -1
  343. package/dist/Table/TableCell.js +1 -1
  344. package/dist/Table/TableHeaderCell.d.ts +1 -1
  345. package/dist/Table/TableHeaderCell.js +1 -1
  346. package/dist/Table/TableRow.d.ts +1 -1
  347. package/dist/Table/TableRow.js +1 -1
  348. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +18 -3
  349. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  350. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +22 -4
  351. package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
  352. package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
  353. package/dist/Table/plugins/tree/useTableTreeData.js +36 -2
  354. package/dist/Text/Text.d.ts +11 -2
  355. package/dist/Text/Text.d.ts.map +1 -1
  356. package/dist/Text/Text.js +26 -3
  357. package/dist/Text/index.d.ts +31 -1
  358. package/dist/Text/index.d.ts.map +1 -1
  359. package/dist/Text/index.js +23 -0
  360. package/dist/TextArea/TextArea.d.ts +1 -1
  361. package/dist/TextArea/TextArea.d.ts.map +1 -1
  362. package/dist/TextArea/TextArea.js +107 -39
  363. package/dist/TextInput/TextInput.d.ts +1 -1
  364. package/dist/TextInput/TextInput.js +1 -1
  365. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  366. package/dist/Thumbnail/Thumbnail.js +52 -46
  367. package/dist/TimeInput/TimeInput.js +1 -1
  368. package/dist/Timestamp/Timestamp.js +2 -2
  369. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  370. package/dist/Toast/ToastViewport.js +61 -9
  371. package/dist/ToggleButton/ToggleButton.d.ts +1 -1
  372. package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
  373. package/dist/ToggleButton/ToggleButton.js +4 -2
  374. package/dist/ToggleButton/ToggleButtonGroup.d.ts +1 -1
  375. package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  376. package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
  377. package/dist/Token/Token.d.ts +6 -28
  378. package/dist/Token/Token.d.ts.map +1 -1
  379. package/dist/Token/Token.js +69 -58
  380. package/dist/Token/TokenLink.d.ts +62 -0
  381. package/dist/Token/TokenLink.d.ts.map +1 -0
  382. package/dist/Token/TokenLink.js +76 -0
  383. package/dist/Token/index.d.ts +27 -1
  384. package/dist/Token/index.d.ts.map +1 -1
  385. package/dist/Token/index.js +14 -0
  386. package/dist/Tokenizer/Tokenizer.d.ts +1 -1
  387. package/dist/Tokenizer/Tokenizer.js +1 -1
  388. package/dist/Toolbar/Toolbar.d.ts +1 -1
  389. package/dist/Toolbar/Toolbar.js +1 -1
  390. package/dist/Tooltip/Tooltip.d.ts +1 -1
  391. package/dist/Tooltip/Tooltip.js +1 -1
  392. package/dist/TopNav/TopNav.d.ts +1 -1
  393. package/dist/TopNav/TopNav.js +1 -1
  394. package/dist/TopNav/TopNavHeading.d.ts +1 -1
  395. package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
  396. package/dist/TopNav/TopNavHeading.js +7 -6
  397. package/dist/TopNav/TopNavItem.d.ts +1 -1
  398. package/dist/TopNav/TopNavItem.js +1 -1
  399. package/dist/TopNav/TopNavMegaMenu.d.ts +1 -1
  400. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  401. package/dist/TopNav/TopNavMegaMenu.js +15 -7
  402. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
  403. package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +1 -1
  404. package/dist/TopNav/TopNavMegaMenuItem.d.ts +1 -1
  405. package/dist/TopNav/TopNavMegaMenuItem.js +1 -1
  406. package/dist/TopNav/TopNavMenu.d.ts +1 -1
  407. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  408. package/dist/TopNav/TopNavMenu.js +5 -4
  409. package/dist/TreeList/TreeList.d.ts +1 -1
  410. package/dist/TreeList/TreeList.js +1 -1
  411. package/dist/TreeList/TreeListBranches.js +1 -1
  412. package/dist/TreeList/TreeListItem.d.ts +1 -1
  413. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  414. package/dist/TreeList/TreeListItem.js +4 -3
  415. package/dist/TreeList/TreeListTypes.d.ts +1 -17
  416. package/dist/TreeList/TreeListTypes.d.ts.map +1 -1
  417. package/dist/TreeList/index.d.ts +18 -1
  418. package/dist/TreeList/index.d.ts.map +1 -1
  419. package/dist/TreeList/index.js +14 -0
  420. package/dist/Typeahead/BaseTypeahead.d.ts +10 -1
  421. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  422. package/dist/Typeahead/BaseTypeahead.js +3 -1
  423. package/dist/Typeahead/Typeahead.d.ts +1 -1
  424. package/dist/Typeahead/Typeahead.d.ts.map +1 -1
  425. package/dist/Typeahead/Typeahead.js +9 -2
  426. package/dist/Typeahead/TypeaheadItem.d.ts +1 -1
  427. package/dist/Typeahead/TypeaheadItem.js +1 -1
  428. package/dist/VStack/VStack.d.ts +1 -1
  429. package/dist/VStack/VStack.js +1 -1
  430. package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  431. package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
  432. package/dist/astryx.css +96 -24
  433. package/dist/astryx.umd.js +50 -50
  434. package/dist/astryx.umd.js.map +4 -4
  435. package/dist/hooks/containerReveal.pool.stylex.d.ts +303 -0
  436. package/dist/hooks/containerReveal.pool.stylex.d.ts.map +1 -0
  437. package/dist/hooks/containerReveal.pool.stylex.js +292 -0
  438. package/dist/hooks/index.d.ts +2 -0
  439. package/dist/hooks/index.d.ts.map +1 -1
  440. package/dist/hooks/index.js +2 -1
  441. package/dist/hooks/useContainerReveal.d.ts +83 -0
  442. package/dist/hooks/useContainerReveal.d.ts.map +1 -0
  443. package/dist/hooks/useContainerReveal.js +123 -0
  444. package/dist/hooks/useInputContainer.d.ts.map +1 -1
  445. package/dist/hooks/useInputContainer.js +29 -1
  446. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  447. package/dist/hooks/useInputStatusIcon.js +11 -0
  448. package/dist/hooks/useKeyboardHint.d.ts +2 -2
  449. package/dist/hooks/useKeyboardHint.d.ts.map +1 -1
  450. package/dist/hooks/useKeyboardHint.js +5 -3
  451. package/dist/index.d.ts +2 -1
  452. package/dist/index.d.ts.map +1 -1
  453. package/dist/index.js +5 -1
  454. package/dist/theme/Theme.d.ts.map +1 -1
  455. package/dist/theme/Theme.js +2 -7
  456. package/dist/theme/defineTheme.d.ts +6 -0
  457. package/dist/theme/defineTheme.d.ts.map +1 -1
  458. package/dist/theme/defineTheme.js +4 -1
  459. package/dist/theme/expandColorScale.d.ts +19 -2
  460. package/dist/theme/expandColorScale.d.ts.map +1 -1
  461. package/dist/theme/expandColorScale.js +38 -10
  462. package/dist/theme/index.d.ts +6 -4
  463. package/dist/theme/index.d.ts.map +1 -1
  464. package/dist/theme/index.js +2 -1
  465. package/dist/theme/themeRegistry.d.ts +32 -0
  466. package/dist/theme/themeRegistry.d.ts.map +1 -0
  467. package/dist/theme/themeRegistry.js +49 -0
  468. package/dist/theme/types.d.ts +10 -2
  469. package/dist/theme/types.d.ts.map +1 -1
  470. package/dist/theme/useTheme.d.ts +9 -0
  471. package/dist/theme/useTheme.d.ts.map +1 -1
  472. package/dist/theme/useTheme.js +82 -27
  473. package/dist/utils/rtlStyles.d.ts +21 -0
  474. package/dist/utils/rtlStyles.d.ts.map +1 -1
  475. package/dist/utils/rtlStyles.js +26 -1
  476. package/groups.doc.mjs +2 -2
  477. package/locales/en.json +40 -0
  478. package/locales/pseudo.json +30 -0
  479. package/package.json +4 -13
  480. package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
  481. package/src/AlertDialog/AlertDialog.tsx +1 -1
  482. package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
  483. package/src/AppShell/AppShell.doc.mjs +3 -3
  484. package/src/AppShell/AppShell.tsx +2 -20
  485. package/src/AppShell/index.ts +20 -1
  486. package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
  487. package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
  488. package/src/AspectRatio/AspectRatio.tsx +1 -1
  489. package/src/Avatar/Avatar.doc.mjs +3 -3
  490. package/src/Avatar/Avatar.tsx +8 -3
  491. package/src/Avatar/AvatarStatusDot.doc.mjs +1 -1
  492. package/src/Avatar/AvatarStatusDot.tsx +2 -27
  493. package/src/Avatar/index.ts +26 -1
  494. package/src/AvatarGroup/AvatarGroup.doc.mjs +3 -3
  495. package/src/AvatarGroup/AvatarGroup.test.tsx +21 -1
  496. package/src/AvatarGroup/AvatarGroup.tsx +1 -1
  497. package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
  498. package/src/AvatarGroup/AvatarGroupOverflow.tsx +5 -3
  499. package/src/Badge/Badge.doc.mjs +3 -3
  500. package/src/Badge/Badge.tsx +2 -31
  501. package/src/Badge/index.ts +32 -6
  502. package/src/Banner/Banner.doc.mjs +3 -3
  503. package/src/Banner/Banner.tsx +8 -45
  504. package/src/Banner/index.ts +39 -7
  505. package/src/Blockquote/Blockquote.doc.mjs +3 -3
  506. package/src/Blockquote/Blockquote.tsx +1 -1
  507. package/src/Breadcrumbs/BreadcrumbItem.doc.mjs +1 -1
  508. package/src/Breadcrumbs/BreadcrumbItem.tsx +5 -3
  509. package/src/Breadcrumbs/Breadcrumbs.doc.mjs +3 -3
  510. package/src/Breadcrumbs/Breadcrumbs.test.tsx +1 -1
  511. package/src/Breadcrumbs/Breadcrumbs.tsx +2 -19
  512. package/src/Breadcrumbs/index.ts +19 -5
  513. package/src/Button/Button.doc.mjs +3 -3
  514. package/src/Button/Button.test.tsx +16 -0
  515. package/src/Button/Button.tsx +6 -23
  516. package/src/Button/index.ts +22 -7
  517. package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -3
  518. package/src/ButtonGroup/ButtonGroup.tsx +1 -1
  519. package/src/Calendar/Calendar.doc.mjs +3 -3
  520. package/src/Calendar/Calendar.test.tsx +15 -3
  521. package/src/Calendar/Calendar.tsx +1 -1
  522. package/src/Calendar/styles.ts +2 -2
  523. package/src/Card/Card.doc.mjs +3 -3
  524. package/src/Card/Card.tsx +1 -1
  525. package/src/Carousel/Carousel.doc.mjs +3 -3
  526. package/src/Carousel/Carousel.tsx +1 -1
  527. package/src/Center/Center.doc.mjs +41 -3
  528. package/src/Center/Center.test.tsx +75 -0
  529. package/src/Center/Center.tsx +38 -3
  530. package/src/Chat/Chat.doc.mjs +3 -3
  531. package/src/Chat/ChatComposer.doc.mjs +1 -1
  532. package/src/Chat/ChatComposer.tsx +5 -5
  533. package/src/Chat/ChatComposerDrawer.doc.mjs +1 -1
  534. package/src/Chat/ChatComposerDrawer.tsx +3 -3
  535. package/src/Chat/ChatComposerInput.doc.mjs +1 -1
  536. package/src/Chat/ChatComposerInput.tsx +1 -1
  537. package/src/Chat/ChatComposerTokenElement.doc.mjs +1 -1
  538. package/src/Chat/ChatDictationButton.doc.mjs +3 -3
  539. package/src/Chat/ChatDictationButton.tsx +1 -1
  540. package/src/Chat/ChatLayout.doc.mjs +1 -1
  541. package/src/Chat/ChatLayout.test.tsx +57 -0
  542. package/src/Chat/ChatLayout.tsx +23 -2
  543. package/src/Chat/ChatLayoutScrollButton.doc.mjs +1 -1
  544. package/src/Chat/ChatLayoutScrollButton.tsx +1 -1
  545. package/src/Chat/ChatMessage.doc.mjs +1 -1
  546. package/src/Chat/ChatMessage.tsx +1 -1
  547. package/src/Chat/ChatMessageBubble.doc.mjs +1 -1
  548. package/src/Chat/ChatMessageBubble.tsx +1 -1
  549. package/src/Chat/ChatMessageList.doc.mjs +1 -1
  550. package/src/Chat/ChatMessageList.tsx +1 -1
  551. package/src/Chat/ChatMessageMetadata.doc.mjs +1 -1
  552. package/src/Chat/ChatSendButton.doc.mjs +1 -1
  553. package/src/Chat/ChatSendButton.tsx +5 -3
  554. package/src/Chat/ChatSystemMessage.doc.mjs +1 -1
  555. package/src/Chat/ChatSystemMessage.tsx +1 -1
  556. package/src/Chat/ChatTokenizedText.doc.mjs +1 -1
  557. package/src/Chat/ChatTokenizedText.tsx +1 -1
  558. package/src/Chat/ChatToolCalls.doc.mjs +3 -3
  559. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
  560. package/src/CheckboxInput/CheckboxInput.test.tsx +56 -0
  561. package/src/CheckboxInput/CheckboxInput.tsx +18 -3
  562. package/src/CheckboxList/CheckboxList.doc.mjs +3 -3
  563. package/src/CheckboxList/CheckboxList.test.tsx +94 -3
  564. package/src/CheckboxList/CheckboxList.tsx +1 -1
  565. package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
  566. package/src/CheckboxList/CheckboxListItem.tsx +18 -11
  567. package/src/Citation/Citation.doc.mjs +2 -2
  568. package/src/Citation/Citation.tsx +1 -1
  569. package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
  570. package/src/ClickableCard/ClickableCard.tsx +3 -3
  571. package/src/Code/Code.tsx +2 -2
  572. package/src/CodeBlock/Code.doc.mjs +1 -1
  573. package/src/CodeBlock/CodeBlock.doc.mjs +3 -3
  574. package/src/CodeBlock/CodeBlock.test.tsx +17 -0
  575. package/src/CodeBlock/CodeBlock.tsx +2 -2
  576. package/src/Collapsible/Collapsible.doc.mjs +3 -3
  577. package/src/Collapsible/Collapsible.tsx +3 -3
  578. package/src/Collapsible/CollapsibleGroup.doc.mjs +1 -1
  579. package/src/Collapsible/CollapsibleGroup.tsx +1 -1
  580. package/src/Collapsible/CollapsibleGroupContext.tsx +1 -1
  581. package/src/Collapsible/useCollapsible.doc.mjs +2 -2
  582. package/src/CommandPalette/CommandPalette.doc.mjs +4 -4
  583. package/src/CommandPalette/CommandPalette.tsx +1 -1
  584. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +1 -1
  585. package/src/CommandPalette/CommandPaletteEmpty.tsx +1 -1
  586. package/src/CommandPalette/CommandPaletteFooter.doc.mjs +1 -1
  587. package/src/CommandPalette/CommandPaletteFooter.tsx +1 -1
  588. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +1 -1
  589. package/src/CommandPalette/CommandPaletteGroup.tsx +1 -1
  590. package/src/CommandPalette/CommandPaletteInput.doc.mjs +1 -1
  591. package/src/CommandPalette/CommandPaletteInput.tsx +5 -1
  592. package/src/CommandPalette/CommandPaletteItem.doc.mjs +1 -1
  593. package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
  594. package/src/CommandPalette/CommandPaletteList.doc.mjs +1 -1
  595. package/src/CommandPalette/CommandPaletteList.tsx +1 -1
  596. package/src/ContextMenu/ContextMenu.doc.mjs +3 -3
  597. package/src/ContextMenu/ContextMenu.test.tsx +17 -2
  598. package/src/ContextMenu/ContextMenu.tsx +27 -6
  599. package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
  600. package/src/DateInput/DateInput.doc.mjs +3 -3
  601. package/src/DateInput/DateInput.tsx +1 -1
  602. package/src/DateRangeInput/DateRangeInput.doc.mjs +2 -2
  603. package/src/DateRangeInput/DateRangeInput.tsx +1 -1
  604. package/src/DateTimeInput/DateTimeInput.doc.mjs +3 -3
  605. package/src/DateTimeInput/DateTimeInput.tsx +1 -1
  606. package/src/Dialog/Dialog.doc.mjs +9 -5
  607. package/src/Dialog/Dialog.test.tsx +84 -1
  608. package/src/Dialog/Dialog.tsx +87 -45
  609. package/src/Dialog/DialogHeader.doc.mjs +1 -1
  610. package/src/Dialog/DialogHeader.tsx +1 -1
  611. package/src/Dialog/index.ts +18 -1
  612. package/src/Dialog/useImperativeDialog.doc.mjs +1 -1
  613. package/src/Divider/Divider.doc.mjs +3 -3
  614. package/src/Divider/Divider.tsx +2 -19
  615. package/src/Divider/index.ts +19 -5
  616. package/src/DropdownMenu/DropdownMenu.doc.mjs +20 -5
  617. package/src/DropdownMenu/DropdownMenu.test.tsx +122 -0
  618. package/src/DropdownMenu/DropdownMenu.tsx +31 -20
  619. package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +1 -1
  620. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +41 -64
  621. package/src/DropdownMenu/DropdownMenuItem.doc.mjs +1 -1
  622. package/src/DropdownMenu/DropdownMenuItem.tsx +1 -1
  623. package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +5 -13
  624. package/src/DropdownMenu/DropdownMenuRadioGroup.tsx +9 -10
  625. package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
  626. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +11 -2
  627. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +84 -2
  628. package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +1 -1
  629. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +46 -1
  630. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +24 -8
  631. package/src/DropdownMenu/menuItemHover.ts +1 -0
  632. package/src/DropdownMenu/renderDropdownItems.tsx +14 -2
  633. package/src/EmptyState/EmptyState.doc.mjs +3 -3
  634. package/src/EmptyState/EmptyState.tsx +1 -1
  635. package/src/Field/Field.doc.mjs +7 -3
  636. package/src/Field/Field.tsx +1 -1
  637. package/src/Field/FieldLabel.doc.mjs +1 -1
  638. package/src/Field/FieldLabel.test.tsx +103 -0
  639. package/src/Field/FieldLabel.tsx +61 -5
  640. package/src/FieldStatus/FieldStatus.doc.mjs +3 -2
  641. package/src/FieldStatus/FieldStatus.test.tsx +61 -0
  642. package/src/FieldStatus/FieldStatus.tsx +16 -23
  643. package/src/FieldStatus/index.ts +20 -5
  644. package/src/FileInput/FileInput.doc.mjs +3 -3
  645. package/src/FileInput/FileInput.tsx +1 -1
  646. package/src/FormLayout/FormLayout.doc.mjs +3 -3
  647. package/src/FormLayout/FormLayout.tsx +2 -5
  648. package/src/Grid/Grid.doc.mjs +3 -3
  649. package/src/Grid/Grid.tsx +1 -1
  650. package/src/Grid/GridSpan.doc.mjs +1 -1
  651. package/src/Grid/GridSpan.tsx +1 -1
  652. package/src/HStack/HStack.tsx +1 -1
  653. package/src/Heading/Heading.tsx +4 -3
  654. package/src/HoverCard/HoverCard.doc.mjs +3 -3
  655. package/src/HoverCard/HoverCard.tsx +1 -1
  656. package/src/HoverCard/useHoverCard.doc.mjs +2 -2
  657. package/src/Icon/Icon.doc.mjs +3 -3
  658. package/src/Icon/Icon.test.tsx +23 -0
  659. package/src/Icon/Icon.tsx +4 -2
  660. package/src/Icon/globalIconRegistry.test.tsx +52 -1
  661. package/src/Icon/globalIconRegistry.tsx +43 -6
  662. package/src/Icon/index.ts +7 -7
  663. package/src/Icon/useIcon.ts +23 -0
  664. package/src/IconButton/IconButton.doc.mjs +2 -2
  665. package/src/IconButton/IconButton.tsx +1 -1
  666. package/src/InputGroup/InputGroup.doc.mjs +2 -2
  667. package/src/InputGroup/InputGroup.tsx +1 -1
  668. package/src/InputGroup/InputGroupText.doc.mjs +1 -1
  669. package/src/InputGroup/InputGroupText.tsx +1 -1
  670. package/src/Item/Item.doc.mjs +8 -3
  671. package/src/Item/Item.test.tsx +88 -0
  672. package/src/Item/Item.tsx +58 -12
  673. package/src/Kbd/Kbd.doc.mjs +3 -3
  674. package/src/Kbd/Kbd.tsx +1 -1
  675. package/src/Layer/Layer.doc.mjs +2 -2
  676. package/src/Layer/useLayer.doc.mjs +2 -2
  677. package/src/Layout/Layout.doc.mjs +3 -3
  678. package/src/Layout/Layout.tsx +1 -1
  679. package/src/Layout/LayoutContent.doc.mjs +1 -1
  680. package/src/Layout/LayoutContent.tsx +1 -1
  681. package/src/Layout/LayoutFooter.doc.mjs +1 -1
  682. package/src/Layout/LayoutFooter.tsx +1 -1
  683. package/src/Layout/LayoutHeader.doc.mjs +1 -1
  684. package/src/Layout/LayoutHeader.tsx +1 -1
  685. package/src/Layout/LayoutPanel.doc.mjs +1 -1
  686. package/src/Layout/LayoutPanel.tsx +1 -1
  687. package/src/Lightbox/Lightbox.doc.mjs +3 -3
  688. package/src/Lightbox/Lightbox.test.tsx +33 -0
  689. package/src/Lightbox/Lightbox.tsx +16 -4
  690. package/src/Link/Link.doc.mjs +3 -3
  691. package/src/Link/Link.tsx +1 -1
  692. package/src/Link/LinkProvider.doc.mjs +2 -2
  693. package/src/Link/LinkProvider.tsx +2 -2
  694. package/src/List/List.doc.mjs +3 -3
  695. package/src/List/List.tsx +1 -1
  696. package/src/List/ListItem.doc.mjs +13 -1
  697. package/src/List/ListItem.tsx +14 -1
  698. package/src/Markdown/Markdown.doc.mjs +1 -1
  699. package/src/Markdown/Markdown.tsx +3 -3
  700. package/src/MetadataList/MetadataList.doc.mjs +3 -3
  701. package/src/MetadataList/MetadataList.test.tsx +24 -0
  702. package/src/MetadataList/MetadataList.tsx +7 -3
  703. package/src/MetadataList/MetadataListItem.doc.mjs +1 -1
  704. package/src/MetadataList/MetadataListItem.tsx +1 -1
  705. package/src/MobileNav/MobileNav.doc.mjs +3 -3
  706. package/src/MobileNav/MobileNav.tsx +1 -1
  707. package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
  708. package/src/MoreMenu/MoreMenu.tsx +3 -3
  709. package/src/MultiSelector/MultiSelector.doc.mjs +3 -3
  710. package/src/MultiSelector/MultiSelector.test.tsx +110 -0
  711. package/src/MultiSelector/MultiSelector.tsx +36 -11
  712. package/src/NavIcon/NavIcon.doc.mjs +3 -3
  713. package/src/NavIcon/NavIcon.tsx +1 -1
  714. package/src/NavMenu/NavMenu.doc.mjs +2 -2
  715. package/src/NumberInput/NumberInput.doc.mjs +3 -3
  716. package/src/NumberInput/NumberInput.tsx +1 -1
  717. package/src/Outline/Outline.doc.mjs +3 -3
  718. package/src/Outline/Outline.tsx +1 -1
  719. package/src/OverflowList/OverflowList.doc.mjs +3 -3
  720. package/src/OverflowList/OverflowList.tsx +1 -1
  721. package/src/Overlay/Overlay.doc.mjs +2 -2
  722. package/src/Pagination/Pagination.doc.mjs +3 -3
  723. package/src/Pagination/Pagination.tsx +2 -22
  724. package/src/Pagination/index.ts +21 -1
  725. package/src/Popover/Popover.doc.mjs +31 -3
  726. package/src/Popover/Popover.test.tsx +41 -0
  727. package/src/Popover/Popover.tsx +25 -2
  728. package/src/Popover/usePopover.doc.mjs +2 -2
  729. package/src/Popover/usePopover.tsx +10 -4
  730. package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
  731. package/src/PowerSearch/PowerSearch.tsx +1 -1
  732. package/src/ProgressBar/ProgressBar.doc.mjs +3 -3
  733. package/src/ProgressBar/ProgressBar.tsx +2 -22
  734. package/src/ProgressBar/index.ts +22 -5
  735. package/src/RadioList/RadioList.doc.mjs +3 -3
  736. package/src/RadioList/RadioList.test.tsx +26 -4
  737. package/src/RadioList/RadioList.tsx +1 -1
  738. package/src/RadioList/RadioListItem.doc.mjs +1 -1
  739. package/src/RadioList/RadioListItem.tsx +9 -2
  740. package/src/Resizable/Resizable.doc.mjs +2 -2
  741. package/src/Resizable/ResizeHandle.test.tsx +3 -2
  742. package/src/Resizable/ResizeHandle.tsx +8 -12
  743. package/src/Resizable/useResizable.doc.mjs +2 -2
  744. package/src/Section/Section.doc.mjs +3 -3
  745. package/src/Section/Section.tsx +2 -20
  746. package/src/Section/index.ts +20 -5
  747. package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
  748. package/src/SegmentedControl/SegmentedControl.test.tsx +28 -0
  749. package/src/SegmentedControl/SegmentedControl.tsx +1 -1
  750. package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
  751. package/src/SegmentedControl/SegmentedControlItem.tsx +21 -3
  752. package/src/SelectableCard/SelectableCard.doc.mjs +4 -2
  753. package/src/SelectableCard/SelectableCard.test.tsx +55 -0
  754. package/src/SelectableCard/SelectableCard.tsx +19 -3
  755. package/src/Selector/Selector.doc.mjs +3 -3
  756. package/src/Selector/Selector.test.tsx +52 -0
  757. package/src/Selector/Selector.tsx +16 -5
  758. package/src/Selector/SelectorOption.doc.mjs +1 -1
  759. package/src/SideNav/SideNav.doc.mjs +3 -3
  760. package/src/SideNav/SideNav.tsx +1 -1
  761. package/src/SideNav/SideNavCollapseButton.doc.mjs +1 -1
  762. package/src/SideNav/SideNavCollapseButton.tsx +4 -3
  763. package/src/SideNav/SideNavHeading.doc.mjs +1 -1
  764. package/src/SideNav/SideNavHeading.tsx +8 -9
  765. package/src/SideNav/SideNavItem.doc.mjs +1 -1
  766. package/src/SideNav/SideNavItem.tsx +5 -6
  767. package/src/SideNav/SideNavSection.doc.mjs +1 -1
  768. package/src/SideNav/SideNavSection.tsx +1 -1
  769. package/src/Skeleton/Skeleton.doc.mjs +3 -3
  770. package/src/Skeleton/Skeleton.test.tsx +16 -0
  771. package/src/Skeleton/Skeleton.tsx +14 -2
  772. package/src/Slider/Slider.doc.mjs +3 -3
  773. package/src/Slider/Slider.tsx +9 -13
  774. package/src/Spinner/Spinner.doc.mjs +3 -3
  775. package/src/Spinner/Spinner.tsx +1 -1
  776. package/src/Stack/Stack.doc.mjs +3 -3
  777. package/src/Stack/Stack.tsx +1 -1
  778. package/src/Stack/StackItem.tsx +1 -1
  779. package/src/StatusDot/StatusDot.doc.mjs +3 -3
  780. package/src/StatusDot/StatusDot.tsx +2 -22
  781. package/src/StatusDot/index.ts +22 -5
  782. package/src/Switch/Switch.doc.mjs +3 -3
  783. package/src/Switch/Switch.test.tsx +71 -0
  784. package/src/Switch/Switch.tsx +53 -4
  785. package/src/TabList/Tab.doc.mjs +1 -1
  786. package/src/TabList/Tab.tsx +1 -1
  787. package/src/TabList/TabList.doc.mjs +3 -3
  788. package/src/TabList/TabList.tsx +1 -1
  789. package/src/TabList/TabMenu.doc.mjs +1 -1
  790. package/src/TabList/TabMenu.tsx +1 -1
  791. package/src/Table/BaseTable.tsx +1 -1
  792. package/src/Table/Table.doc.mjs +3 -3
  793. package/src/Table/Table.tsx +1 -1
  794. package/src/Table/TableCell.doc.mjs +1 -1
  795. package/src/Table/TableCell.tsx +1 -1
  796. package/src/Table/TableHeaderCell.doc.mjs +1 -1
  797. package/src/Table/TableHeaderCell.tsx +1 -1
  798. package/src/Table/TableRow.doc.mjs +1 -1
  799. package/src/Table/TableRow.tsx +1 -1
  800. package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +19 -0
  801. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +24 -4
  802. package/src/Table/plugins/tree/useTableTreeData.test.tsx +161 -2
  803. package/src/Table/plugins/tree/useTableTreeData.tsx +54 -1
  804. package/src/Table/useTableColumnResize.doc.mjs +1 -1
  805. package/src/Table/useTableColumnSettings.doc.mjs +1 -1
  806. package/src/Table/useTableFilterState.doc.mjs +1 -1
  807. package/src/Table/useTableFiltering.doc.mjs +1 -1
  808. package/src/Table/useTableGroupedRows.doc.mjs +2 -2
  809. package/src/Table/useTablePagination.doc.mjs +1 -1
  810. package/src/Table/useTableRowExpansion.doc.mjs +57 -4
  811. package/src/Table/useTableRowIndex.doc.mjs +2 -2
  812. package/src/Table/useTableRowStatus.doc.mjs +2 -2
  813. package/src/Table/useTableSelection.doc.mjs +1 -1
  814. package/src/Table/useTableSelectionState.doc.mjs +1 -1
  815. package/src/Table/useTableSortable.doc.mjs +1 -1
  816. package/src/Table/useTableStickyColumns.doc.mjs +1 -1
  817. package/src/Table/useTableTreeData.doc.mjs +10 -1
  818. package/src/Table/useTableTreeState.doc.mjs +1 -1
  819. package/src/Text/Heading.doc.mjs +4 -4
  820. package/src/Text/Text.doc.mjs +4 -4
  821. package/src/Text/Text.test.tsx +42 -0
  822. package/src/Text/Text.tsx +26 -2
  823. package/src/Text/index.ts +32 -6
  824. package/src/TextArea/TextArea.doc.mjs +5 -5
  825. package/src/TextArea/TextArea.test.tsx +112 -7
  826. package/src/TextArea/TextArea.tsx +143 -50
  827. package/src/TextInput/TextInput.doc.mjs +3 -3
  828. package/src/TextInput/TextInput.tsx +1 -1
  829. package/src/Thumbnail/Thumbnail.doc.mjs +2 -2
  830. package/src/Thumbnail/Thumbnail.test.tsx +24 -1
  831. package/src/Thumbnail/Thumbnail.tsx +28 -35
  832. package/src/TimeInput/TimeInput.doc.mjs +3 -3
  833. package/src/TimeInput/TimeInput.tsx +1 -1
  834. package/src/Timestamp/Timestamp.doc.mjs +3 -3
  835. package/src/Timestamp/Timestamp.tsx +1 -1
  836. package/src/Toast/Toast.doc.mjs +3 -3
  837. package/src/Toast/ToastViewport.test.tsx +218 -8
  838. package/src/Toast/ToastViewport.tsx +71 -12
  839. package/src/Toast/useToast.doc.mjs +2 -2
  840. package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
  841. package/src/ToggleButton/ToggleButton.test.tsx +24 -0
  842. package/src/ToggleButton/ToggleButton.tsx +20 -2
  843. package/src/ToggleButton/ToggleButtonGroup.doc.mjs +1 -1
  844. package/src/ToggleButton/ToggleButtonGroup.tsx +3 -6
  845. package/src/Token/Token.doc.mjs +3 -3
  846. package/src/Token/Token.test.tsx +145 -0
  847. package/src/Token/Token.tsx +75 -61
  848. package/src/Token/TokenLink.tsx +107 -0
  849. package/src/Token/index.ts +28 -1
  850. package/src/Tokenizer/Tokenizer.doc.mjs +3 -3
  851. package/src/Tokenizer/Tokenizer.tsx +1 -1
  852. package/src/Toolbar/Toolbar.doc.mjs +3 -3
  853. package/src/Toolbar/Toolbar.tsx +1 -1
  854. package/src/Tooltip/Tooltip.doc.mjs +3 -3
  855. package/src/Tooltip/Tooltip.tsx +1 -1
  856. package/src/Tooltip/useTooltip.doc.mjs +2 -2
  857. package/src/TopNav/TopNav.doc.mjs +3 -3
  858. package/src/TopNav/TopNav.tsx +1 -1
  859. package/src/TopNav/TopNavHeading.doc.mjs +1 -1
  860. package/src/TopNav/TopNavHeading.tsx +7 -8
  861. package/src/TopNav/TopNavItem.doc.mjs +1 -1
  862. package/src/TopNav/TopNavItem.tsx +1 -1
  863. package/src/TopNav/TopNavMegaMenu.doc.mjs +1 -1
  864. package/src/TopNav/TopNavMegaMenu.tsx +32 -6
  865. package/src/TopNav/TopNavMegaMenuFeaturedCard.doc.mjs +1 -1
  866. package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +1 -1
  867. package/src/TopNav/TopNavMegaMenuItem.doc.mjs +1 -1
  868. package/src/TopNav/TopNavMegaMenuItem.tsx +1 -1
  869. package/src/TopNav/TopNavMenu.doc.mjs +1 -1
  870. package/src/TopNav/TopNavMenu.tsx +5 -4
  871. package/src/TreeList/TreeList.doc.mjs +3 -3
  872. package/src/TreeList/TreeList.tsx +1 -1
  873. package/src/TreeList/TreeListBranches.tsx +1 -1
  874. package/src/TreeList/TreeListItem.tsx +4 -3
  875. package/src/TreeList/TreeListTypes.ts +1 -18
  876. package/src/TreeList/index.ts +19 -1
  877. package/src/Typeahead/BaseTypeahead.doc.mjs +1 -1
  878. package/src/Typeahead/BaseTypeahead.tsx +13 -1
  879. package/src/Typeahead/Typeahead.doc.mjs +3 -3
  880. package/src/Typeahead/Typeahead.test.tsx +62 -0
  881. package/src/Typeahead/Typeahead.tsx +7 -1
  882. package/src/Typeahead/TypeaheadItem.doc.mjs +1 -1
  883. package/src/Typeahead/TypeaheadItem.tsx +1 -1
  884. package/src/VStack/VStack.tsx +1 -1
  885. package/src/VisuallyHidden/VisuallyHidden.doc.mjs +3 -3
  886. package/src/VisuallyHidden/VisuallyHidden.tsx +1 -1
  887. package/src/__tests__/babelPluginAddExtensions.test.ts +190 -0
  888. package/src/__tests__/forcedColors.ts +60 -0
  889. package/src/__tests__/inputWidthContract.test.tsx +8 -1
  890. package/src/doc-mjs.d.ts +5 -2
  891. package/src/docPropLiterals.test.ts +1 -1
  892. package/src/docPropReferences.test.ts +1 -1
  893. package/src/hooks/containerReveal.pool.stylex.ts +571 -0
  894. package/src/hooks/index.ts +7 -0
  895. package/src/hooks/useClickableContainer.doc.mjs +2 -2
  896. package/src/hooks/useContainerReveal.doc.mjs +75 -0
  897. package/src/hooks/useContainerReveal.test.tsx +116 -0
  898. package/src/hooks/useContainerReveal.ts +181 -0
  899. package/src/hooks/useEntryAnimation.doc.mjs +2 -2
  900. package/src/hooks/useFocusTrap.doc.mjs +2 -2
  901. package/src/hooks/useGridFocus.doc.mjs +2 -2
  902. package/src/hooks/useHotkeys.doc.mjs +2 -2
  903. package/src/hooks/useImageMode.doc.mjs +2 -2
  904. package/src/hooks/useInputContainer.doc.mjs +2 -2
  905. package/src/hooks/useInputContainer.test.tsx +180 -0
  906. package/src/hooks/useInputContainer.ts +36 -1
  907. package/src/hooks/useInputStatusIcon.test.tsx +59 -0
  908. package/src/hooks/useInputStatusIcon.tsx +12 -1
  909. package/src/hooks/useKeyboardHint.doc.mjs +2 -2
  910. package/src/hooks/useKeyboardHint.test.tsx +22 -0
  911. package/src/hooks/useKeyboardHint.tsx +7 -3
  912. package/src/hooks/useListFocus.doc.mjs +2 -2
  913. package/src/hooks/useMediaQuery.doc.mjs +2 -2
  914. package/src/hooks/useOverflow.doc.mjs +2 -2
  915. package/src/hooks/useScrollLock.doc.mjs +2 -2
  916. package/src/hooks/useScrollOverflow.doc.mjs +2 -2
  917. package/src/hooks/useStreamingText.doc.mjs +2 -2
  918. package/src/hooks/useTreeFocus.doc.mjs +2 -2
  919. package/src/i18n/InternationalizationProvider.doc.mjs +2 -2
  920. package/src/i18n/useTranslator.doc.mjs +2 -2
  921. package/src/index.ts +14 -10
  922. package/src/theme/MediaTheme.doc.mjs +2 -2
  923. package/src/theme/SyntaxTheme.doc.mjs +2 -2
  924. package/src/theme/Theme.doc.mjs +2 -2
  925. package/src/theme/Theme.tsx +3 -7
  926. package/src/theme/defineTheme.ts +11 -1
  927. package/src/theme/expandColorScale.test.ts +144 -0
  928. package/src/theme/expandColorScale.ts +53 -15
  929. package/src/theme/index.ts +11 -9
  930. package/src/theme/themeRegistry.test.ts +59 -0
  931. package/src/theme/themeRegistry.ts +53 -0
  932. package/src/theme/types.ts +14 -13
  933. package/src/theme/useTheme.doc.mjs +2 -2
  934. package/src/theme/useTheme.test.tsx +48 -3
  935. package/src/theme/useTheme.ts +100 -29
  936. package/src/utils/rtlStyles.ts +22 -0
  937. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts +0 -9
  938. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts.map +0 -1
  939. package/dist/Thumbnail/thumbnail.markers.stylex.js +0 -14
  940. package/dist/authoring/doc.d.ts +0 -145
  941. package/dist/authoring/doc.d.ts.map +0 -1
  942. package/dist/authoring/doc.js +0 -100
  943. package/dist/authoring/index.d.ts +0 -29
  944. package/dist/authoring/index.d.ts.map +0 -1
  945. package/dist/authoring/index.js +0 -28
  946. package/dist/authoring/integration.d.ts +0 -35
  947. package/dist/authoring/integration.d.ts.map +0 -1
  948. package/dist/authoring/integration.js +0 -30
  949. package/dist/authoring/template.d.ts +0 -66
  950. package/dist/authoring/template.d.ts.map +0 -1
  951. package/dist/authoring/template.js +0 -55
  952. package/dist/config.d.ts +0 -80
  953. package/dist/config.d.ts.map +0 -1
  954. package/dist/config.js +0 -40
  955. package/dist/docs-types.d.ts +0 -969
  956. package/dist/docs-types.d.ts.map +0 -1
  957. package/dist/docs-types.js +0 -1
  958. package/src/Thumbnail/thumbnail.markers.stylex.ts +0 -12
  959. package/src/authoring/doc.ts +0 -164
  960. package/src/authoring/index.test.ts +0 -52
  961. package/src/authoring/index.ts +0 -50
  962. package/src/authoring/integration.ts +0 -42
  963. package/src/authoring/template.ts +0 -74
  964. package/src/config.test.ts +0 -16
  965. package/src/config.ts +0 -92
  966. package/src/docs-types.ts +0 -1108
@@ -3,19 +3,56 @@
3
3
  /**
4
4
  * @file ToastViewport.test.tsx
5
5
  * @input Uses vitest, @testing-library/react, ToastViewport + useToast
6
- * @output Unit tests for toast keyboard reach and focus management
7
- * @position Testing; validates ToastViewport.tsx + Toast.tsx focus behavior
6
+ * @output Unit tests for toast keyboard reach, focus management, and
7
+ * screen-reader announcements
8
+ * @position Testing; validates ToastViewport.tsx + Toast.tsx focus behavior and
9
+ * the announce-at-dispatch flow through the singleton live regions
8
10
  *
9
- * SYNC: When ToastViewport.tsx or Toast.tsx focus handling changes, update these tests
11
+ * SYNC: When ToastViewport.tsx / Toast.tsx focus handling or the toast
12
+ * announcement flow changes, update these tests
10
13
  */
11
14
 
12
- import {describe, it, expect, vi, beforeAll} from 'vitest';
13
- import {render, screen, fireEvent, act} from '@testing-library/react';
15
+ import {describe, it, expect, vi, beforeAll, afterEach} from 'vitest';
16
+ import {
17
+ render,
18
+ screen,
19
+ fireEvent,
20
+ act,
21
+ waitFor,
22
+ within,
23
+ } from '@testing-library/react';
14
24
  import React from 'react';
25
+ import {type AnnounceFn, __resetLiveRegionsForTest} from '../hooks/useAnnounce';
15
26
  import {ToastViewport} from './ToastViewport';
16
27
  import {useToast} from './useToast';
17
28
  import type {ToastOptions} from './types';
18
29
 
30
+ // Spy on the announcement sink so tests can prove a toast is announced exactly
31
+ // once. The mock wraps the real useAnnounce, so the singleton live regions are
32
+ // still populated (the region-content assertions below depend on it) while
33
+ // every call is also recorded on announceSpy.
34
+ const {announceSpy} = vi.hoisted(() => ({announceSpy: vi.fn()}));
35
+ vi.mock('../hooks/useAnnounce', async importActual => {
36
+ const actual = await importActual<{
37
+ useAnnounce: () => AnnounceFn;
38
+ __resetLiveRegionsForTest: () => void;
39
+ }>();
40
+ const {useCallback} = await import('react');
41
+ return {
42
+ ...actual,
43
+ useAnnounce: (): AnnounceFn => {
44
+ const realAnnounce = actual.useAnnounce();
45
+ return useCallback<AnnounceFn>(
46
+ (message, politeness) => {
47
+ announceSpy(message, politeness);
48
+ realAnnounce(message, politeness);
49
+ },
50
+ [realAnnounce],
51
+ );
52
+ },
53
+ };
54
+ });
55
+
19
56
  // Popover API is not implemented in jsdom.
20
57
  beforeAll(() => {
21
58
  if (typeof HTMLElement.prototype.showPopover === 'undefined') {
@@ -24,6 +61,13 @@ beforeAll(() => {
24
61
  }
25
62
  });
26
63
 
64
+ // Toast text is mirrored into the singleton live regions, which outlive each
65
+ // render — reset them so text from one test never leaks into the next.
66
+ afterEach(() => {
67
+ __resetLiveRegionsForTest();
68
+ announceSpy.mockClear();
69
+ });
70
+
27
71
  // Module-level constant default props (avoids unstable-default-props lint).
28
72
  const EMPTY_OPTIONS: ToastOptions = {body: 'placeholder'};
29
73
 
@@ -169,7 +213,10 @@ describe('Toast blur timer pause', () => {
169
213
  act(() => {
170
214
  fireEvent.click(screen.getByText('Trigger Auto'));
171
215
  });
172
- expect(screen.getByText('Auto toast')).toBeInTheDocument();
216
+ // Scope to the viewport: the toast text is also mirrored into the
217
+ // singleton live region, which lives outside the notifications region.
218
+ const viewport = screen.getByRole('region', {name: 'Notifications'});
219
+ expect(within(viewport).getByText('Auto toast')).toBeInTheDocument();
173
220
 
174
221
  // Window loses focus — timer should pause.
175
222
  act(() => {
@@ -179,7 +226,7 @@ describe('Toast blur timer pause', () => {
179
226
  vi.advanceTimersByTime(5000);
180
227
  });
181
228
  // Still present because the timer was paused while blurred.
182
- expect(screen.getByText('Auto toast')).toBeInTheDocument();
229
+ expect(within(viewport).getByText('Auto toast')).toBeInTheDocument();
183
230
 
184
231
  // Window regains focus — timer resumes and the toast dismisses.
185
232
  act(() => {
@@ -196,7 +243,9 @@ describe('Toast blur timer pause', () => {
196
243
  completeExit(toastId);
197
244
  });
198
245
  }
199
- expect(screen.queryByText('Auto toast')).not.toBeInTheDocument();
246
+ expect(
247
+ within(viewport).queryByText('Auto toast'),
248
+ ).not.toBeInTheDocument();
200
249
  } finally {
201
250
  vi.useRealTimers();
202
251
  }
@@ -213,6 +262,167 @@ describe('ToastViewport region ARIA', () => {
213
262
  });
214
263
  });
215
264
 
265
+ describe('toast announcements via singleton live regions', () => {
266
+ function politeRegion(): HTMLElement | null {
267
+ return document.querySelector('[data-astryx-live-region="polite"]');
268
+ }
269
+ function assertiveRegion(): HTMLElement | null {
270
+ return document.querySelector('[data-astryx-live-region="assertive"]');
271
+ }
272
+
273
+ const RICH_INFO: ToastOptions = {
274
+ body: (
275
+ <>
276
+ <strong>Update ready</strong>
277
+ <div>Restart to apply</div>
278
+ </>
279
+ ),
280
+ };
281
+ const ERROR_TOAST: ToastOptions = {body: 'Upload failed', type: 'error'};
282
+ const SAVING_V1: ToastOptions = {uniqueID: 'save', body: 'Saving changes'};
283
+ const SAVING_V2: ToastOptions = {uniqueID: 'save', body: 'Changes saved'};
284
+ const IGNORE_KEPT: ToastOptions = {
285
+ uniqueID: 'dup',
286
+ collisionBehavior: 'ignore',
287
+ body: 'Kept',
288
+ };
289
+ const IGNORE_DROPPED: ToastOptions = {
290
+ uniqueID: 'dup',
291
+ collisionBehavior: 'ignore',
292
+ body: 'Dropped',
293
+ };
294
+
295
+ it('announces an info toast politely with its flattened text content', async () => {
296
+ renderViewport(<ShowToastButton options={RICH_INFO} triggerLabel="Show" />);
297
+ act(() => {
298
+ fireEvent.click(screen.getByText('Show'));
299
+ });
300
+ // Announced synchronously at dispatch, exactly once.
301
+ expect(announceSpy).toHaveBeenCalledTimes(1);
302
+ expect(announceSpy).toHaveBeenCalledWith(
303
+ 'Update ready Restart to apply',
304
+ 'polite',
305
+ );
306
+ // The flattened text reaches the polite singleton region (the sink).
307
+ await waitFor(() => {
308
+ expect(politeRegion()).toHaveTextContent('Update ready Restart to apply');
309
+ });
310
+ // Status toasts never touch the assertive region.
311
+ expect(assertiveRegion()).toHaveTextContent('');
312
+ });
313
+
314
+ it('announces an error toast assertively', async () => {
315
+ renderViewport(
316
+ <ShowToastButton options={ERROR_TOAST} triggerLabel="Show" />,
317
+ );
318
+ act(() => {
319
+ fireEvent.click(screen.getByText('Show'));
320
+ });
321
+ expect(announceSpy).toHaveBeenCalledTimes(1);
322
+ expect(announceSpy).toHaveBeenCalledWith('Upload failed', 'assertive');
323
+ await waitFor(() => {
324
+ expect(assertiveRegion()).toHaveTextContent('Upload failed');
325
+ });
326
+ expect(politeRegion()).toHaveTextContent('');
327
+ });
328
+
329
+ it('announces exactly once at dispatch, even under StrictMode', () => {
330
+ render(
331
+ <React.StrictMode>
332
+ <ToastViewport isTopLayer={false}>
333
+ <ShowToastButton options={INFO_A} triggerLabel="Show" />
334
+ </ToastViewport>
335
+ </React.StrictMode>,
336
+ );
337
+ act(() => {
338
+ fireEvent.click(screen.getByText('Show'));
339
+ });
340
+ // The announcement lives in the imperative dispatch path (addToast), not a
341
+ // render effect, so StrictMode's double render and double-invoked state
342
+ // updater cannot announce the same toast twice.
343
+ expect(announceSpy).toHaveBeenCalledTimes(1);
344
+ expect(announceSpy).toHaveBeenCalledWith('Toast A', 'polite');
345
+ });
346
+
347
+ it('re-announces a uniqueID toast when its content is overwritten', async () => {
348
+ renderViewport(
349
+ <>
350
+ <ShowToastButton options={SAVING_V1} triggerLabel="Show v1" />
351
+ <ShowToastButton options={SAVING_V2} triggerLabel="Show v2" />
352
+ </>,
353
+ );
354
+ act(() => {
355
+ fireEvent.click(screen.getByText('Show v1'));
356
+ });
357
+ expect(announceSpy).toHaveBeenCalledTimes(1);
358
+ expect(announceSpy).toHaveBeenLastCalledWith('Saving changes', 'polite');
359
+ // Overwriting via uniqueID replaces the toast in place — the new content is
360
+ // a fresh dispatch and must be announced again.
361
+ act(() => {
362
+ fireEvent.click(screen.getByText('Show v2'));
363
+ });
364
+ expect(announceSpy).toHaveBeenCalledTimes(2);
365
+ expect(announceSpy).toHaveBeenLastCalledWith('Changes saved', 'polite');
366
+ await waitFor(() => {
367
+ expect(politeRegion()).toHaveTextContent('Changes saved');
368
+ });
369
+ // Still a single toast on screen — overwritten in place, not stacked.
370
+ const viewport = screen.getByRole('region', {name: 'Notifications'});
371
+ expect(
372
+ within(viewport).queryAllByText(/Saving changes|Changes saved/),
373
+ ).toHaveLength(1);
374
+ });
375
+
376
+ it('does not re-announce an unchanged toast when an unrelated render occurs', () => {
377
+ renderViewport(
378
+ <>
379
+ <ShowToastButton options={INFO_A} triggerLabel="Show A" />
380
+ <ShowToastButton options={ERROR_TOAST} triggerLabel="Show B" />
381
+ </>,
382
+ );
383
+ act(() => {
384
+ fireEvent.click(screen.getByText('Show A'));
385
+ });
386
+ expect(announceSpy).toHaveBeenCalledTimes(1);
387
+ // A second toast arriving re-renders the viewport with a new toast list.
388
+ // Toast A is not re-dispatched, so it must not be announced again — only
389
+ // the newly dispatched toast produces a call.
390
+ act(() => {
391
+ fireEvent.click(screen.getByText('Show B'));
392
+ });
393
+ expect(announceSpy).toHaveBeenCalledTimes(2);
394
+ expect(announceSpy).toHaveBeenNthCalledWith(1, 'Toast A', 'polite');
395
+ expect(announceSpy).toHaveBeenNthCalledWith(
396
+ 2,
397
+ 'Upload failed',
398
+ 'assertive',
399
+ );
400
+ });
401
+
402
+ it('does not announce a toast whose uniqueID collision is ignored', () => {
403
+ renderViewport(
404
+ <>
405
+ <ShowToastButton options={IGNORE_KEPT} triggerLabel="Show 1" />
406
+ <ShowToastButton options={IGNORE_DROPPED} triggerLabel="Show 2" />
407
+ </>,
408
+ );
409
+ act(() => {
410
+ fireEvent.click(screen.getByText('Show 1'));
411
+ });
412
+ expect(announceSpy).toHaveBeenCalledTimes(1);
413
+ expect(announceSpy).toHaveBeenLastCalledWith('Kept', 'polite');
414
+ // The colliding toast is suppressed (collisionBehavior: 'ignore'), so it is
415
+ // neither shown nor announced.
416
+ act(() => {
417
+ fireEvent.click(screen.getByText('Show 2'));
418
+ });
419
+ expect(announceSpy).toHaveBeenCalledTimes(1);
420
+ const viewport = screen.getByRole('region', {name: 'Notifications'});
421
+ expect(within(viewport).getByText('Kept')).toBeInTheDocument();
422
+ expect(within(viewport).queryByText('Dropped')).not.toBeInTheDocument();
423
+ });
424
+ });
425
+
216
426
  describe('toast timer lifecycle (#3589)', () => {
217
427
  it('fires onHide exactly once when dismissed twice during the exit window', () => {
218
428
  const onHide = vi.fn();
@@ -3,6 +3,7 @@
3
3
  'use client';
4
4
 
5
5
  import {
6
+ isValidElement,
6
7
  useCallback,
7
8
  useEffect,
8
9
  useLayoutEffect,
@@ -10,10 +11,12 @@ import {
10
11
  useRef,
11
12
  useState,
12
13
  } from 'react';
14
+ import type {ReactNode} from 'react';
13
15
  import * as stylex from '@stylexjs/stylex';
14
16
  import {spacingVars, durationVars, easeVars} from '../theme/tokens.stylex';
15
17
  import {mergeProps} from '../utils';
16
18
  import {INTERACTIVE_SELECTORS} from '../hooks/useClickableContainer';
19
+ import {useAnnounce} from '../hooks/useAnnounce';
17
20
  import {Toast} from './Toast';
18
21
  import {ToastContext, type ToastContextValue} from './ToastContext';
19
22
  import type {ToastEntry, ToastPosition, ToastDismissReason} from './types';
@@ -76,6 +79,29 @@ const styles = stylex.create({
76
79
  },
77
80
  });
78
81
 
82
+ // Flatten a toast's rendered content (title, description, etc.) to the plain
83
+ // text that should be spoken by a screen reader. Only text is announced —
84
+ // interactive endContent is deliberately excluded (it is reachable via F6).
85
+ function getNodeText(node: ReactNode): string {
86
+ if (node == null || typeof node === 'boolean') {
87
+ return '';
88
+ }
89
+ if (typeof node === 'string') {
90
+ return node;
91
+ }
92
+ if (typeof node === 'number') {
93
+ return String(node);
94
+ }
95
+ if (Array.isArray(node)) {
96
+ return node.map(getNodeText).filter(Boolean).join(' ');
97
+ }
98
+ if (isValidElement(node)) {
99
+ const {children} = node.props as {children?: ReactNode};
100
+ return getNodeText(children);
101
+ }
102
+ return '';
103
+ }
104
+
79
105
  export interface ToastViewportProps {
80
106
  position?: ToastPosition;
81
107
  maxVisible?: number;
@@ -159,21 +185,54 @@ export function ToastViewport({
159
185
  [],
160
186
  );
161
187
 
162
- const addToast = useCallback((entry: ToastEntry) => {
163
- setToasts(prev => {
188
+ // Announce toasts through the persistent singleton live regions. Each
189
+ // <Toast> also renders its own role="status"/"alert" region, but that region
190
+ // is "born with content" — mounted together with its text — which many
191
+ // screen readers do not announce (see useAnnounce.ts); the singleton regions
192
+ // are mounted empty and only mutated afterwards, so they are what actually
193
+ // guarantees the announcement (the per-toast markup is kept for browse-mode
194
+ // discoverability). The announcement happens in addToast — the imperative
195
+ // dispatch path invoked once per useToast() call from an event handler,
196
+ // never from render — so each toast is announced exactly once by
197
+ // construction, independent of the React render lifecycle (StrictMode
198
+ // double-render/double-effect, viewport remounts, and unrelated list
199
+ // re-renders never re-announce). It is client-only (addToast never runs
200
+ // during SSR), so it is SSR-safe.
201
+ const announce = useAnnounce();
202
+
203
+ const addToast = useCallback(
204
+ (entry: ToastEntry) => {
164
205
  const {uniqueID, collisionBehavior = 'overwrite'} = entry.options;
165
- if (uniqueID) {
166
- const existing = prev.find(t => t.options.uniqueID === uniqueID);
167
- if (existing) {
168
- if (collisionBehavior === 'ignore') {
169
- return prev;
206
+ // Resolve an ignored collision synchronously against the committed list
207
+ // so a suppressed toast is neither shown nor announced. The remaining
208
+ // announce + setToasts run outside the setToasts updater, which React may
209
+ // invoke more than once — keeping the announcement exactly-once.
210
+ if (
211
+ uniqueID &&
212
+ collisionBehavior === 'ignore' &&
213
+ toastsRef.current.some(t => t.options.uniqueID === uniqueID)
214
+ ) {
215
+ return;
216
+ }
217
+ const text = getNodeText(entry.options.body);
218
+ if (text) {
219
+ // Error toasts map to the assertive region (role="alert"); everything
220
+ // else to the polite region (role="status") — mirrors Toast.tsx.
221
+ announce(text, entry.options.type === 'error' ? 'assertive' : 'polite');
222
+ }
223
+ setToasts(prev => {
224
+ if (uniqueID) {
225
+ const existing = prev.find(t => t.options.uniqueID === uniqueID);
226
+ if (existing) {
227
+ // An ignored collision already returned above; overwrite in place.
228
+ return prev.map(t => (t.options.uniqueID === uniqueID ? entry : t));
170
229
  }
171
- return prev.map(t => (t.options.uniqueID === uniqueID ? entry : t));
172
230
  }
173
- }
174
- return [...prev, entry];
175
- });
176
- }, []);
231
+ return [...prev, entry];
232
+ });
233
+ },
234
+ [announce],
235
+ );
177
236
 
178
237
  const removeToast = useCallback((id: string, reason: ToastDismissReason) => {
179
238
  // An exiting toast stays in toastsRef until its exit transition ends, so
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').HookDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').HookDoc} */
4
4
  export const docs = {
5
5
  name: 'useToast',
6
6
  displayName: 'useToast',
@@ -31,7 +31,7 @@ export const docs = {
31
31
  category: 'interaction',
32
32
  };
33
33
 
34
- /** @type {import('../docs-types').HookTranslationDoc} */
34
+ /** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
35
35
  export const docsDense = {
36
36
  description: 'Show toast notifications from anywhere in component tree. Returns function accepting toast options + showing notification. Works automatically w/ LayerProvider / self-mounts fallback viewport.',
37
37
  returnDescriptions: {
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').ComponentDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
4
4
 
5
5
  export const docs = {
6
6
  name: 'ToggleButton',
@@ -139,7 +139,7 @@ export const docs = {
139
139
  },
140
140
  };
141
141
 
142
- /** @type {import('../docs-types').TranslationDoc} */
142
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
143
143
  export const docsZh = {
144
144
  usage: {
145
145
  description:
@@ -161,7 +161,7 @@ export const docsZh = {
161
161
  },
162
162
  };
163
163
 
164
- /** @type {import('../docs-types').TranslationDoc} */
164
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
165
165
  export const docsDense = {
166
166
  description: 'toggle btn w/ pressed/unpressed states, icon swap, group integration for single/multi-select',
167
167
  usage: {
@@ -14,6 +14,10 @@ import userEvent from '@testing-library/user-event';
14
14
  import {useState, type MouseEvent} from 'react';
15
15
  import {ToggleButton} from './ToggleButton';
16
16
  import {ToggleButtonGroup} from './ToggleButtonGroup';
17
+ import {
18
+ getAllInjectedCss,
19
+ getForcedColorsRules,
20
+ } from '../__tests__/forcedColors';
17
21
 
18
22
  // =============================================================================
19
23
  // ToggleButton — Standalone
@@ -517,3 +521,23 @@ describe('ToggleButtonGroup (multiple)', () => {
517
521
  );
518
522
  });
519
523
  });
524
+
525
+ // jsdom cannot emulate forced-colors rendering, so these assert that the
526
+ // compiled output includes the forced-colors rules; visual behavior needs
527
+ // manual verification under Windows High Contrast.
528
+ describe('forced colors (WCAG 1.4.11)', () => {
529
+ it('compiles forced-colors overrides so the pressed state survives Windows High Contrast', () => {
530
+ render(<ToggleButton label="Bold" isPressed onPressedChange={() => {}} />);
531
+ const css = getForcedColorsRules();
532
+ // The painted pressed overlay is stripped; Highlight/HighlightText marks
533
+ // the pressed toggle (critical for icon-only toggles, which otherwise
534
+ // lose all pressed indication).
535
+ expect(css).toContain('background-color: highlight;');
536
+ expect(css).toContain('color: highlighttext;');
537
+ // ToggleButton renders a <button>; without opting out of UA remapping it
538
+ // keeps the native ButtonFace surface and ignores the Highlight fill,
539
+ // leaving HighlightText text on a white surface. forced-color-adjust: none
540
+ // makes both render as authored.
541
+ expect(getAllInjectedCss()).toContain('forced-color-adjust: none;');
542
+ });
543
+ });
@@ -17,7 +17,7 @@
17
17
  * SYNC: When modified, update these files to stay in sync:
18
18
  * - /packages/core/src/ToggleButton/index.ts (exports if types change)
19
19
  * - /apps/storybook/stories/ToggleButton.stories.tsx
20
- * - /packages/cli/templates/blocks/components/ToggleButton/ (showcase blocks)
20
+ * - /packages/cli/assets/templates/blocks/components/ToggleButton/ (showcase blocks)
21
21
  */
22
22
 
23
23
  import React, {useOptimistic, type ReactNode} from 'react';
@@ -40,7 +40,25 @@ import {themeProps} from '../utils/themeProps';
40
40
  */
41
41
  const pressedStyles = stylex.create({
42
42
  background: {
43
- backgroundColor: colorVars['--color-overlay-pressed'],
43
+ // forced-color-adjust must be `none` here: ToggleButton renders a <button>,
44
+ // and the UA keeps native form-control colors (ButtonFace surface) for it
45
+ // under forced colors, ignoring the authored Highlight fill — the label kept
46
+ // its HighlightText color, giving white text on a white surface. Opting the
47
+ // pressed button out of UA remapping makes both the Highlight surface and
48
+ // the HighlightText label render as authored, restoring figure-ground.
49
+ forcedColorAdjust: 'none',
50
+ backgroundColor: {
51
+ default: colorVars['--color-overlay-pressed'],
52
+ // Forced colors (Windows High Contrast) strips the painted pressed
53
+ // overlay, which would leave icon-only toggles with no pressed
54
+ // indication at all. Highlight/HighlightText is the platform convention
55
+ // for a selected/pressed control (WCAG 1.4.11).
56
+ '@media (forced-colors: active)': 'Highlight',
57
+ },
58
+ color: {
59
+ default: null,
60
+ '@media (forced-colors: active)': 'HighlightText',
61
+ },
44
62
  },
45
63
  });
46
64
 
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').ComponentDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
4
4
 
5
5
  export const docs = {
6
6
  name: 'ToggleButtonGroup',
@@ -15,7 +15,7 @@
15
15
  * SYNC: When modified, update these files to stay in sync:
16
16
  * - /packages/core/src/ToggleButton/index.ts
17
17
  * - /apps/storybook/stories/ToggleButton.stories.tsx
18
- * - /packages/cli/templates/blocks/components/ToggleButton/ (showcase blocks)
18
+ * - /packages/cli/assets/templates/blocks/components/ToggleButton/ (showcase blocks)
19
19
  */
20
20
 
21
21
  import {createContext, useCallback, use, useMemo, type ReactNode} from 'react';
@@ -153,8 +153,7 @@ export interface ToggleButtonGroupMultipleProps extends ToggleButtonGroupBasePro
153
153
 
154
154
  /** Discriminated union of single and multiple group props. */
155
155
  export type ToggleButtonGroupProps =
156
- | ToggleButtonGroupSingleProps
157
- | ToggleButtonGroupMultipleProps;
156
+ ToggleButtonGroupSingleProps | ToggleButtonGroupMultipleProps;
158
157
 
159
158
  // =============================================================================
160
159
  // Component
@@ -176,9 +175,7 @@ export type ToggleButtonGroupProps =
176
175
  * </ToggleButtonGroup>
177
176
  * ```
178
177
  */
179
- export function ToggleButtonGroup(
180
- props: ToggleButtonGroupProps,
181
- ): ReactNode {
178
+ export function ToggleButtonGroup(props: ToggleButtonGroupProps): ReactNode {
182
179
  const {
183
180
  children,
184
181
  label,
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').ComponentDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
4
4
 
5
5
  export const docs = {
6
6
  name: 'Token',
@@ -112,7 +112,7 @@ export const docs = {
112
112
  },
113
113
  };
114
114
 
115
- /** @type {import('../docs-types').ComponentDoc} */
115
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
116
116
  export const docsZh = {
117
117
  name: 'Token',
118
118
  displayName: 'Token',
@@ -217,7 +217,7 @@ export const docsZh = {
217
217
  },
218
218
  };
219
219
 
220
- /** @type {import('../docs-types').TranslationDoc} */
220
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
221
221
  export const docsDense = {
222
222
  description: 'compact chip/tag for inline metadata, filters, selections. 11 colors, 3 sizes, removable, clickable, linkable.',
223
223
  usage: {