@veracity/vui 1.4.0 → 1.5.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.
- package/dist/cjs/accordion/accordion.d.ts +6 -0
- package/dist/cjs/accordion/accordion.d.ts.map +1 -0
- package/dist/cjs/accordion/accordion.js +39 -0
- package/dist/cjs/accordion/accordion.types.d.ts +25 -0
- package/dist/cjs/accordion/accordion.types.d.ts.map +1 -0
- package/dist/cjs/accordion/accordion.types.js +2 -0
- package/dist/cjs/accordion/accordionItem.d.ts +5 -0
- package/dist/cjs/accordion/accordionItem.d.ts.map +1 -0
- package/dist/cjs/accordion/accordionItem.js +68 -0
- package/dist/cjs/accordion/accordionItemArrow.d.ts +5 -0
- package/dist/cjs/accordion/accordionItemArrow.d.ts.map +1 -0
- package/dist/cjs/accordion/accordionItemArrow.js +12 -0
- package/dist/cjs/accordion/index.d.ts +5 -0
- package/dist/cjs/accordion/index.d.ts.map +1 -0
- package/dist/cjs/accordion/index.js +25 -0
- package/dist/cjs/accordion/theme.d.ts +8 -0
- package/dist/cjs/accordion/theme.d.ts.map +1 -0
- package/dist/cjs/accordion/theme.js +12 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/theme/components.d.ts +6 -0
- package/dist/cjs/theme/components.d.ts.map +1 -1
- package/dist/cjs/theme/components.js +72 -70
- package/dist/cjs/theme/defaultTheme.d.ts +6 -0
- package/dist/cjs/theme/defaultTheme.d.ts.map +1 -1
- package/dist/cjs/toast/toast.d.ts +1 -0
- package/dist/cjs/toast/toast.d.ts.map +1 -1
- package/dist/cjs/toast/toast.js +3 -1
- package/dist/cjs/toast/toast.types.d.ts +3 -1
- package/dist/cjs/toast/toast.types.d.ts.map +1 -1
- package/dist/cjs/toast/useToast.d.ts +9 -6
- package/dist/cjs/toast/useToast.d.ts.map +1 -1
- package/dist/cjs/toast/useToast.js +14 -12
- package/dist/esm/accordion/accordion.d.ts +6 -0
- package/dist/esm/accordion/accordion.d.ts.map +1 -0
- package/dist/esm/accordion/accordion.js +21 -0
- package/dist/esm/accordion/accordion.types.d.ts +25 -0
- package/dist/esm/accordion/accordion.types.d.ts.map +1 -0
- package/dist/esm/accordion/accordion.types.js +1 -0
- package/dist/esm/accordion/accordionItem.d.ts +5 -0
- package/dist/esm/accordion/accordionItem.d.ts.map +1 -0
- package/dist/esm/accordion/accordionItem.js +27 -0
- package/dist/esm/accordion/accordionItemArrow.d.ts +5 -0
- package/dist/esm/accordion/accordionItemArrow.d.ts.map +1 -0
- package/dist/esm/accordion/accordionItemArrow.js +7 -0
- package/dist/esm/accordion/index.d.ts +5 -0
- package/dist/esm/accordion/index.d.ts.map +1 -0
- package/dist/esm/accordion/index.js +4 -0
- package/dist/esm/accordion/theme.d.ts +8 -0
- package/dist/esm/accordion/theme.d.ts.map +1 -0
- package/dist/esm/accordion/theme.js +10 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/theme/components.d.ts +6 -0
- package/dist/esm/theme/components.d.ts.map +1 -1
- package/dist/esm/theme/components.js +2 -0
- package/dist/esm/theme/defaultTheme.d.ts +6 -0
- package/dist/esm/theme/defaultTheme.d.ts.map +1 -1
- package/dist/esm/toast/toast.d.ts +1 -0
- package/dist/esm/toast/toast.d.ts.map +1 -1
- package/dist/esm/toast/toast.js +2 -1
- package/dist/esm/toast/toast.types.d.ts +3 -1
- package/dist/esm/toast/toast.types.d.ts.map +1 -1
- package/dist/esm/toast/useToast.d.ts +9 -6
- package/dist/esm/toast/useToast.d.ts.map +1 -1
- package/dist/esm/toast/useToast.js +13 -11
- package/package.json +1 -1
- package/src/accordion/accordion.tsx +33 -0
- package/src/accordion/accordion.types.ts +38 -0
- package/src/accordion/accordionItem.tsx +59 -0
- package/src/accordion/accordionItemArrow.tsx +11 -0
- package/src/accordion/index.ts +4 -0
- package/src/accordion/theme.ts +14 -0
- package/src/index.ts +1 -0
- package/src/theme/components.ts +2 -0
- package/src/toast/toast.tsx +4 -2
- package/src/toast/toast.types.ts +4 -1
- package/src/toast/useToast.tsx +20 -11
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AccordionProps } from './accordion.types';
|
|
2
|
+
export declare const AccordionBase: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("..").SystemProps, never>;
|
|
3
|
+
/** [BETA] Allows to show and hide sections of related content on a page. */
|
|
4
|
+
export declare const Accordion: import("../core").VuiComponent<"div", AccordionProps>;
|
|
5
|
+
export default Accordion;
|
|
6
|
+
//# sourceMappingURL=accordion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/accordion/accordion.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAsB,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGtE,eAAO,MAAM,aAAa,+HAIzB,CAAA;AAED,4EAA4E;AAC5E,eAAO,MAAM,SAAS,uDAepB,CAAA;AAEF,eAAe,SAAS,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { omitThemingProps, styled, useStyleConfig, vui } from '../core';
|
|
3
|
+
import List from '../list';
|
|
4
|
+
import { cs, filterUndefined } from '../utils';
|
|
5
|
+
import AccordionItem from './accordionItem';
|
|
6
|
+
export const AccordionBase = styled.divBox `
|
|
7
|
+
display: flex;
|
|
8
|
+
min-width: 0;
|
|
9
|
+
transition-duration: normal;
|
|
10
|
+
`;
|
|
11
|
+
/** [BETA] Allows to show and hide sections of related content on a page. */
|
|
12
|
+
export const Accordion = vui((props, ref) => {
|
|
13
|
+
const { className, children, items, ...rest } = omitThemingProps(props);
|
|
14
|
+
const styles = useStyleConfig('Accordion', props);
|
|
15
|
+
const aliasedProps = filterUndefined({});
|
|
16
|
+
return (React.createElement(AccordionBase, { className: cs('vui-accordion', className), ref: ref, ...styles, ...aliasedProps, ...rest },
|
|
17
|
+
React.createElement(List, { w: "100%" }, items
|
|
18
|
+
? items?.map?.((item, key) => React.createElement(AccordionItem, { key: key, ...item }))
|
|
19
|
+
: children)));
|
|
20
|
+
});
|
|
21
|
+
export default Accordion;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ListItemProps } from '../list';
|
|
3
|
+
import { SystemProps } from '../system';
|
|
4
|
+
import { ThemingProps } from '../theme';
|
|
5
|
+
export declare type AccordionProps = SystemProps & ThemingProps<'Accordion'> & {
|
|
6
|
+
items?: AccordionItemProps[];
|
|
7
|
+
};
|
|
8
|
+
export declare type AccordionItemId = string | number;
|
|
9
|
+
export declare type AccordionOnToggleEvent = {
|
|
10
|
+
id: AccordionItemId;
|
|
11
|
+
collapsed: boolean;
|
|
12
|
+
};
|
|
13
|
+
export declare type AccordionItemProps = ListItemProps & {
|
|
14
|
+
id: AccordionItemId;
|
|
15
|
+
className?: string;
|
|
16
|
+
children?: ReactNode;
|
|
17
|
+
content?: ReactNode;
|
|
18
|
+
collapsed?: boolean;
|
|
19
|
+
title?: string;
|
|
20
|
+
onToggle?: (event: AccordionOnToggleEvent) => void;
|
|
21
|
+
};
|
|
22
|
+
export declare type AccordionItemArrowProps = {
|
|
23
|
+
collapsed?: boolean;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=accordion.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.types.d.ts","sourceRoot":"","sources":["../../../src/accordion/accordion.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,oBAAY,cAAc,GAAG,WAAW,GACtC,YAAY,CAAC,WAAW,CAAC,GAAG;IAC1B,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAC7B,CAAA;AAEH,oBAAY,eAAe,GAAG,MAAM,GAAG,MAAM,CAAA;AAE7C,oBAAY,sBAAsB,GAAG;IACnC,EAAE,EAAE,eAAe,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,oBAAY,kBAAkB,GAAG,aAAa,GAAG;IAE/C,EAAE,EAAE,eAAe,CAAA;IAEnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,QAAQ,CAAC,EAAE,SAAS,CAAA;IAEpB,OAAO,CAAC,EAAE,SAAS,CAAA;IAEnB,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAA;CACnD,CAAA;AAED,oBAAY,uBAAuB,GAAG;IACpC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordionItem.d.ts","sourceRoot":"","sources":["../../../src/accordion/accordionItem.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAGtD,yBAAyB;AACzB,eAAO,MAAM,aAAa,UAAW,kBAAkB,gBA8CtD,CAAA;AAED,eAAe,aAAa,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import { Box } from '../box';
|
|
3
|
+
import { omitThemingProps } from '../core';
|
|
4
|
+
import { ListItem } from '../list';
|
|
5
|
+
import { cs } from '../utils';
|
|
6
|
+
import AccordionItemArrow from './accordionItemArrow';
|
|
7
|
+
/** An accordion item. */
|
|
8
|
+
export const AccordionItem = (props) => {
|
|
9
|
+
const { className, children, id, content, disabled, title, collapsed, onToggle, ...rest } = omitThemingProps(props);
|
|
10
|
+
const [collapsedInternal, setIsCollapsedInternal] = useState(false);
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
setIsCollapsedInternal(!!collapsed);
|
|
13
|
+
}, [collapsed]);
|
|
14
|
+
const toggle = () => {
|
|
15
|
+
if (!disabled) {
|
|
16
|
+
onToggle?.({ id, collapsed: !collapsedInternal });
|
|
17
|
+
setIsCollapsedInternal(!collapsedInternal);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
return (React.createElement(ListItem, { borderBottom: "1px solid grey.40", className: cs('vui-accordion-item', className), disabled: disabled, flexDirection: "column", h: "auto", hoverBg: "blue.10", id: `${id}`, w: "100%", ...rest },
|
|
21
|
+
React.createElement(Box, { cursor: disabled ? 'not-allowed' : 'pointer', justifyContent: "space-between", onClick: toggle, py: 2, w: "100%" },
|
|
22
|
+
React.createElement(Box, { fontWeight: "500 " }, title),
|
|
23
|
+
React.createElement(Box, null,
|
|
24
|
+
React.createElement(AccordionItemArrow, { collapsed: collapsedInternal }))),
|
|
25
|
+
!collapsedInternal && (React.createElement(Box, { mb: 2, mt: 2, w: "100%" }, children ?? content))));
|
|
26
|
+
};
|
|
27
|
+
export default AccordionItem;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordionItemArrow.d.ts","sourceRoot":"","sources":["../../../src/accordion/accordionItemArrow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;;AAO3D,wBAA6C"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Icon from '../icon';
|
|
3
|
+
const AccordionItemArrow = (props) => {
|
|
4
|
+
const { collapsed } = props;
|
|
5
|
+
return React.createElement(Icon, { name: collapsed ? 'falChevronDown' : 'falChevronUp', size: "xs" });
|
|
6
|
+
};
|
|
7
|
+
export default React.memo(AccordionItemArrow);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/accordion/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,cAAc,mBAAmB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/accordion/theme.ts"],"names":[],"mappings":";;;;;;AAQA,wBAKC"}
|
package/dist/esm/index.d.ts
CHANGED
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,KAAK,CAAA;AACnB,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,OAAO,CAAA;AACrB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,KAAK,CAAA;AACnB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,OAAO,CAAA;AACrB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,KAAK,CAAA;AACnB,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,OAAO,CAAA;AACrB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,KAAK,CAAA;AACnB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,OAAO,CAAA;AACrB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/theme/components.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/theme/components.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,wBAqCC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import Accordion from '../accordion/theme';
|
|
1
2
|
import Avatar from '../avatar/theme';
|
|
2
3
|
import Box from '../box/theme';
|
|
3
4
|
import Button from '../button/theme';
|
|
@@ -34,6 +35,7 @@ import Tabs from '../tabs/theme';
|
|
|
34
35
|
import Tag from '../tag/theme';
|
|
35
36
|
import Textarea from '../textarea/theme';
|
|
36
37
|
export default {
|
|
38
|
+
Accordion,
|
|
37
39
|
Avatar,
|
|
38
40
|
Box,
|
|
39
41
|
Button,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultTheme.d.ts","sourceRoot":"","sources":["../../../src/theme/defaultTheme.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"defaultTheme.d.ts","sourceRoot":"","sources":["../../../src/theme/defaultTheme.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGjB,CAAA;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../src/toast/toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;;
|
|
1
|
+
{"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../src/toast/toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,eAAO,MAAM,YAAY,MAAM,CAAA;;AAyB/B,wBAAkC"}
|
package/dist/esm/toast/toast.js
CHANGED
|
@@ -2,8 +2,9 @@ import React from 'react';
|
|
|
2
2
|
import { Box } from '../box';
|
|
3
3
|
import { useVuiContext } from '../core';
|
|
4
4
|
import { zIndices } from '../theme';
|
|
5
|
+
export const toasterWidth = 420;
|
|
5
6
|
const Toaster = () => {
|
|
6
7
|
const { toasts } = useVuiContext();
|
|
7
|
-
return (React.createElement(Box, { bottom: "1rem", display: "block", maxW:
|
|
8
|
+
return (React.createElement(Box, { bottom: "1rem", display: "block", maxW: { md: toasterWidth, sm: toasterWidth, xs: '100%' }, minW: { md: toasterWidth, sm: toasterWidth, xs: '100%' }, p: { md: '16px', sm: '4px', xs: '2px' }, position: "fixed", right: { md: '1rem', sm: 0, xs: 0 }, zIndex: zIndices.toast }, toasts?.list?.map?.((toast) => (React.createElement("div", { id: `toast_${toast.id}`, key: toast.id }, toast.component)))));
|
|
8
9
|
};
|
|
9
10
|
export default React.memo(Toaster);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { NotificationProps } from '../notification';
|
|
3
|
+
export declare type ToastDuration = 'fast' | 'slow' | 'sticky';
|
|
3
4
|
export interface ToastListItem {
|
|
4
5
|
id: string;
|
|
5
6
|
component?: ReactNode;
|
|
@@ -10,7 +11,8 @@ export interface ToastSetup {
|
|
|
10
11
|
}
|
|
11
12
|
export interface ToastOptions extends NotificationProps {
|
|
12
13
|
id?: string;
|
|
13
|
-
duration?:
|
|
14
|
+
duration?: ToastDuration;
|
|
15
|
+
/** @deprecated According to new UX requirements all toasts should be dismissible */
|
|
14
16
|
dismissible?: boolean;
|
|
15
17
|
}
|
|
16
18
|
//# sourceMappingURL=toast.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.types.d.ts","sourceRoot":"","sources":["../../../src/toast/toast.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,YAAY,CAAA;IACrB,aAAa,EAAE,aAAa,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACrD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"toast.types.d.ts","sourceRoot":"","sources":["../../../src/toast/toast.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,oBAAY,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEtD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,YAAY,CAAA;IACrB,aAAa,EAAE,aAAa,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACrD,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,aAAa,CAAA;IACxB,oFAAoF;IACpF,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { ToastOptions } from './toast.types';
|
|
2
|
+
import { ToastDuration, ToastOptions } from './toast.types';
|
|
3
|
+
export declare const defaultDuration = "fast";
|
|
4
|
+
export declare const fastToastDuration = 4000;
|
|
5
|
+
export declare const slowToastDuration = 8000;
|
|
3
6
|
export declare const useToast: () => {
|
|
4
7
|
showToast: (options?: ToastOptions | undefined) => void;
|
|
5
8
|
hideToast: (id: string) => void;
|
|
6
|
-
showInfo: (text: ReactNode) => void;
|
|
7
|
-
showSuccess: (text: ReactNode) => void;
|
|
8
|
-
showWarning: (text: ReactNode) => void;
|
|
9
|
-
showError: (text: ReactNode) => void;
|
|
10
|
-
showLoading: (text: ReactNode) => void;
|
|
9
|
+
showInfo: (text: ReactNode, duration?: ToastDuration) => void;
|
|
10
|
+
showSuccess: (text: ReactNode, duration?: ToastDuration) => void;
|
|
11
|
+
showWarning: (text: ReactNode, duration?: ToastDuration) => void;
|
|
12
|
+
showError: (text: ReactNode, duration?: ToastDuration) => void;
|
|
13
|
+
showLoading: (text: ReactNode, duration?: ToastDuration) => void;
|
|
11
14
|
};
|
|
12
15
|
//# sourceMappingURL=useToast.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToast.d.ts","sourceRoot":"","sources":["../../../src/toast/useToast.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKxC,OAAO,EAAE,YAAY,EAAc,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"useToast.d.ts","sourceRoot":"","sources":["../../../src/toast/useToast.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKxC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAc,MAAM,eAAe,CAAA;AAEvE,eAAO,MAAM,eAAe,SAAS,CAAA;AACrC,eAAO,MAAM,iBAAiB,OAAO,CAAA;AACrC,eAAO,MAAM,iBAAiB,OAAO,CAAA;AAWrC,eAAO,MAAM,QAAQ;uDAKyB,IAAI;oBAFzB,MAAM;qBAoCL,SAAS,aAAY,aAAa;wBAE/B,SAAS,aAAY,aAAa;wBAElC,SAAS,aAAY,aAAa;sBAEpC,SAAS,aAAY,aAAa;wBAEhC,SAAS,aAAY,aAAa;CAI9D,CAAA"}
|
|
@@ -2,20 +2,22 @@ import React from 'react';
|
|
|
2
2
|
import { useVuiContext } from '../core';
|
|
3
3
|
import { Notification } from '../notification';
|
|
4
4
|
import { uid } from '../utils';
|
|
5
|
+
export const defaultDuration = 'fast';
|
|
6
|
+
export const fastToastDuration = 4000;
|
|
7
|
+
export const slowToastDuration = 8000;
|
|
5
8
|
const setup = {
|
|
6
9
|
options: {
|
|
7
|
-
duration:
|
|
8
|
-
dismissible: true
|
|
10
|
+
duration: defaultDuration
|
|
9
11
|
},
|
|
10
12
|
componentList: []
|
|
11
13
|
};
|
|
14
|
+
const getDurationTime = (duration) => (duration === 'fast' ? fastToastDuration : slowToastDuration);
|
|
12
15
|
export const useToast = () => {
|
|
13
16
|
const { addToast, removeToast } = useVuiContext();
|
|
14
17
|
const hideToast = (id) => removeToast(id);
|
|
15
18
|
const showToast = (options) => {
|
|
16
19
|
const id = options?.id ? options.id : uid('toast');
|
|
17
20
|
const { duration = setup.options.duration } = options || {};
|
|
18
|
-
const { dismissible = setup.options.dismissible } = options || {};
|
|
19
21
|
const { status = setup.options.duration } = options || {};
|
|
20
22
|
const { action } = options || {};
|
|
21
23
|
const { icon } = options || {};
|
|
@@ -24,16 +26,16 @@ export const useToast = () => {
|
|
|
24
26
|
const onClose = () => hideToast(id);
|
|
25
27
|
const toast = {
|
|
26
28
|
id,
|
|
27
|
-
component: (React.createElement(Notification, { action: action, animation: "fadeDown", icon: icon, mt: { md: 1, sm: '4px', xs: '4px' }, onClose:
|
|
29
|
+
component: (React.createElement(Notification, { action: action, animation: "fadeDown", icon: icon, mt: { md: 1, sm: '4px', xs: '4px' }, onClose: onClose, shadow: 1, status: status, text: text, title: title, w: 1 }))
|
|
28
30
|
};
|
|
29
31
|
addToast(toast);
|
|
30
|
-
if (duration !==
|
|
31
|
-
window.setTimeout(() => hideToast(id), duration);
|
|
32
|
+
if (duration && duration !== 'sticky')
|
|
33
|
+
window.setTimeout(() => hideToast(id), getDurationTime(duration));
|
|
32
34
|
};
|
|
33
|
-
const showInfo = (text) => showToast({ text, status: 'info' });
|
|
34
|
-
const showSuccess = (text) => showToast({ text, status: 'success' });
|
|
35
|
-
const showWarning = (text) => showToast({ text, status: 'warning' });
|
|
36
|
-
const showError = (text) => showToast({ text, status: 'error' });
|
|
37
|
-
const showLoading = (text) => showToast({ text, status: 'loading' });
|
|
35
|
+
const showInfo = (text, duration = defaultDuration) => showToast({ text, status: 'info', duration });
|
|
36
|
+
const showSuccess = (text, duration = defaultDuration) => showToast({ text, status: 'success', duration });
|
|
37
|
+
const showWarning = (text, duration = defaultDuration) => showToast({ text, status: 'warning', duration });
|
|
38
|
+
const showError = (text, duration = defaultDuration) => showToast({ text, status: 'error', duration });
|
|
39
|
+
const showLoading = (text, duration = defaultDuration) => showToast({ text, status: 'loading', duration });
|
|
38
40
|
return { showToast, hideToast, showInfo, showSuccess, showWarning, showError, showLoading };
|
|
39
41
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veracity/vui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0-beta.0",
|
|
4
4
|
"description": "Veracity UI is a React component library crafted for use within Veracity applications and pages. Based on Styled Components and @xstyled.",
|
|
5
5
|
"module": "./dist/esm/index.js",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
|
|
3
|
+
import { omitThemingProps, styled, useStyleConfig, vui } from '../core'
|
|
4
|
+
import List from '../list'
|
|
5
|
+
import { cs, filterUndefined } from '../utils'
|
|
6
|
+
import { AccordionItemProps, AccordionProps } from './accordion.types'
|
|
7
|
+
import AccordionItem from './accordionItem'
|
|
8
|
+
|
|
9
|
+
export const AccordionBase = styled.divBox`
|
|
10
|
+
display: flex;
|
|
11
|
+
min-width: 0;
|
|
12
|
+
transition-duration: normal;
|
|
13
|
+
`
|
|
14
|
+
|
|
15
|
+
/** [BETA] Allows to show and hide sections of related content on a page. */
|
|
16
|
+
export const Accordion = vui<'div', AccordionProps>((props, ref) => {
|
|
17
|
+
const { className, children, items, ...rest } = omitThemingProps(props)
|
|
18
|
+
const styles = useStyleConfig('Accordion', props)
|
|
19
|
+
|
|
20
|
+
const aliasedProps = filterUndefined<AccordionProps>({})
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<AccordionBase className={cs('vui-accordion', className)} ref={ref} {...styles} {...aliasedProps} {...rest}>
|
|
24
|
+
<List w="100%">
|
|
25
|
+
{items
|
|
26
|
+
? items?.map?.((item: AccordionItemProps, key: number) => <AccordionItem key={key} {...item} />)
|
|
27
|
+
: children}
|
|
28
|
+
</List>
|
|
29
|
+
</AccordionBase>
|
|
30
|
+
)
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
export default Accordion
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ReactNode } from 'react'
|
|
2
|
+
|
|
3
|
+
import { ListItemProps } from '../list'
|
|
4
|
+
import { SystemProps } from '../system'
|
|
5
|
+
import { ThemingProps } from '../theme'
|
|
6
|
+
|
|
7
|
+
export type AccordionProps = SystemProps &
|
|
8
|
+
ThemingProps<'Accordion'> & {
|
|
9
|
+
items?: AccordionItemProps[]
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export type AccordionItemId = string | number
|
|
13
|
+
|
|
14
|
+
export type AccordionOnToggleEvent = {
|
|
15
|
+
id: AccordionItemId
|
|
16
|
+
collapsed: boolean
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export type AccordionItemProps = ListItemProps & {
|
|
20
|
+
// Unique ID
|
|
21
|
+
id: AccordionItemId
|
|
22
|
+
// Custom class name
|
|
23
|
+
className?: string
|
|
24
|
+
// Content
|
|
25
|
+
children?: ReactNode
|
|
26
|
+
// Alternative way to provide content
|
|
27
|
+
content?: ReactNode
|
|
28
|
+
// Collapsed state
|
|
29
|
+
collapsed?: boolean
|
|
30
|
+
// Title
|
|
31
|
+
title?: string
|
|
32
|
+
// Collapse change state
|
|
33
|
+
onToggle?: (event: AccordionOnToggleEvent) => void
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export type AccordionItemArrowProps = {
|
|
37
|
+
collapsed?: boolean
|
|
38
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react'
|
|
2
|
+
|
|
3
|
+
import { Box } from '../box'
|
|
4
|
+
import { omitThemingProps } from '../core'
|
|
5
|
+
import { ListItem } from '../list'
|
|
6
|
+
import { cs } from '../utils'
|
|
7
|
+
import { AccordionItemProps } from './accordion.types'
|
|
8
|
+
import AccordionItemArrow from './accordionItemArrow'
|
|
9
|
+
|
|
10
|
+
/** An accordion item. */
|
|
11
|
+
export const AccordionItem = (props: AccordionItemProps) => {
|
|
12
|
+
const { className, children, id, content, disabled, title, collapsed, onToggle, ...rest } = omitThemingProps(props)
|
|
13
|
+
const [collapsedInternal, setIsCollapsedInternal] = useState<boolean>(false)
|
|
14
|
+
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
setIsCollapsedInternal(!!collapsed)
|
|
17
|
+
}, [collapsed])
|
|
18
|
+
|
|
19
|
+
const toggle = () => {
|
|
20
|
+
if (!disabled) {
|
|
21
|
+
onToggle?.({ id, collapsed: !collapsedInternal })
|
|
22
|
+
setIsCollapsedInternal(!collapsedInternal)
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
<ListItem
|
|
28
|
+
borderBottom="1px solid grey.40"
|
|
29
|
+
className={cs('vui-accordion-item', className)}
|
|
30
|
+
disabled={disabled}
|
|
31
|
+
flexDirection="column"
|
|
32
|
+
h="auto"
|
|
33
|
+
hoverBg="blue.10"
|
|
34
|
+
id={`${id}`}
|
|
35
|
+
w="100%"
|
|
36
|
+
{...rest}
|
|
37
|
+
>
|
|
38
|
+
<Box
|
|
39
|
+
cursor={disabled ? 'not-allowed' : 'pointer'}
|
|
40
|
+
justifyContent="space-between"
|
|
41
|
+
onClick={toggle}
|
|
42
|
+
py={2}
|
|
43
|
+
w="100%"
|
|
44
|
+
>
|
|
45
|
+
<Box fontWeight="500 ">{title}</Box>
|
|
46
|
+
<Box>
|
|
47
|
+
<AccordionItemArrow collapsed={collapsedInternal} />
|
|
48
|
+
</Box>
|
|
49
|
+
</Box>
|
|
50
|
+
{!collapsedInternal && (
|
|
51
|
+
<Box mb={2} mt={2} w="100%">
|
|
52
|
+
{children ?? content}
|
|
53
|
+
</Box>
|
|
54
|
+
)}
|
|
55
|
+
</ListItem>
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export default AccordionItem
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
|
|
3
|
+
import Icon from '../icon'
|
|
4
|
+
import { AccordionItemArrowProps } from './accordion.types'
|
|
5
|
+
|
|
6
|
+
const AccordionItemArrow = (props: AccordionItemArrowProps) => {
|
|
7
|
+
const { collapsed } = props
|
|
8
|
+
return <Icon name={collapsed ? 'falChevronDown' : 'falChevronUp'} size="xs" />
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export default React.memo(AccordionItemArrow)
|
package/src/index.ts
CHANGED
package/src/theme/components.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import Accordion from '../accordion/theme'
|
|
1
2
|
import Avatar from '../avatar/theme'
|
|
2
3
|
import Box from '../box/theme'
|
|
3
4
|
import Button from '../button/theme'
|
|
@@ -35,6 +36,7 @@ import Tag from '../tag/theme'
|
|
|
35
36
|
import Textarea from '../textarea/theme'
|
|
36
37
|
|
|
37
38
|
export default {
|
|
39
|
+
Accordion,
|
|
38
40
|
Avatar,
|
|
39
41
|
Box,
|
|
40
42
|
Button,
|
package/src/toast/toast.tsx
CHANGED
|
@@ -5,6 +5,8 @@ import { useVuiContext } from '../core'
|
|
|
5
5
|
import { zIndices } from '../theme'
|
|
6
6
|
import { ToastListItem } from './toast.types'
|
|
7
7
|
|
|
8
|
+
export const toasterWidth = 420
|
|
9
|
+
|
|
8
10
|
const Toaster = () => {
|
|
9
11
|
const { toasts } = useVuiContext()
|
|
10
12
|
|
|
@@ -12,8 +14,8 @@ const Toaster = () => {
|
|
|
12
14
|
<Box
|
|
13
15
|
bottom="1rem"
|
|
14
16
|
display="block"
|
|
15
|
-
maxW=
|
|
16
|
-
minW={{ md:
|
|
17
|
+
maxW={{ md: toasterWidth, sm: toasterWidth, xs: '100%' }}
|
|
18
|
+
minW={{ md: toasterWidth, sm: toasterWidth, xs: '100%' }}
|
|
17
19
|
p={{ md: '16px', sm: '4px', xs: '2px' }}
|
|
18
20
|
position="fixed"
|
|
19
21
|
right={{ md: '1rem', sm: 0, xs: 0 }}
|
package/src/toast/toast.types.ts
CHANGED
|
@@ -2,6 +2,8 @@ import { ReactNode } from 'react'
|
|
|
2
2
|
|
|
3
3
|
import { NotificationProps } from '../notification'
|
|
4
4
|
|
|
5
|
+
export type ToastDuration = 'fast' | 'slow' | 'sticky'
|
|
6
|
+
|
|
5
7
|
export interface ToastListItem {
|
|
6
8
|
id: string
|
|
7
9
|
component?: ReactNode
|
|
@@ -14,6 +16,7 @@ export interface ToastSetup {
|
|
|
14
16
|
|
|
15
17
|
export interface ToastOptions extends NotificationProps {
|
|
16
18
|
id?: string
|
|
17
|
-
duration?:
|
|
19
|
+
duration?: ToastDuration
|
|
20
|
+
/** @deprecated According to new UX requirements all toasts should be dismissible */
|
|
18
21
|
dismissible?: boolean
|
|
19
22
|
}
|