@astryxdesign/core 0.2.0 → 0.3.0-canary.041a0ef

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 (1168) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/README.md +5 -3
  3. package/dist/AlertDialog/AlertDialog.d.ts +1 -1
  4. package/dist/AlertDialog/AlertDialog.js +1 -1
  5. package/dist/AppShell/AppShell.d.ts +2 -20
  6. package/dist/AppShell/AppShell.d.ts.map +1 -1
  7. package/dist/AppShell/AppShell.js +25 -18
  8. package/dist/AppShell/index.d.ts +20 -1
  9. package/dist/AppShell/index.d.ts.map +1 -1
  10. package/dist/AppShell/index.js +14 -0
  11. package/dist/AspectRatio/AspectRatio.d.ts +1 -1
  12. package/dist/AspectRatio/AspectRatio.js +1 -1
  13. package/dist/Avatar/Avatar.d.ts +1 -1
  14. package/dist/Avatar/Avatar.d.ts.map +1 -1
  15. package/dist/Avatar/Avatar.js +37 -24
  16. package/dist/Avatar/AvatarStatusDot.d.ts +2 -26
  17. package/dist/Avatar/AvatarStatusDot.d.ts.map +1 -1
  18. package/dist/Avatar/AvatarStatusDot.js +1 -22
  19. package/dist/Avatar/index.d.ts +26 -1
  20. package/dist/Avatar/index.d.ts.map +1 -1
  21. package/dist/Avatar/index.js +21 -0
  22. package/dist/AvatarGroup/AvatarGroup.d.ts +1 -1
  23. package/dist/AvatarGroup/AvatarGroup.d.ts.map +1 -1
  24. package/dist/AvatarGroup/AvatarGroup.js +4 -8
  25. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts +2 -2
  26. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
  27. package/dist/AvatarGroup/AvatarGroupOverflow.js +9 -6
  28. package/dist/Badge/Badge.d.ts +2 -30
  29. package/dist/Badge/Badge.d.ts.map +1 -1
  30. package/dist/Badge/Badge.js +2 -17
  31. package/dist/Badge/index.d.ts +31 -2
  32. package/dist/Badge/index.d.ts.map +1 -1
  33. package/dist/Badge/index.js +15 -1
  34. package/dist/Banner/Banner.d.ts +2 -37
  35. package/dist/Banner/Banner.d.ts.map +1 -1
  36. package/dist/Banner/Banner.js +21 -48
  37. package/dist/Banner/index.d.ts +37 -1
  38. package/dist/Banner/index.d.ts.map +1 -1
  39. package/dist/Banner/index.js +27 -0
  40. package/dist/Blockquote/Blockquote.d.ts +1 -1
  41. package/dist/Blockquote/Blockquote.js +1 -1
  42. package/dist/Breadcrumbs/BreadcrumbItem.d.ts +1 -1
  43. package/dist/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
  44. package/dist/Breadcrumbs/BreadcrumbItem.js +22 -8
  45. package/dist/Breadcrumbs/Breadcrumbs.d.ts +2 -18
  46. package/dist/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  47. package/dist/Breadcrumbs/Breadcrumbs.js +1 -15
  48. package/dist/Breadcrumbs/index.d.ts +18 -1
  49. package/dist/Breadcrumbs/index.d.ts.map +1 -1
  50. package/dist/Breadcrumbs/index.js +14 -0
  51. package/dist/Button/Button.d.ts +3 -21
  52. package/dist/Button/Button.d.ts.map +1 -1
  53. package/dist/Button/Button.js +17 -34
  54. package/dist/Button/index.d.ts +21 -3
  55. package/dist/Button/index.d.ts.map +1 -1
  56. package/dist/Button/index.js +15 -1
  57. package/dist/ButtonGroup/ButtonGroup.d.ts +1 -1
  58. package/dist/ButtonGroup/ButtonGroup.js +1 -1
  59. package/dist/Calendar/Calendar.d.ts.map +1 -1
  60. package/dist/Calendar/Calendar.js +3 -2
  61. package/dist/Calendar/index.d.ts +1 -1
  62. package/dist/Calendar/index.d.ts.map +1 -1
  63. package/dist/Calendar/index.js +1 -1
  64. package/dist/Calendar/styles.d.ts +2 -4
  65. package/dist/Calendar/styles.d.ts.map +1 -1
  66. package/dist/Calendar/styles.js +2 -4
  67. package/dist/Calendar/utils.d.ts +0 -4
  68. package/dist/Calendar/utils.d.ts.map +1 -1
  69. package/dist/Calendar/utils.js +1 -8
  70. package/dist/Card/Card.d.ts +1 -1
  71. package/dist/Card/Card.js +1 -1
  72. package/dist/Carousel/Carousel.d.ts +54 -3
  73. package/dist/Carousel/Carousel.d.ts.map +1 -1
  74. package/dist/Carousel/Carousel.js +90 -27
  75. package/dist/Carousel/index.d.ts +1 -1
  76. package/dist/Carousel/index.d.ts.map +1 -1
  77. package/dist/Center/Center.d.ts +21 -4
  78. package/dist/Center/Center.d.ts.map +1 -1
  79. package/dist/Center/Center.js +11 -3
  80. package/dist/Chat/ChatComposer.d.ts +1 -1
  81. package/dist/Chat/ChatComposer.js +9 -9
  82. package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
  83. package/dist/Chat/ChatComposerDrawer.js +5 -5
  84. package/dist/Chat/ChatComposerInput.d.ts +1 -1
  85. package/dist/Chat/ChatComposerInput.js +1 -1
  86. package/dist/Chat/ChatDictationButton.d.ts +1 -1
  87. package/dist/Chat/ChatDictationButton.js +1 -1
  88. package/dist/Chat/ChatLayout.d.ts +8 -1
  89. package/dist/Chat/ChatLayout.d.ts.map +1 -1
  90. package/dist/Chat/ChatLayout.js +15 -4
  91. package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
  92. package/dist/Chat/ChatLayoutScrollButton.d.ts.map +1 -1
  93. package/dist/Chat/ChatLayoutScrollButton.js +2 -1
  94. package/dist/Chat/ChatMessage.d.ts +1 -1
  95. package/dist/Chat/ChatMessage.js +1 -1
  96. package/dist/Chat/ChatMessageBubble.d.ts +1 -1
  97. package/dist/Chat/ChatMessageBubble.js +1 -1
  98. package/dist/Chat/ChatMessageList.d.ts +1 -1
  99. package/dist/Chat/ChatMessageList.js +1 -1
  100. package/dist/Chat/ChatSendButton.d.ts.map +1 -1
  101. package/dist/Chat/ChatSendButton.js +4 -2
  102. package/dist/Chat/ChatSystemMessage.d.ts +1 -1
  103. package/dist/Chat/ChatSystemMessage.js +1 -1
  104. package/dist/Chat/ChatTokenizedText.d.ts +1 -1
  105. package/dist/Chat/ChatTokenizedText.js +1 -1
  106. package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
  107. package/dist/Chat/ChatToolCalls.js +17 -17
  108. package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
  109. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  110. package/dist/CheckboxInput/CheckboxInput.js +3 -3
  111. package/dist/CheckboxList/CheckboxList.d.ts +1 -1
  112. package/dist/CheckboxList/CheckboxList.js +1 -1
  113. package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
  114. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  115. package/dist/CheckboxList/CheckboxListItem.js +20 -5
  116. package/dist/Citation/Citation.d.ts +1 -1
  117. package/dist/Citation/Citation.js +1 -1
  118. package/dist/ClickableCard/ClickableCard.d.ts +3 -3
  119. package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
  120. package/dist/ClickableCard/ClickableCard.js +6 -14
  121. package/dist/Code/Code.d.ts +2 -2
  122. package/dist/Code/Code.js +2 -2
  123. package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
  124. package/dist/CodeBlock/CodeBlock.js +35 -18
  125. package/dist/Collapsible/Collapsible.d.ts +1 -1
  126. package/dist/Collapsible/Collapsible.d.ts.map +1 -1
  127. package/dist/Collapsible/Collapsible.js +36 -16
  128. package/dist/Collapsible/CollapsibleGroup.d.ts +1 -1
  129. package/dist/Collapsible/CollapsibleGroup.js +1 -1
  130. package/dist/Collapsible/CollapsibleGroupContext.js +1 -1
  131. package/dist/CommandPalette/CommandPalette.d.ts +1 -1
  132. package/dist/CommandPalette/CommandPalette.js +1 -1
  133. package/dist/CommandPalette/CommandPaletteEmpty.js +1 -1
  134. package/dist/CommandPalette/CommandPaletteFooter.js +1 -1
  135. package/dist/CommandPalette/CommandPaletteGroup.js +1 -1
  136. package/dist/CommandPalette/CommandPaletteInput.d.ts +2 -2
  137. package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
  138. package/dist/CommandPalette/CommandPaletteInput.js +4 -2
  139. package/dist/CommandPalette/CommandPaletteItem.d.ts +1 -1
  140. package/dist/CommandPalette/CommandPaletteItem.js +1 -1
  141. package/dist/CommandPalette/CommandPaletteList.js +1 -1
  142. package/dist/ComplexSelector/ComplexSelector.d.ts +108 -0
  143. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -0
  144. package/dist/ComplexSelector/ComplexSelector.js +310 -0
  145. package/dist/ComplexSelector/index.d.ts +7 -0
  146. package/dist/ComplexSelector/index.d.ts.map +1 -0
  147. package/dist/ComplexSelector/index.js +10 -0
  148. package/dist/ContextMenu/ContextMenu.d.ts +2 -2
  149. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  150. package/dist/ContextMenu/ContextMenu.js +24 -6
  151. package/dist/DateInput/DateInput.d.ts +9 -2
  152. package/dist/DateInput/DateInput.d.ts.map +1 -1
  153. package/dist/DateInput/DateInput.js +6 -3
  154. package/dist/DateRangeInput/DateRangeInput.d.ts +9 -2
  155. package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  156. package/dist/DateRangeInput/DateRangeInput.js +6 -3
  157. package/dist/DateTimeInput/DateTimeInput.d.ts +9 -1
  158. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  159. package/dist/DateTimeInput/DateTimeInput.js +6 -3
  160. package/dist/Dialog/Dialog.d.ts +33 -24
  161. package/dist/Dialog/Dialog.d.ts.map +1 -1
  162. package/dist/Dialog/Dialog.js +47 -31
  163. package/dist/Dialog/DialogHeader.d.ts +1 -1
  164. package/dist/Dialog/DialogHeader.js +1 -1
  165. package/dist/Dialog/index.d.ts +18 -1
  166. package/dist/Dialog/index.d.ts.map +1 -1
  167. package/dist/Dialog/index.js +14 -0
  168. package/dist/Divider/Divider.d.ts +2 -18
  169. package/dist/Divider/Divider.d.ts.map +1 -1
  170. package/dist/Divider/Divider.js +1 -15
  171. package/dist/Divider/index.d.ts +18 -1
  172. package/dist/Divider/index.d.ts.map +1 -1
  173. package/dist/Divider/index.js +14 -0
  174. package/dist/DropdownMenu/DropdownMenu.d.ts +28 -8
  175. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  176. package/dist/DropdownMenu/DropdownMenu.js +75 -23
  177. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +18 -12
  178. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  179. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +38 -63
  180. package/dist/DropdownMenu/DropdownMenuItem.d.ts +8 -3
  181. package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  182. package/dist/DropdownMenu/DropdownMenuItem.js +14 -5
  183. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts +8 -11
  184. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts.map +1 -1
  185. package/dist/DropdownMenu/DropdownMenuRadioGroup.js +3 -1
  186. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +1 -1
  187. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  188. package/dist/DropdownMenu/DropdownMenuRadioItem.js +6 -2
  189. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +1 -1
  190. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  191. package/dist/DropdownMenu/DropdownMenuSubMenu.js +14 -6
  192. package/dist/DropdownMenu/menuItemHover.d.ts +1 -0
  193. package/dist/DropdownMenu/menuItemHover.d.ts.map +1 -1
  194. package/dist/DropdownMenu/menuItemHover.js +1 -0
  195. package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
  196. package/dist/DropdownMenu/renderDropdownItems.js +27 -16
  197. package/dist/EmptyState/EmptyState.d.ts +1 -1
  198. package/dist/EmptyState/EmptyState.js +1 -1
  199. package/dist/Field/Field.d.ts +1 -1
  200. package/dist/Field/Field.js +1 -1
  201. package/dist/Field/FieldLabel.d.ts +4 -3
  202. package/dist/Field/FieldLabel.d.ts.map +1 -1
  203. package/dist/Field/FieldLabel.js +48 -5
  204. package/dist/FieldStatus/FieldStatus.d.ts +1 -18
  205. package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
  206. package/dist/FieldStatus/FieldStatus.js +13 -17
  207. package/dist/FieldStatus/index.d.ts +19 -1
  208. package/dist/FieldStatus/index.d.ts.map +1 -1
  209. package/dist/FieldStatus/index.js +14 -0
  210. package/dist/FileInput/FileInput.js +1 -1
  211. package/dist/FormLayout/FormLayout.d.ts +1 -1
  212. package/dist/FormLayout/FormLayout.d.ts.map +1 -1
  213. package/dist/FormLayout/FormLayout.js +1 -1
  214. package/dist/Grid/Grid.d.ts +2 -10
  215. package/dist/Grid/Grid.d.ts.map +1 -1
  216. package/dist/Grid/Grid.js +1 -10
  217. package/dist/Grid/GridSpan.d.ts +1 -1
  218. package/dist/Grid/GridSpan.js +1 -1
  219. package/dist/HStack/HStack.d.ts +1 -1
  220. package/dist/HStack/HStack.js +1 -1
  221. package/dist/Heading/Heading.d.ts +2 -2
  222. package/dist/Heading/Heading.d.ts.map +1 -1
  223. package/dist/Heading/Heading.js +5 -4
  224. package/dist/HoverCard/HoverCard.d.ts +1 -1
  225. package/dist/HoverCard/HoverCard.js +1 -1
  226. package/dist/Icon/Icon.d.ts +1 -1
  227. package/dist/Icon/Icon.d.ts.map +1 -1
  228. package/dist/Icon/Icon.js +4 -2
  229. package/dist/Icon/defaultIcons.d.ts.map +1 -1
  230. package/dist/Icon/defaultIcons.js +14 -0
  231. package/dist/Icon/globalIconRegistry.d.ts +48 -6
  232. package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
  233. package/dist/Icon/globalIconRegistry.js +74 -7
  234. package/dist/Icon/index.d.ts +4 -3
  235. package/dist/Icon/index.d.ts.map +1 -1
  236. package/dist/Icon/index.js +2 -1
  237. package/dist/Icon/useIcon.d.ts +14 -0
  238. package/dist/Icon/useIcon.d.ts.map +1 -0
  239. package/dist/Icon/useIcon.js +21 -0
  240. package/dist/IconButton/IconButton.d.ts +1 -1
  241. package/dist/IconButton/IconButton.js +1 -1
  242. package/dist/InputGroup/InputGroup.d.ts +1 -1
  243. package/dist/InputGroup/InputGroup.js +1 -1
  244. package/dist/InputGroup/InputGroupText.d.ts +1 -1
  245. package/dist/InputGroup/InputGroupText.js +1 -1
  246. package/dist/Item/Item.d.ts +17 -4
  247. package/dist/Item/Item.d.ts.map +1 -1
  248. package/dist/Item/Item.js +36 -15
  249. package/dist/Kbd/Kbd.d.ts +1 -1
  250. package/dist/Kbd/Kbd.js +1 -1
  251. package/dist/Layout/Layout.d.ts +1 -1
  252. package/dist/Layout/Layout.js +1 -1
  253. package/dist/Layout/LayoutContent.d.ts +1 -1
  254. package/dist/Layout/LayoutContent.js +1 -1
  255. package/dist/Layout/LayoutFooter.d.ts +1 -1
  256. package/dist/Layout/LayoutFooter.js +1 -1
  257. package/dist/Layout/LayoutHeader.d.ts +1 -1
  258. package/dist/Layout/LayoutHeader.js +1 -1
  259. package/dist/Layout/LayoutPanel.d.ts +1 -1
  260. package/dist/Layout/LayoutPanel.js +1 -1
  261. package/dist/Lightbox/Lightbox.d.ts +6 -4
  262. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  263. package/dist/Lightbox/Lightbox.js +173 -79
  264. package/dist/Link/Link.d.ts +1 -1
  265. package/dist/Link/Link.d.ts.map +1 -1
  266. package/dist/Link/Link.js +5 -6
  267. package/dist/Link/LinkProvider.d.ts +2 -2
  268. package/dist/Link/LinkProvider.js +2 -2
  269. package/dist/List/List.d.ts +1 -1
  270. package/dist/List/List.js +1 -1
  271. package/dist/List/ListItem.d.ts +12 -2
  272. package/dist/List/ListItem.d.ts.map +1 -1
  273. package/dist/List/ListItem.js +3 -1
  274. package/dist/Markdown/Markdown.d.ts.map +1 -1
  275. package/dist/Markdown/Markdown.js +35 -13
  276. package/dist/MetadataList/MetadataList.d.ts +2 -2
  277. package/dist/MetadataList/MetadataList.d.ts.map +1 -1
  278. package/dist/MetadataList/MetadataList.js +38 -12
  279. package/dist/MetadataList/MetadataListItem.d.ts +1 -1
  280. package/dist/MetadataList/MetadataListItem.js +1 -1
  281. package/dist/MobileNav/MobileNav.d.ts +1 -1
  282. package/dist/MobileNav/MobileNav.js +9 -9
  283. package/dist/MoreMenu/MoreMenu.d.ts +1 -1
  284. package/dist/MoreMenu/MoreMenu.js +3 -3
  285. package/dist/MultiSelector/MultiSelector.d.ts +13 -4
  286. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  287. package/dist/MultiSelector/MultiSelector.js +155 -54
  288. package/dist/NavIcon/NavIcon.d.ts +1 -1
  289. package/dist/NavIcon/NavIcon.js +1 -1
  290. package/dist/NavMenu/index.d.ts +0 -2
  291. package/dist/NavMenu/index.d.ts.map +1 -1
  292. package/dist/NavMenu/index.js +1 -3
  293. package/dist/NumberInput/NumberInput.d.ts +1 -1
  294. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  295. package/dist/NumberInput/NumberInput.js +19 -7
  296. package/dist/Outline/Outline.d.ts.map +1 -1
  297. package/dist/Outline/Outline.js +3 -4
  298. package/dist/OverflowList/OverflowList.d.ts +1 -1
  299. package/dist/OverflowList/OverflowList.js +1 -1
  300. package/dist/Pagination/Pagination.d.ts +26 -21
  301. package/dist/Pagination/Pagination.d.ts.map +1 -1
  302. package/dist/Pagination/Pagination.js +204 -78
  303. package/dist/Pagination/index.d.ts +22 -1
  304. package/dist/Pagination/index.d.ts.map +1 -1
  305. package/dist/Pagination/index.js +14 -0
  306. package/dist/Popover/Popover.d.ts +20 -3
  307. package/dist/Popover/Popover.d.ts.map +1 -1
  308. package/dist/Popover/Popover.js +5 -1
  309. package/dist/Popover/usePopover.d.ts.map +1 -1
  310. package/dist/Popover/usePopover.js +14 -3
  311. package/dist/PowerSearch/PowerSearch.d.ts +1 -1
  312. package/dist/PowerSearch/PowerSearch.js +1 -1
  313. package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
  314. package/dist/PowerSearch/PowerSearchEditPopover.js +7 -0
  315. package/dist/ProgressBar/ProgressBar.d.ts +56 -22
  316. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  317. package/dist/ProgressBar/ProgressBar.js +169 -22
  318. package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts +27 -0
  319. package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts.map +1 -0
  320. package/dist/ProgressBar/ProgressBarMarkTooltip.js +35 -0
  321. package/dist/ProgressBar/index.d.ts +21 -1
  322. package/dist/ProgressBar/index.d.ts.map +1 -1
  323. package/dist/ProgressBar/index.js +14 -0
  324. package/dist/RadioList/RadioList.d.ts +1 -1
  325. package/dist/RadioList/RadioList.js +1 -1
  326. package/dist/RadioList/RadioListItem.d.ts +1 -1
  327. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  328. package/dist/RadioList/RadioListItem.js +2 -2
  329. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  330. package/dist/Resizable/ResizeHandle.js +17 -14
  331. package/dist/Section/Section.d.ts +2 -19
  332. package/dist/Section/Section.d.ts.map +1 -1
  333. package/dist/Section/Section.js +1 -15
  334. package/dist/Section/index.d.ts +19 -1
  335. package/dist/Section/index.d.ts.map +1 -1
  336. package/dist/Section/index.js +14 -0
  337. package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
  338. package/dist/SegmentedControl/SegmentedControl.js +1 -1
  339. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  340. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  341. package/dist/SegmentedControl/SegmentedControlItem.js +6 -6
  342. package/dist/SelectableCard/SelectableCard.d.ts +4 -3
  343. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  344. package/dist/SelectableCard/SelectableCard.js +18 -14
  345. package/dist/Selector/Selector.d.ts +14 -4
  346. package/dist/Selector/Selector.d.ts.map +1 -1
  347. package/dist/Selector/Selector.js +247 -77
  348. package/dist/Selector/hooks.d.ts +18 -6
  349. package/dist/Selector/hooks.d.ts.map +1 -1
  350. package/dist/Selector/hooks.js +57 -40
  351. package/dist/SideNav/SideNav.d.ts +1 -1
  352. package/dist/SideNav/SideNav.d.ts.map +1 -1
  353. package/dist/SideNav/SideNav.js +2 -2
  354. package/dist/SideNav/SideNavCollapseButton.d.ts +2 -2
  355. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  356. package/dist/SideNav/SideNavCollapseButton.js +30 -14
  357. package/dist/SideNav/SideNavHeading.d.ts +1 -1
  358. package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
  359. package/dist/SideNav/SideNavHeading.js +57 -20
  360. package/dist/SideNav/SideNavItem.d.ts +2 -2
  361. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  362. package/dist/SideNav/SideNavItem.js +30 -25
  363. package/dist/SideNav/SideNavSection.d.ts +1 -1
  364. package/dist/SideNav/SideNavSection.js +1 -1
  365. package/dist/Skeleton/Skeleton.d.ts +1 -1
  366. package/dist/Skeleton/Skeleton.d.ts.map +1 -1
  367. package/dist/Skeleton/Skeleton.js +3 -3
  368. package/dist/Slider/Slider.d.ts.map +1 -1
  369. package/dist/Slider/Slider.js +78 -68
  370. package/dist/Spinner/Spinner.d.ts +1 -1
  371. package/dist/Spinner/Spinner.js +1 -1
  372. package/dist/Stack/Stack.d.ts +1 -1
  373. package/dist/Stack/Stack.js +1 -1
  374. package/dist/Stack/StackItem.d.ts +1 -1
  375. package/dist/Stack/StackItem.js +1 -1
  376. package/dist/Stack/stack.stylex.d.ts +3 -3
  377. package/dist/StatusDot/StatusDot.d.ts +1 -20
  378. package/dist/StatusDot/StatusDot.d.ts.map +1 -1
  379. package/dist/StatusDot/StatusDot.js +2 -17
  380. package/dist/StatusDot/index.d.ts +21 -1
  381. package/dist/StatusDot/index.d.ts.map +1 -1
  382. package/dist/StatusDot/index.js +14 -0
  383. package/dist/Switch/Switch.d.ts +2 -6
  384. package/dist/Switch/Switch.d.ts.map +1 -1
  385. package/dist/Switch/Switch.js +28 -20
  386. package/dist/TabList/Tab.d.ts +1 -1
  387. package/dist/TabList/Tab.d.ts.map +1 -1
  388. package/dist/TabList/Tab.js +3 -4
  389. package/dist/TabList/TabList.d.ts +1 -1
  390. package/dist/TabList/TabList.js +1 -1
  391. package/dist/TabList/TabMenu.d.ts +1 -1
  392. package/dist/TabList/TabMenu.d.ts.map +1 -1
  393. package/dist/TabList/TabMenu.js +52 -22
  394. package/dist/Table/BaseTable.d.ts +1 -1
  395. package/dist/Table/BaseTable.d.ts.map +1 -1
  396. package/dist/Table/BaseTable.js +4 -7
  397. package/dist/Table/Table.d.ts +1 -1
  398. package/dist/Table/Table.js +1 -1
  399. package/dist/Table/TableCell.d.ts +1 -1
  400. package/dist/Table/TableCell.js +4 -2
  401. package/dist/Table/TableHeaderCell.d.ts +1 -1
  402. package/dist/Table/TableHeaderCell.js +4 -2
  403. package/dist/Table/TableRow.d.ts +1 -1
  404. package/dist/Table/TableRow.js +1 -1
  405. package/dist/Table/index.d.ts +1 -1
  406. package/dist/Table/index.d.ts.map +1 -1
  407. package/dist/Table/index.js +1 -1
  408. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts +1 -1
  409. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts.map +1 -1
  410. package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +22 -18
  411. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +18 -3
  412. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  413. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +55 -43
  414. package/dist/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
  415. package/dist/Table/plugins/sortable/useTableSortable.js +23 -4
  416. package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
  417. package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
  418. package/dist/Table/plugins/tree/useTableTreeData.js +65 -35
  419. package/dist/Table/tableContextMenu.d.ts.map +1 -1
  420. package/dist/Table/tableContextMenu.js +2 -1
  421. package/dist/Table/types.d.ts +5 -9
  422. package/dist/Table/types.d.ts.map +1 -1
  423. package/dist/Text/Text.d.ts +11 -2
  424. package/dist/Text/Text.d.ts.map +1 -1
  425. package/dist/Text/Text.js +26 -3
  426. package/dist/Text/index.d.ts +31 -1
  427. package/dist/Text/index.d.ts.map +1 -1
  428. package/dist/Text/index.js +23 -0
  429. package/dist/TextArea/TextArea.d.ts +1 -1
  430. package/dist/TextArea/TextArea.d.ts.map +1 -1
  431. package/dist/TextArea/TextArea.js +111 -41
  432. package/dist/TextInput/TextInput.d.ts +1 -1
  433. package/dist/TextInput/TextInput.d.ts.map +1 -1
  434. package/dist/TextInput/TextInput.js +4 -3
  435. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  436. package/dist/Thumbnail/Thumbnail.js +28 -16
  437. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  438. package/dist/TimeInput/TimeInput.js +3 -2
  439. package/dist/Timestamp/Timestamp.d.ts +26 -12
  440. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  441. package/dist/Timestamp/Timestamp.js +128 -65
  442. package/dist/Timestamp/TimestampHoverCard.d.ts +45 -0
  443. package/dist/Timestamp/TimestampHoverCard.d.ts.map +1 -0
  444. package/dist/Timestamp/TimestampHoverCard.js +228 -0
  445. package/dist/Timestamp/formatInstant.d.ts +3 -3
  446. package/dist/Timestamp/formatInstant.d.ts.map +1 -1
  447. package/dist/Timestamp/formatInstant.js +7 -2
  448. package/dist/Timestamp/tooltipEntries.d.ts +17 -2
  449. package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
  450. package/dist/Timestamp/tooltipEntries.js +4 -2
  451. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  452. package/dist/Toast/ToastViewport.js +61 -9
  453. package/dist/ToggleButton/ToggleButton.d.ts +1 -1
  454. package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
  455. package/dist/ToggleButton/ToggleButton.js +4 -2
  456. package/dist/ToggleButton/ToggleButtonGroup.d.ts +1 -1
  457. package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  458. package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
  459. package/dist/Token/Token.d.ts +6 -28
  460. package/dist/Token/Token.d.ts.map +1 -1
  461. package/dist/Token/Token.js +84 -64
  462. package/dist/Token/TokenLink.d.ts +62 -0
  463. package/dist/Token/TokenLink.d.ts.map +1 -0
  464. package/dist/Token/TokenLink.js +76 -0
  465. package/dist/Token/index.d.ts +27 -1
  466. package/dist/Token/index.d.ts.map +1 -1
  467. package/dist/Token/index.js +14 -0
  468. package/dist/Tokenizer/Tokenizer.d.ts +1 -1
  469. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  470. package/dist/Tokenizer/Tokenizer.js +5 -3
  471. package/dist/Toolbar/Toolbar.d.ts +1 -1
  472. package/dist/Toolbar/Toolbar.js +1 -1
  473. package/dist/Tooltip/Tooltip.d.ts +1 -1
  474. package/dist/Tooltip/Tooltip.js +1 -1
  475. package/dist/TopNav/TopNav.d.ts +1 -1
  476. package/dist/TopNav/TopNav.d.ts.map +1 -1
  477. package/dist/TopNav/TopNav.js +7 -6
  478. package/dist/TopNav/TopNavHeading.d.ts +2 -8
  479. package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
  480. package/dist/TopNav/TopNavHeading.js +56 -20
  481. package/dist/TopNav/TopNavItem.d.ts +1 -1
  482. package/dist/TopNav/TopNavItem.d.ts.map +1 -1
  483. package/dist/TopNav/TopNavItem.js +4 -10
  484. package/dist/TopNav/TopNavMegaMenu.d.ts +1 -1
  485. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  486. package/dist/TopNav/TopNavMegaMenu.js +89 -42
  487. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
  488. package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +1 -1
  489. package/dist/TopNav/TopNavMegaMenuItem.d.ts +1 -1
  490. package/dist/TopNav/TopNavMegaMenuItem.d.ts.map +1 -1
  491. package/dist/TopNav/TopNavMegaMenuItem.js +23 -4
  492. package/dist/TopNav/TopNavMenu.d.ts +1 -1
  493. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  494. package/dist/TopNav/TopNavMenu.js +84 -33
  495. package/dist/TreeList/TreeList.d.ts +1 -1
  496. package/dist/TreeList/TreeList.d.ts.map +1 -1
  497. package/dist/TreeList/TreeList.js +14 -1
  498. package/dist/TreeList/TreeListBranches.d.ts +1 -1
  499. package/dist/TreeList/TreeListBranches.d.ts.map +1 -1
  500. package/dist/TreeList/TreeListBranches.js +15 -5
  501. package/dist/TreeList/TreeListItem.d.ts +12 -2
  502. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  503. package/dist/TreeList/TreeListItem.js +58 -30
  504. package/dist/TreeList/TreeListTypes.d.ts +1 -17
  505. package/dist/TreeList/TreeListTypes.d.ts.map +1 -1
  506. package/dist/TreeList/index.d.ts +18 -1
  507. package/dist/TreeList/index.d.ts.map +1 -1
  508. package/dist/TreeList/index.js +14 -0
  509. package/dist/Typeahead/BaseTypeahead.d.ts +10 -1
  510. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  511. package/dist/Typeahead/BaseTypeahead.js +17 -3
  512. package/dist/Typeahead/Typeahead.d.ts +1 -1
  513. package/dist/Typeahead/Typeahead.d.ts.map +1 -1
  514. package/dist/Typeahead/Typeahead.js +9 -2
  515. package/dist/Typeahead/TypeaheadItem.d.ts +1 -1
  516. package/dist/Typeahead/TypeaheadItem.js +1 -1
  517. package/dist/VStack/VStack.d.ts +1 -1
  518. package/dist/VStack/VStack.js +1 -1
  519. package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  520. package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
  521. package/dist/astryx.css +143 -46
  522. package/dist/astryx.umd.js +52 -56
  523. package/dist/astryx.umd.js.map +4 -4
  524. package/dist/hooks/containerReveal.pool.stylex.d.ts +303 -0
  525. package/dist/hooks/containerReveal.pool.stylex.d.ts.map +1 -0
  526. package/dist/hooks/containerReveal.pool.stylex.js +292 -0
  527. package/dist/hooks/index.d.ts +2 -0
  528. package/dist/hooks/index.d.ts.map +1 -1
  529. package/dist/hooks/index.js +2 -1
  530. package/dist/hooks/useContainerReveal.d.ts +83 -0
  531. package/dist/hooks/useContainerReveal.d.ts.map +1 -0
  532. package/dist/hooks/useContainerReveal.js +123 -0
  533. package/dist/hooks/useGridFocus.d.ts +8 -6
  534. package/dist/hooks/useGridFocus.d.ts.map +1 -1
  535. package/dist/hooks/useInputContainer.d.ts.map +1 -1
  536. package/dist/hooks/useInputContainer.js +29 -1
  537. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  538. package/dist/hooks/useInputStatusIcon.js +11 -0
  539. package/dist/hooks/useKeyboardHint.d.ts +2 -2
  540. package/dist/hooks/useKeyboardHint.d.ts.map +1 -1
  541. package/dist/hooks/useKeyboardHint.js +5 -3
  542. package/dist/hooks/useListFocus.d.ts +8 -7
  543. package/dist/hooks/useListFocus.d.ts.map +1 -1
  544. package/dist/hooks/useLongPress.d.ts.map +1 -1
  545. package/dist/hooks/useLongPress.js +12 -2
  546. package/dist/hooks/useStreamingText.d.ts +18 -3
  547. package/dist/hooks/useStreamingText.d.ts.map +1 -1
  548. package/dist/hooks/useStreamingText.js +47 -7
  549. package/dist/hooks/useTreeFocus.d.ts.map +1 -1
  550. package/dist/hooks/useTreeFocus.js +13 -2
  551. package/dist/hooks/useTypeahead.d.ts +3 -2
  552. package/dist/hooks/useTypeahead.d.ts.map +1 -1
  553. package/dist/hooks/useTypeahead.js +19 -7
  554. package/dist/i18n/InternationalizationProvider.d.ts +6 -0
  555. package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
  556. package/dist/i18n/useDirection.d.ts.map +1 -1
  557. package/dist/i18n/useDirection.js +6 -3
  558. package/dist/index.d.ts +2 -1
  559. package/dist/index.d.ts.map +1 -1
  560. package/dist/index.js +3 -3
  561. package/dist/theme/Theme.d.ts.map +1 -1
  562. package/dist/theme/Theme.js +2 -7
  563. package/dist/theme/contrast.d.ts +45 -0
  564. package/dist/theme/contrast.d.ts.map +1 -0
  565. package/dist/theme/contrast.js +88 -0
  566. package/dist/theme/defineTheme.d.ts +9 -3
  567. package/dist/theme/defineTheme.d.ts.map +1 -1
  568. package/dist/theme/defineTheme.js +6 -4
  569. package/dist/theme/derivedVarRegistry.d.ts +8 -0
  570. package/dist/theme/derivedVarRegistry.d.ts.map +1 -1
  571. package/dist/theme/derivedVarRegistry.js +5 -13
  572. package/dist/theme/expandColorScale.d.ts +32 -3
  573. package/dist/theme/expandColorScale.d.ts.map +1 -1
  574. package/dist/theme/expandColorScale.js +102 -13
  575. package/dist/theme/expandTypeScale.d.ts.map +1 -1
  576. package/dist/theme/expandTypeScale.js +17 -0
  577. package/dist/theme/generateThemeRules.d.ts +0 -6
  578. package/dist/theme/generateThemeRules.d.ts.map +1 -1
  579. package/dist/theme/generateThemeRules.js +11 -15
  580. package/dist/theme/index.d.ts +9 -7
  581. package/dist/theme/index.d.ts.map +1 -1
  582. package/dist/theme/index.js +4 -3
  583. package/dist/theme/themeRegistry.d.ts +32 -0
  584. package/dist/theme/themeRegistry.d.ts.map +1 -0
  585. package/dist/theme/themeRegistry.js +49 -0
  586. package/dist/theme/tokens.stylex.d.ts +0 -17
  587. package/dist/theme/tokens.stylex.d.ts.map +1 -1
  588. package/dist/theme/tokens.stylex.js +0 -22
  589. package/dist/theme/types.d.ts +10 -2
  590. package/dist/theme/types.d.ts.map +1 -1
  591. package/dist/theme/useTheme.d.ts +9 -0
  592. package/dist/theme/useTheme.d.ts.map +1 -1
  593. package/dist/theme/useTheme.js +82 -27
  594. package/dist/utils/focusOutline.stylex.d.ts +74 -0
  595. package/dist/utils/focusOutline.stylex.d.ts.map +1 -0
  596. package/dist/utils/focusOutline.stylex.js +95 -0
  597. package/dist/utils/rtlStyles.d.ts +23 -2
  598. package/dist/utils/rtlStyles.d.ts.map +1 -1
  599. package/dist/utils/rtlStyles.js +28 -3
  600. package/groups.doc.mjs +2 -2
  601. package/locales/en.json +128 -0
  602. package/locales/pseudo.json +96 -0
  603. package/package.json +9 -13
  604. package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
  605. package/src/AlertDialog/AlertDialog.tsx +1 -1
  606. package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
  607. package/src/AppShell/AppShell.doc.mjs +3 -3
  608. package/src/AppShell/AppShell.test.tsx +55 -0
  609. package/src/AppShell/AppShell.tsx +27 -22
  610. package/src/AppShell/index.ts +20 -1
  611. package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
  612. package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
  613. package/src/AspectRatio/AspectRatio.tsx +1 -1
  614. package/src/Avatar/Avatar.doc.mjs +5 -16
  615. package/src/Avatar/Avatar.test.tsx +33 -8
  616. package/src/Avatar/Avatar.tsx +60 -53
  617. package/src/Avatar/AvatarStatusDot.doc.mjs +1 -1
  618. package/src/Avatar/AvatarStatusDot.tsx +2 -27
  619. package/src/Avatar/index.ts +26 -1
  620. package/src/AvatarGroup/AvatarGroup.doc.mjs +3 -3
  621. package/src/AvatarGroup/AvatarGroup.test.tsx +21 -1
  622. package/src/AvatarGroup/AvatarGroup.tsx +3 -7
  623. package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
  624. package/src/AvatarGroup/AvatarGroupOverflow.tsx +7 -12
  625. package/src/Badge/Badge.doc.mjs +3 -3
  626. package/src/Badge/Badge.tsx +2 -31
  627. package/src/Badge/index.ts +32 -6
  628. package/src/Banner/Banner.doc.mjs +3 -3
  629. package/src/Banner/Banner.tsx +17 -51
  630. package/src/Banner/index.ts +39 -7
  631. package/src/Blockquote/Blockquote.doc.mjs +3 -3
  632. package/src/Blockquote/Blockquote.tsx +1 -1
  633. package/src/Breadcrumbs/BreadcrumbItem.doc.mjs +1 -1
  634. package/src/Breadcrumbs/BreadcrumbItem.tsx +17 -5
  635. package/src/Breadcrumbs/Breadcrumbs.doc.mjs +3 -3
  636. package/src/Breadcrumbs/Breadcrumbs.test.tsx +1 -1
  637. package/src/Breadcrumbs/Breadcrumbs.tsx +2 -19
  638. package/src/Breadcrumbs/index.ts +19 -5
  639. package/src/Button/Button.doc.mjs +3 -3
  640. package/src/Button/Button.test.tsx +16 -0
  641. package/src/Button/Button.tsx +27 -64
  642. package/src/Button/index.ts +22 -7
  643. package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -3
  644. package/src/ButtonGroup/ButtonGroup.tsx +1 -1
  645. package/src/Calendar/Calendar.doc.mjs +3 -3
  646. package/src/Calendar/Calendar.test.tsx +22 -6
  647. package/src/Calendar/Calendar.tsx +3 -2
  648. package/src/Calendar/index.ts +1 -6
  649. package/src/Calendar/styles.ts +2 -10
  650. package/src/Calendar/utils.ts +0 -11
  651. package/src/Card/Card.doc.mjs +3 -3
  652. package/src/Card/Card.tsx +1 -1
  653. package/src/Carousel/Carousel.doc.mjs +13 -3
  654. package/src/Carousel/Carousel.test.tsx +232 -1
  655. package/src/Carousel/Carousel.tsx +154 -27
  656. package/src/Carousel/index.ts +1 -1
  657. package/src/Center/Center.doc.mjs +41 -3
  658. package/src/Center/Center.test.tsx +75 -0
  659. package/src/Center/Center.tsx +38 -3
  660. package/src/Chat/Chat.doc.mjs +3 -3
  661. package/src/Chat/ChatComposer.doc.mjs +1 -1
  662. package/src/Chat/ChatComposer.tsx +5 -5
  663. package/src/Chat/ChatComposerDrawer.doc.mjs +1 -1
  664. package/src/Chat/ChatComposerDrawer.tsx +5 -5
  665. package/src/Chat/ChatComposerInput.doc.mjs +1 -1
  666. package/src/Chat/ChatComposerInput.tsx +1 -1
  667. package/src/Chat/ChatComposerTokenElement.doc.mjs +1 -1
  668. package/src/Chat/ChatDictationButton.doc.mjs +3 -3
  669. package/src/Chat/ChatDictationButton.tsx +1 -1
  670. package/src/Chat/ChatLayout.doc.mjs +1 -1
  671. package/src/Chat/ChatLayout.test.tsx +57 -0
  672. package/src/Chat/ChatLayout.tsx +23 -2
  673. package/src/Chat/ChatLayoutScrollButton.doc.mjs +1 -1
  674. package/src/Chat/ChatLayoutScrollButton.test.tsx +22 -0
  675. package/src/Chat/ChatLayoutScrollButton.tsx +2 -1
  676. package/src/Chat/ChatMessage.doc.mjs +1 -1
  677. package/src/Chat/ChatMessage.tsx +1 -1
  678. package/src/Chat/ChatMessageBubble.doc.mjs +1 -1
  679. package/src/Chat/ChatMessageBubble.tsx +1 -1
  680. package/src/Chat/ChatMessageList.doc.mjs +1 -1
  681. package/src/Chat/ChatMessageList.tsx +1 -1
  682. package/src/Chat/ChatMessageMetadata.doc.mjs +1 -1
  683. package/src/Chat/ChatSendButton.doc.mjs +1 -1
  684. package/src/Chat/ChatSendButton.tsx +5 -3
  685. package/src/Chat/ChatSystemMessage.doc.mjs +1 -1
  686. package/src/Chat/ChatSystemMessage.tsx +1 -1
  687. package/src/Chat/ChatTokenizedText.doc.mjs +1 -1
  688. package/src/Chat/ChatTokenizedText.tsx +1 -1
  689. package/src/Chat/ChatToolCalls.doc.mjs +3 -3
  690. package/src/Chat/ChatToolCalls.test.tsx +35 -0
  691. package/src/Chat/ChatToolCalls.tsx +36 -16
  692. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
  693. package/src/CheckboxInput/CheckboxInput.test.tsx +56 -0
  694. package/src/CheckboxInput/CheckboxInput.tsx +18 -3
  695. package/src/CheckboxList/CheckboxList.doc.mjs +3 -3
  696. package/src/CheckboxList/CheckboxList.test.tsx +94 -3
  697. package/src/CheckboxList/CheckboxList.tsx +1 -1
  698. package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
  699. package/src/CheckboxList/CheckboxListItem.tsx +18 -11
  700. package/src/Citation/Citation.doc.mjs +2 -2
  701. package/src/Citation/Citation.tsx +1 -1
  702. package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
  703. package/src/ClickableCard/ClickableCard.tsx +9 -14
  704. package/src/Code/Code.tsx +2 -2
  705. package/src/CodeBlock/Code.doc.mjs +1 -1
  706. package/src/CodeBlock/CodeBlock.doc.mjs +3 -3
  707. package/src/CodeBlock/CodeBlock.test.tsx +17 -0
  708. package/src/CodeBlock/CodeBlock.tsx +18 -17
  709. package/src/Collapsible/Collapsible.doc.mjs +3 -3
  710. package/src/Collapsible/Collapsible.tsx +23 -19
  711. package/src/Collapsible/CollapsibleGroup.doc.mjs +1 -1
  712. package/src/Collapsible/CollapsibleGroup.tsx +1 -1
  713. package/src/Collapsible/CollapsibleGroupContext.tsx +1 -1
  714. package/src/Collapsible/useCollapsible.doc.mjs +2 -2
  715. package/src/CommandPalette/CommandPalette.doc.mjs +4 -4
  716. package/src/CommandPalette/CommandPalette.test.tsx +29 -0
  717. package/src/CommandPalette/CommandPalette.tsx +1 -1
  718. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +1 -1
  719. package/src/CommandPalette/CommandPaletteEmpty.tsx +1 -1
  720. package/src/CommandPalette/CommandPaletteFooter.doc.mjs +1 -1
  721. package/src/CommandPalette/CommandPaletteFooter.tsx +1 -1
  722. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +1 -1
  723. package/src/CommandPalette/CommandPaletteGroup.test.tsx +6 -2
  724. package/src/CommandPalette/CommandPaletteGroup.tsx +1 -1
  725. package/src/CommandPalette/CommandPaletteInput.doc.mjs +1 -1
  726. package/src/CommandPalette/CommandPaletteInput.tsx +5 -1
  727. package/src/CommandPalette/CommandPaletteItem.doc.mjs +1 -1
  728. package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
  729. package/src/CommandPalette/CommandPaletteList.doc.mjs +1 -1
  730. package/src/CommandPalette/CommandPaletteList.tsx +1 -1
  731. package/src/ComplexSelector/ComplexSelector.doc.mjs +220 -0
  732. package/src/ComplexSelector/ComplexSelector.test.tsx +181 -0
  733. package/src/ComplexSelector/ComplexSelector.tsx +443 -0
  734. package/src/ComplexSelector/index.ts +17 -0
  735. package/src/ContextMenu/ContextMenu.doc.mjs +4 -4
  736. package/src/ContextMenu/ContextMenu.test.tsx +38 -2
  737. package/src/ContextMenu/ContextMenu.tsx +27 -6
  738. package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
  739. package/src/DateInput/DateInput.doc.mjs +19 -4
  740. package/src/DateInput/DateInput.test.tsx +79 -3
  741. package/src/DateInput/DateInput.tsx +23 -3
  742. package/src/DateRangeInput/DateRangeInput.doc.mjs +11 -3
  743. package/src/DateRangeInput/DateRangeInput.test.tsx +97 -2
  744. package/src/DateRangeInput/DateRangeInput.tsx +19 -2
  745. package/src/DateTimeInput/DateTimeInput.doc.mjs +19 -5
  746. package/src/DateTimeInput/DateTimeInput.test.tsx +81 -2
  747. package/src/DateTimeInput/DateTimeInput.tsx +19 -2
  748. package/src/Dialog/Dialog.doc.mjs +7 -5
  749. package/src/Dialog/Dialog.test.tsx +46 -3
  750. package/src/Dialog/Dialog.tsx +63 -53
  751. package/src/Dialog/DialogHeader.doc.mjs +1 -1
  752. package/src/Dialog/DialogHeader.tsx +1 -1
  753. package/src/Dialog/index.ts +18 -1
  754. package/src/Dialog/useImperativeDialog.doc.mjs +1 -1
  755. package/src/Divider/Divider.doc.mjs +3 -3
  756. package/src/Divider/Divider.tsx +2 -19
  757. package/src/Divider/index.ts +19 -5
  758. package/src/DropdownMenu/DropdownMenu.doc.mjs +22 -7
  759. package/src/DropdownMenu/DropdownMenu.test.tsx +405 -1
  760. package/src/DropdownMenu/DropdownMenu.tsx +117 -50
  761. package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +1 -1
  762. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +41 -64
  763. package/src/DropdownMenu/DropdownMenuItem.doc.mjs +25 -5
  764. package/src/DropdownMenu/DropdownMenuItem.tsx +34 -7
  765. package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +5 -13
  766. package/src/DropdownMenu/DropdownMenuRadioGroup.tsx +9 -10
  767. package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
  768. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +11 -2
  769. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +84 -2
  770. package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +1 -1
  771. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +90 -15
  772. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +24 -8
  773. package/src/DropdownMenu/menuItemHover.ts +1 -0
  774. package/src/DropdownMenu/renderDropdownItems.tsx +31 -21
  775. package/src/EmptyState/EmptyState.doc.mjs +3 -3
  776. package/src/EmptyState/EmptyState.tsx +1 -1
  777. package/src/Field/Field.doc.mjs +7 -3
  778. package/src/Field/Field.tsx +1 -1
  779. package/src/Field/FieldLabel.doc.mjs +1 -1
  780. package/src/Field/FieldLabel.test.tsx +103 -0
  781. package/src/Field/FieldLabel.tsx +61 -5
  782. package/src/FieldStatus/FieldStatus.doc.mjs +3 -2
  783. package/src/FieldStatus/FieldStatus.test.tsx +61 -0
  784. package/src/FieldStatus/FieldStatus.tsx +16 -23
  785. package/src/FieldStatus/index.ts +20 -5
  786. package/src/FileInput/FileInput.doc.mjs +3 -3
  787. package/src/FileInput/FileInput.tsx +1 -1
  788. package/src/FormLayout/FormLayout.doc.mjs +3 -3
  789. package/src/FormLayout/FormLayout.tsx +2 -5
  790. package/src/Grid/Grid.doc.mjs +3 -8
  791. package/src/Grid/Grid.tsx +1 -25
  792. package/src/Grid/GridSpan.doc.mjs +1 -1
  793. package/src/Grid/GridSpan.tsx +1 -1
  794. package/src/HStack/HStack.tsx +1 -1
  795. package/src/Heading/Heading.tsx +4 -3
  796. package/src/HoverCard/HoverCard.doc.mjs +3 -3
  797. package/src/HoverCard/HoverCard.tsx +1 -1
  798. package/src/HoverCard/useHoverCard.doc.mjs +2 -2
  799. package/src/Icon/Icon.doc.mjs +8 -6
  800. package/src/Icon/Icon.test.tsx +23 -0
  801. package/src/Icon/Icon.tsx +4 -2
  802. package/src/Icon/defaultIcons.tsx +14 -0
  803. package/src/Icon/globalIconRegistry.test.tsx +87 -1
  804. package/src/Icon/globalIconRegistry.tsx +111 -9
  805. package/src/Icon/index.ts +9 -7
  806. package/src/Icon/useIcon.ts +23 -0
  807. package/src/IconButton/IconButton.doc.mjs +2 -2
  808. package/src/IconButton/IconButton.tsx +1 -1
  809. package/src/InputGroup/InputGroup.doc.mjs +2 -2
  810. package/src/InputGroup/InputGroup.tsx +1 -1
  811. package/src/InputGroup/InputGroupText.doc.mjs +1 -1
  812. package/src/InputGroup/InputGroupText.tsx +1 -1
  813. package/src/Item/Item.doc.mjs +8 -3
  814. package/src/Item/Item.test.tsx +88 -0
  815. package/src/Item/Item.tsx +65 -26
  816. package/src/Kbd/Kbd.doc.mjs +3 -3
  817. package/src/Kbd/Kbd.tsx +1 -1
  818. package/src/Layer/Layer.doc.mjs +2 -2
  819. package/src/Layer/useLayer.doc.mjs +2 -2
  820. package/src/Layout/Layout.doc.mjs +3 -3
  821. package/src/Layout/Layout.tsx +1 -1
  822. package/src/Layout/LayoutContent.doc.mjs +1 -1
  823. package/src/Layout/LayoutContent.tsx +1 -1
  824. package/src/Layout/LayoutFooter.doc.mjs +1 -1
  825. package/src/Layout/LayoutFooter.tsx +1 -1
  826. package/src/Layout/LayoutHeader.doc.mjs +1 -1
  827. package/src/Layout/LayoutHeader.tsx +1 -1
  828. package/src/Layout/LayoutPanel.doc.mjs +1 -1
  829. package/src/Layout/LayoutPanel.tsx +1 -1
  830. package/src/Lightbox/Lightbox.doc.mjs +6 -6
  831. package/src/Lightbox/Lightbox.test.tsx +211 -0
  832. package/src/Lightbox/Lightbox.tsx +152 -60
  833. package/src/Link/Link.doc.mjs +3 -3
  834. package/src/Link/Link.tsx +5 -12
  835. package/src/Link/LinkProvider.doc.mjs +2 -2
  836. package/src/Link/LinkProvider.tsx +2 -2
  837. package/src/List/List.doc.mjs +3 -3
  838. package/src/List/List.tsx +1 -1
  839. package/src/List/ListItem.doc.mjs +13 -1
  840. package/src/List/ListItem.tsx +14 -1
  841. package/src/Markdown/Markdown.doc.mjs +81 -1
  842. package/src/Markdown/Markdown.test.tsx +92 -0
  843. package/src/Markdown/Markdown.tsx +96 -68
  844. package/src/Markdown/parser.perf.test.ts +47 -35
  845. package/src/MetadataList/MetadataList.doc.mjs +3 -3
  846. package/src/MetadataList/MetadataList.test.tsx +82 -0
  847. package/src/MetadataList/MetadataList.tsx +45 -20
  848. package/src/MetadataList/MetadataListItem.doc.mjs +1 -1
  849. package/src/MetadataList/MetadataListItem.tsx +1 -1
  850. package/src/MobileNav/MobileNav.doc.mjs +3 -3
  851. package/src/MobileNav/MobileNav.tsx +4 -4
  852. package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
  853. package/src/MoreMenu/MoreMenu.test.tsx +28 -1
  854. package/src/MoreMenu/MoreMenu.tsx +3 -3
  855. package/src/MultiSelector/MultiSelector.doc.mjs +37 -10
  856. package/src/MultiSelector/MultiSelector.test.tsx +396 -8
  857. package/src/MultiSelector/MultiSelector.tsx +254 -74
  858. package/src/NavIcon/NavIcon.doc.mjs +3 -3
  859. package/src/NavIcon/NavIcon.tsx +1 -1
  860. package/src/NavMenu/NavHeadingMenu.test.tsx +0 -16
  861. package/src/NavMenu/NavMenu.doc.mjs +2 -2
  862. package/src/NavMenu/index.ts +0 -4
  863. package/src/NumberInput/NumberInput.doc.mjs +5 -8
  864. package/src/NumberInput/NumberInput.test.tsx +117 -3
  865. package/src/NumberInput/NumberInput.tsx +30 -3
  866. package/src/Outline/Outline.doc.mjs +3 -3
  867. package/src/Outline/Outline.tsx +3 -6
  868. package/src/OverflowList/OverflowList.doc.mjs +3 -3
  869. package/src/OverflowList/OverflowList.tsx +1 -1
  870. package/src/Overlay/Overlay.doc.mjs +2 -2
  871. package/src/Pagination/Pagination.doc.mjs +55 -8
  872. package/src/Pagination/Pagination.test.tsx +582 -0
  873. package/src/Pagination/Pagination.tsx +249 -64
  874. package/src/Pagination/index.ts +22 -1
  875. package/src/Popover/Popover.doc.mjs +31 -3
  876. package/src/Popover/Popover.test.tsx +41 -0
  877. package/src/Popover/Popover.tsx +25 -2
  878. package/src/Popover/usePopover.doc.mjs +2 -2
  879. package/src/Popover/usePopover.tsx +10 -4
  880. package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
  881. package/src/PowerSearch/PowerSearch.tsx +1 -1
  882. package/src/PowerSearch/PowerSearchEditPopover.test.tsx +42 -0
  883. package/src/PowerSearch/PowerSearchEditPopover.tsx +7 -0
  884. package/src/ProgressBar/ProgressBar.doc.mjs +24 -3
  885. package/src/ProgressBar/ProgressBar.test.tsx +523 -2
  886. package/src/ProgressBar/ProgressBar.tsx +250 -25
  887. package/src/ProgressBar/ProgressBarMarkTooltip.tsx +43 -0
  888. package/src/ProgressBar/index.ts +22 -1
  889. package/src/RadioList/RadioList.doc.mjs +3 -3
  890. package/src/RadioList/RadioList.test.tsx +26 -4
  891. package/src/RadioList/RadioList.tsx +1 -1
  892. package/src/RadioList/RadioListItem.doc.mjs +1 -1
  893. package/src/RadioList/RadioListItem.tsx +9 -2
  894. package/src/Resizable/Resizable.doc.mjs +2 -2
  895. package/src/Resizable/ResizeHandle.test.tsx +52 -3
  896. package/src/Resizable/ResizeHandle.tsx +27 -22
  897. package/src/Resizable/useResizable.doc.mjs +2 -2
  898. package/src/Section/Section.doc.mjs +3 -3
  899. package/src/Section/Section.tsx +2 -20
  900. package/src/Section/index.ts +20 -5
  901. package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
  902. package/src/SegmentedControl/SegmentedControl.test.tsx +28 -0
  903. package/src/SegmentedControl/SegmentedControl.tsx +1 -1
  904. package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
  905. package/src/SegmentedControl/SegmentedControlItem.tsx +23 -12
  906. package/src/SelectableCard/SelectableCard.doc.mjs +4 -2
  907. package/src/SelectableCard/SelectableCard.test.tsx +55 -0
  908. package/src/SelectableCard/SelectableCard.tsx +23 -12
  909. package/src/Selector/Selector.doc.mjs +34 -11
  910. package/src/Selector/Selector.test.tsx +1176 -118
  911. package/src/Selector/Selector.tsx +345 -96
  912. package/src/Selector/SelectorOption.doc.mjs +1 -1
  913. package/src/Selector/hooks.ts +77 -50
  914. package/src/SideNav/SideNav.doc.mjs +3 -3
  915. package/src/SideNav/SideNav.test.tsx +46 -0
  916. package/src/SideNav/SideNav.tsx +2 -1
  917. package/src/SideNav/SideNavCollapseButton.doc.mjs +1 -1
  918. package/src/SideNav/SideNavCollapseButton.tsx +16 -10
  919. package/src/SideNav/SideNavHeading.doc.mjs +1 -1
  920. package/src/SideNav/SideNavHeading.tsx +49 -12
  921. package/src/SideNav/SideNavItem.doc.mjs +1 -1
  922. package/src/SideNav/SideNavItem.tsx +21 -14
  923. package/src/SideNav/SideNavSection.doc.mjs +1 -1
  924. package/src/SideNav/SideNavSection.tsx +1 -1
  925. package/src/Skeleton/Skeleton.doc.mjs +3 -3
  926. package/src/Skeleton/Skeleton.test.tsx +16 -0
  927. package/src/Skeleton/Skeleton.tsx +14 -2
  928. package/src/Slider/Slider.doc.mjs +3 -3
  929. package/src/Slider/Slider.tsx +9 -13
  930. package/src/Spinner/Spinner.doc.mjs +3 -3
  931. package/src/Spinner/Spinner.tsx +1 -1
  932. package/src/Stack/Stack.doc.mjs +113 -3
  933. package/src/Stack/Stack.tsx +1 -1
  934. package/src/Stack/StackItem.tsx +1 -1
  935. package/src/StatusDot/StatusDot.doc.mjs +15 -6
  936. package/src/StatusDot/StatusDot.tsx +2 -22
  937. package/src/StatusDot/index.ts +22 -5
  938. package/src/Switch/Switch.doc.mjs +5 -5
  939. package/src/Switch/Switch.test.tsx +71 -25
  940. package/src/Switch/Switch.tsx +63 -26
  941. package/src/TabList/Tab.doc.mjs +1 -1
  942. package/src/TabList/Tab.tsx +3 -10
  943. package/src/TabList/TabList.doc.mjs +3 -3
  944. package/src/TabList/TabList.test.tsx +21 -18
  945. package/src/TabList/TabList.tsx +1 -1
  946. package/src/TabList/TabMenu.doc.mjs +1 -1
  947. package/src/TabList/TabMenu.tsx +25 -24
  948. package/src/Table/BaseTable.tsx +4 -5
  949. package/src/Table/Table.doc.mjs +5 -5
  950. package/src/Table/Table.test.tsx +27 -49
  951. package/src/Table/Table.tsx +1 -1
  952. package/src/Table/TableCell.doc.mjs +1 -1
  953. package/src/Table/TableCell.tsx +2 -2
  954. package/src/Table/TableHeaderCell.doc.mjs +1 -1
  955. package/src/Table/TableHeaderCell.tsx +2 -2
  956. package/src/Table/TableRow.doc.mjs +1 -1
  957. package/src/Table/TableRow.tsx +1 -1
  958. package/src/Table/index.ts +1 -1
  959. package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +30 -14
  960. package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +19 -0
  961. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +72 -33
  962. package/src/Table/plugins/sortable/useTableSortable.tsx +2 -6
  963. package/src/Table/plugins/tree/useTableTreeData.test.tsx +161 -2
  964. package/src/Table/plugins/tree/useTableTreeData.tsx +97 -25
  965. package/src/Table/tableContextMenu.test.tsx +27 -0
  966. package/src/Table/tableContextMenu.tsx +1 -0
  967. package/src/Table/types.ts +5 -9
  968. package/src/Table/useTableColumnResize.doc.mjs +1 -1
  969. package/src/Table/useTableColumnSettings.doc.mjs +1 -1
  970. package/src/Table/useTableFilterState.doc.mjs +1 -1
  971. package/src/Table/useTableFiltering.doc.mjs +1 -1
  972. package/src/Table/useTableGroupedRows.doc.mjs +2 -2
  973. package/src/Table/useTablePagination.doc.mjs +1 -1
  974. package/src/Table/useTableRowExpansion.doc.mjs +57 -4
  975. package/src/Table/useTableRowIndex.doc.mjs +2 -2
  976. package/src/Table/useTableRowStatus.doc.mjs +3 -3
  977. package/src/Table/useTableSelection.doc.mjs +1 -1
  978. package/src/Table/useTableSelectionState.doc.mjs +1 -1
  979. package/src/Table/useTableSortable.doc.mjs +1 -1
  980. package/src/Table/useTableStickyColumns.doc.mjs +1 -1
  981. package/src/Table/useTableTreeData.doc.mjs +10 -1
  982. package/src/Table/useTableTreeState.doc.mjs +1 -1
  983. package/src/Text/Heading.doc.mjs +4 -4
  984. package/src/Text/Text.doc.mjs +4 -4
  985. package/src/Text/Text.test.tsx +42 -0
  986. package/src/Text/Text.tsx +26 -2
  987. package/src/Text/index.ts +32 -6
  988. package/src/TextArea/TextArea.doc.mjs +31 -7
  989. package/src/TextArea/TextArea.test.tsx +186 -7
  990. package/src/TextArea/TextArea.tsx +156 -52
  991. package/src/TextInput/TextInput.doc.mjs +5 -5
  992. package/src/TextInput/TextInput.test.tsx +77 -0
  993. package/src/TextInput/TextInput.tsx +7 -3
  994. package/src/Thumbnail/Thumbnail.doc.mjs +2 -2
  995. package/src/Thumbnail/Thumbnail.test.tsx +24 -1
  996. package/src/Thumbnail/Thumbnail.tsx +29 -43
  997. package/src/TimeInput/TimeInput.doc.mjs +5 -5
  998. package/src/TimeInput/TimeInput.test.tsx +30 -3
  999. package/src/TimeInput/TimeInput.tsx +6 -2
  1000. package/src/Timestamp/Timestamp.doc.mjs +30 -24
  1001. package/src/Timestamp/Timestamp.test.tsx +438 -107
  1002. package/src/Timestamp/Timestamp.tsx +167 -103
  1003. package/src/Timestamp/TimestampHoverCard.tsx +283 -0
  1004. package/src/Timestamp/formatInstant.ts +9 -4
  1005. package/src/Timestamp/tooltipEntries.test.ts +9 -0
  1006. package/src/Timestamp/tooltipEntries.ts +18 -2
  1007. package/src/Toast/Toast.doc.mjs +3 -3
  1008. package/src/Toast/ToastViewport.test.tsx +218 -8
  1009. package/src/Toast/ToastViewport.tsx +71 -12
  1010. package/src/Toast/useToast.doc.mjs +2 -2
  1011. package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
  1012. package/src/ToggleButton/ToggleButton.test.tsx +24 -0
  1013. package/src/ToggleButton/ToggleButton.tsx +20 -2
  1014. package/src/ToggleButton/ToggleButtonGroup.doc.mjs +1 -1
  1015. package/src/ToggleButton/ToggleButtonGroup.tsx +3 -6
  1016. package/src/Token/Token.doc.mjs +3 -3
  1017. package/src/Token/Token.test.tsx +145 -0
  1018. package/src/Token/Token.tsx +77 -86
  1019. package/src/Token/TokenLink.tsx +107 -0
  1020. package/src/Token/index.ts +28 -1
  1021. package/src/Tokenizer/Tokenizer.doc.mjs +5 -5
  1022. package/src/Tokenizer/Tokenizer.test.tsx +45 -3
  1023. package/src/Tokenizer/Tokenizer.tsx +11 -3
  1024. package/src/Toolbar/Toolbar.doc.mjs +3 -3
  1025. package/src/Toolbar/Toolbar.tsx +1 -1
  1026. package/src/Tooltip/Tooltip.doc.mjs +3 -3
  1027. package/src/Tooltip/Tooltip.tsx +1 -1
  1028. package/src/Tooltip/useTooltip.doc.mjs +2 -2
  1029. package/src/TopNav/TopNav.doc.mjs +3 -3
  1030. package/src/TopNav/TopNav.test.tsx +2 -2
  1031. package/src/TopNav/TopNav.tsx +2 -4
  1032. package/src/TopNav/TopNavHeading.doc.mjs +1 -12
  1033. package/src/TopNav/TopNavHeading.tsx +44 -25
  1034. package/src/TopNav/TopNavItem.doc.mjs +1 -1
  1035. package/src/TopNav/TopNavItem.tsx +4 -22
  1036. package/src/TopNav/TopNavMegaMenu.doc.mjs +1 -1
  1037. package/src/TopNav/TopNavMegaMenu.tsx +62 -30
  1038. package/src/TopNav/TopNavMegaMenuFeaturedCard.doc.mjs +1 -1
  1039. package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +1 -1
  1040. package/src/TopNav/TopNavMegaMenuItem.doc.mjs +1 -1
  1041. package/src/TopNav/TopNavMegaMenuItem.tsx +3 -10
  1042. package/src/TopNav/TopNavMenu.doc.mjs +1 -1
  1043. package/src/TopNav/TopNavMenu.tsx +34 -32
  1044. package/src/TreeList/TreeList.doc.mjs +8 -3
  1045. package/src/TreeList/TreeList.test.tsx +216 -13
  1046. package/src/TreeList/TreeList.tsx +23 -1
  1047. package/src/TreeList/TreeListBranches.tsx +26 -3
  1048. package/src/TreeList/TreeListItem.tsx +90 -52
  1049. package/src/TreeList/TreeListTypes.ts +1 -18
  1050. package/src/TreeList/index.ts +19 -1
  1051. package/src/Typeahead/BaseTypeahead.doc.mjs +1 -1
  1052. package/src/Typeahead/BaseTypeahead.tsx +30 -2
  1053. package/src/Typeahead/Typeahead.doc.mjs +4 -3
  1054. package/src/Typeahead/Typeahead.test.tsx +138 -3
  1055. package/src/Typeahead/Typeahead.tsx +7 -1
  1056. package/src/Typeahead/TypeaheadItem.doc.mjs +1 -1
  1057. package/src/Typeahead/TypeaheadItem.tsx +1 -1
  1058. package/src/VStack/VStack.tsx +1 -1
  1059. package/src/VisuallyHidden/VisuallyHidden.doc.mjs +3 -3
  1060. package/src/VisuallyHidden/VisuallyHidden.tsx +1 -1
  1061. package/src/__tests__/babelPluginAddExtensions.test.ts +190 -0
  1062. package/src/__tests__/forcedColors.ts +60 -0
  1063. package/src/__tests__/inputWidthContract.test.tsx +8 -1
  1064. package/src/doc-mjs.d.ts +5 -2
  1065. package/src/docPropLiterals.test.ts +1 -1
  1066. package/src/docPropReferences.test.ts +1 -1
  1067. package/src/hooks/containerReveal.pool.stylex.ts +571 -0
  1068. package/src/hooks/index.ts +7 -0
  1069. package/src/hooks/useClickableContainer.doc.mjs +2 -2
  1070. package/src/hooks/useContainerReveal.doc.mjs +75 -0
  1071. package/src/hooks/useContainerReveal.test.tsx +116 -0
  1072. package/src/hooks/useContainerReveal.ts +181 -0
  1073. package/src/hooks/useEntryAnimation.doc.mjs +2 -2
  1074. package/src/hooks/useFocusTrap.doc.mjs +2 -2
  1075. package/src/hooks/useGridFocus.doc.mjs +2 -2
  1076. package/src/hooks/useGridFocus.ts +8 -6
  1077. package/src/hooks/useHotkeys.doc.mjs +2 -2
  1078. package/src/hooks/useImageMode.doc.mjs +2 -2
  1079. package/src/hooks/useImageMode.test.ts +1 -1
  1080. package/src/hooks/useInputContainer.doc.mjs +2 -2
  1081. package/src/hooks/useInputContainer.test.tsx +180 -0
  1082. package/src/hooks/useInputContainer.ts +36 -1
  1083. package/src/hooks/useInputStatusIcon.test.tsx +59 -0
  1084. package/src/hooks/useInputStatusIcon.tsx +12 -1
  1085. package/src/hooks/useKeyboardHint.doc.mjs +2 -2
  1086. package/src/hooks/useKeyboardHint.test.tsx +22 -0
  1087. package/src/hooks/useKeyboardHint.tsx +7 -3
  1088. package/src/hooks/useListFocus.doc.mjs +2 -2
  1089. package/src/hooks/useListFocus.ts +8 -7
  1090. package/src/hooks/useLongPress.test.tsx +18 -0
  1091. package/src/hooks/useLongPress.ts +12 -2
  1092. package/src/hooks/useMediaQuery.doc.mjs +2 -2
  1093. package/src/hooks/useOverflow.doc.mjs +2 -2
  1094. package/src/hooks/useScrollLock.doc.mjs +2 -2
  1095. package/src/hooks/useScrollOverflow.doc.mjs +2 -2
  1096. package/src/hooks/useStreamingText.doc.mjs +2 -2
  1097. package/src/hooks/useStreamingText.test.ts +46 -1
  1098. package/src/hooks/useStreamingText.ts +49 -7
  1099. package/src/hooks/useTreeFocus.doc.mjs +2 -2
  1100. package/src/hooks/useTreeFocus.test.tsx +53 -1
  1101. package/src/hooks/useTreeFocus.ts +13 -2
  1102. package/src/hooks/useTypeahead.test.tsx +150 -0
  1103. package/src/hooks/useTypeahead.ts +24 -9
  1104. package/src/i18n/InternationalizationProvider.doc.mjs +14 -2
  1105. package/src/i18n/InternationalizationProvider.tsx +6 -0
  1106. package/src/i18n/useDirection.ts +6 -3
  1107. package/src/i18n/useTranslator.doc.mjs +2 -2
  1108. package/src/index.ts +2 -18
  1109. package/src/theme/MediaTheme.doc.mjs +2 -2
  1110. package/src/theme/SyntaxTheme.doc.mjs +2 -2
  1111. package/src/theme/Theme.doc.mjs +2 -2
  1112. package/src/theme/Theme.tsx +3 -7
  1113. package/src/theme/contrast.test.ts +94 -0
  1114. package/src/theme/contrast.ts +99 -0
  1115. package/src/theme/defineTheme.test.ts +29 -30
  1116. package/src/theme/defineTheme.ts +11 -5
  1117. package/src/theme/derivedVarRegistry.test.ts +8 -1
  1118. package/src/theme/derivedVarRegistry.ts +15 -6
  1119. package/src/theme/expandColorScale.test.ts +401 -1
  1120. package/src/theme/expandColorScale.ts +143 -19
  1121. package/src/theme/expandTypeScale.test.ts +43 -0
  1122. package/src/theme/expandTypeScale.ts +17 -0
  1123. package/src/theme/generateThemeRules.test.ts +41 -20
  1124. package/src/theme/generateThemeRules.ts +11 -15
  1125. package/src/theme/index.ts +11 -13
  1126. package/src/theme/themeRegistry.test.ts +59 -0
  1127. package/src/theme/themeRegistry.ts +53 -0
  1128. package/src/theme/tokens.stylex.ts +0 -19
  1129. package/src/theme/types.ts +14 -13
  1130. package/src/theme/useTheme.doc.mjs +2 -2
  1131. package/src/theme/useTheme.test.tsx +48 -3
  1132. package/src/theme/useTheme.ts +100 -29
  1133. package/src/utils/focusOutline.stylex.ts +128 -0
  1134. package/src/utils/rtlStyles.ts +24 -2
  1135. package/dist/NavMenu/NavMenuItem.d.ts +0 -13
  1136. package/dist/NavMenu/NavMenuItem.d.ts.map +0 -1
  1137. package/dist/NavMenu/NavMenuItem.js +0 -16
  1138. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts +0 -9
  1139. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts.map +0 -1
  1140. package/dist/Thumbnail/thumbnail.markers.stylex.js +0 -14
  1141. package/dist/authoring/doc.d.ts +0 -145
  1142. package/dist/authoring/doc.d.ts.map +0 -1
  1143. package/dist/authoring/doc.js +0 -100
  1144. package/dist/authoring/index.d.ts +0 -29
  1145. package/dist/authoring/index.d.ts.map +0 -1
  1146. package/dist/authoring/index.js +0 -28
  1147. package/dist/authoring/integration.d.ts +0 -35
  1148. package/dist/authoring/integration.d.ts.map +0 -1
  1149. package/dist/authoring/integration.js +0 -30
  1150. package/dist/authoring/template.d.ts +0 -66
  1151. package/dist/authoring/template.d.ts.map +0 -1
  1152. package/dist/authoring/template.js +0 -55
  1153. package/dist/config.d.ts +0 -80
  1154. package/dist/config.d.ts.map +0 -1
  1155. package/dist/config.js +0 -40
  1156. package/dist/docs-types.d.ts +0 -969
  1157. package/dist/docs-types.d.ts.map +0 -1
  1158. package/dist/docs-types.js +0 -1
  1159. package/src/NavMenu/NavMenuItem.tsx +0 -19
  1160. package/src/Thumbnail/thumbnail.markers.stylex.ts +0 -12
  1161. package/src/authoring/doc.ts +0 -164
  1162. package/src/authoring/index.test.ts +0 -52
  1163. package/src/authoring/index.ts +0 -50
  1164. package/src/authoring/integration.ts +0 -42
  1165. package/src/authoring/template.ts +0 -74
  1166. package/src/config.test.ts +0 -16
  1167. package/src/config.ts +0 -92
  1168. package/src/docs-types.ts +0 -1108
