@astryxdesign/core 0.2.0 → 0.3.0-canary.041a0ef

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1168) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/README.md +5 -3
  3. package/dist/AlertDialog/AlertDialog.d.ts +1 -1
  4. package/dist/AlertDialog/AlertDialog.js +1 -1
  5. package/dist/AppShell/AppShell.d.ts +2 -20
  6. package/dist/AppShell/AppShell.d.ts.map +1 -1
  7. package/dist/AppShell/AppShell.js +25 -18
  8. package/dist/AppShell/index.d.ts +20 -1
  9. package/dist/AppShell/index.d.ts.map +1 -1
  10. package/dist/AppShell/index.js +14 -0
  11. package/dist/AspectRatio/AspectRatio.d.ts +1 -1
  12. package/dist/AspectRatio/AspectRatio.js +1 -1
  13. package/dist/Avatar/Avatar.d.ts +1 -1
  14. package/dist/Avatar/Avatar.d.ts.map +1 -1
  15. package/dist/Avatar/Avatar.js +37 -24
  16. package/dist/Avatar/AvatarStatusDot.d.ts +2 -26
  17. package/dist/Avatar/AvatarStatusDot.d.ts.map +1 -1
  18. package/dist/Avatar/AvatarStatusDot.js +1 -22
  19. package/dist/Avatar/index.d.ts +26 -1
  20. package/dist/Avatar/index.d.ts.map +1 -1
  21. package/dist/Avatar/index.js +21 -0
  22. package/dist/AvatarGroup/AvatarGroup.d.ts +1 -1
  23. package/dist/AvatarGroup/AvatarGroup.d.ts.map +1 -1
  24. package/dist/AvatarGroup/AvatarGroup.js +4 -8
  25. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts +2 -2
  26. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
  27. package/dist/AvatarGroup/AvatarGroupOverflow.js +9 -6
  28. package/dist/Badge/Badge.d.ts +2 -30
  29. package/dist/Badge/Badge.d.ts.map +1 -1
  30. package/dist/Badge/Badge.js +2 -17
  31. package/dist/Badge/index.d.ts +31 -2
  32. package/dist/Badge/index.d.ts.map +1 -1
  33. package/dist/Badge/index.js +15 -1
  34. package/dist/Banner/Banner.d.ts +2 -37
  35. package/dist/Banner/Banner.d.ts.map +1 -1
  36. package/dist/Banner/Banner.js +21 -48
  37. package/dist/Banner/index.d.ts +37 -1
  38. package/dist/Banner/index.d.ts.map +1 -1
  39. package/dist/Banner/index.js +27 -0
  40. package/dist/Blockquote/Blockquote.d.ts +1 -1
  41. package/dist/Blockquote/Blockquote.js +1 -1
  42. package/dist/Breadcrumbs/BreadcrumbItem.d.ts +1 -1
  43. package/dist/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
  44. package/dist/Breadcrumbs/BreadcrumbItem.js +22 -8
  45. package/dist/Breadcrumbs/Breadcrumbs.d.ts +2 -18
  46. package/dist/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  47. package/dist/Breadcrumbs/Breadcrumbs.js +1 -15
  48. package/dist/Breadcrumbs/index.d.ts +18 -1
  49. package/dist/Breadcrumbs/index.d.ts.map +1 -1
  50. package/dist/Breadcrumbs/index.js +14 -0
  51. package/dist/Button/Button.d.ts +3 -21
  52. package/dist/Button/Button.d.ts.map +1 -1
  53. package/dist/Button/Button.js +17 -34
  54. package/dist/Button/index.d.ts +21 -3
  55. package/dist/Button/index.d.ts.map +1 -1
  56. package/dist/Button/index.js +15 -1
  57. package/dist/ButtonGroup/ButtonGroup.d.ts +1 -1
  58. package/dist/ButtonGroup/ButtonGroup.js +1 -1
  59. package/dist/Calendar/Calendar.d.ts.map +1 -1
  60. package/dist/Calendar/Calendar.js +3 -2
  61. package/dist/Calendar/index.d.ts +1 -1
  62. package/dist/Calendar/index.d.ts.map +1 -1
  63. package/dist/Calendar/index.js +1 -1
  64. package/dist/Calendar/styles.d.ts +2 -4
  65. package/dist/Calendar/styles.d.ts.map +1 -1
  66. package/dist/Calendar/styles.js +2 -4
  67. package/dist/Calendar/utils.d.ts +0 -4
  68. package/dist/Calendar/utils.d.ts.map +1 -1
  69. package/dist/Calendar/utils.js +1 -8
  70. package/dist/Card/Card.d.ts +1 -1
  71. package/dist/Card/Card.js +1 -1
  72. package/dist/Carousel/Carousel.d.ts +54 -3
  73. package/dist/Carousel/Carousel.d.ts.map +1 -1
  74. package/dist/Carousel/Carousel.js +90 -27
  75. package/dist/Carousel/index.d.ts +1 -1
  76. package/dist/Carousel/index.d.ts.map +1 -1
  77. package/dist/Center/Center.d.ts +21 -4
  78. package/dist/Center/Center.d.ts.map +1 -1
  79. package/dist/Center/Center.js +11 -3
  80. package/dist/Chat/ChatComposer.d.ts +1 -1
  81. package/dist/Chat/ChatComposer.js +9 -9
  82. package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
  83. package/dist/Chat/ChatComposerDrawer.js +5 -5
  84. package/dist/Chat/ChatComposerInput.d.ts +1 -1
  85. package/dist/Chat/ChatComposerInput.js +1 -1
  86. package/dist/Chat/ChatDictationButton.d.ts +1 -1
  87. package/dist/Chat/ChatDictationButton.js +1 -1
  88. package/dist/Chat/ChatLayout.d.ts +8 -1
  89. package/dist/Chat/ChatLayout.d.ts.map +1 -1
  90. package/dist/Chat/ChatLayout.js +15 -4
  91. package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
  92. package/dist/Chat/ChatLayoutScrollButton.d.ts.map +1 -1
  93. package/dist/Chat/ChatLayoutScrollButton.js +2 -1
  94. package/dist/Chat/ChatMessage.d.ts +1 -1
  95. package/dist/Chat/ChatMessage.js +1 -1
  96. package/dist/Chat/ChatMessageBubble.d.ts +1 -1
  97. package/dist/Chat/ChatMessageBubble.js +1 -1
  98. package/dist/Chat/ChatMessageList.d.ts +1 -1
  99. package/dist/Chat/ChatMessageList.js +1 -1
  100. package/dist/Chat/ChatSendButton.d.ts.map +1 -1
  101. package/dist/Chat/ChatSendButton.js +4 -2
  102. package/dist/Chat/ChatSystemMessage.d.ts +1 -1
  103. package/dist/Chat/ChatSystemMessage.js +1 -1
  104. package/dist/Chat/ChatTokenizedText.d.ts +1 -1
  105. package/dist/Chat/ChatTokenizedText.js +1 -1
  106. package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
  107. package/dist/Chat/ChatToolCalls.js +17 -17
  108. package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
  109. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  110. package/dist/CheckboxInput/CheckboxInput.js +3 -3
  111. package/dist/CheckboxList/CheckboxList.d.ts +1 -1
  112. package/dist/CheckboxList/CheckboxList.js +1 -1
  113. package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
  114. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  115. package/dist/CheckboxList/CheckboxListItem.js +20 -5
  116. package/dist/Citation/Citation.d.ts +1 -1
  117. package/dist/Citation/Citation.js +1 -1
  118. package/dist/ClickableCard/ClickableCard.d.ts +3 -3
  119. package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
  120. package/dist/ClickableCard/ClickableCard.js +6 -14
  121. package/dist/Code/Code.d.ts +2 -2
  122. package/dist/Code/Code.js +2 -2
  123. package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
  124. package/dist/CodeBlock/CodeBlock.js +35 -18
  125. package/dist/Collapsible/Collapsible.d.ts +1 -1
  126. package/dist/Collapsible/Collapsible.d.ts.map +1 -1
  127. package/dist/Collapsible/Collapsible.js +36 -16
  128. package/dist/Collapsible/CollapsibleGroup.d.ts +1 -1
  129. package/dist/Collapsible/CollapsibleGroup.js +1 -1
  130. package/dist/Collapsible/CollapsibleGroupContext.js +1 -1
  131. package/dist/CommandPalette/CommandPalette.d.ts +1 -1
  132. package/dist/CommandPalette/CommandPalette.js +1 -1
  133. package/dist/CommandPalette/CommandPaletteEmpty.js +1 -1
  134. package/dist/CommandPalette/CommandPaletteFooter.js +1 -1
  135. package/dist/CommandPalette/CommandPaletteGroup.js +1 -1
  136. package/dist/CommandPalette/CommandPaletteInput.d.ts +2 -2
  137. package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
  138. package/dist/CommandPalette/CommandPaletteInput.js +4 -2
  139. package/dist/CommandPalette/CommandPaletteItem.d.ts +1 -1
  140. package/dist/CommandPalette/CommandPaletteItem.js +1 -1
  141. package/dist/CommandPalette/CommandPaletteList.js +1 -1
  142. package/dist/ComplexSelector/ComplexSelector.d.ts +108 -0
  143. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -0
  144. package/dist/ComplexSelector/ComplexSelector.js +310 -0
  145. package/dist/ComplexSelector/index.d.ts +7 -0
  146. package/dist/ComplexSelector/index.d.ts.map +1 -0
  147. package/dist/ComplexSelector/index.js +10 -0
  148. package/dist/ContextMenu/ContextMenu.d.ts +2 -2
  149. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  150. package/dist/ContextMenu/ContextMenu.js +24 -6
  151. package/dist/DateInput/DateInput.d.ts +9 -2
  152. package/dist/DateInput/DateInput.d.ts.map +1 -1
  153. package/dist/DateInput/DateInput.js +6 -3
  154. package/dist/DateRangeInput/DateRangeInput.d.ts +9 -2
  155. package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  156. package/dist/DateRangeInput/DateRangeInput.js +6 -3
  157. package/dist/DateTimeInput/DateTimeInput.d.ts +9 -1
  158. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  159. package/dist/DateTimeInput/DateTimeInput.js +6 -3
  160. package/dist/Dialog/Dialog.d.ts +33 -24
  161. package/dist/Dialog/Dialog.d.ts.map +1 -1
  162. package/dist/Dialog/Dialog.js +47 -31
  163. package/dist/Dialog/DialogHeader.d.ts +1 -1
  164. package/dist/Dialog/DialogHeader.js +1 -1
  165. package/dist/Dialog/index.d.ts +18 -1
  166. package/dist/Dialog/index.d.ts.map +1 -1
  167. package/dist/Dialog/index.js +14 -0
  168. package/dist/Divider/Divider.d.ts +2 -18
  169. package/dist/Divider/Divider.d.ts.map +1 -1
  170. package/dist/Divider/Divider.js +1 -15
  171. package/dist/Divider/index.d.ts +18 -1
  172. package/dist/Divider/index.d.ts.map +1 -1
  173. package/dist/Divider/index.js +14 -0
  174. package/dist/DropdownMenu/DropdownMenu.d.ts +28 -8
  175. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  176. package/dist/DropdownMenu/DropdownMenu.js +75 -23
  177. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +18 -12
  178. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  179. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +38 -63
  180. package/dist/DropdownMenu/DropdownMenuItem.d.ts +8 -3
  181. package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  182. package/dist/DropdownMenu/DropdownMenuItem.js +14 -5
  183. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts +8 -11
  184. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts.map +1 -1
  185. package/dist/DropdownMenu/DropdownMenuRadioGroup.js +3 -1
  186. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +1 -1
  187. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  188. package/dist/DropdownMenu/DropdownMenuRadioItem.js +6 -2
  189. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +1 -1
  190. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  191. package/dist/DropdownMenu/DropdownMenuSubMenu.js +14 -6
  192. package/dist/DropdownMenu/menuItemHover.d.ts +1 -0
  193. package/dist/DropdownMenu/menuItemHover.d.ts.map +1 -1
  194. package/dist/DropdownMenu/menuItemHover.js +1 -0
  195. package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
  196. package/dist/DropdownMenu/renderDropdownItems.js +27 -16
  197. package/dist/EmptyState/EmptyState.d.ts +1 -1
  198. package/dist/EmptyState/EmptyState.js +1 -1
  199. package/dist/Field/Field.d.ts +1 -1
  200. package/dist/Field/Field.js +1 -1
  201. package/dist/Field/FieldLabel.d.ts +4 -3
  202. package/dist/Field/FieldLabel.d.ts.map +1 -1
  203. package/dist/Field/FieldLabel.js +48 -5
  204. package/dist/FieldStatus/FieldStatus.d.ts +1 -18
  205. package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
  206. package/dist/FieldStatus/FieldStatus.js +13 -17
  207. package/dist/FieldStatus/index.d.ts +19 -1
  208. package/dist/FieldStatus/index.d.ts.map +1 -1
  209. package/dist/FieldStatus/index.js +14 -0
  210. package/dist/FileInput/FileInput.js +1 -1
  211. package/dist/FormLayout/FormLayout.d.ts +1 -1
  212. package/dist/FormLayout/FormLayout.d.ts.map +1 -1
  213. package/dist/FormLayout/FormLayout.js +1 -1
  214. package/dist/Grid/Grid.d.ts +2 -10
  215. package/dist/Grid/Grid.d.ts.map +1 -1
  216. package/dist/Grid/Grid.js +1 -10
  217. package/dist/Grid/GridSpan.d.ts +1 -1
  218. package/dist/Grid/GridSpan.js +1 -1
  219. package/dist/HStack/HStack.d.ts +1 -1
  220. package/dist/HStack/HStack.js +1 -1
  221. package/dist/Heading/Heading.d.ts +2 -2
  222. package/dist/Heading/Heading.d.ts.map +1 -1
  223. package/dist/Heading/Heading.js +5 -4
  224. package/dist/HoverCard/HoverCard.d.ts +1 -1
  225. package/dist/HoverCard/HoverCard.js +1 -1
  226. package/dist/Icon/Icon.d.ts +1 -1
  227. package/dist/Icon/Icon.d.ts.map +1 -1
  228. package/dist/Icon/Icon.js +4 -2
  229. package/dist/Icon/defaultIcons.d.ts.map +1 -1
  230. package/dist/Icon/defaultIcons.js +14 -0
  231. package/dist/Icon/globalIconRegistry.d.ts +48 -6
  232. package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
  233. package/dist/Icon/globalIconRegistry.js +74 -7
  234. package/dist/Icon/index.d.ts +4 -3
  235. package/dist/Icon/index.d.ts.map +1 -1
  236. package/dist/Icon/index.js +2 -1
  237. package/dist/Icon/useIcon.d.ts +14 -0
  238. package/dist/Icon/useIcon.d.ts.map +1 -0
  239. package/dist/Icon/useIcon.js +21 -0
  240. package/dist/IconButton/IconButton.d.ts +1 -1
  241. package/dist/IconButton/IconButton.js +1 -1
  242. package/dist/InputGroup/InputGroup.d.ts +1 -1
  243. package/dist/InputGroup/InputGroup.js +1 -1
  244. package/dist/InputGroup/InputGroupText.d.ts +1 -1
  245. package/dist/InputGroup/InputGroupText.js +1 -1
  246. package/dist/Item/Item.d.ts +17 -4
  247. package/dist/Item/Item.d.ts.map +1 -1
  248. package/dist/Item/Item.js +36 -15
  249. package/dist/Kbd/Kbd.d.ts +1 -1
  250. package/dist/Kbd/Kbd.js +1 -1
  251. package/dist/Layout/Layout.d.ts +1 -1
  252. package/dist/Layout/Layout.js +1 -1
  253. package/dist/Layout/LayoutContent.d.ts +1 -1
  254. package/dist/Layout/LayoutContent.js +1 -1
  255. package/dist/Layout/LayoutFooter.d.ts +1 -1
  256. package/dist/Layout/LayoutFooter.js +1 -1
  257. package/dist/Layout/LayoutHeader.d.ts +1 -1
  258. package/dist/Layout/LayoutHeader.js +1 -1
  259. package/dist/Layout/LayoutPanel.d.ts +1 -1
  260. package/dist/Layout/LayoutPanel.js +1 -1
  261. package/dist/Lightbox/Lightbox.d.ts +6 -4
  262. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  263. package/dist/Lightbox/Lightbox.js +173 -79
  264. package/dist/Link/Link.d.ts +1 -1
  265. package/dist/Link/Link.d.ts.map +1 -1
  266. package/dist/Link/Link.js +5 -6
  267. package/dist/Link/LinkProvider.d.ts +2 -2
  268. package/dist/Link/LinkProvider.js +2 -2
  269. package/dist/List/List.d.ts +1 -1
  270. package/dist/List/List.js +1 -1
  271. package/dist/List/ListItem.d.ts +12 -2
  272. package/dist/List/ListItem.d.ts.map +1 -1
  273. package/dist/List/ListItem.js +3 -1
  274. package/dist/Markdown/Markdown.d.ts.map +1 -1
  275. package/dist/Markdown/Markdown.js +35 -13
  276. package/dist/MetadataList/MetadataList.d.ts +2 -2
  277. package/dist/MetadataList/MetadataList.d.ts.map +1 -1
  278. package/dist/MetadataList/MetadataList.js +38 -12
  279. package/dist/MetadataList/MetadataListItem.d.ts +1 -1
  280. package/dist/MetadataList/MetadataListItem.js +1 -1
  281. package/dist/MobileNav/MobileNav.d.ts +1 -1
  282. package/dist/MobileNav/MobileNav.js +9 -9
  283. package/dist/MoreMenu/MoreMenu.d.ts +1 -1
  284. package/dist/MoreMenu/MoreMenu.js +3 -3
  285. package/dist/MultiSelector/MultiSelector.d.ts +13 -4
  286. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  287. package/dist/MultiSelector/MultiSelector.js +155 -54
  288. package/dist/NavIcon/NavIcon.d.ts +1 -1
  289. package/dist/NavIcon/NavIcon.js +1 -1
  290. package/dist/NavMenu/index.d.ts +0 -2
  291. package/dist/NavMenu/index.d.ts.map +1 -1
  292. package/dist/NavMenu/index.js +1 -3
  293. package/dist/NumberInput/NumberInput.d.ts +1 -1
  294. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  295. package/dist/NumberInput/NumberInput.js +19 -7
  296. package/dist/Outline/Outline.d.ts.map +1 -1
  297. package/dist/Outline/Outline.js +3 -4
  298. package/dist/OverflowList/OverflowList.d.ts +1 -1
  299. package/dist/OverflowList/OverflowList.js +1 -1
  300. package/dist/Pagination/Pagination.d.ts +26 -21
  301. package/dist/Pagination/Pagination.d.ts.map +1 -1
  302. package/dist/Pagination/Pagination.js +204 -78
  303. package/dist/Pagination/index.d.ts +22 -1
  304. package/dist/Pagination/index.d.ts.map +1 -1
  305. package/dist/Pagination/index.js +14 -0
  306. package/dist/Popover/Popover.d.ts +20 -3
  307. package/dist/Popover/Popover.d.ts.map +1 -1
  308. package/dist/Popover/Popover.js +5 -1
  309. package/dist/Popover/usePopover.d.ts.map +1 -1
  310. package/dist/Popover/usePopover.js +14 -3
  311. package/dist/PowerSearch/PowerSearch.d.ts +1 -1
  312. package/dist/PowerSearch/PowerSearch.js +1 -1
  313. package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
  314. package/dist/PowerSearch/PowerSearchEditPopover.js +7 -0
  315. package/dist/ProgressBar/ProgressBar.d.ts +56 -22
  316. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  317. package/dist/ProgressBar/ProgressBar.js +169 -22
  318. package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts +27 -0
  319. package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts.map +1 -0
  320. package/dist/ProgressBar/ProgressBarMarkTooltip.js +35 -0
  321. package/dist/ProgressBar/index.d.ts +21 -1
  322. package/dist/ProgressBar/index.d.ts.map +1 -1
  323. package/dist/ProgressBar/index.js +14 -0
  324. package/dist/RadioList/RadioList.d.ts +1 -1
  325. package/dist/RadioList/RadioList.js +1 -1
  326. package/dist/RadioList/RadioListItem.d.ts +1 -1
  327. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  328. package/dist/RadioList/RadioListItem.js +2 -2
  329. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  330. package/dist/Resizable/ResizeHandle.js +17 -14
  331. package/dist/Section/Section.d.ts +2 -19
  332. package/dist/Section/Section.d.ts.map +1 -1
  333. package/dist/Section/Section.js +1 -15
  334. package/dist/Section/index.d.ts +19 -1
  335. package/dist/Section/index.d.ts.map +1 -1
  336. package/dist/Section/index.js +14 -0
  337. package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
  338. package/dist/SegmentedControl/SegmentedControl.js +1 -1
  339. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  340. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  341. package/dist/SegmentedControl/SegmentedControlItem.js +6 -6
  342. package/dist/SelectableCard/SelectableCard.d.ts +4 -3
  343. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  344. package/dist/SelectableCard/SelectableCard.js +18 -14
  345. package/dist/Selector/Selector.d.ts +14 -4
  346. package/dist/Selector/Selector.d.ts.map +1 -1
  347. package/dist/Selector/Selector.js +247 -77
  348. package/dist/Selector/hooks.d.ts +18 -6
  349. package/dist/Selector/hooks.d.ts.map +1 -1
  350. package/dist/Selector/hooks.js +57 -40
  351. package/dist/SideNav/SideNav.d.ts +1 -1
  352. package/dist/SideNav/SideNav.d.ts.map +1 -1
  353. package/dist/SideNav/SideNav.js +2 -2
  354. package/dist/SideNav/SideNavCollapseButton.d.ts +2 -2
  355. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  356. package/dist/SideNav/SideNavCollapseButton.js +30 -14
  357. package/dist/SideNav/SideNavHeading.d.ts +1 -1
  358. package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
  359. package/dist/SideNav/SideNavHeading.js +57 -20
  360. package/dist/SideNav/SideNavItem.d.ts +2 -2
  361. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  362. package/dist/SideNav/SideNavItem.js +30 -25
  363. package/dist/SideNav/SideNavSection.d.ts +1 -1
  364. package/dist/SideNav/SideNavSection.js +1 -1
  365. package/dist/Skeleton/Skeleton.d.ts +1 -1
  366. package/dist/Skeleton/Skeleton.d.ts.map +1 -1
  367. package/dist/Skeleton/Skeleton.js +3 -3
  368. package/dist/Slider/Slider.d.ts.map +1 -1
  369. package/dist/Slider/Slider.js +78 -68
  370. package/dist/Spinner/Spinner.d.ts +1 -1
  371. package/dist/Spinner/Spinner.js +1 -1
  372. package/dist/Stack/Stack.d.ts +1 -1
  373. package/dist/Stack/Stack.js +1 -1
  374. package/dist/Stack/StackItem.d.ts +1 -1
  375. package/dist/Stack/StackItem.js +1 -1
  376. package/dist/Stack/stack.stylex.d.ts +3 -3
  377. package/dist/StatusDot/StatusDot.d.ts +1 -20
  378. package/dist/StatusDot/StatusDot.d.ts.map +1 -1
  379. package/dist/StatusDot/StatusDot.js +2 -17
  380. package/dist/StatusDot/index.d.ts +21 -1
  381. package/dist/StatusDot/index.d.ts.map +1 -1
  382. package/dist/StatusDot/index.js +14 -0
  383. package/dist/Switch/Switch.d.ts +2 -6
  384. package/dist/Switch/Switch.d.ts.map +1 -1
  385. package/dist/Switch/Switch.js +28 -20
  386. package/dist/TabList/Tab.d.ts +1 -1
  387. package/dist/TabList/Tab.d.ts.map +1 -1
  388. package/dist/TabList/Tab.js +3 -4
  389. package/dist/TabList/TabList.d.ts +1 -1
  390. package/dist/TabList/TabList.js +1 -1
  391. package/dist/TabList/TabMenu.d.ts +1 -1
  392. package/dist/TabList/TabMenu.d.ts.map +1 -1
  393. package/dist/TabList/TabMenu.js +52 -22
  394. package/dist/Table/BaseTable.d.ts +1 -1
  395. package/dist/Table/BaseTable.d.ts.map +1 -1
  396. package/dist/Table/BaseTable.js +4 -7
  397. package/dist/Table/Table.d.ts +1 -1
  398. package/dist/Table/Table.js +1 -1
  399. package/dist/Table/TableCell.d.ts +1 -1
  400. package/dist/Table/TableCell.js +4 -2
  401. package/dist/Table/TableHeaderCell.d.ts +1 -1
  402. package/dist/Table/TableHeaderCell.js +4 -2
  403. package/dist/Table/TableRow.d.ts +1 -1
  404. package/dist/Table/TableRow.js +1 -1
  405. package/dist/Table/index.d.ts +1 -1
  406. package/dist/Table/index.d.ts.map +1 -1
  407. package/dist/Table/index.js +1 -1
  408. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts +1 -1
  409. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts.map +1 -1
  410. package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +22 -18
  411. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +18 -3
  412. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  413. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +55 -43
  414. package/dist/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
  415. package/dist/Table/plugins/sortable/useTableSortable.js +23 -4
  416. package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
  417. package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
  418. package/dist/Table/plugins/tree/useTableTreeData.js +65 -35
  419. package/dist/Table/tableContextMenu.d.ts.map +1 -1
  420. package/dist/Table/tableContextMenu.js +2 -1
  421. package/dist/Table/types.d.ts +5 -9
  422. package/dist/Table/types.d.ts.map +1 -1
  423. package/dist/Text/Text.d.ts +11 -2
  424. package/dist/Text/Text.d.ts.map +1 -1
  425. package/dist/Text/Text.js +26 -3
  426. package/dist/Text/index.d.ts +31 -1
  427. package/dist/Text/index.d.ts.map +1 -1
  428. package/dist/Text/index.js +23 -0
  429. package/dist/TextArea/TextArea.d.ts +1 -1
  430. package/dist/TextArea/TextArea.d.ts.map +1 -1
  431. package/dist/TextArea/TextArea.js +111 -41
  432. package/dist/TextInput/TextInput.d.ts +1 -1
  433. package/dist/TextInput/TextInput.d.ts.map +1 -1
  434. package/dist/TextInput/TextInput.js +4 -3
  435. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  436. package/dist/Thumbnail/Thumbnail.js +28 -16
  437. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  438. package/dist/TimeInput/TimeInput.js +3 -2
  439. package/dist/Timestamp/Timestamp.d.ts +26 -12
  440. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  441. package/dist/Timestamp/Timestamp.js +128 -65
  442. package/dist/Timestamp/TimestampHoverCard.d.ts +45 -0
  443. package/dist/Timestamp/TimestampHoverCard.d.ts.map +1 -0
  444. package/dist/Timestamp/TimestampHoverCard.js +228 -0
  445. package/dist/Timestamp/formatInstant.d.ts +3 -3
  446. package/dist/Timestamp/formatInstant.d.ts.map +1 -1
  447. package/dist/Timestamp/formatInstant.js +7 -2
  448. package/dist/Timestamp/tooltipEntries.d.ts +17 -2
  449. package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
  450. package/dist/Timestamp/tooltipEntries.js +4 -2
  451. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  452. package/dist/Toast/ToastViewport.js +61 -9
  453. package/dist/ToggleButton/ToggleButton.d.ts +1 -1
  454. package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
  455. package/dist/ToggleButton/ToggleButton.js +4 -2
  456. package/dist/ToggleButton/ToggleButtonGroup.d.ts +1 -1
  457. package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  458. package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
  459. package/dist/Token/Token.d.ts +6 -28
  460. package/dist/Token/Token.d.ts.map +1 -1
  461. package/dist/Token/Token.js +84 -64
  462. package/dist/Token/TokenLink.d.ts +62 -0
  463. package/dist/Token/TokenLink.d.ts.map +1 -0
  464. package/dist/Token/TokenLink.js +76 -0
  465. package/dist/Token/index.d.ts +27 -1
  466. package/dist/Token/index.d.ts.map +1 -1
  467. package/dist/Token/index.js +14 -0
  468. package/dist/Tokenizer/Tokenizer.d.ts +1 -1
  469. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  470. package/dist/Tokenizer/Tokenizer.js +5 -3
  471. package/dist/Toolbar/Toolbar.d.ts +1 -1
  472. package/dist/Toolbar/Toolbar.js +1 -1
  473. package/dist/Tooltip/Tooltip.d.ts +1 -1
  474. package/dist/Tooltip/Tooltip.js +1 -1
  475. package/dist/TopNav/TopNav.d.ts +1 -1
  476. package/dist/TopNav/TopNav.d.ts.map +1 -1
  477. package/dist/TopNav/TopNav.js +7 -6
  478. package/dist/TopNav/TopNavHeading.d.ts +2 -8
  479. package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
  480. package/dist/TopNav/TopNavHeading.js +56 -20
  481. package/dist/TopNav/TopNavItem.d.ts +1 -1
  482. package/dist/TopNav/TopNavItem.d.ts.map +1 -1
  483. package/dist/TopNav/TopNavItem.js +4 -10
  484. package/dist/TopNav/TopNavMegaMenu.d.ts +1 -1
  485. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  486. package/dist/TopNav/TopNavMegaMenu.js +89 -42
  487. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
  488. package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +1 -1
  489. package/dist/TopNav/TopNavMegaMenuItem.d.ts +1 -1
  490. package/dist/TopNav/TopNavMegaMenuItem.d.ts.map +1 -1
  491. package/dist/TopNav/TopNavMegaMenuItem.js +23 -4
  492. package/dist/TopNav/TopNavMenu.d.ts +1 -1
  493. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  494. package/dist/TopNav/TopNavMenu.js +84 -33
  495. package/dist/TreeList/TreeList.d.ts +1 -1
  496. package/dist/TreeList/TreeList.d.ts.map +1 -1
  497. package/dist/TreeList/TreeList.js +14 -1
  498. package/dist/TreeList/TreeListBranches.d.ts +1 -1
  499. package/dist/TreeList/TreeListBranches.d.ts.map +1 -1
  500. package/dist/TreeList/TreeListBranches.js +15 -5
  501. package/dist/TreeList/TreeListItem.d.ts +12 -2
  502. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  503. package/dist/TreeList/TreeListItem.js +58 -30
  504. package/dist/TreeList/TreeListTypes.d.ts +1 -17
  505. package/dist/TreeList/TreeListTypes.d.ts.map +1 -1
  506. package/dist/TreeList/index.d.ts +18 -1
  507. package/dist/TreeList/index.d.ts.map +1 -1
  508. package/dist/TreeList/index.js +14 -0
  509. package/dist/Typeahead/BaseTypeahead.d.ts +10 -1
  510. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  511. package/dist/Typeahead/BaseTypeahead.js +17 -3
  512. package/dist/Typeahead/Typeahead.d.ts +1 -1
  513. package/dist/Typeahead/Typeahead.d.ts.map +1 -1
  514. package/dist/Typeahead/Typeahead.js +9 -2
  515. package/dist/Typeahead/TypeaheadItem.d.ts +1 -1
  516. package/dist/Typeahead/TypeaheadItem.js +1 -1
  517. package/dist/VStack/VStack.d.ts +1 -1
  518. package/dist/VStack/VStack.js +1 -1
  519. package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  520. package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
  521. package/dist/astryx.css +143 -46
  522. package/dist/astryx.umd.js +52 -56
  523. package/dist/astryx.umd.js.map +4 -4
  524. package/dist/hooks/containerReveal.pool.stylex.d.ts +303 -0
  525. package/dist/hooks/containerReveal.pool.stylex.d.ts.map +1 -0
  526. package/dist/hooks/containerReveal.pool.stylex.js +292 -0
  527. package/dist/hooks/index.d.ts +2 -0
  528. package/dist/hooks/index.d.ts.map +1 -1
  529. package/dist/hooks/index.js +2 -1
  530. package/dist/hooks/useContainerReveal.d.ts +83 -0
  531. package/dist/hooks/useContainerReveal.d.ts.map +1 -0
  532. package/dist/hooks/useContainerReveal.js +123 -0
  533. package/dist/hooks/useGridFocus.d.ts +8 -6
  534. package/dist/hooks/useGridFocus.d.ts.map +1 -1
  535. package/dist/hooks/useInputContainer.d.ts.map +1 -1
  536. package/dist/hooks/useInputContainer.js +29 -1
  537. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  538. package/dist/hooks/useInputStatusIcon.js +11 -0
  539. package/dist/hooks/useKeyboardHint.d.ts +2 -2
  540. package/dist/hooks/useKeyboardHint.d.ts.map +1 -1
  541. package/dist/hooks/useKeyboardHint.js +5 -3
  542. package/dist/hooks/useListFocus.d.ts +8 -7
  543. package/dist/hooks/useListFocus.d.ts.map +1 -1
  544. package/dist/hooks/useLongPress.d.ts.map +1 -1
  545. package/dist/hooks/useLongPress.js +12 -2
  546. package/dist/hooks/useStreamingText.d.ts +18 -3
  547. package/dist/hooks/useStreamingText.d.ts.map +1 -1
  548. package/dist/hooks/useStreamingText.js +47 -7
  549. package/dist/hooks/useTreeFocus.d.ts.map +1 -1
  550. package/dist/hooks/useTreeFocus.js +13 -2
  551. package/dist/hooks/useTypeahead.d.ts +3 -2
  552. package/dist/hooks/useTypeahead.d.ts.map +1 -1
  553. package/dist/hooks/useTypeahead.js +19 -7
  554. package/dist/i18n/InternationalizationProvider.d.ts +6 -0
  555. package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
  556. package/dist/i18n/useDirection.d.ts.map +1 -1
  557. package/dist/i18n/useDirection.js +6 -3
  558. package/dist/index.d.ts +2 -1
  559. package/dist/index.d.ts.map +1 -1
  560. package/dist/index.js +3 -3
  561. package/dist/theme/Theme.d.ts.map +1 -1
  562. package/dist/theme/Theme.js +2 -7
  563. package/dist/theme/contrast.d.ts +45 -0
  564. package/dist/theme/contrast.d.ts.map +1 -0
  565. package/dist/theme/contrast.js +88 -0
  566. package/dist/theme/defineTheme.d.ts +9 -3
  567. package/dist/theme/defineTheme.d.ts.map +1 -1
  568. package/dist/theme/defineTheme.js +6 -4
  569. package/dist/theme/derivedVarRegistry.d.ts +8 -0
  570. package/dist/theme/derivedVarRegistry.d.ts.map +1 -1
  571. package/dist/theme/derivedVarRegistry.js +5 -13
  572. package/dist/theme/expandColorScale.d.ts +32 -3
  573. package/dist/theme/expandColorScale.d.ts.map +1 -1
  574. package/dist/theme/expandColorScale.js +102 -13
  575. package/dist/theme/expandTypeScale.d.ts.map +1 -1
  576. package/dist/theme/expandTypeScale.js +17 -0
  577. package/dist/theme/generateThemeRules.d.ts +0 -6
  578. package/dist/theme/generateThemeRules.d.ts.map +1 -1
  579. package/dist/theme/generateThemeRules.js +11 -15
  580. package/dist/theme/index.d.ts +9 -7
  581. package/dist/theme/index.d.ts.map +1 -1
  582. package/dist/theme/index.js +4 -3
  583. package/dist/theme/themeRegistry.d.ts +32 -0
  584. package/dist/theme/themeRegistry.d.ts.map +1 -0
  585. package/dist/theme/themeRegistry.js +49 -0
  586. package/dist/theme/tokens.stylex.d.ts +0 -17
  587. package/dist/theme/tokens.stylex.d.ts.map +1 -1
  588. package/dist/theme/tokens.stylex.js +0 -22
  589. package/dist/theme/types.d.ts +10 -2
  590. package/dist/theme/types.d.ts.map +1 -1
  591. package/dist/theme/useTheme.d.ts +9 -0
  592. package/dist/theme/useTheme.d.ts.map +1 -1
  593. package/dist/theme/useTheme.js +82 -27
  594. package/dist/utils/focusOutline.stylex.d.ts +74 -0
  595. package/dist/utils/focusOutline.stylex.d.ts.map +1 -0
  596. package/dist/utils/focusOutline.stylex.js +95 -0
  597. package/dist/utils/rtlStyles.d.ts +23 -2
  598. package/dist/utils/rtlStyles.d.ts.map +1 -1
  599. package/dist/utils/rtlStyles.js +28 -3
  600. package/groups.doc.mjs +2 -2
  601. package/locales/en.json +128 -0
  602. package/locales/pseudo.json +96 -0
  603. package/package.json +9 -13
  604. package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
  605. package/src/AlertDialog/AlertDialog.tsx +1 -1
  606. package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
  607. package/src/AppShell/AppShell.doc.mjs +3 -3
  608. package/src/AppShell/AppShell.test.tsx +55 -0
  609. package/src/AppShell/AppShell.tsx +27 -22
  610. package/src/AppShell/index.ts +20 -1
  611. package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
  612. package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
  613. package/src/AspectRatio/AspectRatio.tsx +1 -1
  614. package/src/Avatar/Avatar.doc.mjs +5 -16
  615. package/src/Avatar/Avatar.test.tsx +33 -8
  616. package/src/Avatar/Avatar.tsx +60 -53
  617. package/src/Avatar/AvatarStatusDot.doc.mjs +1 -1
  618. package/src/Avatar/AvatarStatusDot.tsx +2 -27
  619. package/src/Avatar/index.ts +26 -1
  620. package/src/AvatarGroup/AvatarGroup.doc.mjs +3 -3
  621. package/src/AvatarGroup/AvatarGroup.test.tsx +21 -1
  622. package/src/AvatarGroup/AvatarGroup.tsx +3 -7
  623. package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
  624. package/src/AvatarGroup/AvatarGroupOverflow.tsx +7 -12
  625. package/src/Badge/Badge.doc.mjs +3 -3
  626. package/src/Badge/Badge.tsx +2 -31
  627. package/src/Badge/index.ts +32 -6
  628. package/src/Banner/Banner.doc.mjs +3 -3
  629. package/src/Banner/Banner.tsx +17 -51
  630. package/src/Banner/index.ts +39 -7
  631. package/src/Blockquote/Blockquote.doc.mjs +3 -3
  632. package/src/Blockquote/Blockquote.tsx +1 -1
  633. package/src/Breadcrumbs/BreadcrumbItem.doc.mjs +1 -1
  634. package/src/Breadcrumbs/BreadcrumbItem.tsx +17 -5
  635. package/src/Breadcrumbs/Breadcrumbs.doc.mjs +3 -3
  636. package/src/Breadcrumbs/Breadcrumbs.test.tsx +1 -1
  637. package/src/Breadcrumbs/Breadcrumbs.tsx +2 -19
  638. package/src/Breadcrumbs/index.ts +19 -5
  639. package/src/Button/Button.doc.mjs +3 -3
  640. package/src/Button/Button.test.tsx +16 -0
  641. package/src/Button/Button.tsx +27 -64
  642. package/src/Button/index.ts +22 -7
  643. package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -3
  644. package/src/ButtonGroup/ButtonGroup.tsx +1 -1
  645. package/src/Calendar/Calendar.doc.mjs +3 -3
  646. package/src/Calendar/Calendar.test.tsx +22 -6
  647. package/src/Calendar/Calendar.tsx +3 -2
  648. package/src/Calendar/index.ts +1 -6
  649. package/src/Calendar/styles.ts +2 -10
  650. package/src/Calendar/utils.ts +0 -11
  651. package/src/Card/Card.doc.mjs +3 -3
  652. package/src/Card/Card.tsx +1 -1
  653. package/src/Carousel/Carousel.doc.mjs +13 -3
  654. package/src/Carousel/Carousel.test.tsx +232 -1
  655. package/src/Carousel/Carousel.tsx +154 -27
  656. package/src/Carousel/index.ts +1 -1
  657. package/src/Center/Center.doc.mjs +41 -3
  658. package/src/Center/Center.test.tsx +75 -0
  659. package/src/Center/Center.tsx +38 -3
  660. package/src/Chat/Chat.doc.mjs +3 -3
  661. package/src/Chat/ChatComposer.doc.mjs +1 -1
  662. package/src/Chat/ChatComposer.tsx +5 -5
  663. package/src/Chat/ChatComposerDrawer.doc.mjs +1 -1
  664. package/src/Chat/ChatComposerDrawer.tsx +5 -5
  665. package/src/Chat/ChatComposerInput.doc.mjs +1 -1
  666. package/src/Chat/ChatComposerInput.tsx +1 -1
  667. package/src/Chat/ChatComposerTokenElement.doc.mjs +1 -1
  668. package/src/Chat/ChatDictationButton.doc.mjs +3 -3
  669. package/src/Chat/ChatDictationButton.tsx +1 -1
  670. package/src/Chat/ChatLayout.doc.mjs +1 -1
  671. package/src/Chat/ChatLayout.test.tsx +57 -0
  672. package/src/Chat/ChatLayout.tsx +23 -2
  673. package/src/Chat/ChatLayoutScrollButton.doc.mjs +1 -1
  674. package/src/Chat/ChatLayoutScrollButton.test.tsx +22 -0
  675. package/src/Chat/ChatLayoutScrollButton.tsx +2 -1
  676. package/src/Chat/ChatMessage.doc.mjs +1 -1
  677. package/src/Chat/ChatMessage.tsx +1 -1
  678. package/src/Chat/ChatMessageBubble.doc.mjs +1 -1
  679. package/src/Chat/ChatMessageBubble.tsx +1 -1
  680. package/src/Chat/ChatMessageList.doc.mjs +1 -1
  681. package/src/Chat/ChatMessageList.tsx +1 -1
  682. package/src/Chat/ChatMessageMetadata.doc.mjs +1 -1
  683. package/src/Chat/ChatSendButton.doc.mjs +1 -1
  684. package/src/Chat/ChatSendButton.tsx +5 -3
  685. package/src/Chat/ChatSystemMessage.doc.mjs +1 -1
  686. package/src/Chat/ChatSystemMessage.tsx +1 -1
  687. package/src/Chat/ChatTokenizedText.doc.mjs +1 -1
  688. package/src/Chat/ChatTokenizedText.tsx +1 -1
  689. package/src/Chat/ChatToolCalls.doc.mjs +3 -3
  690. package/src/Chat/ChatToolCalls.test.tsx +35 -0
  691. package/src/Chat/ChatToolCalls.tsx +36 -16
  692. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
  693. package/src/CheckboxInput/CheckboxInput.test.tsx +56 -0
  694. package/src/CheckboxInput/CheckboxInput.tsx +18 -3
  695. package/src/CheckboxList/CheckboxList.doc.mjs +3 -3
  696. package/src/CheckboxList/CheckboxList.test.tsx +94 -3
  697. package/src/CheckboxList/CheckboxList.tsx +1 -1
  698. package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
  699. package/src/CheckboxList/CheckboxListItem.tsx +18 -11
  700. package/src/Citation/Citation.doc.mjs +2 -2
  701. package/src/Citation/Citation.tsx +1 -1
  702. package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
  703. package/src/ClickableCard/ClickableCard.tsx +9 -14
  704. package/src/Code/Code.tsx +2 -2
  705. package/src/CodeBlock/Code.doc.mjs +1 -1
  706. package/src/CodeBlock/CodeBlock.doc.mjs +3 -3
  707. package/src/CodeBlock/CodeBlock.test.tsx +17 -0
  708. package/src/CodeBlock/CodeBlock.tsx +18 -17
  709. package/src/Collapsible/Collapsible.doc.mjs +3 -3
  710. package/src/Collapsible/Collapsible.tsx +23 -19
  711. package/src/Collapsible/CollapsibleGroup.doc.mjs +1 -1
  712. package/src/Collapsible/CollapsibleGroup.tsx +1 -1
  713. package/src/Collapsible/CollapsibleGroupContext.tsx +1 -1
  714. package/src/Collapsible/useCollapsible.doc.mjs +2 -2
  715. package/src/CommandPalette/CommandPalette.doc.mjs +4 -4
  716. package/src/CommandPalette/CommandPalette.test.tsx +29 -0
  717. package/src/CommandPalette/CommandPalette.tsx +1 -1
  718. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +1 -1
  719. package/src/CommandPalette/CommandPaletteEmpty.tsx +1 -1
  720. package/src/CommandPalette/CommandPaletteFooter.doc.mjs +1 -1
  721. package/src/CommandPalette/CommandPaletteFooter.tsx +1 -1
  722. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +1 -1
  723. package/src/CommandPalette/CommandPaletteGroup.test.tsx +6 -2
  724. package/src/CommandPalette/CommandPaletteGroup.tsx +1 -1
  725. package/src/CommandPalette/CommandPaletteInput.doc.mjs +1 -1
  726. package/src/CommandPalette/CommandPaletteInput.tsx +5 -1
  727. package/src/CommandPalette/CommandPaletteItem.doc.mjs +1 -1
  728. package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
  729. package/src/CommandPalette/CommandPaletteList.doc.mjs +1 -1
  730. package/src/CommandPalette/CommandPaletteList.tsx +1 -1
  731. package/src/ComplexSelector/ComplexSelector.doc.mjs +220 -0
  732. package/src/ComplexSelector/ComplexSelector.test.tsx +181 -0
  733. package/src/ComplexSelector/ComplexSelector.tsx +443 -0
  734. package/src/ComplexSelector/index.ts +17 -0
  735. package/src/ContextMenu/ContextMenu.doc.mjs +4 -4
  736. package/src/ContextMenu/ContextMenu.test.tsx +38 -2
  737. package/src/ContextMenu/ContextMenu.tsx +27 -6
  738. package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
  739. package/src/DateInput/DateInput.doc.mjs +19 -4
  740. package/src/DateInput/DateInput.test.tsx +79 -3
  741. package/src/DateInput/DateInput.tsx +23 -3
  742. package/src/DateRangeInput/DateRangeInput.doc.mjs +11 -3
  743. package/src/DateRangeInput/DateRangeInput.test.tsx +97 -2
  744. package/src/DateRangeInput/DateRangeInput.tsx +19 -2
  745. package/src/DateTimeInput/DateTimeInput.doc.mjs +19 -5
  746. package/src/DateTimeInput/DateTimeInput.test.tsx +81 -2
  747. package/src/DateTimeInput/DateTimeInput.tsx +19 -2
  748. package/src/Dialog/Dialog.doc.mjs +7 -5
  749. package/src/Dialog/Dialog.test.tsx +46 -3
  750. package/src/Dialog/Dialog.tsx +63 -53
  751. package/src/Dialog/DialogHeader.doc.mjs +1 -1
  752. package/src/Dialog/DialogHeader.tsx +1 -1
  753. package/src/Dialog/index.ts +18 -1
  754. package/src/Dialog/useImperativeDialog.doc.mjs +1 -1
  755. package/src/Divider/Divider.doc.mjs +3 -3
  756. package/src/Divider/Divider.tsx +2 -19
  757. package/src/Divider/index.ts +19 -5
  758. package/src/DropdownMenu/DropdownMenu.doc.mjs +22 -7
  759. package/src/DropdownMenu/DropdownMenu.test.tsx +405 -1
  760. package/src/DropdownMenu/DropdownMenu.tsx +117 -50
  761. package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +1 -1
  762. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +41 -64
  763. package/src/DropdownMenu/DropdownMenuItem.doc.mjs +25 -5
  764. package/src/DropdownMenu/DropdownMenuItem.tsx +34 -7
  765. package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +5 -13
  766. package/src/DropdownMenu/DropdownMenuRadioGroup.tsx +9 -10
  767. package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
  768. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +11 -2
  769. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +84 -2
  770. package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +1 -1
  771. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +90 -15
  772. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +24 -8
  773. package/src/DropdownMenu/menuItemHover.ts +1 -0
  774. package/src/DropdownMenu/renderDropdownItems.tsx +31 -21
  775. package/src/EmptyState/EmptyState.doc.mjs +3 -3
  776. package/src/EmptyState/EmptyState.tsx +1 -1
  777. package/src/Field/Field.doc.mjs +7 -3
  778. package/src/Field/Field.tsx +1 -1
  779. package/src/Field/FieldLabel.doc.mjs +1 -1
  780. package/src/Field/FieldLabel.test.tsx +103 -0
  781. package/src/Field/FieldLabel.tsx +61 -5
  782. package/src/FieldStatus/FieldStatus.doc.mjs +3 -2
  783. package/src/FieldStatus/FieldStatus.test.tsx +61 -0
  784. package/src/FieldStatus/FieldStatus.tsx +16 -23
  785. package/src/FieldStatus/index.ts +20 -5
  786. package/src/FileInput/FileInput.doc.mjs +3 -3
  787. package/src/FileInput/FileInput.tsx +1 -1
  788. package/src/FormLayout/FormLayout.doc.mjs +3 -3
  789. package/src/FormLayout/FormLayout.tsx +2 -5
  790. package/src/Grid/Grid.doc.mjs +3 -8
  791. package/src/Grid/Grid.tsx +1 -25
  792. package/src/Grid/GridSpan.doc.mjs +1 -1
  793. package/src/Grid/GridSpan.tsx +1 -1
  794. package/src/HStack/HStack.tsx +1 -1
  795. package/src/Heading/Heading.tsx +4 -3
  796. package/src/HoverCard/HoverCard.doc.mjs +3 -3
  797. package/src/HoverCard/HoverCard.tsx +1 -1
  798. package/src/HoverCard/useHoverCard.doc.mjs +2 -2
  799. package/src/Icon/Icon.doc.mjs +8 -6
  800. package/src/Icon/Icon.test.tsx +23 -0
  801. package/src/Icon/Icon.tsx +4 -2
  802. package/src/Icon/defaultIcons.tsx +14 -0
  803. package/src/Icon/globalIconRegistry.test.tsx +87 -1
  804. package/src/Icon/globalIconRegistry.tsx +111 -9
  805. package/src/Icon/index.ts +9 -7
  806. package/src/Icon/useIcon.ts +23 -0
  807. package/src/IconButton/IconButton.doc.mjs +2 -2
  808. package/src/IconButton/IconButton.tsx +1 -1
  809. package/src/InputGroup/InputGroup.doc.mjs +2 -2
  810. package/src/InputGroup/InputGroup.tsx +1 -1
  811. package/src/InputGroup/InputGroupText.doc.mjs +1 -1
  812. package/src/InputGroup/InputGroupText.tsx +1 -1
  813. package/src/Item/Item.doc.mjs +8 -3
  814. package/src/Item/Item.test.tsx +88 -0
  815. package/src/Item/Item.tsx +65 -26
  816. package/src/Kbd/Kbd.doc.mjs +3 -3
  817. package/src/Kbd/Kbd.tsx +1 -1
  818. package/src/Layer/Layer.doc.mjs +2 -2
  819. package/src/Layer/useLayer.doc.mjs +2 -2
  820. package/src/Layout/Layout.doc.mjs +3 -3
  821. package/src/Layout/Layout.tsx +1 -1
  822. package/src/Layout/LayoutContent.doc.mjs +1 -1
  823. package/src/Layout/LayoutContent.tsx +1 -1
  824. package/src/Layout/LayoutFooter.doc.mjs +1 -1
  825. package/src/Layout/LayoutFooter.tsx +1 -1
  826. package/src/Layout/LayoutHeader.doc.mjs +1 -1
  827. package/src/Layout/LayoutHeader.tsx +1 -1
  828. package/src/Layout/LayoutPanel.doc.mjs +1 -1
  829. package/src/Layout/LayoutPanel.tsx +1 -1
  830. package/src/Lightbox/Lightbox.doc.mjs +6 -6
  831. package/src/Lightbox/Lightbox.test.tsx +211 -0
  832. package/src/Lightbox/Lightbox.tsx +152 -60
  833. package/src/Link/Link.doc.mjs +3 -3
  834. package/src/Link/Link.tsx +5 -12
  835. package/src/Link/LinkProvider.doc.mjs +2 -2
  836. package/src/Link/LinkProvider.tsx +2 -2
  837. package/src/List/List.doc.mjs +3 -3
  838. package/src/List/List.tsx +1 -1
  839. package/src/List/ListItem.doc.mjs +13 -1
  840. package/src/List/ListItem.tsx +14 -1
  841. package/src/Markdown/Markdown.doc.mjs +81 -1
  842. package/src/Markdown/Markdown.test.tsx +92 -0
  843. package/src/Markdown/Markdown.tsx +96 -68
  844. package/src/Markdown/parser.perf.test.ts +47 -35
  845. package/src/MetadataList/MetadataList.doc.mjs +3 -3
  846. package/src/MetadataList/MetadataList.test.tsx +82 -0
  847. package/src/MetadataList/MetadataList.tsx +45 -20
  848. package/src/MetadataList/MetadataListItem.doc.mjs +1 -1
  849. package/src/MetadataList/MetadataListItem.tsx +1 -1
  850. package/src/MobileNav/MobileNav.doc.mjs +3 -3
  851. package/src/MobileNav/MobileNav.tsx +4 -4
  852. package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
  853. package/src/MoreMenu/MoreMenu.test.tsx +28 -1
  854. package/src/MoreMenu/MoreMenu.tsx +3 -3
  855. package/src/MultiSelector/MultiSelector.doc.mjs +37 -10
  856. package/src/MultiSelector/MultiSelector.test.tsx +396 -8
  857. package/src/MultiSelector/MultiSelector.tsx +254 -74
  858. package/src/NavIcon/NavIcon.doc.mjs +3 -3
  859. package/src/NavIcon/NavIcon.tsx +1 -1
  860. package/src/NavMenu/NavHeadingMenu.test.tsx +0 -16
  861. package/src/NavMenu/NavMenu.doc.mjs +2 -2
  862. package/src/NavMenu/index.ts +0 -4
  863. package/src/NumberInput/NumberInput.doc.mjs +5 -8
  864. package/src/NumberInput/NumberInput.test.tsx +117 -3
  865. package/src/NumberInput/NumberInput.tsx +30 -3
  866. package/src/Outline/Outline.doc.mjs +3 -3
  867. package/src/Outline/Outline.tsx +3 -6
  868. package/src/OverflowList/OverflowList.doc.mjs +3 -3
  869. package/src/OverflowList/OverflowList.tsx +1 -1
  870. package/src/Overlay/Overlay.doc.mjs +2 -2
  871. package/src/Pagination/Pagination.doc.mjs +55 -8
  872. package/src/Pagination/Pagination.test.tsx +582 -0
  873. package/src/Pagination/Pagination.tsx +249 -64
  874. package/src/Pagination/index.ts +22 -1
  875. package/src/Popover/Popover.doc.mjs +31 -3
  876. package/src/Popover/Popover.test.tsx +41 -0
  877. package/src/Popover/Popover.tsx +25 -2
  878. package/src/Popover/usePopover.doc.mjs +2 -2
  879. package/src/Popover/usePopover.tsx +10 -4
  880. package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
  881. package/src/PowerSearch/PowerSearch.tsx +1 -1
  882. package/src/PowerSearch/PowerSearchEditPopover.test.tsx +42 -0
  883. package/src/PowerSearch/PowerSearchEditPopover.tsx +7 -0
  884. package/src/ProgressBar/ProgressBar.doc.mjs +24 -3
  885. package/src/ProgressBar/ProgressBar.test.tsx +523 -2
  886. package/src/ProgressBar/ProgressBar.tsx +250 -25
  887. package/src/ProgressBar/ProgressBarMarkTooltip.tsx +43 -0
  888. package/src/ProgressBar/index.ts +22 -1
  889. package/src/RadioList/RadioList.doc.mjs +3 -3
  890. package/src/RadioList/RadioList.test.tsx +26 -4
  891. package/src/RadioList/RadioList.tsx +1 -1
  892. package/src/RadioList/RadioListItem.doc.mjs +1 -1
  893. package/src/RadioList/RadioListItem.tsx +9 -2
  894. package/src/Resizable/Resizable.doc.mjs +2 -2
  895. package/src/Resizable/ResizeHandle.test.tsx +52 -3
  896. package/src/Resizable/ResizeHandle.tsx +27 -22
  897. package/src/Resizable/useResizable.doc.mjs +2 -2
  898. package/src/Section/Section.doc.mjs +3 -3
  899. package/src/Section/Section.tsx +2 -20
  900. package/src/Section/index.ts +20 -5
  901. package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
  902. package/src/SegmentedControl/SegmentedControl.test.tsx +28 -0
  903. package/src/SegmentedControl/SegmentedControl.tsx +1 -1
  904. package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
  905. package/src/SegmentedControl/SegmentedControlItem.tsx +23 -12
  906. package/src/SelectableCard/SelectableCard.doc.mjs +4 -2
  907. package/src/SelectableCard/SelectableCard.test.tsx +55 -0
  908. package/src/SelectableCard/SelectableCard.tsx +23 -12
  909. package/src/Selector/Selector.doc.mjs +34 -11
  910. package/src/Selector/Selector.test.tsx +1176 -118
  911. package/src/Selector/Selector.tsx +345 -96
  912. package/src/Selector/SelectorOption.doc.mjs +1 -1
  913. package/src/Selector/hooks.ts +77 -50
  914. package/src/SideNav/SideNav.doc.mjs +3 -3
  915. package/src/SideNav/SideNav.test.tsx +46 -0
  916. package/src/SideNav/SideNav.tsx +2 -1
  917. package/src/SideNav/SideNavCollapseButton.doc.mjs +1 -1
  918. package/src/SideNav/SideNavCollapseButton.tsx +16 -10
  919. package/src/SideNav/SideNavHeading.doc.mjs +1 -1
  920. package/src/SideNav/SideNavHeading.tsx +49 -12
  921. package/src/SideNav/SideNavItem.doc.mjs +1 -1
  922. package/src/SideNav/SideNavItem.tsx +21 -14
  923. package/src/SideNav/SideNavSection.doc.mjs +1 -1
  924. package/src/SideNav/SideNavSection.tsx +1 -1
  925. package/src/Skeleton/Skeleton.doc.mjs +3 -3
  926. package/src/Skeleton/Skeleton.test.tsx +16 -0
  927. package/src/Skeleton/Skeleton.tsx +14 -2
  928. package/src/Slider/Slider.doc.mjs +3 -3
  929. package/src/Slider/Slider.tsx +9 -13
  930. package/src/Spinner/Spinner.doc.mjs +3 -3
  931. package/src/Spinner/Spinner.tsx +1 -1
  932. package/src/Stack/Stack.doc.mjs +113 -3
  933. package/src/Stack/Stack.tsx +1 -1
  934. package/src/Stack/StackItem.tsx +1 -1
  935. package/src/StatusDot/StatusDot.doc.mjs +15 -6
  936. package/src/StatusDot/StatusDot.tsx +2 -22
  937. package/src/StatusDot/index.ts +22 -5
  938. package/src/Switch/Switch.doc.mjs +5 -5
  939. package/src/Switch/Switch.test.tsx +71 -25
  940. package/src/Switch/Switch.tsx +63 -26
  941. package/src/TabList/Tab.doc.mjs +1 -1
  942. package/src/TabList/Tab.tsx +3 -10
  943. package/src/TabList/TabList.doc.mjs +3 -3
  944. package/src/TabList/TabList.test.tsx +21 -18
  945. package/src/TabList/TabList.tsx +1 -1
  946. package/src/TabList/TabMenu.doc.mjs +1 -1
  947. package/src/TabList/TabMenu.tsx +25 -24
  948. package/src/Table/BaseTable.tsx +4 -5
  949. package/src/Table/Table.doc.mjs +5 -5
  950. package/src/Table/Table.test.tsx +27 -49
  951. package/src/Table/Table.tsx +1 -1
  952. package/src/Table/TableCell.doc.mjs +1 -1
  953. package/src/Table/TableCell.tsx +2 -2
  954. package/src/Table/TableHeaderCell.doc.mjs +1 -1
  955. package/src/Table/TableHeaderCell.tsx +2 -2
  956. package/src/Table/TableRow.doc.mjs +1 -1
  957. package/src/Table/TableRow.tsx +1 -1
  958. package/src/Table/index.ts +1 -1
  959. package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +30 -14
  960. package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +19 -0
  961. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +72 -33
  962. package/src/Table/plugins/sortable/useTableSortable.tsx +2 -6
  963. package/src/Table/plugins/tree/useTableTreeData.test.tsx +161 -2
  964. package/src/Table/plugins/tree/useTableTreeData.tsx +97 -25
  965. package/src/Table/tableContextMenu.test.tsx +27 -0
  966. package/src/Table/tableContextMenu.tsx +1 -0
  967. package/src/Table/types.ts +5 -9
  968. package/src/Table/useTableColumnResize.doc.mjs +1 -1
  969. package/src/Table/useTableColumnSettings.doc.mjs +1 -1
  970. package/src/Table/useTableFilterState.doc.mjs +1 -1
  971. package/src/Table/useTableFiltering.doc.mjs +1 -1
  972. package/src/Table/useTableGroupedRows.doc.mjs +2 -2
  973. package/src/Table/useTablePagination.doc.mjs +1 -1
  974. package/src/Table/useTableRowExpansion.doc.mjs +57 -4
  975. package/src/Table/useTableRowIndex.doc.mjs +2 -2
  976. package/src/Table/useTableRowStatus.doc.mjs +3 -3
  977. package/src/Table/useTableSelection.doc.mjs +1 -1
  978. package/src/Table/useTableSelectionState.doc.mjs +1 -1
  979. package/src/Table/useTableSortable.doc.mjs +1 -1
  980. package/src/Table/useTableStickyColumns.doc.mjs +1 -1
  981. package/src/Table/useTableTreeData.doc.mjs +10 -1
  982. package/src/Table/useTableTreeState.doc.mjs +1 -1
  983. package/src/Text/Heading.doc.mjs +4 -4
  984. package/src/Text/Text.doc.mjs +4 -4
  985. package/src/Text/Text.test.tsx +42 -0
  986. package/src/Text/Text.tsx +26 -2
  987. package/src/Text/index.ts +32 -6
  988. package/src/TextArea/TextArea.doc.mjs +31 -7
  989. package/src/TextArea/TextArea.test.tsx +186 -7
  990. package/src/TextArea/TextArea.tsx +156 -52
  991. package/src/TextInput/TextInput.doc.mjs +5 -5
  992. package/src/TextInput/TextInput.test.tsx +77 -0
  993. package/src/TextInput/TextInput.tsx +7 -3
  994. package/src/Thumbnail/Thumbnail.doc.mjs +2 -2
  995. package/src/Thumbnail/Thumbnail.test.tsx +24 -1
  996. package/src/Thumbnail/Thumbnail.tsx +29 -43
  997. package/src/TimeInput/TimeInput.doc.mjs +5 -5
  998. package/src/TimeInput/TimeInput.test.tsx +30 -3
  999. package/src/TimeInput/TimeInput.tsx +6 -2
  1000. package/src/Timestamp/Timestamp.doc.mjs +30 -24
  1001. package/src/Timestamp/Timestamp.test.tsx +438 -107
  1002. package/src/Timestamp/Timestamp.tsx +167 -103
  1003. package/src/Timestamp/TimestampHoverCard.tsx +283 -0
  1004. package/src/Timestamp/formatInstant.ts +9 -4
  1005. package/src/Timestamp/tooltipEntries.test.ts +9 -0
  1006. package/src/Timestamp/tooltipEntries.ts +18 -2
  1007. package/src/Toast/Toast.doc.mjs +3 -3
  1008. package/src/Toast/ToastViewport.test.tsx +218 -8
  1009. package/src/Toast/ToastViewport.tsx +71 -12
  1010. package/src/Toast/useToast.doc.mjs +2 -2
  1011. package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
  1012. package/src/ToggleButton/ToggleButton.test.tsx +24 -0
  1013. package/src/ToggleButton/ToggleButton.tsx +20 -2
  1014. package/src/ToggleButton/ToggleButtonGroup.doc.mjs +1 -1
  1015. package/src/ToggleButton/ToggleButtonGroup.tsx +3 -6
  1016. package/src/Token/Token.doc.mjs +3 -3
  1017. package/src/Token/Token.test.tsx +145 -0
  1018. package/src/Token/Token.tsx +77 -86
  1019. package/src/Token/TokenLink.tsx +107 -0
  1020. package/src/Token/index.ts +28 -1
  1021. package/src/Tokenizer/Tokenizer.doc.mjs +5 -5
  1022. package/src/Tokenizer/Tokenizer.test.tsx +45 -3
  1023. package/src/Tokenizer/Tokenizer.tsx +11 -3
  1024. package/src/Toolbar/Toolbar.doc.mjs +3 -3
  1025. package/src/Toolbar/Toolbar.tsx +1 -1
  1026. package/src/Tooltip/Tooltip.doc.mjs +3 -3
  1027. package/src/Tooltip/Tooltip.tsx +1 -1
  1028. package/src/Tooltip/useTooltip.doc.mjs +2 -2
  1029. package/src/TopNav/TopNav.doc.mjs +3 -3
  1030. package/src/TopNav/TopNav.test.tsx +2 -2
  1031. package/src/TopNav/TopNav.tsx +2 -4
  1032. package/src/TopNav/TopNavHeading.doc.mjs +1 -12
  1033. package/src/TopNav/TopNavHeading.tsx +44 -25
  1034. package/src/TopNav/TopNavItem.doc.mjs +1 -1
  1035. package/src/TopNav/TopNavItem.tsx +4 -22
  1036. package/src/TopNav/TopNavMegaMenu.doc.mjs +1 -1
  1037. package/src/TopNav/TopNavMegaMenu.tsx +62 -30
  1038. package/src/TopNav/TopNavMegaMenuFeaturedCard.doc.mjs +1 -1
  1039. package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +1 -1
  1040. package/src/TopNav/TopNavMegaMenuItem.doc.mjs +1 -1
  1041. package/src/TopNav/TopNavMegaMenuItem.tsx +3 -10
  1042. package/src/TopNav/TopNavMenu.doc.mjs +1 -1
  1043. package/src/TopNav/TopNavMenu.tsx +34 -32
  1044. package/src/TreeList/TreeList.doc.mjs +8 -3
  1045. package/src/TreeList/TreeList.test.tsx +216 -13
  1046. package/src/TreeList/TreeList.tsx +23 -1
  1047. package/src/TreeList/TreeListBranches.tsx +26 -3
  1048. package/src/TreeList/TreeListItem.tsx +90 -52
  1049. package/src/TreeList/TreeListTypes.ts +1 -18
  1050. package/src/TreeList/index.ts +19 -1
  1051. package/src/Typeahead/BaseTypeahead.doc.mjs +1 -1
  1052. package/src/Typeahead/BaseTypeahead.tsx +30 -2
  1053. package/src/Typeahead/Typeahead.doc.mjs +4 -3
  1054. package/src/Typeahead/Typeahead.test.tsx +138 -3
  1055. package/src/Typeahead/Typeahead.tsx +7 -1
  1056. package/src/Typeahead/TypeaheadItem.doc.mjs +1 -1
  1057. package/src/Typeahead/TypeaheadItem.tsx +1 -1
  1058. package/src/VStack/VStack.tsx +1 -1
  1059. package/src/VisuallyHidden/VisuallyHidden.doc.mjs +3 -3
  1060. package/src/VisuallyHidden/VisuallyHidden.tsx +1 -1
  1061. package/src/__tests__/babelPluginAddExtensions.test.ts +190 -0
  1062. package/src/__tests__/forcedColors.ts +60 -0
  1063. package/src/__tests__/inputWidthContract.test.tsx +8 -1
  1064. package/src/doc-mjs.d.ts +5 -2
  1065. package/src/docPropLiterals.test.ts +1 -1
  1066. package/src/docPropReferences.test.ts +1 -1
  1067. package/src/hooks/containerReveal.pool.stylex.ts +571 -0
  1068. package/src/hooks/index.ts +7 -0
  1069. package/src/hooks/useClickableContainer.doc.mjs +2 -2
  1070. package/src/hooks/useContainerReveal.doc.mjs +75 -0
  1071. package/src/hooks/useContainerReveal.test.tsx +116 -0
  1072. package/src/hooks/useContainerReveal.ts +181 -0
  1073. package/src/hooks/useEntryAnimation.doc.mjs +2 -2
  1074. package/src/hooks/useFocusTrap.doc.mjs +2 -2
  1075. package/src/hooks/useGridFocus.doc.mjs +2 -2
  1076. package/src/hooks/useGridFocus.ts +8 -6
  1077. package/src/hooks/useHotkeys.doc.mjs +2 -2
  1078. package/src/hooks/useImageMode.doc.mjs +2 -2
  1079. package/src/hooks/useImageMode.test.ts +1 -1
  1080. package/src/hooks/useInputContainer.doc.mjs +2 -2
  1081. package/src/hooks/useInputContainer.test.tsx +180 -0
  1082. package/src/hooks/useInputContainer.ts +36 -1
  1083. package/src/hooks/useInputStatusIcon.test.tsx +59 -0
  1084. package/src/hooks/useInputStatusIcon.tsx +12 -1
  1085. package/src/hooks/useKeyboardHint.doc.mjs +2 -2
  1086. package/src/hooks/useKeyboardHint.test.tsx +22 -0
  1087. package/src/hooks/useKeyboardHint.tsx +7 -3
  1088. package/src/hooks/useListFocus.doc.mjs +2 -2
  1089. package/src/hooks/useListFocus.ts +8 -7
  1090. package/src/hooks/useLongPress.test.tsx +18 -0
  1091. package/src/hooks/useLongPress.ts +12 -2
  1092. package/src/hooks/useMediaQuery.doc.mjs +2 -2
  1093. package/src/hooks/useOverflow.doc.mjs +2 -2
  1094. package/src/hooks/useScrollLock.doc.mjs +2 -2
  1095. package/src/hooks/useScrollOverflow.doc.mjs +2 -2
  1096. package/src/hooks/useStreamingText.doc.mjs +2 -2
  1097. package/src/hooks/useStreamingText.test.ts +46 -1
  1098. package/src/hooks/useStreamingText.ts +49 -7
  1099. package/src/hooks/useTreeFocus.doc.mjs +2 -2
  1100. package/src/hooks/useTreeFocus.test.tsx +53 -1
  1101. package/src/hooks/useTreeFocus.ts +13 -2
  1102. package/src/hooks/useTypeahead.test.tsx +150 -0
  1103. package/src/hooks/useTypeahead.ts +24 -9
  1104. package/src/i18n/InternationalizationProvider.doc.mjs +14 -2
  1105. package/src/i18n/InternationalizationProvider.tsx +6 -0
  1106. package/src/i18n/useDirection.ts +6 -3
  1107. package/src/i18n/useTranslator.doc.mjs +2 -2
  1108. package/src/index.ts +2 -18
  1109. package/src/theme/MediaTheme.doc.mjs +2 -2
  1110. package/src/theme/SyntaxTheme.doc.mjs +2 -2
  1111. package/src/theme/Theme.doc.mjs +2 -2
  1112. package/src/theme/Theme.tsx +3 -7
  1113. package/src/theme/contrast.test.ts +94 -0
  1114. package/src/theme/contrast.ts +99 -0
  1115. package/src/theme/defineTheme.test.ts +29 -30
  1116. package/src/theme/defineTheme.ts +11 -5
  1117. package/src/theme/derivedVarRegistry.test.ts +8 -1
  1118. package/src/theme/derivedVarRegistry.ts +15 -6
  1119. package/src/theme/expandColorScale.test.ts +401 -1
  1120. package/src/theme/expandColorScale.ts +143 -19
  1121. package/src/theme/expandTypeScale.test.ts +43 -0
  1122. package/src/theme/expandTypeScale.ts +17 -0
  1123. package/src/theme/generateThemeRules.test.ts +41 -20
  1124. package/src/theme/generateThemeRules.ts +11 -15
  1125. package/src/theme/index.ts +11 -13
  1126. package/src/theme/themeRegistry.test.ts +59 -0
  1127. package/src/theme/themeRegistry.ts +53 -0
  1128. package/src/theme/tokens.stylex.ts +0 -19
  1129. package/src/theme/types.ts +14 -13
  1130. package/src/theme/useTheme.doc.mjs +2 -2
  1131. package/src/theme/useTheme.test.tsx +48 -3
  1132. package/src/theme/useTheme.ts +100 -29
  1133. package/src/utils/focusOutline.stylex.ts +128 -0
  1134. package/src/utils/rtlStyles.ts +24 -2
  1135. package/dist/NavMenu/NavMenuItem.d.ts +0 -13
  1136. package/dist/NavMenu/NavMenuItem.d.ts.map +0 -1
  1137. package/dist/NavMenu/NavMenuItem.js +0 -16
  1138. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts +0 -9
  1139. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts.map +0 -1
  1140. package/dist/Thumbnail/thumbnail.markers.stylex.js +0 -14
  1141. package/dist/authoring/doc.d.ts +0 -145
  1142. package/dist/authoring/doc.d.ts.map +0 -1
  1143. package/dist/authoring/doc.js +0 -100
  1144. package/dist/authoring/index.d.ts +0 -29
  1145. package/dist/authoring/index.d.ts.map +0 -1
  1146. package/dist/authoring/index.js +0 -28
  1147. package/dist/authoring/integration.d.ts +0 -35
  1148. package/dist/authoring/integration.d.ts.map +0 -1
  1149. package/dist/authoring/integration.js +0 -30
  1150. package/dist/authoring/template.d.ts +0 -66
  1151. package/dist/authoring/template.d.ts.map +0 -1
  1152. package/dist/authoring/template.js +0 -55
  1153. package/dist/config.d.ts +0 -80
  1154. package/dist/config.d.ts.map +0 -1
  1155. package/dist/config.js +0 -40
  1156. package/dist/docs-types.d.ts +0 -969
  1157. package/dist/docs-types.d.ts.map +0 -1
  1158. package/dist/docs-types.js +0 -1
  1159. package/src/NavMenu/NavMenuItem.tsx +0 -19
  1160. package/src/Thumbnail/thumbnail.markers.stylex.ts +0 -12
  1161. package/src/authoring/doc.ts +0 -164
  1162. package/src/authoring/index.test.ts +0 -52
  1163. package/src/authoring/index.ts +0 -50
  1164. package/src/authoring/integration.ts +0 -42
  1165. package/src/authoring/template.ts +0 -74
  1166. package/src/config.test.ts +0 -16
  1167. package/src/config.ts +0 -92
  1168. package/src/docs-types.ts +0 -1108
