@astryxdesign/core 0.2.0-canary.fc53ff7 → 0.2.0-canary.fce8b64

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 (932) hide show
  1. package/README.md +5 -3
  2. package/dist/AlertDialog/AlertDialog.d.ts +1 -1
  3. package/dist/AlertDialog/AlertDialog.js +1 -1
  4. package/dist/AppShell/AppShell.d.ts +2 -20
  5. package/dist/AppShell/AppShell.d.ts.map +1 -1
  6. package/dist/AppShell/AppShell.js +1 -14
  7. package/dist/AppShell/index.d.ts +20 -1
  8. package/dist/AppShell/index.d.ts.map +1 -1
  9. package/dist/AppShell/index.js +14 -0
  10. package/dist/AspectRatio/AspectRatio.d.ts +1 -1
  11. package/dist/AspectRatio/AspectRatio.js +1 -1
  12. package/dist/Avatar/Avatar.d.ts +1 -1
  13. package/dist/Avatar/Avatar.d.ts.map +1 -1
  14. package/dist/Avatar/Avatar.js +4 -4
  15. package/dist/Avatar/AvatarStatusDot.d.ts +2 -26
  16. package/dist/Avatar/AvatarStatusDot.d.ts.map +1 -1
  17. package/dist/Avatar/AvatarStatusDot.js +1 -22
  18. package/dist/Avatar/index.d.ts +26 -1
  19. package/dist/Avatar/index.d.ts.map +1 -1
  20. package/dist/Avatar/index.js +21 -0
  21. package/dist/AvatarGroup/AvatarGroup.d.ts +1 -1
  22. package/dist/AvatarGroup/AvatarGroup.d.ts.map +1 -1
  23. package/dist/AvatarGroup/AvatarGroup.js +4 -8
  24. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts +1 -1
  25. package/dist/AvatarGroup/AvatarGroupOverflow.js +1 -1
  26. package/dist/Badge/Badge.d.ts +2 -30
  27. package/dist/Badge/Badge.d.ts.map +1 -1
  28. package/dist/Badge/Badge.js +2 -17
  29. package/dist/Badge/index.d.ts +31 -2
  30. package/dist/Badge/index.d.ts.map +1 -1
  31. package/dist/Badge/index.js +15 -1
  32. package/dist/Banner/Banner.d.ts +2 -37
  33. package/dist/Banner/Banner.d.ts.map +1 -1
  34. package/dist/Banner/Banner.js +6 -34
  35. package/dist/Banner/index.d.ts +37 -1
  36. package/dist/Banner/index.d.ts.map +1 -1
  37. package/dist/Banner/index.js +27 -0
  38. package/dist/Blockquote/Blockquote.d.ts +1 -1
  39. package/dist/Blockquote/Blockquote.js +1 -1
  40. package/dist/Breadcrumbs/BreadcrumbItem.d.ts +1 -1
  41. package/dist/Breadcrumbs/BreadcrumbItem.js +4 -3
  42. package/dist/Breadcrumbs/Breadcrumbs.d.ts +2 -18
  43. package/dist/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  44. package/dist/Breadcrumbs/Breadcrumbs.js +1 -15
  45. package/dist/Breadcrumbs/index.d.ts +18 -1
  46. package/dist/Breadcrumbs/index.d.ts.map +1 -1
  47. package/dist/Breadcrumbs/index.js +14 -0
  48. package/dist/Button/Button.d.ts +2 -20
  49. package/dist/Button/Button.d.ts.map +1 -1
  50. package/dist/Button/Button.js +2 -17
  51. package/dist/Button/index.d.ts +21 -3
  52. package/dist/Button/index.d.ts.map +1 -1
  53. package/dist/Button/index.js +15 -1
  54. package/dist/ButtonGroup/ButtonGroup.d.ts +1 -1
  55. package/dist/ButtonGroup/ButtonGroup.js +1 -1
  56. package/dist/Calendar/Calendar.js +1 -1
  57. package/dist/Calendar/styles.d.ts +2 -2
  58. package/dist/Calendar/styles.js +2 -2
  59. package/dist/Card/Card.d.ts +1 -1
  60. package/dist/Card/Card.js +1 -1
  61. package/dist/Carousel/Carousel.d.ts +54 -3
  62. package/dist/Carousel/Carousel.d.ts.map +1 -1
  63. package/dist/Carousel/Carousel.js +82 -15
  64. package/dist/Carousel/index.d.ts +1 -1
  65. package/dist/Carousel/index.d.ts.map +1 -1
  66. package/dist/Center/Center.d.ts +21 -4
  67. package/dist/Center/Center.d.ts.map +1 -1
  68. package/dist/Center/Center.js +11 -3
  69. package/dist/Chat/ChatComposer.d.ts +1 -1
  70. package/dist/Chat/ChatComposer.js +9 -9
  71. package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
  72. package/dist/Chat/ChatComposerDrawer.js +3 -3
  73. package/dist/Chat/ChatComposerInput.d.ts +1 -1
  74. package/dist/Chat/ChatComposerInput.js +1 -1
  75. package/dist/Chat/ChatDictationButton.d.ts +1 -1
  76. package/dist/Chat/ChatDictationButton.js +1 -1
  77. package/dist/Chat/ChatLayout.d.ts +8 -1
  78. package/dist/Chat/ChatLayout.d.ts.map +1 -1
  79. package/dist/Chat/ChatLayout.js +15 -4
  80. package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
  81. package/dist/Chat/ChatLayoutScrollButton.js +1 -1
  82. package/dist/Chat/ChatMessage.d.ts +1 -1
  83. package/dist/Chat/ChatMessage.js +1 -1
  84. package/dist/Chat/ChatMessageBubble.d.ts +1 -1
  85. package/dist/Chat/ChatMessageBubble.js +1 -1
  86. package/dist/Chat/ChatMessageList.d.ts +1 -1
  87. package/dist/Chat/ChatMessageList.js +1 -1
  88. package/dist/Chat/ChatSendButton.d.ts.map +1 -1
  89. package/dist/Chat/ChatSendButton.js +4 -2
  90. package/dist/Chat/ChatSystemMessage.d.ts +1 -1
  91. package/dist/Chat/ChatSystemMessage.js +1 -1
  92. package/dist/Chat/ChatTokenizedText.d.ts +1 -1
  93. package/dist/Chat/ChatTokenizedText.js +1 -1
  94. package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
  95. package/dist/CheckboxInput/CheckboxInput.js +1 -1
  96. package/dist/CheckboxList/CheckboxList.d.ts +1 -1
  97. package/dist/CheckboxList/CheckboxList.js +1 -1
  98. package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
  99. package/dist/CheckboxList/CheckboxListItem.js +1 -1
  100. package/dist/Citation/Citation.d.ts +1 -1
  101. package/dist/Citation/Citation.js +1 -1
  102. package/dist/ClickableCard/ClickableCard.d.ts +3 -3
  103. package/dist/ClickableCard/ClickableCard.js +3 -3
  104. package/dist/Code/Code.d.ts +2 -2
  105. package/dist/Code/Code.js +2 -2
  106. package/dist/Collapsible/Collapsible.d.ts +1 -1
  107. package/dist/Collapsible/Collapsible.js +3 -3
  108. package/dist/Collapsible/CollapsibleGroup.d.ts +1 -1
  109. package/dist/Collapsible/CollapsibleGroup.js +1 -1
  110. package/dist/Collapsible/CollapsibleGroupContext.js +1 -1
  111. package/dist/CommandPalette/CommandPalette.d.ts +1 -1
  112. package/dist/CommandPalette/CommandPalette.js +1 -1
  113. package/dist/CommandPalette/CommandPaletteEmpty.js +1 -1
  114. package/dist/CommandPalette/CommandPaletteFooter.js +1 -1
  115. package/dist/CommandPalette/CommandPaletteGroup.js +1 -1
  116. package/dist/CommandPalette/CommandPaletteInput.d.ts +2 -2
  117. package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
  118. package/dist/CommandPalette/CommandPaletteInput.js +4 -2
  119. package/dist/CommandPalette/CommandPaletteItem.d.ts +1 -1
  120. package/dist/CommandPalette/CommandPaletteItem.js +1 -1
  121. package/dist/CommandPalette/CommandPaletteList.js +1 -1
  122. package/dist/ContextMenu/ContextMenu.d.ts +2 -2
  123. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  124. package/dist/ContextMenu/ContextMenu.js +14 -5
  125. package/dist/DateInput/DateInput.js +1 -1
  126. package/dist/DateRangeInput/DateRangeInput.js +1 -1
  127. package/dist/DateTimeInput/DateTimeInput.js +1 -1
  128. package/dist/Dialog/Dialog.d.ts +46 -23
  129. package/dist/Dialog/Dialog.d.ts.map +1 -1
  130. package/dist/Dialog/Dialog.js +59 -31
  131. package/dist/Dialog/DialogHeader.d.ts +1 -1
  132. package/dist/Dialog/DialogHeader.js +1 -1
  133. package/dist/Dialog/index.d.ts +18 -1
  134. package/dist/Dialog/index.d.ts.map +1 -1
  135. package/dist/Dialog/index.js +14 -0
  136. package/dist/Divider/Divider.d.ts +2 -18
  137. package/dist/Divider/Divider.d.ts.map +1 -1
  138. package/dist/Divider/Divider.js +1 -15
  139. package/dist/Divider/index.d.ts +18 -1
  140. package/dist/Divider/index.d.ts.map +1 -1
  141. package/dist/Divider/index.js +14 -0
  142. package/dist/DropdownMenu/DropdownMenu.d.ts +9 -3
  143. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  144. package/dist/DropdownMenu/DropdownMenu.js +23 -19
  145. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +18 -12
  146. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  147. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +38 -63
  148. package/dist/DropdownMenu/DropdownMenuItem.d.ts +1 -1
  149. package/dist/DropdownMenu/DropdownMenuItem.js +1 -1
  150. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  151. package/dist/DropdownMenu/DropdownMenuRadioItem.js +5 -1
  152. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +1 -1
  153. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  154. package/dist/DropdownMenu/DropdownMenuSubMenu.js +5 -5
  155. package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
  156. package/dist/DropdownMenu/renderDropdownItems.js +6 -4
  157. package/dist/EmptyState/EmptyState.d.ts +1 -1
  158. package/dist/EmptyState/EmptyState.js +1 -1
  159. package/dist/Field/Field.d.ts +1 -1
  160. package/dist/Field/Field.js +1 -1
  161. package/dist/Field/FieldLabel.d.ts +2 -2
  162. package/dist/Field/FieldLabel.d.ts.map +1 -1
  163. package/dist/Field/FieldLabel.js +41 -2
  164. package/dist/FieldStatus/FieldStatus.d.ts +1 -18
  165. package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
  166. package/dist/FieldStatus/FieldStatus.js +1 -15
  167. package/dist/FieldStatus/index.d.ts +19 -1
  168. package/dist/FieldStatus/index.d.ts.map +1 -1
  169. package/dist/FieldStatus/index.js +14 -0
  170. package/dist/FileInput/FileInput.js +1 -1
  171. package/dist/FormLayout/FormLayout.d.ts +1 -1
  172. package/dist/FormLayout/FormLayout.d.ts.map +1 -1
  173. package/dist/FormLayout/FormLayout.js +1 -1
  174. package/dist/Grid/Grid.d.ts +1 -1
  175. package/dist/Grid/Grid.js +1 -1
  176. package/dist/Grid/GridSpan.d.ts +1 -1
  177. package/dist/Grid/GridSpan.js +1 -1
  178. package/dist/HStack/HStack.d.ts +1 -1
  179. package/dist/HStack/HStack.js +1 -1
  180. package/dist/Heading/Heading.d.ts +2 -2
  181. package/dist/Heading/Heading.d.ts.map +1 -1
  182. package/dist/Heading/Heading.js +5 -4
  183. package/dist/HoverCard/HoverCard.d.ts +1 -1
  184. package/dist/HoverCard/HoverCard.js +1 -1
  185. package/dist/Icon/Icon.d.ts +1 -1
  186. package/dist/Icon/Icon.d.ts.map +1 -1
  187. package/dist/Icon/Icon.js +4 -2
  188. package/dist/Icon/globalIconRegistry.d.ts +47 -5
  189. package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
  190. package/dist/Icon/globalIconRegistry.js +74 -7
  191. package/dist/Icon/index.d.ts +4 -3
  192. package/dist/Icon/index.d.ts.map +1 -1
  193. package/dist/Icon/index.js +2 -1
  194. package/dist/Icon/useIcon.d.ts +14 -0
  195. package/dist/Icon/useIcon.d.ts.map +1 -0
  196. package/dist/Icon/useIcon.js +21 -0
  197. package/dist/IconButton/IconButton.d.ts +1 -1
  198. package/dist/IconButton/IconButton.js +1 -1
  199. package/dist/InputGroup/InputGroup.d.ts +1 -1
  200. package/dist/InputGroup/InputGroup.js +1 -1
  201. package/dist/InputGroup/InputGroupText.d.ts +1 -1
  202. package/dist/InputGroup/InputGroupText.js +1 -1
  203. package/dist/Item/Item.d.ts +1 -1
  204. package/dist/Item/Item.js +1 -1
  205. package/dist/Kbd/Kbd.d.ts +1 -1
  206. package/dist/Kbd/Kbd.js +1 -1
  207. package/dist/Layout/Layout.d.ts +1 -1
  208. package/dist/Layout/Layout.js +1 -1
  209. package/dist/Layout/LayoutContent.d.ts +1 -1
  210. package/dist/Layout/LayoutContent.js +1 -1
  211. package/dist/Layout/LayoutFooter.d.ts +1 -1
  212. package/dist/Layout/LayoutFooter.js +1 -1
  213. package/dist/Layout/LayoutHeader.d.ts +1 -1
  214. package/dist/Layout/LayoutHeader.js +1 -1
  215. package/dist/Layout/LayoutPanel.d.ts +1 -1
  216. package/dist/Layout/LayoutPanel.js +1 -1
  217. package/dist/Lightbox/Lightbox.d.ts +1 -1
  218. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  219. package/dist/Lightbox/Lightbox.js +16 -3
  220. package/dist/Link/Link.d.ts +1 -1
  221. package/dist/Link/Link.js +1 -1
  222. package/dist/Link/LinkProvider.d.ts +2 -2
  223. package/dist/Link/LinkProvider.js +2 -2
  224. package/dist/List/List.d.ts +1 -1
  225. package/dist/List/List.js +1 -1
  226. package/dist/List/ListItem.d.ts +1 -1
  227. package/dist/List/ListItem.js +1 -1
  228. package/dist/Markdown/Markdown.d.ts.map +1 -1
  229. package/dist/Markdown/Markdown.js +35 -13
  230. package/dist/MetadataList/MetadataList.d.ts +1 -1
  231. package/dist/MetadataList/MetadataList.js +1 -1
  232. package/dist/MetadataList/MetadataListItem.d.ts +1 -1
  233. package/dist/MetadataList/MetadataListItem.js +1 -1
  234. package/dist/MobileNav/MobileNav.d.ts +1 -1
  235. package/dist/MobileNav/MobileNav.js +1 -1
  236. package/dist/MoreMenu/MoreMenu.d.ts +1 -1
  237. package/dist/MoreMenu/MoreMenu.js +3 -3
  238. package/dist/MultiSelector/MultiSelector.d.ts +1 -1
  239. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  240. package/dist/MultiSelector/MultiSelector.js +55 -17
  241. package/dist/NavIcon/NavIcon.d.ts +1 -1
  242. package/dist/NavIcon/NavIcon.js +1 -1
  243. package/dist/NumberInput/NumberInput.d.ts +1 -1
  244. package/dist/NumberInput/NumberInput.js +1 -1
  245. package/dist/Outline/Outline.js +1 -1
  246. package/dist/OverflowList/OverflowList.d.ts +1 -1
  247. package/dist/OverflowList/OverflowList.js +1 -1
  248. package/dist/Pagination/Pagination.d.ts +1 -20
  249. package/dist/Pagination/Pagination.d.ts.map +1 -1
  250. package/dist/Pagination/Pagination.js +1 -15
  251. package/dist/Pagination/index.d.ts +21 -1
  252. package/dist/Pagination/index.d.ts.map +1 -1
  253. package/dist/Pagination/index.js +14 -0
  254. package/dist/Popover/Popover.d.ts +20 -3
  255. package/dist/Popover/Popover.d.ts.map +1 -1
  256. package/dist/Popover/Popover.js +5 -1
  257. package/dist/Popover/usePopover.d.ts.map +1 -1
  258. package/dist/Popover/usePopover.js +14 -3
  259. package/dist/PowerSearch/PowerSearch.d.ts +1 -1
  260. package/dist/PowerSearch/PowerSearch.js +1 -1
  261. package/dist/ProgressBar/ProgressBar.d.ts +1 -20
  262. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  263. package/dist/ProgressBar/ProgressBar.js +1 -15
  264. package/dist/ProgressBar/index.d.ts +21 -1
  265. package/dist/ProgressBar/index.d.ts.map +1 -1
  266. package/dist/ProgressBar/index.js +14 -0
  267. package/dist/RadioList/RadioList.d.ts +1 -1
  268. package/dist/RadioList/RadioList.js +1 -1
  269. package/dist/RadioList/RadioListItem.d.ts +1 -1
  270. package/dist/RadioList/RadioListItem.js +1 -1
  271. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  272. package/dist/Resizable/ResizeHandle.js +3 -10
  273. package/dist/Section/Section.d.ts +2 -19
  274. package/dist/Section/Section.d.ts.map +1 -1
  275. package/dist/Section/Section.js +1 -15
  276. package/dist/Section/index.d.ts +19 -1
  277. package/dist/Section/index.d.ts.map +1 -1
  278. package/dist/Section/index.js +14 -0
  279. package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
  280. package/dist/SegmentedControl/SegmentedControl.js +1 -1
  281. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  282. package/dist/SegmentedControl/SegmentedControlItem.js +1 -1
  283. package/dist/SelectableCard/SelectableCard.d.ts +4 -3
  284. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  285. package/dist/SelectableCard/SelectableCard.js +15 -3
  286. package/dist/Selector/Selector.d.ts +1 -1
  287. package/dist/Selector/Selector.d.ts.map +1 -1
  288. package/dist/Selector/Selector.js +55 -17
  289. package/dist/SideNav/SideNav.d.ts +1 -1
  290. package/dist/SideNav/SideNav.js +1 -1
  291. package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
  292. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  293. package/dist/SideNav/SideNavCollapseButton.js +4 -3
  294. package/dist/SideNav/SideNavHeading.d.ts +1 -1
  295. package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
  296. package/dist/SideNav/SideNavHeading.js +8 -7
  297. package/dist/SideNav/SideNavItem.d.ts +2 -2
  298. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  299. package/dist/SideNav/SideNavItem.js +6 -7
  300. package/dist/SideNav/SideNavSection.d.ts +1 -1
  301. package/dist/SideNav/SideNavSection.js +1 -1
  302. package/dist/Skeleton/Skeleton.d.ts +1 -1
  303. package/dist/Skeleton/Skeleton.js +1 -1
  304. package/dist/Slider/Slider.d.ts.map +1 -1
  305. package/dist/Slider/Slider.js +78 -68
  306. package/dist/Spinner/Spinner.d.ts +1 -1
  307. package/dist/Spinner/Spinner.js +1 -1
  308. package/dist/Stack/Stack.d.ts +1 -1
  309. package/dist/Stack/Stack.js +1 -1
  310. package/dist/Stack/StackItem.d.ts +1 -1
  311. package/dist/Stack/StackItem.js +1 -1
  312. package/dist/StatusDot/StatusDot.d.ts +1 -20
  313. package/dist/StatusDot/StatusDot.d.ts.map +1 -1
  314. package/dist/StatusDot/StatusDot.js +2 -17
  315. package/dist/StatusDot/index.d.ts +21 -1
  316. package/dist/StatusDot/index.d.ts.map +1 -1
  317. package/dist/StatusDot/index.js +14 -0
  318. package/dist/Switch/Switch.d.ts +1 -1
  319. package/dist/Switch/Switch.js +1 -1
  320. package/dist/TabList/Tab.d.ts +1 -1
  321. package/dist/TabList/Tab.js +1 -1
  322. package/dist/TabList/TabList.d.ts +1 -1
  323. package/dist/TabList/TabList.js +1 -1
  324. package/dist/TabList/TabMenu.d.ts +1 -1
  325. package/dist/TabList/TabMenu.js +1 -1
  326. package/dist/Table/BaseTable.d.ts +1 -1
  327. package/dist/Table/BaseTable.js +1 -1
  328. package/dist/Table/Table.d.ts +1 -1
  329. package/dist/Table/Table.js +1 -1
  330. package/dist/Table/TableCell.d.ts +1 -1
  331. package/dist/Table/TableCell.js +1 -1
  332. package/dist/Table/TableHeaderCell.d.ts +1 -1
  333. package/dist/Table/TableHeaderCell.js +1 -1
  334. package/dist/Table/TableRow.d.ts +1 -1
  335. package/dist/Table/TableRow.js +1 -1
  336. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +18 -3
  337. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  338. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +21 -3
  339. package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
  340. package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
  341. package/dist/Table/plugins/tree/useTableTreeData.js +36 -2
  342. package/dist/Text/Text.d.ts +11 -2
  343. package/dist/Text/Text.d.ts.map +1 -1
  344. package/dist/Text/Text.js +26 -3
  345. package/dist/Text/index.d.ts +31 -1
  346. package/dist/Text/index.d.ts.map +1 -1
  347. package/dist/Text/index.js +23 -0
  348. package/dist/TextArea/TextArea.d.ts +1 -1
  349. package/dist/TextArea/TextArea.d.ts.map +1 -1
  350. package/dist/TextArea/TextArea.js +107 -39
  351. package/dist/TextInput/TextInput.d.ts +1 -1
  352. package/dist/TextInput/TextInput.js +1 -1
  353. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  354. package/dist/Thumbnail/Thumbnail.js +10 -3
  355. package/dist/TimeInput/TimeInput.js +1 -1
  356. package/dist/Timestamp/Timestamp.d.ts +4 -1
  357. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  358. package/dist/Timestamp/Timestamp.js +78 -7
  359. package/dist/Timestamp/formatInstant.d.ts +3 -3
  360. package/dist/Timestamp/formatInstant.d.ts.map +1 -1
  361. package/dist/Timestamp/formatInstant.js +2 -2
  362. package/dist/Timestamp/tooltipEntries.d.ts +3 -2
  363. package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
  364. package/dist/Timestamp/tooltipEntries.js +3 -2
  365. package/dist/ToggleButton/ToggleButton.d.ts +1 -1
  366. package/dist/ToggleButton/ToggleButton.js +1 -1
  367. package/dist/ToggleButton/ToggleButtonGroup.d.ts +1 -1
  368. package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  369. package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
  370. package/dist/Token/Token.d.ts +2 -27
  371. package/dist/Token/Token.d.ts.map +1 -1
  372. package/dist/Token/Token.js +1 -15
  373. package/dist/Token/index.d.ts +27 -1
  374. package/dist/Token/index.d.ts.map +1 -1
  375. package/dist/Token/index.js +14 -0
  376. package/dist/Tokenizer/Tokenizer.d.ts +1 -1
  377. package/dist/Tokenizer/Tokenizer.js +1 -1
  378. package/dist/Toolbar/Toolbar.d.ts +1 -1
  379. package/dist/Toolbar/Toolbar.js +1 -1
  380. package/dist/Tooltip/Tooltip.d.ts +1 -1
  381. package/dist/Tooltip/Tooltip.js +1 -1
  382. package/dist/TopNav/TopNav.d.ts +1 -1
  383. package/dist/TopNav/TopNav.js +1 -1
  384. package/dist/TopNav/TopNavHeading.d.ts +1 -1
  385. package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
  386. package/dist/TopNav/TopNavHeading.js +7 -6
  387. package/dist/TopNav/TopNavItem.d.ts +1 -1
  388. package/dist/TopNav/TopNavItem.js +1 -1
  389. package/dist/TopNav/TopNavMegaMenu.d.ts +1 -1
  390. package/dist/TopNav/TopNavMegaMenu.js +6 -4
  391. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
  392. package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +1 -1
  393. package/dist/TopNav/TopNavMegaMenuItem.d.ts +1 -1
  394. package/dist/TopNav/TopNavMegaMenuItem.js +1 -1
  395. package/dist/TopNav/TopNavMenu.d.ts +1 -1
  396. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  397. package/dist/TopNav/TopNavMenu.js +5 -4
  398. package/dist/TreeList/TreeList.d.ts +1 -1
  399. package/dist/TreeList/TreeList.js +1 -1
  400. package/dist/TreeList/TreeListBranches.js +1 -1
  401. package/dist/TreeList/TreeListItem.d.ts +1 -1
  402. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  403. package/dist/TreeList/TreeListItem.js +4 -3
  404. package/dist/TreeList/TreeListTypes.d.ts +1 -17
  405. package/dist/TreeList/TreeListTypes.d.ts.map +1 -1
  406. package/dist/TreeList/index.d.ts +18 -1
  407. package/dist/TreeList/index.d.ts.map +1 -1
  408. package/dist/TreeList/index.js +14 -0
  409. package/dist/Typeahead/BaseTypeahead.d.ts +1 -1
  410. package/dist/Typeahead/BaseTypeahead.js +1 -1
  411. package/dist/Typeahead/Typeahead.d.ts +1 -1
  412. package/dist/Typeahead/Typeahead.js +1 -1
  413. package/dist/Typeahead/TypeaheadItem.d.ts +1 -1
  414. package/dist/Typeahead/TypeaheadItem.js +1 -1
  415. package/dist/VStack/VStack.d.ts +1 -1
  416. package/dist/VStack/VStack.js +1 -1
  417. package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  418. package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
  419. package/dist/astryx.css +45 -17
  420. package/dist/astryx.umd.js +49 -49
  421. package/dist/astryx.umd.js.map +4 -4
  422. package/dist/hooks/containerReveal.pool.stylex.d.ts +49 -27
  423. package/dist/hooks/containerReveal.pool.stylex.d.ts.map +1 -1
  424. package/dist/hooks/containerReveal.pool.stylex.js +40 -29
  425. package/dist/hooks/useContainerReveal.d.ts +1 -1
  426. package/dist/hooks/useContainerReveal.d.ts.map +1 -1
  427. package/dist/hooks/useContainerReveal.js +1 -1
  428. package/dist/hooks/useGridFocus.d.ts +8 -6
  429. package/dist/hooks/useGridFocus.d.ts.map +1 -1
  430. package/dist/hooks/useInputContainer.d.ts.map +1 -1
  431. package/dist/hooks/useInputContainer.js +29 -1
  432. package/dist/hooks/useKeyboardHint.d.ts +1 -1
  433. package/dist/hooks/useKeyboardHint.js +1 -1
  434. package/dist/hooks/useListFocus.d.ts +8 -7
  435. package/dist/hooks/useListFocus.d.ts.map +1 -1
  436. package/dist/hooks/useTreeFocus.d.ts.map +1 -1
  437. package/dist/hooks/useTreeFocus.js +13 -2
  438. package/dist/index.d.ts +2 -1
  439. package/dist/index.d.ts.map +1 -1
  440. package/dist/index.js +5 -1
  441. package/dist/theme/Theme.d.ts.map +1 -1
  442. package/dist/theme/Theme.js +2 -7
  443. package/dist/theme/defineTheme.d.ts +6 -0
  444. package/dist/theme/defineTheme.d.ts.map +1 -1
  445. package/dist/theme/defineTheme.js +4 -1
  446. package/dist/theme/expandColorScale.d.ts +19 -2
  447. package/dist/theme/expandColorScale.d.ts.map +1 -1
  448. package/dist/theme/expandColorScale.js +38 -10
  449. package/dist/theme/index.d.ts +6 -4
  450. package/dist/theme/index.d.ts.map +1 -1
  451. package/dist/theme/index.js +2 -1
  452. package/dist/theme/themeRegistry.d.ts +32 -0
  453. package/dist/theme/themeRegistry.d.ts.map +1 -0
  454. package/dist/theme/themeRegistry.js +49 -0
  455. package/dist/theme/types.d.ts +10 -2
  456. package/dist/theme/types.d.ts.map +1 -1
  457. package/dist/theme/useTheme.d.ts +9 -0
  458. package/dist/theme/useTheme.d.ts.map +1 -1
  459. package/dist/theme/useTheme.js +82 -27
  460. package/dist/utils/rtlStyles.d.ts +21 -0
  461. package/dist/utils/rtlStyles.d.ts.map +1 -1
  462. package/dist/utils/rtlStyles.js +26 -1
  463. package/groups.doc.mjs +2 -2
  464. package/locales/en.json +8 -0
  465. package/locales/pseudo.json +6 -0
  466. package/package.json +4 -13
  467. package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
  468. package/src/AlertDialog/AlertDialog.tsx +1 -1
  469. package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
  470. package/src/AppShell/AppShell.doc.mjs +3 -3
  471. package/src/AppShell/AppShell.tsx +2 -20
  472. package/src/AppShell/index.ts +20 -1
  473. package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
  474. package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
  475. package/src/AspectRatio/AspectRatio.tsx +1 -1
  476. package/src/Avatar/Avatar.doc.mjs +3 -3
  477. package/src/Avatar/Avatar.tsx +8 -3
  478. package/src/Avatar/AvatarStatusDot.doc.mjs +1 -1
  479. package/src/Avatar/AvatarStatusDot.tsx +2 -27
  480. package/src/Avatar/index.ts +26 -1
  481. package/src/AvatarGroup/AvatarGroup.doc.mjs +3 -3
  482. package/src/AvatarGroup/AvatarGroup.tsx +3 -7
  483. package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
  484. package/src/AvatarGroup/AvatarGroupOverflow.tsx +1 -1
  485. package/src/Badge/Badge.doc.mjs +3 -3
  486. package/src/Badge/Badge.tsx +2 -31
  487. package/src/Badge/index.ts +32 -6
  488. package/src/Banner/Banner.doc.mjs +3 -3
  489. package/src/Banner/Banner.tsx +8 -45
  490. package/src/Banner/index.ts +39 -7
  491. package/src/Blockquote/Blockquote.doc.mjs +3 -3
  492. package/src/Blockquote/Blockquote.tsx +1 -1
  493. package/src/Breadcrumbs/BreadcrumbItem.doc.mjs +1 -1
  494. package/src/Breadcrumbs/BreadcrumbItem.tsx +5 -3
  495. package/src/Breadcrumbs/Breadcrumbs.doc.mjs +3 -3
  496. package/src/Breadcrumbs/Breadcrumbs.tsx +2 -19
  497. package/src/Breadcrumbs/index.ts +19 -5
  498. package/src/Button/Button.doc.mjs +3 -3
  499. package/src/Button/Button.tsx +2 -21
  500. package/src/Button/index.ts +22 -7
  501. package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -3
  502. package/src/ButtonGroup/ButtonGroup.tsx +1 -1
  503. package/src/Calendar/Calendar.doc.mjs +3 -3
  504. package/src/Calendar/Calendar.test.tsx +15 -3
  505. package/src/Calendar/Calendar.tsx +1 -1
  506. package/src/Calendar/styles.ts +2 -2
  507. package/src/Card/Card.doc.mjs +3 -3
  508. package/src/Card/Card.tsx +1 -1
  509. package/src/Carousel/Carousel.doc.mjs +10 -3
  510. package/src/Carousel/Carousel.test.tsx +232 -1
  511. package/src/Carousel/Carousel.tsx +144 -21
  512. package/src/Carousel/index.ts +1 -1
  513. package/src/Center/Center.doc.mjs +41 -3
  514. package/src/Center/Center.test.tsx +75 -0
  515. package/src/Center/Center.tsx +38 -3
  516. package/src/Chat/Chat.doc.mjs +3 -3
  517. package/src/Chat/ChatComposer.doc.mjs +1 -1
  518. package/src/Chat/ChatComposer.tsx +5 -5
  519. package/src/Chat/ChatComposerDrawer.doc.mjs +1 -1
  520. package/src/Chat/ChatComposerDrawer.tsx +3 -3
  521. package/src/Chat/ChatComposerInput.doc.mjs +1 -1
  522. package/src/Chat/ChatComposerInput.tsx +1 -1
  523. package/src/Chat/ChatComposerTokenElement.doc.mjs +1 -1
  524. package/src/Chat/ChatDictationButton.doc.mjs +3 -3
  525. package/src/Chat/ChatDictationButton.tsx +1 -1
  526. package/src/Chat/ChatLayout.doc.mjs +1 -1
  527. package/src/Chat/ChatLayout.test.tsx +57 -0
  528. package/src/Chat/ChatLayout.tsx +23 -2
  529. package/src/Chat/ChatLayoutScrollButton.doc.mjs +1 -1
  530. package/src/Chat/ChatLayoutScrollButton.tsx +1 -1
  531. package/src/Chat/ChatMessage.doc.mjs +1 -1
  532. package/src/Chat/ChatMessage.tsx +1 -1
  533. package/src/Chat/ChatMessageBubble.doc.mjs +1 -1
  534. package/src/Chat/ChatMessageBubble.tsx +1 -1
  535. package/src/Chat/ChatMessageList.doc.mjs +1 -1
  536. package/src/Chat/ChatMessageList.tsx +1 -1
  537. package/src/Chat/ChatMessageMetadata.doc.mjs +1 -1
  538. package/src/Chat/ChatSendButton.doc.mjs +1 -1
  539. package/src/Chat/ChatSendButton.tsx +5 -3
  540. package/src/Chat/ChatSystemMessage.doc.mjs +1 -1
  541. package/src/Chat/ChatSystemMessage.tsx +1 -1
  542. package/src/Chat/ChatTokenizedText.doc.mjs +1 -1
  543. package/src/Chat/ChatTokenizedText.tsx +1 -1
  544. package/src/Chat/ChatToolCalls.doc.mjs +3 -3
  545. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
  546. package/src/CheckboxInput/CheckboxInput.test.tsx +33 -0
  547. package/src/CheckboxInput/CheckboxInput.tsx +1 -1
  548. package/src/CheckboxList/CheckboxList.doc.mjs +3 -3
  549. package/src/CheckboxList/CheckboxList.tsx +1 -1
  550. package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
  551. package/src/CheckboxList/CheckboxListItem.tsx +1 -1
  552. package/src/Citation/Citation.doc.mjs +2 -2
  553. package/src/Citation/Citation.tsx +1 -1
  554. package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
  555. package/src/ClickableCard/ClickableCard.tsx +3 -3
  556. package/src/Code/Code.tsx +2 -2
  557. package/src/CodeBlock/Code.doc.mjs +1 -1
  558. package/src/CodeBlock/CodeBlock.doc.mjs +3 -3
  559. package/src/Collapsible/Collapsible.doc.mjs +3 -3
  560. package/src/Collapsible/Collapsible.tsx +3 -3
  561. package/src/Collapsible/CollapsibleGroup.doc.mjs +1 -1
  562. package/src/Collapsible/CollapsibleGroup.tsx +1 -1
  563. package/src/Collapsible/CollapsibleGroupContext.tsx +1 -1
  564. package/src/Collapsible/useCollapsible.doc.mjs +2 -2
  565. package/src/CommandPalette/CommandPalette.doc.mjs +4 -4
  566. package/src/CommandPalette/CommandPalette.tsx +1 -1
  567. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +1 -1
  568. package/src/CommandPalette/CommandPaletteEmpty.tsx +1 -1
  569. package/src/CommandPalette/CommandPaletteFooter.doc.mjs +1 -1
  570. package/src/CommandPalette/CommandPaletteFooter.tsx +1 -1
  571. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +1 -1
  572. package/src/CommandPalette/CommandPaletteGroup.tsx +1 -1
  573. package/src/CommandPalette/CommandPaletteInput.doc.mjs +1 -1
  574. package/src/CommandPalette/CommandPaletteInput.tsx +5 -1
  575. package/src/CommandPalette/CommandPaletteItem.doc.mjs +1 -1
  576. package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
  577. package/src/CommandPalette/CommandPaletteList.doc.mjs +1 -1
  578. package/src/CommandPalette/CommandPaletteList.tsx +1 -1
  579. package/src/ContextMenu/ContextMenu.doc.mjs +3 -3
  580. package/src/ContextMenu/ContextMenu.tsx +17 -5
  581. package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
  582. package/src/DateInput/DateInput.doc.mjs +3 -3
  583. package/src/DateInput/DateInput.tsx +1 -1
  584. package/src/DateRangeInput/DateRangeInput.doc.mjs +2 -2
  585. package/src/DateRangeInput/DateRangeInput.tsx +1 -1
  586. package/src/DateTimeInput/DateTimeInput.doc.mjs +3 -3
  587. package/src/DateTimeInput/DateTimeInput.tsx +1 -1
  588. package/src/Dialog/Dialog.doc.mjs +9 -5
  589. package/src/Dialog/Dialog.test.tsx +84 -1
  590. package/src/Dialog/Dialog.tsx +87 -45
  591. package/src/Dialog/DialogHeader.doc.mjs +1 -1
  592. package/src/Dialog/DialogHeader.tsx +1 -1
  593. package/src/Dialog/index.ts +18 -1
  594. package/src/Dialog/useImperativeDialog.doc.mjs +1 -1
  595. package/src/Divider/Divider.doc.mjs +3 -3
  596. package/src/Divider/Divider.tsx +2 -19
  597. package/src/Divider/index.ts +19 -5
  598. package/src/DropdownMenu/DropdownMenu.doc.mjs +20 -5
  599. package/src/DropdownMenu/DropdownMenu.test.tsx +122 -0
  600. package/src/DropdownMenu/DropdownMenu.tsx +31 -20
  601. package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +1 -1
  602. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +41 -64
  603. package/src/DropdownMenu/DropdownMenuItem.doc.mjs +1 -1
  604. package/src/DropdownMenu/DropdownMenuItem.tsx +1 -1
  605. package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +1 -1
  606. package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
  607. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +10 -1
  608. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +64 -0
  609. package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +1 -1
  610. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +17 -0
  611. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +11 -3
  612. package/src/DropdownMenu/renderDropdownItems.tsx +14 -2
  613. package/src/EmptyState/EmptyState.doc.mjs +3 -3
  614. package/src/EmptyState/EmptyState.tsx +1 -1
  615. package/src/Field/Field.doc.mjs +3 -3
  616. package/src/Field/Field.tsx +1 -1
  617. package/src/Field/FieldLabel.doc.mjs +1 -1
  618. package/src/Field/FieldLabel.test.tsx +78 -0
  619. package/src/Field/FieldLabel.tsx +50 -3
  620. package/src/FieldStatus/FieldStatus.doc.mjs +2 -2
  621. package/src/FieldStatus/FieldStatus.tsx +2 -20
  622. package/src/FieldStatus/index.ts +20 -5
  623. package/src/FileInput/FileInput.doc.mjs +3 -3
  624. package/src/FileInput/FileInput.tsx +1 -1
  625. package/src/FormLayout/FormLayout.doc.mjs +3 -3
  626. package/src/FormLayout/FormLayout.tsx +2 -5
  627. package/src/Grid/Grid.doc.mjs +3 -3
  628. package/src/Grid/Grid.tsx +1 -1
  629. package/src/Grid/GridSpan.doc.mjs +1 -1
  630. package/src/Grid/GridSpan.tsx +1 -1
  631. package/src/HStack/HStack.tsx +1 -1
  632. package/src/Heading/Heading.tsx +4 -3
  633. package/src/HoverCard/HoverCard.doc.mjs +3 -3
  634. package/src/HoverCard/HoverCard.tsx +1 -1
  635. package/src/HoverCard/useHoverCard.doc.mjs +2 -2
  636. package/src/Icon/Icon.doc.mjs +4 -3
  637. package/src/Icon/Icon.test.tsx +23 -0
  638. package/src/Icon/Icon.tsx +4 -2
  639. package/src/Icon/globalIconRegistry.test.tsx +87 -1
  640. package/src/Icon/globalIconRegistry.tsx +109 -9
  641. package/src/Icon/index.ts +9 -7
  642. package/src/Icon/useIcon.ts +23 -0
  643. package/src/IconButton/IconButton.doc.mjs +2 -2
  644. package/src/IconButton/IconButton.tsx +1 -1
  645. package/src/InputGroup/InputGroup.doc.mjs +2 -2
  646. package/src/InputGroup/InputGroup.tsx +1 -1
  647. package/src/InputGroup/InputGroupText.doc.mjs +1 -1
  648. package/src/InputGroup/InputGroupText.tsx +1 -1
  649. package/src/Item/Item.doc.mjs +3 -3
  650. package/src/Item/Item.tsx +1 -1
  651. package/src/Kbd/Kbd.doc.mjs +3 -3
  652. package/src/Kbd/Kbd.tsx +1 -1
  653. package/src/Layer/Layer.doc.mjs +2 -2
  654. package/src/Layer/useLayer.doc.mjs +2 -2
  655. package/src/Layout/Layout.doc.mjs +3 -3
  656. package/src/Layout/Layout.tsx +1 -1
  657. package/src/Layout/LayoutContent.doc.mjs +1 -1
  658. package/src/Layout/LayoutContent.tsx +1 -1
  659. package/src/Layout/LayoutFooter.doc.mjs +1 -1
  660. package/src/Layout/LayoutFooter.tsx +1 -1
  661. package/src/Layout/LayoutHeader.doc.mjs +1 -1
  662. package/src/Layout/LayoutHeader.tsx +1 -1
  663. package/src/Layout/LayoutPanel.doc.mjs +1 -1
  664. package/src/Layout/LayoutPanel.tsx +1 -1
  665. package/src/Lightbox/Lightbox.doc.mjs +3 -3
  666. package/src/Lightbox/Lightbox.test.tsx +33 -0
  667. package/src/Lightbox/Lightbox.tsx +16 -4
  668. package/src/Link/Link.doc.mjs +3 -3
  669. package/src/Link/Link.tsx +1 -1
  670. package/src/Link/LinkProvider.doc.mjs +2 -2
  671. package/src/Link/LinkProvider.tsx +2 -2
  672. package/src/List/List.doc.mjs +3 -3
  673. package/src/List/List.tsx +1 -1
  674. package/src/List/ListItem.doc.mjs +2 -2
  675. package/src/List/ListItem.tsx +1 -1
  676. package/src/Markdown/Markdown.doc.mjs +81 -1
  677. package/src/Markdown/Markdown.test.tsx +92 -0
  678. package/src/Markdown/Markdown.tsx +96 -68
  679. package/src/Markdown/parser.perf.test.ts +47 -35
  680. package/src/MetadataList/MetadataList.doc.mjs +3 -3
  681. package/src/MetadataList/MetadataList.tsx +1 -1
  682. package/src/MetadataList/MetadataListItem.doc.mjs +1 -1
  683. package/src/MetadataList/MetadataListItem.tsx +1 -1
  684. package/src/MobileNav/MobileNav.doc.mjs +3 -3
  685. package/src/MobileNav/MobileNav.tsx +1 -1
  686. package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
  687. package/src/MoreMenu/MoreMenu.tsx +3 -3
  688. package/src/MultiSelector/MultiSelector.doc.mjs +4 -4
  689. package/src/MultiSelector/MultiSelector.test.tsx +175 -0
  690. package/src/MultiSelector/MultiSelector.tsx +59 -38
  691. package/src/NavIcon/NavIcon.doc.mjs +3 -3
  692. package/src/NavIcon/NavIcon.tsx +1 -1
  693. package/src/NavMenu/NavMenu.doc.mjs +2 -2
  694. package/src/NumberInput/NumberInput.doc.mjs +3 -3
  695. package/src/NumberInput/NumberInput.tsx +1 -1
  696. package/src/Outline/Outline.doc.mjs +3 -3
  697. package/src/Outline/Outline.tsx +1 -1
  698. package/src/OverflowList/OverflowList.doc.mjs +3 -3
  699. package/src/OverflowList/OverflowList.tsx +1 -1
  700. package/src/Overlay/Overlay.doc.mjs +2 -2
  701. package/src/Pagination/Pagination.doc.mjs +3 -3
  702. package/src/Pagination/Pagination.tsx +2 -22
  703. package/src/Pagination/index.ts +21 -1
  704. package/src/Popover/Popover.doc.mjs +31 -3
  705. package/src/Popover/Popover.test.tsx +41 -0
  706. package/src/Popover/Popover.tsx +25 -2
  707. package/src/Popover/usePopover.doc.mjs +2 -2
  708. package/src/Popover/usePopover.tsx +10 -4
  709. package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
  710. package/src/PowerSearch/PowerSearch.tsx +1 -1
  711. package/src/ProgressBar/ProgressBar.doc.mjs +3 -3
  712. package/src/ProgressBar/ProgressBar.tsx +2 -22
  713. package/src/ProgressBar/index.ts +22 -5
  714. package/src/RadioList/RadioList.doc.mjs +3 -3
  715. package/src/RadioList/RadioList.tsx +1 -1
  716. package/src/RadioList/RadioListItem.doc.mjs +1 -1
  717. package/src/RadioList/RadioListItem.tsx +1 -1
  718. package/src/Resizable/Resizable.doc.mjs +2 -2
  719. package/src/Resizable/ResizeHandle.test.tsx +3 -2
  720. package/src/Resizable/ResizeHandle.tsx +8 -12
  721. package/src/Resizable/useResizable.doc.mjs +2 -2
  722. package/src/Section/Section.doc.mjs +3 -3
  723. package/src/Section/Section.tsx +2 -20
  724. package/src/Section/index.ts +20 -5
  725. package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
  726. package/src/SegmentedControl/SegmentedControl.tsx +1 -1
  727. package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
  728. package/src/SegmentedControl/SegmentedControlItem.tsx +1 -1
  729. package/src/SelectableCard/SelectableCard.doc.mjs +4 -2
  730. package/src/SelectableCard/SelectableCard.test.tsx +55 -0
  731. package/src/SelectableCard/SelectableCard.tsx +19 -3
  732. package/src/Selector/Selector.doc.mjs +4 -4
  733. package/src/Selector/Selector.test.tsx +152 -0
  734. package/src/Selector/Selector.tsx +59 -38
  735. package/src/Selector/SelectorOption.doc.mjs +1 -1
  736. package/src/SideNav/SideNav.doc.mjs +3 -3
  737. package/src/SideNav/SideNav.tsx +1 -1
  738. package/src/SideNav/SideNavCollapseButton.doc.mjs +1 -1
  739. package/src/SideNav/SideNavCollapseButton.tsx +4 -3
  740. package/src/SideNav/SideNavHeading.doc.mjs +1 -1
  741. package/src/SideNav/SideNavHeading.tsx +8 -9
  742. package/src/SideNav/SideNavItem.doc.mjs +1 -1
  743. package/src/SideNav/SideNavItem.tsx +5 -6
  744. package/src/SideNav/SideNavSection.doc.mjs +1 -1
  745. package/src/SideNav/SideNavSection.tsx +1 -1
  746. package/src/Skeleton/Skeleton.doc.mjs +3 -3
  747. package/src/Skeleton/Skeleton.tsx +1 -1
  748. package/src/Slider/Slider.doc.mjs +3 -3
  749. package/src/Slider/Slider.tsx +9 -13
  750. package/src/Spinner/Spinner.doc.mjs +3 -3
  751. package/src/Spinner/Spinner.tsx +1 -1
  752. package/src/Stack/Stack.doc.mjs +3 -3
  753. package/src/Stack/Stack.tsx +1 -1
  754. package/src/Stack/StackItem.tsx +1 -1
  755. package/src/StatusDot/StatusDot.doc.mjs +3 -3
  756. package/src/StatusDot/StatusDot.tsx +2 -22
  757. package/src/StatusDot/index.ts +22 -5
  758. package/src/Switch/Switch.doc.mjs +3 -3
  759. package/src/Switch/Switch.test.tsx +34 -0
  760. package/src/Switch/Switch.tsx +1 -1
  761. package/src/TabList/Tab.doc.mjs +1 -1
  762. package/src/TabList/Tab.tsx +1 -1
  763. package/src/TabList/TabList.doc.mjs +3 -3
  764. package/src/TabList/TabList.tsx +1 -1
  765. package/src/TabList/TabMenu.doc.mjs +1 -1
  766. package/src/TabList/TabMenu.tsx +1 -1
  767. package/src/Table/BaseTable.tsx +1 -1
  768. package/src/Table/Table.doc.mjs +3 -3
  769. package/src/Table/Table.tsx +1 -1
  770. package/src/Table/TableCell.doc.mjs +1 -1
  771. package/src/Table/TableCell.tsx +1 -1
  772. package/src/Table/TableHeaderCell.doc.mjs +1 -1
  773. package/src/Table/TableHeaderCell.tsx +1 -1
  774. package/src/Table/TableRow.doc.mjs +1 -1
  775. package/src/Table/TableRow.tsx +1 -1
  776. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +21 -3
  777. package/src/Table/plugins/tree/useTableTreeData.test.tsx +161 -2
  778. package/src/Table/plugins/tree/useTableTreeData.tsx +54 -1
  779. package/src/Table/useTableColumnResize.doc.mjs +1 -1
  780. package/src/Table/useTableColumnSettings.doc.mjs +1 -1
  781. package/src/Table/useTableFilterState.doc.mjs +1 -1
  782. package/src/Table/useTableFiltering.doc.mjs +1 -1
  783. package/src/Table/useTableGroupedRows.doc.mjs +2 -2
  784. package/src/Table/useTablePagination.doc.mjs +1 -1
  785. package/src/Table/useTableRowExpansion.doc.mjs +57 -4
  786. package/src/Table/useTableRowIndex.doc.mjs +2 -2
  787. package/src/Table/useTableRowStatus.doc.mjs +2 -2
  788. package/src/Table/useTableSelection.doc.mjs +1 -1
  789. package/src/Table/useTableSelectionState.doc.mjs +1 -1
  790. package/src/Table/useTableSortable.doc.mjs +1 -1
  791. package/src/Table/useTableStickyColumns.doc.mjs +1 -1
  792. package/src/Table/useTableTreeData.doc.mjs +10 -1
  793. package/src/Table/useTableTreeState.doc.mjs +1 -1
  794. package/src/Text/Heading.doc.mjs +4 -4
  795. package/src/Text/Text.doc.mjs +4 -4
  796. package/src/Text/Text.test.tsx +42 -0
  797. package/src/Text/Text.tsx +26 -2
  798. package/src/Text/index.ts +32 -6
  799. package/src/TextArea/TextArea.doc.mjs +5 -5
  800. package/src/TextArea/TextArea.test.tsx +112 -7
  801. package/src/TextArea/TextArea.tsx +143 -50
  802. package/src/TextInput/TextInput.doc.mjs +3 -3
  803. package/src/TextInput/TextInput.tsx +1 -1
  804. package/src/Thumbnail/Thumbnail.doc.mjs +2 -2
  805. package/src/Thumbnail/Thumbnail.test.tsx +24 -1
  806. package/src/Thumbnail/Thumbnail.tsx +10 -3
  807. package/src/TimeInput/TimeInput.doc.mjs +3 -3
  808. package/src/TimeInput/TimeInput.tsx +1 -1
  809. package/src/Timestamp/Timestamp.doc.mjs +5 -5
  810. package/src/Timestamp/Timestamp.test.tsx +131 -0
  811. package/src/Timestamp/Timestamp.tsx +92 -9
  812. package/src/Timestamp/formatInstant.ts +3 -4
  813. package/src/Timestamp/tooltipEntries.ts +3 -2
  814. package/src/Toast/Toast.doc.mjs +3 -3
  815. package/src/Toast/useToast.doc.mjs +2 -2
  816. package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
  817. package/src/ToggleButton/ToggleButton.tsx +1 -1
  818. package/src/ToggleButton/ToggleButtonGroup.doc.mjs +1 -1
  819. package/src/ToggleButton/ToggleButtonGroup.tsx +3 -6
  820. package/src/Token/Token.doc.mjs +3 -3
  821. package/src/Token/Token.tsx +2 -28
  822. package/src/Token/index.ts +28 -1
  823. package/src/Tokenizer/Tokenizer.doc.mjs +3 -3
  824. package/src/Tokenizer/Tokenizer.tsx +1 -1
  825. package/src/Toolbar/Toolbar.doc.mjs +3 -3
  826. package/src/Toolbar/Toolbar.tsx +1 -1
  827. package/src/Tooltip/Tooltip.doc.mjs +3 -3
  828. package/src/Tooltip/Tooltip.tsx +1 -1
  829. package/src/Tooltip/useTooltip.doc.mjs +2 -2
  830. package/src/TopNav/TopNav.doc.mjs +3 -3
  831. package/src/TopNav/TopNav.tsx +1 -1
  832. package/src/TopNav/TopNavHeading.doc.mjs +1 -1
  833. package/src/TopNav/TopNavHeading.tsx +7 -8
  834. package/src/TopNav/TopNavItem.doc.mjs +1 -1
  835. package/src/TopNav/TopNavItem.tsx +1 -1
  836. package/src/TopNav/TopNavMegaMenu.doc.mjs +1 -1
  837. package/src/TopNav/TopNavMegaMenu.tsx +6 -4
  838. package/src/TopNav/TopNavMegaMenuFeaturedCard.doc.mjs +1 -1
  839. package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +1 -1
  840. package/src/TopNav/TopNavMegaMenuItem.doc.mjs +1 -1
  841. package/src/TopNav/TopNavMegaMenuItem.tsx +1 -1
  842. package/src/TopNav/TopNavMenu.doc.mjs +1 -1
  843. package/src/TopNav/TopNavMenu.tsx +5 -4
  844. package/src/TreeList/TreeList.doc.mjs +3 -3
  845. package/src/TreeList/TreeList.tsx +1 -1
  846. package/src/TreeList/TreeListBranches.tsx +1 -1
  847. package/src/TreeList/TreeListItem.tsx +4 -3
  848. package/src/TreeList/TreeListTypes.ts +1 -18
  849. package/src/TreeList/index.ts +19 -1
  850. package/src/Typeahead/BaseTypeahead.doc.mjs +1 -1
  851. package/src/Typeahead/BaseTypeahead.tsx +1 -1
  852. package/src/Typeahead/Typeahead.doc.mjs +3 -3
  853. package/src/Typeahead/Typeahead.tsx +1 -1
  854. package/src/Typeahead/TypeaheadItem.doc.mjs +1 -1
  855. package/src/Typeahead/TypeaheadItem.tsx +1 -1
  856. package/src/VStack/VStack.tsx +1 -1
  857. package/src/VisuallyHidden/VisuallyHidden.doc.mjs +3 -3
  858. package/src/VisuallyHidden/VisuallyHidden.tsx +1 -1
  859. package/src/__tests__/babelPluginAddExtensions.test.ts +190 -0
  860. package/src/__tests__/inputWidthContract.test.tsx +8 -1
  861. package/src/doc-mjs.d.ts +5 -2
  862. package/src/docPropLiterals.test.ts +1 -1
  863. package/src/docPropReferences.test.ts +1 -1
  864. package/src/hooks/containerReveal.pool.stylex.ts +154 -47
  865. package/src/hooks/useClickableContainer.doc.mjs +2 -2
  866. package/src/hooks/useContainerReveal.doc.mjs +75 -0
  867. package/src/hooks/useContainerReveal.ts +5 -4
  868. package/src/hooks/useEntryAnimation.doc.mjs +2 -2
  869. package/src/hooks/useFocusTrap.doc.mjs +2 -2
  870. package/src/hooks/useGridFocus.doc.mjs +2 -2
  871. package/src/hooks/useGridFocus.ts +8 -6
  872. package/src/hooks/useHotkeys.doc.mjs +2 -2
  873. package/src/hooks/useImageMode.doc.mjs +2 -2
  874. package/src/hooks/useInputContainer.doc.mjs +2 -2
  875. package/src/hooks/useInputContainer.test.tsx +180 -0
  876. package/src/hooks/useInputContainer.ts +36 -1
  877. package/src/hooks/useKeyboardHint.doc.mjs +2 -2
  878. package/src/hooks/useKeyboardHint.tsx +1 -1
  879. package/src/hooks/useListFocus.doc.mjs +2 -2
  880. package/src/hooks/useListFocus.ts +8 -7
  881. package/src/hooks/useMediaQuery.doc.mjs +2 -2
  882. package/src/hooks/useOverflow.doc.mjs +2 -2
  883. package/src/hooks/useScrollLock.doc.mjs +2 -2
  884. package/src/hooks/useScrollOverflow.doc.mjs +2 -2
  885. package/src/hooks/useStreamingText.doc.mjs +2 -2
  886. package/src/hooks/useTreeFocus.doc.mjs +2 -2
  887. package/src/hooks/useTreeFocus.test.tsx +53 -1
  888. package/src/hooks/useTreeFocus.ts +13 -2
  889. package/src/i18n/InternationalizationProvider.doc.mjs +2 -2
  890. package/src/i18n/useTranslator.doc.mjs +2 -2
  891. package/src/index.ts +14 -10
  892. package/src/theme/MediaTheme.doc.mjs +2 -2
  893. package/src/theme/SyntaxTheme.doc.mjs +2 -2
  894. package/src/theme/Theme.doc.mjs +2 -2
  895. package/src/theme/Theme.tsx +3 -7
  896. package/src/theme/defineTheme.ts +11 -1
  897. package/src/theme/expandColorScale.test.ts +144 -0
  898. package/src/theme/expandColorScale.ts +53 -15
  899. package/src/theme/index.ts +11 -9
  900. package/src/theme/themeRegistry.test.ts +59 -0
  901. package/src/theme/themeRegistry.ts +53 -0
  902. package/src/theme/types.ts +14 -13
  903. package/src/theme/useTheme.doc.mjs +2 -2
  904. package/src/theme/useTheme.test.tsx +48 -3
  905. package/src/theme/useTheme.ts +100 -29
  906. package/src/utils/rtlStyles.ts +22 -0
  907. package/dist/authoring/doc.d.ts +0 -145
  908. package/dist/authoring/doc.d.ts.map +0 -1
  909. package/dist/authoring/doc.js +0 -100
  910. package/dist/authoring/index.d.ts +0 -29
  911. package/dist/authoring/index.d.ts.map +0 -1
  912. package/dist/authoring/index.js +0 -28
  913. package/dist/authoring/integration.d.ts +0 -35
  914. package/dist/authoring/integration.d.ts.map +0 -1
  915. package/dist/authoring/integration.js +0 -30
  916. package/dist/authoring/template.d.ts +0 -66
  917. package/dist/authoring/template.d.ts.map +0 -1
  918. package/dist/authoring/template.js +0 -55
  919. package/dist/config.d.ts +0 -80
  920. package/dist/config.d.ts.map +0 -1
  921. package/dist/config.js +0 -40
  922. package/dist/docs-types.d.ts +0 -969
  923. package/dist/docs-types.d.ts.map +0 -1
  924. package/dist/docs-types.js +0 -1
  925. package/src/authoring/doc.ts +0 -164
  926. package/src/authoring/index.test.ts +0 -52
  927. package/src/authoring/index.ts +0 -50
  928. package/src/authoring/integration.ts +0 -42
  929. package/src/authoring/template.ts +0 -74
  930. package/src/config.test.ts +0 -16
  931. package/src/config.ts +0 -92
  932. package/src/docs-types.ts +0 -1108
