@cube-dev/ui-kit 0.10.13 → 0.11.2
Sign up to get free protection for your applications and to get access to all the features.
- package/cjs/_internal/hooks/index.js +5 -1
- package/cjs/_internal/hooks/use-chained-callback.js +23 -0
- package/cjs/_internal/hooks/use-deprecation-warning.js +1 -1
- package/cjs/_internal/hooks/use-event.js +26 -0
- package/cjs/_internal/hooks/use-sync-ref.js +21 -0
- package/cjs/_internal/hooks/use-timer/index.js +23 -0
- package/cjs/_internal/hooks/use-timer/timer.js +61 -0
- package/cjs/_internal/hooks/use-timer/use-timer.js +49 -0
- package/cjs/_internal/index.js +1 -1
- package/cjs/components/Base.js +1 -1
- package/cjs/components/Block.js +1 -1
- package/cjs/components/GlobalStyles.js +1 -1
- package/cjs/components/GridProvider.js +1 -1
- package/cjs/components/HiddenInput.js +1 -1
- package/cjs/components/OpenTrasition.js +1 -1
- package/cjs/components/Root.js +3 -2
- package/cjs/components/actions/Action.js +1 -1
- package/cjs/components/actions/Button/Button.js +1 -1
- package/cjs/components/actions/Button/Submit.js +1 -1
- package/cjs/components/actions/Button/index.js +1 -1
- package/cjs/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/cjs/components/actions/index.js +1 -1
- package/cjs/components/content/ActiveZone/ActiveZone.js +1 -1
- package/cjs/components/content/Alert/Alert.js +1 -1
- package/cjs/components/content/Alert/index.js +1 -1
- package/cjs/components/content/Alert/types.js +1 -1
- package/cjs/components/content/Alert/use-alert.js +1 -1
- package/cjs/components/content/Avatar/Avatar.js +1 -1
- package/cjs/components/content/Badge/Badge.js +1 -1
- package/cjs/components/content/Card/Card.js +1 -1
- package/cjs/components/content/Content.js +1 -1
- package/cjs/components/content/CopySnippet/CopySnippet.js +11 -24
- package/cjs/components/content/CopySnippet/index.js +1 -1
- package/cjs/components/content/Divider.js +1 -1
- package/cjs/components/content/Footer.js +1 -1
- package/cjs/components/content/Header.js +1 -1
- package/cjs/components/content/Paragraph.js +1 -1
- package/cjs/components/content/Placeholder/Placeholder.js +1 -1
- package/cjs/components/content/PrismCode/PrismCode.js +1 -1
- package/cjs/components/content/Result/Result.js +1 -1
- package/cjs/components/content/Skeleton/Skeleton.js +1 -1
- package/cjs/components/content/Tag/Tag.js +1 -1
- package/cjs/components/content/Text.js +1 -1
- package/cjs/components/content/Title.js +4 -4
- package/cjs/components/forms/Checkbox/Checkbox.js +1 -1
- package/cjs/components/forms/Checkbox/CheckboxGroup.js +1 -1
- package/cjs/components/forms/Checkbox/context.js +1 -1
- package/cjs/components/forms/FieldWrapper.js +1 -1
- package/cjs/components/forms/FileInput/FileInput.js +1 -1
- package/cjs/components/forms/Form/Field.js +9 -3
- package/cjs/components/forms/Form/Form.js +1 -1
- package/cjs/components/forms/Form/index.js +1 -1
- package/cjs/components/forms/Form/useForm.js +1 -1
- package/cjs/components/forms/Form/validation.js +1 -1
- package/cjs/components/forms/Input/Input.js +1 -1
- package/cjs/components/forms/Input/index.js +1 -1
- package/cjs/components/forms/Label.js +1 -1
- package/cjs/components/forms/NumberInput/NumberInput.js +1 -1
- package/cjs/components/forms/NumberInput/StepButton.js +1 -1
- package/cjs/components/forms/PasswordInput/PasswordInput.js +1 -1
- package/cjs/components/forms/RadioGroup/Radio.js +1 -1
- package/cjs/components/forms/RadioGroup/RadioGroup.js +1 -1
- package/cjs/components/forms/RadioGroup/context.js +1 -1
- package/cjs/components/forms/SearchInput/SearchInput.js +1 -1
- package/cjs/components/forms/Switch/Switch.js +1 -1
- package/cjs/components/forms/TextArea/TextArea.js +1 -1
- package/cjs/components/forms/TextInput/TextInput.js +1 -1
- package/cjs/components/forms/TextInput/TextInputBase.js +2 -2
- package/cjs/components/forms/index.js +1 -1
- package/cjs/components/layout/Flex.js +1 -1
- package/cjs/components/layout/Flow.js +1 -1
- package/cjs/components/layout/Grid.js +1 -1
- package/cjs/components/layout/Prefix.js +1 -1
- package/cjs/components/layout/Space.js +1 -1
- package/cjs/components/layout/Suffix.js +1 -1
- package/cjs/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
- package/cjs/components/navigation/Link/Link.js +1 -1
- package/cjs/components/organisms/FileTabs/FileTabs.js +1 -1
- package/cjs/components/organisms/Modal/Modal.js +1 -1
- package/cjs/components/organisms/StatsCard/StatsCard.js +1 -1
- package/cjs/components/other/Base64Upload/Base64Upload.js +1 -1
- package/cjs/components/other/CloudLogo/CloudLogo.js +1 -1
- package/cjs/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/cjs/components/overlays/AlertDialog/AlertDialogApiProvider.js +2 -2
- package/cjs/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/cjs/components/overlays/AlertDialog/index.js +1 -1
- package/cjs/components/overlays/AlertDialog/types.js +1 -1
- package/cjs/components/overlays/Dialog/Dialog.js +3 -6
- package/cjs/components/overlays/Dialog/DialogContainer.js +1 -1
- package/cjs/components/overlays/Dialog/DialogForm.js +1 -1
- package/cjs/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/cjs/components/overlays/Dialog/context.js +1 -1
- package/cjs/components/overlays/Dialog/index.js +1 -1
- package/cjs/components/overlays/Modal/Modal.js +1 -1
- package/cjs/components/overlays/Modal/OpenTransition.js +1 -1
- package/cjs/components/overlays/Modal/Overlay.js +1 -1
- package/cjs/components/overlays/Modal/Popover.js +1 -1
- package/cjs/components/overlays/Modal/Tray.js +1 -1
- package/cjs/components/overlays/Modal/Underlay.js +1 -1
- package/cjs/components/overlays/Modal/index.js +1 -1
- package/cjs/components/overlays/NewNotifications/Bar/FloatingNotification.js +49 -0
- package/cjs/components/overlays/NewNotifications/Bar/NotificationsBar.js +67 -0
- package/cjs/components/overlays/NewNotifications/Bar/TransitionComponent.js +61 -0
- package/cjs/components/overlays/NewNotifications/Bar/index.js +22 -0
- package/cjs/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +43 -0
- package/cjs/components/overlays/NewNotifications/Dialog/index.js +22 -0
- package/cjs/components/overlays/NewNotifications/Notification.js +38 -0
- package/cjs/components/overlays/NewNotifications/NotificationView/NotificationAction.js +32 -0
- package/cjs/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +40 -0
- package/cjs/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +30 -0
- package/cjs/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +65 -0
- package/cjs/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +30 -0
- package/cjs/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +67 -0
- package/cjs/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +30 -0
- package/cjs/components/overlays/NewNotifications/NotificationView/NotificationView.js +70 -0
- package/cjs/components/overlays/NewNotifications/NotificationView/index.js +23 -0
- package/cjs/components/overlays/NewNotifications/NotificationView/types.js +11 -0
- package/cjs/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +25 -0
- package/cjs/components/overlays/NewNotifications/NotificationsContext/index.js +15 -0
- package/cjs/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +91 -0
- package/cjs/components/overlays/NewNotifications/NotificationsList.js +43 -0
- package/cjs/components/overlays/NewNotifications/hooks/index.js +26 -0
- package/cjs/components/overlays/NewNotifications/hooks/types.js +11 -0
- package/cjs/components/overlays/NewNotifications/hooks/use-notification-list-item.js +18 -0
- package/cjs/components/overlays/NewNotifications/hooks/use-notifications-api.js +24 -0
- package/cjs/components/overlays/NewNotifications/hooks/use-notifications-list.js +33 -0
- package/cjs/components/overlays/NewNotifications/hooks/use-notifications-observer.js +22 -0
- package/cjs/components/overlays/NewNotifications/index.js +30 -0
- package/cjs/components/overlays/NewNotifications/types.js +11 -0
- package/cjs/components/overlays/Notification/Notification.js +1 -1
- package/cjs/components/overlays/OverlayWrapper.js +1 -1
- package/cjs/components/overlays/Toasts/Toast.js +40 -0
- package/cjs/components/overlays/Toasts/index.js +23 -0
- package/cjs/components/overlays/Toasts/types.js +11 -0
- package/cjs/components/overlays/Toasts/use-toasts-api.js +46 -0
- package/cjs/components/overlays/Tooltip/Tooltip.js +1 -1
- package/cjs/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/cjs/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/cjs/components/overlays/Tooltip/context.js +1 -1
- package/cjs/components/pickers/ComboBox/ComboBox.js +1 -1
- package/cjs/components/pickers/Menu/Menu.js +1 -1
- package/cjs/components/pickers/Menu/MenuButton.js +1 -1
- package/cjs/components/pickers/Menu/MenuItem.js +1 -1
- package/cjs/components/pickers/Menu/MenuSection.js +1 -1
- package/cjs/components/pickers/Menu/MenuTrigger.js +1 -1
- package/cjs/components/pickers/Menu/context.js +1 -1
- package/cjs/components/pickers/Menu/styled.js +1 -1
- package/cjs/components/pickers/Select/Select.js +1 -1
- package/cjs/components/portal/Portal.js +1 -1
- package/cjs/components/portal/PortalProvider.js +1 -1
- package/cjs/components/portal/index.js +1 -1
- package/cjs/components/portal/storybook/templates/CustomRoot.js +1 -1
- package/cjs/components/portal/storybook/templates/PortalOrder.js +1 -1
- package/cjs/components/portal/storybook/templates/basic.js +1 -1
- package/cjs/components/portal/storybook/templates/index.js +1 -1
- package/cjs/components/portal/types.js +1 -1
- package/cjs/components/portal/usePortal.js +1 -1
- package/cjs/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/cjs/components/status/LoadingAnimation/index.js +1 -1
- package/cjs/components/status/Spin/Cube.js +1 -1
- package/cjs/components/status/Spin/InternalSpinner.js +1 -1
- package/cjs/components/status/Spin/Spin.js +1 -1
- package/cjs/components/status/Spin/SpinsContainer.js +1 -1
- package/cjs/components/status/Spin/index.js +1 -1
- package/cjs/components/status/Spin/types.js +1 -1
- package/cjs/components/status/index.js +1 -1
- package/cjs/data/themes.js +1 -1
- package/cjs/icons/Attention.js +17 -0
- package/cjs/icons/Cross.js +17 -0
- package/cjs/icons/Danger.js +17 -0
- package/cjs/icons/Success.js +17 -0
- package/cjs/icons/index.js +25 -0
- package/cjs/index.js +3 -1
- package/cjs/provider.js +1 -1
- package/cjs/providers/StyleProvider.js +1 -1
- package/cjs/services/notification.js +4 -1
- package/cjs/shared/form.js +1 -1
- package/cjs/shared/index.js +1 -1
- package/cjs/stories/FormFieldArgs.js +1 -1
- package/cjs/stories/components/ConfirmDeletionDialogForm.js +1 -1
- package/cjs/stories/components/DialogFormApp.js +1 -1
- package/cjs/stories/components/StyledButton.js +1 -1
- package/cjs/stories/lists/baseProps.js +1 -1
- package/cjs/styled/index.js +1 -1
- package/cjs/styled/styled.js +5 -4
- package/cjs/tasty/index.js +1 -1
- package/cjs/tasty/providers/BreakpointsProvider.js +1 -1
- package/cjs/tasty/styles/align.js +1 -1
- package/cjs/tasty/styles/border.js +1 -1
- package/cjs/tasty/styles/boxShadow.combinator.js +1 -1
- package/cjs/tasty/styles/color.js +1 -1
- package/cjs/tasty/styles/createStyle.js +1 -1
- package/cjs/tasty/styles/dimension.js +1 -1
- package/cjs/tasty/styles/display.js +1 -1
- package/cjs/tasty/styles/fill.js +1 -1
- package/cjs/tasty/styles/flow.js +1 -1
- package/cjs/tasty/styles/font.js +1 -1
- package/cjs/tasty/styles/fontStyle.js +1 -1
- package/cjs/tasty/styles/gap.js +1 -1
- package/cjs/tasty/styles/groupRadius.js +1 -1
- package/cjs/tasty/styles/height.js +1 -1
- package/cjs/tasty/styles/index.js +1 -1
- package/cjs/tasty/styles/justify.js +1 -1
- package/cjs/tasty/styles/list.js +1 -1
- package/cjs/tasty/styles/margin.js +1 -1
- package/cjs/tasty/styles/marginBlock.js +1 -1
- package/cjs/tasty/styles/marginInline.js +1 -1
- package/cjs/tasty/styles/outline.js +1 -1
- package/cjs/tasty/styles/padding.js +1 -1
- package/cjs/tasty/styles/paddingBlock.js +1 -1
- package/cjs/tasty/styles/paddingInline.js +1 -1
- package/cjs/tasty/styles/predefined.js +1 -1
- package/cjs/tasty/styles/preset.js +1 -1
- package/cjs/tasty/styles/radius.js +1 -1
- package/cjs/tasty/styles/reset.js +1 -1
- package/cjs/tasty/styles/shadow.js +1 -1
- package/cjs/tasty/styles/styledScrollbar.js +1 -1
- package/cjs/tasty/styles/transition.js +1 -1
- package/cjs/tasty/styles/types.js +1 -1
- package/cjs/tasty/styles/width.js +1 -1
- package/cjs/tasty/tasty.js +4 -3
- package/cjs/tasty/types.js +1 -1
- package/cjs/tasty/utils/colors.js +1 -1
- package/cjs/tasty/utils/dotize.js +1 -1
- package/cjs/tasty/utils/filterBaseProps.js +1 -1
- package/cjs/tasty/utils/index.js +1 -1
- package/cjs/tasty/utils/mergeStyles.js +1 -1
- package/cjs/tasty/utils/modAttrs.js +1 -1
- package/cjs/tasty/utils/renderStyles.js +1 -1
- package/cjs/tasty/utils/responsive.js +1 -1
- package/cjs/tasty/utils/string.js +1 -1
- package/cjs/tasty/utils/styles.js +1 -1
- package/cjs/tasty/utils/warnings.js +1 -1
- package/cjs/test/index.js +2 -1
- package/cjs/test/render.js +12 -1
- package/cjs/test/setup.js +1 -1
- package/cjs/test/utils/index.js +1 -1
- package/cjs/test/utils/wait.js +2 -2
- package/cjs/tokens.js +2 -2
- package/cjs/type-checks.js +1 -1
- package/cjs/utils/ResizeSensor.js +1 -1
- package/cjs/utils/modules.js +1 -1
- package/cjs/utils/promise.js +1 -1
- package/cjs/utils/react/Slots.js +5 -4
- package/cjs/utils/react/chain.js +1 -1
- package/cjs/utils/react/get-display-name.js +21 -0
- package/cjs/utils/react/index.js +12 -1
- package/cjs/utils/react/interactions.js +1 -1
- package/cjs/utils/react/isTextOnly.js +1 -1
- package/cjs/utils/react/mapProps.js +1 -1
- package/cjs/utils/react/mergeProps.js +1 -1
- package/cjs/utils/react/nullableValue.js +1 -1
- package/cjs/utils/react/useCombinedRefs.js +1 -1
- package/cjs/utils/react/useId.js +1 -1
- package/cjs/utils/react/useLayoutEffect.js +1 -1
- package/cjs/utils/react/wrapNodeIfPlain.js +1 -1
- package/cjs/utils/transitions.js +1 -1
- package/cjs/utils/tree.js +1 -1
- package/cjs/utils/warnings.js +1 -1
- package/es/_internal/hooks/index.js +5 -1
- package/es/_internal/hooks/use-chained-callback.js +19 -0
- package/es/_internal/hooks/use-deprecation-warning.js +1 -1
- package/es/_internal/hooks/use-event.js +22 -0
- package/es/_internal/hooks/use-sync-ref.js +17 -0
- package/es/_internal/hooks/use-timer/index.js +11 -0
- package/es/_internal/hooks/use-timer/timer.js +57 -0
- package/es/_internal/hooks/use-timer/use-timer.js +45 -0
- package/es/_internal/index.js +1 -1
- package/es/components/Base.js +1 -1
- package/es/components/Block.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 -2
- package/es/components/actions/Action.js +1 -1
- package/es/components/actions/Button/Button.js +1 -1
- package/es/components/actions/Button/Submit.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/index.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/CopySnippet/CopySnippet.js +11 -24
- package/es/components/content/CopySnippet/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/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/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/Title.js +4 -4
- package/es/components/forms/Checkbox/Checkbox.js +1 -1
- package/es/components/forms/Checkbox/CheckboxGroup.js +1 -1
- package/es/components/forms/Checkbox/context.js +1 -1
- package/es/components/forms/FieldWrapper.js +1 -1
- package/es/components/forms/FileInput/FileInput.js +1 -1
- package/es/components/forms/Form/Field.js +9 -3
- package/es/components/forms/Form/Form.js +1 -1
- package/es/components/forms/Form/index.js +1 -1
- package/es/components/forms/Form/useForm.js +1 -1
- package/es/components/forms/Form/validation.js +1 -1
- package/es/components/forms/Input/Input.js +1 -1
- package/es/components/forms/Input/index.js +1 -1
- package/es/components/forms/Label.js +1 -1
- package/es/components/forms/NumberInput/NumberInput.js +1 -1
- package/es/components/forms/NumberInput/StepButton.js +1 -1
- package/es/components/forms/PasswordInput/PasswordInput.js +1 -1
- package/es/components/forms/RadioGroup/Radio.js +1 -1
- package/es/components/forms/RadioGroup/RadioGroup.js +1 -1
- package/es/components/forms/RadioGroup/context.js +1 -1
- package/es/components/forms/SearchInput/SearchInput.js +1 -1
- package/es/components/forms/Switch/Switch.js +1 -1
- package/es/components/forms/TextArea/TextArea.js +1 -1
- package/es/components/forms/TextInput/TextInput.js +1 -1
- package/es/components/forms/TextInput/TextInputBase.js +2 -2
- package/es/components/forms/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/Prefix.js +1 -1
- package/es/components/layout/Space.js +1 -1
- package/es/components/layout/Suffix.js +1 -1
- package/es/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
- package/es/components/navigation/Link/Link.js +1 -1
- package/es/components/organisms/FileTabs/FileTabs.js +1 -1
- package/es/components/organisms/Modal/Modal.js +1 -1
- package/es/components/organisms/StatsCard/StatsCard.js +1 -1
- package/es/components/other/Base64Upload/Base64Upload.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 +2 -2
- 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 +3 -6
- 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/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/NewNotifications/Bar/FloatingNotification.js +46 -0
- package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +63 -0
- package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +54 -0
- package/es/components/overlays/NewNotifications/Bar/index.js +10 -0
- package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +38 -0
- package/es/components/overlays/NewNotifications/Dialog/index.js +10 -0
- package/es/components/overlays/NewNotifications/Notification.js +34 -0
- package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +28 -0
- package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +37 -0
- package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +27 -0
- package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +40 -0
- package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +27 -0
- package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +64 -0
- package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +22 -0
- package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +67 -0
- package/es/components/overlays/NewNotifications/NotificationView/index.js +11 -0
- package/es/components/overlays/NewNotifications/NotificationView/types.js +10 -0
- package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +21 -0
- package/es/components/overlays/NewNotifications/NotificationsContext/index.js +10 -0
- package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +87 -0
- package/es/components/overlays/NewNotifications/NotificationsList.js +39 -0
- package/es/components/overlays/NewNotifications/hooks/index.js +14 -0
- package/es/components/overlays/NewNotifications/hooks/types.js +10 -0
- package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +14 -0
- package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +17 -0
- package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +29 -0
- package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +18 -0
- package/es/components/overlays/NewNotifications/index.js +15 -0
- package/es/components/overlays/NewNotifications/types.js +10 -0
- package/es/components/overlays/Notification/Notification.js +1 -1
- package/es/components/overlays/OverlayWrapper.js +1 -1
- package/es/components/overlays/Toasts/Toast.js +36 -0
- package/es/components/overlays/Toasts/index.js +11 -0
- package/es/components/overlays/Toasts/types.js +10 -0
- package/es/components/overlays/Toasts/use-toasts-api.js +42 -0
- 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/pickers/ComboBox/ComboBox.js +1 -1
- package/es/components/pickers/Menu/Menu.js +1 -1
- package/es/components/pickers/Menu/MenuButton.js +1 -1
- package/es/components/pickers/Menu/MenuItem.js +1 -1
- package/es/components/pickers/Menu/MenuSection.js +1 -1
- package/es/components/pickers/Menu/MenuTrigger.js +1 -1
- package/es/components/pickers/Menu/context.js +1 -1
- package/es/components/pickers/Menu/styled.js +1 -1
- package/es/components/pickers/Select/Select.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/storybook/templates/CustomRoot.js +1 -1
- package/es/components/portal/storybook/templates/PortalOrder.js +1 -1
- package/es/components/portal/storybook/templates/basic.js +1 -1
- package/es/components/portal/storybook/templates/index.js +1 -1
- package/es/components/portal/types.js +1 -1
- package/es/components/portal/usePortal.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/themes.js +1 -1
- package/es/icons/Attention.js +13 -0
- package/es/icons/Cross.js +13 -0
- package/es/icons/Danger.js +13 -0
- package/es/icons/Success.js +13 -0
- package/es/icons/index.js +13 -0
- package/es/index.js +3 -1
- package/es/provider.js +1 -1
- package/es/providers/StyleProvider.js +1 -1
- package/es/services/notification.js +4 -1
- package/es/shared/form.js +1 -1
- package/es/shared/index.js +1 -1
- package/es/stories/FormFieldArgs.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/styled/index.js +1 -1
- package/es/styled/styled.js +5 -4
- package/es/tasty/index.js +1 -1
- package/es/tasty/providers/BreakpointsProvider.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/fill.js +1 -1
- package/es/tasty/styles/flow.js +1 -1
- package/es/tasty/styles/font.js +1 -1
- package/es/tasty/styles/fontStyle.js +1 -1
- package/es/tasty/styles/gap.js +1 -1
- package/es/tasty/styles/groupRadius.js +1 -1
- package/es/tasty/styles/height.js +1 -1
- package/es/tasty/styles/index.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/marginBlock.js +1 -1
- package/es/tasty/styles/marginInline.js +1 -1
- package/es/tasty/styles/outline.js +1 -1
- package/es/tasty/styles/padding.js +1 -1
- package/es/tasty/styles/paddingBlock.js +1 -1
- package/es/tasty/styles/paddingInline.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/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 +4 -3
- package/es/tasty/types.js +1 -1
- package/es/tasty/utils/colors.js +1 -1
- package/es/tasty/utils/dotize.js +1 -1
- package/es/tasty/utils/filterBaseProps.js +1 -1
- package/es/tasty/utils/index.js +1 -1
- package/es/tasty/utils/mergeStyles.js +1 -1
- package/es/tasty/utils/modAttrs.js +1 -1
- package/es/tasty/utils/renderStyles.js +1 -1
- package/es/tasty/utils/responsive.js +1 -1
- package/es/tasty/utils/string.js +1 -1
- package/es/tasty/utils/styles.js +1 -1
- package/es/tasty/utils/warnings.js +1 -1
- package/es/test/index.js +2 -1
- package/es/test/render.js +2 -1
- package/es/test/setup.js +1 -1
- package/es/test/utils/index.js +1 -1
- package/es/test/utils/wait.js +2 -2
- package/es/tokens.js +2 -2
- package/es/type-checks.js +1 -1
- package/es/utils/ResizeSensor.js +1 -1
- package/es/utils/modules.js +1 -1
- package/es/utils/promise.js +1 -1
- package/es/utils/react/Slots.js +5 -4
- package/es/utils/react/chain.js +1 -1
- package/es/utils/react/get-display-name.js +17 -0
- package/es/utils/react/index.js +2 -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/useCombinedRefs.js +1 -1
- package/es/utils/react/useId.js +1 -1
- package/es/utils/react/useLayoutEffect.js +1 -1
- package/es/utils/react/wrapNodeIfPlain.js +1 -1
- package/es/utils/transitions.js +1 -1
- package/es/utils/tree.js +1 -1
- package/es/utils/warnings.js +1 -1
- package/package.json +2 -1
- package/types/_internal/hooks/index.d.ts +4 -0
- package/types/_internal/hooks/use-chained-callback.d.ts +1 -0
- package/types/_internal/hooks/use-event.d.ts +7 -0
- package/types/_internal/hooks/use-sync-ref.d.ts +2 -0
- package/types/_internal/hooks/use-timer/index.d.ts +2 -0
- package/types/_internal/hooks/use-timer/timer.d.ts +15 -0
- package/types/_internal/hooks/use-timer/use-timer.d.ts +10 -0
- package/types/components/actions/Button/Button.d.ts +1 -1
- package/types/components/forms/Form/Field.d.ts +4 -0
- package/types/components/overlays/AlertDialog/AlertDialogApiProvider.d.ts +1 -1
- package/types/components/overlays/NewNotifications/Bar/FloatingNotification.d.ts +12 -0
- package/types/components/overlays/NewNotifications/Bar/NotificationsBar.d.ts +13 -0
- package/types/components/overlays/NewNotifications/Bar/TransitionComponent.d.ts +4 -0
- package/types/components/overlays/NewNotifications/Bar/index.d.ts +1 -0
- package/types/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.d.ts +11 -0
- package/types/components/overlays/NewNotifications/Dialog/index.d.ts +1 -0
- package/types/components/overlays/NewNotifications/Notification.d.ts +8 -0
- package/types/components/overlays/NewNotifications/NotificationView/NotificationAction.d.ts +10 -0
- package/types/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.d.ts +7 -0
- package/types/components/overlays/NewNotifications/NotificationView/NotificationDescription.d.ts +8 -0
- package/types/components/overlays/NewNotifications/NotificationView/NotificationFooter.d.ts +10 -0
- package/types/components/overlays/NewNotifications/NotificationView/NotificationHeader.d.ts +8 -0
- package/types/components/overlays/NewNotifications/NotificationView/NotificationIcon.d.ts +3 -0
- package/types/components/overlays/NewNotifications/NotificationView/NotificationProvider.d.ts +7 -0
- package/types/components/overlays/NewNotifications/NotificationView/NotificationView.d.ts +8 -0
- package/types/components/overlays/NewNotifications/NotificationView/index.d.ts +2 -0
- package/types/components/overlays/NewNotifications/NotificationView/types.d.ts +16 -0
- package/types/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.d.ts +9 -0
- package/types/components/overlays/NewNotifications/NotificationsContext/index.d.ts +1 -0
- package/types/components/overlays/NewNotifications/NotificationsContext/use-notifications.d.ts +8 -0
- package/types/components/overlays/NewNotifications/NotificationsList.d.ts +20 -0
- package/types/components/overlays/NewNotifications/hooks/index.d.ts +5 -0
- package/types/components/overlays/NewNotifications/hooks/types.d.ts +10 -0
- package/types/components/overlays/NewNotifications/hooks/use-notification-list-item.d.ts +9 -0
- package/types/components/overlays/NewNotifications/hooks/use-notifications-api.d.ts +1 -0
- package/types/components/overlays/NewNotifications/hooks/use-notifications-list.d.ts +12 -0
- package/types/components/overlays/NewNotifications/hooks/use-notifications-observer.d.ts +2 -0
- package/types/components/overlays/NewNotifications/index.d.ts +8 -0
- package/types/components/overlays/NewNotifications/types.d.ts +76 -0
- package/types/components/overlays/Toasts/Toast.d.ts +8 -0
- package/types/components/overlays/Toasts/index.d.ts +3 -0
- package/types/components/overlays/Toasts/types.d.ts +23 -0
- package/types/components/overlays/Toasts/use-toasts-api.d.ts +6 -0
- package/types/icons/Attention.d.ts +2 -0
- package/types/icons/Cross.d.ts +2 -0
- package/types/icons/Danger.d.ts +2 -0
- package/types/icons/Success.d.ts +2 -0
- package/types/icons/index.d.ts +4 -0
- package/types/index.d.ts +2 -0
- package/types/services/notification.d.ts +3 -0
- package/types/stories/components/StyledButton.d.ts +1 -1
- package/types/test/index.d.ts +1 -0
- package/types/test/render.d.ts +1 -0
- package/types/utils/react/get-display-name.d.ts +2 -0
- package/types/utils/react/index.d.ts +1 -0
@@ -1,7 +1,7 @@
|
|
1
1
|
/**
|
2
2
|
* @license MIT
|
3
3
|
* author: Cube Dev Team
|
4
|
-
* @cube-dev/ui-kit v0.
|
4
|
+
* @cube-dev/ui-kit v0.11.2
|
5
5
|
* Released under the MIT license.
|
6
6
|
*/
|
7
7
|
|
@@ -70,7 +70,7 @@ export function AlertDialogApiProvider(props) {
|
|
70
70
|
* ***Important*** it's commonly a bad practice when you open multiple dialogs in a row;
|
71
71
|
* that means this api will reject all dialogs when there is already open one
|
72
72
|
*
|
73
|
-
* @example
|
73
|
+
* @example calling in a side effect
|
74
74
|
* const alertDialogAPI = useAlertDialogAPI();
|
75
75
|
*
|
76
76
|
* useEffect(() => {
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/**
|
2
2
|
* @license MIT
|
3
3
|
* author: Cube Dev Team
|
4
|
-
* @cube-dev/ui-kit v0.
|
4
|
+
* @cube-dev/ui-kit v0.11.2
|
5
5
|
* Released under the MIT license.
|
6
6
|
*/
|
7
7
|
|
@@ -109,6 +109,7 @@ export const Dialog = forwardRef(function Dialog(props, ref) {
|
|
109
109
|
let formatMessage = useMessageFormatter(intlMessages);
|
110
110
|
let domRef = useDOMRef(ref);
|
111
111
|
let { dialogProps, titleProps } = useDialog(mergeProps(contextProps, props), domRef);
|
112
|
+
// console.log(dialogProps);
|
112
113
|
// If rendered in a popover or tray there won't be a visible dismiss button,
|
113
114
|
// so we render a hidden one for screen readers.
|
114
115
|
let dismissButton;
|
@@ -156,11 +157,7 @@ export const Dialog = forwardRef(function Dialog(props, ref) {
|
|
156
157
|
},
|
157
158
|
},
|
158
159
|
};
|
159
|
-
return (_jsx(FocusScope, { contain: true, restoreFocus: true, children: _jsxs(DialogElement, { "data-id": "Dialog", "data-qa": qa || 'Dialog', styles: styles, as: "section", ...dialogProps, mods: {
|
160
|
-
dismissable: isDismissable,
|
161
|
-
}, style: {
|
162
|
-
'--dialog-size': `${sizePxMap[size] || 288}px`,
|
163
|
-
}, "data-type": type, "data-size": size, ref: domRef, children: [dismissButton, _jsxs(SlotProvider, { slots: slots, children: [isDismissable && (_jsx(Button, { qa: "ModalCloseButton", type: "neutral", styles: CLOSE_BUTTON_STYLES, icon: closeIcon || _jsx(CloseOutlined, {}, void 0), label: formatMessage('dismiss'), onPress: () => onDismiss && onDismiss() }, void 0)), children] }, void 0)] }, void 0) }, void 0));
|
160
|
+
return (_jsx(FocusScope, { contain: true, restoreFocus: true, children: _jsxs(DialogElement, { ref: domRef, "data-id": "Dialog", "data-qa": qa || 'Dialog', styles: styles, as: "section", ...dialogProps, mods: { dismissable: isDismissable }, style: { '--dialog-size': `${sizePxMap[size] || 288}px` }, "data-type": type, "data-size": size, children: [dismissButton, _jsxs(SlotProvider, { slots: slots, children: [isDismissable && (_jsx(Button, { qa: "ModalCloseButton", type: "neutral", styles: CLOSE_BUTTON_STYLES, icon: closeIcon || _jsx(CloseOutlined, {}, void 0), label: formatMessage('dismiss'), onPress: () => onDismiss && onDismiss() }, void 0)), children] }, void 0)] }, void 0) }, void 0));
|
164
161
|
});
|
165
162
|
|
166
163
|
|
@@ -0,0 +1,46 @@
|
|
1
|
+
/**
|
2
|
+
* @license MIT
|
3
|
+
* author: Cube Dev Team
|
4
|
+
* @cube-dev/ui-kit v0.11.2
|
5
|
+
* Released under the MIT license.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
9
|
+
import { memo, useRef } from 'react';
|
10
|
+
import { useChainedCallback, useEvent, useTimer } from '../../../../_internal';
|
11
|
+
import { tasty } from '../../../../tasty';
|
12
|
+
import { NotificationView } from '../NotificationView';
|
13
|
+
import { useNotificationListItem, } from '../hooks';
|
14
|
+
const NotificationContainer = tasty({
|
15
|
+
styles: { boxShadow: '0 0.5x 2x #shadow', pointerEvents: 'auto' },
|
16
|
+
});
|
17
|
+
export const FloatingNotification = memo(function FloatingNotification(props) {
|
18
|
+
const { item, state, onRemoveNotification, id, isDisabledTimer, onDismissNotification, } = props;
|
19
|
+
const { props: notificationProps, key } = item;
|
20
|
+
const ref = useRef(null);
|
21
|
+
const onCloseEvent = useChainedCallback(() => onRemoveNotification(id), notificationProps.onClose);
|
22
|
+
const chainedOnDismiss = useChainedCallback(() => onDismissNotification(id), () => onRemoveNotification(id), notificationProps.onDismiss);
|
23
|
+
const onKeyDown = useEvent(({ key }) => {
|
24
|
+
if (notificationProps.isDismissible === false) {
|
25
|
+
return;
|
26
|
+
}
|
27
|
+
const closeKeys = ['Delete', 'Backspace', 'Escape'];
|
28
|
+
if (closeKeys.includes(key)) {
|
29
|
+
chainedOnDismiss();
|
30
|
+
}
|
31
|
+
});
|
32
|
+
const { itemProps } = useNotificationListItem({ key, ref, state });
|
33
|
+
const { timer } = useTimer({
|
34
|
+
callback: chainedOnDismiss,
|
35
|
+
delay: notificationProps.duration,
|
36
|
+
isDisabled: isDisabledTimer,
|
37
|
+
});
|
38
|
+
return (_jsx(NotificationContainer, { children: _jsx(NotificationView, { ref: ref, ...notificationProps, timer: timer, attributes: {
|
39
|
+
...itemProps,
|
40
|
+
onKeyDown,
|
41
|
+
role: 'status',
|
42
|
+
'aria-atomic': 'true',
|
43
|
+
}, onDismiss: chainedOnDismiss, onClose: onCloseEvent, qa: "floating-notification" }, void 0) }, void 0));
|
44
|
+
});
|
45
|
+
|
46
|
+
|
@@ -0,0 +1,63 @@
|
|
1
|
+
/**
|
2
|
+
* @license MIT
|
3
|
+
* author: Cube Dev Team
|
4
|
+
* @cube-dev/ui-kit v0.11.2
|
5
|
+
* Released under the MIT license.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
9
|
+
import { useRef } from 'react';
|
10
|
+
import { TransitionGroup } from 'react-transition-group';
|
11
|
+
import { Item } from '@react-stately/collections';
|
12
|
+
import { useHover } from '@react-aria/interactions';
|
13
|
+
import { useFocusRing, focusSafely } from '@react-aria/focus';
|
14
|
+
import { tasty } from '../../../../tasty';
|
15
|
+
import { TransitionComponent } from './TransitionComponent';
|
16
|
+
import { FloatingNotification } from './FloatingNotification';
|
17
|
+
import { useNotificationsList } from '../hooks';
|
18
|
+
import { mergeProps } from '../../../../utils/react';
|
19
|
+
import { useEvent } from '../../../../_internal';
|
20
|
+
const NotificationsContainer = tasty({
|
21
|
+
styles: {
|
22
|
+
boxSizing: 'border-box',
|
23
|
+
position: 'fixed',
|
24
|
+
bottom: 'env(safe-area-inset-bottom, 0)',
|
25
|
+
right: 'env(safe-area-inset-right, 0)',
|
26
|
+
display: 'flex',
|
27
|
+
flexDirection: 'column-reverse',
|
28
|
+
width: 'auto 100% 45x',
|
29
|
+
height: '100vh max',
|
30
|
+
padding: '2x',
|
31
|
+
gap: '1x',
|
32
|
+
/* to be sure that we're over the legacy modal */
|
33
|
+
zIndex: '1001',
|
34
|
+
overflow: 'hidden',
|
35
|
+
isolation: 'isolate',
|
36
|
+
pointerEvents: 'none',
|
37
|
+
'@supports (-webkit-touch-callout: none)': {
|
38
|
+
height: '-webkit-fill-available max',
|
39
|
+
},
|
40
|
+
},
|
41
|
+
});
|
42
|
+
export function NotificationsBar(props) {
|
43
|
+
const { items, children, onRemoveNotification, onDismissNotification } = props;
|
44
|
+
const ref = useRef(null);
|
45
|
+
const { listProps, state } = useNotificationsList({ items, children, ref });
|
46
|
+
const { hoverProps, isHovered } = useHover({});
|
47
|
+
const { focusProps, isFocusVisible } = useFocusRing({ within: true });
|
48
|
+
const moveFocus = useEvent((key) => {
|
49
|
+
var _a, _b, _c;
|
50
|
+
const nextKey = (_b = (_a = state.collection.getKeyBefore(key.toString())) !== null && _a !== void 0 ? _a : state.collection.getKeyAfter(key.toString())) !== null && _b !== void 0 ? _b : state.collection.getLastKey();
|
51
|
+
const elementToFocus = (_c = ref.current) === null || _c === void 0 ? void 0 : _c.querySelector(`[data-id="${nextKey}"]`);
|
52
|
+
if (elementToFocus) {
|
53
|
+
focusSafely(elementToFocus);
|
54
|
+
}
|
55
|
+
});
|
56
|
+
return (_jsx(NotificationsContainer, { ref: ref, "data-qa": "notifications-bar", role: "region", "aria-live": "polite", ...mergeProps(listProps, hoverProps, focusProps), children: _jsx(TransitionGroup, { component: null, enter: true, exit: true, children: [...state.collection].reverse().map((notification) => (_jsx(TransitionComponent, { children: _jsx(FloatingNotification, { isDisabledTimer: isHovered || isFocusVisible, id: notification.props.id, item: notification, state: state, onRemoveNotification: (key) => {
|
57
|
+
onRemoveNotification(key);
|
58
|
+
moveFocus(key);
|
59
|
+
}, onDismissNotification: onDismissNotification }, void 0) }, notification.props.id))) }, void 0) }, void 0));
|
60
|
+
}
|
61
|
+
NotificationsBar.Item = Item;
|
62
|
+
|
63
|
+
|
@@ -0,0 +1,54 @@
|
|
1
|
+
/**
|
2
|
+
* @license MIT
|
3
|
+
* author: Cube Dev Team
|
4
|
+
* @cube-dev/ui-kit v0.11.2
|
5
|
+
* Released under the MIT license.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
9
|
+
import { useCallback, useRef } from 'react';
|
10
|
+
import { CSSTransition } from 'react-transition-group';
|
11
|
+
import styled from 'styled-components';
|
12
|
+
const CSS_TRANSITION_CLASS_NAME = 'cube-notifications-css-transition';
|
13
|
+
const TRANSITION_TIMEOUT = 250;
|
14
|
+
export function TransitionComponent(props) {
|
15
|
+
const { children, ...transitionProps } = props;
|
16
|
+
const notificationRef = useRef(null);
|
17
|
+
const calculateNotificationSize = useCallback(() => {
|
18
|
+
if (notificationRef.current) {
|
19
|
+
notificationRef.current.style.setProperty('--__notification-size__', `${notificationRef.current.scrollHeight}px`);
|
20
|
+
}
|
21
|
+
}, []);
|
22
|
+
return (_jsx(CSSTransition, { unmountOnExit: true, mountOnEnter: true, timeout: TRANSITION_TIMEOUT, classNames: CSS_TRANSITION_CLASS_NAME, onEnter: calculateNotificationSize, onExit: calculateNotificationSize, ...transitionProps, children: _jsx(Transition, { ref: notificationRef, children: children }, void 0) }, void 0));
|
23
|
+
}
|
24
|
+
const Transition = styled.div `
|
25
|
+
transition-property: height, opacity, margin-top, margin-bottom;
|
26
|
+
transition-duration: ${TRANSITION_TIMEOUT}ms;
|
27
|
+
transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
|
28
|
+
|
29
|
+
&.${CSS_TRANSITION_CLASS_NAME} {
|
30
|
+
&-enter {
|
31
|
+
height: 0;
|
32
|
+
opacity: 0;
|
33
|
+
will-change: height, opacity;
|
34
|
+
}
|
35
|
+
&-enter-active {
|
36
|
+
height: var(--__notification-size__);
|
37
|
+
opacity: 1;
|
38
|
+
will-change: height, opacity;
|
39
|
+
}
|
40
|
+
&-exit {
|
41
|
+
height: var(--__notification-size__);
|
42
|
+
opacity: 1;
|
43
|
+
will-change: height, opacity, margin-top;
|
44
|
+
}
|
45
|
+
&-exit-active {
|
46
|
+
margin-top: -8px;
|
47
|
+
height: 0;
|
48
|
+
opacity: 0;
|
49
|
+
will-change: height, opacity;
|
50
|
+
}
|
51
|
+
}
|
52
|
+
`;
|
53
|
+
|
54
|
+
|
@@ -0,0 +1,38 @@
|
|
1
|
+
/**
|
2
|
+
* @license MIT
|
3
|
+
* author: Cube Dev Team
|
4
|
+
* @cube-dev/ui-kit v0.11.2
|
5
|
+
* Released under the MIT license.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
9
|
+
import { VisuallyHidden } from '@react-aria/visually-hidden';
|
10
|
+
import { Dialog, DialogTrigger, } from '../../Dialog';
|
11
|
+
import { tasty } from '../../../../tasty';
|
12
|
+
import { Flex } from '../../../layout/Flex';
|
13
|
+
import { Title } from '../../../content/Title';
|
14
|
+
import { ClearSlots } from '../../../../utils/react';
|
15
|
+
import { useNotificationsObserver } from '../hooks';
|
16
|
+
export function NotificationsDialogTrigger(props) {
|
17
|
+
const { onCloseNotificationInBar, ...dialogTriggerProps } = props;
|
18
|
+
useNotificationsObserver((args) => onCloseNotificationInBar === null || onCloseNotificationInBar === void 0 ? void 0 : onCloseNotificationInBar(args));
|
19
|
+
return _jsx(DialogTrigger, { ...dialogTriggerProps, type: "popover" }, void 0);
|
20
|
+
}
|
21
|
+
const StyledDialog = tasty(Dialog, { height: 'auto calc(100vh - 12x)' });
|
22
|
+
const StyledDialogContent = tasty(Flex, {
|
23
|
+
styles: {
|
24
|
+
flow: 'column',
|
25
|
+
placeItems: 'start start',
|
26
|
+
styledScrollbar: true,
|
27
|
+
height: '100%',
|
28
|
+
border: '1bw solid #border',
|
29
|
+
radius: '0.5x',
|
30
|
+
overflow: 'auto',
|
31
|
+
},
|
32
|
+
});
|
33
|
+
export function NotificationsDialog(props) {
|
34
|
+
const { children, title = 'Notifications', ...dialogProps } = props;
|
35
|
+
return (_jsxs(StyledDialog, { ...dialogProps, children: [_jsx(VisuallyHidden, { children: _jsx(Title, { children: title }, void 0) }, void 0), _jsx(StyledDialogContent, { children: _jsx(ClearSlots, { children: children }, void 0) }, void 0)] }, void 0));
|
36
|
+
}
|
37
|
+
|
38
|
+
|
@@ -0,0 +1,34 @@
|
|
1
|
+
/**
|
2
|
+
* @license MIT
|
3
|
+
* author: Cube Dev Team
|
4
|
+
* @cube-dev/ui-kit v0.11.2
|
5
|
+
* Released under the MIT license.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
9
|
+
import { useEffect } from 'react';
|
10
|
+
import { useId } from '@react-aria/utils';
|
11
|
+
import { useNotificationsApi } from './hooks';
|
12
|
+
export function Notification(props) {
|
13
|
+
const { id: propsId } = props;
|
14
|
+
const { notify, update } = useNotificationsApi();
|
15
|
+
const defaultId = useId();
|
16
|
+
const id = propsId !== null && propsId !== void 0 ? propsId : defaultId;
|
17
|
+
useEffect(() => {
|
18
|
+
const { remove } = notify({ id, ...props });
|
19
|
+
return remove;
|
20
|
+
}, [id]);
|
21
|
+
useEffect(() => update(id, props));
|
22
|
+
return null;
|
23
|
+
}
|
24
|
+
Notification.Success = function NotificationSuccess(props) {
|
25
|
+
return _jsx(Notification, { type: "success", ...props }, void 0);
|
26
|
+
};
|
27
|
+
Notification.Danger = function NotificationDanger(props) {
|
28
|
+
return _jsx(Notification, { type: "danger", ...props }, void 0);
|
29
|
+
};
|
30
|
+
Notification.Attention = function NotificationAttention(props) {
|
31
|
+
return _jsx(Notification, { type: "attention", ...props }, void 0);
|
32
|
+
};
|
33
|
+
|
34
|
+
|
@@ -0,0 +1,28 @@
|
|
1
|
+
/**
|
2
|
+
* @license MIT
|
3
|
+
* author: Cube Dev Team
|
4
|
+
* @cube-dev/ui-kit v0.11.2
|
5
|
+
* Released under the MIT license.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
9
|
+
import { tasty } from '../../../../tasty';
|
10
|
+
import { Button } from '../../../actions';
|
11
|
+
import { useEvent } from '../../../../_internal';
|
12
|
+
import { useNotificationContext } from './NotificationProvider';
|
13
|
+
const Action = tasty(Button, {
|
14
|
+
color: { '': '#purple-text', primary: '#purple-text', secondary: '#dark-03' },
|
15
|
+
});
|
16
|
+
export function NotificationAction(props) {
|
17
|
+
const { children, onPress, type = 'primary', disableCloseOnAction = type !== 'primary', ...buttonProps } = props;
|
18
|
+
const { onClose } = useNotificationContext();
|
19
|
+
const onPressEvent = useEvent((e) => {
|
20
|
+
onPress === null || onPress === void 0 ? void 0 : onPress(e);
|
21
|
+
if (!disableCloseOnAction) {
|
22
|
+
onClose === null || onClose === void 0 ? void 0 : onClose();
|
23
|
+
}
|
24
|
+
});
|
25
|
+
return (_jsx(Action, { ...buttonProps, onPress: onPressEvent, type: "link", size: "small", mods: { primary: type === 'primary', secondary: type === 'secondary' }, children: children }, void 0));
|
26
|
+
}
|
27
|
+
|
28
|
+
|
@@ -0,0 +1,37 @@
|
|
1
|
+
/**
|
2
|
+
* @license MIT
|
3
|
+
* author: Cube Dev Team
|
4
|
+
* @cube-dev/ui-kit v0.11.2
|
5
|
+
* Released under the MIT license.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
9
|
+
import { memo } from 'react';
|
10
|
+
import { Button } from '../../../actions';
|
11
|
+
import { tasty } from '../../../../tasty';
|
12
|
+
import { Cross } from '../../../../icons';
|
13
|
+
const CloseButton = tasty(Button, {
|
14
|
+
styles: {
|
15
|
+
position: 'absolute',
|
16
|
+
right: '-0.75x',
|
17
|
+
top: '-0.75x',
|
18
|
+
display: 'flex',
|
19
|
+
placeItems: 'center',
|
20
|
+
padding: '0.625x',
|
21
|
+
width: '3x',
|
22
|
+
height: '3x',
|
23
|
+
fill: '#white',
|
24
|
+
shadow: '0 0.5x 2x #shadow',
|
25
|
+
color: { '': '#dark-02', hovered: '#dark-03', pressed: '#dark-02' },
|
26
|
+
borderRadius: '50%',
|
27
|
+
visibility: { '': 'hidden', show: 'visible' },
|
28
|
+
opacity: { '': '0', show: '1' },
|
29
|
+
transition: 'opacity, visibility 0.2s ease-in-out',
|
30
|
+
},
|
31
|
+
});
|
32
|
+
export const NotificationCloseButton = memo(function NotificationCloseButton(props) {
|
33
|
+
const { onPress, isHovered, isFocused } = props;
|
34
|
+
return (_jsx(CloseButton, { qa: "notification-close-button", type: "neutral", mods: { show: isHovered || isFocused }, onPress: onPress, icon: _jsx(Cross, {}, void 0), label: "Close the notification" }, void 0));
|
35
|
+
});
|
36
|
+
|
37
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
/**
|
2
|
+
* @license MIT
|
3
|
+
* author: Cube Dev Team
|
4
|
+
* @cube-dev/ui-kit v0.11.2
|
5
|
+
* Released under the MIT license.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
9
|
+
import { memo } from 'react';
|
10
|
+
import { tasty } from '../../../../tasty';
|
11
|
+
import { Paragraph } from '../../../content/Paragraph';
|
12
|
+
const Description = tasty(Paragraph, {
|
13
|
+
as: 'p',
|
14
|
+
styles: {
|
15
|
+
gridArea: 'description',
|
16
|
+
display: '-webkit-box',
|
17
|
+
'-webkit-line-clamp': 3,
|
18
|
+
'-webkit-box-orient': 'vertical',
|
19
|
+
overflow: 'hidden',
|
20
|
+
},
|
21
|
+
});
|
22
|
+
export const NotificationDescription = memo(function NotificationDescription(props) {
|
23
|
+
const { description, ...descriptionProps } = props;
|
24
|
+
return (_jsx(Description, { preset: "t4m", ...descriptionProps, children: description }, void 0));
|
25
|
+
});
|
26
|
+
|
27
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
/**
|
2
|
+
* @license MIT
|
3
|
+
* author: Cube Dev Team
|
4
|
+
* @cube-dev/ui-kit v0.11.2
|
5
|
+
* Released under the MIT license.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
9
|
+
import React, { memo } from 'react';
|
10
|
+
import { isElement } from 'react-is';
|
11
|
+
import flatten from 'react-keyed-flatten-children';
|
12
|
+
import { tasty } from '../../../../tasty';
|
13
|
+
import { ButtonGroup } from '../../../actions';
|
14
|
+
const FooterArea = tasty(ButtonGroup, {
|
15
|
+
gridArea: 'footer',
|
16
|
+
gap: '2x',
|
17
|
+
styles: {
|
18
|
+
'&:not(:empty)': {
|
19
|
+
margin: { '': '0.5x top', 'has-description': '1x top' },
|
20
|
+
},
|
21
|
+
},
|
22
|
+
});
|
23
|
+
export const NotificationFooter = memo(function NotificationFooter(props) {
|
24
|
+
const { actions, onClose, onDismiss, hasDescription } = props;
|
25
|
+
return (_jsx(FooterArea, { mods: { 'has-description': hasDescription }, children: flatten(typeof actions === 'function'
|
26
|
+
? actions({ onClose, onDismiss })
|
27
|
+
: actions)
|
28
|
+
.filter((action) => isElement(action))
|
29
|
+
.map((action, index) => {
|
30
|
+
var _a;
|
31
|
+
const { props } = action;
|
32
|
+
const defaultType = index === 0 ? 'primary' : 'secondary';
|
33
|
+
return React.cloneElement(action, {
|
34
|
+
...props,
|
35
|
+
type: (_a = props.type) !== null && _a !== void 0 ? _a : defaultType,
|
36
|
+
}, props.children);
|
37
|
+
}) }, void 0));
|
38
|
+
});
|
39
|
+
|
40
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
/**
|
2
|
+
* @license MIT
|
3
|
+
* author: Cube Dev Team
|
4
|
+
* @cube-dev/ui-kit v0.11.2
|
5
|
+
* Released under the MIT license.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
9
|
+
import { memo } from 'react';
|
10
|
+
import { Title } from '../../../content/Title';
|
11
|
+
import { tasty } from '../../../../tasty';
|
12
|
+
const Header = tasty(Title, {
|
13
|
+
as: 'div',
|
14
|
+
preset: 'h6',
|
15
|
+
styles: {
|
16
|
+
gridArea: 'header',
|
17
|
+
'&:not(:empty)': {
|
18
|
+
margin: '0.25x 0 0.5x',
|
19
|
+
},
|
20
|
+
},
|
21
|
+
});
|
22
|
+
export const NotificationHeader = memo(function NotificationHeader(props) {
|
23
|
+
const { header, ...headerProps } = props;
|
24
|
+
return _jsx(Header, { ...headerProps, children: header }, void 0);
|
25
|
+
});
|
26
|
+
|
27
|
+
|