@astryxdesign/core 0.2.0-canary.85f5022 → 0.2.0-canary.8dfd7cf

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 (966) hide show
  1. package/dist/AlertDialog/AlertDialog.d.ts +1 -1
  2. package/dist/AlertDialog/AlertDialog.js +1 -1
  3. package/dist/AppShell/AppShell.d.ts +2 -20
  4. package/dist/AppShell/AppShell.d.ts.map +1 -1
  5. package/dist/AppShell/AppShell.js +1 -14
  6. package/dist/AppShell/index.d.ts +20 -1
  7. package/dist/AppShell/index.d.ts.map +1 -1
  8. package/dist/AppShell/index.js +14 -0
  9. package/dist/AspectRatio/AspectRatio.d.ts +1 -1
  10. package/dist/AspectRatio/AspectRatio.js +1 -1
  11. package/dist/Avatar/Avatar.d.ts +1 -1
  12. package/dist/Avatar/Avatar.d.ts.map +1 -1
  13. package/dist/Avatar/Avatar.js +4 -4
  14. package/dist/Avatar/AvatarStatusDot.d.ts +2 -26
  15. package/dist/Avatar/AvatarStatusDot.d.ts.map +1 -1
  16. package/dist/Avatar/AvatarStatusDot.js +1 -22
  17. package/dist/Avatar/index.d.ts +26 -1
  18. package/dist/Avatar/index.d.ts.map +1 -1
  19. package/dist/Avatar/index.js +21 -0
  20. package/dist/AvatarGroup/AvatarGroup.d.ts +1 -1
  21. package/dist/AvatarGroup/AvatarGroup.js +1 -1
  22. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts +2 -2
  23. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
  24. package/dist/AvatarGroup/AvatarGroupOverflow.js +7 -3
  25. package/dist/Badge/Badge.d.ts +2 -30
  26. package/dist/Badge/Badge.d.ts.map +1 -1
  27. package/dist/Badge/Badge.js +2 -17
  28. package/dist/Badge/index.d.ts +31 -2
  29. package/dist/Badge/index.d.ts.map +1 -1
  30. package/dist/Badge/index.js +15 -1
  31. package/dist/Banner/Banner.d.ts +2 -37
  32. package/dist/Banner/Banner.d.ts.map +1 -1
  33. package/dist/Banner/Banner.js +6 -34
  34. package/dist/Banner/index.d.ts +37 -1
  35. package/dist/Banner/index.d.ts.map +1 -1
  36. package/dist/Banner/index.js +27 -0
  37. package/dist/Blockquote/Blockquote.d.ts +1 -1
  38. package/dist/Blockquote/Blockquote.js +1 -1
  39. package/dist/Breadcrumbs/BreadcrumbItem.d.ts +1 -1
  40. package/dist/Breadcrumbs/BreadcrumbItem.js +4 -3
  41. package/dist/Breadcrumbs/Breadcrumbs.d.ts +2 -18
  42. package/dist/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  43. package/dist/Breadcrumbs/Breadcrumbs.js +1 -15
  44. package/dist/Breadcrumbs/index.d.ts +18 -1
  45. package/dist/Breadcrumbs/index.d.ts.map +1 -1
  46. package/dist/Breadcrumbs/index.js +14 -0
  47. package/dist/Button/Button.d.ts +3 -21
  48. package/dist/Button/Button.d.ts.map +1 -1
  49. package/dist/Button/Button.js +6 -19
  50. package/dist/Button/index.d.ts +21 -3
  51. package/dist/Button/index.d.ts.map +1 -1
  52. package/dist/Button/index.js +15 -1
  53. package/dist/ButtonGroup/ButtonGroup.d.ts +1 -1
  54. package/dist/ButtonGroup/ButtonGroup.js +1 -1
  55. package/dist/Calendar/Calendar.js +1 -1
  56. package/dist/Calendar/styles.d.ts +2 -2
  57. package/dist/Calendar/styles.js +2 -2
  58. package/dist/Card/Card.d.ts +1 -1
  59. package/dist/Card/Card.js +1 -1
  60. package/dist/Carousel/Carousel.d.ts +1 -1
  61. package/dist/Carousel/Carousel.js +1 -1
  62. package/dist/Center/Center.d.ts +21 -4
  63. package/dist/Center/Center.d.ts.map +1 -1
  64. package/dist/Center/Center.js +11 -3
  65. package/dist/Chat/ChatComposer.d.ts +1 -1
  66. package/dist/Chat/ChatComposer.js +9 -9
  67. package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
  68. package/dist/Chat/ChatComposerDrawer.js +3 -3
  69. package/dist/Chat/ChatComposerInput.d.ts +1 -1
  70. package/dist/Chat/ChatComposerInput.js +1 -1
  71. package/dist/Chat/ChatDictationButton.d.ts +1 -1
  72. package/dist/Chat/ChatDictationButton.js +1 -1
  73. package/dist/Chat/ChatLayout.d.ts +8 -1
  74. package/dist/Chat/ChatLayout.d.ts.map +1 -1
  75. package/dist/Chat/ChatLayout.js +15 -4
  76. package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
  77. package/dist/Chat/ChatLayoutScrollButton.js +1 -1
  78. package/dist/Chat/ChatMessage.d.ts +1 -1
  79. package/dist/Chat/ChatMessage.js +1 -1
  80. package/dist/Chat/ChatMessageBubble.d.ts +1 -1
  81. package/dist/Chat/ChatMessageBubble.js +1 -1
  82. package/dist/Chat/ChatMessageList.d.ts +1 -1
  83. package/dist/Chat/ChatMessageList.js +1 -1
  84. package/dist/Chat/ChatSendButton.d.ts.map +1 -1
  85. package/dist/Chat/ChatSendButton.js +4 -2
  86. package/dist/Chat/ChatSystemMessage.d.ts +1 -1
  87. package/dist/Chat/ChatSystemMessage.js +1 -1
  88. package/dist/Chat/ChatTokenizedText.d.ts +1 -1
  89. package/dist/Chat/ChatTokenizedText.js +1 -1
  90. package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
  91. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  92. package/dist/CheckboxInput/CheckboxInput.js +3 -3
  93. package/dist/CheckboxList/CheckboxList.d.ts +1 -1
  94. package/dist/CheckboxList/CheckboxList.js +1 -1
  95. package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
  96. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  97. package/dist/CheckboxList/CheckboxListItem.js +20 -5
  98. package/dist/Citation/Citation.d.ts +1 -1
  99. package/dist/Citation/Citation.js +1 -1
  100. package/dist/ClickableCard/ClickableCard.d.ts +3 -3
  101. package/dist/ClickableCard/ClickableCard.js +3 -3
  102. package/dist/Code/Code.d.ts +2 -2
  103. package/dist/Code/Code.js +2 -2
  104. package/dist/CodeBlock/CodeBlock.js +2 -2
  105. package/dist/Collapsible/Collapsible.d.ts +1 -1
  106. package/dist/Collapsible/Collapsible.js +3 -3
  107. package/dist/Collapsible/CollapsibleGroup.d.ts +1 -1
  108. package/dist/Collapsible/CollapsibleGroup.js +1 -1
  109. package/dist/Collapsible/CollapsibleGroupContext.js +1 -1
  110. package/dist/CommandPalette/CommandPalette.d.ts +1 -1
  111. package/dist/CommandPalette/CommandPalette.js +1 -1
  112. package/dist/CommandPalette/CommandPaletteEmpty.js +1 -1
  113. package/dist/CommandPalette/CommandPaletteFooter.js +1 -1
  114. package/dist/CommandPalette/CommandPaletteGroup.js +1 -1
  115. package/dist/CommandPalette/CommandPaletteInput.d.ts +2 -2
  116. package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
  117. package/dist/CommandPalette/CommandPaletteInput.js +4 -2
  118. package/dist/CommandPalette/CommandPaletteItem.d.ts +1 -1
  119. package/dist/CommandPalette/CommandPaletteItem.js +1 -1
  120. package/dist/CommandPalette/CommandPaletteList.js +1 -1
  121. package/dist/ContextMenu/ContextMenu.d.ts +2 -2
  122. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  123. package/dist/ContextMenu/ContextMenu.js +24 -6
  124. package/dist/DateInput/DateInput.js +1 -1
  125. package/dist/DateRangeInput/DateRangeInput.js +1 -1
  126. package/dist/DateTimeInput/DateTimeInput.js +1 -1
  127. package/dist/Dialog/Dialog.d.ts +46 -23
  128. package/dist/Dialog/Dialog.d.ts.map +1 -1
  129. package/dist/Dialog/Dialog.js +59 -31
  130. package/dist/Dialog/DialogHeader.d.ts +1 -1
  131. package/dist/Dialog/DialogHeader.js +1 -1
  132. package/dist/Dialog/index.d.ts +18 -1
  133. package/dist/Dialog/index.d.ts.map +1 -1
  134. package/dist/Dialog/index.js +14 -0
  135. package/dist/Divider/Divider.d.ts +2 -18
  136. package/dist/Divider/Divider.d.ts.map +1 -1
  137. package/dist/Divider/Divider.js +1 -15
  138. package/dist/Divider/index.d.ts +18 -1
  139. package/dist/Divider/index.d.ts.map +1 -1
  140. package/dist/Divider/index.js +14 -0
  141. package/dist/DropdownMenu/DropdownMenu.d.ts +9 -3
  142. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  143. package/dist/DropdownMenu/DropdownMenu.js +23 -19
  144. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +18 -12
  145. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  146. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +38 -63
  147. package/dist/DropdownMenu/DropdownMenuItem.d.ts +1 -1
  148. package/dist/DropdownMenu/DropdownMenuItem.js +1 -1
  149. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts +8 -11
  150. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts.map +1 -1
  151. package/dist/DropdownMenu/DropdownMenuRadioGroup.js +3 -1
  152. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +1 -1
  153. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  154. package/dist/DropdownMenu/DropdownMenuRadioItem.js +6 -2
  155. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +1 -1
  156. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  157. package/dist/DropdownMenu/DropdownMenuSubMenu.js +14 -6
  158. package/dist/DropdownMenu/menuItemHover.d.ts +1 -0
  159. package/dist/DropdownMenu/menuItemHover.d.ts.map +1 -1
  160. package/dist/DropdownMenu/menuItemHover.js +1 -0
  161. package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
  162. package/dist/DropdownMenu/renderDropdownItems.js +6 -4
  163. package/dist/EmptyState/EmptyState.d.ts +1 -1
  164. package/dist/EmptyState/EmptyState.js +1 -1
  165. package/dist/Field/Field.d.ts +1 -1
  166. package/dist/Field/Field.js +1 -1
  167. package/dist/Field/FieldLabel.d.ts +4 -3
  168. package/dist/Field/FieldLabel.d.ts.map +1 -1
  169. package/dist/Field/FieldLabel.js +48 -5
  170. package/dist/FieldStatus/FieldStatus.d.ts +1 -18
  171. package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
  172. package/dist/FieldStatus/FieldStatus.js +13 -17
  173. package/dist/FieldStatus/index.d.ts +19 -1
  174. package/dist/FieldStatus/index.d.ts.map +1 -1
  175. package/dist/FieldStatus/index.js +14 -0
  176. package/dist/FileInput/FileInput.js +1 -1
  177. package/dist/FormLayout/FormLayout.d.ts +1 -1
  178. package/dist/FormLayout/FormLayout.d.ts.map +1 -1
  179. package/dist/FormLayout/FormLayout.js +1 -1
  180. package/dist/Grid/Grid.d.ts +1 -1
  181. package/dist/Grid/Grid.js +1 -1
  182. package/dist/Grid/GridSpan.d.ts +1 -1
  183. package/dist/Grid/GridSpan.js +1 -1
  184. package/dist/HStack/HStack.d.ts +1 -1
  185. package/dist/HStack/HStack.js +1 -1
  186. package/dist/Heading/Heading.d.ts +2 -2
  187. package/dist/Heading/Heading.d.ts.map +1 -1
  188. package/dist/Heading/Heading.js +5 -4
  189. package/dist/HoverCard/HoverCard.d.ts +1 -1
  190. package/dist/HoverCard/HoverCard.js +1 -1
  191. package/dist/Icon/Icon.d.ts +1 -1
  192. package/dist/Icon/Icon.d.ts.map +1 -1
  193. package/dist/Icon/Icon.js +4 -2
  194. package/dist/Icon/globalIconRegistry.d.ts +6 -4
  195. package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
  196. package/dist/Icon/globalIconRegistry.js +25 -6
  197. package/dist/Icon/index.d.ts +3 -2
  198. package/dist/Icon/index.d.ts.map +1 -1
  199. package/dist/Icon/index.js +1 -0
  200. package/dist/Icon/useIcon.d.ts +14 -0
  201. package/dist/Icon/useIcon.d.ts.map +1 -0
  202. package/dist/Icon/useIcon.js +21 -0
  203. package/dist/IconButton/IconButton.d.ts +1 -1
  204. package/dist/IconButton/IconButton.js +1 -1
  205. package/dist/InputGroup/InputGroup.d.ts +1 -1
  206. package/dist/InputGroup/InputGroup.js +1 -1
  207. package/dist/InputGroup/InputGroupText.d.ts +1 -1
  208. package/dist/InputGroup/InputGroupText.js +1 -1
  209. package/dist/Item/Item.d.ts +17 -4
  210. package/dist/Item/Item.d.ts.map +1 -1
  211. package/dist/Item/Item.js +32 -7
  212. package/dist/Kbd/Kbd.d.ts +1 -1
  213. package/dist/Kbd/Kbd.js +1 -1
  214. package/dist/Layout/Layout.d.ts +1 -1
  215. package/dist/Layout/Layout.js +1 -1
  216. package/dist/Layout/LayoutContent.d.ts +1 -1
  217. package/dist/Layout/LayoutContent.js +1 -1
  218. package/dist/Layout/LayoutFooter.d.ts +1 -1
  219. package/dist/Layout/LayoutFooter.js +1 -1
  220. package/dist/Layout/LayoutHeader.d.ts +1 -1
  221. package/dist/Layout/LayoutHeader.js +1 -1
  222. package/dist/Layout/LayoutPanel.d.ts +1 -1
  223. package/dist/Layout/LayoutPanel.js +1 -1
  224. package/dist/Lightbox/Lightbox.d.ts +1 -1
  225. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  226. package/dist/Lightbox/Lightbox.js +16 -3
  227. package/dist/Link/Link.d.ts +1 -1
  228. package/dist/Link/Link.js +1 -1
  229. package/dist/Link/LinkProvider.d.ts +2 -2
  230. package/dist/Link/LinkProvider.js +2 -2
  231. package/dist/List/List.d.ts +1 -1
  232. package/dist/List/List.js +1 -1
  233. package/dist/List/ListItem.d.ts +12 -2
  234. package/dist/List/ListItem.d.ts.map +1 -1
  235. package/dist/List/ListItem.js +3 -1
  236. package/dist/Markdown/Markdown.js +4 -4
  237. package/dist/MetadataList/MetadataList.d.ts +2 -2
  238. package/dist/MetadataList/MetadataList.d.ts.map +1 -1
  239. package/dist/MetadataList/MetadataList.js +5 -3
  240. package/dist/MetadataList/MetadataListItem.d.ts +1 -1
  241. package/dist/MetadataList/MetadataListItem.js +1 -1
  242. package/dist/MobileNav/MobileNav.d.ts +1 -1
  243. package/dist/MobileNav/MobileNav.js +1 -1
  244. package/dist/MoreMenu/MoreMenu.d.ts +1 -1
  245. package/dist/MoreMenu/MoreMenu.js +3 -3
  246. package/dist/MultiSelector/MultiSelector.d.ts +1 -1
  247. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  248. package/dist/MultiSelector/MultiSelector.js +21 -6
  249. package/dist/NavIcon/NavIcon.d.ts +1 -1
  250. package/dist/NavIcon/NavIcon.js +1 -1
  251. package/dist/NumberInput/NumberInput.d.ts +1 -1
  252. package/dist/NumberInput/NumberInput.js +1 -1
  253. package/dist/Outline/Outline.js +1 -1
  254. package/dist/OverflowList/OverflowList.d.ts +1 -1
  255. package/dist/OverflowList/OverflowList.js +1 -1
  256. package/dist/Pagination/Pagination.d.ts +1 -20
  257. package/dist/Pagination/Pagination.d.ts.map +1 -1
  258. package/dist/Pagination/Pagination.js +1 -15
  259. package/dist/Pagination/index.d.ts +21 -1
  260. package/dist/Pagination/index.d.ts.map +1 -1
  261. package/dist/Pagination/index.js +14 -0
  262. package/dist/Popover/Popover.d.ts +20 -3
  263. package/dist/Popover/Popover.d.ts.map +1 -1
  264. package/dist/Popover/Popover.js +5 -1
  265. package/dist/Popover/usePopover.d.ts.map +1 -1
  266. package/dist/Popover/usePopover.js +14 -3
  267. package/dist/PowerSearch/PowerSearch.d.ts +1 -1
  268. package/dist/PowerSearch/PowerSearch.js +1 -1
  269. package/dist/ProgressBar/ProgressBar.d.ts +1 -20
  270. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  271. package/dist/ProgressBar/ProgressBar.js +1 -15
  272. package/dist/ProgressBar/index.d.ts +21 -1
  273. package/dist/ProgressBar/index.d.ts.map +1 -1
  274. package/dist/ProgressBar/index.js +14 -0
  275. package/dist/RadioList/RadioList.d.ts +1 -1
  276. package/dist/RadioList/RadioList.js +1 -1
  277. package/dist/RadioList/RadioListItem.d.ts +1 -1
  278. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  279. package/dist/RadioList/RadioListItem.js +2 -2
  280. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  281. package/dist/Resizable/ResizeHandle.js +3 -10
  282. package/dist/Section/Section.d.ts +2 -19
  283. package/dist/Section/Section.d.ts.map +1 -1
  284. package/dist/Section/Section.js +1 -15
  285. package/dist/Section/index.d.ts +19 -1
  286. package/dist/Section/index.d.ts.map +1 -1
  287. package/dist/Section/index.js +14 -0
  288. package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
  289. package/dist/SegmentedControl/SegmentedControl.js +1 -1
  290. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  291. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  292. package/dist/SegmentedControl/SegmentedControlItem.js +4 -3
  293. package/dist/SelectableCard/SelectableCard.d.ts +4 -3
  294. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  295. package/dist/SelectableCard/SelectableCard.js +15 -3
  296. package/dist/Selector/Selector.d.ts +1 -1
  297. package/dist/Selector/Selector.d.ts.map +1 -1
  298. package/dist/Selector/Selector.js +12 -3
  299. package/dist/SideNav/SideNav.d.ts +1 -1
  300. package/dist/SideNav/SideNav.js +1 -1
  301. package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
  302. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  303. package/dist/SideNav/SideNavCollapseButton.js +4 -3
  304. package/dist/SideNav/SideNavHeading.d.ts +1 -1
  305. package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
  306. package/dist/SideNav/SideNavHeading.js +8 -7
  307. package/dist/SideNav/SideNavItem.d.ts +2 -2
  308. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  309. package/dist/SideNav/SideNavItem.js +6 -7
  310. package/dist/SideNav/SideNavSection.d.ts +1 -1
  311. package/dist/SideNav/SideNavSection.js +1 -1
  312. package/dist/Skeleton/Skeleton.d.ts +1 -1
  313. package/dist/Skeleton/Skeleton.d.ts.map +1 -1
  314. package/dist/Skeleton/Skeleton.js +3 -3
  315. package/dist/Slider/Slider.d.ts.map +1 -1
  316. package/dist/Slider/Slider.js +78 -68
  317. package/dist/Spinner/Spinner.d.ts +1 -1
  318. package/dist/Spinner/Spinner.js +1 -1
  319. package/dist/Stack/Stack.d.ts +1 -1
  320. package/dist/Stack/Stack.js +1 -1
  321. package/dist/Stack/StackItem.d.ts +1 -1
  322. package/dist/Stack/StackItem.js +1 -1
  323. package/dist/StatusDot/StatusDot.d.ts +1 -20
  324. package/dist/StatusDot/StatusDot.d.ts.map +1 -1
  325. package/dist/StatusDot/StatusDot.js +2 -17
  326. package/dist/StatusDot/index.d.ts +21 -1
  327. package/dist/StatusDot/index.d.ts.map +1 -1
  328. package/dist/StatusDot/index.js +14 -0
  329. package/dist/Switch/Switch.d.ts +1 -1
  330. package/dist/Switch/Switch.d.ts.map +1 -1
  331. package/dist/Switch/Switch.js +16 -5
  332. package/dist/TabList/Tab.d.ts +1 -1
  333. package/dist/TabList/Tab.js +1 -1
  334. package/dist/TabList/TabList.d.ts +1 -1
  335. package/dist/TabList/TabList.js +1 -1
  336. package/dist/TabList/TabMenu.d.ts +1 -1
  337. package/dist/TabList/TabMenu.js +1 -1
  338. package/dist/Table/BaseTable.d.ts +1 -1
  339. package/dist/Table/BaseTable.js +1 -1
  340. package/dist/Table/Table.d.ts +1 -1
  341. package/dist/Table/Table.js +1 -1
  342. package/dist/Table/TableCell.d.ts +1 -1
  343. package/dist/Table/TableCell.js +1 -1
  344. package/dist/Table/TableHeaderCell.d.ts +1 -1
  345. package/dist/Table/TableHeaderCell.js +1 -1
  346. package/dist/Table/TableRow.d.ts +1 -1
  347. package/dist/Table/TableRow.js +1 -1
  348. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +18 -3
  349. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  350. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +22 -4
  351. package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
  352. package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
  353. package/dist/Table/plugins/tree/useTableTreeData.js +36 -2
  354. package/dist/Text/Text.d.ts +11 -2
  355. package/dist/Text/Text.d.ts.map +1 -1
  356. package/dist/Text/Text.js +26 -3
  357. package/dist/Text/index.d.ts +31 -1
  358. package/dist/Text/index.d.ts.map +1 -1
  359. package/dist/Text/index.js +23 -0
  360. package/dist/TextArea/TextArea.d.ts +1 -1
  361. package/dist/TextArea/TextArea.d.ts.map +1 -1
  362. package/dist/TextArea/TextArea.js +107 -39
  363. package/dist/TextInput/TextInput.d.ts +1 -1
  364. package/dist/TextInput/TextInput.js +1 -1
  365. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  366. package/dist/Thumbnail/Thumbnail.js +52 -46
  367. package/dist/TimeInput/TimeInput.js +1 -1
  368. package/dist/Timestamp/Timestamp.js +2 -2
  369. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  370. package/dist/Toast/ToastViewport.js +61 -9
  371. package/dist/ToggleButton/ToggleButton.d.ts +1 -1
  372. package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
  373. package/dist/ToggleButton/ToggleButton.js +4 -2
  374. package/dist/ToggleButton/ToggleButtonGroup.d.ts +1 -1
  375. package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  376. package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
  377. package/dist/Token/Token.d.ts +6 -28
  378. package/dist/Token/Token.d.ts.map +1 -1
  379. package/dist/Token/Token.js +69 -58
  380. package/dist/Token/TokenLink.d.ts +62 -0
  381. package/dist/Token/TokenLink.d.ts.map +1 -0
  382. package/dist/Token/TokenLink.js +76 -0
  383. package/dist/Token/index.d.ts +27 -1
  384. package/dist/Token/index.d.ts.map +1 -1
  385. package/dist/Token/index.js +14 -0
  386. package/dist/Tokenizer/Tokenizer.d.ts +1 -1
  387. package/dist/Tokenizer/Tokenizer.js +1 -1
  388. package/dist/Toolbar/Toolbar.d.ts +1 -1
  389. package/dist/Toolbar/Toolbar.js +1 -1
  390. package/dist/Tooltip/Tooltip.d.ts +1 -1
  391. package/dist/Tooltip/Tooltip.js +1 -1
  392. package/dist/TopNav/TopNav.d.ts +1 -1
  393. package/dist/TopNav/TopNav.js +1 -1
  394. package/dist/TopNav/TopNavHeading.d.ts +1 -1
  395. package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
  396. package/dist/TopNav/TopNavHeading.js +7 -6
  397. package/dist/TopNav/TopNavItem.d.ts +1 -1
  398. package/dist/TopNav/TopNavItem.js +1 -1
  399. package/dist/TopNav/TopNavMegaMenu.d.ts +1 -1
  400. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  401. package/dist/TopNav/TopNavMegaMenu.js +15 -7
  402. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
  403. package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +1 -1
  404. package/dist/TopNav/TopNavMegaMenuItem.d.ts +1 -1
  405. package/dist/TopNav/TopNavMegaMenuItem.js +1 -1
  406. package/dist/TopNav/TopNavMenu.d.ts +1 -1
  407. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  408. package/dist/TopNav/TopNavMenu.js +5 -4
  409. package/dist/TreeList/TreeList.d.ts +1 -1
  410. package/dist/TreeList/TreeList.js +1 -1
  411. package/dist/TreeList/TreeListBranches.js +1 -1
  412. package/dist/TreeList/TreeListItem.d.ts +1 -1
  413. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  414. package/dist/TreeList/TreeListItem.js +4 -3
  415. package/dist/TreeList/TreeListTypes.d.ts +1 -17
  416. package/dist/TreeList/TreeListTypes.d.ts.map +1 -1
  417. package/dist/TreeList/index.d.ts +18 -1
  418. package/dist/TreeList/index.d.ts.map +1 -1
  419. package/dist/TreeList/index.js +14 -0
  420. package/dist/Typeahead/BaseTypeahead.d.ts +10 -1
  421. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  422. package/dist/Typeahead/BaseTypeahead.js +3 -1
  423. package/dist/Typeahead/Typeahead.d.ts +1 -1
  424. package/dist/Typeahead/Typeahead.d.ts.map +1 -1
  425. package/dist/Typeahead/Typeahead.js +9 -2
  426. package/dist/Typeahead/TypeaheadItem.d.ts +1 -1
  427. package/dist/Typeahead/TypeaheadItem.js +1 -1
  428. package/dist/VStack/VStack.d.ts +1 -1
  429. package/dist/VStack/VStack.js +1 -1
  430. package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  431. package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
  432. package/dist/astryx.css +96 -24
  433. package/dist/astryx.umd.js +50 -50
  434. package/dist/astryx.umd.js.map +4 -4
  435. package/dist/hooks/containerReveal.pool.stylex.d.ts +303 -0
  436. package/dist/hooks/containerReveal.pool.stylex.d.ts.map +1 -0
  437. package/dist/hooks/containerReveal.pool.stylex.js +292 -0
  438. package/dist/hooks/index.d.ts +2 -0
  439. package/dist/hooks/index.d.ts.map +1 -1
  440. package/dist/hooks/index.js +2 -1
  441. package/dist/hooks/useContainerReveal.d.ts +83 -0
  442. package/dist/hooks/useContainerReveal.d.ts.map +1 -0
  443. package/dist/hooks/useContainerReveal.js +123 -0
  444. package/dist/hooks/useInputContainer.d.ts.map +1 -1
  445. package/dist/hooks/useInputContainer.js +29 -1
  446. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  447. package/dist/hooks/useInputStatusIcon.js +11 -0
  448. package/dist/hooks/useKeyboardHint.d.ts +2 -2
  449. package/dist/hooks/useKeyboardHint.d.ts.map +1 -1
  450. package/dist/hooks/useKeyboardHint.js +5 -3
  451. package/dist/index.d.ts +2 -1
  452. package/dist/index.d.ts.map +1 -1
  453. package/dist/index.js +5 -1
  454. package/dist/theme/Theme.d.ts.map +1 -1
  455. package/dist/theme/Theme.js +2 -7
  456. package/dist/theme/defineTheme.d.ts +6 -0
  457. package/dist/theme/defineTheme.d.ts.map +1 -1
  458. package/dist/theme/defineTheme.js +4 -1
  459. package/dist/theme/expandColorScale.d.ts +19 -2
  460. package/dist/theme/expandColorScale.d.ts.map +1 -1
  461. package/dist/theme/expandColorScale.js +38 -10
  462. package/dist/theme/index.d.ts +6 -4
  463. package/dist/theme/index.d.ts.map +1 -1
  464. package/dist/theme/index.js +2 -1
  465. package/dist/theme/themeRegistry.d.ts +32 -0
  466. package/dist/theme/themeRegistry.d.ts.map +1 -0
  467. package/dist/theme/themeRegistry.js +49 -0
  468. package/dist/theme/types.d.ts +10 -2
  469. package/dist/theme/types.d.ts.map +1 -1
  470. package/dist/theme/useTheme.d.ts +9 -0
  471. package/dist/theme/useTheme.d.ts.map +1 -1
  472. package/dist/theme/useTheme.js +82 -27
  473. package/dist/utils/rtlStyles.d.ts +21 -0
  474. package/dist/utils/rtlStyles.d.ts.map +1 -1
  475. package/dist/utils/rtlStyles.js +26 -1
  476. package/groups.doc.mjs +2 -2
  477. package/locales/en.json +40 -0
  478. package/locales/pseudo.json +30 -0
  479. package/package.json +4 -13
  480. package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
  481. package/src/AlertDialog/AlertDialog.tsx +1 -1
  482. package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
  483. package/src/AppShell/AppShell.doc.mjs +3 -3
  484. package/src/AppShell/AppShell.tsx +2 -20
  485. package/src/AppShell/index.ts +20 -1
  486. package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
  487. package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
  488. package/src/AspectRatio/AspectRatio.tsx +1 -1
  489. package/src/Avatar/Avatar.doc.mjs +3 -3
  490. package/src/Avatar/Avatar.tsx +8 -3
  491. package/src/Avatar/AvatarStatusDot.doc.mjs +1 -1
  492. package/src/Avatar/AvatarStatusDot.tsx +2 -27
  493. package/src/Avatar/index.ts +26 -1
  494. package/src/AvatarGroup/AvatarGroup.doc.mjs +3 -3
  495. package/src/AvatarGroup/AvatarGroup.test.tsx +21 -1
  496. package/src/AvatarGroup/AvatarGroup.tsx +1 -1
  497. package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
  498. package/src/AvatarGroup/AvatarGroupOverflow.tsx +5 -3
  499. package/src/Badge/Badge.doc.mjs +3 -3
  500. package/src/Badge/Badge.tsx +2 -31
  501. package/src/Badge/index.ts +32 -6
  502. package/src/Banner/Banner.doc.mjs +3 -3
  503. package/src/Banner/Banner.tsx +8 -45
  504. package/src/Banner/index.ts +39 -7
  505. package/src/Blockquote/Blockquote.doc.mjs +3 -3
  506. package/src/Blockquote/Blockquote.tsx +1 -1
  507. package/src/Breadcrumbs/BreadcrumbItem.doc.mjs +1 -1
  508. package/src/Breadcrumbs/BreadcrumbItem.tsx +5 -3
  509. package/src/Breadcrumbs/Breadcrumbs.doc.mjs +3 -3
  510. package/src/Breadcrumbs/Breadcrumbs.test.tsx +1 -1
  511. package/src/Breadcrumbs/Breadcrumbs.tsx +2 -19
  512. package/src/Breadcrumbs/index.ts +19 -5
  513. package/src/Button/Button.doc.mjs +3 -3
  514. package/src/Button/Button.test.tsx +16 -0
  515. package/src/Button/Button.tsx +6 -23
  516. package/src/Button/index.ts +22 -7
  517. package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -3
  518. package/src/ButtonGroup/ButtonGroup.tsx +1 -1
  519. package/src/Calendar/Calendar.doc.mjs +3 -3
  520. package/src/Calendar/Calendar.test.tsx +15 -3
  521. package/src/Calendar/Calendar.tsx +1 -1
  522. package/src/Calendar/styles.ts +2 -2
  523. package/src/Card/Card.doc.mjs +3 -3
  524. package/src/Card/Card.tsx +1 -1
  525. package/src/Carousel/Carousel.doc.mjs +3 -3
  526. package/src/Carousel/Carousel.tsx +1 -1
  527. package/src/Center/Center.doc.mjs +41 -3
  528. package/src/Center/Center.test.tsx +75 -0
  529. package/src/Center/Center.tsx +38 -3
  530. package/src/Chat/Chat.doc.mjs +3 -3
  531. package/src/Chat/ChatComposer.doc.mjs +1 -1
  532. package/src/Chat/ChatComposer.tsx +5 -5
  533. package/src/Chat/ChatComposerDrawer.doc.mjs +1 -1
  534. package/src/Chat/ChatComposerDrawer.tsx +3 -3
  535. package/src/Chat/ChatComposerInput.doc.mjs +1 -1
  536. package/src/Chat/ChatComposerInput.tsx +1 -1
  537. package/src/Chat/ChatComposerTokenElement.doc.mjs +1 -1
  538. package/src/Chat/ChatDictationButton.doc.mjs +3 -3
  539. package/src/Chat/ChatDictationButton.tsx +1 -1
  540. package/src/Chat/ChatLayout.doc.mjs +1 -1
  541. package/src/Chat/ChatLayout.test.tsx +57 -0
  542. package/src/Chat/ChatLayout.tsx +23 -2
  543. package/src/Chat/ChatLayoutScrollButton.doc.mjs +1 -1
  544. package/src/Chat/ChatLayoutScrollButton.tsx +1 -1
  545. package/src/Chat/ChatMessage.doc.mjs +1 -1
  546. package/src/Chat/ChatMessage.tsx +1 -1
  547. package/src/Chat/ChatMessageBubble.doc.mjs +1 -1
  548. package/src/Chat/ChatMessageBubble.tsx +1 -1
  549. package/src/Chat/ChatMessageList.doc.mjs +1 -1
  550. package/src/Chat/ChatMessageList.tsx +1 -1
  551. package/src/Chat/ChatMessageMetadata.doc.mjs +1 -1
  552. package/src/Chat/ChatSendButton.doc.mjs +1 -1
  553. package/src/Chat/ChatSendButton.tsx +5 -3
  554. package/src/Chat/ChatSystemMessage.doc.mjs +1 -1
  555. package/src/Chat/ChatSystemMessage.tsx +1 -1
  556. package/src/Chat/ChatTokenizedText.doc.mjs +1 -1
  557. package/src/Chat/ChatTokenizedText.tsx +1 -1
  558. package/src/Chat/ChatToolCalls.doc.mjs +3 -3
  559. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
  560. package/src/CheckboxInput/CheckboxInput.test.tsx +56 -0
  561. package/src/CheckboxInput/CheckboxInput.tsx +18 -3
  562. package/src/CheckboxList/CheckboxList.doc.mjs +3 -3
  563. package/src/CheckboxList/CheckboxList.test.tsx +94 -3
  564. package/src/CheckboxList/CheckboxList.tsx +1 -1
  565. package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
  566. package/src/CheckboxList/CheckboxListItem.tsx +18 -11
  567. package/src/Citation/Citation.doc.mjs +2 -2
  568. package/src/Citation/Citation.tsx +1 -1
  569. package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
  570. package/src/ClickableCard/ClickableCard.tsx +3 -3
  571. package/src/Code/Code.tsx +2 -2
  572. package/src/CodeBlock/Code.doc.mjs +1 -1
  573. package/src/CodeBlock/CodeBlock.doc.mjs +3 -3
  574. package/src/CodeBlock/CodeBlock.test.tsx +17 -0
  575. package/src/CodeBlock/CodeBlock.tsx +2 -2
  576. package/src/Collapsible/Collapsible.doc.mjs +3 -3
  577. package/src/Collapsible/Collapsible.tsx +3 -3
  578. package/src/Collapsible/CollapsibleGroup.doc.mjs +1 -1
  579. package/src/Collapsible/CollapsibleGroup.tsx +1 -1
  580. package/src/Collapsible/CollapsibleGroupContext.tsx +1 -1
  581. package/src/Collapsible/useCollapsible.doc.mjs +2 -2
  582. package/src/CommandPalette/CommandPalette.doc.mjs +4 -4
  583. package/src/CommandPalette/CommandPalette.tsx +1 -1
  584. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +1 -1
  585. package/src/CommandPalette/CommandPaletteEmpty.tsx +1 -1
  586. package/src/CommandPalette/CommandPaletteFooter.doc.mjs +1 -1
  587. package/src/CommandPalette/CommandPaletteFooter.tsx +1 -1
  588. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +1 -1
  589. package/src/CommandPalette/CommandPaletteGroup.tsx +1 -1
  590. package/src/CommandPalette/CommandPaletteInput.doc.mjs +1 -1
  591. package/src/CommandPalette/CommandPaletteInput.tsx +5 -1
  592. package/src/CommandPalette/CommandPaletteItem.doc.mjs +1 -1
  593. package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
  594. package/src/CommandPalette/CommandPaletteList.doc.mjs +1 -1
  595. package/src/CommandPalette/CommandPaletteList.tsx +1 -1
  596. package/src/ContextMenu/ContextMenu.doc.mjs +3 -3
  597. package/src/ContextMenu/ContextMenu.test.tsx +17 -2
  598. package/src/ContextMenu/ContextMenu.tsx +27 -6
  599. package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
  600. package/src/DateInput/DateInput.doc.mjs +3 -3
  601. package/src/DateInput/DateInput.tsx +1 -1
  602. package/src/DateRangeInput/DateRangeInput.doc.mjs +2 -2
  603. package/src/DateRangeInput/DateRangeInput.tsx +1 -1
  604. package/src/DateTimeInput/DateTimeInput.doc.mjs +3 -3
  605. package/src/DateTimeInput/DateTimeInput.tsx +1 -1
  606. package/src/Dialog/Dialog.doc.mjs +9 -5
  607. package/src/Dialog/Dialog.test.tsx +84 -1
  608. package/src/Dialog/Dialog.tsx +87 -45
  609. package/src/Dialog/DialogHeader.doc.mjs +1 -1
  610. package/src/Dialog/DialogHeader.tsx +1 -1
  611. package/src/Dialog/index.ts +18 -1
  612. package/src/Dialog/useImperativeDialog.doc.mjs +1 -1
  613. package/src/Divider/Divider.doc.mjs +3 -3
  614. package/src/Divider/Divider.tsx +2 -19
  615. package/src/Divider/index.ts +19 -5
  616. package/src/DropdownMenu/DropdownMenu.doc.mjs +20 -5
  617. package/src/DropdownMenu/DropdownMenu.test.tsx +122 -0
  618. package/src/DropdownMenu/DropdownMenu.tsx +31 -20
  619. package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +1 -1
  620. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +41 -64
  621. package/src/DropdownMenu/DropdownMenuItem.doc.mjs +1 -1
  622. package/src/DropdownMenu/DropdownMenuItem.tsx +1 -1
  623. package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +5 -13
  624. package/src/DropdownMenu/DropdownMenuRadioGroup.tsx +9 -10
  625. package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
  626. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +11 -2
  627. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +84 -2
  628. package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +1 -1
  629. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +46 -1
  630. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +24 -8
  631. package/src/DropdownMenu/menuItemHover.ts +1 -0
  632. package/src/DropdownMenu/renderDropdownItems.tsx +14 -2
  633. package/src/EmptyState/EmptyState.doc.mjs +3 -3
  634. package/src/EmptyState/EmptyState.tsx +1 -1
  635. package/src/Field/Field.doc.mjs +7 -3
  636. package/src/Field/Field.tsx +1 -1
  637. package/src/Field/FieldLabel.doc.mjs +1 -1
  638. package/src/Field/FieldLabel.test.tsx +103 -0
  639. package/src/Field/FieldLabel.tsx +61 -5
  640. package/src/FieldStatus/FieldStatus.doc.mjs +3 -2
  641. package/src/FieldStatus/FieldStatus.test.tsx +61 -0
  642. package/src/FieldStatus/FieldStatus.tsx +16 -23
  643. package/src/FieldStatus/index.ts +20 -5
  644. package/src/FileInput/FileInput.doc.mjs +3 -3
  645. package/src/FileInput/FileInput.tsx +1 -1
  646. package/src/FormLayout/FormLayout.doc.mjs +3 -3
  647. package/src/FormLayout/FormLayout.tsx +2 -5
  648. package/src/Grid/Grid.doc.mjs +3 -3
  649. package/src/Grid/Grid.tsx +1 -1
  650. package/src/Grid/GridSpan.doc.mjs +1 -1
  651. package/src/Grid/GridSpan.tsx +1 -1
  652. package/src/HStack/HStack.tsx +1 -1
  653. package/src/Heading/Heading.tsx +4 -3
  654. package/src/HoverCard/HoverCard.doc.mjs +3 -3
  655. package/src/HoverCard/HoverCard.tsx +1 -1
  656. package/src/HoverCard/useHoverCard.doc.mjs +2 -2
  657. package/src/Icon/Icon.doc.mjs +3 -3
  658. package/src/Icon/Icon.test.tsx +23 -0
  659. package/src/Icon/Icon.tsx +4 -2
  660. package/src/Icon/globalIconRegistry.test.tsx +52 -1
  661. package/src/Icon/globalIconRegistry.tsx +43 -6
  662. package/src/Icon/index.ts +7 -7
  663. package/src/Icon/useIcon.ts +23 -0
  664. package/src/IconButton/IconButton.doc.mjs +2 -2
  665. package/src/IconButton/IconButton.tsx +1 -1
  666. package/src/InputGroup/InputGroup.doc.mjs +2 -2
  667. package/src/InputGroup/InputGroup.tsx +1 -1
  668. package/src/InputGroup/InputGroupText.doc.mjs +1 -1
  669. package/src/InputGroup/InputGroupText.tsx +1 -1
  670. package/src/Item/Item.doc.mjs +8 -3
  671. package/src/Item/Item.test.tsx +88 -0
  672. package/src/Item/Item.tsx +58 -12
  673. package/src/Kbd/Kbd.doc.mjs +3 -3
  674. package/src/Kbd/Kbd.tsx +1 -1
  675. package/src/Layer/Layer.doc.mjs +2 -2
  676. package/src/Layer/useLayer.doc.mjs +2 -2
  677. package/src/Layout/Layout.doc.mjs +3 -3
  678. package/src/Layout/Layout.tsx +1 -1
  679. package/src/Layout/LayoutContent.doc.mjs +1 -1
  680. package/src/Layout/LayoutContent.tsx +1 -1
  681. package/src/Layout/LayoutFooter.doc.mjs +1 -1
  682. package/src/Layout/LayoutFooter.tsx +1 -1
  683. package/src/Layout/LayoutHeader.doc.mjs +1 -1
  684. package/src/Layout/LayoutHeader.tsx +1 -1
  685. package/src/Layout/LayoutPanel.doc.mjs +1 -1
  686. package/src/Layout/LayoutPanel.tsx +1 -1
  687. package/src/Lightbox/Lightbox.doc.mjs +3 -3
  688. package/src/Lightbox/Lightbox.test.tsx +33 -0
  689. package/src/Lightbox/Lightbox.tsx +16 -4
  690. package/src/Link/Link.doc.mjs +3 -3
  691. package/src/Link/Link.tsx +1 -1
  692. package/src/Link/LinkProvider.doc.mjs +2 -2
  693. package/src/Link/LinkProvider.tsx +2 -2
  694. package/src/List/List.doc.mjs +3 -3
  695. package/src/List/List.tsx +1 -1
  696. package/src/List/ListItem.doc.mjs +13 -1
  697. package/src/List/ListItem.tsx +14 -1
  698. package/src/Markdown/Markdown.doc.mjs +1 -1
  699. package/src/Markdown/Markdown.tsx +3 -3
  700. package/src/MetadataList/MetadataList.doc.mjs +3 -3
  701. package/src/MetadataList/MetadataList.test.tsx +24 -0
  702. package/src/MetadataList/MetadataList.tsx +7 -3
  703. package/src/MetadataList/MetadataListItem.doc.mjs +1 -1
  704. package/src/MetadataList/MetadataListItem.tsx +1 -1
  705. package/src/MobileNav/MobileNav.doc.mjs +3 -3
  706. package/src/MobileNav/MobileNav.tsx +1 -1
  707. package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
  708. package/src/MoreMenu/MoreMenu.tsx +3 -3
  709. package/src/MultiSelector/MultiSelector.doc.mjs +3 -3
  710. package/src/MultiSelector/MultiSelector.test.tsx +110 -0
  711. package/src/MultiSelector/MultiSelector.tsx +36 -11
  712. package/src/NavIcon/NavIcon.doc.mjs +3 -3
  713. package/src/NavIcon/NavIcon.tsx +1 -1
  714. package/src/NavMenu/NavMenu.doc.mjs +2 -2
  715. package/src/NumberInput/NumberInput.doc.mjs +3 -3
  716. package/src/NumberInput/NumberInput.tsx +1 -1
  717. package/src/Outline/Outline.doc.mjs +3 -3
  718. package/src/Outline/Outline.tsx +1 -1
  719. package/src/OverflowList/OverflowList.doc.mjs +3 -3
  720. package/src/OverflowList/OverflowList.tsx +1 -1
  721. package/src/Overlay/Overlay.doc.mjs +2 -2
  722. package/src/Pagination/Pagination.doc.mjs +3 -3
  723. package/src/Pagination/Pagination.tsx +2 -22
  724. package/src/Pagination/index.ts +21 -1
  725. package/src/Popover/Popover.doc.mjs +31 -3
  726. package/src/Popover/Popover.test.tsx +41 -0
  727. package/src/Popover/Popover.tsx +25 -2
  728. package/src/Popover/usePopover.doc.mjs +2 -2
  729. package/src/Popover/usePopover.tsx +10 -4
  730. package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
  731. package/src/PowerSearch/PowerSearch.tsx +1 -1
  732. package/src/ProgressBar/ProgressBar.doc.mjs +3 -3
  733. package/src/ProgressBar/ProgressBar.tsx +2 -22
  734. package/src/ProgressBar/index.ts +22 -5
  735. package/src/RadioList/RadioList.doc.mjs +3 -3
  736. package/src/RadioList/RadioList.test.tsx +26 -4
  737. package/src/RadioList/RadioList.tsx +1 -1
  738. package/src/RadioList/RadioListItem.doc.mjs +1 -1
  739. package/src/RadioList/RadioListItem.tsx +9 -2
  740. package/src/Resizable/Resizable.doc.mjs +2 -2
  741. package/src/Resizable/ResizeHandle.test.tsx +3 -2
  742. package/src/Resizable/ResizeHandle.tsx +8 -12
  743. package/src/Resizable/useResizable.doc.mjs +2 -2
  744. package/src/Section/Section.doc.mjs +3 -3
  745. package/src/Section/Section.tsx +2 -20
  746. package/src/Section/index.ts +20 -5
  747. package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
  748. package/src/SegmentedControl/SegmentedControl.test.tsx +28 -0
  749. package/src/SegmentedControl/SegmentedControl.tsx +1 -1
  750. package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
  751. package/src/SegmentedControl/SegmentedControlItem.tsx +21 -3
  752. package/src/SelectableCard/SelectableCard.doc.mjs +4 -2
  753. package/src/SelectableCard/SelectableCard.test.tsx +55 -0
  754. package/src/SelectableCard/SelectableCard.tsx +19 -3
  755. package/src/Selector/Selector.doc.mjs +3 -3
  756. package/src/Selector/Selector.test.tsx +52 -0
  757. package/src/Selector/Selector.tsx +16 -5
  758. package/src/Selector/SelectorOption.doc.mjs +1 -1
  759. package/src/SideNav/SideNav.doc.mjs +3 -3
  760. package/src/SideNav/SideNav.tsx +1 -1
  761. package/src/SideNav/SideNavCollapseButton.doc.mjs +1 -1
  762. package/src/SideNav/SideNavCollapseButton.tsx +4 -3
  763. package/src/SideNav/SideNavHeading.doc.mjs +1 -1
  764. package/src/SideNav/SideNavHeading.tsx +8 -9
  765. package/src/SideNav/SideNavItem.doc.mjs +1 -1
  766. package/src/SideNav/SideNavItem.tsx +5 -6
  767. package/src/SideNav/SideNavSection.doc.mjs +1 -1
  768. package/src/SideNav/SideNavSection.tsx +1 -1
  769. package/src/Skeleton/Skeleton.doc.mjs +3 -3
  770. package/src/Skeleton/Skeleton.test.tsx +16 -0
  771. package/src/Skeleton/Skeleton.tsx +14 -2
  772. package/src/Slider/Slider.doc.mjs +3 -3
  773. package/src/Slider/Slider.tsx +9 -13
  774. package/src/Spinner/Spinner.doc.mjs +3 -3
  775. package/src/Spinner/Spinner.tsx +1 -1
  776. package/src/Stack/Stack.doc.mjs +3 -3
  777. package/src/Stack/Stack.tsx +1 -1
  778. package/src/Stack/StackItem.tsx +1 -1
  779. package/src/StatusDot/StatusDot.doc.mjs +3 -3
  780. package/src/StatusDot/StatusDot.tsx +2 -22
  781. package/src/StatusDot/index.ts +22 -5
  782. package/src/Switch/Switch.doc.mjs +3 -3
  783. package/src/Switch/Switch.test.tsx +71 -0
  784. package/src/Switch/Switch.tsx +53 -4
  785. package/src/TabList/Tab.doc.mjs +1 -1
  786. package/src/TabList/Tab.tsx +1 -1
  787. package/src/TabList/TabList.doc.mjs +3 -3
  788. package/src/TabList/TabList.tsx +1 -1
  789. package/src/TabList/TabMenu.doc.mjs +1 -1
  790. package/src/TabList/TabMenu.tsx +1 -1
  791. package/src/Table/BaseTable.tsx +1 -1
  792. package/src/Table/Table.doc.mjs +3 -3
  793. package/src/Table/Table.tsx +1 -1
  794. package/src/Table/TableCell.doc.mjs +1 -1
  795. package/src/Table/TableCell.tsx +1 -1
  796. package/src/Table/TableHeaderCell.doc.mjs +1 -1
  797. package/src/Table/TableHeaderCell.tsx +1 -1
  798. package/src/Table/TableRow.doc.mjs +1 -1
  799. package/src/Table/TableRow.tsx +1 -1
  800. package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +19 -0
  801. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +24 -4
  802. package/src/Table/plugins/tree/useTableTreeData.test.tsx +161 -2
  803. package/src/Table/plugins/tree/useTableTreeData.tsx +54 -1
  804. package/src/Table/useTableColumnResize.doc.mjs +1 -1
  805. package/src/Table/useTableColumnSettings.doc.mjs +1 -1
  806. package/src/Table/useTableFilterState.doc.mjs +1 -1
  807. package/src/Table/useTableFiltering.doc.mjs +1 -1
  808. package/src/Table/useTableGroupedRows.doc.mjs +2 -2
  809. package/src/Table/useTablePagination.doc.mjs +1 -1
  810. package/src/Table/useTableRowExpansion.doc.mjs +57 -4
  811. package/src/Table/useTableRowIndex.doc.mjs +2 -2
  812. package/src/Table/useTableRowStatus.doc.mjs +2 -2
  813. package/src/Table/useTableSelection.doc.mjs +1 -1
  814. package/src/Table/useTableSelectionState.doc.mjs +1 -1
  815. package/src/Table/useTableSortable.doc.mjs +1 -1
  816. package/src/Table/useTableStickyColumns.doc.mjs +1 -1
  817. package/src/Table/useTableTreeData.doc.mjs +10 -1
  818. package/src/Table/useTableTreeState.doc.mjs +1 -1
  819. package/src/Text/Heading.doc.mjs +4 -4
  820. package/src/Text/Text.doc.mjs +4 -4
  821. package/src/Text/Text.test.tsx +42 -0
  822. package/src/Text/Text.tsx +26 -2
  823. package/src/Text/index.ts +32 -6
  824. package/src/TextArea/TextArea.doc.mjs +5 -5
  825. package/src/TextArea/TextArea.test.tsx +112 -7
  826. package/src/TextArea/TextArea.tsx +143 -50
  827. package/src/TextInput/TextInput.doc.mjs +3 -3
  828. package/src/TextInput/TextInput.tsx +1 -1
  829. package/src/Thumbnail/Thumbnail.doc.mjs +2 -2
  830. package/src/Thumbnail/Thumbnail.test.tsx +24 -1
  831. package/src/Thumbnail/Thumbnail.tsx +28 -35
  832. package/src/TimeInput/TimeInput.doc.mjs +3 -3
  833. package/src/TimeInput/TimeInput.tsx +1 -1
  834. package/src/Timestamp/Timestamp.doc.mjs +3 -3
  835. package/src/Timestamp/Timestamp.tsx +1 -1
  836. package/src/Toast/Toast.doc.mjs +3 -3
  837. package/src/Toast/ToastViewport.test.tsx +218 -8
  838. package/src/Toast/ToastViewport.tsx +71 -12
  839. package/src/Toast/useToast.doc.mjs +2 -2
  840. package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
  841. package/src/ToggleButton/ToggleButton.test.tsx +24 -0
  842. package/src/ToggleButton/ToggleButton.tsx +20 -2
  843. package/src/ToggleButton/ToggleButtonGroup.doc.mjs +1 -1
  844. package/src/ToggleButton/ToggleButtonGroup.tsx +3 -6
  845. package/src/Token/Token.doc.mjs +3 -3
  846. package/src/Token/Token.test.tsx +145 -0
  847. package/src/Token/Token.tsx +75 -61
  848. package/src/Token/TokenLink.tsx +107 -0
  849. package/src/Token/index.ts +28 -1
  850. package/src/Tokenizer/Tokenizer.doc.mjs +3 -3
  851. package/src/Tokenizer/Tokenizer.tsx +1 -1
  852. package/src/Toolbar/Toolbar.doc.mjs +3 -3
  853. package/src/Toolbar/Toolbar.tsx +1 -1
  854. package/src/Tooltip/Tooltip.doc.mjs +3 -3
  855. package/src/Tooltip/Tooltip.tsx +1 -1
  856. package/src/Tooltip/useTooltip.doc.mjs +2 -2
  857. package/src/TopNav/TopNav.doc.mjs +3 -3
  858. package/src/TopNav/TopNav.tsx +1 -1
  859. package/src/TopNav/TopNavHeading.doc.mjs +1 -1
  860. package/src/TopNav/TopNavHeading.tsx +7 -8
  861. package/src/TopNav/TopNavItem.doc.mjs +1 -1
  862. package/src/TopNav/TopNavItem.tsx +1 -1
  863. package/src/TopNav/TopNavMegaMenu.doc.mjs +1 -1
  864. package/src/TopNav/TopNavMegaMenu.tsx +32 -6
  865. package/src/TopNav/TopNavMegaMenuFeaturedCard.doc.mjs +1 -1
  866. package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +1 -1
  867. package/src/TopNav/TopNavMegaMenuItem.doc.mjs +1 -1
  868. package/src/TopNav/TopNavMegaMenuItem.tsx +1 -1
  869. package/src/TopNav/TopNavMenu.doc.mjs +1 -1
  870. package/src/TopNav/TopNavMenu.tsx +5 -4
  871. package/src/TreeList/TreeList.doc.mjs +3 -3
  872. package/src/TreeList/TreeList.tsx +1 -1
  873. package/src/TreeList/TreeListBranches.tsx +1 -1
  874. package/src/TreeList/TreeListItem.tsx +4 -3
  875. package/src/TreeList/TreeListTypes.ts +1 -18
  876. package/src/TreeList/index.ts +19 -1
  877. package/src/Typeahead/BaseTypeahead.doc.mjs +1 -1
  878. package/src/Typeahead/BaseTypeahead.tsx +13 -1
  879. package/src/Typeahead/Typeahead.doc.mjs +3 -3
  880. package/src/Typeahead/Typeahead.test.tsx +62 -0
  881. package/src/Typeahead/Typeahead.tsx +7 -1
  882. package/src/Typeahead/TypeaheadItem.doc.mjs +1 -1
  883. package/src/Typeahead/TypeaheadItem.tsx +1 -1
  884. package/src/VStack/VStack.tsx +1 -1
  885. package/src/VisuallyHidden/VisuallyHidden.doc.mjs +3 -3
  886. package/src/VisuallyHidden/VisuallyHidden.tsx +1 -1
  887. package/src/__tests__/babelPluginAddExtensions.test.ts +190 -0
  888. package/src/__tests__/forcedColors.ts +60 -0
  889. package/src/__tests__/inputWidthContract.test.tsx +8 -1
  890. package/src/doc-mjs.d.ts +5 -2
  891. package/src/docPropLiterals.test.ts +1 -1
  892. package/src/docPropReferences.test.ts +1 -1
  893. package/src/hooks/containerReveal.pool.stylex.ts +571 -0
  894. package/src/hooks/index.ts +7 -0
  895. package/src/hooks/useClickableContainer.doc.mjs +2 -2
  896. package/src/hooks/useContainerReveal.doc.mjs +75 -0
  897. package/src/hooks/useContainerReveal.test.tsx +116 -0
  898. package/src/hooks/useContainerReveal.ts +181 -0
  899. package/src/hooks/useEntryAnimation.doc.mjs +2 -2
  900. package/src/hooks/useFocusTrap.doc.mjs +2 -2
  901. package/src/hooks/useGridFocus.doc.mjs +2 -2
  902. package/src/hooks/useHotkeys.doc.mjs +2 -2
  903. package/src/hooks/useImageMode.doc.mjs +2 -2
  904. package/src/hooks/useInputContainer.doc.mjs +2 -2
  905. package/src/hooks/useInputContainer.test.tsx +180 -0
  906. package/src/hooks/useInputContainer.ts +36 -1
  907. package/src/hooks/useInputStatusIcon.test.tsx +59 -0
  908. package/src/hooks/useInputStatusIcon.tsx +12 -1
  909. package/src/hooks/useKeyboardHint.doc.mjs +2 -2
  910. package/src/hooks/useKeyboardHint.test.tsx +22 -0
  911. package/src/hooks/useKeyboardHint.tsx +7 -3
  912. package/src/hooks/useListFocus.doc.mjs +2 -2
  913. package/src/hooks/useMediaQuery.doc.mjs +2 -2
  914. package/src/hooks/useOverflow.doc.mjs +2 -2
  915. package/src/hooks/useScrollLock.doc.mjs +2 -2
  916. package/src/hooks/useScrollOverflow.doc.mjs +2 -2
  917. package/src/hooks/useStreamingText.doc.mjs +2 -2
  918. package/src/hooks/useTreeFocus.doc.mjs +2 -2
  919. package/src/i18n/InternationalizationProvider.doc.mjs +2 -2
  920. package/src/i18n/useTranslator.doc.mjs +2 -2
  921. package/src/index.ts +14 -10
  922. package/src/theme/MediaTheme.doc.mjs +2 -2
  923. package/src/theme/SyntaxTheme.doc.mjs +2 -2
  924. package/src/theme/Theme.doc.mjs +2 -2
  925. package/src/theme/Theme.tsx +3 -7
  926. package/src/theme/defineTheme.ts +11 -1
  927. package/src/theme/expandColorScale.test.ts +144 -0
  928. package/src/theme/expandColorScale.ts +53 -15
  929. package/src/theme/index.ts +11 -9
  930. package/src/theme/themeRegistry.test.ts +59 -0
  931. package/src/theme/themeRegistry.ts +53 -0
  932. package/src/theme/types.ts +14 -13
  933. package/src/theme/useTheme.doc.mjs +2 -2
  934. package/src/theme/useTheme.test.tsx +48 -3
  935. package/src/theme/useTheme.ts +100 -29
  936. package/src/utils/rtlStyles.ts +22 -0
  937. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts +0 -9
  938. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts.map +0 -1
  939. package/dist/Thumbnail/thumbnail.markers.stylex.js +0 -14
  940. package/dist/authoring/doc.d.ts +0 -145
  941. package/dist/authoring/doc.d.ts.map +0 -1
  942. package/dist/authoring/doc.js +0 -100
  943. package/dist/authoring/index.d.ts +0 -29
  944. package/dist/authoring/index.d.ts.map +0 -1
  945. package/dist/authoring/index.js +0 -28
  946. package/dist/authoring/integration.d.ts +0 -35
  947. package/dist/authoring/integration.d.ts.map +0 -1
  948. package/dist/authoring/integration.js +0 -30
  949. package/dist/authoring/template.d.ts +0 -66
  950. package/dist/authoring/template.d.ts.map +0 -1
  951. package/dist/authoring/template.js +0 -55
  952. package/dist/config.d.ts +0 -80
  953. package/dist/config.d.ts.map +0 -1
  954. package/dist/config.js +0 -40
  955. package/dist/docs-types.d.ts +0 -969
  956. package/dist/docs-types.d.ts.map +0 -1
  957. package/dist/docs-types.js +0 -1
  958. package/src/Thumbnail/thumbnail.markers.stylex.ts +0 -12
  959. package/src/authoring/doc.ts +0 -164
  960. package/src/authoring/index.test.ts +0 -52
  961. package/src/authoring/index.ts +0 -50
  962. package/src/authoring/integration.ts +0 -42
  963. package/src/authoring/template.ts +0 -74
  964. package/src/config.test.ts +0 -16
  965. package/src/config.ts +0 -92
  966. package/src/docs-types.ts +0 -1108
