@mailstep/design-system 0.8.20-beta.2 → 0.8.20-beta.4

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mailstep/design-system",
3
- "version": "0.8.20-beta.2",
3
+ "version": "0.8.20-beta.4",
4
4
  "license": "ISC",
5
5
  "type": "module",
6
6
  "main": "./ui/index.js",
@@ -1,15 +1,20 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- import { useCallback, useMemo, useState } from 'react';
2
+ import { useCallback, useMemo, useRef, useState } from 'react';
3
+ import DropdownMenu from '../../Elements/DropdownMenu';
3
4
  import Icon from '../../Elements/Icon/Icon';
4
- import { useClickOutside } from '../Modal/hooks/useClickOutside';
5
- import { StyledFlag, LanguageFlagWrap, LanguageSwitchWrap, StyledDropdownMenu } from './styles';
5
+ import Popover from '../Popover';
6
+ import { StyledFlag, LanguageFlagWrap, LanguageSwitchWrap } from './styles';
7
+ var placementMap = {
8
+ left: 'bottom-start',
9
+ right: 'bottom-end'
10
+ };
6
11
  var LanguageSwitch = function (_a) {
7
12
  var activeLanguage = _a.activeLanguage, onLanguageChange = _a.onLanguageChange, languageItems = _a.languageItems, _b = _a.placement, placement = _b === void 0 ? 'right' : _b, withTitle = _a.withTitle, languageFlagWrapBackgroundColor = _a.languageFlagWrapBackgroundColor;
8
13
  var _c = useState(false), flagDropdownVisible = _c[0], setFlagDropdownVisible = _c[1];
14
+ var flagWrapRef = useRef(null);
9
15
  var onClose = useCallback(function () {
10
16
  setFlagDropdownVisible(false);
11
17
  }, []);
12
- var flagMenuRef = useClickOutside({ onClose: onClose });
13
18
  var handleFlagClick = useCallback(function () {
14
19
  setFlagDropdownVisible(!flagDropdownVisible);
15
20
  }, [flagDropdownVisible]);
@@ -30,6 +35,6 @@ var LanguageSwitch = function (_a) {
30
35
  }, [filteredLanguages, languageToggle]);
31
36
  if (!activeLanguageObj || !languageItems)
32
37
  return null;
33
- return (_jsxs(LanguageSwitchWrap, { ref: flagMenuRef, children: [_jsxs(LanguageFlagWrap, { onClick: handleFlagClick, backgroundColor: languageFlagWrapBackgroundColor, withTitle: withTitle, children: [_jsxs(StyledFlag, { children: [activeLanguageObj.icon, withTitle && activeLanguageObj.title] }), _jsx(Icon, { icon: "chevronDown", size: "10px" })] }), _jsx(StyledDropdownMenu, { showMenu: flagDropdownVisible, items: formattedLanguages, placement: placement })] }));
38
+ return (_jsxs(LanguageSwitchWrap, { children: [_jsxs(LanguageFlagWrap, { ref: flagWrapRef, onClick: handleFlagClick, backgroundColor: languageFlagWrapBackgroundColor, withTitle: withTitle, children: [_jsxs(StyledFlag, { children: [activeLanguageObj.icon, withTitle && activeLanguageObj.title] }), _jsx(Icon, { icon: "chevronDown", size: "10px" })] }), flagDropdownVisible && (_jsx(Popover, { parentRef: flagWrapRef, onClose: onClose, placement: placementMap[placement], children: _jsx(DropdownMenu, { showMenu: true, items: formattedLanguages }) }))] }));
34
39
  };
35
40
  export default LanguageSwitch;
@@ -1,9 +1,4 @@
1
- import { Placement } from './types';
2
-
3
1
  export declare const StyledFlag: import('styled-components').StyledComponent<"div", import('@xstyled/system').Theme, {}, never>;
4
- 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>) => import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>), import('@xstyled/system').Theme, {
5
- placement: Placement;
6
- }, never>;
7
2
  export declare const LanguageSwitchWrap: import('styled-components').StyledComponent<"div", import('@xstyled/system').Theme, {}, never>;
8
3
  export declare const LanguageFlagWrap: import('styled-components').StyledComponent<"div", import('@xstyled/system').Theme, {
9
4
  backgroundColor?: string | undefined;
@@ -2,22 +2,14 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
2
2
  if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
3
3
  return cooked;
4
4
  };
