@veracity/vui 1.9.0-beta.0 → 1.9.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.
Files changed (47) hide show
  1. package/dist/cjs/breadcrumbs/breadcrumbs.d.ts.map +1 -1
  2. package/dist/cjs/breadcrumbs/breadcrumbs.js +4 -9
  3. package/dist/cjs/breadcrumbs/breadcrumbs.types.d.ts +1 -8
  4. package/dist/cjs/breadcrumbs/breadcrumbs.types.d.ts.map +1 -1
  5. package/dist/cjs/breadcrumbs/breadcrumbsItem.d.ts +3 -2
  6. package/dist/cjs/breadcrumbs/breadcrumbsItem.d.ts.map +1 -1
  7. package/dist/cjs/breadcrumbs/breadcrumbsItem.js +6 -10
  8. package/dist/cjs/sidemenu/consts.d.ts +7 -0
  9. package/dist/cjs/sidemenu/consts.d.ts.map +1 -0
  10. package/dist/cjs/sidemenu/consts.js +9 -0
  11. package/dist/cjs/sidemenu/sidemenu.d.ts.map +1 -1
  12. package/dist/cjs/sidemenu/sidemenu.js +5 -4
  13. package/dist/cjs/sidemenu/sidemenu.types.d.ts +0 -2
  14. package/dist/cjs/sidemenu/sidemenu.types.d.ts.map +1 -1
  15. package/dist/cjs/sidemenu/sidemenuItem.d.ts +2 -1
  16. package/dist/cjs/sidemenu/sidemenuItem.d.ts.map +1 -1
  17. package/dist/cjs/sidemenu/sidemenuItem.js +12 -10
  18. package/dist/cjs/sidemenu/sidemenuTop.d.ts.map +1 -1
  19. package/dist/cjs/sidemenu/sidemenuTop.js +2 -1
  20. package/dist/esm/breadcrumbs/breadcrumbs.d.ts.map +1 -1
  21. package/dist/esm/breadcrumbs/breadcrumbs.js +4 -8
  22. package/dist/esm/breadcrumbs/breadcrumbs.types.d.ts +1 -8
  23. package/dist/esm/breadcrumbs/breadcrumbs.types.d.ts.map +1 -1
  24. package/dist/esm/breadcrumbs/breadcrumbsItem.d.ts +3 -2
  25. package/dist/esm/breadcrumbs/breadcrumbsItem.d.ts.map +1 -1
  26. package/dist/esm/breadcrumbs/breadcrumbsItem.js +7 -10
  27. package/dist/esm/sidemenu/consts.d.ts +7 -0
  28. package/dist/esm/sidemenu/consts.d.ts.map +1 -0
  29. package/dist/esm/sidemenu/consts.js +6 -0
  30. package/dist/esm/sidemenu/sidemenu.d.ts.map +1 -1
  31. package/dist/esm/sidemenu/sidemenu.js +5 -4
  32. package/dist/esm/sidemenu/sidemenu.types.d.ts +0 -2
  33. package/dist/esm/sidemenu/sidemenu.types.d.ts.map +1 -1
  34. package/dist/esm/sidemenu/sidemenuItem.d.ts +2 -1
  35. package/dist/esm/sidemenu/sidemenuItem.d.ts.map +1 -1
  36. package/dist/esm/sidemenu/sidemenuItem.js +13 -10
  37. package/dist/esm/sidemenu/sidemenuTop.d.ts.map +1 -1
  38. package/dist/esm/sidemenu/sidemenuTop.js +2 -1
  39. package/package.json +1 -1
  40. package/src/breadcrumbs/breadcrumbs.tsx +8 -15
  41. package/src/breadcrumbs/breadcrumbs.types.ts +1 -9
  42. package/src/breadcrumbs/breadcrumbsItem.tsx +7 -21
  43. package/src/sidemenu/consts.ts +8 -0
  44. package/src/sidemenu/sidemenu.tsx +5 -4
  45. package/src/sidemenu/sidemenu.types.ts +0 -2
  46. package/src/sidemenu/sidemenuItem.tsx +18 -22
  47. package/src/sidemenu/sidemenuTop.tsx +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../../../src/breadcrumbs/breadcrumbs.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA+B,YAAY,EAAE,MAAM,SAAS,CAAA;AAEnE,OAAO,EAAwB,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAC5E,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAI/C,eAAO,MAAM,eAAe,+HAI3B,CAAA;AAED,qLAAqL;AACrL,eAAO,MAAM,WAAW;UA4BhB,sBAAsB;CAC7B,CAAA;AAID,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../../../src/breadcrumbs/breadcrumbs.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA+B,YAAY,EAAE,MAAM,SAAS,CAAA;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAI/C,eAAO,MAAM,eAAe,+HAI3B,CAAA;AAED,qLAAqL;AACrL,eAAO,MAAM,WAAW;UAqBhB,sBAAsB;CAC7B,CAAA;AAID,eAAe,WAAW,CAAA"}
@@ -51,20 +51,15 @@ exports.BreadcrumbsBase = core_1.styled.divBox `
51
51
  `;
52
52
  /** [Beta] Breadcrumbs consist of a list of items that help a user visualize a page's location within the hierarchical structure of a website, and allow correspondent navigation. */
53
53
  exports.Breadcrumbs = (0, core_1.vui)((props, ref) => {
54
- var _a;
55
- const { children, className, items, size } = props, rest = __rest(props, ["children", "className", "items", "size"]);
54
+ const { children, className, size } = props, rest = __rest(props, ["children", "className", "size"]);
56
55
  const styles = (0, core_1.useStyleConfig)('Breadcrumbs', props);
57
56
  const context = (0, react_1.useMemo)(() => (0, utils_1.filterUndefined)({ size }), [size]);
58
57
  const aliasedProps = (0, utils_1.filterUndefined)({});
59
58
  const arrayChildren = react_1.Children.toArray(children);
60
59
  return (react_1.default.createElement(context_1.BreadcrumbsProvider, { value: context },
61
- react_1.default.createElement(exports.BreadcrumbsBase, Object.assign({ className: (0, utils_1.cs)('vui-breadcrumbs', className), ref: ref }, styles, aliasedProps, rest), 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(react_1.Fragment, { key: key },
63
- react_1.default.createElement(breadcrumbsItem_1.default, Object.assign({ key: key }, item)),
64
- key !== items.length - 1 && react_1.default.createElement(breadcrumbsSeparator_1.default, null))))
65
- : react_1.Children.map(arrayChildren, (child, key) => (react_1.default.createElement(react_1.Fragment, { key: key },
66
- child,
67
- key !== arrayChildren.length - 1 && react_1.default.createElement(breadcrumbsSeparator_1.default, null)))))));
60
+ react_1.default.createElement(exports.BreadcrumbsBase, Object.assign({ className: (0, utils_1.cs)('vui-breadcrumbs', className), ref: ref }, styles, aliasedProps, rest), react_1.Children.map(arrayChildren, (child, key) => (react_1.default.createElement(react_1.Fragment, { key: key },
61
+ child,
62
+ key !== arrayChildren.length - 1 && react_1.default.createElement(breadcrumbsSeparator_1.default, null)))))));
68
63
  });
69
64
  exports.Breadcrumbs.Item = breadcrumbsItem_1.default;
70
65
  exports.default = exports.Breadcrumbs;
@@ -3,21 +3,14 @@ import { BoxProps } from '../box';
3
3
  import { IconProp } from '../icon';
4
4
  import { SystemProps } from '../system';
5
5
  import { ThemingProps } from '../theme';
