takeat-design-system-ui-kit 0.1.68 → 0.1.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Menu/Menu.stories.d.ts +6 -0
- package/dist/cjs/components/Menu/Menu.stories.js +38 -0
- package/dist/cjs/components/Menu/Menu.stories.js.map +1 -0
- package/dist/cjs/components/Menu/MenuModal/index.d.ts +8 -0
- package/dist/cjs/components/Menu/MenuModal/index.js +28 -0
- package/dist/cjs/components/Menu/MenuModal/index.js.map +1 -0
- package/dist/cjs/components/Menu/MenuModal/styles.d.ts +0 -0
- package/dist/cjs/components/Menu/MenuModal/styles.js +2 -0
- package/dist/cjs/components/Menu/MenuModal/styles.js.map +1 -0
- package/dist/cjs/components/Menu/MenuSubSubitem/index.d.ts +7 -0
- package/dist/cjs/components/Menu/MenuSubSubitem/index.js +11 -0
- package/dist/cjs/components/Menu/MenuSubSubitem/index.js.map +1 -0
- package/dist/cjs/components/Menu/MenuSubSubitem/styles.d.ts +3 -0
- package/dist/cjs/components/Menu/MenuSubSubitem/styles.js +32 -0
- package/dist/cjs/components/Menu/MenuSubSubitem/styles.js.map +1 -0
- package/dist/cjs/components/Menu/MenuSubitem/index.d.ts +10 -0
- package/dist/cjs/components/Menu/MenuSubitem/index.js +26 -0
- package/dist/cjs/components/Menu/MenuSubitem/index.js.map +1 -0
- package/dist/cjs/components/Menu/MenuSubitem/styles.d.ts +4 -0
- package/dist/cjs/components/Menu/MenuSubitem/styles.js +54 -0
- package/dist/cjs/components/Menu/MenuSubitem/styles.js.map +1 -0
- package/dist/cjs/components/Menu/index.d.ts +19 -0
- package/dist/cjs/components/Menu/index.js +43 -0
- package/dist/cjs/components/Menu/index.js.map +1 -0
- package/dist/cjs/components/Menu/styles.d.ts +296 -0
- package/dist/cjs/components/Menu/styles.js +138 -0
- package/dist/cjs/components/Menu/styles.js.map +1 -0
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +6 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/consts.d.ts +2 -0
- package/dist/cjs/utils/consts.js +175 -1
- package/dist/cjs/utils/consts.js.map +1 -1
- package/dist/esm/components/Menu/Menu.stories.d.ts +6 -0
- package/dist/esm/components/Menu/Menu.stories.js +35 -0
- package/dist/esm/components/Menu/Menu.stories.js.map +1 -0
- package/dist/esm/components/Menu/MenuModal/index.d.ts +8 -0
- package/dist/esm/components/Menu/MenuModal/index.js +24 -0
- package/dist/esm/components/Menu/MenuModal/index.js.map +1 -0
- package/dist/esm/components/Menu/MenuModal/styles.d.ts +0 -0
- package/dist/esm/components/Menu/MenuModal/styles.js +2 -0
- package/dist/esm/components/Menu/MenuModal/styles.js.map +1 -0
- package/dist/esm/components/Menu/MenuSubSubitem/index.d.ts +7 -0
- package/dist/esm/components/Menu/MenuSubSubitem/index.js +7 -0
- package/dist/esm/components/Menu/MenuSubSubitem/index.js.map +1 -0
- package/dist/esm/components/Menu/MenuSubSubitem/styles.d.ts +3 -0
- package/dist/esm/components/Menu/MenuSubSubitem/styles.js +28 -0
- package/dist/esm/components/Menu/MenuSubSubitem/styles.js.map +1 -0
- package/dist/esm/components/Menu/MenuSubitem/index.d.ts +10 -0
- package/dist/esm/components/Menu/MenuSubitem/index.js +22 -0
- package/dist/esm/components/Menu/MenuSubitem/index.js.map +1 -0
- package/dist/esm/components/Menu/MenuSubitem/styles.d.ts +4 -0
- package/dist/esm/components/Menu/MenuSubitem/styles.js +50 -0
- package/dist/esm/components/Menu/MenuSubitem/styles.js.map +1 -0
- package/dist/esm/components/Menu/index.d.ts +19 -0
- package/dist/esm/components/Menu/index.js +40 -0
- package/dist/esm/components/Menu/index.js.map +1 -0
- package/dist/esm/components/Menu/styles.d.ts +296 -0
- package/dist/esm/components/Menu/styles.js +134 -0
- package/dist/esm/components/Menu/styles.js.map +1 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/consts.d.ts +2 -0
- package/dist/esm/utils/consts.js +174 -0
- package/dist/esm/utils/consts.js.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Example = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const _1 = require(".");
|
|
6
|
+
const styles_1 = require("../StoriesComponents/styles");
|
|
7
|
+
const consts_1 = require("../../utils/consts");
|
|
8
|
+
const meta = {
|
|
9
|
+
title: "Design System/Menu",
|
|
10
|
+
component: _1.Menu,
|
|
11
|
+
parameters: {
|
|
12
|
+
componentSubtitle: (0, jsx_runtime_1.jsx)(styles_1.Subtitle, {}),
|
|
13
|
+
},
|
|
14
|
+
argTypes: {
|
|
15
|
+
menuItems: {
|
|
16
|
+
description: "Itens do menu",
|
|
17
|
+
table: {
|
|
18
|
+
type: {
|
|
19
|
+
summary: "MenuItem[]",
|
|
20
|
+
detail: `interface MenuItem {
|
|
21
|
+
id: string;
|
|
22
|
+
text: string;
|
|
23
|
+
}
|
|
24
|
+
`,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
args: {},
|
|
30
|
+
};
|
|
31
|
+
exports.default = meta;
|
|
32
|
+
exports.Example = {
|
|
33
|
+
name: "Exemplo",
|
|
34
|
+
args: {
|
|
35
|
+
menuItems: consts_1.MENU_ITEMS,
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=Menu.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.stories.js","sourceRoot":"","sources":["../../../../src/components/Menu/Menu.stories.tsx"],"names":[],"mappings":";;;;AACA,wBAAyB;AACzB,wDAAuD;AACvD,+CAAgD;AAEhD,MAAM,IAAI,GAAsB;IAC9B,KAAK,EAAE,oBAAoB;IAC3B,SAAS,EAAE,OAAI;IACf,UAAU,EAAE;QACV,iBAAiB,EAAE,uBAAC,iBAAQ,KAAY;KACzC;IACD,QAAQ,EAAE;QACR,SAAS,EAAE;YACT,WAAW,EAAE,eAAe;YAC5B,KAAK,EAAE;gBACL,IAAI,EAAE;oBACJ,OAAO,EAAE,YAAY;oBACrB,MAAM,EAAE;;;;SAIT;iBACA;aACF;SACF;KACF;IACD,IAAI,EAAE,EAAE;CACT,CAAC;AAEF,kBAAe,IAAI,CAAC;AAIP,QAAA,OAAO,GAAU;IAC5B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE;QACJ,SAAS,EAAE,mBAAU;KACtB;CACF,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { MenuItemProps } from "..";
|
|
2
|
+
import { Dispatch, SetStateAction } from "react";
|
|
3
|
+
interface MenuModalProps {
|
|
4
|
+
item: MenuItemProps;
|
|
5
|
+
setModalItem: Dispatch<SetStateAction<MenuItemProps | null>>;
|
|
6
|
+
}
|
|
7
|
+
export declare const MenuModal: ({ item, setModalItem }: MenuModalProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MenuModal = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const styles_1 = require("../styles");
|
|
6
|
+
const MenuSubitem_1 = require("../MenuSubitem");
|
|
7
|
+
const react_1 = require("react");
|
|
8
|
+
const MenuModal = ({ item, setModalItem }) => {
|
|
9
|
+
const [itemOpen, setItemOpen] = (0, react_1.useState)(null);
|
|
10
|
+
const elementById = document.getElementById(`menu-item-${item.id}`);
|
|
11
|
+
const left = (elementById?.offsetLeft || 0) + (elementById?.offsetWidth || 0);
|
|
12
|
+
const eventListenerFunction = () => {
|
|
13
|
+
setModalItem(null);
|
|
14
|
+
};
|
|
15
|
+
(0, react_1.useEffect)(() => {
|
|
16
|
+
window.addEventListener("click", eventListenerFunction);
|
|
17
|
+
return () => {
|
|
18
|
+
window.removeEventListener("click", eventListenerFunction);
|
|
19
|
+
};
|
|
20
|
+
}, []);
|
|
21
|
+
return ((0, jsx_runtime_1.jsx)(styles_1.MenuModalStyle, { onClick: (e) => e.stopPropagation(), top: elementById?.offsetTop, left: left, children: item.subitems?.map((subitem) => {
|
|
22
|
+
if (subitem.condition === false)
|
|
23
|
+
return;
|
|
24
|
+
return ((0, jsx_runtime_1.jsx)(MenuSubitem_1.MenuSubitem, { subitem: subitem, parentPath: item.path, isOpen: itemOpen === subitem.id, setIsOpen: setItemOpen }, subitem.id));
|
|
25
|
+
}) }));
|
|
26
|
+
};
|
|
27
|
+
exports.MenuModal = MenuModal;
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Menu/MenuModal/index.tsx"],"names":[],"mappings":";;;;AAAA,sCAA2C;AAE3C,gDAA6C;AAC7C,iCAAsE;AAO/D,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,YAAY,EAAkB,EAAE,EAAE;IAClE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,CAAC,WAAW,EAAE,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;IAE9E,MAAM,qBAAqB,GAAG,GAAG,EAAE;QACjC,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;QAExD,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;QAC7D,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,uBAAC,uBAAc,IACb,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EACnC,GAAG,EAAE,WAAW,EAAE,SAAS,EAC3B,IAAI,EAAE,IAAI,YAET,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK;gBAAE,OAAO;YAExC,OAAO,CACL,uBAAC,yBAAW,IAEV,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,IAAI,CAAC,IAAI,EACrB,MAAM,EAAE,QAAQ,KAAK,OAAO,CAAC,EAAE,EAC/B,SAAS,EAAE,WAAW,IAJjB,OAAO,CAAC,EAAE,CAKf,CACH,CAAC;QACJ,CAAC,CAAC,GACa,CAClB,CAAC;AACJ,CAAC,CAAC;AAtCW,QAAA,SAAS,aAsCpB"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../src/components/Menu/MenuModal/styles.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { MenuItemProps } from "..";
|
|
2
|
+
interface MenuSubSubitemProps {
|
|
3
|
+
subsubitem: MenuItemProps;
|
|
4
|
+
parentPath: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const MenuSubSubitem: ({ subsubitem, parentPath, }: MenuSubSubitemProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MenuSubSubitem = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const styles_1 = require("./styles");
|
|
6
|
+
const MenuSubSubitem = ({ subsubitem, parentPath, }) => {
|
|
7
|
+
const pathToGo = parentPath + subsubitem.path;
|
|
8
|
+
return ((0, jsx_runtime_1.jsx)(styles_1.SubsubitemStyles, { id: `menu-item-${subsubitem.id}`, to: pathToGo, children: subsubitem.text }));
|
|
9
|
+
};
|
|
10
|
+
exports.MenuSubSubitem = MenuSubSubitem;
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Menu/MenuSubSubitem/index.tsx"],"names":[],"mappings":";;;;AACA,qCAA4C;AAOrC,MAAM,cAAc,GAAG,CAAC,EAC7B,UAAU,EACV,UAAU,GACU,EAAE,EAAE;IACxB,MAAM,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;IAE9C,OAAO,CACL,uBAAC,yBAAgB,IAAC,EAAE,EAAE,aAAa,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,YAC7D,UAAU,CAAC,IAAI,GACC,CACpB,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,cAAc,kBAWzB"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const SubsubitemStyles: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<import("react-router-dom").LinkProps & import("react").RefAttributes<HTMLAnchorElement>, "ref"> & {
|
|
2
|
+
ref?: ((instance: HTMLAnchorElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLAnchorElement> | null | undefined;
|
|
3
|
+
}, never>> & string & Omit<import("react").ForwardRefExoticComponent<import("react-router-dom").LinkProps & import("react").RefAttributes<HTMLAnchorElement>>, keyof import("react").Component<any, {}, any>>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SubsubitemStyles = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_router_dom_1 = require("react-router-dom");
|
|
6
|
+
const styled_components_1 = tslib_1.__importDefault(require("styled-components"));
|
|
7
|
+
exports.SubsubitemStyles = (0, styled_components_1.default)(react_router_dom_1.Link) `
|
|
8
|
+
display: flex;
|
|
9
|
+
height: 32px;
|
|
10
|
+
padding: ${({ theme }) => theme.spacing.xs};
|
|
11
|
+
align-items: center;
|
|
12
|
+
gap: 10px;
|
|
13
|
+
flex: 1 0 0;
|
|
14
|
+
border-radius: ${({ theme }) => theme.radius.s};
|
|
15
|
+
background: #fff;
|
|
16
|
+
text-decoration: none;
|
|
17
|
+
transform: all 0.3s;
|
|
18
|
+
|
|
19
|
+
color: ${({ theme }) => theme.colors.neutral.dark};
|
|
20
|
+
font-family: ${({ theme }) => theme.typography.family.default};
|
|
21
|
+
font-size: 14px;
|
|
22
|
+
font-style: normal;
|
|
23
|
+
font-weight: 500;
|
|
24
|
+
line-height: 20px; /* 142.857% */
|
|
25
|
+
letter-spacing: 0.1px;
|
|
26
|
+
|
|
27
|
+
&:hover {
|
|
28
|
+
background: ${({ theme }) => theme.colors.neutral.lightest};
|
|
29
|
+
color: ${({ theme }) => theme.colors.neutral.darker};
|
|
30
|
+
}
|
|
31
|
+
`;
|
|
32
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../src/components/Menu/MenuSubSubitem/styles.ts"],"names":[],"mappings":";;;;AAAA,uDAAwC;AACxC,kFAAuC;AAE1B,QAAA,gBAAgB,GAAG,IAAA,2BAAM,EAAC,uBAAI,CAAC,CAAA;;;aAG/B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;;;;mBAIzB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;;;;WAKrC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;iBAClC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO;;;;;;;;kBAQ7C,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ;aACjD,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;;CAEtD,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Dispatch, SetStateAction } from "react";
|
|
2
|
+
import { MenuItemProps } from "..";
|
|
3
|
+
interface MenuSubitemProps {
|
|
4
|
+
subitem: MenuItemProps;
|
|
5
|
+
parentPath: string;
|
|
6
|
+
isOpen: boolean;
|
|
7
|
+
setIsOpen: Dispatch<SetStateAction<string | null>>;
|
|
8
|
+
}
|
|
9
|
+
export declare const MenuSubitem: ({ subitem, parentPath, isOpen, setIsOpen, }: MenuSubitemProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MenuSubitem = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const icons_1 = require("../../icons");
|
|
6
|
+
const MenuSubSubitem_1 = require("../MenuSubSubitem");
|
|
7
|
+
const styles_1 = require("./styles");
|
|
8
|
+
const framer_motion_1 = require("framer-motion");
|
|
9
|
+
const MenuSubitem = ({ subitem, parentPath, isOpen, setIsOpen, }) => {
|
|
10
|
+
const hasSubitems = subitem.subitems && subitem.subitems.length > 0;
|
|
11
|
+
const pathToGo = subitem.external || hasSubitems ? "#" : parentPath + subitem.path;
|
|
12
|
+
const handleClick = () => {
|
|
13
|
+
if (subitem.external) {
|
|
14
|
+
window.open(subitem.external, "_blank");
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (hasSubitems) {
|
|
18
|
+
setIsOpen((state) => (state === subitem.id ? null : subitem.id));
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
return ((0, jsx_runtime_1.jsxs)(styles_1.SubitemContainer, { id: `menu-item-${subitem.id}`, children: [(0, jsx_runtime_1.jsxs)(styles_1.SubitemHeader, { onClick: () => handleClick(), to: pathToGo, children: [hasSubitems ? ((0, jsx_runtime_1.jsx)(icons_1.IconChevronRight, { style: { transform: isOpen && "rotate(90deg)" } })) : ((0, jsx_runtime_1.jsx)("div", {})), (0, jsx_runtime_1.jsx)("span", { children: subitem.text })] }), (0, jsx_runtime_1.jsx)(framer_motion_1.AnimatePresence, { children: isOpen && ((0, jsx_runtime_1.jsx)(framer_motion_1.motion.div, { style: { transformOrigin: "top" }, initial: { height: 0, scaleY: 0 }, animate: { height: "auto", scaleY: 1 }, exit: { height: 0, scaleY: 0 }, transition: { duration: 0.3, stiffness: 100 }, children: subitem.subitems?.map((subsubitem) => {
|
|
22
|
+
return ((0, jsx_runtime_1.jsx)(MenuSubSubitem_1.MenuSubSubitem, { subsubitem: subsubitem, parentPath: pathToGo }, subsubitem.id));
|
|
23
|
+
}) })) })] }));
|
|
24
|
+
};
|
|
25
|
+
exports.MenuSubitem = MenuSubitem;
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Menu/MenuSubitem/index.tsx"],"names":[],"mappings":";;;;AAEA,uCAA+C;AAC/C,sDAAmD;AACnD,qCAA2D;AAC3D,iDAAwD;AASjD,MAAM,WAAW,GAAG,CAAC,EAC1B,OAAO,EACP,UAAU,EACV,MAAM,EACN,SAAS,GACQ,EAAE,EAAE;IACrB,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACpE,MAAM,QAAQ,GACZ,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAEpE,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,wBAAC,yBAAgB,IAAC,EAAE,EAAE,aAAa,OAAO,CAAC,EAAE,EAAE,aAC7C,wBAAC,sBAAa,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,QAAQ,aACtD,WAAW,CAAC,CAAC,CAAC,CACb,uBAAC,wBAAgB,IAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,IAAI,eAAe,EAAE,GAAI,CACtE,CAAC,CAAC,CAAC,CACF,iCAAO,CACR,EACD,2CAAO,OAAO,CAAC,IAAI,GAAQ,IACb,EAChB,uBAAC,+BAAe,cACb,MAAM,IAAI,CACT,uBAAC,sBAAM,CAAC,GAAG,IACT,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,EACjC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EACjC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,EACtC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAC9B,UAAU,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,YAE5C,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;wBACpC,OAAO,CACL,uBAAC,+BAAc,IAEb,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,QAAQ,IAFf,UAAU,CAAC,EAAE,CAGlB,CACH,CAAC;oBACJ,CAAC,CAAC,GACS,CACd,GACe,IACD,CACpB,CAAC;AACJ,CAAC,CAAC;AArDW,QAAA,WAAW,eAqDtB"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const SubitemContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
2
|
+
export declare const SubitemHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<import("react-router-dom").LinkProps & import("react").RefAttributes<HTMLAnchorElement>, "ref"> & {
|
|
3
|
+
ref?: ((instance: HTMLAnchorElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLAnchorElement> | null | undefined;
|
|
4
|
+
}, never>> & string & Omit<import("react").ForwardRefExoticComponent<import("react-router-dom").LinkProps & import("react").RefAttributes<HTMLAnchorElement>>, keyof import("react").Component<any, {}, any>>;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SubitemHeader = exports.SubitemContainer = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_router_dom_1 = require("react-router-dom");
|
|
6
|
+
const styled_components_1 = tslib_1.__importDefault(require("styled-components"));
|
|
7
|
+
exports.SubitemContainer = styled_components_1.default.div `
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
padding: 4px 0;
|
|
11
|
+
|
|
12
|
+
&:not(:last-child) {
|
|
13
|
+
border-bottom: 1px solid ${({ theme }) => theme.colors.primary.default};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&:last-child {
|
|
17
|
+
padding-bottom: 0;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
&:first-child {
|
|
21
|
+
padding-top: 0;
|
|
22
|
+
}
|
|
23
|
+
`;
|
|
24
|
+
exports.SubitemHeader = (0, styled_components_1.default)(react_router_dom_1.Link) `
|
|
25
|
+
display: flex;
|
|
26
|
+
align-items: center;
|
|
27
|
+
gap: ${({ theme }) => theme.spacing.xs};
|
|
28
|
+
text-decoration: none;
|
|
29
|
+
padding: 4px 0;
|
|
30
|
+
|
|
31
|
+
svg {
|
|
32
|
+
flex-shrink: 0;
|
|
33
|
+
transition: transform 0.3s;
|
|
34
|
+
font-size: 20px;
|
|
35
|
+
fill: ${({ theme }) => theme.colors.primary.default};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
div {
|
|
39
|
+
flex-shrink: 0;
|
|
40
|
+
width: 20px;
|
|
41
|
+
height: 20px;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
span {
|
|
45
|
+
color: ${({ theme }) => theme.colors.neutral.dark};
|
|
46
|
+
font-family: ${({ theme }) => theme.typography.family.default};
|
|
47
|
+
font-size: 14px;
|
|
48
|
+
font-style: normal;
|
|
49
|
+
font-weight: 700;
|
|
50
|
+
line-height: 20px; /* 142.857% */
|
|
51
|
+
letter-spacing: 0.1px;
|
|
52
|
+
}
|
|
53
|
+
`;
|
|
54
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../src/components/Menu/MenuSubitem/styles.ts"],"names":[],"mappings":";;;;AAAA,uDAAwC;AACxC,kFAAuC;AAE1B,QAAA,gBAAgB,GAAG,2BAAM,CAAC,GAAG,CAAA;;;;;;+BAMX,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;;;;;;;;;;CAUzE,CAAC;AAEW,QAAA,aAAa,GAAG,IAAA,2BAAM,EAAC,uBAAI,CAAC,CAAA;;;SAGhC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;;;;;;;;YAQ5B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;;;;;;;;;;aAU1C,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;mBAClC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO;;;;;;;CAOhE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
|
+
export interface MenuItemProps {
|
|
3
|
+
id: string;
|
|
4
|
+
text: string;
|
|
5
|
+
path: string;
|
|
6
|
+
icon?: ReactNode;
|
|
7
|
+
subitems?: MenuItemProps[];
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
condition?: boolean;
|
|
10
|
+
external?: string;
|
|
11
|
+
overridePath?: string;
|
|
12
|
+
filler?: boolean;
|
|
13
|
+
height?: number;
|
|
14
|
+
}
|
|
15
|
+
interface MenuProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
16
|
+
menuItems: MenuItemProps[];
|
|
17
|
+
}
|
|
18
|
+
export declare const Menu: React.ForwardRefExoticComponent<MenuProps & React.RefAttributes<HTMLDivElement>>;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Menu = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const styles_1 = require("./styles");
|
|
7
|
+
const MenuModal_1 = require("./MenuModal");
|
|
8
|
+
const framer_motion_1 = require("framer-motion");
|
|
9
|
+
exports.Menu = (0, react_1.forwardRef)(function Menu({ menuItems = [], ...props }, ref) {
|
|
10
|
+
const [modalItem, setModalItem] = (0, react_1.useState)(null);
|
|
11
|
+
const location = window.location.pathname.split("/")[1];
|
|
12
|
+
const toggleModalItem = (item) => {
|
|
13
|
+
if (modalItem?.id === item.id) {
|
|
14
|
+
setModalItem(null);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
setModalItem(item);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
const handleClick = (item, hasSubitems) => {
|
|
21
|
+
if (item.external) {
|
|
22
|
+
window.open(item.external, "_blank");
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (hasSubitems) {
|
|
26
|
+
toggleModalItem(item);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
return ((0, jsx_runtime_1.jsxs)(styles_1.MenuContainer, { ref: ref, ...props, children: [menuItems.map((item) => {
|
|
30
|
+
if (item.condition === false)
|
|
31
|
+
return;
|
|
32
|
+
if (item.filler) {
|
|
33
|
+
return (0, jsx_runtime_1.jsx)(styles_1.Filler, { height: item.height || 20 }, item.id);
|
|
34
|
+
}
|
|
35
|
+
const hasSubitems = item.subitems && item.subitems.length > 0;
|
|
36
|
+
const pathToGo = item.external || hasSubitems ? "#" : item.path;
|
|
37
|
+
return ((0, jsx_runtime_1.jsxs)(styles_1.ItemContainer, { id: `menu-item-${item.id}`, to: pathToGo, "aria-selected": location === item.path.split("/")[1], onClick: (e) => {
|
|
38
|
+
e.stopPropagation();
|
|
39
|
+
handleClick(item, hasSubitems);
|
|
40
|
+
}, children: [item.icon, (0, jsx_runtime_1.jsx)("span", { children: item.text })] }, item.id));
|
|
41
|
+
}), (0, jsx_runtime_1.jsx)(framer_motion_1.AnimatePresence, { children: modalItem && ((0, jsx_runtime_1.jsx)(MenuModal_1.MenuModal, { item: modalItem, setModalItem: setModalItem })) })] }));
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Menu/index.tsx"],"names":[],"mappings":";;;;AAAA,iCAA+D;AAC/D,qCAAgE;AAChE,2CAAwC;AACxC,iDAAgD;AAoBnC,QAAA,IAAI,GAAG,IAAA,kBAAU,EAAC,SAAS,IAAI,CAC1C,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,KAAK,EAAa,EACvC,GAA8B;IAE9B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAuB,IAAI,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,CAAC,IAAmB,EAAE,EAAE;QAC9C,IAAI,SAAS,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;YAC9B,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,IAAmB,EAAE,WAAqB,EAAE,EAAE;QACjE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,wBAAC,sBAAa,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,aAC/B,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACtB,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK;oBAAE,OAAO;gBAErC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,OAAO,uBAAC,eAAM,IAAe,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,IAAlC,IAAI,CAAC,EAAE,CAA+B,CAAC;gBAC7D,CAAC;gBACD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;gBAE9D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAEhE,OAAO,CACL,wBAAC,sBAAa,IAEZ,EAAE,EAAE,aAAa,IAAI,CAAC,EAAE,EAAE,EAC1B,EAAE,EAAE,QAAQ,mBACG,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACnD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;wBACb,CAAC,CAAC,eAAe,EAAE,CAAC;wBACpB,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;oBACjC,CAAC,aAEA,IAAI,CAAC,IAAI,EACV,2CAAO,IAAI,CAAC,IAAI,GAAQ,KAVnB,IAAI,CAAC,EAAE,CAWE,CACjB,CAAC;YACJ,CAAC,CAAC,EACF,uBAAC,+BAAe,cACb,SAAS,IAAI,CACZ,uBAAC,qBAAS,IAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,GAAI,CAC3D,GACe,IACJ,CACjB,CAAC;AACJ,CAAC,CAAC,CAAC"}
|