@astryxdesign/core 0.2.0 → 0.3.0-canary.077087f

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 (1114) 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 +35 -14
  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 +90 -27
  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.d.ts +9 -2
  143. package/dist/DateInput/DateInput.d.ts.map +1 -1
  144. package/dist/DateInput/DateInput.js +6 -3
  145. package/dist/DateRangeInput/DateRangeInput.d.ts +9 -2
  146. package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  147. package/dist/DateRangeInput/DateRangeInput.js +6 -3
  148. package/dist/DateTimeInput/DateTimeInput.d.ts +9 -1
  149. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  150. package/dist/DateTimeInput/DateTimeInput.js +6 -3
  151. package/dist/Dialog/Dialog.d.ts +33 -24
  152. package/dist/Dialog/Dialog.d.ts.map +1 -1
  153. package/dist/Dialog/Dialog.js +47 -31
  154. package/dist/Dialog/DialogHeader.d.ts +1 -1
  155. package/dist/Dialog/DialogHeader.js +1 -1
  156. package/dist/Dialog/index.d.ts +18 -1
  157. package/dist/Dialog/index.d.ts.map +1 -1
  158. package/dist/Dialog/index.js +14 -0
  159. package/dist/Divider/Divider.d.ts +2 -18
  160. package/dist/Divider/Divider.d.ts.map +1 -1
  161. package/dist/Divider/Divider.js +1 -15
  162. package/dist/Divider/index.d.ts +18 -1
  163. package/dist/Divider/index.d.ts.map +1 -1
  164. package/dist/Divider/index.js +14 -0
  165. package/dist/DropdownMenu/DropdownMenu.d.ts +23 -8
  166. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  167. package/dist/DropdownMenu/DropdownMenu.js +32 -19
  168. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +18 -12
  169. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  170. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +38 -63
  171. package/dist/DropdownMenu/DropdownMenuItem.d.ts +8 -3
  172. package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  173. package/dist/DropdownMenu/DropdownMenuItem.js +14 -5
  174. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts +8 -11
  175. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts.map +1 -1
  176. package/dist/DropdownMenu/DropdownMenuRadioGroup.js +3 -1
  177. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +1 -1
  178. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  179. package/dist/DropdownMenu/DropdownMenuRadioItem.js +6 -2
  180. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +1 -1
  181. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  182. package/dist/DropdownMenu/DropdownMenuSubMenu.js +14 -6
  183. package/dist/DropdownMenu/menuItemHover.d.ts +1 -0
  184. package/dist/DropdownMenu/menuItemHover.d.ts.map +1 -1
  185. package/dist/DropdownMenu/menuItemHover.js +1 -0
  186. package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
  187. package/dist/DropdownMenu/renderDropdownItems.js +27 -16
  188. package/dist/EmptyState/EmptyState.d.ts +1 -1
  189. package/dist/EmptyState/EmptyState.js +1 -1
  190. package/dist/Field/Field.d.ts +1 -1
  191. package/dist/Field/Field.js +1 -1
  192. package/dist/Field/FieldLabel.d.ts +4 -3
  193. package/dist/Field/FieldLabel.d.ts.map +1 -1
  194. package/dist/Field/FieldLabel.js +48 -5
  195. package/dist/FieldStatus/FieldStatus.d.ts +1 -18
  196. package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
  197. package/dist/FieldStatus/FieldStatus.js +13 -17
  198. package/dist/FieldStatus/index.d.ts +19 -1
  199. package/dist/FieldStatus/index.d.ts.map +1 -1
  200. package/dist/FieldStatus/index.js +14 -0
  201. package/dist/FileInput/FileInput.js +1 -1
  202. package/dist/FormLayout/FormLayout.d.ts +1 -1
  203. package/dist/FormLayout/FormLayout.d.ts.map +1 -1
  204. package/dist/FormLayout/FormLayout.js +1 -1
  205. package/dist/Grid/Grid.d.ts +2 -10
  206. package/dist/Grid/Grid.d.ts.map +1 -1
  207. package/dist/Grid/Grid.js +1 -10
  208. package/dist/Grid/GridSpan.d.ts +1 -1
  209. package/dist/Grid/GridSpan.js +1 -1
  210. package/dist/HStack/HStack.d.ts +1 -1
  211. package/dist/HStack/HStack.js +1 -1
  212. package/dist/Heading/Heading.d.ts +2 -2
  213. package/dist/Heading/Heading.d.ts.map +1 -1
  214. package/dist/Heading/Heading.js +5 -4
  215. package/dist/HoverCard/HoverCard.d.ts +1 -1
  216. package/dist/HoverCard/HoverCard.js +1 -1
  217. package/dist/Icon/Icon.d.ts +1 -1
  218. package/dist/Icon/Icon.d.ts.map +1 -1
  219. package/dist/Icon/Icon.js +4 -2
  220. package/dist/Icon/defaultIcons.d.ts.map +1 -1
  221. package/dist/Icon/defaultIcons.js +14 -0
  222. package/dist/Icon/globalIconRegistry.d.ts +48 -6
  223. package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
  224. package/dist/Icon/globalIconRegistry.js +74 -7
  225. package/dist/Icon/index.d.ts +4 -3
  226. package/dist/Icon/index.d.ts.map +1 -1
  227. package/dist/Icon/index.js +2 -1
  228. package/dist/Icon/useIcon.d.ts +14 -0
  229. package/dist/Icon/useIcon.d.ts.map +1 -0
  230. package/dist/Icon/useIcon.js +21 -0
  231. package/dist/IconButton/IconButton.d.ts +1 -1
  232. package/dist/IconButton/IconButton.js +1 -1
  233. package/dist/InputGroup/InputGroup.d.ts +1 -1
  234. package/dist/InputGroup/InputGroup.js +1 -1
  235. package/dist/InputGroup/InputGroupText.d.ts +1 -1
  236. package/dist/InputGroup/InputGroupText.js +1 -1
  237. package/dist/Item/Item.d.ts +17 -4
  238. package/dist/Item/Item.d.ts.map +1 -1
  239. package/dist/Item/Item.js +34 -9
  240. package/dist/Kbd/Kbd.d.ts +1 -1
  241. package/dist/Kbd/Kbd.js +1 -1
  242. package/dist/Layout/Layout.d.ts +1 -1
  243. package/dist/Layout/Layout.js +1 -1
  244. package/dist/Layout/LayoutContent.d.ts +1 -1
  245. package/dist/Layout/LayoutContent.js +1 -1
  246. package/dist/Layout/LayoutFooter.d.ts +1 -1
  247. package/dist/Layout/LayoutFooter.js +1 -1
  248. package/dist/Layout/LayoutHeader.d.ts +1 -1
  249. package/dist/Layout/LayoutHeader.js +1 -1
  250. package/dist/Layout/LayoutPanel.d.ts +1 -1
  251. package/dist/Layout/LayoutPanel.js +1 -1
  252. package/dist/Lightbox/Lightbox.d.ts +6 -4
  253. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  254. package/dist/Lightbox/Lightbox.js +173 -79
  255. package/dist/Link/Link.d.ts +1 -1
  256. package/dist/Link/Link.js +1 -1
  257. package/dist/Link/LinkProvider.d.ts +2 -2
  258. package/dist/Link/LinkProvider.js +2 -2
  259. package/dist/List/List.d.ts +1 -1
  260. package/dist/List/List.js +1 -1
  261. package/dist/List/ListItem.d.ts +12 -2
  262. package/dist/List/ListItem.d.ts.map +1 -1
  263. package/dist/List/ListItem.js +3 -1
  264. package/dist/Markdown/Markdown.d.ts.map +1 -1
  265. package/dist/Markdown/Markdown.js +35 -13
  266. package/dist/MetadataList/MetadataList.d.ts +2 -2
  267. package/dist/MetadataList/MetadataList.d.ts.map +1 -1
  268. package/dist/MetadataList/MetadataList.js +38 -12
  269. package/dist/MetadataList/MetadataListItem.d.ts +1 -1
  270. package/dist/MetadataList/MetadataListItem.js +1 -1
  271. package/dist/MobileNav/MobileNav.d.ts +1 -1
  272. package/dist/MobileNav/MobileNav.js +9 -9
  273. package/dist/MoreMenu/MoreMenu.d.ts +1 -1
  274. package/dist/MoreMenu/MoreMenu.js +3 -3
  275. package/dist/MultiSelector/MultiSelector.d.ts +13 -4
  276. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  277. package/dist/MultiSelector/MultiSelector.js +120 -26
  278. package/dist/NavIcon/NavIcon.d.ts +1 -1
  279. package/dist/NavIcon/NavIcon.js +1 -1
  280. package/dist/NavMenu/index.d.ts +0 -2
  281. package/dist/NavMenu/index.d.ts.map +1 -1
  282. package/dist/NavMenu/index.js +1 -3
  283. package/dist/NumberInput/NumberInput.d.ts +1 -1
  284. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  285. package/dist/NumberInput/NumberInput.js +19 -7
  286. package/dist/Outline/Outline.js +1 -1
  287. package/dist/OverflowList/OverflowList.d.ts +1 -1
  288. package/dist/OverflowList/OverflowList.js +1 -1
  289. package/dist/Pagination/Pagination.d.ts +26 -21
  290. package/dist/Pagination/Pagination.d.ts.map +1 -1
  291. package/dist/Pagination/Pagination.js +174 -52
  292. package/dist/Pagination/index.d.ts +22 -1
  293. package/dist/Pagination/index.d.ts.map +1 -1
  294. package/dist/Pagination/index.js +14 -0
  295. package/dist/Popover/Popover.d.ts +20 -3
  296. package/dist/Popover/Popover.d.ts.map +1 -1
  297. package/dist/Popover/Popover.js +5 -1
  298. package/dist/Popover/usePopover.d.ts.map +1 -1
  299. package/dist/Popover/usePopover.js +14 -3
  300. package/dist/PowerSearch/PowerSearch.d.ts +1 -1
  301. package/dist/PowerSearch/PowerSearch.js +1 -1
  302. package/dist/ProgressBar/ProgressBar.d.ts +56 -22
  303. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  304. package/dist/ProgressBar/ProgressBar.js +169 -22
  305. package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts +27 -0
  306. package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts.map +1 -0
  307. package/dist/ProgressBar/ProgressBarMarkTooltip.js +35 -0
  308. package/dist/ProgressBar/index.d.ts +21 -1
  309. package/dist/ProgressBar/index.d.ts.map +1 -1
  310. package/dist/ProgressBar/index.js +14 -0
  311. package/dist/RadioList/RadioList.d.ts +1 -1
  312. package/dist/RadioList/RadioList.js +1 -1
  313. package/dist/RadioList/RadioListItem.d.ts +1 -1
  314. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  315. package/dist/RadioList/RadioListItem.js +2 -2
  316. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  317. package/dist/Resizable/ResizeHandle.js +15 -11
  318. package/dist/Section/Section.d.ts +2 -19
  319. package/dist/Section/Section.d.ts.map +1 -1
  320. package/dist/Section/Section.js +1 -15
  321. package/dist/Section/index.d.ts +19 -1
  322. package/dist/Section/index.d.ts.map +1 -1
  323. package/dist/Section/index.js +14 -0
  324. package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
  325. package/dist/SegmentedControl/SegmentedControl.js +1 -1
  326. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  327. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  328. package/dist/SegmentedControl/SegmentedControlItem.js +4 -3
  329. package/dist/SelectableCard/SelectableCard.d.ts +4 -3
  330. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  331. package/dist/SelectableCard/SelectableCard.js +15 -3
  332. package/dist/Selector/Selector.d.ts +14 -4
  333. package/dist/Selector/Selector.d.ts.map +1 -1
  334. package/dist/Selector/Selector.js +139 -30
  335. package/dist/Selector/hooks.d.ts +4 -4
  336. package/dist/Selector/hooks.d.ts.map +1 -1
  337. package/dist/Selector/hooks.js +38 -19
  338. package/dist/SideNav/SideNav.d.ts +1 -1
  339. package/dist/SideNav/SideNav.js +1 -1
  340. package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
  341. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  342. package/dist/SideNav/SideNavCollapseButton.js +4 -3
  343. package/dist/SideNav/SideNavHeading.d.ts +1 -1
  344. package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
  345. package/dist/SideNav/SideNavHeading.js +8 -7
  346. package/dist/SideNav/SideNavItem.d.ts +2 -2
  347. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  348. package/dist/SideNav/SideNavItem.js +6 -7
  349. package/dist/SideNav/SideNavSection.d.ts +1 -1
  350. package/dist/SideNav/SideNavSection.js +1 -1
  351. package/dist/Skeleton/Skeleton.d.ts +1 -1
  352. package/dist/Skeleton/Skeleton.d.ts.map +1 -1
  353. package/dist/Skeleton/Skeleton.js +3 -3
  354. package/dist/Slider/Slider.d.ts.map +1 -1
  355. package/dist/Slider/Slider.js +78 -68
  356. package/dist/Spinner/Spinner.d.ts +1 -1
  357. package/dist/Spinner/Spinner.js +1 -1
  358. package/dist/Stack/Stack.d.ts +1 -1
  359. package/dist/Stack/Stack.js +1 -1
  360. package/dist/Stack/StackItem.d.ts +1 -1
  361. package/dist/Stack/StackItem.js +1 -1
  362. package/dist/Stack/stack.stylex.d.ts +3 -3
  363. package/dist/StatusDot/StatusDot.d.ts +1 -20
  364. package/dist/StatusDot/StatusDot.d.ts.map +1 -1
  365. package/dist/StatusDot/StatusDot.js +2 -17
  366. package/dist/StatusDot/index.d.ts +21 -1
  367. package/dist/StatusDot/index.d.ts.map +1 -1
  368. package/dist/StatusDot/index.js +14 -0
  369. package/dist/Switch/Switch.d.ts +2 -6
  370. package/dist/Switch/Switch.d.ts.map +1 -1
  371. package/dist/Switch/Switch.js +28 -20
  372. package/dist/TabList/Tab.d.ts +1 -1
  373. package/dist/TabList/Tab.js +1 -1
  374. package/dist/TabList/TabList.d.ts +1 -1
  375. package/dist/TabList/TabList.js +1 -1
  376. package/dist/TabList/TabMenu.d.ts +1 -1
  377. package/dist/TabList/TabMenu.d.ts.map +1 -1
  378. package/dist/TabList/TabMenu.js +11 -3
  379. package/dist/Table/BaseTable.d.ts +1 -1
  380. package/dist/Table/BaseTable.d.ts.map +1 -1
  381. package/dist/Table/BaseTable.js +4 -7
  382. package/dist/Table/Table.d.ts +1 -1
  383. package/dist/Table/Table.js +1 -1
  384. package/dist/Table/TableCell.d.ts +1 -1
  385. package/dist/Table/TableCell.js +4 -2
  386. package/dist/Table/TableHeaderCell.d.ts +1 -1
  387. package/dist/Table/TableHeaderCell.js +4 -2
  388. package/dist/Table/TableRow.d.ts +1 -1
  389. package/dist/Table/TableRow.js +1 -1
  390. package/dist/Table/index.d.ts +1 -1
  391. package/dist/Table/index.d.ts.map +1 -1
  392. package/dist/Table/index.js +1 -1
  393. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts +1 -1
  394. package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +1 -1
  395. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +18 -3
  396. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  397. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +27 -11
  398. package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
  399. package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
  400. package/dist/Table/plugins/tree/useTableTreeData.js +36 -2
  401. package/dist/Table/types.d.ts +0 -9
  402. package/dist/Table/types.d.ts.map +1 -1
  403. package/dist/Text/Text.d.ts +11 -2
  404. package/dist/Text/Text.d.ts.map +1 -1
  405. package/dist/Text/Text.js +26 -3
  406. package/dist/Text/index.d.ts +31 -1
  407. package/dist/Text/index.d.ts.map +1 -1
  408. package/dist/Text/index.js +23 -0
  409. package/dist/TextArea/TextArea.d.ts +1 -1
  410. package/dist/TextArea/TextArea.d.ts.map +1 -1
  411. package/dist/TextArea/TextArea.js +111 -41
  412. package/dist/TextInput/TextInput.d.ts +1 -1
  413. package/dist/TextInput/TextInput.d.ts.map +1 -1
  414. package/dist/TextInput/TextInput.js +4 -3
  415. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  416. package/dist/Thumbnail/Thumbnail.js +52 -46
  417. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  418. package/dist/TimeInput/TimeInput.js +3 -2
  419. package/dist/Timestamp/Timestamp.d.ts +26 -12
  420. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  421. package/dist/Timestamp/Timestamp.js +128 -65
  422. package/dist/Timestamp/TimestampHoverCard.d.ts +45 -0
  423. package/dist/Timestamp/TimestampHoverCard.d.ts.map +1 -0
  424. package/dist/Timestamp/TimestampHoverCard.js +228 -0
  425. package/dist/Timestamp/formatInstant.d.ts +3 -3
  426. package/dist/Timestamp/formatInstant.d.ts.map +1 -1
  427. package/dist/Timestamp/formatInstant.js +7 -2
  428. package/dist/Timestamp/tooltipEntries.d.ts +17 -2
  429. package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
  430. package/dist/Timestamp/tooltipEntries.js +4 -2
  431. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  432. package/dist/Toast/ToastViewport.js +61 -9
  433. package/dist/ToggleButton/ToggleButton.d.ts +1 -1
  434. package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
  435. package/dist/ToggleButton/ToggleButton.js +4 -2
  436. package/dist/ToggleButton/ToggleButtonGroup.d.ts +1 -1
  437. package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  438. package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
  439. package/dist/Token/Token.d.ts +6 -28
  440. package/dist/Token/Token.d.ts.map +1 -1
  441. package/dist/Token/Token.js +69 -58
  442. package/dist/Token/TokenLink.d.ts +62 -0
  443. package/dist/Token/TokenLink.d.ts.map +1 -0
  444. package/dist/Token/TokenLink.js +76 -0
  445. package/dist/Token/index.d.ts +27 -1
  446. package/dist/Token/index.d.ts.map +1 -1
  447. package/dist/Token/index.js +14 -0
  448. package/dist/Tokenizer/Tokenizer.d.ts +1 -1
  449. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  450. package/dist/Tokenizer/Tokenizer.js +5 -3
  451. package/dist/Toolbar/Toolbar.d.ts +1 -1
  452. package/dist/Toolbar/Toolbar.js +1 -1
  453. package/dist/Tooltip/Tooltip.d.ts +1 -1
  454. package/dist/Tooltip/Tooltip.js +1 -1
  455. package/dist/TopNav/TopNav.d.ts +1 -1
  456. package/dist/TopNav/TopNav.d.ts.map +1 -1
  457. package/dist/TopNav/TopNav.js +7 -6
  458. package/dist/TopNav/TopNavHeading.d.ts +2 -8
  459. package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
  460. package/dist/TopNav/TopNavHeading.js +8 -10
  461. package/dist/TopNav/TopNavItem.d.ts +1 -1
  462. package/dist/TopNav/TopNavItem.js +1 -1
  463. package/dist/TopNav/TopNavMegaMenu.d.ts +1 -1
  464. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  465. package/dist/TopNav/TopNavMegaMenu.js +27 -16
  466. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
  467. package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +1 -1
  468. package/dist/TopNav/TopNavMegaMenuItem.d.ts +1 -1
  469. package/dist/TopNav/TopNavMegaMenuItem.js +1 -1
  470. package/dist/TopNav/TopNavMenu.d.ts +1 -1
  471. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  472. package/dist/TopNav/TopNavMenu.js +5 -4
  473. package/dist/TreeList/TreeList.d.ts +1 -1
  474. package/dist/TreeList/TreeList.js +1 -1
  475. package/dist/TreeList/TreeListBranches.js +1 -1
  476. package/dist/TreeList/TreeListItem.d.ts +1 -1
  477. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  478. package/dist/TreeList/TreeListItem.js +4 -3
  479. package/dist/TreeList/TreeListTypes.d.ts +1 -17
  480. package/dist/TreeList/TreeListTypes.d.ts.map +1 -1
  481. package/dist/TreeList/index.d.ts +18 -1
  482. package/dist/TreeList/index.d.ts.map +1 -1
  483. package/dist/TreeList/index.js +14 -0
  484. package/dist/Typeahead/BaseTypeahead.d.ts +10 -1
  485. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  486. package/dist/Typeahead/BaseTypeahead.js +3 -1
  487. package/dist/Typeahead/Typeahead.d.ts +1 -1
  488. package/dist/Typeahead/Typeahead.d.ts.map +1 -1
  489. package/dist/Typeahead/Typeahead.js +9 -2
  490. package/dist/Typeahead/TypeaheadItem.d.ts +1 -1
  491. package/dist/Typeahead/TypeaheadItem.js +1 -1
  492. package/dist/VStack/VStack.d.ts +1 -1
  493. package/dist/VStack/VStack.js +1 -1
  494. package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  495. package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
  496. package/dist/astryx.css +121 -37
  497. package/dist/astryx.umd.js +51 -55
  498. package/dist/astryx.umd.js.map +4 -4
  499. package/dist/hooks/containerReveal.pool.stylex.d.ts +303 -0
  500. package/dist/hooks/containerReveal.pool.stylex.d.ts.map +1 -0
  501. package/dist/hooks/containerReveal.pool.stylex.js +292 -0
  502. package/dist/hooks/index.d.ts +2 -0
  503. package/dist/hooks/index.d.ts.map +1 -1
  504. package/dist/hooks/index.js +2 -1
  505. package/dist/hooks/useContainerReveal.d.ts +83 -0
  506. package/dist/hooks/useContainerReveal.d.ts.map +1 -0
  507. package/dist/hooks/useContainerReveal.js +123 -0
  508. package/dist/hooks/useGridFocus.d.ts +8 -6
  509. package/dist/hooks/useGridFocus.d.ts.map +1 -1
  510. package/dist/hooks/useInputContainer.d.ts.map +1 -1
  511. package/dist/hooks/useInputContainer.js +29 -1
  512. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  513. package/dist/hooks/useInputStatusIcon.js +11 -0
  514. package/dist/hooks/useKeyboardHint.d.ts +2 -2
  515. package/dist/hooks/useKeyboardHint.d.ts.map +1 -1
  516. package/dist/hooks/useKeyboardHint.js +5 -3
  517. package/dist/hooks/useListFocus.d.ts +8 -7
  518. package/dist/hooks/useListFocus.d.ts.map +1 -1
  519. package/dist/hooks/useLongPress.d.ts.map +1 -1
  520. package/dist/hooks/useLongPress.js +12 -2
  521. package/dist/hooks/useTreeFocus.d.ts.map +1 -1
  522. package/dist/hooks/useTreeFocus.js +13 -2
  523. package/dist/i18n/InternationalizationProvider.d.ts +6 -0
  524. package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
  525. package/dist/i18n/useDirection.d.ts.map +1 -1
  526. package/dist/i18n/useDirection.js +6 -3
  527. package/dist/index.d.ts +2 -1
  528. package/dist/index.d.ts.map +1 -1
  529. package/dist/index.js +3 -3
  530. package/dist/theme/Theme.d.ts.map +1 -1
  531. package/dist/theme/Theme.js +2 -7
  532. package/dist/theme/contrast.d.ts +45 -0
  533. package/dist/theme/contrast.d.ts.map +1 -0
  534. package/dist/theme/contrast.js +88 -0
  535. package/dist/theme/defineTheme.d.ts +9 -3
  536. package/dist/theme/defineTheme.d.ts.map +1 -1
  537. package/dist/theme/defineTheme.js +6 -4
  538. package/dist/theme/derivedVarRegistry.d.ts +8 -0
  539. package/dist/theme/derivedVarRegistry.d.ts.map +1 -1
  540. package/dist/theme/derivedVarRegistry.js +5 -13
  541. package/dist/theme/expandColorScale.d.ts +32 -3
  542. package/dist/theme/expandColorScale.d.ts.map +1 -1
  543. package/dist/theme/expandColorScale.js +102 -13
  544. package/dist/theme/generateThemeRules.d.ts +0 -6
  545. package/dist/theme/generateThemeRules.d.ts.map +1 -1
  546. package/dist/theme/generateThemeRules.js +11 -15
  547. package/dist/theme/index.d.ts +9 -7
  548. package/dist/theme/index.d.ts.map +1 -1
  549. package/dist/theme/index.js +4 -3
  550. package/dist/theme/themeRegistry.d.ts +32 -0
  551. package/dist/theme/themeRegistry.d.ts.map +1 -0
  552. package/dist/theme/themeRegistry.js +49 -0
  553. package/dist/theme/tokens.stylex.d.ts +0 -17
  554. package/dist/theme/tokens.stylex.d.ts.map +1 -1
  555. package/dist/theme/tokens.stylex.js +0 -22
  556. package/dist/theme/types.d.ts +10 -2
  557. package/dist/theme/types.d.ts.map +1 -1
  558. package/dist/theme/useTheme.d.ts +9 -0
  559. package/dist/theme/useTheme.d.ts.map +1 -1
  560. package/dist/theme/useTheme.js +82 -27
  561. package/dist/utils/rtlStyles.d.ts +23 -2
  562. package/dist/utils/rtlStyles.d.ts.map +1 -1
  563. package/dist/utils/rtlStyles.js +28 -3
  564. package/groups.doc.mjs +2 -2
  565. package/locales/en.json +124 -0
  566. package/locales/pseudo.json +93 -0
  567. package/package.json +9 -13
  568. package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
  569. package/src/AlertDialog/AlertDialog.tsx +1 -1
  570. package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
  571. package/src/AppShell/AppShell.doc.mjs +3 -3
  572. package/src/AppShell/AppShell.test.tsx +55 -0
  573. package/src/AppShell/AppShell.tsx +27 -22
  574. package/src/AppShell/index.ts +20 -1
  575. package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
  576. package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
  577. package/src/AspectRatio/AspectRatio.tsx +1 -1
  578. package/src/Avatar/Avatar.doc.mjs +4 -15
  579. package/src/Avatar/Avatar.test.tsx +33 -8
  580. package/src/Avatar/Avatar.tsx +58 -25
  581. package/src/Avatar/AvatarStatusDot.doc.mjs +1 -1
  582. package/src/Avatar/AvatarStatusDot.tsx +2 -27
  583. package/src/Avatar/index.ts +26 -1
  584. package/src/AvatarGroup/AvatarGroup.doc.mjs +3 -3
  585. package/src/AvatarGroup/AvatarGroup.test.tsx +21 -1
  586. package/src/AvatarGroup/AvatarGroup.tsx +3 -7
  587. package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
  588. package/src/AvatarGroup/AvatarGroupOverflow.tsx +5 -3
  589. package/src/Badge/Badge.doc.mjs +3 -3
  590. package/src/Badge/Badge.tsx +2 -31
  591. package/src/Badge/index.ts +32 -6
  592. package/src/Banner/Banner.doc.mjs +3 -3
  593. package/src/Banner/Banner.tsx +8 -45
  594. package/src/Banner/index.ts +39 -7
  595. package/src/Blockquote/Blockquote.doc.mjs +3 -3
  596. package/src/Blockquote/Blockquote.tsx +1 -1
  597. package/src/Breadcrumbs/BreadcrumbItem.doc.mjs +1 -1
  598. package/src/Breadcrumbs/BreadcrumbItem.tsx +5 -3
  599. package/src/Breadcrumbs/Breadcrumbs.doc.mjs +3 -3
  600. package/src/Breadcrumbs/Breadcrumbs.test.tsx +1 -1
  601. package/src/Breadcrumbs/Breadcrumbs.tsx +2 -19
  602. package/src/Breadcrumbs/index.ts +19 -5
  603. package/src/Button/Button.doc.mjs +3 -3
  604. package/src/Button/Button.test.tsx +16 -0
  605. package/src/Button/Button.tsx +6 -23
  606. package/src/Button/index.ts +22 -7
  607. package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -3
  608. package/src/ButtonGroup/ButtonGroup.tsx +1 -1
  609. package/src/Calendar/Calendar.doc.mjs +3 -3
  610. package/src/Calendar/Calendar.test.tsx +22 -6
  611. package/src/Calendar/Calendar.tsx +1 -1
  612. package/src/Calendar/index.ts +1 -6
  613. package/src/Calendar/styles.ts +2 -2
  614. package/src/Calendar/utils.ts +0 -11
  615. package/src/Card/Card.doc.mjs +3 -3
  616. package/src/Card/Card.tsx +1 -1
  617. package/src/Carousel/Carousel.doc.mjs +13 -3
  618. package/src/Carousel/Carousel.test.tsx +232 -1
  619. package/src/Carousel/Carousel.tsx +154 -27
  620. package/src/Carousel/index.ts +1 -1
  621. package/src/Center/Center.doc.mjs +41 -3
  622. package/src/Center/Center.test.tsx +75 -0
  623. package/src/Center/Center.tsx +38 -3
  624. package/src/Chat/Chat.doc.mjs +3 -3
  625. package/src/Chat/ChatComposer.doc.mjs +1 -1
  626. package/src/Chat/ChatComposer.tsx +5 -5
  627. package/src/Chat/ChatComposerDrawer.doc.mjs +1 -1
  628. package/src/Chat/ChatComposerDrawer.tsx +5 -5
  629. package/src/Chat/ChatComposerInput.doc.mjs +1 -1
  630. package/src/Chat/ChatComposerInput.tsx +1 -1
  631. package/src/Chat/ChatComposerTokenElement.doc.mjs +1 -1
  632. package/src/Chat/ChatDictationButton.doc.mjs +3 -3
  633. package/src/Chat/ChatDictationButton.tsx +1 -1
  634. package/src/Chat/ChatLayout.doc.mjs +1 -1
  635. package/src/Chat/ChatLayout.test.tsx +57 -0
  636. package/src/Chat/ChatLayout.tsx +23 -2
  637. package/src/Chat/ChatLayoutScrollButton.doc.mjs +1 -1
  638. package/src/Chat/ChatLayoutScrollButton.tsx +1 -1
  639. package/src/Chat/ChatMessage.doc.mjs +1 -1
  640. package/src/Chat/ChatMessage.tsx +1 -1
  641. package/src/Chat/ChatMessageBubble.doc.mjs +1 -1
  642. package/src/Chat/ChatMessageBubble.tsx +1 -1
  643. package/src/Chat/ChatMessageList.doc.mjs +1 -1
  644. package/src/Chat/ChatMessageList.tsx +1 -1
  645. package/src/Chat/ChatMessageMetadata.doc.mjs +1 -1
  646. package/src/Chat/ChatSendButton.doc.mjs +1 -1
  647. package/src/Chat/ChatSendButton.tsx +5 -3
  648. package/src/Chat/ChatSystemMessage.doc.mjs +1 -1
  649. package/src/Chat/ChatSystemMessage.tsx +1 -1
  650. package/src/Chat/ChatTokenizedText.doc.mjs +1 -1
  651. package/src/Chat/ChatTokenizedText.tsx +1 -1
  652. package/src/Chat/ChatToolCalls.doc.mjs +3 -3
  653. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
  654. package/src/CheckboxInput/CheckboxInput.test.tsx +56 -0
  655. package/src/CheckboxInput/CheckboxInput.tsx +18 -3
  656. package/src/CheckboxList/CheckboxList.doc.mjs +3 -3
  657. package/src/CheckboxList/CheckboxList.test.tsx +94 -3
  658. package/src/CheckboxList/CheckboxList.tsx +1 -1
  659. package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
  660. package/src/CheckboxList/CheckboxListItem.tsx +18 -11
  661. package/src/Citation/Citation.doc.mjs +2 -2
  662. package/src/Citation/Citation.tsx +1 -1
  663. package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
  664. package/src/ClickableCard/ClickableCard.tsx +3 -3
  665. package/src/Code/Code.tsx +2 -2
  666. package/src/CodeBlock/Code.doc.mjs +1 -1
  667. package/src/CodeBlock/CodeBlock.doc.mjs +3 -3
  668. package/src/CodeBlock/CodeBlock.test.tsx +17 -0
  669. package/src/CodeBlock/CodeBlock.tsx +2 -2
  670. package/src/Collapsible/Collapsible.doc.mjs +3 -3
  671. package/src/Collapsible/Collapsible.tsx +3 -3
  672. package/src/Collapsible/CollapsibleGroup.doc.mjs +1 -1
  673. package/src/Collapsible/CollapsibleGroup.tsx +1 -1
  674. package/src/Collapsible/CollapsibleGroupContext.tsx +1 -1
  675. package/src/Collapsible/useCollapsible.doc.mjs +2 -2
  676. package/src/CommandPalette/CommandPalette.doc.mjs +4 -4
  677. package/src/CommandPalette/CommandPalette.tsx +1 -1
  678. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +1 -1
  679. package/src/CommandPalette/CommandPaletteEmpty.tsx +1 -1
  680. package/src/CommandPalette/CommandPaletteFooter.doc.mjs +1 -1
  681. package/src/CommandPalette/CommandPaletteFooter.tsx +1 -1
  682. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +1 -1
  683. package/src/CommandPalette/CommandPaletteGroup.test.tsx +6 -2
  684. package/src/CommandPalette/CommandPaletteGroup.tsx +1 -1
  685. package/src/CommandPalette/CommandPaletteInput.doc.mjs +1 -1
  686. package/src/CommandPalette/CommandPaletteInput.tsx +5 -1
  687. package/src/CommandPalette/CommandPaletteItem.doc.mjs +1 -1
  688. package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
  689. package/src/CommandPalette/CommandPaletteList.doc.mjs +1 -1
  690. package/src/CommandPalette/CommandPaletteList.tsx +1 -1
  691. package/src/ComplexSelector/ComplexSelector.doc.mjs +220 -0
  692. package/src/ComplexSelector/ComplexSelector.test.tsx +156 -0
  693. package/src/ComplexSelector/ComplexSelector.tsx +429 -0
  694. package/src/ComplexSelector/index.ts +17 -0
  695. package/src/ContextMenu/ContextMenu.doc.mjs +4 -4
  696. package/src/ContextMenu/ContextMenu.test.tsx +38 -2
  697. package/src/ContextMenu/ContextMenu.tsx +27 -6
  698. package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
  699. package/src/DateInput/DateInput.doc.mjs +19 -4
  700. package/src/DateInput/DateInput.test.tsx +79 -3
  701. package/src/DateInput/DateInput.tsx +23 -3
  702. package/src/DateRangeInput/DateRangeInput.doc.mjs +11 -3
  703. package/src/DateRangeInput/DateRangeInput.test.tsx +97 -2
  704. package/src/DateRangeInput/DateRangeInput.tsx +19 -2
  705. package/src/DateTimeInput/DateTimeInput.doc.mjs +19 -5
  706. package/src/DateTimeInput/DateTimeInput.test.tsx +81 -2
  707. package/src/DateTimeInput/DateTimeInput.tsx +19 -2
  708. package/src/Dialog/Dialog.doc.mjs +7 -5
  709. package/src/Dialog/Dialog.test.tsx +46 -3
  710. package/src/Dialog/Dialog.tsx +61 -44
  711. package/src/Dialog/DialogHeader.doc.mjs +1 -1
  712. package/src/Dialog/DialogHeader.tsx +1 -1
  713. package/src/Dialog/index.ts +18 -1
  714. package/src/Dialog/useImperativeDialog.doc.mjs +1 -1
  715. package/src/Divider/Divider.doc.mjs +3 -3
  716. package/src/Divider/Divider.tsx +2 -19
  717. package/src/Divider/index.ts +19 -5
  718. package/src/DropdownMenu/DropdownMenu.doc.mjs +22 -7
  719. package/src/DropdownMenu/DropdownMenu.test.tsx +194 -0
  720. package/src/DropdownMenu/DropdownMenu.tsx +48 -25
  721. package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +1 -1
  722. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +41 -64
  723. package/src/DropdownMenu/DropdownMenuItem.doc.mjs +25 -5
  724. package/src/DropdownMenu/DropdownMenuItem.tsx +34 -7
  725. package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +5 -13
  726. package/src/DropdownMenu/DropdownMenuRadioGroup.tsx +9 -10
  727. package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
  728. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +11 -2
  729. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +84 -2
  730. package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +1 -1
  731. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +46 -1
  732. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +24 -8
  733. package/src/DropdownMenu/menuItemHover.ts +1 -0
  734. package/src/DropdownMenu/renderDropdownItems.tsx +31 -21
  735. package/src/EmptyState/EmptyState.doc.mjs +3 -3
  736. package/src/EmptyState/EmptyState.tsx +1 -1
  737. package/src/Field/Field.doc.mjs +7 -3
  738. package/src/Field/Field.tsx +1 -1
  739. package/src/Field/FieldLabel.doc.mjs +1 -1
  740. package/src/Field/FieldLabel.test.tsx +103 -0
  741. package/src/Field/FieldLabel.tsx +61 -5
  742. package/src/FieldStatus/FieldStatus.doc.mjs +3 -2
  743. package/src/FieldStatus/FieldStatus.test.tsx +61 -0
  744. package/src/FieldStatus/FieldStatus.tsx +16 -23
  745. package/src/FieldStatus/index.ts +20 -5
  746. package/src/FileInput/FileInput.doc.mjs +3 -3
  747. package/src/FileInput/FileInput.tsx +1 -1
  748. package/src/FormLayout/FormLayout.doc.mjs +3 -3
  749. package/src/FormLayout/FormLayout.tsx +2 -5
  750. package/src/Grid/Grid.doc.mjs +3 -8
  751. package/src/Grid/Grid.tsx +1 -25
  752. package/src/Grid/GridSpan.doc.mjs +1 -1
  753. package/src/Grid/GridSpan.tsx +1 -1
  754. package/src/HStack/HStack.tsx +1 -1
  755. package/src/Heading/Heading.tsx +4 -3
  756. package/src/HoverCard/HoverCard.doc.mjs +3 -3
  757. package/src/HoverCard/HoverCard.tsx +1 -1
  758. package/src/HoverCard/useHoverCard.doc.mjs +2 -2
  759. package/src/Icon/Icon.doc.mjs +8 -6
  760. package/src/Icon/Icon.test.tsx +23 -0
  761. package/src/Icon/Icon.tsx +4 -2
  762. package/src/Icon/defaultIcons.tsx +14 -0
  763. package/src/Icon/globalIconRegistry.test.tsx +87 -1
  764. package/src/Icon/globalIconRegistry.tsx +111 -9
  765. package/src/Icon/index.ts +9 -7
  766. package/src/Icon/useIcon.ts +23 -0
  767. package/src/IconButton/IconButton.doc.mjs +2 -2
  768. package/src/IconButton/IconButton.tsx +1 -1
  769. package/src/InputGroup/InputGroup.doc.mjs +2 -2
  770. package/src/InputGroup/InputGroup.tsx +1 -1
  771. package/src/InputGroup/InputGroupText.doc.mjs +1 -1
  772. package/src/InputGroup/InputGroupText.tsx +1 -1
  773. package/src/Item/Item.doc.mjs +8 -3
  774. package/src/Item/Item.test.tsx +88 -0
  775. package/src/Item/Item.tsx +63 -14
  776. package/src/Kbd/Kbd.doc.mjs +3 -3
  777. package/src/Kbd/Kbd.tsx +1 -1
  778. package/src/Layer/Layer.doc.mjs +2 -2
  779. package/src/Layer/useLayer.doc.mjs +2 -2
  780. package/src/Layout/Layout.doc.mjs +3 -3
  781. package/src/Layout/Layout.tsx +1 -1
  782. package/src/Layout/LayoutContent.doc.mjs +1 -1
  783. package/src/Layout/LayoutContent.tsx +1 -1
  784. package/src/Layout/LayoutFooter.doc.mjs +1 -1
  785. package/src/Layout/LayoutFooter.tsx +1 -1
  786. package/src/Layout/LayoutHeader.doc.mjs +1 -1
  787. package/src/Layout/LayoutHeader.tsx +1 -1
  788. package/src/Layout/LayoutPanel.doc.mjs +1 -1
  789. package/src/Layout/LayoutPanel.tsx +1 -1
  790. package/src/Lightbox/Lightbox.doc.mjs +6 -6
  791. package/src/Lightbox/Lightbox.test.tsx +211 -0
  792. package/src/Lightbox/Lightbox.tsx +152 -60
  793. package/src/Link/Link.doc.mjs +3 -3
  794. package/src/Link/Link.tsx +1 -1
  795. package/src/Link/LinkProvider.doc.mjs +2 -2
  796. package/src/Link/LinkProvider.tsx +2 -2
  797. package/src/List/List.doc.mjs +3 -3
  798. package/src/List/List.tsx +1 -1
  799. package/src/List/ListItem.doc.mjs +13 -1
  800. package/src/List/ListItem.tsx +14 -1
  801. package/src/Markdown/Markdown.doc.mjs +81 -1
  802. package/src/Markdown/Markdown.test.tsx +92 -0
  803. package/src/Markdown/Markdown.tsx +96 -68
  804. package/src/Markdown/parser.perf.test.ts +47 -35
  805. package/src/MetadataList/MetadataList.doc.mjs +3 -3
  806. package/src/MetadataList/MetadataList.test.tsx +82 -0
  807. package/src/MetadataList/MetadataList.tsx +45 -20
  808. package/src/MetadataList/MetadataListItem.doc.mjs +1 -1
  809. package/src/MetadataList/MetadataListItem.tsx +1 -1
  810. package/src/MobileNav/MobileNav.doc.mjs +3 -3
  811. package/src/MobileNav/MobileNav.tsx +4 -4
  812. package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
  813. package/src/MoreMenu/MoreMenu.tsx +3 -3
  814. package/src/MultiSelector/MultiSelector.doc.mjs +36 -10
  815. package/src/MultiSelector/MultiSelector.test.tsx +326 -3
  816. package/src/MultiSelector/MultiSelector.tsx +226 -58
  817. package/src/NavIcon/NavIcon.doc.mjs +3 -3
  818. package/src/NavIcon/NavIcon.tsx +1 -1
  819. package/src/NavMenu/NavHeadingMenu.test.tsx +0 -16
  820. package/src/NavMenu/NavMenu.doc.mjs +2 -2
  821. package/src/NavMenu/index.ts +0 -4
  822. package/src/NumberInput/NumberInput.doc.mjs +5 -8
  823. package/src/NumberInput/NumberInput.test.tsx +117 -3
  824. package/src/NumberInput/NumberInput.tsx +30 -3
  825. package/src/Outline/Outline.doc.mjs +3 -3
  826. package/src/Outline/Outline.tsx +1 -1
  827. package/src/OverflowList/OverflowList.doc.mjs +3 -3
  828. package/src/OverflowList/OverflowList.tsx +1 -1
  829. package/src/Overlay/Overlay.doc.mjs +2 -2
  830. package/src/Pagination/Pagination.doc.mjs +55 -8
  831. package/src/Pagination/Pagination.test.tsx +582 -0
  832. package/src/Pagination/Pagination.tsx +247 -55
  833. package/src/Pagination/index.ts +22 -1
  834. package/src/Popover/Popover.doc.mjs +31 -3
  835. package/src/Popover/Popover.test.tsx +41 -0
  836. package/src/Popover/Popover.tsx +25 -2
  837. package/src/Popover/usePopover.doc.mjs +2 -2
  838. package/src/Popover/usePopover.tsx +10 -4
  839. package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
  840. package/src/PowerSearch/PowerSearch.tsx +1 -1
  841. package/src/ProgressBar/ProgressBar.doc.mjs +24 -3
  842. package/src/ProgressBar/ProgressBar.test.tsx +523 -2
  843. package/src/ProgressBar/ProgressBar.tsx +250 -25
  844. package/src/ProgressBar/ProgressBarMarkTooltip.tsx +43 -0
  845. package/src/ProgressBar/index.ts +22 -1
  846. package/src/RadioList/RadioList.doc.mjs +3 -3
  847. package/src/RadioList/RadioList.test.tsx +26 -4
  848. package/src/RadioList/RadioList.tsx +1 -1
  849. package/src/RadioList/RadioListItem.doc.mjs +1 -1
  850. package/src/RadioList/RadioListItem.tsx +9 -2
  851. package/src/Resizable/Resizable.doc.mjs +2 -2
  852. package/src/Resizable/ResizeHandle.test.tsx +52 -3
  853. package/src/Resizable/ResizeHandle.tsx +25 -13
  854. package/src/Resizable/useResizable.doc.mjs +2 -2
  855. package/src/Section/Section.doc.mjs +3 -3
  856. package/src/Section/Section.tsx +2 -20
  857. package/src/Section/index.ts +20 -5
  858. package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
  859. package/src/SegmentedControl/SegmentedControl.test.tsx +28 -0
  860. package/src/SegmentedControl/SegmentedControl.tsx +1 -1
  861. package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
  862. package/src/SegmentedControl/SegmentedControlItem.tsx +21 -3
  863. package/src/SelectableCard/SelectableCard.doc.mjs +4 -2
  864. package/src/SelectableCard/SelectableCard.test.tsx +55 -0
  865. package/src/SelectableCard/SelectableCard.tsx +19 -3
  866. package/src/Selector/Selector.doc.mjs +30 -8
  867. package/src/Selector/Selector.test.tsx +469 -9
  868. package/src/Selector/Selector.tsx +235 -57
  869. package/src/Selector/SelectorOption.doc.mjs +1 -1
  870. package/src/Selector/hooks.ts +45 -21
  871. package/src/SideNav/SideNav.doc.mjs +3 -3
  872. package/src/SideNav/SideNav.tsx +1 -1
  873. package/src/SideNav/SideNavCollapseButton.doc.mjs +1 -1
  874. package/src/SideNav/SideNavCollapseButton.tsx +4 -3
  875. package/src/SideNav/SideNavHeading.doc.mjs +1 -1
  876. package/src/SideNav/SideNavHeading.tsx +8 -9
  877. package/src/SideNav/SideNavItem.doc.mjs +1 -1
  878. package/src/SideNav/SideNavItem.tsx +5 -6
  879. package/src/SideNav/SideNavSection.doc.mjs +1 -1
  880. package/src/SideNav/SideNavSection.tsx +1 -1
  881. package/src/Skeleton/Skeleton.doc.mjs +3 -3
  882. package/src/Skeleton/Skeleton.test.tsx +16 -0
  883. package/src/Skeleton/Skeleton.tsx +14 -2
  884. package/src/Slider/Slider.doc.mjs +3 -3
  885. package/src/Slider/Slider.tsx +9 -13
  886. package/src/Spinner/Spinner.doc.mjs +3 -3
  887. package/src/Spinner/Spinner.tsx +1 -1
  888. package/src/Stack/Stack.doc.mjs +113 -3
  889. package/src/Stack/Stack.tsx +1 -1
  890. package/src/Stack/StackItem.tsx +1 -1
  891. package/src/StatusDot/StatusDot.doc.mjs +15 -6
  892. package/src/StatusDot/StatusDot.tsx +2 -22
  893. package/src/StatusDot/index.ts +22 -5
  894. package/src/Switch/Switch.doc.mjs +5 -5
  895. package/src/Switch/Switch.test.tsx +71 -25
  896. package/src/Switch/Switch.tsx +63 -26
  897. package/src/TabList/Tab.doc.mjs +1 -1
  898. package/src/TabList/Tab.tsx +1 -1
  899. package/src/TabList/TabList.doc.mjs +3 -3
  900. package/src/TabList/TabList.test.tsx +21 -18
  901. package/src/TabList/TabList.tsx +1 -1
  902. package/src/TabList/TabMenu.doc.mjs +1 -1
  903. package/src/TabList/TabMenu.tsx +11 -3
  904. package/src/Table/BaseTable.tsx +4 -5
  905. package/src/Table/Table.doc.mjs +5 -5
  906. package/src/Table/Table.test.tsx +27 -49
  907. package/src/Table/Table.tsx +1 -1
  908. package/src/Table/TableCell.doc.mjs +1 -1
  909. package/src/Table/TableCell.tsx +2 -2
  910. package/src/Table/TableHeaderCell.doc.mjs +1 -1
  911. package/src/Table/TableHeaderCell.tsx +2 -2
  912. package/src/Table/TableRow.doc.mjs +1 -1
  913. package/src/Table/TableRow.tsx +1 -1
  914. package/src/Table/index.ts +1 -1
  915. package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +1 -1
  916. package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +19 -0
  917. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +30 -11
  918. package/src/Table/plugins/tree/useTableTreeData.test.tsx +161 -2
  919. package/src/Table/plugins/tree/useTableTreeData.tsx +54 -1
  920. package/src/Table/types.ts +0 -9
  921. package/src/Table/useTableColumnResize.doc.mjs +1 -1
  922. package/src/Table/useTableColumnSettings.doc.mjs +1 -1
  923. package/src/Table/useTableFilterState.doc.mjs +1 -1
  924. package/src/Table/useTableFiltering.doc.mjs +1 -1
  925. package/src/Table/useTableGroupedRows.doc.mjs +2 -2
  926. package/src/Table/useTablePagination.doc.mjs +1 -1
  927. package/src/Table/useTableRowExpansion.doc.mjs +57 -4
  928. package/src/Table/useTableRowIndex.doc.mjs +2 -2
  929. package/src/Table/useTableRowStatus.doc.mjs +3 -3
  930. package/src/Table/useTableSelection.doc.mjs +1 -1
  931. package/src/Table/useTableSelectionState.doc.mjs +1 -1
  932. package/src/Table/useTableSortable.doc.mjs +1 -1
  933. package/src/Table/useTableStickyColumns.doc.mjs +1 -1
  934. package/src/Table/useTableTreeData.doc.mjs +10 -1
  935. package/src/Table/useTableTreeState.doc.mjs +1 -1
  936. package/src/Text/Heading.doc.mjs +4 -4
  937. package/src/Text/Text.doc.mjs +4 -4
  938. package/src/Text/Text.test.tsx +42 -0
  939. package/src/Text/Text.tsx +26 -2
  940. package/src/Text/index.ts +32 -6
  941. package/src/TextArea/TextArea.doc.mjs +31 -7
  942. package/src/TextArea/TextArea.test.tsx +186 -7
  943. package/src/TextArea/TextArea.tsx +156 -52
  944. package/src/TextInput/TextInput.doc.mjs +5 -5
  945. package/src/TextInput/TextInput.test.tsx +77 -0
  946. package/src/TextInput/TextInput.tsx +7 -3
  947. package/src/Thumbnail/Thumbnail.doc.mjs +2 -2
  948. package/src/Thumbnail/Thumbnail.test.tsx +24 -1
  949. package/src/Thumbnail/Thumbnail.tsx +28 -35
  950. package/src/TimeInput/TimeInput.doc.mjs +5 -5
  951. package/src/TimeInput/TimeInput.test.tsx +30 -3
  952. package/src/TimeInput/TimeInput.tsx +6 -2
  953. package/src/Timestamp/Timestamp.doc.mjs +30 -24
  954. package/src/Timestamp/Timestamp.test.tsx +438 -107
  955. package/src/Timestamp/Timestamp.tsx +167 -103
  956. package/src/Timestamp/TimestampHoverCard.tsx +283 -0
  957. package/src/Timestamp/formatInstant.ts +9 -4
  958. package/src/Timestamp/tooltipEntries.test.ts +9 -0
  959. package/src/Timestamp/tooltipEntries.ts +18 -2
  960. package/src/Toast/Toast.doc.mjs +3 -3
  961. package/src/Toast/ToastViewport.test.tsx +218 -8
  962. package/src/Toast/ToastViewport.tsx +71 -12
  963. package/src/Toast/useToast.doc.mjs +2 -2
  964. package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
  965. package/src/ToggleButton/ToggleButton.test.tsx +24 -0
  966. package/src/ToggleButton/ToggleButton.tsx +20 -2
  967. package/src/ToggleButton/ToggleButtonGroup.doc.mjs +1 -1
  968. package/src/ToggleButton/ToggleButtonGroup.tsx +3 -6
  969. package/src/Token/Token.doc.mjs +3 -3
  970. package/src/Token/Token.test.tsx +145 -0
  971. package/src/Token/Token.tsx +75 -61
  972. package/src/Token/TokenLink.tsx +107 -0
  973. package/src/Token/index.ts +28 -1
  974. package/src/Tokenizer/Tokenizer.doc.mjs +5 -5
  975. package/src/Tokenizer/Tokenizer.test.tsx +45 -3
  976. package/src/Tokenizer/Tokenizer.tsx +11 -3
  977. package/src/Toolbar/Toolbar.doc.mjs +3 -3
  978. package/src/Toolbar/Toolbar.tsx +1 -1
  979. package/src/Tooltip/Tooltip.doc.mjs +3 -3
  980. package/src/Tooltip/Tooltip.tsx +1 -1
  981. package/src/Tooltip/useTooltip.doc.mjs +2 -2
  982. package/src/TopNav/TopNav.doc.mjs +3 -3
  983. package/src/TopNav/TopNav.test.tsx +2 -2
  984. package/src/TopNav/TopNav.tsx +2 -4
  985. package/src/TopNav/TopNavHeading.doc.mjs +1 -12
  986. package/src/TopNav/TopNavHeading.tsx +8 -18
  987. package/src/TopNav/TopNavItem.doc.mjs +1 -1
  988. package/src/TopNav/TopNavItem.tsx +1 -1
  989. package/src/TopNav/TopNavMegaMenu.doc.mjs +1 -1
  990. package/src/TopNav/TopNavMegaMenu.tsx +35 -11
  991. package/src/TopNav/TopNavMegaMenuFeaturedCard.doc.mjs +1 -1
  992. package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +1 -1
  993. package/src/TopNav/TopNavMegaMenuItem.doc.mjs +1 -1
  994. package/src/TopNav/TopNavMegaMenuItem.tsx +1 -1
  995. package/src/TopNav/TopNavMenu.doc.mjs +1 -1
  996. package/src/TopNav/TopNavMenu.tsx +5 -4
  997. package/src/TreeList/TreeList.doc.mjs +3 -3
  998. package/src/TreeList/TreeList.test.tsx +10 -6
  999. package/src/TreeList/TreeList.tsx +1 -1
  1000. package/src/TreeList/TreeListBranches.tsx +1 -1
  1001. package/src/TreeList/TreeListItem.tsx +4 -3
  1002. package/src/TreeList/TreeListTypes.ts +1 -18
  1003. package/src/TreeList/index.ts +19 -1
  1004. package/src/Typeahead/BaseTypeahead.doc.mjs +1 -1
  1005. package/src/Typeahead/BaseTypeahead.tsx +13 -1
  1006. package/src/Typeahead/Typeahead.doc.mjs +3 -3
  1007. package/src/Typeahead/Typeahead.test.tsx +62 -0
  1008. package/src/Typeahead/Typeahead.tsx +7 -1
  1009. package/src/Typeahead/TypeaheadItem.doc.mjs +1 -1
  1010. package/src/Typeahead/TypeaheadItem.tsx +1 -1
  1011. package/src/VStack/VStack.tsx +1 -1
  1012. package/src/VisuallyHidden/VisuallyHidden.doc.mjs +3 -3
  1013. package/src/VisuallyHidden/VisuallyHidden.tsx +1 -1
  1014. package/src/__tests__/babelPluginAddExtensions.test.ts +190 -0
  1015. package/src/__tests__/forcedColors.ts +60 -0
  1016. package/src/__tests__/inputWidthContract.test.tsx +8 -1
  1017. package/src/doc-mjs.d.ts +5 -2
  1018. package/src/docPropLiterals.test.ts +1 -1
  1019. package/src/docPropReferences.test.ts +1 -1
  1020. package/src/hooks/containerReveal.pool.stylex.ts +571 -0
  1021. package/src/hooks/index.ts +7 -0
  1022. package/src/hooks/useClickableContainer.doc.mjs +2 -2
  1023. package/src/hooks/useContainerReveal.doc.mjs +75 -0
  1024. package/src/hooks/useContainerReveal.test.tsx +116 -0
  1025. package/src/hooks/useContainerReveal.ts +181 -0
  1026. package/src/hooks/useEntryAnimation.doc.mjs +2 -2
  1027. package/src/hooks/useFocusTrap.doc.mjs +2 -2
  1028. package/src/hooks/useGridFocus.doc.mjs +2 -2
  1029. package/src/hooks/useGridFocus.ts +8 -6
  1030. package/src/hooks/useHotkeys.doc.mjs +2 -2
  1031. package/src/hooks/useImageMode.doc.mjs +2 -2
  1032. package/src/hooks/useImageMode.test.ts +1 -1
  1033. package/src/hooks/useInputContainer.doc.mjs +2 -2
  1034. package/src/hooks/useInputContainer.test.tsx +180 -0
  1035. package/src/hooks/useInputContainer.ts +36 -1
  1036. package/src/hooks/useInputStatusIcon.test.tsx +59 -0
  1037. package/src/hooks/useInputStatusIcon.tsx +12 -1
  1038. package/src/hooks/useKeyboardHint.doc.mjs +2 -2
  1039. package/src/hooks/useKeyboardHint.test.tsx +22 -0
  1040. package/src/hooks/useKeyboardHint.tsx +7 -3
  1041. package/src/hooks/useListFocus.doc.mjs +2 -2
  1042. package/src/hooks/useListFocus.ts +8 -7
  1043. package/src/hooks/useLongPress.test.tsx +18 -0
  1044. package/src/hooks/useLongPress.ts +12 -2
  1045. package/src/hooks/useMediaQuery.doc.mjs +2 -2
  1046. package/src/hooks/useOverflow.doc.mjs +2 -2
  1047. package/src/hooks/useScrollLock.doc.mjs +2 -2
  1048. package/src/hooks/useScrollOverflow.doc.mjs +2 -2
  1049. package/src/hooks/useStreamingText.doc.mjs +2 -2
  1050. package/src/hooks/useTreeFocus.doc.mjs +2 -2
  1051. package/src/hooks/useTreeFocus.test.tsx +53 -1
  1052. package/src/hooks/useTreeFocus.ts +13 -2
  1053. package/src/i18n/InternationalizationProvider.doc.mjs +14 -2
  1054. package/src/i18n/InternationalizationProvider.tsx +6 -0
  1055. package/src/i18n/useDirection.ts +6 -3
  1056. package/src/i18n/useTranslator.doc.mjs +2 -2
  1057. package/src/index.ts +2 -18
  1058. package/src/theme/MediaTheme.doc.mjs +2 -2
  1059. package/src/theme/SyntaxTheme.doc.mjs +2 -2
  1060. package/src/theme/Theme.doc.mjs +2 -2
  1061. package/src/theme/Theme.tsx +3 -7
  1062. package/src/theme/contrast.test.ts +94 -0
  1063. package/src/theme/contrast.ts +99 -0
  1064. package/src/theme/defineTheme.test.ts +29 -30
  1065. package/src/theme/defineTheme.ts +11 -5
  1066. package/src/theme/derivedVarRegistry.test.ts +8 -1
  1067. package/src/theme/derivedVarRegistry.ts +15 -6
  1068. package/src/theme/expandColorScale.test.ts +401 -1
  1069. package/src/theme/expandColorScale.ts +143 -19
  1070. package/src/theme/generateThemeRules.test.ts +41 -20
  1071. package/src/theme/generateThemeRules.ts +11 -15
  1072. package/src/theme/index.ts +11 -13
  1073. package/src/theme/themeRegistry.test.ts +59 -0
  1074. package/src/theme/themeRegistry.ts +53 -0
  1075. package/src/theme/tokens.stylex.ts +0 -19
  1076. package/src/theme/types.ts +14 -13
  1077. package/src/theme/useTheme.doc.mjs +2 -2
  1078. package/src/theme/useTheme.test.tsx +48 -3
  1079. package/src/theme/useTheme.ts +100 -29
  1080. package/src/utils/rtlStyles.ts +24 -2
  1081. package/dist/NavMenu/NavMenuItem.d.ts +0 -13
  1082. package/dist/NavMenu/NavMenuItem.d.ts.map +0 -1
  1083. package/dist/NavMenu/NavMenuItem.js +0 -16
  1084. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts +0 -9
  1085. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts.map +0 -1
  1086. package/dist/Thumbnail/thumbnail.markers.stylex.js +0 -14
  1087. package/dist/authoring/doc.d.ts +0 -145
  1088. package/dist/authoring/doc.d.ts.map +0 -1
  1089. package/dist/authoring/doc.js +0 -100
  1090. package/dist/authoring/index.d.ts +0 -29
  1091. package/dist/authoring/index.d.ts.map +0 -1
  1092. package/dist/authoring/index.js +0 -28
  1093. package/dist/authoring/integration.d.ts +0 -35
  1094. package/dist/authoring/integration.d.ts.map +0 -1
  1095. package/dist/authoring/integration.js +0 -30
  1096. package/dist/authoring/template.d.ts +0 -66
  1097. package/dist/authoring/template.d.ts.map +0 -1
  1098. package/dist/authoring/template.js +0 -55
  1099. package/dist/config.d.ts +0 -80
  1100. package/dist/config.d.ts.map +0 -1
  1101. package/dist/config.js +0 -40
  1102. package/dist/docs-types.d.ts +0 -969
  1103. package/dist/docs-types.d.ts.map +0 -1
  1104. package/dist/docs-types.js +0 -1
  1105. package/src/NavMenu/NavMenuItem.tsx +0 -19
  1106. package/src/Thumbnail/thumbnail.markers.stylex.ts +0 -12
  1107. package/src/authoring/doc.ts +0 -164
  1108. package/src/authoring/index.test.ts +0 -52
  1109. package/src/authoring/index.ts +0 -50
  1110. package/src/authoring/integration.ts +0 -42
  1111. package/src/authoring/template.ts +0 -74
  1112. package/src/config.test.ts +0 -16
  1113. package/src/config.ts +0 -92
  1114. package/src/docs-types.ts +0 -1108
