@astryxdesign/core 0.2.0 → 0.3.0-canary.5f9896c

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 (1084) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/README.md +5 -3
  3. package/dist/AlertDialog/AlertDialog.d.ts +1 -1
  4. package/dist/AlertDialog/AlertDialog.js +1 -1
  5. package/dist/AppShell/AppShell.d.ts +2 -20
  6. package/dist/AppShell/AppShell.d.ts.map +1 -1
  7. package/dist/AppShell/AppShell.js +25 -18
  8. package/dist/AppShell/index.d.ts +20 -1
  9. package/dist/AppShell/index.d.ts.map +1 -1
  10. package/dist/AppShell/index.js +14 -0
  11. package/dist/AspectRatio/AspectRatio.d.ts +1 -1
  12. package/dist/AspectRatio/AspectRatio.js +1 -1
  13. package/dist/Avatar/Avatar.d.ts +1 -1
  14. package/dist/Avatar/Avatar.d.ts.map +1 -1
  15. package/dist/Avatar/Avatar.js +4 -4
  16. package/dist/Avatar/AvatarStatusDot.d.ts +2 -26
  17. package/dist/Avatar/AvatarStatusDot.d.ts.map +1 -1
  18. package/dist/Avatar/AvatarStatusDot.js +1 -22
  19. package/dist/Avatar/index.d.ts +26 -1
  20. package/dist/Avatar/index.d.ts.map +1 -1
  21. package/dist/Avatar/index.js +21 -0
  22. package/dist/AvatarGroup/AvatarGroup.d.ts +1 -1
  23. package/dist/AvatarGroup/AvatarGroup.d.ts.map +1 -1
  24. package/dist/AvatarGroup/AvatarGroup.js +4 -8
  25. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts +2 -2
  26. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
  27. package/dist/AvatarGroup/AvatarGroupOverflow.js +7 -3
  28. package/dist/Badge/Badge.d.ts +2 -30
  29. package/dist/Badge/Badge.d.ts.map +1 -1
  30. package/dist/Badge/Badge.js +2 -17
  31. package/dist/Badge/index.d.ts +31 -2
  32. package/dist/Badge/index.d.ts.map +1 -1
  33. package/dist/Badge/index.js +15 -1
  34. package/dist/Banner/Banner.d.ts +2 -37
  35. package/dist/Banner/Banner.d.ts.map +1 -1
  36. package/dist/Banner/Banner.js +6 -34
  37. package/dist/Banner/index.d.ts +37 -1
  38. package/dist/Banner/index.d.ts.map +1 -1
  39. package/dist/Banner/index.js +27 -0
  40. package/dist/Blockquote/Blockquote.d.ts +1 -1
  41. package/dist/Blockquote/Blockquote.js +1 -1
  42. package/dist/Breadcrumbs/BreadcrumbItem.d.ts +1 -1
  43. package/dist/Breadcrumbs/BreadcrumbItem.js +4 -3
  44. package/dist/Breadcrumbs/Breadcrumbs.d.ts +2 -18
  45. package/dist/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  46. package/dist/Breadcrumbs/Breadcrumbs.js +1 -15
  47. package/dist/Breadcrumbs/index.d.ts +18 -1
  48. package/dist/Breadcrumbs/index.d.ts.map +1 -1
  49. package/dist/Breadcrumbs/index.js +14 -0
  50. package/dist/Button/Button.d.ts +3 -21
  51. package/dist/Button/Button.d.ts.map +1 -1
  52. package/dist/Button/Button.js +6 -19
  53. package/dist/Button/index.d.ts +21 -3
  54. package/dist/Button/index.d.ts.map +1 -1
  55. package/dist/Button/index.js +15 -1
  56. package/dist/ButtonGroup/ButtonGroup.d.ts +1 -1
  57. package/dist/ButtonGroup/ButtonGroup.js +1 -1
  58. package/dist/Calendar/Calendar.js +1 -1
  59. package/dist/Calendar/index.d.ts +1 -1
  60. package/dist/Calendar/index.d.ts.map +1 -1
  61. package/dist/Calendar/index.js +1 -1
  62. package/dist/Calendar/styles.d.ts +2 -2
  63. package/dist/Calendar/styles.js +2 -2
  64. package/dist/Calendar/utils.d.ts +0 -4
  65. package/dist/Calendar/utils.d.ts.map +1 -1
  66. package/dist/Calendar/utils.js +1 -8
  67. package/dist/Card/Card.d.ts +1 -1
  68. package/dist/Card/Card.js +1 -1
  69. package/dist/Carousel/Carousel.d.ts +54 -3
  70. package/dist/Carousel/Carousel.d.ts.map +1 -1
  71. package/dist/Carousel/Carousel.js +82 -15
  72. package/dist/Carousel/index.d.ts +1 -1
  73. package/dist/Carousel/index.d.ts.map +1 -1
  74. package/dist/Center/Center.d.ts +21 -4
  75. package/dist/Center/Center.d.ts.map +1 -1
  76. package/dist/Center/Center.js +11 -3
  77. package/dist/Chat/ChatComposer.d.ts +1 -1
  78. package/dist/Chat/ChatComposer.js +9 -9
  79. package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
  80. package/dist/Chat/ChatComposerDrawer.js +5 -5
  81. package/dist/Chat/ChatComposerInput.d.ts +1 -1
  82. package/dist/Chat/ChatComposerInput.js +1 -1
  83. package/dist/Chat/ChatDictationButton.d.ts +1 -1
  84. package/dist/Chat/ChatDictationButton.js +1 -1
  85. package/dist/Chat/ChatLayout.d.ts +8 -1
  86. package/dist/Chat/ChatLayout.d.ts.map +1 -1
  87. package/dist/Chat/ChatLayout.js +15 -4
  88. package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
  89. package/dist/Chat/ChatLayoutScrollButton.js +1 -1
  90. package/dist/Chat/ChatMessage.d.ts +1 -1
  91. package/dist/Chat/ChatMessage.js +1 -1
  92. package/dist/Chat/ChatMessageBubble.d.ts +1 -1
  93. package/dist/Chat/ChatMessageBubble.js +1 -1
  94. package/dist/Chat/ChatMessageList.d.ts +1 -1
  95. package/dist/Chat/ChatMessageList.js +1 -1
  96. package/dist/Chat/ChatSendButton.d.ts.map +1 -1
  97. package/dist/Chat/ChatSendButton.js +4 -2
  98. package/dist/Chat/ChatSystemMessage.d.ts +1 -1
  99. package/dist/Chat/ChatSystemMessage.js +1 -1
  100. package/dist/Chat/ChatTokenizedText.d.ts +1 -1
  101. package/dist/Chat/ChatTokenizedText.js +1 -1
  102. package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
  103. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  104. package/dist/CheckboxInput/CheckboxInput.js +3 -3
  105. package/dist/CheckboxList/CheckboxList.d.ts +1 -1
  106. package/dist/CheckboxList/CheckboxList.js +1 -1
  107. package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
  108. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  109. package/dist/CheckboxList/CheckboxListItem.js +20 -5
  110. package/dist/Citation/Citation.d.ts +1 -1
  111. package/dist/Citation/Citation.js +1 -1
  112. package/dist/ClickableCard/ClickableCard.d.ts +3 -3
  113. package/dist/ClickableCard/ClickableCard.js +3 -3
  114. package/dist/Code/Code.d.ts +2 -2
  115. package/dist/Code/Code.js +2 -2
  116. package/dist/CodeBlock/CodeBlock.js +2 -2
  117. package/dist/Collapsible/Collapsible.d.ts +1 -1
  118. package/dist/Collapsible/Collapsible.js +3 -3
  119. package/dist/Collapsible/CollapsibleGroup.d.ts +1 -1
  120. package/dist/Collapsible/CollapsibleGroup.js +1 -1
  121. package/dist/Collapsible/CollapsibleGroupContext.js +1 -1
  122. package/dist/CommandPalette/CommandPalette.d.ts +1 -1
  123. package/dist/CommandPalette/CommandPalette.js +1 -1
  124. package/dist/CommandPalette/CommandPaletteEmpty.js +1 -1
  125. package/dist/CommandPalette/CommandPaletteFooter.js +1 -1
  126. package/dist/CommandPalette/CommandPaletteGroup.js +1 -1
  127. package/dist/CommandPalette/CommandPaletteInput.d.ts +2 -2
  128. package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
  129. package/dist/CommandPalette/CommandPaletteInput.js +4 -2
  130. package/dist/CommandPalette/CommandPaletteItem.d.ts +1 -1
  131. package/dist/CommandPalette/CommandPaletteItem.js +1 -1
  132. package/dist/CommandPalette/CommandPaletteList.js +1 -1
  133. package/dist/ComplexSelector/ComplexSelector.d.ts +108 -0
  134. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -0
  135. package/dist/ComplexSelector/ComplexSelector.js +316 -0
  136. package/dist/ComplexSelector/index.d.ts +7 -0
  137. package/dist/ComplexSelector/index.d.ts.map +1 -0
  138. package/dist/ComplexSelector/index.js +10 -0
  139. package/dist/ContextMenu/ContextMenu.d.ts +2 -2
  140. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  141. package/dist/ContextMenu/ContextMenu.js +24 -6
  142. package/dist/DateInput/DateInput.js +1 -1
  143. package/dist/DateRangeInput/DateRangeInput.js +1 -1
  144. package/dist/DateTimeInput/DateTimeInput.js +1 -1
  145. package/dist/Dialog/Dialog.d.ts +33 -24
  146. package/dist/Dialog/Dialog.d.ts.map +1 -1
  147. package/dist/Dialog/Dialog.js +47 -31
  148. package/dist/Dialog/DialogHeader.d.ts +1 -1
  149. package/dist/Dialog/DialogHeader.js +1 -1
  150. package/dist/Dialog/index.d.ts +18 -1
  151. package/dist/Dialog/index.d.ts.map +1 -1
  152. package/dist/Dialog/index.js +14 -0
  153. package/dist/Divider/Divider.d.ts +2 -18
  154. package/dist/Divider/Divider.d.ts.map +1 -1
  155. package/dist/Divider/Divider.js +1 -15
  156. package/dist/Divider/index.d.ts +18 -1
  157. package/dist/Divider/index.d.ts.map +1 -1
  158. package/dist/Divider/index.js +14 -0
  159. package/dist/DropdownMenu/DropdownMenu.d.ts +9 -3
  160. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  161. package/dist/DropdownMenu/DropdownMenu.js +23 -19
  162. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +18 -12
  163. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  164. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +38 -63
  165. package/dist/DropdownMenu/DropdownMenuItem.d.ts +1 -1
  166. package/dist/DropdownMenu/DropdownMenuItem.js +1 -1
  167. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts +8 -11
  168. package/dist/DropdownMenu/DropdownMenuRadioGroup.d.ts.map +1 -1
  169. package/dist/DropdownMenu/DropdownMenuRadioGroup.js +3 -1
  170. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +1 -1
  171. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  172. package/dist/DropdownMenu/DropdownMenuRadioItem.js +6 -2
  173. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts +1 -1
  174. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  175. package/dist/DropdownMenu/DropdownMenuSubMenu.js +14 -6
  176. package/dist/DropdownMenu/menuItemHover.d.ts +1 -0
  177. package/dist/DropdownMenu/menuItemHover.d.ts.map +1 -1
  178. package/dist/DropdownMenu/menuItemHover.js +1 -0
  179. package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
  180. package/dist/DropdownMenu/renderDropdownItems.js +6 -4
  181. package/dist/EmptyState/EmptyState.d.ts +1 -1
  182. package/dist/EmptyState/EmptyState.js +1 -1
  183. package/dist/Field/Field.d.ts +1 -1
  184. package/dist/Field/Field.js +1 -1
  185. package/dist/Field/FieldLabel.d.ts +4 -3
  186. package/dist/Field/FieldLabel.d.ts.map +1 -1
  187. package/dist/Field/FieldLabel.js +48 -5
  188. package/dist/FieldStatus/FieldStatus.d.ts +1 -18
  189. package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
  190. package/dist/FieldStatus/FieldStatus.js +13 -17
  191. package/dist/FieldStatus/index.d.ts +19 -1
  192. package/dist/FieldStatus/index.d.ts.map +1 -1
  193. package/dist/FieldStatus/index.js +14 -0
  194. package/dist/FileInput/FileInput.js +1 -1
  195. package/dist/FormLayout/FormLayout.d.ts +1 -1
  196. package/dist/FormLayout/FormLayout.d.ts.map +1 -1
  197. package/dist/FormLayout/FormLayout.js +1 -1
  198. package/dist/Grid/Grid.d.ts +2 -10
  199. package/dist/Grid/Grid.d.ts.map +1 -1
  200. package/dist/Grid/Grid.js +1 -10
  201. package/dist/Grid/GridSpan.d.ts +1 -1
  202. package/dist/Grid/GridSpan.js +1 -1
  203. package/dist/HStack/HStack.d.ts +1 -1
  204. package/dist/HStack/HStack.js +1 -1
  205. package/dist/Heading/Heading.d.ts +2 -2
  206. package/dist/Heading/Heading.d.ts.map +1 -1
  207. package/dist/Heading/Heading.js +5 -4
  208. package/dist/HoverCard/HoverCard.d.ts +1 -1
  209. package/dist/HoverCard/HoverCard.js +1 -1
  210. package/dist/Icon/Icon.d.ts +1 -1
  211. package/dist/Icon/Icon.d.ts.map +1 -1
  212. package/dist/Icon/Icon.js +4 -2
  213. package/dist/Icon/defaultIcons.d.ts.map +1 -1
  214. package/dist/Icon/defaultIcons.js +14 -0
  215. package/dist/Icon/globalIconRegistry.d.ts +48 -6
  216. package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
  217. package/dist/Icon/globalIconRegistry.js +74 -7
  218. package/dist/Icon/index.d.ts +4 -3
  219. package/dist/Icon/index.d.ts.map +1 -1
  220. package/dist/Icon/index.js +2 -1
  221. package/dist/Icon/useIcon.d.ts +14 -0
  222. package/dist/Icon/useIcon.d.ts.map +1 -0
  223. package/dist/Icon/useIcon.js +21 -0
  224. package/dist/IconButton/IconButton.d.ts +1 -1
  225. package/dist/IconButton/IconButton.js +1 -1
  226. package/dist/InputGroup/InputGroup.d.ts +1 -1
  227. package/dist/InputGroup/InputGroup.js +1 -1
  228. package/dist/InputGroup/InputGroupText.d.ts +1 -1
  229. package/dist/InputGroup/InputGroupText.js +1 -1
  230. package/dist/Item/Item.d.ts +17 -4
  231. package/dist/Item/Item.d.ts.map +1 -1
  232. package/dist/Item/Item.js +32 -7
  233. package/dist/Kbd/Kbd.d.ts +1 -1
  234. package/dist/Kbd/Kbd.js +1 -1
  235. package/dist/Layout/Layout.d.ts +1 -1
  236. package/dist/Layout/Layout.js +1 -1
  237. package/dist/Layout/LayoutContent.d.ts +1 -1
  238. package/dist/Layout/LayoutContent.js +1 -1
  239. package/dist/Layout/LayoutFooter.d.ts +1 -1
  240. package/dist/Layout/LayoutFooter.js +1 -1
  241. package/dist/Layout/LayoutHeader.d.ts +1 -1
  242. package/dist/Layout/LayoutHeader.js +1 -1
  243. package/dist/Layout/LayoutPanel.d.ts +1 -1
  244. package/dist/Layout/LayoutPanel.js +1 -1
  245. package/dist/Lightbox/Lightbox.d.ts +6 -4
  246. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  247. package/dist/Lightbox/Lightbox.js +117 -26
  248. package/dist/Link/Link.d.ts +1 -1
  249. package/dist/Link/Link.js +1 -1
  250. package/dist/Link/LinkProvider.d.ts +2 -2
  251. package/dist/Link/LinkProvider.js +2 -2
  252. package/dist/List/List.d.ts +1 -1
  253. package/dist/List/List.js +1 -1
  254. package/dist/List/ListItem.d.ts +12 -2
  255. package/dist/List/ListItem.d.ts.map +1 -1
  256. package/dist/List/ListItem.js +3 -1
  257. package/dist/Markdown/Markdown.d.ts.map +1 -1
  258. package/dist/Markdown/Markdown.js +35 -13
  259. package/dist/MetadataList/MetadataList.d.ts +2 -2
  260. package/dist/MetadataList/MetadataList.d.ts.map +1 -1
  261. package/dist/MetadataList/MetadataList.js +38 -12
  262. package/dist/MetadataList/MetadataListItem.d.ts +1 -1
  263. package/dist/MetadataList/MetadataListItem.js +1 -1
  264. package/dist/MobileNav/MobileNav.d.ts +1 -1
  265. package/dist/MobileNav/MobileNav.js +1 -1
  266. package/dist/MoreMenu/MoreMenu.d.ts +1 -1
  267. package/dist/MoreMenu/MoreMenu.js +3 -3
  268. package/dist/MultiSelector/MultiSelector.d.ts +13 -4
  269. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  270. package/dist/MultiSelector/MultiSelector.js +118 -24
  271. package/dist/NavIcon/NavIcon.d.ts +1 -1
  272. package/dist/NavIcon/NavIcon.js +1 -1
  273. package/dist/NavMenu/index.d.ts +0 -2
  274. package/dist/NavMenu/index.d.ts.map +1 -1
  275. package/dist/NavMenu/index.js +1 -3
  276. package/dist/NumberInput/NumberInput.d.ts +1 -1
  277. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  278. package/dist/NumberInput/NumberInput.js +16 -5
  279. package/dist/Outline/Outline.js +1 -1
  280. package/dist/OverflowList/OverflowList.d.ts +1 -1
  281. package/dist/OverflowList/OverflowList.js +1 -1
  282. package/dist/Pagination/Pagination.d.ts +26 -21
  283. package/dist/Pagination/Pagination.d.ts.map +1 -1
  284. package/dist/Pagination/Pagination.js +169 -41
  285. package/dist/Pagination/index.d.ts +22 -1
  286. package/dist/Pagination/index.d.ts.map +1 -1
  287. package/dist/Pagination/index.js +14 -0
  288. package/dist/Popover/Popover.d.ts +20 -3
  289. package/dist/Popover/Popover.d.ts.map +1 -1
  290. package/dist/Popover/Popover.js +5 -1
  291. package/dist/Popover/usePopover.d.ts.map +1 -1
  292. package/dist/Popover/usePopover.js +14 -3
  293. package/dist/PowerSearch/PowerSearch.d.ts +1 -1
  294. package/dist/PowerSearch/PowerSearch.js +1 -1
  295. package/dist/ProgressBar/ProgressBar.d.ts +56 -22
  296. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  297. package/dist/ProgressBar/ProgressBar.js +169 -22
  298. package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts +27 -0
  299. package/dist/ProgressBar/ProgressBarMarkTooltip.d.ts.map +1 -0
  300. package/dist/ProgressBar/ProgressBarMarkTooltip.js +35 -0
  301. package/dist/ProgressBar/index.d.ts +21 -1
  302. package/dist/ProgressBar/index.d.ts.map +1 -1
  303. package/dist/ProgressBar/index.js +14 -0
  304. package/dist/RadioList/RadioList.d.ts +1 -1
  305. package/dist/RadioList/RadioList.js +1 -1
  306. package/dist/RadioList/RadioListItem.d.ts +1 -1
  307. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  308. package/dist/RadioList/RadioListItem.js +2 -2
  309. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  310. package/dist/Resizable/ResizeHandle.js +15 -11
  311. package/dist/Section/Section.d.ts +2 -19
  312. package/dist/Section/Section.d.ts.map +1 -1
  313. package/dist/Section/Section.js +1 -15
  314. package/dist/Section/index.d.ts +19 -1
  315. package/dist/Section/index.d.ts.map +1 -1
  316. package/dist/Section/index.js +14 -0
  317. package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
  318. package/dist/SegmentedControl/SegmentedControl.js +1 -1
  319. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  320. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  321. package/dist/SegmentedControl/SegmentedControlItem.js +4 -3
  322. package/dist/SelectableCard/SelectableCard.d.ts +4 -3
  323. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  324. package/dist/SelectableCard/SelectableCard.js +15 -3
  325. package/dist/Selector/Selector.d.ts +12 -3
  326. package/dist/Selector/Selector.d.ts.map +1 -1
  327. package/dist/Selector/Selector.js +109 -21
  328. package/dist/SideNav/SideNav.d.ts +1 -1
  329. package/dist/SideNav/SideNav.js +1 -1
  330. package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
  331. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  332. package/dist/SideNav/SideNavCollapseButton.js +4 -3
  333. package/dist/SideNav/SideNavHeading.d.ts +1 -1
  334. package/dist/SideNav/SideNavHeading.d.ts.map +1 -1
  335. package/dist/SideNav/SideNavHeading.js +8 -7
  336. package/dist/SideNav/SideNavItem.d.ts +2 -2
  337. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  338. package/dist/SideNav/SideNavItem.js +6 -7
  339. package/dist/SideNav/SideNavSection.d.ts +1 -1
  340. package/dist/SideNav/SideNavSection.js +1 -1
  341. package/dist/Skeleton/Skeleton.d.ts +1 -1
  342. package/dist/Skeleton/Skeleton.d.ts.map +1 -1
  343. package/dist/Skeleton/Skeleton.js +3 -3
  344. package/dist/Slider/Slider.d.ts.map +1 -1
  345. package/dist/Slider/Slider.js +78 -68
  346. package/dist/Spinner/Spinner.d.ts +1 -1
  347. package/dist/Spinner/Spinner.js +1 -1
  348. package/dist/Stack/Stack.d.ts +1 -1
  349. package/dist/Stack/Stack.js +1 -1
  350. package/dist/Stack/StackItem.d.ts +1 -1
  351. package/dist/Stack/StackItem.js +1 -1
  352. package/dist/Stack/stack.stylex.d.ts +3 -3
  353. package/dist/StatusDot/StatusDot.d.ts +1 -20
  354. package/dist/StatusDot/StatusDot.d.ts.map +1 -1
  355. package/dist/StatusDot/StatusDot.js +2 -17
  356. package/dist/StatusDot/index.d.ts +21 -1
  357. package/dist/StatusDot/index.d.ts.map +1 -1
  358. package/dist/StatusDot/index.js +14 -0
  359. package/dist/Switch/Switch.d.ts +2 -6
  360. package/dist/Switch/Switch.d.ts.map +1 -1
  361. package/dist/Switch/Switch.js +18 -10
  362. package/dist/TabList/Tab.d.ts +1 -1
  363. package/dist/TabList/Tab.js +1 -1
  364. package/dist/TabList/TabList.d.ts +1 -1
  365. package/dist/TabList/TabList.js +1 -1
  366. package/dist/TabList/TabMenu.d.ts +1 -1
  367. package/dist/TabList/TabMenu.d.ts.map +1 -1
  368. package/dist/TabList/TabMenu.js +11 -3
  369. package/dist/Table/BaseTable.d.ts +1 -1
  370. package/dist/Table/BaseTable.d.ts.map +1 -1
  371. package/dist/Table/BaseTable.js +4 -7
  372. package/dist/Table/Table.d.ts +1 -1
  373. package/dist/Table/Table.js +1 -1
  374. package/dist/Table/TableCell.d.ts +1 -1
  375. package/dist/Table/TableCell.js +4 -2
  376. package/dist/Table/TableHeaderCell.d.ts +1 -1
  377. package/dist/Table/TableHeaderCell.js +4 -2
  378. package/dist/Table/TableRow.d.ts +1 -1
  379. package/dist/Table/TableRow.js +1 -1
  380. package/dist/Table/index.d.ts +1 -1
  381. package/dist/Table/index.d.ts.map +1 -1
  382. package/dist/Table/index.js +1 -1
  383. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts +1 -1
  384. package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +1 -1
  385. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +18 -3
  386. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  387. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +22 -4
  388. package/dist/Table/plugins/tree/useTableTreeData.d.ts +11 -0
  389. package/dist/Table/plugins/tree/useTableTreeData.d.ts.map +1 -1
  390. package/dist/Table/plugins/tree/useTableTreeData.js +36 -2
  391. package/dist/Table/types.d.ts +0 -9
  392. package/dist/Table/types.d.ts.map +1 -1
  393. package/dist/Text/Text.d.ts +11 -2
  394. package/dist/Text/Text.d.ts.map +1 -1
  395. package/dist/Text/Text.js +26 -3
  396. package/dist/Text/index.d.ts +31 -1
  397. package/dist/Text/index.d.ts.map +1 -1
  398. package/dist/Text/index.js +23 -0
  399. package/dist/TextArea/TextArea.d.ts +1 -1
  400. package/dist/TextArea/TextArea.d.ts.map +1 -1
  401. package/dist/TextArea/TextArea.js +107 -39
  402. package/dist/TextInput/TextInput.d.ts +1 -1
  403. package/dist/TextInput/TextInput.js +1 -1
  404. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  405. package/dist/Thumbnail/Thumbnail.js +52 -46
  406. package/dist/TimeInput/TimeInput.js +1 -1
  407. package/dist/Timestamp/Timestamp.d.ts +26 -12
  408. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  409. package/dist/Timestamp/Timestamp.js +128 -65
  410. package/dist/Timestamp/TimestampHoverCard.d.ts +45 -0
  411. package/dist/Timestamp/TimestampHoverCard.d.ts.map +1 -0
  412. package/dist/Timestamp/TimestampHoverCard.js +228 -0
  413. package/dist/Timestamp/formatInstant.d.ts +3 -3
  414. package/dist/Timestamp/formatInstant.d.ts.map +1 -1
  415. package/dist/Timestamp/formatInstant.js +7 -2
  416. package/dist/Timestamp/tooltipEntries.d.ts +17 -2
  417. package/dist/Timestamp/tooltipEntries.d.ts.map +1 -1
  418. package/dist/Timestamp/tooltipEntries.js +4 -2
  419. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  420. package/dist/Toast/ToastViewport.js +61 -9
  421. package/dist/ToggleButton/ToggleButton.d.ts +1 -1
  422. package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
  423. package/dist/ToggleButton/ToggleButton.js +4 -2
  424. package/dist/ToggleButton/ToggleButtonGroup.d.ts +1 -1
  425. package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  426. package/dist/ToggleButton/ToggleButtonGroup.js +1 -1
  427. package/dist/Token/Token.d.ts +6 -28
  428. package/dist/Token/Token.d.ts.map +1 -1
  429. package/dist/Token/Token.js +69 -58
  430. package/dist/Token/TokenLink.d.ts +62 -0
  431. package/dist/Token/TokenLink.d.ts.map +1 -0
  432. package/dist/Token/TokenLink.js +76 -0
  433. package/dist/Token/index.d.ts +27 -1
  434. package/dist/Token/index.d.ts.map +1 -1
  435. package/dist/Token/index.js +14 -0
  436. package/dist/Tokenizer/Tokenizer.d.ts +1 -1
  437. package/dist/Tokenizer/Tokenizer.js +1 -1
  438. package/dist/Toolbar/Toolbar.d.ts +1 -1
  439. package/dist/Toolbar/Toolbar.js +1 -1
  440. package/dist/Tooltip/Tooltip.d.ts +1 -1
  441. package/dist/Tooltip/Tooltip.js +1 -1
  442. package/dist/TopNav/TopNav.d.ts +1 -1
  443. package/dist/TopNav/TopNav.js +1 -1
  444. package/dist/TopNav/TopNavHeading.d.ts +2 -8
  445. package/dist/TopNav/TopNavHeading.d.ts.map +1 -1
  446. package/dist/TopNav/TopNavHeading.js +8 -10
  447. package/dist/TopNav/TopNavItem.d.ts +1 -1
  448. package/dist/TopNav/TopNavItem.js +1 -1
  449. package/dist/TopNav/TopNavMegaMenu.d.ts +1 -1
  450. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  451. package/dist/TopNav/TopNavMegaMenu.js +15 -7
  452. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
  453. package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +1 -1
  454. package/dist/TopNav/TopNavMegaMenuItem.d.ts +1 -1
  455. package/dist/TopNav/TopNavMegaMenuItem.js +1 -1
  456. package/dist/TopNav/TopNavMenu.d.ts +1 -1
  457. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  458. package/dist/TopNav/TopNavMenu.js +5 -4
  459. package/dist/TreeList/TreeList.d.ts +1 -1
  460. package/dist/TreeList/TreeList.js +1 -1
  461. package/dist/TreeList/TreeListBranches.js +1 -1
  462. package/dist/TreeList/TreeListItem.d.ts +1 -1
  463. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  464. package/dist/TreeList/TreeListItem.js +4 -3
  465. package/dist/TreeList/TreeListTypes.d.ts +1 -17
  466. package/dist/TreeList/TreeListTypes.d.ts.map +1 -1
  467. package/dist/TreeList/index.d.ts +18 -1
  468. package/dist/TreeList/index.d.ts.map +1 -1
  469. package/dist/TreeList/index.js +14 -0
  470. package/dist/Typeahead/BaseTypeahead.d.ts +10 -1
  471. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  472. package/dist/Typeahead/BaseTypeahead.js +3 -1
  473. package/dist/Typeahead/Typeahead.d.ts +1 -1
  474. package/dist/Typeahead/Typeahead.d.ts.map +1 -1
  475. package/dist/Typeahead/Typeahead.js +9 -2
  476. package/dist/Typeahead/TypeaheadItem.d.ts +1 -1
  477. package/dist/Typeahead/TypeaheadItem.js +1 -1
  478. package/dist/VStack/VStack.d.ts +1 -1
  479. package/dist/VStack/VStack.js +1 -1
  480. package/dist/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  481. package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
  482. package/dist/astryx.css +115 -33
  483. package/dist/astryx.umd.js +50 -54
  484. package/dist/astryx.umd.js.map +4 -4
  485. package/dist/hooks/containerReveal.pool.stylex.d.ts +303 -0
  486. package/dist/hooks/containerReveal.pool.stylex.d.ts.map +1 -0
  487. package/dist/hooks/containerReveal.pool.stylex.js +292 -0
  488. package/dist/hooks/index.d.ts +2 -0
  489. package/dist/hooks/index.d.ts.map +1 -1
  490. package/dist/hooks/index.js +2 -1
  491. package/dist/hooks/useContainerReveal.d.ts +83 -0
  492. package/dist/hooks/useContainerReveal.d.ts.map +1 -0
  493. package/dist/hooks/useContainerReveal.js +123 -0
  494. package/dist/hooks/useGridFocus.d.ts +8 -6
  495. package/dist/hooks/useGridFocus.d.ts.map +1 -1
  496. package/dist/hooks/useInputContainer.d.ts.map +1 -1
  497. package/dist/hooks/useInputContainer.js +29 -1
  498. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  499. package/dist/hooks/useInputStatusIcon.js +11 -0
  500. package/dist/hooks/useKeyboardHint.d.ts +2 -2
  501. package/dist/hooks/useKeyboardHint.d.ts.map +1 -1
  502. package/dist/hooks/useKeyboardHint.js +5 -3
  503. package/dist/hooks/useListFocus.d.ts +8 -7
  504. package/dist/hooks/useListFocus.d.ts.map +1 -1
  505. package/dist/hooks/useTreeFocus.d.ts.map +1 -1
  506. package/dist/hooks/useTreeFocus.js +13 -2
  507. package/dist/i18n/InternationalizationProvider.d.ts +6 -0
  508. package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
  509. package/dist/i18n/useDirection.d.ts.map +1 -1
  510. package/dist/i18n/useDirection.js +6 -3
  511. package/dist/index.d.ts +2 -1
  512. package/dist/index.d.ts.map +1 -1
  513. package/dist/index.js +3 -3
  514. package/dist/theme/Theme.d.ts.map +1 -1
  515. package/dist/theme/Theme.js +2 -7
  516. package/dist/theme/contrast.d.ts +45 -0
  517. package/dist/theme/contrast.d.ts.map +1 -0
  518. package/dist/theme/contrast.js +88 -0
  519. package/dist/theme/defineTheme.d.ts +9 -3
  520. package/dist/theme/defineTheme.d.ts.map +1 -1
  521. package/dist/theme/defineTheme.js +6 -4
  522. package/dist/theme/expandColorScale.d.ts +32 -3
  523. package/dist/theme/expandColorScale.d.ts.map +1 -1
  524. package/dist/theme/expandColorScale.js +102 -13
  525. package/dist/theme/generateThemeRules.d.ts +0 -6
  526. package/dist/theme/generateThemeRules.d.ts.map +1 -1
  527. package/dist/theme/generateThemeRules.js +0 -15
  528. package/dist/theme/index.d.ts +9 -7
  529. package/dist/theme/index.d.ts.map +1 -1
  530. package/dist/theme/index.js +4 -3
  531. package/dist/theme/themeRegistry.d.ts +32 -0
  532. package/dist/theme/themeRegistry.d.ts.map +1 -0
  533. package/dist/theme/themeRegistry.js +49 -0
  534. package/dist/theme/tokens.stylex.d.ts +0 -17
  535. package/dist/theme/tokens.stylex.d.ts.map +1 -1
  536. package/dist/theme/tokens.stylex.js +0 -22
  537. package/dist/theme/types.d.ts +10 -2
  538. package/dist/theme/types.d.ts.map +1 -1
  539. package/dist/theme/useTheme.d.ts +9 -0
  540. package/dist/theme/useTheme.d.ts.map +1 -1
  541. package/dist/theme/useTheme.js +82 -27
  542. package/dist/utils/rtlStyles.d.ts +21 -0
  543. package/dist/utils/rtlStyles.d.ts.map +1 -1
  544. package/dist/utils/rtlStyles.js +26 -1
  545. package/groups.doc.mjs +2 -2
  546. package/locales/en.json +124 -0
  547. package/locales/pseudo.json +93 -0
  548. package/package.json +9 -13
  549. package/src/AlertDialog/AlertDialog.doc.mjs +3 -3
  550. package/src/AlertDialog/AlertDialog.tsx +1 -1
  551. package/src/AlertDialog/useImperativeAlertDialog.doc.mjs +1 -1
  552. package/src/AppShell/AppShell.doc.mjs +3 -3
  553. package/src/AppShell/AppShell.test.tsx +55 -0
  554. package/src/AppShell/AppShell.tsx +27 -22
  555. package/src/AppShell/index.ts +20 -1
  556. package/src/AppShell/useAppShellMobile.doc.mjs +2 -2
  557. package/src/AspectRatio/AspectRatio.doc.mjs +3 -3
  558. package/src/AspectRatio/AspectRatio.tsx +1 -1
  559. package/src/Avatar/Avatar.doc.mjs +3 -3
  560. package/src/Avatar/Avatar.tsx +8 -3
  561. package/src/Avatar/AvatarStatusDot.doc.mjs +1 -1
  562. package/src/Avatar/AvatarStatusDot.tsx +2 -27
  563. package/src/Avatar/index.ts +26 -1
  564. package/src/AvatarGroup/AvatarGroup.doc.mjs +3 -3
  565. package/src/AvatarGroup/AvatarGroup.test.tsx +21 -1
  566. package/src/AvatarGroup/AvatarGroup.tsx +3 -7
  567. package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +1 -1
  568. package/src/AvatarGroup/AvatarGroupOverflow.tsx +5 -3
  569. package/src/Badge/Badge.doc.mjs +3 -3
  570. package/src/Badge/Badge.tsx +2 -31
  571. package/src/Badge/index.ts +32 -6
  572. package/src/Banner/Banner.doc.mjs +3 -3
  573. package/src/Banner/Banner.tsx +8 -45
  574. package/src/Banner/index.ts +39 -7
  575. package/src/Blockquote/Blockquote.doc.mjs +3 -3
  576. package/src/Blockquote/Blockquote.tsx +1 -1
  577. package/src/Breadcrumbs/BreadcrumbItem.doc.mjs +1 -1
  578. package/src/Breadcrumbs/BreadcrumbItem.tsx +5 -3
  579. package/src/Breadcrumbs/Breadcrumbs.doc.mjs +3 -3
  580. package/src/Breadcrumbs/Breadcrumbs.test.tsx +1 -1
  581. package/src/Breadcrumbs/Breadcrumbs.tsx +2 -19
  582. package/src/Breadcrumbs/index.ts +19 -5
  583. package/src/Button/Button.doc.mjs +3 -3
  584. package/src/Button/Button.test.tsx +16 -0
  585. package/src/Button/Button.tsx +6 -23
  586. package/src/Button/index.ts +22 -7
  587. package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -3
  588. package/src/ButtonGroup/ButtonGroup.tsx +1 -1
  589. package/src/Calendar/Calendar.doc.mjs +3 -3
  590. package/src/Calendar/Calendar.test.tsx +22 -6
  591. package/src/Calendar/Calendar.tsx +1 -1
  592. package/src/Calendar/index.ts +1 -6
  593. package/src/Calendar/styles.ts +2 -2
  594. package/src/Calendar/utils.ts +0 -11
  595. package/src/Card/Card.doc.mjs +3 -3
  596. package/src/Card/Card.tsx +1 -1
  597. package/src/Carousel/Carousel.doc.mjs +10 -3
  598. package/src/Carousel/Carousel.test.tsx +232 -1
  599. package/src/Carousel/Carousel.tsx +144 -21
  600. package/src/Carousel/index.ts +1 -1
  601. package/src/Center/Center.doc.mjs +41 -3
  602. package/src/Center/Center.test.tsx +75 -0
  603. package/src/Center/Center.tsx +38 -3
  604. package/src/Chat/Chat.doc.mjs +3 -3
  605. package/src/Chat/ChatComposer.doc.mjs +1 -1
  606. package/src/Chat/ChatComposer.tsx +5 -5
  607. package/src/Chat/ChatComposerDrawer.doc.mjs +1 -1
  608. package/src/Chat/ChatComposerDrawer.tsx +5 -5
  609. package/src/Chat/ChatComposerInput.doc.mjs +1 -1
  610. package/src/Chat/ChatComposerInput.tsx +1 -1
  611. package/src/Chat/ChatComposerTokenElement.doc.mjs +1 -1
  612. package/src/Chat/ChatDictationButton.doc.mjs +3 -3
  613. package/src/Chat/ChatDictationButton.tsx +1 -1
  614. package/src/Chat/ChatLayout.doc.mjs +1 -1
  615. package/src/Chat/ChatLayout.test.tsx +57 -0
  616. package/src/Chat/ChatLayout.tsx +23 -2
  617. package/src/Chat/ChatLayoutScrollButton.doc.mjs +1 -1
  618. package/src/Chat/ChatLayoutScrollButton.tsx +1 -1
  619. package/src/Chat/ChatMessage.doc.mjs +1 -1
  620. package/src/Chat/ChatMessage.tsx +1 -1
  621. package/src/Chat/ChatMessageBubble.doc.mjs +1 -1
  622. package/src/Chat/ChatMessageBubble.tsx +1 -1
  623. package/src/Chat/ChatMessageList.doc.mjs +1 -1
  624. package/src/Chat/ChatMessageList.tsx +1 -1
  625. package/src/Chat/ChatMessageMetadata.doc.mjs +1 -1
  626. package/src/Chat/ChatSendButton.doc.mjs +1 -1
  627. package/src/Chat/ChatSendButton.tsx +5 -3
  628. package/src/Chat/ChatSystemMessage.doc.mjs +1 -1
  629. package/src/Chat/ChatSystemMessage.tsx +1 -1
  630. package/src/Chat/ChatTokenizedText.doc.mjs +1 -1
  631. package/src/Chat/ChatTokenizedText.tsx +1 -1
  632. package/src/Chat/ChatToolCalls.doc.mjs +3 -3
  633. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
  634. package/src/CheckboxInput/CheckboxInput.test.tsx +56 -0
  635. package/src/CheckboxInput/CheckboxInput.tsx +18 -3
  636. package/src/CheckboxList/CheckboxList.doc.mjs +3 -3
  637. package/src/CheckboxList/CheckboxList.test.tsx +94 -3
  638. package/src/CheckboxList/CheckboxList.tsx +1 -1
  639. package/src/CheckboxList/CheckboxListItem.doc.mjs +1 -1
  640. package/src/CheckboxList/CheckboxListItem.tsx +18 -11
  641. package/src/Citation/Citation.doc.mjs +2 -2
  642. package/src/Citation/Citation.tsx +1 -1
  643. package/src/ClickableCard/ClickableCard.doc.mjs +2 -2
  644. package/src/ClickableCard/ClickableCard.tsx +3 -3
  645. package/src/Code/Code.tsx +2 -2
  646. package/src/CodeBlock/Code.doc.mjs +1 -1
  647. package/src/CodeBlock/CodeBlock.doc.mjs +3 -3
  648. package/src/CodeBlock/CodeBlock.test.tsx +17 -0
  649. package/src/CodeBlock/CodeBlock.tsx +2 -2
  650. package/src/Collapsible/Collapsible.doc.mjs +3 -3
  651. package/src/Collapsible/Collapsible.tsx +3 -3
  652. package/src/Collapsible/CollapsibleGroup.doc.mjs +1 -1
  653. package/src/Collapsible/CollapsibleGroup.tsx +1 -1
  654. package/src/Collapsible/CollapsibleGroupContext.tsx +1 -1
  655. package/src/Collapsible/useCollapsible.doc.mjs +2 -2
  656. package/src/CommandPalette/CommandPalette.doc.mjs +4 -4
  657. package/src/CommandPalette/CommandPalette.tsx +1 -1
  658. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +1 -1
  659. package/src/CommandPalette/CommandPaletteEmpty.tsx +1 -1
  660. package/src/CommandPalette/CommandPaletteFooter.doc.mjs +1 -1
  661. package/src/CommandPalette/CommandPaletteFooter.tsx +1 -1
  662. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +1 -1
  663. package/src/CommandPalette/CommandPaletteGroup.test.tsx +6 -2
  664. package/src/CommandPalette/CommandPaletteGroup.tsx +1 -1
  665. package/src/CommandPalette/CommandPaletteInput.doc.mjs +1 -1
  666. package/src/CommandPalette/CommandPaletteInput.tsx +5 -1
  667. package/src/CommandPalette/CommandPaletteItem.doc.mjs +1 -1
  668. package/src/CommandPalette/CommandPaletteItem.tsx +1 -1
  669. package/src/CommandPalette/CommandPaletteList.doc.mjs +1 -1
  670. package/src/CommandPalette/CommandPaletteList.tsx +1 -1
  671. package/src/ComplexSelector/ComplexSelector.doc.mjs +179 -0
  672. package/src/ComplexSelector/ComplexSelector.test.tsx +156 -0
  673. package/src/ComplexSelector/ComplexSelector.tsx +429 -0
  674. package/src/ComplexSelector/index.ts +17 -0
  675. package/src/ContextMenu/ContextMenu.doc.mjs +3 -3
  676. package/src/ContextMenu/ContextMenu.test.tsx +17 -2
  677. package/src/ContextMenu/ContextMenu.tsx +27 -6
  678. package/src/ContextMenu/ContextMenuItem.doc.mjs +1 -1
  679. package/src/DateInput/DateInput.doc.mjs +3 -3
  680. package/src/DateInput/DateInput.test.tsx +7 -3
  681. package/src/DateInput/DateInput.tsx +1 -1
  682. package/src/DateRangeInput/DateRangeInput.doc.mjs +2 -2
  683. package/src/DateRangeInput/DateRangeInput.test.tsx +7 -2
  684. package/src/DateRangeInput/DateRangeInput.tsx +1 -1
  685. package/src/DateTimeInput/DateTimeInput.doc.mjs +3 -3
  686. package/src/DateTimeInput/DateTimeInput.test.tsx +6 -2
  687. package/src/DateTimeInput/DateTimeInput.tsx +1 -1
  688. package/src/Dialog/Dialog.doc.mjs +7 -5
  689. package/src/Dialog/Dialog.test.tsx +46 -3
  690. package/src/Dialog/Dialog.tsx +61 -44
  691. package/src/Dialog/DialogHeader.doc.mjs +1 -1
  692. package/src/Dialog/DialogHeader.tsx +1 -1
  693. package/src/Dialog/index.ts +18 -1
  694. package/src/Dialog/useImperativeDialog.doc.mjs +1 -1
  695. package/src/Divider/Divider.doc.mjs +3 -3
  696. package/src/Divider/Divider.tsx +2 -19
  697. package/src/Divider/index.ts +19 -5
  698. package/src/DropdownMenu/DropdownMenu.doc.mjs +20 -5
  699. package/src/DropdownMenu/DropdownMenu.test.tsx +122 -0
  700. package/src/DropdownMenu/DropdownMenu.tsx +31 -20
  701. package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +1 -1
  702. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +41 -64
  703. package/src/DropdownMenu/DropdownMenuItem.doc.mjs +1 -1
  704. package/src/DropdownMenu/DropdownMenuItem.tsx +1 -1
  705. package/src/DropdownMenu/DropdownMenuRadioGroup.doc.mjs +5 -13
  706. package/src/DropdownMenu/DropdownMenuRadioGroup.tsx +9 -10
  707. package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +1 -1
  708. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +11 -2
  709. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +84 -2
  710. package/src/DropdownMenu/DropdownMenuSubMenu.doc.mjs +1 -1
  711. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +46 -1
  712. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +24 -8
  713. package/src/DropdownMenu/menuItemHover.ts +1 -0
  714. package/src/DropdownMenu/renderDropdownItems.tsx +14 -2
  715. package/src/EmptyState/EmptyState.doc.mjs +3 -3
  716. package/src/EmptyState/EmptyState.tsx +1 -1
  717. package/src/Field/Field.doc.mjs +7 -3
  718. package/src/Field/Field.tsx +1 -1
  719. package/src/Field/FieldLabel.doc.mjs +1 -1
  720. package/src/Field/FieldLabel.test.tsx +103 -0
  721. package/src/Field/FieldLabel.tsx +61 -5
  722. package/src/FieldStatus/FieldStatus.doc.mjs +3 -2
  723. package/src/FieldStatus/FieldStatus.test.tsx +61 -0
  724. package/src/FieldStatus/FieldStatus.tsx +16 -23
  725. package/src/FieldStatus/index.ts +20 -5
  726. package/src/FileInput/FileInput.doc.mjs +3 -3
  727. package/src/FileInput/FileInput.tsx +1 -1
  728. package/src/FormLayout/FormLayout.doc.mjs +3 -3
  729. package/src/FormLayout/FormLayout.tsx +2 -5
  730. package/src/Grid/Grid.doc.mjs +3 -8
  731. package/src/Grid/Grid.tsx +1 -25
  732. package/src/Grid/GridSpan.doc.mjs +1 -1
  733. package/src/Grid/GridSpan.tsx +1 -1
  734. package/src/HStack/HStack.tsx +1 -1
  735. package/src/Heading/Heading.tsx +4 -3
  736. package/src/HoverCard/HoverCard.doc.mjs +3 -3
  737. package/src/HoverCard/HoverCard.tsx +1 -1
  738. package/src/HoverCard/useHoverCard.doc.mjs +2 -2
  739. package/src/Icon/Icon.doc.mjs +7 -6
  740. package/src/Icon/Icon.test.tsx +23 -0
  741. package/src/Icon/Icon.tsx +4 -2
  742. package/src/Icon/defaultIcons.tsx +14 -0
  743. package/src/Icon/globalIconRegistry.test.tsx +87 -1
  744. package/src/Icon/globalIconRegistry.tsx +111 -9
  745. package/src/Icon/index.ts +9 -7
  746. package/src/Icon/useIcon.ts +23 -0
  747. package/src/IconButton/IconButton.doc.mjs +2 -2
  748. package/src/IconButton/IconButton.tsx +1 -1
  749. package/src/InputGroup/InputGroup.doc.mjs +2 -2
  750. package/src/InputGroup/InputGroup.tsx +1 -1
  751. package/src/InputGroup/InputGroupText.doc.mjs +1 -1
  752. package/src/InputGroup/InputGroupText.tsx +1 -1
  753. package/src/Item/Item.doc.mjs +8 -3
  754. package/src/Item/Item.test.tsx +88 -0
  755. package/src/Item/Item.tsx +58 -12
  756. package/src/Kbd/Kbd.doc.mjs +3 -3
  757. package/src/Kbd/Kbd.tsx +1 -1
  758. package/src/Layer/Layer.doc.mjs +2 -2
  759. package/src/Layer/useLayer.doc.mjs +2 -2
  760. package/src/Layout/Layout.doc.mjs +3 -3
  761. package/src/Layout/Layout.tsx +1 -1
  762. package/src/Layout/LayoutContent.doc.mjs +1 -1
  763. package/src/Layout/LayoutContent.tsx +1 -1
  764. package/src/Layout/LayoutFooter.doc.mjs +1 -1
  765. package/src/Layout/LayoutFooter.tsx +1 -1
  766. package/src/Layout/LayoutHeader.doc.mjs +1 -1
  767. package/src/Layout/LayoutHeader.tsx +1 -1
  768. package/src/Layout/LayoutPanel.doc.mjs +1 -1
  769. package/src/Layout/LayoutPanel.tsx +1 -1
  770. package/src/Lightbox/Lightbox.doc.mjs +5 -5
  771. package/src/Lightbox/Lightbox.test.tsx +211 -0
  772. package/src/Lightbox/Lightbox.tsx +109 -22
  773. package/src/Link/Link.doc.mjs +3 -3
  774. package/src/Link/Link.tsx +1 -1
  775. package/src/Link/LinkProvider.doc.mjs +2 -2
  776. package/src/Link/LinkProvider.tsx +2 -2
  777. package/src/List/List.doc.mjs +3 -3
  778. package/src/List/List.tsx +1 -1
  779. package/src/List/ListItem.doc.mjs +13 -1
  780. package/src/List/ListItem.tsx +14 -1
  781. package/src/Markdown/Markdown.doc.mjs +81 -1
  782. package/src/Markdown/Markdown.test.tsx +92 -0
  783. package/src/Markdown/Markdown.tsx +96 -68
  784. package/src/Markdown/parser.perf.test.ts +47 -35
  785. package/src/MetadataList/MetadataList.doc.mjs +3 -3
  786. package/src/MetadataList/MetadataList.test.tsx +82 -0
  787. package/src/MetadataList/MetadataList.tsx +45 -20
  788. package/src/MetadataList/MetadataListItem.doc.mjs +1 -1
  789. package/src/MetadataList/MetadataListItem.tsx +1 -1
  790. package/src/MobileNav/MobileNav.doc.mjs +3 -3
  791. package/src/MobileNav/MobileNav.tsx +1 -1
  792. package/src/MoreMenu/MoreMenu.doc.mjs +3 -3
  793. package/src/MoreMenu/MoreMenu.tsx +3 -3
  794. package/src/MultiSelector/MultiSelector.doc.mjs +35 -10
  795. package/src/MultiSelector/MultiSelector.test.tsx +303 -3
  796. package/src/MultiSelector/MultiSelector.tsx +223 -58
  797. package/src/NavIcon/NavIcon.doc.mjs +3 -3
  798. package/src/NavIcon/NavIcon.tsx +1 -1
  799. package/src/NavMenu/NavHeadingMenu.test.tsx +0 -16
  800. package/src/NavMenu/NavMenu.doc.mjs +2 -2
  801. package/src/NavMenu/index.ts +0 -4
  802. package/src/NumberInput/NumberInput.doc.mjs +3 -6
  803. package/src/NumberInput/NumberInput.test.tsx +38 -3
  804. package/src/NumberInput/NumberInput.tsx +24 -1
  805. package/src/Outline/Outline.doc.mjs +3 -3
  806. package/src/Outline/Outline.tsx +1 -1
  807. package/src/OverflowList/OverflowList.doc.mjs +3 -3
  808. package/src/OverflowList/OverflowList.tsx +1 -1
  809. package/src/Overlay/Overlay.doc.mjs +2 -2
  810. package/src/Pagination/Pagination.doc.mjs +55 -8
  811. package/src/Pagination/Pagination.test.tsx +567 -0
  812. package/src/Pagination/Pagination.tsx +223 -41
  813. package/src/Pagination/index.ts +22 -1
  814. package/src/Popover/Popover.doc.mjs +31 -3
  815. package/src/Popover/Popover.test.tsx +41 -0
  816. package/src/Popover/Popover.tsx +25 -2
  817. package/src/Popover/usePopover.doc.mjs +2 -2
  818. package/src/Popover/usePopover.tsx +10 -4
  819. package/src/PowerSearch/PowerSearch.doc.mjs +3 -3
  820. package/src/PowerSearch/PowerSearch.tsx +1 -1
  821. package/src/ProgressBar/ProgressBar.doc.mjs +24 -3
  822. package/src/ProgressBar/ProgressBar.test.tsx +523 -2
  823. package/src/ProgressBar/ProgressBar.tsx +250 -25
  824. package/src/ProgressBar/ProgressBarMarkTooltip.tsx +43 -0
  825. package/src/ProgressBar/index.ts +22 -1
  826. package/src/RadioList/RadioList.doc.mjs +3 -3
  827. package/src/RadioList/RadioList.test.tsx +26 -4
  828. package/src/RadioList/RadioList.tsx +1 -1
  829. package/src/RadioList/RadioListItem.doc.mjs +1 -1
  830. package/src/RadioList/RadioListItem.tsx +9 -2
  831. package/src/Resizable/Resizable.doc.mjs +2 -2
  832. package/src/Resizable/ResizeHandle.test.tsx +52 -3
  833. package/src/Resizable/ResizeHandle.tsx +25 -13
  834. package/src/Resizable/useResizable.doc.mjs +2 -2
  835. package/src/Section/Section.doc.mjs +3 -3
  836. package/src/Section/Section.tsx +2 -20
  837. package/src/Section/index.ts +20 -5
  838. package/src/SegmentedControl/SegmentedControl.doc.mjs +3 -3
  839. package/src/SegmentedControl/SegmentedControl.test.tsx +28 -0
  840. package/src/SegmentedControl/SegmentedControl.tsx +1 -1
  841. package/src/SegmentedControl/SegmentedControlItem.doc.mjs +1 -1
  842. package/src/SegmentedControl/SegmentedControlItem.tsx +21 -3
  843. package/src/SelectableCard/SelectableCard.doc.mjs +4 -2
  844. package/src/SelectableCard/SelectableCard.test.tsx +55 -0
  845. package/src/SelectableCard/SelectableCard.tsx +19 -3
  846. package/src/Selector/Selector.doc.mjs +28 -8
  847. package/src/Selector/Selector.test.tsx +222 -3
  848. package/src/Selector/Selector.tsx +202 -52
  849. package/src/Selector/SelectorOption.doc.mjs +1 -1
  850. package/src/SideNav/SideNav.doc.mjs +3 -3
  851. package/src/SideNav/SideNav.tsx +1 -1
  852. package/src/SideNav/SideNavCollapseButton.doc.mjs +1 -1
  853. package/src/SideNav/SideNavCollapseButton.tsx +4 -3
  854. package/src/SideNav/SideNavHeading.doc.mjs +1 -1
  855. package/src/SideNav/SideNavHeading.tsx +8 -9
  856. package/src/SideNav/SideNavItem.doc.mjs +1 -1
  857. package/src/SideNav/SideNavItem.tsx +5 -6
  858. package/src/SideNav/SideNavSection.doc.mjs +1 -1
  859. package/src/SideNav/SideNavSection.tsx +1 -1
  860. package/src/Skeleton/Skeleton.doc.mjs +3 -3
  861. package/src/Skeleton/Skeleton.test.tsx +16 -0
  862. package/src/Skeleton/Skeleton.tsx +14 -2
  863. package/src/Slider/Slider.doc.mjs +3 -3
  864. package/src/Slider/Slider.tsx +9 -13
  865. package/src/Spinner/Spinner.doc.mjs +3 -3
  866. package/src/Spinner/Spinner.tsx +1 -1
  867. package/src/Stack/Stack.doc.mjs +3 -3
  868. package/src/Stack/Stack.tsx +1 -1
  869. package/src/Stack/StackItem.tsx +1 -1
  870. package/src/StatusDot/StatusDot.doc.mjs +15 -6
  871. package/src/StatusDot/StatusDot.tsx +2 -22
  872. package/src/StatusDot/index.ts +22 -5
  873. package/src/Switch/Switch.doc.mjs +5 -5
  874. package/src/Switch/Switch.test.tsx +71 -25
  875. package/src/Switch/Switch.tsx +56 -18
  876. package/src/TabList/Tab.doc.mjs +1 -1
  877. package/src/TabList/Tab.tsx +1 -1
  878. package/src/TabList/TabList.doc.mjs +3 -3
  879. package/src/TabList/TabList.test.tsx +21 -18
  880. package/src/TabList/TabList.tsx +1 -1
  881. package/src/TabList/TabMenu.doc.mjs +1 -1
  882. package/src/TabList/TabMenu.tsx +11 -3
  883. package/src/Table/BaseTable.tsx +4 -5
  884. package/src/Table/Table.doc.mjs +5 -5
  885. package/src/Table/Table.test.tsx +27 -49
  886. package/src/Table/Table.tsx +1 -1
  887. package/src/Table/TableCell.doc.mjs +1 -1
  888. package/src/Table/TableCell.tsx +2 -2
  889. package/src/Table/TableHeaderCell.doc.mjs +1 -1
  890. package/src/Table/TableHeaderCell.tsx +2 -2
  891. package/src/Table/TableRow.doc.mjs +1 -1
  892. package/src/Table/TableRow.tsx +1 -1
  893. package/src/Table/index.ts +1 -1
  894. package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +1 -1
  895. package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +19 -0
  896. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +24 -4
  897. package/src/Table/plugins/tree/useTableTreeData.test.tsx +161 -2
  898. package/src/Table/plugins/tree/useTableTreeData.tsx +54 -1
  899. package/src/Table/types.ts +0 -9
  900. package/src/Table/useTableColumnResize.doc.mjs +1 -1
  901. package/src/Table/useTableColumnSettings.doc.mjs +1 -1
  902. package/src/Table/useTableFilterState.doc.mjs +1 -1
  903. package/src/Table/useTableFiltering.doc.mjs +1 -1
  904. package/src/Table/useTableGroupedRows.doc.mjs +2 -2
  905. package/src/Table/useTablePagination.doc.mjs +1 -1
  906. package/src/Table/useTableRowExpansion.doc.mjs +57 -4
  907. package/src/Table/useTableRowIndex.doc.mjs +2 -2
  908. package/src/Table/useTableRowStatus.doc.mjs +3 -3
  909. package/src/Table/useTableSelection.doc.mjs +1 -1
  910. package/src/Table/useTableSelectionState.doc.mjs +1 -1
  911. package/src/Table/useTableSortable.doc.mjs +1 -1
  912. package/src/Table/useTableStickyColumns.doc.mjs +1 -1
  913. package/src/Table/useTableTreeData.doc.mjs +10 -1
  914. package/src/Table/useTableTreeState.doc.mjs +1 -1
  915. package/src/Text/Heading.doc.mjs +4 -4
  916. package/src/Text/Text.doc.mjs +4 -4
  917. package/src/Text/Text.test.tsx +42 -0
  918. package/src/Text/Text.tsx +26 -2
  919. package/src/Text/index.ts +32 -6
  920. package/src/TextArea/TextArea.doc.mjs +5 -5
  921. package/src/TextArea/TextArea.test.tsx +112 -7
  922. package/src/TextArea/TextArea.tsx +143 -50
  923. package/src/TextInput/TextInput.doc.mjs +3 -3
  924. package/src/TextInput/TextInput.tsx +1 -1
  925. package/src/Thumbnail/Thumbnail.doc.mjs +2 -2
  926. package/src/Thumbnail/Thumbnail.test.tsx +24 -1
  927. package/src/Thumbnail/Thumbnail.tsx +28 -35
  928. package/src/TimeInput/TimeInput.doc.mjs +3 -3
  929. package/src/TimeInput/TimeInput.tsx +1 -1
  930. package/src/Timestamp/Timestamp.doc.mjs +29 -24
  931. package/src/Timestamp/Timestamp.test.tsx +438 -107
  932. package/src/Timestamp/Timestamp.tsx +167 -103
  933. package/src/Timestamp/TimestampHoverCard.tsx +283 -0
  934. package/src/Timestamp/formatInstant.ts +9 -4
  935. package/src/Timestamp/tooltipEntries.test.ts +9 -0
  936. package/src/Timestamp/tooltipEntries.ts +18 -2
  937. package/src/Toast/Toast.doc.mjs +3 -3
  938. package/src/Toast/ToastViewport.test.tsx +218 -8
  939. package/src/Toast/ToastViewport.tsx +71 -12
  940. package/src/Toast/useToast.doc.mjs +2 -2
  941. package/src/ToggleButton/ToggleButton.doc.mjs +3 -3
  942. package/src/ToggleButton/ToggleButton.test.tsx +24 -0
  943. package/src/ToggleButton/ToggleButton.tsx +20 -2
  944. package/src/ToggleButton/ToggleButtonGroup.doc.mjs +1 -1
  945. package/src/ToggleButton/ToggleButtonGroup.tsx +3 -6
  946. package/src/Token/Token.doc.mjs +3 -3
  947. package/src/Token/Token.test.tsx +145 -0
  948. package/src/Token/Token.tsx +75 -61
  949. package/src/Token/TokenLink.tsx +107 -0
  950. package/src/Token/index.ts +28 -1
  951. package/src/Tokenizer/Tokenizer.doc.mjs +3 -3
  952. package/src/Tokenizer/Tokenizer.tsx +1 -1
  953. package/src/Toolbar/Toolbar.doc.mjs +3 -3
  954. package/src/Toolbar/Toolbar.tsx +1 -1
  955. package/src/Tooltip/Tooltip.doc.mjs +3 -3
  956. package/src/Tooltip/Tooltip.tsx +1 -1
  957. package/src/Tooltip/useTooltip.doc.mjs +2 -2
  958. package/src/TopNav/TopNav.doc.mjs +3 -3
  959. package/src/TopNav/TopNav.test.tsx +2 -2
  960. package/src/TopNav/TopNav.tsx +1 -1
  961. package/src/TopNav/TopNavHeading.doc.mjs +1 -12
  962. package/src/TopNav/TopNavHeading.tsx +8 -18
  963. package/src/TopNav/TopNavItem.doc.mjs +1 -1
  964. package/src/TopNav/TopNavItem.tsx +1 -1
  965. package/src/TopNav/TopNavMegaMenu.doc.mjs +1 -1
  966. package/src/TopNav/TopNavMegaMenu.tsx +32 -6
  967. package/src/TopNav/TopNavMegaMenuFeaturedCard.doc.mjs +1 -1
  968. package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +1 -1
  969. package/src/TopNav/TopNavMegaMenuItem.doc.mjs +1 -1
  970. package/src/TopNav/TopNavMegaMenuItem.tsx +1 -1
  971. package/src/TopNav/TopNavMenu.doc.mjs +1 -1
  972. package/src/TopNav/TopNavMenu.tsx +5 -4
  973. package/src/TreeList/TreeList.doc.mjs +3 -3
  974. package/src/TreeList/TreeList.test.tsx +10 -6
  975. package/src/TreeList/TreeList.tsx +1 -1
  976. package/src/TreeList/TreeListBranches.tsx +1 -1
  977. package/src/TreeList/TreeListItem.tsx +4 -3
  978. package/src/TreeList/TreeListTypes.ts +1 -18
  979. package/src/TreeList/index.ts +19 -1
  980. package/src/Typeahead/BaseTypeahead.doc.mjs +1 -1
  981. package/src/Typeahead/BaseTypeahead.tsx +13 -1
  982. package/src/Typeahead/Typeahead.doc.mjs +3 -3
  983. package/src/Typeahead/Typeahead.test.tsx +62 -0
  984. package/src/Typeahead/Typeahead.tsx +7 -1
  985. package/src/Typeahead/TypeaheadItem.doc.mjs +1 -1
  986. package/src/Typeahead/TypeaheadItem.tsx +1 -1
  987. package/src/VStack/VStack.tsx +1 -1
  988. package/src/VisuallyHidden/VisuallyHidden.doc.mjs +3 -3
  989. package/src/VisuallyHidden/VisuallyHidden.tsx +1 -1
  990. package/src/__tests__/babelPluginAddExtensions.test.ts +190 -0
  991. package/src/__tests__/forcedColors.ts +60 -0
  992. package/src/__tests__/inputWidthContract.test.tsx +8 -1
  993. package/src/doc-mjs.d.ts +5 -2
  994. package/src/docPropLiterals.test.ts +1 -1
  995. package/src/docPropReferences.test.ts +1 -1
  996. package/src/hooks/containerReveal.pool.stylex.ts +571 -0
  997. package/src/hooks/index.ts +7 -0
  998. package/src/hooks/useClickableContainer.doc.mjs +2 -2
  999. package/src/hooks/useContainerReveal.doc.mjs +75 -0
  1000. package/src/hooks/useContainerReveal.test.tsx +116 -0
  1001. package/src/hooks/useContainerReveal.ts +181 -0
  1002. package/src/hooks/useEntryAnimation.doc.mjs +2 -2
  1003. package/src/hooks/useFocusTrap.doc.mjs +2 -2
  1004. package/src/hooks/useGridFocus.doc.mjs +2 -2
  1005. package/src/hooks/useGridFocus.ts +8 -6
  1006. package/src/hooks/useHotkeys.doc.mjs +2 -2
  1007. package/src/hooks/useImageMode.doc.mjs +2 -2
  1008. package/src/hooks/useInputContainer.doc.mjs +2 -2
  1009. package/src/hooks/useInputContainer.test.tsx +180 -0
  1010. package/src/hooks/useInputContainer.ts +36 -1
  1011. package/src/hooks/useInputStatusIcon.test.tsx +59 -0
  1012. package/src/hooks/useInputStatusIcon.tsx +12 -1
  1013. package/src/hooks/useKeyboardHint.doc.mjs +2 -2
  1014. package/src/hooks/useKeyboardHint.test.tsx +22 -0
  1015. package/src/hooks/useKeyboardHint.tsx +7 -3
  1016. package/src/hooks/useListFocus.doc.mjs +2 -2
  1017. package/src/hooks/useListFocus.ts +8 -7
  1018. package/src/hooks/useMediaQuery.doc.mjs +2 -2
  1019. package/src/hooks/useOverflow.doc.mjs +2 -2
  1020. package/src/hooks/useScrollLock.doc.mjs +2 -2
  1021. package/src/hooks/useScrollOverflow.doc.mjs +2 -2
  1022. package/src/hooks/useStreamingText.doc.mjs +2 -2
  1023. package/src/hooks/useTreeFocus.doc.mjs +2 -2
  1024. package/src/hooks/useTreeFocus.test.tsx +53 -1
  1025. package/src/hooks/useTreeFocus.ts +13 -2
  1026. package/src/i18n/InternationalizationProvider.doc.mjs +14 -2
  1027. package/src/i18n/InternationalizationProvider.tsx +6 -0
  1028. package/src/i18n/useDirection.ts +6 -3
  1029. package/src/i18n/useTranslator.doc.mjs +2 -2
  1030. package/src/index.ts +2 -18
  1031. package/src/theme/MediaTheme.doc.mjs +2 -2
  1032. package/src/theme/SyntaxTheme.doc.mjs +2 -2
  1033. package/src/theme/Theme.doc.mjs +2 -2
  1034. package/src/theme/Theme.tsx +3 -7
  1035. package/src/theme/contrast.test.ts +94 -0
  1036. package/src/theme/contrast.ts +99 -0
  1037. package/src/theme/defineTheme.test.ts +29 -30
  1038. package/src/theme/defineTheme.ts +11 -5
  1039. package/src/theme/expandColorScale.test.ts +401 -1
  1040. package/src/theme/expandColorScale.ts +143 -19
  1041. package/src/theme/generateThemeRules.ts +0 -15
  1042. package/src/theme/index.ts +11 -13
  1043. package/src/theme/themeRegistry.test.ts +59 -0
  1044. package/src/theme/themeRegistry.ts +53 -0
  1045. package/src/theme/tokens.stylex.ts +0 -19
  1046. package/src/theme/types.ts +14 -13
  1047. package/src/theme/useTheme.doc.mjs +2 -2
  1048. package/src/theme/useTheme.test.tsx +48 -3
  1049. package/src/theme/useTheme.ts +100 -29
  1050. package/src/utils/rtlStyles.ts +22 -0
  1051. package/dist/NavMenu/NavMenuItem.d.ts +0 -13
  1052. package/dist/NavMenu/NavMenuItem.d.ts.map +0 -1
  1053. package/dist/NavMenu/NavMenuItem.js +0 -16
  1054. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts +0 -9
  1055. package/dist/Thumbnail/thumbnail.markers.stylex.d.ts.map +0 -1
  1056. package/dist/Thumbnail/thumbnail.markers.stylex.js +0 -14
  1057. package/dist/authoring/doc.d.ts +0 -145
  1058. package/dist/authoring/doc.d.ts.map +0 -1
  1059. package/dist/authoring/doc.js +0 -100
  1060. package/dist/authoring/index.d.ts +0 -29
  1061. package/dist/authoring/index.d.ts.map +0 -1
  1062. package/dist/authoring/index.js +0 -28
  1063. package/dist/authoring/integration.d.ts +0 -35
  1064. package/dist/authoring/integration.d.ts.map +0 -1
  1065. package/dist/authoring/integration.js +0 -30
  1066. package/dist/authoring/template.d.ts +0 -66
  1067. package/dist/authoring/template.d.ts.map +0 -1
  1068. package/dist/authoring/template.js +0 -55
  1069. package/dist/config.d.ts +0 -80
  1070. package/dist/config.d.ts.map +0 -1
  1071. package/dist/config.js +0 -40
  1072. package/dist/docs-types.d.ts +0 -969
  1073. package/dist/docs-types.d.ts.map +0 -1
  1074. package/dist/docs-types.js +0 -1
  1075. package/src/NavMenu/NavMenuItem.tsx +0 -19
  1076. package/src/Thumbnail/thumbnail.markers.stylex.ts +0 -12
  1077. package/src/authoring/doc.ts +0 -164
  1078. package/src/authoring/index.test.ts +0 -52
  1079. package/src/authoring/index.ts +0 -50
  1080. package/src/authoring/integration.ts +0 -42
  1081. package/src/authoring/template.ts +0 -74
  1082. package/src/config.test.ts +0 -16
  1083. package/src/config.ts +0 -92
  1084. package/src/docs-types.ts +0 -1108
