@veracity/vui 1.7.0-beta.0 → 1.7.0-beta.2
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 +1 -1
- package/dist/cjs/accordion/accordion.d.ts.map +1 -1
- package/dist/cjs/accordion/accordion.js +7 -7
- package/dist/cjs/accordion/accordion.types.d.ts +15 -0
- package/dist/cjs/accordion/accordion.types.d.ts.map +1 -1
- package/dist/cjs/accordion/accordionItem.d.ts.map +1 -1
- package/dist/cjs/accordion/accordionItem.js +4 -4
- package/dist/cjs/accordion/accordionItemArrow.d.ts +1 -1
- package/dist/cjs/accordion/accordionItemArrow.d.ts.map +1 -1
- package/dist/cjs/accordion/accordionItemArrow.js +10 -3
- package/dist/cjs/accordion/accordionItemHorizontal.d.ts +5 -0
- package/dist/cjs/accordion/accordionItemHorizontal.d.ts.map +1 -0
- package/dist/cjs/accordion/accordionItemHorizontal.js +70 -0
- package/dist/cjs/accordion/index.d.ts +1 -0
- package/dist/cjs/accordion/index.d.ts.map +1 -1
- package/dist/cjs/accordion/index.js +1 -0
- package/dist/cjs/copyToClipboard/copyToClipboard.d.ts +12 -0
- package/dist/cjs/copyToClipboard/copyToClipboard.d.ts.map +1 -0
- package/dist/cjs/copyToClipboard/copyToClipboard.js +36 -0
- package/dist/cjs/copyToClipboard/copyToClipboard.types.d.ts +9 -0
- package/dist/cjs/copyToClipboard/copyToClipboard.types.d.ts.map +1 -0
- package/dist/cjs/copyToClipboard/copyToClipboard.types.js +2 -0
- package/dist/cjs/copyToClipboard/index.d.ts +5 -0
- package/dist/cjs/copyToClipboard/index.d.ts.map +1 -0
- package/dist/cjs/copyToClipboard/index.js +25 -0
- package/dist/cjs/copyToClipboard/useCopyToClipboard.d.ts +5 -0
- package/dist/cjs/copyToClipboard/useCopyToClipboard.d.ts.map +1 -0
- package/dist/cjs/copyToClipboard/useCopyToClipboard.js +17 -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/esm/accordion/accordion.d.ts +1 -1
- package/dist/esm/accordion/accordion.d.ts.map +1 -1
- package/dist/esm/accordion/accordion.js +6 -6
- package/dist/esm/accordion/accordion.types.d.ts +15 -0
- package/dist/esm/accordion/accordion.types.d.ts.map +1 -1
- package/dist/esm/accordion/accordionItem.d.ts.map +1 -1
- package/dist/esm/accordion/accordionItem.js +4 -4
- package/dist/esm/accordion/accordionItemArrow.d.ts +1 -1
- package/dist/esm/accordion/accordionItemArrow.d.ts.map +1 -1
- package/dist/esm/accordion/accordionItemArrow.js +10 -3
- package/dist/esm/accordion/accordionItemHorizontal.d.ts +5 -0
- package/dist/esm/accordion/accordionItemHorizontal.d.ts.map +1 -0
- package/dist/esm/accordion/accordionItemHorizontal.js +29 -0
- package/dist/esm/accordion/index.d.ts +1 -0
- package/dist/esm/accordion/index.d.ts.map +1 -1
- package/dist/esm/accordion/index.js +1 -0
- package/dist/esm/copyToClipboard/copyToClipboard.d.ts +12 -0
- package/dist/esm/copyToClipboard/copyToClipboard.d.ts.map +1 -0
- package/dist/esm/copyToClipboard/copyToClipboard.js +19 -0
- package/dist/esm/copyToClipboard/copyToClipboard.types.d.ts +9 -0
- package/dist/esm/copyToClipboard/copyToClipboard.types.d.ts.map +1 -0
- package/dist/esm/copyToClipboard/copyToClipboard.types.js +1 -0
- package/dist/esm/copyToClipboard/index.d.ts +5 -0
- package/dist/esm/copyToClipboard/index.d.ts.map +1 -0
- package/dist/esm/copyToClipboard/index.js +4 -0
- package/dist/esm/copyToClipboard/useCopyToClipboard.d.ts +5 -0
- package/dist/esm/copyToClipboard/useCopyToClipboard.d.ts.map +1 -0
- package/dist/esm/copyToClipboard/useCopyToClipboard.js +14 -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/package.json +1 -1
- package/src/accordion/accordion.tsx +18 -7
- package/src/accordion/accordion.types.ts +16 -7
- package/src/accordion/accordionItem.tsx +23 -5
- package/src/accordion/accordionItemArrow.tsx +13 -3
- package/src/accordion/accordionItemHorizontal.tsx +96 -0
- package/src/accordion/index.ts +1 -0
- package/src/copyToClipboard/copyToClipboard.tsx +36 -0
- package/src/copyToClipboard/copyToClipboard.types.ts +10 -0
- package/src/copyToClipboard/index.ts +4 -0
- package/src/copyToClipboard/useCopyToClipboard.ts +15 -0
- package/src/index.ts +1 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AccordionProps } from './accordion.types';
|
|
2
2
|
export declare const AccordionBase: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("..").SystemProps, never>;
|
|
3
|
-
/**
|
|
3
|
+
/** Allows to show and hide sections of related content on a page. */
|
|
4
4
|
export declare const Accordion: import("../core").VuiComponent<"div", AccordionProps>;
|
|
5
5
|
export default Accordion;
|
|
6
6
|
//# sourceMappingURL=accordion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/accordion/accordion.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAsB,cAAc,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/accordion/accordion.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAsB,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAKtE,eAAO,MAAM,aAAa,+HAIzB,CAAA;AAED,qEAAqE;AACrE,eAAO,MAAM,SAAS,uDA6BpB,CAAA;AAEF,eAAe,SAAS,CAAA"}
|
|
@@ -43,23 +43,23 @@ const core_1 = require("../core");
|
|
|
43
43
|
const list_1 = __importDefault(require("../list"));
|
|
44
44
|
const utils_1 = require("../utils");
|
|
45
45
|
const accordionItem_1 = __importDefault(require("./accordionItem"));
|
|
46
|
+
const accordionItemHorizontal_1 = __importDefault(require("./accordionItemHorizontal"));
|
|
46
47
|
const context_1 = require("./context");
|
|
47
48
|
exports.AccordionBase = core_1.styled.divBox `
|
|
48
49
|
display: flex;
|
|
49
50
|
min-width: 0;
|
|
50
51
|
transition-duration: normal;
|
|
51
52
|
`;
|
|
52
|
-
/**
|
|
53
|
+
/** Allows to show and hide sections of related content on a page. */
|
|
53
54
|
exports.Accordion = (0, core_1.vui)((props, ref) => {
|
|
54
|
-
var _a;
|
|
55
|
-
const { children, className, items, size } = props, rest = __rest(props, ["children", "className", "items", "size"]);
|
|
55
|
+
var _a, _b;
|
|
56
|
+
const { children, className, itemTitleHoverBg = 'blue.10', items, orientation = 'vertical', size } = props, rest = __rest(props, ["children", "className", "itemTitleHoverBg", "items", "orientation", "size"]);
|
|
56
57
|
const styles = (0, core_1.useStyleConfig)('Accordion', props);
|
|
57
58
|
const context = (0, react_1.useMemo)(() => (0, utils_1.filterUndefined)({ size }), [size]);
|
|
58
59
|
const aliasedProps = (0, utils_1.filterUndefined)({});
|
|
59
60
|
return (react_1.default.createElement(context_1.AccordionProvider, { value: context },
|
|
60
|
-
react_1.default.createElement(exports.AccordionBase, Object.assign({ className: (0, utils_1.cs)('vui-accordion', className), ref: ref }, styles, aliasedProps, rest),
|
|
61
|
-
react_1.default.createElement(
|
|
62
|
-
|
|
63
|
-
: children))));
|
|
61
|
+
react_1.default.createElement(exports.AccordionBase, Object.assign({ className: (0, utils_1.cs)('vui-accordion', className), ref: ref }, styles, aliasedProps, rest), orientation === 'vertical' ? (react_1.default.createElement(list_1.default, { w: "100%" }, items
|
|
62
|
+
? (_a = items === null || items === void 0 ? void 0 : items.map) === null || _a === void 0 ? void 0 : _a.call(items, (item, key) => (react_1.default.createElement(accordionItem_1.default, Object.assign({ itemTitleHoverBg: itemTitleHoverBg, key: key }, item))))
|
|
63
|
+
: children)) : items ? ((_b = items === null || items === void 0 ? void 0 : items.map) === null || _b === void 0 ? void 0 : _b.call(items, (item, key) => (react_1.default.createElement(accordionItemHorizontal_1.default, Object.assign({ itemTitleHoverBg: itemTitleHoverBg, key: key }, item))))) : (children))));
|
|
64
64
|
});
|
|
65
65
|
exports.default = exports.Accordion;
|
|
@@ -2,7 +2,12 @@ import { ReactNode } from 'react';
|
|
|
2
2
|
import { ListItemProps } from '../list';
|
|
3
3
|
import { SystemProps } from '../system';
|
|
4
4
|
import { ThemingProps } from '../theme';
|
|
5
|
+
export declare type Orientation = 'vertical' | 'horizontal';
|
|
5
6
|
export declare type AccordionProps = SystemProps & ThemingProps<'Accordion'> & {
|
|
7
|
+
/** Items orientation @default 'vertical' */
|
|
8
|
+
orientation?: Orientation;
|
|
9
|
+
/** Hover color for the item title @default "blue.10" */
|
|
10
|
+
itemTitleHoverBg?: string;
|
|
6
11
|
items?: AccordionItemProps[];
|
|
7
12
|
};
|
|
8
13
|
export declare type AccordionItemId = string | number;
|
|
@@ -11,15 +16,25 @@ export declare type AccordionOnToggleEvent = {
|
|
|
11
16
|
collapsed: boolean;
|
|
12
17
|
};
|
|
13
18
|
export declare type AccordionItemProps = ListItemProps & {
|
|
19
|
+
/** Unique ID */
|
|
14
20
|
id: AccordionItemId;
|
|
21
|
+
/** Custom class name */
|
|
15
22
|
className?: string;
|
|
23
|
+
/** Content */
|
|
16
24
|
children?: ReactNode;
|
|
25
|
+
/** Alternative way to provide content */
|
|
17
26
|
content?: ReactNode;
|
|
27
|
+
/** Collapsed state */
|
|
18
28
|
collapsed?: boolean;
|
|
29
|
+
/** Hover color for the item title @default "blue.10" */
|
|
30
|
+
itemTitleHoverBg?: string;
|
|
31
|
+
/** Title */
|
|
19
32
|
title?: string | ReactNode;
|
|
33
|
+
/** Collapse change state */
|
|
20
34
|
onToggle?: (event: AccordionOnToggleEvent) => void;
|
|
21
35
|
};
|
|
22
36
|
export declare type AccordionItemArrowProps = {
|
|
23
37
|
collapsed?: boolean;
|
|
38
|
+
orientation?: Orientation;
|
|
24
39
|
};
|
|
25
40
|
//# sourceMappingURL=accordion.types.d.ts.map
|
|
@@ -1 +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;
|
|
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,WAAW,GAAG,UAAU,GAAG,YAAY,CAAA;AAEnD,oBAAY,cAAc,GAAG,WAAW,GACtC,YAAY,CAAC,WAAW,CAAC,GAAG;IAC1B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,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;IAC/C,gBAAgB;IAChB,EAAE,EAAE,eAAe,CAAA;IACnB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc;IACd,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,yCAAyC;IACzC,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,sBAAsB;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY;IACZ,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAA;CACnD,CAAA;AAED,oBAAY,uBAAuB,GAAG;IACpC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordionItem.d.ts","sourceRoot":"","sources":["../../../src/accordion/accordionItem.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAItD,yBAAyB;AACzB,eAAO,MAAM,aAAa,UAAW,kBAAkB,
|
|
1
|
+
{"version":3,"file":"accordionItem.d.ts","sourceRoot":"","sources":["../../../src/accordion/accordionItem.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAItD,yBAAyB;AACzB,eAAO,MAAM,aAAa,UAAW,kBAAkB,gBA6DtD,CAAA;AAED,eAAe,aAAa,CAAA"}
|
|
@@ -47,7 +47,7 @@ const accordionItemArrow_1 = __importDefault(require("./accordionItemArrow"));
|
|
|
47
47
|
const context_1 = require("./context");
|
|
48
48
|
/** An accordion item. */
|
|
49
49
|
const AccordionItem = (props) => {
|
|
50
|
-
const _a = (0, core_1.omitThemingProps)(props), { className, children,
|
|
50
|
+
const _a = (0, core_1.omitThemingProps)(props), { className, children, collapsed, content, disabled, id, itemTitleHoverBg = 'blue.10', title, onToggle } = _a, rest = __rest(_a, ["className", "children", "collapsed", "content", "disabled", "id", "itemTitleHoverBg", "title", "onToggle"]);
|
|
51
51
|
const [collapsedInternal, setIsCollapsedInternal] = (0, react_1.useState)(false);
|
|
52
52
|
const styles = (0, core_1.useStyleConfig)('Accordion', (0, context_1.useAccordionContext)());
|
|
53
53
|
(0, react_1.useEffect)(() => {
|
|
@@ -59,12 +59,12 @@ const AccordionItem = (props) => {
|
|
|
59
59
|
setIsCollapsedInternal(!collapsedInternal);
|
|
60
60
|
}
|
|
61
61
|
};
|
|
62
|
-
return (react_1.default.createElement(list_1.ListItem, Object.assign({ borderBottom: "1px solid grey.40", className: (0, utils_1.cs)('vui-accordion-item', className), disabled: disabled, flexDirection: "column", h: "auto",
|
|
63
|
-
react_1.default.createElement(box_1.Box, { cursor: disabled ? 'not-allowed' : 'pointer', justifyContent: "space-between", onClick: toggle, w: "100%" },
|
|
62
|
+
return (react_1.default.createElement(list_1.ListItem, Object.assign({ borderBottom: "1px solid grey.40", className: (0, utils_1.cs)('vui-accordion-item', className), disabled: disabled, flexDirection: "column", h: "auto", id: `${id}`, p: 0, w: "100%" }, rest),
|
|
63
|
+
react_1.default.createElement(box_1.Box, Object.assign({ cursor: disabled ? 'not-allowed' : 'pointer', hoverBg: itemTitleHoverBg, justifyContent: "space-between", onClick: toggle, px: 2, w: "100%" }, styles.item),
|
|
64
64
|
react_1.default.createElement(box_1.Box, { fontWeight: typeof title === 'string' ? '500' : 'inherit' }, title),
|
|
65
65
|
react_1.default.createElement(box_1.Box, null,
|
|
66
66
|
react_1.default.createElement(accordionItemArrow_1.default, { collapsed: collapsedInternal }))),
|
|
67
|
-
!collapsedInternal && (react_1.default.createElement(box_1.Box, { mb: 2, mt: 2, w: "100%" }, children !== null && children !== void 0 ? children : content))));
|
|
67
|
+
!collapsedInternal && (react_1.default.createElement(box_1.Box, { mb: 2, mt: 2, px: 2, py: 1, w: "100%" }, children !== null && children !== void 0 ? children : content))));
|
|
68
68
|
};
|
|
69
69
|
exports.AccordionItem = AccordionItem;
|
|
70
70
|
exports.default = exports.AccordionItem;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { AccordionItemArrowProps } from './accordion.types';
|
|
3
|
-
declare const _default: React.MemoExoticComponent<(
|
|
3
|
+
declare const _default: React.MemoExoticComponent<({ collapsed, orientation }: AccordionItemArrowProps) => JSX.Element>;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=accordionItemArrow.d.ts.map
|
|
@@ -1 +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;;
|
|
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;;AAiB3D,wBAA6C"}
|
|
@@ -5,8 +5,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
7
|
const icon_1 = __importDefault(require("../icon"));
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
const names = {
|
|
9
|
+
horizontal: {
|
|
10
|
+
collapsed: 'falChevronRight',
|
|
11
|
+
expanded: 'falChevronLeft'
|
|
12
|
+
},
|
|
13
|
+
vertical: {
|
|
14
|
+
collapsed: 'falChevronDown',
|
|
15
|
+
expanded: 'falChevronUp'
|
|
16
|
+
}
|
|
11
17
|
};
|
|
18
|
+
const AccordionItemArrow = ({ collapsed, orientation = 'vertical' }) => (react_1.default.createElement(icon_1.default, { name: names[orientation][collapsed ? 'collapsed' : 'expanded'], size: "xs" }));
|
|
12
19
|
exports.default = react_1.default.memo(AccordionItemArrow);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { AccordionItemProps } from './accordion.types';
|
|
2
|
+
/** An accordion item (horizontal orientation). */
|
|
3
|
+
export declare const AccordionItemHorizontal: (props: AccordionItemProps) => JSX.Element;
|
|
4
|
+
export default AccordionItemHorizontal;
|
|
5
|
+
//# sourceMappingURL=accordionItemHorizontal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordionItemHorizontal.d.ts","sourceRoot":"","sources":["../../../src/accordion/accordionItemHorizontal.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAItD,kDAAkD;AAClD,eAAO,MAAM,uBAAuB,UAAW,kBAAkB,gBAmFhE,CAAA;AAED,eAAe,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
26
|
+
var t = {};
|
|
27
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
28
|
+
t[p] = s[p];
|
|
29
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
30
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
31
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
32
|
+
t[p[i]] = s[p[i]];
|
|
33
|
+
}
|
|
34
|
+
return t;
|
|
35
|
+
};
|
|
36
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
|
+
};
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.AccordionItemHorizontal = void 0;
|
|
41
|
+
const react_1 = __importStar(require("react"));
|
|
42
|
+
const box_1 = __importDefault(require("../box"));
|
|
43
|
+
const core_1 = require("../core");
|
|
44
|
+
const utils_1 = require("../utils");
|
|
45
|
+
const accordionItemArrow_1 = __importDefault(require("./accordionItemArrow"));
|
|
46
|
+
const context_1 = require("./context");
|
|
47
|
+
/** An accordion item (horizontal orientation). */
|
|
48
|
+
const AccordionItemHorizontal = (props) => {
|
|
49
|
+
const _a = (0, core_1.omitThemingProps)(props), { className, children, collapsed, content, disabled, id, itemTitleHoverBg = 'blue.10', title, onToggle } = _a, rest = __rest(_a, ["className", "children", "collapsed", "content", "disabled", "id", "itemTitleHoverBg", "title", "onToggle"]);
|
|
50
|
+
const [collapsedInternal, setIsCollapsedInternal] = (0, react_1.useState)(false);
|
|
51
|
+
const styles = (0, core_1.useStyleConfig)('Accordion', (0, context_1.useAccordionContext)());
|
|
52
|
+
(0, react_1.useEffect)(() => {
|
|
53
|
+
setIsCollapsedInternal(!!collapsed);
|
|
54
|
+
}, [collapsed]);
|
|
55
|
+
const toggle = () => {
|
|
56
|
+
if (!disabled) {
|
|
57
|
+
onToggle === null || onToggle === void 0 ? void 0 : onToggle({ id, collapsed: !collapsedInternal });
|
|
58
|
+
setIsCollapsedInternal(!collapsedInternal);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const cursor = disabled ? 'not-allowed' : 'pointer';
|
|
62
|
+
const fontWeight = typeof title === 'string' ? '500' : 'inherit';
|
|
63
|
+
return (react_1.default.createElement(box_1.default, Object.assign({ alignItems: collapsedInternal ? 'normal' : 'baseline', bg: disabled ? 'disabled.bg' : undefined, borderRight: "1px solid grey.40", className: (0, utils_1.cs)('vui-accordion-item-horizontal', className), color: disabled ? 'disabled.color' : undefined, column: true, cursor: disabled ? 'not-allowed' : undefined, id: `${id}`, maxW: collapsedInternal ? styles.item.minH : 'auto', minW: styles.item.minH, p: 0, transitionDuration: "0ms", userSelect: disabled ? 'none' : undefined }, rest),
|
|
64
|
+
react_1.default.createElement(box_1.default, Object.assign({}, styles.item, { cursor: cursor, hoverBg: itemTitleHoverBg, justifyContent: "space-between", minH: styles.item.minH, onClick: toggle, p: styles.item.pt, w: "100%" }),
|
|
65
|
+
!collapsedInternal && react_1.default.createElement(box_1.default, { fontWeight: fontWeight }, title),
|
|
66
|
+
react_1.default.createElement(accordionItemArrow_1.default, { collapsed: collapsedInternal, orientation: "horizontal" })),
|
|
67
|
+
!collapsedInternal ? (react_1.default.createElement(box_1.default, { p: styles.item.pt, pt: 0, transitionDuration: "0ms" }, children !== null && children !== void 0 ? children : content)) : (react_1.default.createElement(box_1.default, { cursor: cursor, flexDirection: "row-reverse", fontWeight: fontWeight, mb: styles.item.minH, mt: styles.item.pt, onClick: toggle, transform: "rotate(-90deg)", transitionDuration: "0ms", whiteSpace: "nowrap" }, title))));
|
|
68
|
+
};
|
|
69
|
+
exports.AccordionItemHorizontal = AccordionItemHorizontal;
|
|
70
|
+
exports.default = exports.AccordionItemHorizontal;
|
|
@@ -1 +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"}
|
|
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,cAAc,2BAA2B,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,cAAc,mBAAmB,CAAA"}
|
|
@@ -20,6 +20,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
20
20
|
exports.default = void 0;
|
|
21
21
|
__exportStar(require("./accordion"), exports);
|
|
22
22
|
__exportStar(require("./accordionItem"), exports);
|
|
23
|
+
__exportStar(require("./accordionItemHorizontal"), exports);
|
|
23
24
|
var accordion_1 = require("./accordion");
|
|
24
25
|
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(accordion_1).default; } });
|
|
25
26
|
__exportStar(require("./accordion.types"), exports);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CopyToClipboardProps } from './copyToClipboard.types';
|
|
2
|
+
/**
|
|
3
|
+
* A helper button component.
|
|
4
|
+
*
|
|
5
|
+
* Copies the provided text to clipboard.
|
|
6
|
+
*
|
|
7
|
+
* Copying is available only for a secure environment (https://), otherwise the button is disabled.
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
export declare const CopyToClipboard: import("../core").VuiComponent<"button", CopyToClipboardProps>;
|
|
11
|
+
export default CopyToClipboard;
|
|
12
|
+
//# sourceMappingURL=copyToClipboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copyToClipboard.d.ts","sourceRoot":"","sources":["../../../src/copyToClipboard/copyToClipboard.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAG9D;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,gEAiB1B,CAAA;AAEF,eAAe,eAAe,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.CopyToClipboard = void 0;
|
|
18
|
+
const react_1 = __importDefault(require("react"));
|
|
19
|
+
const button_1 = __importDefault(require("../button"));
|
|
20
|
+
const core_1 = require("../core");
|
|
21
|
+
const utils_1 = require("../utils");
|
|
22
|
+
const useCopyToClipboard_1 = require("./useCopyToClipboard");
|
|
23
|
+
/**
|
|
24
|
+
* A helper button component.
|
|
25
|
+
*
|
|
26
|
+
* Copies the provided text to clipboard.
|
|
27
|
+
*
|
|
28
|
+
* Copying is available only for a secure environment (https://), otherwise the button is disabled.
|
|
29
|
+
*
|
|
30
|
+
*/
|
|
31
|
+
exports.CopyToClipboard = (0, core_1.vui)((props, ref) => {
|
|
32
|
+
const { disabled, copyText, className, size = 'xs', variant = 'text' } = props, rest = __rest(props, ["disabled", "copyText", "className", "size", "variant"]);
|
|
33
|
+
const { copy, isCopyDisabled } = (0, useCopyToClipboard_1.useCopyToClipboard)(copyText);
|
|
34
|
+
return (react_1.default.createElement(button_1.default, Object.assign({ className: (0, utils_1.cs)('vui-copy-to-clipboard', className), disabled: disabled || isCopyDisabled, icon: "falCopy", onClick: () => copy(), ref: ref, size: size, variant: variant }, rest)));
|
|
35
|
+
});
|
|
36
|
+
exports.default = exports.CopyToClipboard;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SystemProps } from '../system';
|
|
2
|
+
import { ThemingProps } from '../theme';
|
|
3
|
+
export declare type CopyToClipboardProps = SystemProps & ThemingProps<'Button'> & {
|
|
4
|
+
/** Text string for copying */
|
|
5
|
+
copyText: string;
|
|
6
|
+
/** Button size @default "xs" */
|
|
7
|
+
size?: 'xs' | 'sm' | 'md' | 'lg';
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=copyToClipboard.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copyToClipboard.types.d.ts","sourceRoot":"","sources":["../../../src/copyToClipboard/copyToClipboard.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,oBAAY,oBAAoB,GAAG,WAAW,GAC5C,YAAY,CAAC,QAAQ,CAAC,GAAG;IACvB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,gCAAgC;IAChC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;CACjC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/copyToClipboard/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.default = void 0;
|
|
21
|
+
__exportStar(require("./copyToClipboard"), exports);
|
|
22
|
+
var copyToClipboard_1 = require("./copyToClipboard");
|
|
23
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(copyToClipboard_1).default; } });
|
|
24
|
+
__exportStar(require("./copyToClipboard.types"), exports);
|
|
25
|
+
__exportStar(require("./useCopyToClipboard"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCopyToClipboard.d.ts","sourceRoot":"","sources":["../../../src/copyToClipboard/useCopyToClipboard.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,aAAc,MAAM;;;CAYlD,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useCopyToClipboard = void 0;
|
|
4
|
+
const toast_1 = require("../toast");
|
|
5
|
+
const useCopyToClipboard = (copyText) => {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
const { showSuccess, showError } = (0, toast_1.useToast)();
|
|
8
|
+
const isCopyDisabled = !((_b = (_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.clipboard) === null || _b === void 0 ? void 0 : _b.writeText);
|
|
9
|
+
const copy = () => {
|
|
10
|
+
var _a, _b, _c;
|
|
11
|
+
if (!isCopyDisabled) {
|
|
12
|
+
(_c = (_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : (_b = _a.clipboard).writeText) === null || _c === void 0 ? void 0 : _c.call(_b, copyText).then(() => showSuccess(`Copied to clipboard: ${copyText}`)).catch(() => showError('Copy failed'));
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
return { copy, isCopyDisabled };
|
|
16
|
+
};
|
|
17
|
+
exports.useCopyToClipboard = useCopyToClipboard;
|
package/dist/cjs/index.d.ts
CHANGED
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,YAAY,CAAA;AAC1B,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,mBAAmB,CAAA;AACjC,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,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -22,6 +22,7 @@ __exportStar(require("./buttonGroup"), exports);
|
|
|
22
22
|
__exportStar(require("./buttonToggleGroup"), exports);
|
|
23
23
|
__exportStar(require("./card"), exports);
|
|
24
24
|
__exportStar(require("./checkbox"), exports);
|
|
25
|
+
__exportStar(require("./copyToClipboard"), exports);
|
|
25
26
|
__exportStar(require("./core"), exports);
|
|
26
27
|
__exportStar(require("./dialog"), exports);
|
|
27
28
|
__exportStar(require("./divider"), exports);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AccordionProps } from './accordion.types';
|
|
2
2
|
export declare const AccordionBase: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("..").SystemProps, never>;
|
|
3
|
-
/**
|
|
3
|
+
/** Allows to show and hide sections of related content on a page. */
|
|
4
4
|
export declare const Accordion: import("../core").VuiComponent<"div", AccordionProps>;
|
|
5
5
|
export default Accordion;
|
|
6
6
|
//# sourceMappingURL=accordion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/accordion/accordion.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAsB,cAAc,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/accordion/accordion.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAsB,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAKtE,eAAO,MAAM,aAAa,+HAIzB,CAAA;AAED,qEAAqE;AACrE,eAAO,MAAM,SAAS,uDA6BpB,CAAA;AAEF,eAAe,SAAS,CAAA"}
|
|
@@ -3,22 +3,22 @@ import { styled, useStyleConfig, vui } from '../core';
|
|
|
3
3
|
import List from '../list';
|
|
4
4
|
import { cs, filterUndefined } from '../utils';
|
|
5
5
|
import AccordionItem from './accordionItem';
|
|
6
|
+
import AccordionItemHorizontal from './accordionItemHorizontal';
|
|
6
7
|
import { AccordionProvider } from './context';
|
|
7
8
|
export const AccordionBase = styled.divBox `
|
|
8
9
|
display: flex;
|
|
9
10
|
min-width: 0;
|
|
10
11
|
transition-duration: normal;
|
|
11
12
|
`;
|
|
12
|
-
/**
|
|
13
|
+
/** Allows to show and hide sections of related content on a page. */
|
|
13
14
|
export const Accordion = vui((props, ref) => {
|
|
14
|
-
const { children, className, items, size, ...rest } = props;
|
|
15
|
+
const { children, className, itemTitleHoverBg = 'blue.10', items, orientation = 'vertical', size, ...rest } = props;
|
|
15
16
|
const styles = useStyleConfig('Accordion', props);
|
|
16
17
|
const context = useMemo(() => filterUndefined({ size }), [size]);
|
|
17
18
|
const aliasedProps = filterUndefined({});
|
|
18
19
|
return (React.createElement(AccordionProvider, { value: context },
|
|
19
|
-
React.createElement(AccordionBase, { className: cs('vui-accordion', className), ref: ref, ...styles, ...aliasedProps, ...rest },
|
|
20
|
-
React.createElement(
|
|
21
|
-
|
|
22
|
-
: children))));
|
|
20
|
+
React.createElement(AccordionBase, { className: cs('vui-accordion', className), ref: ref, ...styles, ...aliasedProps, ...rest }, orientation === 'vertical' ? (React.createElement(List, { w: "100%" }, items
|
|
21
|
+
? items?.map?.((item, key) => (React.createElement(AccordionItem, { itemTitleHoverBg: itemTitleHoverBg, key: key, ...item })))
|
|
22
|
+
: children)) : items ? (items?.map?.((item, key) => (React.createElement(AccordionItemHorizontal, { itemTitleHoverBg: itemTitleHoverBg, key: key, ...item })))) : (children))));
|
|
23
23
|
});
|
|
24
24
|
export default Accordion;
|
|
@@ -2,7 +2,12 @@ import { ReactNode } from 'react';
|
|
|
2
2
|
import { ListItemProps } from '../list';
|
|
3
3
|
import { SystemProps } from '../system';
|
|
4
4
|
import { ThemingProps } from '../theme';
|
|
5
|
+
export declare type Orientation = 'vertical' | 'horizontal';
|
|
5
6
|
export declare type AccordionProps = SystemProps & ThemingProps<'Accordion'> & {
|
|
7
|
+
/** Items orientation @default 'vertical' */
|
|
8
|
+
orientation?: Orientation;
|
|
9
|
+
/** Hover color for the item title @default "blue.10" */
|
|
10
|
+
itemTitleHoverBg?: string;
|
|
6
11
|
items?: AccordionItemProps[];
|
|
7
12
|
};
|
|
8
13
|
export declare type AccordionItemId = string | number;
|
|
@@ -11,15 +16,25 @@ export declare type AccordionOnToggleEvent = {
|
|
|
11
16
|
collapsed: boolean;
|
|
12
17
|
};
|
|
13
18
|
export declare type AccordionItemProps = ListItemProps & {
|
|
19
|
+
/** Unique ID */
|
|
14
20
|
id: AccordionItemId;
|
|
21
|
+
/** Custom class name */
|
|
15
22
|
className?: string;
|
|
23
|
+
/** Content */
|
|
16
24
|
children?: ReactNode;
|
|
25
|
+
/** Alternative way to provide content */
|
|
17
26
|
content?: ReactNode;
|
|
27
|
+
/** Collapsed state */
|
|
18
28
|
collapsed?: boolean;
|
|
29
|
+
/** Hover color for the item title @default "blue.10" */
|
|
30
|
+
itemTitleHoverBg?: string;
|
|
31
|
+
/** Title */
|
|
19
32
|
title?: string | ReactNode;
|
|
33
|
+
/** Collapse change state */
|
|
20
34
|
onToggle?: (event: AccordionOnToggleEvent) => void;
|
|
21
35
|
};
|
|
22
36
|
export declare type AccordionItemArrowProps = {
|
|
23
37
|
collapsed?: boolean;
|
|
38
|
+
orientation?: Orientation;
|
|
24
39
|
};
|
|
25
40
|
//# sourceMappingURL=accordion.types.d.ts.map
|
|
@@ -1 +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;
|
|
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,WAAW,GAAG,UAAU,GAAG,YAAY,CAAA;AAEnD,oBAAY,cAAc,GAAG,WAAW,GACtC,YAAY,CAAC,WAAW,CAAC,GAAG;IAC1B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,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;IAC/C,gBAAgB;IAChB,EAAE,EAAE,eAAe,CAAA;IACnB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc;IACd,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,yCAAyC;IACzC,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,sBAAsB;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY;IACZ,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAA;CACnD,CAAA;AAED,oBAAY,uBAAuB,GAAG;IACpC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordionItem.d.ts","sourceRoot":"","sources":["../../../src/accordion/accordionItem.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAItD,yBAAyB;AACzB,eAAO,MAAM,aAAa,UAAW,kBAAkB,
|
|
1
|
+
{"version":3,"file":"accordionItem.d.ts","sourceRoot":"","sources":["../../../src/accordion/accordionItem.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAItD,yBAAyB;AACzB,eAAO,MAAM,aAAa,UAAW,kBAAkB,gBA6DtD,CAAA;AAED,eAAe,aAAa,CAAA"}
|
|
@@ -7,7 +7,7 @@ import AccordionItemArrow from './accordionItemArrow';
|
|
|
7
7
|
import { useAccordionContext } from './context';
|
|
8
8
|
/** An accordion item. */
|
|
9
9
|
export const AccordionItem = (props) => {
|
|
10
|
-
const { className, children,
|
|
10
|
+
const { className, children, collapsed, content, disabled, id, itemTitleHoverBg = 'blue.10', title, onToggle, ...rest } = omitThemingProps(props);
|
|
11
11
|
const [collapsedInternal, setIsCollapsedInternal] = useState(false);
|
|
12
12
|
const styles = useStyleConfig('Accordion', useAccordionContext());
|
|
13
13
|
useEffect(() => {
|
|
@@ -19,11 +19,11 @@ export const AccordionItem = (props) => {
|
|
|
19
19
|
setIsCollapsedInternal(!collapsedInternal);
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
|
-
return (React.createElement(ListItem, { borderBottom: "1px solid grey.40", className: cs('vui-accordion-item', className), disabled: disabled, flexDirection: "column", h: "auto",
|
|
23
|
-
React.createElement(Box, { cursor: disabled ? 'not-allowed' : 'pointer', justifyContent: "space-between", onClick: toggle, w: "100%" },
|
|
22
|
+
return (React.createElement(ListItem, { borderBottom: "1px solid grey.40", className: cs('vui-accordion-item', className), disabled: disabled, flexDirection: "column", h: "auto", id: `${id}`, p: 0, w: "100%", ...rest },
|
|
23
|
+
React.createElement(Box, { cursor: disabled ? 'not-allowed' : 'pointer', hoverBg: itemTitleHoverBg, justifyContent: "space-between", onClick: toggle, px: 2, w: "100%", ...styles.item },
|
|
24
24
|
React.createElement(Box, { fontWeight: typeof title === 'string' ? '500' : 'inherit' }, title),
|
|
25
25
|
React.createElement(Box, null,
|
|
26
26
|
React.createElement(AccordionItemArrow, { collapsed: collapsedInternal }))),
|
|
27
|
-
!collapsedInternal && (React.createElement(Box, { mb: 2, mt: 2, w: "100%" }, children ?? content))));
|
|
27
|
+
!collapsedInternal && (React.createElement(Box, { mb: 2, mt: 2, px: 2, py: 1, w: "100%" }, children ?? content))));
|
|
28
28
|
};
|
|
29
29
|
export default AccordionItem;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { AccordionItemArrowProps } from './accordion.types';
|
|
3
|
-
declare const _default: React.MemoExoticComponent<(
|
|
3
|
+
declare const _default: React.MemoExoticComponent<({ collapsed, orientation }: AccordionItemArrowProps) => JSX.Element>;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=accordionItemArrow.d.ts.map
|
|
@@ -1 +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;;
|
|
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;;AAiB3D,wBAA6C"}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import Icon from '../icon';
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
const names = {
|
|
4
|
+
horizontal: {
|
|
5
|
+
collapsed: 'falChevronRight',
|
|
6
|
+
expanded: 'falChevronLeft'
|
|
7
|
+
},
|
|
8
|
+
vertical: {
|
|
9
|
+
collapsed: 'falChevronDown',
|
|
10
|
+
expanded: 'falChevronUp'
|
|
11
|
+
}
|
|
6
12
|
};
|
|
13
|
+
const AccordionItemArrow = ({ collapsed, orientation = 'vertical' }) => (React.createElement(Icon, { name: names[orientation][collapsed ? 'collapsed' : 'expanded'], size: "xs" }));
|
|
7
14
|
export default React.memo(AccordionItemArrow);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { AccordionItemProps } from './accordion.types';
|
|
2
|
+
/** An accordion item (horizontal orientation). */
|
|
3
|
+
export declare const AccordionItemHorizontal: (props: AccordionItemProps) => JSX.Element;
|
|
4
|
+
export default AccordionItemHorizontal;
|
|
5
|
+
//# sourceMappingURL=accordionItemHorizontal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordionItemHorizontal.d.ts","sourceRoot":"","sources":["../../../src/accordion/accordionItemHorizontal.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAItD,kDAAkD;AAClD,eAAO,MAAM,uBAAuB,UAAW,kBAAkB,gBAmFhE,CAAA;AAED,eAAe,uBAAuB,CAAA"}
|