@@ -106,6 +106,17 @@ export interface UseTableTreeDataConfig<T extends Record<string, unknown>> {
106
106
  indent?: 'sm' | 'md' | 'lg';
107
107
  /** Column that carries the indent + expander. @default the first column */
108
108
  treeColumnKey?: string;
109
+ /**
110
+ * When true, clicking anywhere on an expandable row toggles its expansion,
111
+ * in addition to the chevron. Leaf rows stay inert. No-op on flat data.
112
+ *
113
+ * This is a pointer-only convenience layered over the chevron: keyboard and
114
+ * assistive-tech users toggle via the chevron button (which stays the
115
+ * accessible control). Clicks originating from interactive cell content
116
+ * (buttons, links, form controls) or a text selection do not toggle.
117
+ * @default false (only the chevron toggles expansion).
118
+ */
119
+ hasRowClickExpansion?: boolean;
109
120
  }
110
121
 
111
122
  // =============================================================================
@@ -271,6 +282,10 @@ const treeStyles = stylex.create({
271
282
  gap: spacingVars['--spacing-1'],
272
283
  minWidth: 0,
273
284
  },
285
+ /** Whole-row-click expansion: signal the row is interactive. */
286
+ clickableRow: {
287
+ cursor: 'pointer',
288
+ },
274
289
  });
