@veracity/vui 1.4.0-rc.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/select/select.types.d.ts +1 -1
- package/dist/cjs/select/select.types.d.ts.map +1 -1
- 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/select/select.types.d.ts +1 -1
- package/dist/esm/select/select.types.d.ts.map +1 -1
- 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/select/select.types.ts +1 -1
- 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
|
@@ -3,25 +3,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.useToast = void 0;
|
|
6
|
+
exports.useToast = exports.slowToastDuration = exports.fastToastDuration = exports.defaultDuration = void 0;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const core_1 = require("../core");
|
|
9
9
|
const notification_1 = require("../notification");
|
|
10
10
|
const utils_1 = require("../utils");
|
|
11
|
+
exports.defaultDuration = 'fast';
|
|
12
|
+
exports.fastToastDuration = 4000;
|
|
13
|
+
exports.slowToastDuration = 8000;
|
|
11
14
|
const setup = {
|
|
12
15
|
options: {
|
|
13
|
-
duration:
|
|
14
|
-
dismissible: true
|
|
16
|
+
duration: exports.defaultDuration
|
|
15
17
|
},
|
|
16
18
|
componentList: []
|
|
17
19
|
};
|
|
20
|
+
const getDurationTime = (duration) => (duration === 'fast' ? exports.fastToastDuration : exports.slowToastDuration);
|
|
18
21
|
const useToast = () => {
|
|
19
22
|
const { addToast, removeToast } = (0, core_1.useVuiContext)();
|
|
20
23
|
const hideToast = (id) => removeToast(id);
|
|
21
24
|
const showToast = (options) => {
|
|
22
25
|
const id = (options === null || options === void 0 ? void 0 : options.id) ? options.id : (0, utils_1.uid)('toast');
|
|
23
26
|
const { duration = setup.options.duration } = options || {};
|
|
24
|
-
const { dismissible = setup.options.dismissible } = options || {};
|
|
25
27
|
const { status = setup.options.duration } = options || {};
|
|
26
28
|
const { action } = options || {};
|
|
27
29
|
const { icon } = options || {};
|
|
@@ -30,17 +32,17 @@ const useToast = () => {
|
|
|
30
32
|
const onClose = () => hideToast(id);
|
|
31
33
|
const toast = {
|
|
32
34
|
id,
|
|
33
|
-
component: (react_1.default.createElement(notification_1.Notification, { action: action, animation: "fadeDown", icon: icon, mt: { md: 1, sm: '4px', xs: '4px' }, onClose:
|
|
35
|
+
component: (react_1.default.createElement(notification_1.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 }))
|
|
34
36
|
};
|
|
35
37
|
addToast(toast);
|
|
36
|
-
if (duration !==
|
|
37
|
-
window.setTimeout(() => hideToast(id), duration);
|
|
38
|
+
if (duration && duration !== 'sticky')
|
|
39
|
+
window.setTimeout(() => hideToast(id), getDurationTime(duration));
|
|
38
40
|
};
|
|
39
|
-
const showInfo = (text) => showToast({ text, status: 'info' });
|
|
40
|
-
const showSuccess = (text) => showToast({ text, status: 'success' });
|
|
41
|
-
const showWarning = (text) => showToast({ text, status: 'warning' });
|
|
42
|
-
const showError = (text) => showToast({ text, status: 'error' });
|
|
43
|
-
const showLoading = (text) => showToast({ text, status: 'loading' });
|
|
41
|
+
const showInfo = (text, duration = exports.defaultDuration) => showToast({ text, status: 'info', duration });
|
|
42
|
+
const showSuccess = (text, duration = exports.defaultDuration) => showToast({ text, status: 'success', duration });
|
|
43
|
+
const showWarning = (text, duration = exports.defaultDuration) => showToast({ text, status: 'warning', duration });
|
|
44
|
+
const showError = (text, duration = exports.defaultDuration) => showToast({ text, status: 'error', duration });
|
|
45
|
+
const showLoading = (text, duration = exports.defaultDuration) => showToast({ text, status: 'loading', duration });
|
|
44
46
|
return { showToast, hideToast, showInfo, showSuccess, showWarning, showError, showLoading };
|
|
45
47
|
};
|
|
46
48
|
exports.useToast = useToast;
|
|
@@ -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
|
@@ -17,7 +17,7 @@ export declare type SelectProps = ThemingProps<'Select'> & PopoverProps & UseSel
|
|
|
17
17
|
/** Name of the input. Used in custom change event to support form library integration. */
|
|
18
18
|
name?: string;
|
|
19
19
|
/** Data prop to display an array of options in the popover. */
|
|
20
|
-
options
|
|
20
|
+
options?: SelectOptionData[];
|
|
21
21
|
/** Displayed inside the trigger when no value is selected. */
|
|
22
22
|
placeholder?: string;
|
|
23
23
|
/** Select cannot be opened and is styled accordingly. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.types.d.ts","sourceRoot":"","sources":["../../../src/select/select.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,oBAAY,iBAAiB,GAAG,WAAW,CAAA;AAE3C,oBAAY,kBAAkB,GAAG,mBAAmB,CAAA;AAEpD,oBAAY,aAAa,GAAG,IAAI,CAC9B,WAAW,EACX,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAC/G,GACC,mBAAmB,CAAA;AAErB,oBAAY,gBAAgB,GAAG,SAAS,CAAA;AAExC,oBAAY,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,GAC9C,YAAY,GACZ,cAAc,GAAG;IACf,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,0FAA0F;IAC1F,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,+DAA+D;IAC/D,OAAO,EAAE,gBAAgB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"select.types.d.ts","sourceRoot":"","sources":["../../../src/select/select.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,oBAAY,iBAAiB,GAAG,WAAW,CAAA;AAE3C,oBAAY,kBAAkB,GAAG,mBAAmB,CAAA;AAEpD,oBAAY,aAAa,GAAG,IAAI,CAC9B,WAAW,EACX,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAC/G,GACC,mBAAmB,CAAA;AAErB,oBAAY,gBAAgB,GAAG,SAAS,CAAA;AAExC,oBAAY,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,GAC9C,YAAY,GACZ,cAAc,GAAG;IACf,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,0FAA0F;IAC1F,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,+DAA+D;IAC/D,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iCAAiC;IACjC,YAAY,CAAC,EAAE,SAAS,CAAA;CACzB,CAAA;AAEH,oBAAY,gBAAgB,GAAG;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,+BAA+B;IAC/B,KAAK,EAAE,WAAW,CAAA;CACnB,CAAA;AAED,oBAAY,iBAAiB,GAAG,aAAa,GAAG;IAC9C,mGAAmG;IACnG,KAAK,CAAC,EAAE,WAAW,CAAA;CACpB,CAAA;AAED,oBAAY,WAAW,GAAG,MAAM,GAAG,MAAM,CAAA"}
|
|
@@ -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)
|