@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
@@ -13,7 +13,7 @@
13
13
  * - /packages/core/src/Dialog/Dialog.test.tsx (tests for new/changed behavior)
14
14
  * - /packages/core/src/Dialog/index.ts (exports if types change)
15
15
  * - /apps/storybook/stories/Dialog.stories.tsx (storybook stories)
16
- * - /packages/cli/templates/blocks/components/Dialog/ (showcase blocks)
16
+ * - /packages/cli/assets/templates/blocks/components/Dialog/ (showcase blocks)
17
17
  */
18
18
 
19
19
  import {
@@ -49,6 +49,7 @@ import {mergeProps, mergeRefs} from '../utils';
49
49
  import {devWarn} from '../utils/devWarning';
50
50
  import {DialogContext} from './DialogContext';
51
51
  import {themeProps} from '../utils/themeProps';
52
+ import type {DialogVariantMap} from './index';
52
53
 
53
54
  /**
54
55
  * Calculate a directional translate offset for dialog entry animation.
@@ -69,24 +70,6 @@ function getDialogDirection(
69
70
  };
70
71
  }
71
72
 
72
- /**
73
- * Extensible variant map for Dialog.
74
- *
75
- * Theme packages can add custom variants via TypeScript module augmentation:
76
- * @example
77
- * ```
78
- * declare module '@astryxdesign/core/Dialog' {
79
- * interface DialogVariantMap {
80
- * 'drawer': true;
81
- * }
82
- * }
83
- * ```
84
- */
85
- export interface DialogVariantMap {
86
- standard: true;
87
- fullscreen: true;
88
- }
89
-
90
73
  /**
91
74
  * Dialog variant type
92
75
  * - standard: Normal dialog with configurable width/height
@@ -104,16 +87,38 @@ export type DialogVariant = keyof DialogVariantMap;
104
87
  */
105
88
  export type DialogPurpose = 'required' | 'form' | 'info';
106
89
 
107
- /**
108
- * Position configuration for static dialog positioning
109
- */
110
- export interface DialogPosition {
111
- bottom?: number | string;
112
- left?: number | string;
113
- right?: number | string;
90
+ /** Block-axis offsets — always allowed, independent of inline direction. */
91
+ interface DialogBlockPosition {
114
92
  top?: number | string;
93
+ bottom?: number | string;
115
94
  }
116
95
 
96
+ /**
97
+ * Static position for a dialog. The inline axis is logical XOR physical — the
98
+ * type forbids mixing the two, so a single dialog can't be positioned both ways:
99
+ * - Logical `start`/`end` map to `inset-inline-*` and mirror under RTL (preferred).
100
+ * - Physical `left`/`right` are deprecated, do not mirror, and are removed in a
101
+ * future major.
102
+ * Block-axis `top`/`bottom` may be combined with either.
103
+ */
104
+ export type DialogPosition =
105
+ | (DialogBlockPosition & {
106
+ /** Logical inline-start offset (`inset-inline-start`); mirrors under RTL. */
107
+ start?: number | string;
108
+ /** Logical inline-end offset (`inset-inline-end`); mirrors under RTL. */
109
+ end?: number | string;
110
+ left?: never;
111
+ right?: never;
112
+ })
113
+ | (DialogBlockPosition & {
114
+ /** @deprecated Use `start`. Physical (never mirrors); removed in a future major. */
115
+ left?: number | string;
116
+ /** @deprecated Use `end`. Physical (never mirrors); removed in a future major. */
117
+ right?: number | string;
118
+ start?: never;
119
+ end?: never;
120
+ });
121
+
117
122
  const enterDirectional = stylex.keyframes({
118
123
  from: {
119
124
  opacity: 0,
@@ -215,30 +220,62 @@ const dynamicStyles = stylex.create({
215
220
  maxHeight: typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight,
216
221
  }),
217
222
  position: (
218
- top: number | string | undefined,
219
- right: number | string | undefined,
220
- bottom: number | string | undefined,
221
- left: number | string | undefined,
223
+ top: string,
224
+ insetInlineStart: string,
225
+ insetInlineEnd: string,
226
+ right: string,
227
+ bottom: string,
228
+ left: string,
222
229
  ) => ({
223
- // When position is set, disable auto margin and use fixed positioning
230
+ // Assigns pre-resolved offsets from resolveDialogPositionOffsets(). This
231
+ // literal has no logic — StyleX can't analyze a helper, so the values
232
+ // (logical start/end → inset-inline-*, physical left/right, `auto`
233
+ // fallbacks) are computed at the call site and passed in.
224
234
  margin: 0,
225
- top: top !== undefined ? formatPosition(top) : 'auto',
226
- right: right !== undefined ? formatPosition(right) : 'auto',
227
- bottom: bottom !== undefined ? formatPosition(bottom) : 'auto',
228
- left: left !== undefined ? formatPosition(left) : 'auto',
235
+ top,
236
+ insetInlineStart,
237
+ insetInlineEnd,
238
+ // eslint-disable-next-line @astryx/no-physical-properties -- deprecated consumer-facing DialogPosition.right; physical by contract, superseded by logical `end`
239
+ right,
240
+ bottom,
241
+ // eslint-disable-next-line @astryx/no-physical-properties -- deprecated consumer-facing DialogPosition.left; physical by contract, superseded by logical `start`
242
+ left,
229
243
  }),
230
244
  });
231
245
 
232
246
  /**
233
247
  * Format position value - numbers become pixels, strings pass through, undefined becomes null
234
248
  */
235
- function formatPosition(value: number | string | undefined): string | null {
236
- if (value === undefined) {
237
- return null;
238
- }
249
+ function formatPosition(value: number | string): string {
239
250
  return typeof value === 'number' ? `${value}px` : value;
240
251
  }
241
252
 
253
+ /**
254
+ * Map a {@link DialogPosition} to resolved CSS offsets. Logical `start`/`end`
255
+ * become `inset-inline-*` (mirror under RTL); physical `left`/`right` stay
256
+ * physical. The union type guarantees at most one inline pair is set, so no
257
+ * precedence is needed — each unset offset falls back to `auto`.
258
+ *
259
+ * Not re-exported from the package; internal to Dialog. Directly unit-tested
260
+ * so the mapping is verified without StyleX class compilation.
261
+ *
262
+ * @see DialogPosition
263
+ */
264
+ export function resolveDialogPositionOffsets(position: DialogPosition) {
265
+ const {top, bottom, start, end, left, right} = position;
266
+
267
+ return {
268
+ top: top !== undefined ? formatPosition(top) : 'auto',
269
+ bottom: bottom !== undefined ? formatPosition(bottom) : 'auto',
270
+ // Logical offsets mirror under RTL (preferred replacements).
271
+ insetInlineStart: start !== undefined ? formatPosition(start) : 'auto',
272
+ insetInlineEnd: end !== undefined ? formatPosition(end) : 'auto',
273
+ // Deprecated physical offsets never mirror.
274
+ left: left !== undefined ? formatPosition(left) : 'auto',
275
+ right: right !== undefined ? formatPosition(right) : 'auto',
276
+ };
277
+ }
278
+
242
279
  export interface DialogProps extends BaseProps<HTMLDialogElement> {
243
280
  /** Ref forwarded to the root element */
244
281
  ref?: React.Ref<HTMLDialogElement>;
@@ -632,12 +669,17 @@ export function Dialog({
632
669
  styles.backdrop,
633
670
  !isFullscreen && dynamicStyles.sizing(width, maxHeight),
634
671
  hasPosition &&
635
- dynamicStyles.position(
636
- position?.top,
637
- position?.right,
638
- position?.bottom,
639
- position?.left,
640
- ),
672
+ (() => {
673
+ const o = resolveDialogPositionOffsets(position);
674
+ return dynamicStyles.position(
675
+ o.top,
676
+ o.insetInlineStart,
677
+ o.insetInlineEnd,
678
+ o.right,
679
+ o.bottom,
680
+ o.left,
681
+ );
682
+ })(),
641
683
  isFullscreen && styles.fullscreen,
642
684
  xstyle,
643
685
  ),
@@ -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: 'DialogHeader',
@@ -13,7 +13,7 @@
13
13
  * - /packages/core/src/Dialog/DialogHeader.test.tsx
14
14
  * - /packages/core/src/Dialog/index.ts
15
15
  * - /apps/storybook/stories/Dialog.stories.tsx
16
- * - /packages/cli/templates/blocks/components/Dialog/ (showcase blocks)
16
+ * - /packages/cli/assets/templates/blocks/components/Dialog/ (showcase blocks)
17
17
  */
18
18
 
19
19
  import {useEffect, useRef, type ReactNode} from 'react';
@@ -11,11 +11,28 @@
11
11
  * SYNC: When modified, update this header and /packages/core/src/Dialog/Dialog.doc.mjs
12
12
  */
13
13
 
14
+ /**
15
+ * Extensible variant map for Dialog.
16
+ *
17
+ * Theme packages can add custom variants via TypeScript module augmentation:
18
+ * @example
19
+ * ```
20
+ * declare module '@astryxdesign/core/Dialog' {
21
+ * interface DialogVariantMap {
22
+ * 'drawer': true;
23
+ * }
24
+ * }
25
+ * ```
26
+ */
27
+ export interface DialogVariantMap {
28
+ standard: true;
29
+ fullscreen: true;
30
+ }
31
+
14
32
  export {Dialog} from './Dialog';
15
33
  export type {
16
34
  DialogProps,
17
35
  DialogVariant,
18
- DialogVariantMap,
19
36
  DialogPurpose,
20
37
  DialogPosition,
21
38
  } from './Dialog';
@@ -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: 'useImperativeDialog',
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- /** @type {import('../docs-types').ComponentDoc} */
5
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
6
6
 
7
7
  export const docs = {
8
8
  name: 'Divider',
@@ -56,7 +56,7 @@ export const docs = {
56
56
  },
57
57
  };
58
58
 
59
- /** @type {import('../docs-types').ComponentDoc} */
59
+ /** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
60
60
  export const docsZh = {
61
61
  name: 'Divider',
62
62
  displayName: 'Divider',
@@ -106,7 +106,7 @@ export const docsZh = {
106
106
  },
107
107
  };
108
108
 
109
- /** @type {import('../docs-types').TranslationDoc} */
109
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
110
110
  export const docsDense = {
111
111
  description: 'visual separator w/ optional label, using Astryx design tokens',
112
112
  usage: {
@@ -12,7 +12,7 @@
12
12
  * - /packages/core/src/Divider/Divider.doc.mjs
13
13
  * - /packages/core/src/Divider/Divider.test.tsx
14
14
  * - /apps/storybook/stories/Divider.stories.tsx
15
- * - /packages/cli/templates/blocks/components/Divider/ (showcase blocks)
15
+ * - /packages/cli/assets/templates/blocks/components/Divider/ (showcase blocks)
16
16
  */
17
17
 
18
18
  import {useId, type ReactNode} from 'react';
@@ -27,24 +27,7 @@ import {
27
27
  } from '../theme/tokens.stylex';
28
28
  import {mergeProps} from '../utils';
29
29
  import {themeProps} from '../utils/themeProps';
30
-
31
- /**
32
- * Extensible variant map for Divider.
33
- *
34
- * Theme packages can add custom variants via TypeScript module augmentation:
35
- * @example
36
- * ```
37
- * declare module '@astryxdesign/core/Divider' {
38
- * interface DividerVariantMap {
39
- * 'accent': true;
40
- * }
41
- * }
42
- * ```
43
- */
44
- export interface DividerVariantMap {
45
- subtle: true;
46
- strong: true;
47
- }
30
+ import type {DividerVariantMap} from './index';
48
31
 
49
32
  /**
50
33
  * Divider variant type. Extensible via module augmentation of DividerVariantMap.
@@ -11,9 +11,23 @@
11
11
  * SYNC: When modified, update /packages/core/src/Divider/Divider.doc.mjs
12
12
  */
13
13
 
14
+ /**
15
+ * Extensible variant map for Divider.
16
+ *
17
+ * Theme packages can add custom variants via TypeScript module augmentation:
18
+ * @example
19
+ * ```
20
+ * declare module '@astryxdesign/core/Divider' {
21
+ * interface DividerVariantMap {
22
+ * 'accent': true;
23
+ * }
24
+ * }
25
+ * ```
26
+ */
27
+ export interface DividerVariantMap {
28
+ subtle: true;
29
+ strong: true;
30
+ }
31
+
14
32
  export {Divider} from './Divider';
15
- export type {
16
- DividerProps,
17
- DividerVariant,
18
- DividerVariantMap,
19
- } from './Divider';
33
+ export type {DividerProps, DividerVariant} from './Divider';
@@ -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: 'DropdownMenu',
@@ -26,15 +26,18 @@ export const docs = {
26
26
  {className: 'astryx-dropdown-menu'},
27
27
  {className: 'astryx-dropdown-menu-item', visualProps: ['size']},
28
28
  {
29
- className: 'astryx-dropdown-menu-checkbox',
29
+ className: 'astryx-dropdown-menu-radio',
30
30
  visualProps: ['size'],
31
31
  states: ['checked', 'disabled'],
32
32
  },
33
33
  {
34
- className: 'astryx-dropdown-menu-radio',
34
+ className: 'astryx-dropdown-menu-radio-dot',
35
35
  visualProps: ['size'],
36
36
  states: ['checked', 'disabled'],
37
37
  },
38
+ {className: 'astryx-dropdown-menu-section-heading'},
39
+ {className: 'astryx-dropdown-menu-divider'},
40
+ {className: 'astryx-dropdown-menu-indicator-icon'},
38
41
  ],
39
42
  vars: [
40
43
  {name: '--_dropdown-menu-radius', description: 'Border radius of the menu popup', default: 'var(--radius-element)', private: true},
@@ -74,6 +77,18 @@ export const docs = {
74
77
  type: 'number | string',
75
78
  description: 'Custom menu width; defaults to matching the trigger button width.',
76
79
  },
80
+ {
81
+ name: 'placement',
82
+ type: "'above' | 'below' | 'start' | 'end'",
83
+ description: "Position placement relative to the trigger. Logical: start/end resolve against the menu's own inherited direction (RTL mirrors).",
84
+ default: "'below'",
85
+ },
86
+ {
87
+ name: 'alignment',
88
+ type: "'start' | 'center' | 'end'",
89
+ description: "Alignment along the placement axis. Logical: start/end follow the menu's own inherited direction (RTL mirrors).",
90
+ default: "'start'",
91
+ },
77
92
  {
78
93
  name: 'onClick',
79
94
  type: '() => void',
@@ -104,7 +119,7 @@ export const docs = {
104
119
  },
105
120
  };
106
121
 
107
- /** @type {import('../docs-types').TranslationDoc} */
122
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
108
123
  export const docsZh = {
109
124
  usage: {
110
125
  description: 'A dropdown menu that displays a list of actionable items in a popup triggered by a button. Use to present action options as a next step in a process, or to offer contextual actions without cluttering the interface.',
@@ -117,7 +132,7 @@ export const docsZh = {
117
132
  },
118
133
  };
119
134
 
120
- /** @type {import('../docs-types').TranslationDoc} */
135
+ /** @type {import('@astryxdesign/cli/authoring').ComponentTranslationDoc} */
121
136
  export const docsDense = {
122
137
  description: 'dropdown menu for actionable items in popup',
123
138
  usage: {
@@ -109,6 +109,22 @@ describe('DropdownMenu', () => {
109
109
  );
110
110
  });
111
111
 
112
+ it('supports explicit menu alignment', () => {
113
+ render(
114
+ <DropdownMenu
115
+ button={{label: 'Actions'}}
116
+ alignment="end"
117
+ items={[{label: 'Item 1'}]}
118
+ />,
119
+ );
120
+ const popover = screen
121
+ .getByRole('menu', {hidden: true})
122
+ .closest('[popover]');
123
+ expect(popover?.getAttribute('style')).toContain(
124
+ 'position-area: self-block-end span-self-inline-start',
125
+ );
126
+ });
127
+
112
128
  it('emits the direction-independent logical mapping under an RTL ancestor (#3389)', async () => {
113
129
  // The self-* position-area keywords resolve against the popover's own
114
130
  // inherited direction in the browser, so RTL emits the same string as
@@ -148,6 +164,77 @@ describe('DropdownMenu', () => {
148
164
  expect(HTMLElement.prototype.showPopover).toHaveBeenCalled();
149
165
  });
150
166
 
167
+ it('calls onOpenChange for uncontrolled native open and close transitions', async () => {
168
+ const user = userEvent.setup();
169
+ const handleOpenChange = vi.fn();
170
+ render(
171
+ <DropdownMenu
172
+ button={{label: 'Actions'}}
173
+ items={[{label: 'Item 1'}]}
174
+ onOpenChange={handleOpenChange}
175
+ />,
176
+ );
177
+
178
+ await user.click(screen.getByRole('button', {name: /Actions/}));
179
+ expect(handleOpenChange).toHaveBeenCalledWith(true);
180
+
181
+ handleOpenChange.mockClear();
182
+ const popoverEl = screen
183
+ .getByRole('menu', {hidden: true})
184
+ .closest('[popover]');
185
+ expect(popoverEl).not.toBeNull();
186
+ const toggleEvent = new Event('toggle');
187
+ Object.defineProperty(toggleEvent, 'newState', {value: 'closed'});
188
+ fireEvent(popoverEl as HTMLElement, toggleEvent);
189
+
190
+ expect(handleOpenChange).toHaveBeenCalledWith(false);
191
+ expect(screen.getByRole('button', {name: /Actions/})).toHaveAttribute(
192
+ 'aria-expanded',
193
+ 'false',
194
+ );
195
+ });
196
+
197
+ it('restores focus to the trigger after native light dismiss', async () => {
198
+ const raf = vi
199
+ .spyOn(window, 'requestAnimationFrame')
200
+ .mockImplementation(callback => {
201
+ callback(0);
202
+ return 0;
203
+ });
204
+
205
+ try {
206
+ const user = userEvent.setup();
207
+ render(
208
+ <DropdownMenu
209
+ button={{label: 'Actions'}}
210
+ items={[{label: 'Edit'}, {label: 'Delete'}]}
211
+ />,
212
+ );
213
+
214
+ const trigger = screen.getByRole('button', {name: /Actions/});
215
+ trigger.focus();
216
+ await user.click(trigger);
217
+ expect(
218
+ screen.getByRole('menuitem', {name: 'Edit', hidden: true}),
219
+ ).toHaveFocus();
220
+
221
+ const popoverEl = screen
222
+ .getByRole('menu', {hidden: true})
223
+ .closest('[popover]');
224
+ expect(popoverEl).not.toBeNull();
225
+ popoverEl?.addEventListener('toggle', () => {
226
+ trigger.blur();
227
+ });
228
+ const toggleEvent = new Event('toggle');
229
+ Object.defineProperty(toggleEvent, 'newState', {value: 'closed'});
230
+ fireEvent(popoverEl as HTMLElement, toggleEvent);
231
+
232
+ expect(trigger).toHaveFocus();
233
+ } finally {
234
+ raf.mockRestore();
235
+ }
236
+ });
237
+
151
238
  it('closes the menu when Tab is pressed inside it (APG menu-button)', async () => {
152
239
  const user = userEvent.setup();
153
240
  render(
@@ -415,6 +502,41 @@ describe('DropdownMenu dividers', () => {
415
502
  });
416
503
  });
417
504
 
505
+ describe('DropdownMenu theming slots', () => {
506
+ it('exposes a themeable slot on the section heading', () => {
507
+ render(
508
+ <DropdownMenu
509
+ button={{label: 'Actions'}}
510
+ items={[
511
+ {
512
+ type: 'section',
513
+ title: 'File Actions',
514
+ items: [{label: 'New'}],
515
+ },
516
+ ]}
517
+ />,
518
+ );
519
+
520
+ expect(screen.getByText('File Actions')).toHaveClass(
521
+ 'astryx-dropdown-menu-section-heading',
522
+ );
523
+ });
524
+
525
+ it('exposes a themeable slot on the menu divider', () => {
526
+ render(
527
+ <DropdownMenu
528
+ button={{label: 'Actions'}}
529
+ items={[{label: 'Edit'}, {type: 'divider'}, {label: 'Delete'}]}
530
+ />,
531
+ );
532
+
533
+ const divider = screen.getByRole('separator', {hidden: true});
534
+ expect(divider).toHaveClass('astryx-dropdown-menu-divider');
535
+ // Still carries the base Divider slot so global divider theming applies too.
536
+ expect(divider).toHaveClass('astryx-divider');
537
+ });
538
+ });
539
+
418
540
  describe('DropdownMenu button customization', () => {
419
541
  it('renders with different button variants', () => {
420
542
  const {rerender} = render(
@@ -19,7 +19,7 @@
19
19
  * - /packages/core/src/DropdownMenu/DropdownMenu.test.tsx
20
20
  * - /packages/core/src/DropdownMenu/index.ts
21
21
  * - /apps/storybook/stories/DropdownMenu.stories.tsx
22
- * - /packages/cli/templates/blocks/components/DropdownMenu/ (showcase blocks)
22
+ * - /packages/cli/assets/templates/blocks/components/DropdownMenu/ (showcase blocks)
23
23
  */
24
24
 
25
25
  import React, {
@@ -50,7 +50,7 @@ import {
50
50
  import {useListFocus} from '../hooks/useListFocus';
51
51
  import {useTypeahead} from '../hooks/useTypeahead';
52
52
  import {layerAnimations} from '../Layer/layerAnimations.stylex';
53
- import type {LayerPlacement} from '../Layer/useLayer';
53
+ import type {LayerAlignment, LayerPlacement} from '../Layer/useLayer';
54
54
  import {
55
55
  spacingVars,
56
56
  radiusVars,
@@ -145,6 +145,13 @@ interface DropdownMenuBaseProps extends BaseProps {
145
145
  */
146
146
  placement?: LayerPlacement;
147
147
 
148
+ /**
149
+ * Alignment along the placement axis.
150
+ * Uses the same alignment values as other Astryx layer-based components.
151
+ * @default 'start'
152
+ */
153
+ alignment?: LayerAlignment;
154
+
148
155
  'data-testid'?: string;
149
156
  }
150
157
 
@@ -198,6 +205,7 @@ export function DropdownMenu({
198
205
  onClick,
199
206
  hasChevron = true,
200
207
  placement = 'below',
208
+ alignment = 'start',
201
209
  className,
202
210
  style,
203
211
  xstyle,
@@ -235,28 +243,22 @@ export function DropdownMenu({
235
243
  // Close menu + return focus to trigger
236
244
  const handleLayerHide = useCallback(() => {
237
245
  lastHideTimeRef.current = Date.now();
238
- if (isControlled) {
239
- onOpenChange?.(false);
240
- } else {
246
+ onOpenChange?.(false);
247
+ if (!isControlled) {
241
248
  setInternalIsOpen(false);
242
249
  }
243
250
  buttonRef.current?.focus();
244
251
  }, [isControlled, onOpenChange]);
245
252
 
246
- // Track whether to focus the first item when the menu opens
253
+ // Defer item focus until the layer has committed open, so focus restore
254
+ // captures the trigger instead of the first menu item.
247
255
  const shouldFocusOnOpenRef = useRef(false);
248
256
 
249
257
  const handleLayerShow = useCallback(() => {
250
- if (isControlled) {
251
- onOpenChange?.(true);
252
- } else {
258
+ onOpenChange?.(true);
259
+ if (!isControlled) {
253
260
  setInternalIsOpen(true);
254
261
  }
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
262
  }, [isControlled, onOpenChange]);
261
263
 
262
264
  const popover = usePopover({
@@ -305,17 +307,26 @@ export function DropdownMenu({
305
307
  ),
306
308
  });
307
309
 
308
- // Sync controlled open state → popover, and focus first item on open
310
+ // Sync controlled open state → popover.
309
311
  useEffect(() => {
310
312
  if (isControlled) {
311
313
  if (controlledIsOpen && !popover.isOpen) {
314
+ shouldFocusOnOpenRef.current = true;
312
315
  popover.show();
313
- requestAnimationFrame(() => focusFirst());
314
316
  } else if (!controlledIsOpen && popover.isOpen) {
315
317
  popover.hide();
316
318
  }
317
319
  }
318
- }, [controlledIsOpen, isControlled, popover, focusFirst]);
320
+ }, [controlledIsOpen, isControlled, popover]);
321
+
322
+ // Move focus into the menu only after the layer has committed open.
323
+ useEffect(() => {
324
+ if (!popover.isOpen || !shouldFocusOnOpenRef.current) {
325
+ return;
326
+ }
327
+ shouldFocusOnOpenRef.current = false;
328
+ requestAnimationFrame(() => focusFirst());
329
+ }, [popover.isOpen, focusFirst]);
319
330
 
320
331
  // Extend useListFocus with Enter/Space activation + typeahead
321
332
  const listKeyDown = useCallback(
@@ -356,9 +367,9 @@ export function DropdownMenu({
356
367
  );
357
368
 
358
369
  const openAndFocus = useCallback(() => {
370
+ shouldFocusOnOpenRef.current = true;
359
371
  popover.show();
360
- requestAnimationFrame(() => focusFirst());
361
- }, [popover, focusFirst]);
372
+ }, [popover]);
362
373
 
363
374
  const handleButtonClick = useCallback(() => {
364
375
  // If the menu was just closed by light dismiss (e.g. iOS Safari fires
@@ -474,7 +485,7 @@ export function DropdownMenu({
474
485
  </div>,
475
486
  {
476
487
  placement,
477
- alignment: 'start',
488
+ alignment,
478
489
  xstyle: [popoverXstyle, popoverGapStyle, layerAnimations[placement]],
479
490
  },
480
491
  )}
@@ -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',