@@ -11,7 +11,7 @@
11
11
  * SYNC: When modified, update these files to stay in sync:
12
12
  * - /packages/core/src/TreeList/TreeList.doc.mjs
13
13
  * - /packages/core/src/TreeList/TreeList.tsx
14
- * - /packages/cli/templates/blocks/components/TreeList/ (showcase blocks)
14
+ * - /packages/cli/assets/templates/blocks/components/TreeList/ (showcase blocks)
15
15
  */
16
16
 
17
17
  import {useId, useMemo, type ReactNode} from 'react';
@@ -24,8 +24,9 @@ import {
24
24
  easeVars,
25
25
  typeScaleVars,
26
26
  } from '../theme/tokens.stylex';
27
- import {getIcon} from '../Icon/globalIconRegistry';
28
- import {mergeProps, rtlStyles} from '../utils';
27
+ import {focusOutlineProps} from '../utils/focusOutline.stylex';
28
+ import {Icon} from '../Icon';
29
+ import {mergeProps} from '../utils';
29
30
  import {useLinkComponent} from '../Link/useLinkComponent';
30
31
  import {TreeListBranches} from './TreeListBranches';
31
32
  import type {TreeListDensity, TreeListVariant} from './TreeListTypes';
@@ -51,14 +52,6 @@ const styles = stylex.create({
51
52
  // redeclares these vars (default: 'none' / '0'), so a descendant row's
52
53
  // default shadows an ancestor's active value — the ring can never leak
53
54
  // past the nearest containing treeitem, however deep the tree nests.
54
- '--_tree-focus-outline': {
55
- default: 'none',
56
- ':focus-visible': `2px solid ${colorVars['--color-accent']}`,
57
- },
58
- '--_tree-focus-outline-offset': {
59
- default: '0',
60
- ':focus-visible': '2px',
61
- },
62
55
  },
63
56
  childGroup: {
64
57
  margin: 0,
@@ -70,6 +63,17 @@ const styles = stylex.create({
70
63
  },
71
64
  rowWrapper: {
72
65
  position: 'relative',
66
+ // Inter-row gap. Half the public `--tree-list-row-gap` lever sits above and
67
+ // half below the row box; because this is PADDING (not margin) it cannot
68
+ // collapse, so adjacent rows end up a full gap apart — and it rides the
69
+ // `rowWrapper`, which carries no theme target, so the paintable
70
+ // `tree-list-item` stays a pure paint seam (layout lives off it). The <li>s
71
+ // stay contiguous — the gap is padding INSIDE each <li>, not space between
72
+ // them — so the per-<li> connector guide can still span it and read as a
73
+ // continuous line (see TreeListBranches). The lever's default is a subtle
74
+ // `--spacing-0-5` (2px, set on the tree-list root); a theme widens or closes
75
+ // it via the `tree-list` target.
76
+ paddingBlock: 'calc(var(--tree-list-row-gap, 0px) / 2)',
73
77
  },
74
78
  contentWrapper: {
75
79
  borderRadius: radiusVars['--radius-element'],
@@ -77,7 +81,8 @@ const styles = stylex.create({
77
81
  alignItems: 'center',
78
82
  gap: spacingVars['--spacing-2'],
79
83
  paddingInline: spacingVars['--spacing-2'],
80
- outline: 'none',
84
+ // No `outline: 'none'` here: this element receives the shared focus ring,
85
+ // which already defaults to none, and the shorthand would erase it.
81
86
  overflow: 'hidden',
82
87
  position: 'relative',
83
88
  boxSizing: 'border-box',
@@ -102,19 +107,6 @@ const styles = stylex.create({
102
107
  ':active': `linear-gradient(${colorVars['--color-overlay-pressed']}, ${colorVars['--color-overlay-pressed']})`,
103
108
  },
104
109
  },
105
- focusVisibleOutline: {
106
- outline: {
107
- // Reads the row's own --_tree-focus-outline (published on the <li> in
108
- // `wrapper`), which resolves to the nearest containing treeitem only.
109
- default: 'var(--_tree-focus-outline, none)',
110
- // Also support inner focusable actions.
111
- ':has(:focus-visible)': `2px solid ${colorVars['--color-accent']}`,
112
- },
113
- outlineOffset: {
114
- default: 'var(--_tree-focus-outline-offset, 0)',
115
- ':has(:focus-visible)': '2px',
116
- },
117
- },
118
110
  disabled: {
119
111
  cursor: 'not-allowed',
120
112
  opacity: 0.5,
@@ -207,15 +199,34 @@ const styles = stylex.create({
207
199
  },
208
200
  chevronSvg: {
209
201
  display: 'flex',
202
+ // The chevron column is sized in spacing tokens by the button/container
203
+ // around it (--spacing-4 = 16px), not on Icon's rem scale, so the glyph's
204
+ // box is pinned to that same token. Icon's `sm` (1rem) only coincides with
205
+ // 16px at a 16px root font-size; drifting off the token would knock the
206
+ // glyph out of its 16px column.
207
+ width: spacingVars['--spacing-4'],
208
+ height: spacingVars['--spacing-4'],
209
+ fontSize: spacingVars['--spacing-4'],
210
210
  transitionProperty: 'transform',
211
211
  transitionDuration: durationVars['--duration-fast'],
212
212
  transitionTimingFunction: easeVars['--ease-standard'],
213
213
  },
214
+ // The RTL mirror is folded into each state's transform rather than living on
215
+ // a parent span. Both are `transform`, so on one element the later value
216
+ // would win — spelling out `scaleX(-1) rotate(...)` per state composes them
217
+ // exactly as the nested elements did, while leaving a single element to
218
+ // carry the glyph's theme target.
214
219
  chevronExpanded: {
215
- transform: 'rotate(90deg)',
220
+ transform: {
221
+ default: 'rotate(90deg)',
222
+ ':is([dir="rtl"] *)': 'scaleX(-1) rotate(90deg)',
223
+ },
216
224
  },
217
225
  chevronCollapsed: {
218
- transform: 'rotate(0deg)',
226
+ transform: {
227
+ default: 'rotate(0deg)',
228
+ ':is([dir="rtl"] *)': 'scaleX(-1) rotate(0deg)',
229
+ },
219
230
  },
220
231
  });
221
232
 
@@ -273,6 +284,16 @@ export interface TreeListItemInternalProps {
273
284
  isDisabled?: boolean;
274
285
  isSelected?: boolean;
275
286
  hasChildren: boolean;
287
+ /**
288
+ * Whether the tree contains at least one expandable item anywhere (i.e. a
289
+ * caret exists somewhere to align labels under). A leaf reserves the chevron
290
+ * column — the extra offset that lines its label up past an expandable
291
+ * ancestor/sibling's caret — whenever this is true, so it stays indented
292
+ * beyond its parent's label. Only a fully flat tree (no expandable items at
293
+ * all) has no caret to align under, so its rows sit flush (no chevron-column
294
+ * offset). Computed once for the whole tree by TreeList.
295
+ */
296
+ hasExpandableItems: boolean;
276
297
  nestedLevel: number;
277
298
  isLast: boolean;
278
299
  ancestorsIsLast: ReadonlyArray<boolean>;
@@ -315,6 +336,7 @@ export function TreeListItem({
315
336
  isDisabled = false,
316
337
  isSelected = false,
317
338
  hasChildren,
339
+ hasExpandableItems,
318
340
  nestedLevel,
319
341
  isLast,
320
342
  ancestorsIsLast,
@@ -366,15 +388,19 @@ export function TreeListItem({
366
388
 
367
389
  // Per-level indent distance. The per-level step is the public, themeable
368
390
  // `--tree-list-indent` lever (default `--spacing-4`, set on the tree-list
369
- // root). Leaves add a fixed chevron-column offset (chevron width + gap) so
370
- // their labels line up with sibling parents' labels; that offset is tied to
391
+ // root). A leaf adds a fixed chevron-column offset (chevron width + gap) so
392
+ // its label lines up past an expandable ancestor/sibling's caret — but ONLY
393
+ // when the tree actually contains an expandable item somewhere. In a fully
394
+ // flat tree there is no caret to align under, so the offset is pointless and
395
+ // every row sits flush, like a parent at that level. That offset is tied to
371
396
  // the chevron's own dimensions, not the indent step, so it does not scale
372
397
  // with the lever. Published as the private `--_tree-indent` and consumed by
373
398
  // `contentWrapper`'s stylesheet `margin-inline-start` (kept out of the inline
374
399
  // style so the theme layer can override it — see #4308).
375
- const indentDistance = hasChildren
376
- ? `calc(${nestedLevel} * var(--tree-list-indent))`
377
- : `calc(${nestedLevel} * var(--tree-list-indent) + ${spacingVars['--spacing-4']} + ${spacingVars['--spacing-2']})`;
400
+ const reservesChevronColumn = !hasChildren && hasExpandableItems;
401
+ const indentDistance = reservesChevronColumn
402
+ ? `calc(${nestedLevel} * var(--tree-list-indent) + ${spacingVars['--spacing-4']} + ${spacingVars['--spacing-2']})`
403
+ : `calc(${nestedLevel} * var(--tree-list-indent))`;
378
404
  const indentStyle: IndentStyle = {'--_tree-indent': indentDistance};
379
405
 
380
406
  const labelAndDescription = (
@@ -405,16 +431,24 @@ export function TreeListItem({
405
431
  </>
406
432
  );
407
433
 
434
+ // <Icon> renders the glyph's span itself — carrying the pre-existing
435
+ // astryx-icon target — so the rotation rides on that same element instead of
436
+ // an extra wrapper: a theme can still restyle the mark and its open/closed
437
+ // transform through one selector.
408
438
  const chevronIcon = (
409
- <span {...stylex.props(rtlStyles.mirror)}>
410
- <span
411
- {...stylex.props(
412
- styles.chevronSvg,
413
- isExpanded ? styles.chevronExpanded : styles.chevronCollapsed,
414
- )}>
415
- {getIcon('chevronRight')}
416
- </span>
417
- </span>
439
+ <Icon
440
+ icon="chevronRight"
441
+ // Nearest size to the 16px chevron column; `chevronSvg` re-pins the exact
442
+ // box because the column is spacing-token-sized, not rem-sized.
443
+ size="sm"
444
+ // The button/container owns the chevron color (--color-icon-secondary);
445
+ // inheriting keeps that as the single source.
446
+ color="inherit"
447
+ xstyle={[
448
+ styles.chevronSvg,
449
+ isExpanded ? styles.chevronExpanded : styles.chevronCollapsed,
450
+ ]}
451
+ />
418
452
  );
419
453
 
420
454
  const chevron = hasChildren ? (
@@ -520,7 +554,7 @@ export function TreeListItem({
520
554
  data-tree-id={id}
521
555
  data-tree-level={nestedLevel + 1}
522
556
  data-tree-disabled={isDisabled || undefined}
523
- {...stylex.props(styles.wrapper)}>
557
+ {...focusOutlineProps.publishFocusVisibleVars(styles.wrapper)}>
524
558
  {variant !== 'noGuides' && (
525
559
  <div {...stylex.props(styles.treeBranches)}>
526
560
  <TreeListBranches
@@ -538,16 +572,20 @@ export function TreeListItem({
538
572
  selected: isSelected ? 'selected' : null,
539
573
  disabled: isDisabled ? 'disabled' : null,
540
574
  }),
541
- stylex.props(
542
- styles.contentWrapper,
543
- densityStyles[density],
544
- (isInteractive || (hasChildren && onClick == null)) &&
545
- styles.interactive,
546
- (isInteractive || (hasChildren && onClick == null)) &&
547
- styles.focusVisibleOutline,
548
- isDisabled && styles.disabled,
549
- isSelected && styles.selected,
550
- ),
575
+ isInteractive || (hasChildren && onClick == null)
576
+ ? focusOutlineProps.focusWithinOrPublished(
577
+ styles.contentWrapper,
578
+ densityStyles[density],
579
+ styles.interactive,
580
+ isDisabled && styles.disabled,
581
+ isSelected && styles.selected,
582
+ )
583
+ : stylex.props(
584
+ styles.contentWrapper,
585
+ densityStyles[density],
586
+ isDisabled && styles.disabled,
587
+ isSelected && styles.selected,
588
+ ),
551
589
  )}
552
590
  style={indentStyle}
553
591
  onClick={handleClick}>
@@ -12,28 +12,11 @@
12
12
  */
13
13
 
14
14
  import type {ReactNode} from 'react';
15
+ import type {TreeListVariantMap} from './index';
15
16
 
16
17
  /** Spacing density for tree list items. */
17
18
  export type TreeListDensity = 'compact' | 'balanced' | 'spacious';
18
19
 
19
- /**
20
- * Extensible variant map for TreeList.
21
- *
22
- * Theme packages can add custom variants via TypeScript module augmentation:
23
- * @example
24
- * ```
25
- * declare module '@astryxdesign/core/TreeList' {
26
- * interface TreeListVariantMap {
27
- * 'dotted': true;
28
- * }
29
- * }
30
- * ```
31
- */
32
- export interface TreeListVariantMap {
33
- lineGuides: true;
34
- noGuides: true;
35
- }
36
-
37
20
  /**
38
21
  * Visual treatment of the hierarchy guide (connector) lines. Extensible via
39
22
  * module augmentation of TreeListVariantMap.
@@ -11,6 +11,24 @@
11
11
  * SYNC: When modified, update /packages/core/src/TreeList/TreeList.doc.mjs
12
12
  */
13
13
 
14
+ /**
15
+ * Extensible variant map for TreeList.
16
+ *
17
+ * Theme packages can add custom variants via TypeScript module augmentation:
18
+ * @example
19
+ * ```
20
+ * declare module '@astryxdesign/core/TreeList' {
21
+ * interface TreeListVariantMap {
22
+ * 'dotted': true;
23
+ * }
24
+ * }
25
+ * ```
26
+ */
27
+ export interface TreeListVariantMap {
28
+ lineGuides: true;
29
+ noGuides: true;
30
+ }
31
+
14
32
  export {TreeList} from './TreeList';
15
33
  export type {TreeListProps, TreeListDensity, TreeListVariant} from './TreeList';
16
- export type {TreeListItemData, TreeListVariantMap} from './TreeListTypes';
34
+ export type {TreeListItemData} from './TreeListTypes';
@@ -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: 'BaseTypeahead',
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * SYNC: When modified, update:
16
16
  * - /packages/core/src/Typeahead/index.ts
17
- * - /packages/cli/templates/blocks/components/Typeahead/ (showcase blocks)
17
+ * - /packages/cli/assets/templates/blocks/components/Typeahead/ (showcase blocks)
18
18
  */
19
19
 
20
20
  import React, {
@@ -30,6 +30,7 @@ import * as stylex from '@stylexjs/stylex';
30
30
  import type {StyleXStyles} from '@stylexjs/stylex';
31
31
  import {usePopover} from '../Popover/usePopover';
32
32
  import {useAnnounce} from '../hooks/useAnnounce';
33
+ import {isImeKeyEvent} from '../hooks/useFocusTrap';
33
34
  import {TypeaheadItem} from './TypeaheadItem';
34
35
  import {Icon} from '../Icon';
35
36
  import {
@@ -157,6 +158,16 @@ export interface BaseTypeaheadProps<T extends SearchableItem> extends Omit<
157
158
  */
158
159
  inputXStyle?: StyleXStyles;
159
160
 
161
+ /**
162
+ * Tab-order override for the input element. Typeahead passes `-1` while
163
+ * its selected-value token is shown: the input is visually collapsed
164
+ * (width 0 / opacity 0) but must stay programmatically focusable for
165
+ * token edit/clear interactions, so removing it from the Tab order is
166
+ * what prevents an invisible tab stop (WCAG 2.4.3 / 2.4.7). The input
167
+ * remains focusable via `.focus()` regardless of this value.
168
+ */
169
+ inputTabIndex?: number;
170
+
160
171
  /**
161
172
  * Ref to the anchor element for dropdown positioning.
162
173
  * The dropdown will be positioned relative to this element.
@@ -316,6 +327,7 @@ export const BaseTypeahead = function BaseTypeahead<T extends SearchableItem>({
316
327
  ariaDescribedBy,
317
328
  ariaLabelledBy,
318
329
  inputXStyle,
330
+ inputTabIndex,
319
331
  anchorRef,
320
332
  onKeyDown: externalOnKeyDown,
321
333
  debounceMs = 150,
@@ -622,6 +634,17 @@ export const BaseTypeahead = function BaseTypeahead<T extends SearchableItem>({
622
634
  return;
623
635
  }
624
636
 
637
+ // An IME candidate window uses Enter to commit the composition and
638
+ // Escape/ArrowUp/ArrowDown/Home/End to navigate its own candidates.
639
+ // Without this guard, a composing Enter both fires handleSelect AND
640
+ // clears the input via handleSelect's setQuery(''), so the IME's
641
+ // subsequent compositionend then writes the still-pending syllable
642
+ // into the freshly-cleared field -- producing a second, spurious
643
+ // selection on the next real Enter.
644
+ if (isImeKeyEvent(e.nativeEvent)) {
645
+ return;
646
+ }
647
+
625
648
  if (!popover.isOpen) {
626
649
  if (e.key === 'ArrowDown' && (hasEntriesOnFocus || query.length > 0)) {
627
650
  e.preventDefault();
@@ -748,6 +771,7 @@ export const BaseTypeahead = function BaseTypeahead<T extends SearchableItem>({
748
771
  aria-describedby={ariaDescribedBy}
749
772
  aria-labelledby={ariaLabelledBy}
750
773
  aria-disabled={isFocusableDisabled ? 'true' : undefined}
774
+ tabIndex={inputTabIndex}
751
775
  value={query}
752
776
  onChange={handleInputChange}
753
777
  onPointerDown={() => {
@@ -797,7 +821,11 @@ export const BaseTypeahead = function BaseTypeahead<T extends SearchableItem>({
797
821
  stylex.props(styles.dropdown),
798
822
  )}>
799
823
  {results.length === 0 && hasSearched ? (
800
- <div {...stylex.props(styles.emptyState)}>
824
+ <div
825
+ {...mergeProps(
826
+ themeProps('typeahead-empty-state'),
827
+ stylex.props(styles.emptyState),
828
+ )}>
801
829
  {emptySearchResultsText}
802
830
  </div>
803
831
  ) : (
@@ -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: 'Typeahead',
@@ -183,6 +183,7 @@ export const docs = {
183
183
  targets: [
184
184
  {className: 'astryx-typeahead', visualProps: ['status', 'size']},
185
185
  {className: 'astryx-typeahead-dropdown'},
186
+ {className: 'astryx-typeahead-empty-state'},
186
187
  {className: 'astryx-typeahead-item'},
187
188
  ],
188
189
  },
@@ -233,7 +234,7 @@ export const docs = {
233
234
  },
234
235
  };
235
236
 
236
- /** @type {import('../docs-types').TranslationDoc} */
237
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
237
238
  export const docsZh = {
238
239
  usage: {
239
240
  description:
@@ -277,7 +278,7 @@ export const docsZh = {
277
278
  },
278
279
  };
279
280
 
280
- /** @type {import('../docs-types').TranslationDoc} */
281
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
281
282
  export const docsDense = {
282
283
  description:
283
284
  'Searchable dropdown for single-item selection w/ keyboard navigation. Supports async+sync search via searchSource interface.',
@@ -171,6 +171,28 @@ describe('BaseTypeahead', () => {
171
171
  });
172
172
  });
173
173
 
174
+ it('exposes the empty state as a themeable target', async () => {
175
+ const {container} = render(
176
+ <BaseTypeahead
177
+ searchSource={fruitSource}
178
+ value={null}
179
+ onChange={() => {}}
180
+ debounceMs={0}
181
+ emptySearchResultsText="No results found"
182
+ />,
183
+ );
184
+ const input = screen.getByRole('combobox');
185
+ fireEvent.change(input, {target: {value: 'zzzzz'}});
186
+
187
+ await waitFor(() => {
188
+ const emptyState = container.querySelector(
189
+ '.astryx-typeahead-empty-state',
190
+ );
191
+ expect(emptyState).not.toBeNull();
192
+ expect(emptyState).toHaveTextContent('No results found');
193
+ });
194
+ });
195
+
174
196
  describe('empty results active descendant (#4059)', () => {
175
197
  it('does not set aria-activedescendant when search has 0 results', async () => {
176
198
  render(
@@ -198,6 +220,45 @@ describe('BaseTypeahead', () => {
198
220
  });
199
221
  });
200
222
 
223
+ describe('IME composition guard (#4828)', () => {
224
+ it('does not select the highlighted result on a composing Enter', async () => {
225
+ const onChange = vi.fn();
226
+ render(
227
+ <BaseTypeahead
228
+ searchSource={fruitSource}
229
+ value={null}
230
+ onChange={onChange}
231
+ debounceMs={0}
232
+ />,
233
+ );
234
+ const input = screen.getByRole('combobox');
235
+ fireEvent.change(input, {target: {value: 'App'}});
236
+ await waitFor(() => {
237
+ expect(input).toHaveAttribute('aria-expanded', 'true');
238
+ });
239
+
240
+ // The browser fires this composing keydown for the Enter that commits
241
+ // an IME candidate (isComposing: true, or legacy keyCode 229) before
242
+ // compositionend writes the pending syllable into the input. Without
243
+ // the guard this both selects the highlighted result AND clears the
244
+ // input via handleSelect, so the syllable that compositionend then
245
+ // writes lands in an emptied field instead of being part of the word.
246
+ fireEvent.keyDown(input, {key: 'Enter', isComposing: true});
247
+ expect(onChange).not.toHaveBeenCalled();
248
+ expect(input).toHaveValue('App');
249
+
250
+ fireEvent.keyDown(input, {key: 'Enter', keyCode: 229});
251
+ expect(onChange).not.toHaveBeenCalled();
252
+ expect(input).toHaveValue('App');
253
+
254
+ // A real, non-composing Enter still selects normally.
255
+ fireEvent.keyDown(input, {key: 'Enter'});
256
+ expect(onChange).toHaveBeenCalledWith(
257
+ expect.objectContaining({label: 'Apple'}),
258
+ );
259
+ });
260
+ });
261
+
201
262
  it('disables input when isDisabled', () => {
202
263
  render(
203
264
  <BaseTypeahead
@@ -737,6 +798,68 @@ describe('Typeahead edit mode', () => {
737
798
  });
738
799
  });
739
800
 
801
+ describe('Typeahead collapsed input tab order', () => {
802
+ it('removes the invisible input from the Tab order while a token is shown', () => {
803
+ render(
804
+ <Typeahead
805
+ label="Fruit"
806
+ searchSource={fruitSource}
807
+ value={fruits[0]}
808
+ onChange={() => {}}
809
+ />,
810
+ );
811
+ // While the token is shown the input is collapsed (width 0 / opacity 0);
812
+ // it must stay programmatically focusable for token interactions but must
813
+ // not be an invisible Tab stop (WCAG 2.4.3 / 2.4.7).
814
+ expect(screen.getByRole('combobox')).toHaveAttribute('tabindex', '-1');
815
+ });
816
+
817
+ it('Tab from the token skips the invisible input', async () => {
818
+ const user = userEvent.setup();
819
+ render(
820
+ <Typeahead
821
+ label="Fruit"
822
+ searchSource={fruitSource}
823
+ value={fruits[0]}
824
+ onChange={() => {}}
825
+ />,
826
+ );
827
+ // Focus the token's internal button, then Tab away — focus must not land
828
+ // on the visually hidden combobox input.
829
+ const tokenButton = screen.getByRole('button', {name: fruits[0].label});
830
+ tokenButton.focus();
831
+ await user.tab();
832
+ expect(screen.getByRole('combobox')).not.toHaveFocus();
833
+ });
834
+
835
+ it('keeps the input in the Tab order when no token is shown', () => {
836
+ render(
837
+ <Typeahead
838
+ label="Fruit"
839
+ searchSource={fruitSource}
840
+ value={null}
841
+ onChange={() => {}}
842
+ />,
843
+ );
844
+ expect(screen.getByRole('combobox')).not.toHaveAttribute('tabindex');
845
+ });
846
+
847
+ it('restores the input to the Tab order in edit mode', () => {
848
+ render(
849
+ <Typeahead
850
+ label="Fruit"
851
+ searchSource={fruitSource}
852
+ value={fruits[0]}
853
+ onChange={() => {}}
854
+ />,
855
+ );
856
+ // Entering edit mode removes the token and uncollapses the input
857
+ const tokenText = screen.getByText(fruits[0].label);
858
+ fireEvent.click(tokenText.closest('div')!);
859
+ expect(screen.getByRole('combobox')).not.toHaveAttribute('tabindex');
860
+ });
861
+ });
862
+
740
863
  describe('BaseTypeahead paste behavior', () => {
741
864
  it('pasting text triggers search results like typing', async () => {
742
865
  const user = userEvent.setup();
@@ -976,11 +1099,16 @@ describe('Typeahead disabledMessage', () => {
976
1099
  });
977
1100
  });
978
1101
 
979
-
980
1102
  describe('Typeahead statusVariant forwarding', () => {
981
1103
  it('defaults to attached (status renders with data-variant="attached")', () => {
982
1104
  const {container} = render(
983
- <Typeahead label="Fruit" searchSource={fruitSource} value={null} onChange={() => {}} status={{type: 'error', message: 'Required'}} />,
1105
+ <Typeahead
1106
+ label="Fruit"
1107
+ searchSource={fruitSource}
1108
+ value={null}
1109
+ onChange={() => {}}
1110
+ status={{type: 'error', message: 'Required'}}
1111
+ />,
984
1112
  );
985
1113
  expect(container.querySelector('.astryx-field-status')).toHaveAttribute(
986
1114
  'data-variant',
@@ -990,7 +1118,14 @@ describe('Typeahead statusVariant forwarding', () => {
990
1118
 
991
1119
  it('forwards statusVariant="detached" to the underlying Field status', () => {
992
1120
  const {container} = render(
993
- <Typeahead label="Fruit" searchSource={fruitSource} value={null} onChange={() => {}} status={{type: 'error', message: 'Required'}} statusVariant="detached" />,
1121
+ <Typeahead
1122
+ label="Fruit"
1123
+ searchSource={fruitSource}
1124
+ value={null}
1125
+ onChange={() => {}}
1126
+ status={{type: 'error', message: 'Required'}}
1127
+ statusVariant="detached"
1128
+ />,
994
1129
  );
995
1130
  expect(container.querySelector('.astryx-field-status')).toHaveAttribute(
996
1131
  'data-variant',
@@ -15,7 +15,7 @@
15
15
  * SYNC: When modified, update:
16
16
  * - /packages/core/src/Typeahead/index.ts
17
17
  * - /apps/storybook/stories/Typeahead.stories.tsx
18
- * - /packages/cli/templates/blocks/components/Typeahead/ (showcase blocks)
18
+ * - /packages/cli/assets/templates/blocks/components/Typeahead/ (showcase blocks)
19
19
  */
20
20
 
21
21
  import React, {
@@ -467,6 +467,12 @@ export function Typeahead<T extends SearchableItem>({
467
467
  anchorRef={wrapperRef}
468
468
  onKeyDown={handleKeyDown}
469
469
  inputXStyle={showToken ? styles.inputHidden : undefined}
470
+ // While the token is shown the input is collapsed (width 0 /
471
+ // opacity 0) — take it out of the Tab order so keyboard users
472
+ // don't hit an invisible stop (WCAG 2.4.3 / 2.4.7). It stays
473
+ // programmatically focusable: entering edit mode and clearing
474
+ // both refocus it after it uncollapses.
475
+ inputTabIndex={showToken ? -1 : undefined}
470
476
  size={size}
471
477
  />
472
478
  {hasClear && value && !isDisabled && (
@@ -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: 'TypeaheadItem',
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * SYNC: When modified, update:
10
10
  * - /packages/core/src/Typeahead/index.ts
11
- * - /packages/cli/templates/blocks/components/Typeahead/ (showcase blocks)
11
+ * - /packages/cli/assets/templates/blocks/components/Typeahead/ (showcase blocks)
12
12
  */
13
13
 
14
14
  import React, {type ReactNode} from 'react';
@@ -9,7 +9,7 @@
9
9
  * SYNC: When modified, update these files to stay in sync:
10
10
  * - /packages/core/src/Stack/Stack.doc.mjs
11
11
  * - /packages/core/src/VStack/VStack.test.tsx
12
- * - /packages/cli/templates/blocks/components/VStack/ (showcase blocks)
12
+ * - /packages/cli/assets/templates/blocks/components/VStack/ (showcase blocks)
13
13
  */
14
14
 
15
15
  import {Stack, type StackProps} from '../Stack/Stack';