react-miui 0.32.1 → 0.32.3
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/.claude/settings.local.json +8 -0
- package/CHANGELOG.md +23 -0
- package/CLAUDE.md +67 -0
- package/dist/components/form/Checkbox.d.ts.map +1 -1
- package/dist/components/form/Checkbox.js.map +1 -1
- package/dist/components/form/ColorPicker.d.ts.map +1 -1
- package/dist/components/form/ColorPicker.js.map +1 -1
- package/dist/components/form/Suggestions.d.ts +1 -1
- package/dist/components/form/Suggestions.d.ts.map +1 -1
- package/dist/components/form/Toggle.d.ts.map +1 -1
- package/dist/components/form/Toggle.js.map +1 -1
- package/dist/components/form/choice/Choice.d.ts +1 -1
- package/dist/components/form/choice/Choice.d.ts.map +1 -1
- package/dist/components/form/choice/Choice.js +1 -1
- package/dist/components/form/choice/Choice.js.map +1 -1
- package/dist/components/form/choice/ChoiceItem.d.ts.map +1 -1
- package/dist/components/form/choice/ChoiceItem.js +3 -2
- package/dist/components/form/choice/ChoiceItem.js.map +1 -1
- package/dist/components/form/input/Input.d.ts +5 -2
- package/dist/components/form/input/Input.d.ts.map +1 -1
- package/dist/components/form/input/Input.js +18 -9
- package/dist/components/form/input/Input.js.map +1 -1
- package/dist/components/form/input/Input.styled.d.ts.map +1 -1
- package/dist/components/form/input/Input.styled.js.map +1 -1
- package/dist/components/form/textarea/TextArea.styled.d.ts.map +1 -1
- package/dist/components/form/textarea/TextArea.styled.js +1 -1
- package/dist/components/form/textarea/TextArea.styled.js.map +1 -1
- package/dist/components/icons/Back.d.ts +1 -1
- package/dist/components/icons/Back.d.ts.map +1 -1
- package/dist/components/icons/Back.js +38 -7
- package/dist/components/icons/Back.js.map +1 -1
- package/dist/components/icons/Battery.d.ts +1 -1
- package/dist/components/icons/Battery.d.ts.map +1 -1
- package/dist/components/icons/Battery.js +38 -7
- package/dist/components/icons/Battery.js.map +1 -1
- package/dist/components/icons/Checkmark.d.ts +1 -1
- package/dist/components/icons/Checkmark.d.ts.map +1 -1
- package/dist/components/icons/Checkmark.js +38 -7
- package/dist/components/icons/Checkmark.js.map +1 -1
- package/dist/components/icons/Config.d.ts +1 -1
- package/dist/components/icons/Config.d.ts.map +1 -1
- package/dist/components/icons/Config.js +38 -7
- package/dist/components/icons/Config.js.map +1 -1
- package/dist/components/icons/Dots.d.ts +1 -1
- package/dist/components/icons/Dots.d.ts.map +1 -1
- package/dist/components/icons/Dots.js +38 -7
- package/dist/components/icons/Dots.js.map +1 -1
- package/dist/components/icons/Forward.d.ts +1 -1
- package/dist/components/icons/Forward.d.ts.map +1 -1
- package/dist/components/icons/Forward.js +38 -7
- package/dist/components/icons/Forward.js.map +1 -1
- package/dist/components/icons/Heart.d.ts +1 -1
- package/dist/components/icons/Heart.d.ts.map +1 -1
- package/dist/components/icons/Heart.js +38 -7
- package/dist/components/icons/Heart.js.map +1 -1
- package/dist/components/icons/Icon.d.ts +1 -1
- package/dist/components/icons/Icon.d.ts.map +1 -1
- package/dist/components/icons/Icon.js +43 -12
- package/dist/components/icons/Icon.js.map +1 -1
- package/dist/components/icons/Search.d.ts +1 -1
- package/dist/components/icons/Search.d.ts.map +1 -1
- package/dist/components/icons/Search.js +38 -7
- package/dist/components/icons/Search.js.map +1 -1
- package/dist/components/icons/Trash.d.ts +1 -1
- package/dist/components/icons/Trash.d.ts.map +1 -1
- package/dist/components/icons/Trash.js +38 -7
- package/dist/components/icons/Trash.js.map +1 -1
- package/dist/components/layout/header/Header.d.ts.map +1 -1
- package/dist/components/layout/header/Header.js.map +1 -1
- package/dist/components/layout/header/HeaderIconAction.d.ts +3 -2
- package/dist/components/layout/header/HeaderIconAction.d.ts.map +1 -1
- package/dist/components/layout/header/HeaderIconAction.js +45 -11
- package/dist/components/layout/header/HeaderIconAction.js.map +1 -1
- package/dist/components/layout/header/HeaderIconAction.styled.d.ts +87 -2
- package/dist/components/layout/header/HeaderIconAction.styled.d.ts.map +1 -1
- package/dist/components/layout/header/HeaderIconAction.styled.js +4 -3
- package/dist/components/layout/header/HeaderIconAction.styled.js.map +1 -1
- package/dist/components/layout/header/StickyHeader.d.ts.map +1 -1
- package/dist/components/layout/header/StickyHeader.js.map +1 -1
- package/dist/components/layout/list/Header.d.ts +96 -93
- package/dist/components/layout/list/Header.d.ts.map +1 -1
- package/dist/components/layout/list/Header.js +43 -9
- package/dist/components/layout/list/Header.js.map +1 -1
- package/dist/components/layout/list/Item.d.ts +273 -7
- package/dist/components/layout/list/Item.d.ts.map +1 -1
- package/dist/components/layout/list/Item.js +52 -17
- package/dist/components/layout/list/Item.js.map +1 -1
- package/dist/components/layout/list/Item.styled.d.ts +1 -1
- package/dist/components/layout/list/Label.d.ts.map +1 -1
- package/dist/components/layout/list/Label.js.map +1 -1
- package/dist/components/layout/list/List.d.ts +547 -94
- package/dist/components/layout/list/List.d.ts.map +1 -1
- package/dist/components/layout/list/List.js +46 -10
- package/dist/components/layout/list/List.js.map +1 -1
- package/dist/components/layout/section/Section.d.ts.map +1 -1
- package/dist/components/layout/section/Section.js.map +1 -1
- package/dist/components/ui/action/Action.d.ts +5 -3
- package/dist/components/ui/action/Action.d.ts.map +1 -1
- package/dist/components/ui/action/Action.js +46 -10
- package/dist/components/ui/action/Action.js.map +1 -1
- package/dist/components/ui/drawer/Drawer.d.ts.map +1 -1
- package/dist/components/ui/drawer/Drawer.js.map +1 -1
- package/dist/components/ui/keyValue/KeyValue.d.ts +2 -2
- package/dist/components/ui/keyValue/KeyValue.d.ts.map +1 -1
- package/dist/components/ui/keyValue/KeyValue.js +2 -2
- package/dist/components/ui/keyValue/KeyValue.js.map +1 -1
- package/dist/components/ui/loader/CoveringLoader.d.ts.map +1 -1
- package/dist/components/ui/loader/CoveringLoader.js +1 -1
- package/dist/components/ui/loader/CoveringLoader.js.map +1 -1
- package/dist/components/ui/loader/FullLoader.d.ts +1 -1
- package/dist/components/ui/loader/FullLoader.d.ts.map +1 -1
- package/dist/components/ui/loader/FullLoader.js +50 -6
- package/dist/components/ui/loader/FullLoader.js.map +1 -1
- package/dist/components/ui/loader/Loader.d.ts +2 -1
- package/dist/components/ui/loader/Loader.d.ts.map +1 -1
- package/dist/components/ui/loader/Loader.js +41 -9
- package/dist/components/ui/loader/Loader.js.map +1 -1
- package/dist/components/ui/loader/Loading.d.ts.map +1 -1
- package/dist/components/ui/loader/Loading.js +2 -1
- package/dist/components/ui/loader/Loading.js.map +1 -1
- package/dist/components/ui/loader/PopLoader.d.ts +2 -3
- package/dist/components/ui/loader/PopLoader.d.ts.map +1 -1
- package/dist/components/ui/loader/PopLoader.js +40 -8
- package/dist/components/ui/loader/PopLoader.js.map +1 -1
- package/dist/components/ui/message/Message.d.ts.map +1 -1
- package/dist/components/ui/message/Message.js.map +1 -1
- package/dist/components/ui/message/Message.styled.d.ts +1 -1
- package/dist/components/ui/modal/Modal.d.ts +92 -6
- package/dist/components/ui/modal/Modal.d.ts.map +1 -1
- package/dist/components/ui/modal/Modal.js +19 -7
- package/dist/components/ui/modal/Modal.js.map +1 -1
- package/dist/components/ui/modal/Modal.styled.d.ts.map +1 -1
- package/dist/components/ui/modal/Modal.styled.js +1 -0
- package/dist/components/ui/modal/Modal.styled.js.map +1 -1
- package/dist/components/ui/modal/ModalButtons.styled.d.ts.map +1 -1
- package/dist/components/ui/modal/ModalButtons.styled.js.map +1 -1
- package/dist/components/ui/pop/OnButtonClick.d.ts.map +1 -1
- package/dist/components/ui/pop/OnButtonClick.js +3 -2
- package/dist/components/ui/pop/OnButtonClick.js.map +1 -1
- package/dist/components/ui/pop/Pop.d.ts +3 -1
- package/dist/components/ui/pop/Pop.d.ts.map +1 -1
- package/dist/components/ui/pop/Pop.js +7 -2
- package/dist/components/ui/pop/Pop.js.map +1 -1
- package/dist/components/ui/pop/PopOption.d.ts +4 -2
- package/dist/components/ui/pop/PopOption.d.ts.map +1 -1
- package/dist/components/ui/pop/PopOption.js +44 -8
- package/dist/components/ui/pop/PopOption.js.map +1 -1
- package/dist/components/ui/progress/Progress.d.ts.map +1 -1
- package/dist/components/ui/progress/Progress.js.map +1 -1
- package/dist/components/ui/progress/Progress.styled.js +1 -1
- package/dist/components/ui/stats/Stats.d.ts.map +1 -1
- package/dist/components/ui/tabs/Item.d.ts.map +1 -1
- package/dist/components/ui/tabs/Item.js +3 -2
- package/dist/components/ui/tabs/Item.js.map +1 -1
- package/dist/components/ui/tabs/Item.styled.d.ts.map +1 -1
- package/dist/components/ui/tabs/Item.styled.js +2 -0
- package/dist/components/ui/tabs/Item.styled.js.map +1 -1
- package/dist/components/ui/tabs/Selector.d.ts +2 -1
- package/dist/components/ui/tabs/Selector.d.ts.map +1 -1
- package/dist/components/ui/tabs/Selector.js +60 -4
- package/dist/components/ui/tabs/Selector.js.map +1 -1
- package/dist/components/ui/tabs/Selector.styled.d.ts +9 -1
- package/dist/components/ui/tabs/Selector.styled.d.ts.map +1 -1
- package/dist/components/ui/tabs/Selector.styled.js +68 -2
- package/dist/components/ui/tabs/Selector.styled.js.map +1 -1
- package/dist/components/ui/toaster/Notification.d.ts.map +1 -1
- package/dist/components/ui/toaster/Notification.js +4 -2
- package/dist/components/ui/toaster/Notification.js.map +1 -1
- package/dist/components/utils/HandleEsc.d.ts.map +1 -1
- package/dist/components/utils/HandleEsc.js +5 -5
- package/dist/components/utils/HandleEsc.js.map +1 -1
- package/dist/utils/useTailSpin.js +1 -1
- package/dist/utils/useTailSpin.js.map +1 -1
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/index.Pop.html +7 -7
- package/docs/classes/index.ToasterProvider.html +4 -4
- package/docs/documents/Test.html +2 -2
- package/docs/enums/index.ICON.html +2 -2
- package/docs/functions/index.Action.html +6 -25
- package/docs/functions/index.Button.html +3 -3
- package/docs/functions/index.Card.html +2 -2
- package/docs/functions/index.Checkbox.html +3 -3
- package/docs/functions/index.Choice.html +2 -2
- package/docs/functions/index.ColorPicker.html +3 -3
- package/docs/functions/index.CoveringLoader.html +3 -3
- package/docs/functions/index.DirectionPad.html +2 -2
- package/docs/functions/index.Drawer.html +2 -2
- package/docs/functions/index.EqualActions.html +2 -2
- package/docs/functions/index.FullLoader.html +6 -25
- package/docs/functions/index.Gap.html +2 -2
- package/docs/functions/index.HandleEsc.html +3 -3
- package/docs/functions/index.Header.html +3 -3
- package/docs/functions/index.HeaderIconAction.html +6 -25
- package/docs/functions/index.Icon-1.html +5 -24
- package/docs/functions/index.If.html +3 -3
- package/docs/functions/index.Input.html +1 -1
- package/docs/functions/index.KeyValue.html +2 -2
- package/docs/functions/index.Label.html +2 -2
- package/docs/functions/index.Line.html +3 -3
- package/docs/functions/index.List.html +5 -33
- package/docs/functions/index.Loader.html +6 -25
- package/docs/functions/index.Loading.html +3 -3
- package/docs/functions/index.Message.html +3 -3
- package/docs/functions/index.Modal.html +5 -24
- package/docs/functions/index.ModalButtons.html +3 -3
- package/docs/functions/index.PopLoader.html +6 -25
- package/docs/functions/index.PopOption.html +5 -24
- package/docs/functions/index.Progress.html +2 -2
- package/docs/functions/index.SearchContainer.html +2 -2
- package/docs/functions/index.Section.html +4 -4
- package/docs/functions/index.Select.html +2 -2
- package/docs/functions/index.Selector.html +2 -2
- package/docs/functions/index.Spacer.html +2 -2
- package/docs/functions/index.Stats.html +2 -2
- package/docs/functions/index.StickyHeader.html +4 -4
- package/docs/functions/index.Table.html +2 -2
- package/docs/functions/index.TextArea.html +2 -2
- package/docs/functions/index.Toggle.html +3 -3
- package/docs/functions/index.ToolButton.html +3 -3
- package/docs/functions/index.borderPxToRem.html +1 -1
- package/docs/functions/index.createTheme.html +1 -1
- package/docs/functions/index.css.html +1 -1
- package/docs/functions/index.dimensionsPxToRem.html +1 -1
- package/docs/functions/index.fontPxToRem.html +1 -1
- package/docs/functions/index.getCssText.html +1 -1
- package/docs/functions/index.globalCss.html +2 -2
- package/docs/functions/index.injectGlobalStyles.html +1 -1
- package/docs/functions/index.keyframes.html +1 -1
- package/docs/functions/index.pxToRem.html +1 -1
- package/docs/functions/index.styled.html +1 -1
- package/docs/functions/index.useToaster.html +1 -1
- package/docs/index.html +2 -2
- package/docs/interfaces/index.IconProps.html +2 -2
- package/docs/interfaces/index.InputCustomProps.html +2 -2
- package/docs/interfaces/index.LoaderProps.html +7 -6
- package/docs/interfaces/index.StickyHeaderProps.html +4 -4
- package/docs/modules/index.html +1 -1
- package/docs/modules.html +1 -1
- package/docs/types/index.ActionProps.html +1 -1
- package/docs/types/index.CardProps.html +1 -1
- package/docs/types/index.CheckboxProps.html +2 -2
- package/docs/types/index.ChoiceProps.html +1 -1
- package/docs/types/index.ColorPickerProps.html +1 -1
- package/docs/types/index.DirectionPadProps.html +1 -1
- package/docs/types/index.DrawerProps.html +1 -1
- package/docs/types/index.EqualActionsProps.html +1 -1
- package/docs/types/index.HeaderProps.html +1 -1
- package/docs/types/index.InputProps.html +1 -1
- package/docs/types/index.KeyValueProps.html +1 -1
- package/docs/types/index.LabelProps.html +1 -1
- package/docs/types/index.OverwriteProps.html +1 -1
- package/docs/types/index.ProgressProps.html +2 -2
- package/docs/types/index.SelectProps.html +1 -1
- package/docs/types/index.SelectorProps.html +1 -1
- package/docs/types/index.Stat.html +1 -1
- package/docs/types/index.StatsProps.html +1 -1
- package/docs/types/index.TextAreaProps.html +1 -1
- package/docs/types/index.ThemeCSS.html +1 -1
- package/docs/types/index.ToggleProps.html +2 -2
- package/docs/variables/index.ActionBadgeSelector.html +1 -0
- package/docs/variables/index.ActionCircleSelector.html +1 -0
- package/docs/variables/index.CheckboxCheckmarkWrapperSelector.html +1 -1
- package/docs/variables/index.CheckboxTextLabelSelector.html +1 -1
- package/docs/variables/index.ChoiceItemSelector.html +1 -1
- package/docs/variables/index.ColorPickerColorDisplaySelector.html +1 -1
- package/docs/variables/index.DirectionPadButtonDotSelector.html +1 -1
- package/docs/variables/index.DirectionPadButtonSelector.html +1 -1
- package/docs/variables/index.DirectionPadLineSelector.html +1 -1
- package/docs/variables/index.DirectionPadMiddleSelector.html +1 -1
- package/docs/variables/index.DrawerContentSelector.html +1 -1
- package/docs/variables/index.HeaderAfterSelector.html +1 -1
- package/docs/variables/index.HeaderBeforeSelector.html +1 -1
- package/docs/variables/index.HeaderContentsSelector.html +1 -1
- package/docs/variables/index.HeaderIconActionIconSelector.html +1 -0
- package/docs/variables/index.InputInputSelector.html +1 -0
- package/docs/variables/index.InputPrefixSelector.html +1 -0
- package/docs/variables/index.InputSuffixSelector.html +1 -0
- package/docs/variables/index.KeyValueIconSelector.html +1 -1
- package/docs/variables/index.KeyValueItemSelector.html +1 -1
- package/docs/variables/index.KeyValueKeySelector.html +1 -1
- package/docs/variables/index.KeyValuePairSelector.html +1 -1
- package/docs/variables/index.KeyValueValueSelector.html +1 -1
- package/docs/variables/index.LabelTextSelector.html +1 -1
- package/docs/variables/index.ListItemInnerContainerClassNameSelector.html +1 -0
- package/docs/variables/index.ModalContainerSelector.html +1 -0
- package/docs/variables/index.ModalRemovePaddingSelector.html +1 -0
- package/docs/variables/index.ModalTitleSelector.html +1 -0
- package/docs/variables/index.PopListSelector.html +1 -0
- package/docs/variables/index.PopOptionButtonSelector.html +1 -0
- package/docs/variables/index.PopOptionIconSelector.html +1 -0
- package/docs/variables/index.PopOverlaySelector.html +1 -0
- package/docs/variables/index.ProgressBackgroundSelector.html +1 -1
- package/docs/variables/index.ProgressValueSelector.html +1 -1
- package/docs/variables/index.SelectorItemSelector.html +1 -1
- package/docs/variables/index.StatsItemSelector.html +1 -1
- package/docs/variables/index.StatsLabelSelector.html +1 -1
- package/docs/variables/index.StatsSeparatorSelector.html +1 -1
- package/docs/variables/index.StatsValueSelector.html +1 -1
- package/docs/variables/index.ToggleStyledToggleSelector.html +1 -1
- package/docs/variables/index.config.html +1 -1
- package/docs/variables/index.cssReset.html +2 -2
- package/docs/variables/index.darkTheme.html +1 -1
- package/docs/variables/index.miuiScrollbars.html +1 -1
- package/docs/variables/index.theme.html +1 -1
- package/esm/components/form/Checkbox.d.ts.map +1 -1
- package/esm/components/form/Checkbox.js.map +1 -1
- package/esm/components/form/Checkbox.stories.d.ts +1 -1
- package/esm/components/form/Checkbox.stories.d.ts.map +1 -1
- package/esm/components/form/Checkbox.stories.js +1 -1
- package/esm/components/form/Checkbox.stories.js.map +1 -1
- package/esm/components/form/ColorPicker.d.ts.map +1 -1
- package/esm/components/form/ColorPicker.js.map +1 -1
- package/esm/components/form/ColorPicker.stories.d.ts +1 -1
- package/esm/components/form/ColorPicker.stories.d.ts.map +1 -1
- package/esm/components/form/ColorPicker.stories.js.map +1 -1
- package/esm/components/form/Label.stories.d.ts.map +1 -1
- package/esm/components/form/Label.stories.js.map +1 -1
- package/esm/components/form/Label.styled.js +1 -1
- package/esm/components/form/Label.styled.js.map +1 -1
- package/esm/components/form/Select.stories.d.ts +1 -1
- package/esm/components/form/Select.stories.d.ts.map +1 -1
- package/esm/components/form/Suggestions.d.ts +1 -1
- package/esm/components/form/Suggestions.d.ts.map +1 -1
- package/esm/components/form/Toggle.d.ts.map +1 -1
- package/esm/components/form/Toggle.js.map +1 -1
- package/esm/components/form/Toggle.styled.js +1 -1
- package/esm/components/form/Toggle.styled.js.map +1 -1
- package/esm/components/form/choice/Choice.d.ts +1 -1
- package/esm/components/form/choice/Choice.d.ts.map +1 -1
- package/esm/components/form/choice/Choice.js +1 -1
- package/esm/components/form/choice/Choice.js.map +1 -1
- package/esm/components/form/choice/Choice.stories.d.ts +1 -1
- package/esm/components/form/choice/Choice.stories.d.ts.map +1 -1
- package/esm/components/form/choice/Choice.stories.js.map +1 -1
- package/esm/components/form/choice/ChoiceItem.d.ts.map +1 -1
- package/esm/components/form/choice/ChoiceItem.js +3 -2
- package/esm/components/form/choice/ChoiceItem.js.map +1 -1
- package/esm/components/form/input/Input.d.ts +5 -2
- package/esm/components/form/input/Input.d.ts.map +1 -1
- package/esm/components/form/input/Input.js +17 -11
- package/esm/components/form/input/Input.js.map +1 -1
- package/esm/components/form/input/Input.stories.d.ts +1 -1
- package/esm/components/form/input/Input.stories.d.ts.map +1 -1
- package/esm/components/form/input/Input.stories.js +1 -1
- package/esm/components/form/input/Input.stories.js.map +1 -1
- package/esm/components/form/input/Input.styled.d.ts.map +1 -1
- package/esm/components/form/input/Input.styled.js.map +1 -1
- package/esm/components/form/textarea/TextArea.stories.d.ts +1 -1
- package/esm/components/form/textarea/TextArea.stories.d.ts.map +1 -1
- package/esm/components/form/textarea/TextArea.styled.d.ts.map +1 -1
- package/esm/components/form/textarea/TextArea.styled.js +1 -1
- package/esm/components/form/textarea/TextArea.styled.js.map +1 -1
- package/esm/components/icons/Back.d.ts +1 -1
- package/esm/components/icons/Back.d.ts.map +1 -1
- package/esm/components/icons/Back.js +5 -4
- package/esm/components/icons/Back.js.map +1 -1
- package/esm/components/icons/Battery.d.ts +1 -1
- package/esm/components/icons/Battery.d.ts.map +1 -1
- package/esm/components/icons/Battery.js +5 -4
- package/esm/components/icons/Battery.js.map +1 -1
- package/esm/components/icons/Checkmark.d.ts +1 -1
- package/esm/components/icons/Checkmark.d.ts.map +1 -1
- package/esm/components/icons/Checkmark.js +5 -4
- package/esm/components/icons/Checkmark.js.map +1 -1
- package/esm/components/icons/Config.d.ts +1 -1
- package/esm/components/icons/Config.d.ts.map +1 -1
- package/esm/components/icons/Config.js +5 -4
- package/esm/components/icons/Config.js.map +1 -1
- package/esm/components/icons/Dots.d.ts +1 -1
- package/esm/components/icons/Dots.d.ts.map +1 -1
- package/esm/components/icons/Dots.js +5 -4
- package/esm/components/icons/Dots.js.map +1 -1
- package/esm/components/icons/Forward.d.ts +1 -1
- package/esm/components/icons/Forward.d.ts.map +1 -1
- package/esm/components/icons/Forward.js +5 -4
- package/esm/components/icons/Forward.js.map +1 -1
- package/esm/components/icons/Heart.d.ts +1 -1
- package/esm/components/icons/Heart.d.ts.map +1 -1
- package/esm/components/icons/Heart.js +5 -4
- package/esm/components/icons/Heart.js.map +1 -1
- package/esm/components/icons/Icon.d.ts +1 -1
- package/esm/components/icons/Icon.d.ts.map +1 -1
- package/esm/components/icons/Icon.js +10 -9
- package/esm/components/icons/Icon.js.map +1 -1
- package/esm/components/icons/Icon.stories.d.ts.map +1 -1
- package/esm/components/icons/Icon.stories.js +1 -1
- package/esm/components/icons/Icon.stories.js.map +1 -1
- package/esm/components/icons/Search.d.ts +1 -1
- package/esm/components/icons/Search.d.ts.map +1 -1
- package/esm/components/icons/Search.js +5 -4
- package/esm/components/icons/Search.js.map +1 -1
- package/esm/components/icons/Trash.d.ts +1 -1
- package/esm/components/icons/Trash.d.ts.map +1 -1
- package/esm/components/icons/Trash.js +5 -4
- package/esm/components/icons/Trash.js.map +1 -1
- package/esm/components/layout/card/Card.stories.d.ts.map +1 -1
- package/esm/components/layout/card/Card.stories.js.map +1 -1
- package/esm/components/layout/header/Header.d.ts.map +1 -1
- package/esm/components/layout/header/Header.js.map +1 -1
- package/esm/components/layout/header/Header.stories.d.ts +1 -1
- package/esm/components/layout/header/Header.stories.d.ts.map +1 -1
- package/esm/components/layout/header/Header.stories.js.map +1 -1
- package/esm/components/layout/header/HeaderIconAction.d.ts +3 -2
- package/esm/components/layout/header/HeaderIconAction.d.ts.map +1 -1
- package/esm/components/layout/header/HeaderIconAction.js +12 -9
- package/esm/components/layout/header/HeaderIconAction.js.map +1 -1
- package/esm/components/layout/header/HeaderIconAction.stories.d.ts +5 -4
- package/esm/components/layout/header/HeaderIconAction.stories.d.ts.map +1 -1
- package/esm/components/layout/header/HeaderIconAction.stories.js +20 -1
- package/esm/components/layout/header/HeaderIconAction.stories.js.map +1 -1
- package/esm/components/layout/header/HeaderIconAction.styled.d.ts +87 -2
- package/esm/components/layout/header/HeaderIconAction.styled.d.ts.map +1 -1
- package/esm/components/layout/header/HeaderIconAction.styled.js +4 -4
- package/esm/components/layout/header/HeaderIconAction.styled.js.map +1 -1
- package/esm/components/layout/header/StickyHeader.d.ts.map +1 -1
- package/esm/components/layout/header/StickyHeader.js +1 -1
- package/esm/components/layout/header/StickyHeader.js.map +1 -1
- package/esm/components/layout/header/StickyHeader.stories.d.ts +1 -1
- package/esm/components/layout/header/StickyHeader.stories.d.ts.map +1 -1
- package/esm/components/layout/header/StickyHeader.stories.js +1 -1
- package/esm/components/layout/header/StickyHeader.stories.js.map +1 -1
- package/esm/components/layout/list/Header.d.ts +96 -93
- package/esm/components/layout/list/Header.d.ts.map +1 -1
- package/esm/components/layout/list/Header.js +10 -7
- package/esm/components/layout/list/Header.js.map +1 -1
- package/esm/components/layout/list/Header.stories.d.ts +1 -1
- package/esm/components/layout/list/Header.stories.d.ts.map +1 -1
- package/esm/components/layout/list/Item.d.ts +273 -7
- package/esm/components/layout/list/Item.d.ts.map +1 -1
- package/esm/components/layout/list/Item.js +18 -13
- package/esm/components/layout/list/Item.js.map +1 -1
- package/esm/components/layout/list/Item.stories.d.ts +1 -1
- package/esm/components/layout/list/Item.stories.d.ts.map +1 -1
- package/esm/components/layout/list/Item.stories.js +1 -1
- package/esm/components/layout/list/Item.stories.js.map +1 -1
- package/esm/components/layout/list/Item.styled.d.ts +1 -1
- package/esm/components/layout/list/Label.d.ts.map +1 -1
- package/esm/components/layout/list/Label.js.map +1 -1
- package/esm/components/layout/list/Label.stories.d.ts +1 -1
- package/esm/components/layout/list/Label.stories.d.ts.map +1 -1
- package/esm/components/layout/list/Label.stories.js +1 -1
- package/esm/components/layout/list/Label.stories.js.map +1 -1
- package/esm/components/layout/list/List.d.ts +547 -94
- package/esm/components/layout/list/List.d.ts.map +1 -1
- package/esm/components/layout/list/List.js +13 -8
- package/esm/components/layout/list/List.js.map +1 -1
- package/esm/components/layout/list/List.stories.d.ts +1 -1
- package/esm/components/layout/list/List.stories.d.ts.map +1 -1
- package/esm/components/layout/list/List.stories.js +1 -1
- package/esm/components/layout/list/List.stories.js.map +1 -1
- package/esm/components/layout/list/Value.stories.d.ts +1 -1
- package/esm/components/layout/list/Value.stories.d.ts.map +1 -1
- package/esm/components/layout/list/Value.stories.js +2 -2
- package/esm/components/layout/list/Value.stories.js.map +1 -1
- package/esm/components/layout/section/Section.d.ts.map +1 -1
- package/esm/components/layout/section/Section.js.map +1 -1
- package/esm/components/layout/section/Section.stories.d.ts +1 -1
- package/esm/components/layout/section/Section.stories.d.ts.map +1 -1
- package/esm/components/layout/section/Section.stories.js +1 -1
- package/esm/components/layout/section/Section.stories.js.map +1 -1
- package/esm/components/layout/table/Table.stories.d.ts +1 -1
- package/esm/components/layout/table/Table.stories.d.ts.map +1 -1
- package/esm/components/ui/action/Action.d.ts +5 -3
- package/esm/components/ui/action/Action.d.ts.map +1 -1
- package/esm/components/ui/action/Action.js +11 -7
- package/esm/components/ui/action/Action.js.map +1 -1
- package/esm/components/ui/action/Action.stories.d.ts +1 -1
- package/esm/components/ui/action/Action.stories.d.ts.map +1 -1
- package/esm/components/ui/action/EqualActions.stories.d.ts.map +1 -1
- package/esm/components/ui/action/EqualActions.stories.js +1 -1
- package/esm/components/ui/action/EqualActions.stories.js.map +1 -1
- package/esm/components/ui/button/Button.stories.d.ts +1 -1
- package/esm/components/ui/button/Button.stories.d.ts.map +1 -1
- package/esm/components/ui/button/Button.stories.js.map +1 -1
- package/esm/components/ui/directionPad/Pad.js +1 -1
- package/esm/components/ui/directionPad/Pad.js.map +1 -1
- package/esm/components/ui/directionPad/Pad.stories.js +1 -1
- package/esm/components/ui/directionPad/Pad.stories.js.map +1 -1
- package/esm/components/ui/drawer/Drawer.d.ts.map +1 -1
- package/esm/components/ui/drawer/Drawer.js +1 -1
- package/esm/components/ui/drawer/Drawer.js.map +1 -1
- package/esm/components/ui/drawer/Drawer.stories.d.ts.map +1 -1
- package/esm/components/ui/drawer/Drawer.stories.js +3 -2
- package/esm/components/ui/drawer/Drawer.stories.js.map +1 -1
- package/esm/components/ui/keyValue/KeyValue.d.ts +2 -2
- package/esm/components/ui/keyValue/KeyValue.d.ts.map +1 -1
- package/esm/components/ui/keyValue/KeyValue.js +3 -3
- package/esm/components/ui/keyValue/KeyValue.js.map +1 -1
- package/esm/components/ui/keyValue/KeyValue.stories.d.ts.map +1 -1
- package/esm/components/ui/keyValue/KeyValue.stories.js +5 -5
- package/esm/components/ui/keyValue/KeyValue.stories.js.map +1 -1
- package/esm/components/ui/loader/CoveringLoader.d.ts.map +1 -1
- package/esm/components/ui/loader/CoveringLoader.js +1 -1
- package/esm/components/ui/loader/CoveringLoader.js.map +1 -1
- package/esm/components/ui/loader/FullLoader.d.ts +1 -1
- package/esm/components/ui/loader/FullLoader.d.ts.map +1 -1
- package/esm/components/ui/loader/FullLoader.js +6 -4
- package/esm/components/ui/loader/FullLoader.js.map +1 -1
- package/esm/components/ui/loader/FullLoader.stories.d.ts +1 -1
- package/esm/components/ui/loader/FullLoader.stories.d.ts.map +1 -1
- package/esm/components/ui/loader/Loader.d.ts +2 -1
- package/esm/components/ui/loader/Loader.d.ts.map +1 -1
- package/esm/components/ui/loader/Loader.js +7 -5
- package/esm/components/ui/loader/Loader.js.map +1 -1
- package/esm/components/ui/loader/Loading.d.ts.map +1 -1
- package/esm/components/ui/loader/Loading.js +2 -1
- package/esm/components/ui/loader/Loading.js.map +1 -1
- package/esm/components/ui/loader/Loading.stories.d.ts +1 -1
- package/esm/components/ui/loader/Loading.stories.d.ts.map +1 -1
- package/esm/components/ui/loader/Loading.stories.js.map +1 -1
- package/esm/components/ui/loader/PopLoader.d.ts +2 -3
- package/esm/components/ui/loader/PopLoader.d.ts.map +1 -1
- package/esm/components/ui/loader/PopLoader.js +6 -4
- package/esm/components/ui/loader/PopLoader.js.map +1 -1
- package/esm/components/ui/loader/PopLoader.stories.d.ts +1 -1
- package/esm/components/ui/loader/PopLoader.stories.d.ts.map +1 -1
- package/esm/components/ui/loader/PopLoader.stories.js.map +1 -1
- package/esm/components/ui/message/Message.d.ts.map +1 -1
- package/esm/components/ui/message/Message.js.map +1 -1
- package/esm/components/ui/message/Message.stories.d.ts.map +1 -1
- package/esm/components/ui/message/Message.stories.js.map +1 -1
- package/esm/components/ui/message/Message.styled.d.ts +1 -1
- package/esm/components/ui/modal/Modal.d.ts +92 -6
- package/esm/components/ui/modal/Modal.d.ts.map +1 -1
- package/esm/components/ui/modal/Modal.js +17 -8
- package/esm/components/ui/modal/Modal.js.map +1 -1
- package/esm/components/ui/modal/Modal.stories.d.ts +1 -1
- package/esm/components/ui/modal/Modal.stories.d.ts.map +1 -1
- package/esm/components/ui/modal/Modal.stories.js +4 -4
- package/esm/components/ui/modal/Modal.stories.js.map +1 -1
- package/esm/components/ui/modal/Modal.styled.d.ts.map +1 -1
- package/esm/components/ui/modal/Modal.styled.js +1 -0
- package/esm/components/ui/modal/Modal.styled.js.map +1 -1
- package/esm/components/ui/modal/ModalButtons.stories.d.ts +1 -1
- package/esm/components/ui/modal/ModalButtons.stories.d.ts.map +1 -1
- package/esm/components/ui/modal/ModalButtons.stories.js +1 -1
- package/esm/components/ui/modal/ModalButtons.stories.js.map +1 -1
- package/esm/components/ui/modal/ModalButtons.styled.d.ts.map +1 -1
- package/esm/components/ui/modal/ModalButtons.styled.js.map +1 -1
- package/esm/components/ui/pop/OnButtonClick.d.ts.map +1 -1
- package/esm/components/ui/pop/OnButtonClick.js +3 -2
- package/esm/components/ui/pop/OnButtonClick.js.map +1 -1
- package/esm/components/ui/pop/Pop.d.ts +3 -1
- package/esm/components/ui/pop/Pop.d.ts.map +1 -1
- package/esm/components/ui/pop/Pop.js +5 -2
- package/esm/components/ui/pop/Pop.js.map +1 -1
- package/esm/components/ui/pop/Pop.stories.d.ts.map +1 -1
- package/esm/components/ui/pop/Pop.stories.js +2 -2
- package/esm/components/ui/pop/Pop.stories.js.map +1 -1
- package/esm/components/ui/pop/PopOption.d.ts +4 -2
- package/esm/components/ui/pop/PopOption.d.ts.map +1 -1
- package/esm/components/ui/pop/PopOption.js +9 -5
- package/esm/components/ui/pop/PopOption.js.map +1 -1
- package/esm/components/ui/progress/Progress.d.ts.map +1 -1
- package/esm/components/ui/progress/Progress.js.map +1 -1
- package/esm/components/ui/progress/Progress.stories.d.ts.map +1 -1
- package/esm/components/ui/progress/Progress.stories.js.map +1 -1
- package/esm/components/ui/progress/Progress.styled.js +1 -1
- package/esm/components/ui/stats/Stats.d.ts.map +1 -1
- package/esm/components/ui/stats/Stats.js +1 -1
- package/esm/components/ui/stats/Stats.js.map +1 -1
- package/esm/components/ui/stats/Stats.stories.d.ts.map +1 -1
- package/esm/components/ui/stats/Stats.stories.js +1 -1
- package/esm/components/ui/stats/Stats.stories.js.map +1 -1
- package/esm/components/ui/tabs/Item.d.ts.map +1 -1
- package/esm/components/ui/tabs/Item.js +3 -2
- package/esm/components/ui/tabs/Item.js.map +1 -1
- package/esm/components/ui/tabs/Item.styled.d.ts.map +1 -1
- package/esm/components/ui/tabs/Item.styled.js +2 -0
- package/esm/components/ui/tabs/Item.styled.js.map +1 -1
- package/esm/components/ui/tabs/Selector.d.ts +2 -1
- package/esm/components/ui/tabs/Selector.d.ts.map +1 -1
- package/esm/components/ui/tabs/Selector.js +62 -6
- package/esm/components/ui/tabs/Selector.js.map +1 -1
- package/esm/components/ui/tabs/Selector.stories.d.ts +4 -2
- package/esm/components/ui/tabs/Selector.stories.d.ts.map +1 -1
- package/esm/components/ui/tabs/Selector.stories.js +40 -2
- package/esm/components/ui/tabs/Selector.stories.js.map +1 -1
- package/esm/components/ui/tabs/Selector.styled.d.ts +9 -1
- package/esm/components/ui/tabs/Selector.styled.d.ts.map +1 -1
- package/esm/components/ui/tabs/Selector.styled.js +67 -3
- package/esm/components/ui/tabs/Selector.styled.js.map +1 -1
- package/esm/components/ui/toaster/Notification.d.ts.map +1 -1
- package/esm/components/ui/toaster/Notification.js +4 -2
- package/esm/components/ui/toaster/Notification.js.map +1 -1
- package/esm/components/ui/toaster/Toaster.stories.d.ts +1 -1
- package/esm/components/ui/toaster/Toaster.stories.d.ts.map +1 -1
- package/esm/components/ui/toaster/Toaster.stories.js.map +1 -1
- package/esm/components/utils/HandleEsc.d.ts.map +1 -1
- package/esm/components/utils/HandleEsc.js +3 -3
- package/esm/components/utils/HandleEsc.js.map +1 -1
- package/esm/utils/useTailSpin.js +1 -1
- package/esm/utils/useTailSpin.js.map +1 -1
- package/package.json +5 -7
- package/src/components/form/Checkbox.stories.tsx +2 -3
- package/src/components/form/Checkbox.tsx +1 -2
- package/src/components/form/ColorPicker.stories.tsx +1 -2
- package/src/components/form/ColorPicker.tsx +0 -1
- package/src/components/form/Label.stories.tsx +0 -1
- package/src/components/form/Label.styled.ts +1 -1
- package/src/components/form/Select.stories.tsx +1 -1
- package/src/components/form/Suggestions.tsx +1 -1
- package/src/components/form/Toggle.styled.ts +1 -1
- package/src/components/form/Toggle.tsx +2 -1
- package/src/components/form/choice/Choice.stories.tsx +1 -2
- package/src/components/form/choice/Choice.tsx +3 -4
- package/src/components/form/choice/ChoiceItem.tsx +4 -3
- package/src/components/form/input/Input.stories.tsx +2 -3
- package/src/components/form/input/Input.styled.ts +0 -1
- package/src/components/form/input/Input.tsx +23 -15
- package/src/components/form/textarea/TextArea.stories.tsx +1 -1
- package/src/components/form/textarea/TextArea.styled.ts +1 -2
- package/src/components/icons/Back.tsx +6 -3
- package/src/components/icons/Battery.tsx +6 -3
- package/src/components/icons/Checkmark.tsx +6 -3
- package/src/components/icons/Config.tsx +6 -3
- package/src/components/icons/Dots.tsx +6 -3
- package/src/components/icons/Forward.tsx +6 -3
- package/src/components/icons/Heart.tsx +6 -3
- package/src/components/icons/Icon.stories.tsx +1 -2
- package/src/components/icons/Icon.tsx +16 -12
- package/src/components/icons/Search.tsx +6 -3
- package/src/components/icons/Trash.tsx +6 -3
- package/src/components/layout/card/Card.stories.tsx +0 -1
- package/src/components/layout/header/Header.stories.tsx +1 -2
- package/src/components/layout/header/Header.tsx +1 -1
- package/src/components/layout/header/HeaderIconAction.stories.tsx +49 -2
- package/src/components/layout/header/HeaderIconAction.styled.ts +4 -5
- package/src/components/layout/header/HeaderIconAction.tsx +23 -10
- package/src/components/layout/header/StickyHeader.stories.tsx +3 -3
- package/src/components/layout/header/StickyHeader.tsx +2 -4
- package/src/components/layout/list/Header.stories.tsx +1 -1
- package/src/components/layout/list/Header.tsx +12 -8
- package/src/components/layout/list/Item.stories.tsx +2 -2
- package/src/components/layout/list/Item.tsx +33 -26
- package/src/components/layout/list/Label.stories.tsx +2 -2
- package/src/components/layout/list/Label.tsx +1 -0
- package/src/components/layout/list/List.stories.tsx +2 -3
- package/src/components/layout/list/List.tsx +14 -14
- package/src/components/layout/list/Value.stories.tsx +3 -3
- package/src/components/layout/section/Section.stories.tsx +2 -3
- package/src/components/layout/section/Section.tsx +0 -1
- package/src/components/layout/table/Table.stories.tsx +1 -1
- package/src/components/ui/action/Action.stories.tsx +1 -1
- package/src/components/ui/action/Action.tsx +35 -11
- package/src/components/ui/action/EqualActions.stories.tsx +1 -2
- package/src/components/ui/button/Button.stories.tsx +1 -2
- package/src/components/ui/directionPad/Pad.stories.tsx +1 -1
- package/src/components/ui/directionPad/Pad.tsx +1 -1
- package/src/components/ui/drawer/Drawer.stories.tsx +3 -5
- package/src/components/ui/drawer/Drawer.tsx +2 -2
- package/src/components/ui/keyValue/KeyValue.stories.tsx +5 -6
- package/src/components/ui/keyValue/KeyValue.tsx +6 -5
- package/src/components/ui/loader/CoveringLoader.tsx +2 -1
- package/src/components/ui/loader/FullLoader.stories.tsx +1 -1
- package/src/components/ui/loader/FullLoader.tsx +7 -4
- package/src/components/ui/loader/Loader.tsx +15 -6
- package/src/components/ui/loader/Loading.stories.tsx +1 -2
- package/src/components/ui/loader/Loading.tsx +3 -1
- package/src/components/ui/loader/PopLoader.stories.tsx +1 -2
- package/src/components/ui/loader/PopLoader.tsx +9 -6
- package/src/components/ui/message/Message.stories.tsx +0 -1
- package/src/components/ui/message/Message.tsx +1 -2
- package/src/components/ui/modal/Modal.stories.tsx +5 -9
- package/src/components/ui/modal/Modal.styled.ts +1 -0
- package/src/components/ui/modal/Modal.tsx +24 -14
- package/src/components/ui/modal/ModalButtons.stories.tsx +2 -2
- package/src/components/ui/modal/ModalButtons.styled.ts +0 -1
- package/src/components/ui/pop/OnButtonClick.tsx +4 -2
- package/src/components/ui/pop/Pop.stories.tsx +2 -4
- package/src/components/ui/pop/Pop.tsx +7 -3
- package/src/components/ui/pop/PopOption.tsx +11 -5
- package/src/components/ui/progress/Progress.stories.tsx +1 -2
- package/src/components/ui/progress/Progress.styled.ts +1 -1
- package/src/components/ui/progress/Progress.tsx +0 -1
- package/src/components/ui/stats/Stats.stories.tsx +2 -3
- package/src/components/ui/stats/Stats.tsx +1 -1
- package/src/components/ui/tabs/Item.styled.ts +2 -0
- package/src/components/ui/tabs/Item.tsx +4 -2
- package/src/components/ui/tabs/Selector.stories.tsx +63 -3
- package/src/components/ui/tabs/Selector.styled.ts +74 -3
- package/src/components/ui/tabs/Selector.tsx +82 -7
- package/src/components/ui/toaster/Notification.tsx +6 -2
- package/src/components/ui/toaster/Toaster.stories.tsx +1 -2
- package/src/components/utils/HandleEsc.tsx +5 -4
- package/src/utils/useTailSpin.ts +1 -1
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import React, { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
-
|
|
1
|
+
import React, { forwardRef, useCallback, useEffect, useRef, useState } from "react";
|
|
3
2
|
import { createPortal } from "react-dom";
|
|
4
3
|
|
|
4
|
+
import { useForwardedRef } from "@bedrock-layout/use-forwarded-ref";
|
|
5
|
+
|
|
5
6
|
import type { ThemeCSS } from "../../../theme";
|
|
6
7
|
|
|
8
|
+
import { fnWithProps } from "../../../types/fnWithProps";
|
|
7
9
|
import { ContainerStyled, NEGATIVE_PADDING, OverlayStyled, RemovePadding, TitleStyled } from "./Modal.styled";
|
|
8
10
|
|
|
9
11
|
type OverlayProps = React.ComponentProps<typeof OverlayStyled>;
|
|
@@ -23,14 +25,10 @@ interface Props {
|
|
|
23
25
|
full?: ContainerProps["full"];
|
|
24
26
|
}
|
|
25
27
|
|
|
26
|
-
interface SubComponents {
|
|
27
|
-
RemovePadding: typeof RemovePadding;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
28
|
// @TODO proper docs + buttons
|
|
31
29
|
|
|
32
30
|
// eslint-disable-next-line max-lines-per-function,max-statements
|
|
33
|
-
const
|
|
31
|
+
const ModalBase = forwardRef<HTMLDivElement, Props>(({
|
|
34
32
|
children,
|
|
35
33
|
onClose,
|
|
36
34
|
isOpen,
|
|
@@ -41,11 +39,11 @@ const Modal: React.FC<Props> & SubComponents = ({
|
|
|
41
39
|
portal = true,
|
|
42
40
|
position,
|
|
43
41
|
full,
|
|
44
|
-
}) => {
|
|
42
|
+
}, ref) => {
|
|
45
43
|
const [isClosing, setIsClosing] = useState(false);
|
|
46
44
|
const [isRendered, setIsRendered] = useState(false);
|
|
47
45
|
const overlayRef = useRef<HTMLDivElement>(null);
|
|
48
|
-
const containerRef =
|
|
46
|
+
const containerRef = useForwardedRef(ref);
|
|
49
47
|
|
|
50
48
|
useEffect(() => {
|
|
51
49
|
if (!isOpen || !closeOnEsc) {
|
|
@@ -61,10 +59,11 @@ const Modal: React.FC<Props> & SubComponents = ({
|
|
|
61
59
|
return () => {
|
|
62
60
|
document.removeEventListener("keydown", onKeyDown);
|
|
63
61
|
};
|
|
64
|
-
}, [isOpen, closeOnEsc]);
|
|
62
|
+
}, [isOpen, closeOnEsc, onClose]);
|
|
65
63
|
|
|
66
64
|
useEffect(() => {
|
|
67
65
|
if (!isOpen) {
|
|
66
|
+
// eslint-disable-next-line react-hooks/set-state-in-effect
|
|
68
67
|
setIsClosing(true);
|
|
69
68
|
return;
|
|
70
69
|
}
|
|
@@ -77,6 +76,7 @@ const Modal: React.FC<Props> & SubComponents = ({
|
|
|
77
76
|
return;
|
|
78
77
|
}
|
|
79
78
|
|
|
79
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
80
80
|
if (!overlayRef.current || !containerRef.current) {
|
|
81
81
|
return;
|
|
82
82
|
}
|
|
@@ -87,7 +87,7 @@ const Modal: React.FC<Props> & SubComponents = ({
|
|
|
87
87
|
overlayRef.current.offsetHeight; // force sync document reflow
|
|
88
88
|
overlayRef.current.style.removeProperty("animation");
|
|
89
89
|
containerRef.current.style.removeProperty("animation");
|
|
90
|
-
}, [isClosing]);
|
|
90
|
+
}, [isClosing, containerRef]);
|
|
91
91
|
|
|
92
92
|
const titleElem = title ? <TitleStyled>{title}</TitleStyled> : null;
|
|
93
93
|
|
|
@@ -165,7 +165,17 @@ const Modal: React.FC<Props> & SubComponents = ({
|
|
|
165
165
|
}
|
|
166
166
|
|
|
167
167
|
return tree;
|
|
168
|
-
};
|
|
169
|
-
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
ModalBase.displayName = "Modal";
|
|
171
|
+
|
|
172
|
+
const Modal = fnWithProps(ModalBase, {
|
|
173
|
+
RemovePadding,
|
|
174
|
+
});
|
|
175
|
+
Modal.toString = () => OverlayStyled.toString();
|
|
176
|
+
|
|
177
|
+
const ModalContainerSelector = ContainerStyled.toString();
|
|
178
|
+
const ModalTitleSelector = TitleStyled.toString();
|
|
179
|
+
const ModalRemovePaddingSelector = RemovePadding.toString();
|
|
170
180
|
|
|
171
|
-
export { Modal };
|
|
181
|
+
export { Modal, ModalContainerSelector, ModalTitleSelector, ModalRemovePaddingSelector };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
4
4
|
|
|
5
|
-
import { ModalButtons } from "./ModalButtons";
|
|
6
5
|
import { Modal } from "./Modal";
|
|
6
|
+
import { ModalButtons } from "./ModalButtons";
|
|
7
7
|
|
|
8
8
|
const meta: Meta = {
|
|
9
9
|
title: "Components/UI/ModalButtons",
|
|
@@ -8,6 +8,8 @@ interface Props {
|
|
|
8
8
|
const OnButtonClick: React.FC<Props> = (props) => {
|
|
9
9
|
const theRef = useRef<HTMLDivElement>(null);
|
|
10
10
|
|
|
11
|
+
const { onClick } = props;
|
|
12
|
+
|
|
11
13
|
useEffect(() => {
|
|
12
14
|
const div = theRef.current;
|
|
13
15
|
if (!div) {
|
|
@@ -17,14 +19,14 @@ const OnButtonClick: React.FC<Props> = (props) => {
|
|
|
17
19
|
const cb = (e: MouseEvent) => {
|
|
18
20
|
if (e.target instanceof HTMLElement && e.target.nodeName.toLowerCase() === "button") {
|
|
19
21
|
setTimeout(() => {
|
|
20
|
-
|
|
22
|
+
onClick();
|
|
21
23
|
}, 0);
|
|
22
24
|
}
|
|
23
25
|
};
|
|
24
26
|
|
|
25
27
|
div.addEventListener("click", cb);
|
|
26
28
|
return () => { div.removeEventListener("click", cb); };
|
|
27
|
-
}, [
|
|
29
|
+
}, [onClick]);
|
|
28
30
|
|
|
29
31
|
return <div ref={theRef}>{props.children}</div>;
|
|
30
32
|
};
|
|
@@ -4,12 +4,11 @@ import { SunOne } from "@icon-park/react";
|
|
|
4
4
|
|
|
5
5
|
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
6
6
|
|
|
7
|
+
import { ICON, Icon } from "../../icons/Icon";
|
|
8
|
+
import { Header } from "../../layout/header/Header";
|
|
7
9
|
import { HeaderIconAction } from "../../layout/header/HeaderIconAction";
|
|
8
|
-
import { Icon, ICON } from "../../icons/Icon";
|
|
9
10
|
import { StickyHeader } from "../../layout/header/StickyHeader";
|
|
10
|
-
import { Header } from "../../layout/header/Header";
|
|
11
11
|
import { Section } from "../../layout/section/Section";
|
|
12
|
-
|
|
13
12
|
import { Pop } from "./Pop";
|
|
14
13
|
|
|
15
14
|
const meta: Meta = {
|
|
@@ -32,7 +31,6 @@ const handleClick = () => {
|
|
|
32
31
|
|
|
33
32
|
const Primary: Story = {
|
|
34
33
|
render: (args) => {
|
|
35
|
-
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
36
34
|
const [open, setOpen] = useState(false);
|
|
37
35
|
const [leftOpen, setLeftOpen] = useState(false);
|
|
38
36
|
|
|
@@ -3,10 +3,9 @@ import React, { Component, createRef } from "react";
|
|
|
3
3
|
import type { ThemeCSS } from "../../../theme";
|
|
4
4
|
|
|
5
5
|
import { HandleEsc } from "../../utils/HandleEsc";
|
|
6
|
-
|
|
7
6
|
import { OnButtonClick } from "./OnButtonClick";
|
|
8
|
-
import { PopOption } from "./PopOption";
|
|
9
7
|
import { List, Overlay } from "./Pop.styled";
|
|
8
|
+
import { PopOption } from "./PopOption";
|
|
10
9
|
|
|
11
10
|
interface Props {
|
|
12
11
|
open: boolean;
|
|
@@ -169,4 +168,9 @@ class Pop extends Component<Props, State> {
|
|
|
169
168
|
}
|
|
170
169
|
}
|
|
171
170
|
|
|
172
|
-
|
|
171
|
+
Pop.toString = () => Overlay.toString();
|
|
172
|
+
|
|
173
|
+
const PopOverlaySelector = Overlay.toString();
|
|
174
|
+
const PopListSelector = List.toString();
|
|
175
|
+
|
|
176
|
+
export { Pop, PopOverlaySelector, PopListSelector };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { forwardRef } from "react";
|
|
2
2
|
|
|
3
3
|
import { Button, FakeIcon, Icon, ListItem } from "./Pop.styled";
|
|
4
4
|
|
|
@@ -10,16 +10,22 @@ interface Props {
|
|
|
10
10
|
children: React.ReactNode;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
const PopOption
|
|
13
|
+
const PopOption = forwardRef<HTMLLIElement, Props>((props, ref) => {
|
|
14
14
|
const ic = props.icon
|
|
15
15
|
? <Icon>{props.icon}</Icon>
|
|
16
16
|
: ((props.forceEmptyIcon ?? true) ? <FakeIcon /> : null);
|
|
17
17
|
|
|
18
18
|
return (
|
|
19
|
-
<ListItem className={props.className}>
|
|
19
|
+
<ListItem ref={ref} className={props.className}>
|
|
20
20
|
<Button onClick={props.onClick}>{ic}{props.children}</Button>
|
|
21
21
|
</ListItem>
|
|
22
22
|
);
|
|
23
|
-
};
|
|
23
|
+
});
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
PopOption.displayName = "PopOption";
|
|
26
|
+
PopOption.toString = () => ListItem.toString();
|
|
27
|
+
|
|
28
|
+
const PopOptionButtonSelector = Button.toString();
|
|
29
|
+
const PopOptionIconSelector = Icon.toString();
|
|
30
|
+
|
|
31
|
+
export { PopOption, PopOptionButtonSelector, PopOptionIconSelector };
|
|
@@ -3,7 +3,6 @@ import React from "react";
|
|
|
3
3
|
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
4
4
|
|
|
5
5
|
import { styled } from "../../../theme";
|
|
6
|
-
|
|
7
6
|
import { Progress } from "./Progress";
|
|
8
7
|
|
|
9
8
|
const meta: Meta = {
|
|
@@ -34,7 +33,7 @@ const CustomProgress = styled(Progress, {
|
|
|
34
33
|
const CustomizedColors: Story = {
|
|
35
34
|
render: (args) => {
|
|
36
35
|
return (
|
|
37
|
-
// @ts-
|
|
36
|
+
// @ts-expect-error bad types from storybook
|
|
38
37
|
<CustomProgress {...args} />
|
|
39
38
|
);
|
|
40
39
|
},
|
|
@@ -5,7 +5,6 @@ import { cap, scale } from "@ezez/utils";
|
|
|
5
5
|
import type { ThemeCSS } from "../../../theme";
|
|
6
6
|
|
|
7
7
|
import { fnWithProps } from "../../../types/fnWithProps";
|
|
8
|
-
|
|
9
8
|
import { Background, Container, Value } from "./Progress.styled";
|
|
10
9
|
|
|
11
10
|
type ProgressProps = React.ComponentProps<typeof Container> & {
|
|
@@ -4,13 +4,12 @@ import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
|
4
4
|
|
|
5
5
|
import { styled } from "../../../theme";
|
|
6
6
|
import { Div } from "../../native";
|
|
7
|
-
|
|
8
7
|
import {
|
|
9
8
|
Stats,
|
|
10
|
-
StatsLabelSelector,
|
|
11
|
-
StatsValueSelector,
|
|
12
9
|
StatsItemSelector,
|
|
10
|
+
StatsLabelSelector,
|
|
13
11
|
StatsSeparatorSelector,
|
|
12
|
+
StatsValueSelector,
|
|
14
13
|
} from "./Stats";
|
|
15
14
|
|
|
16
15
|
const meta: Meta<typeof Stats> = {
|
|
@@ -2,7 +2,7 @@ import React, { forwardRef } from "react";
|
|
|
2
2
|
|
|
3
3
|
import type { ComponentProps } from "@stitches/react";
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { Item, Label, Separator, StyledStats, Value } from "./Stats.styled";
|
|
6
6
|
|
|
7
7
|
type Stat = {
|
|
8
8
|
label: string;
|
|
@@ -11,9 +11,11 @@ type ItemProps = {
|
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
const Item = (props: ItemProps): React.ReactElement => {
|
|
14
|
+
const { onClick, value } = props;
|
|
15
|
+
|
|
14
16
|
const handleClick = useCallback(() => {
|
|
15
|
-
|
|
16
|
-
}, [
|
|
17
|
+
onClick(value.value);
|
|
18
|
+
}, [onClick, value.value]);
|
|
17
19
|
|
|
18
20
|
return (
|
|
19
21
|
<StyledItem onClick={handleClick} active={props.active} type={"button"} data-active={props.active}>
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import React, { useState } from "react";
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
4
4
|
|
|
5
|
-
import { Header } from "../../layout/header/Header";
|
|
6
5
|
import { styled } from "../../../theme";
|
|
7
|
-
|
|
6
|
+
import { Header, HeaderContentsSelector } from "../../layout/header/Header";
|
|
8
7
|
import { Selector, SelectorItemSelector } from "./Selector";
|
|
9
8
|
|
|
10
9
|
const meta: Meta = {
|
|
@@ -99,10 +98,71 @@ const CustomStyled: Story = {
|
|
|
99
98
|
},
|
|
100
99
|
};
|
|
101
100
|
|
|
101
|
+
const manyValues = [
|
|
102
|
+
"First element",
|
|
103
|
+
"Apple",
|
|
104
|
+
"Pie",
|
|
105
|
+
"Dogs and cats",
|
|
106
|
+
"Flying vehicles",
|
|
107
|
+
"Random text that is very long",
|
|
108
|
+
"Computer",
|
|
109
|
+
"Leaflet",
|
|
110
|
+
"Jar of nuts",
|
|
111
|
+
"POE Network Switch",
|
|
112
|
+
];
|
|
113
|
+
|
|
114
|
+
const MultiLine: Story = {
|
|
115
|
+
render: (args) => {
|
|
116
|
+
const [current, setCurrent] = useState(args.value ?? "");
|
|
117
|
+
|
|
118
|
+
return (
|
|
119
|
+
<Header>
|
|
120
|
+
<Selector
|
|
121
|
+
{...args}
|
|
122
|
+
multiLine={true}
|
|
123
|
+
value={current}
|
|
124
|
+
values={manyValues}
|
|
125
|
+
onChange={(value: string) => {
|
|
126
|
+
setCurrent(value);
|
|
127
|
+
if (args.onChange) {
|
|
128
|
+
args.onChange(value);
|
|
129
|
+
}
|
|
130
|
+
}}
|
|
131
|
+
/>
|
|
132
|
+
</Header>
|
|
133
|
+
);
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
const Lengthy: Story = {
|
|
138
|
+
render: (args) => {
|
|
139
|
+
const [current, setCurrent] = useState(args.value ?? "");
|
|
140
|
+
|
|
141
|
+
return (
|
|
142
|
+
<Header css={{ [`& ${HeaderContentsSelector}`]: { overflow: "hidden" } }}>
|
|
143
|
+
<Selector
|
|
144
|
+
{...args}
|
|
145
|
+
values={manyValues}
|
|
146
|
+
multiLine={false}
|
|
147
|
+
value={current}
|
|
148
|
+
onChange={(value: string) => {
|
|
149
|
+
setCurrent(value);
|
|
150
|
+
if (args.onChange) {
|
|
151
|
+
args.onChange(value);
|
|
152
|
+
}
|
|
153
|
+
}}
|
|
154
|
+
/>
|
|
155
|
+
</Header>
|
|
156
|
+
);
|
|
157
|
+
},
|
|
158
|
+
};
|
|
159
|
+
|
|
102
160
|
export {
|
|
103
161
|
Primary,
|
|
104
162
|
WithinHeader,
|
|
105
163
|
CustomStyled,
|
|
164
|
+
Lengthy,
|
|
165
|
+
MultiLine,
|
|
106
166
|
};
|
|
107
167
|
|
|
108
168
|
export default meta;
|
|
@@ -1,8 +1,18 @@
|
|
|
1
|
-
import { styled } from "@stitches/react";
|
|
1
|
+
import { keyframes, styled } from "@stitches/react";
|
|
2
2
|
|
|
3
|
-
import { dimensionsPxToRem } from "../../../theme";
|
|
3
|
+
import { dimensionsPxToRem, fontPxToRem } from "../../../theme";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
const nudgeRight = keyframes({
|
|
6
|
+
"0%, 100%": { transform: "translateX(0)" },
|
|
7
|
+
"50%": { transform: "translateX(3px)" },
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
const nudgeLeft = keyframes({
|
|
11
|
+
"0%, 100%": { transform: "translateX(0)" },
|
|
12
|
+
"50%": { transform: "translateX(-3px)" },
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
const Root = styled("div", {
|
|
6
16
|
"--selector-text": "$colors$selectorText",
|
|
7
17
|
"--selector-active": "$colors$selectorActive",
|
|
8
18
|
|
|
@@ -10,4 +20,65 @@ export const Root = styled("div", {
|
|
|
10
20
|
"flex": 1,
|
|
11
21
|
"justifyContent": "center",
|
|
12
22
|
"gap": dimensionsPxToRem(114),
|
|
23
|
+
|
|
24
|
+
"variants": {
|
|
25
|
+
multiLine: {
|
|
26
|
+
true: {
|
|
27
|
+
flexWrap: "wrap",
|
|
28
|
+
rowGap: dimensionsPxToRem(60),
|
|
29
|
+
},
|
|
30
|
+
false: {
|
|
31
|
+
"flexWrap": "nowrap",
|
|
32
|
+
"overflowX": "auto",
|
|
33
|
+
"scrollbarWidth": "none",
|
|
34
|
+
"justifyContent": "flex-start",
|
|
35
|
+
"paddingRight": dimensionsPxToRem(60),
|
|
36
|
+
"&::-webkit-scrollbar": {
|
|
37
|
+
display: "none",
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
},
|
|
13
42
|
});
|
|
43
|
+
|
|
44
|
+
const Wrapper = styled("div", {
|
|
45
|
+
position: "relative",
|
|
46
|
+
display: "flex",
|
|
47
|
+
flex: 1,
|
|
48
|
+
overflow: "hidden",
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
const Arrow = styled("div", {
|
|
52
|
+
position: "absolute",
|
|
53
|
+
top: 0,
|
|
54
|
+
bottom: 0,
|
|
55
|
+
display: "flex",
|
|
56
|
+
alignItems: "center",
|
|
57
|
+
pointerEvents: "none",
|
|
58
|
+
fontSize: fontPxToRem(29),
|
|
59
|
+
color: "var(--selector-text)",
|
|
60
|
+
opacity: 0,
|
|
61
|
+
transition: "opacity 0.2s ease",
|
|
62
|
+
|
|
63
|
+
variants: {
|
|
64
|
+
side: {
|
|
65
|
+
right: {
|
|
66
|
+
right: 0,
|
|
67
|
+
paddingRight: dimensionsPxToRem(12),
|
|
68
|
+
animation: `${String(nudgeRight)} 1.5s ease-in-out 0.5s 2`,
|
|
69
|
+
},
|
|
70
|
+
left: {
|
|
71
|
+
left: 0,
|
|
72
|
+
paddingLeft: dimensionsPxToRem(12),
|
|
73
|
+
animation: `${String(nudgeLeft)} 1.5s ease-in-out 0.5s 2`,
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
visible: {
|
|
77
|
+
true: {
|
|
78
|
+
opacity: 0.65,
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
export { Arrow, Root, Wrapper };
|
|
@@ -1,26 +1,84 @@
|
|
|
1
|
-
import React, { forwardRef, useCallback, useState } from "react";
|
|
1
|
+
import React, { forwardRef, useCallback, useEffect, useState } from "react";
|
|
2
|
+
|
|
3
|
+
import { useForwardedRef } from "@bedrock-layout/use-forwarded-ref";
|
|
2
4
|
|
|
3
5
|
import type { Value } from "../../../types/form";
|
|
4
6
|
|
|
5
7
|
import { toObjectValue } from "../../../utils";
|
|
6
|
-
|
|
7
8
|
import { Item } from "./Item";
|
|
8
|
-
import { Root } from "./Selector.styled";
|
|
9
|
+
import { Arrow, Root, Wrapper } from "./Selector.styled";
|
|
9
10
|
|
|
10
11
|
type SelectorProps = {
|
|
11
|
-
values: Value<string
|
|
12
|
+
values: Array<Value<string>>;
|
|
12
13
|
value?: string;
|
|
13
14
|
onChange?: (value: string) => void;
|
|
15
|
+
multiLine?: boolean;
|
|
14
16
|
className?: string;
|
|
15
17
|
};
|
|
16
18
|
|
|
19
|
+
const FADE_SIZE = "62px";
|
|
20
|
+
const fadeRight = `linear-gradient(to right, black calc(100% - ${FADE_SIZE}), transparent)`;
|
|
21
|
+
const fadeLeft = `linear-gradient(to left, black calc(100% - ${FADE_SIZE}), transparent)`;
|
|
22
|
+
const fadeBoth = [
|
|
23
|
+
`linear-gradient(to right, transparent, black ${FADE_SIZE}, black calc(100% - ${FADE_SIZE}), transparent)`,
|
|
24
|
+
].join("");
|
|
25
|
+
|
|
26
|
+
const useScrollIndicators = (
|
|
27
|
+
ref: React.MutableRefObject<HTMLDivElement>,
|
|
28
|
+
enabled: boolean,
|
|
29
|
+
) => {
|
|
30
|
+
const [showRight, setShowRight] = useState(false);
|
|
31
|
+
const [showLeft, setShowLeft] = useState(false);
|
|
32
|
+
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
if (!enabled) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const el = ref.current;
|
|
39
|
+
|
|
40
|
+
const update = () => {
|
|
41
|
+
const canScroll = el.scrollWidth > el.clientWidth;
|
|
42
|
+
const atStart = el.scrollLeft <= 1;
|
|
43
|
+
const atEnd = el.scrollLeft + el.clientWidth >= el.scrollWidth - 1;
|
|
44
|
+
const right = canScroll && !atEnd;
|
|
45
|
+
const left = canScroll && !atStart;
|
|
46
|
+
setShowRight(right);
|
|
47
|
+
setShowLeft(left);
|
|
48
|
+
|
|
49
|
+
let mask = "";
|
|
50
|
+
if (left && right) { mask = fadeBoth; }
|
|
51
|
+
else if (right) { mask = fadeRight; }
|
|
52
|
+
else if (left) { mask = fadeLeft; }
|
|
53
|
+
el.style.maskImage = mask;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
update();
|
|
57
|
+
el.addEventListener("scroll", update, { passive: true });
|
|
58
|
+
|
|
59
|
+
const ro = new ResizeObserver(update);
|
|
60
|
+
ro.observe(el);
|
|
61
|
+
|
|
62
|
+
return () => {
|
|
63
|
+
el.removeEventListener("scroll", update);
|
|
64
|
+
ro.disconnect();
|
|
65
|
+
};
|
|
66
|
+
}, [ref, enabled]);
|
|
67
|
+
|
|
68
|
+
return { showRight, showLeft };
|
|
69
|
+
};
|
|
70
|
+
|
|
17
71
|
const Selector = forwardRef<HTMLDivElement, SelectorProps>((props, ref) => {
|
|
72
|
+
const innerRef = useForwardedRef(ref);
|
|
18
73
|
const [current, setCurrent] = useState(props.value);
|
|
74
|
+
const { showRight, showLeft } = useScrollIndicators(innerRef, props.multiLine === false);
|
|
75
|
+
|
|
76
|
+
const { onChange } = props;
|
|
19
77
|
|
|
20
78
|
const handleCurrent = useCallback((value: string) => {
|
|
21
79
|
setCurrent(value);
|
|
22
|
-
|
|
23
|
-
}, [
|
|
80
|
+
onChange?.(value);
|
|
81
|
+
}, [onChange]);
|
|
24
82
|
|
|
25
83
|
const crr = props.value ?? current;
|
|
26
84
|
|
|
@@ -28,7 +86,24 @@ const Selector = forwardRef<HTMLDivElement, SelectorProps>((props, ref) => {
|
|
|
28
86
|
const ov = toObjectValue(v);
|
|
29
87
|
return <Item key={ov.value} value={ov} onClick={handleCurrent} active={crr === ov.value} />;
|
|
30
88
|
});
|
|
31
|
-
|
|
89
|
+
|
|
90
|
+
const multiLineVariant = props.multiLine != null ? { multiLine: props.multiLine } : {};
|
|
91
|
+
|
|
92
|
+
const root = (
|
|
93
|
+
<Root ref={innerRef} className={props.className} {...multiLineVariant}>{vals}</Root>
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
if (props.multiLine === false) {
|
|
97
|
+
return (
|
|
98
|
+
<Wrapper>
|
|
99
|
+
<Arrow side={"left"} visible={showLeft}>{"‹"}</Arrow>
|
|
100
|
+
{root}
|
|
101
|
+
<Arrow side={"right"} visible={showRight}>{"›"}</Arrow>
|
|
102
|
+
</Wrapper>
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return root;
|
|
32
107
|
});
|
|
33
108
|
|
|
34
109
|
Selector.displayName = "Selector";
|
|
@@ -12,9 +12,13 @@ interface Props {
|
|
|
12
12
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
13
13
|
const Notification: React.FC<Props> = (props) => {
|
|
14
14
|
const [forceHide, setForceHide] = useState(false);
|
|
15
|
+
|
|
16
|
+
const toastId = props.toast.id;
|
|
17
|
+
const { onRemove } = props;
|
|
18
|
+
|
|
15
19
|
const handleRemove = useCallback(() => {
|
|
16
|
-
|
|
17
|
-
}, [
|
|
20
|
+
onRemove(toastId);
|
|
21
|
+
}, [toastId, onRemove]);
|
|
18
22
|
|
|
19
23
|
const handleForceHide = useCallback(() => {
|
|
20
24
|
setForceHide(true);
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type { Meta, StoryObj } from "@storybook/react-vite";
|
|
4
4
|
|
|
5
5
|
import { Div } from "../../native";
|
|
6
6
|
import { Button } from "../button/Button";
|
|
7
|
-
|
|
8
7
|
import { useToaster } from "./Toaster";
|
|
9
8
|
|
|
10
9
|
const meta: Meta = {
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import { useEffect } from "react";
|
|
2
|
+
|
|
2
3
|
import type React from "react";
|
|
3
4
|
|
|
4
|
-
import { useKeyPress } from "../../utils
|
|
5
|
+
import { useKeyPress } from "../../utils";
|
|
5
6
|
|
|
6
7
|
interface Props {
|
|
7
8
|
onPress: () => void;
|
|
8
9
|
}
|
|
9
10
|
|
|
10
|
-
const HandleEsc: React.FC<Props> = (
|
|
11
|
+
const HandleEsc: React.FC<Props> = ({ onPress }) => {
|
|
11
12
|
const pressed = useKeyPress("Escape");
|
|
12
13
|
|
|
13
14
|
useEffect(() => {
|
|
14
15
|
if (pressed) {
|
|
15
|
-
|
|
16
|
+
onPress();
|
|
16
17
|
}
|
|
17
|
-
}, [pressed]);
|
|
18
|
+
}, [pressed, onPress]);
|
|
18
19
|
|
|
19
20
|
return null;
|
|
20
21
|
};
|
package/src/utils/useTailSpin.ts
CHANGED
|
@@ -30,7 +30,7 @@ const useTailSpin = ({ size = DEFAULT_SIZE, color = DEFAULT_COLOR, speed = DEFAU
|
|
|
30
30
|
const encoded = encodeURIComponent(svg).replace(/'/gu, "%27")
|
|
31
31
|
.replace(/"/gu, "%22");
|
|
32
32
|
return `data:image/svg+xml,${encoded}`;
|
|
33
|
-
}, [size, color, speed]);
|
|
33
|
+
}, [size, color, speed, id]);
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
export {
|