275
290
 
276
291
  // =============================================================================
@@ -616,10 +631,48 @@ export function useTableTreeData<T extends Record<string, unknown>>(
616
631
  };
617
632
  };
618
633
 
619
- return {
634
+ const withRef = {
620
635
  ...props,
621
636
  ref: props.ref ? mergeRefs(props.ref, treeRef) : treeRef,
622
637
  };
638
+
639
+ // Whole-row-click expansion (opt-in). Only expandable rows are
640
+ // clickable; leaves and flat data stay inert. `hasExpandableRows` is
641
+ // the feature-level flag (short-circuits the whole feature when off);
642
+ // `hasChildren` is the per-row check — both are intentional.
643
+ const cfg = store.getConfig();
644
+ const rowClickExpandable =
645
+ cfg.hasRowClickExpansion === true &&
646
+ cfg.hasExpandableRows &&
647
+ cfg.getRowMeta(item)?.hasChildren === true;
648
+ if (!rowClickExpandable) {
649
+ return withRef;
650
+ }
651
+
652
+ return {
653
+ ...withRef,
654
+ htmlProps: {
655
+ ...withRef.htmlProps,
656
+ onClick: (event: React.MouseEvent<HTMLTableRowElement>) => {
657
+ // Don't hijack clicks on interactive cell content (the chevron
658
+ // already stops propagation, but a composed selection checkbox,
659
+ // link, or action button does not) or a text selection.
660
+ const target = event.target as HTMLElement;
661
+ if (
662
+ target.closest(
663
+ 'button, a, input, select, textarea, [role="button"], [role="checkbox"], [contenteditable="true"]',
664
+ )
665
+ ) {
666
+ return;
667
+ }
668
+ if ((window.getSelection()?.toString() ?? '') !== '') {
669
+ return;
670
+ }
671
+ cfg.onToggleItem(item);
672
+ },
673
+ },
674
+ xstyle: [...withRef.xstyle, treeStyles.clickableRow],
675
+ };
623
676
  },