@@ -4,6 +4,19 @@ import {describe, it, expect} from 'vitest';
4
4
  import {expandColorScale} from './expandColorScale';
5
5
  import {defineTheme} from './defineTheme';
6
6
  import {generateThemeRules} from './generateThemeRules';
7
+ import {resolveThemeTokens} from './tokens';
8
+ import {colorDefaults} from './tokens.stylex';
9
+
10
+ /** Light-mode half of colorDefaults['--color-accent'] — the hue an accent-less config seeds from. */
11
+ const DEFAULT_ACCENT = '#0064E0';
12
+ const DEFAULT_ACCENT_DARK = '#2694FE';
13
+
14
+ /** The three tokens that only exist when a seed accent is supplied. */
15
+ const ACCENT_TOKENS = [
16
+ '--color-accent',
17
+ '--color-accent-muted',
18
+ '--color-on-accent',
19
+ ] as const;
7
20
 
8
21
  describe('expandColorScale', () => {
9
22
  it('produces all expected token keys', () => {
@@ -86,6 +99,82 @@ describe('expandColorScale', () => {
86
99
  });
87
100
  });
88
101
 
102
+ describe('expandColorScale — neutral-only themes (#2279)', () => {
103
+ it('accent is optional — a config without one expands', () => {
104
+ const tokens = expandColorScale({neutralStyle: 'warm'});
105
+ expect(tokens['--color-background-surface']).toMatch(/^light-dark\(#/);
106
+ });
107
+
108
+ it('expands an empty config', () => {
109
+ const tokens = expandColorScale({});
110
+ expect(tokens['--color-background-surface']).toMatch(/^light-dark\(#/);
111
+ expect(tokens).not.toHaveProperty('--color-accent');
112
+ });
113
+
114
+ it('omits the accent tokens so they fall through to colorDefaults', () => {
115
+ const tokens = expandColorScale({neutralStyle: 'warm'});
116
+ for (const key of ACCENT_TOKENS) {
117
+ expect(tokens).not.toHaveProperty(key);
118
+ }
119
+ // ...and the reference tokens still point at whatever --color-accent resolves to.
120
+ expect(tokens['--color-text-accent']).toBe('var(--color-accent)');
121
+ expect(tokens['--color-icon-accent']).toBe('var(--color-accent)');
122
+ });
123
+
124
+ it('seeds the neutral palettes from the light half of the default accent', () => {
125
+ // Drift guard: the module's DEFAULT_ACCENT_SEED is private, so pin the
126
+ // colorDefaults value it is copied from. Re-coloring the default accent
127
+ // without re-seeding would silently change every neutral-only theme.
128
+ expect(colorDefaults['--color-accent']).toBe(
129
+ `light-dark(${DEFAULT_ACCENT}, ${DEFAULT_ACCENT_DARK})`,
130
+ );
131
+
132
+ const neutralOnly = expandColorScale({neutralStyle: 'warm'});
133
+ const seeded = expandColorScale({
134
+ accent: DEFAULT_ACCENT,
135
+ neutralStyle: 'warm',
136
+ });
137
+ for (const [key, value] of Object.entries(seeded)) {
138
+ if ((ACCENT_TOKENS as ReadonlyArray<string>).includes(key)) {
139
+ continue;
140
+ }
141
+ expect(neutralOnly[key], key).toBe(value);
142
+ }
143
+ });
144
+
145
+ it('honours neutralStyle and contrast without an accent', () => {
146
+ const warm = expandColorScale({neutralStyle: 'warm'});
147
+ const cool = expandColorScale({neutralStyle: 'cool'});
148
+ expect(warm['--color-neutral']).not.toBe(cool['--color-neutral']);
149
+
150
+ const high = expandColorScale({contrast: 'high'});
151
+ const standard = expandColorScale({contrast: 'standard'});
152
+ expect(high['--color-text-primary']).not.toBe(
153
+ standard['--color-text-primary'],
154
+ );
155
+ });
156
+
157
+ it('does not re-color themes that do pass an accent', () => {
158
+ // Seeding from the default hex derives a DIFFERENT accent than the default
159
+ // token holds, so "just default the seed" is not behavior-preserving —
160
+ // omitting the tokens is the only way a neutral-only theme keeps the
161
+ // default accent.
162
+ const tokens = expandColorScale({accent: DEFAULT_ACCENT});
163
+ expect(tokens['--color-accent']).toMatch(/^light-dark\(#/);
164
+ expect(tokens['--color-accent']).not.toBe(colorDefaults['--color-accent']);
165
+ });
166
+
167
+ it('treats an empty accent as supplied, not absent', () => {
168
+ // '' is falsy but not nullish. Only an absent accent is neutral-only; a
169
+ // supplied-but-malformed one keeps its pre-#2279 behavior (the hex parser
170
+ // falls back to black) rather than silently dropping the accent tokens.
171
+ const tokens = expandColorScale({accent: ''});
172
+ for (const key of ACCENT_TOKENS) {
173
+ expect(tokens).toHaveProperty(key);
174
+ }
175
+ });
176
+ });
177
+
89
178
  describe('expandColorScale + defineTheme integration', () => {
90
179
  it('explicit token overrides win over generated values', () => {
91
180
  const theme = defineTheme({
@@ -110,4 +199,59 @@ describe('expandColorScale + defineTheme integration', () => {
110
199
  // The base token itself stays a resolved color pair.
111
200
  expect(css).toMatch(/--color-accent: light-dark\(#/);
112
201
  });
202
+
203
+ it('a neutral-only theme leaves the accent tokens at their defaults (#2279)', () => {
204
+ const theme = defineTheme({
205
+ name: 'test-neutral-only',
206
+ color: {neutralStyle: 'warm'},
207
+ });
208
+ for (const key of ACCENT_TOKENS) {
209
+ expect(theme.tokens).not.toHaveProperty(key);
210
+ }
211
+ // Neutrals are still themed.
212
+ expect(theme.tokens['--color-background-surface']).toMatch(
213
+ /^light-dark\(#/,
214
+ );
215
+
216
+ const css = generateThemeRules(theme).join('\n');
217
+ expect(css).not.toContain('--color-accent:');
218
+ expect(css).not.toContain('--color-on-accent:');
219
+ expect(css).toContain('--color-background-surface:');
220
+ });
221
+
222
+ it('a neutral-only theme resolves accent tokens to the defaults at runtime (#2279)', () => {
223
+ // The CSS side falls through by simply not emitting the tokens. The JS side
224
+ // (useTheme/resolveThemeTokens) has to agree: the omitted tokens come back
225
+ // from tokenDefaults, and the var() references the theme DOES emit resolve
226
+ // against them instead of leaking a literal 'var(--color-accent)'.
227
+ const theme = defineTheme({
228
+ name: 'test-neutral-only-runtime',
229
+ color: {neutralStyle: 'warm'},
230
+ });
231
+
232
+ const light = resolveThemeTokens(theme, {mode: 'light'});
233
+ expect(light['--color-accent']).toBe(DEFAULT_ACCENT);
234
+ expect(light['--color-text-accent']).toBe(DEFAULT_ACCENT);
235
+ expect(light['--color-icon-accent']).toBe(DEFAULT_ACCENT);
236
+
237
+ const dark = resolveThemeTokens(theme, {mode: 'dark'});
238
+ expect(dark['--color-accent']).toBe(DEFAULT_ACCENT_DARK);
239
+ expect(dark['--color-text-accent']).toBe(DEFAULT_ACCENT_DARK);
240
+ });
241
+
242
+ it('an explicit accent token still wins on a neutral-only theme (#2279)', () => {
243
+ // Neutral scale from HCT + a hand-picked accent: the tokens map is the only
244
+ // source of --color-accent, so the reference tokens follow it.
245
+ const theme = defineTheme({
246
+ name: 'test-neutral-only-explicit-accent',
247
+ color: {neutralStyle: 'warm'},
248
+ tokens: {'--color-accent': ['#AA0000', '#FF5555']},
249
+ });
250
+ expect(
251
+ resolveThemeTokens(theme, {mode: 'light'})['--color-text-accent'],
252
+ ).toBe('#AA0000');
253
+
254
+ const css = generateThemeRules(theme).join('\n');
255
+ expect(css).toContain('--color-text-accent: var(--color-accent);');
256
+ });
113
257
  });
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @file expandColorScale.ts
5
- * @input Color scale configuration { accent, neutralStyle?, contrast? }
5
+ * @input Color scale configuration { accent?, neutralStyle?, contrast? }
6
6
  * @output Token overrides for derivable color tokens
7
7
  * @position Theme utility; consumed by defineTheme.ts
8
8
  *
@@ -11,6 +11,10 @@
11
11
  * derive from the accent — status colors, categorical hues, and fixed
12
12
  * tokens (on-dark/on-light) fall through to colorDefaults.
13
13
  *
14
+ * `accent` is optional: a neutral-only config still gets the full neutral
15
+ * ramp (seeded from the default accent's hue) while the accent tokens
16
+ * themselves fall through to colorDefaults, same as the tokens above.
17
+ *
14
18
  * SYNC: When modified, update:
15
19
  * - /packages/core/src/theme/defineTheme.ts
16
20
  */
@@ -31,11 +35,21 @@ import {hexToHct, tonalPalette, hexWithAlpha} from './hct';
31
35
  *
32
36
  * // With customization
33
37
  * { accent: '#B7410E', neutralStyle: 'warm', contrast: 'high' }
38
+ *
39
+ * // Neutral-only — keeps the default accent, themes the neutrals
40
+ * { neutralStyle: 'warm' }
34
41
  * ```
35
42
  */
36
43
  export interface ColorScaleConfig {
37
- /** Seed accent color as hex (#RRGGBB). Everything derives from this. */
38
- accent: string;
44
+ /**
45
+ * Seed accent color as hex (#RRGGBB). Everything derives from this.
46
+ *
47
+ * Optional. When omitted, the neutral palettes are seeded from the
48
+ * default accent's hue and the accent tokens (--color-accent,
49
+ * --color-accent-muted, --color-on-accent) are not generated — they
50
+ * fall through to colorDefaults.
51
+ */
52
+ accent?: string;
39
53
 
40
54
  /**
41
55
  * Neutral tone warmth. Controls how much of the seed's hue bleeds
@@ -69,6 +83,14 @@ const NEUTRAL_VARIANT_CHROMA: Record<string, number> = {
69
83
  neutral: 6,
70
84
  };
71
85
 
86
+ /**
87
+ * Hue source for accent-less configs — the light half of
88
+ * colorDefaults['--color-accent'] (a test guards the two against drift).
89
+ * Only its hue reaches the output: the accent tokens stay ungenerated, so
90
+ * they keep their colorDefaults values rather than this seed's derivation.
91
+ */
92
+ const DEFAULT_ACCENT_SEED = '#0064E0';
93
+
72
94
  // =============================================================================
73
95
  // Computation
74
96
  // =============================================================================
@@ -89,18 +111,23 @@ function accentWithAlpha(alpha: number): string {
89
111
  * --color-on-dark/on-light) are NOT generated — they fall through
90
112
  * to colorDefaults.
91
113
  *
114
+ * Without an `accent`, the accent tokens join that fall-through set: the
115
+ * neutrals are seeded from the default accent's hue, and --color-accent,
116
+ * --color-accent-muted and --color-on-accent keep their colorDefaults values.
117
+ *
92
118
  * @example
93
119
  * ```
94
120
  * const tokens = expandColorScale({ accent: '#0064E0' });
95
121
  * // tokens['--color-accent'] === 'light-dark(#..., #...)'
122
+ *
123
+ * const neutralOnly = expandColorScale({ neutralStyle: 'warm' });
124
+ * // neutralOnly['--color-accent'] === undefined
96
125
  * ```
97
126
  */
98
- export function expandColorScale(
99
- config: ColorScaleConfig,
100
- ): ColorScaleTokens {
127
+ export function expandColorScale(config: ColorScaleConfig): ColorScaleTokens {
101
128
  const {accent, neutralStyle = 'cool', contrast = 'standard'} = config;
102
129
 
103
- const seed = hexToHct(accent);
130
+ const seed = hexToHct(accent ?? DEFAULT_ACCENT_SEED);
104
131
  const seedHue = seed.hue;
105
132
 
106
133
  const primaryChroma = Math.max(seed.chroma, 48);
@@ -119,14 +146,25 @@ export function expandColorScale(
119
146
  const textSecondaryDarkTone = isHigh ? 80 : 70;
120
147
 
121
148
  return {
122
- // Core semantic
123
- '--color-accent': ld(P[40], P[80]),
124
- // Derived accent tokens reference --color-accent instead of baking its
125
- // resolved hex, so a scoped override of the base token re-accents the
126
- // whole subtree at runtime. --color-on-accent stays baked: it is a
127
- // contrast computation against the accent, which CSS cannot express.
128
- '--color-accent-muted': ld(accentWithAlpha(0.2), accentWithAlpha(0.25)),
129
- '--color-on-accent': ld(P[100], P[20]),
149
+ // Core semantic — only with a seed accent. Without one these fall through
150
+ // to colorDefaults, whose --color-accent is NOT what the default seed
151
+ // derives: defaulting the seed instead of omitting the tokens would
152
+ // recolor every neutral-only theme. Nullish and not truthy, matching the
153
+ // seed above, so a supplied-but-malformed accent keeps its old behavior.
154
+ ...(accent != null
155
+ ? {
156
+ '--color-accent': ld(P[40], P[80]),
157
+ // Derived accent tokens reference --color-accent instead of baking its
158
+ // resolved hex, so a scoped override of the base token re-accents the
159
+ // whole subtree at runtime. --color-on-accent stays baked: it is a
160
+ // contrast computation against the accent, which CSS cannot express.
161
+ '--color-accent-muted': ld(
162
+ accentWithAlpha(0.2),
163
+ accentWithAlpha(0.25),
164
+ ),
165
+ '--color-on-accent': ld(P[100], P[20]),
166
+ }
167
+ : null),
130
168
  '--color-neutral': ld(hexWithAlpha(N[10], 0.1), hexWithAlpha(N[90], 0.2)),
131
169
  '--color-background-surface': ld(N[99], N[10]),
132
170
  '--color-background-body': ld(N[95], N[5]),
@@ -30,6 +30,12 @@ export {
30
30
  isDefinedTheme,
31
31
  tokenDefaults,
32
32
  } from './defineTheme';
33
+ export {
34
+ registerTheme,
35
+ getRegisteredTheme,
36
+ getRegisteredThemes,
37
+ resetThemes,
38
+ } from './themeRegistry';
33
39
  export type {
34
40
  DefineThemeInput,
35
41
  DefinedTheme,
@@ -71,19 +77,13 @@ export {expandTypeScale, generateTypeScaleComponents} from './expandTypeScale';
71
77
  export type {TypeScaleConfig, TypeScaleTokens} from './expandTypeScale';
72
78
 
73
79
  export {expandRadiusScale} from './expandRadiusScale';
74
- export type {
75
- RadiusScaleConfig,
76
- RadiusScaleTokens,
77
- } from './expandRadiusScale';
80
+ export type {RadiusScaleConfig, RadiusScaleTokens} from './expandRadiusScale';
78
81
 
79
82
  export {expandColorScale} from './expandColorScale';
80
83
  export type {ColorScaleConfig, ColorScaleTokens} from './expandColorScale';
81
84
 
82
85
  export {expandMotionScale} from './expandMotionScale';
83
- export type {
84
- MotionScaleConfig,
85
- MotionScaleTokens,
86
- } from './expandMotionScale';
86
+ export type {MotionScaleConfig, MotionScaleTokens} from './expandMotionScale';
87
87
 
88
88
  // Export token defaults and vars for use in custom components and themes
89
89
  export {
@@ -132,7 +132,7 @@ export type {
132
132
  TypeScaleVarName,
133
133
  } from './tokens.stylex';
134
134
 
135
- export {useTheme, ThemeContext} from './useTheme';
135
+ export {useTheme, useThemeName, ThemeContext} from './useTheme';
136
136
  export type {UseThemeReturn, ThemeContextValue} from './useTheme';
137
137
  export {
138
138
  resolveThemeToken,
@@ -146,6 +146,7 @@ export type {
146
146
  ResolvedThemeMode,
147
147
  } from './tokens';
148
148
 
149
+ export type {TextColorMap} from '../Text';
149
150
  export type {
150
151
  ThemeMode,
151
152
  HeadingTag,
@@ -155,6 +156,7 @@ export type {
155
156
  TextSize,
156
157
  TextWeight,
157
158
  TextColor,
159
+ BuiltinTextColor,
158
160
  TypographyConfig,
159
161
  TypographyRole,
160
162
  FontWeight,
@@ -0,0 +1,59 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ import {describe, it, expect, beforeEach} from 'vitest';
4
+ import {defineTheme} from './defineTheme';
5
+ import {
6
+ getRegisteredTheme,
7
+ getRegisteredThemes,
8
+ registerTheme,
9
+ resetThemes,
10
+ } from './themeRegistry';
11
+
12
+ describe('themeRegistry', () => {
13
+ beforeEach(() => {
14
+ resetThemes();
15
+ });
16
+
17
+ it('registers and resolves themes by name', () => {
18
+ const theme = defineTheme({
19
+ name: 'brand',
20
+ tokens: {'--color-accent': '#123456'},
21
+ });
22
+
23
+ expect(getRegisteredTheme('brand')).toBe(theme);
24
+ });
25
+
26
+ it('returns null for empty or unknown names', () => {
27
+ expect(getRegisteredTheme(null)).toBeNull();
28
+ expect(getRegisteredTheme('')).toBeNull();
29
+ expect(getRegisteredTheme('missing')).toBeNull();
30
+ });
31
+
32
+ it('replaces an existing theme with the same name', () => {
33
+ const first = defineTheme({name: 'brand'});
34
+ const second = defineTheme({
35
+ name: 'brand',
36
+ tokens: {'--color-accent': '#654321'},
37
+ });
38
+
39
+ expect(getRegisteredTheme('brand')).not.toBe(first);
40
+ expect(getRegisteredTheme('brand')).toBe(second);
41
+ });
42
+
43
+ it('returns a defensive snapshot of registered themes', () => {
44
+ const theme = defineTheme({name: 'brand'});
45
+ const snapshot = getRegisteredThemes();
46
+
47
+ expect(snapshot.get('brand')).toBe(theme);
48
+ expect(snapshot).not.toBe(getRegisteredThemes());
49
+ });
50
+
51
+ it('allows explicit registration of built theme objects', () => {
52
+ const theme = defineTheme({name: 'built'});
53
+ resetThemes();
54
+
55
+ registerTheme(theme);
56
+
57
+ expect(getRegisteredTheme('built')).toBe(theme);
58
+ });
59
+ });
@@ -0,0 +1,53 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file themeRegistry.ts
5
+ * @input DefinedTheme objects from defineTheme() or built theme packages
6
+ * @output Exports registerTheme, getRegisteredTheme, getRegisteredThemes, resetThemes
7
+ * @position Server-safe theme registry for theme-name-based SSR resolution
8
+ *
9
+ * This module has NO 'use client' directive. It is importable from SSR/RSC and
10
+ * lets code resolve theme data by stable theme name without React context.
11
+ */
12
+
13
+ import type {DefinedTheme} from './defineTheme';
14
+
15
+ const themeRegistry = new Map<string, DefinedTheme>();
16
+
17
+ /**
18
+ * Register a defined theme under its `name`.
19
+ *
20
+ * Registration is idempotent and replaces any previous theme with the same
21
+ * name. Call from app initialization, theme packages, or <Theme> to make the
22
+ * theme available to SSR-safe resolvers by name.
23
+ */
24
+ export function registerTheme(theme: DefinedTheme): void {
25
+ themeRegistry.set(theme.name, theme);
26
+ }
27
+
28
+ /**
29
+ * Return a previously registered theme by name.
30
+ */
31
+ export function getRegisteredTheme(
32
+ name: string | null | undefined,
33
+ ): DefinedTheme | null {
34
+ if (name == null || name === '') {
35
+ return null;
36
+ }
37
+ return themeRegistry.get(name) ?? null;
38
+ }
39
+
40
+ /**
41
+ * Return all registered themes keyed by theme name.
42
+ */
43
+ export function getRegisteredThemes(): ReadonlyMap<string, DefinedTheme> {
44
+ return new Map(themeRegistry);
45
+ }
46
+
47
+ /**
48
+ * Reset the theme registry. For testing only.
49
+ * @internal
50
+ */
51
+ export function resetThemes(): void {
52
+ themeRegistry.clear();
53
+ }
@@ -15,11 +15,7 @@
15
15
  * Raw CSS values (e.g. '800') are accepted as an escape hatch.
16
16
  */
17
17
  export type FontWeight =
18
- | 'normal'
19
- | 'medium'
20
- | 'semibold'
21
- | 'bold'
22
- | (string & {});
18
+ 'normal' | 'medium' | 'semibold' | 'bold' | (string & {});
23
19
 
24
20
  /**
25
21
  * A typography role declaration (body, heading, or code).
@@ -152,18 +148,23 @@ export type TextSize =
152
148
  /**
153
149
  * Font weight variants for Text/Heading
154
150
  */
151
+ import type {TextColorMap} from '../Text';
152
+
155
153
  export type TextWeight = 'normal' | 'medium' | 'semibold' | 'bold';
156
154
 
157
155
  /**
158
- * Text color variants for Text/Heading
156
+ * Built-in text color variants for Text/Heading. The concrete keys that ship
157
+ * with the design system, independent of theme augmentation — used where a
158
+ * value must be one of the real StyleX color styles (see `resolveStyleColor`).
159
159
  */
160
- export type TextColor =
161
- | 'primary'
162
- | 'secondary'
163
- | 'disabled'
164
- | 'placeholder'
165
- | 'accent'
166
- | 'inherit';
160
+ export type BuiltinTextColor =
161
+ 'primary' | 'secondary' | 'disabled' | 'placeholder' | 'accent' | 'inherit';
162
+
163
+ /**
164
+ * Text color variants for Text/Heading. Extensible via module augmentation of
165
+ * `TextColorMap`.
166
+ */
167
+ export type TextColor = keyof TextColorMap;
167
168
 
168
169
  /**
169
170
  * Display mode for Text/Heading
@@ -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: 'useTheme',
6
6
  displayName: 'useTheme',
@@ -87,7 +87,7 @@ export const docs = {
87
87
  importPath: '@astryxdesign/core/theme',
88
88
  };
89
89
 
90
- /** @type {import('../docs-types').HookTranslationDoc} */
90
+ /** @type {import('@astryxdesign/cli/authoring').HookTranslationDoc} */
91
91
  export const docsDense = {
92
92
  description:
93
93
  'Programmatic access to theme tokens for SVG/canvas/charts needing JS values instead of CSS vars.',
@@ -5,6 +5,7 @@ import {render, renderHook, act, waitFor} from '@testing-library/react';
5
5
  import React from 'react';
6
6
  import {Theme} from './Theme';
7
7
  import {defineTheme} from './defineTheme';
8
+ import {resetThemes} from './themeRegistry';
8
9
  import {useTheme} from './useTheme';
9
10
  import {resolveThemeTokens} from './tokens';
10
11
 
@@ -152,6 +153,8 @@ describe('useTheme', () => {
152
153
  // straight to OS preference (see Theme.tsx's useRootThemeSync).
153
154
  describe('useTheme mode resolution without a ThemeContext ancestor', () => {
154
155
  afterEach(async () => {
156
+ resetThemes();
157
+ document.documentElement.removeAttribute('data-astryx-theme');
155
158
  // The hook from each `it` below is still mounted and subscribed to the
156
159
  // shared MutationObserver when this runs (RTL's own cleanup — which
157
160
  // unmounts it — is registered after this file's afterEach), so removing
@@ -184,6 +187,46 @@ describe('useTheme mode resolution without a ThemeContext ancestor', () => {
184
187
 
185
188
  await waitFor(() => expect(result.current.mode).toBe('dark'));
186
189
  });
190
+
191
+ it('resolves registered theme tokens from <html data-astryx-theme> when set', () => {
192
+ defineTheme({
193
+ name: 'root-brand',
194
+ tokens: {'--color-accent': ['#010203', '#AABBCC']},
195
+ });
196
+ document.documentElement.setAttribute('data-astryx-theme', 'root-brand');
197
+ document.documentElement.setAttribute('data-theme', 'dark');
198
+
199
+ const {result} = renderHook(() => useTheme());
200
+
201
+ expect(result.current.name).toBe('root-brand');
202
+ expect(result.current.token('--color-accent')).toBe('#AABBCC');
203
+ });
204
+
205
+ it('stays live when <html data-astryx-theme> changes after mount', async () => {
206
+ defineTheme({
207
+ name: 'first-brand',
208
+ tokens: {'--color-accent': '#111111'},
209
+ });
210
+ defineTheme({
211
+ name: 'second-brand',
212
+ tokens: {'--color-accent': '#222222'},
213
+ });
214
+ document.documentElement.setAttribute('data-astryx-theme', 'first-brand');
215
+
216
+ const {result} = renderHook(() => useTheme());
217
+ expect(result.current.name).toBe('first-brand');
218
+ expect(result.current.token('--color-accent')).toBe('#111111');
219
+
220
+ act(() => {
221
+ document.documentElement.setAttribute(
222
+ 'data-astryx-theme',
223
+ 'second-brand',
224
+ );
225
+ });
226
+
227
+ await waitFor(() => expect(result.current.name).toBe('second-brand'));
228
+ expect(result.current.token('--color-accent')).toBe('#222222');
229
+ });
187
230
  });
188
231
 
189
232
  // Covers the singleton MutationObserver + no-op gating in useRootThemeModeAttr:
@@ -193,7 +236,9 @@ describe('useTheme mode resolution without a ThemeContext ancestor', () => {
193
236
  // zero as they unmount.
194
237
  describe('useTheme root-attribute observer lifecycle', () => {
195
238
  afterEach(() => {
239
+ resetThemes();
196
240
  document.documentElement.removeAttribute('data-theme');
241
+ document.documentElement.removeAttribute('data-astryx-theme');
197
242
  // vi.stubGlobal'd MutationObserver stubs below are torn down here even if
198
243
  // a test fails partway through, instead of relying on a manual restore
199
244
  // line at the end of each test that a mid-test throw would skip.
@@ -237,13 +282,13 @@ describe('useTheme root-attribute observer lifecycle', () => {
237
282
  const first = renderHook(() => useTheme());
238
283
  const second = renderHook(() => useTheme());
239
284
 
240
- expect(ObserverSpy).toHaveBeenCalledTimes(1);
241
- expect(observe).toHaveBeenCalledTimes(1);
285
+ expect(ObserverSpy).toHaveBeenCalledTimes(2);
286
+ expect(observe).toHaveBeenCalledTimes(2);
242
287
 
243
288
  first.unmount();
244
289
  expect(disconnect).not.toHaveBeenCalled();
245
290
 
246
291
  second.unmount();
247
- expect(disconnect).toHaveBeenCalledTimes(1);
292
+ expect(disconnect).toHaveBeenCalledTimes(2);
248
293
  });
249
294
  });