@astryxdesign/core 0.1.9 → 0.2.0-canary.0b7a99e

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 (1128) hide show
  1. package/CHANGELOG.md +107 -0
  2. package/dist/AlertDialog/AlertDialog.d.ts +1 -1
  3. package/dist/AlertDialog/AlertDialog.js +1 -1
  4. package/dist/AppShell/AppShell.d.ts +2 -20
  5. package/dist/AppShell/AppShell.d.ts.map +1 -1
  6. package/dist/AppShell/AppShell.js +1 -14
  7. package/dist/AppShell/index.d.ts +20 -1
  8. package/dist/AppShell/index.d.ts.map +1 -1
  9. package/dist/AppShell/index.js +14 -0
  10. package/dist/AspectRatio/AspectRatio.d.ts +1 -1
  11. package/dist/AspectRatio/AspectRatio.js +1 -1
  12. package/dist/Avatar/Avatar.d.ts +43 -4
  13. package/dist/Avatar/Avatar.d.ts.map +1 -1
  14. package/dist/Avatar/Avatar.js +194 -63
  15. package/dist/Avatar/AvatarStatusDot.d.ts +8 -30
  16. package/dist/Avatar/AvatarStatusDot.d.ts.map +1 -1
  17. package/dist/Avatar/AvatarStatusDot.js +1 -22
  18. package/dist/Avatar/index.d.ts +26 -1
  19. package/dist/Avatar/index.d.ts.map +1 -1
  20. package/dist/Avatar/index.js +21 -0
  21. package/dist/AvatarGroup/AvatarGroup.d.ts +8 -2
  22. package/dist/AvatarGroup/AvatarGroup.d.ts.map +1 -1
  23. package/dist/AvatarGroup/AvatarGroup.js +59 -7
  24. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts +2 -2
  25. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
  26. package/dist/AvatarGroup/AvatarGroupOverflow.js +8 -3
  27. package/dist/Badge/Badge.d.ts +2 -30
  28. package/dist/Badge/Badge.d.ts.map +1 -1
  29. package/dist/Badge/Badge.js +2 -17
  30. package/dist/Badge/index.d.ts +31 -2
  31. package/dist/Badge/index.d.ts.map +1 -1
  32. package/dist/Badge/index.js +15 -1
  33. package/dist/Banner/Banner.d.ts +2 -37
  34. package/dist/Banner/Banner.d.ts.map +1 -1
  35. package/dist/Banner/Banner.js +7 -35
  36. package/dist/Banner/index.d.ts +37 -1
  37. package/dist/Banner/index.d.ts.map +1 -1
  38. package/dist/Banner/index.js +27 -0
  39. package/dist/Blockquote/Blockquote.d.ts +1 -1
  40. package/dist/Blockquote/Blockquote.js +1 -1
  41. package/dist/Breadcrumbs/BreadcrumbItem.d.ts +1 -1
  42. package/dist/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
  43. package/dist/Breadcrumbs/BreadcrumbItem.js +12 -5
  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 +19 -1
  48. package/dist/Breadcrumbs/index.d.ts.map +1 -1
  49. package/dist/Breadcrumbs/index.js +16 -1
  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 +8 -21
  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.d.ts.map +1 -1
  59. package/dist/Calendar/Calendar.js +51 -10
  60. package/dist/Calendar/dayCellUtils.d.ts +4 -4
  61. package/dist/Calendar/dayCellUtils.js +2 -2
  62. package/dist/Calendar/styles.d.ts +32 -33
  63. package/dist/Calendar/styles.d.ts.map +1 -1
  64. package/dist/Calendar/styles.js +32 -33
  65. package/dist/Card/Card.d.ts +1 -1
  66. package/dist/Card/Card.js +2 -2
  67. package/dist/Carousel/Carousel.d.ts +1 -1
  68. package/dist/Carousel/Carousel.d.ts.map +1 -1
  69. package/dist/Carousel/Carousel.js +23 -13
  70. package/dist/Center/Center.d.ts +21 -4
  71. package/dist/Center/Center.d.ts.map +1 -1
  72. package/dist/Center/Center.js +11 -3
  73. package/dist/Chat/ChatComposer.d.ts +1 -1
  74. package/dist/Chat/ChatComposer.js +9 -9
  75. package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
  76. package/dist/Chat/ChatComposerDrawer.js +3 -3
  77. package/dist/Chat/ChatComposerInput.d.ts +1 -1
  78. package/dist/Chat/ChatComposerInput.js +2 -2
  79. package/dist/Chat/ChatDictationButton.d.ts +1 -1
  80. package/dist/Chat/ChatDictationButton.d.ts.map +1 -1
  81. package/dist/Chat/ChatDictationButton.js +4 -2
  82. package/dist/Chat/ChatLayout.d.ts +8 -1
  83. package/dist/Chat/ChatLayout.d.ts.map +1 -1
  84. package/dist/Chat/ChatLayout.js +17 -6
  85. package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
  86. package/dist/Chat/ChatLayoutScrollButton.js +1 -1
  87. package/dist/Chat/ChatMessage.d.ts +1 -1
  88. package/dist/Chat/ChatMessage.js +1 -1
  89. package/dist/Chat/ChatMessageBubble.d.ts +1 -1
  90. package/dist/Chat/ChatMessageBubble.d.ts.map +1 -1
  91. package/dist/Chat/ChatMessageBubble.js +9 -9
  92. package/dist/Chat/ChatMessageList.d.ts +1 -1
  93. package/dist/Chat/ChatMessageList.js +1 -1
  94. package/dist/Chat/ChatSystemMessage.d.ts +1 -1
  95. package/dist/Chat/ChatSystemMessage.js +1 -1
  96. package/dist/Chat/ChatTokenizedText.d.ts +1 -1
  97. package/dist/Chat/ChatTokenizedText.js +1 -1
  98. package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
  99. package/dist/Chat/ChatToolCalls.js +10 -3
  100. package/dist/Chat/useTriggerMenu.js +2 -2
  101. package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
  102. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  103. package/dist/CheckboxInput/CheckboxInput.js +7 -7
  104. package/dist/CheckboxList/CheckboxList.d.ts +1 -1
  105. package/dist/CheckboxList/CheckboxList.js +1 -1
  106. package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
  107. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  108. package/dist/CheckboxList/CheckboxListItem.js +20 -5
  109. package/dist/Citation/Citation.d.ts +23 -2
  110. package/dist/Citation/Citation.d.ts.map +1 -1
  111. package/dist/Citation/Citation.js +21 -7
  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.d.ts.map +1 -1
  117. package/dist/CodeBlock/CodeBlock.js +16 -10
  118. package/dist/Collapsible/Collapsible.d.ts +1 -1
  119. package/dist/Collapsible/Collapsible.d.ts.map +1 -1
  120. package/dist/Collapsible/Collapsible.js +4 -2
  121. package/dist/Collapsible/CollapsibleGroup.d.ts +1 -1
  122. package/dist/Collapsible/CollapsibleGroup.js +1 -1
  123. package/dist/Collapsible/CollapsibleGroupContext.js +1 -1
  124. package/dist/CommandPalette/CommandPalette.d.ts +2 -2
  125. package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
  126. package/dist/CommandPalette/CommandPalette.js +43 -4
  127. package/dist/CommandPalette/CommandPaletteEmpty.js +1 -1
  128. package/dist/CommandPalette/CommandPaletteFooter.js +1 -1
  129. package/dist/CommandPalette/CommandPaletteGroup.js +1 -1
  130. package/dist/CommandPalette/CommandPaletteInput.d.ts +1 -1
  131. package/dist/CommandPalette/CommandPaletteInput.js +1 -1
  132. package/dist/CommandPalette/CommandPaletteItem.d.ts +1 -1
  133. package/dist/CommandPalette/CommandPaletteItem.js +2 -2
  134. package/dist/CommandPalette/CommandPaletteList.js +1 -1
  135. package/dist/ContextMenu/ContextMenu.d.ts +1 -1
  136. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  137. package/dist/ContextMenu/ContextMenu.js +24 -6
  138. package/dist/ContextMenu/index.d.ts +1 -0
  139. package/dist/ContextMenu/index.d.ts.map +1 -1
  140. package/dist/ContextMenu/index.js +3 -1
  141. package/dist/DateInput/DateInput.d.ts +10 -2
  142. package/dist/DateInput/DateInput.d.ts.map +1 -1
  143. package/dist/DateInput/DateInput.js +34 -20
  144. package/dist/DateRangeInput/DateRangeInput.d.ts +10 -2
  145. package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  146. package/dist/DateRangeInput/DateRangeInput.js +24 -21
  147. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  148. package/dist/DateTimeInput/DateTimeInput.js +24 -19
  149. package/dist/Dialog/Dialog.d.ts +46 -23
  150. package/dist/Dialog/Dialog.d.ts.map +1 -1
  151. package/dist/Dialog/Dialog.js +59 -31
  152. package/dist/Dialog/DialogHeader.d.ts +1 -1
  153. package/dist/Dialog/DialogHeader.js +1 -1
  154. package/dist/Dialog/index.d.ts +18 -1
  155. package/dist/Dialog/index.d.ts.map +1 -1
  156. package/dist/Dialog/index.js +14 -0
  157. package/dist/Divider/Divider.d.ts +4 -20
  158. package/dist/Divider/Divider.d.ts.map +1 -1
  159. package/dist/Divider/Divider.js +14 -15
  160. package/dist/Divider/index.d.ts +18 -1
  161. package/dist/Divider/index.d.ts.map +1 -1
  162. package/dist/Divider/index.js +14 -0
  163. package/dist/DropdownMenu/DropdownMenu.d.ts +7 -1
  164. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  165. package/dist/DropdownMenu/DropdownMenu.js +23 -6
  166. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +18 -12
  167. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  168. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +42 -64
  169. package/dist/DropdownMenu/DropdownMenuItem.d.ts +1 -1
  170. package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  171. package/dist/DropdownMenu/DropdownMenuItem.js +6 -3
  172. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts +8 -11
  173. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts.map +1 -1
  174. package/dist/DropdownMenu/DropdownMenuRadioGroup.js +3 -1
  175. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +1 -1
  176. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  177. package/dist/DropdownMenu/DropdownMenuRadioItem.js +10 -3
  178. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +104 -0
  179. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -0
  180. package/dist/DropdownMenu/DropdownMenuSubMenu.js +435 -0
  181. package/dist/DropdownMenu/index.d.ts +10 -0
  182. package/dist/DropdownMenu/index.d.ts.map +1 -1
  183. package/dist/DropdownMenu/index.js +13 -0
  184. package/dist/DropdownMenu/menuItemHover.d.ts +24 -0
  185. package/dist/DropdownMenu/menuItemHover.d.ts.map +1 -0
  186. package/dist/DropdownMenu/menuItemHover.js +34 -0
  187. package/dist/DropdownMenu/menuItemRoles.d.ts +8 -0
  188. package/dist/DropdownMenu/menuItemRoles.d.ts.map +1 -1
  189. package/dist/DropdownMenu/menuItemRoles.js +10 -1
  190. package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
  191. package/dist/DropdownMenu/renderDropdownItems.js +27 -10
  192. package/dist/EmptyState/EmptyState.d.ts +1 -1
  193. package/dist/EmptyState/EmptyState.js +1 -1
  194. package/dist/Field/Field.d.ts +4 -2
  195. package/dist/Field/Field.d.ts.map +1 -1
  196. package/dist/Field/Field.js +5 -2
  197. package/dist/Field/FieldLabel.d.ts +4 -3
  198. package/dist/Field/FieldLabel.d.ts.map +1 -1
  199. package/dist/Field/FieldLabel.js +50 -7
  200. package/dist/Field/inputStyles.stylex.d.ts +1 -0
  201. package/dist/Field/inputStyles.stylex.d.ts.map +1 -1
  202. package/dist/Field/inputStyles.stylex.js +1 -0
  203. package/dist/FieldStatus/FieldStatus.d.ts +10 -17
  204. package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
  205. package/dist/FieldStatus/FieldStatus.js +52 -20
  206. package/dist/FieldStatus/index.d.ts +19 -1
  207. package/dist/FieldStatus/index.d.ts.map +1 -1
  208. package/dist/FieldStatus/index.js +14 -0
  209. package/dist/FileInput/FileInput.d.ts +10 -2
  210. package/dist/FileInput/FileInput.d.ts.map +1 -1
  211. package/dist/FileInput/FileInput.js +94 -66
  212. package/dist/FormLayout/FormLayout.d.ts +1 -1
  213. package/dist/FormLayout/FormLayout.d.ts.map +1 -1
  214. package/dist/FormLayout/FormLayout.js +1 -1
  215. package/dist/Grid/Grid.d.ts +1 -1
  216. package/dist/Grid/Grid.js +1 -1
  217. package/dist/Grid/GridSpan.d.ts +1 -1
  218. package/dist/Grid/GridSpan.js +1 -1
  219. package/dist/HStack/HStack.d.ts +1 -1
  220. package/dist/HStack/HStack.js +1 -1
  221. package/dist/Heading/Heading.d.ts +2 -2
  222. package/dist/Heading/Heading.d.ts.map +1 -1
  223. package/dist/Heading/Heading.js +5 -4
  224. package/dist/HoverCard/HoverCard.d.ts +1 -1
  225. package/dist/HoverCard/HoverCard.js +1 -1
  226. package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
  227. package/dist/HoverCard/useHoverCard.js +10 -4
  228. package/dist/Icon/Icon.d.ts +16 -2
  229. package/dist/Icon/Icon.d.ts.map +1 -1
  230. package/dist/Icon/Icon.js +20 -4
  231. package/dist/Icon/globalIconRegistry.js +1 -1
  232. package/dist/IconButton/IconButton.d.ts +1 -1
  233. package/dist/IconButton/IconButton.js +1 -1
  234. package/dist/InputGroup/InputGroup.d.ts +1 -1
  235. package/dist/InputGroup/InputGroup.js +1 -1
  236. package/dist/InputGroup/InputGroupText.d.ts +1 -1
  237. package/dist/InputGroup/InputGroupText.js +1 -1
  238. package/dist/Item/Item.d.ts +17 -4
  239. package/dist/Item/Item.d.ts.map +1 -1
  240. package/dist/Item/Item.js +32 -7
  241. package/dist/Kbd/Kbd.d.ts +1 -1
  242. package/dist/Kbd/Kbd.js +1 -1
  243. package/dist/Layer/layerAnimations.stylex.d.ts.map +1 -1
  244. package/dist/Layer/layerAnimations.stylex.js +10 -2
  245. package/dist/Layout/Layout.d.ts +1 -1
  246. package/dist/Layout/Layout.js +1 -1
  247. package/dist/Layout/LayoutContent.d.ts +1 -1
  248. package/dist/Layout/LayoutContent.js +1 -1
  249. package/dist/Layout/LayoutFooter.d.ts +1 -1
  250. package/dist/Layout/LayoutFooter.js +1 -1
  251. package/dist/Layout/LayoutHeader.d.ts +1 -1
  252. package/dist/Layout/LayoutHeader.js +1 -1
  253. package/dist/Layout/LayoutPanel.d.ts +1 -1
  254. package/dist/Layout/LayoutPanel.js +1 -1
  255. package/dist/Lightbox/Lightbox.d.ts +1 -1
  256. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  257. package/dist/Lightbox/Lightbox.js +35 -16
  258. package/dist/Link/Link.d.ts +1 -1
  259. package/dist/Link/Link.js +1 -1
  260. package/dist/Link/LinkProvider.d.ts +2 -2
  261. package/dist/Link/LinkProvider.js +2 -2
  262. package/dist/List/List.d.ts +1 -1
  263. package/dist/List/List.d.ts.map +1 -1
  264. package/dist/List/List.js +7 -4
  265. package/dist/List/ListItem.d.ts +12 -2
  266. package/dist/List/ListItem.d.ts.map +1 -1
  267. package/dist/List/ListItem.js +3 -1
  268. package/dist/Markdown/Markdown.d.ts.map +1 -1
  269. package/dist/Markdown/Markdown.js +11 -4
  270. package/dist/MetadataList/MetadataList.d.ts +2 -2
  271. package/dist/MetadataList/MetadataList.d.ts.map +1 -1
  272. package/dist/MetadataList/MetadataList.js +5 -3
  273. package/dist/MetadataList/MetadataListItem.d.ts +1 -1
  274. package/dist/MetadataList/MetadataListItem.js +1 -1
  275. package/dist/MobileNav/MobileNav.d.ts +1 -1
  276. package/dist/MobileNav/MobileNav.js +1 -1
  277. package/dist/MoreMenu/MoreMenu.d.ts +1 -1
  278. package/dist/MoreMenu/MoreMenu.js +1 -1
  279. package/dist/MultiSelector/MultiSelector.d.ts +10 -2
  280. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  281. package/dist/MultiSelector/MultiSelector.js +88 -46
  282. package/dist/NavIcon/NavIcon.d.ts +1 -1
  283. package/dist/NavIcon/NavIcon.js +1 -1
  284. package/dist/NavMenu/NavHeadingMenuItem.js +1 -1
  285. package/dist/NumberInput/NumberInput.d.ts +11 -3
  286. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  287. package/dist/NumberInput/NumberInput.js +23 -18
  288. package/dist/Outline/Outline.js +3 -3
  289. package/dist/OverflowList/OverflowList.d.ts +1 -1
  290. package/dist/OverflowList/OverflowList.js +1 -1
  291. package/dist/Pagination/Pagination.d.ts +1 -20
  292. package/dist/Pagination/Pagination.d.ts.map +1 -1
  293. package/dist/Pagination/Pagination.js +12 -18
  294. package/dist/Pagination/index.d.ts +21 -1
  295. package/dist/Pagination/index.d.ts.map +1 -1
  296. package/dist/Pagination/index.js +14 -0
  297. package/dist/Popover/Popover.d.ts +1 -1
  298. package/dist/Popover/Popover.js +1 -1
  299. package/dist/Popover/usePopover.d.ts.map +1 -1
  300. package/dist/Popover/usePopover.js +14 -3
  301. package/dist/PowerSearch/PowerSearch.d.ts +10 -3
  302. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  303. package/dist/PowerSearch/PowerSearch.js +3 -1
  304. package/dist/ProgressBar/ProgressBar.d.ts +1 -20
  305. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  306. package/dist/ProgressBar/ProgressBar.js +7 -16
  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 +3 -3
  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 +6 -6
  315. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  316. package/dist/Resizable/ResizeHandle.js +45 -22
  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 +2 -2
  326. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  327. package/dist/SegmentedControl/SegmentedControlItem.js +6 -4
  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 +9 -1
  332. package/dist/Selector/Selector.d.ts.map +1 -1
  333. package/dist/Selector/Selector.js +73 -20
  334. package/dist/SideNav/SideNav.d.ts +1 -1
  335. package/dist/SideNav/SideNav.d.ts.map +1 -1
  336. package/dist/SideNav/SideNav.js +6 -6
  337. package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
  338. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  339. package/dist/SideNav/SideNavCollapseButton.js +14 -11
  340. package/dist/SideNav/SideNavHeading.d.ts +1 -1
  341. package/dist/SideNav/SideNavHeading.js +1 -1
  342. package/dist/SideNav/SideNavItem.d.ts +2 -2
  343. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  344. package/dist/SideNav/SideNavItem.js +13 -11
  345. package/dist/SideNav/SideNavSection.d.ts +1 -1
  346. package/dist/SideNav/SideNavSection.js +1 -1
  347. package/dist/Skeleton/Skeleton.d.ts +1 -1
  348. package/dist/Skeleton/Skeleton.d.ts.map +1 -1
  349. package/dist/Skeleton/Skeleton.js +3 -3
  350. package/dist/Slider/Slider.d.ts.map +1 -1
  351. package/dist/Slider/Slider.js +146 -83
  352. package/dist/Spinner/Spinner.d.ts +4 -3
  353. package/dist/Spinner/Spinner.d.ts.map +1 -1
  354. package/dist/Spinner/Spinner.js +12 -3
  355. package/dist/Stack/Stack.d.ts +1 -1
  356. package/dist/Stack/Stack.js +1 -1
  357. package/dist/Stack/StackItem.d.ts +1 -1
  358. package/dist/Stack/StackItem.js +1 -1
  359. package/dist/StatusDot/StatusDot.d.ts +1 -20
  360. package/dist/StatusDot/StatusDot.d.ts.map +1 -1
  361. package/dist/StatusDot/StatusDot.js +2 -17
  362. package/dist/StatusDot/index.d.ts +21 -1
  363. package/dist/StatusDot/index.d.ts.map +1 -1
  364. package/dist/StatusDot/index.js +14 -0
  365. package/dist/Switch/Switch.d.ts +9 -2
  366. package/dist/Switch/Switch.d.ts.map +1 -1
  367. package/dist/Switch/Switch.js +172 -92
  368. package/dist/TabList/Tab.d.ts +1 -1
  369. package/dist/TabList/Tab.js +3 -3
  370. package/dist/TabList/TabList.d.ts +3 -12
  371. package/dist/TabList/TabList.d.ts.map +1 -1
  372. package/dist/TabList/TabList.js +6 -10
  373. package/dist/TabList/TabListContext.d.ts +0 -5
  374. package/dist/TabList/TabListContext.d.ts.map +1 -1
  375. package/dist/TabList/TabListContext.js +0 -5
  376. package/dist/TabList/TabMenu.d.ts +1 -1
  377. package/dist/TabList/TabMenu.js +2 -2
  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 +31 -5
  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 -4
  385. package/dist/Table/TableHeaderCell.d.ts +1 -1
  386. package/dist/Table/TableHeaderCell.js +4 -4
  387. package/dist/Table/TableRow.d.ts +1 -1
  388. package/dist/Table/TableRow.js +1 -1
  389. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts.map +1 -1
  390. package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +15 -11
  391. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +18 -3
  392. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  393. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +58 -30
  394. package/dist/Table/plugins/selection/useTableSelection.d.ts.map +1 -1
  395. package/dist/Table/plugins/selection/useTableSelection.js +3 -0
  396. package/dist/Table/plugins/stickyColumns/useTableStickyColumns.d.ts.map +1 -1
  397. package/dist/Table/plugins/stickyColumns/useTableStickyColumns.js +15 -7
  398. package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
  399. package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
  400. package/dist/Table/plugins/tree/useTableTreeData.js +65 -25
  401. package/dist/Table/types.d.ts +32 -0
  402. package/dist/Table/types.d.ts.map +1 -1
  403. package/dist/Text/Text.d.ts +11 -2
  404. package/dist/Text/Text.d.ts.map +1 -1
  405. package/dist/Text/Text.js +26 -3
  406. package/dist/Text/index.d.ts +31 -1
  407. package/dist/Text/index.d.ts.map +1 -1
  408. package/dist/Text/index.js +23 -0
  409. package/dist/TextArea/TextArea.d.ts +11 -2
  410. package/dist/TextArea/TextArea.d.ts.map +1 -1
  411. package/dist/TextArea/TextArea.js +120 -53
  412. package/dist/TextInput/TextInput.d.ts +11 -3
  413. package/dist/TextInput/TextInput.d.ts.map +1 -1
  414. package/dist/TextInput/TextInput.js +21 -18
  415. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  416. package/dist/Thumbnail/Thumbnail.js +52 -46
  417. package/dist/TimeInput/TimeInput.d.ts +10 -2
  418. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  419. package/dist/TimeInput/TimeInput.js +18 -18
  420. package/dist/Timestamp/Timestamp.d.ts +31 -3
  421. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  422. package/dist/Timestamp/Timestamp.js +49 -78
  423. package/dist/Timestamp/formatInstant.d.ts +41 -0
  424. package/dist/Timestamp/formatInstant.d.ts.map +1 -0
  425. package/dist/Timestamp/formatInstant.js +177 -0
  426. package/dist/Timestamp/index.d.ts +1 -0
  427. package/dist/Timestamp/index.d.ts.map +1 -1
  428. package/dist/Timestamp/tooltipEntries.d.ts +56 -0
  429. package/dist/Timestamp/tooltipEntries.d.ts.map +1 -0
  430. package/dist/Timestamp/tooltipEntries.js +163 -0
  431. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  432. package/dist/Toast/ToastViewport.js +61 -9
  433. package/dist/ToggleButton/ToggleButton.d.ts +1 -1
  434. package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
  435. package/dist/ToggleButton/ToggleButton.js +4 -2
  436. package/dist/ToggleButton/ToggleButtonGroup.d.ts +1 -1
  437. package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  438. package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
  439. package/dist/Token/Token.d.ts +10 -5
  440. package/dist/Token/Token.d.ts.map +1 -1
  441. package/dist/Token/Token.js +72 -46
  442. package/dist/Token/TokenLink.d.ts +62 -0
  443. package/dist/Token/TokenLink.d.ts.map +1 -0
  444. package/dist/Token/TokenLink.js +76 -0
  445. package/dist/Token/index.d.ts +26 -0
  446. package/dist/Token/index.d.ts.map +1 -1
  447. package/dist/Token/index.js +14 -0
  448. package/dist/Tokenizer/Tokenizer.d.ts +10 -3
  449. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  450. package/dist/Tokenizer/Tokenizer.js +5 -3
  451. package/dist/Toolbar/Toolbar.d.ts +1 -1
  452. package/dist/Toolbar/Toolbar.js +1 -1
  453. package/dist/Tooltip/Tooltip.d.ts +1 -1
  454. package/dist/Tooltip/Tooltip.js +1 -1
  455. package/dist/Tooltip/useTooltip.d.ts.map +1 -1
  456. package/dist/Tooltip/useTooltip.js +17 -1
  457. package/dist/TopNav/TopNav.d.ts +1 -1
  458. package/dist/TopNav/TopNav.js +1 -1
  459. package/dist/TopNav/TopNavHeading.d.ts +1 -1
  460. package/dist/TopNav/TopNavHeading.js +1 -1
  461. package/dist/TopNav/TopNavItem.d.ts +4 -2
  462. package/dist/TopNav/TopNavItem.d.ts.map +1 -1
  463. package/dist/TopNav/TopNavItem.js +31 -4
  464. package/dist/TopNav/TopNavMegaMenu.d.ts +1 -1
  465. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  466. package/dist/TopNav/TopNavMegaMenu.js +10 -4
  467. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
  468. package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +1 -1
  469. package/dist/TopNav/TopNavMegaMenuItem.d.ts +1 -1
  470. package/dist/TopNav/TopNavMegaMenuItem.js +1 -1
  471. package/dist/TopNav/TopNavMenu.d.ts +1 -1
  472. package/dist/TopNav/TopNavMenu.js +1 -1
  473. package/dist/TreeList/TreeList.d.ts +1 -1
  474. package/dist/TreeList/TreeList.d.ts.map +1 -1
  475. package/dist/TreeList/TreeList.js +2 -1
  476. package/dist/TreeList/TreeListBranches.d.ts.map +1 -1
  477. package/dist/TreeList/TreeListBranches.js +9 -7
  478. package/dist/TreeList/TreeListItem.d.ts +1 -1
  479. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  480. package/dist/TreeList/TreeListItem.js +33 -15
  481. package/dist/TreeList/TreeListTypes.d.ts +1 -17
  482. package/dist/TreeList/TreeListTypes.d.ts.map +1 -1
  483. package/dist/TreeList/index.d.ts +18 -1
  484. package/dist/TreeList/index.d.ts.map +1 -1
  485. package/dist/TreeList/index.js +14 -0
  486. package/dist/Typeahead/BaseTypeahead.d.ts +10 -1
  487. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  488. package/dist/Typeahead/BaseTypeahead.js +23 -12
  489. package/dist/Typeahead/Typeahead.d.ts +10 -3
  490. package/dist/Typeahead/Typeahead.d.ts.map +1 -1
  491. package/dist/Typeahead/Typeahead.js +12 -3
  492. package/dist/Typeahead/TypeaheadItem.d.ts +2 -2
  493. package/dist/Typeahead/TypeaheadItem.d.ts.map +1 -1
  494. package/dist/Typeahead/TypeaheadItem.js +21 -11
  495. package/dist/VStack/VStack.d.ts +1 -1
  496. package/dist/VStack/VStack.js +1 -1
  497. package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  498. package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
  499. package/dist/astryx.css +150 -51
  500. package/dist/astryx.umd.js +51 -51
  501. package/dist/astryx.umd.js.map +4 -4
  502. package/dist/hooks/containerReveal.pool.stylex.d.ts +303 -0
  503. package/dist/hooks/containerReveal.pool.stylex.d.ts.map +1 -0
  504. package/dist/hooks/containerReveal.pool.stylex.js +292 -0
  505. package/dist/hooks/index.d.ts +4 -0
  506. package/dist/hooks/index.d.ts.map +1 -1
  507. package/dist/hooks/index.js +3 -1
  508. package/dist/hooks/isRtlElement.d.ts +18 -0
  509. package/dist/hooks/isRtlElement.d.ts.map +1 -0
  510. package/dist/hooks/isRtlElement.js +27 -0
  511. package/dist/hooks/useAnnounce.d.ts +3 -0
  512. package/dist/hooks/useAnnounce.d.ts.map +1 -1
  513. package/dist/hooks/useAnnounce.js +39 -1
  514. package/dist/hooks/useContainerReveal.d.ts +83 -0
  515. package/dist/hooks/useContainerReveal.d.ts.map +1 -0
  516. package/dist/hooks/useContainerReveal.js +123 -0
  517. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  518. package/dist/hooks/useFocusTrap.js +52 -11
  519. package/dist/hooks/useGridFocus.d.ts +6 -1
  520. package/dist/hooks/useGridFocus.d.ts.map +1 -1
  521. package/dist/hooks/useGridFocus.js +12 -9
  522. package/dist/hooks/useHotkeys.d.ts +9 -0
  523. package/dist/hooks/useHotkeys.d.ts.map +1 -1
  524. package/dist/hooks/useHotkeys.js +9 -0
  525. package/dist/hooks/useInputContainer.d.ts.map +1 -1
  526. package/dist/hooks/useInputContainer.js +29 -1
  527. package/dist/hooks/useInputStatusIcon.d.ts +38 -0
  528. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -0
  529. package/dist/hooks/useInputStatusIcon.js +169 -0
  530. package/dist/hooks/useKeyboardHint.d.ts +2 -2
  531. package/dist/hooks/useKeyboardHint.d.ts.map +1 -1
  532. package/dist/hooks/useKeyboardHint.js +5 -3
  533. package/dist/hooks/useListFocus.d.ts +39 -1
  534. package/dist/hooks/useListFocus.d.ts.map +1 -1
  535. package/dist/hooks/useListFocus.js +54 -9
  536. package/dist/i18n/InternationalizationContext.d.ts +1 -0
  537. package/dist/i18n/InternationalizationContext.d.ts.map +1 -1
  538. package/dist/i18n/InternationalizationContext.js +3 -0
  539. package/dist/i18n/InternationalizationProvider.d.ts +8 -1
  540. package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
  541. package/dist/i18n/InternationalizationProvider.js +5 -1
  542. package/dist/i18n/getLocaleDirection.d.ts +18 -0
  543. package/dist/i18n/getLocaleDirection.d.ts.map +1 -0
  544. package/dist/i18n/getLocaleDirection.js +29 -0
  545. package/dist/i18n/index.d.ts +6 -0
  546. package/dist/i18n/index.d.ts.map +1 -1
  547. package/dist/i18n/index.js +7 -1
  548. package/dist/i18n/useDirection.d.ts +2 -0
  549. package/dist/i18n/useDirection.d.ts.map +1 -0
  550. package/dist/i18n/useDirection.js +27 -0
  551. package/dist/index.d.ts +2 -1
  552. package/dist/index.d.ts.map +1 -1
  553. package/dist/index.js +5 -1
  554. package/dist/theme/defineTheme.d.ts +6 -0
  555. package/dist/theme/defineTheme.d.ts.map +1 -1
  556. package/dist/theme/derivedVarRegistry.d.ts.map +1 -1
  557. package/dist/theme/derivedVarRegistry.js +13 -0
  558. package/dist/theme/expandColorScale.d.ts +19 -2
  559. package/dist/theme/expandColorScale.d.ts.map +1 -1
  560. package/dist/theme/expandColorScale.js +38 -10
  561. package/dist/theme/index.d.ts +4 -3
  562. package/dist/theme/index.d.ts.map +1 -1
  563. package/dist/theme/types.d.ts +10 -2
  564. package/dist/theme/types.d.ts.map +1 -1
  565. package/dist/utils/index.d.ts +1 -0
  566. package/dist/utils/index.d.ts.map +1 -1
  567. package/dist/utils/index.js +2 -1
  568. package/dist/utils/plainDate.d.ts +17 -0
  569. package/dist/utils/plainDate.d.ts.map +1 -1
  570. package/dist/utils/plainDate.js +23 -4
  571. package/dist/utils/rtlStyles.d.ts +45 -0
  572. package/dist/utils/rtlStyles.d.ts.map +1 -0
  573. package/dist/utils/rtlStyles.js +52 -0
  574. package/groups.doc.mjs +2 -2
  575. package/locales/en.json +120 -0
  576. package/locales/pseudo.json +90 -0
  577. package/package.json +9 -13
  578. package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
  579. package/src/AlertDialog/AlertDialog.tsx +1 -1
  580. package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
  581. package/src/AppShell/AppShell.doc.mjs +3 -3
  582. package/src/AppShell/AppShell.tsx +2 -20
  583. package/src/AppShell/index.ts +20 -1
  584. package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
  585. package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
  586. package/src/AspectRatio/AspectRatio.tsx +1 -1
  587. package/src/Avatar/Avatar.doc.mjs +53 -6
  588. package/src/Avatar/Avatar.test.tsx +218 -0
  589. package/src/Avatar/Avatar.tsx +293 -82
  590. package/src/Avatar/AvatarStatusDot.doc.mjs +5 -5
  591. package/src/Avatar/AvatarStatusDot.tsx +8 -31
  592. package/src/Avatar/index.ts +26 -1
  593. package/src/AvatarGroup/AvatarGroup.doc.mjs +5 -3
  594. package/src/AvatarGroup/AvatarGroup.test.tsx +162 -2
  595. package/src/AvatarGroup/AvatarGroup.tsx +59 -4
  596. package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
  597. package/src/AvatarGroup/AvatarGroupOverflow.tsx +6 -3
  598. package/src/Badge/Badge.doc.mjs +3 -3
  599. package/src/Badge/Badge.tsx +2 -31
  600. package/src/Badge/index.ts +32 -6
  601. package/src/Banner/Banner.doc.mjs +3 -3
  602. package/src/Banner/Banner.tsx +14 -51
  603. package/src/Banner/index.ts +39 -7
  604. package/src/Blockquote/Blockquote.doc.mjs +3 -3
  605. package/src/Blockquote/Blockquote.tsx +1 -1
  606. package/src/Breadcrumbs/BreadcrumbItem.doc.mjs +1 -1
  607. package/src/Breadcrumbs/BreadcrumbItem.tsx +11 -11
  608. package/src/Breadcrumbs/Breadcrumbs.doc.mjs +3 -3
  609. package/src/Breadcrumbs/Breadcrumbs.test.tsx +52 -1
  610. package/src/Breadcrumbs/Breadcrumbs.tsx +2 -19
  611. package/src/Breadcrumbs/index.ts +23 -5
  612. package/src/Button/Button.doc.mjs +3 -7
  613. package/src/Button/Button.test.tsx +16 -0
  614. package/src/Button/Button.tsx +8 -25
  615. package/src/Button/index.ts +22 -7
  616. package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -3
  617. package/src/ButtonGroup/ButtonGroup.tsx +1 -1
  618. package/src/Calendar/Calendar.doc.mjs +3 -3
  619. package/src/Calendar/Calendar.test.tsx +185 -23
  620. package/src/Calendar/Calendar.tsx +74 -17
  621. package/src/Calendar/dayCellUtils.test.ts +18 -18
  622. package/src/Calendar/dayCellUtils.ts +2 -2
  623. package/src/Calendar/styles.ts +35 -41
  624. package/src/Card/Card.doc.mjs +3 -3
  625. package/src/Card/Card.tsx +2 -2
  626. package/src/Carousel/Carousel.doc.mjs +3 -3
  627. package/src/Carousel/Carousel.tsx +26 -7
  628. package/src/Center/Center.doc.mjs +41 -3
  629. package/src/Center/Center.test.tsx +75 -0
  630. package/src/Center/Center.tsx +38 -3
  631. package/src/Chat/Chat.doc.mjs +3 -3
  632. package/src/Chat/ChatComposer.doc.mjs +3 -3
  633. package/src/Chat/ChatComposer.tsx +5 -5
  634. package/src/Chat/ChatComposerDrawer.doc.mjs +1 -1
  635. package/src/Chat/ChatComposerDrawer.tsx +3 -3
  636. package/src/Chat/ChatComposerInput.doc.mjs +2 -2
  637. package/src/Chat/ChatComposerInput.tsx +3 -3
  638. package/src/Chat/ChatComposerTokenElement.doc.mjs +1 -1
  639. package/src/Chat/ChatDictationButton.doc.mjs +3 -3
  640. package/src/Chat/ChatDictationButton.tsx +8 -2
  641. package/src/Chat/ChatLayout.doc.mjs +1 -1
  642. package/src/Chat/ChatLayout.test.tsx +57 -0
  643. package/src/Chat/ChatLayout.tsx +27 -6
  644. package/src/Chat/ChatLayoutScrollButton.doc.mjs +1 -1
  645. package/src/Chat/ChatLayoutScrollButton.tsx +1 -1
  646. package/src/Chat/ChatMessage.doc.mjs +1 -1
  647. package/src/Chat/ChatMessage.tsx +1 -1
  648. package/src/Chat/ChatMessageBubble.doc.mjs +1 -1
  649. package/src/Chat/ChatMessageBubble.tsx +16 -11
  650. package/src/Chat/ChatMessageList.doc.mjs +1 -1
  651. package/src/Chat/ChatMessageList.tsx +1 -1
  652. package/src/Chat/ChatMessageMetadata.doc.mjs +1 -1
  653. package/src/Chat/ChatSendButton.doc.mjs +1 -1
  654. package/src/Chat/ChatSystemMessage.doc.mjs +1 -1
  655. package/src/Chat/ChatSystemMessage.test.tsx +5 -0
  656. package/src/Chat/ChatSystemMessage.tsx +1 -1
  657. package/src/Chat/ChatTokenizedText.doc.mjs +1 -1
  658. package/src/Chat/ChatTokenizedText.tsx +1 -1
  659. package/src/Chat/ChatToolCalls.doc.mjs +3 -3
  660. package/src/Chat/ChatToolCalls.tsx +9 -2
  661. package/src/Chat/useTriggerMenu.tsx +1 -1
  662. package/src/CheckboxInput/CheckboxInput.doc.mjs +9 -3
  663. package/src/CheckboxInput/CheckboxInput.test.tsx +56 -0
  664. package/src/CheckboxInput/CheckboxInput.tsx +22 -7
  665. package/src/CheckboxList/CheckboxList.doc.mjs +9 -3
  666. package/src/CheckboxList/CheckboxList.test.tsx +94 -3
  667. package/src/CheckboxList/CheckboxList.tsx +1 -1
  668. package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
  669. package/src/CheckboxList/CheckboxListItem.tsx +18 -11
  670. package/src/Citation/Citation.doc.mjs +6 -5
  671. package/src/Citation/Citation.test.tsx +97 -0
  672. package/src/Citation/Citation.tsx +44 -12
  673. package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
  674. package/src/ClickableCard/ClickableCard.tsx +3 -3
  675. package/src/Code/Code.tsx +2 -2
  676. package/src/CodeBlock/Code.doc.mjs +1 -1
  677. package/src/CodeBlock/CodeBlock.doc.mjs +3 -3
  678. package/src/CodeBlock/CodeBlock.test.tsx +17 -0
  679. package/src/CodeBlock/CodeBlock.tsx +38 -11
  680. package/src/Collapsible/Collapsible.doc.mjs +4 -3
  681. package/src/Collapsible/Collapsible.test.tsx +7 -0
  682. package/src/Collapsible/Collapsible.tsx +17 -7
  683. package/src/Collapsible/CollapsibleGroup.doc.mjs +1 -1
  684. package/src/Collapsible/CollapsibleGroup.tsx +1 -1
  685. package/src/Collapsible/CollapsibleGroupContext.tsx +1 -1
  686. package/src/Collapsible/useCollapsible.doc.mjs +2 -2
  687. package/src/CommandPalette/CommandPalette.doc.mjs +4 -4
  688. package/src/CommandPalette/CommandPalette.test.tsx +95 -1
  689. package/src/CommandPalette/CommandPalette.tsx +42 -3
  690. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +1 -1
  691. package/src/CommandPalette/CommandPaletteEmpty.tsx +1 -1
  692. package/src/CommandPalette/CommandPaletteFooter.doc.mjs +1 -1
  693. package/src/CommandPalette/CommandPaletteFooter.tsx +1 -1
  694. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +1 -1
  695. package/src/CommandPalette/CommandPaletteGroup.tsx +1 -1
  696. package/src/CommandPalette/CommandPaletteInput.doc.mjs +1 -1
  697. package/src/CommandPalette/CommandPaletteInput.tsx +1 -1
  698. package/src/CommandPalette/CommandPaletteItem.doc.mjs +1 -1
  699. package/src/CommandPalette/CommandPaletteItem.tsx +2 -2
  700. package/src/CommandPalette/CommandPaletteList.doc.mjs +1 -1
  701. package/src/CommandPalette/CommandPaletteList.tsx +1 -1
  702. package/src/ContextMenu/ContextMenu.doc.mjs +3 -3
  703. package/src/ContextMenu/ContextMenu.test.tsx +59 -2
  704. package/src/ContextMenu/ContextMenu.tsx +23 -12
  705. package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
  706. package/src/ContextMenu/index.ts +5 -0
  707. package/src/DateInput/DateInput.doc.mjs +28 -3
  708. package/src/DateInput/DateInput.test.tsx +230 -0
  709. package/src/DateInput/DateInput.tsx +52 -30
  710. package/src/DateRangeInput/DateRangeInput.doc.mjs +18 -2
  711. package/src/DateRangeInput/DateRangeInput.test.tsx +140 -0
  712. package/src/DateRangeInput/DateRangeInput.tsx +43 -31
  713. package/src/DateTimeInput/DateTimeInput.doc.mjs +25 -4
  714. package/src/DateTimeInput/DateTimeInput.test.tsx +112 -0
  715. package/src/DateTimeInput/DateTimeInput.tsx +45 -40
  716. package/src/Dialog/Dialog.doc.mjs +9 -5
  717. package/src/Dialog/Dialog.test.tsx +84 -1
  718. package/src/Dialog/Dialog.tsx +87 -45
  719. package/src/Dialog/DialogHeader.doc.mjs +1 -1
  720. package/src/Dialog/DialogHeader.tsx +1 -1
  721. package/src/Dialog/index.ts +18 -1
  722. package/src/Dialog/useImperativeDialog.doc.mjs +1 -1
  723. package/src/Divider/Divider.doc.mjs +3 -3
  724. package/src/Divider/Divider.test.tsx +32 -8
  725. package/src/Divider/Divider.tsx +16 -20
  726. package/src/Divider/index.ts +19 -5
  727. package/src/DropdownMenu/DropdownMenu.doc.mjs +8 -5
  728. package/src/DropdownMenu/DropdownMenu.test.tsx +95 -0
  729. package/src/DropdownMenu/DropdownMenu.tsx +32 -13
  730. package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +1 -1
  731. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +49 -66
  732. package/src/DropdownMenu/DropdownMenuItem.doc.mjs +1 -1
  733. package/src/DropdownMenu/DropdownMenuItem.tsx +10 -4
  734. package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +5 -13
  735. package/src/DropdownMenu/DropdownMenuRadioGroup.tsx +9 -10
  736. package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
  737. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +19 -4
  738. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +84 -2
  739. package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +88 -0
  740. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +680 -0
  741. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +569 -0
  742. package/src/DropdownMenu/index.ts +16 -0
  743. package/src/DropdownMenu/menuItemHover.ts +40 -0
  744. package/src/DropdownMenu/menuItemRoles.ts +9 -0
  745. package/src/DropdownMenu/renderDropdownItems.tsx +40 -14
  746. package/src/EmptyState/EmptyState.doc.mjs +3 -3
  747. package/src/EmptyState/EmptyState.tsx +1 -1
  748. package/src/Field/Field.doc.mjs +7 -3
  749. package/src/Field/Field.tsx +15 -10
  750. package/src/Field/FieldLabel.doc.mjs +1 -1
  751. package/src/Field/FieldLabel.test.tsx +103 -0
  752. package/src/Field/FieldLabel.tsx +62 -6
  753. package/src/Field/inputStyles.stylex.ts +2 -0
  754. package/src/FieldStatus/FieldStatus.doc.mjs +3 -2
  755. package/src/FieldStatus/FieldStatus.test.tsx +133 -0
  756. package/src/FieldStatus/FieldStatus.tsx +62 -23
  757. package/src/FieldStatus/index.ts +20 -5
  758. package/src/FileInput/FileInput.doc.mjs +26 -5
  759. package/src/FileInput/FileInput.test.tsx +104 -13
  760. package/src/FileInput/FileInput.tsx +107 -80
  761. package/src/FormLayout/FormLayout.doc.mjs +3 -3
  762. package/src/FormLayout/FormLayout.tsx +2 -5
  763. package/src/Grid/Grid.doc.mjs +3 -3
  764. package/src/Grid/Grid.tsx +1 -1
  765. package/src/Grid/GridSpan.doc.mjs +1 -1
  766. package/src/Grid/GridSpan.tsx +1 -1
  767. package/src/HStack/HStack.tsx +1 -1
  768. package/src/Heading/Heading.tsx +4 -3
  769. package/src/HoverCard/HoverCard.doc.mjs +3 -3
  770. package/src/HoverCard/HoverCard.tsx +1 -1
  771. package/src/HoverCard/useHoverCard.doc.mjs +2 -2
  772. package/src/HoverCard/useHoverCard.tsx +15 -3
  773. package/src/Icon/Icon.doc.mjs +16 -3
  774. package/src/Icon/Icon.test.tsx +89 -0
  775. package/src/Icon/Icon.tsx +52 -4
  776. package/src/Icon/globalIconRegistry.tsx +1 -1
  777. package/src/IconButton/IconButton.doc.mjs +2 -2
  778. package/src/IconButton/IconButton.tsx +1 -1
  779. package/src/InputGroup/InputGroup.doc.mjs +2 -2
  780. package/src/InputGroup/InputGroup.tsx +1 -1
  781. package/src/InputGroup/InputGroupText.doc.mjs +1 -1
  782. package/src/InputGroup/InputGroupText.tsx +1 -1
  783. package/src/Item/Item.doc.mjs +8 -3
  784. package/src/Item/Item.test.tsx +88 -0
  785. package/src/Item/Item.tsx +58 -12
  786. package/src/Kbd/Kbd.doc.mjs +3 -3
  787. package/src/Kbd/Kbd.tsx +1 -1
  788. package/src/Layer/Layer.doc.mjs +2 -2
  789. package/src/Layer/layerAnimations.stylex.ts +23 -0
  790. package/src/Layer/useLayer.doc.mjs +2 -2
  791. package/src/Layout/Layout.doc.mjs +3 -3
  792. package/src/Layout/Layout.tsx +1 -1
  793. package/src/Layout/LayoutContent.doc.mjs +1 -1
  794. package/src/Layout/LayoutContent.tsx +1 -1
  795. package/src/Layout/LayoutFooter.doc.mjs +1 -1
  796. package/src/Layout/LayoutFooter.tsx +1 -1
  797. package/src/Layout/LayoutHeader.doc.mjs +1 -1
  798. package/src/Layout/LayoutHeader.tsx +1 -1
  799. package/src/Layout/LayoutPanel.doc.mjs +1 -1
  800. package/src/Layout/LayoutPanel.tsx +1 -1
  801. package/src/Lightbox/Lightbox.doc.mjs +3 -3
  802. package/src/Lightbox/Lightbox.test.tsx +33 -0
  803. package/src/Lightbox/Lightbox.tsx +31 -11
  804. package/src/Link/Link.doc.mjs +3 -3
  805. package/src/Link/Link.tsx +1 -1
  806. package/src/Link/LinkProvider.doc.mjs +2 -2
  807. package/src/Link/LinkProvider.tsx +2 -2
  808. package/src/List/List.doc.mjs +3 -3
  809. package/src/List/List.test.tsx +17 -29
  810. package/src/List/List.tsx +7 -2
  811. package/src/List/ListItem.doc.mjs +13 -1
  812. package/src/List/ListItem.tsx +14 -1
  813. package/src/Markdown/Markdown.doc.mjs +1 -1
  814. package/src/Markdown/Markdown.test.tsx +21 -0
  815. package/src/Markdown/Markdown.tsx +7 -3
  816. package/src/MetadataList/MetadataList.doc.mjs +3 -3
  817. package/src/MetadataList/MetadataList.test.tsx +24 -0
  818. package/src/MetadataList/MetadataList.tsx +7 -3
  819. package/src/MetadataList/MetadataListItem.doc.mjs +1 -1
  820. package/src/MetadataList/MetadataListItem.tsx +1 -1
  821. package/src/MobileNav/MobileNav.doc.mjs +3 -3
  822. package/src/MobileNav/MobileNav.tsx +1 -1
  823. package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
  824. package/src/MoreMenu/MoreMenu.tsx +1 -1
  825. package/src/MultiSelector/MultiSelector.doc.mjs +23 -3
  826. package/src/MultiSelector/MultiSelector.test.tsx +436 -0
  827. package/src/MultiSelector/MultiSelector.tsx +134 -68
  828. package/src/NavIcon/NavIcon.doc.mjs +3 -3
  829. package/src/NavIcon/NavIcon.tsx +1 -1
  830. package/src/NavMenu/NavHeadingMenuItem.tsx +1 -1
  831. package/src/NavMenu/NavMenu.doc.mjs +2 -2
  832. package/src/NumberInput/NumberInput.doc.mjs +24 -3
  833. package/src/NumberInput/NumberInput.test.tsx +71 -0
  834. package/src/NumberInput/NumberInput.tsx +36 -27
  835. package/src/Outline/Outline.doc.mjs +3 -3
  836. package/src/Outline/Outline.test.tsx +12 -12
  837. package/src/Outline/Outline.tsx +3 -3
  838. package/src/OverflowList/OverflowList.doc.mjs +3 -3
  839. package/src/OverflowList/OverflowList.tsx +1 -1
  840. package/src/Overlay/Overlay.doc.mjs +2 -2
  841. package/src/Pagination/Pagination.doc.mjs +3 -3
  842. package/src/Pagination/Pagination.tsx +13 -25
  843. package/src/Pagination/index.ts +21 -1
  844. package/src/Popover/Popover.doc.mjs +3 -3
  845. package/src/Popover/Popover.tsx +1 -1
  846. package/src/Popover/usePopover.doc.mjs +2 -2
  847. package/src/Popover/usePopover.tsx +10 -4
  848. package/src/PowerSearch/PowerSearch.doc.mjs +18 -3
  849. package/src/PowerSearch/PowerSearch.test.tsx +23 -0
  850. package/src/PowerSearch/PowerSearch.tsx +11 -2
  851. package/src/ProgressBar/ProgressBar.doc.mjs +3 -3
  852. package/src/ProgressBar/ProgressBar.test.tsx +34 -0
  853. package/src/ProgressBar/ProgressBar.tsx +18 -23
  854. package/src/ProgressBar/index.ts +22 -5
  855. package/src/RadioList/RadioList.doc.mjs +9 -3
  856. package/src/RadioList/RadioList.test.tsx +26 -4
  857. package/src/RadioList/RadioList.tsx +3 -3
  858. package/src/RadioList/RadioListItem.doc.mjs +1 -1
  859. package/src/RadioList/RadioListItem.tsx +13 -6
  860. package/src/Resizable/Resizable.doc.mjs +2 -2
  861. package/src/Resizable/ResizeHandle.test.tsx +95 -0
  862. package/src/Resizable/ResizeHandle.tsx +71 -25
  863. package/src/Resizable/useResizable.doc.mjs +2 -2
  864. package/src/Section/Section.doc.mjs +3 -3
  865. package/src/Section/Section.tsx +2 -20
  866. package/src/Section/index.ts +20 -5
  867. package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
  868. package/src/SegmentedControl/SegmentedControl.test.tsx +28 -0
  869. package/src/SegmentedControl/SegmentedControl.tsx +1 -1
  870. package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
  871. package/src/SegmentedControl/SegmentedControlItem.tsx +23 -3
  872. package/src/SelectableCard/SelectableCard.doc.mjs +4 -2
  873. package/src/SelectableCard/SelectableCard.test.tsx +55 -0
  874. package/src/SelectableCard/SelectableCard.tsx +19 -3
  875. package/src/Selector/Selector.doc.mjs +18 -3
  876. package/src/Selector/Selector.test.tsx +400 -0
  877. package/src/Selector/Selector.tsx +96 -24
  878. package/src/Selector/SelectorOption.doc.mjs +1 -1
  879. package/src/SideNav/SideNav.doc.mjs +3 -3
  880. package/src/SideNav/SideNav.tsx +2 -9
  881. package/src/SideNav/SideNavCollapseButton.doc.mjs +1 -1
  882. package/src/SideNav/SideNavCollapseButton.tsx +10 -8
  883. package/src/SideNav/SideNavHeading.doc.mjs +1 -1
  884. package/src/SideNav/SideNavHeading.tsx +1 -1
  885. package/src/SideNav/SideNavItem.doc.mjs +1 -1
  886. package/src/SideNav/SideNavItem.tsx +6 -4
  887. package/src/SideNav/SideNavSection.doc.mjs +1 -1
  888. package/src/SideNav/SideNavSection.tsx +1 -1
  889. package/src/Skeleton/Skeleton.doc.mjs +3 -3
  890. package/src/Skeleton/Skeleton.test.tsx +16 -0
  891. package/src/Skeleton/Skeleton.tsx +14 -2
  892. package/src/Slider/Slider.doc.mjs +9 -3
  893. package/src/Slider/Slider.test.tsx +240 -12
  894. package/src/Slider/Slider.tsx +102 -33
  895. package/src/Spinner/Spinner.doc.mjs +3 -3
  896. package/src/Spinner/Spinner.test.tsx +10 -8
  897. package/src/Spinner/Spinner.tsx +16 -6
  898. package/src/Stack/Stack.doc.mjs +3 -3
  899. package/src/Stack/Stack.tsx +1 -1
  900. package/src/Stack/StackItem.tsx +1 -1
  901. package/src/StatusDot/StatusDot.doc.mjs +3 -3
  902. package/src/StatusDot/StatusDot.tsx +2 -22
  903. package/src/StatusDot/index.ts +22 -5
  904. package/src/Switch/Switch.doc.mjs +145 -45
  905. package/src/Switch/Switch.test.tsx +145 -0
  906. package/src/Switch/Switch.tsx +150 -33
  907. package/src/TabList/Tab.doc.mjs +1 -1
  908. package/src/TabList/Tab.tsx +3 -3
  909. package/src/TabList/TabList.doc.mjs +3 -9
  910. package/src/TabList/TabList.test.tsx +3 -15
  911. package/src/TabList/TabList.tsx +7 -18
  912. package/src/TabList/TabListContext.ts +0 -6
  913. package/src/TabList/TabMenu.doc.mjs +1 -1
  914. package/src/TabList/TabMenu.tsx +3 -3
  915. package/src/Table/BaseTable.tsx +35 -3
  916. package/src/Table/Table.doc.mjs +14 -3
  917. package/src/Table/Table.test.tsx +85 -0
  918. package/src/Table/Table.tsx +1 -1
  919. package/src/Table/TableCell.doc.mjs +1 -1
  920. package/src/Table/TableCell.tsx +4 -4
  921. package/src/Table/TableHeaderCell.doc.mjs +1 -1
  922. package/src/Table/TableHeaderCell.tsx +4 -4
  923. package/src/Table/TableRow.doc.mjs +1 -1
  924. package/src/Table/TableRow.tsx +1 -1
  925. package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +9 -6
  926. package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +19 -0
  927. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +48 -21
  928. package/src/Table/plugins/selection/useTableSelection.test.tsx +61 -3
  929. package/src/Table/plugins/selection/useTableSelection.tsx +3 -0
  930. package/src/Table/plugins/stickyColumns/useTableStickyColumns.tsx +38 -9
  931. package/src/Table/plugins/tree/useTableTreeData.test.tsx +161 -2
  932. package/src/Table/plugins/tree/useTableTreeData.tsx +71 -14
  933. package/src/Table/types.ts +33 -0
  934. package/src/Table/useTableColumnResize.doc.mjs +1 -1
  935. package/src/Table/useTableColumnSettings.doc.mjs +1 -1
  936. package/src/Table/useTableFilterState.doc.mjs +1 -1
  937. package/src/Table/useTableFiltering.doc.mjs +1 -1
  938. package/src/Table/useTableGroupedRows.doc.mjs +2 -2
  939. package/src/Table/useTablePagination.doc.mjs +1 -1
  940. package/src/Table/useTableRowExpansion.doc.mjs +57 -4
  941. package/src/Table/useTableRowIndex.doc.mjs +2 -2
  942. package/src/Table/useTableRowStatus.doc.mjs +3 -3
  943. package/src/Table/useTableSelection.doc.mjs +1 -1
  944. package/src/Table/useTableSelectionState.doc.mjs +1 -1
  945. package/src/Table/useTableSortable.doc.mjs +1 -1
  946. package/src/Table/useTableStickyColumns.doc.mjs +1 -1
  947. package/src/Table/useTableTreeData.doc.mjs +10 -1
  948. package/src/Table/useTableTreeState.doc.mjs +1 -1
  949. package/src/Text/Heading.doc.mjs +4 -4
  950. package/src/Text/Text.doc.mjs +4 -4
  951. package/src/Text/Text.test.tsx +42 -0
  952. package/src/Text/Text.tsx +26 -2
  953. package/src/Text/index.ts +32 -6
  954. package/src/TextArea/TextArea.doc.mjs +26 -5
  955. package/src/TextArea/TextArea.test.tsx +132 -4
  956. package/src/TextArea/TextArea.tsx +162 -68
  957. package/src/TextInput/TextInput.doc.mjs +24 -3
  958. package/src/TextInput/TextInput.test.tsx +150 -0
  959. package/src/TextInput/TextInput.tsx +29 -26
  960. package/src/Thumbnail/Thumbnail.doc.mjs +3 -3
  961. package/src/Thumbnail/Thumbnail.test.tsx +24 -1
  962. package/src/Thumbnail/Thumbnail.tsx +29 -36
  963. package/src/TimeInput/TimeInput.doc.mjs +24 -3
  964. package/src/TimeInput/TimeInput.test.tsx +23 -0
  965. package/src/TimeInput/TimeInput.tsx +25 -26
  966. package/src/Timestamp/Timestamp.doc.mjs +35 -9
  967. package/src/Timestamp/Timestamp.test.tsx +371 -0
  968. package/src/Timestamp/Timestamp.tsx +97 -94
  969. package/src/Timestamp/formatInstant.ts +218 -0
  970. package/src/Timestamp/index.ts +4 -0
  971. package/src/Timestamp/tooltipEntries.test.ts +552 -0
  972. package/src/Timestamp/tooltipEntries.ts +210 -0
  973. package/src/Toast/Toast.doc.mjs +3 -3
  974. package/src/Toast/ToastViewport.test.tsx +218 -8
  975. package/src/Toast/ToastViewport.tsx +71 -12
  976. package/src/Toast/useToast.doc.mjs +2 -2
  977. package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
  978. package/src/ToggleButton/ToggleButton.test.tsx +24 -0
  979. package/src/ToggleButton/ToggleButton.tsx +20 -2
  980. package/src/ToggleButton/ToggleButtonGroup.doc.mjs +1 -1
  981. package/src/ToggleButton/ToggleButtonGroup.tsx +3 -6
  982. package/src/Token/Token.doc.mjs +3 -3
  983. package/src/Token/Token.test.tsx +166 -15
  984. package/src/Token/Token.tsx +79 -48
  985. package/src/Token/TokenLink.tsx +107 -0
  986. package/src/Token/index.ts +27 -0
  987. package/src/Tokenizer/Tokenizer.doc.mjs +26 -4
  988. package/src/Tokenizer/Tokenizer.test.tsx +23 -0
  989. package/src/Tokenizer/Tokenizer.tsx +15 -3
  990. package/src/Toolbar/Toolbar.doc.mjs +3 -3
  991. package/src/Toolbar/Toolbar.tsx +1 -1
  992. package/src/Tooltip/Tooltip.doc.mjs +3 -3
  993. package/src/Tooltip/Tooltip.test.tsx +46 -0
  994. package/src/Tooltip/Tooltip.tsx +1 -1
  995. package/src/Tooltip/useTooltip.doc.mjs +2 -2
  996. package/src/Tooltip/useTooltip.tsx +20 -0
  997. package/src/TopNav/TopNav.doc.mjs +3 -3
  998. package/src/TopNav/TopNav.test.tsx +93 -2
  999. package/src/TopNav/TopNav.tsx +1 -1
  1000. package/src/TopNav/TopNavHeading.doc.mjs +1 -1
  1001. package/src/TopNav/TopNavHeading.tsx +1 -1
  1002. package/src/TopNav/TopNavItem.doc.mjs +4 -4
  1003. package/src/TopNav/TopNavItem.tsx +36 -7
  1004. package/src/TopNav/TopNavMegaMenu.doc.mjs +1 -1
  1005. package/src/TopNav/TopNavMegaMenu.tsx +27 -3
  1006. package/src/TopNav/TopNavMegaMenuFeaturedCard.doc.mjs +2 -2
  1007. package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +1 -1
  1008. package/src/TopNav/TopNavMegaMenuItem.doc.mjs +1 -1
  1009. package/src/TopNav/TopNavMegaMenuItem.tsx +1 -1
  1010. package/src/TopNav/TopNavMenu.doc.mjs +1 -1
  1011. package/src/TopNav/TopNavMenu.tsx +1 -1
  1012. package/src/TreeList/TreeList.doc.mjs +9 -3
  1013. package/src/TreeList/TreeList.test.tsx +50 -10
  1014. package/src/TreeList/TreeList.tsx +6 -1
  1015. package/src/TreeList/TreeListBranches.tsx +9 -7
  1016. package/src/TreeList/TreeListItem.tsx +34 -12
  1017. package/src/TreeList/TreeListTypes.ts +1 -18
  1018. package/src/TreeList/index.ts +19 -1
  1019. package/src/Typeahead/BaseTypeahead.doc.mjs +1 -1
  1020. package/src/Typeahead/BaseTypeahead.tsx +43 -16
  1021. package/src/Typeahead/Typeahead.doc.mjs +16 -3
  1022. package/src/Typeahead/Typeahead.test.tsx +112 -0
  1023. package/src/Typeahead/Typeahead.tsx +18 -2
  1024. package/src/Typeahead/TypeaheadItem.doc.mjs +1 -1
  1025. package/src/Typeahead/TypeaheadItem.tsx +3 -2
  1026. package/src/VStack/VStack.tsx +1 -1
  1027. package/src/VisuallyHidden/VisuallyHidden.doc.mjs +3 -3
  1028. package/src/VisuallyHidden/VisuallyHidden.tsx +1 -1
  1029. package/src/__tests__/babelPluginAddExtensions.test.ts +190 -0
  1030. package/src/__tests__/forcedColors.ts +60 -0
  1031. package/src/__tests__/inputWidthContract.test.tsx +69 -0
  1032. package/src/doc-mjs.d.ts +22 -0
  1033. package/src/docPropLiterals.test.ts +1 -1
  1034. package/src/docPropReferences.test.ts +1 -1
  1035. package/src/hooks/containerReveal.pool.stylex.ts +571 -0
  1036. package/src/hooks/index.ts +13 -0
  1037. package/src/hooks/isRtlElement.ts +27 -0
  1038. package/src/hooks/useAnnounce.test.tsx +75 -2
  1039. package/src/hooks/useAnnounce.ts +47 -1
  1040. package/src/hooks/useClickableContainer.doc.mjs +2 -2
  1041. package/src/hooks/useContainerReveal.doc.mjs +75 -0
  1042. package/src/hooks/useContainerReveal.test.tsx +116 -0
  1043. package/src/hooks/useContainerReveal.ts +181 -0
  1044. package/src/hooks/useEntryAnimation.doc.mjs +2 -2
  1045. package/src/hooks/useFocusTrap.doc.mjs +2 -2
  1046. package/src/hooks/useFocusTrap.test.tsx +104 -0
  1047. package/src/hooks/useFocusTrap.ts +61 -12
  1048. package/src/hooks/useGridFocus.doc.mjs +5 -5
  1049. package/src/hooks/useGridFocus.test.tsx +41 -0
  1050. package/src/hooks/useGridFocus.ts +21 -10
  1051. package/src/hooks/useHotkeys.doc.mjs +2 -2
  1052. package/src/hooks/useHotkeys.ts +9 -0
  1053. package/src/hooks/useImageMode.doc.mjs +2 -2
  1054. package/src/hooks/useInputContainer.doc.mjs +2 -2
  1055. package/src/hooks/useInputContainer.test.tsx +180 -0
  1056. package/src/hooks/useInputContainer.ts +36 -1
  1057. package/src/hooks/useInputStatusIcon.test.tsx +221 -0
  1058. package/src/hooks/useInputStatusIcon.tsx +235 -0
  1059. package/src/hooks/useKeyboardHint.doc.mjs +2 -2
  1060. package/src/hooks/useKeyboardHint.test.tsx +22 -0
  1061. package/src/hooks/useKeyboardHint.tsx +7 -3
  1062. package/src/hooks/useListFocus.doc.mjs +27 -5
  1063. package/src/hooks/useListFocus.test.tsx +153 -1
  1064. package/src/hooks/useListFocus.ts +102 -9
  1065. package/src/hooks/useMediaQuery.doc.mjs +2 -2
  1066. package/src/hooks/useOverflow.doc.mjs +2 -2
  1067. package/src/hooks/useScrollLock.doc.mjs +2 -2
  1068. package/src/hooks/useScrollOverflow.doc.mjs +2 -2
  1069. package/src/hooks/useStreamingText.doc.mjs +2 -2
  1070. package/src/hooks/useTreeFocus.doc.mjs +2 -2
  1071. package/src/i18n/InternationalizationContext.ts +4 -0
  1072. package/src/i18n/InternationalizationProvider.doc.mjs +2 -2
  1073. package/src/i18n/InternationalizationProvider.tsx +12 -2
  1074. package/src/i18n/__tests__/getLocaleDirection.test.ts +40 -0
  1075. package/src/i18n/__tests__/useDirection.test.tsx +66 -0
  1076. package/src/i18n/getLocaleDirection.ts +29 -0
  1077. package/src/i18n/index.ts +6 -0
  1078. package/src/i18n/useDirection.ts +29 -0
  1079. package/src/i18n/useTranslator.doc.mjs +2 -2
  1080. package/src/index.ts +14 -10
  1081. package/src/reset.css +0 -26
  1082. package/src/reset.test.ts +60 -0
  1083. package/src/theme/MediaTheme.doc.mjs +2 -2
  1084. package/src/theme/SyntaxTheme.doc.mjs +2 -2
  1085. package/src/theme/Theme.doc.mjs +2 -2
  1086. package/src/theme/defineTheme.ts +6 -0
  1087. package/src/theme/derivedVarRegistry.test.ts +1 -0
  1088. package/src/theme/derivedVarRegistry.ts +6 -0
  1089. package/src/theme/expandColorScale.test.ts +144 -0
  1090. package/src/theme/expandColorScale.ts +53 -15
  1091. package/src/theme/generateThemeRules.test.ts +42 -0
  1092. package/src/theme/index.ts +4 -8
  1093. package/src/theme/types.ts +14 -13
  1094. package/src/theme/useTheme.doc.mjs +2 -2
  1095. package/src/utils/index.ts +2 -0
  1096. package/src/utils/plainDate.test.ts +24 -6
  1097. package/src/utils/plainDate.ts +18 -4
  1098. package/src/utils/rtlStyles.ts +49 -0
  1099. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts +0 -9
  1100. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts.map +0 -1
  1101. package/dist/Thumbnail/thumbnail.markers.stylex.js +0 -14
  1102. package/dist/authoring/doc.d.ts +0 -145
  1103. package/dist/authoring/doc.d.ts.map +0 -1
  1104. package/dist/authoring/doc.js +0 -100
  1105. package/dist/authoring/index.d.ts +0 -29
  1106. package/dist/authoring/index.d.ts.map +0 -1
  1107. package/dist/authoring/index.js +0 -28
  1108. package/dist/authoring/integration.d.ts +0 -35
  1109. package/dist/authoring/integration.d.ts.map +0 -1
  1110. package/dist/authoring/integration.js +0 -30
  1111. package/dist/authoring/template.d.ts +0 -66
  1112. package/dist/authoring/template.d.ts.map +0 -1
  1113. package/dist/authoring/template.js +0 -55
  1114. package/dist/config.d.ts +0 -80
  1115. package/dist/config.d.ts.map +0 -1
  1116. package/dist/config.js +0 -40
  1117. package/dist/docs-types.d.ts +0 -969
  1118. package/dist/docs-types.d.ts.map +0 -1
  1119. package/dist/docs-types.js +0 -1
  1120. package/src/Thumbnail/thumbnail.markers.stylex.ts +0 -12
  1121. package/src/authoring/doc.ts +0 -164
  1122. package/src/authoring/index.test.ts +0 -52
  1123. package/src/authoring/index.ts +0 -50
  1124. package/src/authoring/integration.ts +0 -42
  1125. package/src/authoring/template.ts +0 -74
  1126. package/src/config.test.ts +0 -16
  1127. package/src/config.ts +0 -92
  1128. package/src/docs-types.ts +0 -1108
