@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.
Files changed (74) hide show
  1. package/dist/cjs/accordion/accordion.d.ts +1 -1
  2. package/dist/cjs/accordion/accordion.d.ts.map +1 -1
  3. package/dist/cjs/accordion/accordion.js +7 -7
  4. package/dist/cjs/accordion/accordion.types.d.ts +15 -0
  5. package/dist/cjs/accordion/accordion.types.d.ts.map +1 -1
  6. package/dist/cjs/accordion/accordionItem.d.ts.map +1 -1
  7. package/dist/cjs/accordion/accordionItem.js +4 -4
  8. package/dist/cjs/accordion/accordionItemArrow.d.ts +1 -1
  9. package/dist/cjs/accordion/accordionItemArrow.d.ts.map +1 -1
  10. package/dist/cjs/accordion/accordionItemArrow.js +10 -3
  11. package/dist/cjs/accordion/accordionItemHorizontal.d.ts +5 -0
  12. package/dist/cjs/accordion/accordionItemHorizontal.d.ts.map +1 -0
  13. package/dist/cjs/accordion/accordionItemHorizontal.js +70 -0
  14. package/dist/cjs/accordion/index.d.ts +1 -0
  15. package/dist/cjs/accordion/index.d.ts.map +1 -1
  16. package/dist/cjs/accordion/index.js +1 -0
  17. package/dist/cjs/copyToClipboard/copyToClipboard.d.ts +12 -0
  18. package/dist/cjs/copyToClipboard/copyToClipboard.d.ts.map +1 -0
  19. package/dist/cjs/copyToClipboard/copyToClipboard.js +36 -0
  20. package/dist/cjs/copyToClipboard/copyToClipboard.types.d.ts +9 -0
  21. package/dist/cjs/copyToClipboard/copyToClipboard.types.d.ts.map +1 -0
  22. package/dist/cjs/copyToClipboard/copyToClipboard.types.js +2 -0
  23. package/dist/cjs/copyToClipboard/index.d.ts +5 -0
  24. package/dist/cjs/copyToClipboard/index.d.ts.map +1 -0
  25. package/dist/cjs/copyToClipboard/index.js +25 -0
  26. package/dist/cjs/copyToClipboard/useCopyToClipboard.d.ts +5 -0
  27. package/dist/cjs/copyToClipboard/useCopyToClipboard.d.ts.map +1 -0
  28. package/dist/cjs/copyToClipboard/useCopyToClipboard.js +17 -0
  29. package/dist/cjs/index.d.ts +1 -0
  30. package/dist/cjs/index.d.ts.map +1 -1
  31. package/dist/cjs/index.js +1 -0
  32. package/dist/esm/accordion/accordion.d.ts +1 -1
  33. package/dist/esm/accordion/accordion.d.ts.map +1 -1
  34. package/dist/esm/accordion/accordion.js +6 -6
  35. package/dist/esm/accordion/accordion.types.d.ts +15 -0
  36. package/dist/esm/accordion/accordion.types.d.ts.map +1 -1
  37. package/dist/esm/accordion/accordionItem.d.ts.map +1 -1
  38. package/dist/esm/accordion/accordionItem.js +4 -4
  39. package/dist/esm/accordion/accordionItemArrow.d.ts +1 -1
  40. package/dist/esm/accordion/accordionItemArrow.d.ts.map +1 -1
  41. package/dist/esm/accordion/accordionItemArrow.js +10 -3
  42. package/dist/esm/accordion/accordionItemHorizontal.d.ts +5 -0
  43. package/dist/esm/accordion/accordionItemHorizontal.d.ts.map +1 -0
  44. package/dist/esm/accordion/accordionItemHorizontal.js +29 -0
  45. package/dist/esm/accordion/index.d.ts +1 -0
  46. package/dist/esm/accordion/index.d.ts.map +1 -1
  47. package/dist/esm/accordion/index.js +1 -0
  48. package/dist/esm/copyToClipboard/copyToClipboard.d.ts +12 -0
  49. package/dist/esm/copyToClipboard/copyToClipboard.d.ts.map +1 -0
  50. package/dist/esm/copyToClipboard/copyToClipboard.js +19 -0
  51. package/dist/esm/copyToClipboard/copyToClipboard.types.d.ts +9 -0
  52. package/dist/esm/copyToClipboard/copyToClipboard.types.d.ts.map +1 -0
  53. package/dist/esm/copyToClipboard/copyToClipboard.types.js +1 -0
  54. package/dist/esm/copyToClipboard/index.d.ts +5 -0
  55. package/dist/esm/copyToClipboard/index.d.ts.map +1 -0
  56. package/dist/esm/copyToClipboard/index.js +4 -0
  57. package/dist/esm/copyToClipboard/useCopyToClipboard.d.ts +5 -0
  58. package/dist/esm/copyToClipboard/useCopyToClipboard.d.ts.map +1 -0
  59. package/dist/esm/copyToClipboard/useCopyToClipboard.js +14 -0
  60. package/dist/esm/index.d.ts +1 -0
  61. package/dist/esm/index.d.ts.map +1 -1
  62. package/dist/esm/index.js +1 -0
  63. package/package.json +1 -1
  64. package/src/accordion/accordion.tsx +18 -7
  65. package/src/accordion/accordion.types.ts +16 -7
  66. package/src/accordion/accordionItem.tsx +23 -5
  67. package/src/accordion/accordionItemArrow.tsx +13 -3
  68. package/src/accordion/accordionItemHorizontal.tsx +96 -0
  69. package/src/accordion/index.ts +1 -0
  70. package/src/copyToClipboard/copyToClipboard.tsx +36 -0
  71. package/src/copyToClipboard/copyToClipboard.types.ts +10 -0
  72. package/src/copyToClipboard/index.ts +4 -0
  73. package/src/copyToClipboard/useCopyToClipboard.ts +15 -0
  74. 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
