@cube-dev/ui-kit 0.0.0-canary-e2a9f35 → 0.0.0-canary-c48279e

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 (688) hide show
  1. package/es/_internal/hooks/index.js +1 -1
  2. package/es/_internal/hooks/use-chained-callback.js +1 -1
  3. package/es/_internal/hooks/use-debounced-value.js +1 -1
  4. package/es/_internal/hooks/use-deprecation-warning.js +1 -1
  5. package/es/_internal/hooks/use-effect-once.js +1 -1
  6. package/es/_internal/hooks/use-event.js +1 -1
  7. package/es/_internal/hooks/use-is-first-render.js +1 -1
  8. package/es/_internal/hooks/use-sync-ref.js +1 -1
  9. package/es/_internal/hooks/use-timer/index.js +1 -1
  10. package/es/_internal/hooks/use-timer/timer.js +1 -1
  11. package/es/_internal/hooks/use-timer/use-timer.js +1 -1
  12. package/es/_internal/hooks/use-update-effect.js +1 -1
  13. package/es/_internal/hooks/use-warn.js +1 -1
  14. package/es/_internal/index.js +1 -1
  15. package/es/components/Block.js +1 -1
  16. package/es/components/CollectionItem.js +1 -1
  17. package/es/components/GlobalStyles.js +1 -1
  18. package/es/components/GridProvider.js +1 -1
  19. package/es/components/HiddenInput.js +1 -1
  20. package/es/components/OpenTrasition.js +1 -1
  21. package/es/components/Root.js +3 -4
  22. package/es/components/actions/Action/Action.js +1 -1
  23. package/es/components/actions/Banner/Banner.js +1 -1
  24. package/es/components/actions/Banner/index.js +1 -1
  25. package/es/components/actions/Button/Button.js +1 -1
  26. package/es/components/actions/Button/index.js +1 -1
  27. package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  28. package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
  29. package/es/components/actions/CommandMenu/index.js +1 -1
  30. package/es/components/actions/CommandMenu/styled.js +1 -1
  31. package/es/components/actions/ItemAction/ItemAction.js +5 -1
  32. package/es/components/actions/ItemAction/index.js +1 -1
  33. package/es/components/actions/ItemActionContext.js +1 -1
  34. package/es/components/actions/ItemButton/ItemButton.js +1 -1
  35. package/es/components/actions/ItemButton/index.js +1 -1
  36. package/es/components/actions/Link/Link.js +1 -1
  37. package/es/components/actions/Menu/Menu.js +1 -1
  38. package/es/components/actions/Menu/MenuItem.js +1 -1
  39. package/es/components/actions/Menu/MenuSection.js +1 -1
  40. package/es/components/actions/Menu/MenuTrigger.js +1 -1
  41. package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
  42. package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  43. package/es/components/actions/Menu/context.js +1 -1
  44. package/es/components/actions/Menu/index.js +1 -1
  45. package/es/components/actions/Menu/styled.js +1 -1
  46. package/es/components/actions/index.js +1 -1
  47. package/es/components/actions/use-action.js +1 -1
  48. package/es/components/actions/use-anchored-menu.js +1 -1
  49. package/es/components/actions/use-context-menu.js +1 -1
  50. package/es/components/content/ActiveZone/ActiveZone.js +1 -1
  51. package/es/components/content/Alert/Alert.js +1 -1
  52. package/es/components/content/Alert/index.js +1 -1
  53. package/es/components/content/Alert/types.js +1 -1
  54. package/es/components/content/Alert/use-alert.js +1 -1
  55. package/es/components/content/Avatar/Avatar.js +1 -1
  56. package/es/components/content/Badge/Badge.js +1 -1
  57. package/es/components/content/Card/Card.js +1 -1
  58. package/es/components/content/Content.js +1 -1
  59. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  60. package/es/components/content/CopyPasteBlock/index.js +1 -1
  61. package/es/components/content/CopySnippet/CopySnippet.js +1 -1
  62. package/es/components/content/CopySnippet/index.js +1 -1
  63. package/es/components/content/Disclosure/Disclosure.js +1 -1
  64. package/es/components/content/Disclosure/index.js +1 -1
  65. package/es/components/content/Divider.js +1 -1
  66. package/es/components/content/Footer.js +1 -1
  67. package/es/components/content/Header.js +1 -1
  68. package/es/components/content/HotKeys/HotKeys.js +1 -1
  69. package/es/components/content/HotKeys/index.js +1 -1
  70. package/es/components/content/Item/Item.js +1 -1
  71. package/es/components/content/Item/index.js +1 -1
  72. package/es/components/content/ItemBadge/ItemBadge.js +1 -1
  73. package/es/components/content/ItemBadge/index.js +1 -1
  74. package/es/components/content/Layout/GridLayout.js +1 -1
  75. package/es/components/content/Layout/Layout.js +1 -1
  76. package/es/components/content/Layout/LayoutBlock.js +1 -1
  77. package/es/components/content/Layout/LayoutCenter.js +1 -1
  78. package/es/components/content/Layout/LayoutContainer.js +1 -1
  79. package/es/components/content/Layout/LayoutContent.js +1 -1
  80. package/es/components/content/Layout/LayoutContext.js +1 -1
  81. package/es/components/content/Layout/LayoutFlex.js +1 -1
  82. package/es/components/content/Layout/LayoutFooter.js +1 -1
  83. package/es/components/content/Layout/LayoutGrid.js +1 -1
  84. package/es/components/content/Layout/LayoutHeader.js +1 -1
  85. package/es/components/content/Layout/LayoutPane.js +1 -1
  86. package/es/components/content/Layout/LayoutPanel.js +1 -1
  87. package/es/components/content/Layout/LayoutPanelHeader.js +1 -1
  88. package/es/components/content/Layout/LayoutToolbar.js +1 -1
  89. package/es/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  90. package/es/components/content/Layout/index.js +1 -1
  91. package/es/components/content/Layout/utils.js +1 -1
  92. package/es/components/content/List/SectionHeading.js +1 -1
  93. package/es/components/content/List/index.js +1 -1
  94. package/es/components/content/Paragraph.js +1 -1
  95. package/es/components/content/Placeholder/Placeholder.js +1 -1
  96. package/es/components/content/PrismCode/PrismCode.js +1 -1
  97. package/es/components/content/PrismCode/prismSetup.js +1 -1
  98. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  99. package/es/components/content/Result/Result.js +1 -1
  100. package/es/components/content/Skeleton/Skeleton.js +1 -1
  101. package/es/components/content/Tag/Tag.js +1 -1
  102. package/es/components/content/Text.js +1 -1
  103. package/es/components/content/TextItem/TextItem.js +1 -1
  104. package/es/components/content/TextItem/index.js +1 -1
  105. package/es/components/content/Title.js +1 -1
  106. package/es/components/content/highlightText.js +1 -1
  107. package/es/components/content/use-auto-tooltip.js +1 -1
  108. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  109. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  110. package/es/components/fields/Checkbox/context.js +1 -1
  111. package/es/components/fields/Checkbox/index.js +1 -1
  112. package/es/components/fields/ComboBox/ComboBox.js +1 -1
  113. package/es/components/fields/ComboBox/index.js +1 -1
  114. package/es/components/fields/DatePicker/DateInput.js +1 -1
  115. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  116. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  117. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  118. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  119. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  120. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  121. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  122. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  123. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  124. package/es/components/fields/DatePicker/index.js +1 -1
  125. package/es/components/fields/DatePicker/intl.js +1 -1
  126. package/es/components/fields/DatePicker/parseDate.js +1 -1
  127. package/es/components/fields/DatePicker/props.js +1 -1
  128. package/es/components/fields/DatePicker/types.js +1 -1
  129. package/es/components/fields/DatePicker/utils.js +1 -1
  130. package/es/components/fields/FileInput/FileInput.js +1 -1
  131. package/es/components/fields/FilterListBox/FilterListBox.js +1 -1
  132. package/es/components/fields/FilterListBox/index.js +1 -1
  133. package/es/components/fields/FilterPicker/FilterPicker.js +1 -1
  134. package/es/components/fields/FilterPicker/index.js +1 -1
  135. package/es/components/fields/Input/Input.js +1 -1
  136. package/es/components/fields/Input/index.js +1 -1
  137. package/es/components/fields/ListBox/ListBox.js +1 -1
  138. package/es/components/fields/ListBox/index.js +1 -1
  139. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  140. package/es/components/fields/NumberInput/StepButton.js +1 -1
  141. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  142. package/es/components/fields/Picker/Picker.js +1 -1
  143. package/es/components/fields/Picker/index.js +1 -1
  144. package/es/components/fields/RadioGroup/Radio.js +1 -1
  145. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  146. package/es/components/fields/RadioGroup/context.js +1 -1
  147. package/es/components/fields/RadioGroup/index.js +1 -1
  148. package/es/components/fields/SearchInput/SearchInput.js +1 -1
  149. package/es/components/fields/SearchInput/index.js +1 -1
  150. package/es/components/fields/Select/Select.js +1 -1
  151. package/es/components/fields/Select/index.js +1 -1
  152. package/es/components/fields/Slider/Gradation.js +1 -1
  153. package/es/components/fields/Slider/Header.js +1 -1
  154. package/es/components/fields/Slider/HueSlider.js +1 -1
  155. package/es/components/fields/Slider/RangeSlider.js +1 -1
  156. package/es/components/fields/Slider/Slider.js +1 -1
  157. package/es/components/fields/Slider/SliderBase.js +1 -1
  158. package/es/components/fields/Slider/SliderInput.js +1 -1
  159. package/es/components/fields/Slider/SliderThumb.js +1 -1
  160. package/es/components/fields/Slider/SliderTrack.js +1 -1
  161. package/es/components/fields/Slider/elements.js +1 -1
  162. package/es/components/fields/Slider/index.js +1 -1
  163. package/es/components/fields/Slider/types.js +1 -1
  164. package/es/components/fields/Switch/Switch.js +1 -1
  165. package/es/components/fields/Switch/index.js +1 -1
  166. package/es/components/fields/TextArea/TextArea.js +1 -1
  167. package/es/components/fields/TextArea/index.js +1 -1
  168. package/es/components/fields/TextInput/TextInput.js +1 -1
  169. package/es/components/fields/TextInput/TextInputBase.js +1 -1
  170. package/es/components/fields/TextInput/index.js +1 -1
  171. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  172. package/es/components/fields/TextInputMapper/index.js +1 -1
  173. package/es/components/fields/index.js +1 -1
  174. package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
  175. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  176. package/es/components/form/FieldWrapper/index.js +1 -1
  177. package/es/components/form/FieldWrapper/types.js +1 -1
  178. package/es/components/form/Form/Field.js +1 -1
  179. package/es/components/form/Form/Form.js +1 -1
  180. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  181. package/es/components/form/Form/ResetButton/index.js +1 -1
  182. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  183. package/es/components/form/Form/SubmitButton/index.js +1 -1
  184. package/es/components/form/Form/SubmitError.js +1 -1
  185. package/es/components/form/Form/index.js +1 -1
  186. package/es/components/form/Form/types.js +1 -1
  187. package/es/components/form/Form/use-field/index.js +1 -1
  188. package/es/components/form/Form/use-field/types.js +1 -1
  189. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  190. package/es/components/form/Form/use-field/use-field.js +1 -1
  191. package/es/components/form/Form/use-form.js +1 -1
  192. package/es/components/form/Form/validation.js +1 -1
  193. package/es/components/form/Label.js +1 -1
  194. package/es/components/form/index.js +1 -1
  195. package/es/components/form/wrapper.js +1 -1
  196. package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  197. package/es/components/helpers/DisplayTransition/index.js +1 -1
  198. package/es/components/helpers/IconSwitch/IconSwitch.js +1 -1
  199. package/es/components/helpers/index.js +1 -1
  200. package/es/components/layout/Flex.js +1 -1
  201. package/es/components/layout/Flow.js +1 -1
  202. package/es/components/layout/Grid.js +1 -1
  203. package/es/components/layout/Panel.js +1 -1
  204. package/es/components/layout/Prefix.js +1 -1
  205. package/es/components/layout/ResizablePanel.js +1 -1
  206. package/es/components/layout/Space.js +1 -1
  207. package/es/components/layout/Suffix.js +1 -1
  208. package/es/components/navigation/Tabs/DraggableTabList.js +1 -1
  209. package/es/components/navigation/Tabs/EditableTitle.js +1 -1
  210. package/es/components/navigation/Tabs/TabButton.js +1 -1
  211. package/es/components/navigation/Tabs/TabDropIndicator.js +1 -1
  212. package/es/components/navigation/Tabs/TabPanel.js +1 -1
  213. package/es/components/navigation/Tabs/TabPicker.js +1 -1
  214. package/es/components/navigation/Tabs/Tabs.js +1 -1
  215. package/es/components/navigation/Tabs/TabsAction.js +1 -1
  216. package/es/components/navigation/Tabs/TabsContext.js +1 -1
  217. package/es/components/navigation/Tabs/index.js +1 -1
  218. package/es/components/navigation/Tabs/styled.js +1 -1
  219. package/es/components/navigation/Tabs/types.js +1 -1
  220. package/es/components/navigation/Tabs/use-tab-editing.js +1 -1
  221. package/es/components/navigation/Tabs/use-tab-indicator.js +1 -1
  222. package/es/components/navigation/index.js +1 -1
  223. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  224. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  225. package/es/components/other/Calendar/Calendar.js +1 -1
  226. package/es/components/other/Calendar/CalendarCell.js +1 -1
  227. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  228. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  229. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  230. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  231. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  232. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  233. package/es/components/overlays/AlertDialog/index.js +1 -1
  234. package/es/components/overlays/AlertDialog/types.js +1 -1
  235. package/es/components/overlays/Dialog/Dialog.js +1 -1
  236. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  237. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  238. package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
  239. package/es/components/overlays/Dialog/context.js +1 -1
  240. package/es/components/overlays/Dialog/index.js +1 -1
  241. package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
  242. package/es/components/overlays/Modal/Modal.js +1 -1
  243. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  244. package/es/components/overlays/Modal/Overlay.js +1 -1
  245. package/es/components/overlays/Modal/Popover.js +1 -1
  246. package/es/components/overlays/Modal/Tray.js +1 -1
  247. package/es/components/overlays/Modal/Underlay.js +1 -1
  248. package/es/components/overlays/Modal/index.js +1 -1
  249. package/es/components/overlays/Modal/types.js +1 -1
  250. package/es/components/overlays/Notifications/Notification.js +92 -0
  251. package/es/components/overlays/Notifications/NotificationAction.js +73 -0
  252. package/es/components/overlays/Notifications/NotificationCard.js +87 -0
  253. package/es/components/overlays/Notifications/NotificationContext.js +44 -0
  254. package/es/components/overlays/Notifications/NotificationItem.js +63 -0
  255. package/es/components/overlays/Notifications/OverlayContainer.js +339 -0
  256. package/es/components/overlays/Notifications/OverlayProvider.js +69 -0
  257. package/es/components/overlays/Notifications/PersistentNotificationsList.js +105 -0
  258. package/es/components/overlays/Notifications/format-relative-time.js +55 -0
  259. package/es/components/overlays/Notifications/index.js +51 -0
  260. package/es/components/overlays/{NewNotifications/NotificationsList → Notifications}/types.js +1 -1
  261. package/es/components/overlays/Notifications/use-notification-state.js +205 -0
  262. package/es/components/overlays/Notifications/use-notifications.js +175 -0
  263. package/es/components/overlays/Notifications/use-overlay-timers.js +138 -0
  264. package/es/components/overlays/Notifications/use-persistent-notifications.js +63 -0
  265. package/es/components/overlays/Notifications/use-persistent-state.js +66 -0
  266. package/es/components/overlays/Notifications/use-toast-state.js +143 -0
  267. package/es/components/overlays/OverlayWrapper.js +1 -1
  268. package/es/components/overlays/Toast/ToastItem.js +6 -3
  269. package/es/components/overlays/Toast/ToastProvider.js +6 -352
  270. package/es/components/overlays/Toast/index.js +3 -8
  271. package/es/components/overlays/Toast/types.js +1 -1
  272. package/es/components/overlays/Toast/useProgressToast.js +2 -5
  273. package/es/components/overlays/Toast/useToast.js +1 -7
  274. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  275. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  276. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  277. package/es/components/overlays/Tooltip/context.js +1 -1
  278. package/es/components/overlays/Tooltip/index.js +1 -1
  279. package/es/components/portal/Portal.js +1 -1
  280. package/es/components/portal/PortalProvider.js +1 -1
  281. package/es/components/portal/index.js +1 -1
  282. package/es/components/portal/types.js +1 -1
  283. package/es/components/portal/usePortal.js +1 -1
  284. package/es/components/shared/InvalidIcon.js +1 -1
  285. package/es/components/shared/ValidIcon.js +1 -1
  286. package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  287. package/es/components/status/LoadingAnimation/index.js +1 -1
  288. package/es/components/status/Spin/Cube.js +1 -1
  289. package/es/components/status/Spin/InternalSpinner.js +1 -1
  290. package/es/components/status/Spin/Spin.js +1 -1
  291. package/es/components/status/Spin/SpinsContainer.js +1 -1
  292. package/es/components/status/Spin/index.js +1 -1
  293. package/es/components/status/Spin/types.js +1 -1
  294. package/es/components/status/index.js +1 -1
  295. package/es/data/item-themes.js +1 -1
  296. package/es/data/themes.js +1 -1
  297. package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
  298. package/es/icons/AdjustmentsIcon.js +1 -1
  299. package/es/icons/AiIcon.js +1 -1
  300. package/es/icons/AreaChartIcon.js +1 -1
  301. package/es/icons/BackwardIcon.js +1 -1
  302. package/es/icons/BarChartIcon.js +1 -1
  303. package/es/icons/BellFilledIcon.js +1 -1
  304. package/es/icons/BellIcon.js +1 -1
  305. package/es/icons/BooleanIcon.js +1 -1
  306. package/es/icons/CalendarEditIcon.js +1 -1
  307. package/es/icons/CalendarIcon.js +1 -1
  308. package/es/icons/CaretDownIcon.js +1 -1
  309. package/es/icons/CaretUpIcon.js +1 -1
  310. package/es/icons/ChartAreaStackedIcon.js +1 -1
  311. package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
  312. package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  313. package/es/icons/ChartBarGroupedIcon.js +1 -1
  314. package/es/icons/ChartBarHorizontalIcon.js +1 -1
  315. package/es/icons/ChartBarLineIcon.js +1 -1
  316. package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
  317. package/es/icons/ChartBarStackedIcon.js +1 -1
  318. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  319. package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
  320. package/es/icons/ChartBoxPlot2Icon.js +1 -1
  321. package/es/icons/ChartBoxPlotIcon.js +1 -1
  322. package/es/icons/ChartBubbleIcon.js +1 -1
  323. package/es/icons/ChartDonut2Icon.js +1 -1
  324. package/es/icons/ChartFunnelIcon.js +1 -1
  325. package/es/icons/ChartHeatmapIcon.js +1 -1
  326. package/es/icons/ChartKPIIcon.js +1 -1
  327. package/es/icons/ChartPie2Icon.js +1 -1
  328. package/es/icons/ChartScatterIcon.js +1 -1
  329. package/es/icons/CheckCircleFilledIcon.js +1 -1
  330. package/es/icons/CheckCircleIcon.js +1 -1
  331. package/es/icons/CheckIcon.js +1 -1
  332. package/es/icons/CircleFilledIcon.js +1 -1
  333. package/es/icons/ClearIcon.js +1 -1
  334. package/es/icons/CloseCircleFilledIcon.js +1 -1
  335. package/es/icons/CloseCircleIcon.js +1 -1
  336. package/es/icons/CloseIcon.js +1 -1
  337. package/es/icons/CodeIcon.js +1 -1
  338. package/es/icons/ColumnTotalIcon.js +1 -1
  339. package/es/icons/CopyIcon.js +1 -1
  340. package/es/icons/CountIcon.js +1 -1
  341. package/es/icons/CubeIcon.js +1 -1
  342. package/es/icons/CubePauseIcon.js +1 -1
  343. package/es/icons/CubePlayIcon.js +1 -1
  344. package/es/icons/CurrencyDollarIcon.js +1 -1
  345. package/es/icons/DangerIcon.js +1 -1
  346. package/es/icons/DashboardIcon.js +1 -1
  347. package/es/icons/DatabaseIcon.js +1 -1
  348. package/es/icons/DecimalDecreaseIcon.js +1 -1
  349. package/es/icons/DecimalIncreaseIcon.js +1 -1
  350. package/es/icons/DirectionIcon.js +1 -1
  351. package/es/icons/DonutIcon.js +1 -1
  352. package/es/icons/DownIcon.js +1 -1
  353. package/es/icons/EditIcon.js +1 -1
  354. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  355. package/es/icons/ExclamationCircleIcon.js +1 -1
  356. package/es/icons/ExclamationIcon.js +1 -1
  357. package/es/icons/EyeIcon.js +1 -1
  358. package/es/icons/EyeInvisibleIcon.js +1 -1
  359. package/es/icons/FilterIcon.js +1 -1
  360. package/es/icons/FolderFilledIcon.js +1 -1
  361. package/es/icons/FolderIcon.js +1 -1
  362. package/es/icons/FolderOpenFilledIcon.js +1 -1
  363. package/es/icons/FolderOpenIcon.js +1 -1
  364. package/es/icons/ForwardIcon.js +1 -1
  365. package/es/icons/HierarchyIcon.js +1 -1
  366. package/es/icons/HierarchyOpenIcon.js +1 -1
  367. package/es/icons/Icon.js +1 -1
  368. package/es/icons/InfoCircleIcon.js +1 -1
  369. package/es/icons/InfoIcon.js +1 -1
  370. package/es/icons/KeyIcon.js +1 -1
  371. package/es/icons/LeftIcon.js +1 -1
  372. package/es/icons/LineChartIcon.js +1 -1
  373. package/es/icons/LoadingIcon.js +1 -1
  374. package/es/icons/LockFilledIcon.js +1 -1
  375. package/es/icons/LockIcon.js +1 -1
  376. package/es/icons/MoreIcon.js +1 -1
  377. package/es/icons/NotAllowedIcon.js +1 -1
  378. package/es/icons/Number123Icon.js +1 -1
  379. package/es/icons/NumberIcon.js +1 -1
  380. package/es/icons/PauseCircleFilledIcon.js +1 -1
  381. package/es/icons/PauseCircleIcon.js +1 -1
  382. package/es/icons/PauseIcon.js +1 -1
  383. package/es/icons/PercentageIcon.js +1 -1
  384. package/es/icons/PieChartIcon.js +1 -1
  385. package/es/icons/PlayCircleIcon.js +1 -1
  386. package/es/icons/PlayIcon.js +1 -1
  387. package/es/icons/PlusIcon.js +1 -1
  388. package/es/icons/ProgressBarIcon.js +1 -1
  389. package/es/icons/ReloadIcon.js +1 -1
  390. package/es/icons/ReportIcon.js +1 -1
  391. package/es/icons/ReturnIcon.js +1 -1
  392. package/es/icons/RightIcon.js +1 -1
  393. package/es/icons/RowTotalsIcon.js +1 -1
  394. package/es/icons/SchemeIcon.js +1 -1
  395. package/es/icons/SearchIcon.js +1 -1
  396. package/es/icons/SemanticQueryIcon.js +1 -1
  397. package/es/icons/SettingsIcon.js +1 -1
  398. package/es/icons/ShieldFilledIcon.js +1 -1
  399. package/es/icons/ShieldIcon.js +1 -1
  400. package/es/icons/SlashIcon.js +1 -1
  401. package/es/icons/SparklesIcon.js +1 -1
  402. package/es/icons/SqlIcon.js +1 -1
  403. package/es/icons/StatsIcon.js +1 -1
  404. package/es/icons/StopIcon.js +1 -1
  405. package/es/icons/StringIcon.js +1 -1
  406. package/es/icons/SubtotalsIcon.js +1 -1
  407. package/es/icons/SwitchIcon.js +1 -1
  408. package/es/icons/TableIcon.js +1 -1
  409. package/es/icons/ThumbsDownIcon.js +1 -1
  410. package/es/icons/ThumbsUpIcon.js +1 -1
  411. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  412. package/es/icons/ThunderboltFilledIcon.js +1 -1
  413. package/es/icons/ThunderboltIcon.js +1 -1
  414. package/es/icons/TimeIcon.js +1 -1
  415. package/es/icons/TrashIcon.js +1 -1
  416. package/es/icons/UnlockIcon.js +1 -1
  417. package/es/icons/UpIcon.js +1 -1
  418. package/es/icons/UserGroupIcon.js +1 -1
  419. package/es/icons/UserIcon.js +1 -1
  420. package/es/icons/UserLockIcon.js +1 -1
  421. package/es/icons/ViewIcon.js +1 -1
  422. package/es/icons/WarningFilledIcon.js +1 -1
  423. package/es/icons/WarningIcon.js +1 -1
  424. package/es/icons/index.js +1 -1
  425. package/es/icons/wrap-icon.js +1 -1
  426. package/es/index.js +2 -4
  427. package/es/provider.js +1 -1
  428. package/es/providers/TrackingProvider.js +1 -1
  429. package/es/providers/navigation.types.js +1 -1
  430. package/es/providers/navigationAdapter.default.js +1 -1
  431. package/es/shared/form.js +1 -1
  432. package/es/shared/index.js +1 -1
  433. package/es/stories/Form.legacy-stories.js +1 -1
  434. package/es/stories/FormFieldArgs.js +1 -1
  435. package/es/stories/SimpleLayout.stories.js +1 -1
  436. package/es/stories/Tasty.stories.js +1 -1
  437. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  438. package/es/stories/components/DialogFormApp.js +1 -1
  439. package/es/stories/components/StyledButton.js +1 -1
  440. package/es/stories/lists/baseProps.js +1 -1
  441. package/es/stories/playground/PlaygroundEditor.js +1 -1
  442. package/es/stories/playground/PlaygroundLayout.js +1 -1
  443. package/es/stories/playground/PlaygroundOutput.js +1 -1
  444. package/es/stories/playground/PlaygroundPreview.js +1 -1
  445. package/es/stories/playground/components/Button.js +1 -1
  446. package/es/stories/playground/components/Card.js +1 -1
  447. package/es/stories/playground/components/ScrollProgress.js +1 -1
  448. package/es/stories/playground/examples.js +1 -1
  449. package/es/tasty/chunks/cacheKey.js +1 -1
  450. package/es/tasty/chunks/definitions.js +1 -1
  451. package/es/tasty/chunks/index.js +1 -1
  452. package/es/tasty/chunks/renderChunk.js +1 -1
  453. package/es/tasty/config.js +1 -1
  454. package/es/tasty/debug.js +1 -1
  455. package/es/tasty/hooks/index.js +1 -1
  456. package/es/tasty/hooks/useGlobalStyles.js +1 -1
  457. package/es/tasty/hooks/useKeyframes.js +1 -1
  458. package/es/tasty/hooks/useProperty.js +1 -1
  459. package/es/tasty/hooks/useRawCSS.js +1 -1
  460. package/es/tasty/hooks/useStyles.js +1 -1
  461. package/es/tasty/index.js +1 -3
  462. package/es/tasty/injector/index.js +1 -1
  463. package/es/tasty/injector/injector.js +1 -1
  464. package/es/tasty/injector/sheet-manager.js +1 -1
  465. package/es/tasty/injector/types.js +1 -1
  466. package/es/tasty/keyframes/index.js +1 -1
  467. package/es/tasty/parser/classify.js +1 -1
  468. package/es/tasty/parser/const.js +1 -1
  469. package/es/tasty/parser/lru.js +1 -1
  470. package/es/tasty/parser/parser.js +1 -1
  471. package/es/tasty/parser/tokenizer.js +1 -1
  472. package/es/tasty/parser/types.js +1 -1
  473. package/es/tasty/pipeline/conditions.js +1 -1
  474. package/es/tasty/pipeline/exclusive.js +1 -1
  475. package/es/tasty/pipeline/index.js +1 -1
  476. package/es/tasty/pipeline/materialize.js +1 -1
  477. package/es/tasty/pipeline/parseStateKey.js +1 -1
  478. package/es/tasty/pipeline/simplify.js +1 -1
  479. package/es/tasty/plugins/index.js +1 -1
  480. package/es/tasty/plugins/okhsl-plugin.js +1 -1
  481. package/es/tasty/plugins/types.js +1 -1
  482. package/es/tasty/properties/index.js +1 -1
  483. package/es/tasty/states/index.js +1 -1
  484. package/es/tasty/static/index.js +1 -1
  485. package/es/tasty/static/tastyStatic.js +1 -1
  486. package/es/tasty/static/types.js +1 -1
  487. package/es/tasty/styles/align.js +1 -1
  488. package/es/tasty/styles/border.js +1 -1
  489. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  490. package/es/tasty/styles/color.js +1 -1
  491. package/es/tasty/styles/createStyle.js +1 -1
  492. package/es/tasty/styles/dimension.js +1 -1
  493. package/es/tasty/styles/display.js +1 -1
  494. package/es/tasty/styles/fade.js +1 -1
  495. package/es/tasty/styles/fill.js +1 -1
  496. package/es/tasty/styles/flow.js +1 -1
  497. package/es/tasty/styles/gap.js +1 -1
  498. package/es/tasty/styles/height.js +1 -1
  499. package/es/tasty/styles/index.js +1 -1
  500. package/es/tasty/styles/inset.js +1 -1
  501. package/es/tasty/styles/justify.js +1 -1
  502. package/es/tasty/styles/list.js +1 -1
  503. package/es/tasty/styles/margin.js +1 -1
  504. package/es/tasty/styles/outline.js +1 -1
  505. package/es/tasty/styles/padding.js +1 -1
  506. package/es/tasty/styles/place.js +1 -1
  507. package/es/tasty/styles/predefined.js +1 -1
  508. package/es/tasty/styles/preset.js +1 -1
  509. package/es/tasty/styles/radius.js +1 -1
  510. package/es/tasty/styles/reset.js +1 -1
  511. package/es/tasty/styles/scrollbar.js +1 -1
  512. package/es/tasty/styles/shadow.js +1 -1
  513. package/es/tasty/styles/styledScrollbar.js +1 -1
  514. package/es/tasty/styles/transition.js +1 -1
  515. package/es/tasty/styles/types.js +1 -1
  516. package/es/tasty/styles/width.js +1 -1
  517. package/es/tasty/tasty.js +1 -1
  518. package/es/tasty/types.js +1 -1
  519. package/es/tasty/utils/cache-wrapper.js +1 -1
  520. package/es/tasty/utils/case-converter.js +1 -1
  521. package/es/tasty/utils/colors.js +1 -1
  522. package/es/tasty/utils/dotize.js +1 -1
  523. package/es/tasty/utils/filter-base-props.js +1 -1
  524. package/es/tasty/utils/get-display-name.js +1 -1
  525. package/es/tasty/utils/hsl-to-rgb.js +1 -1
  526. package/es/tasty/utils/is-dev-env.js +1 -1
  527. package/es/tasty/utils/merge-styles.js +1 -1
  528. package/es/tasty/utils/mod-attrs.js +1 -1
  529. package/es/tasty/utils/okhsl-to-rgb.js +1 -1
  530. package/es/tasty/utils/process-tokens.js +1 -1
  531. package/es/tasty/utils/resolve-recipes.js +1 -1
  532. package/es/tasty/utils/rgb-to-okhsl.js +1 -1
  533. package/es/tasty/utils/string.js +1 -1
  534. package/es/tasty/utils/styles.js +1 -1
  535. package/es/tasty/utils/typography.js +1 -1
  536. package/es/tasty/utils/warnings.js +1 -1
  537. package/es/tasty/zero/babel.js +1 -1
  538. package/es/tasty/zero/css-writer.js +1 -1
  539. package/es/tasty/zero/extractor.js +1 -1
  540. package/es/tasty/zero/index.js +1 -1
  541. package/es/tasty/zero/next.js +1 -1
  542. package/es/tokens/base.js +1 -1
  543. package/es/tokens/colors.js +1 -1
  544. package/es/tokens/index.js +1 -1
  545. package/es/tokens/layout.js +1 -1
  546. package/es/tokens/shadows.js +1 -1
  547. package/es/tokens/sizes.js +1 -1
  548. package/es/tokens/spacing.js +1 -1
  549. package/es/tokens/typography.js +1 -1
  550. package/es/utils/ResizeSensor.js +1 -1
  551. package/es/utils/index.js +1 -1
  552. package/es/utils/modules.js +1 -1
  553. package/es/utils/promise.js +1 -1
  554. package/es/utils/raf.js +1 -1
  555. package/es/utils/random.js +1 -1
  556. package/es/utils/range.js +1 -1
  557. package/es/utils/react/RenderCache.js +1 -1
  558. package/es/utils/react/Slots.js +1 -1
  559. package/es/utils/react/chain.js +1 -1
  560. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  561. package/es/utils/react/index.js +1 -1
  562. package/es/utils/react/interactions.js +1 -1
  563. package/es/utils/react/isTextOnly.js +1 -1
  564. package/es/utils/react/mapProps.js +1 -1
  565. package/es/utils/react/mergeProps.js +1 -1
  566. package/es/utils/react/nullableValue.js +1 -1
  567. package/es/utils/react/resolveIcon.js +1 -1
  568. package/es/utils/react/sharedStore.js +1 -1
  569. package/es/utils/react/useCombinedRefs.js +1 -1
  570. package/es/utils/react/useControlledFocusVisible.js +1 -1
  571. package/es/utils/react/useEventBus.js +1 -1
  572. package/es/utils/react/useId.js +1 -1
  573. package/es/utils/react/useIsDarwin.js +1 -1
  574. package/es/utils/react/useKeySymbols.js +1 -1
  575. package/es/utils/react/useLayoutEffect.js +1 -1
  576. package/es/utils/react/useLocalStorage.js +1 -1
  577. package/es/utils/react/useMergeStyles.js +1 -1
  578. package/es/utils/react/useQaProps.js +1 -1
  579. package/es/utils/react/useViewportSize.js +1 -1
  580. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  581. package/es/utils/tree.js +1 -1
  582. package/es/utils/warnings.js +1 -1
  583. package/es/version.js +2 -2
  584. package/package.json +1 -1
  585. package/types/components/overlays/Notifications/Notification.d.ts +33 -0
  586. package/types/components/overlays/Notifications/NotificationAction.d.ts +27 -0
  587. package/types/components/overlays/Notifications/NotificationCard.d.ts +37 -0
  588. package/types/components/overlays/Notifications/NotificationContext.d.ts +16 -0
  589. package/types/components/overlays/Notifications/NotificationItem.d.ts +7 -0
  590. package/types/components/overlays/Notifications/OverlayContainer.d.ts +12 -0
  591. package/types/components/overlays/Notifications/OverlayProvider.d.ts +3 -0
  592. package/types/components/overlays/Notifications/PersistentNotificationsList.d.ts +18 -0
  593. package/types/components/overlays/Notifications/format-relative-time.d.ts +14 -0
  594. package/types/components/overlays/Notifications/index.d.ts +40 -0
  595. package/types/components/overlays/Notifications/types.d.ts +147 -0
  596. package/types/components/overlays/Notifications/use-notification-state.d.ts +20 -0
  597. package/types/components/overlays/Notifications/use-notifications.d.ts +36 -0
  598. package/types/components/overlays/Notifications/use-overlay-timers.d.ts +26 -0
  599. package/types/components/overlays/Notifications/use-persistent-notifications.d.ts +48 -0
  600. package/types/components/overlays/Notifications/use-persistent-state.d.ts +11 -0
  601. package/types/components/overlays/Notifications/use-toast-state.d.ts +16 -0
  602. package/types/components/overlays/Toast/ToastItem.d.ts +3 -1
  603. package/types/components/overlays/Toast/ToastProvider.d.ts +5 -8
  604. package/types/components/overlays/Toast/index.d.ts +1 -1
  605. package/types/components/overlays/Toast/types.d.ts +3 -1
  606. package/types/index.d.ts +1 -3
  607. package/types/tasty/index.d.ts +0 -2
  608. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +0 -54
  609. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +0 -95
  610. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +0 -56
  611. package/es/components/overlays/NewNotifications/Bar/index.js +0 -10
  612. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +0 -19
  613. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +0 -38
  614. package/es/components/overlays/NewNotifications/Dialog/index.js +0 -10
  615. package/es/components/overlays/NewNotifications/Notification.js +0 -41
  616. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +0 -41
  617. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +0 -25
  618. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +0 -36
  619. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +0 -60
  620. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +0 -31
  621. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +0 -69
  622. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +0 -25
  623. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +0 -86
  624. package/es/components/overlays/NewNotifications/NotificationView/index.js +0 -11
  625. package/es/components/overlays/NewNotifications/NotificationView/types.js +0 -10
  626. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +0 -11
  627. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +0 -21
  628. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +0 -11
  629. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +0 -91
  630. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +0 -45
  631. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +0 -29
  632. package/es/components/overlays/NewNotifications/NotificationsList/index.js +0 -10
  633. package/es/components/overlays/NewNotifications/hooks/index.js +0 -14
  634. package/es/components/overlays/NewNotifications/hooks/types.js +0 -10
  635. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +0 -15
  636. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +0 -17
  637. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +0 -29
  638. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +0 -17
  639. package/es/components/overlays/NewNotifications/index.js +0 -15
  640. package/es/components/overlays/NewNotifications/types.js +0 -10
  641. package/es/components/overlays/Notification/Notification.js +0 -80
  642. package/es/services/notification.js +0 -71
  643. package/es/tasty/glaze/contrast-solver.js +0 -235
  644. package/es/tasty/glaze/glaze.js +0 -557
  645. package/es/tasty/glaze/index.js +0 -22
  646. package/es/tasty/glaze/okhsl-color-math.js +0 -300
  647. package/es/tasty/glaze/types.js +0 -13
  648. package/types/components/overlays/NewNotifications/Bar/FloatingNotification.d.ts +0 -15
  649. package/types/components/overlays/NewNotifications/Bar/NotificationsBar.d.ts +0 -21
  650. package/types/components/overlays/NewNotifications/Bar/TransitionComponent.d.ts +0 -4
  651. package/types/components/overlays/NewNotifications/Bar/index.d.ts +0 -1
  652. package/types/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.d.ts +0 -9
  653. package/types/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.d.ts +0 -11
  654. package/types/components/overlays/NewNotifications/Dialog/index.d.ts +0 -1
  655. package/types/components/overlays/NewNotifications/Notification.d.ts +0 -18
  656. package/types/components/overlays/NewNotifications/NotificationView/NotificationAction.d.ts +0 -13
  657. package/types/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.d.ts +0 -4
  658. package/types/components/overlays/NewNotifications/NotificationView/NotificationDescription.d.ts +0 -9
  659. package/types/components/overlays/NewNotifications/NotificationView/NotificationFooter.d.ts +0 -13
  660. package/types/components/overlays/NewNotifications/NotificationView/NotificationHeader.d.ts +0 -9
  661. package/types/components/overlays/NewNotifications/NotificationView/NotificationIcon.d.ts +0 -9
  662. package/types/components/overlays/NewNotifications/NotificationView/NotificationProvider.d.ts +0 -10
  663. package/types/components/overlays/NewNotifications/NotificationView/NotificationView.d.ts +0 -10
  664. package/types/components/overlays/NewNotifications/NotificationView/index.d.ts +0 -2
  665. package/types/components/overlays/NewNotifications/NotificationView/types.d.ts +0 -16
  666. package/types/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.d.ts +0 -5
  667. package/types/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.d.ts +0 -4
  668. package/types/components/overlays/NewNotifications/NotificationsContext/index.d.ts +0 -2
  669. package/types/components/overlays/NewNotifications/NotificationsContext/use-notifications.d.ts +0 -8
  670. package/types/components/overlays/NewNotifications/NotificationsList/NotificationsList.d.ts +0 -21
  671. package/types/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.d.ts +0 -5
  672. package/types/components/overlays/NewNotifications/NotificationsList/index.d.ts +0 -2
  673. package/types/components/overlays/NewNotifications/NotificationsList/types.d.ts +0 -22
  674. package/types/components/overlays/NewNotifications/hooks/index.d.ts +0 -5
  675. package/types/components/overlays/NewNotifications/hooks/types.d.ts +0 -10
  676. package/types/components/overlays/NewNotifications/hooks/use-notification-list-item.d.ts +0 -9
  677. package/types/components/overlays/NewNotifications/hooks/use-notifications-api.d.ts +0 -1
  678. package/types/components/overlays/NewNotifications/hooks/use-notifications-list.d.ts +0 -12
  679. package/types/components/overlays/NewNotifications/hooks/use-notifications-observer.d.ts +0 -2
  680. package/types/components/overlays/NewNotifications/index.d.ts +0 -8
  681. package/types/components/overlays/NewNotifications/types.d.ts +0 -76
  682. package/types/components/overlays/Notification/Notification.d.ts +0 -6
  683. package/types/services/notification.d.ts +0 -28
  684. package/types/tasty/glaze/contrast-solver.d.ts +0 -45
  685. package/types/tasty/glaze/glaze.d.ts +0 -38
  686. package/types/tasty/glaze/index.d.ts +0 -13
  687. package/types/tasty/glaze/okhsl-color-math.d.ts +0 -33
  688. package/types/tasty/glaze/types.d.ts +0 -117
