@astryxdesign/core 0.2.0 → 0.3.0-canary.0b5a38e

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 (1113) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/README.md +5 -3
  3. package/dist/AlertDialog/AlertDialog.d.ts +1 -1
  4. package/dist/AlertDialog/AlertDialog.js +1 -1
  5. package/dist/AppShell/AppShell.d.ts +2 -20
  6. package/dist/AppShell/AppShell.d.ts.map +1 -1
  7. package/dist/AppShell/AppShell.js +25 -18
  8. package/dist/AppShell/index.d.ts +20 -1
  9. package/dist/AppShell/index.d.ts.map +1 -1
  10. package/dist/AppShell/index.js +14 -0
  11. package/dist/AspectRatio/AspectRatio.d.ts +1 -1
  12. package/dist/AspectRatio/AspectRatio.js +1 -1
  13. package/dist/Avatar/Avatar.d.ts +1 -1
  14. package/dist/Avatar/Avatar.d.ts.map +1 -1
  15. package/dist/Avatar/Avatar.js +35 -14
  16. package/dist/Avatar/AvatarStatusDot.d.ts +2 -26
  17. package/dist/Avatar/AvatarStatusDot.d.ts.map +1 -1
  18. package/dist/Avatar/AvatarStatusDot.js +1 -22
  19. package/dist/Avatar/index.d.ts +26 -1
  20. package/dist/Avatar/index.d.ts.map +1 -1
  21. package/dist/Avatar/index.js +21 -0
  22. package/dist/AvatarGroup/AvatarGroup.d.ts +1 -1
  23. package/dist/AvatarGroup/AvatarGroup.d.ts.map +1 -1
  24. package/dist/AvatarGroup/AvatarGroup.js +4 -8
  25. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts +2 -2
  26. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
  27. package/dist/AvatarGroup/AvatarGroupOverflow.js +7 -3
  28. package/dist/Badge/Badge.d.ts +2 -30
  29. package/dist/Badge/Badge.d.ts.map +1 -1
  30. package/dist/Badge/Badge.js +2 -17
  31. package/dist/Badge/index.d.ts +31 -2
  32. package/dist/Badge/index.d.ts.map +1 -1
  33. package/dist/Badge/index.js +15 -1
  34. package/dist/Banner/Banner.d.ts +2 -37
  35. package/dist/Banner/Banner.d.ts.map +1 -1
  36. package/dist/Banner/Banner.js +6 -34
  37. package/dist/Banner/index.d.ts +37 -1
  38. package/dist/Banner/index.d.ts.map +1 -1
  39. package/dist/Banner/index.js +27 -0
  40. package/dist/Blockquote/Blockquote.d.ts +1 -1
  41. package/dist/Blockquote/Blockquote.js +1 -1
  42. package/dist/Breadcrumbs/BreadcrumbItem.d.ts +1 -1
  43. package/dist/Breadcrumbs/BreadcrumbItem.js +4 -3
  44. package/dist/Breadcrumbs/Breadcrumbs.d.ts +2 -18
  45. package/dist/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  46. package/dist/Breadcrumbs/Breadcrumbs.js +1 -15
  47. package/dist/Breadcrumbs/index.d.ts +18 -1
  48. package/dist/Breadcrumbs/index.d.ts.map +1 -1
  49. package/dist/Breadcrumbs/index.js +14 -0
  50. package/dist/Button/Button.d.ts +3 -21
  51. package/dist/Button/Button.d.ts.map +1 -1
  52. package/dist/Button/Button.js +6 -19
  53. package/dist/Button/index.d.ts +21 -3
  54. package/dist/Button/index.d.ts.map +1 -1
  55. package/dist/Button/index.js +15 -1
  56. package/dist/ButtonGroup/ButtonGroup.d.ts +1 -1
  57. package/dist/ButtonGroup/ButtonGroup.js +1 -1
  58. package/dist/Calendar/Calendar.js +1 -1
  59. package/dist/Calendar/index.d.ts +1 -1
  60. package/dist/Calendar/index.d.ts.map +1 -1
  61. package/dist/Calendar/index.js +1 -1
  62. package/dist/Calendar/styles.d.ts +2 -2
  63. package/dist/Calendar/styles.js +2 -2
  64. package/dist/Calendar/utils.d.ts +0 -4
  65. package/dist/Calendar/utils.d.ts.map +1 -1
  66. package/dist/Calendar/utils.js +1 -8
  67. package/dist/Card/Card.d.ts +1 -1
  68. package/dist/Card/Card.js +1 -1
  69. package/dist/Carousel/Carousel.d.ts +54 -3
  70. package/dist/Carousel/Carousel.d.ts.map +1 -1
  71. package/dist/Carousel/Carousel.js +90 -27
  72. package/dist/Carousel/index.d.ts +1 -1
  73. package/dist/Carousel/index.d.ts.map +1 -1
  74. package/dist/Center/Center.d.ts +21 -4
  75. package/dist/Center/Center.d.ts.map +1 -1
  76. package/dist/Center/Center.js +11 -3
  77. package/dist/Chat/ChatComposer.d.ts +1 -1
  78. package/dist/Chat/ChatComposer.js +9 -9
  79. package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
  80. package/dist/Chat/ChatComposerDrawer.js +5 -5
  81. package/dist/Chat/ChatComposerInput.d.ts +1 -1
  82. package/dist/Chat/ChatComposerInput.js +1 -1
  83. package/dist/Chat/ChatDictationButton.d.ts +1 -1
  84. package/dist/Chat/ChatDictationButton.js +1 -1
  85. package/dist/Chat/ChatLayout.d.ts +8 -1
  86. package/dist/Chat/ChatLayout.d.ts.map +1 -1
  87. package/dist/Chat/ChatLayout.js +15 -4
  88. package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
  89. package/dist/Chat/ChatLayoutScrollButton.js +1 -1
  90. package/dist/Chat/ChatMessage.d.ts +1 -1
  91. package/dist/Chat/ChatMessage.js +1 -1
  92. package/dist/Chat/ChatMessageBubble.d.ts +1 -1
  93. package/dist/Chat/ChatMessageBubble.js +1 -1
  94. package/dist/Chat/ChatMessageList.d.ts +1 -1
  95. package/dist/Chat/ChatMessageList.js +1 -1
  96. package/dist/Chat/ChatSendButton.d.ts.map +1 -1
  97. package/dist/Chat/ChatSendButton.js +4 -2
  98. package/dist/Chat/ChatSystemMessage.d.ts +1 -1
  99. package/dist/Chat/ChatSystemMessage.js +1 -1
  100. package/dist/Chat/ChatTokenizedText.d.ts +1 -1
  101. package/dist/Chat/ChatTokenizedText.js +1 -1
  102. package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
  103. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  104. package/dist/CheckboxInput/CheckboxInput.js +3 -3
  105. package/dist/CheckboxList/CheckboxList.d.ts +1 -1
  106. package/dist/CheckboxList/CheckboxList.js +1 -1
  107. package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
  108. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  109. package/dist/CheckboxList/CheckboxListItem.js +20 -5
  110. package/dist/Citation/Citation.d.ts +1 -1
  111. package/dist/Citation/Citation.js +1 -1
  112. package/dist/ClickableCard/ClickableCard.d.ts +3 -3
  113. package/dist/ClickableCard/ClickableCard.js +3 -3
  114. package/dist/Code/Code.d.ts +2 -2
  115. package/dist/Code/Code.js +2 -2
  116. package/dist/CodeBlock/CodeBlock.js +2 -2
  117. package/dist/Collapsible/Collapsible.d.ts +1 -1
  118. package/dist/Collapsible/Collapsible.js +3 -3
  119. package/dist/Collapsible/CollapsibleGroup.d.ts +1 -1
  120. package/dist/Collapsible/CollapsibleGroup.js +1 -1
  121. package/dist/Collapsible/CollapsibleGroupContext.js +1 -1
  122. package/dist/CommandPalette/CommandPalette.d.ts +1 -1
  123. package/dist/CommandPalette/CommandPalette.js +1 -1
  124. package/dist/CommandPalette/CommandPaletteEmpty.js +1 -1
  125. package/dist/CommandPalette/CommandPaletteFooter.js +1 -1
  126. package/dist/CommandPalette/CommandPaletteGroup.js +1 -1
  127. package/dist/CommandPalette/CommandPaletteInput.d.ts +2 -2
  128. package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
  129. package/dist/CommandPalette/CommandPaletteInput.js +4 -2
  130. package/dist/CommandPalette/CommandPaletteItem.d.ts +1 -1
  131. package/dist/CommandPalette/CommandPaletteItem.js +1 -1
  132. package/dist/CommandPalette/CommandPaletteList.js +1 -1
  133. package/dist/ComplexSelector/ComplexSelector.d.ts +108 -0
  134. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -0
  135. package/dist/ComplexSelector/ComplexSelector.js +316 -0
  136. package/dist/ComplexSelector/index.d.ts +7 -0
  137. package/dist/ComplexSelector/index.d.ts.map +1 -0
  138. package/dist/ComplexSelector/index.js +10 -0
  139. package/dist/ContextMenu/ContextMenu.d.ts +2 -2
  140. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  141. package/dist/ContextMenu/ContextMenu.js +24 -6
  142. package/dist/DateInput/DateInput.d.ts +9 -2
  143. package/dist/DateInput/DateInput.d.ts.map +1 -1
  144. package/dist/DateInput/DateInput.js +6 -3
  145. package/dist/DateRangeInput/DateRangeInput.d.ts +9 -2
  146. package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  147. package/dist/DateRangeInput/DateRangeInput.js +6 -3
  148. package/dist/DateTimeInput/DateTimeInput.d.ts +9 -1
  149. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  150. package/dist/DateTimeInput/DateTimeInput.js +6 -3
  151. package/dist/Dialog/Dialog.d.ts +33 -24
  152. package/dist/Dialog/Dialog.d.ts.map +1 -1
  153. package/dist/Dialog/Dialog.js +47 -31
  154. package/dist/Dialog/DialogHeader.d.ts +1 -1
  155. package/dist/Dialog/DialogHeader.js +1 -1
  156. package/dist/Dialog/index.d.ts +18 -1
  157. package/dist/Dialog/index.d.ts.map +1 -1
  158. package/dist/Dialog/index.js +14 -0
  159. package/dist/Divider/Divider.d.ts +2 -18
  160. package/dist/Divider/Divider.d.ts.map +1 -1
  161. package/dist/Divider/Divider.js +1 -15
  162. package/dist/Divider/index.d.ts +18 -1
  163. package/dist/Divider/index.d.ts.map +1 -1
  164. package/dist/Divider/index.js +14 -0
  165. package/dist/DropdownMenu/DropdownMenu.d.ts +9 -3
  166. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  167. package/dist/DropdownMenu/DropdownMenu.js +23 -19
  168. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +18 -12
  169. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  170. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +38 -63
  171. package/dist/DropdownMenu/DropdownMenuItem.d.ts +1 -1
  172. package/dist/DropdownMenu/DropdownMenuItem.js +1 -1
  173. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts +8 -11
  174. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts.map +1 -1
  175. package/dist/DropdownMenu/DropdownMenuRadioGroup.js +3 -1
  176. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +1 -1
  177. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  178. package/dist/DropdownMenu/DropdownMenuRadioItem.js +6 -2
  179. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +1 -1
  180. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  181. package/dist/DropdownMenu/DropdownMenuSubMenu.js +14 -6
  182. package/dist/DropdownMenu/menuItemHover.d.ts +1 -0
  183. package/dist/DropdownMenu/menuItemHover.d.ts.map +1 -1
  184. package/dist/DropdownMenu/menuItemHover.js +1 -0
  185. package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
  186. package/dist/DropdownMenu/renderDropdownItems.js +6 -4
  187. package/dist/EmptyState/EmptyState.d.ts +1 -1
  188. package/dist/EmptyState/EmptyState.js +1 -1
  189. package/dist/Field/Field.d.ts +1 -1
  190. package/dist/Field/Field.js +1 -1
  191. package/dist/Field/FieldLabel.d.ts +4 -3
  192. package/dist/Field/FieldLabel.d.ts.map +1 -1
  193. package/dist/Field/FieldLabel.js +48 -5
  194. package/dist/FieldStatus/FieldStatus.d.ts +1 -18
  195. package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
  196. package/dist/FieldStatus/FieldStatus.js +13 -17
  197. package/dist/FieldStatus/index.d.ts +19 -1
  198. package/dist/FieldStatus/index.d.ts.map +1 -1
  199. package/dist/FieldStatus/index.js +14 -0
  200. package/dist/FileInput/FileInput.js +1 -1
  201. package/dist/FormLayout/FormLayout.d.ts +1 -1
  202. package/dist/FormLayout/FormLayout.d.ts.map +1 -1
  203. package/dist/FormLayout/FormLayout.js +1 -1
  204. package/dist/Grid/Grid.d.ts +2 -10
  205. package/dist/Grid/Grid.d.ts.map +1 -1
  206. package/dist/Grid/Grid.js +1 -10
  207. package/dist/Grid/GridSpan.d.ts +1 -1
  208. package/dist/Grid/GridSpan.js +1 -1
  209. package/dist/HStack/HStack.d.ts +1 -1
  210. package/dist/HStack/HStack.js +1 -1
  211. package/dist/Heading/Heading.d.ts +2 -2
  212. package/dist/Heading/Heading.d.ts.map +1 -1
  213. package/dist/Heading/Heading.js +5 -4
  214. package/dist/HoverCard/HoverCard.d.ts +1 -1
  215. package/dist/HoverCard/HoverCard.js +1 -1
  216. package/dist/Icon/Icon.d.ts +1 -1
  217. package/dist/Icon/Icon.d.ts.map +1 -1
  218. package/dist/Icon/Icon.js +4 -2
  219. package/dist/Icon/defaultIcons.d.ts.map +1 -1
  220. package/dist/Icon/defaultIcons.js +14 -0
  221. package/dist/Icon/globalIconRegistry.d.ts +48 -6
  222. package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
  223. package/dist/Icon/globalIconRegistry.js +74 -7
  224. package/dist/Icon/index.d.ts +4 -3
  225. package/dist/Icon/index.d.ts.map +1 -1
  226. package/dist/Icon/index.js +2 -1
  227. package/dist/Icon/useIcon.d.ts +14 -0
  228. package/dist/Icon/useIcon.d.ts.map +1 -0
  229. package/dist/Icon/useIcon.js +21 -0
  230. package/dist/IconButton/IconButton.d.ts +1 -1
  231. package/dist/IconButton/IconButton.js +1 -1
  232. package/dist/InputGroup/InputGroup.d.ts +1 -1
  233. package/dist/InputGroup/InputGroup.js +1 -1
  234. package/dist/InputGroup/InputGroupText.d.ts +1 -1
  235. package/dist/InputGroup/InputGroupText.js +1 -1
  236. package/dist/Item/Item.d.ts +17 -4
  237. package/dist/Item/Item.d.ts.map +1 -1
  238. package/dist/Item/Item.js +32 -7
  239. package/dist/Kbd/Kbd.d.ts +1 -1
  240. package/dist/Kbd/Kbd.js +1 -1
  241. package/dist/Layout/Layout.d.ts +1 -1
  242. package/dist/Layout/Layout.js +1 -1
  243. package/dist/Layout/LayoutContent.d.ts +1 -1
  244. package/dist/Layout/LayoutContent.js +1 -1
  245. package/dist/Layout/LayoutFooter.d.ts +1 -1
  246. package/dist/Layout/LayoutFooter.js +1 -1
  247. package/dist/Layout/LayoutHeader.d.ts +1 -1
  248. package/dist/Layout/LayoutHeader.js +1 -1
  249. package/dist/Layout/LayoutPanel.d.ts +1 -1
  250. package/dist/Layout/LayoutPanel.js +1 -1
  251. package/dist/Lightbox/Lightbox.d.ts +6 -4
  252. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  253. package/dist/Lightbox/Lightbox.js +173 -79
  254. package/dist/Link/Link.d.ts +1 -1
  255. package/dist/Link/Link.js +1 -1
  256. package/dist/Link/LinkProvider.d.ts +2 -2
  257. package/dist/Link/LinkProvider.js +2 -2
  258. package/dist/List/List.d.ts +1 -1
  259. package/dist/List/List.js +1 -1
  260. package/dist/List/ListItem.d.ts +12 -2
  261. package/dist/List/ListItem.d.ts.map +1 -1
  262. package/dist/List/ListItem.js +3 -1
  263. package/dist/Markdown/Markdown.d.ts.map +1 -1
  264. package/dist/Markdown/Markdown.js +35 -13
  265. package/dist/MetadataList/MetadataList.d.ts +2 -2
  266. package/dist/MetadataList/MetadataList.d.ts.map +1 -1
  267. package/dist/MetadataList/MetadataList.js +38 -12
  268. package/dist/MetadataList/MetadataListItem.d.ts +1 -1
  269. package/dist/MetadataList/MetadataListItem.js +1 -1
  270. package/dist/MobileNav/MobileNav.d.ts +1 -1
  271. package/dist/MobileNav/MobileNav.js +9 -9
  272. package/dist/MoreMenu/MoreMenu.d.ts +1 -1
  273. package/dist/MoreMenu/MoreMenu.js +3 -3
  274. package/dist/MultiSelector/MultiSelector.d.ts +13 -4
  275. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  276. package/dist/MultiSelector/MultiSelector.js +118 -24
  277. package/dist/NavIcon/NavIcon.d.ts +1 -1
  278. package/dist/NavIcon/NavIcon.js +1 -1
  279. package/dist/NavMenu/index.d.ts +0 -2
  280. package/dist/NavMenu/index.d.ts.map +1 -1
  281. package/dist/NavMenu/index.js +1 -3
  282. package/dist/NumberInput/NumberInput.d.ts +1 -1
  283. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  284. package/dist/NumberInput/NumberInput.js +18 -6
  285. package/dist/Outline/Outline.js +1 -1
  286. package/dist/OverflowList/OverflowList.d.ts +1 -1
  287. package/dist/OverflowList/OverflowList.js +1 -1
  288. package/dist/Pagination/Pagination.d.ts +26 -21
  289. package/dist/Pagination/Pagination.d.ts.map +1 -1
  290. package/dist/Pagination/Pagination.js +174 -52
  291. package/dist/Pagination/index.d.ts +22 -1
  292. package/dist/Pagination/index.d.ts.map +1 -1
  293. package/dist/Pagination/index.js +14 -0
  294. package/dist/Popover/Popover.d.ts +20 -3
  295. package/dist/Popover/Popover.d.ts.map +1 -1
  296. package/dist/Popover/Popover.js +5 -1
  297. package/dist/Popover/usePopover.d.ts.map +1 -1
  298. package/dist/Popover/usePopover.js +14 -3
  299. package/dist/PowerSearch/PowerSearch.d.ts +1 -1
  300. package/dist/PowerSearch/PowerSearch.js +1 -1
  301. package/dist/ProgressBar/ProgressBar.d.ts +56 -22
  302. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  303. package/dist/ProgressBar/ProgressBar.js +169 -22
  304. package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts +27 -0
  305. package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts.map +1 -0
  306. package/dist/ProgressBar/ProgressBarMarkTooltip.js +35 -0
  307. package/dist/ProgressBar/index.d.ts +21 -1
  308. package/dist/ProgressBar/index.d.ts.map +1 -1
  309. package/dist/ProgressBar/index.js +14 -0
  310. package/dist/RadioList/RadioList.d.ts +1 -1
  311. package/dist/RadioList/RadioList.js +1 -1
  312. package/dist/RadioList/RadioListItem.d.ts +1 -1
  313. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  314. package/dist/RadioList/RadioListItem.js +2 -2
  315. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  316. package/dist/Resizable/ResizeHandle.js +15 -11
  317. package/dist/Section/Section.d.ts +2 -19
  318. package/dist/Section/Section.d.ts.map +1 -1
  319. package/dist/Section/Section.js +1 -15
  320. package/dist/Section/index.d.ts +19 -1
  321. package/dist/Section/index.d.ts.map +1 -1
  322. package/dist/Section/index.js +14 -0
  323. package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
  324. package/dist/SegmentedControl/SegmentedControl.js +1 -1
  325. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  326. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  327. package/dist/SegmentedControl/SegmentedControlItem.js +4 -3
  328. package/dist/SelectableCard/SelectableCard.d.ts +4 -3
  329. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  330. package/dist/SelectableCard/SelectableCard.js +15 -3
  331. package/dist/Selector/Selector.d.ts +14 -4
  332. package/dist/Selector/Selector.d.ts.map +1 -1
  333. package/dist/Selector/Selector.js +137 -28
  334. package/dist/Selector/hooks.d.ts +4 -4
  335. package/dist/Selector/hooks.d.ts.map +1 -1
  336. package/dist/Selector/hooks.js +38 -19
  337. package/dist/SideNav/SideNav.d.ts +1 -1
  338. package/dist/SideNav/SideNav.js +1 -1
  339. package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
  340. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  341. package/dist/SideNav/SideNavCollapseButton.js +4 -3
  342. package/dist/SideNav/SideNavHeading.d.ts +1 -1
  343. package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
  344. package/dist/SideNav/SideNavHeading.js +8 -7
  345. package/dist/SideNav/SideNavItem.d.ts +2 -2
  346. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  347. package/dist/SideNav/SideNavItem.js +6 -7
  348. package/dist/SideNav/SideNavSection.d.ts +1 -1
  349. package/dist/SideNav/SideNavSection.js +1 -1
  350. package/dist/Skeleton/Skeleton.d.ts +1 -1
  351. package/dist/Skeleton/Skeleton.d.ts.map +1 -1
  352. package/dist/Skeleton/Skeleton.js +3 -3
  353. package/dist/Slider/Slider.d.ts.map +1 -1
  354. package/dist/Slider/Slider.js +78 -68
  355. package/dist/Spinner/Spinner.d.ts +1 -1
  356. package/dist/Spinner/Spinner.js +1 -1
  357. package/dist/Stack/Stack.d.ts +1 -1
  358. package/dist/Stack/Stack.js +1 -1
  359. package/dist/Stack/StackItem.d.ts +1 -1
  360. package/dist/Stack/StackItem.js +1 -1
  361. package/dist/Stack/stack.stylex.d.ts +3 -3
  362. package/dist/StatusDot/StatusDot.d.ts +1 -20
  363. package/dist/StatusDot/StatusDot.d.ts.map +1 -1
  364. package/dist/StatusDot/StatusDot.js +2 -17
  365. package/dist/StatusDot/index.d.ts +21 -1
  366. package/dist/StatusDot/index.d.ts.map +1 -1
  367. package/dist/StatusDot/index.js +14 -0
  368. package/dist/Switch/Switch.d.ts +2 -6
  369. package/dist/Switch/Switch.d.ts.map +1 -1
  370. package/dist/Switch/Switch.js +28 -20
  371. package/dist/TabList/Tab.d.ts +1 -1
  372. package/dist/TabList/Tab.js +1 -1
  373. package/dist/TabList/TabList.d.ts +1 -1
  374. package/dist/TabList/TabList.js +1 -1
  375. package/dist/TabList/TabMenu.d.ts +1 -1
  376. package/dist/TabList/TabMenu.d.ts.map +1 -1
  377. package/dist/TabList/TabMenu.js +11 -3
  378. package/dist/Table/BaseTable.d.ts +1 -1
  379. package/dist/Table/BaseTable.d.ts.map +1 -1
  380. package/dist/Table/BaseTable.js +4 -7
  381. package/dist/Table/Table.d.ts +1 -1
  382. package/dist/Table/Table.js +1 -1
  383. package/dist/Table/TableCell.d.ts +1 -1
  384. package/dist/Table/TableCell.js +4 -2
  385. package/dist/Table/TableHeaderCell.d.ts +1 -1
  386. package/dist/Table/TableHeaderCell.js +4 -2
  387. package/dist/Table/TableRow.d.ts +1 -1
  388. package/dist/Table/TableRow.js +1 -1
  389. package/dist/Table/index.d.ts +1 -1
  390. package/dist/Table/index.d.ts.map +1 -1
  391. package/dist/Table/index.js +1 -1
  392. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts +1 -1
  393. package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +1 -1
  394. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +18 -3
  395. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  396. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +27 -11
  397. package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
  398. package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
  399. package/dist/Table/plugins/tree/useTableTreeData.js +36 -2
  400. package/dist/Table/types.d.ts +0 -9
  401. package/dist/Table/types.d.ts.map +1 -1
  402. package/dist/Text/Text.d.ts +11 -2
  403. package/dist/Text/Text.d.ts.map +1 -1
  404. package/dist/Text/Text.js +26 -3
  405. package/dist/Text/index.d.ts +31 -1
  406. package/dist/Text/index.d.ts.map +1 -1
  407. package/dist/Text/index.js +23 -0
  408. package/dist/TextArea/TextArea.d.ts +1 -1
  409. package/dist/TextArea/TextArea.d.ts.map +1 -1
  410. package/dist/TextArea/TextArea.js +109 -40
  411. package/dist/TextInput/TextInput.d.ts +1 -1
  412. package/dist/TextInput/TextInput.d.ts.map +1 -1
  413. package/dist/TextInput/TextInput.js +3 -2
  414. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  415. package/dist/Thumbnail/Thumbnail.js +52 -46
  416. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  417. package/dist/TimeInput/TimeInput.js +3 -2
  418. package/dist/Timestamp/Timestamp.d.ts +26 -12
  419. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  420. package/dist/Timestamp/Timestamp.js +128 -65
  421. package/dist/Timestamp/TimestampHoverCard.d.ts +45 -0
  422. package/dist/Timestamp/TimestampHoverCard.d.ts.map +1 -0
  423. package/dist/Timestamp/TimestampHoverCard.js +228 -0
  424. package/dist/Timestamp/formatInstant.d.ts +3 -3
  425. package/dist/Timestamp/formatInstant.d.ts.map +1 -1
  426. package/dist/Timestamp/formatInstant.js +7 -2
  427. package/dist/Timestamp/tooltipEntries.d.ts +17 -2
  428. package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
  429. package/dist/Timestamp/tooltipEntries.js +4 -2
  430. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  431. package/dist/Toast/ToastViewport.js +61 -9
  432. package/dist/ToggleButton/ToggleButton.d.ts +1 -1
  433. package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
  434. package/dist/ToggleButton/ToggleButton.js +4 -2
  435. package/dist/ToggleButton/ToggleButtonGroup.d.ts +1 -1
  436. package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  437. package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
  438. package/dist/Token/Token.d.ts +6 -28
  439. package/dist/Token/Token.d.ts.map +1 -1
  440. package/dist/Token/Token.js +69 -58
  441. package/dist/Token/TokenLink.d.ts +62 -0
  442. package/dist/Token/TokenLink.d.ts.map +1 -0
  443. package/dist/Token/TokenLink.js +76 -0
  444. package/dist/Token/index.d.ts +27 -1
  445. package/dist/Token/index.d.ts.map +1 -1
  446. package/dist/Token/index.js +14 -0
  447. package/dist/Tokenizer/Tokenizer.d.ts +1 -1
  448. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  449. package/dist/Tokenizer/Tokenizer.js +5 -3
  450. package/dist/Toolbar/Toolbar.d.ts +1 -1
  451. package/dist/Toolbar/Toolbar.js +1 -1
  452. package/dist/Tooltip/Tooltip.d.ts +1 -1
  453. package/dist/Tooltip/Tooltip.js +1 -1
  454. package/dist/TopNav/TopNav.d.ts +1 -1
  455. package/dist/TopNav/TopNav.d.ts.map +1 -1
  456. package/dist/TopNav/TopNav.js +7 -6
  457. package/dist/TopNav/TopNavHeading.d.ts +2 -8
  458. package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
  459. package/dist/TopNav/TopNavHeading.js +8 -10
  460. package/dist/TopNav/TopNavItem.d.ts +1 -1
  461. package/dist/TopNav/TopNavItem.js +1 -1
  462. package/dist/TopNav/TopNavMegaMenu.d.ts +1 -1
  463. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  464. package/dist/TopNav/TopNavMegaMenu.js +27 -16
  465. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
  466. package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +1 -1
  467. package/dist/TopNav/TopNavMegaMenuItem.d.ts +1 -1
  468. package/dist/TopNav/TopNavMegaMenuItem.js +1 -1
  469. package/dist/TopNav/TopNavMenu.d.ts +1 -1
  470. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  471. package/dist/TopNav/TopNavMenu.js +5 -4
  472. package/dist/TreeList/TreeList.d.ts +1 -1
  473. package/dist/TreeList/TreeList.js +1 -1
  474. package/dist/TreeList/TreeListBranches.js +1 -1
  475. package/dist/TreeList/TreeListItem.d.ts +1 -1
  476. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  477. package/dist/TreeList/TreeListItem.js +4 -3
  478. package/dist/TreeList/TreeListTypes.d.ts +1 -17
  479. package/dist/TreeList/TreeListTypes.d.ts.map +1 -1
  480. package/dist/TreeList/index.d.ts +18 -1
  481. package/dist/TreeList/index.d.ts.map +1 -1
  482. package/dist/TreeList/index.js +14 -0
  483. package/dist/Typeahead/BaseTypeahead.d.ts +10 -1
  484. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  485. package/dist/Typeahead/BaseTypeahead.js +3 -1
  486. package/dist/Typeahead/Typeahead.d.ts +1 -1
  487. package/dist/Typeahead/Typeahead.d.ts.map +1 -1
  488. package/dist/Typeahead/Typeahead.js +9 -2
  489. package/dist/Typeahead/TypeaheadItem.d.ts +1 -1
  490. package/dist/Typeahead/TypeaheadItem.js +1 -1
  491. package/dist/VStack/VStack.d.ts +1 -1
  492. package/dist/VStack/VStack.js +1 -1
  493. package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  494. package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
  495. package/dist/astryx.css +117 -37
  496. package/dist/astryx.umd.js +51 -55
  497. package/dist/astryx.umd.js.map +4 -4
  498. package/dist/hooks/containerReveal.pool.stylex.d.ts +303 -0
  499. package/dist/hooks/containerReveal.pool.stylex.d.ts.map +1 -0
  500. package/dist/hooks/containerReveal.pool.stylex.js +292 -0
  501. package/dist/hooks/index.d.ts +2 -0
  502. package/dist/hooks/index.d.ts.map +1 -1
  503. package/dist/hooks/index.js +2 -1
  504. package/dist/hooks/useContainerReveal.d.ts +83 -0
  505. package/dist/hooks/useContainerReveal.d.ts.map +1 -0
  506. package/dist/hooks/useContainerReveal.js +123 -0
  507. package/dist/hooks/useGridFocus.d.ts +8 -6
  508. package/dist/hooks/useGridFocus.d.ts.map +1 -1
  509. package/dist/hooks/useInputContainer.d.ts.map +1 -1
  510. package/dist/hooks/useInputContainer.js +29 -1
  511. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  512. package/dist/hooks/useInputStatusIcon.js +11 -0
  513. package/dist/hooks/useKeyboardHint.d.ts +2 -2
  514. package/dist/hooks/useKeyboardHint.d.ts.map +1 -1
  515. package/dist/hooks/useKeyboardHint.js +5 -3
  516. package/dist/hooks/useListFocus.d.ts +8 -7
  517. package/dist/hooks/useListFocus.d.ts.map +1 -1
  518. package/dist/hooks/useLongPress.d.ts.map +1 -1
  519. package/dist/hooks/useLongPress.js +12 -2
  520. package/dist/hooks/useTreeFocus.d.ts.map +1 -1
  521. package/dist/hooks/useTreeFocus.js +13 -2
  522. package/dist/i18n/InternationalizationProvider.d.ts +6 -0
  523. package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
  524. package/dist/i18n/useDirection.d.ts.map +1 -1
  525. package/dist/i18n/useDirection.js +6 -3
  526. package/dist/index.d.ts +2 -1
  527. package/dist/index.d.ts.map +1 -1
  528. package/dist/index.js +3 -3
  529. package/dist/theme/Theme.d.ts.map +1 -1
  530. package/dist/theme/Theme.js +2 -7
  531. package/dist/theme/contrast.d.ts +45 -0
  532. package/dist/theme/contrast.d.ts.map +1 -0
  533. package/dist/theme/contrast.js +88 -0
  534. package/dist/theme/defineTheme.d.ts +9 -3
  535. package/dist/theme/defineTheme.d.ts.map +1 -1
  536. package/dist/theme/defineTheme.js +6 -4
  537. package/dist/theme/derivedVarRegistry.d.ts +8 -0
  538. package/dist/theme/derivedVarRegistry.d.ts.map +1 -1
  539. package/dist/theme/derivedVarRegistry.js +5 -13
  540. package/dist/theme/expandColorScale.d.ts +32 -3
  541. package/dist/theme/expandColorScale.d.ts.map +1 -1
  542. package/dist/theme/expandColorScale.js +102 -13
  543. package/dist/theme/generateThemeRules.d.ts +0 -6
  544. package/dist/theme/generateThemeRules.d.ts.map +1 -1
  545. package/dist/theme/generateThemeRules.js +11 -15
  546. package/dist/theme/index.d.ts +9 -7
  547. package/dist/theme/index.d.ts.map +1 -1
  548. package/dist/theme/index.js +4 -3
  549. package/dist/theme/themeRegistry.d.ts +32 -0
  550. package/dist/theme/themeRegistry.d.ts.map +1 -0
  551. package/dist/theme/themeRegistry.js +49 -0
  552. package/dist/theme/tokens.stylex.d.ts +0 -17
  553. package/dist/theme/tokens.stylex.d.ts.map +1 -1
  554. package/dist/theme/tokens.stylex.js +0 -22
  555. package/dist/theme/types.d.ts +10 -2
  556. package/dist/theme/types.d.ts.map +1 -1
  557. package/dist/theme/useTheme.d.ts +9 -0
  558. package/dist/theme/useTheme.d.ts.map +1 -1
  559. package/dist/theme/useTheme.js +82 -27
  560. package/dist/utils/rtlStyles.d.ts +23 -2
  561. package/dist/utils/rtlStyles.d.ts.map +1 -1
  562. package/dist/utils/rtlStyles.js +28 -3
  563. package/groups.doc.mjs +2 -2
  564. package/locales/en.json +124 -0
  565. package/locales/pseudo.json +93 -0
  566. package/package.json +9 -13
  567. package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
  568. package/src/AlertDialog/AlertDialog.tsx +1 -1
  569. package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
  570. package/src/AppShell/AppShell.doc.mjs +3 -3
  571. package/src/AppShell/AppShell.test.tsx +55 -0
  572. package/src/AppShell/AppShell.tsx +27 -22
  573. package/src/AppShell/index.ts +20 -1
  574. package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
  575. package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
  576. package/src/AspectRatio/AspectRatio.tsx +1 -1
  577. package/src/Avatar/Avatar.doc.mjs +4 -15
  578. package/src/Avatar/Avatar.test.tsx +33 -8
  579. package/src/Avatar/Avatar.tsx +58 -25
  580. package/src/Avatar/AvatarStatusDot.doc.mjs +1 -1
  581. package/src/Avatar/AvatarStatusDot.tsx +2 -27
  582. package/src/Avatar/index.ts +26 -1
  583. package/src/AvatarGroup/AvatarGroup.doc.mjs +3 -3
  584. package/src/AvatarGroup/AvatarGroup.test.tsx +21 -1
  585. package/src/AvatarGroup/AvatarGroup.tsx +3 -7
  586. package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
  587. package/src/AvatarGroup/AvatarGroupOverflow.tsx +5 -3
  588. package/src/Badge/Badge.doc.mjs +3 -3
  589. package/src/Badge/Badge.tsx +2 -31
  590. package/src/Badge/index.ts +32 -6
  591. package/src/Banner/Banner.doc.mjs +3 -3
  592. package/src/Banner/Banner.tsx +8 -45
  593. package/src/Banner/index.ts +39 -7
  594. package/src/Blockquote/Blockquote.doc.mjs +3 -3
  595. package/src/Blockquote/Blockquote.tsx +1 -1
  596. package/src/Breadcrumbs/BreadcrumbItem.doc.mjs +1 -1
  597. package/src/Breadcrumbs/BreadcrumbItem.tsx +5 -3
  598. package/src/Breadcrumbs/Breadcrumbs.doc.mjs +3 -3
  599. package/src/Breadcrumbs/Breadcrumbs.test.tsx +1 -1
  600. package/src/Breadcrumbs/Breadcrumbs.tsx +2 -19
  601. package/src/Breadcrumbs/index.ts +19 -5
  602. package/src/Button/Button.doc.mjs +3 -3
  603. package/src/Button/Button.test.tsx +16 -0
  604. package/src/Button/Button.tsx +6 -23
  605. package/src/Button/index.ts +22 -7
  606. package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -3
  607. package/src/ButtonGroup/ButtonGroup.tsx +1 -1
  608. package/src/Calendar/Calendar.doc.mjs +3 -3
  609. package/src/Calendar/Calendar.test.tsx +22 -6
  610. package/src/Calendar/Calendar.tsx +1 -1
  611. package/src/Calendar/index.ts +1 -6
  612. package/src/Calendar/styles.ts +2 -2
  613. package/src/Calendar/utils.ts +0 -11
  614. package/src/Card/Card.doc.mjs +3 -3
  615. package/src/Card/Card.tsx +1 -1
  616. package/src/Carousel/Carousel.doc.mjs +10 -3
  617. package/src/Carousel/Carousel.test.tsx +232 -1
  618. package/src/Carousel/Carousel.tsx +154 -27
  619. package/src/Carousel/index.ts +1 -1
  620. package/src/Center/Center.doc.mjs +41 -3
  621. package/src/Center/Center.test.tsx +75 -0
  622. package/src/Center/Center.tsx +38 -3
  623. package/src/Chat/Chat.doc.mjs +3 -3
  624. package/src/Chat/ChatComposer.doc.mjs +1 -1
  625. package/src/Chat/ChatComposer.tsx +5 -5
  626. package/src/Chat/ChatComposerDrawer.doc.mjs +1 -1
  627. package/src/Chat/ChatComposerDrawer.tsx +5 -5
  628. package/src/Chat/ChatComposerInput.doc.mjs +1 -1
  629. package/src/Chat/ChatComposerInput.tsx +1 -1
  630. package/src/Chat/ChatComposerTokenElement.doc.mjs +1 -1
  631. package/src/Chat/ChatDictationButton.doc.mjs +3 -3
  632. package/src/Chat/ChatDictationButton.tsx +1 -1
  633. package/src/Chat/ChatLayout.doc.mjs +1 -1
  634. package/src/Chat/ChatLayout.test.tsx +57 -0
  635. package/src/Chat/ChatLayout.tsx +23 -2
  636. package/src/Chat/ChatLayoutScrollButton.doc.mjs +1 -1
  637. package/src/Chat/ChatLayoutScrollButton.tsx +1 -1
  638. package/src/Chat/ChatMessage.doc.mjs +1 -1
  639. package/src/Chat/ChatMessage.tsx +1 -1
  640. package/src/Chat/ChatMessageBubble.doc.mjs +1 -1
  641. package/src/Chat/ChatMessageBubble.tsx +1 -1
  642. package/src/Chat/ChatMessageList.doc.mjs +1 -1
  643. package/src/Chat/ChatMessageList.tsx +1 -1
  644. package/src/Chat/ChatMessageMetadata.doc.mjs +1 -1
  645. package/src/Chat/ChatSendButton.doc.mjs +1 -1
  646. package/src/Chat/ChatSendButton.tsx +5 -3
  647. package/src/Chat/ChatSystemMessage.doc.mjs +1 -1
  648. package/src/Chat/ChatSystemMessage.tsx +1 -1
  649. package/src/Chat/ChatTokenizedText.doc.mjs +1 -1
  650. package/src/Chat/ChatTokenizedText.tsx +1 -1
  651. package/src/Chat/ChatToolCalls.doc.mjs +3 -3
  652. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
  653. package/src/CheckboxInput/CheckboxInput.test.tsx +56 -0
  654. package/src/CheckboxInput/CheckboxInput.tsx +18 -3
  655. package/src/CheckboxList/CheckboxList.doc.mjs +3 -3
  656. package/src/CheckboxList/CheckboxList.test.tsx +94 -3
  657. package/src/CheckboxList/CheckboxList.tsx +1 -1
  658. package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
  659. package/src/CheckboxList/CheckboxListItem.tsx +18 -11
  660. package/src/Citation/Citation.doc.mjs +2 -2
  661. package/src/Citation/Citation.tsx +1 -1
  662. package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
  663. package/src/ClickableCard/ClickableCard.tsx +3 -3
  664. package/src/Code/Code.tsx +2 -2
  665. package/src/CodeBlock/Code.doc.mjs +1 -1
  666. package/src/CodeBlock/CodeBlock.doc.mjs +3 -3
  667. package/src/CodeBlock/CodeBlock.test.tsx +17 -0
  668. package/src/CodeBlock/CodeBlock.tsx +2 -2
  669. package/src/Collapsible/Collapsible.doc.mjs +3 -3
  670. package/src/Collapsible/Collapsible.tsx +3 -3
  671. package/src/Collapsible/CollapsibleGroup.doc.mjs +1 -1
  672. package/src/Collapsible/CollapsibleGroup.tsx +1 -1
  673. package/src/Collapsible/CollapsibleGroupContext.tsx +1 -1
  674. package/src/Collapsible/useCollapsible.doc.mjs +2 -2
  675. package/src/CommandPalette/CommandPalette.doc.mjs +4 -4
  676. package/src/CommandPalette/CommandPalette.tsx +1 -1
  677. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +1 -1
  678. package/src/CommandPalette/CommandPaletteEmpty.tsx +1 -1
  679. package/src/CommandPalette/CommandPaletteFooter.doc.mjs +1 -1
  680. package/src/CommandPalette/CommandPaletteFooter.tsx +1 -1
  681. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +1 -1
  682. package/src/CommandPalette/CommandPaletteGroup.test.tsx +6 -2
  683. package/src/CommandPalette/CommandPaletteGroup.tsx +1 -1
  684. package/src/CommandPalette/CommandPaletteInput.doc.mjs +1 -1
  685. package/src/CommandPalette/CommandPaletteInput.tsx +5 -1
  686. package/src/CommandPalette/CommandPaletteItem.doc.mjs +1 -1
  687. package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
  688. package/src/CommandPalette/CommandPaletteList.doc.mjs +1 -1
  689. package/src/CommandPalette/CommandPaletteList.tsx +1 -1
  690. package/src/ComplexSelector/ComplexSelector.doc.mjs +220 -0
  691. package/src/ComplexSelector/ComplexSelector.test.tsx +156 -0
  692. package/src/ComplexSelector/ComplexSelector.tsx +429 -0
  693. package/src/ComplexSelector/index.ts +17 -0
  694. package/src/ContextMenu/ContextMenu.doc.mjs +3 -3
  695. package/src/ContextMenu/ContextMenu.test.tsx +17 -2
  696. package/src/ContextMenu/ContextMenu.tsx +27 -6
  697. package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
  698. package/src/DateInput/DateInput.doc.mjs +19 -4
  699. package/src/DateInput/DateInput.test.tsx +79 -3
  700. package/src/DateInput/DateInput.tsx +23 -3
  701. package/src/DateRangeInput/DateRangeInput.doc.mjs +11 -3
  702. package/src/DateRangeInput/DateRangeInput.test.tsx +97 -2
  703. package/src/DateRangeInput/DateRangeInput.tsx +19 -2
  704. package/src/DateTimeInput/DateTimeInput.doc.mjs +19 -5
  705. package/src/DateTimeInput/DateTimeInput.test.tsx +81 -2
  706. package/src/DateTimeInput/DateTimeInput.tsx +19 -2
  707. package/src/Dialog/Dialog.doc.mjs +7 -5
  708. package/src/Dialog/Dialog.test.tsx +46 -3
  709. package/src/Dialog/Dialog.tsx +61 -44
  710. package/src/Dialog/DialogHeader.doc.mjs +1 -1
  711. package/src/Dialog/DialogHeader.tsx +1 -1
  712. package/src/Dialog/index.ts +18 -1
  713. package/src/Dialog/useImperativeDialog.doc.mjs +1 -1
  714. package/src/Divider/Divider.doc.mjs +3 -3
  715. package/src/Divider/Divider.tsx +2 -19
  716. package/src/Divider/index.ts +19 -5
  717. package/src/DropdownMenu/DropdownMenu.doc.mjs +20 -5
  718. package/src/DropdownMenu/DropdownMenu.test.tsx +122 -0
  719. package/src/DropdownMenu/DropdownMenu.tsx +31 -20
  720. package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +1 -1
  721. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +41 -64
  722. package/src/DropdownMenu/DropdownMenuItem.doc.mjs +1 -1
  723. package/src/DropdownMenu/DropdownMenuItem.tsx +1 -1
  724. package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +5 -13
  725. package/src/DropdownMenu/DropdownMenuRadioGroup.tsx +9 -10
  726. package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
  727. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +11 -2
  728. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +84 -2
  729. package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +1 -1
  730. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +46 -1
  731. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +24 -8
  732. package/src/DropdownMenu/menuItemHover.ts +1 -0
  733. package/src/DropdownMenu/renderDropdownItems.tsx +14 -2
  734. package/src/EmptyState/EmptyState.doc.mjs +3 -3
  735. package/src/EmptyState/EmptyState.tsx +1 -1
  736. package/src/Field/Field.doc.mjs +7 -3
  737. package/src/Field/Field.tsx +1 -1
  738. package/src/Field/FieldLabel.doc.mjs +1 -1
  739. package/src/Field/FieldLabel.test.tsx +103 -0
  740. package/src/Field/FieldLabel.tsx +61 -5
  741. package/src/FieldStatus/FieldStatus.doc.mjs +3 -2
  742. package/src/FieldStatus/FieldStatus.test.tsx +61 -0
  743. package/src/FieldStatus/FieldStatus.tsx +16 -23
  744. package/src/FieldStatus/index.ts +20 -5
  745. package/src/FileInput/FileInput.doc.mjs +3 -3
  746. package/src/FileInput/FileInput.tsx +1 -1
  747. package/src/FormLayout/FormLayout.doc.mjs +3 -3
  748. package/src/FormLayout/FormLayout.tsx +2 -5
  749. package/src/Grid/Grid.doc.mjs +3 -8
  750. package/src/Grid/Grid.tsx +1 -25
  751. package/src/Grid/GridSpan.doc.mjs +1 -1
  752. package/src/Grid/GridSpan.tsx +1 -1
  753. package/src/HStack/HStack.tsx +1 -1
  754. package/src/Heading/Heading.tsx +4 -3
  755. package/src/HoverCard/HoverCard.doc.mjs +3 -3
  756. package/src/HoverCard/HoverCard.tsx +1 -1
  757. package/src/HoverCard/useHoverCard.doc.mjs +2 -2
  758. package/src/Icon/Icon.doc.mjs +7 -6
  759. package/src/Icon/Icon.test.tsx +23 -0
  760. package/src/Icon/Icon.tsx +4 -2
  761. package/src/Icon/defaultIcons.tsx +14 -0
  762. package/src/Icon/globalIconRegistry.test.tsx +87 -1
  763. package/src/Icon/globalIconRegistry.tsx +111 -9
  764. package/src/Icon/index.ts +9 -7
  765. package/src/Icon/useIcon.ts +23 -0
  766. package/src/IconButton/IconButton.doc.mjs +2 -2
  767. package/src/IconButton/IconButton.tsx +1 -1
  768. package/src/InputGroup/InputGroup.doc.mjs +2 -2
  769. package/src/InputGroup/InputGroup.tsx +1 -1
  770. package/src/InputGroup/InputGroupText.doc.mjs +1 -1
  771. package/src/InputGroup/InputGroupText.tsx +1 -1
  772. package/src/Item/Item.doc.mjs +8 -3
  773. package/src/Item/Item.test.tsx +88 -0
  774. package/src/Item/Item.tsx +58 -12
  775. package/src/Kbd/Kbd.doc.mjs +3 -3
  776. package/src/Kbd/Kbd.tsx +1 -1
  777. package/src/Layer/Layer.doc.mjs +2 -2
  778. package/src/Layer/useLayer.doc.mjs +2 -2
  779. package/src/Layout/Layout.doc.mjs +3 -3
  780. package/src/Layout/Layout.tsx +1 -1
  781. package/src/Layout/LayoutContent.doc.mjs +1 -1
  782. package/src/Layout/LayoutContent.tsx +1 -1
  783. package/src/Layout/LayoutFooter.doc.mjs +1 -1
  784. package/src/Layout/LayoutFooter.tsx +1 -1
  785. package/src/Layout/LayoutHeader.doc.mjs +1 -1
  786. package/src/Layout/LayoutHeader.tsx +1 -1
  787. package/src/Layout/LayoutPanel.doc.mjs +1 -1
  788. package/src/Layout/LayoutPanel.tsx +1 -1
  789. package/src/Lightbox/Lightbox.doc.mjs +6 -6
  790. package/src/Lightbox/Lightbox.test.tsx +211 -0
  791. package/src/Lightbox/Lightbox.tsx +152 -60
  792. package/src/Link/Link.doc.mjs +3 -3
  793. package/src/Link/Link.tsx +1 -1
  794. package/src/Link/LinkProvider.doc.mjs +2 -2
  795. package/src/Link/LinkProvider.tsx +2 -2
  796. package/src/List/List.doc.mjs +3 -3
  797. package/src/List/List.tsx +1 -1
  798. package/src/List/ListItem.doc.mjs +13 -1
  799. package/src/List/ListItem.tsx +14 -1
  800. package/src/Markdown/Markdown.doc.mjs +81 -1
  801. package/src/Markdown/Markdown.test.tsx +92 -0
  802. package/src/Markdown/Markdown.tsx +96 -68
  803. package/src/Markdown/parser.perf.test.ts +47 -35
  804. package/src/MetadataList/MetadataList.doc.mjs +3 -3
  805. package/src/MetadataList/MetadataList.test.tsx +82 -0
  806. package/src/MetadataList/MetadataList.tsx +45 -20
  807. package/src/MetadataList/MetadataListItem.doc.mjs +1 -1
  808. package/src/MetadataList/MetadataListItem.tsx +1 -1
  809. package/src/MobileNav/MobileNav.doc.mjs +3 -3
  810. package/src/MobileNav/MobileNav.tsx +4 -4
  811. package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
  812. package/src/MoreMenu/MoreMenu.tsx +3 -3
  813. package/src/MultiSelector/MultiSelector.doc.mjs +35 -10
  814. package/src/MultiSelector/MultiSelector.test.tsx +303 -3
  815. package/src/MultiSelector/MultiSelector.tsx +223 -58
  816. package/src/NavIcon/NavIcon.doc.mjs +3 -3
  817. package/src/NavIcon/NavIcon.tsx +1 -1
  818. package/src/NavMenu/NavHeadingMenu.test.tsx +0 -16
  819. package/src/NavMenu/NavMenu.doc.mjs +2 -2
  820. package/src/NavMenu/index.ts +0 -4
  821. package/src/NumberInput/NumberInput.doc.mjs +5 -8
  822. package/src/NumberInput/NumberInput.test.tsx +62 -3
  823. package/src/NumberInput/NumberInput.tsx +29 -2
  824. package/src/Outline/Outline.doc.mjs +3 -3
  825. package/src/Outline/Outline.tsx +1 -1
  826. package/src/OverflowList/OverflowList.doc.mjs +3 -3
  827. package/src/OverflowList/OverflowList.tsx +1 -1
  828. package/src/Overlay/Overlay.doc.mjs +2 -2
  829. package/src/Pagination/Pagination.doc.mjs +55 -8
  830. package/src/Pagination/Pagination.test.tsx +582 -0
  831. package/src/Pagination/Pagination.tsx +247 -55
  832. package/src/Pagination/index.ts +22 -1
  833. package/src/Popover/Popover.doc.mjs +31 -3
  834. package/src/Popover/Popover.test.tsx +41 -0
  835. package/src/Popover/Popover.tsx +25 -2
  836. package/src/Popover/usePopover.doc.mjs +2 -2
  837. package/src/Popover/usePopover.tsx +10 -4
  838. package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
  839. package/src/PowerSearch/PowerSearch.tsx +1 -1
  840. package/src/ProgressBar/ProgressBar.doc.mjs +24 -3
  841. package/src/ProgressBar/ProgressBar.test.tsx +523 -2
  842. package/src/ProgressBar/ProgressBar.tsx +250 -25
  843. package/src/ProgressBar/ProgressBarMarkTooltip.tsx +43 -0
  844. package/src/ProgressBar/index.ts +22 -1
  845. package/src/RadioList/RadioList.doc.mjs +3 -3
  846. package/src/RadioList/RadioList.test.tsx +26 -4
  847. package/src/RadioList/RadioList.tsx +1 -1
  848. package/src/RadioList/RadioListItem.doc.mjs +1 -1
  849. package/src/RadioList/RadioListItem.tsx +9 -2
  850. package/src/Resizable/Resizable.doc.mjs +2 -2
  851. package/src/Resizable/ResizeHandle.test.tsx +52 -3
  852. package/src/Resizable/ResizeHandle.tsx +25 -13
  853. package/src/Resizable/useResizable.doc.mjs +2 -2
  854. package/src/Section/Section.doc.mjs +3 -3
  855. package/src/Section/Section.tsx +2 -20
  856. package/src/Section/index.ts +20 -5
  857. package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
  858. package/src/SegmentedControl/SegmentedControl.test.tsx +28 -0
  859. package/src/SegmentedControl/SegmentedControl.tsx +1 -1
  860. package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
  861. package/src/SegmentedControl/SegmentedControlItem.tsx +21 -3
  862. package/src/SelectableCard/SelectableCard.doc.mjs +4 -2
  863. package/src/SelectableCard/SelectableCard.test.tsx +55 -0
  864. package/src/SelectableCard/SelectableCard.tsx +19 -3
  865. package/src/Selector/Selector.doc.mjs +29 -8
  866. package/src/Selector/Selector.test.tsx +447 -9
  867. package/src/Selector/Selector.tsx +232 -57
  868. package/src/Selector/SelectorOption.doc.mjs +1 -1
  869. package/src/Selector/hooks.ts +45 -21
  870. package/src/SideNav/SideNav.doc.mjs +3 -3
  871. package/src/SideNav/SideNav.tsx +1 -1
  872. package/src/SideNav/SideNavCollapseButton.doc.mjs +1 -1
  873. package/src/SideNav/SideNavCollapseButton.tsx +4 -3
  874. package/src/SideNav/SideNavHeading.doc.mjs +1 -1
  875. package/src/SideNav/SideNavHeading.tsx +8 -9
  876. package/src/SideNav/SideNavItem.doc.mjs +1 -1
  877. package/src/SideNav/SideNavItem.tsx +5 -6
  878. package/src/SideNav/SideNavSection.doc.mjs +1 -1
  879. package/src/SideNav/SideNavSection.tsx +1 -1
  880. package/src/Skeleton/Skeleton.doc.mjs +3 -3
  881. package/src/Skeleton/Skeleton.test.tsx +16 -0
  882. package/src/Skeleton/Skeleton.tsx +14 -2
  883. package/src/Slider/Slider.doc.mjs +3 -3
  884. package/src/Slider/Slider.tsx +9 -13
  885. package/src/Spinner/Spinner.doc.mjs +3 -3
  886. package/src/Spinner/Spinner.tsx +1 -1
  887. package/src/Stack/Stack.doc.mjs +113 -3
  888. package/src/Stack/Stack.tsx +1 -1
  889. package/src/Stack/StackItem.tsx +1 -1
  890. package/src/StatusDot/StatusDot.doc.mjs +15 -6
  891. package/src/StatusDot/StatusDot.tsx +2 -22
  892. package/src/StatusDot/index.ts +22 -5
  893. package/src/Switch/Switch.doc.mjs +5 -5
  894. package/src/Switch/Switch.test.tsx +71 -25
  895. package/src/Switch/Switch.tsx +63 -26
  896. package/src/TabList/Tab.doc.mjs +1 -1
  897. package/src/TabList/Tab.tsx +1 -1
  898. package/src/TabList/TabList.doc.mjs +3 -3
  899. package/src/TabList/TabList.test.tsx +21 -18
  900. package/src/TabList/TabList.tsx +1 -1
  901. package/src/TabList/TabMenu.doc.mjs +1 -1
  902. package/src/TabList/TabMenu.tsx +11 -3
  903. package/src/Table/BaseTable.tsx +4 -5
  904. package/src/Table/Table.doc.mjs +5 -5
  905. package/src/Table/Table.test.tsx +27 -49
  906. package/src/Table/Table.tsx +1 -1
  907. package/src/Table/TableCell.doc.mjs +1 -1
  908. package/src/Table/TableCell.tsx +2 -2
  909. package/src/Table/TableHeaderCell.doc.mjs +1 -1
  910. package/src/Table/TableHeaderCell.tsx +2 -2
  911. package/src/Table/TableRow.doc.mjs +1 -1
  912. package/src/Table/TableRow.tsx +1 -1
  913. package/src/Table/index.ts +1 -1
  914. package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +1 -1
  915. package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +19 -0
  916. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +30 -11
  917. package/src/Table/plugins/tree/useTableTreeData.test.tsx +161 -2
  918. package/src/Table/plugins/tree/useTableTreeData.tsx +54 -1
  919. package/src/Table/types.ts +0 -9
  920. package/src/Table/useTableColumnResize.doc.mjs +1 -1
  921. package/src/Table/useTableColumnSettings.doc.mjs +1 -1
  922. package/src/Table/useTableFilterState.doc.mjs +1 -1
  923. package/src/Table/useTableFiltering.doc.mjs +1 -1
  924. package/src/Table/useTableGroupedRows.doc.mjs +2 -2
  925. package/src/Table/useTablePagination.doc.mjs +1 -1
  926. package/src/Table/useTableRowExpansion.doc.mjs +57 -4
  927. package/src/Table/useTableRowIndex.doc.mjs +2 -2
  928. package/src/Table/useTableRowStatus.doc.mjs +3 -3
  929. package/src/Table/useTableSelection.doc.mjs +1 -1
  930. package/src/Table/useTableSelectionState.doc.mjs +1 -1
  931. package/src/Table/useTableSortable.doc.mjs +1 -1
  932. package/src/Table/useTableStickyColumns.doc.mjs +1 -1
  933. package/src/Table/useTableTreeData.doc.mjs +10 -1
  934. package/src/Table/useTableTreeState.doc.mjs +1 -1
  935. package/src/Text/Heading.doc.mjs +4 -4
  936. package/src/Text/Text.doc.mjs +4 -4
  937. package/src/Text/Text.test.tsx +42 -0
  938. package/src/Text/Text.tsx +26 -2
  939. package/src/Text/index.ts +32 -6
  940. package/src/TextArea/TextArea.doc.mjs +31 -7
  941. package/src/TextArea/TextArea.test.tsx +131 -7
  942. package/src/TextArea/TextArea.tsx +148 -51
  943. package/src/TextInput/TextInput.doc.mjs +5 -5
  944. package/src/TextInput/TextInput.test.tsx +22 -0
  945. package/src/TextInput/TextInput.tsx +6 -2
  946. package/src/Thumbnail/Thumbnail.doc.mjs +2 -2
  947. package/src/Thumbnail/Thumbnail.test.tsx +24 -1
  948. package/src/Thumbnail/Thumbnail.tsx +28 -35
  949. package/src/TimeInput/TimeInput.doc.mjs +5 -5
  950. package/src/TimeInput/TimeInput.test.tsx +30 -3
  951. package/src/TimeInput/TimeInput.tsx +6 -2
  952. package/src/Timestamp/Timestamp.doc.mjs +30 -24
  953. package/src/Timestamp/Timestamp.test.tsx +438 -107
  954. package/src/Timestamp/Timestamp.tsx +167 -103
  955. package/src/Timestamp/TimestampHoverCard.tsx +283 -0
  956. package/src/Timestamp/formatInstant.ts +9 -4
  957. package/src/Timestamp/tooltipEntries.test.ts +9 -0
  958. package/src/Timestamp/tooltipEntries.ts +18 -2
  959. package/src/Toast/Toast.doc.mjs +3 -3
  960. package/src/Toast/ToastViewport.test.tsx +218 -8
  961. package/src/Toast/ToastViewport.tsx +71 -12
  962. package/src/Toast/useToast.doc.mjs +2 -2
  963. package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
  964. package/src/ToggleButton/ToggleButton.test.tsx +24 -0
  965. package/src/ToggleButton/ToggleButton.tsx +20 -2
  966. package/src/ToggleButton/ToggleButtonGroup.doc.mjs +1 -1
  967. package/src/ToggleButton/ToggleButtonGroup.tsx +3 -6
  968. package/src/Token/Token.doc.mjs +3 -3
  969. package/src/Token/Token.test.tsx +145 -0
  970. package/src/Token/Token.tsx +75 -61
  971. package/src/Token/TokenLink.tsx +107 -0
  972. package/src/Token/index.ts +28 -1
  973. package/src/Tokenizer/Tokenizer.doc.mjs +5 -5
  974. package/src/Tokenizer/Tokenizer.test.tsx +45 -3
  975. package/src/Tokenizer/Tokenizer.tsx +11 -3
  976. package/src/Toolbar/Toolbar.doc.mjs +3 -3
  977. package/src/Toolbar/Toolbar.tsx +1 -1
  978. package/src/Tooltip/Tooltip.doc.mjs +3 -3
  979. package/src/Tooltip/Tooltip.tsx +1 -1
  980. package/src/Tooltip/useTooltip.doc.mjs +2 -2
  981. package/src/TopNav/TopNav.doc.mjs +3 -3
  982. package/src/TopNav/TopNav.test.tsx +2 -2
  983. package/src/TopNav/TopNav.tsx +2 -4
  984. package/src/TopNav/TopNavHeading.doc.mjs +1 -12
  985. package/src/TopNav/TopNavHeading.tsx +8 -18
  986. package/src/TopNav/TopNavItem.doc.mjs +1 -1
  987. package/src/TopNav/TopNavItem.tsx +1 -1
  988. package/src/TopNav/TopNavMegaMenu.doc.mjs +1 -1
  989. package/src/TopNav/TopNavMegaMenu.tsx +35 -11
  990. package/src/TopNav/TopNavMegaMenuFeaturedCard.doc.mjs +1 -1
  991. package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +1 -1
  992. package/src/TopNav/TopNavMegaMenuItem.doc.mjs +1 -1
  993. package/src/TopNav/TopNavMegaMenuItem.tsx +1 -1
  994. package/src/TopNav/TopNavMenu.doc.mjs +1 -1
  995. package/src/TopNav/TopNavMenu.tsx +5 -4
  996. package/src/TreeList/TreeList.doc.mjs +3 -3
  997. package/src/TreeList/TreeList.test.tsx +10 -6
  998. package/src/TreeList/TreeList.tsx +1 -1
  999. package/src/TreeList/TreeListBranches.tsx +1 -1
  1000. package/src/TreeList/TreeListItem.tsx +4 -3
  1001. package/src/TreeList/TreeListTypes.ts +1 -18
  1002. package/src/TreeList/index.ts +19 -1
  1003. package/src/Typeahead/BaseTypeahead.doc.mjs +1 -1
  1004. package/src/Typeahead/BaseTypeahead.tsx +13 -1
  1005. package/src/Typeahead/Typeahead.doc.mjs +3 -3
  1006. package/src/Typeahead/Typeahead.test.tsx +62 -0
  1007. package/src/Typeahead/Typeahead.tsx +7 -1
  1008. package/src/Typeahead/TypeaheadItem.doc.mjs +1 -1
  1009. package/src/Typeahead/TypeaheadItem.tsx +1 -1
  1010. package/src/VStack/VStack.tsx +1 -1
  1011. package/src/VisuallyHidden/VisuallyHidden.doc.mjs +3 -3
  1012. package/src/VisuallyHidden/VisuallyHidden.tsx +1 -1
  1013. package/src/__tests__/babelPluginAddExtensions.test.ts +190 -0
  1014. package/src/__tests__/forcedColors.ts +60 -0
  1015. package/src/__tests__/inputWidthContract.test.tsx +8 -1
  1016. package/src/doc-mjs.d.ts +5 -2
  1017. package/src/docPropLiterals.test.ts +1 -1
  1018. package/src/docPropReferences.test.ts +1 -1
  1019. package/src/hooks/containerReveal.pool.stylex.ts +571 -0
  1020. package/src/hooks/index.ts +7 -0
  1021. package/src/hooks/useClickableContainer.doc.mjs +2 -2
  1022. package/src/hooks/useContainerReveal.doc.mjs +75 -0
  1023. package/src/hooks/useContainerReveal.test.tsx +116 -0
  1024. package/src/hooks/useContainerReveal.ts +181 -0
  1025. package/src/hooks/useEntryAnimation.doc.mjs +2 -2
  1026. package/src/hooks/useFocusTrap.doc.mjs +2 -2
  1027. package/src/hooks/useGridFocus.doc.mjs +2 -2
  1028. package/src/hooks/useGridFocus.ts +8 -6
  1029. package/src/hooks/useHotkeys.doc.mjs +2 -2
  1030. package/src/hooks/useImageMode.doc.mjs +2 -2
  1031. package/src/hooks/useImageMode.test.ts +1 -1
  1032. package/src/hooks/useInputContainer.doc.mjs +2 -2
  1033. package/src/hooks/useInputContainer.test.tsx +180 -0
  1034. package/src/hooks/useInputContainer.ts +36 -1
  1035. package/src/hooks/useInputStatusIcon.test.tsx +59 -0
  1036. package/src/hooks/useInputStatusIcon.tsx +12 -1
  1037. package/src/hooks/useKeyboardHint.doc.mjs +2 -2
  1038. package/src/hooks/useKeyboardHint.test.tsx +22 -0
  1039. package/src/hooks/useKeyboardHint.tsx +7 -3
  1040. package/src/hooks/useListFocus.doc.mjs +2 -2
  1041. package/src/hooks/useListFocus.ts +8 -7
  1042. package/src/hooks/useLongPress.test.tsx +18 -0
  1043. package/src/hooks/useLongPress.ts +12 -2
  1044. package/src/hooks/useMediaQuery.doc.mjs +2 -2
  1045. package/src/hooks/useOverflow.doc.mjs +2 -2
  1046. package/src/hooks/useScrollLock.doc.mjs +2 -2
  1047. package/src/hooks/useScrollOverflow.doc.mjs +2 -2
  1048. package/src/hooks/useStreamingText.doc.mjs +2 -2
  1049. package/src/hooks/useTreeFocus.doc.mjs +2 -2
  1050. package/src/hooks/useTreeFocus.test.tsx +53 -1
  1051. package/src/hooks/useTreeFocus.ts +13 -2
  1052. package/src/i18n/InternationalizationProvider.doc.mjs +14 -2
  1053. package/src/i18n/InternationalizationProvider.tsx +6 -0
  1054. package/src/i18n/useDirection.ts +6 -3
  1055. package/src/i18n/useTranslator.doc.mjs +2 -2
  1056. package/src/index.ts +2 -18
  1057. package/src/theme/MediaTheme.doc.mjs +2 -2
  1058. package/src/theme/SyntaxTheme.doc.mjs +2 -2
  1059. package/src/theme/Theme.doc.mjs +2 -2
  1060. package/src/theme/Theme.tsx +3 -7
  1061. package/src/theme/contrast.test.ts +94 -0
  1062. package/src/theme/contrast.ts +99 -0
  1063. package/src/theme/defineTheme.test.ts +29 -30
  1064. package/src/theme/defineTheme.ts +11 -5
  1065. package/src/theme/derivedVarRegistry.test.ts +8 -1
  1066. package/src/theme/derivedVarRegistry.ts +15 -6
  1067. package/src/theme/expandColorScale.test.ts +401 -1
  1068. package/src/theme/expandColorScale.ts +143 -19
  1069. package/src/theme/generateThemeRules.test.ts +41 -20
  1070. package/src/theme/generateThemeRules.ts +11 -15
  1071. package/src/theme/index.ts +11 -13
  1072. package/src/theme/themeRegistry.test.ts +59 -0
  1073. package/src/theme/themeRegistry.ts +53 -0
  1074. package/src/theme/tokens.stylex.ts +0 -19
  1075. package/src/theme/types.ts +14 -13
  1076. package/src/theme/useTheme.doc.mjs +2 -2
  1077. package/src/theme/useTheme.test.tsx +48 -3
  1078. package/src/theme/useTheme.ts +100 -29
  1079. package/src/utils/rtlStyles.ts +24 -2
  1080. package/dist/NavMenu/NavMenuItem.d.ts +0 -13
  1081. package/dist/NavMenu/NavMenuItem.d.ts.map +0 -1
  1082. package/dist/NavMenu/NavMenuItem.js +0 -16
  1083. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts +0 -9
  1084. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts.map +0 -1
  1085. package/dist/Thumbnail/thumbnail.markers.stylex.js +0 -14
  1086. package/dist/authoring/doc.d.ts +0 -145
  1087. package/dist/authoring/doc.d.ts.map +0 -1
  1088. package/dist/authoring/doc.js +0 -100
  1089. package/dist/authoring/index.d.ts +0 -29
  1090. package/dist/authoring/index.d.ts.map +0 -1
  1091. package/dist/authoring/index.js +0 -28
  1092. package/dist/authoring/integration.d.ts +0 -35
  1093. package/dist/authoring/integration.d.ts.map +0 -1
  1094. package/dist/authoring/integration.js +0 -30
  1095. package/dist/authoring/template.d.ts +0 -66
  1096. package/dist/authoring/template.d.ts.map +0 -1
  1097. package/dist/authoring/template.js +0 -55
  1098. package/dist/config.d.ts +0 -80
  1099. package/dist/config.d.ts.map +0 -1
  1100. package/dist/config.js +0 -40
  1101. package/dist/docs-types.d.ts +0 -969
  1102. package/dist/docs-types.d.ts.map +0 -1
  1103. package/dist/docs-types.js +0 -1
  1104. package/src/NavMenu/NavMenuItem.tsx +0 -19
  1105. package/src/Thumbnail/thumbnail.markers.stylex.ts +0 -12
  1106. package/src/authoring/doc.ts +0 -164
  1107. package/src/authoring/index.test.ts +0 -52
  1108. package/src/authoring/index.ts +0 -50
  1109. package/src/authoring/integration.ts +0 -42
  1110. package/src/authoring/template.ts +0 -74
  1111. package/src/config.test.ts +0 -16
  1112. package/src/config.ts +0 -92
  1113. package/src/docs-types.ts +0 -1108
