@mailstep/design-system 0.8.34 → 0.8.35
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/package.json +2 -3
- package/ui/Blocks/CommonGrid/components/ControlButtons/styles.d.ts +4 -4
- package/ui/Blocks/CommonGrid/components/ExtraControlButtons/ExtraControlButtons.d.ts +1 -1
- package/ui/Blocks/CommonGrid/components/FloatingButton/FloatingButton.d.ts +2 -2
- package/ui/Blocks/CommonGrid/components/GridAggregation/styles.d.ts +3 -3
- package/ui/Blocks/CommonGrid/components/IconList/IconList.d.ts +4 -4
- package/ui/Blocks/CommonGrid/components/ManageColumnForm/styles.d.ts +1 -1
- package/ui/Blocks/CommonGrid/components/MobileOverlayWrapper.d.ts +1 -1
- package/ui/Blocks/CommonGrid/components/PresetsModalBody/components/TagRemove.d.ts +1 -1
- package/ui/Blocks/CommonGrid/components/Table.d.ts +8 -8
- package/ui/Blocks/CommonGrid/components/gridCells/LinkInCell.d.ts +1 -1
- package/ui/Blocks/CommonGrid/components/gridCells/RemoveItem.d.ts +2 -2
- package/ui/Blocks/CommonGrid/styles.d.ts +5 -5
- package/ui/Blocks/CornerDialog/styles.d.ts +6 -6
- package/ui/Blocks/Header/components/HamburgerToggle/index.d.ts +9 -0
- package/ui/Blocks/Header/components/HamburgerToggle/index.js +64 -0
- package/ui/Blocks/Header/components/HamburgerToggle/styles.d.ts +1 -0
- package/ui/Blocks/Header/components/HamburgerToggle/styles.js +20 -0
- package/ui/Blocks/Header/components/MenuItems/components/MenuItem/index.d.ts +2 -0
- package/ui/Blocks/Header/components/MenuItems/components/MenuItem/index.js +28 -11
- package/ui/Blocks/Header/components/MenuItems/components/MenuItem/utils/isItemActive.d.ts +10 -0
- package/ui/Blocks/Header/components/MenuItems/components/MenuItem/utils/isItemActive.js +33 -0
- package/ui/Blocks/Header/components/MenuItems/index.d.ts +2 -0
- package/ui/Blocks/Header/components/MenuItems/index.js +5 -2
- package/ui/Blocks/Header/components/MenuItems/styles.d.ts +12 -2
- package/ui/Blocks/Header/components/MenuItems/styles.js +109 -7
- package/ui/Blocks/Header/components/UserMenu/components/UserInfo/styles.d.ts +2 -2
- package/ui/Blocks/Header/components/UserMenu/index.d.ts +7 -1
- package/ui/Blocks/Header/components/UserMenu/index.js +38 -28
- package/ui/Blocks/Header/components/UserMenu/styles.d.ts +2 -3
- package/ui/Blocks/Header/components/UserMenu/styles.js +1 -7
- package/ui/Blocks/Header/index.d.ts +16 -2
- package/ui/Blocks/Header/index.js +94 -32
- package/ui/Blocks/Header/stories/Header.stories.d.ts +19 -0
- package/ui/Blocks/Header/styles.d.ts +27 -4
- package/ui/Blocks/Header/styles.js +59 -4
- package/ui/Blocks/Header/types.d.ts +1 -0
- package/ui/Blocks/ImageList/components/AddPhoto/styles.d.ts +2 -2
- package/ui/Blocks/ImageList/components/CloseButton/styles.d.ts +1 -1
- package/ui/Blocks/ImageList/components/ImageElement/styles.d.ts +3 -3
- package/ui/Blocks/ImageList/components/ImageTag/styles.d.ts +1 -1
- package/ui/Blocks/ImageList/styles.d.ts +2 -2
- package/ui/Blocks/LanguageSwitch/styles.d.ts +3 -3
- package/ui/Blocks/LightBox/styles.d.ts +4 -4
- package/ui/Blocks/LoginPage/components/SocialLinks.d.ts +4 -4
- package/ui/Blocks/LoginPage/styles.d.ts +7 -7
- package/ui/Blocks/Modal/hooks/useClickOutside.d.ts +1 -1
- package/ui/Blocks/Modal/hooks/useClickOutside.js +4 -2
- package/ui/Blocks/Modal/styles.d.ts +8 -8
- package/ui/Blocks/Modal/types.d.ts +1 -0
- package/ui/Blocks/Popover/index.d.ts +1 -0
- package/ui/Blocks/Popover/index.js +3 -2
- package/ui/Blocks/Scheduler/components/BookedTimeSlots/styles.d.ts +3 -3
- package/ui/Blocks/Scheduler/components/CurrentTimeMarker/styles.d.ts +3 -3
- package/ui/Blocks/Scheduler/components/DateChanger/styles.d.ts +2 -2
- package/ui/Blocks/Scheduler/components/Groups/styles.d.ts +3 -3
- package/ui/Blocks/Scheduler/components/TimeSlots/styles.d.ts +4 -4
- package/ui/Blocks/Scheduler/styles.d.ts +2 -2
- package/ui/Blocks/SideMenu/MenuItem.js +16 -8
- package/ui/Blocks/SideMenu/SideMenu.js +2 -1
- package/ui/Blocks/SideMenu/components/Footer.d.ts +2 -2
- package/ui/Blocks/SideMenu/styles.d.ts +16 -15
- package/ui/Blocks/SideMenu/styles.js +1 -1
- package/ui/Blocks/SideMenu/types.d.ts +1 -0
- package/ui/Blocks/Stepper/components/StepCircle/styles.d.ts +1 -1
- package/ui/Blocks/Stepper/components/StepItem/styles.d.ts +3 -3
- package/ui/Blocks/Stepper/styles.d.ts +2 -2
- package/ui/Blocks/Tabs/styles.d.ts +5 -5
- package/ui/Elements/Alert/styles.d.ts +4 -4
- package/ui/Elements/Avatar/Avatar.js +36 -32
- package/ui/Elements/Avatar/styles.d.ts +10 -0
- package/ui/Elements/Avatar/styles.js +39 -0
- package/ui/Elements/Avatar/types.d.ts +10 -0
- package/ui/Elements/BarChartSymbol/styles.d.ts +1 -1
- package/ui/Elements/Button/styles.d.ts +4 -4
- package/ui/Elements/Card/styles.d.ts +1 -1
- package/ui/Elements/CheckedCircle/styles.d.ts +1 -1
- package/ui/Elements/DatePicker/Datetime/components/FooterRow.d.ts +1 -1
- package/ui/Elements/DatePicker/Datetime/components/FooterRowLabel.d.ts +1 -1
- package/ui/Elements/DatePicker/Datetime/components/TimeInput.d.ts +1 -1
- package/ui/Elements/DatePicker/styles.d.ts +1 -1
- package/ui/Elements/DropdownSelect/DropdownSelect.d.ts +1 -1
- package/ui/Elements/Icon/Icon.js +8 -6
- package/ui/Elements/Icon/assets/dispatch.svg +31 -0
- package/ui/Elements/Icon/assets/no-image.svg +7 -0
- package/ui/Elements/Icon/assets/package.svg +20 -0
- package/ui/Elements/Icon/icons/ArrowDownLine.d.ts +3 -0
- package/ui/Elements/Icon/icons/ArrowDownLine.js +12 -0
- package/ui/Elements/Icon/icons/Backspace.d.ts +3 -0
- package/ui/Elements/Icon/icons/Backspace.js +11 -0
- package/ui/Elements/Icon/icons/BanCircle.d.ts +3 -0
- package/ui/Elements/Icon/icons/BanCircle.js +11 -0
- package/ui/Elements/Icon/icons/Calculator.d.ts +3 -0
- package/ui/Elements/Icon/icons/Calculator.js +15 -0
- package/ui/Elements/Icon/icons/CloudUpload.d.ts +3 -0
- package/ui/Elements/Icon/icons/CloudUpload.js +11 -0
- package/ui/Elements/Icon/icons/DangerCircle.d.ts +3 -0
- package/ui/Elements/Icon/icons/DangerCircle.js +11 -0
- package/ui/Elements/Icon/icons/Eco.d.ts +3 -0
- package/ui/Elements/Icon/icons/Eco.js +20 -0
- package/ui/Elements/Icon/icons/Exclamation.d.ts +3 -0
- package/ui/Elements/Icon/icons/Exclamation.js +24 -0
- package/ui/Elements/Icon/icons/EyeOpen.d.ts +3 -0
- package/ui/Elements/Icon/icons/EyeOpen.js +14 -0
- package/ui/Elements/Icon/icons/Key.d.ts +3 -0
- package/ui/Elements/Icon/icons/Key.js +11 -0
- package/ui/Elements/Icon/icons/Layers.d.ts +3 -0
- package/ui/Elements/Icon/icons/Layers.js +12 -0
- package/ui/Elements/Icon/icons/MailwrapLogo.d.ts +3 -0
- package/ui/Elements/Icon/icons/MailwrapLogo.js +76 -0
- package/ui/Elements/Icon/icons/NoImage.d.ts +3 -0
- package/ui/Elements/Icon/icons/NoImage.js +16 -0
- package/ui/Elements/Icon/icons/Reject.d.ts +3 -0
- package/ui/Elements/Icon/icons/Reject.js +17 -0
- package/ui/Elements/Icon/icons/Share.d.ts +3 -0
- package/ui/Elements/Icon/icons/Share.js +11 -0
- package/ui/Elements/Icon/icons/TickCircle.d.ts +3 -0
- package/ui/Elements/Icon/icons/TickCircle.js +11 -0
- package/ui/Elements/Icon/icons/Toolbox.d.ts +3 -0
- package/ui/Elements/Icon/icons/Toolbox.js +11 -0
- package/ui/Elements/Icon/icons/UserHeader.d.ts +3 -0
- package/ui/Elements/Icon/icons/UserHeader.js +11 -0
- package/ui/Elements/Icon/icons/WarehouseShelves.d.ts +3 -0
- package/ui/Elements/Icon/icons/WarehouseShelves.js +16 -0
- package/ui/Elements/Icon/icons/index.d.ts +19 -0
- package/ui/Elements/Icon/icons/index.js +39 -1
- package/ui/Elements/Icon/index.d.ts +1 -1
- package/ui/Elements/Icon/index.js +20 -1
- package/ui/Elements/Icon/stories/BadgeIcon.stories.d.ts +4 -0
- package/ui/Elements/Icon/types.d.ts +5 -0
- package/ui/Elements/Label/Label.d.ts +2 -2
- package/ui/Elements/Label/stories/Label.stories.d.ts +1 -1
- package/ui/Elements/Logo/Logo.js +2 -0
- package/ui/Elements/Logo/assets/mailwise/mailwiseLogoWhiteBg.svg +47 -0
- package/ui/Elements/Pagination/styled.d.ts +6 -6
- package/ui/Elements/ProgressBar/styles.d.ts +3 -3
- package/ui/Elements/Select/components/SelectedIndicator.d.ts +1 -1
- package/ui/Elements/Select/styles.d.ts +3 -3
- package/ui/Elements/SimpleLink/SimpleLink.d.ts +1 -1
- package/ui/Elements/Spinner/styles.d.ts +2 -2
- package/ui/Elements/Table/Table.d.ts +6 -6
- package/ui/Elements/Table/stories/Table.stories.d.ts +1 -1
- package/ui/Elements/Tag/Tag.d.ts +1 -1
- package/ui/Elements/Tag/stories/Tag.stories.d.ts +1 -1
- package/ui/Elements/Toast/styles.d.ts +5 -5
- package/ui/Forms/Checkbox/styles.d.ts +4 -4
- package/ui/Forms/Input/Input.js +1 -5
- package/ui/Forms/Input/styles.d.ts +9 -9
- package/ui/Forms/RadioButton/styles.d.ts +6 -6
- package/ui/Forms/TextArea/styles.d.ts +5 -5
- package/ui/index.js +20 -1
- package/ui/Blocks/Header/utils/constants.d.ts +0 -1
- package/ui/Blocks/Header/utils/constants.js +0 -4
|
@@ -4,46 +4,56 @@ import { useToggleAndClose } from "../../../../hooks/useToggleAndClose.js";
|
|
|
4
4
|
import Avatar_default from "../../../../Elements/Avatar/index.js";
|
|
5
5
|
import { UserInfoBlock } from "./components/UserInfo/index.js";
|
|
6
6
|
import { useLogout } from "./hooks/useLogout.js";
|
|
7
|
-
import { DropdownContentWrap, Line
|
|
7
|
+
import { DropdownContentWrap, Line } from "./styles.js";
|
|
8
8
|
import { useRef } from "react";
|
|
9
|
+
import { th, useTheme } from "@xstyled/styled-components";
|
|
9
10
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
11
|
import { Trans } from "@lingui/react";
|
|
11
12
|
//#region packages/ui/Blocks/Header/components/UserMenu/index.tsx
|
|
12
|
-
const UserMenu = ({ user, onLogout }) => {
|
|
13
|
+
const UserMenu = ({ user, onLogout, hasUserMenu, userMenuOverride, withInitials, withChevron, withName, ignoreClickOutsideClosest }) => {
|
|
13
14
|
const [isDropdownOpen, toggleDropdown, closeDropdown] = useToggleAndClose(false);
|
|
14
15
|
const parentRef = useRef(null);
|
|
16
|
+
const theme = useTheme();
|
|
15
17
|
const { handleLogout } = useLogout({
|
|
16
18
|
closeDropdown,
|
|
17
19
|
onLogout
|
|
18
20
|
});
|
|
19
|
-
|
|
21
|
+
if (!user) return null;
|
|
22
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
20
23
|
ref: parentRef,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
/* @__PURE__ */
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
24
|
+
children: [/* @__PURE__ */ jsx(Avatar_default, {
|
|
25
|
+
user,
|
|
26
|
+
colorFront: withInitials ? th.color("white")({ theme }) : th.color("blue2")({ theme }),
|
|
27
|
+
colorBack: withInitials ? th.color("red1")({ theme }) : isDropdownOpen ? th.color("lightGray7")({ theme }) : th.color("neutral20")({ theme }),
|
|
28
|
+
hoverColorBack: withInitials ? "" : th.color("lightGray7")({ theme }),
|
|
29
|
+
size: 34,
|
|
30
|
+
onClick: hasUserMenu ? toggleDropdown : void 0,
|
|
31
|
+
withInitials,
|
|
32
|
+
withChevron,
|
|
33
|
+
withName
|
|
34
|
+
}), hasUserMenu && isDropdownOpen && /* @__PURE__ */ jsx(Popover, {
|
|
35
|
+
parentRef,
|
|
36
|
+
onClose: closeDropdown,
|
|
37
|
+
ignoreClickOutsideClosest,
|
|
38
|
+
children: userMenuOverride ?? /* @__PURE__ */ jsxs(DropdownContentWrap, { children: [
|
|
39
|
+
/* @__PURE__ */ jsx(UserInfoBlock, {
|
|
40
|
+
userName: `${user?.firstName ?? ""} ${user?.lastName ?? ""}`,
|
|
41
|
+
role: user?.roles?.[0] ?? ""
|
|
42
|
+
}),
|
|
43
|
+
/* @__PURE__ */ jsx(Line, {}),
|
|
44
|
+
/* @__PURE__ */ jsx(Button_default, {
|
|
45
|
+
onClick: handleLogout,
|
|
46
|
+
iconLeft: "logout",
|
|
47
|
+
variant: "ghost",
|
|
48
|
+
fullWidth: true,
|
|
49
|
+
children: /* @__PURE__ */ jsx(Trans, {
|
|
50
|
+
id: "logout",
|
|
51
|
+
message: "Logout"
|
|
52
|
+
})
|
|
43
53
|
})
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
})
|
|
54
|
+
] })
|
|
55
|
+
})]
|
|
56
|
+
});
|
|
47
57
|
};
|
|
48
58
|
//#endregion
|
|
49
59
|
export { UserMenu };
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
export declare const
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const Line: import("styled-components").StyledComponent<"div", import("@xstyled/system").Theme, {}, never>;
|
|
1
|
+
export declare const DropdownContentWrap: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
2
|
+
export declare const Line: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import styled$1, { th } from "@xstyled/styled-components";
|
|
2
2
|
//#region packages/ui/Blocks/Header/components/UserMenu/styles.ts
|
|
3
|
-
const UserWrap = styled$1.div`
|
|
4
|
-
display: flex;
|
|
5
|
-
flex-direction: row;
|
|
6
|
-
cursor: pointer;
|
|
7
|
-
align-items: center;
|
|
8
|
-
`;
|
|
9
3
|
const DropdownContentWrap = styled$1.div`
|
|
10
4
|
width: 295px;
|
|
11
5
|
background-color: white;
|
|
@@ -22,4 +16,4 @@ const Line = styled$1.div`
|
|
|
22
16
|
margin: 4px 0;
|
|
23
17
|
`;
|
|
24
18
|
//#endregion
|
|
25
|
-
export { DropdownContentWrap, Line
|
|
19
|
+
export { DropdownContentWrap, Line };
|
|
@@ -1,19 +1,32 @@
|
|
|
1
|
-
import { type FC } from 'react';
|
|
1
|
+
import { type FC, type ReactNode } from 'react';
|
|
2
2
|
import type { Brand, Variant } from '../../Elements/Logo';
|
|
3
3
|
import { type LanguageItem } from '../LanguageSwitch';
|
|
4
4
|
import type { MenuItemType } from '../SideMenu/types';
|
|
5
|
-
import type { User } from './types';
|
|
5
|
+
import type { HeaderVariant, User } from './types';
|
|
6
6
|
type Props = {
|
|
7
|
+
withInitials?: boolean;
|
|
8
|
+
withChevron?: boolean;
|
|
9
|
+
withName?: boolean;
|
|
7
10
|
homeLink: string;
|
|
8
11
|
isMobileMenuOpen?: boolean;
|
|
9
12
|
logo?: Brand;
|
|
10
13
|
logoVariant?: Variant;
|
|
14
|
+
logoVariantSmall?: Variant;
|
|
15
|
+
logoWidth?: string;
|
|
16
|
+
logoSmallWidth?: string;
|
|
11
17
|
logoSrc?: string;
|
|
12
18
|
logoSrcWidth?: string;
|
|
13
19
|
user?: User | null;
|
|
14
20
|
currentLanguage?: string;
|
|
15
21
|
hasUserMenu?: boolean;
|
|
22
|
+
leftMenuItems?: MenuItemType[];
|
|
16
23
|
rightMenuItems?: MenuItemType[];
|
|
24
|
+
rightSideStart?: ReactNode;
|
|
25
|
+
userMenuOverride?: ReactNode;
|
|
26
|
+
variant?: HeaderVariant;
|
|
27
|
+
height?: string;
|
|
28
|
+
smallLogoBreakpoint?: string;
|
|
29
|
+
mobileMenuBreakpoint?: string;
|
|
17
30
|
languageItems?: LanguageItem[];
|
|
18
31
|
showLanguageWithTitle?: boolean;
|
|
19
32
|
languageFlagWrapBackgroundColor?: string;
|
|
@@ -21,6 +34,7 @@ type Props = {
|
|
|
21
34
|
onChangeLanguage?: (language: string) => void;
|
|
22
35
|
onLogout?: () => void;
|
|
23
36
|
withLanguageSwitch?: boolean;
|
|
37
|
+
ignoreClickOutsideClosest?: string;
|
|
24
38
|
};
|
|
25
39
|
export declare const Header: FC<Props>;
|
|
26
40
|
export {};
|
|
@@ -1,45 +1,107 @@
|
|
|
1
1
|
import LanguageSwitch_default from "../LanguageSwitch/index.js";
|
|
2
|
-
import
|
|
3
|
-
import "../SideMenu/index.js";
|
|
2
|
+
import SideMenu_default from "../SideMenu/index.js";
|
|
4
3
|
import Logo_default from "../../Elements/Logo/index.js";
|
|
4
|
+
import { HamburgerToggle } from "./components/HamburgerToggle/index.js";
|
|
5
5
|
import { MenuItems } from "./components/MenuItems/index.js";
|
|
6
6
|
import { UserMenu } from "./components/UserMenu/index.js";
|
|
7
7
|
import { useChangeLanguage } from "./hooks/useChangeLanguage.js";
|
|
8
8
|
import { languageItems } from "./utils/languageItems.js";
|
|
9
|
-
import { Container, LanguageWrapper, LeftSide, RightSide } from "./styles.js";
|
|
10
|
-
import {
|
|
9
|
+
import { Container, HamburgerWrap, HeaderRoot, LanguageWrapper, LeftMenuDesktop, LeftSide, LogoWrap, LogoWrapSmall, MobileSideMenuPortal, RightSide } from "./styles.js";
|
|
10
|
+
import { useCallback, useState } from "react";
|
|
11
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
11
12
|
import { Link } from "react-router-dom";
|
|
12
13
|
//#region packages/ui/Blocks/Header/index.tsx
|
|
13
|
-
const Header = ({ isMobileMenuOpen, homeLink, logo, logoVariant, logoSrc, logoSrcWidth, user, currentLanguage, hasUserMenu = false, rightMenuItems, showLanguageWithTitle, languageFlagWrapBackgroundColor, languageItems: languageItems$1 = languageItems, withLanguageSwitch = true, onOpenMobileSideMenu, onChangeLanguage, onLogout }) => {
|
|
14
|
+
const Header = ({ isMobileMenuOpen, homeLink, logo, logoVariant, logoVariantSmall, logoWidth = "145px", logoSmallWidth = "45px", logoSrc, logoSrcWidth, user, currentLanguage, hasUserMenu = false, leftMenuItems, rightMenuItems, rightSideStart, userMenuOverride, withInitials = false, withChevron = false, withName = false, variant = "light", height = "60px", smallLogoBreakpoint = "1801px", mobileMenuBreakpoint = "1024px", showLanguageWithTitle, languageFlagWrapBackgroundColor, languageItems: languageItems$1 = languageItems, withLanguageSwitch = true, ignoreClickOutsideClosest, onOpenMobileSideMenu, onChangeLanguage, onLogout }) => {
|
|
14
15
|
const { handleChangeLanguage } = useChangeLanguage({ onChangeLanguage });
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
16
|
+
const hasLeftMenu = Array.isArray(leftMenuItems) && leftMenuItems.length > 0;
|
|
17
|
+
const hasInternalMobileMenu = hasLeftMenu && !onOpenMobileSideMenu;
|
|
18
|
+
const [isInternalLeftMenuOpen, setIsInternalLeftMenuOpen] = useState(false);
|
|
19
|
+
const toggleInternal = useCallback(() => {
|
|
20
|
+
setIsInternalLeftMenuOpen((s) => !s);
|
|
21
|
+
}, []);
|
|
22
|
+
const closeInternal = useCallback(() => {
|
|
23
|
+
setIsInternalLeftMenuOpen(false);
|
|
24
|
+
}, []);
|
|
25
|
+
const hamburgerOnClick = onOpenMobileSideMenu ?? (hasInternalMobileMenu ? toggleInternal : void 0);
|
|
26
|
+
return /* @__PURE__ */ jsxs(HeaderRoot, { children: [/* @__PURE__ */ jsxs(Container, {
|
|
27
|
+
$variant: variant,
|
|
28
|
+
$height: height,
|
|
29
|
+
children: [/* @__PURE__ */ jsxs(LeftSide, { children: [
|
|
30
|
+
!!hamburgerOnClick && /* @__PURE__ */ jsx(HamburgerWrap, {
|
|
31
|
+
$mobileMenuBreakpoint: mobileMenuBreakpoint,
|
|
32
|
+
children: /* @__PURE__ */ jsx(HamburgerToggle, {
|
|
33
|
+
isOpen: onOpenMobileSideMenu ? isMobileMenuOpen : isInternalLeftMenuOpen,
|
|
34
|
+
onClick: hamburgerOnClick,
|
|
35
|
+
variant
|
|
36
|
+
})
|
|
37
|
+
}),
|
|
38
|
+
/* @__PURE__ */ jsx(Link, {
|
|
39
|
+
to: homeLink,
|
|
40
|
+
children: logoSrc ? /* @__PURE__ */ jsx("img", {
|
|
41
|
+
src: logoSrc,
|
|
42
|
+
alt: "logo",
|
|
43
|
+
width: logoSrcWidth
|
|
44
|
+
}) : logo && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(LogoWrap, {
|
|
45
|
+
$hasSmallVariant: !!logoVariantSmall,
|
|
46
|
+
$smallLogoBreakpoint: smallLogoBreakpoint,
|
|
47
|
+
children: /* @__PURE__ */ jsx(Logo_default, {
|
|
48
|
+
brand: logo,
|
|
49
|
+
variant: logoVariant,
|
|
50
|
+
width: logoWidth
|
|
51
|
+
})
|
|
52
|
+
}), logoVariantSmall && /* @__PURE__ */ jsx(LogoWrapSmall, {
|
|
53
|
+
$smallLogoBreakpoint: smallLogoBreakpoint,
|
|
54
|
+
children: /* @__PURE__ */ jsx(Logo_default, {
|
|
55
|
+
brand: logo,
|
|
56
|
+
variant: logoVariantSmall,
|
|
57
|
+
width: logoSmallWidth
|
|
58
|
+
})
|
|
59
|
+
})] })
|
|
60
|
+
}),
|
|
61
|
+
hasLeftMenu && /* @__PURE__ */ jsx(LeftMenuDesktop, {
|
|
62
|
+
$mobileMenuBreakpoint: mobileMenuBreakpoint,
|
|
63
|
+
children: /* @__PURE__ */ jsx(MenuItems, {
|
|
64
|
+
items: leftMenuItems,
|
|
65
|
+
variant
|
|
66
|
+
})
|
|
67
|
+
})
|
|
68
|
+
] }), /* @__PURE__ */ jsxs(RightSide, { children: [
|
|
69
|
+
rightSideStart,
|
|
70
|
+
!!rightMenuItems?.length && /* @__PURE__ */ jsx(MenuItems, {
|
|
71
|
+
items: rightMenuItems,
|
|
72
|
+
variant
|
|
73
|
+
}),
|
|
74
|
+
withLanguageSwitch && /* @__PURE__ */ jsx(LanguageWrapper, { children: /* @__PURE__ */ jsx(LanguageSwitch_default, {
|
|
75
|
+
languageItems: languageItems$1,
|
|
76
|
+
withTitle: showLanguageWithTitle,
|
|
77
|
+
onLanguageChange: handleChangeLanguage,
|
|
78
|
+
activeLanguage: currentLanguage,
|
|
79
|
+
languageFlagWrapBackgroundColor
|
|
80
|
+
}) }),
|
|
81
|
+
/* @__PURE__ */ jsx(UserMenu, {
|
|
82
|
+
ignoreClickOutsideClosest,
|
|
83
|
+
user,
|
|
84
|
+
onLogout,
|
|
85
|
+
hasUserMenu,
|
|
86
|
+
userMenuOverride,
|
|
87
|
+
withInitials,
|
|
88
|
+
withChevron,
|
|
89
|
+
withName
|
|
90
|
+
})
|
|
91
|
+
] })]
|
|
92
|
+
}), hasInternalMobileMenu && /* @__PURE__ */ jsx(MobileSideMenuPortal, {
|
|
93
|
+
$mobileMenuBreakpoint: mobileMenuBreakpoint,
|
|
94
|
+
$headerHeight: height,
|
|
95
|
+
isLeftMenuOpen: isInternalLeftMenuOpen,
|
|
96
|
+
children: /* @__PURE__ */ jsx(SideMenu_default, {
|
|
97
|
+
menuItems: leftMenuItems,
|
|
98
|
+
isCompact: false,
|
|
99
|
+
isLeftMenuOpen: isInternalLeftMenuOpen,
|
|
100
|
+
isAlwaysVisible: false,
|
|
101
|
+
onCloseLeftMenu: closeInternal,
|
|
102
|
+
variant: "dark"
|
|
28
103
|
})
|
|
29
|
-
})] })
|
|
30
|
-
Array.isArray(rightMenuItems) && rightMenuItems?.length > 0 && /* @__PURE__ */ jsx(MenuItems, { items: rightMenuItems }),
|
|
31
|
-
withLanguageSwitch && /* @__PURE__ */ jsx(LanguageWrapper, { children: /* @__PURE__ */ jsx(LanguageSwitch_default, {
|
|
32
|
-
languageItems: languageItems$1,
|
|
33
|
-
withTitle: showLanguageWithTitle,
|
|
34
|
-
onLanguageChange: handleChangeLanguage,
|
|
35
|
-
activeLanguage: currentLanguage,
|
|
36
|
-
languageFlagWrapBackgroundColor
|
|
37
|
-
}) }),
|
|
38
|
-
hasUserMenu && /* @__PURE__ */ jsx(UserMenu, {
|
|
39
|
-
user,
|
|
40
|
-
onLogout
|
|
41
|
-
})
|
|
42
|
-
] })] });
|
|
104
|
+
})] });
|
|
43
105
|
};
|
|
44
106
|
//#endregion
|
|
45
107
|
export { Header };
|
|
@@ -2,16 +2,29 @@ import type { FC } from 'react';
|
|
|
2
2
|
declare const meta: {
|
|
3
3
|
title: string;
|
|
4
4
|
component: FC<{
|
|
5
|
+
withInitials?: boolean;
|
|
6
|
+
withChevron?: boolean;
|
|
7
|
+
withName?: boolean;
|
|
5
8
|
homeLink: string;
|
|
6
9
|
isMobileMenuOpen?: boolean;
|
|
7
10
|
logo?: import("../../..").Brand;
|
|
8
11
|
logoVariant?: import("../../..").Variant;
|
|
12
|
+
logoVariantSmall?: import("../../..").Variant;
|
|
13
|
+
logoWidth?: string;
|
|
14
|
+
logoSmallWidth?: string;
|
|
9
15
|
logoSrc?: string;
|
|
10
16
|
logoSrcWidth?: string;
|
|
11
17
|
user?: import("../types").User | null;
|
|
12
18
|
currentLanguage?: string;
|
|
13
19
|
hasUserMenu?: boolean;
|
|
20
|
+
leftMenuItems?: import("../../SideMenu").MenuItemType[];
|
|
14
21
|
rightMenuItems?: import("../../SideMenu").MenuItemType[];
|
|
22
|
+
rightSideStart?: import("react").ReactNode;
|
|
23
|
+
userMenuOverride?: import("react").ReactNode;
|
|
24
|
+
variant?: import("../types").HeaderVariant;
|
|
25
|
+
height?: string;
|
|
26
|
+
smallLogoBreakpoint?: string;
|
|
27
|
+
mobileMenuBreakpoint?: string;
|
|
15
28
|
languageItems?: import("../../LanguageSwitch").LanguageItem[];
|
|
16
29
|
showLanguageWithTitle?: boolean;
|
|
17
30
|
languageFlagWrapBackgroundColor?: string;
|
|
@@ -19,6 +32,7 @@ declare const meta: {
|
|
|
19
32
|
onChangeLanguage?: (language: string) => void;
|
|
20
33
|
onLogout?: () => void;
|
|
21
34
|
withLanguageSwitch?: boolean;
|
|
35
|
+
ignoreClickOutsideClosest?: string;
|
|
22
36
|
}>;
|
|
23
37
|
tags: string[];
|
|
24
38
|
argTypes: {};
|
|
@@ -27,6 +41,11 @@ export default meta;
|
|
|
27
41
|
export declare const HeaderBasic: FC;
|
|
28
42
|
export declare const HeaderWithUser: FC;
|
|
29
43
|
export declare const HeaderWithRightLinks: FC;
|
|
44
|
+
export declare const HeaderWithLeftMenuAndSubmenus: FC;
|
|
30
45
|
export declare const HeaderWithLanguageSwitch: FC;
|
|
31
46
|
export declare const HeaderWithCustomLogo: FC;
|
|
32
47
|
export declare const HeaderWithAllItems: FC;
|
|
48
|
+
export declare const HeaderWithLeftNestedMenuVariant: FC;
|
|
49
|
+
export declare const HeaderMailwiseWhiteBgLogo: FC;
|
|
50
|
+
export declare const HeaderResponsiveHamburger: FC;
|
|
51
|
+
export declare const HeaderDarkVariantWithCustomSlots: FC;
|
|
@@ -1,4 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const
|
|
4
|
-
|
|
1
|
+
import type { HeaderVariant } from './types';
|
|
2
|
+
export declare const HeaderRoot: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
3
|
+
export declare const Container: import("styled-components").StyledComponent<"header", import("@xstyled/styled-components").Theme, {
|
|
4
|
+
$variant?: HeaderVariant;
|
|
5
|
+
$height?: string;
|
|
6
|
+
}, never>;
|
|
7
|
+
export declare const LeftSide: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
8
|
+
export declare const LogoWrap: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {
|
|
9
|
+
$hasSmallVariant?: boolean;
|
|
10
|
+
$smallLogoBreakpoint?: string;
|
|
11
|
+
}, never>;
|
|
12
|
+
export declare const LogoWrapSmall: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {
|
|
13
|
+
$smallLogoBreakpoint?: string;
|
|
14
|
+
}, never>;
|
|
15
|
+
export declare const LeftMenuDesktop: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {
|
|
16
|
+
$mobileMenuBreakpoint?: string;
|
|
17
|
+
}, never>;
|
|
18
|
+
export declare const HamburgerWrap: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {
|
|
19
|
+
$mobileMenuBreakpoint?: string;
|
|
20
|
+
}, never>;
|
|
21
|
+
export declare const LanguageWrapper: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
22
|
+
export declare const RightSide: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
23
|
+
export declare const MobileSideMenuPortal: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {
|
|
24
|
+
$mobileMenuBreakpoint?: string;
|
|
25
|
+
$headerHeight?: string;
|
|
26
|
+
isLeftMenuOpen?: boolean;
|
|
27
|
+
}, never>;
|
|
@@ -1,14 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import styled$1, { th } from "@xstyled/styled-components";
|
|
1
|
+
import styled$1, { css, th } from "@xstyled/styled-components";
|
|
3
2
|
//#region packages/ui/Blocks/Header/styles.ts
|
|
3
|
+
const HeaderRoot = styled$1.div`
|
|
4
|
+
position: relative;
|
|
5
|
+
width: 100%;
|
|
6
|
+
`;
|
|
4
7
|
const Container = styled$1.header`
|
|
5
8
|
width: 100%;
|
|
6
9
|
display: flex;
|
|
7
10
|
justify-content: space-between;
|
|
8
11
|
align-items: center;
|
|
9
12
|
padding: 0 8px;
|
|
10
|
-
height: ${
|
|
13
|
+
height: ${({ $height }) => $height};
|
|
11
14
|
border-bottom: 1px solid ${th.color("lightGray7")};
|
|
15
|
+
${({ $variant }) => $variant === "dark" && css`
|
|
16
|
+
background-color: ${th.color("blue3")};
|
|
17
|
+
color: white;
|
|
18
|
+
`}
|
|
12
19
|
|
|
13
20
|
@media (min-width: 768px) {
|
|
14
21
|
padding: 0 20px;
|
|
@@ -16,6 +23,42 @@ const Container = styled$1.header`
|
|
|
16
23
|
`;
|
|
17
24
|
const LeftSide = styled$1.div`
|
|
18
25
|
display: flex;
|
|
26
|
+
gap: 4px;
|
|
27
|
+
align-items: center;
|
|
28
|
+
|
|
29
|
+
@media (min-width: 768px) {
|
|
30
|
+
gap: 20px;
|
|
31
|
+
}
|
|
32
|
+
`;
|
|
33
|
+
const LogoWrap = styled$1.div`
|
|
34
|
+
display: ${({ $hasSmallVariant }) => $hasSmallVariant ? "none" : "block"};
|
|
35
|
+
|
|
36
|
+
@media (min-width: ${({ $smallLogoBreakpoint }) => $smallLogoBreakpoint}) {
|
|
37
|
+
display: block;
|
|
38
|
+
}
|
|
39
|
+
`;
|
|
40
|
+
const LogoWrapSmall = styled$1.div`
|
|
41
|
+
display: block;
|
|
42
|
+
|
|
43
|
+
@media (min-width: ${({ $smallLogoBreakpoint }) => $smallLogoBreakpoint}) {
|
|
44
|
+
display: none;
|
|
45
|
+
}
|
|
46
|
+
`;
|
|
47
|
+
const LeftMenuDesktop = styled$1.div`
|
|
48
|
+
display: none;
|
|
49
|
+
align-self: stretch;
|
|
50
|
+
|
|
51
|
+
@media (min-width: ${({ $mobileMenuBreakpoint }) => $mobileMenuBreakpoint}) {
|
|
52
|
+
display: block;
|
|
53
|
+
}
|
|
54
|
+
`;
|
|
55
|
+
const HamburgerWrap = styled$1.div`
|
|
56
|
+
display: flex;
|
|
57
|
+
align-items: center;
|
|
58
|
+
|
|
59
|
+
@media (min-width: ${({ $mobileMenuBreakpoint }) => $mobileMenuBreakpoint}) {
|
|
60
|
+
display: none;
|
|
61
|
+
}
|
|
19
62
|
`;
|
|
20
63
|
const LanguageWrapper = styled$1.div`
|
|
21
64
|
display: flex;
|
|
@@ -30,5 +73,17 @@ const RightSide = styled$1.div`
|
|
|
30
73
|
gap: 20px;
|
|
31
74
|
}
|
|
32
75
|
`;
|
|
76
|
+
const MobileSideMenuPortal = styled$1.div`
|
|
77
|
+
position: ${({ isLeftMenuOpen }) => isLeftMenuOpen ? "fixed" : "none"};
|
|
78
|
+
top: ${({ $headerHeight }) => $headerHeight};
|
|
79
|
+
left: 0;
|
|
80
|
+
right: 0;
|
|
81
|
+
bottom: 0;
|
|
82
|
+
z-index: 90;
|
|
83
|
+
|
|
84
|
+
@media (min-width: ${({ $mobileMenuBreakpoint }) => $mobileMenuBreakpoint}) {
|
|
85
|
+
display: none;
|
|
86
|
+
}
|
|
87
|
+
`;
|
|
33
88
|
//#endregion
|
|
34
|
-
export { Container, LanguageWrapper, LeftSide, RightSide };
|
|
89
|
+
export { Container, HamburgerWrap, HeaderRoot, LanguageWrapper, LeftMenuDesktop, LeftSide, LogoWrap, LogoWrapSmall, MobileSideMenuPortal, RightSide };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare const Container: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
1
|
+
export declare const Container: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {
|
|
2
2
|
isDisabled?: boolean;
|
|
3
3
|
hasRemove?: boolean;
|
|
4
4
|
}, never>;
|
|
5
|
-
export declare const HiddenInput: import("styled-components").StyledComponent<"input", import("@xstyled/
|
|
5
|
+
export declare const HiddenInput: import("styled-components").StyledComponent<"input", import("@xstyled/styled-components").Theme, {}, never>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const Container: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
1
|
+
export declare const Container: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {
|
|
2
2
|
isDisabled?: boolean;
|
|
3
3
|
}, never>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export declare const Container: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
2
|
-
export declare const Image: import("styled-components").StyledComponent<"img", import("@xstyled/
|
|
1
|
+
export declare const Container: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
2
|
+
export declare const Image: import("styled-components").StyledComponent<"img", import("@xstyled/styled-components").Theme, {
|
|
3
3
|
selected?: boolean;
|
|
4
4
|
}, never>;
|
|
5
|
-
export declare const ImageWrapper: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
5
|
+
export declare const ImageWrapper: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {
|
|
6
6
|
visible: boolean;
|
|
7
7
|
hasImageRemove: boolean;
|
|
8
8
|
}, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const Container: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
1
|
+
export declare const Container: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare const ImageListContainer: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
2
|
-
export declare const Control: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
1
|
+
export declare const ImageListContainer: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
2
|
+
export declare const Control: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {
|
|
3
3
|
isLeft?: boolean;
|
|
4
4
|
isDisabled: boolean;
|
|
5
5
|
hasRemove?: boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export declare const StyledFlag: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
2
|
-
export declare const LanguageSwitchWrap: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
3
|
-
export declare const LanguageFlagWrap: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
1
|
+
export declare const StyledFlag: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
2
|
+
export declare const LanguageSwitchWrap: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
3
|
+
export declare const LanguageFlagWrap: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {
|
|
4
4
|
backgroundColor?: string;
|
|
5
5
|
withTitle?: boolean;
|
|
6
6
|
}, never>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const Container: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
2
|
-
export declare const Image: import("styled-components").StyledComponent<"img", import("@xstyled/
|
|
3
|
-
export declare const ButtonContainer: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
4
|
-
export declare const Description: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
1
|
+
export declare const Container: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
2
|
+
export declare const Image: import("styled-components").StyledComponent<"img", import("@xstyled/styled-components").Theme, {}, never>;
|
|
3
|
+
export declare const ButtonContainer: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
4
|
+
export declare const Description: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
|
-
export declare const SocialLinksWrapper: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
3
|
-
export declare const SocialLinksBody: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
4
|
-
export declare const LinkTo: import("styled-components").StyledComponent<"a", import("@xstyled/
|
|
5
|
-
export declare const SocialFooter: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
2
|
+
export declare const SocialLinksWrapper: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
3
|
+
export declare const SocialLinksBody: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
4
|
+
export declare const LinkTo: import("styled-components").StyledComponent<"a", import("@xstyled/styled-components").Theme, {}, never>;
|
|
5
|
+
export declare const SocialFooter: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
6
6
|
export declare const SocialLinks: FC;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BackgroundImages } from './types';
|
|
2
|
-
export declare const Wrapper: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
2
|
+
export declare const Wrapper: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {
|
|
3
3
|
backgroundImage?: BackgroundImages;
|
|
4
4
|
}, never>;
|
|
5
|
-
export declare const LanguageBox: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
6
|
-
export declare const CardBodyWithLanguage: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
7
|
-
export declare const MailTo: import("styled-components").StyledComponent<"a", import("@xstyled/
|
|
8
|
-
export declare const LogoWrapper: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
9
|
-
export declare const MainLogo: import("styled-components").StyledComponent<import("react").FC<import("../../Elements/Logo/types").LogoProps>, import("@xstyled/
|
|
10
|
-
export declare const Version: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
5
|
+
export declare const LanguageBox: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
6
|
+
export declare const CardBodyWithLanguage: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
7
|
+
export declare const MailTo: import("styled-components").StyledComponent<"a", import("@xstyled/styled-components").Theme, {}, never>;
|
|
8
|
+
export declare const LogoWrapper: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
9
|
+
export declare const MainLogo: import("styled-components").StyledComponent<import("react").FC<import("../../Elements/Logo/types").LogoProps>, import("@xstyled/styled-components").Theme, {}, never>;
|
|
10
|
+
export declare const Version: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type RefObject } from 'react';
|
|
2
2
|
import { type UseClickOutsideProps } from '../types';
|
|
3
|
-
export declare const useClickOutside: ({ onClose, parentRef, ignoreClickOutside, closeCurrent, allowScrollbarClick }: UseClickOutsideProps) => RefObject<HTMLDivElement>;
|
|
3
|
+
export declare const useClickOutside: ({ onClose, parentRef, ignoreClickOutside, closeCurrent, allowScrollbarClick, ignoreClickOutsideClosest }: UseClickOutsideProps) => RefObject<HTMLDivElement>;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { useCallback, useEffect, useRef } from "react";
|
|
2
2
|
//#region packages/ui/Blocks/Modal/hooks/useClickOutside.ts
|
|
3
|
-
const useClickOutside = ({ onClose, parentRef, ignoreClickOutside = false, closeCurrent = false, allowScrollbarClick = false }) => {
|
|
3
|
+
const useClickOutside = ({ onClose, parentRef, ignoreClickOutside = false, closeCurrent = false, allowScrollbarClick = false, ignoreClickOutsideClosest }) => {
|
|
4
4
|
const elementRef = useRef(null);
|
|
5
5
|
const onCloseModal = !ignoreClickOutside ? onClose : void 0;
|
|
6
6
|
const handleClickOutside = useCallback((e) => {
|
|
7
|
-
|
|
7
|
+
const ignoreEvent = allowScrollbarClick && e.offsetX > e.target.clientWidth;
|
|
8
|
+
if (ignoreClickOutsideClosest && e.target?.closest(ignoreClickOutsideClosest) !== null) return;
|
|
9
|
+
if (!ignoreEvent && elementRef.current && !elementRef.current.contains(e.target) && !parentRef?.current?.contains(e.target)) closeCurrent ? e.target.contains(elementRef.current) && onCloseModal?.() : onCloseModal?.();
|
|
8
10
|
}, [
|
|
9
11
|
allowScrollbarClick,
|
|
10
12
|
parentRef,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type Variant } from './types';
|
|
2
|
-
export declare const DialogOverlay: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
2
|
+
export declare const DialogOverlay: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {
|
|
3
3
|
backgroundColor?: string;
|
|
4
4
|
}, never>;
|
|
5
|
-
export declare const DialogWindow: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
5
|
+
export declare const DialogWindow: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {
|
|
6
6
|
$backgroundColor?: string;
|
|
7
7
|
$minWidth?: string;
|
|
8
8
|
$minHeight?: string;
|
|
@@ -11,18 +11,18 @@ export declare const DialogWindow: import("styled-components").StyledComponent<"
|
|
|
11
11
|
variant: Variant;
|
|
12
12
|
top?: string;
|
|
13
13
|
}, never>;
|
|
14
|
-
export declare const HeaderContainer: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
14
|
+
export declare const HeaderContainer: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {
|
|
15
15
|
variant: Variant;
|
|
16
16
|
}, never>;
|
|
17
|
-
export declare const ContentContainer: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
17
|
+
export declare const ContentContainer: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {
|
|
18
18
|
variant: Variant;
|
|
19
19
|
}, never>;
|
|
20
|
-
export declare const TitleContainer: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
21
|
-
export declare const ButtonsContainer: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
20
|
+
export declare const TitleContainer: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|
|
21
|
+
export declare const ButtonsContainer: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {
|
|
22
22
|
hasSpaceBetween: boolean;
|
|
23
23
|
}, never>;
|
|
24
|
-
export declare const ButtonsWrapper: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
24
|
+
export declare const ButtonsWrapper: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {
|
|
25
25
|
hasExtraAction: boolean;
|
|
26
26
|
hasBothButtons: boolean;
|
|
27
27
|
}, never>;
|
|
28
|
-
export declare const CloseButton: import("styled-components").StyledComponent<"div", import("@xstyled/
|
|
28
|
+
export declare const CloseButton: import("styled-components").StyledComponent<"div", import("@xstyled/styled-components").Theme, {}, never>;
|