@@ -0,0 +1,339 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.0.0-canary-c48279e
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ import { useCallback, useEffect, useMemo, useRef, useState, } from 'react';
10
+ import { useEvent } from '../../../_internal/index.js';
11
+ import { tasty } from '../../../tasty/index.js';
12
+ import { useLayoutEffect } from '../../../utils/react/useLayoutEffect.js';
13
+ import { DisplayTransition } from '../../helpers/DisplayTransition/DisplayTransition.js';
14
+ import { Portal } from '../../portal/index.js';
15
+ import { ToastItem } from '../Toast/ToastItem.js';
16
+ import { NotificationItem } from './NotificationItem.js';
17
+ // ─── Constants ───────────────────────────────────────────────────────
18
+ const COLLAPSE_VISIBLE_HEIGHT = 10;
19
+ const CONTAINER_OFFSET = 16;
20
+ const ITEM_GAP = 8;
21
+ const DEFAULT_ITEM_HEIGHT = 56;
22
+ // ─── Styled Elements ─────────────────────────────────────────────────
23
+ const OverlayContainerElement = tasty({
24
+ styles: {
25
+ position: 'fixed',
26
+ top: '2x',
27
+ left: '50%',
28
+ transform: 'translateX(-50%)',
29
+ zIndex: 10000,
30
+ padding: '1x',
31
+ height: '0',
32
+ pointerEvents: 'none',
33
+ },
34
+ });
35
+ const OverlayItemWrapper = tasty({
36
+ styles: {
37
+ position: 'absolute',
38
+ top: '0',
39
+ left: '50%',
40
+ transform: {
41
+ '': 'translateX(-50%) translateY(-50%)',
42
+ 'isMeasured & isShown': 'translateX(-50%) translateY(0)',
43
+ },
44
+ width: 'max-content 50x',
45
+ pointerEvents: 'auto',
46
+ transition: {
47
+ '': 'opacity $transition ease-in, transform $transition ease-in',
48
+ isMeasured: 'top $transition ease-in, opacity $transition ease-in, transform $transition ease-in',
49
+ },
50
+ opacity: {
51
+ '': 0,
52
+ isShown: 1,
53
+ },
54
+ },
55
+ });
56
+ function getItemId(item) {
57
+ return item.data.internalId;
58
+ }
59
+ function isItemExiting(item) {
60
+ return item.data.isExiting === true;
61
+ }
62
+ function getItemCreatedAt(item) {
63
+ return item.data.createdAt;
64
+ }
65
+ /**
66
+ * Manages height measurement, position calculation, and ref tracking
67
+ * for overlay items. Extracted from OverlayContainer for readability.
68
+ */
69
+ function useItemPositions(visibleItems) {
70
+ const [heights, setHeights] = useState({});
71
+ const itemRefs = useRef(new Map());
72
+ const lastPositionsRef = useRef(new Map());
73
+ // Items that have been measured AND painted at their correct position.
74
+ // Lags one frame behind `heights` so the browser paints the item at
75
+ // its final `top` before the CSS `top` transition is enabled.
76
+ const [settledIds, setSettledIds] = useState(new Set());
77
+ const rafRef = useRef(null);
78
+ // Measure heights using layout effect to avoid visible layout shifts.
79
+ // Runs every render but bails early if nothing changed.
80
+ useLayoutEffect(() => {
81
+ const newHeights = {};
82
+ let hasChanges = false;
83
+ itemRefs.current.forEach((el, id) => {
84
+ const height = el.offsetHeight || DEFAULT_ITEM_HEIGHT;
85
+ newHeights[id] = height;
86
+ if (heights[id] !== height) {
87
+ hasChanges = true;
88
+ }
89
+ });
90
+ for (const id of Object.keys(heights)) {
91
+ if (!itemRefs.current.has(id)) {
92
+ hasChanges = true;
93
+ }
94
+ }
95
+ if (hasChanges) {
96
+ setHeights(newHeights);
97
+ }
98
+ });
99
+ // After heights change, schedule settledIds update for the next frame.
100
+ // This ensures the item is painted at its correct position (with no top
101
+ // transition) before we enable the transition.
102
+ useEffect(() => {
103
+ const heightKeys = Object.keys(heights);
104
+ const newIds = heightKeys.filter((id) => !settledIds.has(id));
105
+ const hasStaleIds = settledIds.size > 0 && [...settledIds].some((id) => !(id in heights));
106
+ if (newIds.length === 0 && !hasStaleIds)
107
+ return;
108
+ if (rafRef.current != null) {
109
+ cancelAnimationFrame(rafRef.current);
110
+ }
111
+ // For pruning-only updates (no new items), apply synchronously since
112
+ // there's no need to wait for a paint frame.
113
+ if (newIds.length === 0 && hasStaleIds) {
114
+ setSettledIds((prev) => new Set(heightKeys.filter((id) => prev.has(id))));
115
+ return;
116
+ }
117
+ rafRef.current = requestAnimationFrame(() => {
118
+ rafRef.current = null;
119
+ setSettledIds((prev) => {
120
+ const next = new Set();
121
+ // Only keep IDs that still exist in heights (prune removed items)
122
+ for (const id of heightKeys) {
123
+ if (prev.has(id)) {
124
+ next.add(id);
125
+ }
126
+ }
127
+ for (const id of newIds) {
128
+ next.add(id);
129
+ }
130
+ return next;
131
+ });
132
+ });
133
+ return () => {
134
+ if (rafRef.current != null) {
135
+ cancelAnimationFrame(rafRef.current);
136
+ rafRef.current = null;
137
+ }
138
+ };
139
+ }, [heights]);
140
+ const createRefCallback = useCallback((itemId, displayRef) => (el) => {
141
+ displayRef(el);
142
+ if (el) {
143
+ itemRefs.current.set(itemId, el);
144
+ }
145
+ else {
146
+ itemRefs.current.delete(itemId);
147
+ }
148
+ }, []);
149
+ const positions = useMemo(() => {
150
+ const posMap = new Map();
151
+ let currentTop = 0;
152
+ for (const item of visibleItems) {
153
+ const id = getItemId(item);
154
+ posMap.set(id, currentTop);
155
+ const height = heights[id] ?? DEFAULT_ITEM_HEIGHT;
156
+ currentTop += height + ITEM_GAP;
157
+ }
158
+ return posMap;
159
+ }, [visibleItems, heights]);
160
+ useEffect(() => {
161
+ positions.forEach((pos, id) => {
162
+ lastPositionsRef.current.set(id, pos);
163
+ });
164
+ }, [positions]);
165
+ return {
166
+ heights,
167
+ settledIds,
168
+ positions,
169
+ lastPositionsRef,
170
+ itemRefs,
171
+ createRefCallback,
172
+ };
173
+ }
174
+ /**
175
+ * Manages collapse/expand behavior and pause state for the overlay container.
176
+ * Extracted from OverlayContainer for readability.
177
+ */
178
+ function useCollapseState(canCollapse, allItems, itemRefs, onPauseChange) {
179
+ const [isCollapsed, setIsCollapsed] = useState(false);
180
+ const containerRef = useRef(null);
181
+ const boundsRef = useRef(null);
182
+ const updateBounds = useCallback(() => {
183
+ const refs = itemRefs.current;
184
+ if (!refs || refs.size === 0) {
185
+ boundsRef.current = null;
186
+ return;
187
+ }
188
+ let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
189
+ refs.forEach((el) => {
190
+ const rect = el.getBoundingClientRect();
191
+ minX = Math.min(minX, rect.left);
192
+ minY = Math.min(minY, rect.top);
193
+ maxX = Math.max(maxX, rect.right);
194
+ maxY = Math.max(maxY, rect.bottom);
195
+ });
196
+ if (typeof DOMRect !== 'undefined') {
197
+ boundsRef.current = new DOMRect(minX, minY, maxX - minX, maxY - minY);
198
+ }
199
+ else {
200
+ boundsRef.current = {
201
+ x: minX,
202
+ y: minY,
203
+ width: maxX - minX,
204
+ height: maxY - minY,
205
+ top: minY,
206
+ right: maxX,
207
+ bottom: maxY,
208
+ left: minX,
209
+ toJSON: () => ({}),
210
+ };
211
+ }
212
+ }, [itemRefs]);
213
+ // Track mouse for collapse — expand when mouse leaves bounds
214
+ useEffect(() => {
215
+ if (!isCollapsed)
216
+ return;
217
+ const handleMouseMove = (e) => {
218
+ const bounds = boundsRef.current;
219
+ if (!bounds) {
220
+ setIsCollapsed(false);
221
+ onPauseChange(false);
222
+ return;
223
+ }
224
+ const padding = 20;
225
+ const isInBounds = e.clientX >= bounds.left - padding &&
226
+ e.clientX <= bounds.right + padding &&
227
+ e.clientY >= bounds.top - padding &&
228
+ e.clientY <= bounds.bottom + padding;
229
+ if (!isInBounds) {
230
+ setIsCollapsed(false);
231
+ onPauseChange(false);
232
+ }
233
+ };
234
+ window.addEventListener('mousemove', handleMouseMove);
235
+ return () => window.removeEventListener('mousemove', handleMouseMove);
236
+ }, [isCollapsed, onPauseChange]);
237
+ // Update bounds when items change
238
+ useEffect(() => {
239
+ updateBounds();
240
+ }, [allItems, updateBounds]);
241
+ const handleMouseEnter = useCallback(() => {
242
+ updateBounds();
243
+ onPauseChange(true);
244
+ if (canCollapse) {
245
+ setIsCollapsed(true);
246
+ }
247
+ }, [updateBounds, canCollapse, onPauseChange]);
248
+ const handleMouseLeave = useCallback(() => {
249
+ if (!isCollapsed) {
250
+ onPauseChange(false);
251
+ }
252
+ }, [isCollapsed, onPauseChange]);
253
+ const handleFocus = useCallback(() => {
254
+ onPauseChange(true);
255
+ }, [onPauseChange]);
256
+ const handleBlur = useCallback((e) => {
257
+ if (containerRef.current &&
258
+ !containerRef.current.contains(e.relatedTarget)) {
259
+ onPauseChange(false);
260
+ }
261
+ }, [onPauseChange]);
262
+ return {
263
+ isCollapsed,
264
+ handleMouseEnter,
265
+ handleMouseLeave,
266
+ handleFocus,
267
+ handleBlur,
268
+ containerRef,
269
+ };
270
+ }
271
+ export function OverlayContainer({ toasts, notifications, onToastExitComplete, onNotificationExitComplete, onNotificationDismiss, onPauseChange, }) {
272
+ // Merge toasts and notifications into a single ordered list
273
+ const allItems = useMemo(() => {
274
+ const items = [
275
+ ...toasts.map((t) => ({ kind: 'toast', data: t })),
276
+ ...notifications.map((n) => ({ kind: 'notification', data: n })),
277
+ ];
278
+ // Sort by createdAt ascending (oldest first = bottom of stack, newest last = top)
279
+ items.sort((a, b) => getItemCreatedAt(a) - getItemCreatedAt(b));
280
+ return items;
281
+ }, [toasts, notifications]);
282
+ const visibleItems = useMemo(() => allItems.filter((item) => !isItemExiting(item)), [allItems]);
283
+ const hasNotifications = notifications.some((n) => !n.isExiting);
284
+ const canCollapse = !hasNotifications;
285
+ const { heights, settledIds, positions, lastPositionsRef, itemRefs, createRefCallback, } = useItemPositions(visibleItems);
286
+ const { isCollapsed, handleMouseEnter, handleMouseLeave, handleFocus, handleBlur, containerRef, } = useCollapseState(canCollapse, allItems, itemRefs, onPauseChange);
287
+ // ─── Callbacks ─────────────────────────────────────────────────────
288
+ const handleExitComplete = useEvent((item) => {
289
+ const id = getItemId(item);
290
+ lastPositionsRef.current?.delete(id);
291
+ if (item.kind === 'toast') {
292
+ onToastExitComplete(item.data.internalId);
293
+ }
294
+ else {
295
+ onNotificationExitComplete(item.data.internalId);
296
+ }
297
+ });
298
+ // useCallback (not useEvent) because this is called during render.
299
+ // useEvent defers the ref update to useLayoutEffect, so during render
300
+ // it would still read the previous closure's positions/heights.
301
+ const getItemStyle = useCallback((item, index, total) => {
302
+ const id = getItemId(item);
303
+ const baseTop = positions.get(id) ?? lastPositionsRef.current?.get(id) ?? 0;
304
+ const height = heights[id] ?? DEFAULT_ITEM_HEIGHT;
305
+ if (!isCollapsed || !canCollapse) {
306
+ return { top: `${baseTop}px` };
307
+ }
308
+ const isNewest = index === total - 1;
309
+ const collapsedTop = COLLAPSE_VISIBLE_HEIGHT - CONTAINER_OFFSET - height;
310
+ return {
311
+ top: `${collapsedTop}px`,
312
+ zIndex: index,
313
+ opacity: isNewest ? 1 : 0,
314
+ pointerEvents: 'none',
315
+ };
316
+ }, [isCollapsed, canCollapse, positions, heights, lastPositionsRef]);
317
+ // Build a visibleIndex lookup map to avoid O(n²) findIndex inside render loop
318
+ const visibleIndexMap = useMemo(() => {
319
+ const map = new Map();
320
+ visibleItems.forEach((item, index) => {
321
+ map.set(getItemId(item), index);
322
+ });
323
+ return map;
324
+ }, [visibleItems]);
325
+ if (allItems.length === 0)
326
+ return null;
327
+ return (_jsx(Portal, { children: _jsx(OverlayContainerElement, { ref: containerRef, onFocus: handleFocus, onBlur: handleBlur, children: allItems.map((item) => {
328
+ const itemId = getItemId(item);
329
+ const visibleIndex = visibleIndexMap.get(itemId) ?? 0;
330
+ const isExiting = isItemExiting(item);
331
+ return (_jsx(DisplayTransition, { animateOnMount: true, isShown: !isExiting, onRest: (transition) => {
332
+ if (transition === 'exit') {
333
+ handleExitComplete(item);
334
+ }
335
+ }, children: ({ isShown, ref }) => (_jsx(OverlayItemWrapper, { ref: createRefCallback(itemId, ref), mods: { isShown, isMeasured: settledIds.has(itemId) }, style: getItemStyle(item, visibleIndex, visibleItems.length), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, children: item.kind === 'toast' ? (_jsx(ToastItem, { ...item.data.itemProps, title: item.data.title, description: item.data.description, theme: item.data.theme, icon: item.data.icon, isLoading: item.data.isLoading })) : (_jsx(NotificationItem, { notification: item.data, onDismiss: onNotificationDismiss })) })) }, itemId));
336
+ }) }) }));
337
+ }
338
+
339
+
@@ -0,0 +1,69 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.0.0-canary-c48279e
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ import { useMemo, useRef } from 'react';
10
+ import { NotificationContext, PersistentNotificationsContext, ToastContext, } from './NotificationContext.js';
11
+ import { OverlayContainer } from './OverlayContainer.js';
12
+ import { useNotificationState } from './use-notification-state.js';
13
+ import { useOverlayTimers } from './use-overlay-timers.js';
14
+ import { usePersistentState } from './use-persistent-state.js';
15
+ import { useToastState } from './use-toast-state.js';
16
+ // ─── Re-export context hooks for consumers ───────────────────────────
17
+ export { useToastContext, useNotificationContext } from './NotificationContext.js';
18
+ // ─── Constants ───────────────────────────────────────────────────────
19
+ const DEFAULT_MAX_PERSISTENT = 200;
20
+ // ─── OverlayProvider ─────────────────────────────────────────────────
21
+ export function OverlayProvider({ children, maxPersistentNotifications = DEFAULT_MAX_PERSISTENT, }) {
22
+ // Shared ref that breaks the circular dependency between state hooks and timers.
23
+ // State hooks need timer methods (start/clear), timer hooks need remove methods.
24
+ // All consumers access the ref only inside useEvent/callbacks (never during
25
+ // render), so it is guaranteed to be populated before first use.
26
+ const timersRef = useRef(null);
27
+ // 1. Persistent state (no dependencies on other hooks)
28
+ const persistent = usePersistentState(maxPersistentNotifications);
29
+ // 2. Toast state — accesses timers through the shared ref
30
+ const toast = useToastState(timersRef);
31
+ // 3. Notification state — accesses timers through the shared ref
32
+ const notification = useNotificationState(timersRef, persistent);
33
+ // 4. Create timers and populate the ref
34
+ const timers = useOverlayTimers({
35
+ toastsRef: toast.toastsRef,
36
+ notificationsRef: notification.notificationsRef,
37
+ removeToast: toast.removeToast,
38
+ removeNotification: notification.removeNotification,
39
+ });
40
+ timersRef.current = timers;
41
+ // ─── Context Values ───────────────────────────────────────────────
42
+ // Only include actually-changing values in deps. All useEvent-based
43
+ // callbacks are referentially stable and omitted.
44
+ const toastContextValue = useMemo(() => ({
45
+ addToast: toast.addToast,
46
+ removeToast: toast.removeToast,
47
+ updateToast: toast.updateToast,
48
+ toasts: toast.toasts,
49
+ }), [toast.toasts]);
50
+ const notificationContextValue = useMemo(() => ({
51
+ addNotification: notification.addNotification,
52
+ removeNotification: notification.removeNotification,
53
+ updateNotification: notification.updateNotification,
54
+ notifications: notification.notifications,
55
+ addPersistentItem: persistent.addPersistentItem,
56
+ removePersistentItem: persistent.removePersistentItem,
57
+ removePersistentItemsByOwner: persistent.removePersistentItemsByOwner,
58
+ removeByOwner: notification.removeByOwner,
59
+ }), [notification.notifications]);
60
+ const persistentContextValue = useMemo(() => ({
61
+ persistentItems: persistent.persistentItems,
62
+ removePersistentItem: persistent.removePersistentItem,
63
+ clearPersistentItems: persistent.clearPersistentItems,
64
+ markAllAsRead: persistent.markAllAsRead,
65
+ }), [persistent.persistentItems]);
66
+ return (_jsx(ToastContext.Provider, { value: toastContextValue, children: _jsx(NotificationContext.Provider, { value: notificationContextValue, children: _jsxs(PersistentNotificationsContext.Provider, { value: persistentContextValue, children: [children, _jsx(OverlayContainer, { toasts: toast.toasts, notifications: notification.notifications, onToastExitComplete: toast.finalizeToastRemoval, onNotificationExitComplete: notification.finalizeNotificationRemoval, onNotificationDismiss: notification.removeNotification, onPauseChange: timers.handlePauseChange })] }) }) }));
67
+ }
68
+
69
+
@@ -0,0 +1,105 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.0.0-canary-c48279e
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ import { Fragment, useEffect, useRef, useState } from 'react';
10
+ import { useEvent } from '../../../_internal/index.js';
11
+ import { tasty } from '../../../tasty/index.js';
12
+ import { Divider } from '../../content/Divider.js';
13
+ import { Text } from '../../content/Text.js';
14
+ import { formatRelativeTime } from './format-relative-time.js';
15
+ import { NotificationActionInterceptorContext } from './NotificationAction.js';
16
+ import { NotificationCard } from './NotificationCard.js';
17
+ import { usePersistentNotifications } from './use-persistent-notifications.js';
18
+ // ─── Constants ───────────────────────────────────────────────────────
19
+ const MARK_READ_DELAY = 2000;
20
+ /** Interval (ms) at which relative timestamps refresh while the list is mounted. */
21
+ const TIMESTAMP_REFRESH_INTERVAL = 10_000;
22
+ // ─── Styled Components ──────────────────────────────────────────────
23
+ const ListContainer = tasty({
24
+ qa: 'PersistentNotificationsList',
25
+ role: 'log',
26
+ 'aria-label': 'Notifications',
27
+ styles: {
28
+ display: 'flex',
29
+ flow: 'column',
30
+ },
31
+ });
32
+ const EmptyStateContainer = tasty({
33
+ styles: {
34
+ display: 'flex',
35
+ placeItems: 'center',
36
+ placeContent: 'center',
37
+ padding: '4x',
38
+ color: '#dark.5',
39
+ preset: 't3',
40
+ },
41
+ });
42
+ // ─── PersistentNotificationsList Component ───────────────────────────
43
+ /**
44
+ * Standardized rendering for archived/persistent notifications.
45
+ * Always reads items from the notification context.
46
+ * Composable with app-specific shells (popover, dialog, page section).
47
+ *
48
+ * Marks all items as read after being visible for 2 seconds.
49
+ * Relative timestamps refresh every 10 seconds while the list is mounted.
50
+ *
51
+ * @example
52
+ * ```tsx
53
+ * <PersistentNotificationsList
54
+ * onDismissItem={(item) => remove(item.id)}
55
+ * emptyState="No notifications"
56
+ * />
57
+ * ```
58
+ */
59
+ export function PersistentNotificationsList({ onDismissItem, onAction, emptyState, }) {
60
+ const { items, markAllAsRead } = usePersistentNotifications();
61
+ const markReadTimerRef = useRef(null);
62
+ // Tick counter that increments every TIMESTAMP_REFRESH_INTERVAL to force
63
+ // re-render so relative timestamps (e.g. "5 min ago") stay up to date.
64
+ const [, setTick] = useState(0);
65
+ useEffect(() => {
66
+ if (items.length === 0)
67
+ return;
68
+ const interval = setInterval(() => {
69
+ setTick((t) => t + 1);
70
+ }, TIMESTAMP_REFRESH_INTERVAL);
71
+ return () => clearInterval(interval);
72
+ }, [items.length]);
73
+ // Mark all persistent notifications as read after a 2s delay.
74
+ // Re-starts the timer whenever items change (e.g. new unread items arrive
75
+ // while the list is already visible).
76
+ useEffect(() => {
77
+ const hasUnread = items.some((i) => !i.isRead);
78
+ if (!hasUnread)
79
+ return;
80
+ markReadTimerRef.current = setTimeout(() => {
81
+ markAllAsRead();
82
+ }, MARK_READ_DELAY);
83
+ return () => {
84
+ if (markReadTimerRef.current) {
85
+ clearTimeout(markReadTimerRef.current);
86
+ markReadTimerRef.current = null;
87
+ }
88
+ };
89
+ }, [markAllAsRead, items]);
90
+ if (items.length === 0) {
91
+ return (_jsx(ListContainer, { children: _jsx(EmptyStateContainer, { children: emptyState ?? 'No notifications' }) }));
92
+ }
93
+ return (_jsx(NotificationActionInterceptorContext.Provider, { value: onAction ?? null, children: _jsx(ListContainer, { children: items.map((item, index) => (_jsxs(Fragment, { children: [index > 0 && _jsx(Divider, {}), _jsx(PersistentNotificationListItem, { item: item, onDismiss: onDismissItem })] }, String(item.id)))) }) }));
94
+ }
95
+ function PersistentNotificationListItem({ item, onDismiss, }) {
96
+ const suffix = (_jsx(Text, { opacity: 0.5, preset: "c2", children: formatRelativeTime(item.createdAt) }));
97
+ // useEvent keeps the callback stable across re-renders regardless of
98
+ // item reference changes (avoids unnecessary NotificationCard re-renders).
99
+ const handleDismiss = useEvent((_id, _reason) => {
100
+ onDismiss?.(item);
101
+ });
102
+ return (_jsx(NotificationCard, { qa: "PersistentNotificationItem", theme: item.theme, title: item.title, description: item.description, icon: item.icon, actions: item.actions, isDismissible: !!onDismiss, elevated: false, notificationId: item.id, suffix: suffix, onDismiss: onDismiss ? handleDismiss : undefined }));
103
+ }
104
+
105
+
@@ -0,0 +1,55 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.0.0-canary-c48279e
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ /**
9
+ * Lightweight relative time formatter.
10
+ * No external dependencies.
11
+ *
12
+ * Output format:
13
+ * - `just now` (< 1 minute)
14
+ * - `N min ago` (1–59 minutes)
15
+ * - `N h ago` (1–23 hours)
16
+ * - `N d ago` (1–6 days)
17
+ * - `N w ago` (1–4 weeks)
18
+ * - `N mo ago` (1–11 months)
19
+ * - `N y ago` (1+ years)
20
+ */
21
+ export function formatRelativeTime(timestamp) {
22
+ const now = Date.now();
23
+ const diffMs = now - timestamp;
24
+ if (diffMs < 0) {
25
+ return 'just now';
26
+ }
27
+ const diffSeconds = Math.floor(diffMs / 1000);
28
+ const diffMinutes = Math.floor(diffSeconds / 60);
29
+ const diffHours = Math.floor(diffMinutes / 60);
30
+ const diffDays = Math.floor(diffHours / 24);
31
+ if (diffMinutes < 1) {
32
+ return 'just now';
33
+ }
34
+ if (diffHours < 1) {
35
+ return `${diffMinutes} min ago`;
36
+ }
37
+ if (diffDays < 1) {
38
+ return `${diffHours} h ago`;
39
+ }
40
+ if (diffDays < 7) {
41
+ return `${diffDays} d ago`;
42
+ }
43
+ const diffWeeks = Math.floor(diffDays / 7);
44
+ if (diffDays < 30) {
45
+ return `${diffWeeks} w ago`;
46
+ }
47
+ const diffMonths = Math.floor(diffDays / 30);
48
+ if (diffDays < 365) {
49
+ return `${diffMonths} mo ago`;
50
+ }
51
+ const diffYears = Math.floor(diffDays / 365);
52
+ return `${diffYears} y ago`;
53
+ }
54
+
55
+
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.0.0-canary-c48279e
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ // ─── Components ──────────────────────────────────────────────────────
9
+ import { Notification as NotificationBase } from './Notification.js';
10
+ import { NotificationAction } from './NotificationAction.js';
11
+ export { NotificationAction } from './NotificationAction.js';
12
+ export { NotificationCard } from './NotificationCard.js';
13
+ export { NotificationItem } from './NotificationItem.js';
14
+ export { PersistentNotificationsList } from './PersistentNotificationsList.js';
15
+ // ─── Provider ────────────────────────────────────────────────────────
16
+ export { OverlayProvider } from './OverlayProvider.js';
17
+ // useToastContext is re-exported for Toast module backward compatibility
18
+ export { useToastContext } from './NotificationContext.js';
19
+ // ─── Hooks ───────────────────────────────────────────────────────────
20
+ export { useNotifications } from './use-notifications.js';
21
+ export { usePersistentNotifications, useNotificationsCount, } from './use-persistent-notifications.js';
22
+ // ─── Utilities ───────────────────────────────────────────────────────
23
+ export { formatRelativeTime } from './format-relative-time.js';
24
+ // ─── Compound Notification Component ─────────────────────────────────
25
+ /**
26
+ * Declarative Notification component with compound API.
27
+ *
28
+ * @example
29
+ * ```tsx
30
+ * // Declarative usage
31
+ * <Notification
32
+ * id="release:new-version"
33
+ * theme="warning"
34
+ * title="New release available"
35
+ * description="2.0.0 can be installed now."
36
+ * actions={
37
+ * <>
38
+ * <Notification.Action>Later</Notification.Action>
39
+ * <Notification.Action onPress={() => openUpgradeDialog()}>
40
+ * Upgrade
41
+ * </Notification.Action>
42
+ * </>
43
+ * }
44
+ * />
45
+ * ```
46
+ */
47
+ export const Notification = Object.assign(NotificationBase, {
48
+ Action: NotificationAction,
49
+ });
50
+
51
+
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-e2a9f35
4
+ * @cube-dev/ui-kit v0.0.0-canary-c48279e
5
5
  * Released under the MIT license.
6
6
  */
7
7