@@ -4,7 +4,8 @@
4
4
 
5
5
  /**
6
6
  * @file Selector.tsx
7
- * @input Uses React, StyleX, usePopover, useTooltip, Icon, InputGroupContext
7
+ * @input Uses React, StyleX, usePopover, useTooltip, Icon, InputGroupContext,
8
+ * and Selector positioning hooks
8
9
  * @output Exports Selector component
9
10
  * @position Core implementation; consumed by index.ts
10
11
  *
@@ -13,7 +14,7 @@
13
14
  * - /packages/core/src/Selector/Selector.test.tsx
14
15
  * - /packages/core/src/Selector/index.ts
15
16
  * - /apps/storybook/stories/InputGroup.stories.tsx
16
- * - /packages/cli/templates/blocks/components/Selector/ (showcase blocks)
17
+ * - /packages/cli/assets/templates/blocks/components/Selector/ (showcase blocks)
17
18
  */
18
19
 
19
20
  import React, {
@@ -43,6 +44,7 @@ import {Divider} from '../Divider';
43
44
  import {layerAnimations} from '../Layer/layerAnimations.stylex';
44
45
  import type {LayerPlacement} from '../Layer/useLayer';
45
46
  import {Spinner} from '../Spinner';
47
+ import {TextInput} from '../TextInput';
46
48
  import {useAnnounce} from '../hooks/useAnnounce';
47
49
  import {
48
50
  colorVars,
@@ -153,6 +155,47 @@ const styles = stylex.create({
153
155
  // Disable rotation transition for status icons
154
156
  transition: 'none',
155
157
  },
158
+ triggerGhost: {
159
+ width: 'auto',
160
+ borderWidth: 0,
161
+ backgroundColor: 'transparent',
162
+ backgroundImage: {
163
+ default: null,
164
+ ':hover': {
165
+ '@media (hover: hover)': `linear-gradient(${colorVars['--color-overlay-hover']}, ${colorVars['--color-overlay-hover']})`,
166
+ },
167
+ ':active': `linear-gradient(${colorVars['--color-overlay-pressed']}, ${colorVars['--color-overlay-pressed']})`,
168
+ },
169
+ boxShadow: {
170
+ default: 'none',
171
+ ':hover:not(:focus-within)': {
172
+ '@media (hover: hover)': 'none',
173
+ },
174
+ ':focus-within': 'none',
175
+ },
176
+ fontWeight: fontWeightVars['--font-weight-medium'],
177
+ outline: {
178
+ default: 'none',
179
+ ':has(:focus-visible)': `2px solid ${colorVars['--color-accent']}`,
180
+ },
181
+ outlineOffset: {
182
+ default: '0',
183
+ ':has(:focus-visible)': '3px',
184
+ },
185
+ transitionProperty:
186
+ 'background-image, background-color, color, opacity, transform',
187
+ transform: {
188
+ default: 'scale(1)',
189
+ ':active': 'scale(0.98)',
190
+ },
191
+ },
192
+ triggerGhostDisabled: {
193
+ backgroundImage: 'none',
194
+ transform: {
195
+ default: 'none',
196
+ ':active': 'none',
197
+ },
198
+ },
156
199
 
157
200
  // Clear button
158
201
  clearButton: {
@@ -172,16 +215,40 @@ const styles = stylex.create({
172
215
  },
173
216
  outlineOffset: 1,
174
217
  },
218
+ statusButton: {
219
+ display: 'flex',
220
+ alignItems: 'center',
221
+ justifyContent: 'center',
222
+ padding: 0,
223
+ margin: 0,
224
+ borderWidth: 0,
225
+ borderStyle: 'none',
226
+ backgroundColor: 'transparent',
227
+ color: 'inherit',
228
+ cursor: 'pointer',
229
+ borderRadius: radiusVars['--radius-element'],
230
+ outline: {
231
+ default: 'none',
232
+ ':focus-visible': `${borderVars['--border-width']} solid ${colorVars['--color-accent']}`,
233
+ },
234
+ outlineOffset: 1,
235
+ },
175
236
 
176
237
  // Dropdown container
177
238
  dropdown: {
178
239
  boxSizing: 'border-box',
179
240
  maxHeight: '300px',
180
241
  overflowY: 'auto',
181
- padding: spacingVars['--spacing-1'],
242
+ paddingBlock: spacingVars['--spacing-1'],
243
+ paddingInline: spacingVars['--spacing-1'],
182
244
  opacity: 1,
183
245
  transition: `opacity ${durationVars['--duration-fast']}`,
184
246
  },
247
+ dropdownInput: {
248
+ // The input trigger's text inset includes its border. Mirror that extra
249
+ // pixel in the menu; the borderless ghost variant needs no correction.
250
+ paddingInline: `calc(${spacingVars['--spacing-1']} + ${borderVars['--border-width']})`,
251
+ },
185
252
  dropdownHidden: {
186
253
  opacity: 0,
187
254
  transition: 'none',
@@ -191,33 +258,15 @@ const styles = stylex.create({
191
258
  popover: {
192
259
  minWidth: 'anchor-size(width)',
193
260
  },
194
- // Search input
261
+ // Search field. The inner TextInput owns the border, focus ring, magnifier
262
+ // (startIcon), and clear button (hasClear); this wrapper only supplies the
263
+ // dropdown's inline/block padding around it.
195
264
  searchWrapper: {
265
+ display: 'flex',
266
+ alignItems: 'center',
196
267
  paddingInline: spacingVars['--spacing-2'],
197
268
  paddingBlock: spacingVars['--spacing-1'],
198
269
  },
199
- searchInput: {
200
- boxSizing: 'border-box',
201
- width: '100%',
202
- paddingBlock: spacingVars['--spacing-1'],
203
- paddingInline: spacingVars['--spacing-2'],
204
- borderWidth: borderVars['--border-width'],
205
- borderStyle: 'solid',
206
- borderColor: colorVars['--color-border-emphasized'],
207
- borderRadius: radiusVars['--radius-element'],
208
- backgroundColor: colorVars['--color-background-surface'],
209
- fontFamily: typographyVars['--font-family-body'],
210
- fontSize: {
211
- default: typeScaleVars['--text-label-size'],
212
- '@media (pointer: coarse)': `max(1rem, ${typeScaleVars['--text-label-size']})`,
213
- },
214
- color: colorVars['--color-text-primary'],
215
- outline: {
216
- default: 'none',
217
- ':focus': `${borderVars['--border-width']} solid ${colorVars['--color-accent']}`,
218
- },
219
- outlineOffset: '0',
220
- },
221
270
 
222
271
  // Empty state
223
272
  emptyState: {
@@ -326,8 +375,16 @@ const STATUS_ICON_COLOR_MAP: Record<
326
375
  success: 'success',
327
376
  };
328
377
 
378
+ const STATUS_BUTTON_LABEL_KEY: Record<SelectorStatusType, string> = {
379
+ warning: '@astryx.input.statusButton.warning',
380
+ error: '@astryx.input.statusButton.error',
381
+ success: '@astryx.input.statusButton.success',
382
+ };
383
+
329
384
  export type SelectorSize = 'sm' | 'md' | 'lg';
330
385
 
386
+ export type SelectorVariant = 'input' | 'ghost';
387
+
331
388
  export type SelectorStatusType = 'warning' | 'error' | 'success';
332
389
 
333
390
  export interface SelectorStatus {
@@ -428,6 +485,14 @@ interface SelectorPropsBase<
428
485
  */
429
486
  size?: SelectorSize;
430
487
 
488
+ /**
489
+ * Visual style of the selector trigger.
490
+ * - 'input': bordered input-style trigger for forms
491
+ * - 'ghost': borderless trigger matching ghost buttons, for toolbars
492
+ * @default 'input'
493
+ */
494
+ variant?: SelectorVariant;
495
+
431
496
  /**
432
497
  * Status indicator for the selector.
433
498
  * When set, displays a colored border and status icon.
@@ -436,9 +501,10 @@ interface SelectorPropsBase<
436
501
  status?: SelectorStatus;
437
502
  /**
438
503
  * How the status message is placed relative to the input.
439
- * - 'attached': message overlaps directly below the input (bordered treatment)
504
+ * - 'attached': message overlaps directly below the bordered input (input variant only)
440
505
  * - 'detached': message floats below as a separate element with spacing
441
- * @default 'attached'
506
+ * - 'tooltip': message is exposed from the on-field status icon
507
+ * @default 'attached' for input selectors; 'detached' for ghost selectors
442
508
  */
443
509
  statusVariant?: FieldStatusVariant;
444
510
 
@@ -607,6 +673,7 @@ export function Selector<T extends SelectorOptionType>(
607
673
  isLoading = false,
608
674
  placeholder: placeholderFromProps,
609
675
  size: sizeProp,
676
+ variant = 'input',
610
677
  status,
611
678
  statusVariant = 'attached',
612
679
  labelTooltip,
@@ -630,6 +697,10 @@ export function Selector<T extends SelectorOptionType>(
630
697
  searchPlaceholderFromProps ?? t('@astryx.selector.searchPlaceholder');
631
698
  const hasClear = hasClearProp === true;
632
699
  const size = useSize(sizeProp, 'md');
700
+ const effectiveStatusVariant =
701
+ variant === 'ghost' && statusVariant === 'attached'
702
+ ? 'detached'
703
+ : statusVariant;
633
704
 
634
705
  // Normalize null to undefined for internal use (null is the clear sentinel)
635
706
  const normalizedValue = value === null ? undefined : value;
@@ -639,11 +710,17 @@ export function Selector<T extends SelectorOptionType>(
639
710
  const statusMessageId = useId();
640
711
  const inputLabelId = useId();
641
712
  const searchId = useId();
713
+ // Measure from the same outer control that usePopover anchors to; using the
714
+ // shorter inner button makes every size's selected row land too low.
715
+ const anchorRef = useRef<HTMLDivElement>(null);
642
716
  const triggerRef = useRef<HTMLButtonElement>(null);
643
717
  const searchRef = useRef<HTMLInputElement>(null);
644
718
  const inputGroup = useInputGroup();
645
719
 
646
720
  const [searchQuery, setSearchQuery] = useState('');
721
+ // A typed query shows TextInput's built-in clear (✕) button, which becomes
722
+ // the next tab stop after the search input.
723
+ const hasQuery = searchQuery.length > 0;
647
724
 
648
725
  const [, startTransition] = useTransition();
649
726
  const [optimisticValue, setOptimisticValue] = useOptimistic(normalizedValue);
@@ -662,12 +739,21 @@ export function Selector<T extends SelectorOptionType>(
662
739
  focusTrigger: 'always',
663
740
  isEnabled: showsDisabledMessage,
664
741
  });
742
+ const statusTooltip = useTooltip({
743
+ placement: 'above',
744
+ isEnabled: effectiveStatusVariant === 'tooltip' && !!status?.message,
745
+ });
665
746
 
666
747
  const {ariaLabelledBy, ariaDescribedBy} = getInputARIA(
667
748
  inputLabelId,
668
749
  [
669
750
  description ? descriptionId : null,
670
- status?.message ? statusMessageId : null,
751
+ !inputGroup && effectiveStatusVariant !== 'tooltip' && status?.message
752
+ ? statusMessageId
753
+ : null,
754
+ effectiveStatusVariant === 'tooltip' && status?.message
755
+ ? statusTooltip.describedBy
756
+ : null,
671
757
  showsDisabledMessage ? disabledMessageTooltip.describedBy : null,
672
758
  ],
673
759
  inputGroup,
@@ -737,8 +823,7 @@ export function Selector<T extends SelectorOptionType>(
737
823
  // next query here fires the announcement exactly once per keystroke and does
738
824
  // not re-speak on unrelated re-renders.
739
825
  const handleSearchChange = useCallback(
740
- (event: React.ChangeEvent<HTMLInputElement>) => {
741
- const nextQuery = event.target.value;
826
+ (nextQuery: string) => {
742
827
  setSearchQuery(nextQuery);
743
828
  if (nextQuery.length === 0) {
744
829
  // Emptying the query clears the region rather than announcing a count.
@@ -765,7 +850,7 @@ export function Selector<T extends SelectorOptionType>(
765
850
  selectedItemIndex,
766
851
  listboxId,
767
852
  listboxRef,
768
- triggerRef,
853
+ anchorRef,
769
854
  });
770
855
 
771
856
  const selectedItemOffset = shouldOverlaySelectedItem ? rawOffset : 0;
@@ -856,14 +941,42 @@ export function Selector<T extends SelectorOptionType>(
856
941
  return null;
857
942
  }
858
943
  return (
859
- <div {...stylex.props(styles.searchWrapper)}>
860
- <input
944
+ <div
945
+ {...stylex.props(styles.searchWrapper)}
946
+ onKeyDown={e => {
947
+ // The clear (✕) button lives inside the TextInput, after the input in
948
+ // DOM order. When it is focused and the user tabs forward there is
949
+ // nothing else in the popup, so dismiss it (Shift+Tab returns to the
950
+ // input natively). Key events originating on the input are handled on
951
+ // the input below; ignore them here so we don't double-dismiss.
952
+ if (e.target === searchRef.current) {
953
+ return;
954
+ }
955
+ if (e.key === 'Tab' && !e.shiftKey) {
956
+ onKeyDown(e);
957
+ }
958
+ }}>
959
+ <TextInput
861
960
  ref={searchRef}
862
961
  id={searchId}
962
+ // The search field IS a TextInput: the leading magnifier is its
963
+ // `startIcon` and the trailing clear (✕) is its built-in `hasClear`
964
+ // (which resets the value and refocuses the input). We add no bespoke
965
+ // affordance chrome — the field just looks and behaves like every
966
+ // other Astryx input.
967
+ label={t('@astryx.selector.searchOptions')}
968
+ isLabelHidden
969
+ startIcon="search"
970
+ hasClear
971
+ size="sm"
972
+ // Fill the dropdown's width (minus the wrapper's inline padding) so
973
+ // the field is flush end-to-end rather than sized to its content.
974
+ width="100%"
863
975
  // When hasSearch is set, focus moves into this input on open, so it —
864
976
  // not the trigger — must be the combobox that reports the highlighted
865
977
  // option via aria-activedescendant (comboboxes-4). A bare searchbox
866
- // left the highlight silent to screen readers.
978
+ // left the highlight silent to screen readers. role + aria-* pass
979
+ // through to the underlying <input> via BaseProps.
867
980
  role="combobox"
868
981
  aria-expanded={popover.isOpen}
869
982
  aria-controls={listboxId}
@@ -873,12 +986,10 @@ export function Selector<T extends SelectorOptionType>(
873
986
  ? getItemId(highlightedIndex)
874
987
  : undefined
875
988
  }
876
- aria-label={t('@astryx.selector.searchOptions')}
877
- type="text"
878
989
  value={searchQuery}
879
990
  onChange={handleSearchChange}
880
991
  onKeyDown={e => {
881
- // Arrow keys navigate options; Enter selects; Escape/Tab close.
992
+ // Arrow keys navigate options; Enter selects; Escape closes.
882
993
  // Home/End are left to the input for caret movement (APG editable
883
994
  // combobox); PageUp/PageDown are the sanctioned substitute for
884
995
  // jumping to the first/last option.
@@ -888,14 +999,19 @@ export function Selector<T extends SelectorOptionType>(
888
999
  e.key === 'PageUp' ||
889
1000
  e.key === 'PageDown' ||
890
1001
  e.key === 'Enter' ||
891
- e.key === 'Escape' ||
892
- e.key === 'Tab'
1002
+ e.key === 'Escape'
893
1003
  ) {
894
1004
  onKeyDown(e);
1005
+ return;
1006
+ }
1007
+ // Tab: when a query is showing the clear (✕) button, forward-tab
1008
+ // moves focus to it (keeping the popup open) so the affordance is
1009
+ // keyboard-reachable. Every other Tab dismisses the popup as usual.
1010
+ if (e.key === 'Tab' && (e.shiftKey || !hasQuery)) {
1011
+ onKeyDown(e);
895
1012
  }
896
1013
  }}
897
1014
  placeholder={searchPlaceholder}
898
- {...stylex.props(styles.searchInput)}
899
1015
  />
900
1016
  </div>
901
1017
  );
@@ -904,6 +1020,7 @@ export function Selector<T extends SelectorOptionType>(
904
1020
  searchId,
905
1021
  listboxId,
906
1022
  searchQuery,
1023
+ hasQuery,
907
1024
  searchPlaceholder,
908
1025
  handleSearchChange,
909
1026
  onKeyDown,
@@ -942,7 +1059,17 @@ export function Selector<T extends SelectorOptionType>(
942
1059
  <DefaultOption option={item} />
943
1060
  )}
944
1061
  </span>
945
- {isSelected && <Icon icon="check" size="sm" color="accent" />}
1062
+ {isSelected && (
1063
+ <Icon
1064
+ icon="check"
1065
+ size="sm"
1066
+ color="accent"
1067
+ // Stable theme target on the selected-row marker, so a theme can
1068
+ // restyle or hide it (e.g. to compose its own selected indicator
1069
+ // via renderOption) without a structural sibling selector.
1070
+ {...themeProps('selector-check')}
1071
+ />
1072
+ )}
946
1073
  </div>
947
1074
  );
948
1075
  },
@@ -963,8 +1090,15 @@ export function Selector<T extends SelectorOptionType>(
963
1090
 
964
1091
  // Nothing matched across every group/option: show the empty state.
965
1092
  if (isSearching && filteredItems.length === 0) {
1093
+ // role="presentation" keeps the message out of the listbox's
1094
+ // accessibility tree (role="listbox" only permits option/group
1095
+ // children); the no-results outcome is announced via the
1096
+ // result-count live region instead.
966
1097
  return [
967
- <div key="empty" {...stylex.props(styles.emptyState)}>
1098
+ <div
1099
+ key="empty"
1100
+ role="presentation"
1101
+ {...stylex.props(styles.emptyState)}>
968
1102
  No results found
969
1103
  </div>,
970
1104
  ];
@@ -1025,10 +1159,18 @@ export function Selector<T extends SelectorOptionType>(
1025
1159
  return elements;
1026
1160
  }, [options, renderItem, hasSearch, searchQuery, filteredItems]);
1027
1161
 
1162
+ // The detached message box renders its own leading status icon, so the
1163
+ // on-field icon would duplicate it — keep the chevron indicator instead.
1164
+ const showStatusIcon =
1165
+ status != null && effectiveStatusVariant !== 'detached';
1166
+ const showStatusTooltip =
1167
+ status != null && effectiveStatusVariant === 'tooltip' && !!status.message;
1168
+
1028
1169
  const selectorContent = (
1029
1170
  <>
1030
1171
  <div
1031
1172
  ref={el => {
1173
+ anchorRef.current = el;
1032
1174
  popover.triggerRef(el);
1033
1175
  // Anchor + hover/focus listeners for the disabled-message tooltip.
1034
1176
  // Handlers are gated internally by isEnabled, and anchor names
@@ -1038,16 +1180,27 @@ export function Selector<T extends SelectorOptionType>(
1038
1180
  onClick={onTriggerClick}
1039
1181
  data-testid={testId}
1040
1182
  {...mergeProps(
1041
- themeProps('selector', {size, status: status?.type ?? null}),
1183
+ themeProps('selector', {
1184
+ variant,
1185
+ size,
1186
+ status: status?.type ?? null,
1187
+ }),
1042
1188
  stylex.props(
1043
1189
  inputWrapperStyles.base,
1044
1190
  styles.triggerContainer,
1045
1191
  sizeStyles[size],
1192
+ variant === 'ghost' && styles.triggerGhost,
1046
1193
  isDisabled && inputWrapperStyles.disabled,
1194
+ variant === 'ghost' && isDisabled && styles.triggerGhostDisabled,
1047
1195
  !selectedItem && styles.triggerPlaceholder,
1048
- status && inputStatusBorderStyles[status.type],
1049
- status && !isDisabled && inputStatusHoverShadowStyles[status.type],
1050
- inputGroup && groupStyles.inGroup,
1196
+ variant !== 'ghost' &&
1197
+ status &&
1198
+ inputStatusBorderStyles[status.type],
1199
+ variant !== 'ghost' &&
1200
+ status &&
1201
+ !isDisabled &&
1202
+ inputStatusHoverShadowStyles[status.type],
1203
+ variant !== 'ghost' && inputGroup && groupStyles.inGroup,
1051
1204
  xstyle,
1052
1205
  ),
1053
1206
  className,
@@ -1125,15 +1278,31 @@ export function Selector<T extends SelectorOptionType>(
1125
1278
  <span
1126
1279
  {...stylex.props(
1127
1280
  styles.triggerIcon,
1128
- !status && popover.isOpen && styles.triggerIconOpen,
1129
- status && styles.triggerIconStatus,
1281
+ !showStatusIcon && popover.isOpen && styles.triggerIconOpen,
1282
+ showStatusIcon && styles.triggerIconStatus,
1130
1283
  )}>
1131
- {status ? (
1132
- <Icon
1133
- icon={STATUS_ICON_MAP[status.type]}
1134
- size="sm"
1135
- color={STATUS_ICON_COLOR_MAP[status.type]}
1136
- />
1284
+ {showStatusIcon ? (
1285
+ showStatusTooltip ? (
1286
+ <button
1287
+ ref={statusTooltip.ref}
1288
+ type="button"
1289
+ aria-label={t(STATUS_BUTTON_LABEL_KEY[status.type])}
1290
+ aria-describedby={statusTooltip.describedBy}
1291
+ onClick={e => e.stopPropagation()}
1292
+ {...stylex.props(styles.statusButton)}>
1293
+ <Icon
1294
+ icon={STATUS_ICON_MAP[status.type]}
1295
+ size="sm"
1296
+ color={STATUS_ICON_COLOR_MAP[status.type]}
1297
+ />
1298
+ </button>
1299
+ ) : (
1300
+ <Icon
1301
+ icon={STATUS_ICON_MAP[status.type]}
1302
+ size="sm"
1303
+ color={STATUS_ICON_COLOR_MAP[status.type]}
1304
+ />
1305
+ )
1137
1306
  ) : (
1138
1307
  <Icon
1139
1308
  icon="chevronDown"
@@ -1161,7 +1330,10 @@ export function Selector<T extends SelectorOptionType>(
1161
1330
  id={listboxId}
1162
1331
  role="listbox"
1163
1332
  aria-labelledby={triggerId}
1164
- {...stylex.props(styles.dropdown)}>
1333
+ {...stylex.props(
1334
+ styles.dropdown,
1335
+ variant !== 'ghost' && styles.dropdownInput,
1336
+ )}>
1165
1337
  {renderOptions()}
1166
1338
  </div>
1167
1339
  </div>
@@ -1173,6 +1345,7 @@ export function Selector<T extends SelectorOptionType>(
1173
1345
  aria-labelledby={triggerId}
1174
1346
  {...stylex.props(
1175
1347
  styles.dropdown,
1348
+ variant !== 'ghost' && styles.dropdownInput,
1176
1349
  !isPositioned && styles.dropdownHidden,
1177
1350
  )}>
1178
1351
  {renderOptions()}
@@ -1186,6 +1359,8 @@ export function Selector<T extends SelectorOptionType>(
1186
1359
  },
1187
1360
  )}
1188
1361
 
1362
+ {showStatusTooltip && statusTooltip.renderTooltip(status?.message ?? '')}
1363
+
1189
1364
  {showsDisabledMessage &&
1190
1365
  disabledMessageTooltip.renderTooltip(disabledMessage)}
1191
1366
  </>
@@ -1214,7 +1389,7 @@ export function Selector<T extends SelectorOptionType>(
1214
1389
  }
1215
1390
  : undefined
1216
1391
  }
1217
- statusVariant={statusVariant}
1392
+ statusVariant={effectiveStatusVariant}
1218
1393
  labelTooltip={labelTooltip}
1219
1394
  width={width}>
1220
1395
  {selectorContent}
@@ -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: 'SelectorOption',
@@ -4,6 +4,8 @@
4
4
 
5
5
  /**
6
6
  * @file hooks.ts
7
+ * @input Uses untransformed DOM layout geometry from the Selector's outer
8
+ * anchor, listbox, and selected option
7
9
  * @output Hooks for Selector
8
10
  * @position Internal hooks; used by Selector.tsx
9
11
  */
@@ -13,6 +15,25 @@ import {useIsomorphicLayoutEffect} from '../hooks/useIsomorphicLayoutEffect';
13
15
  import type {RefObject} from 'react';
14
16
  import type {SelectorOptionData} from './types';
15
17
 
18
+ // The selected row renders one optical pixel below the closed trigger label at
19
+ // the same mathematical center, so compensate before viewport clamping.
20
+ const SELECTED_ITEM_OPTICAL_OFFSET = 1;
21
+
22
+ /**
23
+ * Return an element's document-relative layout top without CSS transforms.
24
+ * getBoundingClientRect includes the popover's entry scale, which would make
25
+ * the measured error grow with each option's distance from the menu top.
26
+ */
27
+ function getLayoutTop(element: HTMLElement): number {
28
+ let top = 0;
29
+ let current: HTMLElement | null = element;
30
+ while (current) {
31
+ top += current.offsetTop;
32
+ current = current.offsetParent as HTMLElement | null;
33
+ }
34
+ return top;
35
+ }
36
+
16
37
  // =============================================================================
17
38
  // useSelectedItemOffset - Position dropdown to center selected item over trigger
18
39
  // =============================================================================
@@ -22,7 +43,7 @@ interface UseSelectedItemOffsetOptions {
22
43
  selectedItemIndex: number;
23
44
  listboxId: string;
24
45
  listboxRef: RefObject<HTMLDivElement | null>;
25
- triggerRef: RefObject<HTMLButtonElement | null>;
46
+ anchorRef: RefObject<HTMLElement | null>;
26
47
  }
27
48
 
28
49
  interface UseSelectedItemOffsetResult {
@@ -32,9 +53,9 @@ interface UseSelectedItemOffsetResult {
32
53
 
33
54
  /**
34
55
  * Calculates the offset needed to position the dropdown so that the selected
35
- * item appears centered over the trigger button (macOS-style selector).
56
+ * item appears centered over the outer selector control (macOS-style selector).
36
57
  *
37
- * The desired dropdown top is calculated directly from the trigger center and
58
+ * The desired dropdown top is calculated directly from the anchor center and
38
59
  * selected-item center, then clamped to the viewport. This preserves the
39
60
  * default "selected item over trigger" behavior while letting the menu slide
40
61
  * upward near the bottom edge or downward near the top edge instead of being
@@ -45,7 +66,7 @@ export function useSelectedItemOffset({
45
66
  selectedItemIndex,
46
67
  listboxId,
47
68
  listboxRef,
48
- triggerRef,
69
+ anchorRef,
49
70
  }: UseSelectedItemOffsetOptions): UseSelectedItemOffsetResult {
50
71
  const [offset, setOffset] = useState(0);
51
72
  const [isPositioned, setIsPositioned] = useState(false);
@@ -67,7 +88,7 @@ export function useSelectedItemOffset({
67
88
  return;
68
89
  }
69
90
 
70
- if (!listboxRef.current || !triggerRef.current) {
91
+ if (!listboxRef.current || !anchorRef.current) {
71
92
  commitPosition(0, true);
72
93
  return;
73
94
  }
@@ -83,34 +104,37 @@ export function useSelectedItemOffset({
83
104
  return;
84
105
  }
85
106
 
86
- // Get positions. JSDOM returns zero rects by default, but browsers provide
87
- // real dimensions before paint via layout effect.
88
- const listboxRect = listboxRef.current.getBoundingClientRect();
89
- const itemRect = targetItem.getBoundingClientRect();
90
- const triggerRect = triggerRef.current.getBoundingClientRect();
107
+ const listbox = listboxRef.current;
108
+ const anchorRect = anchorRef.current.getBoundingClientRect();
91
109
 
92
- const listboxHeight = listboxRect.height;
110
+ // offset* metrics intentionally exclude the popover's entry transform.
111
+ const listboxHeight = listbox.offsetHeight;
93
112
  if (listboxHeight <= 0) {
94
113
  commitPosition(0, true);
95
114
  return;
96
115
  }
97
116
 
98
117
  // Item center relative to listbox top. This remains stable even as the
99
- // popover's top changes between measurements.
118
+ // popover animates between scale values. scrollTop keeps the calculation
119
+ // correct when a previously scrolled listbox is reopened.
100
120
  const itemCenterInListbox =
101
- itemRect.top - listboxRect.top + itemRect.height / 2;
102
- const triggerCenter = triggerRect.top + triggerRect.height / 2;
103
-
104
- // Desired top aligns the selected item's center with trigger center.
105
- const desiredTop = triggerCenter - itemCenterInListbox;
121
+ getLayoutTop(targetItem) -
122
+ getLayoutTop(listbox) -
123
+ listbox.scrollTop +
124
+ targetItem.offsetHeight / 2;
125
+ const anchorCenter = anchorRect.top + anchorRect.height / 2;
126
+
127
+ // Desired top aligns the selected item's center with the anchor center.
128
+ const desiredTop =
129
+ anchorCenter - itemCenterInListbox - SELECTED_ITEM_OPTICAL_OFFSET;
106
130
  const viewportHeight = window.innerHeight;
107
131
  const maxTop = Math.max(0, viewportHeight - listboxHeight);
108
132
  const clampedTop = Math.min(Math.max(desiredTop, 0), maxTop);
109
133
 
110
- // useLayer positions the popover below the trigger. Apply a negative
134
+ // useLayer positions the popover below the outer anchor. Apply a negative
111
135
  // block-start margin to the layer container so the listbox top moves from
112
- // triggerRect.bottom to clampedTop.
113
- const clampedOffset = Math.max(0, triggerRect.bottom - clampedTop);
136
+ // anchorRect.bottom to clampedTop.
137
+ const clampedOffset = Math.max(0, anchorRect.bottom - clampedTop);
114
138
 
115
139
  commitPosition(clampedOffset, true);
116
140
  }, [
@@ -118,7 +142,7 @@ export function useSelectedItemOffset({
118
142
  selectedItemIndex,
119
143
  listboxId,
120
144
  listboxRef,
121
- triggerRef,
145
+ anchorRef,
122
146
  commitPosition,
123
147
  ]);
124
148