@@ -14,12 +14,17 @@
14
14
  *
15
15
  * Both modes use useListFocus for DOM-based keyboard navigation.
16
16
  *
17
+ * Initial focus on open follows the input modality: a keyboard open
18
+ * (Enter / Space / ArrowDown on the trigger) focuses the first enabled item
19
+ * (APG menu-button); a pointer open focuses the menu container itself so no
20
+ * item reads as pre-selected, and the first ArrowDown then moves to item 1.
21
+ *
17
22
  * SYNC: When modified, update these files to stay in sync:
18
23
  * - /packages/core/src/DropdownMenu/DropdownMenu.doc.mjs
19
24
  * - /packages/core/src/DropdownMenu/DropdownMenu.test.tsx
20
25
  * - /packages/core/src/DropdownMenu/index.ts
21
26
  * - /apps/storybook/stories/DropdownMenu.stories.tsx
22
- * - /packages/cli/templates/blocks/components/DropdownMenu/ (showcase blocks)
27
+ * - /packages/cli/assets/templates/blocks/components/DropdownMenu/ (showcase blocks)
23
28
  */
24
29
 
25
30
  import React, {
@@ -35,9 +40,9 @@ import * as stylex from '@stylexjs/stylex';
35
40
  import {usePopover} from '../Popover/usePopover';
36
41
  import {Button, type ButtonProps} from '../Button';
37
42
  import {Icon} from '../Icon';
38
- import type {IconType} from '../Icon';
39
43
 
40
44
  import {renderDropdownItems} from './renderDropdownItems';
45
+ import type {DropdownMenuItemProps} from './DropdownMenuItem';
41
46
  import {
42
47
  MENU_ITEM_ROLES,
43
48
  MENU_ITEM_SELECTOR,
@@ -50,7 +55,7 @@ import {
50
55
  import {useListFocus} from '../hooks/useListFocus';
51
56
  import {useTypeahead} from '../hooks/useTypeahead';
52
57
  import {layerAnimations} from '../Layer/layerAnimations.stylex';
53
- import type {LayerPlacement} from '../Layer/useLayer';
58
+ import type {LayerAlignment, LayerPlacement} from '../Layer/useLayer';
54
59
  import {
55
60
  spacingVars,
56
61
  radiusVars,
@@ -99,11 +104,23 @@ const styles = stylex.create({
99
104
  // Types
100
105
  // =============================================================================
101
106
 
102
- export interface DropdownMenuItemData {
107
+ /**
108
+ * Data-mode shape for one menu row.
109
+ *
110
+ * The item fields are sourced from `DropdownMenuItemProps` — data mode renders
111
+ * through `DropdownMenuItem`, so the two APIs describe the same thing and must
112
+ * not drift. Only the fields listed here are part of the data API; add a key to
113
+ * the `Pick` to expose more of the item's props to `items`.
114
+ */
115
+ export interface DropdownMenuItemData extends Pick<
116
+ DropdownMenuItemProps,
117
+ 'icon' | 'onClick' | 'isDisabled' | 'variant'
118
+ > {
119
+ /**
120
+ * Primary label text. Narrowed to `string` from the item's `ReactNode`:
121
+ * data mode derives each row's React key from the label.
122
+ */
103
123
  label: string;
104
- onClick?: () => void;
105
- isDisabled?: boolean;
106
- icon?: ReactNode | IconType;
107
124
  /**
108
125
  * Nested submenu entries. When present, this row becomes a submenu (a
109
126
  * flyout revealing `items`) instead of a leaf action — no separate item
@@ -145,6 +162,13 @@ interface DropdownMenuBaseProps extends BaseProps {
145
162
  */
146
163
  placement?: LayerPlacement;
147
164
 
165
+ /**
166
+ * Alignment along the placement axis.
167
+ * Uses the same alignment values as other Astryx layer-based components.
168
+ * @default 'start'
169
+ */
170
+ alignment?: LayerAlignment;
171
+
148
172
  'data-testid'?: string;
149
173
  }
150
174
 
@@ -198,6 +222,7 @@ export function DropdownMenu({
198
222
  onClick,
199
223
  hasChevron = true,
200
224
  placement = 'below',
225
+ alignment = 'start',
201
226
  className,
202
227
  style,
203
228
  xstyle,
@@ -235,28 +260,29 @@ export function DropdownMenu({
235
260
  // Close menu + return focus to trigger
236
261
  const handleLayerHide = useCallback(() => {
237
262
  lastHideTimeRef.current = Date.now();
238
- if (isControlled) {
239
- onOpenChange?.(false);
240
- } else {
263
+ onOpenChange?.(false);
264
+ if (!isControlled) {
241
265
  setInternalIsOpen(false);
242
266
  }
243
267
  buttonRef.current?.focus();
244
268
  }, [isControlled, onOpenChange]);
245
269
 
246
- // Track whether to focus the first item when the menu opens
270
+ // Defer item focus until the layer has committed open, so focus restore
271
+ // captures the trigger instead of the first menu item.
247
272
  const shouldFocusOnOpenRef = useRef(false);
248
273
 
274
+ // How the next open was initiated. Keyboard (and programmatic) opens focus
275
+ // the first enabled item per the APG menu-button pattern; pointer opens
276
+ // focus the menu container instead, so no item is visually highlighted as
277
+ // if pre-selected (#4477). Reset to 'keyboard' after every open so
278
+ // programmatic controlled opens keep the item-focus behavior.
279
+ const openModalityRef = useRef<'keyboard' | 'pointer'>('keyboard');
280
+
249
281
  const handleLayerShow = useCallback(() => {
250
- if (isControlled) {
251
- onOpenChange?.(true);
252
- } else {
282
+ onOpenChange?.(true);
283
+ if (!isControlled) {
253
284
  setInternalIsOpen(true);
254
285
  }
255
- if (shouldFocusOnOpenRef.current) {
256
- shouldFocusOnOpenRef.current = false;
257
- // focusFirst is called via openAndFocus below — defer to rAF
258
- // so the popover content is rendered before we query for items
259
- }
260
286
  }, [isControlled, onOpenChange]);
261
287
 
262
288
  const popover = usePopover({
@@ -305,17 +331,38 @@ export function DropdownMenu({
305
331
  ),
306
332
  });
307
333
 
308
- // Sync controlled open state → popover, and focus first item on open
334
+ // Sync controlled open state → popover.
309
335
  useEffect(() => {
310
336
  if (isControlled) {
311
337
  if (controlledIsOpen && !popover.isOpen) {
338
+ shouldFocusOnOpenRef.current = true;
312
339
  popover.show();
313
- requestAnimationFrame(() => focusFirst());
314
340
  } else if (!controlledIsOpen && popover.isOpen) {
315
341
  popover.hide();
316
342
  }
317
343
  }
318
- }, [controlledIsOpen, isControlled, popover, focusFirst]);
344
+ }, [controlledIsOpen, isControlled, popover]);
345
+
346
+ // Move focus into the menu only after the layer has committed open,
347
+ // honoring the input modality: keyboard (and programmatic) opens land on
348
+ // the first enabled item per the APG menu-button pattern; pointer opens
349
+ // focus the menu container itself (tabIndex={-1}) so no item is
350
+ // highlighted as if pre-selected (#4477). Container focus keeps arrows,
351
+ // typeahead, Escape and Tab in the menu's onKeyDown, and is also the
352
+ // fallback when no item is focusable (e.g. all disabled), mirroring the
353
+ // submenu flyout fallback.
354
+ useEffect(() => {
355
+ if (!popover.isOpen || !shouldFocusOnOpenRef.current) {
356
+ return;
357
+ }
358
+ shouldFocusOnOpenRef.current = false;
359
+ requestAnimationFrame(() => {
360
+ if (openModalityRef.current === 'pointer' || !focusFirst()) {
361
+ listRef.current?.focus();
362
+ }
363
+ openModalityRef.current = 'keyboard';
364
+ });
365
+ }, [popover.isOpen, focusFirst, listRef]);
319
366
 
320
367
  // Extend useListFocus with Enter/Space activation + typeahead
321
368
  const listKeyDown = useCallback(
@@ -355,36 +402,51 @@ export function DropdownMenu({
355
402
  [listNavKeyDown, closeMenu, typeahead, ownsEvent],
356
403
  );
357
404
 
358
- const openAndFocus = useCallback(() => {
359
- popover.show();
360
- requestAnimationFrame(() => focusFirst());
361
- }, [popover, focusFirst]);
405
+ const openAndFocus = useCallback(
406
+ (modality: 'keyboard' | 'pointer' = 'keyboard') => {
407
+ openModalityRef.current = modality;
408
+ shouldFocusOnOpenRef.current = true;
409
+ popover.show();
410
+ },
411
+ [popover],
412
+ );
362
413
 
363
- const handleButtonClick = useCallback(() => {
364
- // If the menu was just closed by light dismiss (e.g. iOS Safari fires
365
- // pointerdown → hide before the trigger's click), the click would
366
- // otherwise immediately re-open it. Short-circuit within the guard window.
367
- if (Date.now() - lastHideTimeRef.current < 50) {
368
- return;
369
- }
370
- onClick?.();
371
- if (isControlled) {
372
- onOpenChange?.(!controlledIsOpen);
373
- } else {
374
- if (popover.isOpen) {
375
- popover.hide();
414
+ const handleButtonClick = useCallback(
415
+ (e: React.MouseEvent<HTMLButtonElement>) => {
416
+ // If the menu was just closed by light dismiss (e.g. iOS Safari fires
417
+ // pointerdown → hide before the trigger's click), the click would
418
+ // otherwise immediately re-open it. Short-circuit within the guard
419
+ // window.
420
+ if (Date.now() - lastHideTimeRef.current < 50) {
421
+ return;
422
+ }
423
+ onClick?.();
424
+ // detail === 0 marks a synthesized click (screen reader / AT
425
+ // activation): treat it as keyboard so those users still land on the
426
+ // first item. Real pointer clicks report detail >= 1.
427
+ const modality = e.detail === 0 ? 'keyboard' : 'pointer';
428
+ if (isControlled) {
429
+ if (!controlledIsOpen) {
430
+ openModalityRef.current = modality;
431
+ }
432
+ onOpenChange?.(!controlledIsOpen);
376
433
  } else {
377
- openAndFocus();
434
+ if (popover.isOpen) {
435
+ popover.hide();
436
+ } else {
437
+ openAndFocus(modality);
438
+ }
378
439
  }
379
- }
380
- }, [
381
- onClick,
382
- isControlled,
383
- onOpenChange,
384
- controlledIsOpen,
385
- popover,
386
- openAndFocus,
387
- ]);
440
+ },
441
+ [
442
+ onClick,
443
+ isControlled,
444
+ onOpenChange,
445
+ controlledIsOpen,
446
+ popover,
447
+ openAndFocus,
448
+ ],
449
+ );
388
450
 
389
451
  const handleButtonKeyDown = useCallback(
390
452
  (e: React.KeyboardEvent) => {
@@ -457,6 +519,11 @@ export function DropdownMenu({
457
519
  ref={listRef}
458
520
  id={menuId}
459
521
  role="menu"
522
+ // Focus target for pointer opens (not in the Tab order): holding
523
+ // focus on the container keeps key events (arrows, typeahead,
524
+ // Escape, Tab) inside the menu without highlighting any item.
525
+ // Mirrors the DropdownMenuSubMenu flyout container.
526
+ tabIndex={-1}
460
527
  // Give the menu an accessible name from its trigger's label, so
461
528
  // screen readers announce e.g. "Actions menu" rather than an unnamed
462
529
  // menu (menus-13).
@@ -474,7 +541,7 @@ export function DropdownMenu({
474
541
  </div>,
475
542
  {
476
543
  placement,
477
- alignment: 'start',
544
+ alignment,
478
545
  xstyle: [popoverXstyle, popoverGapStyle, layerAnimations[placement]],
479
546
  },
480
547
  )}
@@ -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: 'DropdownMenuCheckboxItem',
@@ -4,39 +4,39 @@
4
4
 
5
5
  /**
6
6
  * @file DropdownMenuCheckboxItem.tsx
7
- * @input React, stylex, Item + Icon + DropdownMenu context + tokens from core
7
+ * @input React, stylex, Item + CheckboxInput + DropdownMenu context + tokens from core
8
8
  * @output DropdownMenuCheckboxItem — a standalone checkable menu item.
9
9
  * @position Sub-component; used inside DropdownMenu.
10
10
  *
11
11
  * A menu item that toggles an independent boolean (role="menuitemcheckbox").
12
- * Unlike CheckboxInput, there is no nested native <input>: the row itself owns
13
- * the role and aria-checked, per the WAI-ARIA menuitemcheckbox pattern.
14
- * Keyboard navigation (arrows/typeahead) and Enter/Space activation come from
15
- * the parent DropdownMenu's useListFocus + activation path, which matches
16
- * menuitemcheckbox alongside plain menuitem rows.
12
+ * Unlike CheckboxInput, there is no nested native <input> that participates in
13
+ * accessibility: the row itself owns the role and aria-checked, per the
14
+ * WAI-ARIA menuitemcheckbox pattern. Keyboard navigation (arrows/typeahead) and
15
+ * Enter/Space activation come from the parent DropdownMenu's useListFocus +
16
+ * activation path, which matches menuitemcheckbox alongside plain menuitem rows.
17
17
  *
18
- * The square checkbox visual is decorative (aria-hidden) — the row owns the
19
- * checked state. Its size is derived from the menu's item size (a `sm` menu
20
- * gets the compact control; `md`/`lg` get the standard one) and it swaps to the
21
- * inline-end of the row on coarse-pointer (touch) devices via CSS `order`, so
22
- * it lands where selection toggles are conventionally placed on mobile. The
23
- * checkmark uses the `check` icon from the active theme's icon registry.
18
+ * The checkbox visual composes the real CheckboxInput primitive so its checkmark
19
+ * matches CheckboxListItem and picks up the standard `checkbox` theming slots.
20
+ * It is purely decorative: the composed control is wrapped in an element that is
21
+ * both `aria-hidden` and `inert`, so it contributes nothing to the row's
22
+ * accessible name, and its native <input> and sr-only label stay out of the tab
23
+ * order and the accessibility tree while pointer clicks fall through to the row
24
+ * — the same shim MultiSelector uses. The row owns the checked state and
25
+ * accessible name. The control size is derived from the menu's item size (a
26
+ * `sm` menu gets the compact control; `md`/`lg` get the standard one) and it
27
+ * swaps to the inline-end of the row on coarse-pointer (touch) devices via CSS
28
+ * `order`, so it lands where selection toggles are conventionally placed on
29
+ * mobile.
24
30
  */
25
31
 
26
32
  import {useCallback, type PointerEvent, type ReactNode} from 'react';
27
33
  import * as stylex from '@stylexjs/stylex';
28
- import {Icon, renderIconSlot, type IconType} from '../Icon';
34
+ import {renderIconSlot, type IconType} from '../Icon';
35
+ import {CheckboxInput} from '../CheckboxInput/CheckboxInput';
29
36
  import {Item} from '../Item';
30
37
  import {useDropdownMenuContext} from './DropdownMenuContext';
31
38
  import {focusMenuItemOnHover} from './menuItemHover';
32
- import {
33
- colorVars,
34
- spacingVars,
35
- radiusVars,
36
- durationVars,
37
- easeVars,
38
- borderVars,
39
- } from '../theme/tokens.stylex';
39
+ import {colorVars, spacingVars} from '../theme/tokens.stylex';
40
40
  import {mergeProps, themeProps} from '../utils';
41
41
  import type {BaseProps} from '../BaseProps';
42
42
 
@@ -58,22 +58,13 @@ const styles = stylex.create({
58
58
  },
59
59
  // Rendered in Item's `marker` slot as a raw flex child, so `order` moves it
60
60
  // relative to the label within the row. On touch it moves to the inline-end.
61
- box: {
61
+ // `aria-hidden` + `inert` + pointer-events:none keep the composed CheckboxInput
62
+ // decorative: it adds no accessible name, and clicks fall through to the row,
63
+ // which owns the role and activation.
64
+ markerBox: {
62
65
  display: 'flex',
63
- alignItems: 'center',
64
- justifyContent: 'center',
65
66
  flexShrink: 0,
66
- boxSizing: 'border-box',
67
- borderWidth: borderVars['--border-width'],
68
- borderStyle: 'solid',
69
- borderRadius: radiusVars['--radius-inner'],
70
- color: colorVars['--color-on-accent'],
71
- transitionProperty: 'background-color, border-color',
72
- transitionDuration: {
73
- default: durationVars['--duration-fast'],
74
- '@media (prefers-reduced-motion: reduce)': '0s',
75
- },
76
- transitionTimingFunction: easeVars['--ease-standard'],
67
+ pointerEvents: 'none',
77
68
  order: {
78
69
  default: 0,
79
70
  '@media (pointer: coarse)': 1,
@@ -83,19 +74,6 @@ const styles = stylex.create({
83
74
  '@media (pointer: coarse)': 'auto',
84
75
  },
85
76
  },
86
- unchecked: {
87
- borderColor: colorVars['--color-border-emphasized'],
88
- backgroundColor: colorVars['--color-background-surface'],
89
- },
90
- checked: {
91
- borderColor: colorVars['--color-accent'],
92
- backgroundColor: colorVars['--color-accent'],
93
- },
94
- });
95
-
96
- const boxSizeStyles = stylex.create({
97
- sm: {width: 18, height: 18},
98
- md: {width: 22, height: 22},
99
77
  });
100
78
 
101
79
  export interface DropdownMenuCheckboxItemProps extends Omit<
@@ -180,6 +158,12 @@ export function DropdownMenuCheckboxItem({
180
158
  const menuSize = ctx?.menuSize ?? 'md';
181
159
  const controlSize = menuSize === 'sm' ? 'sm' : 'md';
182
160
 
161
+ // The composed checkbox is decorative and inert, so its label never reaches
162
+ // the accessibility tree — the row's `label` prop provides the announced
163
+ // name. CheckboxInput still requires a string label, so pass one through when
164
+ // the row label is a plain string.
165
+ const checkboxLabel = typeof label === 'string' ? label : '';
166
+
183
167
  const handleClick = useCallback(() => {
184
168
  if (isDisabled) {
185
169
  return;
@@ -203,22 +187,15 @@ export function DropdownMenuCheckboxItem({
203
187
  tabIndex={isDisabled ? undefined : -1}
204
188
  onPointerMove={handlePointerMove}
205
189
  marker={
206
- <span
207
- aria-hidden="true"
208
- {...mergeProps(
209
- themeProps('dropdown-menu-checkbox', {
210
- size: controlSize,
211
- checked: value ? 'checked' : null,
212
- disabled: isDisabled ? 'disabled' : null,
213
- }),
214
- stylex.props(
215
- styles.box,
216
- boxSizeStyles[controlSize],
217
- value ? styles.checked : styles.unchecked,
218
- ),
219
- )}>
220
- {value && <Icon icon="check" size="sm" color="inherit" />}
221
- </span>
190
+ <div aria-hidden="true" inert {...stylex.props(styles.markerBox)}>
191
+ <CheckboxInput
192
+ label={checkboxLabel}
193
+ isLabelHidden
194
+ value={value}
195
+ isDisabled={isDisabled}
196
+ size={controlSize}
197
+ />
198
+ </div>
222
199
  }
223
200
  startContent={
224
201
  icon
@@ -1,13 +1,14 @@
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: 'DropdownMenuItem',
7
7
  subComponentOf: 'DropdownMenu',
8
8
  displayName: 'Dropdown Menu Item',
9
9
  isHiddenFromOverview: true,
10
- description: 'Helper component for custom item rendering with consistent styling.',
10
+ description:
11
+ 'Helper component for custom item rendering with consistent styling.',
11
12
  playground: {
12
13
  // Standalone DropdownMenuItem has no required props, so the properties-tab
13
14
  // preview renders an empty row without seeded content. Seed a label and
@@ -18,7 +19,8 @@ export const docs = {
18
19
  {
19
20
  name: 'icon',
20
21
  type: 'IconType',
21
- description: 'Icon to display before the label. See `astryx docs icons` for valid semantic names.',
22
+ description:
23
+ 'Icon to display before the label. See `astryx docs icons` for valid semantic names.',
22
24
  },
23
25
  {
24
26
  name: 'label',
@@ -33,12 +35,21 @@ export const docs = {
33
35
  {
34
36
  name: 'endContent',
35
37
  type: 'ReactNode',
36
- description: 'Additional content rendered after the label and description.',
38
+ description:
39
+ 'Additional content rendered after the label and description.',
40
+ },
41
+ {
42
+ name: 'variant',
43
+ type: "'default' | 'destructive'",
44
+ description:
45
+ "Visual variant. 'destructive' renders the label, description, and icon in the error color for dangerous actions (e.g. Delete).",
46
+ default: "'default'",
37
47
  },
38
48
  {
39
49
  name: 'xstyle',
40
50
  type: 'StyleXStyles',
41
- description: 'StyleX styles for layout customization (margins, positioning, sizing). Must be a stylex.create() value: not an inline style object like style={{}}.',
51
+ description:
52
+ 'StyleX styles for layout customization (margins, positioning, sizing). Must be a stylex.create() value: not an inline style object like style={{}}.',
42
53
  },
43
54
  ],
44
55
  };
@@ -69,6 +80,13 @@ export const docsZh = {
69
80
  type: 'ReactNode',
70
81
  description: '在标签和描述之后渲染的附加内容。',
71
82
  },
83
+ {
84
+ name: 'variant',
85
+ type: "'default' | 'destructive'",
86
+ description:
87
+ "视觉变体。'destructive' 会以错误色渲染标签、描述和图标,用于危险操作(如删除)。",
88
+ default: "'default'",
89
+ },
72
90
  {
73
91
  name: 'xstyle',
74
92
  type: 'StyleXStyles',
@@ -87,6 +105,8 @@ export const docsDense = {
87
105
  label: 'primary label text',
88
106
  description: 'secondary text below label',
89
107
  endContent: 'additional content after label+description',
108
+ variant:
109
+ "'destructive' renders the item in the error color for dangerous actions",
90
110
  xstyle: 'StyleX styles for root container',
91
111
  },
92
112
  };
@@ -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
  },