@mailstep/design-system 0.6.51 → 0.6.53-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +78 -78
  2. package/package.json +150 -150
  3. package/ui/Blocks/CommonGrid/storybook/stories/complexWithPaginationAndRedux.stories.js +4 -4
  4. package/ui/Blocks/CommonGrid/storybook/stories/default.stories.js +2 -2
  5. package/ui/Blocks/CommonGrid/storybook/stories/loading.stories.js +3 -3
  6. package/ui/Blocks/CommonGrid/storybook/stories/manyColumnsNoScrollLayout.stories.js +3 -3
  7. package/ui/Blocks/CommonGrid/storybook/stories/manyColumnsNormalLayout.stories.js +3 -3
  8. package/ui/Blocks/CommonGrid/storybook/stories/styledCommonGrid.stories.js +2 -2
  9. package/ui/Blocks/CommonGrid/storybook/stories/withCustomGridActions.stories.js +3 -3
  10. package/ui/Blocks/CommonGrid/storybook/stories/withForcedCheckboxes.stories.js +5 -5
  11. package/ui/Blocks/CommonGrid/storybook/stories/withQuickFilter.stories.js +3 -3
  12. package/ui/{Elements → Blocks}/LanguageSwitch/LanguageSwitch.js +2 -2
  13. package/ui/Blocks/LanguageSwitch/stories/LanguageSwith.stories.d.ts +15 -0
  14. package/ui/Blocks/LanguageSwitch/stories/LanguageSwith.stories.js +31 -0
  15. package/ui/{Elements → Blocks}/LanguageSwitch/styles.d.ts +1 -1
  16. package/ui/{Elements → Blocks}/LanguageSwitch/styles.js +1 -1
  17. package/ui/Blocks/LoginPage/LoginPage.js +3 -3
  18. package/ui/Blocks/LoginPage/stories/LoginPage.stories.d.ts +8 -0
  19. package/ui/Blocks/LoginPage/stories/LoginPage.stories.js +94 -0
  20. package/ui/Blocks/LoginPage/styles.d.ts +3 -1
  21. package/ui/Blocks/LoginPage/styles.js +8 -2
  22. package/ui/Blocks/LoginPage/types.d.ts +3 -1
  23. package/ui/Blocks/SideMenu/MenuItem.d.ts +12 -0
  24. package/ui/Blocks/SideMenu/MenuItem.js +54 -0
  25. package/ui/Blocks/SideMenu/SideMenu.d.ts +3 -0
  26. package/ui/Blocks/SideMenu/SideMenu.js +25 -0
  27. package/ui/Blocks/SideMenu/components/Footer.d.ts +14 -0
  28. package/ui/Blocks/SideMenu/components/Footer.js +28 -0
  29. package/ui/Blocks/SideMenu/components/HamburgerMenu.d.ts +6 -0
  30. package/ui/Blocks/SideMenu/components/HamburgerMenu.js +24 -0
  31. package/ui/Blocks/SideMenu/components/SubitemTooltip.d.ts +13 -0
  32. package/ui/Blocks/SideMenu/components/SubitemTooltip.js +42 -0
  33. package/ui/Blocks/SideMenu/context/LeftMenuContext.d.ts +12 -0
  34. package/ui/Blocks/SideMenu/context/LeftMenuContext.js +15 -0
  35. package/ui/Blocks/SideMenu/context/useLeftMenuContext.d.ts +4 -0
  36. package/ui/Blocks/SideMenu/context/useLeftMenuContext.js +8 -0
  37. package/ui/Blocks/SideMenu/hooks/useOutsideHover.d.ts +11 -0
  38. package/ui/Blocks/SideMenu/hooks/useOutsideHover.js +23 -0
  39. package/ui/Blocks/SideMenu/index.d.ts +2 -0
  40. package/ui/Blocks/SideMenu/index.js +2 -0
  41. package/ui/Blocks/SideMenu/stories/SideMenu.stories.d.ts +12 -0
  42. package/ui/Blocks/SideMenu/stories/SideMenu.stories.js +23 -0
  43. package/ui/Blocks/SideMenu/stories/menuItems.d.ts +17 -0
  44. package/ui/Blocks/SideMenu/stories/menuItems.js +102 -0
  45. package/ui/Blocks/SideMenu/styles.d.ts +40 -0
  46. package/ui/Blocks/SideMenu/styles.js +157 -0
  47. package/ui/Blocks/SideMenu/types.d.ts +21 -0
  48. package/ui/Blocks/SideMenu/types.js +1 -0
  49. package/ui/Elements/Logo/assets/mailship/mailship-logo.svg +12 -12
  50. package/ui/Elements/Logo/assets/mailstep/mailstep_black.svg +17 -17
  51. package/ui/Elements/Logo/assets/mailstep/mailstep_white.svg +17 -17
  52. package/ui/Elements/Logo/assets/mailstock/mailstock.svg +12 -12
  53. package/ui/Elements/Logo/assets/mailwise/mailwiseLogo.svg +46 -46
  54. package/ui/Elements/Logo/assets/mailwise/mailwiseLogoSmall.svg +19 -19
  55. package/ui/index.d.ts +2 -2
  56. package/ui/index.es.js +6474 -6462
  57. package/ui/index.js +2 -2
  58. package/ui/index.umd.js +277 -277
  59. /package/ui/{Elements → Blocks}/LanguageSwitch/LanguageSwitch.d.ts +0 -0
  60. /package/ui/{Elements → Blocks}/LanguageSwitch/index.d.ts +0 -0
  61. /package/ui/{Elements → Blocks}/LanguageSwitch/index.js +0 -0
  62. /package/ui/{Elements → Blocks}/LanguageSwitch/types.d.ts +0 -0
  63. /package/ui/{Elements → Blocks}/LanguageSwitch/types.js +0 -0
  64. /package/ui/Blocks/LoginPage/assets/{shutterstock.jpg → mailship.jpg} +0 -0
  65. /package/ui/{Blocks/CommonGrid/storybook/utils/linguiContainer.d.ts → utils/LinguiContainer/index.d.ts} +0 -0
  66. /package/ui/{Blocks/CommonGrid/storybook/utils/linguiContainer.js → utils/LinguiContainer/index.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React, { useCallback, useMemo } from 'react';
3
+ import { useClickOutside } from '../Modal/hooks/useClickOutside';
3
4
  import { StyledFlag, LanguageFlagWrap, LanguageSwitchWrap, DownImg, StyledDropdownMenu } from './styles';
4
- import { useClickOutside } from '../../Blocks/Modal/hooks/useClickOutside';
5
5
  var LanguageSwitch = function (_a) {
6
6
  var activeLanguage = _a.activeLanguage, onLanguageChange = _a.onLanguageChange, languageItems = _a.languageItems;
7
7
  var _b = React.useState(false), flagDropdownVisible = _b[0], setFlagDropdownVisible = _b[1];
@@ -23,7 +23,7 @@ var LanguageSwitch = function (_a) {
23
23
  return ({
24
24
  title: title,
25
25
  icon: icon,
26
- onClick: languageToggle(languageCode),
26
+ onClick: languageToggle(languageCode)
27
27
  });
28
28
  });
29
29
  }, [filteredLanguages, languageToggle]);
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ import { StoryObj } from '@storybook/react';
3
+ declare const meta: {
4
+ title: string;
5
+ component: import("react").FC<{
6
+ activeLanguage?: string | undefined;
7
+ onLanguageChange: (languageCode: string) => void;
8
+ languageItems?: import("../types").LanguageItem[] | undefined;
9
+ }>;
10
+ tags: string[];
11
+ argTypes: {};
12
+ };
13
+ export default meta;
14
+ type Story = StoryObj<typeof meta>;
15
+ export declare const Default: Story;
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import LanguageSwitch from '../';
3
+ import { FlagCZ, FlagUSA } from '../../../Elements/Icon';
4
+ var languageItems = [
5
+ {
6
+ languageCode: 'cs',
7
+ icon: _jsx(FlagCZ, {}),
8
+ title: 'Česky'
9
+ },
10
+ {
11
+ languageCode: 'en',
12
+ icon: _jsx(FlagUSA, {}),
13
+ title: 'English'
14
+ }
15
+ ];
16
+ var meta = {
17
+ title: 'Blocks/LanguageSwitch',
18
+ component: LanguageSwitch,
19
+ tags: ['autodocs'],
20
+ argTypes: {}
21
+ };
22
+ export default meta;
23
+ export var Default = {
24
+ args: {
25
+ languageItems: languageItems,
26
+ activeLanguage: 'en',
27
+ onLanguageChange: function (languageCode) {
28
+ console.log('Language changed:', languageCode);
29
+ }
30
+ }
31
+ };
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  export declare const StyledFlag: import("styled-components").StyledComponent<"div", import("@xstyled/system").Theme, {}, never>;
3
- export declare const StyledDropdownMenu: import("styled-components").StyledComponent<(<T extends import("../DropdownMenu/types").Item>({ items, showMenu, className, ItemComponent, header, footer, ...rest }: import("../DropdownMenu/types").DropdownMenuProps<T>) => JSX.Element), import("@xstyled/system").Theme, {}, never>;
3
+ export declare const StyledDropdownMenu: import("styled-components").StyledComponent<(<T extends import("../../Elements/DropdownMenu/types").Item>({ items, showMenu, className, ItemComponent, header, footer, ...rest }: import("../../Elements/DropdownMenu/types").DropdownMenuProps<T>) => JSX.Element), import("@xstyled/system").Theme, {}, never>;
4
4
  export declare const LanguageSwitchWrap: import("styled-components").StyledComponent<"div", import("@xstyled/system").Theme, {}, never>;
