@univerjs/design 0.6.10 → 0.7.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/lib/cjs/index.js +162 -101
  2. package/lib/es/index.js +16634 -16218
  3. package/lib/index.css +1 -1
  4. package/lib/index.js +16634 -16218
  5. package/lib/types/components/button/Button.d.ts +1 -1
  6. package/lib/types/components/button/ButtonGroup.d.ts +8 -0
  7. package/lib/types/components/button/ButtonGroup.stories.d.ts +7 -0
  8. package/lib/types/components/button/index.d.ts +1 -0
  9. package/lib/types/components/dialog/Dialog.d.ts +15 -20
  10. package/lib/types/components/dialog/DialogPrimitive.d.ts +22 -0
  11. package/lib/types/components/dropdown/Dropdown.d.ts +2 -3
  12. package/lib/types/components/dropdown/index.d.ts +1 -1
  13. package/lib/types/components/dropdown-menu/DropdownMenu.d.ts +3 -2
  14. package/lib/types/components/dropdown-menu/DropdownMenuPrimitive.d.ts +6 -2
  15. package/lib/types/components/dropdown-menu/index.d.ts +1 -1
  16. package/lib/types/components/input/Input.d.ts +3 -1
  17. package/lib/types/components/input/Input.stories.d.ts +6 -0
  18. package/lib/types/components/input-number/InputNumber.d.ts +1 -0
  19. package/lib/types/components/kbd/Kbd.d.ts +20 -0
  20. package/lib/types/components/kbd/Kbd.stories.d.ts +7 -0
  21. package/lib/types/components/{select → kbd}/index.d.ts +1 -1
  22. package/lib/types/components/menu/Menu.d.ts +4 -0
  23. package/lib/types/components/select/LegacySelect.d.ts +44 -0
  24. package/lib/types/components/select/Select.d.ts +16 -18
  25. package/lib/types/components/toaster/Toaster.d.ts +5 -0
  26. package/lib/types/index.d.ts +7 -5
  27. package/lib/umd/index.js +165 -104
  28. package/package.json +12 -12
  29. package/lib/types/components/design-token/Palette.stories.d.ts +0 -8
  30. package/lib/types/components/side-menu/index.d.ts +0 -41
  31. package/lib/types/components/side-menu/side-menu.stories.d.ts +0 -16
@@ -1,7 +1,7 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
2
  import { ButtonHTMLAttributes } from 'react';
