@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
@@ -14,6 +14,7 @@ import {render, screen, fireEvent, act} from '@testing-library/react';
14
14
  import userEvent from '@testing-library/user-event';
15
15
  import {Button} from './Button';
16
16
  import {Badge} from '../Badge/Badge';
17
+ import {InternationalizationProvider} from '../i18n';
17
18
 
18
19
  describe('Button', () => {
19
20
  it('renders label as visible text', () => {
@@ -446,6 +447,21 @@ describe('Button', () => {
446
447
  expect(liveRegion).toHaveTextContent('Loading');
447
448
  });
448
449
 
450
+ it('localizes the loading announcement through the i18n catalog', () => {
451
+ render(
452
+ <InternationalizationProvider
453
+ locale="fr"
454
+ overrides={{fr: {'@astryx.button.loading': 'Chargement'}}}>
455
+ <Button label="Submit" isLoading />
456
+ </InternationalizationProvider>,
457
+ );
458
+ const button = screen.getByRole('button');
459
+ // The Spinner also has role="status", so grab the live region explicitly.
460
+ const regions = button.querySelectorAll('[role="status"]');
461
+ const liveRegion = regions[regions.length - 1];
462
+ expect(liveRegion).toHaveTextContent('Chargement');
463
+ });
464
+
449
465
  describe('elevation', () => {
450
466
  it('renders a distinct class for each elevation level', () => {
451
467
  const classFor = (elevation: 'none' | 'low' | 'med' | 'high') => {
@@ -4,7 +4,7 @@
4
4
 
5
5
  /**
6
6
  * @file Button.tsx
7
- * @input Uses React, ButtonHTMLAttributes, ReactNode
7
+ * @input Uses React, ButtonHTMLAttributes, ReactNode, i18n (useTranslator)
8
8
  * @output Exports Button component, ButtonProps, ButtonVariant types
9
9
  * @position Core implementation; consumed by index.ts, tested by Button.test.tsx
10
10
  *
@@ -13,7 +13,7 @@
13
13
  * - /packages/core/src/Button/Button.test.tsx (tests for new/changed behavior)
14
14
  * - /packages/core/src/Button/index.ts (exports if types change)
15
15
  * - /apps/storybook/stories/Button.stories.tsx (storybook stories)
16
- * - /packages/cli/templates/blocks/components/Button/ (showcase blocks)
16
+ * - /packages/cli/assets/templates/blocks/components/Button/ (showcase blocks)
17
17
  *
18
18
  * Last synced props: label, variant, size, isDisabled, isLoading, isInterruptible, clickAction, icon, isIconOnly, width, children, tooltip, endContent, href, as, target, rel
19
19
  */
@@ -45,6 +45,9 @@ import {mergeProps, mergeRefs} from '../utils';
45
45
  import {useLinkComponent} from '../Link/useLinkComponent';
46
46
  import type {LinkComponentType} from '../Link/types';
47
47
  import {themeProps} from '../utils/themeProps';
48
+ import {focusOutlineProps} from '../utils/focusOutline.stylex';
49
+ import {useTranslator} from '../i18n';
50
+ import type {ButtonVariantMap} from './index';
48
51
 
49
52
  /**
50
53
  * Base button styles
@@ -53,6 +56,15 @@ import {themeProps} from '../utils/themeProps';
53
56
  */
54
57
  const styles = stylex.create({
55
58
  base: {
59
+ // Kept as a public themeable var (documented in Button.doc.mjs) even though
60
+ // its default now matches the shared outline: removing it would break any
61
+ // theme setting it, for no gain. It overrides the shared offset, so a theme
62
+ // can still tune the ring distance on buttons specifically.
63
+ '--button-focus-offset': '3px',
64
+ outlineOffset: {
65
+ default: '0',
66
+ ':focus-visible': 'var(--button-focus-offset)',
67
+ },
56
68
  position: 'relative',
57
69
  display: 'inline-flex',
58
70
  alignItems: 'center',
@@ -177,7 +189,7 @@ const elevationStyles = stylex.create({
177
189
  * Variant styles using backgroundImage for layered colors
178
190
  * Pseudo-classes are nested within properties per StyleX recommendation
179
191
  * Overlay is stacked on top of base color using multiple linear-gradients
180
- * Focus outline color matches variant (destructive uses negative color)
192
+ * Focus outline is shared across variants for consistent keyboard affordance.
181
193
  */
182
194
  const variants = stylex.create({
183
195
  primary: {
@@ -190,15 +202,6 @@ const variants = stylex.create({
190
202
  },
191
203
  ':active': `linear-gradient(${colorVars['--color-overlay-pressed']}, ${colorVars['--color-overlay-pressed']})`,
192
204
  },
193
- outline: {
194
- default: null,
195
- ':focus-visible': `2px solid ${colorVars['--color-accent']}`,
196
- },
197
- '--button-focus-offset': '3px',
198
- outlineOffset: {
199
- default: '0',
200
- ':focus-visible': 'var(--button-focus-offset)',
201
- },
202
205
  },
203
206
  secondary: {
204
207
  backgroundColor: colorVars['--color-neutral'],
@@ -210,15 +213,6 @@ const variants = stylex.create({
210
213
  },
211
214
  ':active': `linear-gradient(${colorVars['--color-overlay-pressed']}, ${colorVars['--color-overlay-pressed']})`,
212
215
  },
213
- outline: {
214
- default: null,
215
- ':focus-visible': `2px solid ${colorVars['--color-accent']}`,
216
- },
217
- '--button-focus-offset': '3px',
218
- outlineOffset: {
219
- default: '0',
220
- ':focus-visible': 'var(--button-focus-offset)',
221
- },
222
216
  },
223
217
  ghost: {
224
218
  backgroundColor: 'transparent',
@@ -230,19 +224,14 @@ const variants = stylex.create({
230
224
  },
231
225
  ':active': `linear-gradient(${colorVars['--color-overlay-pressed']}, ${colorVars['--color-overlay-pressed']})`,
232
226
  },
233
- outline: {
234
- default: null,
235
- ':focus-visible': `2px solid ${colorVars['--color-accent']}`,
236
- },
237
- '--button-focus-offset': '3px',
238
- outlineOffset: {
239
- default: '0',
240
- ':focus-visible': 'var(--button-focus-offset)',
241
- },
242
227
  },
243
228
  destructive: {
244
229
  backgroundColor: colorVars['--color-error'],
245
230
  color: colorVars['--color-on-error'],
231
+ // The ring matches the variant it rings: an accent-colored outline on a
232
+ // red button reads as another control's focus. Only the color differs —
233
+ // width, style and offset come from the shared outline.
234
+ outlineColor: {default: null, ':focus-visible': colorVars['--color-error']},
246
235
  backgroundImage: {
247
236
  default: null,
248
237
  ':hover': {
@@ -250,38 +239,9 @@ const variants = stylex.create({
250
239
  },
251
240
  ':active': `linear-gradient(${colorVars['--color-overlay-pressed']}, ${colorVars['--color-overlay-pressed']})`,
252
241
  },
253
- outline: {
254
- default: null,
255
- ':focus-visible': `2px solid ${colorVars['--color-error']}`,
256
- },
257
- '--button-focus-offset': '3px',
258
- outlineOffset: {
259
- default: '0',
260
- ':focus-visible': 'var(--button-focus-offset)',
261
- },
262
242
  },
263
243
  });
264
244
 
265
- /**
266
- * Extensible variant map for Button.
267
- *
268
- * Theme packages can add custom variants via TypeScript module augmentation:
269
- * @example
270
- * ```
271
- * declare module '@astryxdesign/core/Button' {
272
- * interface ButtonVariantMap {
273
- * 'primary-muted': true;
274
- * }
275
- * }
276
- * ```
277
- */
278
- export interface ButtonVariantMap {
279
- primary: true;
280
- secondary: true;
281
- ghost: true;
282
- destructive: true;
283
- }
284
-
285
245
  /**
286
246
  * Button variant type derived from ButtonVariantMap.
287
247
  * Extensible via module augmentation of ButtonVariantMap.
@@ -611,6 +571,7 @@ export function Button({
611
571
  ref,
612
572
  ...props
613
573
  }: ButtonProps): ReactNode {
574
+ const t = useTranslator();
614
575
  const size = useSize(sizeProp, 'md');
615
576
  const buttonGroup = useButtonGroup();
616
577
 
@@ -693,10 +654,9 @@ export function Button({
693
654
  const edgeCompAttr = isFlat ? {[EDGE_COMP_ATTR]: ''} : null;
694
655
 
695
656
  // Shared StyleX props for both button and link rendering
696
- const sharedStylexProps = stylex.props(
657
+ const sharedStylexProps = focusOutlineProps.focusVisible(
697
658
  styles.base,
698
659
  sizeStyles[size],
699
- variants[variant],
700
660
  isIconOnly && styles.iconOnly,
701
661
  buttonDisabled && styles.disabled,
702
662
  useAriaDisabled && styles.ariaDisabled,
@@ -710,11 +670,14 @@ export function Button({
710
670
  (variant === 'primary' || variant === 'destructive') &&
711
671
  (buttonGroup.orientation === 'horizontal'
712
672
  ? groupStyles.onSolidHorizontal
713
- : groupStyles.onSolidVertical),
714
- // Standalone floating buttons only — a grouped button's elevation is owned
673
+ : groupStyles.onSolidVertical), // Standalone floating buttons only — a grouped button's elevation is owned
715
674
  // by the ButtonGroup so the shared surface lifts as one unit.
716
675
  !buttonGroup && elevationStyles[elevation],
717
676
  width != null && dynamicStyles.width(width),
677
+ // AFTER the shared focus outline: the outline supplies width/style/offset
678
+ // for every variant, and `destructive` re-colors just the ring to match
679
+ // its own surface. Ordering is the mechanism — StyleX is last-wins.
680
+ variants[variant],
718
681
  xstyle,
719
682
  );
720
683
 
@@ -760,7 +723,7 @@ export function Button({
760
723
  </span>
761
724
  {/* Live region for loading state announcements */}
762
725
  <VisuallyHidden role="status" aria-live="polite">
763
- {isLoadingState ? 'Loading' : ''}
726
+ {isLoadingState ? t('@astryx.button.loading') : ''}
764
727
  </VisuallyHidden>
765
728
  </>
766
729
  );
@@ -5,16 +5,31 @@
5
5
  /**
6
6
  * @file index.ts
7
7
  * @input Imports Button component and types from Button.tsx
8
- * @output Exports Button, ButtonProps, ButtonVariant
8
+ * @output Exports Button, ButtonProps, ButtonVariant, ButtonVariantMap
9
9
  * @position Component entry point; re-exported by /packages/core/src/index.ts
10
10
  *
11
11
  * SYNC: When modified, update this header and /packages/core/src/Button/Button.doc.mjs
12
12
  */
13
13
 
14
+ /**
15
+ * Extensible variant map for Button.
16
+ *
17
+ * Theme builds can add custom variants via TypeScript module augmentation:
18
+ * @example
19
+ * ```
20
+ * declare module '@astryxdesign/core/Button' {
21
+ * interface ButtonVariantMap {
22
+ * 'primary-muted': true;
23
+ * }
24
+ * }
25
+ * ```
26
+ */
27
+ export interface ButtonVariantMap {
28
+ primary: true;
29
+ secondary: true;
30
+ ghost: true;
31
+ destructive: true;
32
+ }
33
+
14
34
  export {Button} from './Button';
15
- export type {
16
- ButtonProps,
17
- ButtonVariant,
18
- ButtonSize,
19
- } from './Button';
20
- export type {ButtonVariantMap} from './Button';
35
+ export type {ButtonProps, ButtonVariant, ButtonSize} from './Button';
@@ -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: 'ButtonGroup',
@@ -54,7 +54,7 @@ export const docs = {
54
54
  },
55
55
  };
56
56
 
57
- /** @type {import('../docs-types').TranslationDoc} */
57
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
58
58
  export const docsZh = {
59
59
  components: [
60
60
  {
@@ -92,7 +92,7 @@ export const docsZh = {
92
92
  },
93
93
  };
94
94
 
95
- /** @type {import('../docs-types').TranslationDoc} */
95
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
96
96
  export const docsDense = {
97
97
  description: 'connected button group w/ shared borders, outer-only radius, horizontal/vertical',
98
98
  usage: {
@@ -18,7 +18,7 @@
18
18
  * - /packages/core/src/ButtonGroup/ButtonGroup.test.tsx (tests)
19
19
  * - /packages/core/src/ButtonGroup/index.ts (exports if types change)
20
20
  * - /apps/storybook/stories/ButtonGroup.stories.tsx (storybook stories)
21
- * - /packages/cli/templates/blocks/components/ButtonGroup/ (showcase blocks)
21
+ * - /packages/cli/assets/templates/blocks/components/ButtonGroup/ (showcase blocks)
22
22
  */
23
23
 
24
24
  import {useMemo, type ReactNode} from 'react';
@@ -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: 'Calendar',
@@ -117,7 +117,7 @@ export const docs = {
117
117
  },
118
118
  };
119
119
 
120
- /** @type {import('../docs-types').ComponentDoc} */
120
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
121
121
  export const docsZh = {
122
122
  name: 'Calendar',
123
123
  displayName: 'Calendar',
@@ -181,7 +181,7 @@ export const docsZh = {
181
181
  },
182
182
  };
183
183
 
184
- /** @type {import('../docs-types').TranslationDoc} */
184
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
185
185
  export const docsDense = {
186
186
  description: 'month grid for picking a date or date range',
187
187
  usage: {
@@ -9,7 +9,7 @@
9
9
  * SYNC: When Calendar.tsx changes, update tests accordingly
10
10
  */
11
11
 
12
- import {describe, it, expect, vi, afterEach} from 'vitest';
12
+ import {describe, it, expect, vi, beforeEach, afterEach} from 'vitest';
13
13
  import {act, render, screen, within, waitFor} from '@testing-library/react';
14
14
  import userEvent from '@testing-library/user-event';
15
15
  import {getButton} from '../__tests__/fastRoleQueries';
@@ -19,9 +19,13 @@ import type {CalendarHandle} from './Calendar';
19
19
  import type {ISODateString} from './Calendar';
20
20
  import {calendarStyles} from './styles';
21
21
  import {defineTheme} from '../theme/defineTheme';
22
- import {generateThemeCSSFlat} from '../theme/generateThemeRules';
22
+ import {generateThemeCSS} from '../theme/generateThemeRules';
23
23
  import {__resetLiveRegionsForTest} from '../hooks/useAnnounce';
24
24
 
25
+ function generateThemeTestCSS(theme: Parameters<typeof generateThemeCSS>[0]) {
26
+ const {prose, component} = generateThemeCSS(theme);
27
+ return [prose, component].filter(Boolean).join('\n\n');
28
+ }
25
29
  afterEach(() => {
26
30
  __resetLiveRegionsForTest();
27
31
  });
@@ -1038,8 +1042,20 @@ describe('Calendar', () => {
1038
1042
 
1039
1043
  // ─── Day-cell marker theming (#4286) ─────────────────────────
1040
1044
  describe('day-cell marker theme state', () => {
1041
- // Tests use the real "today" (as the existing aria-current tests do) since
1042
- // Calendar derives it internally. Helpers pin the exact ISO strings.
1045
+ // Pin "today" to a mid-month date so the ±2-day range helpers below stay
1046
+ // within a single rendered month. With the real clock, running near a month
1047
+ // boundary (e.g. the 1st) pushed today-2 into the previous month, so the
1048
+ // rendered grid didn't contain today's cell and the marker assertions
1049
+ // flaked. Fake only Date (timers stay real; these tests are synchronous).
1050
+ beforeEach(() => {
1051
+ vi.useFakeTimers({toFake: ['Date']});
1052
+ vi.setSystemTime(new Date(2026, 5, 15, 12, 0, 0));
1053
+ });
1054
+ afterEach(() => {
1055
+ vi.useRealTimers();
1056
+ });
1057
+ // Tests use the (now-pinned) "today" since Calendar derives it internally.
1058
+ // Helpers pin the exact ISO strings.
1043
1059
  function todayISO(): ISODateString {
1044
1060
  const n = new Date();
1045
1061
  return `${n.getFullYear()}-${String(n.getMonth() + 1).padStart(2, '0')}-${String(n.getDate()).padStart(2, '0')}` as ISODateString;
@@ -1136,7 +1152,7 @@ describe('Calendar', () => {
1136
1152
  },
1137
1153
  },
1138
1154
  });
1139
- const css = generateThemeCSSFlat(theme);
1155
+ const css = generateThemeTestCSS(theme);
1140
1156
  expect(css).toContain('.astryx-calendar-day.today-only');
1141
1157
  expect(css).toContain('.astryx-calendar-day.today-in-range');
1142
1158
  expect(css).toContain('box-shadow: inset 0 0 0 2px var(--color-accent)');
@@ -1217,7 +1233,7 @@ describe('Calendar', () => {
1217
1233
  },
1218
1234
  },
1219
1235
  });
1220
- const css = generateThemeCSSFlat(theme);
1236
+ const css = generateThemeTestCSS(theme);
1221
1237
  expect(css).toContain('.astryx-calendar-nav {');
1222
1238
  expect(css).toContain('color: var(--color-accent)');
1223
1239
  expect(css).toContain('.astryx-calendar-nav.next');
@@ -14,7 +14,7 @@
14
14
  * - /packages/core/src/Calendar/Calendar.test.tsx (tests for new/changed behavior)
15
15
  * - /packages/core/src/Calendar/index.ts (exports if types change)
16
16
  * - /apps/storybook/stories/Calendar.stories.tsx (storybook stories)
17
- * - /packages/cli/templates/blocks/components/Calendar/ (showcase blocks)
17
+ * - /packages/cli/assets/templates/blocks/components/Calendar/ (showcase blocks)
18
18
  */
19
19
 
20
20
  import {
@@ -58,6 +58,7 @@ import {
58
58
  DATE_FORMAT_MONTH_YEAR,
59
59
  } from '../utils/plainDate';
60
60
  import {mergeProps, composeEventHandlers, rtlStyles} from '../utils';
61
+ import {focusOutlineProps} from '../utils/focusOutline.stylex';
61
62
  import {
62
63
  computeDayCellState,
63
64
  computeRangeRounding,
@@ -1102,7 +1103,7 @@ function DayCell({
1102
1103
  // the default rendering.
1103
1104
  marker: markerState,
1104
1105
  }),
1105
- stylex.props(
1106
+ focusOutlineProps.focusVisible(
1106
1107
  dayCellStyles.day,
1107
1108
  dayCellTheme.day,
1108
1109
  isOutside && dayCellStyles.dayOutside,
@@ -38,11 +38,6 @@ export type {
38
38
  } from './hooks';
39
39
 
40
40
  // Re-export calendar-specific utilities for advanced usage
41
- export {
42
- isSameDay,
43
- isDateInRange,
44
- getWeekNumber,
45
- formatAccessibleDate,
46
- } from './utils';
41
+ export {isSameDay, isDateInRange, getWeekNumber} from './utils';
47
42
 
48
43
  // Re-export theme styles for customization
@@ -215,9 +215,9 @@ export const dayCellStyles = stylex.create({
215
215
  content: '""',
216
216
  position: 'absolute',
217
217
  top: '-2px',
218
- right: '-2px',
218
+ insetInlineEnd: '-2px',
219
219
  bottom: '-2px',
220
- left: '-2px',
220
+ insetInlineStart: '-2px',
221
221
  },
222
222
  },
223
223
 
@@ -258,14 +258,6 @@ export const dayCellTheme = stylex.create({
258
258
  '@media (hover: hover)': `linear-gradient(${colorVars['--color-overlay-hover']}, ${colorVars['--color-overlay-hover']})`,
259
259
  },
260
260
  },
261
- outline: {
262
- default: null,
263
- ':focus-visible': `2px solid ${colorVars['--color-accent']}`,
264
- },
265
- outlineOffset: {
266
- default: '0',
267
- ':focus-visible': '2px',
268
- },
269
261
  },
270
262
 
271
263
  // Outside days (adjacent months)
@@ -7,8 +7,6 @@
7
7
  * @position Shared utilities; used by Calendar, CalendarMonthGrid, CalendarDayCell
8
8
  */
9
9
 
10
- import {plainDateFormat, DATE_FORMAT_WITH_WEEKDAY} from '../utils/plainDate';
11
-
12
10
  export {
13
11
  type PlainDate,
14
12
  plainDateFromISO as parseISO,
@@ -17,12 +15,3 @@ export {
17
15
  plainDateIsInRange as isDateInRange,
18
16
  plainDateGetWeekNumber as getWeekNumber,
19
17
  } from '../utils/plainDate';
20
-
21
- export {plainDateFormat, DATE_FORMAT_WITH_WEEKDAY};
22
-
23
- /** @deprecated Use `plainDateFormat(pd, DATE_FORMAT_WITH_WEEKDAY)` instead. */
24
- export function formatAccessibleDate(
25
- ...args: Parameters<typeof plainDateFormat>
26
- ): string {
27
- return plainDateFormat(args[0], DATE_FORMAT_WITH_WEEKDAY);
28
- }
@@ -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: 'Card',
@@ -103,7 +103,7 @@ export const docs = {
103
103
  },
104
104
  };
105
105
 
106
- /** @type {import('../docs-types').ComponentDoc} */
106
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
107
107
  export const docsZh = {
108
108
  name: 'Card',
109
109
  displayName: 'Card',
@@ -151,7 +151,7 @@ export const docsZh = {
151
151
  },
152
152
  };
153
153
 
154
- /** @type {import('../docs-types').TranslationDoc} */
154
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
155
155
  export const docsDense = {
156
156
  description: 'bordered container for DISCRETE items; NOT the default layout tool. Most content doesn\'t need a card.',
157
157
  usage: {
package/src/Card/Card.tsx CHANGED
@@ -12,7 +12,7 @@
12
12
  * - /packages/core/src/Card/Card.doc.mjs (props table, features)
13
13
  * - /packages/core/src/Card/index.ts (exports if types change)
14
14
  * - /apps/storybook/stories/Card.stories.tsx (storybook stories)
15
- * - /packages/cli/templates/blocks/components/Card/ (showcase blocks)
15
+ * - /packages/cli/assets/templates/blocks/components/Card/ (showcase blocks)
16
16
  */
17
17
 
18
18
  import type {ReactNode} from 'react';
@@ -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: 'Carousel',
@@ -12,6 +12,7 @@ export const docs = {
12
12
  'Carousel scrolls a row of items horizontally when they overflow the available width. Use it for card grids, image galleries, product lists, or any set of items that should be browsable without taking up the full page.',
13
13
  bestPractices: [
14
14
  {guidance: true, description: 'Enable scroll-snap when each item should land precisely at the start edge, like a gallery or product list.'},
15
+ {guidance: true, description: 'Reach for hasLoop on small, cyclable sets like a photo gallery, where wrapping past the last item back to the first feels natural.'},
15
16
  {guidance: true, description: 'Always provide an aria-label that describes what the carousel contains, like "Featured products" or "Team members".'},
16
17
  {guidance: true, description: 'Use a consistent gap and item width so the carousel looks intentional, not like content overflowing by accident.'},
17
18
  {guidance: true, description: 'Trust the built-in navigation: trackpad users can swipe horizontally, and mouse users can hold Shift while scrolling the wheel to move through items.'},
@@ -31,10 +32,12 @@ export const docs = {
31
32
  {name: 'gap', type: "0 | 0.5 | 1 | 1.5 | 2 | 3 | 4", description: 'Gap between items using the spacing token scale.', default: '1'},
32
33
  {name: 'hasButtons', type: 'boolean', description: 'Show prev/next navigation buttons when content is scrollable.', default: 'true'},
33
34
  {name: 'hasEdgeFade', type: 'boolean', description: 'Show a gradient edge-fade mask when content overflows, signalling that more items exist off-screen.', default: 'true'},
35
+ {name: 'hasLoop', type: 'boolean', description: 'Wrap-around scrolling: next at the end scrolls to the start, prev at the start scrolls to the end. Buttons stay visible at both edges. Only engages when content overflows.', default: 'false'},
34
36
  {name: 'hasSnap', type: 'boolean', description: 'Enable scroll-snap so each child snaps to the start edge.', default: 'false'},
35
37
  {name: 'padding', type: '0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 8 | 10', description: 'Inline padding inside the scroll container, with matching scroll-padding so snap points align to the content edge.'},
36
38
  {name: 'aria-label', type: 'string', description: 'Accessible label for the carousel region.', default: "\'Carousel\'"},
37
39
  {name: 'ref', type: 'React.Ref<HTMLDivElement>', description: 'Ref forwarded to the root element.'},
40
+ {name: 'handleRef', type: 'React.Ref<CarouselHandle>', description: 'Imperative handle exposing scrollNext(), scrollPrev(), scrollTo(index), canScrollNext(), and canScrollPrev() for programmatic scroll control.'},
38
41
  {name: 'xstyle', type: 'StyleXStyles', description: 'StyleX styles for layout customization (margins, positioning, sizing). Must be a stylex.create() value.'},
39
42
  {name: 'className', type: 'string', description: 'CSS class name for the root element. Prefer xstyle for styling.'},
40
43
  {name: 'style', type: 'CSSProperties', description: 'Inline styles for the root element. Prefer xstyle.'},
@@ -56,15 +59,17 @@ export const docs = {
56
59
  },
57
60
  };
58
61
 
59
- /** @type {import('../docs-types').TranslationDoc} */
62
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
60
63
  export const docsZh = {
61
64
  usage: {
62
65
  description:
63
66
  'Carousel 在项目超出可用宽度时将一行项目水平滚动。适用于卡片网格、图片画廊、产品列表,或任何希望无需占据整页即可浏览的项目集合。',
64
67
  bestPractices: [
65
68
  {guidance: true, description: '当每个项目应精确对齐到起始边缘时启用滚动吸附,例如画廊或产品列表。'},
69
+ {guidance: true, description: '在小型可循环的集合(如照片画廊)上使用 hasLoop,此时从最后一项绕回第一项的滚动更自然。'},
66
70
  {guidance: true, description: '始终提供描述轮播内容的 aria-label,例如"精选产品"或"团队成员"。'},
67
71
  {guidance: true, description: '使用一致的间距和项目宽度,让轮播看起来是有意为之,而不是内容意外溢出。'},
72
+ {guidance: true, description: '信任内置导航:触控板用户可水平滑动,鼠标用户可按住 Shift 滚动滚轮来浏览项目。'},
68
73
  {guidance: false, description: '将每位用户都必须看到的内容放入轮播。并非所有人都会水平滚动,关键内容应放在首屏。'},
69
74
  {guidance: false, description: '自动轮播项目。让用户按自己的节奏滚动。'},
70
75
  {guidance: false, description: '嵌套轮播。轮播中嵌套轮播会造成困惑并破坏键盘导航。'},
@@ -75,13 +80,15 @@ export const docsZh = {
75
80
  gap: '使用间距令牌比例的项目间距。',
76
81
  hasButtons: '内容可滚动时显示上一个/下一个导航按钮。',
77
82
  hasEdgeFade: '内容溢出时显示渐变边缘遮罩,提示屏幕外还有更多项目。',
83
+ hasLoop: '环绕滚动:在末尾按"下一个"回到开头,在开头按"上一个"跳到末尾。按钮在两端始终可见。仅在内容溢出时生效。',
78
84
  hasSnap: '启用滚动吸附,使每个子元素吸附到起始边缘。',
79
85
  padding: '滚动容器内的内联内边距,并设置匹配的 scroll-padding,使吸附点与内容边缘对齐。',
80
86
  'aria-label': '轮播区域的无障碍标签。',
87
+ handleRef: '命令式句柄,暴露 scrollNext()、scrollPrev()、scrollTo(index)、canScrollNext() 和 canScrollPrev() 以进行编程式滚动控制。',
81
88
  },
82
89
  };
83
90
 
84
- /** @type {import('../docs-types').TranslationDoc} */
91
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
85
92
  export const docsDense = {
86
93
  description: 'horizontal scroll container w/ fade edges, nav buttons, scroll-snap',
87
94
  usage: {
@@ -89,6 +96,7 @@ export const docsDense = {
89
96
  'Carousel scrolls items horizontally when they overflow. Use for card grids, galleries, product lists.',
90
97
  bestPractices: [
91
98
  {guidance: true, description: 'Enable scroll-snap when each item should land precisely at the start edge: gallery, product list.'},
99
+ {guidance: true, description: 'Reach for hasLoop on small cyclable sets (photo gallery) where wrapping past the last item back to the first feels natural.'},
92
100
  {guidance: true, description: 'Always provide an aria-label describing what the carousel contains: "Featured products", "Team members".'},
93
101
  {guidance: true, description: 'Use consistent gap + item width so the carousel looks intentional, not like content overflowing by accident.'},
94
102
  {guidance: true, description: 'Trust built-in navigation: trackpad users swipe horizontally, mouse users hold Shift + wheel to move through items.'},
@@ -102,9 +110,11 @@ export const docsDense = {
102
110
  gap: 'item spacing via spacing token scale',
103
111
  hasButtons: 'prev/next buttons when content is scrollable',
104
112
  hasEdgeFade: 'gradient edge-fade mask on overflow',
113
+ hasLoop: 'wrap-around: next at end -> start, prev at start -> end; buttons stay visible; only when overflowing',
105
114
  hasSnap: 'scroll-snap; children snap to start edge',
106
115
  padding: 'inline padding; scroll-padding keeps snap points on content edge',
107
116
  'aria-label': 'accessible label for carousel region',
117
+ handleRef: 'imperative handle: scrollNext/scrollPrev/scrollTo(index)/canScrollNext/canScrollPrev',
108
118
  'data-testid': 'test selector for automated testing frameworks',
109
119
  },
110
120
  };