5
5
  export declare const DownImg: import("styled-components").StyledComponent<"img", import("@xstyled/system").Theme, {}, never>;
6
6
  export declare const LanguageFlagWrap: import("styled-components").StyledComponent<"div", import("@xstyled/system").Theme, {}, never>;
@@ -3,7 +3,7 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
3
3
  return cooked;
4
4
  };
5
5
  import styled from '@xstyled/styled-components';
6
- import DropdownMenu from '../DropdownMenu';
6
+ import DropdownMenu from '../../Elements/DropdownMenu';
7
7
  export var StyledFlag = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: auto;\n cursor: pointer;\n"], ["\n width: auto;\n cursor: pointer;\n"])));
8
8
  export var StyledDropdownMenu = styled(DropdownMenu)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: absolute;\n top: 30px;\n right: -5px;\n width: max-content;\n @media (min-width: 1024px) {\n left: -5px;\n }\n & > ul > a > * {\n display: flex;\n align-items: center;\n }\n\n :before {\n content: '';\n top: -1px;\n right: 15px;\n position: absolute;\n height: 10px;\n width: 10px;\n -webkit-transform: rotate(45deg) translate(-7px);\n -ms-transform: rotate(45deg) translate(-7px);\n transform: rotate(45deg) translate(-7px);\n border-left: 1px solid rgba(0, 0, 0, 0.1);\n background: white;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n @media (min-width: 1024px) {\n left: 15px;\n }\n }\n"], ["\n position: absolute;\n top: 30px;\n right: -5px;\n width: max-content;\n @media (min-width: 1024px) {\n left: -5px;\n }\n & > ul > a > * {\n display: flex;\n align-items: center;\n }\n\n :before {\n content: '';\n top: -1px;\n right: 15px;\n position: absolute;\n height: 10px;\n width: 10px;\n -webkit-transform: rotate(45deg) translate(-7px);\n -ms-transform: rotate(45deg) translate(-7px);\n transform: rotate(45deg) translate(-7px);\n border-left: 1px solid rgba(0, 0, 0, 0.1);\n background: white;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n @media (min-width: 1024px) {\n left: 15px;\n }\n }\n"])));
