uikit-react-public 0.49.6 → 0.50.1
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/dist/components/Button/Button.d.ts +8 -4
- package/dist/components/Button/Button.stories.d.ts +11 -2
- package/dist/components/Button/style/buttonPrimarySubtleStyle.d.ts +1 -1
- package/dist/components/Button/style/buttonSecondaryStyle.d.ts +1 -1
- package/dist/components/Button/style/buttonSecondarySubtleStyle.d.ts +1 -1
- package/dist/components/Button/style/buttonTertiaryDestructiveNoPaddingStyle.d.ts +4 -0
- package/dist/components/Button/style/buttonTertiaryDestructiveStyle.d.ts +1 -1
- package/dist/components/Button/style/buttonTertiaryNoPaddingStyle.d.ts +1 -1
- package/dist/components/Button/style/buttonTertiaryStyle.d.ts +1 -1
- package/dist/components/Filters/Filter.d.ts +20 -0
- package/dist/components/Filters/FilterPanel.d.ts +16 -0
- package/dist/components/Filters/Filters.context.d.ts +8 -0
- package/dist/components/Filters/Filters.d.ts +30 -0
- package/dist/components/Filters/Filters.stories.d.ts +17 -0
- package/dist/components/Filters/QuickFilter.d.ts +8 -0
- package/dist/components/Filters/__tests__/Filters.test.d.ts +1 -0
- package/dist/components/Filters/index.d.ts +6 -0
- package/dist/components/Overlay/Overlay.d.ts +1 -0
- package/dist/components/Overlay/Overlay.stories.d.ts +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/index.js +8807 -8141
- package/lib/components/Button/Button.mdx +12 -0
- package/lib/components/Button/Button.stories.tsx +46 -0
- package/lib/components/Button/Button.tsx +48 -25
- package/lib/components/Button/__tests__/Button.test.tsx +120 -1
- package/lib/components/Button/__tests__/__snapshots__/Button.test.tsx.snap +11 -11
- package/lib/components/Button/style/buttonAccentStyle.ts +2 -0
- package/lib/components/Button/style/buttonPrimaryDestructiveStyle.ts +2 -0
- package/lib/components/Button/style/buttonPrimaryStyle.ts +2 -0
- package/lib/components/Button/style/buttonPrimarySubtleStyle.ts +10 -11
- package/lib/components/Button/style/buttonPrimaryWarningStyle.ts +2 -0
- package/lib/components/Button/style/buttonSecondaryDestructiveStyle.ts +13 -7
- package/lib/components/Button/style/buttonSecondaryStyle.ts +49 -16
- package/lib/components/Button/style/buttonSecondarySubtleStyle.ts +15 -13
- package/lib/components/Button/style/buttonTertiaryDestructiveNoPaddingStyle.ts +34 -0
- package/lib/components/Button/style/buttonTertiaryDestructiveStyle.ts +9 -8
- package/lib/components/Button/style/buttonTertiaryNoPaddingStyle.ts +13 -15
- package/lib/components/Button/style/buttonTertiaryStyle.ts +10 -9
- package/lib/components/Filters/Filter.tsx +327 -0
- package/lib/components/Filters/FilterPanel.tsx +152 -0
- package/lib/components/Filters/Filters.context.ts +12 -0
- package/lib/components/Filters/Filters.mdx +75 -0
- package/lib/components/Filters/Filters.stories.tsx +354 -0
- package/lib/components/Filters/Filters.tsx +316 -0
- package/lib/components/Filters/QuickFilter.tsx +89 -0
- package/lib/components/Filters/__tests__/Filters.test.tsx +230 -0
- package/lib/components/Filters/index.ts +6 -0
- package/lib/components/Overlay/Overlay.tsx +9 -4
- package/lib/components/Overlay/__tests__/Overlay.test.tsx +39 -0
- package/lib/components/Table/subcomponents/Cell/__tests__/__snapshots__/Cell.test.tsx.snap +1 -1
- package/lib/components/index.ts +8 -0
- package/package.json +1 -1
|
@@ -2,16 +2,20 @@ import { ReactElement, ElementType, ComponentPropsWithRef } from 'react';
|
|
|
2
2
|
import { MarginProps } from '../common/marginsStyle';
|
|
3
3
|
export declare const NAME = "ucl-uikit-button";
|
|
4
4
|
type PolymorphicRef<C extends ElementType> = ComponentPropsWithRef<C>['ref'];
|
|
5
|
-
export type ButtonVariant = 'accent' | 'primary' | 'secondary' | 'tertiary' | 'primary-subtle' | 'secondary-subtle' | 'tertiary-no-padding' | 'primary-destructive' | 'secondary-destructive' | 'tertiary-destructive' | 'primary-warning';
|
|
5
|
+
export type ButtonVariant = 'accent' | 'primary' | 'secondary' | 'tertiary' | 'primary-subtle' | 'secondary-subtle' | 'tertiary-no-padding' | 'primary-destructive' | 'secondary-destructive' | 'tertiary-destructive' | 'tertiary-destructive-no-padding' | 'primary-warning';
|
|
6
6
|
type LegacySize = 'default';
|
|
7
7
|
export interface ButtonBaseProps {
|
|
8
8
|
variant?: ButtonVariant;
|
|
9
|
-
/** @deprecated Use
|
|
9
|
+
/** @deprecated Use a destructive variant directly */
|
|
10
10
|
destructive?: boolean;
|
|
11
11
|
size?: 'xsmall' | 'small' | 'medium' | 'large' | LegacySize;
|
|
12
|
+
/** Whether the button is rendered on a light background */
|
|
13
|
+
onLight?: boolean;
|
|
12
14
|
selected?: boolean;
|
|
13
15
|
disabled?: boolean;
|
|
14
|
-
icon?: ReactElement
|
|
16
|
+
icon?: ReactElement<{
|
|
17
|
+
className?: string;
|
|
18
|
+
}>;
|
|
15
19
|
iconPosition?: 'left' | 'right';
|
|
16
20
|
tooltip?: string;
|
|
17
21
|
loading?: boolean;
|
|
@@ -23,6 +27,6 @@ export type ButtonProps<C extends ElementType = 'button'> = {
|
|
|
23
27
|
ref?: PolymorphicRef<C>;
|
|
24
28
|
className?: string;
|
|
25
29
|
} & ButtonBaseProps & MarginProps & Omit<ComponentPropsWithRef<C>, keyof ButtonBaseProps | 'as'>;
|
|
26
|
-
declare const Button: <C extends ElementType = "button">({ as, variant, destructive, size, selected, disabled, icon, iconPosition, tooltip, loading, fullWidth, testId, ref, children, className, ...props }: ButtonProps<C>) => import("react").JSX.Element;
|
|
30
|
+
declare const Button: <C extends ElementType = "button">({ as, variant, destructive, size, onLight, selected, disabled, icon, iconPosition, tooltip, loading, fullWidth, testId, ref, children, className, ...props }: ButtonProps<C>) => import("react").JSX.Element;
|
|
27
31
|
declare const MemoizedButton: typeof Button;
|
|
28
32
|
export default MemoizedButton;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { StoryObj } from '@storybook/react-vite';
|
|
2
2
|
declare const meta: {
|
|
3
3
|
title: string;
|
|
4
|
-
component: <C extends import('react').ElementType = "button">({ as, variant, destructive, size, selected, disabled, icon, iconPosition, tooltip, loading, fullWidth, testId, ref, children, className, ...props }: import('./Button').ButtonProps<C>) => import("react").JSX.Element;
|
|
4
|
+
component: <C extends import('react').ElementType = "button">({ as, variant, destructive, size, onLight, selected, disabled, icon, iconPosition, tooltip, loading, fullWidth, testId, ref, children, className, ...props }: import('./Button').ButtonProps<C>) => import("react").JSX.Element;
|
|
5
5
|
parameters: {
|
|
6
6
|
layout: string;
|
|
7
7
|
};
|
|
8
8
|
argTypes: {
|
|
9
9
|
variant: {
|
|
10
|
-
options: readonly ["accent", "primary", "secondary", "tertiary", "primary-subtle", "secondary-subtle", "tertiary-no-padding", "primary-destructive", "secondary-destructive", "tertiary-destructive", "primary-warning"];
|
|
10
|
+
options: readonly ["accent", "primary", "secondary", "tertiary", "primary-subtle", "secondary-subtle", "tertiary-no-padding", "primary-destructive", "secondary-destructive", "tertiary-destructive", "tertiary-destructive-no-padding", "primary-warning"];
|
|
11
11
|
control: {
|
|
12
12
|
type: "select";
|
|
13
13
|
};
|
|
@@ -52,6 +52,13 @@ declare const meta: {
|
|
|
52
52
|
};
|
|
53
53
|
type: "boolean";
|
|
54
54
|
};
|
|
55
|
+
onLight: {
|
|
56
|
+
control: {
|
|
57
|
+
type: "boolean";
|
|
58
|
+
};
|
|
59
|
+
type: "boolean";
|
|
60
|
+
description: string;
|
|
61
|
+
};
|
|
55
62
|
disabled: {
|
|
56
63
|
control: {
|
|
57
64
|
type: "boolean";
|
|
@@ -237,6 +244,8 @@ export declare const Secondary: Story;
|
|
|
237
244
|
export declare const Tertiary: Story;
|
|
238
245
|
export declare const Accent: Story;
|
|
239
246
|
export declare const Destructive: Story;
|
|
247
|
+
export declare const DestructiveTertiaryNoPadding: Story;
|
|
248
|
+
export declare const OnDark: Story;
|
|
240
249
|
export declare const PrimarySubtle: Story;
|
|
241
250
|
export declare const Small: Story;
|
|
242
251
|
export declare const Large: Story;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ThemeType } from '../../../theme';
|
|
2
2
|
import { ButtonBaseProps } from '../Button';
|
|
3
|
-
declare const buttonPrimarySubtleStyle: (theme: ThemeType, selected: ButtonBaseProps["selected"], disabled: ButtonBaseProps["disabled"], loading: ButtonBaseProps["loading"]
|
|
3
|
+
declare const buttonPrimarySubtleStyle: (theme: ThemeType, selected: ButtonBaseProps["selected"], disabled: ButtonBaseProps["disabled"], loading: ButtonBaseProps["loading"]) => string;
|
|
4
4
|
export default buttonPrimarySubtleStyle;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ThemeType } from '../../../theme';
|
|
2
2
|
import { ButtonBaseProps } from '../Button';
|
|
3
|
-
declare const buttonSecondaryStyle: (theme: ThemeType, selected: ButtonBaseProps["selected"], disabled: ButtonBaseProps["disabled"], loading: ButtonBaseProps["loading"]) => string;
|
|
3
|
+
declare const buttonSecondaryStyle: (theme: ThemeType, selected: ButtonBaseProps["selected"], disabled: ButtonBaseProps["disabled"], loading: ButtonBaseProps["loading"], onLight: ButtonBaseProps["onLight"]) => string;
|
|
4
4
|
export default buttonSecondaryStyle;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ThemeType } from '../../../theme';
|
|
2
2
|
import { ButtonBaseProps } from '../Button';
|
|
3
|
-
declare const buttonSecondarySubtleStyle: (theme: ThemeType, selected: ButtonBaseProps["selected"], disabled: ButtonBaseProps["disabled"], loading: ButtonBaseProps["loading"]
|
|
3
|
+
declare const buttonSecondarySubtleStyle: (theme: ThemeType, selected: ButtonBaseProps["selected"], disabled: ButtonBaseProps["disabled"], loading: ButtonBaseProps["loading"]) => string;
|
|
4
4
|
export default buttonSecondarySubtleStyle;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ThemeType } from '../../../theme';
|
|
2
|
+
import { ButtonBaseProps } from '../Button';
|
|
3
|
+
declare const buttonTertiaryDestructiveNoPaddingStyle: (theme: ThemeType, disabled: ButtonBaseProps["disabled"], loading: ButtonBaseProps["loading"]) => string;
|
|
4
|
+
export default buttonTertiaryDestructiveNoPaddingStyle;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ThemeType } from '../../../theme';
|
|
2
2
|
import { ButtonBaseProps } from '../Button';
|
|
3
|
-
declare const buttonTertiaryDestructiveStyle: (theme: ThemeType, selected: ButtonBaseProps["selected"], disabled: ButtonBaseProps["disabled"], loading: ButtonBaseProps["loading"]
|
|
3
|
+
declare const buttonTertiaryDestructiveStyle: (theme: ThemeType, selected: ButtonBaseProps["selected"], disabled: ButtonBaseProps["disabled"], loading: ButtonBaseProps["loading"]) => string;
|
|
4
4
|
export default buttonTertiaryDestructiveStyle;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ThemeType } from '../../../theme';
|
|
2
2
|
import { ButtonBaseProps } from '../Button';
|
|
3
|
-
declare const buttonTertiaryNoPaddingStyle: (theme: ThemeType, disabled: ButtonBaseProps["disabled"], loading: ButtonBaseProps["loading"],
|
|
3
|
+
declare const buttonTertiaryNoPaddingStyle: (theme: ThemeType, disabled: ButtonBaseProps["disabled"], loading: ButtonBaseProps["loading"], onLight: ButtonBaseProps["onLight"]) => string;
|
|
4
4
|
export default buttonTertiaryNoPaddingStyle;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ThemeType } from '../../../theme';
|
|
2
2
|
import { ButtonBaseProps } from '../Button';
|
|
3
|
-
declare const buttonTertiaryStyle: (theme: ThemeType, selected: ButtonBaseProps["selected"], disabled: ButtonBaseProps["disabled"], loading: ButtonBaseProps["loading"]
|
|
3
|
+
declare const buttonTertiaryStyle: (theme: ThemeType, selected: ButtonBaseProps["selected"], disabled: ButtonBaseProps["disabled"], loading: ButtonBaseProps["loading"]) => string;
|
|
4
4
|
export default buttonTertiaryStyle;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export declare const NAME = "ucl-uikit-filter";
|
|
3
|
+
export interface FilterProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
|
4
|
+
label: string;
|
|
5
|
+
appliedCount?: number;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
open?: boolean;
|
|
8
|
+
defaultOpen?: boolean;
|
|
9
|
+
quickFilters?: ReactNode;
|
|
10
|
+
clearLabel?: string;
|
|
11
|
+
applyLabel?: string;
|
|
12
|
+
applyDisabled?: boolean;
|
|
13
|
+
onClear?: React.MouseEventHandler<HTMLButtonElement>;
|
|
14
|
+
onApply?: React.MouseEventHandler<HTMLButtonElement>;
|
|
15
|
+
panelClassName?: string;
|
|
16
|
+
onOpenChange?: (open: boolean) => void;
|
|
17
|
+
testId?: string;
|
|
18
|
+
}
|
|
19
|
+
declare const _default: import('react').MemoExoticComponent<({ label, appliedCount, disabled, open, defaultOpen, quickFilters, clearLabel, applyLabel, applyDisabled, onClear, onApply, panelClassName, onOpenChange, testId, className, children, ...props }: FilterProps) => import("react").JSX.Element>;
|
|
20
|
+
export default _default;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export declare const NAME = "ucl-uikit-filter-panel";
|
|
3
|
+
interface FilterPanelProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
label: string;
|
|
5
|
+
isDesktop: boolean;
|
|
6
|
+
closeFilter: () => void;
|
|
7
|
+
quickFilters?: ReactNode;
|
|
8
|
+
clearLabel?: string;
|
|
9
|
+
applyLabel?: string;
|
|
10
|
+
applyDisabled?: boolean;
|
|
11
|
+
onClear?: React.MouseEventHandler<HTMLButtonElement>;
|
|
12
|
+
onApply?: React.MouseEventHandler<HTMLButtonElement>;
|
|
13
|
+
testId?: string;
|
|
14
|
+
}
|
|
15
|
+
declare const _default: import('react').MemoExoticComponent<({ label, isDesktop, closeFilter, quickFilters, clearLabel, applyLabel, applyDisabled, onClear, onApply, testId, className, children, onClick, ...props }: FilterPanelProps) => import("react").JSX.Element>;
|
|
16
|
+
export default _default;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface FiltersContextValue {
|
|
2
|
+
isDesktop: boolean;
|
|
3
|
+
closeFilters: () => void;
|
|
4
|
+
activeFilterId: string | null;
|
|
5
|
+
setActiveFilterId: (id: string | null) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare const FiltersContext: import('react').Context<FiltersContextValue | null>;
|
|
8
|
+
export declare const useFiltersContext: () => FiltersContextValue | null;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { HTMLAttributes } from 'react';
|
|
2
|
+
import { default as Filter } from './Filter';
|
|
3
|
+
import { default as QuickFilter } from './QuickFilter';
|
|
4
|
+
export declare const NAME = "ucl-uikit-filters";
|
|
5
|
+
export interface FiltersProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onReset'> {
|
|
6
|
+
label?: string;
|
|
7
|
+
/** Accessible label for the icon-only mobile and tablet trigger. */
|
|
8
|
+
triggerLabel?: string;
|
|
9
|
+
appliedCount?: number;
|
|
10
|
+
open?: boolean;
|
|
11
|
+
defaultOpen?: boolean;
|
|
12
|
+
applyDisabled?: boolean;
|
|
13
|
+
applyLabel?: string;
|
|
14
|
+
resetLabel?: string;
|
|
15
|
+
onOpenChange?: (open: boolean) => void;
|
|
16
|
+
onApply?: React.MouseEventHandler<HTMLButtonElement>;
|
|
17
|
+
onReset?: React.MouseEventHandler<HTMLButtonElement>;
|
|
18
|
+
testId?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface FiltersSubComponents {
|
|
21
|
+
Filter: typeof Filter;
|
|
22
|
+
QuickFilter: typeof QuickFilter;
|
|
23
|
+
}
|
|
24
|
+
declare const FiltersWithSubComponents: import('react').NamedExoticComponent<FiltersProps> & {
|
|
25
|
+
readonly type: ({ label, triggerLabel, appliedCount, open, defaultOpen, applyDisabled, applyLabel, resetLabel, onOpenChange, onApply, onReset, testId, className, children, ...props }: FiltersProps) => import("react").JSX.Element;
|
|
26
|
+
} & {
|
|
27
|
+
Filter: import('react').MemoExoticComponent<({ label, appliedCount, disabled, open, defaultOpen, quickFilters, clearLabel, applyLabel, applyDisabled, onClear, onApply, panelClassName, onOpenChange, testId, className, children, ...props }: import('./Filter').FilterProps) => import("react").JSX.Element>;
|
|
28
|
+
QuickFilter: import('react').MemoExoticComponent<({ selected, disabled, testId, className, children, type, ...props }: import('./QuickFilter').QuickFilterProps) => import("react").JSX.Element>;
|
|
29
|
+
};
|
|
30
|
+
export default FiltersWithSubComponents;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { StoryObj } from '@storybook/react-vite';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: import('react').NamedExoticComponent<import('./Filters').FiltersProps> & {
|
|
5
|
+
readonly type: ({ label, triggerLabel, appliedCount, open, defaultOpen, applyDisabled, applyLabel, resetLabel, onOpenChange, onApply, onReset, testId, className, children, ...props }: import('./Filters').FiltersProps) => import("react").JSX.Element;
|
|
6
|
+
} & {
|
|
7
|
+
Filter: import('react').MemoExoticComponent<({ label, appliedCount, disabled, open, defaultOpen, quickFilters, clearLabel, applyLabel, applyDisabled, onClear, onApply, panelClassName, onOpenChange, testId, className, children, ...props }: import('./Filter').FilterProps) => import("react").JSX.Element>;
|
|
8
|
+
QuickFilter: import('react').MemoExoticComponent<({ selected, disabled, testId, className, children, type, ...props }: import('./QuickFilter').QuickFilterProps) => import("react").JSX.Element>;
|
|
9
|
+
};
|
|
10
|
+
parameters: {
|
|
11
|
+
layout: string;
|
|
12
|
+
};
|
|
13
|
+
tags: string[];
|
|
14
|
+
};
|
|
15
|
+
export default meta;
|
|
16
|
+
type Story = StoryObj<typeof meta>;
|
|
17
|
+
export declare const Default: Story;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ButtonHTMLAttributes } from 'react';
|
|
2
|
+
export declare const NAME = "ucl-uikit-quick-filter";
|
|
3
|
+
export interface QuickFilterProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
4
|
+
selected?: boolean;
|
|
5
|
+
testId?: string;
|
|
6
|
+
}
|
|
7
|
+
declare const _default: import('react').MemoExoticComponent<({ selected, disabled, testId, className, children, type, ...props }: QuickFilterProps) => import("react").JSX.Element>;
|
|
8
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default } from './Filters';
|
|
2
|
+
export { default as Filter } from './Filter';
|
|
3
|
+
export { default as QuickFilter } from './QuickFilter';
|
|
4
|
+
export type { FiltersProps, FiltersSubComponents } from './Filters';
|
|
5
|
+
export type { FilterProps } from './Filter';
|
|
6
|
+
export type { QuickFilterProps } from './QuickFilter';
|
|
@@ -12,6 +12,7 @@ export type OverlaySize = {
|
|
|
12
12
|
};
|
|
13
13
|
export interface OverlayProps extends HTMLAttributes<HTMLDivElement> {
|
|
14
14
|
reference: RefObject<HTMLElement | null>;
|
|
15
|
+
positioning?: 'reference' | 'viewport';
|
|
15
16
|
placement?: Placement;
|
|
16
17
|
strategy?: Strategy;
|
|
17
18
|
blanket?: boolean;
|
|
@@ -41,6 +41,7 @@ declare const meta: {
|
|
|
41
41
|
};
|
|
42
42
|
decorators: ((Story: import('storybook/internal/csf').PartialStoryFn<import('@storybook/react').ReactRenderer, {
|
|
43
43
|
reference: import('react').RefObject<HTMLElement | null>;
|
|
44
|
+
positioning?: "reference" | "viewport" | undefined;
|
|
44
45
|
placement?: import('@floating-ui/utils').Placement | undefined;
|
|
45
46
|
strategy?: import('@floating-ui/utils').Strategy | undefined;
|
|
46
47
|
blanket?: boolean | undefined;
|
|
@@ -24,6 +24,8 @@ export { default as Blanket } from './Blanket';
|
|
|
24
24
|
export type { BlanketProps } from './Blanket';
|
|
25
25
|
export { default as Overlay } from './Overlay';
|
|
26
26
|
export type { OverlayProps } from './Overlay';
|
|
27
|
+
export { default as Filters, Filter, QuickFilter } from './Filters';
|
|
28
|
+
export type { FiltersProps, FiltersSubComponents, FilterProps, QuickFilterProps, } from './Filters';
|
|
27
29
|
export { default as Snackbar } from './Snackbar';
|
|
28
30
|
export { Snackbars } from './Snackbar';
|
|
29
31
|
export type { SnackbarProps, SnackbarsItem, SnackbarsPlacement, SnackbarsProps, } from './Snackbar';
|