@@ -0,0 +1,180 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file useInputContainer.test.tsx
5
+ * @input Uses React Testing Library, useInputContainer
6
+ * @output Unit tests for focus-vs-click forwarding on container click
7
+ */
8
+
9
+ import {fireEvent, render} from '@testing-library/react';
10
+ import {useRef} from 'react';
11
+ import {describe, expect, it, vi} from 'vitest';
12
+ import {useInputContainer} from './useInputContainer';
13
+
14
+ /**
15
+ * Renders a container wired with useInputContainer around a single control.
16
+ * The control is described by `control`, which receives the ref to attach.
17
+ */
18
+ function TestContainer({
19
+ renderControl,
20
+ }: {
21
+ renderControl: (ref: React.RefObject<HTMLElement | null>) => React.ReactNode;
22
+ }) {
23
+ const containerRef = useRef<HTMLDivElement>(null);
24
+ const inputRef = useRef<HTMLElement | null>(null);
25
+ const {onClick, onMouseUp} = useInputContainer({
26
+ containerRef,
27
+ inputRef,
28
+ });
29
+ return (
30
+ <div ref={containerRef} onClick={onClick} onMouseUp={onMouseUp}>
31
+ <span data-testid="chrome">chrome</span>
32
+ {renderControl(inputRef)}
33
+ </div>
34
+ );
35
+ }
36
+
37
+ describe('useInputContainer', () => {
38
+ it('clicks (not focuses) a role="combobox" aria-haspopup="dialog" text input', () => {
39
+ const onFocus = vi.fn();
40
+ const onControlClick = vi.fn();
41
+ const {getByTestId} = render(
42
+ <TestContainer
43
+ renderControl={ref => (
44
+ <input
45
+ ref={ref as React.RefObject<HTMLInputElement>}
46
+ data-testid="control"
47
+ type="text"
48
+ role="combobox"
49
+ aria-haspopup="dialog"
50
+ onFocus={onFocus}
51
+ onClick={onControlClick}
52
+ />
53
+ )}
54
+ />,
55
+ );
56
+
57
+ // Click the non-interactive chrome so the container handler fires.
58
+ fireEvent.click(getByTestId('chrome'));
59
+
60
+ // A popup trigger must be activated via click, not merely focused —
61
+ // otherwise DateInput's calendar would never open.
62
+ expect(onControlClick).toHaveBeenCalledTimes(1);
63
+ expect(onFocus).not.toHaveBeenCalled();
64
+ });
65
+
66
+ it('clicks a control that only advertises aria-haspopup (no combobox role)', () => {
67
+ const onFocus = vi.fn();
68
+ const onControlClick = vi.fn();
69
+ const {getByTestId} = render(
70
+ <TestContainer
71
+ renderControl={ref => (
72
+ <input
73
+ ref={ref as React.RefObject<HTMLInputElement>}
74
+ data-testid="control"
75
+ type="text"
76
+ aria-haspopup="menu"
77
+ onFocus={onFocus}
78
+ onClick={onControlClick}
79
+ />
80
+ )}
81
+ />,
82
+ );
83
+
84
+ fireEvent.click(getByTestId('chrome'));
85
+
86
+ expect(onControlClick).toHaveBeenCalledTimes(1);
87
+ expect(onFocus).not.toHaveBeenCalled();
88
+ });
89
+
90
+ it('focuses (not clicks) a plain type="text" input', () => {
91
+ const onFocus = vi.fn();
92
+ const onControlClick = vi.fn();
93
+ const {getByTestId} = render(
94
+ <TestContainer
95
+ renderControl={ref => (
96
+ <input
97
+ ref={ref as React.RefObject<HTMLInputElement>}
98
+ data-testid="control"
99
+ type="text"
100
+ onFocus={onFocus}
101
+ onClick={onControlClick}
102
+ />
103
+ )}
104
+ />,
105
+ );
106
+
107
+ fireEvent.click(getByTestId('chrome'));
108
+
109
+ expect(onFocus).toHaveBeenCalledTimes(1);
110
+ expect(onControlClick).not.toHaveBeenCalled();
111
+ });
112
+
113
+ it('focuses (not clicks) a plain type="number" input', () => {
114
+ const onFocus = vi.fn();
115
+ const onControlClick = vi.fn();
116
+ const {getByTestId} = render(
117
+ <TestContainer
118
+ renderControl={ref => (
119
+ <input
120
+ ref={ref as React.RefObject<HTMLInputElement>}
121
+ data-testid="control"
122
+ type="number"
123
+ onFocus={onFocus}
124
+ onClick={onControlClick}
125
+ />
126
+ )}
127
+ />,
128
+ );
129
+
130
+ fireEvent.click(getByTestId('chrome'));
131
+
132
+ expect(onFocus).toHaveBeenCalledTimes(1);
133
+ expect(onControlClick).not.toHaveBeenCalled();
134
+ });
135
+
136
+ it('focuses (not clicks) a textarea', () => {
137
+ const onFocus = vi.fn();
138
+ const onControlClick = vi.fn();
139
+ const {getByTestId} = render(
140
+ <TestContainer
141
+ renderControl={ref => (
142
+ <textarea
143
+ ref={ref as React.RefObject<HTMLTextAreaElement>}
144
+ data-testid="control"
145
+ onFocus={onFocus}
146
+ onClick={onControlClick}
147
+ />
148
+ )}
149
+ />,
150
+ );
151
+
152
+ fireEvent.click(getByTestId('chrome'));
153
+
154
+ expect(onFocus).toHaveBeenCalledTimes(1);
155
+ expect(onControlClick).not.toHaveBeenCalled();
156
+ });
157
+
158
+ it('clicks (not focuses) a checkbox — unchanged behavior', () => {
159
+ const onFocus = vi.fn();
160
+ const onControlClick = vi.fn();
161
+ const {getByTestId} = render(
162
+ <TestContainer
163
+ renderControl={ref => (
164
+ <input
165
+ ref={ref as React.RefObject<HTMLInputElement>}
166
+ data-testid="control"
167
+ type="checkbox"
168
+ onFocus={onFocus}
169
+ onClick={onControlClick}
170
+ />
171
+ )}
172
+ />,
173
+ );
174
+
175
+ fireEvent.click(getByTestId('chrome'));
176
+
177
+ expect(onControlClick).toHaveBeenCalledTimes(1);
178
+ expect(onFocus).not.toHaveBeenCalled();
179
+ });
180
+ });
@@ -35,6 +35,36 @@ const FOCUS_INPUT_TYPES = new Set([
35
35
  'week',
36
36
  ]);