9
9
  export var LanguageSwitchWrap = styled.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n position: relative;\n display: flex;\n align-items: center;\n"], ["\n position: relative;\n display: flex;\n align-items: center;\n"])));
@@ -6,9 +6,9 @@ import { Wrapper, MailTo, LanguageBox, LogoWrapper, MainLogo, CardBodyWithLangua
6
6
  import { H6 } from '../../Elements/Typography/Typography';
7
7
  import { SocialLinks } from './components/SocialLinks';
8
8
  import { LoginForm } from './components/LoginForm';
9
- import LanguageSwitch from '../../Elements/LanguageSwitch';
9
+ import LanguageSwitch from '../LanguageSwitch';
10
10
  var Login = function (_a) {
11
- var onSubmit = _a.onSubmit, activeLanguage = _a.activeLanguage, onLanguageChange = _a.onLanguageChange, children = _a.children, brand = _a.brand, brandVariant = _a.brandVariant, isSubmitting = _a.isSubmitting, isSubmitDisabled = _a.isSubmitDisabled, withDistributionCenterSelect = _a.withDistributionCenterSelect, distributionCenterOptions = _a.distributionCenterOptions, selectedDistributionCenter = _a.selectedDistributionCenter, onChangeDistributionCenter = _a.onChangeDistributionCenter, languageItems = _a.languageItems, version = _a.version;
12
- return (_jsxs(Wrapper, { children: [_jsxs(CardBodyWithLanguage, { children: [_jsx(LogoWrapper, { children: _jsx(MainLogo, { brand: brand, variant: brandVariant }) }), _jsxs(LanguageBox, { children: [_jsxs(x.div, { mr: 4, children: [_jsx(H6, { color: "gray1", variant: "bold", mt: "8px", mb: "8px", as: "h6", children: _jsx(Trans, { id: "form.heading.support", message: "Support:" }) }), _jsx(MailTo, { href: "mailto:mailstep@mailstep.cz", children: EMAIL_ADDRESS })] }), _jsx(LanguageSwitch, { activeLanguage: activeLanguage, onLanguageChange: onLanguageChange, languageItems: languageItems })] }), _jsx(LoginForm, { onSubmit: onSubmit, isSubmitDisabled: isSubmitDisabled, isSubmitting: isSubmitting, onChangeDistributionCenter: onChangeDistributionCenter, withDistributionCenterSelect: withDistributionCenterSelect, distributionCenterOptions: distributionCenterOptions, selectedDistributionCenter: selectedDistributionCenter })] }), children, version && _jsx(Version, { children: version }), _jsx(SocialLinks, {})] }));
11
+ var onSubmit = _a.onSubmit, activeLanguage = _a.activeLanguage, onLanguageChange = _a.onLanguageChange, children = _a.children, brand = _a.brand, brandVariant = _a.brandVariant, isSubmitting = _a.isSubmitting, isSubmitDisabled = _a.isSubmitDisabled, withDistributionCenterSelect = _a.withDistributionCenterSelect, distributionCenterOptions = _a.distributionCenterOptions, selectedDistributionCenter = _a.selectedDistributionCenter, onChangeDistributionCenter = _a.onChangeDistributionCenter, languageItems = _a.languageItems, version = _a.version, backgroundImage = _a.backgroundImage;
12
+ return (_jsxs(Wrapper, { backgroundImage: backgroundImage, children: [_jsxs(CardBodyWithLanguage, { children: [_jsx(LogoWrapper, { children: _jsx(MainLogo, { brand: brand, variant: brandVariant }) }), _jsxs(LanguageBox, { children: [_jsxs(x.div, { mr: 4, children: [_jsx(H6, { color: "gray1", variant: "bold", mt: "8px", mb: "8px", as: "h6", children: _jsx(Trans, { id: "form.heading.support", message: "Support:" }) }), _jsx(MailTo, { href: "mailto:mailstep@mailstep.cz", children: EMAIL_ADDRESS })] }), _jsx(LanguageSwitch, { activeLanguage: activeLanguage, onLanguageChange: onLanguageChange, languageItems: languageItems })] }), _jsx(LoginForm, { onSubmit: onSubmit, isSubmitDisabled: isSubmitDisabled, isSubmitting: isSubmitting, onChangeDistributionCenter: onChangeDistributionCenter, withDistributionCenterSelect: withDistributionCenterSelect, distributionCenterOptions: distributionCenterOptions, selectedDistributionCenter: selectedDistributionCenter })] }), children, version && _jsx(Version, { children: version }), _jsx(SocialLinks, {})] }));
13
13
  };
14
14
  export default Login;
@@ -0,0 +1,8 @@
1
+ declare const meta: {
2
+ title: string;
3
+ tags: string[];
4
+ };
5
+ export default meta;
6
+ export declare const Default: () => import("react/jsx-runtime").JSX.Element;
7
+ export declare const WithDistributionCenterSelect: () => import("react/jsx-runtime").JSX.Element;
8
+ export declare const WithBackgroundImage: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,94 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { jsx as _jsx } from "react/jsx-runtime";
38
+ import LoginPage from '../';
39
+ import { FlagCZ, FlagUSA } from '../../../Elements/Icon';
40
+ import { LinguiContainer } from '../../../utils/LinguiContainer';
41
+ var languageItems = [
42
+ {
43
+ languageCode: 'cs',
44
+ icon: _jsx(FlagCZ, {}),
45
+ title: 'Česky'
46
+ },
47
+ {
48
+ languageCode: 'en',
49
+ icon: _jsx(FlagUSA, {}),
50
+ title: 'English'
51
+ }
52
+ ];
53
+ var distributionCenterOptions = [
54
+ { value: 'PRG1', label: 'PRG1' },
55
+ { value: 'ATH1', label: 'ATH1' },
56
+ { value: 'MLN1', label: 'MLN1' }
57
+ ];
58
+ var meta = {
59
+ title: 'Blocks/LoginPage',
60
+ tags: ['autodocs']
61
+ };
62
+ export default meta;
63
+ export var Default = function () {
64
+ return (_jsx(LinguiContainer, { children: _jsx(LoginPage, { onSubmit: function (data) { return __awaiter(void 0, void 0, void 0, function () {
65
+ return __generator(this, function (_a) {
66
+ console.log('Login data:', data);
67
+ return [2 /*return*/];
68
+ });
69
+ }); }, isSubmitting: false, isSubmitDisabled: false, activeLanguage: "en", version: "1.0.0", onLanguageChange: function (language) {
70
+ console.log('Language changed:', language);
71
+ }, brand: "mailship", brandVariant: "s", languageItems: languageItems }) }));
72
+ };
73
+ export var WithDistributionCenterSelect = function () {
74
+ return (_jsx(LinguiContainer, { children: _jsx(LoginPage, { onSubmit: function (data) { return __awaiter(void 0, void 0, void 0, function () {
75
+ return __generator(this, function (_a) {
76
+ console.log('Login data:', data);
77
+ return [2 /*return*/];
78
+ });
79
+ }); }, isSubmitting: false, activeLanguage: "en", version: "1.0.0", onLanguageChange: function (language) {
80
+ console.log('Language changed:', language);
81
+ }, brand: "mailship", brandVariant: "s", languageItems: languageItems, distributionCenterOptions: distributionCenterOptions, onChangeDistributionCenter: function (dcId) {
82
+ console.log('onChangeDistributionCenter:', dcId);
83
+ }, selectedDistributionCenter: "PRG1", withDistributionCenterSelect: true }) }));
84
+ };
85
+ export var WithBackgroundImage = function () {
86
+ return (_jsx(LinguiContainer, { children: _jsx(LoginPage, { onSubmit: function (data) { return __awaiter(void 0, void 0, void 0, function () {
87
+ return __generator(this, function (_a) {
88
+ console.log('Login data:', data);
89
+ return [2 /*return*/];
90
+ });
91
+ }); }, isSubmitting: false, isSubmitDisabled: false, activeLanguage: "en", version: "1.0.0", onLanguageChange: function (language) {
92
+ console.log('Language changed:', language);
93
+ }, brand: "mailship", brandVariant: "s", languageItems: languageItems, backgroundImage: "mailship" }) }));
94
+ };
@@ -1,5 +1,7 @@
1
1
  /// <reference types="react" />
2
- export declare const Wrapper: import("styled-components").StyledComponent<"div", import("@xstyled/system").Theme, {}, never>;
2
+ export declare const Wrapper: import("styled-components").StyledComponent<"div", import("@xstyled/system").Theme, {
3
+ backgroundImage?: "mailship" | undefined;
4
+ }, never>;
3
5
  export declare const LanguageBox: import("styled-components").StyledComponent<"div", import("@xstyled/system").Theme, {}, never>;
4
6
  export declare const CardBodyWithLanguage: import("styled-components").StyledComponent<({ children, ...rest }: import("../../Elements/Card/types").PropsBody) => JSX.Element, import("@xstyled/system").Theme, {}, never>;
5
7
  export declare const MailTo: import("styled-components").StyledComponent<"a", import("@xstyled/system").Theme, {}, never>;
@@ -4,9 +4,15 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
4
4
  };