5
- import DropdownMenu from '../../Elements/DropdownMenu';
6
5
  import styled from '@xstyled/styled-components';
7
6
  export var StyledFlag = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n cursor: pointer;\n font-size: 16px;\n display: flex;\n gap: 6px;\n align-items: center;\n"], ["\n cursor: pointer;\n font-size: 16px;\n display: flex;\n gap: 6px;\n align-items: center;\n"])));
8
- export var StyledDropdownMenu = styled(DropdownMenu)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: absolute;\n top: 30px;\n right: -5px;\n\n width: max-content;\n @media (min-width: 1024px) {\n ", "\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 ", "\n }\n }\n"], ["\n position: absolute;\n top: 30px;\n right: -5px;\n\n width: max-content;\n @media (min-width: 1024px) {\n ", "\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 ", "\n }\n }\n"])), function (_a) {
9
- var placement = _a.placement;
10
- return "".concat(placement, ": -5px");
11
- }, function (_a) {
12
- var placement = _a.placement;
13
- return "".concat(placement, ": 15px");
14
- });
15
- export var LanguageSwitchWrap = styled.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n position: relative;\n display: flex;\n align-items: center;\n width: fit-content;\n"], ["\n position: relative;\n display: flex;\n align-items: center;\n width: fit-content;\n"])));
16
- export var LanguageFlagWrap = styled.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n cursor: pointer;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ", ";\n padding: 6px;\n border-radius: 10px;\n background: ", ";\n\n @media (min-width: 768px) {\n padding: 7px 12px;\n }\n"], ["\n cursor: pointer;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ", ";\n padding: 6px;\n border-radius: 10px;\n background: ", ";\n\n @media (min-width: 768px) {\n padding: 7px 12px;\n }\n"])), function (_a) {
7
+ export var LanguageSwitchWrap = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: relative;\n display: flex;\n align-items: center;\n width: fit-content;\n"], ["\n position: relative;\n display: flex;\n align-items: center;\n width: fit-content;\n"])));
8
+ export var LanguageFlagWrap = styled.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n cursor: pointer;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ", ";\n padding: 6px;\n border-radius: 10px;\n background: ", ";\n\n @media (min-width: 768px) {\n padding: 7px 12px;\n }\n"], ["\n cursor: pointer;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: ", ";\n padding: 6px;\n border-radius: 10px;\n background: ", ";\n\n @media (min-width: 768px) {\n padding: 7px 12px;\n }\n"])), function (_a) {
17
9
  var withTitle = _a.withTitle;
18
10
  return (withTitle ? '16px' : '8px');
19
11
  }, function (_a) {
20
12
  var backgroundColor = _a.backgroundColor;
21
13
  return backgroundColor || 'white';
22
14
  });
23
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
15
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -4,7 +4,7 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
4
4
  };
5
5
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  import styled, { css } from '@xstyled/styled-components';
7
- var StyledListItem = styled.li(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding: 8px 10px;\n font-size: 14px;\n color: typoPrimary;\n font-weight: normal;\n\n :hover {\n background-color: bgLightGray1;\n cursor: pointer;\n }\n\n ", ";\n"], ["\n padding: 8px 10px;\n font-size: 14px;\n color: typoPrimary;\n font-weight: normal;\n\n :hover {\n background-color: bgLightGray1;\n cursor: pointer;\n }\n\n ", ";\n"])), function (props) {
7
+ var StyledListItem = styled.li(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding: 8px 10px;\n font-size: 14px;\n color: typoPrimary;\n font-weight: normal;\n display: flex;\n\n :hover {\n background-color: bgLightGray1;\n cursor: pointer;\n }\n\n ", ";\n"], ["\n padding: 8px 10px;\n font-size: 14px;\n color: typoPrimary;\n font-weight: normal;\n display: flex;\n\n :hover {\n background-color: bgLightGray1;\n cursor: pointer;\n }\n\n ", ";\n"])), function (props) {
8
8
  return props.hasSeparator && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border-top: slim;\n border-color: lightGray2;\n "], ["\n border-top: slim;\n border-color: lightGray2;\n "])));
9
9
  });
10
10
  var IconWrap = styled.span(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n margin-right: 10px;\n"], ["\n margin-right: 10px;\n"])));