@cube-dev/ui-kit 0.113.1 → 0.114.0
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.
- package/CHANGELOG.md +10 -0
- package/es/_internal/hooks/index.js +1 -1
- package/es/_internal/hooks/use-chained-callback.js +1 -1
- package/es/_internal/hooks/use-debounced-value.js +1 -1
- package/es/_internal/hooks/use-deprecation-warning.js +1 -1
- package/es/_internal/hooks/use-effect-once.js +1 -1
- package/es/_internal/hooks/use-event.js +1 -1
- package/es/_internal/hooks/use-is-first-render.js +1 -1
- package/es/_internal/hooks/use-sync-ref.js +1 -1
- package/es/_internal/hooks/use-timer/index.js +1 -1
- package/es/_internal/hooks/use-timer/timer.js +1 -1
- package/es/_internal/hooks/use-timer/use-timer.js +1 -1
- package/es/_internal/hooks/use-update-effect.js +1 -1
- package/es/_internal/hooks/use-warn.js +1 -1
- package/es/_internal/index.js +1 -1
- package/es/components/Block.js +1 -1
- package/es/components/CollectionItem.js +1 -1
- package/es/components/GlobalStyles.js +1 -1
- package/es/components/GridProvider.js +1 -1
- package/es/components/HiddenInput.js +1 -1
- package/es/components/OpenTrasition.js +1 -1
- package/es/components/Root.js +3 -4
- package/es/components/actions/Action/Action.js +1 -1
- package/es/components/actions/Banner/Banner.js +1 -1
- package/es/components/actions/Banner/index.js +1 -1
- package/es/components/actions/Button/Button.js +1 -1
- package/es/components/actions/Button/index.js +1 -1
- package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/es/components/actions/CommandMenu/index.js +1 -1
- package/es/components/actions/CommandMenu/styled.js +1 -1
- package/es/components/actions/ItemAction/ItemAction.js +5 -1
- package/es/components/actions/ItemAction/index.js +1 -1
- package/es/components/actions/ItemActionContext.js +1 -1
- package/es/components/actions/ItemButton/ItemButton.js +1 -1
- package/es/components/actions/ItemButton/index.js +1 -1
- package/es/components/actions/Link/Link.js +1 -1
- package/es/components/actions/Menu/Menu.js +1 -1
- package/es/components/actions/Menu/MenuItem.js +1 -1
- package/es/components/actions/Menu/MenuSection.js +1 -1
- package/es/components/actions/Menu/MenuTrigger.js +1 -1
- package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/es/components/actions/Menu/context.js +1 -1
- package/es/components/actions/Menu/index.js +1 -1
- package/es/components/actions/Menu/styled.js +1 -1
- package/es/components/actions/index.js +1 -1
- package/es/components/actions/use-action.js +1 -1
- package/es/components/actions/use-anchored-menu.js +1 -1
- package/es/components/actions/use-context-menu.js +1 -1
- package/es/components/content/ActiveZone/ActiveZone.js +1 -1
- package/es/components/content/Alert/Alert.js +1 -1
- package/es/components/content/Alert/index.js +1 -1
- package/es/components/content/Alert/types.js +1 -1
- package/es/components/content/Alert/use-alert.js +1 -1
- package/es/components/content/Avatar/Avatar.js +1 -1
- package/es/components/content/Badge/Badge.js +1 -1
- package/es/components/content/Card/Card.js +1 -1
- package/es/components/content/Content.js +1 -1
- package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/es/components/content/CopyPasteBlock/index.js +1 -1
- package/es/components/content/CopySnippet/CopySnippet.js +1 -1
- package/es/components/content/CopySnippet/index.js +1 -1
- package/es/components/content/Disclosure/Disclosure.js +1 -1
- package/es/components/content/Disclosure/index.js +1 -1
- package/es/components/content/Divider.js +1 -1
- package/es/components/content/Footer.js +1 -1
- package/es/components/content/Header.js +1 -1
- package/es/components/content/HotKeys/HotKeys.js +1 -1
- package/es/components/content/HotKeys/index.js +1 -1
- package/es/components/content/Item/Item.js +1 -1
- package/es/components/content/Item/index.js +1 -1
- package/es/components/content/ItemBadge/ItemBadge.js +1 -1
- package/es/components/content/ItemBadge/index.js +1 -1
- package/es/components/content/Layout/GridLayout.js +1 -1
- package/es/components/content/Layout/Layout.js +1 -1
- package/es/components/content/Layout/LayoutBlock.js +1 -1
- package/es/components/content/Layout/LayoutCenter.js +1 -1
- package/es/components/content/Layout/LayoutContainer.js +1 -1
- package/es/components/content/Layout/LayoutContent.js +1 -1
- package/es/components/content/Layout/LayoutContext.js +1 -1
- package/es/components/content/Layout/LayoutFlex.js +1 -1
- package/es/components/content/Layout/LayoutFooter.js +1 -1
- package/es/components/content/Layout/LayoutGrid.js +1 -1
- package/es/components/content/Layout/LayoutHeader.js +1 -1
- package/es/components/content/Layout/LayoutPane.js +1 -1
- package/es/components/content/Layout/LayoutPanel.js +1 -1
- package/es/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/es/components/content/Layout/LayoutToolbar.js +1 -1
- package/es/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/es/components/content/Layout/index.js +1 -1
- package/es/components/content/Layout/utils.js +1 -1
- package/es/components/content/List/SectionHeading.js +1 -1
- package/es/components/content/List/index.js +1 -1
- package/es/components/content/Paragraph.js +1 -1
- package/es/components/content/Placeholder/Placeholder.js +1 -1
- package/es/components/content/PrismCode/PrismCode.js +1 -1
- package/es/components/content/PrismCode/prismSetup.js +1 -1
- package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/es/components/content/Result/Result.js +1 -1
- package/es/components/content/Skeleton/Skeleton.js +1 -1
- package/es/components/content/Tag/Tag.js +1 -1
- package/es/components/content/Text.js +1 -1
- package/es/components/content/TextItem/TextItem.js +1 -1
- package/es/components/content/TextItem/index.js +1 -1
- package/es/components/content/Title.js +1 -1
- package/es/components/content/highlightText.js +1 -1
- package/es/components/content/use-auto-tooltip.js +1 -1
- package/es/components/fields/Checkbox/Checkbox.js +1 -1
- package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/es/components/fields/Checkbox/context.js +1 -1
- package/es/components/fields/Checkbox/index.js +1 -1
- package/es/components/fields/ComboBox/ComboBox.js +1 -1
- package/es/components/fields/ComboBox/index.js +1 -1
- package/es/components/fields/DatePicker/DateInput.js +1 -1
- package/es/components/fields/DatePicker/DateInputBase.js +1 -1
- package/es/components/fields/DatePicker/DatePicker.js +1 -1
- package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
- package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
- package/es/components/fields/DatePicker/TimeInput.js +1 -1
- package/es/components/fields/DatePicker/index.js +1 -1
- package/es/components/fields/DatePicker/intl.js +1 -1
- package/es/components/fields/DatePicker/parseDate.js +1 -1
- package/es/components/fields/DatePicker/props.js +1 -1
- package/es/components/fields/DatePicker/types.js +1 -1
- package/es/components/fields/DatePicker/utils.js +1 -1
- package/es/components/fields/FileInput/FileInput.js +1 -1
- package/es/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/es/components/fields/FilterListBox/index.js +1 -1
- package/es/components/fields/FilterPicker/FilterPicker.js +1 -1
- package/es/components/fields/FilterPicker/index.js +1 -1
- package/es/components/fields/Input/Input.js +1 -1
- package/es/components/fields/Input/index.js +1 -1
- package/es/components/fields/ListBox/ListBox.js +1 -1
- package/es/components/fields/ListBox/index.js +1 -1
- package/es/components/fields/NumberInput/NumberInput.js +1 -1
- package/es/components/fields/NumberInput/StepButton.js +1 -1
- package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/es/components/fields/Picker/Picker.js +1 -1
- package/es/components/fields/Picker/index.js +1 -1
- package/es/components/fields/RadioGroup/Radio.js +1 -1
- package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/es/components/fields/RadioGroup/context.js +1 -1
- package/es/components/fields/RadioGroup/index.js +1 -1
- package/es/components/fields/SearchInput/SearchInput.js +1 -1
- package/es/components/fields/SearchInput/index.js +1 -1
- package/es/components/fields/Select/Select.js +1 -1
- package/es/components/fields/Select/index.js +1 -1
- package/es/components/fields/Slider/Gradation.js +1 -1
- package/es/components/fields/Slider/Header.js +1 -1
- package/es/components/fields/Slider/HueSlider.js +1 -1
- package/es/components/fields/Slider/RangeSlider.js +1 -1
- package/es/components/fields/Slider/Slider.js +1 -1
- package/es/components/fields/Slider/SliderBase.js +1 -1
- package/es/components/fields/Slider/SliderInput.js +1 -1
- package/es/components/fields/Slider/SliderThumb.js +1 -1
- package/es/components/fields/Slider/SliderTrack.js +1 -1
- package/es/components/fields/Slider/elements.js +1 -1
- package/es/components/fields/Slider/index.js +1 -1
- package/es/components/fields/Slider/types.js +1 -1
- package/es/components/fields/Switch/Switch.js +1 -1
- package/es/components/fields/Switch/index.js +1 -1
- package/es/components/fields/TextArea/TextArea.js +1 -1
- package/es/components/fields/TextArea/index.js +1 -1
- package/es/components/fields/TextInput/TextInput.js +1 -1
- package/es/components/fields/TextInput/TextInputBase.js +1 -1
- package/es/components/fields/TextInput/index.js +1 -1
- package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/es/components/fields/TextInputMapper/index.js +1 -1
- package/es/components/fields/index.js +1 -1
- package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
- package/es/components/form/FieldWrapper/index.js +1 -1
- package/es/components/form/FieldWrapper/types.js +1 -1
- package/es/components/form/Form/Field.js +1 -1
- package/es/components/form/Form/Form.js +1 -1
- package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/es/components/form/Form/ResetButton/index.js +1 -1
- package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/es/components/form/Form/SubmitButton/index.js +1 -1
- package/es/components/form/Form/SubmitError.js +1 -1
- package/es/components/form/Form/index.js +1 -1
- package/es/components/form/Form/types.js +1 -1
- package/es/components/form/Form/use-field/index.js +1 -1
- package/es/components/form/Form/use-field/types.js +1 -1
- package/es/components/form/Form/use-field/use-field-props.js +1 -1
- package/es/components/form/Form/use-field/use-field.js +1 -1
- package/es/components/form/Form/use-form.js +1 -1
- package/es/components/form/Form/validation.js +1 -1
- package/es/components/form/Label.js +1 -1
- package/es/components/form/index.js +1 -1
- package/es/components/form/wrapper.js +1 -1
- package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/es/components/helpers/DisplayTransition/index.js +1 -1
- package/es/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/es/components/helpers/index.js +1 -1
- package/es/components/layout/Flex.js +1 -1
- package/es/components/layout/Flow.js +1 -1
- package/es/components/layout/Grid.js +1 -1
- package/es/components/layout/Panel.js +1 -1
- package/es/components/layout/Prefix.js +1 -1
- package/es/components/layout/ResizablePanel.js +1 -1
- package/es/components/layout/Space.js +1 -1
- package/es/components/layout/Suffix.js +1 -1
- package/es/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/es/components/navigation/Tabs/EditableTitle.js +1 -1
- package/es/components/navigation/Tabs/TabButton.js +1 -1
- package/es/components/navigation/Tabs/TabDropIndicator.js +28 -2
- package/es/components/navigation/Tabs/TabPanel.js +1 -1
- package/es/components/navigation/Tabs/TabPicker.js +1 -1
- package/es/components/navigation/Tabs/Tabs.js +1 -1
- package/es/components/navigation/Tabs/TabsAction.js +1 -1
- package/es/components/navigation/Tabs/TabsContext.js +1 -1
- package/es/components/navigation/Tabs/index.js +1 -1
- package/es/components/navigation/Tabs/styled.js +1 -1
- package/es/components/navigation/Tabs/types.js +1 -1
- package/es/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/es/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/es/components/navigation/index.js +1 -1
- package/es/components/organisms/FileTabs/FileTabs.js +1 -1
- package/es/components/organisms/StatsCard/StatsCard.js +1 -1
- package/es/components/other/Calendar/Calendar.js +1 -1
- package/es/components/other/Calendar/CalendarCell.js +1 -1
- package/es/components/other/Calendar/CalendarGrid.js +1 -1
- package/es/components/other/Calendar/RangeCalendar.js +1 -1
- package/es/components/other/CloudLogo/CloudLogo.js +1 -1
- package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/es/components/overlays/AlertDialog/index.js +1 -1
- package/es/components/overlays/AlertDialog/types.js +1 -1
- package/es/components/overlays/Dialog/Dialog.js +1 -1
- package/es/components/overlays/Dialog/DialogContainer.js +1 -1
- package/es/components/overlays/Dialog/DialogForm.js +1 -1
- package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/es/components/overlays/Dialog/context.js +1 -1
- package/es/components/overlays/Dialog/index.js +1 -1
- package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/es/components/overlays/Modal/Modal.js +1 -1
- package/es/components/overlays/Modal/OpenTransition.js +1 -1
- package/es/components/overlays/Modal/Overlay.js +1 -1
- package/es/components/overlays/Modal/Popover.js +1 -1
- package/es/components/overlays/Modal/Tray.js +1 -1
- package/es/components/overlays/Modal/Underlay.js +1 -1
- package/es/components/overlays/Modal/index.js +1 -1
- package/es/components/overlays/Modal/types.js +1 -1
- package/es/components/overlays/Notifications/Notification.js +89 -0
- package/es/components/overlays/Notifications/NotificationAction.js +82 -0
- package/es/components/overlays/Notifications/NotificationCard.js +87 -0
- package/es/components/overlays/Notifications/NotificationContext.js +44 -0
- package/es/components/overlays/Notifications/NotificationItem.js +63 -0
- package/es/components/overlays/Notifications/OverlayContainer.js +346 -0
- package/es/components/overlays/Notifications/OverlayProvider.js +69 -0
- package/es/components/overlays/Notifications/PersistentNotificationsList.js +120 -0
- package/es/components/overlays/Notifications/format-relative-time.js +55 -0
- package/es/components/overlays/Notifications/index.js +51 -0
- package/es/components/overlays/{NewNotifications/NotificationsList → Notifications}/types.js +1 -1
- package/es/components/overlays/Notifications/use-notification-state.js +239 -0
- package/es/components/overlays/Notifications/use-notifications.js +175 -0
- package/es/components/overlays/Notifications/use-overlay-timers.js +141 -0
- package/es/components/overlays/Notifications/use-persistent-notifications.js +63 -0
- package/es/components/overlays/Notifications/use-persistent-state.js +85 -0
- package/es/components/overlays/Notifications/use-toast-state.js +143 -0
- package/es/components/overlays/OverlayWrapper.js +1 -1
- package/es/components/overlays/Toast/ToastItem.js +6 -3
- package/es/components/overlays/Toast/ToastProvider.js +6 -352
- package/es/components/overlays/Toast/index.js +3 -8
- package/es/components/overlays/Toast/types.js +1 -1
- package/es/components/overlays/Toast/useProgressToast.js +2 -5
- package/es/components/overlays/Toast/useToast.js +1 -7
- package/es/components/overlays/Tooltip/Tooltip.js +1 -1
- package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/es/components/overlays/Tooltip/context.js +1 -1
- package/es/components/overlays/Tooltip/index.js +1 -1
- package/es/components/portal/Portal.js +1 -1
- package/es/components/portal/PortalProvider.js +1 -1
- package/es/components/portal/index.js +1 -1
- package/es/components/portal/types.js +1 -1
- package/es/components/portal/usePortal.js +1 -1
- package/es/components/shared/InvalidIcon.js +1 -1
- package/es/components/shared/ValidIcon.js +1 -1
- package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/es/components/status/LoadingAnimation/index.js +1 -1
- package/es/components/status/Spin/Cube.js +1 -1
- package/es/components/status/Spin/InternalSpinner.js +1 -1
- package/es/components/status/Spin/Spin.js +1 -1
- package/es/components/status/Spin/SpinsContainer.js +1 -1
- package/es/components/status/Spin/index.js +1 -1
- package/es/components/status/Spin/types.js +1 -1
- package/es/components/status/index.js +1 -1
- package/es/data/item-themes.js +1 -1
- package/es/data/themes.js +1 -1
- package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/es/icons/AdjustmentsIcon.js +1 -1
- package/es/icons/AiIcon.js +1 -1
- package/es/icons/AreaChartIcon.js +1 -1
- package/es/icons/BackwardIcon.js +1 -1
- package/es/icons/BarChartIcon.js +1 -1
- package/es/icons/BellFilledIcon.js +1 -1
- package/es/icons/BellIcon.js +1 -1
- package/es/icons/BooleanIcon.js +1 -1
- package/es/icons/CalendarEditIcon.js +1 -1
- package/es/icons/CalendarIcon.js +1 -1
- package/es/icons/CaretDownIcon.js +1 -1
- package/es/icons/CaretUpIcon.js +1 -1
- package/es/icons/ChartAreaStackedIcon.js +1 -1
- package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/es/icons/ChartBarGroupedIcon.js +1 -1
- package/es/icons/ChartBarHorizontalIcon.js +1 -1
- package/es/icons/ChartBarLineIcon.js +1 -1
- package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/es/icons/ChartBarStackedIcon.js +1 -1
- package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/es/icons/ChartBoxPlot2Icon.js +1 -1
- package/es/icons/ChartBoxPlotIcon.js +1 -1
- package/es/icons/ChartBubbleIcon.js +1 -1
- package/es/icons/ChartDonut2Icon.js +1 -1
- package/es/icons/ChartFunnelIcon.js +1 -1
- package/es/icons/ChartHeatmapIcon.js +1 -1
- package/es/icons/ChartKPIIcon.js +1 -1
- package/es/icons/ChartPie2Icon.js +1 -1
- package/es/icons/ChartScatterIcon.js +1 -1
- package/es/icons/CheckCircleFilledIcon.js +1 -1
- package/es/icons/CheckCircleIcon.js +1 -1
- package/es/icons/CheckIcon.js +1 -1
- package/es/icons/CircleFilledIcon.js +1 -1
- package/es/icons/ClearIcon.js +1 -1
- package/es/icons/CloseCircleFilledIcon.js +1 -1
- package/es/icons/CloseCircleIcon.js +1 -1
- package/es/icons/CloseIcon.js +1 -1
- package/es/icons/CodeIcon.js +1 -1
- package/es/icons/ColumnTotalIcon.js +1 -1
- package/es/icons/CopyIcon.js +1 -1
- package/es/icons/CountIcon.js +1 -1
- package/es/icons/CubeIcon.js +1 -1
- package/es/icons/CubePauseIcon.js +1 -1
- package/es/icons/CubePlayIcon.js +1 -1
- package/es/icons/CurrencyDollarIcon.js +1 -1
- package/es/icons/DangerIcon.js +1 -1
- package/es/icons/DashboardIcon.js +1 -1
- package/es/icons/DatabaseIcon.js +1 -1
- package/es/icons/DecimalDecreaseIcon.js +1 -1
- package/es/icons/DecimalIncreaseIcon.js +1 -1
- package/es/icons/DirectionIcon.js +1 -1
- package/es/icons/DonutIcon.js +1 -1
- package/es/icons/DownIcon.js +1 -1
- package/es/icons/EditIcon.js +1 -1
- package/es/icons/ExclamationCircleFilledIcon.js +1 -1
- package/es/icons/ExclamationCircleIcon.js +1 -1
- package/es/icons/ExclamationIcon.js +1 -1
- package/es/icons/EyeIcon.js +1 -1
- package/es/icons/EyeInvisibleIcon.js +1 -1
- package/es/icons/FilterIcon.js +1 -1
- package/es/icons/FolderFilledIcon.js +1 -1
- package/es/icons/FolderIcon.js +1 -1
- package/es/icons/FolderOpenFilledIcon.js +1 -1
- package/es/icons/FolderOpenIcon.js +1 -1
- package/es/icons/ForwardIcon.js +1 -1
- package/es/icons/HierarchyIcon.js +1 -1
- package/es/icons/HierarchyOpenIcon.js +1 -1
- package/es/icons/Icon.js +1 -1
- package/es/icons/InfoCircleIcon.js +1 -1
- package/es/icons/InfoIcon.js +1 -1
- package/es/icons/KeyIcon.js +1 -1
- package/es/icons/LeftIcon.js +1 -1
- package/es/icons/LineChartIcon.js +1 -1
- package/es/icons/LoadingIcon.js +1 -1
- package/es/icons/LockFilledIcon.js +1 -1
- package/es/icons/LockIcon.js +1 -1
- package/es/icons/MoreIcon.js +1 -1
- package/es/icons/NotAllowedIcon.js +1 -1
- package/es/icons/Number123Icon.js +1 -1
- package/es/icons/NumberIcon.js +1 -1
- package/es/icons/PauseCircleFilledIcon.js +1 -1
- package/es/icons/PauseCircleIcon.js +1 -1
- package/es/icons/PauseIcon.js +1 -1
- package/es/icons/PercentageIcon.js +1 -1
- package/es/icons/PieChartIcon.js +1 -1
- package/es/icons/PlayCircleIcon.js +1 -1
- package/es/icons/PlayIcon.js +1 -1
- package/es/icons/PlusIcon.js +1 -1
- package/es/icons/ProgressBarIcon.js +1 -1
- package/es/icons/ReloadIcon.js +1 -1
- package/es/icons/ReportIcon.js +1 -1
- package/es/icons/ReturnIcon.js +1 -1
- package/es/icons/RightIcon.js +1 -1
- package/es/icons/RowTotalsIcon.js +1 -1
- package/es/icons/SchemeIcon.js +1 -1
- package/es/icons/SearchIcon.js +1 -1
- package/es/icons/SemanticQueryIcon.js +1 -1
- package/es/icons/SettingsIcon.js +1 -1
- package/es/icons/ShieldFilledIcon.js +1 -1
- package/es/icons/ShieldIcon.js +1 -1
- package/es/icons/SlashIcon.js +1 -1
- package/es/icons/SparklesIcon.js +1 -1
- package/es/icons/SqlIcon.js +1 -1
- package/es/icons/StatsIcon.js +1 -1
- package/es/icons/StopIcon.js +1 -1
- package/es/icons/StringIcon.js +1 -1
- package/es/icons/SubtotalsIcon.js +1 -1
- package/es/icons/SwitchIcon.js +1 -1
- package/es/icons/TableIcon.js +1 -1
- package/es/icons/ThumbsDownIcon.js +1 -1
- package/es/icons/ThumbsUpIcon.js +1 -1
- package/es/icons/ThunderboltCrossedIcon.js +1 -1
- package/es/icons/ThunderboltFilledIcon.js +1 -1
- package/es/icons/ThunderboltIcon.js +1 -1
- package/es/icons/TimeIcon.js +1 -1
- package/es/icons/TrashIcon.js +1 -1
- package/es/icons/UnlockIcon.js +1 -1
- package/es/icons/UpIcon.js +1 -1
- package/es/icons/UserGroupIcon.js +1 -1
- package/es/icons/UserIcon.js +1 -1
- package/es/icons/UserLockIcon.js +1 -1
- package/es/icons/ViewIcon.js +1 -1
- package/es/icons/WarningFilledIcon.js +1 -1
- package/es/icons/WarningIcon.js +1 -1
- package/es/icons/index.js +1 -1
- package/es/icons/wrap-icon.js +1 -1
- package/es/index.js +2 -4
- package/es/provider.js +1 -1
- package/es/providers/TrackingProvider.js +1 -1
- package/es/providers/navigation.types.js +1 -1
- package/es/providers/navigationAdapter.default.js +1 -1
- package/es/shared/form.js +1 -1
- package/es/shared/index.js +1 -1
- package/es/stories/Form.legacy-stories.js +1 -1
- package/es/stories/FormFieldArgs.js +1 -1
- package/es/stories/SimpleLayout.stories.js +1 -1
- package/es/stories/Tasty.stories.js +1 -1
- package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
- package/es/stories/components/DialogFormApp.js +1 -1
- package/es/stories/components/StyledButton.js +1 -1
- package/es/stories/lists/baseProps.js +1 -1
- package/es/stories/playground/PlaygroundEditor.js +1 -1
- package/es/stories/playground/PlaygroundLayout.js +1 -1
- package/es/stories/playground/PlaygroundOutput.js +1 -1
- package/es/stories/playground/PlaygroundPreview.js +1 -1
- package/es/stories/playground/components/Button.js +1 -1
- package/es/stories/playground/components/Card.js +1 -1
- package/es/stories/playground/components/ScrollProgress.js +1 -1
- package/es/stories/playground/examples.js +1 -1
- package/es/tasty/chunks/cacheKey.js +1 -1
- package/es/tasty/chunks/definitions.js +1 -1
- package/es/tasty/chunks/index.js +1 -1
- package/es/tasty/chunks/renderChunk.js +1 -1
- package/es/tasty/config.js +1 -1
- package/es/tasty/debug.js +1 -1
- package/es/tasty/hooks/index.js +1 -1
- package/es/tasty/hooks/useGlobalStyles.js +1 -1
- package/es/tasty/hooks/useKeyframes.js +1 -1
- package/es/tasty/hooks/useProperty.js +1 -1
- package/es/tasty/hooks/useRawCSS.js +1 -1
- package/es/tasty/hooks/useStyles.js +1 -1
- package/es/tasty/index.js +1 -1
- package/es/tasty/injector/index.js +1 -1
- package/es/tasty/injector/injector.js +1 -1
- package/es/tasty/injector/sheet-manager.js +1 -1
- package/es/tasty/injector/types.js +1 -1
- package/es/tasty/keyframes/index.js +1 -1
- package/es/tasty/parser/classify.js +1 -1
- package/es/tasty/parser/const.js +1 -1
- package/es/tasty/parser/lru.js +1 -1
- package/es/tasty/parser/parser.js +1 -1
- package/es/tasty/parser/tokenizer.js +1 -1
- package/es/tasty/parser/types.js +1 -1
- package/es/tasty/pipeline/conditions.js +1 -1
- package/es/tasty/pipeline/exclusive.js +1 -1
- package/es/tasty/pipeline/index.js +1 -1
- package/es/tasty/pipeline/materialize.js +1 -1
- package/es/tasty/pipeline/parseStateKey.js +1 -1
- package/es/tasty/pipeline/simplify.js +1 -1
- package/es/tasty/plugins/index.js +1 -1
- package/es/tasty/plugins/okhsl-plugin.js +1 -1
- package/es/tasty/plugins/types.js +1 -1
- package/es/tasty/properties/index.js +1 -1
- package/es/tasty/states/index.js +1 -1
- package/es/tasty/static/index.js +1 -1
- package/es/tasty/static/tastyStatic.js +1 -1
- package/es/tasty/static/types.js +1 -1
- package/es/tasty/styles/align.js +1 -1
- package/es/tasty/styles/border.js +1 -1
- package/es/tasty/styles/boxShadow.combinator.js +1 -1
- package/es/tasty/styles/color.js +1 -1
- package/es/tasty/styles/createStyle.js +1 -1
- package/es/tasty/styles/dimension.js +1 -1
- package/es/tasty/styles/display.js +1 -1
- package/es/tasty/styles/fade.js +1 -1
- package/es/tasty/styles/fill.js +1 -1
- package/es/tasty/styles/flow.js +1 -1
- package/es/tasty/styles/gap.js +1 -1
- package/es/tasty/styles/height.js +1 -1
- package/es/tasty/styles/index.js +1 -1
- package/es/tasty/styles/inset.js +1 -1
- package/es/tasty/styles/justify.js +1 -1
- package/es/tasty/styles/list.js +1 -1
- package/es/tasty/styles/margin.js +1 -1
- package/es/tasty/styles/outline.js +1 -1
- package/es/tasty/styles/padding.js +1 -1
- package/es/tasty/styles/place.js +1 -1
- package/es/tasty/styles/predefined.js +1 -1
- package/es/tasty/styles/preset.js +1 -1
- package/es/tasty/styles/radius.js +1 -1
- package/es/tasty/styles/reset.js +1 -1
- package/es/tasty/styles/scrollbar.js +1 -1
- package/es/tasty/styles/shadow.js +1 -1
- package/es/tasty/styles/styledScrollbar.js +1 -1
- package/es/tasty/styles/transition.js +1 -1
- package/es/tasty/styles/types.js +1 -1
- package/es/tasty/styles/width.js +1 -1
- package/es/tasty/tasty.js +1 -1
- package/es/tasty/types.js +1 -1
- package/es/tasty/utils/cache-wrapper.js +1 -1
- package/es/tasty/utils/case-converter.js +1 -1
- package/es/tasty/utils/colors.js +1 -1
- package/es/tasty/utils/dotize.js +1 -1
- package/es/tasty/utils/filter-base-props.js +1 -1
- package/es/tasty/utils/get-display-name.js +1 -1
- package/es/tasty/utils/hsl-to-rgb.js +1 -1
- package/es/tasty/utils/is-dev-env.js +1 -1
- package/es/tasty/utils/merge-styles.js +1 -1
- package/es/tasty/utils/mod-attrs.js +1 -1
- package/es/tasty/utils/okhsl-to-rgb.js +1 -1
- package/es/tasty/utils/process-tokens.js +1 -1
- package/es/tasty/utils/resolve-recipes.js +1 -1
- package/es/tasty/utils/rgb-to-okhsl.js +1 -1
- package/es/tasty/utils/string.js +1 -1
- package/es/tasty/utils/styles.js +1 -1
- package/es/tasty/utils/typography.js +1 -1
- package/es/tasty/utils/warnings.js +1 -1
- package/es/tasty/zero/babel.js +1 -1
- package/es/tasty/zero/css-writer.js +1 -1
- package/es/tasty/zero/extractor.js +1 -1
- package/es/tasty/zero/index.js +1 -1
- package/es/tasty/zero/next.js +1 -1
- package/es/tokens/base.js +1 -1
- package/es/tokens/colors.js +1 -1
- package/es/tokens/index.js +1 -1
- package/es/tokens/layout.js +1 -1
- package/es/tokens/shadows.js +1 -1
- package/es/tokens/sizes.js +1 -1
- package/es/tokens/spacing.js +1 -1
- package/es/tokens/typography.js +1 -1
- package/es/utils/ResizeSensor.js +1 -1
- package/es/utils/index.js +1 -1
- package/es/utils/modules.js +1 -1
- package/es/utils/promise.js +1 -1
- package/es/utils/raf.js +1 -1
- package/es/utils/random.js +1 -1
- package/es/utils/range.js +1 -1
- package/es/utils/react/RenderCache.js +1 -1
- package/es/utils/react/Slots.js +1 -1
- package/es/utils/react/chain.js +1 -1
- package/es/utils/react/forwardRefWithGenerics.js +1 -1
- package/es/utils/react/index.js +1 -1
- package/es/utils/react/interactions.js +1 -1
- package/es/utils/react/isTextOnly.js +1 -1
- package/es/utils/react/mapProps.js +1 -1
- package/es/utils/react/mergeProps.js +1 -1
- package/es/utils/react/nullableValue.js +1 -1
- package/es/utils/react/resolveIcon.js +1 -1
- package/es/utils/react/sharedStore.js +1 -1
- package/es/utils/react/useCombinedRefs.js +1 -1
- package/es/utils/react/useControlledFocusVisible.js +1 -1
- package/es/utils/react/useEventBus.js +1 -1
- package/es/utils/react/useId.js +1 -1
- package/es/utils/react/useIsDarwin.js +1 -1
- package/es/utils/react/useKeySymbols.js +1 -1
- package/es/utils/react/useLayoutEffect.js +1 -1
- package/es/utils/react/useLocalStorage.js +1 -1
- package/es/utils/react/useMergeStyles.js +1 -1
- package/es/utils/react/useQaProps.js +1 -1
- package/es/utils/react/useViewportSize.js +1 -1
- package/es/utils/react/wrapNodeIfPlain.js +1 -1
- package/es/utils/tree.js +1 -1
- package/es/utils/warnings.js +1 -1
- package/es/version.js +2 -2
- package/package.json +1 -1
- package/types/components/overlays/Notifications/Notification.d.ts +32 -0
- package/types/components/overlays/Notifications/NotificationAction.d.ts +27 -0
- package/types/components/overlays/Notifications/NotificationCard.d.ts +37 -0
- package/types/components/overlays/Notifications/NotificationContext.d.ts +16 -0
- package/types/components/overlays/Notifications/NotificationItem.d.ts +7 -0
- package/types/components/overlays/Notifications/OverlayContainer.d.ts +12 -0
- package/types/components/overlays/Notifications/OverlayProvider.d.ts +3 -0
- package/types/components/overlays/Notifications/PersistentNotificationsList.d.ts +19 -0
- package/types/components/overlays/Notifications/format-relative-time.d.ts +14 -0
- package/types/components/overlays/Notifications/index.d.ts +40 -0
- package/types/components/overlays/Notifications/types.d.ts +154 -0
- package/types/components/overlays/Notifications/use-notification-state.d.ts +23 -0
- package/types/components/overlays/Notifications/use-notifications.d.ts +36 -0
- package/types/components/overlays/Notifications/use-overlay-timers.d.ts +26 -0
- package/types/components/overlays/Notifications/use-persistent-notifications.d.ts +48 -0
- package/types/components/overlays/Notifications/use-persistent-state.d.ts +23 -0
- package/types/components/overlays/Notifications/use-toast-state.d.ts +16 -0
- package/types/components/overlays/Toast/ToastItem.d.ts +3 -1
- package/types/components/overlays/Toast/ToastProvider.d.ts +5 -8
- package/types/components/overlays/Toast/index.d.ts +1 -1
- package/types/components/overlays/Toast/types.d.ts +3 -1
- package/types/index.d.ts +1 -3
- package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +0 -54
- package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +0 -95
- package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +0 -56
- package/es/components/overlays/NewNotifications/Bar/index.js +0 -10
- package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +0 -19
- package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +0 -38
- package/es/components/overlays/NewNotifications/Dialog/index.js +0 -10
- package/es/components/overlays/NewNotifications/Notification.js +0 -41
- package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +0 -41
- package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +0 -25
- package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +0 -36
- package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +0 -60
- package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +0 -31
- package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +0 -69
- package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +0 -25
- package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +0 -86
- package/es/components/overlays/NewNotifications/NotificationView/index.js +0 -11
- package/es/components/overlays/NewNotifications/NotificationView/types.js +0 -10
- package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +0 -11
- package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +0 -21
- package/es/components/overlays/NewNotifications/NotificationsContext/index.js +0 -11
- package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +0 -91
- package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +0 -45
- package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +0 -29
- package/es/components/overlays/NewNotifications/NotificationsList/index.js +0 -10
- package/es/components/overlays/NewNotifications/hooks/index.js +0 -14
- package/es/components/overlays/NewNotifications/hooks/types.js +0 -10
- package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +0 -15
- package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +0 -17
- package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +0 -29
- package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +0 -17
- package/es/components/overlays/NewNotifications/index.js +0 -15
- package/es/components/overlays/NewNotifications/types.js +0 -10
- package/es/components/overlays/Notification/Notification.js +0 -80
- package/es/services/notification.js +0 -71
- package/types/components/overlays/NewNotifications/Bar/FloatingNotification.d.ts +0 -15
- package/types/components/overlays/NewNotifications/Bar/NotificationsBar.d.ts +0 -21
- package/types/components/overlays/NewNotifications/Bar/TransitionComponent.d.ts +0 -4
- package/types/components/overlays/NewNotifications/Bar/index.d.ts +0 -1
- package/types/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.d.ts +0 -9
- package/types/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.d.ts +0 -11
- package/types/components/overlays/NewNotifications/Dialog/index.d.ts +0 -1
- package/types/components/overlays/NewNotifications/Notification.d.ts +0 -18
- package/types/components/overlays/NewNotifications/NotificationView/NotificationAction.d.ts +0 -13
- package/types/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.d.ts +0 -4
- package/types/components/overlays/NewNotifications/NotificationView/NotificationDescription.d.ts +0 -9
- package/types/components/overlays/NewNotifications/NotificationView/NotificationFooter.d.ts +0 -13
- package/types/components/overlays/NewNotifications/NotificationView/NotificationHeader.d.ts +0 -9
- package/types/components/overlays/NewNotifications/NotificationView/NotificationIcon.d.ts +0 -9
- package/types/components/overlays/NewNotifications/NotificationView/NotificationProvider.d.ts +0 -10
- package/types/components/overlays/NewNotifications/NotificationView/NotificationView.d.ts +0 -10
- package/types/components/overlays/NewNotifications/NotificationView/index.d.ts +0 -2
- package/types/components/overlays/NewNotifications/NotificationView/types.d.ts +0 -16
- package/types/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.d.ts +0 -5
- package/types/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.d.ts +0 -4
- package/types/components/overlays/NewNotifications/NotificationsContext/index.d.ts +0 -2
- package/types/components/overlays/NewNotifications/NotificationsContext/use-notifications.d.ts +0 -8
- package/types/components/overlays/NewNotifications/NotificationsList/NotificationsList.d.ts +0 -21
- package/types/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.d.ts +0 -5
- package/types/components/overlays/NewNotifications/NotificationsList/index.d.ts +0 -2
- package/types/components/overlays/NewNotifications/NotificationsList/types.d.ts +0 -22
- package/types/components/overlays/NewNotifications/hooks/index.d.ts +0 -5
- package/types/components/overlays/NewNotifications/hooks/types.d.ts +0 -10
- package/types/components/overlays/NewNotifications/hooks/use-notification-list-item.d.ts +0 -9
- package/types/components/overlays/NewNotifications/hooks/use-notifications-api.d.ts +0 -1
- package/types/components/overlays/NewNotifications/hooks/use-notifications-list.d.ts +0 -12
- package/types/components/overlays/NewNotifications/hooks/use-notifications-observer.d.ts +0 -2
- package/types/components/overlays/NewNotifications/index.d.ts +0 -8
- package/types/components/overlays/NewNotifications/types.d.ts +0 -76
- package/types/components/overlays/Notification/Notification.d.ts +0 -6
- package/types/services/notification.d.ts +0 -28
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { NotificationProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Declarative Notification component that shows a notification while mounted.
|
|
4
|
+
* Only supports `mode: 'overlay'` (the default).
|
|
5
|
+
*
|
|
6
|
+
* Duration defaults are the same as for imperative `notify()`:
|
|
7
|
+
* - 3000ms for non-persistent, 5000ms for persistent notifications
|
|
8
|
+
* - Pass `duration={null}` explicitly to disable auto-dismiss.
|
|
9
|
+
*
|
|
10
|
+
* Semantics:
|
|
11
|
+
* - mount → show or update by `id`
|
|
12
|
+
* - unmount → remove from overlay and persistent list
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* <Notification
|
|
17
|
+
* id="release:new-version"
|
|
18
|
+
* theme="warning"
|
|
19
|
+
* title="New release available"
|
|
20
|
+
* description="2.0.0 can be installed now."
|
|
21
|
+
* actions={
|
|
22
|
+
* <>
|
|
23
|
+
* <Notification.Action>Later</Notification.Action>
|
|
24
|
+
* <Notification.Action onPress={() => openUpgradeDialog()}>
|
|
25
|
+
* Upgrade
|
|
26
|
+
* </Notification.Action>
|
|
27
|
+
* </>
|
|
28
|
+
* }
|
|
29
|
+
* />
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare function Notification(props: NotificationProps): null;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Key, ReactNode } from 'react';
|
|
2
|
+
import type { NotificationActionProps } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Optional callback invoked BEFORE any action's onPress handler.
|
|
5
|
+
* Provided by PersistentNotificationsList so the parent (e.g. popover)
|
|
6
|
+
* can close itself when an action is triggered.
|
|
7
|
+
*/
|
|
8
|
+
declare const NotificationActionInterceptorContext: import("react").Context<(() => void) | null>;
|
|
9
|
+
export { NotificationActionInterceptorContext };
|
|
10
|
+
export interface NotificationDismissProviderProps {
|
|
11
|
+
notificationId: Key;
|
|
12
|
+
onDismiss: (id: Key, reason: 'action' | 'close') => void;
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
}
|
|
15
|
+
export declare function NotificationDismissProvider({ notificationId, onDismiss, children, }: NotificationDismissProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export declare const DismissActionDetectedContext: import("react").Context<import("react").RefObject<boolean | undefined> | null>;
|
|
17
|
+
/**
|
|
18
|
+
* Action button for use inside Notification components.
|
|
19
|
+
* Wraps ItemAction with auto-dismiss behavior.
|
|
20
|
+
*
|
|
21
|
+
* - `closeOnPress` (default: true) — auto-dismisses the notification after `onPress`.
|
|
22
|
+
* - An action with no `onPress` and `closeOnPress: true` acts as a dismiss-only action.
|
|
23
|
+
* - `isDismiss` — marks this action as the dismiss button; when present, the default
|
|
24
|
+
* "Dismiss" button is auto-suppressed via context detection.
|
|
25
|
+
* - Type (primary/secondary/etc.) is set automatically via ItemActionProvider context.
|
|
26
|
+
*/
|
|
27
|
+
export declare function NotificationAction({ children, onPress, closeOnPress, isDisabled, isDismiss, }: NotificationActionProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Key, ReactNode } from 'react';
|
|
2
|
+
import type { DismissReason, NotificationType } from './types';
|
|
3
|
+
export interface NotificationCardProps {
|
|
4
|
+
qa?: string;
|
|
5
|
+
/** Notification theme */
|
|
6
|
+
theme?: NotificationType;
|
|
7
|
+
/** Primary text */
|
|
8
|
+
title?: ReactNode;
|
|
9
|
+
/** Secondary text */
|
|
10
|
+
description?: ReactNode;
|
|
11
|
+
/** Custom icon override (theme default used if omitted) */
|
|
12
|
+
icon?: ReactNode;
|
|
13
|
+
/** Action buttons rendered below description */
|
|
14
|
+
actions?: ReactNode;
|
|
15
|
+
/**
|
|
16
|
+
* Whether the notification shows the default dismiss UI (auto-appended
|
|
17
|
+
* "Dismiss" button and Escape key). Default: true.
|
|
18
|
+
*
|
|
19
|
+
* When false, no default "Dismiss" button is rendered and Escape does
|
|
20
|
+
* nothing, but actions with `closeOnPress` (default) can still close
|
|
21
|
+
* the notification.
|
|
22
|
+
*/
|
|
23
|
+
isDismissible?: boolean;
|
|
24
|
+
/** When false the card drops its shadow (e.g. inside a list). Default: true. */
|
|
25
|
+
elevated?: boolean;
|
|
26
|
+
/** Notification id */
|
|
27
|
+
notificationId?: Key;
|
|
28
|
+
/** Called when the notification is dismissed */
|
|
29
|
+
onDismiss?: (id: Key, reason: DismissReason) => void;
|
|
30
|
+
/** Suffix content (e.g. timestamp) */
|
|
31
|
+
suffix?: ReactNode;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Shared presentational card used by both overlay NotificationItem
|
|
35
|
+
* and PersistentNotificationListItem.
|
|
36
|
+
*/
|
|
37
|
+
export declare function NotificationCard({ qa, theme, title, description, icon: providedIcon, actions, isDismissible, elevated, notificationId, onDismiss, suffix, }: NotificationCardProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ToastContextValue } from '../Toast/types';
|
|
2
|
+
import type { InternalNotificationContextValue, PersistentNotificationsContextValue } from './types';
|
|
3
|
+
export declare const ToastContext: import("react").Context<ToastContextValue | null>;
|
|
4
|
+
/**
|
|
5
|
+
* Internal context for overlay notification machinery.
|
|
6
|
+
* Not exported publicly — consumers should use `useNotifications` hook.
|
|
7
|
+
*/
|
|
8
|
+
export declare const NotificationContext: import("react").Context<InternalNotificationContextValue | null>;
|
|
9
|
+
/**
|
|
10
|
+
* Public context for persistent notifications.
|
|
11
|
+
* Used by `usePersistentNotifications` and `useNotificationsCount` hooks.
|
|
12
|
+
*/
|
|
13
|
+
export declare const PersistentNotificationsContext: import("react").Context<PersistentNotificationsContextValue | null>;
|
|
14
|
+
export declare function useToastContext(): ToastContextValue;
|
|
15
|
+
export declare function useNotificationContext(): InternalNotificationContextValue;
|
|
16
|
+
export declare function usePersistentNotificationsContext(): PersistentNotificationsContextValue;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Key } from 'react';
|
|
2
|
+
import type { DismissReason, InternalNotification } from './types';
|
|
3
|
+
export interface NotificationItemProps {
|
|
4
|
+
notification: InternalNotification;
|
|
5
|
+
onDismiss: (id: Key, reason: DismissReason) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function NotificationItem({ notification, onDismiss, }: NotificationItemProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Key } from 'react';
|
|
2
|
+
import type { InternalToast } from '../Toast/types';
|
|
3
|
+
import type { DismissReason, InternalNotification } from './types';
|
|
4
|
+
export interface OverlayContainerProps {
|
|
5
|
+
toasts: InternalToast[];
|
|
6
|
+
notifications: InternalNotification[];
|
|
7
|
+
onToastExitComplete: (internalId: string) => void;
|
|
8
|
+
onNotificationExitComplete: (internalId: string) => void;
|
|
9
|
+
onNotificationDismiss: (id: Key, reason: DismissReason) => void;
|
|
10
|
+
onPauseChange: (paused: boolean) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function OverlayContainer({ toasts, notifications, onToastExitComplete, onNotificationExitComplete, onNotificationDismiss, onPauseChange, }: OverlayContainerProps): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { OverlayProviderProps } from './types';
|
|
2
|
+
export { useToastContext, useNotificationContext } from './NotificationContext';
|
|
3
|
+
export declare function OverlayProvider({ children, maxPersistentNotifications, }: OverlayProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { PersistentNotificationsListProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Standardized rendering for archived/persistent notifications.
|
|
4
|
+
* Always reads items from the notification context.
|
|
5
|
+
* Composable with app-specific shells (popover, dialog, page section).
|
|
6
|
+
*
|
|
7
|
+
* Marks all items as read after being visible for 2 seconds.
|
|
8
|
+
* Relative timestamps refresh every 10 seconds while the list is mounted.
|
|
9
|
+
*
|
|
10
|
+
* Items are always dismissible. Dismissing an item removes it from the
|
|
11
|
+
* persistent list and marks its ID as "fully dismissed" — subsequent triggers
|
|
12
|
+
* with the same ID will be completely ignored (no overlay, no re-archival).
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* <PersistentNotificationsList emptyState="No notifications" />
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare function PersistentNotificationsList({ onDismissItem, onAction, emptyState, }: PersistentNotificationsListProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight relative time formatter.
|
|
3
|
+
* No external dependencies.
|
|
4
|
+
*
|
|
5
|
+
* Output format:
|
|
6
|
+
* - `just now` (< 1 minute)
|
|
7
|
+
* - `N min ago` (1–59 minutes)
|
|
8
|
+
* - `N h ago` (1–23 hours)
|
|
9
|
+
* - `N d ago` (1–6 days)
|
|
10
|
+
* - `N w ago` (1–4 weeks)
|
|
11
|
+
* - `N mo ago` (1–11 months)
|
|
12
|
+
* - `N y ago` (1+ years)
|
|
13
|
+
*/
|
|
14
|
+
export declare function formatRelativeTime(timestamp: number): string;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Notification as NotificationBase } from './Notification';
|
|
2
|
+
import { NotificationAction } from './NotificationAction';
|
|
3
|
+
export { NotificationAction } from './NotificationAction';
|
|
4
|
+
export { NotificationCard } from './NotificationCard';
|
|
5
|
+
export type { NotificationCardProps } from './NotificationCard';
|
|
6
|
+
export { NotificationItem } from './NotificationItem';
|
|
7
|
+
export type { NotificationItemProps } from './NotificationItem';
|
|
8
|
+
export { PersistentNotificationsList } from './PersistentNotificationsList';
|
|
9
|
+
export { OverlayProvider } from './OverlayProvider';
|
|
10
|
+
export { useToastContext } from './NotificationContext';
|
|
11
|
+
export { useNotifications } from './use-notifications';
|
|
12
|
+
export { usePersistentNotifications, useNotificationsCount, } from './use-persistent-notifications';
|
|
13
|
+
export { formatRelativeTime } from './format-relative-time';
|
|
14
|
+
export type { NotificationType, DismissReason, NotificationBaseOptions, OverlayNotificationOptions, StoredNotificationOptions, NotificationOptions, NotificationActionProps, NotificationHandle, NotificationsApi, PersistentNotificationItem, PersistentNotificationsListProps, OverlayProviderProps, NotificationProps, } from './types';
|
|
15
|
+
/**
|
|
16
|
+
* Declarative Notification component with compound API.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* // Declarative usage
|
|
21
|
+
* <Notification
|
|
22
|
+
* id="release:new-version"
|
|
23
|
+
* theme="warning"
|
|
24
|
+
* title="New release available"
|
|
25
|
+
* description="2.0.0 can be installed now."
|
|
26
|
+
* actions={
|
|
27
|
+
* <>
|
|
28
|
+
* <Notification.Action>Later</Notification.Action>
|
|
29
|
+
* <Notification.Action onPress={() => openUpgradeDialog()}>
|
|
30
|
+
* Upgrade
|
|
31
|
+
* </Notification.Action>
|
|
32
|
+
* </>
|
|
33
|
+
* }
|
|
34
|
+
* />
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare const Notification: typeof NotificationBase & {
|
|
38
|
+
Action: typeof NotificationAction;
|
|
39
|
+
};
|
|
40
|
+
export type NotificationComponent = typeof Notification;
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import type { Key, ReactNode } from 'react';
|
|
2
|
+
export type NotificationType = 'default' | 'success' | 'danger' | 'warning' | 'note';
|
|
3
|
+
export interface NotificationBaseOptions {
|
|
4
|
+
id?: Key;
|
|
5
|
+
theme?: NotificationType;
|
|
6
|
+
title?: ReactNode;
|
|
7
|
+
description?: ReactNode;
|
|
8
|
+
icon?: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export interface OverlayNotificationOptions extends NotificationBaseOptions {
|
|
11
|
+
mode?: 'overlay';
|
|
12
|
+
/**
|
|
13
|
+
* Action buttons rendered below the notification description.
|
|
14
|
+
* A default "Dismiss" button is auto-appended unless any action has
|
|
15
|
+
* `isDismiss` set (detected automatically via context).
|
|
16
|
+
* When omitted, only the default "Dismiss" button is shown (if `isDismissible`).
|
|
17
|
+
*/
|
|
18
|
+
actions?: ReactNode;
|
|
19
|
+
/**
|
|
20
|
+
* Whether the notification shows the default dismiss UI:
|
|
21
|
+
* - Auto-appended "Dismiss" button (suppressed when false)
|
|
22
|
+
* - Escape key dismissal (disabled when false)
|
|
23
|
+
*
|
|
24
|
+
* Actions with `closeOnPress` (default `true`) can still close the
|
|
25
|
+
* notification regardless of this setting.
|
|
26
|
+
*
|
|
27
|
+
* Default: true
|
|
28
|
+
*/
|
|
29
|
+
isDismissible?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Duration in ms before auto-dismiss.
|
|
32
|
+
* Default: 3000ms (non-persistent) or 5000ms (persistent).
|
|
33
|
+
* null = no auto-dismiss.
|
|
34
|
+
*/
|
|
35
|
+
duration?: number | null;
|
|
36
|
+
/**
|
|
37
|
+
* Whether to retain in persistent list when dismissed.
|
|
38
|
+
* All user-visible dismissals (timeout, action, close) move the notification
|
|
39
|
+
* to the persistent list. Only programmatic cleanup (`'api'`, e.g. component
|
|
40
|
+
* unmount) skips persistence.
|
|
41
|
+
*
|
|
42
|
+
* Once archived, subsequent calls with the same `id` skip the overlay and
|
|
43
|
+
* update the persistent list directly.
|
|
44
|
+
*
|
|
45
|
+
* Default: false
|
|
46
|
+
*/
|
|
47
|
+
persistent?: boolean;
|
|
48
|
+
}
|
|
49
|
+
export interface StoredNotificationOptions extends NotificationBaseOptions {
|
|
50
|
+
mode: 'stored';
|
|
51
|
+
/** Action buttons (same ReactNode format as overlay notifications) */
|
|
52
|
+
actions?: ReactNode;
|
|
53
|
+
/**
|
|
54
|
+
* Timestamp (epoch ms) for when the notification was originally created.
|
|
55
|
+
* Use this when restoring server-sourced notifications to preserve the original time.
|
|
56
|
+
* Defaults to `Date.now()` if omitted.
|
|
57
|
+
*/
|
|
58
|
+
createdAt?: number;
|
|
59
|
+
}
|
|
60
|
+
export type NotificationOptions = OverlayNotificationOptions | StoredNotificationOptions;
|
|
61
|
+
export type DismissReason = 'close' | 'timeout' | 'action' | 'api';
|
|
62
|
+
export interface NotificationActionProps {
|
|
63
|
+
/** Action label */
|
|
64
|
+
children?: ReactNode;
|
|
65
|
+
/**
|
|
66
|
+
* Called when the action is pressed.
|
|
67
|
+
* Return `false` to prevent the auto-dismiss that would normally follow.
|
|
68
|
+
* Useful for async flows where the user may cancel (e.g. confirmation dialogs).
|
|
69
|
+
*/
|
|
70
|
+
onPress?: () => void | false | Promise<void | false>;
|
|
71
|
+
/** Whether to auto-dismiss the notification after onPress. Default: true */
|
|
72
|
+
closeOnPress?: boolean;
|
|
73
|
+
/** Whether the action is disabled */
|
|
74
|
+
isDisabled?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Marks this action as the notification's dismiss button.
|
|
77
|
+
* Detected automatically via context — when any action in the notification
|
|
78
|
+
* has `isDismiss` set, the auto-appended default "Dismiss" button is suppressed.
|
|
79
|
+
*/
|
|
80
|
+
isDismiss?: boolean;
|
|
81
|
+
}
|
|
82
|
+
export interface NotificationHandle {
|
|
83
|
+
id: Key;
|
|
84
|
+
dismiss: () => void;
|
|
85
|
+
}
|
|
86
|
+
export interface NotificationsApi {
|
|
87
|
+
notify: (options: NotificationOptions) => NotificationHandle;
|
|
88
|
+
/**
|
|
89
|
+
* Shorthand for `notify({ mode: 'stored', ... })`.
|
|
90
|
+
* Stores a notification directly to the persistent list without showing an overlay.
|
|
91
|
+
* Kept as a separate method to make the "stored-only" intent explicit at call sites.
|
|
92
|
+
*/
|
|
93
|
+
record: (options: Omit<StoredNotificationOptions, 'mode'>) => NotificationHandle;
|
|
94
|
+
dismiss: (id: Key) => void;
|
|
95
|
+
}
|
|
96
|
+
export interface InternalNotification extends OverlayNotificationOptions {
|
|
97
|
+
internalId: string;
|
|
98
|
+
createdAt: number;
|
|
99
|
+
updatedAt: number;
|
|
100
|
+
isExiting?: boolean;
|
|
101
|
+
ownerId?: string;
|
|
102
|
+
}
|
|
103
|
+
export interface PersistentNotificationItem {
|
|
104
|
+
id: Key;
|
|
105
|
+
theme?: NotificationType;
|
|
106
|
+
title?: ReactNode;
|
|
107
|
+
description?: ReactNode;
|
|
108
|
+
icon?: ReactNode;
|
|
109
|
+
/** Action buttons (ReactNode) */
|
|
110
|
+
actions?: ReactNode;
|
|
111
|
+
createdAt: number;
|
|
112
|
+
updatedAt: number;
|
|
113
|
+
/** Whether the notification has been seen in the persistent list */
|
|
114
|
+
isRead?: boolean;
|
|
115
|
+
/** Owner ID for cleanup on hook/component unmount */
|
|
116
|
+
ownerId?: string;
|
|
117
|
+
}
|
|
118
|
+
export interface PersistentNotificationsListProps {
|
|
119
|
+
onDismissItem?: (item: PersistentNotificationItem) => void;
|
|
120
|
+
/** Called before any action's onPress handler fires. Useful for closing a parent popover. */
|
|
121
|
+
onAction?: () => void;
|
|
122
|
+
emptyState?: ReactNode;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Internal context for overlay notification machinery.
|
|
126
|
+
* Not exported publicly — consumers should use `useNotifications` hook instead.
|
|
127
|
+
*/
|
|
128
|
+
export interface InternalNotificationContextValue {
|
|
129
|
+
addNotification: (options: OverlayNotificationOptions, ownerId?: string) => Key;
|
|
130
|
+
removeNotification: (id: Key, reason?: DismissReason) => void;
|
|
131
|
+
updateNotification: (id: Key, options: Partial<OverlayNotificationOptions>) => void;
|
|
132
|
+
notifications: InternalNotification[];
|
|
133
|
+
addPersistentItem: (item: PersistentNotificationItem) => void;
|
|
134
|
+
removePersistentItem: (id: Key) => void;
|
|
135
|
+
removePersistentItemsByOwner: (ownerId: string) => void;
|
|
136
|
+
removeByOwner: (ownerId: string) => void;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Public context for persistent notifications.
|
|
140
|
+
* Used by `usePersistentNotifications` and `useNotificationsCount`.
|
|
141
|
+
*/
|
|
142
|
+
export interface PersistentNotificationsContextValue {
|
|
143
|
+
persistentItems: PersistentNotificationItem[];
|
|
144
|
+
removePersistentItem: (id: Key) => void;
|
|
145
|
+
clearPersistentItems: () => void;
|
|
146
|
+
markAllAsRead: () => void;
|
|
147
|
+
}
|
|
148
|
+
export interface OverlayProviderProps {
|
|
149
|
+
children: ReactNode;
|
|
150
|
+
/** Maximum number of persistent notifications to keep. Default: 200 */
|
|
151
|
+
maxPersistentNotifications?: number;
|
|
152
|
+
}
|
|
153
|
+
export interface NotificationProps extends OverlayNotificationOptions {
|
|
154
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Key, useRef } from 'react';
|
|
2
|
+
import type { DismissReason, InternalNotification, OverlayNotificationOptions, PersistentNotificationItem } from './types';
|
|
3
|
+
import type { OverlayTimers } from './use-overlay-timers';
|
|
4
|
+
export interface PersistentCallbacks {
|
|
5
|
+
addPersistentItem: (item: PersistentNotificationItem) => void;
|
|
6
|
+
removePersistentItem: (id: Key) => void;
|
|
7
|
+
hasDismissedPersistentId: (id: Key) => boolean;
|
|
8
|
+
isFullyDismissedId: (id: Key) => boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface NotificationState {
|
|
11
|
+
notifications: InternalNotification[];
|
|
12
|
+
notificationsRef: ReturnType<typeof useRef<InternalNotification[]>>;
|
|
13
|
+
addNotification: (options: OverlayNotificationOptions, ownerId?: string) => Key;
|
|
14
|
+
removeNotification: (id: Key, reason?: DismissReason) => void;
|
|
15
|
+
updateNotification: (id: Key, options: Partial<OverlayNotificationOptions>) => void;
|
|
16
|
+
finalizeNotificationRemoval: (internalId: string) => void;
|
|
17
|
+
removeByOwner: (ownerId: string) => void;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @param timersRef - Ref to the shared OverlayTimers instance. Accessed only
|
|
21
|
+
* inside callbacks (never during render), so it is guaranteed to be populated.
|
|
22
|
+
*/
|
|
23
|
+
export declare function useNotificationState(timersRef: ReturnType<typeof useRef<OverlayTimers>>, persistent: PersistentCallbacks): NotificationState;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { NotificationsApi } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Hook to display and manage notifications.
|
|
4
|
+
*
|
|
5
|
+
* Each hook instance acts as an owner scope:
|
|
6
|
+
* - `notify()` created from this instance attaches ownership metadata.
|
|
7
|
+
* - On unmount, all attached visible overlay notifications are dismissed.
|
|
8
|
+
* - On unmount, all attached persistent records are also removed.
|
|
9
|
+
* - `notify()`/`dismiss()` calls from stale closures after unmount are no-ops.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* const { notify, record, dismiss } = useNotifications();
|
|
14
|
+
*
|
|
15
|
+
* notify({
|
|
16
|
+
* id: 'deploy:123',
|
|
17
|
+
* theme: 'success',
|
|
18
|
+
* title: 'Deployment completed',
|
|
19
|
+
* description: 'Version 1.4.2 is live.',
|
|
20
|
+
* actions: (
|
|
21
|
+
* <>
|
|
22
|
+
* <Notification.Action onPress={() => openLogs()}>View logs</Notification.Action>
|
|
23
|
+
* <Notification.Action onPress={() => openDeployment()}>Open</Notification.Action>
|
|
24
|
+
* </>
|
|
25
|
+
* ),
|
|
26
|
+
* });
|
|
27
|
+
*
|
|
28
|
+
* // Store directly to persistent list (no overlay)
|
|
29
|
+
* record({
|
|
30
|
+
* id: 'server:alert-1',
|
|
31
|
+
* theme: 'warning',
|
|
32
|
+
* title: 'Server alert',
|
|
33
|
+
* });
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function useNotifications(): NotificationsApi;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Key, useRef } from 'react';
|
|
2
|
+
import type { InternalToast } from '../Toast/types';
|
|
3
|
+
import type { DismissReason, InternalNotification } from './types';
|
|
4
|
+
export interface OverlayTimers {
|
|
5
|
+
/** Start a toast auto-dismiss timer */
|
|
6
|
+
startToastTimer: (internalId: string, id: Key, duration: number) => void;
|
|
7
|
+
/** Clear a toast timer */
|
|
8
|
+
clearToastTimer: (internalId: string) => void;
|
|
9
|
+
/** Start a notification auto-dismiss timer */
|
|
10
|
+
startNotificationTimer: (internalId: string, id: Key, duration: number) => void;
|
|
11
|
+
/** Clear a notification timer */
|
|
12
|
+
clearNotificationTimer: (internalId: string) => void;
|
|
13
|
+
/** Handle pause/resume of all timers (e.g. on hover/focus) */
|
|
14
|
+
handlePauseChange: (paused: boolean) => void;
|
|
15
|
+
}
|
|
16
|
+
export interface OverlayTimersDeps {
|
|
17
|
+
/** Ref to current toasts (for resume lookup) */
|
|
18
|
+
toastsRef: ReturnType<typeof useRef<InternalToast[]>>;
|
|
19
|
+
/** Ref to current notifications (for resume lookup) */
|
|
20
|
+
notificationsRef: ReturnType<typeof useRef<InternalNotification[]>>;
|
|
21
|
+
/** Remove a toast by id */
|
|
22
|
+
removeToast: (id: Key) => void;
|
|
23
|
+
/** Remove a notification by id with reason (also invokes onDismiss callback) */
|
|
24
|
+
removeNotification: (id: Key, reason: DismissReason) => void;
|
|
25
|
+
}
|
|
26
|
+
export declare function useOverlayTimers(deps: OverlayTimersDeps): OverlayTimers;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Key } from 'react';
|
|
2
|
+
import type { PersistentNotificationItem } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Hook to access the persistent notifications list.
|
|
5
|
+
*
|
|
6
|
+
* Items are ordered newest first (by `createdAt`, descending).
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* const { items, count, remove, clear } = usePersistentNotifications();
|
|
11
|
+
*
|
|
12
|
+
* return (
|
|
13
|
+
* <div>
|
|
14
|
+
* <span>Notifications ({count})</span>
|
|
15
|
+
* {items.map(item => (
|
|
16
|
+
* <div key={item.id}>
|
|
17
|
+
* {item.title}
|
|
18
|
+
* <button onClick={() => remove(item.id)}>Remove</button>
|
|
19
|
+
* </div>
|
|
20
|
+
* ))}
|
|
21
|
+
* <button onClick={clear}>Clear all</button>
|
|
22
|
+
* </div>
|
|
23
|
+
* );
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function usePersistentNotifications(): {
|
|
27
|
+
items: PersistentNotificationItem[];
|
|
28
|
+
count: number;
|
|
29
|
+
remove: (id: Key) => void;
|
|
30
|
+
clear: () => void;
|
|
31
|
+
markAllAsRead: () => void;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Hook to get total and unread counts for persistent notifications.
|
|
35
|
+
*
|
|
36
|
+
* - `total` — number of items in the persistent list.
|
|
37
|
+
* - `unread` — items that haven't been seen in `PersistentNotificationsList` yet.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```tsx
|
|
41
|
+
* const { total, unread } = useNotificationsCount();
|
|
42
|
+
* return <Badge count={unread} />;
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function useNotificationsCount(): {
|
|
46
|
+
total: number;
|
|
47
|
+
unread: number;
|
|
48
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Key } from 'react';
|
|
2
|
+
import type { PersistentNotificationItem } from './types';
|
|
3
|
+
export interface PersistentState {
|
|
4
|
+
persistentItems: PersistentNotificationItem[];
|
|
5
|
+
addPersistentItem: (item: PersistentNotificationItem) => void;
|
|
6
|
+
removePersistentItem: (id: Key) => void;
|
|
7
|
+
removePersistentItemsByOwner: (ownerId: string) => void;
|
|
8
|
+
clearPersistentItems: () => void;
|
|
9
|
+
markAllAsRead: () => void;
|
|
10
|
+
/**
|
|
11
|
+
* Returns true if the given id was previously moved to the persistent list
|
|
12
|
+
* and has NOT been explicitly removed from it (i.e. still archived, or was
|
|
13
|
+
* auto-dismissed but not yet user-dismissed from the persistent list).
|
|
14
|
+
*/
|
|
15
|
+
hasDismissedPersistentId: (id: Key) => boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Returns true if the given id was explicitly removed from the persistent
|
|
18
|
+
* list by the user. Such notifications should be completely ignored on
|
|
19
|
+
* subsequent triggers (no overlay, no persistent storage).
|
|
20
|
+
*/
|
|
21
|
+
isFullyDismissedId: (id: Key) => boolean;
|
|
22
|
+
}
|
|
23
|
+
export declare function usePersistentState(maxItems: number): PersistentState;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Key, useRef } from 'react';
|
|
2
|
+
import type { InternalToast, ToastData } from '../Toast/types';
|
|
3
|
+
import type { OverlayTimers } from './use-overlay-timers';
|
|
4
|
+
export interface ToastState {
|
|
5
|
+
toasts: InternalToast[];
|
|
6
|
+
toastsRef: ReturnType<typeof useRef<InternalToast[]>>;
|
|
7
|
+
addToast: (data: ToastData, isProgress?: boolean) => Key;
|
|
8
|
+
removeToast: (id: Key) => void;
|
|
9
|
+
updateToast: (id: Key, data: Partial<ToastData>) => void;
|
|
10
|
+
finalizeToastRemoval: (internalId: string) => void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* @param timersRef - Ref to the shared OverlayTimers instance. Accessed only
|
|
14
|
+
* inside callbacks (never during render), so it is guaranteed to be populated.
|
|
15
|
+
*/
|
|
16
|
+
export declare function useToastState(timersRef: ReturnType<typeof useRef<OverlayTimers>>): ToastState;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { CubeItemProps } from '../../content/Item/Item';
|
|
3
3
|
import type { ToastType } from './types';
|
|
4
|
-
export interface ToastItemProps extends Partial<Omit<CubeItemProps, 'type'>> {
|
|
4
|
+
export interface ToastItemProps extends Partial<Omit<CubeItemProps, 'type' | 'icon'>> {
|
|
5
5
|
/** Primary content (→ Item children). Also supports description-only for migration. */
|
|
6
6
|
title?: ReactNode;
|
|
7
7
|
/** Secondary content (or primary if no title/children) */
|
|
@@ -10,5 +10,7 @@ export interface ToastItemProps extends Partial<Omit<CubeItemProps, 'type'>> {
|
|
|
10
10
|
theme?: ToastType;
|
|
11
11
|
/** Whether the toast is in loading state */
|
|
12
12
|
isLoading?: boolean;
|
|
13
|
+
/** Icon to display (resolved ReactNode, not a dynamic icon function) */
|
|
14
|
+
icon?: ReactNode;
|
|
13
15
|
}
|
|
14
16
|
export declare const ToastItem: import("react").ForwardRefExoticComponent<ToastItemProps & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
export declare function ToastProvider({ children }: ToastProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
export {};
|
|
1
|
+
/**
|
|
2
|
+
* Toast context is now provided by OverlayProvider.
|
|
3
|
+
* This module re-exports useToastContext for backward compatibility.
|
|
4
|
+
*/
|
|
5
|
+
export { useToastContext } from '../Notifications/NotificationContext';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { ProgressToastOptions, ToastData } from './types';
|
|
3
|
-
export {
|
|
3
|
+
export { useToastContext } from './ToastProvider';
|
|
4
4
|
export { ToastItem } from './ToastItem';
|
|
5
5
|
export type { ToastItemProps } from './ToastItem';
|
|
6
6
|
export { useToast, getThemeIcon } from './useToast';
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { Key, ReactNode } from 'react';
|
|
2
2
|
import type { CubeItemProps } from '../../content/Item/Item';
|
|
3
|
-
|
|
3
|
+
import type { NotificationType } from '../Notifications/types';
|
|
4
|
+
/** @deprecated Use `NotificationType` instead. Kept as alias for backward compatibility. */
|
|
5
|
+
export type ToastType = NotificationType;
|
|
4
6
|
export interface ToastData {
|
|
5
7
|
/** Unique identifier for deduplication (auto-generated if not provided) */
|
|
6
8
|
id?: Key;
|
package/types/index.d.ts
CHANGED
|
@@ -105,8 +105,6 @@ export { StatsCard } from './components/organisms/StatsCard/StatsCard';
|
|
|
105
105
|
export type { CubeStatsCard } from './components/organisms/StatsCard/StatsCard';
|
|
106
106
|
export { AlertDialog, useAlertDialogAPI, } from './components/overlays/AlertDialog';
|
|
107
107
|
export type { CubeAlertDialogProps } from './components/overlays/AlertDialog';
|
|
108
|
-
export { notification } from './services/notification';
|
|
109
|
-
export type { CubeNotificationOptions } from './services/notification';
|
|
110
108
|
export * from './tasty';
|
|
111
109
|
export declare const Typography: {
|
|
112
110
|
Text: import("./components/content/Text").TextComponent;
|
|
@@ -128,8 +126,8 @@ export * from './utils';
|
|
|
128
126
|
export * from './tasty';
|
|
129
127
|
export { default as copy } from 'clipboard-copy';
|
|
130
128
|
export * from '@react-aria/ssr';
|
|
131
|
-
export * from './components/overlays/NewNotifications';
|
|
132
129
|
export * from './components/overlays/Toast';
|
|
130
|
+
export * from './components/overlays/Notifications';
|
|
133
131
|
export * from './shared';
|
|
134
132
|
export * from './icons';
|
|
135
133
|
export * from './components/form';
|