@@ -13,22 +13,22 @@
13
13
  * - /packages/core/src/Timestamp/Timestamp.test.tsx
14
14
  * - /packages/core/src/Timestamp/index.ts
15
15
  * - /apps/storybook/stories/Timestamp.stories.tsx
16
- * - /packages/cli/templates/blocks/components/Timestamp/ (showcase blocks)
16
+ * - /packages/cli/assets/templates/blocks/components/Timestamp/ (showcase blocks)
17
17
  */
18
- import { useEffect, useRef, useState, lazy, Suspense, Fragment } from 'react';
18
+ import { lazy, Suspense, useEffect, useRef, useState } from 'react';
19
19
  import * as stylex from '@stylexjs/stylex';
20
20
  import { Text } from "../Text/index.js";
21
21
  import { mergeProps, mergeRefs } from "../utils/index.js";
22
22
  import { useDevWarning } from "../hooks/useDevWarning.js";
23
+ import { useTranslator } from "../i18n/index.js";
23
24
  import { themeProps } from "../utils/themeProps.js";
24
- import "../theme/tokens.stylex.js";
25
- import { colorVars, spacingVars } from "../theme/tokens.stylex.js";
26
25
  import { formatInstant } from "./formatInstant.js";
27
26
  import { formatTooltipLines } from "./tooltipEntries.js";