@@ -0,0 +1,163 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file tooltipEntries.ts
5
+ * @input A Date and the consumer's tooltip entry list
6
+ * @output Pure formatting of one tooltip line per entry, plus the entry types
7
+ * @position Leaf module; owns which zone each tooltip line names and whether
8
+ * it needs a zone abbreviation, then defers to formatInstant to render it
9
+ *
10
+ * This module holds only the decisions a tooltip makes that the visible text
11
+ * does not: resolving `timezoneID` (including the `'local'` alias and the
12
+ * fallback for an unknown identifier), and deciding which lines need a zone
13
+ * abbreviation to be told apart. The formatting itself is formatInstant's,
14
+ * shared with the rendered text, so the two surfaces cannot drift.
15
+ *
16
+ * SYNC: When modified, update these files to stay in sync:
17
+ * - /packages/core/src/Timestamp/Timestamp.tsx
18
+ * - /packages/core/src/Timestamp/formatInstant.ts
19
+ * - /packages/core/src/Timestamp/tooltipEntries.test.ts
20
+ * - /packages/core/src/Timestamp/Timestamp.doc.mjs
21
+ * - /packages/core/src/Timestamp/index.ts
22
+ */
23
+
24
+ import { devWarn } from "../utils/devWarning.js";
25
+ import { formatInstant } from "./formatInstant.js";
26
+
27
+ // =============================================================================
28
+ // Types
29
+ // =============================================================================
30
+
31
+ /**
32
+ * Formats available to a tooltip line.
33
+ *
34
+ * Every `TimestampFormat` that names a fixed instant, plus `'full'` — the long
35
+ * absolute style the tooltip has always shown ("February 19, 2026 at 5:00:00 PM
36
+ * UTC"). `'relative'` and `'auto'` are excluded: a relative phrase ignores any
37
+ * zone, which would make `timezoneID` silently inert on that line.
38
+ *
39
+ * `'full'` lives only in this vocabulary, never in `TimestampFormat` — nothing
40
+ * asked for it as a visible display format, and keeping it out means new
41
+ * members added to `TimestampFormat` become valid tooltip formats for free.
42
+ *
43
+ * The public spelling of {@link InstantFormat}: consumers reading Timestamp's
44
+ * props should not have to know the name of its internal formatter.
45
+ */
46
+
47
+ /** One line of the Timestamp tooltip. */
48
+
49
+ /** A rendered tooltip line. */
50
+
51
+ // =============================================================================
52
+ // Zone resolution
53
+ // =============================================================================
54
+
55
+ /** Spelling that means "the viewer's own zone" without naming it. */
56
+ const LOCAL_ZONE_ALIAS = 'local';
57
+
58
+ /**
59
+ * Zone identifiers already reported as unknown.
60
+ *
61
+ * Resolution runs once per entry on every render, so without this a single
62
+ * typo on a live timestamp would emit the same warning every tick, forever.
63
+ * One report per bad identifier is enough to act on.
64
+ */
65
+ const warnedTimezoneIDs = new Set();
66
+
67
+ /**
68
+ * Resolves an entry's zone to something safe to hand to `Intl`.
69
+ *
70
+ * Returns `undefined` for the viewer's own zone, which is also what `Intl`
71
+ * treats as "use the host zone" — so the local path never constructs a
72
+ * formatter with an explicit `timeZone` and cannot drift from today's output.
73
+ */
74
+ function resolveTimezoneID(timezoneID) {
75
+ if (timezoneID === undefined || timezoneID.toLowerCase() === LOCAL_ZONE_ALIAS) {
76
+ return undefined;
77
+ }
78
+
79
+ // An unrecognized identifier makes every Intl.DateTimeFormat constructor
80
+ // throw a RangeError. Rendering a timestamp must never take down the tree —
81
+ // degrade to the viewer's zone and say so, mirroring how an unparseable
82
+ // `value` is handled in Timestamp.tsx.
83
+ try {
84
+ new Intl.DateTimeFormat(undefined, {
85
+ timeZone: timezoneID
86
+ });
87
+ } catch {
88
+ if (!warnedTimezoneIDs.has(timezoneID)) {
89
+ warnedTimezoneIDs.add(timezoneID);
90
+ devWarn('Timestamp', `unknown time zone ${JSON.stringify(timezoneID)} in tooltipEntries. Falling back to the viewer's time zone.`);
91
+ }
92
+ return undefined;
93
+ }
94
+ return timezoneID;
95
+ }
96
+
97
+ /**
98
+ * A stable key for "which zone did the consumer ask for", used to decide
99
+ * whether the tooltip needs zone abbreviations to disambiguate its lines.
100
+ *
101
+ * Deliberately keyed on the *requested* zone, not on the resolved offset: a
102
+ * consumer who asks for two zones gets both labelled even when the viewer
103
+ * happens to be sitting in one of them, so the rendering does not change shape
104
+ * depending on where the reader is. That also keeps this testable under any
105
+ * machine timezone.
106
+ */
107
+ function zoneKey(resolved) {
108
+ return resolved === undefined ? LOCAL_ZONE_ALIAS : resolved.toLowerCase();
109
+ }
110
+
111
+ // =============================================================================
112
+ // Zone marking
113
+ // =============================================================================
114
+
115
+ /**
116
+ * Whether a format should carry a zone abbreviation.
117
+ *
118
+ * `'full'` always has one (that is the style). `system_*` never does — those
119
+ * are machine shapes and a trailing "PST" would break anything parsing them,
120
+ * which is also why `isTimezoneShown` has never applied to them.
121
+ *
122
+ * The two human formats that can carry one do so when either the reader has
123
+ * to tell several lines apart, or the line shows a zone the consumer named
124
+ * explicitly. That second case matters even for a lone entry: the tooltip is
125
+ * the `<time>` element's `aria-describedby`, and that element's accessible
126
+ * name is the absolute time in the *viewer's* zone — so an unmarked foreign
127
+ * time is announced directly after a local one with nothing to distinguish
128
+ * them. A line the consumer did not steer stays unmarked, matching how the
129
+ * visible text reads with `isTimezoneShown` off.
130
+ */
131
+ function shouldShowZoneName(format, hasMultipleZones, isNamedZone) {
132
+ if (format === 'full') {
133
+ return true;
134
+ }
135
+ if (format === 'date_time' || format === 'time') {
136
+ return hasMultipleZones || isNamedZone;
137
+ }
138
+ return false;
139
+ }
140
+
141
+ /**
142
+ * Renders one tooltip line per entry, in the order given.
143
+ *
144
+ * Pure: the same `date` and `entries` always produce the same lines for a given
145
+ * host zone and locale.
146
+ */
147
+ export function formatTooltipLines(date, entries) {
148
+ const resolved = entries.map(entry => resolveTimezoneID(entry.timezoneID));
149
+ const hasMultipleZones = new Set(resolved.map(zoneKey)).size > 1;
150
+ return entries.map((entry, index) => {
151
+ const format = entry.format ?? 'full';
152
+ const timeZone = resolved[index];
153
+ return {
154
+ ...(entry.label === undefined ? {} : {
155
+ label: entry.label
156
+ }),
157
+ value: formatInstant(date, format, {
158
+ timeZone,
159
+ isTimezoneShown: shouldShowZoneName(format, hasMultipleZones, timeZone !== undefined)
160
+ })
161
+ };
162
+ });
163
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"ToastViewport.d.ts","sourceRoot":"","sources":["../../src/Toast/ToastViewport.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAa,aAAa,EAAqB,MAAM,SAAS,CAAC;AA4D3E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IACtE;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAsB,EACtB,UAAc,EACd,KAAK,EACL,UAAiB,EACjB,QAAQ,GACT,EAAE,kBAAkB,+BAkTpB;yBAxTe,aAAa"}
1
+ {"version":3,"file":"ToastViewport.d.ts","sourceRoot":"","sources":["../../src/Toast/ToastViewport.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAa,aAAa,EAAqB,MAAM,SAAS,CAAC;AAmF3E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IACtE;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAsB,EACtB,UAAc,EACd,KAAK,EACL,UAAiB,EACjB,QAAQ,GACT,EAAE,kBAAkB,+BAmVpB;yBAzVe,aAAa"}
@@ -2,12 +2,13 @@
2
2
 
3
3
  'use client';
4
4
 
5
- import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
5
+ import { isValidElement, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
6
6
  import * as stylex from '@stylexjs/stylex';
7
7
  import "../theme/tokens.stylex.js";
8
8
  import { spacingVars, durationVars, easeVars } from "../theme/tokens.stylex.js";
9
9
  import { mergeProps } from "../utils/index.js";
10
10
  import { INTERACTIVE_SELECTORS } from "../hooks/useClickableContainer.js";
11
+ import { useAnnounce } from "../hooks/useAnnounce.js";
11
12
  import { Toast } from "./Toast.js";
12
13
  import { ToastContext } from "./ToastContext.js";
13
14
  import { useTranslator } from "../i18n/index.js";
@@ -53,6 +54,31 @@ const styles = {
53
54
  $$css: true
54
55
  }
55
56
  };
57
+
58
+ // Flatten a toast's rendered content (title, description, etc.) to the plain
59
+ // text that should be spoken by a screen reader. Only text is announced —
60
+ // interactive endContent is deliberately excluded (it is reachable via F6).
61
+ function getNodeText(node) {
62
+ if (node == null || typeof node === 'boolean') {
63
+ return '';
64
+ }
65
+ if (typeof node === 'string') {
66
+ return node;
67
+ }
68
+ if (typeof node === 'number') {
69
+ return String(node);
70
+ }
71
+ if (Array.isArray(node)) {
72
+ return node.map(getNodeText).filter(Boolean).join(' ');
73
+ }
74
+ if (/*#__PURE__*/isValidElement(node)) {
75
+ const {
76
+ children
77
+ } = node.props;
78
+ return getNodeText(children);
79
+ }
80
+ return '';
81
+ }
56
82
  /**
57
83
  * Container that renders and manages toast notifications. Place at the root
58
84
  * of your app to enable useToast(). Toasts stack with enter/exit
@@ -113,24 +139,50 @@ export function ToastViewport({
113
139
  }
114
140
  return null;
115
141
  }, []);
142
+
143
+ // Announce toasts through the persistent singleton live regions. Each
144
+ // <Toast> also renders its own role="status"/"alert" region, but that region
145
+ // is "born with content" — mounted together with its text — which many
146
+ // screen readers do not announce (see useAnnounce.ts); the singleton regions
147
+ // are mounted empty and only mutated afterwards, so they are what actually
148
+ // guarantees the announcement (the per-toast markup is kept for browse-mode
149
+ // discoverability). The announcement happens in addToast — the imperative
150
+ // dispatch path invoked once per useToast() call from an event handler,
151
+ // never from render — so each toast is announced exactly once by
152
+ // construction, independent of the React render lifecycle (StrictMode
153
+ // double-render/double-effect, viewport remounts, and unrelated list
154
+ // re-renders never re-announce). It is client-only (addToast never runs
155
+ // during SSR), so it is SSR-safe.
156
+ const announce = useAnnounce();
116
157
  const addToast = useCallback(entry => {
158
+ const {
159
+ uniqueID,
160
+ collisionBehavior = 'overwrite'
161
+ } = entry.options;
162
+ // Resolve an ignored collision synchronously against the committed list
163
+ // so a suppressed toast is neither shown nor announced. The remaining
164
+ // announce + setToasts run outside the setToasts updater, which React may
165
+ // invoke more than once — keeping the announcement exactly-once.
166
+ if (uniqueID && collisionBehavior === 'ignore' && toastsRef.current.some(t => t.options.uniqueID === uniqueID)) {
167
+ return;
168
+ }
169
+ const text = getNodeText(entry.options.body);
170
+ if (text) {
171
+ // Error toasts map to the assertive region (role="alert"); everything
172
+ // else to the polite region (role="status") — mirrors Toast.tsx.
173
+ announce(text, entry.options.type === 'error' ? 'assertive' : 'polite');
174
+ }
117
175
  setToasts(prev => {
118
- const {
119
- uniqueID,
120
- collisionBehavior = 'overwrite'
121
- } = entry.options;
122
176
  if (uniqueID) {
123
177
  const existing = prev.find(t => t.options.uniqueID === uniqueID);
124
178
  if (existing) {
125
- if (collisionBehavior === 'ignore') {
126
- return prev;
127
- }
179
+ // An ignored collision already returned above; overwrite in place.
128
180
  return prev.map(t => t.options.uniqueID === uniqueID ? entry : t);
129
181
  }
130
182
  }
131
183
  return [...prev, entry];
132
184
  });
133
- }, []);
185
+ }, [announce]);
134
186
  const removeToast = useCallback((id, reason) => {
135
187
  // An exiting toast stays in toastsRef until its exit transition ends, so
136
188
  // a second dismissal inside that window (double-click, auto-timer plus
@@ -13,7 +13,7 @@
13
13
  * SYNC: When modified, update these files to stay in sync:
14
14
  * - /packages/core/src/ToggleButton/index.ts (exports if types change)
15
15
  * - /apps/storybook/stories/ToggleButton.stories.tsx
16
- * - /packages/cli/templates/blocks/components/ToggleButton/ (showcase blocks)
16
+ * - /packages/cli/assets/templates/blocks/components/ToggleButton/ (showcase blocks)
17
17
  */
18
18
  import React, { type ReactNode } from 'react';
19
19
  import { type ButtonSize } from '../Button';
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleButton.d.ts","sourceRoot":"","sources":["../../src/ToggleButton/ToggleButton.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAgB,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAI3D,OAAO,EAAS,KAAK,UAAU,EAAC,MAAM,WAAW,CAAC;AAElD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA0C5C,MAAM,WAAW,iBAAkB,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IACrE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,CAChB,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KACvC,IAAI,CAAC;IAEV;;;;;;;;;;;;;;;;;OAiBG;IACH,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnE;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,YAAY,CAAC,EAC3B,GAAG,EACH,KAAK,EACL,SAAS,EAAE,aAAa,EACxB,eAAe,EAAE,mBAAmB,EACpC,mBAAmB,EACnB,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,cAAsB,EAClC,SAAiB,EACjB,IAAI,EACJ,UAAkB,EAClB,WAAW,EACX,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,SAAS,EAAE,UAAU,EACrB,KAAK,EACL,GAAG,KAAK,EACT,EAAE,iBAAiB,GAAG,SAAS,CAyG/B;yBA5He,YAAY"}
1
+ {"version":3,"file":"ToggleButton.d.ts","sourceRoot":"","sources":["../../src/ToggleButton/ToggleButton.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAgB,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAI3D,OAAO,EAAS,KAAK,UAAU,EAAC,MAAM,WAAW,CAAC;AAElD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA4D5C,MAAM,WAAW,iBAAkB,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IACrE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,CAChB,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KACvC,IAAI,CAAC;IAEV;;;;;;;;;;;;;;;;;OAiBG;IACH,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnE;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,YAAY,CAAC,EAC3B,GAAG,EACH,KAAK,EACL,SAAS,EAAE,aAAa,EACxB,eAAe,EAAE,mBAAmB,EACpC,mBAAmB,EACnB,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,cAAsB,EAClC,SAAiB,EACjB,IAAI,EACJ,UAAkB,EAClB,WAAW,EACX,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,SAAS,EAAE,UAAU,EACrB,KAAK,EACL,GAAG,KAAK,EACT,EAAE,iBAAiB,GAAG,SAAS,CAyG/B;yBA5He,YAAY"}
@@ -17,7 +17,7 @@
17
17
  * SYNC: When modified, update these files to stay in sync:
18
18
  * - /packages/core/src/ToggleButton/index.ts (exports if types change)
19
19
  * - /apps/storybook/stories/ToggleButton.stories.tsx
20
- * - /packages/cli/templates/blocks/components/ToggleButton/ (showcase blocks)
20
+ * - /packages/cli/assets/templates/blocks/components/ToggleButton/ (showcase blocks)
21
21
  */
22
22
  import React, { useOptimistic } from 'react';
23
23
  import * as stylex from '@stylexjs/stylex';
@@ -39,7 +39,9 @@ import { themeProps } from "../utils/themeProps.js";
39
39
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
40
40
  const pressedStyles = {
41
41
  background: {
42
- kWkggS: "xi89dp7",
42
+ kAXs8y: "x1kzknox",
43
+ kWkggS: "xi89dp7 x1jzqe4",
44
+ kMwMTN: "x1k5gbb1",
43
45
  $$css: true
44
46
  }
45
47
  };
@@ -11,7 +11,7 @@
11
11
  * SYNC: When modified, update these files to stay in sync:
12
12
  * - /packages/core/src/ToggleButton/index.ts
13
13
  * - /apps/storybook/stories/ToggleButton.stories.tsx
14
- * - /packages/cli/templates/blocks/components/ToggleButton/ (showcase blocks)
14
+ * - /packages/cli/assets/templates/blocks/components/ToggleButton/ (showcase blocks)
15
15
  */
16
16
  import { type ReactNode } from 'react';
17
17
  import type { ButtonSize } from '../Button';
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleButtonGroup.d.ts","sourceRoot":"","sources":["../../src/ToggleButton/ToggleButtonGroup.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAA2C,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAG/E,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAOnD,UAAU,6BAA6B;IACrC,mCAAmC;IACnC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,6BAA6B;IAC7B,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,4DAA4D;IAC5D,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,6BAA6B,GAAG,IAAI,CAE3E;AAsBD,UAAU,0BAA0B;IAClC,8BAA8B;IAC9B,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IAExC;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA6B,SAAQ,0BAA0B;IAC9E;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB,qCAAqC;IACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,8BAA+B,SAAQ,0BAA0B;IAChF,+BAA+B;IAC/B,IAAI,EAAE,UAAU,CAAC;IAEjB,iCAAiC;IACjC,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB,qCAAqC;IACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACrC;AAED,8DAA8D;AAC9D,MAAM,MAAM,sBAAsB,GAC9B,4BAA4B,GAC5B,8BAA8B,CAAC;AAMnC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,sBAAsB,GAC5B,SAAS,CAgEX;yBAlEe,iBAAiB"}
1
+ {"version":3,"file":"ToggleButtonGroup.d.ts","sourceRoot":"","sources":["../../src/ToggleButton/ToggleButtonGroup.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAA2C,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAG/E,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAOnD,UAAU,6BAA6B;IACrC,mCAAmC;IACnC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,6BAA6B;IAC7B,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,4DAA4D;IAC5D,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,6BAA6B,GAAG,IAAI,CAE3E;AAsBD,UAAU,0BAA0B;IAClC,8BAA8B;IAC9B,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IAExC;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA6B,SAAQ,0BAA0B;IAC9E;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB,qCAAqC;IACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,8BAA+B,SAAQ,0BAA0B;IAChF,+BAA+B;IAC/B,IAAI,EAAE,UAAU,CAAC;IAEjB,iCAAiC;IACjC,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB,qCAAqC;IACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACrC;AAED,8DAA8D;AAC9D,MAAM,MAAM,sBAAsB,GAChC,4BAA4B,GAAG,8BAA8B,CAAC;AAMhE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,SAAS,CAgE1E;yBAhEe,iBAAiB"}
@@ -15,7 +15,7 @@
15
15
  * SYNC: When modified, update these files to stay in sync:
16
16
  * - /packages/core/src/ToggleButton/index.ts
17
17
  * - /apps/storybook/stories/ToggleButton.stories.tsx
18
- * - /packages/cli/templates/blocks/components/ToggleButton/ (showcase blocks)
18
+ * - /packages/cli/assets/templates/blocks/components/ToggleButton/ (showcase blocks)
19
19
  */
20
20
  import { createContext, useCallback, use, useMemo } from 'react';
21
21
  import * as stylex from '@stylexjs/stylex';
@@ -1,22 +1,25 @@
1
1
  /**
2
2
  * @file Token.tsx
3
3
  * @input Uses React, ReactNode, StyleXStyles
4
- * @output Exports Token component, TokenProps, TokenColor types
4
+ * @output Exports Token component, TokenProps, TokenColor, TokenColorMap types
5
5
  * @position Core implementation; consumed by index.ts, tested by Token.test.tsx
6
6
  *
7
7
  * SYNC: When modified, update these files to stay in sync:
8
+ * - /packages/core/src/Token/TokenLink.tsx (interactive wrapper for href+onRemove)
8
9
  * - /packages/core/src/Token/Token.doc.mjs (props table, features, implementation notes)
9
10
  * - /packages/core/src/Token/Token.test.tsx (tests for new/changed behavior)
10
11
  * - /packages/core/src/Token/index.ts (exports if types change)
11
12
  * - /apps/storybook/stories/Token.stories.tsx (storybook stories)
12
- * - /packages/cli/templates/blocks/components/Token/ (showcase blocks)
13
+ * - /packages/cli/assets/templates/blocks/components/Token/ (showcase blocks)
13
14
  */
14
15
  import type { ReactNode } from 'react';
15
16
  import type { BaseProps } from '../BaseProps';
17
+ import type { TokenColorMap } from './index';
16
18
  /**
17
- * Available color variants for the token.
19
+ * Token color type derived from TokenColorMap.
20
+ * Extensible via module augmentation of TokenColorMap.
18
21
  */
19
- export type TokenColor = 'default' | 'red' | 'orange' | 'yellow' | 'green' | 'teal' | 'cyan' | 'blue' | 'purple' | 'pink' | 'gray';
22
+ export type TokenColor = keyof TokenColorMap;
20
23
  export type TokenSize = 'sm' | 'md' | 'lg';
21
24
  export interface TokenProps extends BaseProps<HTMLElement> {
22
25
  /** Ref forwarded to the root element */
@@ -79,7 +82,9 @@ export interface TokenProps extends BaseProps<HTMLElement> {
79
82
  * `<span>` container with an invisible `<button>` when `onClick` is provided.
80
83
  * The invisible button pattern provides real button semantics for accessibility
81
84
  * while the container uses `:focus-within` to show focus outlines around the
82
- * entire token.
85
+ * entire token. When both `href` and `onRemove` are provided, the same
86
+ * container pattern is used with an invisible `<a>` so the remove `<button>`
87
+ * renders as a sibling of the link rather than nested inside it.
83
88
  *
84
89
  * @example
85
90
  * ```
@@ -1 +1 @@
1
- {"version":3,"file":"Token.d.ts","sourceRoot":"","sources":["../../src/Token/Token.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAgBrC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAQ5C;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,GACN,QAAQ,GACR,MAAM,GACN,MAAM,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C,MAAM,WAAW,UAAW,SAAQ,SAAS,CAAC,WAAW,CAAC;IACxD,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACzC;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAkLD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,IAAW,EACX,KAAiB,EACjB,IAAI,EACJ,UAAkB,EAClB,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,WAAW,EACX,UAAU,EACV,aAAqB,EACrB,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,GACJ,EAAE,UAAU,+BA+IZ;yBAhKe,KAAK"}
1
+ {"version":3,"file":"Token.d.ts","sourceRoot":"","sources":["../../src/Token/Token.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAiBrC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAM3C;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C,MAAM,WAAW,UAAW,SAAQ,SAAS,CAAC,WAAW,CAAC;IACxD,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACzC;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAkLD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,IAAW,EACX,KAAiB,EACjB,IAAI,EACJ,UAAkB,EAClB,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,WAAW,EACX,UAAU,EACV,aAAqB,EACrB,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,GACJ,EAAE,UAAU,+BAmLZ;yBApMe,KAAK"}
@@ -5,15 +5,16 @@
5
5
  /**
6
6
  * @file Token.tsx
7
7
  * @input Uses React, ReactNode, StyleXStyles
8
- * @output Exports Token component, TokenProps, TokenColor types
8
+ * @output Exports Token component, TokenProps, TokenColor, TokenColorMap types
9
9
  * @position Core implementation; consumed by index.ts, tested by Token.test.tsx
10
10
  *
11
11
  * SYNC: When modified, update these files to stay in sync:
12
+ * - /packages/core/src/Token/TokenLink.tsx (interactive wrapper for href+onRemove)
12
13
  * - /packages/core/src/Token/Token.doc.mjs (props table, features, implementation notes)
13
14
  * - /packages/core/src/Token/Token.test.tsx (tests for new/changed behavior)
14
15
  * - /packages/core/src/Token/index.ts (exports if types change)
15
16
  * - /apps/storybook/stories/Token.stories.tsx (storybook stories)
16
- * - /packages/cli/templates/blocks/components/Token/ (showcase blocks)
17
+ * - /packages/cli/assets/templates/blocks/components/Token/ (showcase blocks)
17
18
  */
18
19
  import * as stylex from '@stylexjs/stylex';
19
20
  import "../theme/tokens.stylex.js";
@@ -22,6 +23,7 @@ import { Icon } from "../Icon/index.js";
22
23
  import { mergeProps } from "../utils/index.js";
23
24
  import { useLinkComponent } from "../Link/useLinkComponent.js";
24
25
  import { useInteractiveRole } from "../hooks/useInteractiveRole.js";
26
+ import { TokenLink } from "./TokenLink.js";
25
27
  import { themeProps } from "../utils/themeProps.js";
26
28
  import { useTranslator } from "../i18n/index.js";
27
29
 
@@ -30,7 +32,8 @@ import { useTranslator } from "../i18n/index.js";
30
32
  // =============================================================================
31
33
 
32
34
  /**
33
- * Available color variants for the token.
35
+ * Token color type derived from TokenColorMap.
36
+ * Extensible via module augmentation of TokenColorMap.
34
37
  */
35
38
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
36
39
  // =============================================================================
@@ -165,7 +168,9 @@ const colorStyles = {
165
168
  * `<span>` container with an invisible `<button>` when `onClick` is provided.
166
169
  * The invisible button pattern provides real button semantics for accessibility
167
170
  * while the container uses `:focus-within` to show focus outlines around the
168
- * entire token.
171
+ * entire token. When both `href` and `onRemove` are provided, the same
172
+ * container pattern is used with an invisible `<a>` so the remove `<button>`
173
+ * renders as a sibling of the link rather than nested inside it.
169
174
  *
170
175
  * @example
171
176
  * ```
@@ -205,6 +210,25 @@ export function Token({
205
210
  // When role is 'button' via context (no explicit onClick), treat as
206
211
  // if onClick was provided — the popover attaches its own handler.
207
212
  const effectiveOnClick = onClick ?? (role === 'button' ? () => {} : null);
213
+ const removeButton = onRemove != null && /*#__PURE__*/_jsx("button", {
214
+ type: "button",
215
+ "aria-label": t('@astryx.token.remove', {
216
+ label
217
+ }),
218
+ onClick: e => {
219
+ e.stopPropagation();
220
+ onRemove(e);
221
+ },
222
+ disabled: isDisabled,
223
+ ...{
224
+ className: "x3nfvp2 x6s0dn4 xl56j7k x1n2onr6 x1717udv xkd40ry x1ypdohk xjspbzw x1kky2od xlup9mm x1heor9g x17nn4n9 x1s928wv x1j6awrg x1xsm0q9"
225
+ },
226
+ children: /*#__PURE__*/_jsx(Icon, {
227
+ icon: "close",
228
+ size: "xsm",
229
+ color: "inherit"
230
+ })
231
+ });
208
232
  const content = /*#__PURE__*/_jsxs(_Fragment, {
209
233
  children: [icon, /*#__PURE__*/_jsx("span", {
210
234
  ...{
@@ -216,25 +240,7 @@ export function Token({
216
240
  }
217
241
  }[!!isLabelHidden << 0],
218
242
  children: label
219
- }), endContent, onRemove != null && /*#__PURE__*/_jsx("button", {
220
- type: "button",
221
- "aria-label": t('@astryx.token.remove', {
222
- label
223
- }),
224
- onClick: e => {
225
- e.stopPropagation();
226
- onRemove(e);
227
- },
228
- disabled: isDisabled,
229
- ...{
230
- className: "x3nfvp2 x6s0dn4 xl56j7k x1n2onr6 x1717udv xkd40ry x1ypdohk xjspbzw x1kky2od xlup9mm x1heor9g x17nn4n9 x1s928wv x1j6awrg x1xsm0q9"
231
- },
232
- children: /*#__PURE__*/_jsx(Icon, {
233
- icon: "close",
234
- size: "xsm",
235
- color: "inherit"
236
- })
237
- })]
243
+ }), endContent, removeButton]
238
244
  });
239
245
  const sharedProps = {
240
246
  'data-testid': testId,
@@ -242,16 +248,54 @@ export function Token({
242
248
  'aria-description': description
243
249
  };
244
250
  if (role === 'link') {
245
- return /*#__PURE__*/_jsx(LinkComponent, {
251
+ if (onRemove == null) {
252
+ return /*#__PURE__*/_jsx(LinkComponent, {
253
+ ref: ref,
254
+ href: href,
255
+ "aria-disabled": isDisabled || undefined,
256
+ ...sharedProps,
257
+ ...mergeProps(themeProps('token', {
258
+ color,
259
+ size
260
+ }), stylex.props(styles.base, sizeStyles[size], colorStyles[color], styles.interactive, isDisabled && styles.disabled, xstyle), className, style),
261
+ children: content
262
+ });
263
+ }
264
+
265
+ // With a remove button, the link cannot be the root — nesting a <button>
266
+ // inside an <a> is invalid HTML (WCAG 4.1.2). Delegate to TokenLink, a
267
+ // non-presentational wrapper that renders a <span> container with the link
268
+ // and the remove button as siblings and wires up useClickableContainer so
269
+ // the whole token surface activates the link (including middle-click and
270
+ // cmd/ctrl-click to open in a new tab). Token itself stays presentational
271
+ // (no refs/effects) per the @astryx/presentational-component rule.
272
+ return /*#__PURE__*/_jsx(TokenLink, {
246
273
  ref: ref,
247
274
  href: href,
248
- "aria-disabled": isDisabled || undefined,
275
+ isDisabled: isDisabled,
276
+ LinkComponent: LinkComponent,
277
+ icon: icon,
278
+ endContent: endContent,
279
+ removeButton: removeButton,
280
+ linkStyleProps: {
281
+ className: "xmper1u xln7xf2 x1heor9g x1a2a7pz xb3r6kr xeuugli"
282
+ },
283
+ labelContent: /*#__PURE__*/_jsx("span", {
284
+ ...{
285
+ 0: {
286
+ className: "xb3r6kr xlyipyv xuxw1ft xeuugli"
287
+ },
288
+ 1: {
289
+ className: "xlyipyv xeuugli x10l6tqk x1i1rx1s xjm9jq1 x1717udv xkdpibf xb3r6kr x1hyvwdk xuxw1ft xc342km"
290
+ }
291
+ }[!!isLabelHidden << 0],
292
+ children: label
293
+ }),
249
294
  ...sharedProps,
250
295
  ...mergeProps(themeProps('token', {
251
296
  color,
252
297
  size
253
- }), stylex.props(styles.base, sizeStyles[size], colorStyles[color], styles.interactive, isDisabled && styles.disabled, xstyle), className, style),
254
- children: content
298
+ }), stylex.props(styles.base, sizeStyles[size], colorStyles[color], styles.interactive, styles.focusVisibleOutline, isDisabled && styles.disabled, xstyle), className, style)
255
299
  });
256
300
  }
257
301
  if (effectiveOnClick != null) {
@@ -288,25 +332,7 @@ export function Token({
288
332
  }[!!isLabelHidden << 0],
289
333
  children: label
290
334
  })
291
- }), endContent, onRemove != null && /*#__PURE__*/_jsx("button", {
292
- type: "button",
293
- "aria-label": t('@astryx.token.remove', {
294
- label
295
- }),
296
- onClick: e => {
297
- e.stopPropagation();
298
- onRemove(e);
299
- },
300
- disabled: isDisabled,
301
- ...{
302
- className: "x3nfvp2 x6s0dn4 xl56j7k x1n2onr6 x1717udv xkd40ry x1ypdohk xjspbzw x1kky2od xlup9mm x1heor9g x17nn4n9 x1s928wv x1j6awrg x1xsm0q9"
303
- },
304
- children: /*#__PURE__*/_jsx(Icon, {
305
- icon: "close",
306
- size: "xsm",
307
- color: "inherit"
308
- })
309
- })]
335
+ }), endContent, removeButton]
310
336
  });