624
677
  };
625
678
  }, [store]);
@@ -575,15 +575,6 @@ export interface BaseTableProps<
575
575
 
576
576
  /** Children mode — render `<tr>`/`<td>` directly instead of data-driven */
577
577
  children?: ReactNode;
578
- /**
579
- * Additional HTML attributes for the `<table>` element.
580
- *
581
- * @deprecated Pass `className`, `style`, `xstyle`, and other HTML
582
- * attributes directly on the component instead — they now reach the root
583
- * `<table>` and win over `tableProps` on conflicts. Migrate with
584
- * `npx astryx upgrade --codemod migrate-table-tableprops-to-direct-props`.
585
- */
586
- tableProps?: HTMLAttributes<HTMLTableElement>;
587
578
  /**
588
579
  * Optional wrapper rendered around the `<table>` element, inside the
589
580
  * plugin `transformTableContext` layer. Used by `Table` to add a
@@ -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: 'useTableColumnResize',
@@ -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: 'useTableColumnSettings',
@@ -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: 'useTableFilterState',
@@ -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: 'useTableFiltering',
@@ -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: 'useTableGroupedRows',
@@ -55,7 +55,7 @@ export const docs = {
55
55
  ],
56
56
  };
57
57
 
58
- /** @type {import('../docs-types').TranslationDoc} */
58
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
59
59
  export const docsDense = {
60
60
  description:
61
61
  'Groups a flat data array into collapsible section rows. Each groupBy value becomes a full-width header (chevron + label + count); collapsing hides its rows. Returns {data, plugin, idKey}: pass to Table data / plugins / idKey. Consumer owns the collapsedGroups set.',
@@ -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: 'useTablePagination',
@@ -1,13 +1,13 @@
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: 'useTableRowExpansion',
7
7
  subComponentOf: 'Table',
8
8
  displayName: 'useTableRowExpansion',
9
9
  description:
10
- 'Hook that returns a TablePlugin implementing expandable rows with inherited columns. Child rows use the same columns as their parents, indented by depth. Clicking the chevron (or right-click context menu) toggles expansion. Pair with useTableRowExpansionState, which flattens the tree and derives this config (expand/collapse handlers + expand-all state) from a single expandedKeys set.',
10
+ 'Deprecated: use useTableTreeData + useTableTreeState instead. Hook that returns a TablePlugin implementing expandable rows with inherited columns. Child rows use the same columns as their parents, indented by depth. Clicking the chevron (or right-click context menu) toggles expansion. Pair with useTableRowExpansionState, which flattens the tree and derives this config (expand/collapse handlers + expand-all state) from a single expandedKeys set. Converging with useTableTreeData: new tree tables should prefer useTableTreeData + useTableTreeState, which cover the same affordances with a cycle guard and fine-grained re-render. See the migration example below.',
11
11
  props: [
12
12
  {
13
13
  name: 'expandedKeys',
@@ -60,12 +60,65 @@ export const docs = {
60
60
  description: 'Callback when the expand-all header toggle is clicked.',
61
61
  },
62
62
  ],
63
+ examples: [
64
+ {
65
+ label: 'Migrating to useTableTreeData + useTableTreeState',
66
+ code: `// useTableRowExpansion and useTableTreeData are converging onto one tree
67
+ // plugin. useTableTreeData is the destination: it adds a cycle guard,
68
+ // per-row fine-grained re-render, and imperative row ARIA, and now covers
69
+ // the same affordances (expand-all header control, whole-row click).
70
+
71
+ // BEFORE: useTableRowExpansion + useTableRowExpansionState
72
+ const [expandedKeys, setExpandedKeys] = useState(new Set(['root']));
73
+ const {data, expansionConfig} = useTableRowExpansionState({
74
+ baseData: tree,
75
+ getChildren: item => item.children ?? [],
76
+ getRowKey: item => item.id,
77
+ expandedKeys,
78
+ setExpandedKeys,
79
+ });
80
+ const expansion = useTableRowExpansion(expansionConfig);
81
+ <Table data={data} columns={columns} idKey="id" plugins={{expansion}} />;
82
+
83
+ // AFTER: useTableTreeState + useTableTreeData
84
+ const {visibleData, treeConfig} = useTableTreeState({
85
+ data: tree, // nested data, not a flat array
86
+ idKey: 'id', // or a function: idKey={item => item.id}
87
+ childrenKey: 'children', // replaces getChildren (default 'children')
88
+ defaultExpandedIds: ['root'], // uncontrolled; or expandedIds + onExpandedIdsChange
89
+ });
90
+ const tree = useTableTreeData({
91
+ ...treeConfig,
92
+ hasExpandAllControl: true, // was isAllExpanded + onToggleExpandAll
93
+ hasRowClickExpansion: true, // same prop name
94
+ });
95
+ <Table data={visibleData} columns={columns} idKey="id" plugins={{tree}} />;`,
96
+ },
97
+ {
98
+ label: 'Config mapping',
99
+ code: `// useTableRowExpansion(State) -> useTableTreeState / useTableTreeData
100
+
101
+ // baseData: T[] (nested) -> data: T[] (useTableTreeState)
102
+ // getChildren: item => item.children -> childrenKey: 'children' (property name)
103
+ // getRowKey: item => item.id -> idKey: 'id' | (item => item.id)
104
+ // getIsItemExpandable -> isItemExpandable (same shape)
105
+ // expandedKeys + setExpandedKeys -> defaultExpandedIds (uncontrolled), or
106
+ // expandedIds + onExpandedIdsChange (controlled)
107
+ // getDepth -> removed; depth derives from nesting
108
+ // isAllExpanded + onToggleExpandAll -> hasExpandAllControl (state is computed)
109
+ // hasRowClickExpansion -> hasRowClickExpansion (unchanged)
110
+
111
+ // Rendering: useTableRowExpansion prepends a dedicated expander column;
112
+ // useTableTreeData decorates the tree column in place (configurable via
113
+ // treeColumnKey). Keyboard and AT users toggle via the chevron in both.`,
114
+ },
115
+ ],
63
116
  };
64
117
 
65
- /** @type {import('../docs-types').TranslationDoc} */
118
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
66
119
  export const docsDense = {
67
120
  description:
68
- 'Returns a TablePlugin for expandable rows w/ inherited columns. Child rows reuse parent columns, indented by depth. Chevron click (or right-click menu) toggles expansion. Pair w/ useTableRowExpansionState, which flattens the tree + derives this config from one expandedKeys set.',
121
+ 'Deprecated: use useTableTreeData + useTableTreeState instead. Returns a TablePlugin for expandable rows w/ inherited columns. Child rows reuse parent columns, indented by depth. Chevron click (or right-click menu) toggles expansion. Pair w/ useTableRowExpansionState, which flattens the tree + derives this config from one expandedKeys set.',
69
122
  propDescriptions: {
70
123
  expandedKeys: 'Set of currently-expanded row keys.',
71
124
  onToggle: 'Called when a row expansion is toggled.',
@@ -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: 'useTableRowIndex',
@@ -37,7 +37,7 @@ export const docs = {
37
37
  ],
38
38
  };
39
39
 
40
- /** @type {import('../docs-types').TranslationDoc} */
40
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
41
41
  export const docsDense = {
42
42
  description:
43
43
  'Returns a TablePlugin that prepends a right-aligned monospaced row-number column. Numbering follows the rendered data order (current sort/filter/page view), 1-based by default. Pass the rendered data array; renderCell only receives the item so the plugin derives ordinals from it.',
@@ -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: 'useTableRowStatus',
@@ -13,13 +13,13 @@ export const docs = {
13
13
  name: 'getStatus',
14
14
  type: "(item: T) => { color: 'accent' | 'success' | 'error' | 'warning' | 'red' | 'orange' | 'green' | 'yellow' | 'blue' | 'gray' | string; icon?: IconName; label: string } | null",
15
15
  description:
16
- 'Derive the status indicator for a row: a semantic color (accent, success, error, warning, red, orange, green, yellow, blue, gray, each mapped to a theme token) or a raw CSS color as an escape hatch; an optional icon to signal status by shape instead of the dot (recommended when multiple statuses coexist; valid names: close, chevronDown, chevronLeft, chevronRight, check, success, error, warning, info, calendar, clock, externalLink, menu, moreHorizontal, search, arrowUp, arrowDown, arrowsUpDown, funnel, eyeSlash, viewColumns, copy, checkDouble, wrench, stop, microphone); and a required accessible label (announced via role="img" and shown in a tooltip on hover, so a status is never conveyed by color alone). Return null for rows with no status. Memoize with useCallback for a stable plugin identity.',
16
+ 'Derive the status indicator for a row: a semantic color (accent, success, error, warning, red, orange, green, yellow, blue, gray, each mapped to a theme token) or a raw CSS color as an escape hatch; an optional icon to signal status by shape instead of the dot (recommended when multiple statuses coexist; valid names: close, chevronDown, chevronLeft, chevronRight, chevronsLeft, chevronsRight, check, success, error, warning, info, calendar, clock, externalLink, menu, moreHorizontal, search, arrowUp, arrowDown, arrowsUpDown, funnel, eyeSlash, viewColumns, copy, checkDouble, wrench, stop, microphone); and a required accessible label (announced via role="img" and shown in a tooltip on hover, so a status is never conveyed by color alone). Return null for rows with no status. Memoize with useCallback for a stable plugin identity.',
17
17
  required: true,
18
18
  },
19
19
  ],
20
20
  };
21
21
 
22
- /** @type {import('../docs-types').TranslationDoc} */
22
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
23
23
  export const docsDense = {
24
24
  description:
25
25
  'Returns a TablePlugin that prepends a narrow per-row status column: a colored dot, or an icon when provided (shape + color beats color alone for a11y). getStatus maps a row to {color, icon?, label} or null. color is a semantic name (success/error/warning/etc.) mapped to a theme token, or a raw CSS color. label is required (tooltip + accessible name). Memoize getStatus with useCallback.',
@@ -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: 'useTableSelection',
@@ -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: 'useTableSelectionState',
@@ -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: 'useTableSortable',
@@ -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: 'useTableStickyColumns',
@@ -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: 'useTableTreeData',
@@ -65,6 +65,13 @@ export const docs = {
65
65
  description:
66
66
  'Column that carries the indent + expander. Defaults to the first column.',
67
67
  },
68
+ {
69
+ name: 'hasRowClickExpansion',
70
+ type: 'boolean',
71
+ description:
72
+ 'When true, clicking anywhere on an expandable row toggles its expansion, in addition to the chevron. A pointer-only convenience: keyboard and assistive-tech users toggle via the chevron button. Clicks on interactive cell content (buttons, links, form controls) or a text selection do not toggle. Leaf rows stay inert, and it is a no-op on flat data.',
73
+ default: 'false',
74
+ },
68
75
  ],
69
76
  examples: [
70
77
  {
@@ -100,5 +107,7 @@ export const docsDense = {
100
107
  "aggregate state driving the header toggle: true (all) | false (none) | 'indeterminate' (some).",
101
108
  onExpandAll: 'expand every expandable row (header control)',
102
109
  onCollapseAll: 'collapse every row (header control)',
110
+ hasRowClickExpansion:
111
+ 'true => clicking an expandable row body toggles it (in addition to the chevron). Leaves stay inert; no-op on flat data. Defaults to false.',
103
112
  },
104
113
  };
@@ -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: 'useTableTreeState',
@@ -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: 'Heading',
@@ -33,7 +33,7 @@ export const docs = {
33
33
  {
34
34
  name: 'color',
35
35
  type: "'primary' | 'secondary' | 'disabled' | 'placeholder' | 'accent' | 'inherit'",
36
- description: 'Text color.',
36
+ description: 'Text color. Themes may add custom colors.',
37
37
  default: "'primary'",
38
38
  },
39
39
  {
@@ -120,7 +120,7 @@ export const docsZh = {
120
120
  {
121
121
  name: 'color',
122
122
  type: "'primary' | 'secondary' | 'disabled' | 'placeholder' | 'accent' | 'inherit'",
123
- description: '文本颜色。',
123
+ description: '文本颜色。主题可添加自定义颜色。',
124
124
  default: "'primary'",
125
125
  },
126
126
  {
@@ -186,7 +186,7 @@ export const docsDense = {
186
186
  type: 'Display variant (display-1/2/3); overrides visual styling from level with display-scale sizing.',
187
187
  children: 'Heading content.',
188
188
  accessibilityLevel: 'aria-level override when different from level for document outline.',
189
- color: 'Text color.',
189
+ color: 'Text color. Themes may add custom colors.',
190
190
  display: "Display type; overridden to 'block' when maxLines>0 or hasCapsize.",
191
191
  maxLines: 'Max lines before truncation; 0=none. Shows tooltip if truncated.',
192
192
  hasTruncateTooltip: "Tooltip for truncated text; true=default position, false=disabled, or a placement ('above' | 'below' | 'start' | 'end').",
@@ -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: 'Text',
@@ -41,7 +41,7 @@ export const docs = {
41
41
  {
42
42
  name: 'color',
43
43
  type: "'primary' | 'secondary' | 'disabled' | 'placeholder' | 'accent' | 'inherit'",
44
- description: "Text color. Defaults to 'secondary' for the 'supporting' type, 'primary' for all others.",
44
+ description: "Text color. Defaults to 'secondary' for the 'supporting' type, 'primary' for all others. Themes may add custom colors.",
45
45
  },
46
46
  {
47
47
  name: 'weight',
@@ -137,7 +137,7 @@ export const docs = {
137
137
  },
138
138
  };
139
139
 
140
- /** @type {import('../docs-types').TranslationDoc} */
140
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
141
141
  export const docsZh = {
142
142
  usage: {
143
143
  description:
@@ -156,7 +156,7 @@ export const docsZh = {
156
156
  },
157
157
  };
158
158
 
159
- /** @type {import('../docs-types').TranslationDoc} */
159
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
160
160
  export const docsDense = {
161
161
  description: 'semantic body text + headings w/ theme-driven type scale, truncation, tabular numbers',
162
162
  usage: {
@@ -9,6 +9,7 @@ import {render, screen} from '@testing-library/react';
9
9
  import {describe, it, expect} from 'vitest';
10
10
  import {Text} from './Text';
11
11
  import type {TextType} from './Text';
12
+ import type {TextColor} from '../theme/types';
12
13
 
13
14
  describe('Text', () => {
14
15
  describe('rendering', () => {
@@ -233,3 +234,44 @@ describe('Text custom types', () => {
233
234
  expect(screen.getByText('Muted').className).toContain('secondary');
234
235
  });
235
236
  });
237
+
238
+ describe('Text custom colors', () => {
239
+ it('renders a custom color as a stable class for theme CSS to target', () => {
240
+ // A theme adds a custom color (e.g. via TextColorMap augmentation +
241
+ // defineTheme). The rendered element carries the color as a class
242
+ // (astryx-text.<color>) so `.astryx-text.brand { color: ... }` from the
243
+ // theme applies — mirroring how custom `type`s work.
244
+ render(<Text color={'brand' as TextColor}>Branded</Text>);
245
+ const el = screen.getByText('Branded');
246
+ expect(el.className).toContain('astryx-text');
247
+ expect(el.className).toContain('brand');
248
+ });
249
+
250
+ it('does not crash on a custom color (falls back to the primary StyleX baseline)', () => {
251
+ // colorStyles has no entry for a custom color; the component must resolve a
252
+ // built-in baseline instead of indexing undefined. Built-in `primary` is
253
+ // the baseline, so both share its StyleX color class.
254
+ render(
255
+ <>
256
+ <Text color={'brand' as TextColor}>Custom</Text>
257
+ <Text color="primary">Builtin</Text>
258
+ </>,
259
+ );
260
+ const custom = screen.getByText('Custom');
261
+ const builtin = screen.getByText('Builtin');
262
+ // Neither throws, and the custom color reuses primary's baseline StyleX
263
+ // class (the real color comes from theme CSS via the `brand` class).
264
+ const primaryAtomic = builtin.className
265
+ .split(/\s+/)
266
+ .filter(c => c.startsWith('x'));
267
+ expect(primaryAtomic.length).toBeGreaterThan(0);
268
+ for (const cls of primaryAtomic) {
269
+ expect(custom.className).toContain(cls);
270
+ }
271
+ });
272
+
273
+ it('still applies built-in colors directly', () => {
274
+ render(<Text color="accent">Accent</Text>);
275
+ expect(screen.getByText('Accent').className).toContain('accent');
276
+ });
277
+ });
package/src/Text/Text.tsx CHANGED
@@ -13,7 +13,7 @@
13
13
  * - /packages/core/src/Text/Text.test.tsx (tests for new/changed behavior)
14
14
  * - /packages/core/src/Text/index.ts (exports if types change)
15
15
  * - /apps/storybook/stories/Text.stories.tsx (storybook stories)
16
- * - /packages/cli/templates/blocks/components/Text/ (showcase blocks)
16
+ * - /packages/cli/assets/templates/blocks/components/Text/ (showcase blocks)
17
17
  */
18
18
 
19
19
  import {lazy, Suspense, useRef, type ReactNode} from 'react';
@@ -23,6 +23,7 @@ import type {
23
23
  BuiltinTextType,
24
24
  TextSize,
25
25
  TextColor,
26
+ BuiltinTextColor,
26
27
  TextWeight,
27
28
  TextDisplay,
28
29
  TextJustify,
@@ -185,6 +186,24 @@ function resolveStyleType(type: TextType): BuiltinTextType {
185
186
  return 'body';
186
187
  }
187
188
 
189
+ /**
190
+ * Resolve the StyleX baseline color. Built-in colors map to their own color
191
+ * style; custom (theme-defined) colors fall back to the `primary` baseline —
192
+ * their actual color comes from theme CSS (`.astryx-text.<color>` /
193
+ * `.astryx-heading.<color>`), which the rendered `color` class targets.
194
+ *
195
+ * Exported so Heading applies the same custom-color fallback as Text.
196
+ */
197
+ export function resolveStyleColor(color: TextColor): BuiltinTextColor {
198
+ // The `in` guard is a runtime check for consumer-augmented custom colors
199
+ // (which widen `TextColor` beyond the built-ins via TextColorMap); within
200
+ // core the two types coincide, so no cast is needed.
201
+ if (color in colorStyles) {
202
+ return color;
203
+ }
204
+ return 'primary';
205
+ }
206
+
188
207
  /**
189
208
  * Semantic text component. Renders text with type-based styling from the theme.
190
209
  *
@@ -228,6 +247,11 @@ export function Text({
228
247
  // Resolve style type — custom types fall back to 'body' for StyleX baseline
229
248
  const styleType = resolveStyleType(type);
230
249
 
250
+ // Resolve style color — custom colors fall back to 'primary' for StyleX
251
+ // baseline; the real color comes from theme CSS via the rendered `color`
252
+ // class (see themeProps below).
253
+ const styleColor = resolveStyleColor(resolvedColor);
254
+
231
255
  // Resolve wordBreak with smart default
232
256
  const resolvedWordBreak =
233
257
  wordBreak ?? (maxLines === 1 ? 'break-all' : 'break-word');
@@ -257,7 +281,7 @@ export function Text({
257
281
  {...mergeProps(
258
282
  themeProps('text', {type, size, color: resolvedColor}),
259
283
  stylex.props(
260
- colorStyles[resolvedColor],
284
+ colorStyles[styleColor],
261
285
  sizeByTypeStyles[styleType],
262
286
  size && sizeStyles[size],
263
287
  defaultWeightByTypeStyles[styleType],
package/src/Text/index.ts CHANGED
@@ -7,12 +7,38 @@
7
7
  * @position Entry point for Text components
8
8
  */
9
9
 
10
- export {
11
- Text,
12
- type TextProps,
13
- type TextType,
14
- type TextSize,
15
- } from './Text';
10
+ /**
11
+ * Extensible map of text color variants for Text/Heading.
12
+ *
13
+ * Themes add custom colors via component overrides in defineTheme; a custom
14
+ * color renders with the `primary` baseline color from StyleX and receives its
15
+ * actual color from theme CSS (`.astryx-text.<color>` / `.astryx-heading.<color>`),
16
+ * exactly like custom text `type`s.
17
+ *
18
+ * To add type-safe custom colors, use module augmentation — the same technique
19
+ * as `ButtonVariantMap` etc.:
20
+ * ```ts
21
+ * declare module '@astryxdesign/core/Text' {
22
+ * interface TextColorMap {
23
+ * brand: true;
24
+ * danger: true;
25
+ * }
26
+ * }
27
+ * ```
28
+ *
29
+ * `astryx theme build` generates these augmentations automatically when it
30
+ * detects new `color:*` values in a theme's Text/Heading component overrides.
31
+ */
32
+ export interface TextColorMap {
33
+ primary: true;
34
+ secondary: true;
35
+ disabled: true;
36
+ placeholder: true;
37
+ accent: true;
38
+ inherit: true;
39
+ }
40
+
41
+ export {Text, type TextProps, type TextType, type TextSize} from './Text';
16
42
  export {
17
43
  Heading,
18
44
  type HeadingProps,