5
5
  import { CardBody } from '../../Elements/Card/Card';
6
6
  import Logo from '../../Elements/Logo/Logo';
7
- import shutterstock from './assets/shutterstock.jpg';
7
+ import mailship from './assets/mailship.jpg';
8
8
  import styled, { th } from '@xstyled/styled-components';
9
- export var Wrapper = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n font-family: ", ";\n flex-grow: 1;\n background: ", ";\n opacity: 1;\n z-index: 1;\n display: flex;\n justify-content: space-between;\n @media (min-width: 1024px) {\n background: transparent ", " 50% 0% no-repeat padding-box;\n background-size: cover;\n }\n"], ["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n font-family: ", ";\n flex-grow: 1;\n background: ", ";\n opacity: 1;\n z-index: 1;\n display: flex;\n justify-content: space-between;\n @media (min-width: 1024px) {\n background: transparent ", " 50% 0% no-repeat padding-box;\n background-size: cover;\n }\n"])), th('fonts.primary'), th('colors.bgLightGray'), shutterstock);
9
+ var backgroundImageMap = {
10
+ mailship: mailship
11
+ };
12
+ export var Wrapper = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n font-family: ", ";\n flex-grow: 1;\n background: ", ";\n opacity: 1;\n z-index: 1;\n display: flex;\n justify-content: space-between;\n @media (min-width: 1024px) {\n background: ", "\n background-size: cover;\n }\n"], ["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n font-family: ", ";\n flex-grow: 1;\n background: ", ";\n opacity: 1;\n z-index: 1;\n display: flex;\n justify-content: space-between;\n @media (min-width: 1024px) {\n background: ", "\n background-size: cover;\n }\n"])), th('fonts.primary'), th('colors.bgLightGray'), function (_a) {
13
+ var backgroundImage = _a.backgroundImage;
14
+ return "transparent ".concat(backgroundImage && "url(".concat(backgroundImageMap[backgroundImage], ")"), " 50% 0% no-repeat padding-box;");
15
+ });
10
16
  export var LanguageBox = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: flex;\n margin: 15px 0;\n align-items: flex-end;\n justify-content: space-between;\n @media (min-width: 1024px) {\n justify-content: flex-end;\n margin: 40px 0;\n }\n"], ["\n display: flex;\n margin: 15px 0;\n align-items: flex-end;\n justify-content: space-between;\n @media (min-width: 1024px) {\n justify-content: flex-end;\n margin: 40px 0;\n }\n"])));
11
17
  export var CardBodyWithLanguage = styled(CardBody)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n justify-content: start;\n padding: 0 32px 10px 32px;\n flex-grow: 1;\n margin: auto;\n width: 500px;\n @media (min-width: 1024px) {\n display: block;\n flex-grow: 0;\n }\n"], ["\n display: flex;\n justify-content: start;\n padding: 0 32px 10px 32px;\n flex-grow: 1;\n margin: auto;\n width: 500px;\n @media (min-width: 1024px) {\n display: block;\n flex-grow: 0;\n }\n"])));
