@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
@@ -20,7 +20,7 @@
20
20
  * - /packages/core/src/DropdownMenu/DropdownMenu.test.tsx
21
21
  * - /packages/core/src/DropdownMenu/index.ts
22
22
  * - /apps/storybook/stories/DropdownMenu.stories.tsx
23
- * - /packages/cli/templates/blocks/components/DropdownMenu/ (showcase blocks)
23
+ * - /packages/cli/assets/templates/blocks/components/DropdownMenu/ (showcase blocks)
24
24
  */
25
25
 
26
26
  import {useCallback, type PointerEvent, type ReactNode} from 'react';
@@ -62,6 +62,15 @@ const menuItemStyles = stylex.create({
62
62
  opacity: 0.5,
63
63
  cursor: 'not-allowed',
64
64
  },
65
+ destructive: {
66
+ // Only recolor the text/icon; the hover / focus background stays the shared
67
+ // neutral overlay from `root` so the hover state matches every other menu
68
+ // item. The root color covers the label/description via the Item custom
69
+ // properties (and any bare text). Semantic error tokens keep it theme-aware.
70
+ color: colorVars['--color-error'],
71
+ '--_item-label-color': colorVars['--color-error'],
72
+ '--_item-description-color': colorVars['--color-error'],
73
+ },
65
74
  });
66
75
 