28
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
29
- const LazyXDSTooltip = /*#__PURE__*/lazy(async () => import('../Tooltip/Tooltip').then(mod => ({
30
- default: mod.Tooltip
31
- })));
27
+ import { jsx as _jsx } from "react/jsx-runtime";
28
+ // Load the overlay lazily so a card-less Timestamp — the default — never
29
+ // bundles HoverCard or the copy affordance's Icon/IconButton. Mirrors the code
30
+ // split the read-only Tooltip path used before it.
31
+ const LazyTimestampHoverCard = /*#__PURE__*/lazy(async () => import("./TimestampHoverCard.js"));
32
32
 
33
33
  // =============================================================================
34
34
  // Types
@@ -139,6 +139,67 @@ function getRelativeTimeString(date, now) {
139
139
  return `${years} ${years === 1 ? 'year' : 'years'} ago`;
140
140
  }
141
141
 
142
+ /**
143
+ * The compact sibling of `getRelativeTimeString`: the same tier boundaries and
144
+ * present/future-skew handling, rendered with abbreviated units for
145
+ * space-constrained surfaces (chat metadata, dense tables, chips).
146
+ *
147
+ * Units follow the common compact convention (and the Microsoft Style Guide):
148
+ * `s` seconds, `m` minutes, `h` hours, `d` days, `mo` months, `y` years.
149
+ * Months use `mo` — not `m` — because `m` already means minutes; a bare `m`
150
+ * for months would be ambiguous. The value is always numeric (no "yesterday"
151
+ * idiom, which belongs to the long form) so the short form stays predictable
152
+ * and easy to scan. The `ago` / `in` affixes are kept so direction stays
153
+ * unambiguous at a glance.
154
+ */
155
+ function getRelativeTimeShortString(date, now) {
156
+ const diffSeconds = Math.round((now.getTime() - date.getTime()) / 1000);
157
+
158
+ // Present clamp — identical to the long form (see getRelativeTimeString).
159
+ if (Math.abs(diffSeconds) < 10) {
160
+ return 'now';
161
+ }
162
+ if (diffSeconds < 0) {
163
+ // Future dates.
164
+ const absDiff = Math.abs(diffSeconds);
165
+ if (absDiff <= FUTURE_SKEW_TOLERANCE) {
166
+ return 'now';
167
+ }
168
+ if (absDiff < MINUTE) {
169
+ return `in ${absDiff}s`;
170
+ }
171
+ if (absDiff < HOUR) {
172
+ return `in ${Math.floor(absDiff / MINUTE)}m`;
173
+ }
174
+ if (absDiff < DAY) {
175
+ return `in ${Math.floor(absDiff / HOUR)}h`;
176
+ }
177
+ if (absDiff < MONTH) {
178
+ return `in ${Math.floor(absDiff / DAY)}d`;
179
+ }
180
+ if (absDiff < YEAR) {
181
+ return `in ${Math.floor(absDiff / MONTH)}mo`;
182
+ }
183
+ return `in ${Math.floor(absDiff / YEAR)}y`;
184
+ }
185
+ if (diffSeconds < MINUTE) {
186
+ return `${diffSeconds}s ago`;
187
+ }
188
+ if (diffSeconds < HOUR) {
189
+ return `${Math.floor(diffSeconds / MINUTE)}m ago`;
190
+ }
191
+ if (diffSeconds < DAY) {
192
+ return `${Math.floor(diffSeconds / HOUR)}h ago`;
193
+ }
194
+ if (diffSeconds < MONTH) {
195
+ return `${Math.floor(diffSeconds / DAY)}d ago`;
196
+ }
197
+ if (diffSeconds < YEAR) {
198
+ return `${Math.floor(diffSeconds / MONTH)}mo ago`;
199
+ }
200
+ return `${Math.floor(diffSeconds / YEAR)}y ago`;
201
+ }
202
+
142
203
  /** Returns the interval (in ms) at which a relative timestamp should update. */