6
- export declare type BreadcrumbsProps = SystemProps & ThemingProps<'Breadcrumbs'> & {
7
- /** Collection of items */
8
- items?: BreadcrumbsItemProps[];
9
- };
6
+ export declare type BreadcrumbsProps = SystemProps & ThemingProps<'Breadcrumbs'>;
10
7
  export declare type BreadcrumbsItemProps = BoxProps & {
11
8
  /** Custom class name */
12
9
  className?: string;
13
10
  /** Content */
14
11
  children?: ReactNode;
15
- /** Alternative way to provide content */
16
- content?: ReactNode;
17
12
  /** Icon */
18
13
  icon?: IconProp;
19
- /** Path */
20
- path?: string;
21
14
  };
22
15
  export declare type BreadcrumbsSeparatorProps = BoxProps & {
23
16
  /** Custom class name */
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.types.d.ts","sourceRoot":"","sources":["../../../src/breadcrumbs/breadcrumbs.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,oBAAY,gBAAgB,GAAG,WAAW,GACxC,YAAY,CAAC,aAAa,CAAC,GAAG;IAC5B,0BAA0B;IAC1B,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAA;CAC/B,CAAA;AAEH,oBAAY,oBAAoB,GAAG,QAAQ,GAAG;IAC5C,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc;IACd,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,yCAAyC;IACzC,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,WAAW;IACX,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,oBAAY,yBAAyB,GAAG,QAAQ,GAAG;IACjD,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc;IACd,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,yCAAyC;IACzC,OAAO,CAAC,EAAE,SAAS,CAAA;CACpB,CAAA"}
1
+ {"version":3,"file":"breadcrumbs.types.d.ts","sourceRoot":"","sources":["../../../src/breadcrumbs/breadcrumbs.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,oBAAY,gBAAgB,GAAG,WAAW,GAAG,YAAY,CAAC,aAAa,CAAC,CAAA;AAExE,oBAAY,oBAAoB,GAAG,QAAQ,GAAG;IAC5C,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc;IACd,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,WAAW;IACX,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB,CAAA;AAED,oBAAY,yBAAyB,GAAG,QAAQ,GAAG;IACjD,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc;IACd,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,yCAAyC;IACzC,OAAO,CAAC,EAAE,SAAS,CAAA;CACpB,CAAA"}
@@ -1,5 +1,6 @@
1
+ import { VuiComponent } from '../core';
1
2
  import { BreadcrumbsItemProps } from './breadcrumbs.types';
2
- /** A Breadcrumbs item. */
3
- export declare const BreadcrumbsItem: (props: BreadcrumbsItemProps) => JSX.Element;
3
+ /** A Breadcrumb item. */
4
+ export declare const BreadcrumbsItem: VuiComponent<"div", BreadcrumbsItemProps>;
4
5
  export default BreadcrumbsItem;
5
6
  //# sourceMappingURL=breadcrumbsItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbsItem.d.ts","sourceRoot":"","sources":["../../../src/breadcrumbs/breadcrumbsItem.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAG1D,0BAA0B;AAC1B,eAAO,MAAM,eAAe,UAAW,oBAAoB,gBAuB1D,CAAA;AAED,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"breadcrumbsItem.d.ts","sourceRoot":"","sources":["../../../src/breadcrumbs/breadcrumbsItem.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAyC,YAAY,EAAE,MAAM,SAAS,CAAA;AAG7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAG1D,yBAAyB;AACzB,eAAO,MAAM,eAAe,2CAWmB,CAAA;AAE/C,eAAe,eAAe,CAAA"}
@@ -16,21 +16,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.BreadcrumbsItem = void 0;
18
18
  const react_1 = __importDefault(require("react"));
19
- const react_router_dom_1 = require("react-router-dom");
20
19
  const box_1 = require("../box");
21
20
  const core_1 = require("../core");
22
21
  const icon_1 = require("../icon");
23
- const link_1 = require("../link");
24
22
  const utils_1 = require("../utils");
25
23
  const context_1 = require("./context");
26
- /** A Breadcrumbs item. */
27
- const BreadcrumbsItem = (props) => {
28
- const _a = (0, core_1.omitThemingProps)(props), { className, children, content, icon, path } = _a, rest = __rest(_a, ["className", "children", "content", "icon", "path"]);
24
+ /** A Breadcrumb item. */
25
+ exports.BreadcrumbsItem = (0, core_1.vui)(props => {
26
+ const _a = (0, core_1.omitThemingProps)(props), { className, children, icon } = _a, rest = __rest(_a, ["className", "children", "icon"]);
29
27
  const styles = (0, core_1.useStyleConfig)('Breadcrumbs', (0, context_1.useBreadcrumbsContext)());
30
- const innerContent = (react_1.default.createElement(react_1.default.Fragment, null,
28
+ return (react_1.default.createElement(box_1.Box, Object.assign({ alignItems: "center", className: (0, utils_1.cs)('vui-breadcrumbs-item', className), p: 0 }, rest, styles.item),
31
29
  !!icon && react_1.default.createElement(icon_1.Icon, { name: icon, size: "sm" }),
32
- content || children));
33
- return (react_1.default.createElement(box_1.Box, Object.assign({ alignItems: "center", className: (0, utils_1.cs)('vui-breadcrumbs-item', className), p: 0 }, rest, styles.item), path ? (react_1.default.createElement(link_1.Link, { as: react_router_dom_1.Link, to: path }, innerContent)) : (innerContent)));
34
- };
35
- exports.BreadcrumbsItem = BreadcrumbsItem;
30
+ children));
31
+ });
36
32
  exports.default = exports.BreadcrumbsItem;
@@ -0,0 +1,7 @@
1
+ export declare const border = "1px solid lightgray";
2
+ export declare const expandedWidth = 64;
3
+ export declare const right: {
4
+ expanded: number;
5
+ collapsed: number;
6
+ };
7
+ //# sourceMappingURL=consts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../../src/sidemenu/consts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,wBAAwB,CAAA;AAE3C,eAAO,MAAM,aAAa,KAAK,CAAA;AAE/B,eAAO,MAAM,KAAK;;;CAGjB,CAAA"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.right = exports.expandedWidth = exports.border = void 0;
4
+ exports.border = '1px solid lightgray';
5
+ exports.expandedWidth = 64;
6
+ exports.right = {
7
+ expanded: 16,
8
+ collapsed: 34
9
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"sidemenu.d.ts","sourceRoot":"","sources":["../../../src/sidemenu/sidemenu.tsx"],"names":[],"mappings":"AAIA,OAAO,EAA+B,YAAY,EAAE,MAAM,SAAS,CAAA;AAInE,OAAO,EAAqB,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,WAAW,MAAM,eAAe,CAAA;AAEvC,eAAO,MAAM,YAAY,+HAMxB,CAAA;AAED,qDAAqD;AACrD,eAAO,MAAM,QAAQ;SAqCd,kBAAkB;UACjB,mBAAmB;CAC1B,CAAA;AAKD,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"sidemenu.d.ts","sourceRoot":"","sources":["../../../src/sidemenu/sidemenu.tsx"],"names":[],"mappings":"AAIA,OAAO,EAA+B,YAAY,EAAE,MAAM,SAAS,CAAA;AAKnE,OAAO,EAAqB,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,WAAW,MAAM,eAAe,CAAA;AAEvC,eAAO,MAAM,YAAY,+HAMxB,CAAA;AAED,qDAAqD;AACrD,eAAO,MAAM,QAAQ;SAqCd,kBAAkB;UACjB,mBAAmB;CAC1B,CAAA;AAKD,eAAe,QAAQ,CAAA"}
@@ -44,6 +44,7 @@ const button_1 = __importDefault(require("../button"));
44
44
  const core_1 = require("../core");
45
45
  const icon_1 = __importDefault(require("../icon"));
46
46
  const utils_1 = require("../utils");
47
+ const consts_1 = require("./consts");
47
48
  const context_1 = require("./context");
48
49
  const sidemenuItem_1 = __importDefault(require("./sidemenuItem"));
49
50
  const sidemenuTop_1 = __importDefault(require("./sidemenuTop"));
@@ -68,15 +69,15 @@ exports.Sidemenu = (0, core_1.vui)((props, ref) => {
68
69
  const toggle = () => {
69
70
  setIsExpandedInternal(!isExpandedInternal);
70
71
  };
71
- const w = isExpandedInternal ? width : 64;
72
+ const w = isExpandedInternal ? width : consts_1.expandedWidth;
72
73
  const icon = isExpandedInternal ? 'falArrowLeft' : 'falArrowRight';
73
- const iconRight = isExpandedInternal ? 16 : 34;
74
+ const iconRight = isExpandedInternal ? consts_1.right.expanded : consts_1.right.collapsed;
74
75
  return (react_1.default.createElement(context_1.SidemenuProvider, { value: context },
75
76
  react_1.default.createElement(exports.SidemenuBase, Object.assign({ className: (0, utils_1.cs)('vui-sidemenu', className), ref: ref, w: w }, styles, aliasedProps, rest),
76
- react_1.default.createElement(box_1.default, { flexDirection: "column", flexGrow: 1, w: "100%" }, items
77
+ react_1.default.createElement(box_1.default, { flexDirection: "column", flexGrow: 1, overflowX: "hidden", overflowY: "auto", w: "100%" }, items
77
78
  ? (_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(sidemenuItem_1.default, Object.assign({ key: key }, item)))
78
79
  : children),
79
- react_1.default.createElement(box_1.default, { borderTop: "1px solid lightgray", className: "vui-sidemenu-bottom", mt: 2, w: "100%" },
80
+ react_1.default.createElement(box_1.default, { borderTop: consts_1.border, className: "vui-sidemenu-bottom", w: "100%" },
80
81
  react_1.default.createElement(button_1.default, { borderRadius: 0, onClick: toggle, variant: "text", w: "100%" },
81
82
  react_1.default.createElement(icon_1.default, { name: icon, position: "absolute", right: iconRight }))))));
82
83
  });
@@ -23,8 +23,6 @@ export declare type SidemenuItemProps = BoxProps & {
23
23
  iconSize?: 'md' | 'sm';
24
24
  /** Whether the item is active */
25
25
  isActive?: boolean;
26
- /** Path */
27
- path?: string;
28
26
  /** On click callback */
29
27
  onClick?: () => void;
30
28
  /** Title */
@@ -1 +1 @@
1
- {"version":3,"file":"sidemenu.types.d.ts","sourceRoot":"","sources":["../../../src/sidemenu/sidemenu.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,oBAAY,mBAAmB,GAAG,UAAU,GAAG,YAAY,CAAA;AAE3D,oBAAY,aAAa,GAAG,WAAW,GACrC,YAAY,CAAC,UAAU,CAAC,GAAG;IACzB,gCAAgC;IAChC,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC3B,mDAAmD;IACnD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAEH,oBAAY,iBAAiB,GAAG,QAAQ,GAAG;IACzC,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe;IACf,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,wBAAwB;IACxB,IAAI,EAAE,QAAQ,CAAA;IACd,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IACtB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,YAAY;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,oBAAY,gBAAgB,GAAG,QAAQ,GAAG;IACxC,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,sDAAsD;IACtD,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,CAAA"}
1
+ {"version":3,"file":"sidemenu.types.d.ts","sourceRoot":"","sources":["../../../src/sidemenu/sidemenu.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,oBAAY,mBAAmB,GAAG,UAAU,GAAG,YAAY,CAAA;AAE3D,oBAAY,aAAa,GAAG,WAAW,GACrC,YAAY,CAAC,UAAU,CAAC,GAAG;IACzB,gCAAgC;IAChC,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC3B,mDAAmD;IACnD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAEH,oBAAY,iBAAiB,GAAG,QAAQ,GAAG;IACzC,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe;IACf,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,wBAAwB;IACxB,IAAI,EAAE,QAAQ,CAAA;IACd,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IACtB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,YAAY;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,oBAAY,gBAAgB,GAAG,QAAQ,GAAG;IACxC,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,sDAAsD;IACtD,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,CAAA"}
@@ -1,5 +1,6 @@
1
+ import { VuiComponent } from '../core';
1
2
  import { SidemenuItemProps } from './sidemenu.types';
2
3
  /** A menu item. */
3
- export declare const SidemenuItem: (props: SidemenuItemProps) => JSX.Element;
4
+ export declare const SidemenuItem: VuiComponent<"div", SidemenuItemProps>;
4
5
  export default SidemenuItem;
5
6
  //# sourceMappingURL=sidemenuItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidemenuItem.d.ts","sourceRoot":"","sources":["../../../src/sidemenu/sidemenuItem.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,mBAAmB;AACnB,eAAO,MAAM,YAAY,UAAW,iBAAiB,gBAiEpD,CAAA;AAED,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"sidemenuItem.d.ts","sourceRoot":"","sources":["../../../src/sidemenu/sidemenuItem.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAyB,YAAY,EAAE,MAAM,SAAS,CAAA;AAK7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,mBAAmB;AACnB,eAAO,MAAM,YAAY,wCA8DmB,CAAA;AAE5C,eAAe,YAAY,CAAA"}
@@ -39,7 +39,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
40
  exports.SidemenuItem = void 0;
41
41
  const react_1 = __importStar(require("react"));
42
- const react_router_dom_1 = require("react-router-dom");
43
42
  const box_1 = __importDefault(require("../box"));
44
43
  const button_1 = __importDefault(require("../button"));
45
44
  const core_1 = require("../core");
@@ -48,20 +47,23 @@ const t_1 = __importDefault(require("../t"));
48
47
  const utils_1 = require("../utils");
49
48
  const context_1 = require("./context");
50
49
  /** A menu item. */
51
- const SidemenuItem = (props) => {
52
- const _a = (0, core_1.omitThemingProps)(props), { className, children, icon, iconSize = 'md', isActive, onClick, path, title } = _a, rest = __rest(_a, ["className", "children", "icon", "iconSize", "isActive", "onClick", "path", "title"]);
50
+ exports.SidemenuItem = (0, core_1.vui)(props => {
51
+ const _a = (0, core_1.omitThemingProps)(props), { className, children, icon, iconSize = 'md', isActive, onClick, title } = _a, rest = __rest(_a, ["className", "children", "icon", "iconSize", "isActive", "onClick", "title"]);
53
52
  const [displayChildren, setDisplayChildren] = (0, react_1.useState)(true);
54
53
  const { isExpandedInternal } = (0, context_1.useSidemenuContext)();
55
- const innerContent = isExpandedInternal ? (react_1.default.createElement(box_1.default, { px: 2, py: 1, w: "100%", whiteSpace: "pre" },
54
+ const innerContent = isExpandedInternal ? (react_1.default.createElement(box_1.default, { centerV: true, px: 2, py: 1, w: "100%", whiteSpace: "pre" },
56
55
  react_1.default.createElement(icon_1.default, { ml: iconSize === 'sm' ? '4px' : 0, name: icon, size: iconSize }),
57
- react_1.default.createElement(t_1.default, { ml: 2 }, title))) : (react_1.default.createElement(box_1.default, { px: 2, py: 1, w: "100%" },
56
+ react_1.default.createElement(t_1.default, { isTruncated: true, ml: 2 }, title))) : (react_1.default.createElement(box_1.default, { centerV: true, px: 2, py: 1, w: "100%" },
58
57
  react_1.default.createElement(icon_1.default, { ml: iconSize === 'sm' ? '4px' : 0, name: icon, size: iconSize })));
59
- const pathProps = path ? { as: react_router_dom_1.Link, to: path } : {};
58
+ const toggle = (e) => {
59
+ e.preventDefault();
60
+ e.stopPropagation();
61
+ setDisplayChildren(!displayChildren);
62
+ };
60
63
  return (react_1.default.createElement(box_1.default, { flexDirection: "column", w: "100%" },
61
- react_1.default.createElement(button_1.default, Object.assign({ border: "none", borderLeft: "3px solid black", borderLeftColor: isActive ? 'blue.80' : 'transparent', borderRadius: 0, className: (0, utils_1.cs)('vui-sidemenu-item', className), h: "auto", justifyContent: "space-between", onClick: () => onClick === null || onClick === void 0 ? void 0 : onClick(), p: 0, variant: "text", w: "100%" }, pathProps, rest),
64
+ react_1.default.createElement(button_1.default, Object.assign({ alignItems: "center", border: "none", borderLeft: "3px solid black", borderLeftColor: isActive ? 'blue.80' : 'transparent', borderRadius: 0, className: (0, utils_1.cs)('vui-sidemenu-item', className), h: "auto", justifyContent: "space-between", onClick: () => onClick === null || onClick === void 0 ? void 0 : onClick(), p: 0, variant: "text", w: "100%" }, rest),
62
65
  innerContent,
63
- !!children && isExpandedInternal && (react_1.default.createElement(button_1.default, { icon: displayChildren ? 'falChevronUp' : 'falChevronDown', mr: 1, onClick: () => setDisplayChildren(!displayChildren), size: "xs", variant: "text" }))),
66
+ !!children && isExpandedInternal && (react_1.default.createElement(button_1.default, { className: "vui-sidemenu-item-expand", icon: displayChildren ? 'falChevronUp' : 'falChevronDown', mr: 1, onClick: toggle, size: "xs", variant: "text" }))),
64
67
  !!children && displayChildren && (react_1.default.createElement(box_1.default, { flexDirection: "column", justifyContent: "start", w: "100%" }, children))));
65
- };
66
- exports.SidemenuItem = SidemenuItem;
68
+ });
67
69
  exports.default = exports.SidemenuItem;
@@ -1 +1 @@
1
- {"version":3,"file":"sidemenuTop.d.ts","sourceRoot":"","sources":["../../../src/sidemenu/sidemenuTop.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEnD,qBAAqB;AACrB,eAAO,MAAM,WAAW,UAAW,gBAAgB,uBAalD,CAAA;AAED,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"sidemenuTop.d.ts","sourceRoot":"","sources":["../../../src/sidemenu/sidemenuTop.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEnD,qBAAqB;AACrB,eAAO,MAAM,WAAW,UAAW,gBAAgB,uBAalD,CAAA;AAED,eAAe,WAAW,CAAA"}
@@ -19,6 +19,7 @@ const react_1 = __importDefault(require("react"));
19
19
  const box_1 = require("../box");
20
20
  const core_1 = require("../core");
21
21
  const utils_1 = require("../utils");
22
+ const consts_1 = require("./consts");
22
23
  const context_1 = require("./context");
23
24
  /** Top container. */
24
25
  const SidemenuTop = (props) => {
@@ -26,7 +27,7 @@ const SidemenuTop = (props) => {
26
27
  const { isExpandedInternal } = (0, context_1.useSidemenuContext)();
27
28
  if (!leftSlot && !rightSlot)
28
29
  return null;
29
- return (react_1.default.createElement(box_1.Box, Object.assign({ borderBottom: "1px solid lightgray", className: (0, utils_1.cs)('vui-sidemenu-top', className), mb: 1, w: "100%" }, rest),
30
+ return (react_1.default.createElement(box_1.Box, Object.assign({ borderBottom: consts_1.border, className: (0, utils_1.cs)('vui-sidemenu-top', className), mb: 1, w: "100%" }, rest),
30
31
  !!leftSlot && leftSlot,
31
32
  !!rightSlot && isExpandedInternal && rightSlot));
32
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../../../src/breadcrumbs/breadcrumbs.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA+B,YAAY,EAAE,MAAM,SAAS,CAAA;AAEnE,OAAO,EAAwB,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAC5E,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAI/C,eAAO,MAAM,eAAe,+HAI3B,CAAA;AAED,qLAAqL;AACrL,eAAO,MAAM,WAAW;UA4BhB,sBAAsB;CAC7B,CAAA;AAID,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../../../src/breadcrumbs/breadcrumbs.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA+B,YAAY,EAAE,MAAM,SAAS,CAAA;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAI/C,eAAO,MAAM,eAAe,+HAI3B,CAAA;AAED,qLAAqL;AACrL,eAAO,MAAM,WAAW;UAqBhB,sBAAsB;CAC7B,CAAA;AAID,eAAe,WAAW,CAAA"}
@@ -11,19 +11,15 @@ export const BreadcrumbsBase = styled.divBox `
11
11
  `;
12
12
  /** [Beta] Breadcrumbs consist of a list of items that help a user visualize a page's location within the hierarchical structure of a website, and allow correspondent navigation. */
13
13
  export const Breadcrumbs = vui((props, ref) => {
14
- const { children, className, items, size, ...rest } = props;
14
+ const { children, className, size, ...rest } = props;
15
15
  const styles = useStyleConfig('Breadcrumbs', props);
16
16
  const context = useMemo(() => filterUndefined({ size }), [size]);
17
17
  const aliasedProps = filterUndefined({});
18
18
  const arrayChildren = Children.toArray(children);
19
19
  return (React.createElement(BreadcrumbsProvider, { value: context },
20
- React.createElement(BreadcrumbsBase, { className: cs('vui-breadcrumbs', className), ref: ref, ...styles, ...aliasedProps, ...rest }, items
21
- ? items?.map?.((item, key) => (React.createElement(Fragment, { key: key },
22
- React.createElement(BreadcrumbsItem, { key: key, ...item }),
23
- key !== items.length - 1 && React.createElement(BreadcrumbsSeparator, null))))
24
- : Children.map(arrayChildren, (child, key) => (React.createElement(Fragment, { key: key },
25
- child,
26
- key !== arrayChildren.length - 1 && React.createElement(BreadcrumbsSeparator, null)))))));
20
+ React.createElement(BreadcrumbsBase, { className: cs('vui-breadcrumbs', className), ref: ref, ...styles, ...aliasedProps, ...rest }, Children.map(arrayChildren, (child, key) => (React.createElement(Fragment, { key: key },
21
+ child,
22
+ key !== arrayChildren.length - 1 && React.createElement(BreadcrumbsSeparator, null)))))));
27
23
  });
28
24
  Breadcrumbs.Item = BreadcrumbsItem;
29
25
  export default Breadcrumbs;
@@ -3,21 +3,14 @@ import { BoxProps } from '../box';
3
3
  import { IconProp } from '../icon';
4
4
  import { SystemProps } from '../system';
5
5
  import { ThemingProps } from '../theme';
6
- export declare type BreadcrumbsProps = SystemProps & ThemingProps<'Breadcrumbs'> & {
7
- /** Collection of items */
8
- items?: BreadcrumbsItemProps[];
9
- };
6
+ export declare type BreadcrumbsProps = SystemProps & ThemingProps<'Breadcrumbs'>;
10
7
  export declare type BreadcrumbsItemProps = BoxProps & {
11
8
  /** Custom class name */
12
9
  className?: string;
13
10
  /** Content */
14
11
  children?: ReactNode;
15
- /** Alternative way to provide content */
16
- content?: ReactNode;
17
12
  /** Icon */
18
13
  icon?: IconProp;
19
- /** Path */
20
- path?: string;
21
14
  };
22
15
  export declare type BreadcrumbsSeparatorProps = BoxProps & {
23
16
  /** Custom class name */
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.types.d.ts","sourceRoot":"","sources":["../../../src/breadcrumbs/breadcrumbs.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,oBAAY,gBAAgB,GAAG,WAAW,GACxC,YAAY,CAAC,aAAa,CAAC,GAAG;IAC5B,0BAA0B;IAC1B,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAA;CAC/B,CAAA;AAEH,oBAAY,oBAAoB,GAAG,QAAQ,GAAG;IAC5C,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc;IACd,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,yCAAyC;IACzC,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,WAAW;IACX,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,oBAAY,yBAAyB,GAAG,QAAQ,GAAG;IACjD,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc;IACd,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,yCAAyC;IACzC,OAAO,CAAC,EAAE,SAAS,CAAA;CACpB,CAAA"}
1
+ {"version":3,"file":"breadcrumbs.types.d.ts","sourceRoot":"","sources":["../../../src/breadcrumbs/breadcrumbs.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,oBAAY,gBAAgB,GAAG,WAAW,GAAG,YAAY,CAAC,aAAa,CAAC,CAAA;AAExE,oBAAY,oBAAoB,GAAG,QAAQ,GAAG;IAC5C,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc;IACd,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,WAAW;IACX,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB,CAAA;AAED,oBAAY,yBAAyB,GAAG,QAAQ,GAAG;IACjD,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc;IACd,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,yCAAyC;IACzC,OAAO,CAAC,EAAE,SAAS,CAAA;CACpB,CAAA"}
@@ -1,5 +1,6 @@
1
+ import { VuiComponent } from '../core';
1
2
  import { BreadcrumbsItemProps } from './breadcrumbs.types';
2
- /** A Breadcrumbs item. */
3
- export declare const BreadcrumbsItem: (props: BreadcrumbsItemProps) => JSX.Element;
3
+ /** A Breadcrumb item. */
4
+ export declare const BreadcrumbsItem: VuiComponent<"div", BreadcrumbsItemProps>;
4
5
  export default BreadcrumbsItem;
5
6
  //# sourceMappingURL=breadcrumbsItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbsItem.d.ts","sourceRoot":"","sources":["../../../src/breadcrumbs/breadcrumbsItem.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAG1D,0BAA0B;AAC1B,eAAO,MAAM,eAAe,UAAW,oBAAoB,gBAuB1D,CAAA;AAED,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"breadcrumbsItem.d.ts","sourceRoot":"","sources":["../../../src/breadcrumbs/breadcrumbsItem.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAyC,YAAY,EAAE,MAAM,SAAS,CAAA;AAG7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAG1D,yBAAyB;AACzB,eAAO,MAAM,eAAe,2CAWmB,CAAA;AAE/C,eAAe,eAAe,CAAA"}
@@ -1,18 +1,15 @@
1
1
  import React from 'react';
2
- import { Link as RouterLink } from 'react-router-dom';
3
2
  import { Box } from '../box';
4
- import { omitThemingProps, useStyleConfig } from '../core';
3
+ import { omitThemingProps, useStyleConfig, vui } from '../core';
5
4
  import { Icon } from '../icon';
6
- import { Link } from '../link';
7
5
  import { cs } from '../utils';
8
6
  import { useBreadcrumbsContext } from './context';
9
- /** A Breadcrumbs item. */
10
- export const BreadcrumbsItem = (props) => {
11
- const { className, children, content, icon, path, ...rest } = omitThemingProps(props);
7
+ /** A Breadcrumb item. */
8
+ export const BreadcrumbsItem = vui(props => {
9
+ const { className, children, icon, ...rest } = omitThemingProps(props);
12
10
  const styles = useStyleConfig('Breadcrumbs', useBreadcrumbsContext());
13
- const innerContent = (React.createElement(React.Fragment, null,
11
+ return (React.createElement(Box, { alignItems: "center", className: cs('vui-breadcrumbs-item', className), p: 0, ...rest, ...styles.item },
14
12
  !!icon && React.createElement(Icon, { name: icon, size: "sm" }),
15
- content || children));
16
- return (React.createElement(Box, { alignItems: "center", className: cs('vui-breadcrumbs-item', className), p: 0, ...rest, ...styles.item }, path ? (React.createElement(Link, { as: RouterLink, to: path }, innerContent)) : (innerContent)));
17
- };
13
+ children));
14
+ });
18
15
  export default BreadcrumbsItem;
@@ -0,0 +1,7 @@
1
+ export declare const border = "1px solid lightgray";
2
+ export declare const expandedWidth = 64;
3
+ export declare const right: {
4
+ expanded: number;
5
+ collapsed: number;
6
+ };
7
+ //# sourceMappingURL=consts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../../src/sidemenu/consts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,wBAAwB,CAAA;AAE3C,eAAO,MAAM,aAAa,KAAK,CAAA;AAE/B,eAAO,MAAM,KAAK;;;CAGjB,CAAA"}
@@ -0,0 +1,6 @@
1
+ export const border = '1px solid lightgray';
2
+ export const expandedWidth = 64;
3
+ export const right = {
4
+ expanded: 16,
5
+ collapsed: 34
6
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"sidemenu.d.ts","sourceRoot":"","sources":["../../../src/sidemenu/sidemenu.tsx"],"names":[],"mappings":"AAIA,OAAO,EAA+B,YAAY,EAAE,MAAM,SAAS,CAAA;AAInE,OAAO,EAAqB,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,WAAW,MAAM,eAAe,CAAA;AAEvC,eAAO,MAAM,YAAY,+HAMxB,CAAA;AAED,qDAAqD;AACrD,eAAO,MAAM,QAAQ;SAqCd,kBAAkB;UACjB,mBAAmB;CAC1B,CAAA;AAKD,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"sidemenu.d.ts","sourceRoot":"","sources":["../../../src/sidemenu/sidemenu.tsx"],"names":[],"mappings":"AAIA,OAAO,EAA+B,YAAY,EAAE,MAAM,SAAS,CAAA;AAKnE,OAAO,EAAqB,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,WAAW,MAAM,eAAe,CAAA;AAEvC,eAAO,MAAM,YAAY,+HAMxB,CAAA;AAED,qDAAqD;AACrD,eAAO,MAAM,QAAQ;SAqCd,kBAAkB;UACjB,mBAAmB;CAC1B,CAAA;AAKD,eAAe,QAAQ,CAAA"}
@@ -4,6 +4,7 @@ import Button from '../button';
4
4
  import { styled, useStyleConfig, vui } from '../core';
5
5
  import Icon from '../icon';
6
6
  import { cs, filterUndefined } from '../utils';
7
+ import { border, expandedWidth, right } from './consts';
7
8
  import { SidemenuProvider } from './context';
8
9
  import SidemenuItem from './sidemenuItem';
9
10
  import SidemenuTop from './sidemenuTop';
@@ -27,15 +28,15 @@ export const Sidemenu = vui((props, ref) => {
27
28
  const toggle = () => {
28
29
  setIsExpandedInternal(!isExpandedInternal);
29
30
  };
30
- const w = isExpandedInternal ? width : 64;
31
+ const w = isExpandedInternal ? width : expandedWidth;
31
32
  const icon = isExpandedInternal ? 'falArrowLeft' : 'falArrowRight';
32
- const iconRight = isExpandedInternal ? 16 : 34;
33
+ const iconRight = isExpandedInternal ? right.expanded : right.collapsed;
33
34
  return (React.createElement(SidemenuProvider, { value: context },
34
35
  React.createElement(SidemenuBase, { className: cs('vui-sidemenu', className), ref: ref, w: w, ...styles, ...aliasedProps, ...rest },
35
- React.createElement(Box, { flexDirection: "column", flexGrow: 1, w: "100%" }, items
36
+ React.createElement(Box, { flexDirection: "column", flexGrow: 1, overflowX: "hidden", overflowY: "auto", w: "100%" }, items
36
37
  ? items?.map?.((item, key) => React.createElement(SidemenuItem, { key: key, ...item }))
37
38
  : children),
38
- React.createElement(Box, { borderTop: "1px solid lightgray", className: "vui-sidemenu-bottom", mt: 2, w: "100%" },
39
+ React.createElement(Box, { borderTop: border, className: "vui-sidemenu-bottom", w: "100%" },
39
40
  React.createElement(Button, { borderRadius: 0, onClick: toggle, variant: "text", w: "100%" },
40
41
  React.createElement(Icon, { name: icon, position: "absolute", right: iconRight }))))));
41
42
  });
@@ -23,8 +23,6 @@ export declare type SidemenuItemProps = BoxProps & {
23
23
  iconSize?: 'md' | 'sm';
24
24
  /** Whether the item is active */
25
25
  isActive?: boolean;
26
- /** Path */
27
- path?: string;
28
26
  /** On click callback */
29
27
  onClick?: () => void;
30
28
  /** Title */
@@ -1 +1 @@
1
- {"version":3,"file":"sidemenu.types.d.ts","sourceRoot":"","sources":["../../../src/sidemenu/sidemenu.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,oBAAY,mBAAmB,GAAG,UAAU,GAAG,YAAY,CAAA;AAE3D,oBAAY,aAAa,GAAG,WAAW,GACrC,YAAY,CAAC,UAAU,CAAC,GAAG;IACzB,gCAAgC;IAChC,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC3B,mDAAmD;IACnD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAEH,oBAAY,iBAAiB,GAAG,QAAQ,GAAG;IACzC,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe;IACf,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,wBAAwB;IACxB,IAAI,EAAE,QAAQ,CAAA;IACd,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IACtB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,YAAY;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,oBAAY,gBAAgB,GAAG,QAAQ,GAAG;IACxC,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,sDAAsD;IACtD,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,CAAA"}
1
+ {"version":3,"file":"sidemenu.types.d.ts","sourceRoot":"","sources":["../../../src/sidemenu/sidemenu.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,oBAAY,mBAAmB,GAAG,UAAU,GAAG,YAAY,CAAA;AAE3D,oBAAY,aAAa,GAAG,WAAW,GACrC,YAAY,CAAC,UAAU,CAAC,GAAG;IACzB,gCAAgC;IAChC,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC3B,mDAAmD;IACnD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAEH,oBAAY,iBAAiB,GAAG,QAAQ,GAAG;IACzC,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe;IACf,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,wBAAwB;IACxB,IAAI,EAAE,QAAQ,CAAA;IACd,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IACtB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,YAAY;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,oBAAY,gBAAgB,GAAG,QAAQ,GAAG;IACxC,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,sDAAsD;IACtD,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,CAAA"}
@@ -1,5 +1,6 @@
1
+ import { VuiComponent } from '../core';
1
2
  import { SidemenuItemProps } from './sidemenu.types';
2
3
  /** A menu item. */
3
- export declare const SidemenuItem: (props: SidemenuItemProps) => JSX.Element;
4
+ export declare const SidemenuItem: VuiComponent<"div", SidemenuItemProps>;
4
5
  export default SidemenuItem;
5
6
  //# sourceMappingURL=sidemenuItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidemenuItem.d.ts","sourceRoot":"","sources":["../../../src/sidemenu/sidemenuItem.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,mBAAmB;AACnB,eAAO,MAAM,YAAY,UAAW,iBAAiB,gBAiEpD,CAAA;AAED,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"sidemenuItem.d.ts","sourceRoot":"","sources":["../../../src/sidemenu/sidemenuItem.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAyB,YAAY,EAAE,MAAM,SAAS,CAAA;AAK7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,mBAAmB;AACnB,eAAO,MAAM,YAAY,wCA8DmB,CAAA;AAE5C,eAAe,YAAY,CAAA"}
@@ -1,26 +1,29 @@
1
1
  import React, { useState } from 'react';
2
- import { Link as RouterLink } from 'react-router-dom';
3
2
  import Box from '../box';
4
3
  import Button from '../button';
5
- import { omitThemingProps } from '../core';
4
+ import { omitThemingProps, vui } from '../core';
6
5
  import Icon from '../icon';
7
6
  import T from '../t';
8
7
  import { cs } from '../utils';
9
8
  import { useSidemenuContext } from './context';
10
9
  /** A menu item. */
11
- export const SidemenuItem = (props) => {
12
- const { className, children, icon, iconSize = 'md', isActive, onClick, path, title, ...rest } = omitThemingProps(props);
10
+ export const SidemenuItem = vui(props => {
11
+ const { className, children, icon, iconSize = 'md', isActive, onClick, title, ...rest } = omitThemingProps(props);
13
12
  const [displayChildren, setDisplayChildren] = useState(true);
14
13
  const { isExpandedInternal } = useSidemenuContext();
15
- const innerContent = isExpandedInternal ? (React.createElement(Box, { px: 2, py: 1, w: "100%", whiteSpace: "pre" },
14
+ const innerContent = isExpandedInternal ? (React.createElement(Box, { centerV: true, px: 2, py: 1, w: "100%", whiteSpace: "pre" },
16
15
  React.createElement(Icon, { ml: iconSize === 'sm' ? '4px' : 0, name: icon, size: iconSize }),
17
- React.createElement(T, { ml: 2 }, title))) : (React.createElement(Box, { px: 2, py: 1, w: "100%" },
16
+ React.createElement(T, { isTruncated: true, ml: 2 }, title))) : (React.createElement(Box, { centerV: true, px: 2, py: 1, w: "100%" },
18
17
  React.createElement(Icon, { ml: iconSize === 'sm' ? '4px' : 0, name: icon, size: iconSize })));
19
- const pathProps = path ? { as: RouterLink, to: path } : {};
18
+ const toggle = (e) => {
19
+ e.preventDefault();
20
+ e.stopPropagation();
21
+ setDisplayChildren(!displayChildren);
22
+ };
20
23
  return (React.createElement(Box, { flexDirection: "column", w: "100%" },
21
- React.createElement(Button, { border: "none", borderLeft: "3px solid black", borderLeftColor: isActive ? 'blue.80' : 'transparent', borderRadius: 0, className: cs('vui-sidemenu-item', className), h: "auto", justifyContent: "space-between", onClick: () => onClick?.(), p: 0, variant: "text", w: "100%", ...pathProps, ...rest },
24
+ React.createElement(Button, { alignItems: "center", border: "none", borderLeft: "3px solid black", borderLeftColor: isActive ? 'blue.80' : 'transparent', borderRadius: 0, className: cs('vui-sidemenu-item', className), h: "auto", justifyContent: "space-between", onClick: () => onClick?.(), p: 0, variant: "text", w: "100%", ...rest },
22
25
  innerContent,
23
- !!children && isExpandedInternal && (React.createElement(Button, { icon: displayChildren ? 'falChevronUp' : 'falChevronDown', mr: 1, onClick: () => setDisplayChildren(!displayChildren), size: "xs", variant: "text" }))),
26
+ !!children && isExpandedInternal && (React.createElement(Button, { className: "vui-sidemenu-item-expand", icon: displayChildren ? 'falChevronUp' : 'falChevronDown', mr: 1, onClick: toggle, size: "xs", variant: "text" }))),
24
27
  !!children && displayChildren && (React.createElement(Box, { flexDirection: "column", justifyContent: "start", w: "100%" }, children))));
25
- };
28
+ });
26
29
  export default SidemenuItem;
@@ -1 +1 @@
1
- {"version":3,"file":"sidemenuTop.d.ts","sourceRoot":"","sources":["../../../src/sidemenu/sidemenuTop.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEnD,qBAAqB;AACrB,eAAO,MAAM,WAAW,UAAW,gBAAgB,uBAalD,CAAA;AAED,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"sidemenuTop.d.ts","sourceRoot":"","sources":["../../../src/sidemenu/sidemenuTop.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEnD,qBAAqB;AACrB,eAAO,MAAM,WAAW,UAAW,gBAAgB,uBAalD,CAAA;AAED,eAAe,WAAW,CAAA"}
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { Box } from '../box';
3
3
  import { omitThemingProps } from '../core';
4
4
  import { cs } from '../utils';
5
+ import { border } from './consts';
5
6
  import { useSidemenuContext } from './context';
6
7
  /** Top container. */
7
8
  export const SidemenuTop = (props) => {
@@ -9,7 +10,7 @@ export const SidemenuTop = (props) => {
9
10
  const { isExpandedInternal } = useSidemenuContext();
10
11
  if (!leftSlot && !rightSlot)
11
12
  return null;
12
- return (React.createElement(Box, { borderBottom: "1px solid lightgray", className: cs('vui-sidemenu-top', className), mb: 1, w: "100%", ...rest },
13
+ return (React.createElement(Box, { borderBottom: border, className: cs('vui-sidemenu-top', className), mb: 1, w: "100%", ...rest },
13
14
  !!leftSlot && leftSlot,
14
15
  !!rightSlot && isExpandedInternal && rightSlot));
15
16
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veracity/vui",
3
- "version": "1.9.0-beta.0",
3
+ "version": "1.9.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",
@@ -2,7 +2,7 @@ import React, { Children, Fragment, useMemo } from 'react'
2
2
 
3
3
  import { styled, useStyleConfig, vui, VuiComponent } from '../core'
4
4
  import { cs, filterUndefined } from '../utils'
5
- import { BreadcrumbsItemProps, BreadcrumbsProps } from './breadcrumbs.types'
5
+ import { BreadcrumbsProps } from './breadcrumbs.types'
6
6
  import BreadcrumbsItem from './breadcrumbsItem'
7
7
  import BreadcrumbsSeparator from './breadcrumbsSeparator'
8
8
  import { BreadcrumbsProvider } from './context'
@@ -15,7 +15,7 @@ export const BreadcrumbsBase = styled.divBox`
15
15
 
16
16
  /** [Beta] Breadcrumbs consist of a list of items that help a user visualize a page's location within the hierarchical structure of a website, and allow correspondent navigation. */
17
17
  export const Breadcrumbs = vui<'div', BreadcrumbsProps>((props, ref) => {
18
- const { children, className, items, size, ...rest } = props
18
+ const { children, className, size, ...rest } = props
19
19
  const styles = useStyleConfig('Breadcrumbs', props)
20
20
 
21
21
  const context = useMemo(() => filterUndefined({ size }), [size])
@@ -25,19 +25,12 @@ export const Breadcrumbs = vui<'div', BreadcrumbsProps>((props, ref) => {
25
25
  return (
26
26
  <BreadcrumbsProvider value={context}>
27
27
  <BreadcrumbsBase className={cs('vui-breadcrumbs', className)} ref={ref} {...styles} {...aliasedProps} {...rest}>
28
- {items
29
- ? items?.map?.((item: BreadcrumbsItemProps, key: number) => (
30
- <Fragment key={key}>
31
- <BreadcrumbsItem key={key} {...item} />
32
- {key !== items.length - 1 && <BreadcrumbsSeparator />}
33
- </Fragment>
34
- ))
35
- : Children.map(arrayChildren, (child, key) => (
36
- <Fragment key={key}>
37
- {child}
38
- {key !== arrayChildren.length - 1 && <BreadcrumbsSeparator />}
39
- </Fragment>
40
- ))}
28
+ {Children.map(arrayChildren, (child, key) => (
29
+ <Fragment key={key}>
30
+ {child}
31
+ {key !== arrayChildren.length - 1 && <BreadcrumbsSeparator />}
32
+ </Fragment>
33
+ ))}
41
34
  </BreadcrumbsBase>
42
35
  </BreadcrumbsProvider>
43
36
  )
@@ -5,23 +5,15 @@ import { IconProp } from '../icon'
5
5
  import { SystemProps } from '../system'
6
6
  import { ThemingProps } from '../theme'
7
7
 
8
- export type BreadcrumbsProps = SystemProps &
9
- ThemingProps<'Breadcrumbs'> & {
10
- /** Collection of items */
11
- items?: BreadcrumbsItemProps[]
12
- }
8
+ export type BreadcrumbsProps = SystemProps & ThemingProps<'Breadcrumbs'>
13
9
 
14
10
  export type BreadcrumbsItemProps = BoxProps & {
15
11
  /** Custom class name */
16
12
  className?: string
17
13
  /** Content */
18
14
  children?: ReactNode
19
- /** Alternative way to provide content */
20
- content?: ReactNode
21
15
  /** Icon */
22
16
  icon?: IconProp
23
- /** Path */
24
- path?: string
25
17
  }
26
18
 
27
19
  export type BreadcrumbsSeparatorProps = BoxProps & {
@@ -1,38 +1,24 @@
1
1
  import React from 'react'
2
- import { Link as RouterLink } from 'react-router-dom'
3
2
 
4
3
  import { Box } from '../box'
5
- import { omitThemingProps, useStyleConfig } from '../core'
4
+ import { omitThemingProps, useStyleConfig, vui, VuiComponent } from '../core'
6
5
  import { Icon } from '../icon'
7
- import { Link } from '../link'
8
6
  import { cs } from '../utils'
9
7
  import { BreadcrumbsItemProps } from './breadcrumbs.types'
10
8
  import { useBreadcrumbsContext } from './context'
11
9
 
12
- /** A Breadcrumbs item. */
13
- export const BreadcrumbsItem = (props: BreadcrumbsItemProps) => {
14
- const { className, children, content, icon, path, ...rest } = omitThemingProps(props)
10
+ /** A Breadcrumb item. */
11
+ export const BreadcrumbsItem = vui<'div', BreadcrumbsItemProps>(props => {
12
+ const { className, children, icon, ...rest } = omitThemingProps(props)
15
13
 
16
14
  const styles = useStyleConfig('Breadcrumbs', useBreadcrumbsContext())
17
15
 
18
- const innerContent = (
19
- <>
20
- {!!icon && <Icon name={icon} size="sm" />}
21
- {content || children}
22
- </>
23
- )
24
-
25
16
  return (
26
17
  <Box alignItems="center" className={cs('vui-breadcrumbs-item', className)} p={0} {...rest} {...styles.item}>
27
- {path ? (
28
- <Link as={RouterLink} to={path}>
29
- {innerContent}
30
- </Link>
31
- ) : (
32
- innerContent
33
- )}
18
+ {!!icon && <Icon name={icon} size="sm" />}
19
+ {children}
34
20
  </Box>
35
21
  )
36
- }
22
+ }) as VuiComponent<'div', BreadcrumbsItemProps>
37
23
 
38
24
  export default BreadcrumbsItem
@@ -0,0 +1,8 @@
1
+ export const border = '1px solid lightgray'
2
+
3
+ export const expandedWidth = 64
4
+
5
+ export const right = {
6
+ expanded: 16,
7
+ collapsed: 34
8
+ }
@@ -5,6 +5,7 @@ import Button from '../button'
5
5
  import { styled, useStyleConfig, vui, VuiComponent } from '../core'
6
6
  import Icon from '../icon'
7
7
  import { cs, filterUndefined } from '../utils'
8
+ import { border, expandedWidth, right } from './consts'
8
9
  import { SidemenuProvider } from './context'
9
10
  import { SidemenuItemProps, SidemenuProps } from './sidemenu.types'
10
11
  import SidemenuItem from './sidemenuItem'
@@ -35,19 +36,19 @@ export const Sidemenu = vui<'div', SidemenuProps>((props, ref) => {
35
36
  setIsExpandedInternal(!isExpandedInternal)
36
37
  }
37
38
 
38
- const w = isExpandedInternal ? width : 64
39
+ const w = isExpandedInternal ? width : expandedWidth
39
40
  const icon = isExpandedInternal ? 'falArrowLeft' : 'falArrowRight'
40
- const iconRight = isExpandedInternal ? 16 : 34
41
+ const iconRight = isExpandedInternal ? right.expanded : right.collapsed
41
42
 
42
43
  return (
43
44
  <SidemenuProvider value={context}>
44
45
  <SidemenuBase className={cs('vui-sidemenu', className)} ref={ref} w={w} {...styles} {...aliasedProps} {...rest}>
45
- <Box flexDirection="column" flexGrow={1} w="100%">
46
+ <Box flexDirection="column" flexGrow={1} overflowX="hidden" overflowY="auto" w="100%">
46
47
  {items
47
48
  ? items?.map?.((item: SidemenuItemProps, key: number) => <SidemenuItem key={key} {...item} />)
48
49
  : children}
49
50
  </Box>
50
- <Box borderTop="1px solid lightgray" className="vui-sidemenu-bottom" mt={2} w="100%">
51
+ <Box borderTop={border} className="vui-sidemenu-bottom" w="100%">
51
52
  <Button borderRadius={0} onClick={toggle} variant="text" w="100%">
52
53
  <Icon name={icon} position="absolute" right={iconRight} />
53
54
  </Button>
@@ -28,8 +28,6 @@ export type SidemenuItemProps = BoxProps & {
28
28
  iconSize?: 'md' | 'sm'
29
29
  /** Whether the item is active */
30
30
  isActive?: boolean
31
- /** Path */
32
- path?: string
33
31
  /** On click callback */
34
32
  onClick?: () => void
35
33
  /** Title */
@@ -1,9 +1,8 @@
1
- import React, { useState } from 'react'
2
- import { Link as RouterLink } from 'react-router-dom'
1
+ import React, { MouseEvent, useState } from 'react'
3
2
 
4
3
  import Box from '../box'
5
4
  import Button from '../button'
6
- import { omitThemingProps } from '../core'
5
+ import { omitThemingProps, vui, VuiComponent } from '../core'
7
6
  import Icon from '../icon'
8
7
  import T from '../t'
9
8
  import { cs } from '../utils'
@@ -11,39 +10,36 @@ import { useSidemenuContext } from './context'
11
10
  import { SidemenuItemProps } from './sidemenu.types'
12
11
 
13
12
  /** A menu item. */
14
- export const SidemenuItem = (props: SidemenuItemProps) => {
15
- const {
16
- className,
17
- children,
18
- icon,
19
- iconSize = 'md',
20
- isActive,
21
- onClick,
22
- path,
23
- title,
24
- ...rest
25
- } = omitThemingProps(props)
13
+ export const SidemenuItem = vui<'button', SidemenuItemProps>(props => {
14
+ const { className, children, icon, iconSize = 'md', isActive, onClick, title, ...rest } = omitThemingProps(props)
26
15
 
27
16
  const [displayChildren, setDisplayChildren] = useState(true)
28
17
 
29
18
  const { isExpandedInternal } = useSidemenuContext()
30
19
 
31
20
  const innerContent = isExpandedInternal ? (
32
- <Box px={2} py={1} w="100%" whiteSpace="pre">
21
+ <Box centerV px={2} py={1} w="100%" whiteSpace="pre">
33
22
  <Icon ml={iconSize === 'sm' ? '4px' : 0} name={icon} size={iconSize} />
34
- <T ml={2}>{title}</T>
23
+ <T isTruncated ml={2}>
24
+ {title}
25
+ </T>
35
26
  </Box>
36
27
  ) : (
37
- <Box px={2} py={1} w="100%">
28
+ <Box centerV px={2} py={1} w="100%">
38
29
  <Icon ml={iconSize === 'sm' ? '4px' : 0} name={icon} size={iconSize} />
39
30
  </Box>
40
31
  )
41
32
 
42
- const pathProps = path ? { as: RouterLink, to: path } : {}
33
+ const toggle = (e: MouseEvent<HTMLButtonElement>) => {
34
+ e.preventDefault()
35
+ e.stopPropagation()
36
+ setDisplayChildren(!displayChildren)
37
+ }
43
38
 
44
39
  return (
45
40
  <Box flexDirection="column" w="100%">
46
41
  <Button
42
+ alignItems="center"
47
43
  border="none"
48
44
  borderLeft="3px solid black"
49
45
  borderLeftColor={isActive ? 'blue.80' : 'transparent'}
@@ -55,15 +51,15 @@ export const SidemenuItem = (props: SidemenuItemProps) => {
55
51
  p={0}
56
52
  variant="text"
57
53
  w="100%"
58
- {...pathProps}
59
54
  {...rest}
60
55
  >
61
56
  {innerContent}
62
57
  {!!children && isExpandedInternal && (
63
58
  <Button
59
+ className="vui-sidemenu-item-expand"
64
60
  icon={displayChildren ? 'falChevronUp' : 'falChevronDown'}
65
61
  mr={1}
66
- onClick={() => setDisplayChildren(!displayChildren)}
62
+ onClick={toggle}
67
63
  size="xs"
68
64
  variant="text"
69
65
  />
@@ -76,6 +72,6 @@ export const SidemenuItem = (props: SidemenuItemProps) => {
76
72
  )}
77
73
  </Box>
78
74
  )
79
- }
75
+ }) as VuiComponent<'div', SidemenuItemProps>
80
76
 
81
77
  export default SidemenuItem
@@ -3,6 +3,7 @@ import React from 'react'
3
3
  import { Box } from '../box'
4
4
  import { omitThemingProps } from '../core'
5
5
  import { cs } from '../utils'
6
+ import { border } from './consts'
6
7
  import { useSidemenuContext } from './context'
7
8
  import { SidemenuTopProps } from './sidemenu.types'
8
9
 
@@ -15,7 +16,7 @@ export const SidemenuTop = (props: SidemenuTopProps) => {
15
16
  if (!leftSlot && !rightSlot) return null
16
17
 
17
18
  return (
18
- <Box borderBottom="1px solid lightgray" className={cs('vui-sidemenu-top', className)} mb={1} w="100%" {...rest}>
19
+ <Box borderBottom={border} className={cs('vui-sidemenu-top', className)} mb={1} w="100%" {...rest}>
19
20
  {!!leftSlot && leftSlot}
20
21
  {!!rightSlot && isExpandedInternal && rightSlot}
21
22
  </Box>