37
37
 
38
+ /**
39
+ * `aria-haspopup` values that advertise a control opens a popup on activation.
40
+ * https://www.w3.org/TR/wai-aria-1.2/#aria-haspopup
41
+ */
42
+ const HASPOPUP_VALUES = new Set([
43
+ 'true',
44
+ 'menu',
45
+ 'listbox',
46
+ 'tree',
47
+ 'grid',
48
+ 'dialog',
49
+ ]);
50
+
51
+ /**
52
+ * Whether an element is a popup trigger — a combobox or any control that
53
+ * advertises `aria-haspopup`. Such controls activate their popup on *click*
54
+ * (e.g. DateInput's `<input type="text" role="combobox" aria-haspopup="dialog">`
55
+ * opens its calendar via `onClick`, with no `onFocus` opener). Forwarding a
56
+ * container click to `.focus()` would focus the control but leave the popup
57
+ * closed — so we `.click()` these instead. Plain text inputs (no popup) are
58
+ * unaffected and keep `.focus()`.
59
+ */
60
+ function isPopupTrigger(el: HTMLElement): boolean {
61
+ if (el.getAttribute('role') === 'combobox') {
62
+ return true;
63
+ }
64
+ const haspopup = el.getAttribute('aria-haspopup');
65
+ return haspopup != null && HASPOPUP_VALUES.has(haspopup);
66
+ }
67
+
38
68
  export interface UseInputContainerOptions {
39
69
  /** Ref to the outer container/wrapper element */
40
70
  containerRef: RefObject<HTMLElement | null>;
@@ -83,7 +113,12 @@ export function useInputContainer({
83
113
  if (input == null) {
84
114
  return;
85
115
  }
86
- if (
116
+ // Popup triggers (combobox / aria-haspopup) activate their popup on
117
+ // *click*, not focus — so check this BEFORE the type check, otherwise a
118
+ // `type="text"` combobox (DateInput) would `.focus()` and never open.
119
+ if (input instanceof HTMLElement && isPopupTrigger(input)) {
120
+ input.click();
121
+ } else if (
87
122
  input instanceof HTMLInputElement &&
88
123
  FOCUS_INPUT_TYPES.has(input.type)
89
124
  ) {
@@ -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: 'useKeyboardHint',
6
6
  displayName: 'useKeyboardHint',
@@ -72,7 +72,7 @@ export const docs = {
72
72
  category: 'focus',
73
73
  };
74
74
 
75
- /** @type {import('../docs-types').HookTranslationDoc} */
75
+ /** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
76
76
  export const docsDense = {
77
77
  description:
78
78
  'Ephemeral "← → to navigate" hint anchored to the focused item on first keyboard focus of a roving-tabindex composite (Toolbar/TabList/SegmentedControl). Teaches sighted keyboard users that arrows move within the group. Kbd-rendered arrows in a top-layer popover="manual", CSS-anchor-positioned (never clipped by overflow), aria-hidden. Auto-dismisses on first arrow press, timeout, or blur; never re-shows for that instance.',
@@ -13,7 +13,7 @@
13
13
  * - /packages/core/src/hooks/index.ts
14
14
  * - /packages/core/src/hooks/useKeyboardHint.doc.mjs
15
15
  * - /apps/storybook/stories/useKeyboardHint.stories.tsx
16
- * - /packages/cli/templates/blocks/components/Hooks/useKeyboardHintHookUsage.tsx
16
+ * - /packages/cli/assets/templates/blocks/components/Hooks/useKeyboardHintHookUsage.tsx
17
17
  */
18
18
 
19
19
  import React, {useCallback, useEffect, useRef, type ReactNode} from 'react';
@@ -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: 'useListFocus',
6
6
  displayName: 'useListFocus',
@@ -135,7 +135,7 @@ export const docs = {
135
135
  category: 'focus',
136
136
  };
137
137
 
138
- /** @type {import('../docs-types').HookTranslationDoc} */
138
+ /** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
139
139
  export const docsDense = {
140
140
  description:
141
141
  'Manages keyboard navigation within linear list following WAI-ARIA menu/listbox/toolbar patterns. Supports arrow key navigation (vertical / horizontal), Home/End for boundaries, optional wrap-around, Escape to close. Suitable for dropdown menus, toolbars, any 1D focusable list.',
@@ -82,14 +82,15 @@ export interface UseListFocusOptions {
82
82
  hasHomeEnd?: boolean;
83
83
 
84
84
  /**
85
- * Whether the list is in a right-to-left context. When true, ArrowLeft and
86
- * ArrowRight are swapped so horizontal navigation follows visual direction.
87
- * Only affects horizontal (`'horizontal'`/`'both'`) navigation.
85
+ * @deprecated Direction is auto-detected from the container's computed
86
+ * `direction` — omit this. The explicit override is redundant (there's no
87
+ * valid reason to force RTL arrows in an LTR context) and will be removed in
88
+ * an upcoming major.
88
89
  *
89
- * When omitted, the direction is auto-detected from the container's computed
90
- * `direction` (read lazily on keydown, only for horizontal arrow keys), so
91
- * lists inside `dir="rtl"` subtrees flip automatically. Pass an explicit
92
- * boolean to override detection.
90
+ * When set, forces whether the list is right-to-left: ArrowLeft/ArrowRight
91
+ * are swapped so horizontal navigation follows visual direction. When
92
+ * omitted (preferred), the direction is auto-detected from the container's
93
+ * computed `direction` (read lazily on keydown, horizontal arrows only).
93
94
  * @default undefined (auto-detect from the container)
94
95
  */
95
96
  isRtl?: boolean;
@@ -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: 'useMediaQuery',
6
6
  displayName: 'useMediaQuery',
@@ -34,7 +34,7 @@ export const docs = {
34
34
  category: 'media',
35
35
  };
36
36
 
37
- /** @type {import('../docs-types').HookTranslationDoc} */
37
+ /** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
38
38
  export const docsDense = {
39
39
  description: 'SSR-safe media query hook subscribing to window.matchMedia changes. Returns whether given media query matches. Always returns false on first render for SSR compatibility.',
40
40
  paramDescriptions: {
@@ -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: 'useOverflow',
6
6
  displayName: 'useOverflow',
@@ -84,7 +84,7 @@ export const docs = {
84
84
  category: 'layout',
85
85
  };
86
86
 
87
- /** @type {import('../docs-types').HookTranslationDoc} */
87
+ /** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
88
88
  export const docsDense = {
89
89
  description:
90
90
  'Measures children rendered in hidden container to determine how many fit in available width w/o flickering. Uses ResizeObserver to react to container size changes. Measurement container should hold all items plus optional overflow indicator element (identified by data-overflow-indicator attribute).',
@@ -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: 'useScrollLock',
6
6
  displayName: 'useScrollLock',
@@ -29,7 +29,7 @@ export const docs = {
29
29
  category: 'layout',
30
30
  };
31
31
 
32
- /** @type {import('../docs-types').HookTranslationDoc} */
32
+ /** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
33
33
  export const docsDense = {
34
34
  description:
35
35
  'Locks body scroll when active by pinning body w/ position: fixed. Prevents background scrolling behind modals + dialogs, necessary for iOS Safari where overscroll-behavior: contain does not work. Restores original scroll position when unlocked.',
@@ -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: 'useScrollOverflow',
6
6
  displayName: 'useScrollOverflow',
@@ -43,7 +43,7 @@ export const docs = {
43
43
  category: 'layout',
44
44
  };
45
45
 
46
- /** @type {import('../docs-types').HookTranslationDoc} */
46
+ /** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
47
47
  export const docsDense = {
48
48
  description:
49
49
  'Tracks scroll overflow state for horizontally scrollable container. Returns ref callback + state booleans that update as user scrolls / container resizes. Uses scroll event listeners + ResizeObserver for reactive updates. Tolerance of 1px applied to avoid sub-pixel false positives.',
@@ -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: 'useStreamingText',
6
6
  displayName: 'useStreamingText',
@@ -55,7 +55,7 @@ export const docs = {
55
55
  category: 'streaming',
56
56
  };
57
57
 
58
- /** @type {import('../docs-types').HookTranslationDoc} */
58
+ /** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
59
59
  export const docsDense = {
60
60
  description:
61
61
  'Smooths bursty streamed text into steady character-by-character reveal using requestAnimationFrame. Decouples arrival rate from display rate. Advances on word + syntax boundaries to avoid slicing mid-markdown / mid-word, preventing visual glitches w/ markdown renderers. Animation timing derives from Astryx motion tokens via useTheme when available, w/ sensible fallbacks outside theme provider. Snaps to full text when isStreaming becomes false.',
@@ -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: 'useTreeFocus',
6
6
  displayName: 'useTreeFocus',
@@ -106,7 +106,7 @@ export const docs = {
106
106
  category: 'focus',
107
107
  };
108
108
 
109
- /** @type {import('../docs-types').HookTranslationDoc} */
109
+ /** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
110
110
  export const docsDense = {
111
111
  description:
112
112
  'Manages roving-tabindex focus + WAI-ARIA tree keyboard model. ArrowUp/Down/Home/End roam linearly over visible treeitems (skip disabled); ArrowRight/Left carry tree semantics (expand/collapse, move to first-child/parent). Enter/Space activate; printable chars trigger typeahead.',
@@ -35,10 +35,12 @@ function Tree({
35
35
  collapsed = NO_NODES,
36
36
  expanded = NO_NODES,
37
37
  onActivate,
38
+ dir,
38
39
  }: {
39
40
  collapsed?: Node[];
40
41
  expanded?: Node[];
41
42
  onActivate?: (id: string | undefined) => boolean | undefined;
43
+ dir?: 'ltr' | 'rtl';
42
44
  }) {
43
45
  const [isOpen, setIsOpen] = useState(false);
44
46
  const nodes = isOpen && expanded.length > 0 ? expanded : collapsed;
@@ -47,7 +49,7 @@ function Tree({
47
49
  onActivate: onActivate ? (_item, id) => onActivate(id) : undefined,
48
50
  });
49
51
  return (
50
- <ul ref={treeRef} role="tree" onKeyDown={handleKeyDown}>
52
+ <ul ref={treeRef} role="tree" dir={dir} onKeyDown={handleKeyDown}>
51
53
  {nodes.map(n => (
52
54
  <li
53
55
  key={n.id}
@@ -172,6 +174,56 @@ describe('useTreeFocus tree semantics (Arrow Left/Right)', () => {
172
174
  });
173
175
  });
174
176
 
177
+ describe('useTreeFocus RTL tree semantics (WAI-ARIA Tree View)', () => {
178
+ const COLLAPSED: Node[] = [
179
+ {id: 'p', label: 'Parent', level: 1, expanded: false},
180
+ ];
181
+ const EXPANDED: Node[] = [
182
+ {id: 'p', label: 'Parent', level: 1, expanded: true},
183
+ {id: 'c1', label: 'Child 1', level: 2},
184
+ {id: 'c2', label: 'Child 2', level: 2},
185
+ ];
186
+
187
+ it('auto-detects dir="rtl": ArrowLeft expands a collapsed parent, then enters the first child', () => {
188
+ render(<Tree collapsed={COLLAPSED} expanded={EXPANDED} dir="rtl" />);
189
+ const tree = screen.getByRole('tree');
190
+ screen.getByTestId('p').focus();
191
+
192
+ expect(screen.queryByTestId('c1')).not.toBeInTheDocument();
193
+ fireEvent.keyDown(tree, {key: 'ArrowLeft'}); // RTL: descend → expand
194
+ expect(screen.getByTestId('c1')).toBeInTheDocument();
195
+ expect(screen.getByTestId('p')).toHaveFocus();
196
+
197
+ fireEvent.keyDown(tree, {key: 'ArrowLeft'}); // RTL: descend → into first child
198
+ expect(screen.getByTestId('c1')).toHaveFocus();
199
+ });
200
+
201
+ it('auto-detects dir="rtl": ArrowRight moves to parent, then collapses', () => {
202
+ render(<Tree collapsed={COLLAPSED} expanded={EXPANDED} dir="rtl" />);
203
+ const tree = screen.getByRole('tree');
204
+ screen.getByTestId('p').focus();
205
+ fireEvent.keyDown(tree, {key: 'ArrowLeft'}); // expand
206
+ fireEvent.keyDown(tree, {key: 'ArrowLeft'}); // into child 1
207
+ expect(screen.getByTestId('c1')).toHaveFocus();
208
+
209
+ fireEvent.keyDown(tree, {key: 'ArrowRight'}); // RTL: ascend → child leaf → parent
210
+ expect(screen.getByTestId('p')).toHaveFocus();
211
+
212
+ fireEvent.keyDown(tree, {key: 'ArrowRight'}); // RTL: ascend → expanded parent → collapse
213
+ expect(screen.queryByTestId('c1')).not.toBeInTheDocument();
214
+ });
215
+
216
+ it('vertical keys (ArrowDown/ArrowUp) are unaffected by RTL', () => {
217
+ render(<Tree collapsed={FLAT} dir="rtl" />);
218
+ const tree = screen.getByRole('tree');
219
+ screen.getByTestId('a').focus();
220
+ fireEvent.keyDown(tree, {key: 'ArrowDown'});
221
+ expect(screen.getByTestId('b')).toHaveFocus();
222
+ fireEvent.keyDown(tree, {key: 'ArrowUp'});
223
+ expect(screen.getByTestId('a')).toHaveFocus();
224
+ });
225
+ });
226
+
175
227
  describe('useTreeFocus activation + typeahead', () => {
176
228
  it('Enter/Space call onActivate for the focused item', () => {
177
229
  const onActivate = vi.fn(() => true);
@@ -4,7 +4,7 @@
4
4
 
5
5
  /**
6
6
  * @file useTreeFocus.ts
7
- * @input Uses React useCallback, useRef, useIsomorphicLayoutEffect
7
+ * @input Uses React useCallback, useRef, useIsomorphicLayoutEffect, isRtlElement
8
8
  * @output Exports useTreeFocus hook for WAI-ARIA tree keyboard navigation
9
9
  * @position Core hook; used by TreeList for roving tabindex + APG tree keyboard model
10
10
  *
@@ -16,6 +16,7 @@
16
16
 
17
17
  import {useCallback, useRef} from 'react';
18
18
  import {useIsomorphicLayoutEffect} from './useIsomorphicLayoutEffect';
19
+ import {isRtlElement} from './isRtlElement';
19
20
 
20
21
  /** Keys handled by the tree keyboard model (used to gate typeahead). */
21
22
  const NAVIGATION_KEYS = new Set([
@@ -429,7 +430,17 @@ export function useTreeFocus<T extends HTMLElement = HTMLElement>(
429
430
  return;
430
431
  }
431
432
 
432
- switch (e.key) {
433
+ // Under RTL, swap the horizontal arrows to a logical key so the
434
+ // expand/collapse case bodies (written LTR-first) stay unchanged.
435
+ let key = e.key;
436
+ if (key === 'ArrowLeft' || key === 'ArrowRight') {
437
+ const rtl = isRtlElement(treeRef.current);
438
+ if (rtl) {
439
+ key = key === 'ArrowLeft' ? 'ArrowRight' : 'ArrowLeft';
440
+ }
441
+ }
442
+
443
+ switch (key) {
433
444
  case 'ArrowDown': {
434
445
  e.preventDefault();
435
446
  focusEnabledFrom(items, currentIndex < 0 ? 0 : currentIndex + 1, 1);
@@ -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: 'InternationalizationProvider',
@@ -128,7 +128,7 @@ export function AppI18n({children}: {children: ReactNode}) {
128
128
  ],
129
129
  };
130
130
 
131
- /** @type {import('../docs-types').TranslationDoc} */
131
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
132
132
  export const docsDense = {
133
133
  description:
134
134
  'Wraps app to set active locale and (optionally) merge translation catalogs + per-locale overrides. Astryx components resolve strings against this context; missing keys fall back to shipped English.',
@@ -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: 'useTranslator',
6
6
  displayName: 'useTranslator',
@@ -31,7 +31,7 @@ export const docs = {
31
31
  importPath: '@astryxdesign/core',
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:
37
37
  'Hook returning a translator function bound to the current InternationalizationProvider context. Call with an ICU MessageFormat key and values to get the formatted string for the active locale.',
package/src/index.ts CHANGED
@@ -168,25 +168,29 @@ export * from './hooks';
168
168
  export * from './utils';
169
169
 
170
170
  // Theme
171
+ export type {TextColorMap} from './Text';
171
172
  export * from './theme';
172
173
 
173
174
  // Internationalization
174
175
  export * from './i18n';
175
176
 
176
- // Doc types — for external library authors writing .doc.mjs files
177
+ // Doc types — for external library authors writing .doc.mjs files.
178
+ // @deprecated Import these from `@astryxdesign/cli/authoring` instead. These
179
+ // re-exports are kept for one release cycle and will be removed; `astryx upgrade`
180
+ // repoints them automatically.
177
181
  export type {
178
182
  ComponentDoc,
179
183
  SingleComponentDoc,
180
184
  MultiComponentDoc,
181
- PropDoc,
185
+ ComponentPropDoc,
182
186
  ComponentEntry,
183
- ThemingTarget,
184
- ComponentVar,
185
- DerivedVar,
186
- TranslationDoc,
187
- GroupDoc,
187
+ ComponentThemingTarget,
188
+ ComponentThemingVar,
189
+ ComponentThemingDerivedVar,
190
+ ComponentTranslationDoc,
191
+ ComponentGroupDoc,
188
192
  ReferenceDoc,
189
193
  ReferenceSection,
190
- ContentBlock,
191
- TokenPreviewType,
192
- } from './docs-types';
194
+ ReferenceContentBlock,
195
+ ReferenceTokenPreviewType,
196
+ } from '@astryxdesign/cli/authoring';
@@ -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: 'MediaTheme',
@@ -100,7 +100,7 @@ export const docs = {
100
100
  ],
101
101
  };
102
102
 
103
- /** @type {import('../docs-types').TranslationDoc} */
103
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
104
104
  export const docsDense = {
105
105
  usage: {
106
106
  description:
@@ -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: 'SyntaxTheme',
@@ -74,7 +74,7 @@ export const docs = {
74
74
  ],
75
75
  };
76
76
 
77
- /** @type {import('../docs-types').TranslationDoc} */
77
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
78
78
  export const docsDense = {
79
79
  usage: {
80
80
  description:
@@ -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: 'Theme',
@@ -86,7 +86,7 @@ export const docs = {
86
86
  ],
87
87
  };
88
88
 
89
- /** @type {import('../docs-types').TranslationDoc} */
89
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
90
90
  export const docsDense = {
91
91
  usage: {
92
92
  description: