@astryxdesign/core 0.2.0 → 0.3.0-canary.269c970

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 (1094) 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 +16 -12
  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 +7 -3
  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 +6 -34
  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.js +4 -3
  44. package/dist/Breadcrumbs/Breadcrumbs.d.ts +2 -18
  45. package/dist/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  46. package/dist/Breadcrumbs/Breadcrumbs.js +1 -15
  47. package/dist/Breadcrumbs/index.d.ts +18 -1
  48. package/dist/Breadcrumbs/index.d.ts.map +1 -1
  49. package/dist/Breadcrumbs/index.js +14 -0
  50. package/dist/Button/Button.d.ts +3 -21
  51. package/dist/Button/Button.d.ts.map +1 -1
  52. package/dist/Button/Button.js +6 -19
  53. package/dist/Button/index.d.ts +21 -3
  54. package/dist/Button/index.d.ts.map +1 -1
  55. package/dist/Button/index.js +15 -1
  56. package/dist/ButtonGroup/ButtonGroup.d.ts +1 -1
  57. package/dist/ButtonGroup/ButtonGroup.js +1 -1
  58. package/dist/Calendar/Calendar.js +1 -1
  59. package/dist/Calendar/index.d.ts +1 -1
  60. package/dist/Calendar/index.d.ts.map +1 -1
  61. package/dist/Calendar/index.js +1 -1
  62. package/dist/Calendar/styles.d.ts +2 -2
  63. package/dist/Calendar/styles.js +2 -2
  64. package/dist/Calendar/utils.d.ts +0 -4
  65. package/dist/Calendar/utils.d.ts.map +1 -1
  66. package/dist/Calendar/utils.js +1 -8
  67. package/dist/Card/Card.d.ts +1 -1
  68. package/dist/Card/Card.js +1 -1
  69. package/dist/Carousel/Carousel.d.ts +54 -3
  70. package/dist/Carousel/Carousel.d.ts.map +1 -1
  71. package/dist/Carousel/Carousel.js +82 -15
  72. package/dist/Carousel/index.d.ts +1 -1
  73. package/dist/Carousel/index.d.ts.map +1 -1
  74. package/dist/Center/Center.d.ts +21 -4
  75. package/dist/Center/Center.d.ts.map +1 -1
  76. package/dist/Center/Center.js +11 -3
  77. package/dist/Chat/ChatComposer.d.ts +1 -1
  78. package/dist/Chat/ChatComposer.js +9 -9
  79. package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
  80. package/dist/Chat/ChatComposerDrawer.js +5 -5
  81. package/dist/Chat/ChatComposerInput.d.ts +1 -1
  82. package/dist/Chat/ChatComposerInput.js +1 -1
  83. package/dist/Chat/ChatDictationButton.d.ts +1 -1
  84. package/dist/Chat/ChatDictationButton.js +1 -1
  85. package/dist/Chat/ChatLayout.d.ts +8 -1
  86. package/dist/Chat/ChatLayout.d.ts.map +1 -1
  87. package/dist/Chat/ChatLayout.js +15 -4
  88. package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
  89. package/dist/Chat/ChatLayoutScrollButton.js +1 -1
  90. package/dist/Chat/ChatMessage.d.ts +1 -1
  91. package/dist/Chat/ChatMessage.js +1 -1
  92. package/dist/Chat/ChatMessageBubble.d.ts +1 -1
  93. package/dist/Chat/ChatMessageBubble.js +1 -1
  94. package/dist/Chat/ChatMessageList.d.ts +1 -1
  95. package/dist/Chat/ChatMessageList.js +1 -1
  96. package/dist/Chat/ChatSendButton.d.ts.map +1 -1
  97. package/dist/Chat/ChatSendButton.js +4 -2
  98. package/dist/Chat/ChatSystemMessage.d.ts +1 -1
  99. package/dist/Chat/ChatSystemMessage.js +1 -1
  100. package/dist/Chat/ChatTokenizedText.d.ts +1 -1
  101. package/dist/Chat/ChatTokenizedText.js +1 -1
  102. package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
  103. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  104. package/dist/CheckboxInput/CheckboxInput.js +3 -3
  105. package/dist/CheckboxList/CheckboxList.d.ts +1 -1
  106. package/dist/CheckboxList/CheckboxList.js +1 -1
  107. package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
  108. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  109. package/dist/CheckboxList/CheckboxListItem.js +20 -5
  110. package/dist/Citation/Citation.d.ts +1 -1
  111. package/dist/Citation/Citation.js +1 -1
  112. package/dist/ClickableCard/ClickableCard.d.ts +3 -3
  113. package/dist/ClickableCard/ClickableCard.js +3 -3
  114. package/dist/Code/Code.d.ts +2 -2
  115. package/dist/Code/Code.js +2 -2
  116. package/dist/CodeBlock/CodeBlock.js +2 -2
  117. package/dist/Collapsible/Collapsible.d.ts +1 -1
  118. package/dist/Collapsible/Collapsible.js +3 -3
  119. package/dist/Collapsible/CollapsibleGroup.d.ts +1 -1
  120. package/dist/Collapsible/CollapsibleGroup.js +1 -1
  121. package/dist/Collapsible/CollapsibleGroupContext.js +1 -1
  122. package/dist/CommandPalette/CommandPalette.d.ts +1 -1
  123. package/dist/CommandPalette/CommandPalette.js +1 -1
  124. package/dist/CommandPalette/CommandPaletteEmpty.js +1 -1
  125. package/dist/CommandPalette/CommandPaletteFooter.js +1 -1
  126. package/dist/CommandPalette/CommandPaletteGroup.js +1 -1
  127. package/dist/CommandPalette/CommandPaletteInput.d.ts +2 -2
  128. package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
  129. package/dist/CommandPalette/CommandPaletteInput.js +4 -2
  130. package/dist/CommandPalette/CommandPaletteItem.d.ts +1 -1
  131. package/dist/CommandPalette/CommandPaletteItem.js +1 -1
  132. package/dist/CommandPalette/CommandPaletteList.js +1 -1
  133. package/dist/ComplexSelector/ComplexSelector.d.ts +108 -0
  134. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -0
  135. package/dist/ComplexSelector/ComplexSelector.js +316 -0
  136. package/dist/ComplexSelector/index.d.ts +7 -0
  137. package/dist/ComplexSelector/index.d.ts.map +1 -0
  138. package/dist/ComplexSelector/index.js +10 -0
  139. package/dist/ContextMenu/ContextMenu.d.ts +2 -2
  140. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  141. package/dist/ContextMenu/ContextMenu.js +24 -6
  142. package/dist/DateInput/DateInput.js +1 -1
  143. package/dist/DateRangeInput/DateRangeInput.js +1 -1
  144. package/dist/DateTimeInput/DateTimeInput.js +1 -1
  145. package/dist/Dialog/Dialog.d.ts +33 -24
  146. package/dist/Dialog/Dialog.d.ts.map +1 -1
  147. package/dist/Dialog/Dialog.js +47 -31
  148. package/dist/Dialog/DialogHeader.d.ts +1 -1
  149. package/dist/Dialog/DialogHeader.js +1 -1
  150. package/dist/Dialog/index.d.ts +18 -1
  151. package/dist/Dialog/index.d.ts.map +1 -1
  152. package/dist/Dialog/index.js +14 -0
  153. package/dist/Divider/Divider.d.ts +2 -18
  154. package/dist/Divider/Divider.d.ts.map +1 -1
  155. package/dist/Divider/Divider.js +1 -15
  156. package/dist/Divider/index.d.ts +18 -1
  157. package/dist/Divider/index.d.ts.map +1 -1
  158. package/dist/Divider/index.js +14 -0
  159. package/dist/DropdownMenu/DropdownMenu.d.ts +9 -3
  160. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  161. package/dist/DropdownMenu/DropdownMenu.js +23 -19
  162. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +18 -12
  163. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  164. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +38 -63
  165. package/dist/DropdownMenu/DropdownMenuItem.d.ts +1 -1
  166. package/dist/DropdownMenu/DropdownMenuItem.js +1 -1
  167. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts +8 -11
  168. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts.map +1 -1
  169. package/dist/DropdownMenu/DropdownMenuRadioGroup.js +3 -1
  170. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +1 -1
  171. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  172. package/dist/DropdownMenu/DropdownMenuRadioItem.js +6 -2
  173. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +1 -1
  174. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  175. package/dist/DropdownMenu/DropdownMenuSubMenu.js +14 -6
  176. package/dist/DropdownMenu/menuItemHover.d.ts +1 -0
  177. package/dist/DropdownMenu/menuItemHover.d.ts.map +1 -1
  178. package/dist/DropdownMenu/menuItemHover.js +1 -0
  179. package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
  180. package/dist/DropdownMenu/renderDropdownItems.js +6 -4
  181. package/dist/EmptyState/EmptyState.d.ts +1 -1
  182. package/dist/EmptyState/EmptyState.js +1 -1
  183. package/dist/Field/Field.d.ts +1 -1
  184. package/dist/Field/Field.js +1 -1
  185. package/dist/Field/FieldLabel.d.ts +4 -3
  186. package/dist/Field/FieldLabel.d.ts.map +1 -1
  187. package/dist/Field/FieldLabel.js +48 -5
  188. package/dist/FieldStatus/FieldStatus.d.ts +1 -18
  189. package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
  190. package/dist/FieldStatus/FieldStatus.js +13 -17
  191. package/dist/FieldStatus/index.d.ts +19 -1
  192. package/dist/FieldStatus/index.d.ts.map +1 -1
  193. package/dist/FieldStatus/index.js +14 -0
  194. package/dist/FileInput/FileInput.js +1 -1
  195. package/dist/FormLayout/FormLayout.d.ts +1 -1
  196. package/dist/FormLayout/FormLayout.d.ts.map +1 -1
  197. package/dist/FormLayout/FormLayout.js +1 -1
  198. package/dist/Grid/Grid.d.ts +2 -10
  199. package/dist/Grid/Grid.d.ts.map +1 -1
  200. package/dist/Grid/Grid.js +1 -10
  201. package/dist/Grid/GridSpan.d.ts +1 -1
  202. package/dist/Grid/GridSpan.js +1 -1
  203. package/dist/HStack/HStack.d.ts +1 -1
  204. package/dist/HStack/HStack.js +1 -1
  205. package/dist/Heading/Heading.d.ts +2 -2
  206. package/dist/Heading/Heading.d.ts.map +1 -1
  207. package/dist/Heading/Heading.js +5 -4
  208. package/dist/HoverCard/HoverCard.d.ts +1 -1
  209. package/dist/HoverCard/HoverCard.js +1 -1
  210. package/dist/Icon/Icon.d.ts +1 -1
  211. package/dist/Icon/Icon.d.ts.map +1 -1
  212. package/dist/Icon/Icon.js +4 -2
  213. package/dist/Icon/defaultIcons.d.ts.map +1 -1
  214. package/dist/Icon/defaultIcons.js +14 -0
  215. package/dist/Icon/globalIconRegistry.d.ts +48 -6
  216. package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
  217. package/dist/Icon/globalIconRegistry.js +74 -7
  218. package/dist/Icon/index.d.ts +4 -3
  219. package/dist/Icon/index.d.ts.map +1 -1
  220. package/dist/Icon/index.js +2 -1
  221. package/dist/Icon/useIcon.d.ts +14 -0
  222. package/dist/Icon/useIcon.d.ts.map +1 -0
  223. package/dist/Icon/useIcon.js +21 -0
  224. package/dist/IconButton/IconButton.d.ts +1 -1
  225. package/dist/IconButton/IconButton.js +1 -1
  226. package/dist/InputGroup/InputGroup.d.ts +1 -1
  227. package/dist/InputGroup/InputGroup.js +1 -1
  228. package/dist/InputGroup/InputGroupText.d.ts +1 -1
  229. package/dist/InputGroup/InputGroupText.js +1 -1
  230. package/dist/Item/Item.d.ts +17 -4
  231. package/dist/Item/Item.d.ts.map +1 -1
  232. package/dist/Item/Item.js +32 -7
  233. package/dist/Kbd/Kbd.d.ts +1 -1
  234. package/dist/Kbd/Kbd.js +1 -1
  235. package/dist/Layout/Layout.d.ts +1 -1
  236. package/dist/Layout/Layout.js +1 -1
  237. package/dist/Layout/LayoutContent.d.ts +1 -1
  238. package/dist/Layout/LayoutContent.js +1 -1
  239. package/dist/Layout/LayoutFooter.d.ts +1 -1
  240. package/dist/Layout/LayoutFooter.js +1 -1
  241. package/dist/Layout/LayoutHeader.d.ts +1 -1
  242. package/dist/Layout/LayoutHeader.js +1 -1
  243. package/dist/Layout/LayoutPanel.d.ts +1 -1
  244. package/dist/Layout/LayoutPanel.js +1 -1
  245. package/dist/Lightbox/Lightbox.d.ts +6 -4
  246. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  247. package/dist/Lightbox/Lightbox.js +117 -26
  248. package/dist/Link/Link.d.ts +1 -1
  249. package/dist/Link/Link.js +1 -1
  250. package/dist/Link/LinkProvider.d.ts +2 -2
  251. package/dist/Link/LinkProvider.js +2 -2
  252. package/dist/List/List.d.ts +1 -1
  253. package/dist/List/List.js +1 -1
  254. package/dist/List/ListItem.d.ts +12 -2
  255. package/dist/List/ListItem.d.ts.map +1 -1
  256. package/dist/List/ListItem.js +3 -1
  257. package/dist/Markdown/Markdown.d.ts.map +1 -1
  258. package/dist/Markdown/Markdown.js +35 -13
  259. package/dist/MetadataList/MetadataList.d.ts +2 -2
  260. package/dist/MetadataList/MetadataList.d.ts.map +1 -1
  261. package/dist/MetadataList/MetadataList.js +38 -12
  262. package/dist/MetadataList/MetadataListItem.d.ts +1 -1
  263. package/dist/MetadataList/MetadataListItem.js +1 -1
  264. package/dist/MobileNav/MobileNav.d.ts +1 -1
  265. package/dist/MobileNav/MobileNav.js +1 -1
  266. package/dist/MoreMenu/MoreMenu.d.ts +1 -1
  267. package/dist/MoreMenu/MoreMenu.js +3 -3
  268. package/dist/MultiSelector/MultiSelector.d.ts +13 -4
  269. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  270. package/dist/MultiSelector/MultiSelector.js +118 -24
  271. package/dist/NavIcon/NavIcon.d.ts +1 -1
  272. package/dist/NavIcon/NavIcon.js +1 -1
  273. package/dist/NavMenu/index.d.ts +0 -2
  274. package/dist/NavMenu/index.d.ts.map +1 -1
  275. package/dist/NavMenu/index.js +1 -3
  276. package/dist/NumberInput/NumberInput.d.ts +1 -1
  277. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  278. package/dist/NumberInput/NumberInput.js +16 -5
  279. package/dist/Outline/Outline.js +1 -1
  280. package/dist/OverflowList/OverflowList.d.ts +1 -1
  281. package/dist/OverflowList/OverflowList.js +1 -1
  282. package/dist/Pagination/Pagination.d.ts +26 -21
  283. package/dist/Pagination/Pagination.d.ts.map +1 -1
  284. package/dist/Pagination/Pagination.js +163 -39
  285. package/dist/Pagination/index.d.ts +22 -1
  286. package/dist/Pagination/index.d.ts.map +1 -1
  287. package/dist/Pagination/index.js +14 -0
  288. package/dist/Popover/Popover.d.ts +20 -3
  289. package/dist/Popover/Popover.d.ts.map +1 -1
  290. package/dist/Popover/Popover.js +5 -1
  291. package/dist/Popover/usePopover.d.ts.map +1 -1
  292. package/dist/Popover/usePopover.js +14 -3
  293. package/dist/PowerSearch/PowerSearch.d.ts +1 -1
  294. package/dist/PowerSearch/PowerSearch.js +1 -1
  295. package/dist/ProgressBar/ProgressBar.d.ts +56 -22
  296. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  297. package/dist/ProgressBar/ProgressBar.js +169 -22
  298. package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts +27 -0
  299. package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts.map +1 -0
  300. package/dist/ProgressBar/ProgressBarMarkTooltip.js +35 -0
  301. package/dist/ProgressBar/index.d.ts +21 -1
  302. package/dist/ProgressBar/index.d.ts.map +1 -1
  303. package/dist/ProgressBar/index.js +14 -0
  304. package/dist/RadioList/RadioList.d.ts +1 -1
  305. package/dist/RadioList/RadioList.js +1 -1
  306. package/dist/RadioList/RadioListItem.d.ts +1 -1
  307. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  308. package/dist/RadioList/RadioListItem.js +2 -2
  309. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  310. package/dist/Resizable/ResizeHandle.js +15 -11
  311. package/dist/Section/Section.d.ts +2 -19
  312. package/dist/Section/Section.d.ts.map +1 -1
  313. package/dist/Section/Section.js +1 -15
  314. package/dist/Section/index.d.ts +19 -1
  315. package/dist/Section/index.d.ts.map +1 -1
  316. package/dist/Section/index.js +14 -0
  317. package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
  318. package/dist/SegmentedControl/SegmentedControl.js +1 -1
  319. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  320. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  321. package/dist/SegmentedControl/SegmentedControlItem.js +4 -3
  322. package/dist/SelectableCard/SelectableCard.d.ts +4 -3
  323. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  324. package/dist/SelectableCard/SelectableCard.js +15 -3
  325. package/dist/Selector/Selector.d.ts +12 -3
  326. package/dist/Selector/Selector.d.ts.map +1 -1
  327. package/dist/Selector/Selector.js +109 -21
  328. package/dist/SideNav/SideNav.d.ts +1 -1
  329. package/dist/SideNav/SideNav.js +1 -1
  330. package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
  331. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  332. package/dist/SideNav/SideNavCollapseButton.js +4 -3
  333. package/dist/SideNav/SideNavHeading.d.ts +1 -1
  334. package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
  335. package/dist/SideNav/SideNavHeading.js +8 -7
  336. package/dist/SideNav/SideNavItem.d.ts +2 -2
  337. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  338. package/dist/SideNav/SideNavItem.js +6 -7
  339. package/dist/SideNav/SideNavSection.d.ts +1 -1
  340. package/dist/SideNav/SideNavSection.js +1 -1
  341. package/dist/Skeleton/Skeleton.d.ts +1 -1
  342. package/dist/Skeleton/Skeleton.d.ts.map +1 -1
  343. package/dist/Skeleton/Skeleton.js +3 -3
  344. package/dist/Slider/Slider.d.ts.map +1 -1
  345. package/dist/Slider/Slider.js +78 -68
  346. package/dist/Spinner/Spinner.d.ts +1 -1
  347. package/dist/Spinner/Spinner.js +1 -1
  348. package/dist/Stack/Stack.d.ts +1 -1
  349. package/dist/Stack/Stack.js +1 -1
  350. package/dist/Stack/StackItem.d.ts +1 -1
  351. package/dist/Stack/StackItem.js +1 -1
  352. package/dist/Stack/stack.stylex.d.ts +3 -3
  353. package/dist/StatusDot/StatusDot.d.ts +1 -20
  354. package/dist/StatusDot/StatusDot.d.ts.map +1 -1
  355. package/dist/StatusDot/StatusDot.js +2 -17
  356. package/dist/StatusDot/index.d.ts +21 -1
  357. package/dist/StatusDot/index.d.ts.map +1 -1
  358. package/dist/StatusDot/index.js +14 -0
  359. package/dist/Switch/Switch.d.ts +2 -6
  360. package/dist/Switch/Switch.d.ts.map +1 -1
  361. package/dist/Switch/Switch.js +18 -10
  362. package/dist/TabList/Tab.d.ts +1 -1
  363. package/dist/TabList/Tab.js +1 -1
  364. package/dist/TabList/TabList.d.ts +1 -1
  365. package/dist/TabList/TabList.js +1 -1
  366. package/dist/TabList/TabMenu.d.ts +1 -1
  367. package/dist/TabList/TabMenu.d.ts.map +1 -1
  368. package/dist/TabList/TabMenu.js +11 -3
  369. package/dist/Table/BaseTable.d.ts +1 -1
  370. package/dist/Table/BaseTable.d.ts.map +1 -1
  371. package/dist/Table/BaseTable.js +4 -7
  372. package/dist/Table/Table.d.ts +1 -1
  373. package/dist/Table/Table.js +1 -1
  374. package/dist/Table/TableCell.d.ts +1 -1
  375. package/dist/Table/TableCell.js +4 -2
  376. package/dist/Table/TableHeaderCell.d.ts +1 -1
  377. package/dist/Table/TableHeaderCell.js +4 -2
  378. package/dist/Table/TableRow.d.ts +1 -1
  379. package/dist/Table/TableRow.js +1 -1
  380. package/dist/Table/index.d.ts +1 -1
  381. package/dist/Table/index.d.ts.map +1 -1
  382. package/dist/Table/index.js +1 -1
  383. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts +1 -1
  384. package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +1 -1
  385. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +18 -3
  386. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  387. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +22 -4
  388. package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
  389. package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
  390. package/dist/Table/plugins/tree/useTableTreeData.js +36 -2
  391. package/dist/Table/types.d.ts +0 -9
  392. package/dist/Table/types.d.ts.map +1 -1
  393. package/dist/Text/Text.d.ts +11 -2
  394. package/dist/Text/Text.d.ts.map +1 -1
  395. package/dist/Text/Text.js +26 -3
  396. package/dist/Text/index.d.ts +31 -1
  397. package/dist/Text/index.d.ts.map +1 -1
  398. package/dist/Text/index.js +23 -0
  399. package/dist/TextArea/TextArea.d.ts +1 -1
  400. package/dist/TextArea/TextArea.d.ts.map +1 -1
  401. package/dist/TextArea/TextArea.js +107 -39
  402. package/dist/TextInput/TextInput.d.ts +1 -1
  403. package/dist/TextInput/TextInput.js +1 -1
  404. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  405. package/dist/Thumbnail/Thumbnail.js +52 -46
  406. package/dist/TimeInput/TimeInput.js +1 -1
  407. package/dist/Timestamp/Timestamp.d.ts +26 -12
  408. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  409. package/dist/Timestamp/Timestamp.js +128 -65
  410. package/dist/Timestamp/TimestampHoverCard.d.ts +45 -0
  411. package/dist/Timestamp/TimestampHoverCard.d.ts.map +1 -0
  412. package/dist/Timestamp/TimestampHoverCard.js +228 -0
  413. package/dist/Timestamp/formatInstant.d.ts +3 -3
  414. package/dist/Timestamp/formatInstant.d.ts.map +1 -1
  415. package/dist/Timestamp/formatInstant.js +7 -2
  416. package/dist/Timestamp/tooltipEntries.d.ts +17 -2
  417. package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
  418. package/dist/Timestamp/tooltipEntries.js +4 -2
  419. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  420. package/dist/Toast/ToastViewport.js +61 -9
  421. package/dist/ToggleButton/ToggleButton.d.ts +1 -1
  422. package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
  423. package/dist/ToggleButton/ToggleButton.js +4 -2
  424. package/dist/ToggleButton/ToggleButtonGroup.d.ts +1 -1
  425. package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  426. package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
  427. package/dist/Token/Token.d.ts +6 -28
  428. package/dist/Token/Token.d.ts.map +1 -1
  429. package/dist/Token/Token.js +69 -58
  430. package/dist/Token/TokenLink.d.ts +62 -0
  431. package/dist/Token/TokenLink.d.ts.map +1 -0
  432. package/dist/Token/TokenLink.js +76 -0
  433. package/dist/Token/index.d.ts +27 -1
  434. package/dist/Token/index.d.ts.map +1 -1
  435. package/dist/Token/index.js +14 -0
  436. package/dist/Tokenizer/Tokenizer.d.ts +1 -1
  437. package/dist/Tokenizer/Tokenizer.js +1 -1
  438. package/dist/Toolbar/Toolbar.d.ts +1 -1
  439. package/dist/Toolbar/Toolbar.js +1 -1
  440. package/dist/Tooltip/Tooltip.d.ts +1 -1
  441. package/dist/Tooltip/Tooltip.js +1 -1
  442. package/dist/TopNav/TopNav.d.ts +1 -1
  443. package/dist/TopNav/TopNav.js +1 -1
  444. package/dist/TopNav/TopNavHeading.d.ts +2 -8
  445. package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
  446. package/dist/TopNav/TopNavHeading.js +8 -10
  447. package/dist/TopNav/TopNavItem.d.ts +1 -1
  448. package/dist/TopNav/TopNavItem.js +1 -1
  449. package/dist/TopNav/TopNavMegaMenu.d.ts +1 -1
  450. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  451. package/dist/TopNav/TopNavMegaMenu.js +15 -7
  452. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
  453. package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +1 -1
  454. package/dist/TopNav/TopNavMegaMenuItem.d.ts +1 -1
  455. package/dist/TopNav/TopNavMegaMenuItem.js +1 -1
  456. package/dist/TopNav/TopNavMenu.d.ts +1 -1
  457. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  458. package/dist/TopNav/TopNavMenu.js +5 -4
  459. package/dist/TreeList/TreeList.d.ts +1 -1
  460. package/dist/TreeList/TreeList.js +1 -1
  461. package/dist/TreeList/TreeListBranches.js +1 -1
  462. package/dist/TreeList/TreeListItem.d.ts +1 -1
  463. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  464. package/dist/TreeList/TreeListItem.js +4 -3
  465. package/dist/TreeList/TreeListTypes.d.ts +1 -17
  466. package/dist/TreeList/TreeListTypes.d.ts.map +1 -1
  467. package/dist/TreeList/index.d.ts +18 -1
  468. package/dist/TreeList/index.d.ts.map +1 -1
  469. package/dist/TreeList/index.js +14 -0
  470. package/dist/Typeahead/BaseTypeahead.d.ts +10 -1
  471. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  472. package/dist/Typeahead/BaseTypeahead.js +3 -1
  473. package/dist/Typeahead/Typeahead.d.ts +1 -1
  474. package/dist/Typeahead/Typeahead.d.ts.map +1 -1
  475. package/dist/Typeahead/Typeahead.js +9 -2
  476. package/dist/Typeahead/TypeaheadItem.d.ts +1 -1
  477. package/dist/Typeahead/TypeaheadItem.js +1 -1
  478. package/dist/VStack/VStack.d.ts +1 -1
  479. package/dist/VStack/VStack.js +1 -1
  480. package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  481. package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
  482. package/dist/astryx.css +115 -36
  483. package/dist/astryx.umd.js +50 -54
  484. package/dist/astryx.umd.js.map +4 -4
  485. package/dist/hooks/containerReveal.pool.stylex.d.ts +303 -0
  486. package/dist/hooks/containerReveal.pool.stylex.d.ts.map +1 -0
  487. package/dist/hooks/containerReveal.pool.stylex.js +292 -0
  488. package/dist/hooks/index.d.ts +2 -0
  489. package/dist/hooks/index.d.ts.map +1 -1
  490. package/dist/hooks/index.js +2 -1
  491. package/dist/hooks/useContainerReveal.d.ts +83 -0
  492. package/dist/hooks/useContainerReveal.d.ts.map +1 -0
  493. package/dist/hooks/useContainerReveal.js +123 -0
  494. package/dist/hooks/useGridFocus.d.ts +8 -6
  495. package/dist/hooks/useGridFocus.d.ts.map +1 -1
  496. package/dist/hooks/useInputContainer.d.ts.map +1 -1
  497. package/dist/hooks/useInputContainer.js +29 -1
  498. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  499. package/dist/hooks/useInputStatusIcon.js +11 -0
  500. package/dist/hooks/useKeyboardHint.d.ts +2 -2
  501. package/dist/hooks/useKeyboardHint.d.ts.map +1 -1
  502. package/dist/hooks/useKeyboardHint.js +5 -3
  503. package/dist/hooks/useListFocus.d.ts +8 -7
  504. package/dist/hooks/useListFocus.d.ts.map +1 -1
  505. package/dist/hooks/useLongPress.d.ts.map +1 -1
  506. package/dist/hooks/useLongPress.js +12 -2
  507. package/dist/hooks/useTreeFocus.d.ts.map +1 -1
  508. package/dist/hooks/useTreeFocus.js +13 -2
  509. package/dist/i18n/InternationalizationProvider.d.ts +6 -0
  510. package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
  511. package/dist/i18n/useDirection.d.ts.map +1 -1
  512. package/dist/i18n/useDirection.js +6 -3
  513. package/dist/index.d.ts +2 -1
  514. package/dist/index.d.ts.map +1 -1
  515. package/dist/index.js +3 -3
  516. package/dist/theme/Theme.d.ts.map +1 -1
  517. package/dist/theme/Theme.js +2 -7
  518. package/dist/theme/contrast.d.ts +45 -0
  519. package/dist/theme/contrast.d.ts.map +1 -0
  520. package/dist/theme/contrast.js +88 -0
  521. package/dist/theme/defineTheme.d.ts +9 -3
  522. package/dist/theme/defineTheme.d.ts.map +1 -1
  523. package/dist/theme/defineTheme.js +6 -4
  524. package/dist/theme/derivedVarRegistry.d.ts.map +1 -1
  525. package/dist/theme/derivedVarRegistry.js +0 -13
  526. package/dist/theme/expandColorScale.d.ts +32 -3
  527. package/dist/theme/expandColorScale.d.ts.map +1 -1
  528. package/dist/theme/expandColorScale.js +102 -13
  529. package/dist/theme/generateThemeRules.d.ts +0 -6
  530. package/dist/theme/generateThemeRules.d.ts.map +1 -1
  531. package/dist/theme/generateThemeRules.js +0 -15
  532. package/dist/theme/index.d.ts +9 -7
  533. package/dist/theme/index.d.ts.map +1 -1
  534. package/dist/theme/index.js +4 -3
  535. package/dist/theme/themeRegistry.d.ts +32 -0
  536. package/dist/theme/themeRegistry.d.ts.map +1 -0
  537. package/dist/theme/themeRegistry.js +49 -0
  538. package/dist/theme/tokens.stylex.d.ts +0 -17
  539. package/dist/theme/tokens.stylex.d.ts.map +1 -1
  540. package/dist/theme/tokens.stylex.js +0 -22
  541. package/dist/theme/types.d.ts +10 -2
  542. package/dist/theme/types.d.ts.map +1 -1
  543. package/dist/theme/useTheme.d.ts +9 -0
  544. package/dist/theme/useTheme.d.ts.map +1 -1
  545. package/dist/theme/useTheme.js +82 -27
  546. package/dist/utils/rtlStyles.d.ts +21 -0
  547. package/dist/utils/rtlStyles.d.ts.map +1 -1
  548. package/dist/utils/rtlStyles.js +26 -1
  549. package/groups.doc.mjs +2 -2
  550. package/locales/en.json +124 -0
  551. package/locales/pseudo.json +93 -0
  552. package/package.json +9 -13
  553. package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
  554. package/src/AlertDialog/AlertDialog.tsx +1 -1
  555. package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
  556. package/src/AppShell/AppShell.doc.mjs +3 -3
  557. package/src/AppShell/AppShell.test.tsx +55 -0
  558. package/src/AppShell/AppShell.tsx +27 -22
  559. package/src/AppShell/index.ts +20 -1
  560. package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
  561. package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
  562. package/src/AspectRatio/AspectRatio.tsx +1 -1
  563. package/src/Avatar/Avatar.doc.mjs +4 -15
  564. package/src/Avatar/Avatar.test.tsx +23 -8
  565. package/src/Avatar/Avatar.tsx +35 -23
  566. package/src/Avatar/AvatarStatusDot.doc.mjs +1 -1
  567. package/src/Avatar/AvatarStatusDot.tsx +2 -27
  568. package/src/Avatar/index.ts +26 -1
  569. package/src/AvatarGroup/AvatarGroup.doc.mjs +3 -3
  570. package/src/AvatarGroup/AvatarGroup.test.tsx +21 -1
  571. package/src/AvatarGroup/AvatarGroup.tsx +3 -7
  572. package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
  573. package/src/AvatarGroup/AvatarGroupOverflow.tsx +5 -3
  574. package/src/Badge/Badge.doc.mjs +3 -3
  575. package/src/Badge/Badge.tsx +2 -31
  576. package/src/Badge/index.ts +32 -6
  577. package/src/Banner/Banner.doc.mjs +3 -3
  578. package/src/Banner/Banner.tsx +8 -45
  579. package/src/Banner/index.ts +39 -7
  580. package/src/Blockquote/Blockquote.doc.mjs +3 -3
  581. package/src/Blockquote/Blockquote.tsx +1 -1
  582. package/src/Breadcrumbs/BreadcrumbItem.doc.mjs +1 -1
  583. package/src/Breadcrumbs/BreadcrumbItem.tsx +5 -3
  584. package/src/Breadcrumbs/Breadcrumbs.doc.mjs +3 -3
  585. package/src/Breadcrumbs/Breadcrumbs.test.tsx +1 -1
  586. package/src/Breadcrumbs/Breadcrumbs.tsx +2 -19
  587. package/src/Breadcrumbs/index.ts +19 -5
  588. package/src/Button/Button.doc.mjs +3 -3
  589. package/src/Button/Button.test.tsx +16 -0
  590. package/src/Button/Button.tsx +6 -23
  591. package/src/Button/index.ts +22 -7
  592. package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -3
  593. package/src/ButtonGroup/ButtonGroup.tsx +1 -1
  594. package/src/Calendar/Calendar.doc.mjs +3 -3
  595. package/src/Calendar/Calendar.test.tsx +22 -6
  596. package/src/Calendar/Calendar.tsx +1 -1
  597. package/src/Calendar/index.ts +1 -6
  598. package/src/Calendar/styles.ts +2 -2
  599. package/src/Calendar/utils.ts +0 -11
  600. package/src/Card/Card.doc.mjs +3 -3
  601. package/src/Card/Card.tsx +1 -1
  602. package/src/Carousel/Carousel.doc.mjs +10 -3
  603. package/src/Carousel/Carousel.test.tsx +232 -1
  604. package/src/Carousel/Carousel.tsx +144 -21
  605. package/src/Carousel/index.ts +1 -1
  606. package/src/Center/Center.doc.mjs +41 -3
  607. package/src/Center/Center.test.tsx +75 -0
  608. package/src/Center/Center.tsx +38 -3
  609. package/src/Chat/Chat.doc.mjs +3 -3
  610. package/src/Chat/ChatComposer.doc.mjs +1 -1
  611. package/src/Chat/ChatComposer.tsx +5 -5
  612. package/src/Chat/ChatComposerDrawer.doc.mjs +1 -1
  613. package/src/Chat/ChatComposerDrawer.tsx +5 -5
  614. package/src/Chat/ChatComposerInput.doc.mjs +1 -1
  615. package/src/Chat/ChatComposerInput.tsx +1 -1
  616. package/src/Chat/ChatComposerTokenElement.doc.mjs +1 -1
  617. package/src/Chat/ChatDictationButton.doc.mjs +3 -3
  618. package/src/Chat/ChatDictationButton.tsx +1 -1
  619. package/src/Chat/ChatLayout.doc.mjs +1 -1
  620. package/src/Chat/ChatLayout.test.tsx +57 -0
  621. package/src/Chat/ChatLayout.tsx +23 -2
  622. package/src/Chat/ChatLayoutScrollButton.doc.mjs +1 -1
  623. package/src/Chat/ChatLayoutScrollButton.tsx +1 -1
  624. package/src/Chat/ChatMessage.doc.mjs +1 -1
  625. package/src/Chat/ChatMessage.tsx +1 -1
  626. package/src/Chat/ChatMessageBubble.doc.mjs +1 -1
  627. package/src/Chat/ChatMessageBubble.tsx +1 -1
  628. package/src/Chat/ChatMessageList.doc.mjs +1 -1
  629. package/src/Chat/ChatMessageList.tsx +1 -1
  630. package/src/Chat/ChatMessageMetadata.doc.mjs +1 -1
  631. package/src/Chat/ChatSendButton.doc.mjs +1 -1
  632. package/src/Chat/ChatSendButton.tsx +5 -3
  633. package/src/Chat/ChatSystemMessage.doc.mjs +1 -1
  634. package/src/Chat/ChatSystemMessage.tsx +1 -1
  635. package/src/Chat/ChatTokenizedText.doc.mjs +1 -1
  636. package/src/Chat/ChatTokenizedText.tsx +1 -1
  637. package/src/Chat/ChatToolCalls.doc.mjs +3 -3
  638. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
  639. package/src/CheckboxInput/CheckboxInput.test.tsx +56 -0
  640. package/src/CheckboxInput/CheckboxInput.tsx +18 -3
  641. package/src/CheckboxList/CheckboxList.doc.mjs +3 -3
  642. package/src/CheckboxList/CheckboxList.test.tsx +94 -3
  643. package/src/CheckboxList/CheckboxList.tsx +1 -1
  644. package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
  645. package/src/CheckboxList/CheckboxListItem.tsx +18 -11
  646. package/src/Citation/Citation.doc.mjs +2 -2
  647. package/src/Citation/Citation.tsx +1 -1
  648. package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
  649. package/src/ClickableCard/ClickableCard.tsx +3 -3
  650. package/src/Code/Code.tsx +2 -2
  651. package/src/CodeBlock/Code.doc.mjs +1 -1
  652. package/src/CodeBlock/CodeBlock.doc.mjs +3 -3
  653. package/src/CodeBlock/CodeBlock.test.tsx +17 -0
  654. package/src/CodeBlock/CodeBlock.tsx +2 -2
  655. package/src/Collapsible/Collapsible.doc.mjs +3 -3
  656. package/src/Collapsible/Collapsible.tsx +3 -3
  657. package/src/Collapsible/CollapsibleGroup.doc.mjs +1 -1
  658. package/src/Collapsible/CollapsibleGroup.tsx +1 -1
  659. package/src/Collapsible/CollapsibleGroupContext.tsx +1 -1
  660. package/src/Collapsible/useCollapsible.doc.mjs +2 -2
  661. package/src/CommandPalette/CommandPalette.doc.mjs +4 -4
  662. package/src/CommandPalette/CommandPalette.tsx +1 -1
  663. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +1 -1
  664. package/src/CommandPalette/CommandPaletteEmpty.tsx +1 -1
  665. package/src/CommandPalette/CommandPaletteFooter.doc.mjs +1 -1
  666. package/src/CommandPalette/CommandPaletteFooter.tsx +1 -1
  667. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +1 -1
  668. package/src/CommandPalette/CommandPaletteGroup.test.tsx +6 -2
  669. package/src/CommandPalette/CommandPaletteGroup.tsx +1 -1
  670. package/src/CommandPalette/CommandPaletteInput.doc.mjs +1 -1
  671. package/src/CommandPalette/CommandPaletteInput.tsx +5 -1
  672. package/src/CommandPalette/CommandPaletteItem.doc.mjs +1 -1
  673. package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
  674. package/src/CommandPalette/CommandPaletteList.doc.mjs +1 -1
  675. package/src/CommandPalette/CommandPaletteList.tsx +1 -1
  676. package/src/ComplexSelector/ComplexSelector.doc.mjs +179 -0
  677. package/src/ComplexSelector/ComplexSelector.test.tsx +156 -0
  678. package/src/ComplexSelector/ComplexSelector.tsx +429 -0
  679. package/src/ComplexSelector/index.ts +17 -0
  680. package/src/ContextMenu/ContextMenu.doc.mjs +3 -3
  681. package/src/ContextMenu/ContextMenu.test.tsx +17 -2
  682. package/src/ContextMenu/ContextMenu.tsx +27 -6
  683. package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
  684. package/src/DateInput/DateInput.doc.mjs +3 -3
  685. package/src/DateInput/DateInput.test.tsx +7 -3
  686. package/src/DateInput/DateInput.tsx +1 -1
  687. package/src/DateRangeInput/DateRangeInput.doc.mjs +2 -2
  688. package/src/DateRangeInput/DateRangeInput.test.tsx +7 -2
  689. package/src/DateRangeInput/DateRangeInput.tsx +1 -1
  690. package/src/DateTimeInput/DateTimeInput.doc.mjs +3 -3
  691. package/src/DateTimeInput/DateTimeInput.test.tsx +6 -2
  692. package/src/DateTimeInput/DateTimeInput.tsx +1 -1
  693. package/src/Dialog/Dialog.doc.mjs +7 -5
  694. package/src/Dialog/Dialog.test.tsx +46 -3
  695. package/src/Dialog/Dialog.tsx +61 -44
  696. package/src/Dialog/DialogHeader.doc.mjs +1 -1
  697. package/src/Dialog/DialogHeader.tsx +1 -1
  698. package/src/Dialog/index.ts +18 -1
  699. package/src/Dialog/useImperativeDialog.doc.mjs +1 -1
  700. package/src/Divider/Divider.doc.mjs +3 -3
  701. package/src/Divider/Divider.tsx +2 -19
  702. package/src/Divider/index.ts +19 -5
  703. package/src/DropdownMenu/DropdownMenu.doc.mjs +20 -5
  704. package/src/DropdownMenu/DropdownMenu.test.tsx +122 -0
  705. package/src/DropdownMenu/DropdownMenu.tsx +31 -20
  706. package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +1 -1
  707. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +41 -64
  708. package/src/DropdownMenu/DropdownMenuItem.doc.mjs +1 -1
  709. package/src/DropdownMenu/DropdownMenuItem.tsx +1 -1
  710. package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +5 -13
  711. package/src/DropdownMenu/DropdownMenuRadioGroup.tsx +9 -10
  712. package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
  713. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +11 -2
  714. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +84 -2
  715. package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +1 -1
  716. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +46 -1
  717. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +24 -8
  718. package/src/DropdownMenu/menuItemHover.ts +1 -0
  719. package/src/DropdownMenu/renderDropdownItems.tsx +14 -2
  720. package/src/EmptyState/EmptyState.doc.mjs +3 -3
  721. package/src/EmptyState/EmptyState.tsx +1 -1
  722. package/src/Field/Field.doc.mjs +7 -3
  723. package/src/Field/Field.tsx +1 -1
  724. package/src/Field/FieldLabel.doc.mjs +1 -1
  725. package/src/Field/FieldLabel.test.tsx +103 -0
  726. package/src/Field/FieldLabel.tsx +61 -5
  727. package/src/FieldStatus/FieldStatus.doc.mjs +3 -2
  728. package/src/FieldStatus/FieldStatus.test.tsx +61 -0
  729. package/src/FieldStatus/FieldStatus.tsx +16 -23
  730. package/src/FieldStatus/index.ts +20 -5
  731. package/src/FileInput/FileInput.doc.mjs +3 -3
  732. package/src/FileInput/FileInput.tsx +1 -1
  733. package/src/FormLayout/FormLayout.doc.mjs +3 -3
  734. package/src/FormLayout/FormLayout.tsx +2 -5
  735. package/src/Grid/Grid.doc.mjs +3 -8
  736. package/src/Grid/Grid.tsx +1 -25
  737. package/src/Grid/GridSpan.doc.mjs +1 -1
  738. package/src/Grid/GridSpan.tsx +1 -1
  739. package/src/HStack/HStack.tsx +1 -1
  740. package/src/Heading/Heading.tsx +4 -3
  741. package/src/HoverCard/HoverCard.doc.mjs +3 -3
  742. package/src/HoverCard/HoverCard.tsx +1 -1
  743. package/src/HoverCard/useHoverCard.doc.mjs +2 -2
  744. package/src/Icon/Icon.doc.mjs +7 -6
  745. package/src/Icon/Icon.test.tsx +23 -0
  746. package/src/Icon/Icon.tsx +4 -2
  747. package/src/Icon/defaultIcons.tsx +14 -0
  748. package/src/Icon/globalIconRegistry.test.tsx +87 -1
  749. package/src/Icon/globalIconRegistry.tsx +111 -9
  750. package/src/Icon/index.ts +9 -7
  751. package/src/Icon/useIcon.ts +23 -0
  752. package/src/IconButton/IconButton.doc.mjs +2 -2
  753. package/src/IconButton/IconButton.tsx +1 -1
  754. package/src/InputGroup/InputGroup.doc.mjs +2 -2
  755. package/src/InputGroup/InputGroup.tsx +1 -1
  756. package/src/InputGroup/InputGroupText.doc.mjs +1 -1
  757. package/src/InputGroup/InputGroupText.tsx +1 -1
  758. package/src/Item/Item.doc.mjs +8 -3
  759. package/src/Item/Item.test.tsx +88 -0
  760. package/src/Item/Item.tsx +58 -12
  761. package/src/Kbd/Kbd.doc.mjs +3 -3
  762. package/src/Kbd/Kbd.tsx +1 -1
  763. package/src/Layer/Layer.doc.mjs +2 -2
  764. package/src/Layer/useLayer.doc.mjs +2 -2
  765. package/src/Layout/Layout.doc.mjs +3 -3
  766. package/src/Layout/Layout.tsx +1 -1
  767. package/src/Layout/LayoutContent.doc.mjs +1 -1
  768. package/src/Layout/LayoutContent.tsx +1 -1
  769. package/src/Layout/LayoutFooter.doc.mjs +1 -1
  770. package/src/Layout/LayoutFooter.tsx +1 -1
  771. package/src/Layout/LayoutHeader.doc.mjs +1 -1
  772. package/src/Layout/LayoutHeader.tsx +1 -1
  773. package/src/Layout/LayoutPanel.doc.mjs +1 -1
  774. package/src/Layout/LayoutPanel.tsx +1 -1
  775. package/src/Lightbox/Lightbox.doc.mjs +5 -5
  776. package/src/Lightbox/Lightbox.test.tsx +211 -0
  777. package/src/Lightbox/Lightbox.tsx +109 -22
  778. package/src/Link/Link.doc.mjs +3 -3
  779. package/src/Link/Link.tsx +1 -1
  780. package/src/Link/LinkProvider.doc.mjs +2 -2
  781. package/src/Link/LinkProvider.tsx +2 -2
  782. package/src/List/List.doc.mjs +3 -3
  783. package/src/List/List.tsx +1 -1
  784. package/src/List/ListItem.doc.mjs +13 -1
  785. package/src/List/ListItem.tsx +14 -1
  786. package/src/Markdown/Markdown.doc.mjs +81 -1
  787. package/src/Markdown/Markdown.test.tsx +92 -0
  788. package/src/Markdown/Markdown.tsx +96 -68
  789. package/src/Markdown/parser.perf.test.ts +47 -35
  790. package/src/MetadataList/MetadataList.doc.mjs +3 -3
  791. package/src/MetadataList/MetadataList.test.tsx +82 -0
  792. package/src/MetadataList/MetadataList.tsx +45 -20
  793. package/src/MetadataList/MetadataListItem.doc.mjs +1 -1
  794. package/src/MetadataList/MetadataListItem.tsx +1 -1
  795. package/src/MobileNav/MobileNav.doc.mjs +3 -3
  796. package/src/MobileNav/MobileNav.tsx +1 -1
  797. package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
  798. package/src/MoreMenu/MoreMenu.tsx +3 -3
  799. package/src/MultiSelector/MultiSelector.doc.mjs +35 -10
  800. package/src/MultiSelector/MultiSelector.test.tsx +303 -3
  801. package/src/MultiSelector/MultiSelector.tsx +223 -58
  802. package/src/NavIcon/NavIcon.doc.mjs +3 -3
  803. package/src/NavIcon/NavIcon.tsx +1 -1
  804. package/src/NavMenu/NavHeadingMenu.test.tsx +0 -16
  805. package/src/NavMenu/NavMenu.doc.mjs +2 -2
  806. package/src/NavMenu/index.ts +0 -4
  807. package/src/NumberInput/NumberInput.doc.mjs +3 -6
  808. package/src/NumberInput/NumberInput.test.tsx +38 -3
  809. package/src/NumberInput/NumberInput.tsx +24 -1
  810. package/src/Outline/Outline.doc.mjs +3 -3
  811. package/src/Outline/Outline.tsx +1 -1
  812. package/src/OverflowList/OverflowList.doc.mjs +3 -3
  813. package/src/OverflowList/OverflowList.tsx +1 -1
  814. package/src/Overlay/Overlay.doc.mjs +2 -2
  815. package/src/Pagination/Pagination.doc.mjs +55 -8
  816. package/src/Pagination/Pagination.test.tsx +582 -0
  817. package/src/Pagination/Pagination.tsx +227 -41
  818. package/src/Pagination/index.ts +22 -1
  819. package/src/Popover/Popover.doc.mjs +31 -3
  820. package/src/Popover/Popover.test.tsx +41 -0
  821. package/src/Popover/Popover.tsx +25 -2
  822. package/src/Popover/usePopover.doc.mjs +2 -2
  823. package/src/Popover/usePopover.tsx +10 -4
  824. package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
  825. package/src/PowerSearch/PowerSearch.tsx +1 -1
  826. package/src/ProgressBar/ProgressBar.doc.mjs +24 -3
  827. package/src/ProgressBar/ProgressBar.test.tsx +523 -2
  828. package/src/ProgressBar/ProgressBar.tsx +250 -25
  829. package/src/ProgressBar/ProgressBarMarkTooltip.tsx +43 -0
  830. package/src/ProgressBar/index.ts +22 -1
  831. package/src/RadioList/RadioList.doc.mjs +3 -3
  832. package/src/RadioList/RadioList.test.tsx +26 -4
  833. package/src/RadioList/RadioList.tsx +1 -1
  834. package/src/RadioList/RadioListItem.doc.mjs +1 -1
  835. package/src/RadioList/RadioListItem.tsx +9 -2
  836. package/src/Resizable/Resizable.doc.mjs +2 -2
  837. package/src/Resizable/ResizeHandle.test.tsx +52 -3
  838. package/src/Resizable/ResizeHandle.tsx +25 -13
  839. package/src/Resizable/useResizable.doc.mjs +2 -2
  840. package/src/Section/Section.doc.mjs +3 -3
  841. package/src/Section/Section.tsx +2 -20
  842. package/src/Section/index.ts +20 -5
  843. package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
  844. package/src/SegmentedControl/SegmentedControl.test.tsx +28 -0
  845. package/src/SegmentedControl/SegmentedControl.tsx +1 -1
  846. package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
  847. package/src/SegmentedControl/SegmentedControlItem.tsx +21 -3
  848. package/src/SelectableCard/SelectableCard.doc.mjs +4 -2
  849. package/src/SelectableCard/SelectableCard.test.tsx +55 -0
  850. package/src/SelectableCard/SelectableCard.tsx +19 -3
  851. package/src/Selector/Selector.doc.mjs +28 -8
  852. package/src/Selector/Selector.test.tsx +222 -3
  853. package/src/Selector/Selector.tsx +202 -52
  854. package/src/Selector/SelectorOption.doc.mjs +1 -1
  855. package/src/SideNav/SideNav.doc.mjs +3 -3
  856. package/src/SideNav/SideNav.tsx +1 -1
  857. package/src/SideNav/SideNavCollapseButton.doc.mjs +1 -1
  858. package/src/SideNav/SideNavCollapseButton.tsx +4 -3
  859. package/src/SideNav/SideNavHeading.doc.mjs +1 -1
  860. package/src/SideNav/SideNavHeading.tsx +8 -9
  861. package/src/SideNav/SideNavItem.doc.mjs +1 -1
  862. package/src/SideNav/SideNavItem.tsx +5 -6
  863. package/src/SideNav/SideNavSection.doc.mjs +1 -1
  864. package/src/SideNav/SideNavSection.tsx +1 -1
  865. package/src/Skeleton/Skeleton.doc.mjs +3 -3
  866. package/src/Skeleton/Skeleton.test.tsx +16 -0
  867. package/src/Skeleton/Skeleton.tsx +14 -2
  868. package/src/Slider/Slider.doc.mjs +3 -3
  869. package/src/Slider/Slider.tsx +9 -13
  870. package/src/Spinner/Spinner.doc.mjs +3 -3
  871. package/src/Spinner/Spinner.tsx +1 -1
  872. package/src/Stack/Stack.doc.mjs +3 -3
  873. package/src/Stack/Stack.tsx +1 -1
  874. package/src/Stack/StackItem.tsx +1 -1
  875. package/src/StatusDot/StatusDot.doc.mjs +15 -6
  876. package/src/StatusDot/StatusDot.tsx +2 -22
  877. package/src/StatusDot/index.ts +22 -5
  878. package/src/Switch/Switch.doc.mjs +5 -5
  879. package/src/Switch/Switch.test.tsx +71 -25
  880. package/src/Switch/Switch.tsx +56 -18
  881. package/src/TabList/Tab.doc.mjs +1 -1
  882. package/src/TabList/Tab.tsx +1 -1
  883. package/src/TabList/TabList.doc.mjs +3 -3
  884. package/src/TabList/TabList.test.tsx +21 -18
  885. package/src/TabList/TabList.tsx +1 -1
  886. package/src/TabList/TabMenu.doc.mjs +1 -1
  887. package/src/TabList/TabMenu.tsx +11 -3
  888. package/src/Table/BaseTable.tsx +4 -5
  889. package/src/Table/Table.doc.mjs +5 -5
  890. package/src/Table/Table.test.tsx +27 -49
  891. package/src/Table/Table.tsx +1 -1
  892. package/src/Table/TableCell.doc.mjs +1 -1
  893. package/src/Table/TableCell.tsx +2 -2
  894. package/src/Table/TableHeaderCell.doc.mjs +1 -1
  895. package/src/Table/TableHeaderCell.tsx +2 -2
  896. package/src/Table/TableRow.doc.mjs +1 -1
  897. package/src/Table/TableRow.tsx +1 -1
  898. package/src/Table/index.ts +1 -1
  899. package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +1 -1
  900. package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +19 -0
  901. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +24 -4
  902. package/src/Table/plugins/tree/useTableTreeData.test.tsx +161 -2
  903. package/src/Table/plugins/tree/useTableTreeData.tsx +54 -1
  904. package/src/Table/types.ts +0 -9
  905. package/src/Table/useTableColumnResize.doc.mjs +1 -1
  906. package/src/Table/useTableColumnSettings.doc.mjs +1 -1
  907. package/src/Table/useTableFilterState.doc.mjs +1 -1
  908. package/src/Table/useTableFiltering.doc.mjs +1 -1
  909. package/src/Table/useTableGroupedRows.doc.mjs +2 -2
  910. package/src/Table/useTablePagination.doc.mjs +1 -1
  911. package/src/Table/useTableRowExpansion.doc.mjs +57 -4
  912. package/src/Table/useTableRowIndex.doc.mjs +2 -2
  913. package/src/Table/useTableRowStatus.doc.mjs +3 -3
  914. package/src/Table/useTableSelection.doc.mjs +1 -1
  915. package/src/Table/useTableSelectionState.doc.mjs +1 -1
  916. package/src/Table/useTableSortable.doc.mjs +1 -1
  917. package/src/Table/useTableStickyColumns.doc.mjs +1 -1
  918. package/src/Table/useTableTreeData.doc.mjs +10 -1
  919. package/src/Table/useTableTreeState.doc.mjs +1 -1
  920. package/src/Text/Heading.doc.mjs +4 -4
  921. package/src/Text/Text.doc.mjs +4 -4
  922. package/src/Text/Text.test.tsx +42 -0
  923. package/src/Text/Text.tsx +26 -2
  924. package/src/Text/index.ts +32 -6
  925. package/src/TextArea/TextArea.doc.mjs +5 -5
  926. package/src/TextArea/TextArea.test.tsx +112 -7
  927. package/src/TextArea/TextArea.tsx +143 -50
  928. package/src/TextInput/TextInput.doc.mjs +3 -3
  929. package/src/TextInput/TextInput.tsx +1 -1
  930. package/src/Thumbnail/Thumbnail.doc.mjs +2 -2
  931. package/src/Thumbnail/Thumbnail.test.tsx +24 -1
  932. package/src/Thumbnail/Thumbnail.tsx +28 -35
  933. package/src/TimeInput/TimeInput.doc.mjs +3 -3
  934. package/src/TimeInput/TimeInput.tsx +1 -1
  935. package/src/Timestamp/Timestamp.doc.mjs +29 -24
  936. package/src/Timestamp/Timestamp.test.tsx +438 -107
  937. package/src/Timestamp/Timestamp.tsx +167 -103
  938. package/src/Timestamp/TimestampHoverCard.tsx +283 -0
  939. package/src/Timestamp/formatInstant.ts +9 -4
  940. package/src/Timestamp/tooltipEntries.test.ts +9 -0
  941. package/src/Timestamp/tooltipEntries.ts +18 -2
  942. package/src/Toast/Toast.doc.mjs +3 -3
  943. package/src/Toast/ToastViewport.test.tsx +218 -8
  944. package/src/Toast/ToastViewport.tsx +71 -12
  945. package/src/Toast/useToast.doc.mjs +2 -2
  946. package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
  947. package/src/ToggleButton/ToggleButton.test.tsx +24 -0
  948. package/src/ToggleButton/ToggleButton.tsx +20 -2
  949. package/src/ToggleButton/ToggleButtonGroup.doc.mjs +1 -1
  950. package/src/ToggleButton/ToggleButtonGroup.tsx +3 -6
  951. package/src/Token/Token.doc.mjs +3 -3
  952. package/src/Token/Token.test.tsx +145 -0
  953. package/src/Token/Token.tsx +75 -61
  954. package/src/Token/TokenLink.tsx +107 -0
  955. package/src/Token/index.ts +28 -1
  956. package/src/Tokenizer/Tokenizer.doc.mjs +3 -3
  957. package/src/Tokenizer/Tokenizer.tsx +1 -1
  958. package/src/Toolbar/Toolbar.doc.mjs +3 -3
  959. package/src/Toolbar/Toolbar.tsx +1 -1
  960. package/src/Tooltip/Tooltip.doc.mjs +3 -3
  961. package/src/Tooltip/Tooltip.tsx +1 -1
  962. package/src/Tooltip/useTooltip.doc.mjs +2 -2
  963. package/src/TopNav/TopNav.doc.mjs +3 -3
  964. package/src/TopNav/TopNav.test.tsx +2 -2
  965. package/src/TopNav/TopNav.tsx +1 -1
  966. package/src/TopNav/TopNavHeading.doc.mjs +1 -12
  967. package/src/TopNav/TopNavHeading.tsx +8 -18
  968. package/src/TopNav/TopNavItem.doc.mjs +1 -1
  969. package/src/TopNav/TopNavItem.tsx +1 -1
  970. package/src/TopNav/TopNavMegaMenu.doc.mjs +1 -1
  971. package/src/TopNav/TopNavMegaMenu.tsx +32 -6
  972. package/src/TopNav/TopNavMegaMenuFeaturedCard.doc.mjs +1 -1
  973. package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +1 -1
  974. package/src/TopNav/TopNavMegaMenuItem.doc.mjs +1 -1
  975. package/src/TopNav/TopNavMegaMenuItem.tsx +1 -1
  976. package/src/TopNav/TopNavMenu.doc.mjs +1 -1
  977. package/src/TopNav/TopNavMenu.tsx +5 -4
  978. package/src/TreeList/TreeList.doc.mjs +3 -3
  979. package/src/TreeList/TreeList.test.tsx +10 -6
  980. package/src/TreeList/TreeList.tsx +1 -1
  981. package/src/TreeList/TreeListBranches.tsx +1 -1
  982. package/src/TreeList/TreeListItem.tsx +4 -3
  983. package/src/TreeList/TreeListTypes.ts +1 -18
  984. package/src/TreeList/index.ts +19 -1
  985. package/src/Typeahead/BaseTypeahead.doc.mjs +1 -1
  986. package/src/Typeahead/BaseTypeahead.tsx +13 -1
  987. package/src/Typeahead/Typeahead.doc.mjs +3 -3
  988. package/src/Typeahead/Typeahead.test.tsx +62 -0
  989. package/src/Typeahead/Typeahead.tsx +7 -1
  990. package/src/Typeahead/TypeaheadItem.doc.mjs +1 -1
  991. package/src/Typeahead/TypeaheadItem.tsx +1 -1
  992. package/src/VStack/VStack.tsx +1 -1
  993. package/src/VisuallyHidden/VisuallyHidden.doc.mjs +3 -3
  994. package/src/VisuallyHidden/VisuallyHidden.tsx +1 -1
  995. package/src/__tests__/babelPluginAddExtensions.test.ts +190 -0
  996. package/src/__tests__/forcedColors.ts +60 -0
  997. package/src/__tests__/inputWidthContract.test.tsx +8 -1
  998. package/src/doc-mjs.d.ts +5 -2
  999. package/src/docPropLiterals.test.ts +1 -1
  1000. package/src/docPropReferences.test.ts +1 -1
  1001. package/src/hooks/containerReveal.pool.stylex.ts +571 -0
  1002. package/src/hooks/index.ts +7 -0
  1003. package/src/hooks/useClickableContainer.doc.mjs +2 -2
  1004. package/src/hooks/useContainerReveal.doc.mjs +75 -0
  1005. package/src/hooks/useContainerReveal.test.tsx +116 -0
  1006. package/src/hooks/useContainerReveal.ts +181 -0
  1007. package/src/hooks/useEntryAnimation.doc.mjs +2 -2
  1008. package/src/hooks/useFocusTrap.doc.mjs +2 -2
  1009. package/src/hooks/useGridFocus.doc.mjs +2 -2
  1010. package/src/hooks/useGridFocus.ts +8 -6
  1011. package/src/hooks/useHotkeys.doc.mjs +2 -2
  1012. package/src/hooks/useImageMode.doc.mjs +2 -2
  1013. package/src/hooks/useInputContainer.doc.mjs +2 -2
  1014. package/src/hooks/useInputContainer.test.tsx +180 -0
  1015. package/src/hooks/useInputContainer.ts +36 -1
  1016. package/src/hooks/useInputStatusIcon.test.tsx +59 -0
  1017. package/src/hooks/useInputStatusIcon.tsx +12 -1
  1018. package/src/hooks/useKeyboardHint.doc.mjs +2 -2
  1019. package/src/hooks/useKeyboardHint.test.tsx +22 -0
  1020. package/src/hooks/useKeyboardHint.tsx +7 -3
  1021. package/src/hooks/useListFocus.doc.mjs +2 -2
  1022. package/src/hooks/useListFocus.ts +8 -7
  1023. package/src/hooks/useLongPress.test.tsx +18 -0
  1024. package/src/hooks/useLongPress.ts +12 -2
  1025. package/src/hooks/useMediaQuery.doc.mjs +2 -2
  1026. package/src/hooks/useOverflow.doc.mjs +2 -2
  1027. package/src/hooks/useScrollLock.doc.mjs +2 -2
  1028. package/src/hooks/useScrollOverflow.doc.mjs +2 -2
  1029. package/src/hooks/useStreamingText.doc.mjs +2 -2
  1030. package/src/hooks/useTreeFocus.doc.mjs +2 -2
  1031. package/src/hooks/useTreeFocus.test.tsx +53 -1
  1032. package/src/hooks/useTreeFocus.ts +13 -2
  1033. package/src/i18n/InternationalizationProvider.doc.mjs +14 -2
  1034. package/src/i18n/InternationalizationProvider.tsx +6 -0
  1035. package/src/i18n/useDirection.ts +6 -3
  1036. package/src/i18n/useTranslator.doc.mjs +2 -2
  1037. package/src/index.ts +2 -18
  1038. package/src/theme/MediaTheme.doc.mjs +2 -2
  1039. package/src/theme/SyntaxTheme.doc.mjs +2 -2
  1040. package/src/theme/Theme.doc.mjs +2 -2
  1041. package/src/theme/Theme.tsx +3 -7
  1042. package/src/theme/contrast.test.ts +94 -0
  1043. package/src/theme/contrast.ts +99 -0
  1044. package/src/theme/defineTheme.test.ts +29 -30
  1045. package/src/theme/defineTheme.ts +11 -5
  1046. package/src/theme/derivedVarRegistry.test.ts +0 -1
  1047. package/src/theme/derivedVarRegistry.ts +0 -6
  1048. package/src/theme/expandColorScale.test.ts +401 -1
  1049. package/src/theme/expandColorScale.ts +143 -19
  1050. package/src/theme/generateThemeRules.test.ts +20 -20
  1051. package/src/theme/generateThemeRules.ts +0 -15
  1052. package/src/theme/index.ts +11 -13
  1053. package/src/theme/themeRegistry.test.ts +59 -0
  1054. package/src/theme/themeRegistry.ts +53 -0
  1055. package/src/theme/tokens.stylex.ts +0 -19
  1056. package/src/theme/types.ts +14 -13
  1057. package/src/theme/useTheme.doc.mjs +2 -2
  1058. package/src/theme/useTheme.test.tsx +48 -3
  1059. package/src/theme/useTheme.ts +100 -29
  1060. package/src/utils/rtlStyles.ts +22 -0
  1061. package/dist/NavMenu/NavMenuItem.d.ts +0 -13
  1062. package/dist/NavMenu/NavMenuItem.d.ts.map +0 -1
  1063. package/dist/NavMenu/NavMenuItem.js +0 -16
  1064. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts +0 -9
  1065. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts.map +0 -1
  1066. package/dist/Thumbnail/thumbnail.markers.stylex.js +0 -14
  1067. package/dist/authoring/doc.d.ts +0 -145
  1068. package/dist/authoring/doc.d.ts.map +0 -1
  1069. package/dist/authoring/doc.js +0 -100
  1070. package/dist/authoring/index.d.ts +0 -29
  1071. package/dist/authoring/index.d.ts.map +0 -1
  1072. package/dist/authoring/index.js +0 -28
  1073. package/dist/authoring/integration.d.ts +0 -35
  1074. package/dist/authoring/integration.d.ts.map +0 -1
  1075. package/dist/authoring/integration.js +0 -30
  1076. package/dist/authoring/template.d.ts +0 -66
  1077. package/dist/authoring/template.d.ts.map +0 -1
  1078. package/dist/authoring/template.js +0 -55
  1079. package/dist/config.d.ts +0 -80
  1080. package/dist/config.d.ts.map +0 -1
  1081. package/dist/config.js +0 -40
  1082. package/dist/docs-types.d.ts +0 -969
  1083. package/dist/docs-types.d.ts.map +0 -1
  1084. package/dist/docs-types.js +0 -1
  1085. package/src/NavMenu/NavMenuItem.tsx +0 -19
  1086. package/src/Thumbnail/thumbnail.markers.stylex.ts +0 -12
  1087. package/src/authoring/doc.ts +0 -164
  1088. package/src/authoring/index.test.ts +0 -52
  1089. package/src/authoring/index.ts +0 -50
  1090. package/src/authoring/integration.ts +0 -42
  1091. package/src/authoring/template.ts +0 -74
  1092. package/src/config.test.ts +0 -16
  1093. package/src/config.ts +0 -92
  1094. package/src/docs-types.ts +0 -1108
@@ -17,7 +17,7 @@ import React from 'react';
17
17
  * - /packages/core/src/AppShell/index.ts
18
18
  * - /packages/core/src/AppShell/AppShell.test.tsx
19
19
  * - /apps/storybook/stories/AppShell.stories.tsx
20
- * - /packages/cli/templates/blocks/components/AppShell/ (showcase blocks)
20
+ * - /packages/cli/assets/templates/blocks/components/AppShell/ (showcase blocks)
21
21
  */
22
22
 
23
23
  import {
@@ -55,6 +55,7 @@ import {useMediaQuery} from '../hooks/useMediaQuery';
55
55
  import {observeResize, unobserveResize} from '../utils/sharedResizeObserver';
56
56
  import {themeProps} from '../utils/themeProps';
57
57
  import {useTranslator} from '../i18n';
58
+ import type {AppShellVariantMap} from './index';
58
59
 
59
60
  const HasActivity = typeof React.Activity !== 'undefined';
60
61
  const ActivityWrapper = HasActivity
@@ -101,25 +102,6 @@ export type AppShellBreakpoint = 'sm' | 'md' | 'lg' | 'none';
101
102
  * - `elevated`: Wash nav background with elevated surface content + border radius
102
103
  * @default 'elevated'
103
104
  */
104
- /**
105
- * Extensible variant map for AppShell.
106
- *
107
- * Theme packages can add custom variants via TypeScript module augmentation:
108
- * @example
109
- * ```
110
- * declare module '@astryxdesign/core/AppShell' {
111
- * interface AppShellVariantMap {
112
- * 'glass': true;
113
- * }
114
- * }
115
- * ```
116
- */
117
- export interface AppShellVariantMap {
118
- wash: true;
119
- surface: true;
120
- section: true;
121
- elevated: true;
122
- }
123
105
 
124
106
  /**
125
107
  * Navigation background style. Extensible via module augmentation of AppShellVariantMap.
@@ -359,6 +341,15 @@ const styles = stylex.create({
359
341
  fontWeight: fontWeightVars['--font-weight-semibold'],
360
342
  fontSize: typeScaleVars['--text-body-size'],
361
343
  },
344
+ // Programmatic focus target for the skip link. The main container is only
345
+ // focusable via tabIndex={-1} (never tabbable), so a focus ring around the
346
+ // entire content area would be noise rather than guidance — suppress it.
347
+ mainFocusTarget: {
348
+ outline: {
349
+ default: null,
350
+ ':focus': 'none',
351
+ },
352
+ },
362
353
 
363
354
  elevatedBackdrop: {
364
355
  position: 'absolute',
@@ -531,6 +522,13 @@ export function AppShell({
531
522
  [mobileNavIsControlled, mobileNavConfig],
532
523
  );
533
524
 
525
+ // Move focus to the main content container when the skip link is activated.
526
+ // Hash navigation alone doesn't reliably move focus in every browser, so
527
+ // focus the target explicitly (it's focusable via tabIndex={-1}).
528
+ const handleSkipLinkClick = useCallback(() => {
529
+ document.getElementById(MAIN_CONTENT_ID)?.focus();
530
+ }, []);
531
+
534
532
  const isFill = height === 'fill';
535
533
  const isAuto = height === 'auto';
536
534
 
@@ -675,6 +673,9 @@ export function AppShell({
675
673
  headerInner != null ? (
676
674
  <div
677
675
  ref={headerRef}
676
+ // Top-level banner landmark for the header region (topNav + banner).
677
+ // Safe here: the wrapper is never nested inside main/nav/other landmarks.
678
+ role="banner"
678
679
  {...mergeProps(
679
680
  themeProps('app-shell-header', {variant}),
680
681
  stylex.props(navAreaStyle, isAuto && styles.headerSticky),
@@ -723,8 +724,11 @@ export function AppShell({
723
724
  padding={contentPadding ?? 0}
724
725
  role="main"
725
726
  id={MAIN_CONTENT_ID}
727
+ // Focusable skip-link target (WCAG 2.4.1) — without tabIndex, several
728
+ // browsers won't move focus to the div when the skip link is activated.
729
+ tabIndex={-1}
726
730
  isScrollable={isFill}
727
- xstyle={contentAreaStyle}>
731
+ xstyle={[contentAreaStyle, styles.mainFocusTarget]}>
728
732
  {children}
729
733
  </LayoutContent>
730
734
  );
@@ -800,9 +804,10 @@ export function AppShell({
800
804
  {/* Skip-to-content link */}
801
805
  <a
802
806
  href={`#${MAIN_CONTENT_ID}`}
807
+ onClick={handleSkipLinkClick}
803
808
  {...stylex.props(styles.skipLink)}
804
809
  data-testid="skip-to-content">
805
- Skip to content
810
+ {t('@astryx.appShell.skipToContent')}
806
811
  </a>
807
812
 
808
813
  <Layout
@@ -11,12 +11,31 @@
11
11
  * SYNC: When modified, update this header and /packages/core/src/AppShell/AppShell.doc.mjs
12
12
  */
13
13
 
14
+ /**
15
+ * Extensible variant map for AppShell.
16
+ *
17
+ * Theme packages can add custom variants via TypeScript module augmentation:
18
+ * @example
19
+ * ```
20
+ * declare module '@astryxdesign/core/AppShell' {
21
+ * interface AppShellVariantMap {
22
+ * 'glass': true;
23
+ * }
24
+ * }
25
+ * ```
26
+ */
27
+ export interface AppShellVariantMap {
28
+ wash: true;
29
+ surface: true;
30
+ section: true;
31
+ elevated: true;
32
+ }
33
+
14
34
  export {AppShell} from './AppShell';
15
35
  export type {
16
36
  AppShellProps,
17
37
  AppShellBreakpoint,
18
38
  AppShellVariant,
19
- AppShellVariantMap,
20
39
  MobileNavConfig,
21
40
  } from './AppShell';
22
41
  export {
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').HookDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').HookDoc} */
4
4
  export const docs = {
5
5
  name: 'useAppShellMobile',
6
6
  displayName: 'useAppShellMobile',
@@ -109,7 +109,7 @@ export const docs = {
109
109
  importPath: '@astryxdesign/core/AppShell',
110
110
  };
111
111
 
112
- /** @type {import('../docs-types').HookTranslationDoc} */
112
+ /** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
113
113
  export const docsDense = {
114
114
  description:
115
115
  'Reads/controls AppShell mobile nav context. Use for custom triggers, closing drawer after route changes, or syncing AppShell-adjacent mobile UI to the same breakpoint as mobile nav.',
@@ -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: 'AspectRatio',
@@ -62,7 +62,7 @@ export const docs = {
62
62
  },
63
63
  };
64
64
 
65
- /** @type {import('../docs-types').ComponentDoc} */
65
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
66
66
  export const docsZh = {
67
67
  name: 'AspectRatio',
68
68
  displayName: 'Aspect Ratio',
@@ -105,7 +105,7 @@ export const docsZh = {
105
105
  },
106
106
  };
107
107
 
108
- /** @type {import('../docs-types').TranslationDoc} */
108
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
109
109
  export const docsDense = {
110
110
  description: 'maintains specific aspect ratio for children',
111
111
  usage: {
@@ -13,7 +13,7 @@
13
13
  * - /packages/core/src/AspectRatio/AspectRatio.test.tsx
14
14
  * - /packages/core/src/reset.css (AspectRatio fit baseline rules)
15
15
  * - /apps/storybook/stories/AspectRatio.stories.tsx
16
- * - /packages/cli/templates/blocks/components/AspectRatio/ (showcase blocks)
16
+ * - /packages/cli/assets/templates/blocks/components/AspectRatio/ (showcase blocks)
17
17
  */
18
18
 
19
19
  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: 'Avatar',
@@ -29,21 +29,10 @@ export const docs = {
29
29
  theming: {
30
30
  targets: [
31
31
  {className: 'astryx-avatar', visualProps: ['size']},
32
+ {className: 'astryx-avatar-fallback', visualProps: ['size']},
32
33
  {className: 'astryx-avatar-status-dot', visualProps: ['variant']},
33
34
  {className: 'astryx-avatar-status-dot-glyph', visualProps: ['shape']},
34
35
  ],
35
- vars: [
36
- {name: '--_avatar-fallback-font-size', description: 'Initials font size; default is proportional to the avatar size (size × 0.4). Override per size tier (e.g. size:sm) for a custom type scale.', default: 'calc(avatar-size × 0.4)', private: true},
37
- {name: '--_avatar-fallback-font-weight', description: 'Initials font weight', default: 'var(--font-weight-medium)', private: true},
38
- {name: '--_avatar-fallback-color', description: 'Fallback text and default-icon color', default: 'var(--color-text-secondary)', private: true},
39
- {name: '--_avatar-fallback-background', description: 'Fallback wash background fill', default: 'var(--color-neutral)', private: true},
40
- ],
41
- derived: [
42
- {property: 'fontSize', vars: ['--_avatar-fallback-font-size']},
43
- {property: 'fontWeight', vars: ['--_avatar-fallback-font-weight']},
44
- {property: 'color', vars: ['--_avatar-fallback-color']},
45
- {property: 'backgroundColor', vars: ['--_avatar-fallback-background']},
46
- ],
47
36
  },
48
37
  description: 'Displays a user avatar with image, initials fallback, and optional status indicator.',
49
38
  props: [
@@ -128,7 +117,7 @@ export const docs = {
128
117
  ],
129
118
  };
130
119
 
131
- /** @type {import('../docs-types').TranslationDoc} */
120
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
132
121
  export const docsZh = {
133
122
  usage: {
134
123
  description:
@@ -142,7 +131,7 @@ export const docsZh = {
142
131
  },
143
132
  };
144
133
 
145
- /** @type {import('../docs-types').TranslationDoc} */
134
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
146
135
  export const docsDense = {
147
136
  description: 'person/team avatar w/ photo → initials → icon fallback chain',
148
137
  usage: {
@@ -37,17 +37,32 @@ describe('Avatar', () => {
37
37
  expect(innerImg).toHaveAttribute('alt', '');
38
38
  });
39
39
 
40
- it('renders fallback initials through the themeable font-size var, not a bare px literal', () => {
40
+ it('renders fallback initials at the proportional size via a StyleX class, not an inline property', () => {
41
41
  render(<Avatar name="Ada Lovelace" size="sm" data-testid="a" />);
42
42
  const initials = screen.getByText('AL');
43
- // The seam: the dynamic font size resolves to the Avatar-scoped var (with
44
- // the proportional `size × 0.4` default baked in as the fallback), so a
45
- // theme can re-scope it per size. A regression to a bare px literal would
46
- // break theming.
43
+ // The default proportional size (sm = 24 × 0.4 = 9.6px) is fed to StyleX as
44
+ // a dynamic value: StyleX applies `font-size` through a class and sets only
45
+ // the computed value inline (as a custom property). Because the property
46
+ // lands via a class, a theme's `.astryx-avatar-fallback.<size>` rule in the
47
+ // theme layer overrides it per size tier — no internal var seam needed.
47
48
  const style = initials.getAttribute('style') ?? '';
48
- expect(style).toContain('var(--_avatar-fallback-font-size,');
49
- // Default still reproduces the proportional scale (sm = 24 × 0.4 = 9.6px).
50
- expect(style).toMatch(/var\(--_avatar-fallback-font-size,\s*9\.6\d*px\)/);
49
+ expect(style).toMatch(/9\.6\d*px/);
50
+ // Regression guard: the seam must NOT reintroduce the removed internal var.
51
+ expect(style).not.toContain('--_avatar-fallback-font-size');
52
+ });
53
+
54
+ it('marks the fallback surface with the stable theming class (initials and icon)', () => {
55
+ // The background is themed directly on `.astryx-avatar-fallback`, so both
56
+ // the initials and the default-icon fallback must carry the class.
57
+ const {rerender} = render(<Avatar name="Ada Lovelace" />);
58
+ expect(screen.getByText('AL').className).toContain(
59
+ 'astryx-avatar-fallback',
60
+ );
61
+
62
+ rerender(<Avatar />);
63
+ const icon = document.querySelector('.astryx-avatar-fallback');
64
+ expect(icon).not.toBeNull();
65
+ expect(icon?.querySelector('svg')).not.toBeNull();
51
66
  });
52
67
 
53
68
  it('retries a new src after a previous src failed to load', () => {
@@ -13,7 +13,7 @@
13
13
  * - /packages/core/src/Avatar/Avatar.doc.mjs (props table, features, implementation notes)
14
14
  * - /packages/core/src/Avatar/index.ts (exports if types change)
15
15
  * - /apps/storybook/stories/Avatar.stories.tsx (storybook stories)
16
- * - /packages/cli/templates/blocks/components/Avatar/ (showcase blocks)
16
+ * - /packages/cli/assets/templates/blocks/components/Avatar/ (showcase blocks)
17
17
  *
18
18
  * Last synced props: alt, fallbackSrc, name, size, src, status, href, as, target, rel, onClick
19
19
  */
@@ -112,9 +112,9 @@ const styles = stylex.create({
112
112
  display: 'inline-flex',
113
113
  flexShrink: 0,
114
114
  // The wrapper is not clipped (so the status dot can overflow), so it must be
115
- // rounded itself: a themed fallback background lands on `.astryx-avatar` (the
116
- // class-bearing wrapper) as well as the internal var, and an unrounded
117
- // wrapper would show that fill as square corners behind the circular content.
115
+ // rounded itself: a theme can set a background on the `.astryx-avatar`
116
+ // wrapper, and an unrounded wrapper would show that fill as square corners
117
+ // behind the circular content.
118
118
  borderRadius: radiusVars['--radius-full'],
119
119
  },
120
120
  content: {
@@ -136,14 +136,15 @@ const styles = stylex.create({
136
136
  justifyContent: 'center',
137
137
  width: '100%',
138
138
  height: '100%',
139
- // Fallback surface (initials + default icon). Each property reads an
140
- // Avatar-scoped internal var so a theme can re-scope the fallback wash and
141
- // initials weight/color without forking; the defaults reproduce today's
142
- // exact output. See derivedVarRegistry (avatar) + Avatar.doc.mjs theming.
143
- backgroundColor: `var(--_avatar-fallback-background, ${colorVars['--color-neutral']})`,
144
- color: `var(--_avatar-fallback-color, ${colorVars['--color-text-secondary']})`,
139
+ // Fallback surface (initials + default icon). Background, text color,
140
+ // weight, and per-size font size are all themed directly via the stable
141
+ // `.astryx-avatar-fallback` class target (font size through its size
142
+ // variant, `.astryx-avatar-fallback.<size>`), so the defaults here are
143
+ // plain values with no internal-var seam. See Avatar.doc.mjs theming.
144
+ backgroundColor: colorVars['--color-neutral'],
145
+ color: colorVars['--color-text-secondary'],
145
146
  fontFamily: typographyVars['--font-family-body'],
146
- fontWeight: `var(--_avatar-fallback-font-weight, ${fontWeightVars['--font-weight-medium']})`,
147
+ fontWeight: fontWeightVars['--font-weight-medium'],
147
148
  textTransform: 'uppercase',
148
149
  },
149
150
  status: {
@@ -205,18 +206,22 @@ const dynamicStyles = stylex.create({
205
206
  width: size,
206
207
  height: size,
207
208
  }),
208
- // Initials font size defaults to the proportional `size × ratio` scale but is
209
- // reachable via the `--_avatar-fallback-font-size` derived var, so a theme can
210
- // set a per-size type scale (e.g. `components.avatar['size:sm']`).
209
+ // Initials font size defaults to the proportional `size × ratio` scale. It's
210
+ // a StyleX dynamic style, so the value lands via a class (not an inline
211
+ // property) — a theme's `.astryx-avatar-fallback.<size>` rule in the theme
212
+ // layer overrides it per size tier, no internal var needed.
211
213
  fontSize: (size: number) => ({
212
- fontSize: `var(--_avatar-fallback-font-size, ${
213
- size * INITIALS_FONT_SIZE_RATIO
214
- }px)`,
214
+ fontSize: `${size * INITIALS_FONT_SIZE_RATIO}px`,
215
215
  }),
216
216
  statusPosition: (size: number) => ({
217
217
  bottom: size * CIRCLE_EDGE_OFFSET_RATIO,
218
- right: size * CIRCLE_EDGE_OFFSET_RATIO,
219
- transform: 'translate(50%, 50%)',
218
+ insetInlineEnd: size * CIRCLE_EDGE_OFFSET_RATIO,
219
+ // `insetInlineEnd` anchors to the right edge in LTR / left in RTL, so the
220
+ // outward push must mirror too: +X in LTR, −X in RTL (Y is unaffected).
221
+ transform: {
222
+ default: 'translate(50%, 50%)',
223
+ ':is([dir="rtl"] *)': 'translate(-50%, 50%)',
224
+ },
220
225
  }),
221
226
  });
222
227
 
@@ -544,15 +549,22 @@ export function Avatar({
544
549
  )}
545
550
  {showInitials && (
546
551
  <div
547
- {...stylex.props(
548
- styles.fallback,
549
- dynamicStyles.fontSize(numericSize),
552
+ {...mergeProps(
553
+ themeProps('avatar-fallback', {size: resolvedSize}),
554
+ stylex.props(
555
+ styles.fallback,
556
+ dynamicStyles.fontSize(numericSize),
557
+ ),
550
558
  )}>
551
559
  {getInitials(name)}
552
560
  </div>
553
561
  )}
554
562
  {showIcon && (
555
- <div {...stylex.props(styles.fallback)}>
563
+ <div
564
+ {...mergeProps(
565
+ themeProps('avatar-fallback', {size: resolvedSize}),
566
+ stylex.props(styles.fallback),
567
+ )}>
556
568
  <DefaultIcon size={numericSize} />
557
569
  </div>
558
570
  )}
@@ -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: 'AvatarStatusDot',
@@ -12,7 +12,7 @@
12
12
  * - /packages/core/src/Avatar/Avatar.doc.mjs (features, files table)
13
13
  * - /packages/core/src/Avatar/index.ts (exports)
14
14
  * - /apps/storybook/stories/Avatar.stories.tsx (storybook stories)
15
- * - /packages/cli/templates/blocks/components/Avatar/ (showcase blocks)
15
+ * - /packages/cli/assets/templates/blocks/components/Avatar/ (showcase blocks)
16
16
  */
17
17
 
18
18
  import React, {use, type ReactNode} from 'react';
@@ -22,6 +22,7 @@ import {colorVars, radiusVars} from '../theme/tokens.stylex';
22
22
  import {AvatarSizeContext} from './AvatarSizeContext';
23
23
  import {isRenderable, mergeProps} from '../utils';
24
24
  import {themeProps} from '../utils/themeProps';
25
+ import type {AvatarStatusDotVariantMap} from './index';
25
26
 
26
27
  /**
27
28
  * Discrete size tier of the status dot, derived from the avatar size.
@@ -65,32 +66,6 @@ function resolveStatusDotSize(avatarSize: number): {
65
66
  return {dotSize: 32, borderWidth: 4, iconSize: 18, tier: 'large'};
66
67
  }
67
68
 
68
- /**
69
- * Extensible variant map for AvatarStatusDot.
70
- *
71
- * Theme packages can add custom variants via TypeScript module augmentation:
72
- * @example
73
- * ```
74
- * declare module '@astryxdesign/core/Avatar' {
75
- * interface AvatarStatusDotVariantMap {
76
- * 'away': true;
77
- * }
78
- * }
79
- * ```
80
- *
81
- * Custom variants render no background fill, no ink colour, and no built-in
82
- * shape glyph — the theme must supply the fill and, if it passes an `icon`,
83
- * a `color` for it to paint with. It should also supply a non-colour mark
84
- * so the status is not distinguishable by colour alone (a WCAG 1.4.1
85
- * failure): pass `icon`, or theme a glyph onto the dot via
86
- * `.astryx-avatar-status-dot[data-variant="..."]` (e.g. a `::before` mark).
87
- */
88
- export interface AvatarStatusDotVariantMap {
89
- success: true;
90
- neutral: true;
91
- error: true;
92
- }
93
-
94
69
  /**
95
70
  * AvatarStatusDot variant type. Extensible via module augmentation of AvatarStatusDotVariantMap.
96
71
  */
@@ -11,11 +11,36 @@
11
11
  * SYNC: When modified, update this header and /packages/core/src/Avatar/Avatar.doc.mjs
12
12
  */
13
13
 
14
+ /**
15
+ * Extensible variant map for AvatarStatusDot.
16
+ *
17
+ * Theme packages can add custom variants via TypeScript module augmentation:
18
+ * @example
19
+ * ```
20
+ * declare module '@astryxdesign/core/Avatar' {
21
+ * interface AvatarStatusDotVariantMap {
22
+ * 'away': true;
23
+ * }
24
+ * }
25
+ * ```
26
+ *
27
+ * Custom variants render no background fill, no ink colour, and no built-in
28
+ * shape glyph — the theme must supply the fill and, if it passes an `icon`,
29
+ * a `color` for it to paint with. It should also supply a non-colour mark
30
+ * so the status is not distinguishable by colour alone (a WCAG 1.4.1
31
+ * failure): pass `icon`, or theme a glyph onto the dot via
32
+ * `.astryx-avatar-status-dot[data-variant="..."]` (e.g. a `::before` mark).
33
+ */
34
+ export interface AvatarStatusDotVariantMap {
35
+ success: true;
36
+ neutral: true;
37
+ error: true;
38
+ }
39
+
14
40
  export {Avatar, resolveSize} from './Avatar';
15
41
  export type {AvatarProps, AvatarSize} from './Avatar';
16
42
  export {AvatarStatusDot} from './AvatarStatusDot';
17
43
  export type {
18
44
  AvatarStatusDotProps,
19
45
  AvatarStatusDotVariant,
20
- AvatarStatusDotVariantMap,
21
46
  } from './AvatarStatusDot';
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
- /** @type {import('../docs-types').ComponentDoc} */
2
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
3
3
 
4
4
  export const docs = {
5
5
  name: 'AvatarGroup',
@@ -71,7 +71,7 @@ export const docs = {
71
71
  ],
72
72
  };
73
73
 
74
- /** @type {import('../docs-types').TranslationDoc} */
74
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
75
75
  export const docsZh = {
76
76
  usage: {
77
77
  description:
@@ -85,7 +85,7 @@ export const docsZh = {
85
85
  },
86
86
  };
87
87
 
88
- /** @type {import('../docs-types').TranslationDoc} */
88
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
89
89
  export const docsDense = {
90
90
  description: 'compositional overlapping avatar row w/ +N overflow or custom slot',
91
91
  usage: {
@@ -5,6 +5,7 @@ import userEvent from '@testing-library/user-event';
5
5
  import {AvatarGroup} from './AvatarGroup';
6
6
  import {AvatarGroupOverflow} from './AvatarGroupOverflow';
7
7
  import {Avatar, AvatarStatusDot} from '../Avatar';
8
+ import {InternationalizationProvider} from '../i18n';
8
9
 
9
10
  describe('AvatarGroup', () => {
10
11
  it('renders all avatar children', () => {
@@ -238,7 +239,26 @@ describe('AvatarGroupOverflow — hardening', () => {
238
239
  );
239
240
 
240
241
  expect(screen.getByText('+4912')).toBeInTheDocument();
241
- expect(screen.getByLabelText('4912 more')).toBeInTheDocument();
242
+ // The aria-label routes through the catalog's `{count, number}` ICU
243
+ // argument, so the en locale adds a grouping separator.
244
+ expect(screen.getByLabelText('4,912 more')).toBeInTheDocument();
245
+ });
246
+
247
+ it('localizes the overflow label through the i18n catalog', () => {
248
+ render(
249
+ <InternationalizationProvider
250
+ locale="fr"
251
+ overrides={{
252
+ fr: {'@astryx.avatarGroup.overflow': '{count, number} de plus'},
253
+ }}>
254
+ <AvatarGroup>
255
+ <Avatar name="Alice" />
256
+ <AvatarGroupOverflow count={3} />
257
+ </AvatarGroup>
258
+ </InternationalizationProvider>,
259
+ );
260
+
261
+ expect(screen.getByLabelText('3 de plus')).toBeInTheDocument();
242
262
  });
243
263
  });
244
264
 
@@ -21,7 +21,7 @@
21
21
  * - /packages/core/src/AvatarGroup/AvatarGroup.doc.mjs (props table, features)
22
22
  * - /packages/core/src/AvatarGroup/index.ts (exports if types change)
23
23
  * - /apps/storybook/stories/AvatarGroup.stories.tsx (storybook stories)
24
- * - /packages/cli/templates/blocks/components/AvatarGroup/ (showcase blocks)
24
+ * - /packages/cli/assets/templates/blocks/components/AvatarGroup/ (showcase blocks)
25
25
  */
26
26
 
27
27
  import {useId, useMemo, useState, type ReactNode} from 'react';
@@ -108,11 +108,9 @@ export function AvatarGroup({
108
108
  );
109
109
 
110
110
  // The keyboard hint and roving tab stop only make sense once the group has
111
- // interactive children. Detect their presence (and the writing direction for
112
- // RTL-correct arrow navigation) from the rendered DOM after commit, matching
113
- // how the codebase reads direction elsewhere (`getComputedStyle(el).direction`).
111
+ // interactive children. Detect their presence from the rendered DOM after
112
+ // commit. (Arrow-key direction is auto-detected inside useListFocus.)
114
113
  const [hasInteractiveItems, setHasInteractiveItems] = useState(false);
115
- const [isRtl, setIsRtl] = useState(false);
116
114
 
117
115
  // Single tab stop + roving arrow focus over the group's interactive items.
118
116
  // `itemSelector` targets the shared `[data-avatar-item]` marker stamped on
@@ -123,7 +121,6 @@ export function AvatarGroup({
123
121
  itemSelector: '[data-avatar-item]',
124
122
  orientation: 'horizontal',
125
123
  hasRovingTabIndex: true,
126
- isRtl,
127
124
  });
128
125
 
129
126
  useIsomorphicLayoutEffect(() => {
@@ -132,7 +129,6 @@ export function AvatarGroup({
132
129
  return;
133
130
  }
134
131
  setHasInteractiveItems(root.querySelector('[data-avatar-item]') != null);
135
- setIsRtl(getComputedStyle(root).direction === 'rtl');
136
132
  });
137
133
 
138
134
  const hintId = useId();
@@ -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: 'AvatarGroupOverflow',
@@ -3,14 +3,14 @@
3
3
 
4
4
  /**
5
5
  * @file AvatarGroupOverflow.tsx
6
- * @input Uses React, StyleX, AvatarGroupContext
6
+ * @input Uses React, StyleX, AvatarGroupContext, i18n (useTranslator)
7
7
  * @output Exports AvatarGroupOverflow for overflow indicator
8
8
  * @position Slot component used inside AvatarGroup
9
9
  *
10
10
  * SYNC: When modified, update these files to stay in sync:
11
11
  * - /packages/core/src/AvatarGroup/AvatarGroup.doc.mjs
12
12
  * - /packages/core/src/AvatarGroup/index.ts
13
- * - /packages/cli/templates/blocks/components/AvatarGroup/ (showcase blocks)
13
+ * - /packages/cli/assets/templates/blocks/components/AvatarGroup/ (showcase blocks)
14
14
  */
15
15
 
16
16
  import React, {type ReactNode} from 'react';
@@ -26,6 +26,7 @@ import {mergeProps} from '../utils';
26
26
  import {useAvatarGroup} from './AvatarGroupContext';
27
27
  import type {BaseProps} from '../BaseProps';
28
28
  import {themeProps} from '../utils/themeProps';
29
+ import {useTranslator} from '../i18n';
29
30
 
30
31
  const BORDER_WIDTH = 2;
31
32
  const OVERFLOW_FONT_RATIO = 0.35;
@@ -150,11 +151,12 @@ export function AvatarGroupOverflow({
150
151
  style,
151
152
  ...rest
152
153
  }: AvatarGroupOverflowProps): ReactNode {
154
+ const t = useTranslator();
153
155
  const group = useAvatarGroup();
154
156
  const numericSize = group?.numericSize ?? 36;
155
157
  const overlap = group?.overlap ?? 0;
156
158
 
157
- const label = `${count} more`;
159
+ const label = t('@astryx.avatarGroup.overflow', {count});
158
160
  const content = children ?? `+${count}`;
159
161
 
160
162
  if (onClick) {
@@ -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: 'Badge',
@@ -60,7 +60,7 @@ export const docs = {
60
60
  },
61
61
  };
62
62
 
63
- /** @type {import('../docs-types').ComponentDoc} */
63
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
64
64
  export const docsZh = {
65
65
  name: 'Badge',
66
66
  displayName: 'Badge',
@@ -107,7 +107,7 @@ export const docsZh = {
107
107
  },
108
108
  };
109
109
 
110
- /** @type {import('../docs-types').TranslationDoc} */
110
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
111
111
  export const docsDense = {
112
112
  description: 'highlights a status or category tag, NOT for general metadata',
113
113
  usage: {