@astryxdesign/core 0.1.4 → 0.1.5-canary.76e6697

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 (635) hide show
  1. package/CHANGELOG.md +141 -0
  2. package/dist/AlertDialog/AlertDialog.d.ts +1 -1
  3. package/dist/AlertDialog/AlertDialog.d.ts.map +1 -1
  4. package/dist/AlertDialog/AlertDialog.js +20 -18
  5. package/dist/AlertDialog/useImperativeAlertDialog.d.ts +0 -2
  6. package/dist/AlertDialog/useImperativeAlertDialog.d.ts.map +1 -1
  7. package/dist/AlertDialog/useImperativeAlertDialog.js +3 -5
  8. package/dist/AppShell/AppShell.d.ts +1 -1
  9. package/dist/AppShell/AppShell.d.ts.map +1 -1
  10. package/dist/AppShell/AppShell.js +55 -53
  11. package/dist/AspectRatio/AspectRatio.d.ts +48 -10
  12. package/dist/AspectRatio/AspectRatio.d.ts.map +1 -1
  13. package/dist/AspectRatio/AspectRatio.js +33 -12
  14. package/dist/AspectRatio/index.d.ts +1 -1
  15. package/dist/AspectRatio/index.d.ts.map +1 -1
  16. package/dist/Avatar/Avatar.d.ts.map +1 -1
  17. package/dist/Avatar/Avatar.js +28 -26
  18. package/dist/Avatar/AvatarStatusDot.js +6 -6
  19. package/dist/AvatarGroup/AvatarGroup.js +6 -6
  20. package/dist/AvatarGroup/AvatarGroupOverflow.js +7 -7
  21. package/dist/Badge/Badge.js +3 -3
  22. package/dist/Banner/Banner.d.ts.map +1 -1
  23. package/dist/Banner/Banner.js +32 -25
  24. package/dist/Blockquote/Blockquote.js +7 -7
  25. package/dist/Breadcrumbs/BreadcrumbItem.js +17 -17
  26. package/dist/Breadcrumbs/Breadcrumbs.js +7 -7
  27. package/dist/Button/Button.js +19 -19
  28. package/dist/ButtonGroup/ButtonGroup.js +7 -7
  29. package/dist/Calendar/Calendar.d.ts.map +1 -1
  30. package/dist/Calendar/Calendar.js +68 -48
  31. package/dist/Calendar/dayCellUtils.d.ts.map +1 -1
  32. package/dist/Calendar/styles.d.ts +2 -2
  33. package/dist/Calendar/styles.d.ts.map +1 -1
  34. package/dist/Calendar/styles.js +2 -2
  35. package/dist/Card/Card.d.ts +4 -2
  36. package/dist/Card/Card.d.ts.map +1 -1
  37. package/dist/Card/Card.js +18 -10
  38. package/dist/Carousel/Carousel.d.ts.map +1 -1
  39. package/dist/Carousel/Carousel.js +24 -21
  40. package/dist/Center/Center.js +3 -3
  41. package/dist/Chat/ChatComposer.js +23 -23
  42. package/dist/Chat/ChatComposerDrawer.js +14 -14
  43. package/dist/Chat/ChatComposerInput.d.ts +1 -1
  44. package/dist/Chat/ChatComposerInput.d.ts.map +1 -1
  45. package/dist/Chat/ChatComposerInput.js +27 -15
  46. package/dist/Chat/ChatDictationButton.d.ts +1 -1
  47. package/dist/Chat/ChatDictationButton.d.ts.map +1 -1
  48. package/dist/Chat/ChatDictationButton.js +13 -11
  49. package/dist/Chat/ChatLayout.js +17 -17
  50. package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
  51. package/dist/Chat/ChatLayoutScrollButton.d.ts.map +1 -1
  52. package/dist/Chat/ChatLayoutScrollButton.js +12 -10
  53. package/dist/Chat/ChatMessage.js +12 -12
  54. package/dist/Chat/ChatMessageBubble.js +7 -7
  55. package/dist/Chat/ChatMessageList.js +14 -14
  56. package/dist/Chat/ChatMessageMetadata.d.ts +1 -1
  57. package/dist/Chat/ChatMessageMetadata.d.ts.map +1 -1
  58. package/dist/Chat/ChatMessageMetadata.js +14 -12
  59. package/dist/Chat/ChatPastedTextToken.js +13 -13
  60. package/dist/Chat/ChatSendButton.js +3 -3
  61. package/dist/Chat/ChatSystemMessage.d.ts +1 -1
  62. package/dist/Chat/ChatSystemMessage.d.ts.map +1 -1
  63. package/dist/Chat/ChatSystemMessage.js +17 -17
  64. package/dist/Chat/ChatTokenizedText.d.ts +1 -1
  65. package/dist/Chat/ChatTokenizedText.d.ts.map +1 -1
  66. package/dist/Chat/ChatTokenizedText.js +24 -15
  67. package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
  68. package/dist/Chat/ChatToolCalls.js +81 -74
  69. package/dist/Chat/index.d.ts +1 -1
  70. package/dist/Chat/index.d.ts.map +1 -1
  71. package/dist/Chat/useTriggerMenu.d.ts.map +1 -1
  72. package/dist/Chat/useTriggerMenu.js +15 -15
  73. package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
  74. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  75. package/dist/CheckboxInput/CheckboxInput.js +25 -23
  76. package/dist/CheckboxList/CheckboxList.js +9 -9
  77. package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
  78. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  79. package/dist/CheckboxList/CheckboxListItem.js +8 -6
  80. package/dist/Citation/Citation.js +10 -10
  81. package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
  82. package/dist/ClickableCard/ClickableCard.js +32 -9
  83. package/dist/Code/Code.js +3 -3
  84. package/dist/CodeBlock/CodeBlock.d.ts +10 -1
  85. package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
  86. package/dist/CodeBlock/CodeBlock.js +88 -52
  87. package/dist/Collapsible/Collapsible.d.ts +9 -3
  88. package/dist/Collapsible/Collapsible.d.ts.map +1 -1
  89. package/dist/Collapsible/Collapsible.js +109 -22
  90. package/dist/Collapsible/CollapsibleGroup.d.ts +37 -7
  91. package/dist/Collapsible/CollapsibleGroup.d.ts.map +1 -1
  92. package/dist/Collapsible/CollapsibleGroup.js +64 -12
  93. package/dist/Collapsible/CollapsibleGroupContext.d.ts +24 -0
  94. package/dist/Collapsible/CollapsibleGroupContext.d.ts.map +1 -1
  95. package/dist/Collapsible/CollapsibleGroupContext.js +26 -3
  96. package/dist/Collapsible/index.d.ts +1 -0
  97. package/dist/Collapsible/index.d.ts.map +1 -1
  98. package/dist/Collapsible/useCollapsible.d.ts +4 -1
  99. package/dist/Collapsible/useCollapsible.d.ts.map +1 -1
  100. package/dist/Collapsible/useCollapsible.js +20 -6
  101. package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
  102. package/dist/CommandPalette/CommandPalette.js +36 -34
  103. package/dist/CommandPalette/CommandPaletteEmpty.js +3 -3
  104. package/dist/CommandPalette/CommandPaletteFooter.js +16 -16
  105. package/dist/CommandPalette/CommandPaletteGroup.js +5 -5
  106. package/dist/CommandPalette/CommandPaletteInput.js +13 -13
  107. package/dist/CommandPalette/CommandPaletteItem.js +3 -3
  108. package/dist/CommandPalette/CommandPaletteList.js +3 -3
  109. package/dist/ContextMenu/ContextMenu.d.ts +7 -2
  110. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  111. package/dist/ContextMenu/ContextMenu.js +76 -43
  112. package/dist/DateInput/DateInput.js +18 -18
  113. package/dist/DateRangeInput/DateRangeInput.js +21 -21
  114. package/dist/DateTimeInput/DateTimeInput.d.ts +5 -2
  115. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  116. package/dist/DateTimeInput/DateTimeInput.js +30 -26
  117. package/dist/DateTimeInput/index.d.ts +1 -1
  118. package/dist/DateTimeInput/index.d.ts.map +1 -1
  119. package/dist/Dialog/Dialog.js +9 -9
  120. package/dist/Dialog/DialogHeader.js +16 -16
  121. package/dist/Dialog/useImperativeDialog.js +3 -3
  122. package/dist/Divider/Divider.js +7 -7
  123. package/dist/DropdownMenu/DropdownMenu.js +10 -10
  124. package/dist/DropdownMenu/DropdownMenuItem.d.ts +2 -17
  125. package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  126. package/dist/DropdownMenu/DropdownMenuItem.js +3 -3
  127. package/dist/DropdownMenu/renderDropdownItems.js +10 -10
  128. package/dist/EmptyState/EmptyState.js +9 -9
  129. package/dist/Field/Field.js +17 -17
  130. package/dist/Field/FieldLabel.js +15 -15
  131. package/dist/Field/InputClearButton.js +5 -5
  132. package/dist/FieldStatus/FieldStatus.js +3 -3
  133. package/dist/FileInput/FileInput.js +29 -29
  134. package/dist/FormLayout/FormLayout.js +5 -5
  135. package/dist/Grid/Grid.d.ts +4 -3
  136. package/dist/Grid/Grid.d.ts.map +1 -1
  137. package/dist/Grid/Grid.js +29 -12
  138. package/dist/Grid/GridSpan.js +3 -3
  139. package/dist/HStack/HStack.js +3 -3
  140. package/dist/Heading/Heading.js +10 -10
  141. package/dist/HoverCard/HoverCard.js +9 -9
  142. package/dist/HoverCard/useHoverCard.d.ts +5 -1
  143. package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
  144. package/dist/HoverCard/useHoverCard.js +3 -3
  145. package/dist/Icon/Icon.d.ts.map +1 -1
  146. package/dist/Icon/Icon.js +16 -12
  147. package/dist/Icon/defaultIcons.js +116 -116
  148. package/dist/IconButton/IconButton.js +3 -3
  149. package/dist/InputGroup/InputGroup.js +11 -11
  150. package/dist/InputGroup/InputGroupText.js +3 -3
  151. package/dist/Item/Item.js +18 -18
  152. package/dist/Kbd/Kbd.js +5 -5
  153. package/dist/Layer/LayerProvider.js +7 -7
  154. package/dist/Layer/useLayer.d.ts +29 -2
  155. package/dist/Layer/useLayer.d.ts.map +1 -1
  156. package/dist/Layer/useLayer.js +44 -31
  157. package/dist/Layout/Layout.js +21 -21
  158. package/dist/Layout/LayoutContent.js +3 -3
  159. package/dist/Layout/LayoutFooter.js +5 -5
  160. package/dist/Layout/LayoutHeader.js +5 -5
  161. package/dist/Layout/LayoutPanel.js +3 -3
  162. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  163. package/dist/Lightbox/Lightbox.js +55 -31
  164. package/dist/Lightbox/useLightbox.d.ts +0 -1
  165. package/dist/Lightbox/useLightbox.d.ts.map +1 -1
  166. package/dist/Lightbox/useLightbox.js +3 -4
  167. package/dist/Link/Link.d.ts +0 -2
  168. package/dist/Link/Link.d.ts.map +1 -1
  169. package/dist/Link/Link.js +15 -17
  170. package/dist/Link/LinkProvider.js +3 -3
  171. package/dist/Link/useLinkify.js +3 -3
  172. package/dist/List/List.js +11 -11
  173. package/dist/List/ListItem.js +11 -11
  174. package/dist/Markdown/Markdown.d.ts.map +1 -1
  175. package/dist/Markdown/Markdown.js +102 -102
  176. package/dist/MetadataList/MetadataList.js +10 -10
  177. package/dist/MetadataList/MetadataListItem.js +15 -15
  178. package/dist/MobileNav/MobileNav.d.ts +1 -1
  179. package/dist/MobileNav/MobileNav.d.ts.map +1 -1
  180. package/dist/MobileNav/MobileNav.js +26 -23
  181. package/dist/MobileNav/MobileNavToggle.js +5 -5
  182. package/dist/MoreMenu/MoreMenu.js +3 -3
  183. package/dist/MultiSelector/MultiSelector.js +56 -56
  184. package/dist/NavIcon/NavIcon.js +3 -3
  185. package/dist/NavMenu/NavHeadingMenu.js +5 -5
  186. package/dist/NavMenu/NavHeadingMenuItem.js +8 -8
  187. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  188. package/dist/NumberInput/NumberInput.js +48 -32
  189. package/dist/Outline/Outline.js +15 -15
  190. package/dist/OverflowList/OverflowList.js +8 -8
  191. package/dist/Overlay/Overlay.js +3 -3
  192. package/dist/Overlay/OverlayScrim.js +5 -5
  193. package/dist/Overlay/useOverlay.d.ts +0 -3
  194. package/dist/Overlay/useOverlay.d.ts.map +1 -1
  195. package/dist/Overlay/useOverlay.js +3 -6
  196. package/dist/Pagination/Pagination.d.ts +1 -1
  197. package/dist/Pagination/Pagination.d.ts.map +1 -1
  198. package/dist/Pagination/Pagination.js +125 -72
  199. package/dist/Popover/Popover.js +16 -16
  200. package/dist/Popover/usePopover.js +7 -7
  201. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  202. package/dist/PowerSearch/PowerSearch.js +110 -92
  203. package/dist/PowerSearch/PowerSearchEditPopover.js +84 -84
  204. package/dist/PowerSearch/PowerSearchFilterEditor.js +3 -3
  205. package/dist/PowerSearch/PowerSearchToken.js +5 -5
  206. package/dist/PowerSearch/PowerSearchValueEditor.js +54 -54
  207. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  208. package/dist/ProgressBar/ProgressBar.js +25 -18
  209. package/dist/RadioList/RadioList.js +7 -7
  210. package/dist/RadioList/RadioListItem.d.ts +1 -1
  211. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  212. package/dist/RadioList/RadioListItem.js +24 -21
  213. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  214. package/dist/Resizable/ResizeHandle.js +28 -10
  215. package/dist/Section/Section.js +5 -5
  216. package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
  217. package/dist/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  218. package/dist/SegmentedControl/SegmentedControl.js +32 -10
  219. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  220. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  221. package/dist/SegmentedControl/SegmentedControlItem.js +18 -12
  222. package/dist/SelectableCard/SelectableCard.js +5 -5
  223. package/dist/Selector/Selector.js +46 -46
  224. package/dist/Selector/SelectorOption.js +3 -3
  225. package/dist/SideNav/SideNav.d.ts.map +1 -1
  226. package/dist/SideNav/SideNav.js +38 -34
  227. package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
  228. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  229. package/dist/SideNav/SideNavCollapseButton.js +8 -6
  230. package/dist/SideNav/SideNavHeading.js +87 -87
  231. package/dist/SideNav/SideNavItem.js +42 -42
  232. package/dist/SideNav/SideNavSection.d.ts +1 -1
  233. package/dist/SideNav/SideNavSection.d.ts.map +1 -1
  234. package/dist/SideNav/SideNavSection.js +18 -16
  235. package/dist/Skeleton/Skeleton.js +3 -3
  236. package/dist/Slider/Slider.js +23 -23
  237. package/dist/Spinner/Spinner.js +9 -9
  238. package/dist/StatusDot/StatusDot.js +5 -5
  239. package/dist/Switch/Switch.d.ts +8 -4
  240. package/dist/Switch/Switch.d.ts.map +1 -1
  241. package/dist/Switch/Switch.js +34 -29
  242. package/dist/TabList/Tab.js +18 -18
  243. package/dist/TabList/TabList.js +5 -5
  244. package/dist/TabList/TabMenu.d.ts.map +1 -1
  245. package/dist/TabList/TabMenu.js +57 -30
  246. package/dist/TabList/tab.markers.stylex.d.ts +1 -1
  247. package/dist/Table/BaseTable.d.ts.map +1 -1
  248. package/dist/Table/BaseTable.js +50 -39
  249. package/dist/Table/Table.js +7 -7
  250. package/dist/Table/TableBody.d.ts +1 -1
  251. package/dist/Table/TableBody.d.ts.map +1 -1
  252. package/dist/Table/TableBody.js +9 -5
  253. package/dist/Table/TableCell.js +3 -3
  254. package/dist/Table/TableFooter.d.ts +1 -1
  255. package/dist/Table/TableFooter.d.ts.map +1 -1
  256. package/dist/Table/TableFooter.js +9 -5
  257. package/dist/Table/TableHeader.d.ts +1 -1
  258. package/dist/Table/TableHeader.d.ts.map +1 -1
  259. package/dist/Table/TableHeader.js +9 -5
  260. package/dist/Table/TableHeaderCell.js +3 -3
  261. package/dist/Table/TableRow.js +5 -5
  262. package/dist/Table/index.d.ts +2 -0
  263. package/dist/Table/index.d.ts.map +1 -1
  264. package/dist/Table/index.js +1 -0
  265. package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
  266. package/dist/Table/plugins/columnResize/useTableColumnResize.js +14 -11
  267. package/dist/Table/plugins/filtering/useTableFiltering.js +71 -71
  268. package/dist/Table/plugins/groupedRows/index.d.ts +3 -0
  269. package/dist/Table/plugins/groupedRows/index.d.ts.map +1 -0
  270. package/dist/Table/plugins/groupedRows/index.js +3 -0
  271. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts +78 -0
  272. package/dist/Table/plugins/groupedRows/useTableGroupedRows.d.ts.map +1 -0
  273. package/dist/Table/plugins/groupedRows/useTableGroupedRows.js +250 -0
  274. package/dist/Table/plugins/pagination/paginateData.d.ts.map +1 -1
  275. package/dist/Table/plugins/pagination/paginateData.js +5 -1
  276. package/dist/Table/plugins/pagination/useTablePagination.js +7 -7
  277. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +1 -1
  278. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +23 -23
  279. package/dist/Table/plugins/selection/useTableSelection.js +18 -18
  280. package/dist/Table/plugins/selection/useTableSelectionState.d.ts.map +1 -1
  281. package/dist/Table/plugins/selection/useTableSelectionState.js +11 -1
  282. package/dist/Table/plugins/sortable/useTableSortable.js +17 -17
  283. package/dist/Table/plugins/sortable/useTableSortableState.d.ts.map +1 -1
  284. package/dist/Table/plugins/sortable/useTableSortableState.js +8 -4
  285. package/dist/Table/tableContextMenu.js +9 -9
  286. package/dist/Text/Text.js +10 -10
  287. package/dist/TextArea/TextArea.js +14 -14
  288. package/dist/TextInput/TextInput.js +15 -15
  289. package/dist/Thumbnail/Thumbnail.d.ts +3 -2
  290. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  291. package/dist/Thumbnail/Thumbnail.js +30 -29
  292. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  293. package/dist/TimeInput/TimeInput.js +26 -21
  294. package/dist/Timestamp/Timestamp.d.ts +1 -1
  295. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  296. package/dist/Timestamp/Timestamp.js +37 -26
  297. package/dist/Toast/Toast.d.ts.map +1 -1
  298. package/dist/Toast/Toast.js +25 -17
  299. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  300. package/dist/Toast/ToastViewport.js +23 -11
  301. package/dist/Toast/useToast.d.ts.map +1 -1
  302. package/dist/Toast/useToast.js +44 -4
  303. package/dist/ToggleButton/ToggleButton.js +12 -12
  304. package/dist/ToggleButton/ToggleButtonGroup.js +5 -5
  305. package/dist/Token/Token.js +21 -21
  306. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  307. package/dist/Tokenizer/Tokenizer.js +36 -34
  308. package/dist/Toolbar/Toolbar.js +18 -18
  309. package/dist/Tooltip/Tooltip.js +11 -11
  310. package/dist/Tooltip/useTooltip.d.ts +5 -1
  311. package/dist/Tooltip/useTooltip.d.ts.map +1 -1
  312. package/dist/Tooltip/useTooltip.js +3 -3
  313. package/dist/TopNav/TopNav.js +32 -32
  314. package/dist/TopNav/TopNavHeading.js +67 -67
  315. package/dist/TopNav/TopNavItem.js +5 -5
  316. package/dist/TopNav/TopNavMegaMenu.js +30 -30
  317. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
  318. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts.map +1 -1
  319. package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +25 -14
  320. package/dist/TopNav/TopNavMegaMenuItem.js +16 -16
  321. package/dist/TopNav/TopNavMenu.js +32 -32
  322. package/dist/TreeList/TreeList.js +8 -8
  323. package/dist/TreeList/TreeListBranches.js +11 -11
  324. package/dist/TreeList/TreeListItem.js +30 -30
  325. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  326. package/dist/Typeahead/BaseTypeahead.js +23 -20
  327. package/dist/Typeahead/Typeahead.js +12 -12
  328. package/dist/Typeahead/TypeaheadItem.js +10 -10
  329. package/dist/VStack/VStack.js +3 -3
  330. package/dist/VisuallyHidden/VisuallyHidden.d.ts +0 -3
  331. package/dist/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
  332. package/dist/VisuallyHidden/VisuallyHidden.js +0 -3
  333. package/dist/astryx.css +7 -0
  334. package/dist/astryx.umd.js +63 -63
  335. package/dist/astryx.umd.js.map +4 -4
  336. package/dist/docs-types.d.ts +8 -2
  337. package/dist/docs-types.d.ts.map +1 -1
  338. package/dist/hooks/focusableSelector.d.ts +1 -1
  339. package/dist/hooks/focusableSelector.d.ts.map +1 -1
  340. package/dist/hooks/focusableSelector.js +1 -1
  341. package/dist/hooks/index.d.ts +2 -0
  342. package/dist/hooks/index.d.ts.map +1 -1
  343. package/dist/hooks/index.js +1 -0
  344. package/dist/hooks/useFocusTrap.d.ts +3 -0
  345. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  346. package/dist/hooks/useFocusTrap.js +38 -1
  347. package/dist/hooks/useHotkeys.d.ts +51 -0
  348. package/dist/hooks/useHotkeys.d.ts.map +1 -0
  349. package/dist/hooks/useHotkeys.js +160 -0
  350. package/dist/hooks/useInteractiveRole.d.ts +6 -2
  351. package/dist/hooks/useInteractiveRole.d.ts.map +1 -1
  352. package/dist/hooks/useInteractiveRole.js +6 -2
  353. package/dist/hooks/useKeyboardHint.js +9 -9
  354. package/dist/hooks/useStreamingText.d.ts +3 -1
  355. package/dist/hooks/useStreamingText.d.ts.map +1 -1
  356. package/dist/hooks/useStreamingText.js +14 -5
  357. package/dist/theme/MediaTheme.js +3 -3
  358. package/dist/theme/Theme.js +7 -7
  359. package/dist/theme/defineTheme.d.ts +1 -1
  360. package/dist/theme/defineTheme.d.ts.map +1 -1
  361. package/dist/theme/expandColorScale.d.ts.map +1 -1
  362. package/dist/theme/expandColorScale.js +10 -3
  363. package/dist/theme/hct.d.ts +0 -15
  364. package/dist/theme/hct.d.ts.map +1 -1
  365. package/dist/theme/hct.js +9 -9
  366. package/dist/theme/syntax/SyntaxTheme.js +5 -5
  367. package/dist/theme/tokens.d.ts +10 -2
  368. package/dist/theme/tokens.d.ts.map +1 -1
  369. package/dist/theme/tokens.js +220 -4
  370. package/dist/theme/useTheme.d.ts +3 -2
  371. package/dist/theme/useTheme.d.ts.map +1 -1
  372. package/dist/theme/useTheme.js +73 -6
  373. package/dist/utils/color.d.ts +42 -0
  374. package/dist/utils/color.d.ts.map +1 -0
  375. package/dist/utils/color.js +150 -0
  376. package/dist/utils/composeEventHandlers.d.ts +30 -0
  377. package/dist/utils/composeEventHandlers.d.ts.map +1 -0
  378. package/dist/utils/composeEventHandlers.js +40 -0
  379. package/dist/utils/index.d.ts +3 -0
  380. package/dist/utils/index.d.ts.map +1 -1
  381. package/dist/utils/index.js +3 -1
  382. package/dist/utils/timeParser.d.ts.map +1 -1
  383. package/dist/utils/timeParser.js +8 -5
  384. package/package.json +4 -4
  385. package/src/AlertDialog/AlertDialog.doc.mjs +4 -0
  386. package/src/AlertDialog/AlertDialog.tsx +2 -0
  387. package/src/AlertDialog/useImperativeAlertDialog.tsx +0 -2
  388. package/src/AppShell/AppShell.tsx +2 -0
  389. package/src/AspectRatio/AspectRatio.doc.mjs +28 -1
  390. package/src/AspectRatio/AspectRatio.test.tsx +142 -1
  391. package/src/AspectRatio/AspectRatio.tsx +70 -10
  392. package/src/AspectRatio/index.ts +5 -1
  393. package/src/Avatar/Avatar.doc.mjs +11 -0
  394. package/src/Avatar/Avatar.test.tsx +32 -1
  395. package/src/Avatar/Avatar.tsx +14 -22
  396. package/src/Avatar/AvatarStatusDot.tsx +2 -2
  397. package/src/AvatarGroup/AvatarGroup.doc.mjs +1 -0
  398. package/src/AvatarGroup/AvatarGroup.tsx +2 -2
  399. package/src/AvatarGroup/AvatarGroupOverflow.tsx +2 -2
  400. package/src/Banner/Banner.doc.mjs +8 -0
  401. package/src/Banner/Banner.test.tsx +38 -0
  402. package/src/Banner/Banner.tsx +8 -1
  403. package/src/Calendar/Calendar.doc.mjs +1 -1
  404. package/src/Calendar/Calendar.test.tsx +122 -17
  405. package/src/Calendar/Calendar.tsx +26 -5
  406. package/src/Calendar/dayCellUtils.ts +3 -1
  407. package/src/Calendar/styles.ts +12 -2
  408. package/src/Card/Card.doc.mjs +1 -1
  409. package/src/Card/Card.tsx +16 -6
  410. package/src/Carousel/Carousel.doc.mjs +12 -12
  411. package/src/Carousel/Carousel.test.tsx +13 -0
  412. package/src/Carousel/Carousel.tsx +4 -2
  413. package/src/Chat/Chat.doc.mjs +1 -1
  414. package/src/Chat/ChatComposerInput.test.tsx +27 -1
  415. package/src/Chat/ChatComposerInput.tsx +20 -15
  416. package/src/Chat/ChatDictationButton.test.tsx +43 -0
  417. package/src/Chat/ChatDictationButton.tsx +4 -4
  418. package/src/Chat/ChatLayoutScrollButton.test.tsx +33 -0
  419. package/src/Chat/ChatLayoutScrollButton.tsx +3 -1
  420. package/src/Chat/ChatMessageMetadata.test.tsx +32 -0
  421. package/src/Chat/ChatMessageMetadata.tsx +4 -6
  422. package/src/Chat/ChatSystemMessage.test.tsx +26 -11
  423. package/src/Chat/ChatSystemMessage.tsx +7 -7
  424. package/src/Chat/ChatTokenizedText.test.tsx +29 -16
  425. package/src/Chat/ChatTokenizedText.tsx +15 -8
  426. package/src/Chat/ChatToolCalls.test.tsx +55 -0
  427. package/src/Chat/ChatToolCalls.tsx +10 -12
  428. package/src/Chat/index.ts +1 -4
  429. package/src/Chat/useTriggerMenu.tsx +1 -4
  430. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
  431. package/src/CheckboxInput/CheckboxInput.test.tsx +71 -4
  432. package/src/CheckboxInput/CheckboxInput.tsx +2 -0
  433. package/src/CheckboxList/CheckboxList.test.tsx +19 -0
  434. package/src/CheckboxList/CheckboxListItem.tsx +11 -2
  435. package/src/Citation/Citation.doc.mjs +5 -0
  436. package/src/ClickableCard/ClickableCard.tsx +45 -2
  437. package/src/CodeBlock/CodeBlock.doc.mjs +7 -2
  438. package/src/CodeBlock/CodeBlock.test.tsx +122 -3
  439. package/src/CodeBlock/CodeBlock.tsx +62 -4
  440. package/src/Collapsible/Collapsible.doc.mjs +8 -4
  441. package/src/Collapsible/Collapsible.test.tsx +403 -0
  442. package/src/Collapsible/Collapsible.tsx +85 -10
  443. package/src/Collapsible/CollapsibleGroup.doc.mjs +27 -3
  444. package/src/Collapsible/CollapsibleGroup.test.tsx +314 -0
  445. package/src/Collapsible/CollapsibleGroup.tsx +97 -9
  446. package/src/Collapsible/CollapsibleGroupContext.tsx +34 -2
  447. package/src/Collapsible/index.ts +1 -0
  448. package/src/Collapsible/useCollapsible.ts +20 -6
  449. package/src/CommandPalette/CommandPalette.doc.mjs +5 -0
  450. package/src/CommandPalette/CommandPalette.tsx +5 -3
  451. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +5 -0
  452. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +10 -0
  453. package/src/CommandPalette/CommandPaletteInput.doc.mjs +6 -0
  454. package/src/CommandPalette/CommandPaletteItem.doc.mjs +6 -0
  455. package/src/CommandPalette/CommandPaletteList.doc.mjs +9 -0
  456. package/src/ContextMenu/ContextMenu.doc.mjs +15 -0
  457. package/src/ContextMenu/ContextMenu.test.tsx +87 -0
  458. package/src/ContextMenu/ContextMenu.tsx +87 -28
  459. package/src/ContextMenu/ContextMenuItem.doc.mjs +6 -0
  460. package/src/DateInput/DateInput.test.tsx +11 -20
  461. package/src/DateRangeInput/DateRangeInput.doc.mjs +9 -6
  462. package/src/DateRangeInput/DateRangeInput.test.tsx +31 -44
  463. package/src/DateTimeInput/DateTimeInput.doc.mjs +3 -2
  464. package/src/DateTimeInput/DateTimeInput.test.tsx +118 -16
  465. package/src/DateTimeInput/DateTimeInput.tsx +8 -2
  466. package/src/DateTimeInput/index.ts +1 -0
  467. package/src/Dialog/Dialog.doc.mjs +4 -0
  468. package/src/Dialog/DialogHeader.doc.mjs +45 -0
  469. package/src/DropdownMenu/DropdownMenu.doc.mjs +1 -1
  470. package/src/DropdownMenu/DropdownMenu.test.tsx +22 -2
  471. package/src/DropdownMenu/DropdownMenuItem.tsx +5 -17
  472. package/src/EmptyState/EmptyState.doc.mjs +1 -1
  473. package/src/Field/Field.test.tsx +1 -4
  474. package/src/Field/FieldLabel.test.tsx +2 -2
  475. package/src/FieldStatus/FieldStatus.test.tsx +282 -0
  476. package/src/FormLayout/__snapshots__/FormLayout.test.tsx.snap +0 -3
  477. package/src/Grid/Grid.test.tsx +43 -18
  478. package/src/Grid/Grid.tsx +26 -9
  479. package/src/HoverCard/HoverCard.doc.mjs +6 -6
  480. package/src/HoverCard/useHoverCard.doc.mjs +5 -5
  481. package/src/HoverCard/useHoverCard.tsx +9 -2
  482. package/src/Icon/Icon.test.tsx +41 -29
  483. package/src/Icon/Icon.tsx +6 -2
  484. package/src/InputGroup/InputGroup.doc.mjs +1 -0
  485. package/src/InputGroup/InputGroup.tsx +2 -2
  486. package/src/InteractiveRoleContext/InteractiveRoleContext.test.tsx +185 -0
  487. package/src/Item/Item.tsx +1 -1
  488. package/src/Layer/useLayer.doc.mjs +2 -2
  489. package/src/Layer/useLayer.test.tsx +221 -2
  490. package/src/Layer/useLayer.tsx +69 -30
  491. package/src/Layout/Layout.test.tsx +285 -0
  492. package/src/Layout/LayoutContent.doc.mjs +12 -0
  493. package/src/Layout/LayoutPanel.doc.mjs +40 -0
  494. package/src/Layout/LayoutSlots.test.tsx +364 -0
  495. package/src/Lightbox/Lightbox.doc.mjs +5 -0
  496. package/src/Lightbox/Lightbox.test.tsx +123 -2
  497. package/src/Lightbox/Lightbox.tsx +29 -1
  498. package/src/Lightbox/useLightbox.tsx +0 -1
  499. package/src/Link/Link.tsx +0 -2
  500. package/src/Markdown/Markdown.tsx +9 -7
  501. package/src/Markdown/parser.perf.test.ts +34 -12
  502. package/src/MobileNav/MobileNav.test.tsx +56 -0
  503. package/src/MobileNav/MobileNav.tsx +13 -8
  504. package/src/NavMenu/NavMenu.doc.mjs +15 -0
  505. package/src/NumberInput/NumberInput.test.tsx +48 -3
  506. package/src/NumberInput/NumberInput.tsx +32 -15
  507. package/src/Outline/Outline.doc.mjs +2 -0
  508. package/src/Outline/parseOutlineFromMarkdown.test.ts +80 -0
  509. package/src/OverflowList/OverflowList.test.tsx +416 -0
  510. package/src/Overlay/Overlay.doc.mjs +6 -0
  511. package/src/Overlay/Overlay.test.tsx +356 -0
  512. package/src/Overlay/useOverlay.tsx +0 -3
  513. package/src/Pagination/Pagination.test.tsx +162 -0
  514. package/src/Pagination/Pagination.tsx +80 -26
  515. package/src/Popover/Popover.doc.mjs +6 -6
  516. package/src/Popover/Popover.test.tsx +65 -0
  517. package/src/Popover/usePopover.doc.mjs +1 -1
  518. package/src/PowerSearch/PowerSearch.doc.mjs +2 -2
  519. package/src/PowerSearch/PowerSearch.test.tsx +109 -1
  520. package/src/PowerSearch/PowerSearch.tsx +37 -16
  521. package/src/ProgressBar/ProgressBar.doc.mjs +2 -0
  522. package/src/ProgressBar/ProgressBar.test.tsx +30 -0
  523. package/src/ProgressBar/ProgressBar.tsx +12 -5
  524. package/src/RadioList/RadioList.test.tsx +19 -0
  525. package/src/RadioList/RadioListItem.tsx +9 -4
  526. package/src/Resizable/ResizeHandle.test.tsx +218 -0
  527. package/src/Resizable/ResizeHandle.tsx +22 -4
  528. package/src/SegmentedControl/SegmentedControl.doc.mjs +1 -1
  529. package/src/SegmentedControl/SegmentedControl.test.tsx +192 -0
  530. package/src/SegmentedControl/SegmentedControl.tsx +27 -5
  531. package/src/SegmentedControl/SegmentedControlItem.tsx +9 -4
  532. package/src/SelectableCard/SelectableCard.doc.mjs +1 -1
  533. package/src/Selector/Selector.test.tsx +27 -1
  534. package/src/SideNav/SideNav.doc.mjs +7 -1
  535. package/src/SideNav/SideNav.test.tsx +66 -0
  536. package/src/SideNav/SideNav.tsx +6 -2
  537. package/src/SideNav/SideNavCollapseButton.tsx +4 -3
  538. package/src/SideNav/SideNavSection.tsx +6 -4
  539. package/src/SizeContext/SizeContext.test.tsx +226 -0
  540. package/src/Switch/Switch.doc.mjs +7 -7
  541. package/src/Switch/Switch.test.tsx +102 -3
  542. package/src/Switch/Switch.tsx +20 -7
  543. package/src/TabList/TabList.test.tsx +185 -1
  544. package/src/TabList/TabMenu.tsx +45 -9
  545. package/src/Table/BaseTable.tsx +13 -2
  546. package/src/Table/Table.doc.mjs +6 -1
  547. package/src/Table/Table.test.tsx +87 -0
  548. package/src/Table/TableBody.tsx +15 -2
  549. package/src/Table/TableFooter.tsx +15 -2
  550. package/src/Table/TableHeader.tsx +15 -2
  551. package/src/Table/index.ts +5 -0
  552. package/src/Table/plugins/columnResize/useTableColumnResize.test.tsx +13 -0
  553. package/src/Table/plugins/columnResize/useTableColumnResize.tsx +3 -1
  554. package/src/Table/plugins/groupedRows/index.ts +7 -0
  555. package/src/Table/plugins/groupedRows/useTableGroupedRows.test.tsx +231 -0
  556. package/src/Table/plugins/groupedRows/useTableGroupedRows.tsx +349 -0
  557. package/src/Table/plugins/pagination/paginateData.ts +5 -1
  558. package/src/Table/plugins/pagination/useTablePagination.test.tsx +13 -0
  559. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +1 -1
  560. package/src/Table/plugins/selection/useTableSelectionState.test.tsx +23 -0
  561. package/src/Table/plugins/selection/useTableSelectionState.tsx +11 -6
  562. package/src/Table/plugins/sortable/useTableSortableState.test.tsx +35 -1
  563. package/src/Table/plugins/sortable/useTableSortableState.tsx +8 -4
  564. package/src/Table/useTableGroupedRows.doc.mjs +71 -0
  565. package/src/TextArea/TextArea.test.tsx +3 -3
  566. package/src/TextInput/TextInput.test.tsx +3 -3
  567. package/src/Thumbnail/Thumbnail.test.tsx +36 -2
  568. package/src/Thumbnail/Thumbnail.tsx +4 -2
  569. package/src/TimeInput/TimeInput.test.tsx +37 -0
  570. package/src/TimeInput/TimeInput.tsx +11 -1
  571. package/src/Timestamp/Timestamp.doc.mjs +1 -1
  572. package/src/Timestamp/Timestamp.test.tsx +52 -0
  573. package/src/Timestamp/Timestamp.tsx +30 -16
  574. package/src/Toast/Toast.tsx +11 -3
  575. package/src/Toast/ToastViewport.test.tsx +64 -0
  576. package/src/Toast/ToastViewport.tsx +12 -0
  577. package/src/Toast/useToast.test.tsx +258 -0
  578. package/src/Toast/useToast.tsx +41 -0
  579. package/src/ToggleButton/ToggleButton.doc.mjs +1 -0
  580. package/src/Tokenizer/Tokenizer.doc.mjs +2 -2
  581. package/src/Tokenizer/Tokenizer.test.tsx +54 -0
  582. package/src/Tokenizer/Tokenizer.tsx +5 -4
  583. package/src/Tooltip/Tooltip.doc.mjs +6 -6
  584. package/src/Tooltip/useTooltip.doc.mjs +5 -5
  585. package/src/Tooltip/useTooltip.tsx +12 -2
  586. package/src/TopNav/TopNav.doc.mjs +1 -1
  587. package/src/TopNav/TopNav.test.tsx +23 -7
  588. package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +9 -2
  589. package/src/TreeList/TreeList.doc.mjs +2 -2
  590. package/src/Typeahead/BaseTypeahead.doc.mjs +19 -0
  591. package/src/Typeahead/BaseTypeahead.tsx +5 -2
  592. package/src/Typeahead/Typeahead.doc.mjs +1 -1
  593. package/src/Typeahead/Typeahead.test.tsx +45 -1
  594. package/src/VisuallyHidden/VisuallyHidden.tsx +0 -3
  595. package/src/__tests__/TestIcon.tsx +26 -0
  596. package/src/__tests__/fastRoleQueries.ts +66 -0
  597. package/src/docPropReferences.test.ts +178 -0
  598. package/src/docs-types.ts +9 -1
  599. package/src/hooks/focusableSelector.ts +1 -1
  600. package/src/hooks/index.ts +3 -0
  601. package/src/hooks/useFocusTrap.doc.mjs +4 -2
  602. package/src/hooks/useFocusTrap.test.tsx +149 -1
  603. package/src/hooks/useFocusTrap.ts +50 -1
  604. package/src/hooks/useHotkeys.doc.mjs +52 -0
  605. package/src/hooks/useHotkeys.test.ts +245 -0
  606. package/src/hooks/useHotkeys.ts +203 -0
  607. package/src/hooks/useInteractiveRole.ts +12 -4
  608. package/src/hooks/useStreamingText.test.ts +54 -19
  609. package/src/hooks/useStreamingText.ts +16 -5
  610. package/src/hooks/useTreeFocus.test.tsx +1 -3
  611. package/src/reset.css +29 -0
  612. package/src/theme/SyntaxTheme.doc.mjs +4 -4
  613. package/src/theme/defineTheme.ts +4 -13
  614. package/src/theme/derivedVarRegistry.test.ts +2 -2
  615. package/src/theme/expandColorScale.test.ts +29 -0
  616. package/src/theme/expandColorScale.ts +11 -6
  617. package/src/theme/hct.ts +9 -17
  618. package/src/theme/themingTargets.test.ts +353 -0
  619. package/src/theme/tokens.test.ts +182 -9
  620. package/src/theme/tokens.ts +239 -4
  621. package/src/theme/useTheme.test.tsx +126 -2
  622. package/src/theme/useTheme.ts +87 -6
  623. package/src/utils/color.test.ts +133 -0
  624. package/src/utils/color.ts +148 -0
  625. package/src/utils/composeEventHandlers.test.ts +71 -0
  626. package/src/utils/composeEventHandlers.ts +44 -0
  627. package/src/utils/index.ts +4 -0
  628. package/src/utils/mergeProps.test.ts +166 -0
  629. package/src/utils/sharedResizeObserver.test.ts +2 -2
  630. package/src/utils/timeParser.test.ts +13 -0
  631. package/src/utils/timeParser.ts +8 -5
  632. package/dist/Carousel/carousel.markers.stylex.d.ts +0 -7
  633. package/dist/Carousel/carousel.markers.stylex.d.ts.map +0 -1
  634. package/dist/Carousel/carousel.markers.stylex.js +0 -12
  635. package/src/Carousel/carousel.markers.stylex.ts +0 -10
