@astryxdesign/core 0.2.0-canary.8d64648 → 0.2.0-canary.8dfd7cf

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (872) hide show
  1. package/dist/AlertDialog/AlertDialog.d.ts +1 -1
  2. package/dist/AlertDialog/AlertDialog.js +1 -1
  3. package/dist/AppShell/AppShell.d.ts +2 -20
  4. package/dist/AppShell/AppShell.d.ts.map +1 -1
  5. package/dist/AppShell/AppShell.js +1 -14
  6. package/dist/AppShell/index.d.ts +20 -1
  7. package/dist/AppShell/index.d.ts.map +1 -1
  8. package/dist/AppShell/index.js +14 -0
  9. package/dist/AspectRatio/AspectRatio.d.ts +1 -1
  10. package/dist/AspectRatio/AspectRatio.js +1 -1
  11. package/dist/Avatar/Avatar.d.ts +1 -1
  12. package/dist/Avatar/Avatar.d.ts.map +1 -1
  13. package/dist/Avatar/Avatar.js +4 -4
  14. package/dist/Avatar/AvatarStatusDot.d.ts +2 -26
  15. package/dist/Avatar/AvatarStatusDot.d.ts.map +1 -1
  16. package/dist/Avatar/AvatarStatusDot.js +1 -22
  17. package/dist/Avatar/index.d.ts +26 -1
  18. package/dist/Avatar/index.d.ts.map +1 -1
  19. package/dist/Avatar/index.js +21 -0
  20. package/dist/AvatarGroup/AvatarGroup.d.ts +1 -1
  21. package/dist/AvatarGroup/AvatarGroup.js +1 -1
  22. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts +1 -1
  23. package/dist/AvatarGroup/AvatarGroupOverflow.js +1 -1
  24. package/dist/Badge/Badge.d.ts +2 -30
  25. package/dist/Badge/Badge.d.ts.map +1 -1
  26. package/dist/Badge/Badge.js +2 -17
  27. package/dist/Badge/index.d.ts +31 -2
  28. package/dist/Badge/index.d.ts.map +1 -1
  29. package/dist/Badge/index.js +15 -1
  30. package/dist/Banner/Banner.d.ts +2 -37
  31. package/dist/Banner/Banner.d.ts.map +1 -1
  32. package/dist/Banner/Banner.js +6 -34
  33. package/dist/Banner/index.d.ts +37 -1
  34. package/dist/Banner/index.d.ts.map +1 -1
  35. package/dist/Banner/index.js +27 -0
  36. package/dist/Blockquote/Blockquote.d.ts +1 -1
  37. package/dist/Blockquote/Blockquote.js +1 -1
  38. package/dist/Breadcrumbs/BreadcrumbItem.d.ts +1 -1
  39. package/dist/Breadcrumbs/BreadcrumbItem.js +4 -3
  40. package/dist/Breadcrumbs/Breadcrumbs.d.ts +2 -18
  41. package/dist/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  42. package/dist/Breadcrumbs/Breadcrumbs.js +1 -15
  43. package/dist/Breadcrumbs/index.d.ts +18 -1
  44. package/dist/Breadcrumbs/index.d.ts.map +1 -1
  45. package/dist/Breadcrumbs/index.js +14 -0
  46. package/dist/Button/Button.d.ts +2 -20
  47. package/dist/Button/Button.d.ts.map +1 -1
  48. package/dist/Button/Button.js +2 -17
  49. package/dist/Button/index.d.ts +21 -3
  50. package/dist/Button/index.d.ts.map +1 -1
  51. package/dist/Button/index.js +15 -1
  52. package/dist/ButtonGroup/ButtonGroup.d.ts +1 -1
  53. package/dist/ButtonGroup/ButtonGroup.js +1 -1
  54. package/dist/Calendar/Calendar.js +1 -1
  55. package/dist/Calendar/styles.d.ts +2 -2
  56. package/dist/Calendar/styles.js +2 -2
  57. package/dist/Card/Card.d.ts +1 -1
  58. package/dist/Card/Card.js +1 -1
  59. package/dist/Carousel/Carousel.d.ts +1 -1
  60. package/dist/Carousel/Carousel.js +1 -1
  61. package/dist/Center/Center.d.ts +21 -4
  62. package/dist/Center/Center.d.ts.map +1 -1
  63. package/dist/Center/Center.js +11 -3
  64. package/dist/Chat/ChatComposer.d.ts +1 -1
  65. package/dist/Chat/ChatComposer.js +9 -9
  66. package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
  67. package/dist/Chat/ChatComposerDrawer.js +3 -3
  68. package/dist/Chat/ChatComposerInput.d.ts +1 -1
  69. package/dist/Chat/ChatComposerInput.js +1 -1
  70. package/dist/Chat/ChatDictationButton.d.ts +1 -1
  71. package/dist/Chat/ChatDictationButton.js +1 -1
  72. package/dist/Chat/ChatLayout.d.ts +1 -1
  73. package/dist/Chat/ChatLayout.js +1 -1
  74. package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
  75. package/dist/Chat/ChatLayoutScrollButton.js +1 -1
  76. package/dist/Chat/ChatMessage.d.ts +1 -1
  77. package/dist/Chat/ChatMessage.js +1 -1
  78. package/dist/Chat/ChatMessageBubble.d.ts +1 -1
  79. package/dist/Chat/ChatMessageBubble.js +1 -1
  80. package/dist/Chat/ChatMessageList.d.ts +1 -1
  81. package/dist/Chat/ChatMessageList.js +1 -1
  82. package/dist/Chat/ChatSendButton.d.ts.map +1 -1
  83. package/dist/Chat/ChatSendButton.js +4 -2
  84. package/dist/Chat/ChatSystemMessage.d.ts +1 -1
  85. package/dist/Chat/ChatSystemMessage.js +1 -1
  86. package/dist/Chat/ChatTokenizedText.d.ts +1 -1
  87. package/dist/Chat/ChatTokenizedText.js +1 -1
  88. package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
  89. package/dist/CheckboxInput/CheckboxInput.js +1 -1
  90. package/dist/CheckboxList/CheckboxList.d.ts +1 -1
  91. package/dist/CheckboxList/CheckboxList.js +1 -1
  92. package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
  93. package/dist/CheckboxList/CheckboxListItem.js +1 -1
  94. package/dist/Citation/Citation.d.ts +1 -1
  95. package/dist/Citation/Citation.js +1 -1
  96. package/dist/ClickableCard/ClickableCard.d.ts +3 -3
  97. package/dist/ClickableCard/ClickableCard.js +3 -3
  98. package/dist/Code/Code.d.ts +2 -2
  99. package/dist/Code/Code.js +2 -2
  100. package/dist/Collapsible/Collapsible.d.ts +1 -1
  101. package/dist/Collapsible/Collapsible.js +3 -3
  102. package/dist/Collapsible/CollapsibleGroup.d.ts +1 -1
  103. package/dist/Collapsible/CollapsibleGroup.js +1 -1
  104. package/dist/Collapsible/CollapsibleGroupContext.js +1 -1
  105. package/dist/CommandPalette/CommandPalette.d.ts +1 -1
  106. package/dist/CommandPalette/CommandPalette.js +1 -1
  107. package/dist/CommandPalette/CommandPaletteEmpty.js +1 -1
  108. package/dist/CommandPalette/CommandPaletteFooter.js +1 -1
  109. package/dist/CommandPalette/CommandPaletteGroup.js +1 -1
  110. package/dist/CommandPalette/CommandPaletteInput.d.ts +2 -2
  111. package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
  112. package/dist/CommandPalette/CommandPaletteInput.js +4 -2
  113. package/dist/CommandPalette/CommandPaletteItem.d.ts +1 -1
  114. package/dist/CommandPalette/CommandPaletteItem.js +1 -1
  115. package/dist/CommandPalette/CommandPaletteList.js +1 -1
  116. package/dist/ContextMenu/ContextMenu.d.ts +2 -2
  117. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  118. package/dist/ContextMenu/ContextMenu.js +14 -5
  119. package/dist/DateInput/DateInput.js +1 -1
  120. package/dist/DateRangeInput/DateRangeInput.js +1 -1
  121. package/dist/DateTimeInput/DateTimeInput.js +1 -1
  122. package/dist/Dialog/Dialog.d.ts +46 -23
  123. package/dist/Dialog/Dialog.d.ts.map +1 -1
  124. package/dist/Dialog/Dialog.js +59 -31
  125. package/dist/Dialog/DialogHeader.d.ts +1 -1
  126. package/dist/Dialog/DialogHeader.js +1 -1
  127. package/dist/Dialog/index.d.ts +18 -1
  128. package/dist/Dialog/index.d.ts.map +1 -1
  129. package/dist/Dialog/index.js +14 -0
  130. package/dist/Divider/Divider.d.ts +2 -18
  131. package/dist/Divider/Divider.d.ts.map +1 -1
  132. package/dist/Divider/Divider.js +1 -15
  133. package/dist/Divider/index.d.ts +18 -1
  134. package/dist/Divider/index.d.ts.map +1 -1
  135. package/dist/Divider/index.js +14 -0
  136. package/dist/DropdownMenu/DropdownMenu.d.ts +9 -3
  137. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  138. package/dist/DropdownMenu/DropdownMenu.js +23 -19
  139. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +18 -12
  140. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  141. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +38 -63
  142. package/dist/DropdownMenu/DropdownMenuItem.d.ts +1 -1
  143. package/dist/DropdownMenu/DropdownMenuItem.js +1 -1
  144. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  145. package/dist/DropdownMenu/DropdownMenuRadioItem.js +5 -1
  146. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +1 -1
  147. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  148. package/dist/DropdownMenu/DropdownMenuSubMenu.js +5 -5
  149. package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
  150. package/dist/DropdownMenu/renderDropdownItems.js +6 -4
  151. package/dist/EmptyState/EmptyState.d.ts +1 -1
  152. package/dist/EmptyState/EmptyState.js +1 -1
  153. package/dist/Field/Field.d.ts +1 -1
  154. package/dist/Field/Field.js +1 -1
  155. package/dist/Field/FieldLabel.d.ts +2 -2
  156. package/dist/Field/FieldLabel.d.ts.map +1 -1
  157. package/dist/Field/FieldLabel.js +41 -2
  158. package/dist/FieldStatus/FieldStatus.d.ts +1 -18
  159. package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
  160. package/dist/FieldStatus/FieldStatus.js +1 -15
  161. package/dist/FieldStatus/index.d.ts +19 -1
  162. package/dist/FieldStatus/index.d.ts.map +1 -1
  163. package/dist/FieldStatus/index.js +14 -0
  164. package/dist/FileInput/FileInput.js +1 -1
  165. package/dist/FormLayout/FormLayout.d.ts +1 -1
  166. package/dist/FormLayout/FormLayout.d.ts.map +1 -1
  167. package/dist/FormLayout/FormLayout.js +1 -1
  168. package/dist/Grid/Grid.d.ts +1 -1
  169. package/dist/Grid/Grid.js +1 -1
  170. package/dist/Grid/GridSpan.d.ts +1 -1
  171. package/dist/Grid/GridSpan.js +1 -1
  172. package/dist/HStack/HStack.d.ts +1 -1
  173. package/dist/HStack/HStack.js +1 -1
  174. package/dist/Heading/Heading.d.ts +2 -2
  175. package/dist/Heading/Heading.js +2 -2
  176. package/dist/HoverCard/HoverCard.d.ts +1 -1
  177. package/dist/HoverCard/HoverCard.js +1 -1
  178. package/dist/Icon/Icon.d.ts +1 -1
  179. package/dist/Icon/Icon.d.ts.map +1 -1
  180. package/dist/Icon/Icon.js +4 -2
  181. package/dist/Icon/globalIconRegistry.d.ts +6 -4
  182. package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
  183. package/dist/Icon/globalIconRegistry.js +25 -6
  184. package/dist/Icon/index.d.ts +3 -2
  185. package/dist/Icon/index.d.ts.map +1 -1
  186. package/dist/Icon/index.js +1 -0
  187. package/dist/Icon/useIcon.d.ts +14 -0
  188. package/dist/Icon/useIcon.d.ts.map +1 -0
  189. package/dist/Icon/useIcon.js +21 -0
  190. package/dist/IconButton/IconButton.d.ts +1 -1
  191. package/dist/IconButton/IconButton.js +1 -1
  192. package/dist/InputGroup/InputGroup.d.ts +1 -1
  193. package/dist/InputGroup/InputGroup.js +1 -1
  194. package/dist/InputGroup/InputGroupText.d.ts +1 -1
  195. package/dist/InputGroup/InputGroupText.js +1 -1
  196. package/dist/Item/Item.d.ts +1 -1
  197. package/dist/Item/Item.js +1 -1
  198. package/dist/Kbd/Kbd.d.ts +1 -1
  199. package/dist/Kbd/Kbd.js +1 -1
  200. package/dist/Layout/Layout.d.ts +1 -1
  201. package/dist/Layout/Layout.js +1 -1
  202. package/dist/Layout/LayoutContent.d.ts +1 -1
  203. package/dist/Layout/LayoutContent.js +1 -1
  204. package/dist/Layout/LayoutFooter.d.ts +1 -1
  205. package/dist/Layout/LayoutFooter.js +1 -1
  206. package/dist/Layout/LayoutHeader.d.ts +1 -1
  207. package/dist/Layout/LayoutHeader.js +1 -1
  208. package/dist/Layout/LayoutPanel.d.ts +1 -1
  209. package/dist/Layout/LayoutPanel.js +1 -1
  210. package/dist/Lightbox/Lightbox.d.ts +1 -1
  211. package/dist/Lightbox/Lightbox.js +1 -1
  212. package/dist/Link/Link.d.ts +1 -1
  213. package/dist/Link/Link.js +1 -1
  214. package/dist/Link/LinkProvider.d.ts +2 -2
  215. package/dist/Link/LinkProvider.js +2 -2
  216. package/dist/List/List.d.ts +1 -1
  217. package/dist/List/List.js +1 -1
  218. package/dist/List/ListItem.d.ts +1 -1
  219. package/dist/List/ListItem.js +1 -1
  220. package/dist/Markdown/Markdown.js +4 -4
  221. package/dist/MetadataList/MetadataList.d.ts +1 -1
  222. package/dist/MetadataList/MetadataList.js +1 -1
  223. package/dist/MetadataList/MetadataListItem.d.ts +1 -1
  224. package/dist/MetadataList/MetadataListItem.js +1 -1
  225. package/dist/MobileNav/MobileNav.d.ts +1 -1
  226. package/dist/MobileNav/MobileNav.js +1 -1
  227. package/dist/MoreMenu/MoreMenu.d.ts +1 -1
  228. package/dist/MoreMenu/MoreMenu.js +3 -3
  229. package/dist/MultiSelector/MultiSelector.d.ts +1 -1
  230. package/dist/MultiSelector/MultiSelector.js +1 -1
  231. package/dist/NavIcon/NavIcon.d.ts +1 -1
  232. package/dist/NavIcon/NavIcon.js +1 -1
  233. package/dist/NumberInput/NumberInput.d.ts +1 -1
  234. package/dist/NumberInput/NumberInput.js +1 -1
  235. package/dist/Outline/Outline.js +1 -1
  236. package/dist/OverflowList/OverflowList.d.ts +1 -1
  237. package/dist/OverflowList/OverflowList.js +1 -1
  238. package/dist/Pagination/Pagination.d.ts +1 -20
  239. package/dist/Pagination/Pagination.d.ts.map +1 -1
  240. package/dist/Pagination/Pagination.js +1 -15
  241. package/dist/Pagination/index.d.ts +21 -1
  242. package/dist/Pagination/index.d.ts.map +1 -1
  243. package/dist/Pagination/index.js +14 -0
  244. package/dist/Popover/Popover.d.ts +20 -3
  245. package/dist/Popover/Popover.d.ts.map +1 -1
  246. package/dist/Popover/Popover.js +5 -1
  247. package/dist/Popover/usePopover.d.ts.map +1 -1
  248. package/dist/Popover/usePopover.js +14 -3
  249. package/dist/PowerSearch/PowerSearch.d.ts +1 -1
  250. package/dist/PowerSearch/PowerSearch.js +1 -1
  251. package/dist/ProgressBar/ProgressBar.d.ts +1 -20
  252. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  253. package/dist/ProgressBar/ProgressBar.js +1 -15
  254. package/dist/ProgressBar/index.d.ts +21 -1
  255. package/dist/ProgressBar/index.d.ts.map +1 -1
  256. package/dist/ProgressBar/index.js +14 -0
  257. package/dist/RadioList/RadioList.d.ts +1 -1
  258. package/dist/RadioList/RadioList.js +1 -1
  259. package/dist/RadioList/RadioListItem.d.ts +1 -1
  260. package/dist/RadioList/RadioListItem.js +1 -1
  261. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  262. package/dist/Resizable/ResizeHandle.js +3 -10
  263. package/dist/Section/Section.d.ts +2 -19
  264. package/dist/Section/Section.d.ts.map +1 -1
  265. package/dist/Section/Section.js +1 -15
  266. package/dist/Section/index.d.ts +19 -1
  267. package/dist/Section/index.d.ts.map +1 -1
  268. package/dist/Section/index.js +14 -0
  269. package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
  270. package/dist/SegmentedControl/SegmentedControl.js +1 -1
  271. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  272. package/dist/SegmentedControl/SegmentedControlItem.js +1 -1
  273. package/dist/SelectableCard/SelectableCard.d.ts +4 -3
  274. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  275. package/dist/SelectableCard/SelectableCard.js +15 -3
  276. package/dist/Selector/Selector.d.ts +1 -1
  277. package/dist/Selector/Selector.js +1 -1
  278. package/dist/SideNav/SideNav.d.ts +1 -1
  279. package/dist/SideNav/SideNav.js +1 -1
  280. package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
  281. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  282. package/dist/SideNav/SideNavCollapseButton.js +4 -3
  283. package/dist/SideNav/SideNavHeading.d.ts +1 -1
  284. package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
  285. package/dist/SideNav/SideNavHeading.js +8 -7
  286. package/dist/SideNav/SideNavItem.d.ts +2 -2
  287. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  288. package/dist/SideNav/SideNavItem.js +6 -7
  289. package/dist/SideNav/SideNavSection.d.ts +1 -1
  290. package/dist/SideNav/SideNavSection.js +1 -1
  291. package/dist/Skeleton/Skeleton.d.ts +1 -1
  292. package/dist/Skeleton/Skeleton.js +1 -1
  293. package/dist/Slider/Slider.d.ts.map +1 -1
  294. package/dist/Slider/Slider.js +78 -68
  295. package/dist/Spinner/Spinner.d.ts +1 -1
  296. package/dist/Spinner/Spinner.js +1 -1
  297. package/dist/Stack/Stack.d.ts +1 -1
  298. package/dist/Stack/Stack.js +1 -1
  299. package/dist/Stack/StackItem.d.ts +1 -1
  300. package/dist/Stack/StackItem.js +1 -1
  301. package/dist/StatusDot/StatusDot.d.ts +1 -20
  302. package/dist/StatusDot/StatusDot.d.ts.map +1 -1
  303. package/dist/StatusDot/StatusDot.js +2 -17
  304. package/dist/StatusDot/index.d.ts +21 -1
  305. package/dist/StatusDot/index.d.ts.map +1 -1
  306. package/dist/StatusDot/index.js +14 -0
  307. package/dist/Switch/Switch.d.ts +1 -1
  308. package/dist/Switch/Switch.js +1 -1
  309. package/dist/TabList/Tab.d.ts +1 -1
  310. package/dist/TabList/Tab.js +1 -1
  311. package/dist/TabList/TabList.d.ts +1 -1
  312. package/dist/TabList/TabList.js +1 -1
  313. package/dist/TabList/TabMenu.d.ts +1 -1
  314. package/dist/TabList/TabMenu.js +1 -1
  315. package/dist/Table/BaseTable.d.ts +1 -1
  316. package/dist/Table/BaseTable.js +1 -1
  317. package/dist/Table/Table.d.ts +1 -1
  318. package/dist/Table/Table.js +1 -1
  319. package/dist/Table/TableCell.d.ts +1 -1
  320. package/dist/Table/TableCell.js +1 -1
  321. package/dist/Table/TableHeaderCell.d.ts +1 -1
  322. package/dist/Table/TableHeaderCell.js +1 -1
  323. package/dist/Table/TableRow.d.ts +1 -1
  324. package/dist/Table/TableRow.js +1 -1
  325. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +18 -3
  326. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  327. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +21 -3
  328. package/dist/Text/Text.d.ts +1 -1
  329. package/dist/Text/Text.js +1 -1
  330. package/dist/Text/index.d.ts +31 -1
  331. package/dist/Text/index.d.ts.map +1 -1
  332. package/dist/Text/index.js +23 -0
  333. package/dist/TextArea/TextArea.d.ts +1 -1
  334. package/dist/TextArea/TextArea.js +1 -1
  335. package/dist/TextInput/TextInput.d.ts +1 -1
  336. package/dist/TextInput/TextInput.js +1 -1
  337. package/dist/Thumbnail/Thumbnail.js +1 -1
  338. package/dist/TimeInput/TimeInput.js +1 -1
  339. package/dist/Timestamp/Timestamp.js +1 -1
  340. package/dist/ToggleButton/ToggleButton.d.ts +1 -1
  341. package/dist/ToggleButton/ToggleButton.js +1 -1
  342. package/dist/ToggleButton/ToggleButtonGroup.d.ts +1 -1
  343. package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  344. package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
  345. package/dist/Token/Token.d.ts +2 -27
  346. package/dist/Token/Token.d.ts.map +1 -1
  347. package/dist/Token/Token.js +1 -15
  348. package/dist/Token/index.d.ts +27 -1
  349. package/dist/Token/index.d.ts.map +1 -1
  350. package/dist/Token/index.js +14 -0
  351. package/dist/Tokenizer/Tokenizer.d.ts +1 -1
  352. package/dist/Tokenizer/Tokenizer.js +1 -1
  353. package/dist/Toolbar/Toolbar.d.ts +1 -1
  354. package/dist/Toolbar/Toolbar.js +1 -1
  355. package/dist/Tooltip/Tooltip.d.ts +1 -1
  356. package/dist/Tooltip/Tooltip.js +1 -1
  357. package/dist/TopNav/TopNav.d.ts +1 -1
  358. package/dist/TopNav/TopNav.js +1 -1
  359. package/dist/TopNav/TopNavHeading.d.ts +1 -1
  360. package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
  361. package/dist/TopNav/TopNavHeading.js +7 -6
  362. package/dist/TopNav/TopNavItem.d.ts +1 -1
  363. package/dist/TopNav/TopNavItem.js +1 -1
  364. package/dist/TopNav/TopNavMegaMenu.d.ts +1 -1
  365. package/dist/TopNav/TopNavMegaMenu.js +6 -4
  366. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
  367. package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +1 -1
  368. package/dist/TopNav/TopNavMegaMenuItem.d.ts +1 -1
  369. package/dist/TopNav/TopNavMegaMenuItem.js +1 -1
  370. package/dist/TopNav/TopNavMenu.d.ts +1 -1
  371. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  372. package/dist/TopNav/TopNavMenu.js +5 -4
  373. package/dist/TreeList/TreeList.d.ts +1 -1
  374. package/dist/TreeList/TreeList.js +1 -1
  375. package/dist/TreeList/TreeListBranches.js +1 -1
  376. package/dist/TreeList/TreeListItem.d.ts +1 -1
  377. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  378. package/dist/TreeList/TreeListItem.js +4 -3
  379. package/dist/TreeList/TreeListTypes.d.ts +1 -17
  380. package/dist/TreeList/TreeListTypes.d.ts.map +1 -1
  381. package/dist/TreeList/index.d.ts +18 -1
  382. package/dist/TreeList/index.d.ts.map +1 -1
  383. package/dist/TreeList/index.js +14 -0
  384. package/dist/Typeahead/BaseTypeahead.d.ts +1 -1
  385. package/dist/Typeahead/BaseTypeahead.js +1 -1
  386. package/dist/Typeahead/Typeahead.d.ts +1 -1
  387. package/dist/Typeahead/Typeahead.js +1 -1
  388. package/dist/Typeahead/TypeaheadItem.d.ts +1 -1
  389. package/dist/Typeahead/TypeaheadItem.js +1 -1
  390. package/dist/VStack/VStack.d.ts +1 -1
  391. package/dist/VStack/VStack.js +1 -1
  392. package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  393. package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
  394. package/dist/astryx.css +35 -16
  395. package/dist/astryx.umd.js +49 -49
  396. package/dist/astryx.umd.js.map +4 -4
  397. package/dist/hooks/containerReveal.pool.stylex.d.ts +49 -27
  398. package/dist/hooks/containerReveal.pool.stylex.d.ts.map +1 -1
  399. package/dist/hooks/containerReveal.pool.stylex.js +40 -29
  400. package/dist/hooks/useContainerReveal.d.ts +1 -1
  401. package/dist/hooks/useContainerReveal.d.ts.map +1 -1
  402. package/dist/hooks/useContainerReveal.js +1 -1
  403. package/dist/hooks/useInputContainer.d.ts.map +1 -1
  404. package/dist/hooks/useInputContainer.js +29 -1
  405. package/dist/hooks/useKeyboardHint.d.ts +1 -1
  406. package/dist/hooks/useKeyboardHint.js +1 -1
  407. package/dist/index.d.ts +2 -1
  408. package/dist/index.d.ts.map +1 -1
  409. package/dist/index.js +5 -1
  410. package/dist/theme/Theme.d.ts.map +1 -1
  411. package/dist/theme/Theme.js +2 -7
  412. package/dist/theme/defineTheme.d.ts.map +1 -1
  413. package/dist/theme/defineTheme.js +4 -1
  414. package/dist/theme/index.d.ts +4 -2
  415. package/dist/theme/index.d.ts.map +1 -1
  416. package/dist/theme/index.js +2 -1
  417. package/dist/theme/themeRegistry.d.ts +32 -0
  418. package/dist/theme/themeRegistry.d.ts.map +1 -0
  419. package/dist/theme/themeRegistry.js +49 -0
  420. package/dist/theme/types.d.ts +1 -30
  421. package/dist/theme/types.d.ts.map +1 -1
  422. package/dist/theme/useTheme.d.ts +9 -0
  423. package/dist/theme/useTheme.d.ts.map +1 -1
  424. package/dist/theme/useTheme.js +82 -27
  425. package/dist/utils/rtlStyles.d.ts +21 -0
  426. package/dist/utils/rtlStyles.d.ts.map +1 -1
  427. package/dist/utils/rtlStyles.js +26 -1
  428. package/groups.doc.mjs +2 -2
  429. package/package.json +2 -11
  430. package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
  431. package/src/AlertDialog/AlertDialog.tsx +1 -1
  432. package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
  433. package/src/AppShell/AppShell.doc.mjs +3 -3
  434. package/src/AppShell/AppShell.tsx +2 -20
  435. package/src/AppShell/index.ts +20 -1
  436. package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
  437. package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
  438. package/src/AspectRatio/AspectRatio.tsx +1 -1
  439. package/src/Avatar/Avatar.doc.mjs +3 -3
  440. package/src/Avatar/Avatar.tsx +8 -3
  441. package/src/Avatar/AvatarStatusDot.doc.mjs +1 -1
  442. package/src/Avatar/AvatarStatusDot.tsx +2 -27
  443. package/src/Avatar/index.ts +26 -1
  444. package/src/AvatarGroup/AvatarGroup.doc.mjs +3 -3
  445. package/src/AvatarGroup/AvatarGroup.tsx +1 -1
  446. package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
  447. package/src/AvatarGroup/AvatarGroupOverflow.tsx +1 -1
  448. package/src/Badge/Badge.doc.mjs +3 -3
  449. package/src/Badge/Badge.tsx +2 -31
  450. package/src/Badge/index.ts +32 -6
  451. package/src/Banner/Banner.doc.mjs +3 -3
  452. package/src/Banner/Banner.tsx +8 -45
  453. package/src/Banner/index.ts +39 -7
  454. package/src/Blockquote/Blockquote.doc.mjs +3 -3
  455. package/src/Blockquote/Blockquote.tsx +1 -1
  456. package/src/Breadcrumbs/BreadcrumbItem.doc.mjs +1 -1
  457. package/src/Breadcrumbs/BreadcrumbItem.tsx +5 -3
  458. package/src/Breadcrumbs/Breadcrumbs.doc.mjs +3 -3
  459. package/src/Breadcrumbs/Breadcrumbs.tsx +2 -19
  460. package/src/Breadcrumbs/index.ts +19 -5
  461. package/src/Button/Button.doc.mjs +3 -3
  462. package/src/Button/Button.tsx +2 -21
  463. package/src/Button/index.ts +22 -7
  464. package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -3
  465. package/src/ButtonGroup/ButtonGroup.tsx +1 -1
  466. package/src/Calendar/Calendar.doc.mjs +3 -3
  467. package/src/Calendar/Calendar.test.tsx +15 -3
  468. package/src/Calendar/Calendar.tsx +1 -1
  469. package/src/Calendar/styles.ts +2 -2
  470. package/src/Card/Card.doc.mjs +3 -3
  471. package/src/Card/Card.tsx +1 -1
  472. package/src/Carousel/Carousel.doc.mjs +3 -3
  473. package/src/Carousel/Carousel.tsx +1 -1
  474. package/src/Center/Center.doc.mjs +41 -3
  475. package/src/Center/Center.test.tsx +75 -0
  476. package/src/Center/Center.tsx +38 -3
  477. package/src/Chat/Chat.doc.mjs +3 -3
  478. package/src/Chat/ChatComposer.doc.mjs +1 -1
  479. package/src/Chat/ChatComposer.tsx +5 -5
  480. package/src/Chat/ChatComposerDrawer.doc.mjs +1 -1
  481. package/src/Chat/ChatComposerDrawer.tsx +3 -3
  482. package/src/Chat/ChatComposerInput.doc.mjs +1 -1
  483. package/src/Chat/ChatComposerInput.tsx +1 -1
  484. package/src/Chat/ChatComposerTokenElement.doc.mjs +1 -1
  485. package/src/Chat/ChatDictationButton.doc.mjs +3 -3
  486. package/src/Chat/ChatDictationButton.tsx +1 -1
  487. package/src/Chat/ChatLayout.doc.mjs +1 -1
  488. package/src/Chat/ChatLayout.tsx +1 -1
  489. package/src/Chat/ChatLayoutScrollButton.doc.mjs +1 -1
  490. package/src/Chat/ChatLayoutScrollButton.tsx +1 -1
  491. package/src/Chat/ChatMessage.doc.mjs +1 -1
  492. package/src/Chat/ChatMessage.tsx +1 -1
  493. package/src/Chat/ChatMessageBubble.doc.mjs +1 -1
  494. package/src/Chat/ChatMessageBubble.tsx +1 -1
  495. package/src/Chat/ChatMessageList.doc.mjs +1 -1
  496. package/src/Chat/ChatMessageList.tsx +1 -1
  497. package/src/Chat/ChatMessageMetadata.doc.mjs +1 -1
  498. package/src/Chat/ChatSendButton.doc.mjs +1 -1
  499. package/src/Chat/ChatSendButton.tsx +5 -3
  500. package/src/Chat/ChatSystemMessage.doc.mjs +1 -1
  501. package/src/Chat/ChatSystemMessage.tsx +1 -1
  502. package/src/Chat/ChatTokenizedText.doc.mjs +1 -1
  503. package/src/Chat/ChatTokenizedText.tsx +1 -1
  504. package/src/Chat/ChatToolCalls.doc.mjs +3 -3
  505. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
  506. package/src/CheckboxInput/CheckboxInput.test.tsx +33 -0
  507. package/src/CheckboxInput/CheckboxInput.tsx +1 -1
  508. package/src/CheckboxList/CheckboxList.doc.mjs +3 -3
  509. package/src/CheckboxList/CheckboxList.tsx +1 -1
  510. package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
  511. package/src/CheckboxList/CheckboxListItem.tsx +1 -1
  512. package/src/Citation/Citation.doc.mjs +2 -2
  513. package/src/Citation/Citation.tsx +1 -1
  514. package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
  515. package/src/ClickableCard/ClickableCard.tsx +3 -3
  516. package/src/Code/Code.tsx +2 -2
  517. package/src/CodeBlock/Code.doc.mjs +1 -1
  518. package/src/CodeBlock/CodeBlock.doc.mjs +3 -3
  519. package/src/Collapsible/Collapsible.doc.mjs +3 -3
  520. package/src/Collapsible/Collapsible.tsx +3 -3
  521. package/src/Collapsible/CollapsibleGroup.doc.mjs +1 -1
  522. package/src/Collapsible/CollapsibleGroup.tsx +1 -1
  523. package/src/Collapsible/CollapsibleGroupContext.tsx +1 -1
  524. package/src/Collapsible/useCollapsible.doc.mjs +2 -2
  525. package/src/CommandPalette/CommandPalette.doc.mjs +4 -4
  526. package/src/CommandPalette/CommandPalette.tsx +1 -1
  527. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +1 -1
  528. package/src/CommandPalette/CommandPaletteEmpty.tsx +1 -1
  529. package/src/CommandPalette/CommandPaletteFooter.doc.mjs +1 -1
  530. package/src/CommandPalette/CommandPaletteFooter.tsx +1 -1
  531. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +1 -1
  532. package/src/CommandPalette/CommandPaletteGroup.tsx +1 -1
  533. package/src/CommandPalette/CommandPaletteInput.doc.mjs +1 -1
  534. package/src/CommandPalette/CommandPaletteInput.tsx +5 -1
  535. package/src/CommandPalette/CommandPaletteItem.doc.mjs +1 -1
  536. package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
  537. package/src/CommandPalette/CommandPaletteList.doc.mjs +1 -1
  538. package/src/CommandPalette/CommandPaletteList.tsx +1 -1
  539. package/src/ContextMenu/ContextMenu.doc.mjs +3 -3
  540. package/src/ContextMenu/ContextMenu.tsx +17 -5
  541. package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
  542. package/src/DateInput/DateInput.doc.mjs +3 -3
  543. package/src/DateInput/DateInput.tsx +1 -1
  544. package/src/DateRangeInput/DateRangeInput.doc.mjs +2 -2
  545. package/src/DateRangeInput/DateRangeInput.tsx +1 -1
  546. package/src/DateTimeInput/DateTimeInput.doc.mjs +3 -3
  547. package/src/DateTimeInput/DateTimeInput.tsx +1 -1
  548. package/src/Dialog/Dialog.doc.mjs +9 -5
  549. package/src/Dialog/Dialog.test.tsx +84 -1
  550. package/src/Dialog/Dialog.tsx +87 -45
  551. package/src/Dialog/DialogHeader.doc.mjs +1 -1
  552. package/src/Dialog/DialogHeader.tsx +1 -1
  553. package/src/Dialog/index.ts +18 -1
  554. package/src/Dialog/useImperativeDialog.doc.mjs +1 -1
  555. package/src/Divider/Divider.doc.mjs +3 -3
  556. package/src/Divider/Divider.tsx +2 -19
  557. package/src/Divider/index.ts +19 -5
  558. package/src/DropdownMenu/DropdownMenu.doc.mjs +20 -5
  559. package/src/DropdownMenu/DropdownMenu.test.tsx +122 -0
  560. package/src/DropdownMenu/DropdownMenu.tsx +31 -20
  561. package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +1 -1
  562. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +41 -64
  563. package/src/DropdownMenu/DropdownMenuItem.doc.mjs +1 -1
  564. package/src/DropdownMenu/DropdownMenuItem.tsx +1 -1
  565. package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +1 -1
  566. package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
  567. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +10 -1
  568. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +64 -0
  569. package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +1 -1
  570. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +17 -0
  571. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +11 -3
  572. package/src/DropdownMenu/renderDropdownItems.tsx +14 -2
  573. package/src/EmptyState/EmptyState.doc.mjs +3 -3
  574. package/src/EmptyState/EmptyState.tsx +1 -1
  575. package/src/Field/Field.doc.mjs +3 -3
  576. package/src/Field/Field.tsx +1 -1
  577. package/src/Field/FieldLabel.doc.mjs +1 -1
  578. package/src/Field/FieldLabel.test.tsx +78 -0
  579. package/src/Field/FieldLabel.tsx +50 -3
  580. package/src/FieldStatus/FieldStatus.doc.mjs +2 -2
  581. package/src/FieldStatus/FieldStatus.tsx +2 -20
  582. package/src/FieldStatus/index.ts +20 -5
  583. package/src/FileInput/FileInput.doc.mjs +3 -3
  584. package/src/FileInput/FileInput.tsx +1 -1
  585. package/src/FormLayout/FormLayout.doc.mjs +3 -3
  586. package/src/FormLayout/FormLayout.tsx +2 -5
  587. package/src/Grid/Grid.doc.mjs +3 -3
  588. package/src/Grid/Grid.tsx +1 -1
  589. package/src/Grid/GridSpan.doc.mjs +1 -1
  590. package/src/Grid/GridSpan.tsx +1 -1
  591. package/src/HStack/HStack.tsx +1 -1
  592. package/src/Heading/Heading.tsx +2 -2
  593. package/src/HoverCard/HoverCard.doc.mjs +3 -3
  594. package/src/HoverCard/HoverCard.tsx +1 -1
  595. package/src/HoverCard/useHoverCard.doc.mjs +2 -2
  596. package/src/Icon/Icon.doc.mjs +3 -3
  597. package/src/Icon/Icon.test.tsx +23 -0
  598. package/src/Icon/Icon.tsx +4 -2
  599. package/src/Icon/globalIconRegistry.test.tsx +52 -1
  600. package/src/Icon/globalIconRegistry.tsx +43 -6
  601. package/src/Icon/index.ts +7 -7
  602. package/src/Icon/useIcon.ts +23 -0
  603. package/src/IconButton/IconButton.doc.mjs +2 -2
  604. package/src/IconButton/IconButton.tsx +1 -1
  605. package/src/InputGroup/InputGroup.doc.mjs +2 -2
  606. package/src/InputGroup/InputGroup.tsx +1 -1
  607. package/src/InputGroup/InputGroupText.doc.mjs +1 -1
  608. package/src/InputGroup/InputGroupText.tsx +1 -1
  609. package/src/Item/Item.doc.mjs +3 -3
  610. package/src/Item/Item.tsx +1 -1
  611. package/src/Kbd/Kbd.doc.mjs +3 -3
  612. package/src/Kbd/Kbd.tsx +1 -1
  613. package/src/Layer/Layer.doc.mjs +2 -2
  614. package/src/Layer/useLayer.doc.mjs +2 -2
  615. package/src/Layout/Layout.doc.mjs +3 -3
  616. package/src/Layout/Layout.tsx +1 -1
  617. package/src/Layout/LayoutContent.doc.mjs +1 -1
  618. package/src/Layout/LayoutContent.tsx +1 -1
  619. package/src/Layout/LayoutFooter.doc.mjs +1 -1
  620. package/src/Layout/LayoutFooter.tsx +1 -1
  621. package/src/Layout/LayoutHeader.doc.mjs +1 -1
  622. package/src/Layout/LayoutHeader.tsx +1 -1
  623. package/src/Layout/LayoutPanel.doc.mjs +1 -1
  624. package/src/Layout/LayoutPanel.tsx +1 -1
  625. package/src/Lightbox/Lightbox.doc.mjs +3 -3
  626. package/src/Lightbox/Lightbox.tsx +1 -1
  627. package/src/Link/Link.doc.mjs +3 -3
  628. package/src/Link/Link.tsx +1 -1
  629. package/src/Link/LinkProvider.doc.mjs +2 -2
  630. package/src/Link/LinkProvider.tsx +2 -2
  631. package/src/List/List.doc.mjs +3 -3
  632. package/src/List/List.tsx +1 -1
  633. package/src/List/ListItem.doc.mjs +2 -2
  634. package/src/List/ListItem.tsx +1 -1
  635. package/src/Markdown/Markdown.doc.mjs +1 -1
  636. package/src/Markdown/Markdown.tsx +3 -3
  637. package/src/MetadataList/MetadataList.doc.mjs +3 -3
  638. package/src/MetadataList/MetadataList.tsx +1 -1
  639. package/src/MetadataList/MetadataListItem.doc.mjs +1 -1
  640. package/src/MetadataList/MetadataListItem.tsx +1 -1
  641. package/src/MobileNav/MobileNav.doc.mjs +3 -3
  642. package/src/MobileNav/MobileNav.tsx +1 -1
  643. package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
  644. package/src/MoreMenu/MoreMenu.tsx +3 -3
  645. package/src/MultiSelector/MultiSelector.doc.mjs +3 -3
  646. package/src/MultiSelector/MultiSelector.tsx +1 -1
  647. package/src/NavIcon/NavIcon.doc.mjs +3 -3
  648. package/src/NavIcon/NavIcon.tsx +1 -1
  649. package/src/NavMenu/NavMenu.doc.mjs +2 -2
  650. package/src/NumberInput/NumberInput.doc.mjs +3 -3
  651. package/src/NumberInput/NumberInput.tsx +1 -1
  652. package/src/Outline/Outline.doc.mjs +3 -3
  653. package/src/Outline/Outline.tsx +1 -1
  654. package/src/OverflowList/OverflowList.doc.mjs +3 -3
  655. package/src/OverflowList/OverflowList.tsx +1 -1
  656. package/src/Overlay/Overlay.doc.mjs +2 -2
  657. package/src/Pagination/Pagination.doc.mjs +3 -3
  658. package/src/Pagination/Pagination.tsx +2 -22
  659. package/src/Pagination/index.ts +21 -1
  660. package/src/Popover/Popover.doc.mjs +31 -3
  661. package/src/Popover/Popover.test.tsx +41 -0
  662. package/src/Popover/Popover.tsx +25 -2
  663. package/src/Popover/usePopover.doc.mjs +2 -2
  664. package/src/Popover/usePopover.tsx +10 -4
  665. package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
  666. package/src/PowerSearch/PowerSearch.tsx +1 -1
  667. package/src/ProgressBar/ProgressBar.doc.mjs +3 -3
  668. package/src/ProgressBar/ProgressBar.tsx +2 -22
  669. package/src/ProgressBar/index.ts +22 -5
  670. package/src/RadioList/RadioList.doc.mjs +3 -3
  671. package/src/RadioList/RadioList.tsx +1 -1
  672. package/src/RadioList/RadioListItem.doc.mjs +1 -1
  673. package/src/RadioList/RadioListItem.tsx +1 -1
  674. package/src/Resizable/Resizable.doc.mjs +2 -2
  675. package/src/Resizable/ResizeHandle.test.tsx +3 -2
  676. package/src/Resizable/ResizeHandle.tsx +8 -12
  677. package/src/Resizable/useResizable.doc.mjs +2 -2
  678. package/src/Section/Section.doc.mjs +3 -3
  679. package/src/Section/Section.tsx +2 -20
  680. package/src/Section/index.ts +20 -5
  681. package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
  682. package/src/SegmentedControl/SegmentedControl.tsx +1 -1
  683. package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
  684. package/src/SegmentedControl/SegmentedControlItem.tsx +1 -1
  685. package/src/SelectableCard/SelectableCard.doc.mjs +4 -2
  686. package/src/SelectableCard/SelectableCard.test.tsx +55 -0
  687. package/src/SelectableCard/SelectableCard.tsx +19 -3
  688. package/src/Selector/Selector.doc.mjs +3 -3
  689. package/src/Selector/Selector.tsx +1 -1
  690. package/src/Selector/SelectorOption.doc.mjs +1 -1
  691. package/src/SideNav/SideNav.doc.mjs +3 -3
  692. package/src/SideNav/SideNav.tsx +1 -1
  693. package/src/SideNav/SideNavCollapseButton.doc.mjs +1 -1
  694. package/src/SideNav/SideNavCollapseButton.tsx +4 -3
  695. package/src/SideNav/SideNavHeading.doc.mjs +1 -1
  696. package/src/SideNav/SideNavHeading.tsx +8 -9
  697. package/src/SideNav/SideNavItem.doc.mjs +1 -1
  698. package/src/SideNav/SideNavItem.tsx +5 -6
  699. package/src/SideNav/SideNavSection.doc.mjs +1 -1
  700. package/src/SideNav/SideNavSection.tsx +1 -1
  701. package/src/Skeleton/Skeleton.doc.mjs +3 -3
  702. package/src/Skeleton/Skeleton.tsx +1 -1
  703. package/src/Slider/Slider.doc.mjs +3 -3
  704. package/src/Slider/Slider.tsx +9 -13
  705. package/src/Spinner/Spinner.doc.mjs +3 -3
  706. package/src/Spinner/Spinner.tsx +1 -1
  707. package/src/Stack/Stack.doc.mjs +3 -3
  708. package/src/Stack/Stack.tsx +1 -1
  709. package/src/Stack/StackItem.tsx +1 -1
  710. package/src/StatusDot/StatusDot.doc.mjs +3 -3
  711. package/src/StatusDot/StatusDot.tsx +2 -22
  712. package/src/StatusDot/index.ts +22 -5
  713. package/src/Switch/Switch.doc.mjs +3 -3
  714. package/src/Switch/Switch.test.tsx +34 -0
  715. package/src/Switch/Switch.tsx +1 -1
  716. package/src/TabList/Tab.doc.mjs +1 -1
  717. package/src/TabList/Tab.tsx +1 -1
  718. package/src/TabList/TabList.doc.mjs +3 -3
  719. package/src/TabList/TabList.tsx +1 -1
  720. package/src/TabList/TabMenu.doc.mjs +1 -1
  721. package/src/TabList/TabMenu.tsx +1 -1
  722. package/src/Table/BaseTable.tsx +1 -1
  723. package/src/Table/Table.doc.mjs +3 -3
  724. package/src/Table/Table.tsx +1 -1
  725. package/src/Table/TableCell.doc.mjs +1 -1
  726. package/src/Table/TableCell.tsx +1 -1
  727. package/src/Table/TableHeaderCell.doc.mjs +1 -1
  728. package/src/Table/TableHeaderCell.tsx +1 -1
  729. package/src/Table/TableRow.doc.mjs +1 -1
  730. package/src/Table/TableRow.tsx +1 -1
  731. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +21 -3
  732. package/src/Table/useTableColumnResize.doc.mjs +1 -1
  733. package/src/Table/useTableColumnSettings.doc.mjs +1 -1
  734. package/src/Table/useTableFilterState.doc.mjs +1 -1
  735. package/src/Table/useTableFiltering.doc.mjs +1 -1
  736. package/src/Table/useTableGroupedRows.doc.mjs +2 -2
  737. package/src/Table/useTablePagination.doc.mjs +1 -1
  738. package/src/Table/useTableRowExpansion.doc.mjs +57 -4
  739. package/src/Table/useTableRowIndex.doc.mjs +2 -2
  740. package/src/Table/useTableRowStatus.doc.mjs +2 -2
  741. package/src/Table/useTableSelection.doc.mjs +1 -1
  742. package/src/Table/useTableSelectionState.doc.mjs +1 -1
  743. package/src/Table/useTableSortable.doc.mjs +1 -1
  744. package/src/Table/useTableStickyColumns.doc.mjs +1 -1
  745. package/src/Table/useTableTreeData.doc.mjs +1 -1
  746. package/src/Table/useTableTreeState.doc.mjs +1 -1
  747. package/src/Text/Heading.doc.mjs +1 -1
  748. package/src/Text/Text.doc.mjs +3 -3
  749. package/src/Text/Text.tsx +1 -1
  750. package/src/Text/index.ts +31 -1
  751. package/src/TextArea/TextArea.doc.mjs +3 -3
  752. package/src/TextArea/TextArea.tsx +1 -1
  753. package/src/TextInput/TextInput.doc.mjs +3 -3
  754. package/src/TextInput/TextInput.tsx +1 -1
  755. package/src/Thumbnail/Thumbnail.doc.mjs +2 -2
  756. package/src/Thumbnail/Thumbnail.tsx +1 -1
  757. package/src/TimeInput/TimeInput.doc.mjs +3 -3
  758. package/src/TimeInput/TimeInput.tsx +1 -1
  759. package/src/Timestamp/Timestamp.doc.mjs +3 -3
  760. package/src/Timestamp/Timestamp.tsx +1 -1
  761. package/src/Toast/Toast.doc.mjs +3 -3
  762. package/src/Toast/useToast.doc.mjs +2 -2
  763. package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
  764. package/src/ToggleButton/ToggleButton.tsx +1 -1
  765. package/src/ToggleButton/ToggleButtonGroup.doc.mjs +1 -1
  766. package/src/ToggleButton/ToggleButtonGroup.tsx +3 -6
  767. package/src/Token/Token.doc.mjs +3 -3
  768. package/src/Token/Token.tsx +2 -28
  769. package/src/Token/index.ts +28 -1
  770. package/src/Tokenizer/Tokenizer.doc.mjs +3 -3
  771. package/src/Tokenizer/Tokenizer.tsx +1 -1
  772. package/src/Toolbar/Toolbar.doc.mjs +3 -3
  773. package/src/Toolbar/Toolbar.tsx +1 -1
  774. package/src/Tooltip/Tooltip.doc.mjs +3 -3
  775. package/src/Tooltip/Tooltip.tsx +1 -1
  776. package/src/Tooltip/useTooltip.doc.mjs +2 -2
  777. package/src/TopNav/TopNav.doc.mjs +3 -3
  778. package/src/TopNav/TopNav.tsx +1 -1
  779. package/src/TopNav/TopNavHeading.doc.mjs +1 -1
  780. package/src/TopNav/TopNavHeading.tsx +7 -8
  781. package/src/TopNav/TopNavItem.doc.mjs +1 -1
  782. package/src/TopNav/TopNavItem.tsx +1 -1
  783. package/src/TopNav/TopNavMegaMenu.doc.mjs +1 -1
  784. package/src/TopNav/TopNavMegaMenu.tsx +6 -4
  785. package/src/TopNav/TopNavMegaMenuFeaturedCard.doc.mjs +1 -1
  786. package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +1 -1
  787. package/src/TopNav/TopNavMegaMenuItem.doc.mjs +1 -1
  788. package/src/TopNav/TopNavMegaMenuItem.tsx +1 -1
  789. package/src/TopNav/TopNavMenu.doc.mjs +1 -1
  790. package/src/TopNav/TopNavMenu.tsx +5 -4
  791. package/src/TreeList/TreeList.doc.mjs +3 -3
  792. package/src/TreeList/TreeList.tsx +1 -1
  793. package/src/TreeList/TreeListBranches.tsx +1 -1
  794. package/src/TreeList/TreeListItem.tsx +4 -3
  795. package/src/TreeList/TreeListTypes.ts +1 -18
  796. package/src/TreeList/index.ts +19 -1
  797. package/src/Typeahead/BaseTypeahead.doc.mjs +1 -1
  798. package/src/Typeahead/BaseTypeahead.tsx +1 -1
  799. package/src/Typeahead/Typeahead.doc.mjs +3 -3
  800. package/src/Typeahead/Typeahead.tsx +1 -1
  801. package/src/Typeahead/TypeaheadItem.doc.mjs +1 -1
  802. package/src/Typeahead/TypeaheadItem.tsx +1 -1
  803. package/src/VStack/VStack.tsx +1 -1
  804. package/src/VisuallyHidden/VisuallyHidden.doc.mjs +3 -3
  805. package/src/VisuallyHidden/VisuallyHidden.tsx +1 -1
  806. package/src/__tests__/inputWidthContract.test.tsx +8 -1
  807. package/src/doc-mjs.d.ts +5 -2
  808. package/src/docPropLiterals.test.ts +1 -1
  809. package/src/docPropReferences.test.ts +1 -1
  810. package/src/hooks/containerReveal.pool.stylex.ts +154 -47
  811. package/src/hooks/useClickableContainer.doc.mjs +2 -2
  812. package/src/hooks/useContainerReveal.doc.mjs +75 -0
  813. package/src/hooks/useContainerReveal.ts +5 -4
  814. package/src/hooks/useEntryAnimation.doc.mjs +2 -2
  815. package/src/hooks/useFocusTrap.doc.mjs +2 -2
  816. package/src/hooks/useGridFocus.doc.mjs +2 -2
  817. package/src/hooks/useHotkeys.doc.mjs +2 -2
  818. package/src/hooks/useImageMode.doc.mjs +2 -2
  819. package/src/hooks/useInputContainer.doc.mjs +2 -2
  820. package/src/hooks/useInputContainer.test.tsx +180 -0
  821. package/src/hooks/useInputContainer.ts +36 -1
  822. package/src/hooks/useKeyboardHint.doc.mjs +2 -2
  823. package/src/hooks/useKeyboardHint.tsx +1 -1
  824. package/src/hooks/useListFocus.doc.mjs +2 -2
  825. package/src/hooks/useMediaQuery.doc.mjs +2 -2
  826. package/src/hooks/useOverflow.doc.mjs +2 -2
  827. package/src/hooks/useScrollLock.doc.mjs +2 -2
  828. package/src/hooks/useScrollOverflow.doc.mjs +2 -2
  829. package/src/hooks/useStreamingText.doc.mjs +2 -2
  830. package/src/hooks/useTreeFocus.doc.mjs +2 -2
  831. package/src/i18n/InternationalizationProvider.doc.mjs +2 -2
  832. package/src/i18n/useTranslator.doc.mjs +2 -2
  833. package/src/index.ts +14 -10
  834. package/src/theme/MediaTheme.doc.mjs +2 -2
  835. package/src/theme/SyntaxTheme.doc.mjs +2 -2
  836. package/src/theme/Theme.doc.mjs +2 -2
  837. package/src/theme/Theme.tsx +3 -7
  838. package/src/theme/defineTheme.ts +5 -1
  839. package/src/theme/index.ts +8 -2
  840. package/src/theme/themeRegistry.test.ts +59 -0
  841. package/src/theme/themeRegistry.ts +53 -0
  842. package/src/theme/types.ts +2 -31
  843. package/src/theme/useTheme.doc.mjs +2 -2
  844. package/src/theme/useTheme.test.tsx +48 -3
  845. package/src/theme/useTheme.ts +100 -29
  846. package/src/utils/rtlStyles.ts +22 -0
  847. package/dist/authoring/doc.d.ts +0 -145
  848. package/dist/authoring/doc.d.ts.map +0 -1
  849. package/dist/authoring/doc.js +0 -100
  850. package/dist/authoring/index.d.ts +0 -29
  851. package/dist/authoring/index.d.ts.map +0 -1
  852. package/dist/authoring/index.js +0 -28
  853. package/dist/authoring/integration.d.ts +0 -35
  854. package/dist/authoring/integration.d.ts.map +0 -1
  855. package/dist/authoring/integration.js +0 -30
  856. package/dist/authoring/template.d.ts +0 -66
  857. package/dist/authoring/template.d.ts.map +0 -1
  858. package/dist/authoring/template.js +0 -55
  859. package/dist/config.d.ts +0 -80
  860. package/dist/config.d.ts.map +0 -1
  861. package/dist/config.js +0 -40
  862. package/dist/docs-types.d.ts +0 -969
  863. package/dist/docs-types.d.ts.map +0 -1
  864. package/dist/docs-types.js +0 -1
  865. package/src/authoring/doc.ts +0 -164
  866. package/src/authoring/index.test.ts +0 -52
  867. package/src/authoring/index.ts +0 -50
  868. package/src/authoring/integration.ts +0 -42
  869. package/src/authoring/template.ts +0 -74
  870. package/src/config.test.ts +0 -16
  871. package/src/config.ts +0 -92
  872. package/src/docs-types.ts +0 -1108