- /** [BETA] Allows to show and hide sections of related content on a page. */
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;AAItE,eAAO,MAAM,aAAa,+HAIzB,CAAA;AAED,4EAA4E;AAC5E,eAAO,MAAM,SAAS,uDAmBpB,CAAA;AAEF,eAAe,SAAS,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
- /** [BETA] Allows to show and hide sections of related content on a page. */
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(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({ key: key }, item)))
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;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,GAAG,SAAS,CAAA;IAE1B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAA;CACnD,CAAA;AAED,oBAAY,uBAAuB,GAAG;IACpC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA"}
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,gBA2CtD,CAAA;AAED,eAAe,aAAa,CAAA"}
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, id, content, disabled, title, collapsed, onToggle } = _a, rest = __rest(_a, ["className", "children", "id", "content", "disabled", "title", "collapsed", "onToggle"]);
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", hoverBg: "blue.10", id: `${id}`, w: "100%" }, styles.item, rest),
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<(props: AccordionItemArrowProps) => JSX.Element>;
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;;AAO3D,wBAA6C"}
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 AccordionItemArrow = (props) => {
9
- const { collapsed } = props;
10
- return react_1.default.createElement(icon_1.default, { name: collapsed ? 'falChevronDown' : 'falChevronUp', size: "xs" });
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,5 +1,6 @@
1
1
  export * from './accordion';
2
2
  export * from './accordionItem';
3
+ export * from './accordionItemHorizontal';
3
4
  export { default } from './accordion';
4
5
  export * from './accordion.types';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,5 @@
1
+ export * from './copyToClipboard';
2
+ export { default } from './copyToClipboard';
3
+ export * from './copyToClipboard.types';
4
+ export * from './useCopyToClipboard';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -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,5 @@
1
+ export declare const useCopyToClipboard: (copyText: string) => {
2
+ copy: () => void;
3
+ isCopyDisabled: boolean;
4
+ };
5
+ //# sourceMappingURL=useCopyToClipboard.d.ts.map
@@ -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;
@@ -6,6 +6,7 @@ export * from './buttonGroup';
6
6
  export * from './buttonToggleGroup';
7
7
  export * from './card';
8
8
  export * from './checkbox';
9
+ export * from './copyToClipboard';
9
10
  export * from './core';
10
11
  export * from './dialog';
11
12
  export * from './divider';
@@ -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
- /** [BETA] Allows to show and hide sections of related content on a page. */
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;AAItE,eAAO,MAAM,aAAa,+HAIzB,CAAA;AAED,4EAA4E;AAC5E,eAAO,MAAM,SAAS,uDAmBpB,CAAA;AAEF,eAAe,SAAS,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
- /** [BETA] Allows to show and hide sections of related content on a page. */
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(List, { w: "100%" }, items
21
- ? items?.map?.((item, key) => React.createElement(AccordionItem, { key: key, ...item }))
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;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,GAAG,SAAS,CAAA;IAE1B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAA;CACnD,CAAA;AAED,oBAAY,uBAAuB,GAAG;IACpC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA"}
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,gBA2CtD,CAAA;AAED,eAAe,aAAa,CAAA"}
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, id, content, disabled, title, collapsed, onToggle, ...rest } = omitThemingProps(props);
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", hoverBg: "blue.10", id: `${id}`, w: "100%", ...styles.item, ...rest },
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<(props: AccordionItemArrowProps) => JSX.Element>;
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;;AAO3D,wBAA6C"}
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 AccordionItemArrow = (props) => {
4
- const { collapsed } = props;
5
- return React.createElement(Icon, { name: collapsed ? 'falChevronDown' : 'falChevronUp', size: "xs" });
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"}