143
204
  function getLiveInterval(diffSeconds) {
144
205
  const absDiff = Math.abs(diffSeconds);
@@ -156,7 +217,17 @@ function getLiveInterval(diffSeconds) {
156
217
 
157
218
  /** Whether a format is non-relative (i.e. shows a fixed date/time). */
158
219
  function isAbsoluteFormat(format) {
159
- return format !== 'relative' && format !== 'auto';
220
+ return format !== 'relative' && format !== 'relative_short' && format !== 'auto';
221
+ }
222
+
223
+ /**
224
+ * Whether a format renders a relative phrase ("2 hours ago" / "2h ago") rather
225
+ * than a fixed instant. Both the long and short relative forms share the same
226
+ * treatment: they get the accessible full-date name, the hover tooltip, and
227
+ * live updates.
228
+ */
229
+ function isRelativeFormat(format) {
230
+ return format === 'relative' || format === 'relative_short';
160
231
  }
161
232
 
162
233
  // =============================================================================
@@ -168,8 +239,8 @@ function isAbsoluteFormat(format) {
168
239
  *
169
240
  * Renders a semantic `<time>` element with an ISO 8601 `datetime` attribute,
170
241
  * styled via Text. Supports relative ("2 hours ago"), multiple absolute
171
- * formats, and auto formatting. Optionally shows a tooltip with the full
172
- * absolute time and can update live.
242
+ * formats, and auto formatting. Optionally shows a hover card with the full
243
+ * absolute time (copyable) and can update live.
173
244
  *
174
245
  * @example
175
246
  * ```
@@ -197,6 +268,7 @@ export function Timestamp({
197
268
  ref,
198
269
  'data-testid': testId
199
270
  }) {
271
+ const t = useTranslator();
200
272
  const timeRef = useRef(null);
201
273
  const [now, setNow] = useState(() => new Date());
202
274
  const date = parseValue(value);
@@ -213,7 +285,7 @@ export function Timestamp({
213
285
 
214
286
  // Format the display text. No time zone is passed: the visible text always
215
287
  // reads in the viewer's own zone, and only the tooltip names others.
216
- const displayText = !isValidDate ? '' : effectiveFormat === 'relative' ? getRelativeTimeString(date, now) : isAbsoluteFormat(effectiveFormat) ? formatInstant(date, effectiveFormat, {
288
+ const displayText = !isValidDate ? '' : effectiveFormat === 'relative' ? getRelativeTimeString(date, now) : effectiveFormat === 'relative_short' ? getRelativeTimeShortString(date, now) : isAbsoluteFormat(effectiveFormat) ? formatInstant(date, effectiveFormat, {
217
289
  isTimezoneShown
218
290
  }) : '';
219
291
 
@@ -222,7 +294,7 @@ export function Timestamp({
222
294
 
223
295
  // Live updates
224
296
  useEffect(() => {
225
- if (!isLive || !isValidDate || effectiveFormat !== 'relative') {
297
+ if (!isLive || !isValidDate || !isRelativeFormat(effectiveFormat)) {
226
298
  return;
227
299
  }
228
300
  const interval = getLiveInterval(diffSeconds);
@@ -242,11 +314,20 @@ export function Timestamp({
242
314
  // only on/off axis — so normalize it away before anything reads it.
243
315
  const entries = tooltipEntries !== undefined && tooltipEntries.length > 0 ? tooltipEntries : undefined;
244
316
 
245
- // Absolute formats have never carried a tooltip. Leaving that gate closed
246
- // when a consumer has explicitly configured tooltip lines would let `format`
247
- // silently suppress another prop's output, so entry presence opens it too.
248
- // With no entries this reduces to the original condition exactly.
249
- const showTooltip = hasTooltip && (effectiveFormat === 'relative' || entries !== undefined);
317
+ // Absolute formats have never carried a hover surface. Leaving that gate
318
+ // closed when a consumer has explicitly configured tooltip lines would let
319
+ // `format` silently suppress another prop's output, so entry presence opens
320
+ // it too. With no entries this reduces to the original condition exactly.
321
+ const showTooltip = hasTooltip && (isRelativeFormat(effectiveFormat) || entries !== undefined);
322
+
323
+ // The rows the hover card renders: the configured entries, or the single
324
+ // default absolute line shown when none are set. Either way the surface is
325
+ // the same copyable card — the default line is a one-row card carrying the
326
+ // full absolute time, itself copyable, just like a configured entry.
327
+ const lines = entries === undefined ? [{
328
+ value: fullAbsoluteText,
329
+ isCopyable: true
330
+ }] : formatTooltipLines(date, entries);
250
331
  const timestampProps = mergeProps(themeProps('timestamp', {
251
332
  format: effectiveFormat
252
333
  }), {
@@ -263,61 +344,43 @@ export function Timestamp({
263
344
  children: /*#__PURE__*/_jsx("time", {
264
345
  ref: mergeRefs(ref, timeRef),
265
346
  dateTime: isoString,
266
- "aria-label": effectiveFormat === 'relative' ? fullAbsoluteText : undefined
267
- // The absolute-time tooltip is anchored here with the default 'auto'
268
- // focus trigger, which only activates on focusable anchors. A bare
269
- // <time> is not focusable, so without a tab stop sighted keyboard
270
- // users could never reveal the tooltip (WCAG 1.4.13 / 2.1.1). Only
271
- // add the tab stop while a tooltip is actually attached — no
272
- // gratuitous tab stops otherwise.
347
+ "aria-label": isRelativeFormat(effectiveFormat) ? fullAbsoluteText : undefined
348
+ // The hover card is anchored here with focusTrigger="always", which
349
+ // attaches focus listeners but does not itself make the anchor
350
+ // focusable. A bare <time> is not focusable, so without a tab stop
351
+ // sighted keyboard users could never reveal the card (WCAG 1.4.13 /
352
+ // 2.1.1). Add the tab stop only while a card is actually attached — no
353
+ // gratuitous tab stops otherwise. The card carries its own
354
+ // dashed-underline hover indication as the affordance, so the anchor
355
+ // needs no separate focus outline.
273
356
  ,
274
357
  tabIndex: showTooltip ? 0 : undefined,
275
358
  "data-testid": testId,
276
359
  ...{
277
- 0: {
278
- className: "xt0psk2 xjb2p0i x1j61x8r x1qlqyl8 x15bjb6t x1heor9g x1pd3egz"
279
- },
280
- 1: {
281
- className: "xt0psk2 xjb2p0i x1j61x8r x1qlqyl8 x15bjb6t x1heor9g x1pd3egz x17nn4n9 x1wfwxd8 x7s97pk"
282
- }
283
- }[!!showTooltip << 0],
360
+ className: "xt0psk2 xjb2p0i x1j61x8r x1qlqyl8 x15bjb6t x1heor9g x1pd3egz"
361
+ },
284
362
  children: displayText
285
363
  })
286
364
  });
287
365
  if (showTooltip) {
288
- // Built inside the branch so a timestamp without a tooltip allocates none
289
- // of it. With no entries the content stays the bare string it has always
290
- // been — no wrapper element is introduced around the default line.
291
- const tooltipContent = entries === undefined ? fullAbsoluteText : /*#__PURE__*/_jsx("dl", {
292
- ...{
293
- className: "xrvj5dj x1pmbctz x1tw44j4 x10im51j xrxpjvj"
294
- },
295
- children: formatTooltipLines(date, entries).map((line, index) =>
296
- /*#__PURE__*/
297
- // eslint-disable-next-line @eslint-react/no-array-index-key -- tooltip lines are fixed positional slots and two entries may legitimately be identical
298
- _jsxs(Fragment, {
299
- children: [/*#__PURE__*/_jsx("dt", {
300
- ...{
301
- className: "x10im51j xrxpjvj xyri2b xepvkrk"
302
- },
303
- children: line.label ?? ''
304
- }), /*#__PURE__*/_jsx("dd", {
305
- ...{
306
- className: "x10im51j xrxpjvj"
307
- },
308
- children: line.value
309
- })]
310
- }, index))
311
- });
312
- return /*#__PURE__*/_jsxs(_Fragment, {
313
- children: [timeElement, /*#__PURE__*/_jsx(Suspense, {
314
- fallback: null,
315
- children: /*#__PURE__*/_jsx(LazyXDSTooltip, {
316
- anchorRef: timeRef,
317
- content: tooltipContent,
318
- placement: "above"
319
- })
320
- })]
366
+ // One surface for every timestamp that shows one: the copyable hover card,
367
+ // loaded lazily so the default card-less path never bundles it. Each line
368
+ // becomes a labelled row with its own copy button. With no configured
369
+ // entries this is a single row carrying the full absolute time, itself
370
+ // copyable — so hovering a relative timestamp reveals the full time and
371
+ // lets the reader copy it. Opens on hover and on keyboard focus (the
372
+ // <time> tab stop above), with the dashed-underline affordance signalling
373
+ // it is interactive.
374
+ //
375
+ // While the chunk loads the bare <time> stays visible (the Suspense
376
+ // fallback), so nothing disappears — the card simply attaches once ready.
377
+ return /*#__PURE__*/_jsx(Suspense, {
378
+ fallback: timeElement,
379
+ children: /*#__PURE__*/_jsx(LazyTimestampHoverCard, {
380
+ lines: lines,
381
+ label: t('@astryx.timestamp.detailsLabel'),
382
+ children: timeElement
383
+ })
321
384
  });
322
385
  }
323
386
  return timeElement;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @file TimestampHoverCard.tsx
3
+ * @input Uses React, HoverCard, IconButton, Icon, formatted lines
4
+ * @output Default-exports the lazily-loaded copyable hover card for Timestamp
5
+ * @position Split out of Timestamp so the overlay (HoverCard) and the copy
6
+ * affordance's Icon/IconButton load only when a card is actually shown — the
7
+ * default, card-less Timestamp never bundles this chunk.
8
+ *
9
+ * Layout: a semantic `<dl>` laid out as a grid. Labelled cards use three
10
+ * columns — label, value, and a trailing action column for copy buttons —
11
+ * so the buttons align down a single column no matter how wide each value
12
+ * is. The action column is only added when at least one row is copyable, so
13
+ * a fully read-only card carries no dangling gutter. Label-less cards drop
14
+ * the label column and stack to whatever columns remain.
15
+ *
16
+ * SYNC: When modified, update these files to stay in sync:
17
+ * - /packages/core/src/Timestamp/Timestamp.tsx (the lazy() + Suspense wrapper)
18
+ * - /packages/core/src/Timestamp/Timestamp.doc.mjs (theming.targets)
19
+ * - /packages/core/src/Timestamp/Timestamp.test.tsx
20
+ */
21
+ import type { ReactNode } from 'react';
22
+ import type { TimestampTooltipLine } from './tooltipEntries';
23
+ export interface TimestampHoverCardProps {
24
+ /** The rows to render, each a labelled instant, optionally copyable. */
25
+ lines: ReadonlyArray<TimestampTooltipLine>;
26
+ /** Accessible name for the card. */
27
+ label: string;
28
+ /** The anchor the card is attached to (the `<time>` element). */
29
+ children: ReactNode;
30
+ }
31
+ /**
32
+ * The copyable hover card for Timestamp. Renders a semantic `<dl>` as a grid:
33
+ * an optional label column, the value, and — when any row is copyable — a
34
+ * trailing action column carrying that row's copy button, so buttons align
35
+ * down one column. With a single default line this is a one-row card carrying
36
+ * the full absolute time, copyable. Opens on hover and on keyboard focus (the
37
+ * anchor's tab stop), with a dashed-underline affordance signalling it is
38
+ * interactive.
39
+ */
40
+ declare function TimestampHoverCard({ lines, label, children, }: TimestampHoverCardProps): ReactNode;
41
+ declare namespace TimestampHoverCard {
42
+ var displayName: string;
43
+ }
44
+ export default TimestampHoverCard;
45
+ //# sourceMappingURL=TimestampHoverCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimestampHoverCard.d.ts","sourceRoot":"","sources":["../../src/Timestamp/TimestampHoverCard.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAerC,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAoK3D,MAAM,WAAW,uBAAuB;IACtC,wEAAwE;IACxE,KAAK,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAC3C,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,QAAQ,EAAE,SAAS,CAAC;CACrB;AAkBD;;;;;;;;GAQG;AACH,iBAAwB,kBAAkB,CAAC,EACzC,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE,uBAAuB,GAAG,SAAS,CAsCrC;kBA1CuB,kBAAkB;;;eAAlB,kBAAkB"}
@@ -0,0 +1,228 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ 'use client';
4
+
5
+ /**
6
+ * @file TimestampHoverCard.tsx
7
+ * @input Uses React, HoverCard, IconButton, Icon, formatted lines
8
+ * @output Default-exports the lazily-loaded copyable hover card for Timestamp
9
+ * @position Split out of Timestamp so the overlay (HoverCard) and the copy
10
+ * affordance's Icon/IconButton load only when a card is actually shown — the
11
+ * default, card-less Timestamp never bundles this chunk.
12
+ *
13
+ * Layout: a semantic `<dl>` laid out as a grid. Labelled cards use three
14
+ * columns — label, value, and a trailing action column for copy buttons —
15
+ * so the buttons align down a single column no matter how wide each value
16
+ * is. The action column is only added when at least one row is copyable, so
17
+ * a fully read-only card carries no dangling gutter. Label-less cards drop
18
+ * the label column and stack to whatever columns remain.
19
+ *
20
+ * SYNC: When modified, update these files to stay in sync:
21
+ * - /packages/core/src/Timestamp/Timestamp.tsx (the lazy() + Suspense wrapper)
22
+ * - /packages/core/src/Timestamp/Timestamp.doc.mjs (theming.targets)
23
+ * - /packages/core/src/Timestamp/Timestamp.test.tsx
24
+ */
25
+ import { useCallback, useEffect, useRef, useState } from 'react';
26
+ import * as stylex from '@stylexjs/stylex';
27
+ import { HoverCard } from "../HoverCard/index.js";
28
+ import { IconButton } from "../IconButton/index.js";
29
+ import { Icon } from "../Icon/index.js";
30
+ import { useAnnounce } from "../hooks/useAnnounce.js";
31
+ import { useTranslator } from "../i18n/index.js";
32
+ import { themeProps } from "../utils/themeProps.js";
33
+ import "../theme/tokens.stylex.js";
34
+ import { colorVars, spacingVars, typeScaleVars, fontWeightVars } from "../theme/tokens.stylex.js";
35
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
36
+ const styles = {
37
+ dl: {
38
+ k1xSpc: "xrvj5dj",
39
+ kGNEyG: "x6s0dn4",
40
+ k1C7PZ: "xty4p9g",
41
+ khm7nJ: "x1x7z4sm",
42
+ kogj98: "x1ghz6dp",
43
+ kmVPX3: "x1717udv",
44
+ $$css: true
45
+ }
46
+ };
47
+
48
+ // Grid templates, selected per-card by which columns are present.
49
+ // - hasAnyLabel + hasAnyCopyable → label | value | action
50
+ // - hasAnyLabel only → label | value
51
+ // - hasAnyCopyable only → value | action
52
+ // - neither → value
53
+ const gridTemplates = {
54
+ labelValueAction: {
55
+ kumcoG: "x1g3yg12",
56
+ $$css: true
57
+ },
58
+ labelValue: {
59
+ kumcoG: "x1pmbctz",
60
+ $$css: true
61
+ },
62
+ valueAction: {
63
+ kumcoG: "x52fmzj",
64
+ $$css: true
65
+ },
66
+ value: {
67
+ kumcoG: "x1y6fwsi",
68
+ $$css: true
69
+ }
70
+ };
71
+
72
+ /** How long the copied checkmark stays before reverting to the copy icon. */
73
+ const COPY_FEEDBACK_MS = 1500;
74
+
75
+ /**
76
+ * The per-row copy affordance: a compact ghost `IconButton` that writes the
77
+ * row's value to the clipboard, flips `copy` → `check` for a moment, and
78
+ * announces the copy to a polite live region (a swapped aria-label alone
79
+ * isn't reliably announced). A clipboard rejection is a silent no-op.
80
+ *
81
+ * Kept as its own component so its state/timer/effect only exist for rows that
82
+ * actually opt into copying — read-only rows render no button and carry none
83
+ * of this machinery.
84
+ */
85
+ function CopyButton({
86
+ value
87
+ }) {
88
+ const t = useTranslator();
89
+ const announce = useAnnounce();
90
+ const [copied, setCopied] = useState(false);
91
+ const resetTimerRef = useRef(null);
92
+ useEffect(() => {
93
+ return () => {
94
+ if (resetTimerRef.current != null) {
95
+ clearTimeout(resetTimerRef.current);
96
+ }
97
+ };
98
+ }, []);
99
+ const handleCopy = useCallback(async () => {
100
+ try {
101
+ await navigator.clipboard.writeText(value);
102
+ setCopied(true);
103
+ announce(t('@astryx.timestamp.copied'));
104
+ // Restart the reset timer on every copy so a rapid re-copy isn't
105
+ // reverted early by the previous click's timer.
106
+ if (resetTimerRef.current != null) {
107
+ clearTimeout(resetTimerRef.current);
108
+ }
109
+ resetTimerRef.current = setTimeout(() => {
110
+ resetTimerRef.current = null;
111
+ setCopied(false);
112
+ }, COPY_FEEDBACK_MS);
113
+ } catch {
114
+ // Clipboard failures leave the copied state unchanged.
115
+ }
116
+ }, [value, announce, t]);
117
+ return /*#__PURE__*/_jsx(IconButton, {
118
+ variant: "ghost",
119
+ size: "sm",
120
+ icon: /*#__PURE__*/_jsx(Icon, {
121
+ icon: copied ? 'check' : 'copy',
122
+ size: "sm",
123
+ color: "inherit"
124
+ })
125
+ // Visible hover/focus hint via Button's built-in tooltip: 'Copy',
126
+ // flipping to 'Copied' after a successful copy in step with the icon.
127
+ // The full 'Copy <value>' string stays the aria-label for assistive tech.
128
+ ,
129
+ tooltip: t(copied ? '@astryx.timestamp.copied' : '@astryx.timestamp.copy'),
130
+ label: copied ? t('@astryx.timestamp.copied') : t('@astryx.timestamp.copyValue', {
131
+ value
132
+ }),
133
+ onClick: () => {
134
+ void handleCopy();
135
+ },
136
+ ...themeProps('timestamp-copy-button')
137
+ });
138
+ }
139
+
140
+ /**
141
+ * One row of the hover card: an optional label, the formatted instant, and —
142
+ * when the card reserves an action column — a trailing action cell holding the
143
+ * copy button (for a copyable row) or nothing (for a read-only row, so the
144
+ * columns stay aligned). Pure presentation: the copy state lives in
145
+ * {@link CopyButton}, which only copyable rows render.
146
+ */
147
+ function EntryRow({
148
+ line,
149
+ hasLabelColumn,
150
+ hasActionColumn
151
+ }) {
152
+ return /*#__PURE__*/_jsxs("div", {
153
+ ...{
154
+ className: "xjp7ctv"
155
+ },
156
+ children: [hasLabelColumn && /*#__PURE__*/_jsx("dt", {
157
+ ...{
158
+ className: "xv1l7n4 x141an7d x1ltkj2j x1sodnla x1ghz6dp x1717udv xuxw1ft"
159
+ },
160
+ children: line.label ?? ''
161
+ }), /*#__PURE__*/_jsx("dd", {
162
+ ...{
163
+ className: "x1tgivj0 xjm74w1 xw6l6zx x1sodnla x1ghz6dp x1717udv xuxw1ft"
164
+ },
165
+ children: line.value
166
+ }), hasActionColumn && /*#__PURE__*/_jsx("div", {
167
+ ...{
168
+ className: "x78zum5 x13a6bvl x6s0dn4"
169
+ },
170
+ children: line.isCopyable && /*#__PURE__*/_jsx(CopyButton, {
171
+ value: line.value
172
+ })
173
+ })]
174
+ });
175
+ }
176
+ function gridTemplateFor(hasLabelColumn, hasActionColumn) {
177
+ if (hasLabelColumn && hasActionColumn) {
178
+ return gridTemplates.labelValueAction;
179
+ }
180
+ if (hasLabelColumn) {
181
+ return gridTemplates.labelValue;
182
+ }
183
+ if (hasActionColumn) {
184
+ return gridTemplates.valueAction;
185
+ }
186
+ return gridTemplates.value;
187
+ }
188
+
189
+ /**
190
+ * The copyable hover card for Timestamp. Renders a semantic `<dl>` as a grid:
191
+ * an optional label column, the value, and — when any row is copyable — a
192
+ * trailing action column carrying that row's copy button, so buttons align
193
+ * down one column. With a single default line this is a one-row card carrying
194
+ * the full absolute time, copyable. Opens on hover and on keyboard focus (the
195
+ * anchor's tab stop), with a dashed-underline affordance signalling it is
196
+ * interactive.
197
+ */
198
+ export default function TimestampHoverCard({
199
+ lines,
200
+ label,
201
+ children
202
+ }) {
203
+ // A label column is only reserved when some row is labelled; otherwise the
204
+ // value sits flush at the card's leading edge. An action column is only
205
+ // reserved when some row is copyable (option B), so a fully read-only card
206
+ // has no trailing gutter.
207
+ const hasLabelColumn = lines.some(line => line.label != null && line.label !== '');
208
+ const hasActionColumn = lines.some(line => line.isCopyable);
209
+ const cardContent = /*#__PURE__*/_jsx("dl", {
210
+ ...stylex.props(styles.dl, gridTemplateFor(hasLabelColumn, hasActionColumn)),
211
+ children: lines.map((line, index) => /*#__PURE__*/_jsx(EntryRow
212
+ // eslint-disable-next-line @eslint-react/no-array-index-key -- rows are fixed positional slots and two entries may legitimately be identical
213
+ , {
214
+ line: line,
215
+ hasLabelColumn: hasLabelColumn,
216
+ hasActionColumn: hasActionColumn
217
+ }, index))
218
+ });
219
+ return /*#__PURE__*/_jsx(HoverCard, {
220
+ content: cardContent,
221
+ placement: "above",
222
+ focusTrigger: "always",
223
+ hasHoverIndication: true,
224
+ label: label,
225
+ children: children
226
+ });
227
+ }
228
+ TimestampHoverCard.displayName = 'TimestampHoverCard';
@@ -4,10 +4,10 @@ import type { TimestampFormat } from './Timestamp';
4
4
  * style ("February 19, 2026 at 5:00:00 PM UTC") that backs a relative
5
5
  * timestamp's accessible name and the tooltip's default line.
6
6
  *
7
- * `'relative'` and `'auto'` are excluded: a relative phrase names no instant,
8
- * so a zone could not change what it says.
7
+ * `'relative'`, `'relative_short'`, and `'auto'` are excluded: a relative
8
+ * phrase names no instant, so a zone could not change what it says.
9
9
  */
10
- export type InstantFormat = Exclude<TimestampFormat, 'relative' | 'auto'> | 'full';
10
+ export type InstantFormat = Exclude<TimestampFormat, 'relative' | 'relative_short' | 'auto'> | 'full';
11
11
  export interface FormatInstantOptions {
12
12
  /**
13
13
  * IANA time zone identifier. Omit for the viewer's own zone — which is what
@@ -1 +1 @@
1
- {"version":3,"file":"formatInstant.d.ts","sourceRoot":"","sources":["../../src/Timestamp/formatInstant.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAMjD;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GACrB,OAAO,CAAC,eAAe,EAAE,UAAU,GAAG,MAAM,CAAC,GAC7C,MAAM,CAAC;AAEX,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA6ED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,aAAa,EACrB,EAAC,QAAQ,EAAE,eAAuB,EAAC,GAAE,oBAAyB,GAC7D,MAAM,CA0DR"}
1
+ {"version":3,"file":"formatInstant.d.ts","sourceRoot":"","sources":["../../src/Timestamp/formatInstant.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAMjD;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GACvB,OAAO,CAAC,eAAe,EAAE,UAAU,GAAG,gBAAgB,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;AAE5E,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA6ED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,aAAa,EACrB,EAAC,QAAQ,EAAE,eAAuB,EAAC,GAAE,oBAAyB,GAC7D,MAAM,CAgER"}
@@ -40,8 +40,8 @@ import { SHARED_DATE_FORMAT_OPTIONS, getTimeZoneParts } from "../utils/plainDate
40
40
  * style ("February 19, 2026 at 5:00:00 PM UTC") that backs a relative
41
41
  * timestamp's accessible name and the tooltip's default line.
42
42
  *
43
- * `'relative'` and `'auto'` are excluded: a relative phrase names no instant,
44
- * so a zone could not change what it says.
43
+ * `'relative'`, `'relative_short'`, and `'auto'` are excluded: a relative
44
+ * phrase names no instant, so a zone could not change what it says.
45
45
  */
46
46
 
47
47
  // =============================================================================
@@ -173,5 +173,10 @@ export function formatInstant(date, format, {
173
173
  const w = getWallClock(date, timeZone);
174
174
  return `${pad(w.hour)}:${pad(w.minute)}:${pad(w.second)}`;
175
175
  }
176
+ case 'unix_seconds':
177
+ // Unix time in whole seconds since the epoch. The epoch is an absolute
178
+ // instant, so this is zone-independent — `timeZone` is intentionally
179
+ // ignored (a wall-clock zone can't change how many seconds have elapsed).
180
+ return String(Math.floor(date.getTime() / 1000));
176
181
  }
177
182
  }
@@ -4,8 +4,9 @@ import type { InstantFormat } from './formatInstant';
4
4
  *
5
5
  * Every `TimestampFormat` that names a fixed instant, plus `'full'` — the long
6
6
  * absolute style the tooltip has always shown ("February 19, 2026 at 5:00:00 PM
7
- * UTC"). `'relative'` and `'auto'` are excluded: a relative phrase ignores any
8
- * zone, which would make `timezoneID` silently inert on that line.
7
+ * UTC"). `'relative'`, `'relative_short'`, and `'auto'` are excluded: a
8
+ * relative phrase ignores any zone, which would make `timezoneID` silently
9
+ * inert on that line.
9
10
  *
10
11
  * `'full'` lives only in this vocabulary, never in `TimestampFormat` — nothing
11
12
  * asked for it as a visible display format, and keeping it out means new
@@ -40,11 +41,25 @@ export interface TimestampTooltipEntry {
40
41
  * Supplied already translated; Timestamp never invents or localizes labels.
41
42
  */
42
43
  label?: string;
44
+ /**
45
+ * Whether this row shows a copy-to-clipboard button, rendered in a dedicated
46
+ * trailing action column so the buttons line up across rows regardless of
47
+ * each value's width. The action column is only reserved when at least one
48
+ * row is copyable, so a fully read-only card has no trailing gutter.
49
+ *
50
+ * Defaults to `false` — rows are read-only unless opted in. Set `true` for a
51
+ * row whose value is worth pasting elsewhere, such as a machine-readable
52
+ * `system_date_time` value shown beside human-readable zones that only need
53
+ * to be read.
54
+ * @default false
55
+ */
56
+ isCopyable?: boolean;
43
57
  }
44
58
  /** A rendered tooltip line. */
45
59
  export interface TimestampTooltipLine {
46
60
  label?: string;
47
61
  value: string;
62
+ isCopyable: boolean;
48
63
  }
49
64
  /**
50
65
  * Renders one tooltip line per entry, in the order given.
@@ -1 +1 @@
1
- {"version":3,"file":"tooltipEntries.d.ts","sourceRoot":"","sources":["../../src/Timestamp/tooltipEntries.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAMnD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,sBAAsB,GAAG,aAAa,CAAC;AAEnD,yCAAyC;AACzC,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,+BAA+B;AAC/B,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAqGD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,aAAa,CAAC,qBAAqB,CAAC,GAC5C,aAAa,CAAC,oBAAoB,CAAC,CAoBrC"}
1
+ {"version":3,"file":"tooltipEntries.d.ts","sourceRoot":"","sources":["../../src/Timestamp/tooltipEntries.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAMnD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,sBAAsB,GAAG,aAAa,CAAC;AAEnD,yCAAyC;AACzC,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,+BAA+B;AAC/B,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;CACrB;AAqGD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,aAAa,CAAC,qBAAqB,CAAC,GAC5C,aAAa,CAAC,oBAAoB,CAAC,CAqBrC"}
@@ -33,8 +33,9 @@ import { formatInstant } from "./formatInstant.js";
33
33
  *
34
34
  * Every `TimestampFormat` that names a fixed instant, plus `'full'` — the long
35
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.
36
+ * UTC"). `'relative'`, `'relative_short'`, and `'auto'` are excluded: a
37
+ * relative phrase ignores any zone, which would make `timezoneID` silently
38
+ * inert on that line.
38
39
  *
39
40
  * `'full'` lives only in this vocabulary, never in `TimestampFormat` — nothing
40
41
  * asked for it as a visible display format, and keeping it out means new
@@ -154,6 +155,7 @@ export function formatTooltipLines(date, entries) {
154
155
  ...(entry.label === undefined ? {} : {
155
156
  label: entry.label
156
157
  }),
158
+ isCopyable: entry.isCopyable ?? false,
157
159
  value: formatInstant(date, format, {
158
160
  timeZone,
159
161
  isTimezoneShown: shouldShowZoneName(format, hasMultipleZones, timeZone !== undefined)