311
337
  }
312
338
  return /*#__PURE__*/_jsx("span", {
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @file TokenLink.tsx
3
+ * @input Rendered token pieces (icon, label, endContent, remove button) plus
4
+ * container/link styling props and the resolved LinkComponent
5
+ * @output Exports TokenLink, the interactive container for the href+onRemove Token variant
6
+ * @position Internal to Token; keeps Token.tsx presentational
7
+ *
8
+ * Token is a presentational component (see
9
+ * /internal/eslint-plugin-astryx/presentational-component.js) and must not use
10
+ * refs or effects. When a Token has both `href` and `onRemove`, the remove
11
+ * <button> must be a sibling of the link (nesting a button inside an anchor is
12
+ * invalid HTML — WCAG 4.1.2), so the surface becomes a clickable container that
13
+ * delegates to an inner link. That delegation needs refs, so it lives here.
14
+ *
15
+ * useClickableContainer gives the container middle-click and cmd/ctrl-click
16
+ * open-in-new-tab behavior for the link, ignores clicks on nested interactive
17
+ * elements (the remove button), and skips activation during text selection.
18
+ *
19
+ * SYNC: When modified, update these files to stay in sync:
20
+ * - /packages/core/src/Token/Token.tsx (renders TokenLink for the href+onRemove case)
21
+ * - /packages/core/src/Token/Token.test.tsx (tests for delegated behavior)
22
+ */
23
+ import type { ReactNode, CSSProperties, Ref, HTMLAttributes } from 'react';
24
+ import type { LinkComponentType } from '../Link/types';
25
+ export interface TokenLinkProps extends HTMLAttributes<HTMLElement> {
26
+ /** Ref forwarded to the container element. */
27
+ ref?: Ref<HTMLElement>;
28
+ /** Link URL. */
29
+ href: string;
30
+ /** Whether the token is disabled. */
31
+ isDisabled: boolean;
32
+ /** Resolved link component (native `<a>` or a router link). */
33
+ LinkComponent: LinkComponentType;
34
+ /** `stylex.props()` output applied to the invisible inner link. */
35
+ linkStyleProps: {
36
+ className?: string;
37
+ style?: CSSProperties;
38
+ };
39
+ /** Visible (or visually hidden) label node rendered inside the link. */
40
+ labelContent: ReactNode;
41
+ /** Optional leading icon. */
42
+ icon?: ReactNode;
43
+ /** Content rendered after the label, before the remove button. */
44
+ endContent?: ReactNode;
45
+ /** The remove button node, rendered as a sibling of the link. */
46
+ removeButton: ReactNode;
47
+ /** Allow data-* attributes (e.g. data-testid, theme targets) on the container. */
48
+ [dataAttr: `data-${string}`]: unknown;
49
+ }
50
+ /**
51
+ * Interactive container for a Token that is both a link and removable.
52
+ *
53
+ * Renders a `<span>` wrapping an invisible inner link and the remove button as
54
+ * siblings. useClickableContainer delegates clicks on the surface to the link
55
+ * (including middle-click / cmd+click to open in a new tab) while the remove
56
+ * button keeps handling its own clicks.
57
+ */
58
+ export declare function TokenLink({ ref, href, isDisabled, LinkComponent, linkStyleProps, labelContent, icon, endContent, removeButton, ...containerProps }: TokenLinkProps): import("react").JSX.Element;
59
+ export declare namespace TokenLink {
60
+ var displayName: string;
61
+ }
62
+ //# sourceMappingURL=TokenLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenLink.d.ts","sourceRoot":"","sources":["../../src/Token/TokenLink.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,EAAC,MAAM,OAAO,CAAC;AAIzE,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAErD,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,WAAW,CAAC;IACjE,8CAA8C;IAC9C,GAAG,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IACvB,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,+DAA+D;IAC/D,aAAa,EAAE,iBAAiB,CAAC;IACjC,mEAAmE;IACnE,cAAc,EAAE;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,aAAa,CAAA;KAAC,CAAC;IAC5D,wEAAwE;IACxE,YAAY,EAAE,SAAS,CAAC;IACxB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,kEAAkE;IAClE,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,iEAAiE;IACjE,YAAY,EAAE,SAAS,CAAC;IACxB,kFAAkF;IAClF,CAAC,QAAQ,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CACvC;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,EACxB,GAAG,EACH,IAAI,EACJ,UAAU,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,GAAG,cAAc,EAClB,EAAE,cAAc,+BA6BhB;yBAxCe,SAAS"}