3
3
  export declare const buttonVariants: (props?: ({
4
- variant?: "link" | "default" | "text" | "primary" | null | undefined;
4
+ variant?: "link" | "default" | "text" | "primary" | "danger" | null | undefined;
5
5
  size?: "middle" | "small" | "large" | null | undefined;
6
6
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
7
  export interface IButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
@@ -0,0 +1,8 @@
1
+ import { ReactElement } from 'react';
2
+ import { IButtonProps } from './Button';
3
+ export interface IButtonGroupProps {
4
+ className?: string;
5
+ orientation?: 'horizontal' | 'vertical';
6
+ children: ReactElement<IButtonProps>[];
7
+ }
8
+ export declare const ButtonGroup: ({ className, orientation, children, }: IButtonGroupProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { ButtonGroup } from './ButtonGroup';
3
+ declare const meta: Meta<typeof ButtonGroup>;
4
+ export default meta;
5
+ export declare const ButtonGroupBasic: {
6
+ render(): import("react/jsx-runtime").JSX.Element;
7
+ };
@@ -14,3 +14,4 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  export { Button, type IButtonProps } from './Button';
17
+ export { ButtonGroup, type IButtonGroupProps } from './ButtonGroup';
@@ -1,16 +1,15 @@
1
- import { ModalStyles } from 'rc-dialog/lib/IDialogPropTypes';
2
- import { default as React } from 'react';
1
+ import { CSSProperties, ReactNode } from 'react';
3
2
  export interface IDialogProps {
4
- children: React.ReactNode;
3
+ children: ReactNode;
5
4
  /**
6
5
  * The style of the dialog.
7
6
  */
8
- style?: React.CSSProperties;
7
+ style?: CSSProperties;
9
8
  /**
10
9
  * Whether the dialog is visible.
11
10
  * @default false
12
11
  */
13
- visible?: boolean;
12
+ open?: boolean;
14
13
  /**
15
14
  * The width of the dialog.
16
15
  */
@@ -18,7 +17,7 @@ export interface IDialogProps {
18
17
  /**
19
18
  * The title of the dialog.
20
19
  */
21
- title?: React.ReactNode;
20
+ title?: ReactNode;
22
21
  /**
23
22
  * Whether the dialog can be dragged. If a dialog is draggable, the backdrop would be hidden and
24
23
  * the wrapper container would not response to user's mouse events.
@@ -26,10 +25,6 @@ export interface IDialogProps {
26
25
  * @default false
27
26
  */
28
27
  draggable?: boolean;
29
- /**
30
- * The close icon of the dialog.
31
- */
32
- closeIcon?: React.ReactNode;
33
28
  /**
34
29
  * The default position of the dialog.
35
30
  */
@@ -50,11 +45,7 @@ export interface IDialogProps {
50
45
  /**
51
46
  * The footer of the dialog.
52
47
  */
53
- footer?: React.ReactNode;
54
- /**
55
- * Callback when the dialog is closed.
56
- */
57
- onClose?: () => void;
48
+ footer?: ReactNode;
58
49
  /**
59
50
  * Whether the dialog should show a mask.
60
51
  */
@@ -63,10 +54,6 @@ export interface IDialogProps {
63
54
  * additional className for dialog
64
55
  */
65
56
  className?: string;
66
- /**
67
- * The style of the customize.
68
- */
69
- dialogStyles?: ModalStyles;
70
57
  /**
71
58
  * whether show close button
72
59
  */
@@ -80,9 +67,17 @@ export interface IDialogProps {
80
67
  * @default true
81
68
  */
82
69
  keyboard?: boolean;
70
+ /**
71
+ * The callback function when the open state changes.
72
+ */
73
+ onOpenChange?: (open: boolean) => void;
74
+ /**
75
+ * The callback function when the dialog is closed.
76
+ */
77
+ onClose?: () => void;
83
78
  showOk?: boolean;
84
79
  showCancel?: boolean;
85
80
  onOk?: () => void;
86
81
  onCancel?: () => void;
87
82
  }
88
- export declare function Dialog(props: IDialogProps): import("react/jsx-runtime").JSX.Element | null;
83
+ export declare function Dialog(props: IDialogProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,22 @@
1
+ import { HTMLAttributes } from 'react';
2
+ declare const Dialog: import('react').FC<import('@radix-ui/react-dialog').DialogProps>;
3
+ declare const DialogTrigger: import('react').ForwardRefExoticComponent<import('@radix-ui/react-dialog').DialogTriggerProps & import('react').RefAttributes<HTMLButtonElement>>;
4
+ declare const DialogPortal: import('react').FC<import('@radix-ui/react-dialog').DialogPortalProps>;
5
+ declare const DialogClose: import('react').ForwardRefExoticComponent<import('@radix-ui/react-dialog').DialogCloseProps & import('react').RefAttributes<HTMLButtonElement>>;
6
+ declare const DialogOverlay: import('react').ForwardRefExoticComponent<Omit<import('@radix-ui/react-dialog').DialogOverlayProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
7
+ interface IDialogContentProps {
8
+ closable?: boolean;
9
+ onClickClose?: () => void;
10
+ }
11
+ declare const DialogContent: import('react').ForwardRefExoticComponent<Omit<import('@radix-ui/react-dialog').DialogContentProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & IDialogContentProps & import('react').RefAttributes<HTMLDivElement>>;
12
+ declare const DialogHeader: {
13
+ ({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
14
+ displayName: string;
15
+ };
16
+ declare const DialogFooter: {
17
+ ({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
18
+ displayName: string;
19
+ };
20
+ declare const DialogTitle: import('react').ForwardRefExoticComponent<Omit<import('@radix-ui/react-dialog').DialogTitleProps & import('react').RefAttributes<HTMLHeadingElement>, "ref"> & import('react').RefAttributes<HTMLHeadingElement>>;
21
+ declare const DialogDescription: import('react').ForwardRefExoticComponent<Omit<import('@radix-ui/react-dialog').DialogDescriptionProps & import('react').RefAttributes<HTMLParagraphElement>, "ref"> & import('react').RefAttributes<HTMLParagraphElement>>;
22
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, };
@@ -1,11 +1,10 @@
1
1
  import { Content } from '@radix-ui/react-popover';
2
2
  import { ComponentProps, ReactNode } from 'react';
3
- interface IDropdownProps {
3
+ export interface IDropdownProps extends ComponentProps<typeof Content> {
4
4
  children: ReactNode;
5
5
  overlay: ReactNode;
6
6
  disabled?: boolean;
7
7
  open?: boolean;
8
8
  onOpenChange?: (open: boolean) => void;
9
9
  }
10
- export declare function Dropdown(props: IDropdownProps & ComponentProps<typeof Content>): import("react/jsx-runtime").JSX.Element;
11
- export {};
10
+ export declare function Dropdown(props: IDropdownProps): import("react/jsx-runtime").JSX.Element;
@@ -13,4 +13,4 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export { Dropdown } from './Dropdown';
16
+ export { Dropdown, type IDropdownProps } from './Dropdown';
@@ -13,6 +13,7 @@ type DropdownMenu = {
13
13
  type?: 'radio';
14
14
  className?: string;
15
15
  value: string;
16
+ hideIndicator?: boolean;
16
17
  options: {
17
18
  value: string;
18
19
  label: ReactNode;
@@ -20,12 +21,12 @@ type DropdownMenu = {
20
21
  }[];
21
22
  onSelect?: (item: string) => void;
22
23
  };
23
- export interface IDropdownProps {
24
+ export interface IDropdownMenuProps extends ComponentProps<typeof DropdownMenuContent> {
24
25
  children: ReactNode;
25
26
  items: DropdownMenu[];
26
27
  disabled?: boolean;
27
28
  open?: boolean;
28
29
  onOpenChange?: (open: boolean) => void;
29
30
  }
30
- export declare function DropdownMenu(props: IDropdownProps & ComponentProps<typeof DropdownMenuContent>): import("react/jsx-runtime").JSX.Element;
31
+ export declare function DropdownMenu(props: IDropdownMenuProps): import("react/jsx-runtime").JSX.Element;
31
32
  export {};
@@ -15,8 +15,12 @@ declare function DropdownMenuItem({ className, inset, variant, ...props }: Compo
15
15
  inset?: boolean;
16
16
  variant?: 'default' | 'destructive';
17
17
  }): import("react/jsx-runtime").JSX.Element;
18
- declare function DropdownMenuCheckboxItem({ className, children, checked, ...props }: ComponentProps<typeof CheckboxItem>): import("react/jsx-runtime").JSX.Element;
19
- declare function DropdownMenuRadioItem({ className, children, ...props }: ComponentProps<typeof RadioItem>): import("react/jsx-runtime").JSX.Element;
18
+ declare function DropdownMenuCheckboxItem({ className, children, hideIndicator, checked, ...props }: ComponentProps<typeof CheckboxItem> & {
19
+ hideIndicator?: boolean;
20
+ }): import("react/jsx-runtime").JSX.Element;
21
+ declare function DropdownMenuRadioItem({ className, children, hideIndicator, ...props }: ComponentProps<typeof RadioItem> & {
22
+ hideIndicator?: boolean;
23
+ }): import("react/jsx-runtime").JSX.Element;
20
24
  declare function DropdownMenuLabel({ className, inset, ...props }: ComponentProps<typeof Label> & {
21
25
  inset?: boolean;
22
26
  }): import("react/jsx-runtime").JSX.Element;
@@ -13,4 +13,4 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export { DropdownMenu, type IDropdownProps } from './DropdownMenu';
16
+ export { DropdownMenu, type IDropdownMenuProps } from './DropdownMenu';
@@ -1,4 +1,5 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
+ import { default as React } from 'react';
2
3
  type InputProps = React.InputHTMLAttributes<HTMLInputElement>;
3
4
  export declare const inputVariants: (props?: ({
4
5
  size?: "middle" | "small" | "large" | null | undefined;
@@ -17,6 +18,7 @@ export interface IInputProps extends Pick<InputProps, 'onFocus' | 'onBlur'>, Var
17
18
  onChange?: (value: string) => void;
18
19
  inputClass?: string;
19
20
  inputStyle?: React.CSSProperties;
21
+ slot?: React.ReactNode;
20
22
  }
21
- export declare const Input: import('react').ForwardRefExoticComponent<IInputProps & import('react').RefAttributes<HTMLInputElement>>;
23
+ export declare const Input: React.ForwardRefExoticComponent<IInputProps & React.RefAttributes<HTMLInputElement>>;
22
24
  export {};
@@ -11,3 +11,9 @@ export declare const InputSize: {
11
11
  export declare const InputDisabled: {
12
12
  render(): import("react/jsx-runtime").JSX.Element;
13
13
  };
14
+ export declare const Clear: {
15
+ render(): import("react/jsx-runtime").JSX.Element;
16
+ };
17
+ export declare const ClearWithPage: {
18
+ render(): import("react/jsx-runtime").JSX.Element;
19
+ };
@@ -15,5 +15,6 @@ export interface IInputNumberProps extends Omit<React.InputHTMLAttributes<HTMLIn
15
15
  onChange?: (value: number | null) => void;
16
16
  onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;
17
17
  onPressEnter?: (e: React.KeyboardEvent<HTMLInputElement>) => void;
18
+ allowEmpty?: boolean;
18
19
  }
19
20
  export declare const InputNumber: React.ForwardRefExoticComponent<IInputNumberProps & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Co., Ltd.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export interface IKBDProps {
17
+ keyboard: string;
18
+ className?: string;
19
+ }
20
+ export declare function KBD(props: IKBDProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { KBD } from './Kbd';
3
+ declare const meta: Meta<typeof KBD>;
4
+ export default meta;
5
+ export declare const KBDBasic: {
6
+ render(): import("react/jsx-runtime").JSX.Element;
7
+ };
@@ -13,4 +13,4 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export { type ISelectProps, Select } from './Select';
16
+ export { type IKBDProps, KBD } from './Kbd';
@@ -1,10 +1,14 @@
1
1
  import { MenuItemGroupProps, MenuItemProps, MenuProps, MenuRef, SubMenuProps } from 'rc-menu';
2
2
  import { default as React } from 'react';
3
+ /** @deprecated */
3
4
  export declare const Menu: React.ForwardRefExoticComponent<MenuProps & {
4
5
  wrapperClass?: string;
5
6
  } & React.RefAttributes<MenuRef>>;
7
+ /** @deprecated */
6
8
  export declare function MenuItem(props: MenuItemProps): import("react/jsx-runtime").JSX.Element;
9
+ /** @deprecated */
7
10
  export declare function SubMenu(props: SubMenuProps): import("react/jsx-runtime").JSX.Element;
11
+ /** @deprecated */
8
12
  export declare function MenuItemGroup(props: MenuItemGroupProps): import("react/jsx-runtime").JSX.Element;
9
13
  export interface ITinyMenuItem {
10
14
  onClick: () => void;
@@ -0,0 +1,44 @@
1
+ import { LabelInValueType } from 'rc-select/lib/Select';
2
+ import { CSSProperties, JSXElementConstructor, ReactElement, ReactNode } from 'react';
3
+ /** @deprecated */
4
+ interface ILegacyOption {
5
+ label?: string | ReactNode;
6
+ value?: string;
7
+ options?: ILegacyOption[];
8
+ }
9
+ /** @deprecated */
10
+ export interface ILegacySelectProps {
11
+ /**
12
+ * The value of select
13
+ */
14
+ value: string;
15
+ /**
16
+ * The options of select
17
+ * @default []
18
+ */
19
+ options?: ILegacyOption[];
20
+ /**
21
+ * The callback function that is triggered when the value is changed
22
+ */
23
+ onChange: (value: string) => void;
24
+ style?: CSSProperties;
25
+ /**
26
+ * Whether the borderless style is used
27
+ * @default false
28
+ */
29
+ borderless?: boolean;
30
+ className?: string;
31
+ /**
32
+ * select mode
33
+ */
34
+ mode?: 'combobox' | 'multiple' | 'tags' | undefined;
35
+ dropdownRender?: (menu: ReactElement<any, string | JSXElementConstructor<any>>) => ReactElement<any, string | JSXElementConstructor<any>>;
36
+ labelRender?: ((props: LabelInValueType) => ReactNode) | undefined;
37
+ open?: boolean;
38
+ dropdownStyle?: CSSProperties;
39
+ onDropdownVisibleChange?: (open: boolean) => void;
40
+ disabled?: boolean;
41
+ }
42
+ /** @deprecated */
43
+ export declare function LegacySelect(props: ILegacySelectProps): import("react/jsx-runtime").JSX.Element | null;
44
+ export {};
@@ -1,41 +1,39 @@
1
- import { LabelInValueType } from 'rc-select/lib/Select';
2
- import { CSSProperties, JSXElementConstructor, ReactElement, ReactNode } from 'react';
1
+ import { ReactNode } from 'react';
3
2
  interface IOption {
4
3
  label?: string | ReactNode;
5
4
  value?: string;
6
5
  options?: IOption[];
7
6
  }
8
7
  export interface ISelectProps {
8
+ className?: string;
9
9
  /**
10
10
  * The value of select
11
11
  */
12
12
  value: string;
13
+ /**
14
+ * select mode
15
+ * @default 'combobox'
16
+ */
17
+ mode?: 'combobox' | 'multiple';
18
+ /**
19
+ * Whether the select is disabled
20
+ * @default false
21
+ */
22
+ disabled?: boolean;
13
23
  /**
14
24
  * The options of select
15
25
  * @default []
16
26
  */
17
27
  options?: IOption[];
18
28
  /**
19
- * The callback function that is triggered when the value is changed
20
- */
21
- onChange: (value: string) => void;
22
- style?: CSSProperties;
23
- /**
24
- * Whether the borderless style is used
29
+ * The style of select
25
30
  * @default false
26
31
  */
27
32
  borderless?: boolean;
28
- className?: string;
29
33
  /**
30
- * select mode
34
+ * The callback function that is triggered when the value is changed
31
35
  */
32
- mode?: 'combobox' | 'multiple' | 'tags' | undefined;
33
- dropdownRender?: (menu: ReactElement<any, string | JSXElementConstructor<any>>) => ReactElement<any, string | JSXElementConstructor<any>>;
34
- labelRender?: ((props: LabelInValueType) => ReactNode) | undefined;
35
- open?: boolean;
36
- dropdownStyle?: CSSProperties;
37
- onDropdownVisibleChange?: (open: boolean) => void;
38
- disabled?: boolean;
36
+ onChange: (value: string) => void;
39
37
  }
40
- export declare function Select(props: ISelectProps): import("react/jsx-runtime").JSX.Element | null;
38
+ export declare function Select(props: ISelectProps): import("react/jsx-runtime").JSX.Element;
41
39
  export {};
@@ -0,0 +1,5 @@
1
+ import { ComponentProps } from 'react';
2
+ import { Toaster as Sonner, toast } from 'sonner';
3
+ export type IToasterProps = ComponentProps<typeof Sonner>;
4
+ declare const Toaster: ({ visibleToasts, ...props }: IToasterProps) => import("react/jsx-runtime").JSX.Element;
5
+ export { toast, Toaster };
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import './global.css';
17
17
  export { Avatar, type IAvatarProps } from './components/avatar';
18
- export { Button, type IButtonProps } from './components/button';
18
+ export { Button, ButtonGroup, type IButtonGroupProps, type IButtonProps } from './components/button';
19
19
  export { CascaderList, type ICascaderListProps, type ICascaderOption } from './components/cascader-list';
20
20
  export { Checkbox, type ICheckboxProps } from './components/checkbox';
21
21
  export { CheckboxGroup, type ICheckboxGroupProps } from './components/checkbox-group';
@@ -25,7 +25,7 @@ export { Confirm, type IConfirmProps } from './components/confirm';
25
25
  export { DatePanel, DatePicker, type IDatePanelProps, type IDatePickerProps } from './components/date-picker';
26
26
  export { Dialog, type IDialogProps } from './components/dialog';
27
27
  export { DropdownLegacy, type IDropdownLegacyProps } from './components/dropdown-legacy';
28
- export { Dropdown } from './components/dropdown';
28
+ export { Dropdown, type IDropdownProps } from './components/dropdown';
29
29
  export { FormDualColumnLayout, FormLayout, type IFormDualColumnLayoutProps, type IFormLayoutProps } from './components/form-layout';
30
30
  export { type IInputProps, Input } from './components/input';
31
31
  export { type IInputNumberProps, InputNumber } from './components/input-number';
@@ -36,7 +36,8 @@ export { type IPopupProps, Popup } from './components/popup';
36
36
  export { type IRadioProps, Radio } from './components/radio';
37
37
  export { type IRadioGroupProps, RadioGroup } from './components/radio-group';
38
38
  export { type IScrollbarProps, Scrollbar } from './components/scrollbar';
39
- export { type ISelectProps, Select } from './components/select';
39
+ export { type ILegacySelectProps, LegacySelect } from './components/select/LegacySelect';
40
+ export { type ISelectProps, Select } from './components/select/Select';
40
41
  export { type ISelectListProps, SelectList } from './components/select-list';
41
42
  export { Segmented } from './components/segmented';
42
43
  export { type ITooltipProps, Tooltip } from './components/tooltip';
@@ -49,7 +50,8 @@ export { clsx } from './helper/clsx';
49
50
  export { resizeObserverCtor } from './helper/resize-observer';
50
51
  export { render, unmount } from './helper/react-dom';
51
52
  export { isBrowser } from './helper/is-browser';
52
- export { DropdownMenu, type IDropdownProps } from './components/dropdown-menu';
53
+ export { DropdownMenu, type IDropdownMenuProps } from './components/dropdown-menu';
53
54
  export { Separator } from './components/separator';
54
55
  export { DateRangePicker } from './components/date-range-picker';
55
- export * from './components/side-menu';
56
+ export { type IKBDProps, KBD } from './components/kbd';
57
+ export { type IToasterProps, toast, Toaster } from './components/toaster/Toaster';