67
76
  const itemSizeStyles = stylex.create({
@@ -91,6 +100,11 @@ export interface DropdownMenuItemProps extends Pick<
91
100
  isDisabled?: boolean;
92
101
  /** Additional content to render after the label/description. */
93
102
  endContent?: ReactNode;
103
+ /**
104
+ * Visual variant. `'destructive'` renders the label, description, and icon in
105
+ * the error color for dangerous actions (e.g. Delete). @default 'default'
106
+ */
107
+ variant?: 'default' | 'destructive';
94
108
  }
95
109
 
96
110
  /**
@@ -103,7 +117,7 @@ export interface DropdownMenuItemProps extends Pick<
103
117
  * ```
104
118
  * <DropdownMenu button={{ label: 'Actions' }}>
105
119
  * <DropdownMenuItem icon={PencilIcon} label="Edit" onClick={handleEdit} />
106
- * <DropdownMenuItem label="Delete" endContent={<Badge label="⌘D" />} onClick={handleDelete} />
120
+ * <DropdownMenuItem label="Delete" variant="destructive" onClick={handleDelete} />
107
121
  * </DropdownMenu>
108
122
  * ```
109
123
  */
@@ -114,6 +128,7 @@ export function DropdownMenuItem({
114
128
  onClick,
115
129
  isDisabled = false,
116
130
  endContent,
131
+ variant = 'default',
117
132
  xstyle,
118
133
  className,
119
134
  style,
@@ -134,6 +149,8 @@ export function DropdownMenuItem({
134
149
  [isDisabled],
135
150
  );
136
151
 
152
+ const isDestructive = variant === 'destructive';
153
+
137
154
  return (
138
155
  <Item
139
156
  role="menuitem"
@@ -141,7 +158,10 @@ export function DropdownMenuItem({
141
158
  onPointerMove={handlePointerMove}
142
159
  startContent={
143
160
  icon
144
- ? renderIconSlot(icon, {size: 'sm', color: 'secondary'})
161
+ ? renderIconSlot(icon, {
162
+ size: 'sm',
163
+ color: isDestructive ? 'error' : 'secondary',
164
+ })
145
165
  : undefined
146
166
  }
147
167
  label={label}
@@ -152,13 +172,20 @@ export function DropdownMenuItem({
152
172
  xstyle={[
153
173
  menuItemStyles.root,
154
174
  itemSizeStyles[menuSize],
175
+ isDestructive && menuItemStyles.destructive,
155
176
  isDisabled && menuItemStyles.disabled,
156
177
  xstyle,
157
178
  ]}
158
- {...mergeProps(themeProps('dropdown-menu-item', {size: menuSize}), {
159
- className,
160
- style,
161
- })}
179
+ {...mergeProps(
180
+ themeProps('dropdown-menu-item', {
181
+ size: menuSize,
182
+ variant: isDestructive ? 'destructive' : null,
183
+ }),
184
+ {
185
+ className,
186
+ style,
187
+ },
188
+ )}
162
189
  />
163
190
  );
164
191
  }
@@ -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: 'DropdownMenuRadioGroup',
@@ -22,16 +22,10 @@ export const docs = {
22
22
  description: 'Callback fired when the selected value changes.',
23
23
  },
24
24
  {
25
- name: 'aria-label',
25
+ name: 'label',
26
26
  type: 'string',
27
27
  description:
28
- 'Accessible label for the group. Required (or aria-labelledby) so screen readers announce the radios as a named set, e.g. "Sort by".',
29
- },
30
- {
31
- name: 'aria-labelledby',
32
- type: 'string',
33
- description:
34
- 'The id of an element that labels the group, as an alternative to aria-label.',
28
+ 'Accessible name for the group, applied as aria-label so screen readers announce the radios as a named set, e.g. "Sort by". Required. Pass aria-labelledby (via base props) instead when the name already exists as a visible element.',
35
29
  },
36
30
  {
37
31
  name: 'hasCloseOnSelect',
@@ -57,8 +51,7 @@ export const docsZh = {
57
51
  propDescriptions: {
58
52
  value: '组中当前选中的值。尚无选中项时传 undefined。',
59
53
  onChange: '所选值变化时触发的回调。',
60
- 'aria-label': '组的无障碍标签。必需(或 aria-labelledby),以便屏幕阅读器将单选项作为命名集合朗读。',
61
- 'aria-labelledby': '标记该组的元素 id,作为 aria-label 的替代。',
54
+ label: '组的无障碍名称,作为 aria-label 应用,以便屏幕阅读器将单选项作为命名集合朗读,例如“Sort by”。必需。当名称已作为可见元素存在时,可改用 aria-labelledby(通过基础属性)。',
62
55
  hasCloseOnSelect: '选择某值是否关闭菜单。默认关闭。',
63
56
  children: '组成该组的 DropdownMenuRadioItem。',
64
57
  },
@@ -72,8 +65,7 @@ export const docsDense = {
72
65
  propDescriptions: {
73
66
  value: 'selected value (undefined = none)',
74
67
  onChange: 'fired when selected value changes',
75
- 'aria-label': 'accessible group name (or aria-labelledby); required',
76
- 'aria-labelledby': 'id of labelling element (alt to aria-label)',
68
+ label: 'accessible group name (applied as aria-label); required',
77
69
  hasCloseOnSelect: 'close menu on select (default true)',
78
70
  children: 'the DropdownMenuRadioItems',
79
71
  },
@@ -49,16 +49,13 @@ export interface DropdownMenuRadioGroupProps extends Omit<
49
49
  */
50
50
  onChange: (value: string) => void;
51
51
  /**
52
- * Accessible label for the group. Required (together with `aria-labelledby`,
53
- * one of the two) so screen readers announce the radios as a named set,
54
- * e.g. "Sort by".
52
+ * Accessible name for the group, announced by screen readers so the radios
53
+ * read as a named set (e.g. "Sort by"). Applied as the group's `aria-label`.
54
+ * Required -- an unnamed radio group is an accessibility defect. Pass
55
+ * `aria-labelledby` (via base props) instead if the name already exists as a
56
+ * visible element on the page.
55
57
  */
56
- 'aria-label'?: string;
57
- /**
58
- * The id of an element that labels the group, as an alternative to
59
- * `aria-label`.
60
- */
61
- 'aria-labelledby'?: string;
58
+ label: string;
62
59
  /**
63
60
  * Whether selecting a value closes the menu. Radio items default to closing
64
61
  * on selection (a single-choice commit), unlike checkbox items which stay
@@ -82,7 +79,7 @@ export interface DropdownMenuRadioGroupProps extends Omit<
82
79
  * DropdownMenuRadioItem,
83
80
  * } from '@astryxdesign/core/DropdownMenu';
84
81
  * <DropdownMenu button={{label: 'Sort'}}>
85
- * <DropdownMenuRadioGroup value={sort} onChange={setSort} aria-label="Sort by">
82
+ * <DropdownMenuRadioGroup value={sort} onChange={setSort} label="Sort by">
86
83
  * <DropdownMenuRadioItem value="newest" label="Newest" />
87
84
  * <DropdownMenuRadioItem value="oldest" label="Oldest" />
88
85
  * </DropdownMenuRadioGroup>
@@ -92,6 +89,7 @@ export interface DropdownMenuRadioGroupProps extends Omit<
92
89
  export function DropdownMenuRadioGroup({
93
90
  value,
94
91
  onChange,
92
+ label,
95
93
  hasCloseOnSelect = true,
96
94
  children,
97
95
  className,
@@ -107,6 +105,7 @@ export function DropdownMenuRadioGroup({
107
105
  <div
108
106
  {...rest}
109
107
  role="group"
108
+ aria-label={label}
110
109
  {...mergeProps(stylex.props(styles.group), {className, style})}>
111
110
  <DropdownMenuRadioGroupContext value={contextValue}>
112
111
  {children}
@@ -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: 'DropdownMenuRadioItem',
@@ -145,7 +145,7 @@ export interface DropdownMenuRadioItemProps extends Omit<
145
145
  *
146
146
  * @example
147
147
  * ```
148
- * <DropdownMenuRadioGroup value={sort} onChange={setSort} aria-label="Sort by">
148
+ * <DropdownMenuRadioGroup value={sort} onChange={setSort} label="Sort by">
149
149
  * <DropdownMenuRadioItem value="newest" label="Newest" />
150
150
  * <DropdownMenuRadioItem value="oldest" label="Oldest" icon="clock" />
151
151
  * </DropdownMenuRadioGroup>
@@ -212,7 +212,16 @@ export function DropdownMenuRadioItem({
212
212
  ),
213
213
  )}>
214
214
  {isChecked && (
215
- <span {...stylex.props(styles.dot, dotSizeStyles[controlSize])} />
215
+ <span
216
+ {...mergeProps(
217
+ themeProps('dropdown-menu-radio-dot', {
218
+ size: controlSize,
219
+ checked: 'checked',
220
+ disabled: isDisabled ? 'disabled' : null,
221
+ }),
222
+ stylex.props(styles.dot, dotSizeStyles[controlSize]),
223
+ )}
224
+ />
216
225
  )}
217
226
  </span>
218
227
  }
@@ -78,6 +78,37 @@ describe('DropdownMenuCheckboxItem', () => {
78
78
  expect(onChangeSpy).toHaveBeenCalledWith(true);
79
79
  });
80
80
 
81
+ it('keeps the composed checkbox decorative (row is the only announced control)', async () => {
82
+ const user = userEvent.setup();
83
+ render(
84
+ <DropdownMenu button={{label: 'View'}}>
85
+ <DropdownMenuCheckboxItem label="Show archived" value={true} />
86
+ </DropdownMenu>,
87
+ );
88
+ await user.click(screen.getByRole('button', {name: /View/}));
89
+
90
+ // The row owns role="menuitemcheckbox" — it is the single such control.
91
+ expect(
92
+ screen.getAllByRole('menuitemcheckbox', {hidden: true}),
93
+ ).toHaveLength(1);
94
+
95
+ // The composed CheckboxInput is present in the DOM but sits inside an
96
+ // `aria-hidden` + `inert` subtree: it contributes nothing to the row's
97
+ // accessible name and its native <input> is out of the tab order and the
98
+ // accessibility tree, so it is not a second announced/focusable control.
99
+ // (Browsers enforce inert; jsdom does not model its a11y removal, so this
100
+ // asserts the aria-hidden/inert boundary directly rather than via role.)
101
+ const row = screen.getByRole('menuitemcheckbox', {
102
+ name: /Show archived/,
103
+ hidden: true,
104
+ });
105
+ const input = row.querySelector('input[type="checkbox"]');
106
+ expect(input).not.toBeNull();
107
+ const marker = input?.closest('[inert]');
108
+ expect(marker).not.toBeNull();
109
+ expect(marker).toHaveAttribute('aria-hidden', 'true');
110
+ });
111
+
81
112
  it('does not toggle when disabled', async () => {
82
113
  const user = userEvent.setup();
83
114
  const onChangeSpy = vi.fn();
@@ -110,7 +141,7 @@ describe('DropdownMenuRadioGroup / RadioItem', () => {
110
141
  <DropdownMenuRadioGroup
111
142
  value="newest"
112
143
  onChange={() => {}}
113
- aria-label="Sort by">
144
+ label="Sort by">
114
145
  <DropdownMenuRadioItem value="newest" label="Newest" />
115
146
  <DropdownMenuRadioItem value="oldest" label="Oldest" />
116
147
  </DropdownMenuRadioGroup>
@@ -128,6 +159,39 @@ describe('DropdownMenuRadioGroup / RadioItem', () => {
128
159
  ).toBeInTheDocument();
129
160
  });
130
161
 
162
+ it('exposes a themeable slot on the checked radio dot', async () => {
163
+ const user = userEvent.setup();
164
+ render(
165
+ <DropdownMenu button={{label: 'Sort'}}>
166
+ <DropdownMenuRadioGroup
167
+ value="newest"
168
+ onChange={() => {}}
169
+ label="Sort by">
170
+ <DropdownMenuRadioItem value="newest" label="Newest" />
171
+ <DropdownMenuRadioItem value="oldest" label="Oldest" />
172
+ </DropdownMenuRadioGroup>
173
+ </DropdownMenu>,
174
+ );
175
+ await user.click(screen.getByRole('button', {name: /Sort/}));
176
+ const checked = screen.getByRole('menuitemradio', {
177
+ name: 'Newest',
178
+ hidden: true,
179
+ });
180
+ const dot = checked.querySelector('.astryx-dropdown-menu-radio-dot');
181
+ expect(dot).toBeInTheDocument();
182
+ // Mirrors the radio container's visual props/states for consistent theming.
183
+ expect(dot).toHaveAttribute('data-size', 'md');
184
+ expect(dot).toHaveAttribute('data-checked', 'checked');
185
+ // The unchecked radio has no dot, so no dot slot either.
186
+ const unchecked = screen.getByRole('menuitemradio', {
187
+ name: 'Oldest',
188
+ hidden: true,
189
+ });
190
+ expect(
191
+ unchecked.querySelector('.astryx-dropdown-menu-radio-dot'),
192
+ ).not.toBeInTheDocument();
193
+ });
194
+
131
195
  it('calls onChange with the selected value', async () => {
132
196
  const user = userEvent.setup();
133
197
  const onChange = vi.fn();
@@ -136,7 +200,7 @@ describe('DropdownMenuRadioGroup / RadioItem', () => {
136
200
  <DropdownMenuRadioGroup
137
201
  value="newest"
138
202
  onChange={onChange}
139
- aria-label="Sort by">
203
+ label="Sort by">
140
204
  <DropdownMenuRadioItem value="newest" label="Newest" />
141
205
  <DropdownMenuRadioItem value="oldest" label="Oldest" />
142
206
  </DropdownMenuRadioGroup>
@@ -149,6 +213,24 @@ describe('DropdownMenuRadioGroup / RadioItem', () => {
149
213
  expect(onChange).toHaveBeenCalledWith('oldest');
150
214
  });
151
215
 
216
+ it('names the group from the required label prop', async () => {
217
+ const user = userEvent.setup();
218
+ render(
219
+ <DropdownMenu button={{label: 'Sort'}}>
220
+ <DropdownMenuRadioGroup
221
+ value="newest"
222
+ onChange={() => {}}
223
+ label="Sort by">
224
+ <DropdownMenuRadioItem value="newest" label="Newest" />
225
+ </DropdownMenuRadioGroup>
226
+ </DropdownMenu>,
227
+ );
228
+ await user.click(screen.getByRole('button', {name: /Sort/}));
229
+ expect(
230
+ screen.getByRole('group', {name: 'Sort by', hidden: true}),
231
+ ).toBeInTheDocument();
232
+ });
233
+
152
234
  it('throws when a radio item is used outside a group', () => {
153
235
  const spy = vi.spyOn(console, 'error').mockImplementation(() => {});
154
236
  expect(() =>
@@ -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: 'DropdownMenuSubMenu',
@@ -8,7 +8,7 @@
8
8
 
9
9
  import {describe, it, expect, vi, beforeEach} from 'vitest';
10
10
  import {useState} from 'react';
11
- import {render, screen, waitFor} from '@testing-library/react';
11
+ import {render, screen, waitFor, fireEvent} from '@testing-library/react';
12
12
  import userEvent from '@testing-library/user-event';
13
13
  import {DropdownMenu} from './DropdownMenu';
14
14
  import {DropdownMenuItem} from './DropdownMenuItem';
@@ -510,6 +510,34 @@ describe('DropdownMenuSubMenu accessibility (WCAG 2.2 / APG)', () => {
510
510
  expect(onPick).toHaveBeenCalledWith('data');
511
511
  });
512
512
 
513
+ // Regression: hovering the submenu trigger while a sibling item still holds
514
+ // focus must move the single focus-driven highlight onto the trigger — not
515
+ // leave two items highlighted at once (the trigger via :hover, the sibling
516
+ // via :focus). Mirrors DropdownMenuItem's hover-focus behavior.
517
+ it('moves focus to the submenu trigger on hover, keeping a single highlight', async () => {
518
+ const user = userEvent.setup();
519
+ render(<MoveMenu />);
520
+ await user.click(screen.getByRole('button', {name: /Actions/}));
521
+
522
+ const rename = screen.getByRole('menuitem', {
523
+ name: 'Rename',
524
+ hidden: true,
525
+ });
526
+ const trigger = screen.getByRole('menuitem', {
527
+ name: /Move to/,
528
+ hidden: true,
529
+ });
530
+
531
+ rename.focus();
532
+ expect(rename).toHaveFocus();
533
+
534
+ // A mouse hover over the submenu trigger moves focus onto it, so the single
535
+ // focus-driven highlight follows the pointer instead of leaving two.
536
+ fireEvent.pointerMove(trigger, {pointerType: 'mouse'});
537
+ expect(trigger).toHaveFocus();
538
+ expect(rename).not.toHaveFocus();
539
+ });
540
+
513
541
  // 1.4.13 Content on Hover or Focus: the flyout stays open while the pointer
514
542
  // is over it (moving onto the flyout must not dismiss it).
515
543
  it('keeps the flyout open while the pointer is over it', async () => {
@@ -633,3 +661,20 @@ describe('DropdownMenuSubMenu accessibility (WCAG 2.2 / APG)', () => {
633
661
  });
634
662
  });
635
663
  });
664
+
665
+ describe('DropdownMenuSubMenu theming slots', () => {
666
+ it('exposes a themeable slot on the submenu indicator icon', async () => {
667
+ const user = userEvent.setup();
668
+ render(<MoveMenu />);
669
+ await user.click(screen.getByRole('button', {name: /Actions/}));
670
+ const trigger = screen.getByRole('menuitem', {
671
+ name: /Move to/,
672
+ hidden: true,
673
+ });
674
+ // The indicator-icon slot wraps the chevron affordance inside the trigger
675
+ // row.
676
+ expect(
677
+ trigger.querySelector('.astryx-dropdown-menu-indicator-icon'),
678
+ ).toBeInTheDocument();
679
+ });
680
+ });
@@ -35,7 +35,7 @@
35
35
  * - /packages/core/src/DropdownMenu/DropdownMenuSubMenu.test.tsx
36
36
  * - /packages/core/src/DropdownMenu/index.ts
37
37
  * - /apps/storybook/stories/DropdownMenu.stories.tsx
38
- * - /packages/cli/templates/blocks/components/DropdownMenu/ (showcase blocks)
38
+ * - /packages/cli/assets/templates/blocks/components/DropdownMenu/ (showcase blocks)
39
39
  */
40
40
 
41
41
  import React, {
@@ -44,6 +44,7 @@ import React, {
44
44
  useMemo,
45
45
  useRef,
46
46
  useState,
47
+ type PointerEvent,
47
48
  type ReactNode,
48
49
  } from 'react';
49
50
  import * as stylex from '@stylexjs/stylex';
@@ -78,6 +79,7 @@ import {
78
79
  useDropdownMenuContext,
79
80
  type DropdownMenuContextValue,
80
81
  } from './DropdownMenuContext';
82
+ import {focusMenuItemOnHover} from './menuItemHover';
81
83
 
82
84
  const triggerStyles = stylex.create({
83
85
  root: {
@@ -93,11 +95,6 @@ const triggerStyles = stylex.create({
93
95
  default: 'transparent',
94
96
  ':focus': colorVars['--color-overlay-hover'],
95
97
  },
96
- ':hover': {
97
- '@media (hover: hover)': {
98
- backgroundColor: colorVars['--color-overlay-hover'],
99
- },
100
- },
101
98
  border: 'none',
102
99
  cursor: 'pointer',
103
100
  textAlign: 'start',
@@ -393,6 +390,16 @@ export function DropdownMenuSubMenu(
393
390
  [isDisabled, open],
394
391
  );
395
392
 
393
+ // Move the single focus-driven highlight onto the trigger as the pointer
394
+ // enters it, so a sibling item that still holds focus doesn't stay
395
+ // highlighted alongside the hovered trigger. This is separate from the
396
+ // hover-open intent (onMouseEnter/onMouseLeave) — the flyout still opens on
397
+ // the hover delay; this only keeps the highlight single.
398
+ const handlePointerMove = useCallback(
399
+ (e: PointerEvent<HTMLElement>) => focusMenuItemOnHover(e, isDisabled),
400
+ [isDisabled],
401
+ );
402
+
396
403
  // Enter/Space activate the focused row; typeahead jumps by first character;
397
404
  // the close key (Left, or Right in RTL) returns focus to the trigger;
398
405
  // arrows/Home/End defer to useListFocus (RTL-aware).
@@ -467,11 +474,19 @@ export function DropdownMenuSubMenu(
467
474
  );
468
475
 
469
476
  const endAffordance = hasSpinner ? (
470
- <span {...stylex.props(triggerStyles.caret)}>
477
+ <span
478
+ {...mergeProps(
479
+ themeProps('dropdown-menu-indicator-icon'),
480
+ stylex.props(triggerStyles.caret),
481
+ )}>
471
482
  <Spinner size="sm" />
472
483
  </span>
473
484
  ) : (
474
- <span {...stylex.props(triggerStyles.caret)}>
485
+ <span
486
+ {...mergeProps(
487
+ themeProps('dropdown-menu-indicator-icon'),
488
+ stylex.props(triggerStyles.caret),
489
+ )}>
475
490
  <Icon icon="chevronRight" size="sm" color="secondary" />
476
491
  </span>
477
492
  );
@@ -494,6 +509,7 @@ export function DropdownMenuSubMenu(
494
509
  data-testid={testId}
495
510
  onMouseEnter={triggerProps.onMouseEnter}
496
511
  onMouseLeave={triggerProps.onMouseLeave}
512
+ onPointerMove={handlePointerMove}
497
513
  startContent={
498
514
  icon
499
515
  ? renderIconSlot(icon, {size: 'sm', color: 'secondary'})
@@ -16,6 +16,7 @@
16
16
  * - /packages/core/src/DropdownMenu/DropdownMenuItem.tsx
17
17
  * - /packages/core/src/DropdownMenu/DropdownMenuCheckboxItem.tsx
18
18
  * - /packages/core/src/DropdownMenu/DropdownMenuRadioItem.tsx
19
+ * - /packages/core/src/DropdownMenu/DropdownMenuSubMenu.tsx
19
20
  */
20
21
 
21
22
  import type {PointerEvent} from 'react';
@@ -6,7 +6,7 @@
6
6
  * @position Utility; used by DropdownMenu to unify data-driven and compound paths
7
7
  */
8
8
 
9
- import type {ReactNode} from 'react';
9
+ import type {ReactElement, ReactNode} from 'react';
10
10
  import * as stylex from '@stylexjs/stylex';
11
11
  import {Divider} from '../Divider';
12
12
  import {DropdownMenuItem} from './DropdownMenuItem';
@@ -17,6 +17,7 @@ import {
17
17
  typeScaleVars,
18
18
  colorVars,
19
19
  } from '../theme/tokens.stylex';
20
+ import {mergeProps, themeProps} from '../utils';
20
21
  import type {
21
22
  DropdownMenuItemData,
22
23
  DropdownMenuOption,
@@ -46,6 +47,20 @@ function getSectionKey(section: DropdownMenuSection, index: number): string {
46
47
  return `section-${section.title ?? index}`;
47
48
  }
48
49
 
50
+ /**
51
+ * Renders one leaf row as a `DropdownMenuItem`.
52
+ *
53
+ * `items` is stripped because it selects the submenu shape rather than being an
54
+ * item prop; every other field of `DropdownMenuItemData` is a
55
+ * `DropdownMenuItem` prop by construction (the type is `Pick`ed from
56
+ * `DropdownMenuItemProps`), so the data path forwards them wholesale and can't
57
+ * silently drop a field the data API advertises.
58
+ */
59
+ function renderLeafItem(item: DropdownMenuItemData): ReactElement {
60
+ const {items: _submenuItems, ...itemProps} = item;
61
+ return <DropdownMenuItem key={getItemKey(item)} {...itemProps} />;
62
+ }
63
+
49
64
  /**
50
65
  * Converts data-driven items into DropdownMenuItem components,
51
66
  * so both modes share the same rendering and keyboard navigation path.
@@ -57,7 +72,13 @@ export function renderDropdownItems(items: DropdownMenuOption[]): ReactNode {
57
72
  const option = items[i];
58
73
 
59
74
  if ('type' in option && option.type === 'divider') {
60
- elements.push(<Divider key={`divider-${i}`} xstyle={styles.divider} />);
75
+ elements.push(
76
+ <Divider
77
+ key={`divider-${i}`}
78
+ xstyle={styles.divider}
79
+ {...themeProps('dropdown-menu-divider')}
80
+ />,
81
+ );
61
82
  } else if ('type' in option && option.type === 'section') {
62
83
  elements.push(
63
84
  <div
@@ -65,19 +86,16 @@ export function renderDropdownItems(items: DropdownMenuOption[]): ReactNode {
65
86
  role="group"
66
87
  aria-label={option.title}>
67
88
  {option.title && (
68
- <div {...stylex.props(styles.sectionHeading)} aria-hidden="true">
89
+ <div
90
+ aria-hidden="true"
91
+ {...mergeProps(
92
+ themeProps('dropdown-menu-section-heading'),
93
+ stylex.props(styles.sectionHeading),
94
+ )}>
69
95
  {option.title}
70
96
  </div>
71
97
  )}
72
- {option.items.map(item => (
73
- <DropdownMenuItem
74
- key={getItemKey(item)}
75
- icon={item.icon}
76
- label={item.label}
77
- onClick={item.onClick}
78
- isDisabled={item.isDisabled}
79
- />
80
- ))}
98
+ {option.items.map(renderLeafItem)}
81
99
  </div>,
82
100
  );
83
101
  } else if (!('type' in option)) {
@@ -97,15 +115,7 @@ export function renderDropdownItems(items: DropdownMenuOption[]): ReactNode {
97
115
  </DropdownMenuSubMenu>,
98
116
  );
99
117
  } else {
100
- elements.push(
101
- <DropdownMenuItem
102
- key={getItemKey(option)}
103
- icon={option.icon}
104
- label={option.label}
105
- onClick={option.onClick}
106
- isDisabled={option.isDisabled}
107
- />,
108
- );
118
+ elements.push(renderLeafItem(option));
109
119
  }
110
120
  }
111
121
  }
@@ -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: 'EmptyState',
@@ -87,7 +87,7 @@ export const docs = {
87
87
  },
88
88
  };
89
89
 
90
- /** @type {import('../docs-types').ComponentDoc} */
90
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
91
91
  export const docsZh = {
92
92
  name: 'EmptyState',
93
93
  displayName: 'Empty State',
@@ -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:
162
162
  'placeholder when a content area has no data: icon, title, description, action buttons',
@@ -11,7 +11,7 @@
11
11
  * - /packages/core/src/EmptyState/EmptyState.test.tsx (tests for new/changed behavior)
12
12
  * - /packages/core/src/EmptyState/index.ts (exports if types change)
13
13
  * - /apps/storybook/stories/EmptyState.stories.tsx (storybook stories)
14
- * - /packages/cli/templates/blocks/components/EmptyState/ (showcase blocks)
14
+ * - /packages/cli/assets/templates/blocks/components/EmptyState/ (showcase blocks)
15
15
  */
16
16
 
17
17
  import {type ReactNode, createElement} from 'react';