12
18
  export var MailTo = styled.a(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n color: ", ";\n &:hover {\n color: ", ";\n }\n"], ["\n color: ", ";\n &:hover {\n color: ", ";\n }\n"])), th.color('typoPrimary'), th.color('red1'));
@@ -1,7 +1,8 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { Brand, Variant } from '../../Elements/Logo/types';
3
3
  import { Option } from '../../Elements/Select/types';
4
- import { LanguageItem } from '../../Elements/LanguageSwitch';
4
+ import { LanguageItem } from '../LanguageSwitch';
5
+ export type BackgroundImages = 'mailship';
5
6
  export type LoginData = {
6
7
  login: string;
7
8
  password: string;
@@ -21,4 +22,5 @@ export type LoginPageProps = {
21
22
  selectedDistributionCenter?: string;
22
23
  languageItems?: LanguageItem[];
23
24
  version?: string;
25
+ backgroundImage?: BackgroundImages;
24
26
  };
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { MenuItemType } from './types';
3
+ type Props = MenuItemType & {
4
+ isSubitem?: boolean;
5
+ isCompact: boolean;
6
+ lightMode?: boolean;
7
+ separator?: boolean;
8
+ isLeftMenuOpen?: boolean;
9
+ onCloseLeftMenu?: () => void;
10
+ };
11
+ declare const _default: React.MemoExoticComponent<({ icon, title, link, items, id, isSubitem, isCompact, lightMode, separator, isLeftMenuOpen, onCloseLeftMenu }: Props) => JSX.Element | null>;
12
+ export default _default;
@@ -0,0 +1,54 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
13
+ import { memo, useCallback, useMemo, useRef } from 'react';
14
+ import { matchPath } from 'react-router';
15
+ import { ItemLinkWrap, ItemIcon, ItemDropdownArrow, SubItemsWrap, OverflowWithEllipsis, MenuItemContainer, ItemLabel, ItemsSeparator } from './styles';
16
+ import SubitemTooltip from './components/SubitemTooltip';
17
+ import { useLeftMenuContext } from './context/useLeftMenuContext';
18
+ import { Paragraph3, Paragraph5 } from '../../Elements/Typography/Typography';
19
+ import Icon from '../../Elements/Icon/Icon';
20
+ import useOutSideHover from './hooks/useOutsideHover';
21
+ var removeOptionalEnd = /\?$/;
22
+ var MenuItem = function (_a) {
23
+ var icon = _a.icon, title = _a.title, _b = _a.link, link = _b === void 0 ? '' : _b, items = _a.items, id = _a.id, isSubitem = _a.isSubitem, isCompact = _a.isCompact, _c = _a.lightMode, lightMode = _c === void 0 ? false : _c, _d = _a.separator, separator = _d === void 0 ? false : _d, isLeftMenuOpen = _a.isLeftMenuOpen, onCloseLeftMenu = _a.onCloseLeftMenu;
24
+ var hasChildren = useMemo(function () { return items && (items === null || items === void 0 ? void 0 : items.length) > 0; }, [items]);
25
+ var _e = useLeftMenuContext(), expandedItem = _e.expandedItem, expandItem = _e.expandItem;
26
+ var isExpanded = expandedItem === id;
27
+ var toggleChildren = useCallback(function () {
28
+ hasChildren && expandItem(isExpanded ? null : id);
29
+ !hasChildren && !lightMode && onCloseLeftMenu && onCloseLeftMenu();
30
+ }, [hasChildren, expandItem, isExpanded, id, lightMode, onCloseLeftMenu]);
31
+ var linkProps = useMemo(function () { return (link.startsWith('https://') ? { to: { pathname: link }, target: '_blank' } : { to: link }); }, [link]);
32
+ var Title = isCompact ? Paragraph5 : Paragraph3;
33
+ var listExpandedItems = isExpanded && !isCompact;
34
+ var parentRef = useRef(null);
35
+ var _f = useOutSideHover({ parentRef: parentRef }), childRef = _f.ref, isHovering = _f.isHovering, handleMouseOver = _f.handleMouseOver;
36
+ var itemLinkWrapClassName = !isSubitem ? 'toplevel' : 'nestedlevel';
37
+ if (isExpanded) {
38
+ itemLinkWrapClassName += ' expanded';
39
+ }
40
+ if (separator) {
41
+ itemLinkWrapClassName += ' separator';
42
+ }
43
+ var isActive = useCallback(function (match, location) {
44
+ var childSelected = !!(items === null || items === void 0 ? void 0 : items.find(function (item) { var _a; return ((_a = item.link) === null || _a === void 0 ? void 0 : _a.replace(removeOptionalEnd, '')) === location.pathname; }));
45
+ var isActive = !!matchPath(location.pathname, { path: match === null || match === void 0 ? void 0 : match.path });
46
+ // partial match helps to match paths with parameters which are not matched by matchPath above
47
+ var partialMatch = location.pathname.startsWith(link.slice(0, -1)) && location.pathname.includes('/settings/');
48
+ return isActive || childSelected || partialMatch;
49
+ }, [items, link]);
50
+ return (_jsxs(_Fragment, { children: [separator && _jsx(ItemsSeparator, {}), _jsxs(MenuItemContainer, { ref: parentRef, "$isCompact": isCompact, "$lightMode": lightMode, hasChildren: hasChildren, isHovering: isHovering, children: [_jsxs(ItemLinkWrap, __assign({}, linkProps, { onMouseOver: handleMouseOver, exact: true, activeClassName: hasChildren ? 'selected' : undefined, onClick: toggleChildren, "$isCompact": isCompact, className: itemLinkWrapClassName,
51
+ // @ts-ignore
52
+ isActive: isActive, "$lightMode": lightMode, children: [_jsxs(ItemLabel, { "$isCompact": isCompact, isSubitem: isSubitem, children: [!isSubitem && icon && (_jsx(ItemIcon, { className: "mainIcon", "$isCompact": isCompact, children: typeof icon === 'string' ? _jsx(Icon, { icon: icon, fill: "none" }) : icon })), _jsx(Title, { variant: "semiBold", mt: 0, mb: 0, children: _jsx(OverflowWithEllipsis, { children: title }) })] }), !isCompact && hasChildren && _jsx(ItemDropdownArrow, { icon: "goDown", "$lightMode": lightMode })] })), isHovering && isCompact && hasChildren && !listExpandedItems && (_jsx(SubitemTooltip, { items: items, childRef: childRef, parentRef: parentRef, isLeftMenuOpen: isLeftMenuOpen, onCloseLeftMenu: onCloseLeftMenu, lightMode: lightMode }))] }), hasChildren && listExpandedItems && (_jsx(SubItemsWrap, { children: items === null || items === void 0 ? void 0 : items.map(function (item, index) { return (_jsx(MenuItem, __assign({ isCompact: isCompact, lightMode: lightMode }, item, { onCloseLeftMenu: onCloseLeftMenu, isSubitem: true }), "".concat(index))); }) }))] }));
53
+ };
54
+ export default memo(MenuItem);
@@ -0,0 +1,3 @@
1
+ import { SideMenuProps } from './types';
2
+ declare const SideMenu: ({ menuItems, isCompact, setIsCompact, isLeftMenuOpen, onCloseLeftMenu, variant, children }: SideMenuProps) => JSX.Element;
3
+ export default SideMenu;
@@ -0,0 +1,25 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import FooterRow from './components/Footer';
14
+ import MenuItem from './MenuItem';
15
+ import { LeftMenuProvider } from './context/LeftMenuContext';
16
+ import { HamburgerMenu } from './components/HamburgerMenu';
17
+ import { useClickOutside } from '../Modal/hooks/useClickOutside';
18
+ import { TopLevelWrap, ScrollWrap, BodyWrap, Overlay } from './styles';
19
+ var SideMenu = function (_a) {
20
+ var menuItems = _a.menuItems, isCompact = _a.isCompact, setIsCompact = _a.setIsCompact, isLeftMenuOpen = _a.isLeftMenuOpen, onCloseLeftMenu = _a.onCloseLeftMenu, _b = _a.variant, variant = _b === void 0 ? 'dark' : _b, children = _a.children;
21
+ var lightMode = variant === 'light';
22
+ var pickerRef = useClickOutside({ onClose: onCloseLeftMenu });
23
+ return (_jsxs(LeftMenuProvider, { children: [_jsxs(TopLevelWrap, { isCompact: isCompact, isLeftMenuOpen: isLeftMenuOpen, ref: pickerRef, lightMode: lightMode, children: [_jsx(HamburgerMenu, { isLeftMenuOpen: isLeftMenuOpen, onClick: onCloseLeftMenu }), _jsx(ScrollWrap, { children: _jsxs(BodyWrap, { isCompact: isCompact, children: [menuItems.map(function (item, index) { return (_jsx(MenuItem, __assign({ isCompact: isCompact, isLeftMenuOpen: isLeftMenuOpen, onCloseLeftMenu: onCloseLeftMenu, lightMode: lightMode, separator: !!item.separator }, item), "".concat(item.id, "-").concat(index))); }), children] }) }), _jsx(FooterRow, { isCompact: isCompact, setIsCompact: setIsCompact, lightMode: lightMode })] }), _jsx(Overlay, {})] }));
24
+ };
25
+ export default SideMenu;
@@ -0,0 +1,14 @@
1
+ export declare const FooterWrap: import("styled-components").StyledComponent<"div", import("@xstyled/system").Theme, {
2
+ isCompact: boolean;
3
+ }, never>;
4
+ export declare const SizeToggle: import("styled-components").StyledComponent<"div", import("@xstyled/system").Theme, {
5
+ isCompact: boolean;
6
+ $lightMode?: boolean | undefined;
7
+ }, never>;
8
+ type Props = {
9
+ isCompact: boolean;
10
+ setIsCompact?: (compact: boolean) => void;
11
+ lightMode?: boolean;
12
+ };
13
+ declare const MenuFooter: ({ isCompact, setIsCompact, lightMode }: Props) => JSX.Element;
14
+ export default MenuFooter;
@@ -0,0 +1,28 @@
1
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
2
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
3
+ return cooked;
4
+ };
5
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
+ import { useCallback } from 'react';
7
+ import styled, { css } from '@xstyled/styled-components';
8
+ import { th } from '@xstyled/system';
9
+ import { MenuItems } from '../../../Elements/Icon/icons/MenuItems';
10
+ import { Paragraph4 } from '../../../Elements/Typography';
11
+ import { Trans } from '@lingui/react';
12
+ export var FooterWrap = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n height: 24px;\n width: 100%;\n margin-bottom: 24px;\n justify-content: ", ";\n padding-left: ", ";\n"], ["\n display: flex;\n align-items: center;\n height: 24px;\n width: 100%;\n margin-bottom: 24px;\n justify-content: ", ";\n padding-left: ", ";\n"])), function (props) { return (props.isCompact ? 'center' : 'flex-start'); }, function (props) { return (props.isCompact ? '0' : '22px'); });
13
+ export var SizeToggle = styled.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: none;\n @media (min-width: 1024px) {\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n color: ", ";\n font-size: 11px;\n & svg {\n transform: ", ";\n ", "\n\n & > path {\n stroke: ", ";\n }\n }\n }\n"], ["\n display: none;\n @media (min-width: 1024px) {\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n color: ", ";\n font-size: 11px;\n & svg {\n transform: ", ";\n ", "\n\n & > path {\n stroke: ", ";\n }\n }\n }\n"])), function (_a) {
14
+ var $lightMode = _a.$lightMode;
15
+ return ($lightMode ? th.color('typoPrimary') : th.color('gray'));
16
+ }, function (props) { return (props.isCompact ? 'rotate(180deg)' : 'rotate(0deg)'); }, function (_a) {
17
+ var $lightMode = _a.$lightMode;
18
+ return $lightMode && css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n fill: ", ";\n "], ["\n fill: ", ";\n "])), th.color('neutral20'));
19
+ }, th.color('lightGray5'));
20
+ var MenuFooter = function (_a) {
21
+ var isCompact = _a.isCompact, setIsCompact = _a.setIsCompact, lightMode = _a.lightMode;
22
+ var toggleIsCompact = useCallback(function () {
23
+ setIsCompact && setIsCompact(!isCompact);
24
+ }, [setIsCompact, isCompact]);
25
+ return (_jsx(FooterWrap, { isCompact: isCompact, children: _jsxs(SizeToggle, { onClick: toggleIsCompact, isCompact: isCompact, "$lightMode": lightMode, children: [_jsx(MenuItems, { stroke: "none", width: "24px" }), !isCompact && (_jsx(Paragraph4, { ml: 2, variant: "semiBold", children: _jsx(Trans, { id: "footer.collapse", message: "Collapse" }) }))] }) }));
26
+ };
27
+ export default MenuFooter;
28
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -0,0 +1,6 @@
1
+ type Props = {
2
+ isLeftMenuOpen?: boolean;
3
+ onClick?: () => void;
4
+ };
5
+ export declare const HamburgerMenu: ({ isLeftMenuOpen, onClick }: Props) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,24 @@
1
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
2
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
3
+ return cooked;
4
+ };
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ import { css, x } from '@xstyled/styled-components';
7
+ import styled from 'styled-components';
8
+ import { HamburgerMenu as HamburgerMenuIcon } from '../../../Elements/Icon/icons/HamburgerMenu';
9
+ import { MobileCancel } from '../../../Elements/Icon/icons/MobileCancel';
10
+ import { th } from '@xstyled/system';
11
+ import { useTheme } from '@xstyled/styled-components';
12
+ var HamburgerMenuWrapper = styled(x.div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n width: 36px;\n height: 36px;\n border-radius: 70px;\n background-color: ", ";\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n box-shadow: ", ";\n &:hover {\n cursor: pointer;\n }\n\n ", ";\n\n @media (min-width: 1024px) {\n display: none;\n }\n"], ["\n width: 36px;\n height: 36px;\n border-radius: 70px;\n background-color: ", ";\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n box-shadow: ", ";\n &:hover {\n cursor: pointer;\n }\n\n ", ";\n\n @media (min-width: 1024px) {\n display: none;\n }\n"])), th.color('neutral20'), th.shadow('dropShadow'), function (_a) {
13
+ var isLeftMenuOpen = _a.isLeftMenuOpen;
14
+ return isLeftMenuOpen
15
+ ? css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: absolute;\n left: 92%;\n top: 7px;\n z-index: 6;\n "], ["\n position: absolute;\n left: 92%;\n top: 7px;\n z-index: 6;\n "]))) : css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n & > svg > path {\n stroke: ", ";\n }\n "], ["\n & > svg > path {\n stroke: ", ";\n }\n "])), th.color('blue2'));
16
+ });
17
+ export var HamburgerMenu = function (_a) {
18
+ var isLeftMenuOpen = _a.isLeftMenuOpen, onClick = _a.onClick;
19
+ var theme = useTheme();
20
+ var neutralColor = th.color('neutral20')({ theme: theme });
21
+ var dispalyedIcon = isLeftMenuOpen ? (_jsx(MobileCancel, { fill: neutralColor })) : (_jsx(HamburgerMenuIcon, { fill: neutralColor, stroke: 'none' }));
22
+ return (_jsx(HamburgerMenuWrapper, { mr: 3, onClick: onClick, isLeftMenuOpen: !!isLeftMenuOpen, children: dispalyedIcon }));
23
+ };
24
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -0,0 +1,13 @@
1
+ import { MutableRefObject } from 'react';
2
+ import { MenuItemType } from '../types';
3
+ type Props = {
4
+ itemsOpen?: number;
5
+ childRef: MutableRefObject<HTMLElement | null>;
6
+ parentRef: MutableRefObject<HTMLElement | null>;
7
+ items: MenuItemType[] | undefined;
8
+ isLeftMenuOpen?: boolean;
9
+ onCloseLeftMenu?: () => void;
10
+ lightMode?: boolean;
11
+ };
12
+ declare const SubitemTooltip: ({ items, childRef, parentRef, isLeftMenuOpen, onCloseLeftMenu, lightMode }: Props) => JSX.Element;
13
+ export default SubitemTooltip;
@@ -0,0 +1,42 @@
1
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
2
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
3
+ return cooked;
4
+ };
5
+ var __assign = (this && this.__assign) || function () {
6
+ __assign = Object.assign || function(t) {
7
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
8
+ s = arguments[i];
9
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
10
+ t[p] = s[p];
11
+ }
12
+ return t;
13
+ };
14
+ return __assign.apply(this, arguments);
15
+ };
16
+ import { jsx as _jsx } from "react/jsx-runtime";
17
+ import { useMemo } from 'react';
18
+ import { Popper } from 'react-popper';
19
+ import styled from 'styled-components';
20
+ import Portal from '../../../Elements/Portal';
21
+ import { H6 } from '../../../Elements/Typography/Typography';
22
+ import { ItemLinkWrap, TooltipWrap, TooltipItemLabel } from '../styles';
23
+ var TooltipItem = function (_a) {
24
+ var title = _a.title, _b = _a.link, link = _b === void 0 ? '' : _b, lightMode = _a.lightMode;
25
+ var linkProps = useMemo(function () {
26
+ return link.startsWith('https://') ? { to: { pathname: link }, target: '_blank' } : { to: link };
27
+ }, [link]);
28
+ return (_jsx(ItemLinkWrap, __assign({}, linkProps, { exact: true, "$lightMode": lightMode, children: _jsx(TooltipItemLabel, { children: _jsx(H6, { variant: "medium", children: title }) }) })));
29
+ };
30
+ var PopoverWrapper = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n z-index: 5;\n display: ", ";\n @media (min-width: 1024px) {\n display: block;\n }\n"], ["\n z-index: 5;\n display: ", ";\n @media (min-width: 1024px) {\n display: block;\n }\n"])), function (_a) {
31
+ var isLeftMenuOpen = _a.isLeftMenuOpen;
32
+ return (isLeftMenuOpen ? 'block' : 'none');
33
+ });
34
+ var SubitemTooltip = function (_a) {
35
+ var items = _a.items, childRef = _a.childRef, parentRef = _a.parentRef, isLeftMenuOpen = _a.isLeftMenuOpen, onCloseLeftMenu = _a.onCloseLeftMenu, lightMode = _a.lightMode;
36
+ return (_jsx(Portal, { children: _jsx(Popper, { innerRef: childRef, referenceElement: parentRef.current, placement: "right-start", children: function (_a) {
37
+ var ref = _a.ref, style = _a.style;
38
+ return (_jsx(PopoverWrapper, { ref: ref, style: style, onClick: onCloseLeftMenu, isLeftMenuOpen: isLeftMenuOpen, children: _jsx(TooltipWrap, { "$lightMode": lightMode, children: items === null || items === void 0 ? void 0 : items.map(function (item, index) { return (_jsx(TooltipItem, __assign({}, item, { lightMode: lightMode }), "".concat(index))); }) }) }));
39
+ } }) }));
40
+ };
41
+ export default SubitemTooltip;
42
+ var templateObject_1;
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ type LeftMenuContextType = {
3
+ expandedItem: string | null;
4
+ expandItem: (item: string | null) => void;
5
+ };
6
+ export declare const LeftMenuContext: React.Context<LeftMenuContextType | null>;
7
+ type LeftMenuProviderProps = {
8
+ children: React.ReactNode;
9
+ defaultItemSelected?: string | null;
10
+ };
11
+ export declare const LeftMenuProvider: ({ children, defaultItemSelected }: LeftMenuProviderProps) => import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useCallback, useMemo, useState } from 'react';
3
+ export var LeftMenuContext = createContext(null);
4
+ export var LeftMenuProvider = function (_a) {
5
+ var children = _a.children, _b = _a.defaultItemSelected, defaultItemSelected = _b === void 0 ? null : _b;
6
+ var _c = useState(defaultItemSelected), expandedItem = _c[0], setExpandedItem = _c[1];
7
+ var expandItem = useCallback(function (item) {
8
+ setExpandedItem(item);
9
+ }, []);
10
+ var value = useMemo(function () { return ({
11
+ expandedItem: expandedItem,
12
+ expandItem: expandItem,
13
+ }); }, [expandedItem, expandItem]);
14
+ return _jsx(LeftMenuContext.Provider, { value: value, children: children });
15
+ };
@@ -0,0 +1,4 @@
1
+ export declare const useLeftMenuContext: () => {
2
+ expandedItem: string | null;
3
+ expandItem: (item: string | null) => void;
4
+ };
@@ -0,0 +1,8 @@
1
+ import { useContext } from 'react';
2
+ import { LeftMenuContext } from './LeftMenuContext';
3
+ export var useLeftMenuContext = function () {
4
+ var context = useContext(LeftMenuContext);
5
+ if (!context)
6
+ throw new Error('useLeftMenuContext context must be use inside LeftMenuProvider');
7
+ return context;
8
+ };
@@ -0,0 +1,11 @@
1
+ import { MutableRefObject } from 'react';
2
+ interface Props {
3
+ parentRef: MutableRefObject<HTMLDivElement | null | undefined>;
4
+ }
5
+ interface ReturnType {
6
+ isHovering: boolean;
7
+ handleMouseOver: () => void;
8
+ ref: MutableRefObject<HTMLElement | null>;
9
+ }
10
+ declare const useOutSideHover: ({ parentRef }: Props) => ReturnType;
11
+ export default useOutSideHover;
@@ -0,0 +1,23 @@
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
+ var useOutSideHover = function (_a) {
3
+ var parentRef = _a.parentRef;
4
+ var ref = useRef(null);
5
+ var _b = useState(false), isHovering = _b[0], setIsHovering = _b[1];
6
+ var handleMouseOver = useCallback(function () {
7
+ setIsHovering(true);
8
+ }, []);
9
+ var handleMouseOut = useCallback(function (e) {
10
+ var _a, _b;
11
+ if (!((_a = parentRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target)) && !((_b = ref.current) === null || _b === void 0 ? void 0 : _b.contains(e.target))) {
12
+ setIsHovering(false);
13
+ }
14
+ }, [parentRef]);
15
+ useEffect(function () {
16
+ document.addEventListener('mouseover', handleMouseOut);
17
+ return function () {
18
+ document.removeEventListener('mouseover', handleMouseOut);
19
+ };
20
+ }, [handleMouseOut]);
21
+ return { isHovering: isHovering, handleMouseOver: handleMouseOver, ref: ref };
22
+ };
23
+ export default useOutSideHover;
@@ -0,0 +1,2 @@
1
+ import SideMenu from './SideMenu';
2
+ export default SideMenu;
@@ -0,0 +1,2 @@
1
+ import SideMenu from './SideMenu';
2
+ export default SideMenu;
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ declare const meta: {
3
+ title: string;
4
+ component: ({ menuItems, isCompact, setIsCompact, isLeftMenuOpen, onCloseLeftMenu, variant, children }: import("../types").SideMenuProps) => JSX.Element;
5
+ tags: string[];
6
+ argTypes: {};
7
+ };
8
+ export default meta;
9
+ export declare const Dark: () => import("react/jsx-runtime").JSX.Element;
10
+ export declare const DarkCompact: () => import("react/jsx-runtime").JSX.Element;
11
+ export declare const Light: () => import("react/jsx-runtime").JSX.Element;
12
+ export declare const LightCompact: () => import("react/jsx-runtime").JSX.Element;