@@ -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,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: 'DropdownMenuItem',
@@ -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';
@@ -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',
@@ -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',
@@ -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();
@@ -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();
@@ -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',
@@ -661,3 +661,20 @@ describe('DropdownMenuSubMenu accessibility (WCAG 2.2 / APG)', () => {
661
661
  });
662
662
  });
663
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, {
@@ -474,11 +474,19 @@ export function DropdownMenuSubMenu(
474
474
  );
475
475
 
476
476
  const endAffordance = hasSpinner ? (
477
- <span {...stylex.props(triggerStyles.caret)}>
477
+ <span
478
+ {...mergeProps(
479
+ themeProps('dropdown-menu-indicator-icon'),
480
+ stylex.props(triggerStyles.caret),
481
+ )}>
478
482
  <Spinner size="sm" />
479
483
  </span>
480
484
  ) : (
481
- <span {...stylex.props(triggerStyles.caret)}>
485
+ <span
486
+ {...mergeProps(
487
+ themeProps('dropdown-menu-indicator-icon'),
488
+ stylex.props(triggerStyles.caret),
489
+ )}>
482
490
  <Icon icon="chevronRight" size="sm" color="secondary" />
483
491
  </span>
484
492
  );
@@ -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,
@@ -57,7 +58,13 @@ export function renderDropdownItems(items: DropdownMenuOption[]): ReactNode {
57
58
  const option = items[i];
58
59
 
59
60
  if ('type' in option && option.type === 'divider') {
60
- elements.push(<Divider key={`divider-${i}`} xstyle={styles.divider} />);
61
+ elements.push(
62
+ <Divider
63
+ key={`divider-${i}`}
64
+ xstyle={styles.divider}
65
+ {...themeProps('dropdown-menu-divider')}
66
+ />,
67
+ );
61
68
  } else if ('type' in option && option.type === 'section') {
62
69
  elements.push(
63
70
  <div
@@ -65,7 +72,12 @@ export function renderDropdownItems(items: DropdownMenuOption[]): ReactNode {
65
72
  role="group"
66
73
  aria-label={option.title}>
67
74
  {option.title && (
68
- <div {...stylex.props(styles.sectionHeading)} aria-hidden="true">
75
+ <div
76
+ aria-hidden="true"
77
+ {...mergeProps(
78
+ themeProps('dropdown-menu-section-heading'),
79
+ stylex.props(styles.sectionHeading),
80
+ )}>
69
81
  {option.title}
70
82
  </div>
71
83
  )}
@@ -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';
@@ -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: 'Field',
@@ -196,7 +196,7 @@ function CustomSliderField() {
196
196
  ],
197
197
  };
198
198
 
199
- /** @type {import('../docs-types').TranslationDoc} */
199
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
200
200
  export const docsZh = {
201
201
  usage: {
202
202
  description: 'Field is a low-level wrapper for custom, native, or third-party controls that do not already provide field label, description, and status UI. Use it when you need the Field shell around a control you own; use styled Astryx inputs like TextInput, Typeahead, and Select directly when they already expose label, description, and validation props.',
@@ -212,7 +212,7 @@ export const docsZh = {
212
212
  },
213
213
  };
214
214
 
215
- /** @type {import('../docs-types').TranslationDoc} */
215
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
216
216
  export const docsDense = {
217
217
  description:
218
218
  'Low-level field shell for custom controls needing label/description/status.',
@@ -13,7 +13,7 @@
13
13
  * - /packages/core/src/Field/Field.test.tsx (tests for new/changed behavior)
14
14
  * - /packages/core/src/Field/index.ts (exports if types change)
15
15
  * - /apps/storybook/stories/Field.stories.tsx (storybook stories)
16
- * - /packages/cli/templates/blocks/components/Field/ (showcase blocks)
16
+ * - /packages/cli/assets/templates/blocks/components/Field/ (showcase blocks)
17
17
  */
18
18
 
19
19
  import {type ReactNode, use} from 'react';
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
2
 
3
- /** @type {import('../docs-types').ComponentDoc} */
3
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
4
4
 
5
5
  export const docs = {
6
6
  name: 'FieldLabel',
@@ -11,6 +11,7 @@
11
11
 
12
12
  import {describe, it, expect, vi} from 'vitest';
13
13
  import {render, screen} from '@testing-library/react';
14
+ import userEvent from '@testing-library/user-event';
14
15
  import {TestIcon} from '../__tests__/TestIcon';
15
16
  import {InternationalizationProvider} from '../i18n';
16
17
  import {FieldLabel} from './FieldLabel';
@@ -119,4 +120,81 @@ describe('FieldLabel', () => {
119
120
  // Info icon should be present
120
121
  expect(document.querySelector('svg')).toBeInTheDocument();
121
122
  });
123
+
124
+ describe('description click forwarding', () => {
125
+ // Renders a real control with the target id so click-forwarding has
126
+ // something to hit, alongside the label whose description forwards clicks.
127
+ function renderWithControl(props: {
128
+ isGroupLabel?: boolean;
129
+ controlType?: string;
130
+ description?: React.ReactNode;
131
+ }) {
132
+ const {isGroupLabel, controlType = 'checkbox', description} = props;
133
+ const onClick = vi.fn();
134
+ render(
135
+ <>
136
+ <input id="ctrl" type={controlType} onClick={onClick} />
137
+ <FieldLabel
138
+ label="Notify"
139
+ inputID="ctrl"
140
+ description={description ?? "We'll email you"}
141
+ descriptionID="ctrl-desc"
142
+ isGroupLabel={isGroupLabel}
143
+ />
144
+ </>,
145
+ );
146
+ return onClick;
147
+ }
148
+
149
+ it('forwards a description click to a click-activatable control (checkbox)', async () => {
150
+ const user = userEvent.setup();
151
+ const onClick = renderWithControl({controlType: 'checkbox'});
152
+ await user.click(screen.getByText("We'll email you"));
153
+ expect(onClick).toHaveBeenCalledTimes(1);
154
+ });
155
+
156
+ it('focuses (does not click) a text input on description click', async () => {
157
+ const user = userEvent.setup();
158
+ const onClick = renderWithControl({controlType: 'text'});
159
+ await user.click(screen.getByText("We'll email you"));
160
+ // Text inputs focus rather than click — matching native label behavior,
161
+ // so no synthetic click fires but the control receives focus.
162
+ expect(onClick).not.toHaveBeenCalled();
163
+ expect(document.getElementById('ctrl')).toHaveFocus();
164
+ });
165
+
166
+ it('does NOT forward description clicks for a group label', async () => {
167
+ const user = userEvent.setup();
168
+ const onClick = renderWithControl({isGroupLabel: true});
169
+ await user.click(screen.getByText("We'll email you"));
170
+ expect(onClick).not.toHaveBeenCalled();
171
+ });
172
+
173
+ it('does NOT hijack clicks on interactive content inside the description', async () => {
174
+ const user = userEvent.setup();
175
+ const linkClick = vi.fn();
176
+ const onClick = renderWithControl({
177
+ description: (
178
+ <>
179
+ See our{' '}
180
+ <a href="#terms" onClick={linkClick}>
181
+ terms
182
+ </a>
183
+ </>
184
+ ),
185
+ });
186
+ await user.click(screen.getByRole('link', {name: 'terms'}));
187
+ // The nested link handles its own click; the control is not toggled.
188
+ expect(linkClick).toHaveBeenCalledTimes(1);
189
+ expect(onClick).not.toHaveBeenCalled();
190
+ });
191
+
192
+ it('keeps the description a sibling of the label (not nested inside it)', () => {
193
+ renderWithControl({});
194
+ const description = screen.getByText("We'll email you");
195
+ // The description must not live inside the <label> — nesting it there
196
+ // would fold it into the control's accessible name.
197
+ expect(description.closest('label')).toBeNull();
198
+ });
199
+ });
122
200
  });
@@ -11,11 +11,11 @@
11
11
  * SYNC: When modified, update these files to stay in sync:
12
12
  * - /packages/core/src/Field/Field.doc.mjs (props table, features, implementation notes)
13
13
  * - /packages/core/src/Field/index.ts (exports if types change)
14
- * - /packages/cli/templates/blocks/components/Field/ (showcase blocks)
14
+ * - /packages/cli/assets/templates/blocks/components/Field/ (showcase blocks)
15
15
  * - /packages/core/locales/en.json (@astryx.field.required / @astryx.field.optional)
16
16
  */
17
17
 
18
- import type {ReactNode} from 'react';
18
+ import {useMemo, useRef, type ReactNode, type RefObject} from 'react';
19
19
  import * as stylex from '@stylexjs/stylex';
20
20
  import type {BaseProps} from '../BaseProps';
21
21
  import {mergeProps} from '../utils';
@@ -31,6 +31,7 @@ import {Icon, renderIconSlot, type IconType} from '../Icon';
31
31
  import {Tooltip} from '../Tooltip';
32
32
  import {useTranslator} from '../i18n';
33
33
  import {themeProps} from '../utils/themeProps';
34
+ import {useInputContainer} from '../hooks';
34
35
 
35
36
  const styles = stylex.create({
36
37
  label: {
@@ -76,6 +77,11 @@ const styles = stylex.create({
76
77
  fontWeight: fontWeightVars['--font-weight-normal'],
77
78
  color: colorVars['--color-text-secondary'],
78
79
  },
80
+ // When the description forwards clicks to a click-activatable control
81
+ // (checkbox/switch), it reads as part of the same hit target as the label.
82
+ descriptionClickable: {
83
+ cursor: 'pointer',
84
+ },
79
85
  });
80
86
 
81
87
  export interface FieldLabelProps extends BaseProps<HTMLLabelElement> {
@@ -194,6 +200,41 @@ export function FieldLabel({
194
200
  // label styling and slots. The group references it via `aria-labelledby`.
195
201
  const LabelElement = isGroupLabel ? 'span' : 'label';
196
202
 
203
+ // Clicking the description forwards to the associated control, so the whole
204
+ // label area (label text + description) is one hit target — mirroring native
205
+ // `<label>` click behavior, which the description can't get from `htmlFor`
206
+ // because it stays a sibling `<span>` (nesting it in the `<label>` would fold
207
+ // it into the control's accessible name and double-announce it alongside
208
+ // `aria-describedby`). A group label names a group, not one control, so it
209
+ // has nothing to forward to.
210
+ const forwardsDescriptionClick = !isGroupLabel && inputID != null;
211
+
212
+ // Reuse `useInputContainer` — the same hook input wrappers use to forward
213
+ // clicks on non-interactive chrome to their control. It skips nested
214
+ // interactive content (a link/button inside a ReactNode description) and
215
+ // guards against forwarding during text selection, so the description needs
216
+ // no bespoke click logic. The "input" is resolved from `inputID` lazily via
217
+ // a ref-shaped object, since FieldLabel points at the control by id rather
218
+ // than holding a ref to it.
219
+ const descriptionRef = useRef<HTMLSpanElement>(null);
220
+ const controlRef = useMemo<RefObject<HTMLElement | null>>(
221
+ () => ({
222
+ get current() {
223
+ return inputID == null
224
+ ? null
225
+ : (descriptionRef.current?.ownerDocument.getElementById(inputID) ??
226
+ null);
227
+ },
228
+ set current(_value) {},
229
+ }),
230
+ [inputID],
231
+ );
232
+ const descriptionClickProps = useInputContainer({
233
+ containerRef: descriptionRef,
234
+ inputRef: controlRef,
235
+ disabled: !forwardsDescriptionClick,
236
+ });
237
+
197
238
  const labelContent = (
198
239
  <>
199
240
  {labelIcon && renderIconSlot(labelIcon, {size: 'sm', color: 'inherit'})}
@@ -236,8 +277,14 @@ export function FieldLabel({
236
277
  </LabelElement>
237
278
  {description && (
238
279
  <span
280
+ ref={forwardsDescriptionClick ? descriptionRef : undefined}
239
281
  id={descriptionID}
240
- {...stylex.props(styles.description, isLabelHidden && styles.srOnly)}>
282
+ {...(forwardsDescriptionClick ? descriptionClickProps : undefined)}
283
+ {...stylex.props(
284
+ styles.description,
285
+ forwardsDescriptionClick && styles.descriptionClickable,
286
+ isLabelHidden && styles.srOnly,
287
+ )}>
241
288
  {description}
242
289
  </span>
243
290
  )}