@@ -30,7 +30,7 @@ import { useInputGroup } from "../InputGroup/InputGroupContext.js";
30
30
  import { groupStyles } from "../InputGroup/groupStyles.js";
31
31
  import { useTooltip } from "../Tooltip/index.js";
32
32
  import { themeProps } from "../utils/themeProps.js";
33
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
33
+ import { jsxDEV as _jsxDEV, Fragment as _Fragment } from "react/jsx-dev-runtime";
34
34
  const sizeStyles = {
35
35
  sm: {
36
36
  kZKoxP: "x6k0iem",
@@ -281,7 +281,7 @@ export function TimeInput({
281
281
  inputRef,
282
282
  disabled: isDisabled
283
283
  });
284
- const inputWrapper = /*#__PURE__*/_jsxs("div", {
284
+ const inputWrapper = /*#__PURE__*/_jsxDEV("div", {
285
285
  ref: el => {
286
286
  containerRef.current = el;
287
287
  // Anchor + hover/focus listeners for the disabled-message tooltip.
@@ -295,29 +295,29 @@ export function TimeInput({
295
295
  size,
296
296
  status: status?.type ?? null
297
297
  }), stylex.props(inputWrapperStyles.base, sizeStyles[size], isDisabled && inputWrapperStyles.disabled, status && inputStatusBorderStyles[status.type], status && inputStatusHoverShadowStyles[status.type], status && inputStatusFocusWithinStyles[status.type], inputGroup && groupStyles.inGroup, xstyle), className, style),
298
- children: [/*#__PURE__*/_jsx("div", {
298
+ children: [/*#__PURE__*/_jsxDEV("div", {
299
299
  ...{
300
300
  className: "x78zum5 x6s0dn4 xl56j7k x2lah0s"
301
301
  },
302
- children: /*#__PURE__*/_jsx(Icon, {
302
+ children: /*#__PURE__*/_jsxDEV(Icon, {
303
303
  icon: "clock",
304
304
  size: "sm",
305
305
  color: "secondary"
306
- })
307
- }), inputGroup && /*#__PURE__*/_jsx(VisuallyHidden, {
306
+ }, void 0, false)
307
+ }, void 0, false), inputGroup && /*#__PURE__*/_jsxDEV(VisuallyHidden, {
308
308
  id: inputLabelID,
309
309
  children: label
310
- }), inputGroup && description && /*#__PURE__*/_jsx(VisuallyHidden, {
310
+ }, void 0, false), inputGroup && description && /*#__PURE__*/_jsxDEV(VisuallyHidden, {
311
311
  as: "div",
312
312
  id: descriptionID,
313
313
  children: description
314
- }), inputGroup && status?.message && /*#__PURE__*/_jsx(VisuallyHidden, {
314
+ }, void 0, false), inputGroup && status?.message && /*#__PURE__*/_jsxDEV(VisuallyHidden, {
315
315
  as: "div",
316
316
  id: statusMessageID,
317
317
  role: status.type === 'error' ? 'alert' : 'status',
318
318
  "aria-live": status.type === 'error' ? 'assertive' : 'polite',
319
319
  children: status.message
320
- }), /*#__PURE__*/_jsx("input", {
320
+ }, void 0, false), /*#__PURE__*/_jsxDEV("input", {
321
321
  ref: mergeRefs(ref, inputRef),
322
322
  id: id,
323
323
  type: "text",
@@ -338,7 +338,7 @@ export function TimeInput({
338
338
  "data-autofocus": hasAutoFocus || undefined,
339
339
  "aria-describedby": ariaDescribedBy,
340
340
  "aria-required": isRequired === true ? 'true' : undefined,
341
- "aria-invalid": status?.type === 'error' ? 'true' : undefined,
341
+ "aria-invalid": status?.type === 'error' || !isInputValid ? 'true' : undefined,
342
342
  "aria-busy": isBusy || undefined,
343
343
  "aria-labelledby": ariaLabelledBy,
344
344
  ...{
@@ -355,32 +355,37 @@ export function TimeInput({
355
355
  className: "x1lliihq x98rzlu xeuugli xc342km xng3xce x1717udv x9ynric xjm74w1 x6pjikd xw6l6zx xjbqb8w x1a2a7pz xeyghm5 x1h6gzvc xv1l7n4"
356
356
  }
357
357
  }[!!isDisabled << 1 | !!!isInputValid << 0]
358
- }), isBusy && /*#__PURE__*/_jsx(Spinner, {
358
+ }, void 0, false), /*#__PURE__*/_jsxDEV(VisuallyHidden, {
359
+ as: "div",
360
+ role: "alert",
361
+ "aria-live": "assertive",
362
+ children: !isInputValid ? 'Invalid time' : ''
363
+ }, void 0, false), isBusy && /*#__PURE__*/_jsxDEV(Spinner, {
359
364
  size: "sm"
360
- }), hasClear && value && !isDisabled && /*#__PURE__*/_jsx("button", {
365
+ }, void 0, false), hasClear && value && !isDisabled && /*#__PURE__*/_jsxDEV("button", {
361
366
  type: "button",
362
367
  onClick: handleClear,
363
368
  "aria-label": `Clear ${label}`,
364
369
  ...{
365
370
  className: "x78zum5 x6s0dn4 xl56j7k x1717udv x1ghz6dp xc342km xng3xce xjbqb8w x1ypdohk xh6dtrn x1a2a7pz x1p25gnr x1y3gkto"
366
371
  },
367
- children: /*#__PURE__*/_jsx(Icon, {
372
+ children: /*#__PURE__*/_jsxDEV(Icon, {
368
373
  icon: "close",
369
374
  size: "sm",
370
375
  color: "secondary"
371
- })
372
- }), status && !inputGroup && /*#__PURE__*/_jsx(Icon, {
376
+ }, void 0, false)
377
+ }, void 0, false), status && !inputGroup && /*#__PURE__*/_jsxDEV(Icon, {
373
378
  icon: statusIconMap[status.type],
374
379
  size: "md",
375
380
  color: statusIconColorMap[status.type]
376
- })]
377
- });
381
+ }, void 0, false)]
382
+ }, void 0, true);
378
383
  if (inputGroup) {
379
- return /*#__PURE__*/_jsxs(_Fragment, {
384
+ return /*#__PURE__*/_jsxDEV(_Fragment, {
380
385
  children: [inputWrapper, showsDisabledMessage && disabledMessageTooltip.renderTooltip(disabledMessage)]
381
- });
386
+ }, void 0, true);
382
387
  }
383
- return /*#__PURE__*/_jsxs(Field, {
388
+ return /*#__PURE__*/_jsxDEV(Field, {
384
389
  label: label,
385
390
  isLabelHidden: isLabelHidden,
386
391
  description: description,
@@ -397,6 +402,6 @@ export function TimeInput({
397
402
  labelTooltip: labelTooltip,
398
403
  width: width,
399
404
  children: [inputWrapper, showsDisabledMessage && disabledMessageTooltip.renderTooltip(disabledMessage)]
400
- });
405
+ }, void 0, true);
401
406
  }
402
407
  TimeInput.displayName = 'TimeInput';
@@ -77,7 +77,7 @@ export interface TimestampProps extends BaseProps<HTMLTimeElement> {
77
77
  * <Timestamp value={event.timestamp} format="system_date_time" />
78
78
  * ```
79
79
  */
80
- export declare function Timestamp({ value, format, autoThreshold, hasTooltip, isTimezoneShown, isLive, type, size, color, weight, xstyle, className, style, ref, 'data-testid': testId, }: TimestampProps): import("react").JSX.Element;
80
+ export declare function Timestamp({ value, format, autoThreshold, hasTooltip, isTimezoneShown, isLive, type, size, color, weight, xstyle, className, style, ref, 'data-testid': testId, }: TimestampProps): import("react").JSX.Element | null;
81
81
  export declare namespace Timestamp {
82
82
  var displayName: string;
83
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Timestamp.d.ts","sourceRoot":"","sources":["../../src/Timestamp/Timestamp.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAE9E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAW5C,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,MAAM,GACN,MAAM,GACN,WAAW,GACX,MAAM,GACN,aAAa,GACb,kBAAkB,GAClB,aAAa,CAAC;AAElB,MAAM,WAAW,cAAe,SAAQ,SAAS,CAAC,eAAe,CAAC;IAChE,kDAAkD;IAClD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACjC,uFAAuF;IACvF,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA8ND;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,MAAe,EACf,aAAsC,EACtC,UAAiB,EACjB,eAAuB,EACvB,MAAc,EACd,IAAmB,EACnB,IAAI,EACJ,KAAmB,EACnB,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,aAAa,EAAE,MAAM,GACtB,EAAE,cAAc,+BAqFhB;yBArGe,SAAS"}
1
+ {"version":3,"file":"Timestamp.d.ts","sourceRoot":"","sources":["../../src/Timestamp/Timestamp.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAE9E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAW5C,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,MAAM,GACN,MAAM,GACN,WAAW,GACX,MAAM,GACN,aAAa,GACb,kBAAkB,GAClB,aAAa,CAAC;AAElB,MAAM,WAAW,cAAe,SAAQ,SAAS,CAAC,eAAe,CAAC;IAChE,kDAAkD;IAClD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACjC,uFAAuF;IACvF,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA8ND;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,MAAe,EACf,aAAsC,EACtC,UAAiB,EACjB,eAAuB,EACvB,MAAc,EACd,IAAmB,EACnB,IAAI,EACJ,KAAmB,EACnB,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,aAAa,EAAE,MAAM,GACtB,EAAE,cAAc,sCAmGhB;yBAnHe,SAAS"}
@@ -20,7 +20,7 @@ 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 { themeProps } from "../utils/themeProps.js";
23
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
23
+ import { jsxDEV as _jsxDEV, Fragment as _Fragment } from "react/jsx-dev-runtime";
24
24
  const LazyXDSTooltip = /*#__PURE__*/lazy(async () => import('../Tooltip/Tooltip').then(mod => ({
25
25
  default: mod.Tooltip
26
26
  })));
@@ -90,47 +90,47 @@ function getRelativeTimeString(date, now) {
90
90
  return 'in a few seconds';
91
91
  }
92
92
  if (absDiff < HOUR) {
93
- const mins = Math.round(absDiff / MINUTE);
93
+ const mins = Math.floor(absDiff / MINUTE);
94
94
  return `in ${mins} ${mins === 1 ? 'minute' : 'minutes'}`;
95
95
  }
96
96
  if (absDiff < DAY) {
97
- const hours = Math.round(absDiff / HOUR);
97
+ const hours = Math.floor(absDiff / HOUR);
98
98
  return `in ${hours} ${hours === 1 ? 'hour' : 'hours'}`;
99
99
  }
100
100
  if (absDiff < MONTH) {
101
- const days = Math.round(absDiff / DAY);
101
+ const days = Math.floor(absDiff / DAY);
102
102
  return `in ${days} ${days === 1 ? 'day' : 'days'}`;
103
103
  }
104
104
  if (absDiff < YEAR) {
105
- const months = Math.round(absDiff / MONTH);
105
+ const months = Math.floor(absDiff / MONTH);
106
106
  return `in ${months} ${months === 1 ? 'month' : 'months'}`;
107
107
  }
108
- const years = Math.round(absDiff / YEAR);
108
+ const years = Math.floor(absDiff / YEAR);
109
109
  return `in ${years} ${years === 1 ? 'year' : 'years'}`;
110
110
  }
111
111
  if (diffSeconds < MINUTE) {
112
112
  return `${diffSeconds} seconds ago`;
113
113
  }
114
114
  if (diffSeconds < HOUR) {
115
- const mins = Math.round(diffSeconds / MINUTE);
115
+ const mins = Math.floor(diffSeconds / MINUTE);
116
116
  return `${mins} ${mins === 1 ? 'minute' : 'minutes'} ago`;
117
117
  }
118
118
  if (diffSeconds < DAY) {
119
- const hours = Math.round(diffSeconds / HOUR);
119
+ const hours = Math.floor(diffSeconds / HOUR);
120
120
  return `${hours} ${hours === 1 ? 'hour' : 'hours'} ago`;
121
121
  }
122
122
  if (diffSeconds < 2 * DAY) {
123
123
  return 'yesterday';
124
124
  }
125
125
  if (diffSeconds < MONTH) {
126
- const days = Math.round(diffSeconds / DAY);
126
+ const days = Math.floor(diffSeconds / DAY);
127
127
  return `${days} days ago`;
128
128
  }
129
129
  if (diffSeconds < YEAR) {
130
- const months = Math.round(diffSeconds / MONTH);
130
+ const months = Math.floor(diffSeconds / MONTH);
131
131
  return `${months} ${months === 1 ? 'month' : 'months'} ago`;
132
132
  }
133
- const years = Math.round(diffSeconds / YEAR);
133
+ const years = Math.floor(diffSeconds / YEAR);
134
134
  return `${years} ${years === 1 ? 'year' : 'years'} ago`;
135
135
  }
136
136
  function pad(n) {
@@ -261,21 +261,26 @@ export function Timestamp({
261
261
  const timeRef = useRef(null);
262
262
  const [now, setNow] = useState(() => new Date());
263
263
  const date = parseValue(value);
264
- const isoString = date.toISOString();
264
+ // An unparseable value (a malformed date string, or a NaN timestamp from
265
+ // missing data) yields an Invalid Date, and formatting one throws "Invalid
266
+ // time value" — crashing the whole tree. Compute nothing from it here and
267
+ // bail out below (after the hooks) instead.
268
+ const isValidDate = !Number.isNaN(date.getTime());
269
+ const isoString = isValidDate ? date.toISOString() : '';
265
270
 
266
271
  // Determine effective format
267
272
  const diffSeconds = Math.round((now.getTime() - date.getTime()) / 1000);
268
273
  const effectiveFormat = format === 'auto' ? Math.abs(diffSeconds) <= autoThreshold ? 'relative' : 'date_time' : format;
269
274
 
270
275
  // Format the display text
271
- const displayText = effectiveFormat === 'relative' ? getRelativeTimeString(date, now) : isAbsoluteFormat(effectiveFormat) ? formatTimestamp(date, effectiveFormat, isTimezoneShown) : '';
276
+ const displayText = !isValidDate ? '' : effectiveFormat === 'relative' ? getRelativeTimeString(date, now) : isAbsoluteFormat(effectiveFormat) ? formatTimestamp(date, effectiveFormat, isTimezoneShown) : '';
272
277
 
273
278
  // Full absolute text for tooltip and aria-label
274
- const fullAbsoluteText = getFullAbsoluteString(date);
279
+ const fullAbsoluteText = isValidDate ? getFullAbsoluteString(date) : '';
275
280
 
276
281
  // Live updates
277
282
  useEffect(() => {
278
- if (!isLive || effectiveFormat !== 'relative') {
283
+ if (!isLive || !isValidDate || effectiveFormat !== 'relative') {
279
284
  return;
280
285
  }
281
286
  const interval = getLiveInterval(diffSeconds);
@@ -283,7 +288,13 @@ export function Timestamp({
283
288
  setNow(new Date());
284
289
  }, interval);
285
290
  return () => clearInterval(timer);
286
- }, [isLive, effectiveFormat, diffSeconds]);
291
+ }, [isLive, isValidDate, effectiveFormat, diffSeconds]);
292
+
293
+ // Placed after all hooks so the hook order stays stable across renders.
294
+ if (!isValidDate) {
295
+ console.warn(`Timestamp: could not parse value ${JSON.stringify(value)} as a date. Rendering nothing.`);
296
+ return null;
297
+ }
287
298
  const showTooltip = hasTooltip && effectiveFormat === 'relative';
288
299
  const timestampProps = mergeProps(themeProps('timestamp', {
289
300
  format: effectiveFormat
@@ -291,14 +302,14 @@ export function Timestamp({
291
302
  className,
292
303
  style
293
304
  });
294
- const timeElement = /*#__PURE__*/_jsx(Text, {
305
+ const timeElement = /*#__PURE__*/_jsxDEV(Text, {
295
306
  type: type,
296
307
  size: size,
297
308
  color: color,
298
309
  weight: weight,
299
310
  xstyle: xstyle,
300
311
  ...timestampProps,
301
- children: /*#__PURE__*/_jsx("time", {
312
+ children: /*#__PURE__*/_jsxDEV("time", {
302
313
  ref: mergeRefs(ref, timeRef),
303
314
  dateTime: isoString,
304
315
  "aria-label": effectiveFormat === 'relative' ? fullAbsoluteText : undefined,
@@ -307,19 +318,19 @@ export function Timestamp({
307
318
  className: "xt0psk2 xjb2p0i x1j61x8r x1qlqyl8 x15bjb6t x1heor9g x1pd3egz"
308
319
  },
309
320
  children: displayText
310
- })
311
- });
321
+ }, void 0, false)
322
+ }, void 0, false);
312
323
  if (showTooltip) {
313
- return /*#__PURE__*/_jsxs(_Fragment, {
314
- children: [timeElement, /*#__PURE__*/_jsx(Suspense, {
324
+ return /*#__PURE__*/_jsxDEV(_Fragment, {
325
+ children: [timeElement, /*#__PURE__*/_jsxDEV(Suspense, {
315
326
  fallback: null,
316
- children: /*#__PURE__*/_jsx(LazyXDSTooltip, {
327
+ children: /*#__PURE__*/_jsxDEV(LazyXDSTooltip, {
317
328
  anchorRef: timeRef,
318
329
  content: fullAbsoluteText,
319
330
  placement: "above"
320
- })
321
- })]
322
- });
331
+ }, void 0, false)
332
+ }, void 0, false)]
333
+ }, void 0, true);
323
334
  }
324
335
  return timeElement;
325
336
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/Toast/Toast.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAiBrC,OAAO,KAAK,EAAC,SAAS,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAC;AAyD3D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACjD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,SAAiB,EACjB,SAAS,GACV,EAAE,UAAU,+BAiHZ;yBAzHe,KAAK"}
1
+ {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/Toast/Toast.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAiBrC,OAAO,KAAK,EAAC,SAAS,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAC;AAyD3D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACjD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,SAAiB,EACjB,SAAS,GACV,EAAE,UAAU,+BAyHZ;yBAjIe,KAAK"}
@@ -12,7 +12,7 @@ import { mergeProps } from "../utils/index.js";
12
12
  import { useTheme } from "../theme/index.js";
13
13
  import { MediaTheme } from "../theme/MediaTheme.js";
14
14
  import { themeProps } from "../utils/themeProps.js";
15
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
16
16
  /**
17
17
  * Individual toast notification.
18
18
  *
@@ -46,8 +46,14 @@ export function Toast({
46
46
  const remainingRef = useRef(autoHideDuration);
47
47
  // Will be initialized by startTimer when actually used
48
48
  const startTimeRef = useRef(null);
49
+
50
+ // Read onDismiss through a ref: the viewport re-creates it on every render
51
+ // (another toast arriving/exiting), and a startTimer that depends on it
52
+ // would restart — and un-pause — this toast's timer on unrelated renders.
53
+ const onDismissRef = useRef(onDismiss);
54
+ onDismissRef.current = onDismiss;
49
55
  const startTimer = useCallback(() => {
50
- if (!isAutoHide) {
56
+ if (!isAutoHide || isPausedRef.current) {
51
57
  return;
52
58
  }
53
59
  if (timerRef.current) {
@@ -55,9 +61,9 @@ export function Toast({
55
61
  }
56
62
  startTimeRef.current = Date.now();
57
63
  timerRef.current = setTimeout(() => {
58
- onDismiss('auto');
64
+ onDismissRef.current('auto');
59
65
  }, remainingRef.current);
60
- }, [isAutoHide, onDismiss]);
66
+ }, [isAutoHide]);
61
67
  const pauseTimer = useCallback(() => {
62
68
  if (!isAutoHide || isPausedRef.current) {
63
69
  return;
@@ -87,6 +93,8 @@ export function Toast({
87
93
  clearTimeout(timerRef.current);
88
94
  }
89
95
  };
96
+ // startTimer's identity is stable per isAutoHide, so this runs on mount
97
+ // and on a genuine duration change — not on unrelated viewport renders.
90
98
  }, [autoHideDuration, startTimer]);
91
99
 
92
100
  // Pause the auto-hide timer while the window is not focused, so a toast
@@ -112,7 +120,7 @@ export function Toast({
112
120
  mode
113
121
  } = useTheme();
114
122
  const mediaMode = isError || mode === 'light' ? 'dark' : 'light';
115
- return /*#__PURE__*/_jsx("div", {
123
+ return /*#__PURE__*/_jsxDEV("div", {
116
124
  role: isError ? 'alert' : 'status',
117
125
  "aria-live": isError ? 'assertive' : 'polite',
118
126
  "aria-atomic": "true",
@@ -136,36 +144,36 @@ export function Toast({
136
144
  className: "x1na6nto x1pzlopt x1hviunn x1l2rt3b xxtfdz8 x14hfi27 x9ynric xjm74w1 xw6l6zx x6o7n8i xuedmi6 xsagj69 xlr8y92 x4itv7f x1tswlu5 x1l5t2a3 xg01cxk x1lm5u"
137
145
  }
138
146
  }[!!isError << 1 | !!isExiting << 0]),
139
- children: /*#__PURE__*/_jsx(MediaTheme, {
147
+ children: /*#__PURE__*/_jsxDEV(MediaTheme, {
140
148
  mode: mediaMode,
141
- children: /*#__PURE__*/_jsxs("div", {
149
+ children: /*#__PURE__*/_jsxDEV("div", {
142
150
  ...{
143
151
  className: "x78zum5 x1cy8zhl xjcht0a xh8yej3"
144
152
  },
145
- children: [/*#__PURE__*/_jsx("div", {
153
+ children: [/*#__PURE__*/_jsxDEV("div", {
146
154
  ...{
147
155
  className: "x98rzlu xeuugli"
148
156
  },
149
157
  children: body
150
- }), /*#__PURE__*/_jsxs("div", {
158
+ }, void 0, false), /*#__PURE__*/_jsxDEV("div", {
151
159
  ...{
152
160
  className: "x2lah0s x78zum5 x6s0dn4 x1txdalj xacfrgf xmequkd"
153
161
  },
154
- children: [endContent, /*#__PURE__*/_jsx(Button, {
162
+ children: [endContent, /*#__PURE__*/_jsxDEV(Button, {
155
163
  variant: "ghost",
156
164
  size: "sm",
157
- icon: /*#__PURE__*/_jsx(Icon, {
165
+ icon: /*#__PURE__*/_jsxDEV(Icon, {
158
166
  icon: "close",
159
167
  size: "sm",
160
168
  color: "inherit"
161
- }),
169
+ }, void 0, false),
162
170
  label: "Dismiss notification",
163
171
  onClick: handleDismiss,
164
172
  isIconOnly: true
165
- })]
166
- })]
167
- })
168
- })
169
- });
173
+ }, void 0, false)]
174
+ }, void 0, true)]
175
+ }, void 0, true)
176
+ }, void 0, false)
177
+ }, void 0, false);
170
178
  }
171
179
  Toast.displayName = 'Toast';
@@ -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;AA2D3E,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,+BAqSpB;yBA3Se,aAAa"}
1
+ {"version":3,"file":"ToastViewport.d.ts","sourceRoot":"","sources":["../../src/Toast/ToastViewport.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAa,aAAa,EAAqB,MAAM,SAAS,CAAC;AA2D3E,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,+BAiTpB;yBAvTe,aAAa"}
@@ -10,7 +10,7 @@ import { mergeProps } from "../utils/index.js";
10
10
  import { INTERACTIVE_SELECTORS } from "../hooks/useClickableContainer.js";
11
11
  import { Toast } from "./Toast.js";
12
12
  import { ToastContext } from "./ToastContext.js";
13
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
14
14
  const styles = {
15
15
  viewport: {
16
16
  kVAEAm: "xixxii4",
@@ -78,6 +78,9 @@ export function ToastViewport({
78
78
 
79
79
  // Show the popover on mount so it enters the top layer.
80
80
  const viewportRef = useRef(null);
81
+ // Toast ids whose exit has begun — guards onHide from double-firing (see
82
+ // removeToast). Mirrors exitingIds state, readable synchronously.
83
+ const exitingIdsRef = useRef(new Set());
81
84
  // The element that was focused before the user jumped into the viewport
82
85
  // (via F6). Used to restore focus once all toasts are dismissed so focus
83
86
  // never falls to <body>.
@@ -127,6 +130,14 @@ export function ToastViewport({
127
130
  });
128
131
  }, []);
129
132
  const removeToast = useCallback((id, reason) => {
133
+ // An exiting toast stays in toastsRef until its exit transition ends, so
134
+ // a second dismissal inside that window (double-click, auto-timer plus
135
+ // manual dismiss()) would re-fire onHide. Track exiting ids in a ref —
136
+ // the exitingIds state dedupe below runs too late to protect onHide.
137
+ if (exitingIdsRef.current.has(id)) {
138
+ return;
139
+ }
140
+ exitingIdsRef.current.add(id);
130
141
  const entry = toastsRef.current.find(t => t.id === id);
131
142
  if (entry) {
132
143
  entry.options.onHide?.(reason);
@@ -158,6 +169,7 @@ export function ToastViewport({
158
169
  });
159
170
  }, []);
160
171
  const handleExited = useCallback(id => {
172
+ exitingIdsRef.current.delete(id);
161
173
  setExitingIds(prev => {
162
174
  if (!prev.has(id)) {
163
175
  return prev;
@@ -280,9 +292,9 @@ export function ToastViewport({
280
292
  };
281
293
  }, [hasToasts, getFocusable]);
282
294
  const posStyle = position === 'topEnd' ? styles.topEnd : position === 'topStart' ? styles.topStart : position === 'bottomStart' ? styles.bottomStart : styles.bottomEnd;
283
- return /*#__PURE__*/_jsxs(ToastContext, {
295
+ return /*#__PURE__*/_jsxDEV(ToastContext, {
284
296
  value: contextValue,
285
- children: [children, /*#__PURE__*/_jsx("div", {
297
+ children: [children, /*#__PURE__*/_jsxDEV("div", {
286
298
  ref: viewportRef,
287
299
  role: "region",
288
300
  "aria-label": "Notifications",
@@ -300,7 +312,7 @@ export function ToastViewport({
300
312
  const isAutoHide = o.isAutoHide ?? (type === 'error' ? false : true);
301
313
  const dur = o.autoHideDuration ?? 5000;
302
314
  const isExiting = exitingIds.has(entry.id);
303
- return /*#__PURE__*/_jsx("div", {
315
+ return /*#__PURE__*/_jsxDEV("div", {
304
316
  "data-toast-id": entry.id,
305
317
  ...{
306
318
  0: {
@@ -315,11 +327,11 @@ export function ToastViewport({
315
327
  handleExited(entry.id);
316
328
  }
317
329
  } : undefined,
318
- children: /*#__PURE__*/_jsx("div", {
330
+ children: /*#__PURE__*/_jsxDEV("div", {
319
331
  ...{
320
332
  className: "xb3r6kr"
321
333
  },
322
- children: /*#__PURE__*/_jsx(Toast, {
334
+ children: /*#__PURE__*/_jsxDEV(Toast, {
323
335
  type: type,
324
336
  body: o.body,
325
337
  endContent: o.endContent,
@@ -327,11 +339,11 @@ export function ToastViewport({
327
339
  autoHideDuration: dur,
328
340
  isExiting: isExiting,
329
341
  onDismiss: reason => removeToast(entry.id, reason)
330
- })
331
- })
332
- }, entry.id);
342
+ }, void 0, false)
343
+ }, void 0, false)
344
+ }, entry.id, false);
333
345
  })
334
- })]
335
- });
346
+ }, void 0, false)]
347
+ }, void 0, true);
336
348
  }
337
349
  ToastViewport.displayName = 'ToastViewport';
@@ -1 +1 @@
1
- {"version":3,"file":"useToast.d.ts","sourceRoot":"","sources":["../../src/Toast/useToast.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAGV,WAAW,EAEZ,MAAM,SAAS,CAAC;AA8FjB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,QAAQ,IAAI,WAAW,CAetC"}
1
+ {"version":3,"file":"useToast.d.ts","sourceRoot":"","sources":["../../src/Toast/useToast.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAGV,WAAW,EAEZ,MAAM,SAAS,CAAC;AAsIjB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,QAAQ,IAAI,WAAW,CAetC"}
@@ -4,13 +4,52 @@
4
4
 
5
5
  import { useCallback, use, useEffect, useRef } from 'react';
6
6
  import { createRoot } from 'react-dom/client';
7
+ import { dataAttr } from "../naming.js";
7
8
  import { ToastContext } from "./ToastContext.js";
8
9
  import { ToastViewport } from "./ToastViewport.js";
9
- import { jsx as _jsx } from "react/jsx-runtime";
10
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
10
11
  // Fallback singleton
11
12
  let fallbackContext = null;
12
13
  let fallbackRoot = null;
13
14
  let fallbackWarned = false;
15
+ const ROOT_THEME_ATTRS = ['data-theme', dataAttr('theme')];
16
+
17
+ // The fallback container is a detached tree with no ThemeContext, so this
18
+ // mirrors <html>'s theme attributes onto it directly (live via
19
+ // MutationObserver) for the theme's @scope'd CSS to reach it. It's a
20
+ // lifetime-of-app singleton that's never torn down, so there's nothing to
21
+ // disconnect — this returns void.
22
+ function syncRootThemeAttrs(container) {
23
+ const sync = () => {
24
+ let mirroredMode = null;
25
+ for (const attr of ROOT_THEME_ATTRS) {
26
+ const value = document.documentElement.getAttribute(attr);
27
+ if (value == null) {
28
+ container.removeAttribute(attr);
29
+ } else {
30
+ container.setAttribute(attr, value);
31
+ if (attr === 'data-theme') {
32
+ mirroredMode = value;
33
+ }
34
+ }
35
+ }
36
+ // Pages whose built theme CSS pins color-scheme unconditionally (#3658)
37
+ // would otherwise resolve light-dark() tokens by OS preference while the
38
+ // mirrored mode above follows the app theme; the inline style wins over
39
+ // that CSS.
40
+ if (mirroredMode === 'light' || mirroredMode === 'dark') {
41
+ container.style.colorScheme = mirroredMode;
42
+ } else {
43
+ container.style.removeProperty('color-scheme');
44
+ }
45
+ };
46
+ sync();
47
+ const observer = new MutationObserver(sync);
48
+ observer.observe(document.documentElement, {
49
+ attributes: true,
50
+ attributeFilter: [...ROOT_THEME_ATTRS]
51
+ });
52
+ }
14
53
  function getFallbackContext() {
15
54
  if (fallbackContext) {
16
55
  return fallbackContext;
@@ -25,6 +64,7 @@ function getFallbackContext() {
25
64
  const container = document.createElement('div');
26
65
  container.setAttribute('data-astryx-toast-fallback', '');
27
66
  document.body.appendChild(container);
67
+ syncRootThemeAttrs(container);
28
68
  let resolveCtx;
29
69
  const ctxReady = new Promise(r => {
30
70
  resolveCtx = r;
@@ -42,9 +82,9 @@ function getFallbackContext() {
42
82
  return null;
43
83
  };
44
84
  fallbackRoot = createRoot(container);
45
- fallbackRoot.render(/*#__PURE__*/_jsx(ToastViewport, {
46
- children: /*#__PURE__*/_jsx(FallbackCapture, {})
47
- }));
85
+ fallbackRoot.render(/*#__PURE__*/_jsxDEV(ToastViewport, {
86
+ children: /*#__PURE__*/_jsxDEV(FallbackCapture, {}, void 0, false)
87
+ }, void 0, false));
48
88
 
49
89
  // Proxy that queues calls until real context is captured
50
90
  const pending = [];
@@ -36,7 +36,7 @@ import { themeProps } from "../utils/themeProps.js";
36
36
  * A hidden span renders the same text at semibold weight to reserve
37
37
  * the wider width, preventing layout shift when toggling.
38
38
  */
39
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
39
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
40
40
  const pressedStyles = {
41
41
  background: {
42
42
  kWkggS: "xi89dp7",
@@ -141,11 +141,11 @@ export function ToggleButton({
141
141
  };
142
142
 
143
143
  // isIconOnly prop is the source of truth for icon-only rendering.
144
- const labelContent = children != null ? /*#__PURE__*/_jsxs("span", {
144
+ const labelContent = children != null ? /*#__PURE__*/_jsxDEV("span", {
145
145
  ...{
146
146
  className: "x3nfvp2 xdt5ytf x6s0dn4 xl56j7k"
147
147
  },
148
- children: [/*#__PURE__*/_jsx("span", {
148
+ children: [/*#__PURE__*/_jsxDEV("span", {
149
149
  ...{
150
150
  0: {},
151
151
  1: {
@@ -153,18 +153,18 @@ export function ToggleButton({
153
153
  }
154
154
  }[!!isPressed << 0],
155
155
  children: children
156
- }), /*#__PURE__*/_jsx("span", {
156
+ }, void 0, false), /*#__PURE__*/_jsxDEV("span", {
157
157
  ...{
158
158
  className: "x1lliihq x2mo6ok xqtp20y xb3r6kr xlshs6z x47corl"
159
159
  },
160
160
  "aria-hidden": "true",
161
161
  children: children
162
- })]
163
- }) : !isIconOnly ? /*#__PURE__*/_jsxs("span", {
162
+ }, void 0, false)]
163
+ }, void 0, true) : !isIconOnly ? /*#__PURE__*/_jsxDEV("span", {
164
164
  ...{
165
165
  className: "x3nfvp2 xdt5ytf x6s0dn4 xl56j7k"
166
166
  },
167
- children: [/*#__PURE__*/_jsx("span", {
167
+ children: [/*#__PURE__*/_jsxDEV("span", {
168
168
  ...{
169
169
  0: {},
170
170
  1: {
@@ -172,15 +172,15 @@ export function ToggleButton({
172
172
  }
173
173
  }[!!isPressed << 0],
174
174
  children: label
175
- }), /*#__PURE__*/_jsx("span", {
175
+ }, void 0, false), /*#__PURE__*/_jsxDEV("span", {
176
176
  ...{
177
177
  className: "x1lliihq x2mo6ok xqtp20y xb3r6kr xlshs6z x47corl"
178
178
  },
179
179
  "aria-hidden": "true",
180
180
  children: label
181
- })]
182
- }) : undefined;
183
- return /*#__PURE__*/_jsx(Button, {
181
+ }, void 0, false)]
182
+ }, void 0, true) : undefined;
183
+ return /*#__PURE__*/_jsxDEV(Button, {
184
184
  ref: ref,
185
185
  label: label,
186
186
  variant: "ghost",
@@ -201,6 +201,6 @@ export function ToggleButton({
201
201
  clickAction: clickAction,
202
202
  ...props,
203
203
  children: labelContent
204
- });
204
+ }, void 0, false);
205
205
  }
206
206
  ToggleButton.displayName = 'ToggleButton';