@hh.ru/magritte-ui-menu 1.0.17 → 1.0.18

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/Item.js CHANGED
@@ -15,7 +15,7 @@ import { MenuContext } from './context.js';
15
15
  import { useSubmenuSafeZone } from './useSubmenuSafeZone.js';
16
16
  import { isSwitchComponent } from '@hh.ru/magritte-ui-switch';
17
17
  import { Text } from '@hh.ru/magritte-ui-typography';
18
- import { s as styles } from './menu-BBIgZPUo.js';
18
+ import { s as styles } from './menu-lqJoVt2v.js';
19
19
  import '@hh.ru/magritte-common-use-disabled';
20
20
  import '@hh.ru/magritte-common-func-utils';
21
21
  import './safeZone.js';
@@ -126,7 +126,7 @@ const MenuItem = forwardRef(({ children, className, disabled = false, icon, subi
126
126
  }
127
127
  }
128
128
  }
129
- }, ref: itemRefCallback, role: "menuitem", tabIndex: disabled ? -1 : 0, children: [icon && (jsx("div", { className: styles.itemIcon, children: jsx(IconDefaultPropsContext, { props: DEFAULT_ICON_PROPS[style], children: icon }) })), jsxs("div", { className: styles.itemText, children: [jsx(Text, { ellipsis: true, style: TEXT_STYLE[style], typography: isMobile ? 'label-2-regular' : 'label-3-regular', children: children }), subtitle && (jsx(Text, { ellipsis: true, style: SECONDARY_TEXT_STYLE[style], typography: "label-3-regular", children: subtitle }))] }), tag && (jsx("div", { className: styles.itemTag, children: cloneElement(tag, { onSurface: hasHover }) })), selected && (jsx("div", { className: styles.itemRightContent, children: jsx(CheckOutlinedSize24, { initialColor: "secondary" }) })), hasSwitch && (jsx("div", { className: styles.itemRightContent, onClick: (event) => event.stopPropagation(), children: rightContent })), hasSubmenu && (jsxs("div", { className: styles.itemRightContent, children: [jsx(Text, { ellipsis: true, style: SECONDARY_TEXT_STYLE[style], typography: "label-3-regular", children: rightContent }), jsx(ChevronRightOutlinedSize24, { initialColor: "secondary" })] }))] }) }), hasSubmenu && (jsxs(MenuContext.Provider, { value: { ...contextValue, submenuAllowed: false }, children: [jsx(Drop, { ...DROP_PROPS, activatorRef: itemRef, lockPlacement: true, onClose: () => setSubmenuVisible(false), placement: SUBMENU_DROP_PLACEMENT, ref: submenuRef, visible: visible && submenuVisible, children: subitems }), mobileSubmenuContainer &&
129
+ }, ref: itemRefCallback, role: "menuitem", tabIndex: disabled ? -1 : 0, children: [icon && (jsx("div", { className: styles.itemIcon, children: jsx(IconDefaultPropsContext, { props: DEFAULT_ICON_PROPS[style], children: icon }) })), jsxs("div", { className: styles.itemText, children: [jsx(Text, { ellipsis: true, style: TEXT_STYLE[style], typography: "label-2-regular", children: children }), subtitle && (jsx(Text, { ellipsis: true, style: SECONDARY_TEXT_STYLE[style], typography: "label-3-regular", children: subtitle }))] }), tag && (jsx("div", { className: styles.itemTag, children: cloneElement(tag, { onSurface: hasHover }) })), selected && (jsx("div", { className: styles.itemRightContent, children: jsx(CheckOutlinedSize24, { initialColor: "secondary" }) })), hasSwitch && (jsx("div", { className: styles.itemRightContent, onClick: (event) => event.stopPropagation(), children: rightContent })), hasSubmenu && (jsxs("div", { className: styles.itemRightContent, children: [jsx(Text, { ellipsis: true, style: SECONDARY_TEXT_STYLE[style], typography: "label-3-regular", children: rightContent }), jsx(ChevronRightOutlinedSize24, { initialColor: "secondary" })] }))] }) }), hasSubmenu && (jsxs(MenuContext.Provider, { value: { ...contextValue, submenuAllowed: false }, children: [jsx(Drop, { ...DROP_PROPS, activatorRef: itemRef, lockPlacement: true, onClose: () => setSubmenuVisible(false), placement: SUBMENU_DROP_PLACEMENT, ref: submenuRef, visible: visible && submenuVisible, children: subitems }), mobileSubmenuContainer &&
130
130
  createPortal(submenuVisible ? subitems : null, mobileSubmenuContainer), mobileTitleContainer && createPortal(submenuVisible ? children : null, mobileTitleContainer)] }))] }));
131
131
  });
132
132
  MenuItem.displayName = 'MenuItem';
package/Item.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Item.js","sources":["src/Item.tsx"],"sourcesContent":["import { cloneElement, forwardRef, useContext, useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport classnames from 'classnames';\n\nimport { keyboardKeys, keyboardMatches } from '@hh.ru/magritte-common-keyboard';\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { type DropProps, Drop } from '@hh.ru/magritte-ui-drop';\nimport { type IconProps, IconDefaultPropsContext } from '@hh.ru/magritte-ui-icon';\nimport { CheckOutlinedSize24, ChevronRightOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';\nimport { DisabledWrapper } from '@hh.ru/magritte-ui-menu/DisabledWrapper';\nimport { DROP_PROPS } from '@hh.ru/magritte-ui-menu/Drop';\nimport { MenuContext } from '@hh.ru/magritte-ui-menu/context';\nimport { type MenuItemProps } from '@hh.ru/magritte-ui-menu/types';\nimport { useSubmenuSafeZone } from '@hh.ru/magritte-ui-menu/useSubmenuSafeZone';\nimport { isSwitchComponent } from '@hh.ru/magritte-ui-switch';\nimport { type TagProps } from '@hh.ru/magritte-ui-tag';\nimport { type TextStyle, Text } from '@hh.ru/magritte-ui-typography';\n\nimport styles from './menu.less';\n\nconst DEFAULT_ICON_PROPS: Record<NonNullable<MenuItemProps['style']>, Partial<IconProps>> = {\n neutral: {},\n negative: { initialColor: 'negative' },\n};\n\nconst TEXT_STYLE: Record<NonNullable<MenuItemProps['style']>, TextStyle> = {\n neutral: 'primary',\n negative: 'negative',\n};\n\nconst SECONDARY_TEXT_STYLE: Record<NonNullable<MenuItemProps['style']>, TextStyle> = {\n neutral: 'secondary',\n negative: 'negative-secondary',\n};\n\nconst SUBMENU_DROP_PLACEMENT: DropProps['placement'] = [\n 'right-top',\n 'right-bottom',\n 'right-center',\n 'left-top',\n 'left-bottom',\n 'left-center',\n];\n\nexport const MenuItem = forwardRef<HTMLDivElement, MenuItemProps>(\n (\n {\n children,\n className,\n disabled = false,\n icon,\n subitems,\n selected,\n style = 'neutral',\n rightContent,\n subtitle,\n tag,\n ...props\n },\n ref\n ) => {\n const { isMobile } = useBreakpoint();\n const contextValue = useContext(MenuContext);\n const {\n dropContainer,\n itemWithVisibleSubmenu,\n mobileSubmenuContainer,\n mobileTitleContainer,\n setItemWithVisibleSubmenu,\n submenuAllowed,\n visible,\n } = contextValue;\n const itemRef = useRef<HTMLDivElement>(null);\n const itemRefCallback = useMultipleRefs(itemRef, ref);\n const submenuRef = useRef<HTMLDivElement>(null);\n const [hasHover, setHover] = useState(false);\n const [submenuVisible, setSubmenuVisible] = useState(false);\n\n const hasSwitch = !selected && isSwitchComponent(rightContent);\n const hasSubmenu = !selected && !isSwitchComponent(rightContent) && submenuAllowed && subitems;\n\n const { trackPointer, cancelPendingClose } = useSubmenuSafeZone({\n active: submenuVisible,\n dropContainer: dropContainer ?? null,\n itemRef,\n submenuRef,\n onClose: () => setSubmenuVisible(false),\n });\n\n const showSubmenu = () => {\n cancelPendingClose();\n setSubmenuVisible(true);\n setItemWithVisibleSubmenu?.(itemRef.current);\n };\n\n useEffect(() => {\n if (itemWithVisibleSubmenu !== itemRef.current) {\n cancelPendingClose();\n setSubmenuVisible(false);\n }\n }, [itemWithVisibleSubmenu, cancelPendingClose]);\n\n return (\n <>\n <DisabledWrapper disabled={disabled}>\n <div\n {...props}\n aria-disabled={disabled}\n className={classnames(\n className,\n { [styles.disabled]: disabled },\n styles.dropContentMargin,\n styles.item,\n styles[style]\n )}\n onClick={(event) => {\n if (disabled) {\n return;\n }\n props.onClick?.(event);\n if (hasSwitch) {\n rightContent.props.onClick?.();\n }\n if (hasSubmenu) {\n showSubmenu();\n }\n }}\n onKeyDown={(event) => {\n if (disabled) {\n return;\n }\n props.onKeyDown?.(event);\n if (keyboardMatches(event, [keyboardKeys.Enter, keyboardKeys.Space])) {\n event.preventDefault();\n if (hasSwitch) {\n rightContent.props.onClick?.();\n } else if (hasSubmenu) {\n showSubmenu();\n } else {\n (event.target as HTMLElement).click();\n }\n }\n }}\n onMouseEnter={(event) => {\n if (!disabled) {\n props.onMouseEnter?.(event);\n if (!isMobile) {\n setHover(true);\n trackPointer({ x: event.clientX, y: event.clientY });\n\n if (hasSubmenu && !submenuVisible) {\n showSubmenu();\n }\n }\n }\n }}\n onMouseLeave={(event) => {\n if (!disabled) {\n props.onMouseLeave?.(event);\n }\n if (!isMobile) {\n setHover(false);\n }\n }}\n onMouseMove={(event) => {\n if (!disabled) {\n props.onMouseMove?.(event);\n if (!isMobile) {\n setHover(true);\n trackPointer({ x: event.clientX, y: event.clientY });\n\n if (hasSubmenu && !submenuVisible) {\n showSubmenu();\n }\n }\n }\n }}\n ref={itemRefCallback}\n role=\"menuitem\"\n tabIndex={disabled ? -1 : 0}\n >\n {icon && (\n <div className={styles.itemIcon}>\n <IconDefaultPropsContext props={DEFAULT_ICON_PROPS[style]}>\n {icon}\n </IconDefaultPropsContext>\n </div>\n )}\n <div className={styles.itemText}>\n <Text\n ellipsis\n style={TEXT_STYLE[style]}\n typography={isMobile ? 'label-2-regular' : 'label-3-regular'}\n >\n {children}\n </Text>\n {subtitle && (\n <Text ellipsis style={SECONDARY_TEXT_STYLE[style]} typography=\"label-3-regular\">\n {subtitle}\n </Text>\n )}\n </div>\n {tag && (\n <div className={styles.itemTag}>\n {cloneElement(tag as React.ReactElement<TagProps>, { onSurface: hasHover })}\n </div>\n )}\n {selected && (\n <div className={styles.itemRightContent}>\n <CheckOutlinedSize24 initialColor=\"secondary\" />\n </div>\n )}\n {hasSwitch && (\n <div className={styles.itemRightContent} onClick={(event) => event.stopPropagation()}>\n {rightContent}\n </div>\n )}\n {hasSubmenu && (\n <div className={styles.itemRightContent}>\n <Text ellipsis style={SECONDARY_TEXT_STYLE[style]} typography=\"label-3-regular\">\n {rightContent}\n </Text>\n <ChevronRightOutlinedSize24 initialColor=\"secondary\" />\n </div>\n )}\n </div>\n </DisabledWrapper>\n {hasSubmenu && (\n <MenuContext.Provider value={{ ...contextValue, submenuAllowed: false }}>\n <Drop\n {...DROP_PROPS}\n activatorRef={itemRef}\n lockPlacement\n onClose={() => setSubmenuVisible(false)}\n placement={SUBMENU_DROP_PLACEMENT}\n ref={submenuRef}\n visible={visible && submenuVisible}\n >\n {subitems}\n </Drop>\n {mobileSubmenuContainer &&\n createPortal(submenuVisible ? subitems : null, mobileSubmenuContainer)}\n {mobileTitleContainer && createPortal(submenuVisible ? children : null, mobileTitleContainer)}\n </MenuContext.Provider>\n )}\n </>\n );\n }\n);\n\nMenuItem.displayName = 'MenuItem';\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"Item.js","sources":["src/Item.tsx"],"sourcesContent":["import { cloneElement, forwardRef, useContext, useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport classnames from 'classnames';\n\nimport { keyboardKeys, keyboardMatches } from '@hh.ru/magritte-common-keyboard';\nimport { useMultipleRefs } from '@hh.ru/magritte-common-use-multiple-refs';\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { type DropProps, Drop } from '@hh.ru/magritte-ui-drop';\nimport { type IconProps, IconDefaultPropsContext } from '@hh.ru/magritte-ui-icon';\nimport { CheckOutlinedSize24, ChevronRightOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';\nimport { DisabledWrapper } from '@hh.ru/magritte-ui-menu/DisabledWrapper';\nimport { DROP_PROPS } from '@hh.ru/magritte-ui-menu/Drop';\nimport { MenuContext } from '@hh.ru/magritte-ui-menu/context';\nimport { type MenuItemProps } from '@hh.ru/magritte-ui-menu/types';\nimport { useSubmenuSafeZone } from '@hh.ru/magritte-ui-menu/useSubmenuSafeZone';\nimport { isSwitchComponent } from '@hh.ru/magritte-ui-switch';\nimport { type TagProps } from '@hh.ru/magritte-ui-tag';\nimport { type TextStyle, Text } from '@hh.ru/magritte-ui-typography';\n\nimport styles from './menu.less';\n\nconst DEFAULT_ICON_PROPS: Record<NonNullable<MenuItemProps['style']>, Partial<IconProps>> = {\n neutral: {},\n negative: { initialColor: 'negative' },\n};\n\nconst TEXT_STYLE: Record<NonNullable<MenuItemProps['style']>, TextStyle> = {\n neutral: 'primary',\n negative: 'negative',\n};\n\nconst SECONDARY_TEXT_STYLE: Record<NonNullable<MenuItemProps['style']>, TextStyle> = {\n neutral: 'secondary',\n negative: 'negative-secondary',\n};\n\nconst SUBMENU_DROP_PLACEMENT: DropProps['placement'] = [\n 'right-top',\n 'right-bottom',\n 'right-center',\n 'left-top',\n 'left-bottom',\n 'left-center',\n];\n\nexport const MenuItem = forwardRef<HTMLDivElement, MenuItemProps>(\n (\n {\n children,\n className,\n disabled = false,\n icon,\n subitems,\n selected,\n style = 'neutral',\n rightContent,\n subtitle,\n tag,\n ...props\n },\n ref\n ) => {\n const { isMobile } = useBreakpoint();\n const contextValue = useContext(MenuContext);\n const {\n dropContainer,\n itemWithVisibleSubmenu,\n mobileSubmenuContainer,\n mobileTitleContainer,\n setItemWithVisibleSubmenu,\n submenuAllowed,\n visible,\n } = contextValue;\n const itemRef = useRef<HTMLDivElement>(null);\n const itemRefCallback = useMultipleRefs(itemRef, ref);\n const submenuRef = useRef<HTMLDivElement>(null);\n const [hasHover, setHover] = useState(false);\n const [submenuVisible, setSubmenuVisible] = useState(false);\n\n const hasSwitch = !selected && isSwitchComponent(rightContent);\n const hasSubmenu = !selected && !isSwitchComponent(rightContent) && submenuAllowed && subitems;\n\n const { trackPointer, cancelPendingClose } = useSubmenuSafeZone({\n active: submenuVisible,\n dropContainer: dropContainer ?? null,\n itemRef,\n submenuRef,\n onClose: () => setSubmenuVisible(false),\n });\n\n const showSubmenu = () => {\n cancelPendingClose();\n setSubmenuVisible(true);\n setItemWithVisibleSubmenu?.(itemRef.current);\n };\n\n useEffect(() => {\n if (itemWithVisibleSubmenu !== itemRef.current) {\n cancelPendingClose();\n setSubmenuVisible(false);\n }\n }, [itemWithVisibleSubmenu, cancelPendingClose]);\n\n return (\n <>\n <DisabledWrapper disabled={disabled}>\n <div\n {...props}\n aria-disabled={disabled}\n className={classnames(\n className,\n { [styles.disabled]: disabled },\n styles.dropContentMargin,\n styles.item,\n styles[style]\n )}\n onClick={(event) => {\n if (disabled) {\n return;\n }\n props.onClick?.(event);\n if (hasSwitch) {\n rightContent.props.onClick?.();\n }\n if (hasSubmenu) {\n showSubmenu();\n }\n }}\n onKeyDown={(event) => {\n if (disabled) {\n return;\n }\n props.onKeyDown?.(event);\n if (keyboardMatches(event, [keyboardKeys.Enter, keyboardKeys.Space])) {\n event.preventDefault();\n if (hasSwitch) {\n rightContent.props.onClick?.();\n } else if (hasSubmenu) {\n showSubmenu();\n } else {\n (event.target as HTMLElement).click();\n }\n }\n }}\n onMouseEnter={(event) => {\n if (!disabled) {\n props.onMouseEnter?.(event);\n if (!isMobile) {\n setHover(true);\n trackPointer({ x: event.clientX, y: event.clientY });\n\n if (hasSubmenu && !submenuVisible) {\n showSubmenu();\n }\n }\n }\n }}\n onMouseLeave={(event) => {\n if (!disabled) {\n props.onMouseLeave?.(event);\n }\n if (!isMobile) {\n setHover(false);\n }\n }}\n onMouseMove={(event) => {\n if (!disabled) {\n props.onMouseMove?.(event);\n if (!isMobile) {\n setHover(true);\n trackPointer({ x: event.clientX, y: event.clientY });\n\n if (hasSubmenu && !submenuVisible) {\n showSubmenu();\n }\n }\n }\n }}\n ref={itemRefCallback}\n role=\"menuitem\"\n tabIndex={disabled ? -1 : 0}\n >\n {icon && (\n <div className={styles.itemIcon}>\n <IconDefaultPropsContext props={DEFAULT_ICON_PROPS[style]}>\n {icon}\n </IconDefaultPropsContext>\n </div>\n )}\n <div className={styles.itemText}>\n <Text ellipsis style={TEXT_STYLE[style]} typography=\"label-2-regular\">\n {children}\n </Text>\n {subtitle && (\n <Text ellipsis style={SECONDARY_TEXT_STYLE[style]} typography=\"label-3-regular\">\n {subtitle}\n </Text>\n )}\n </div>\n {tag && (\n <div className={styles.itemTag}>\n {cloneElement(tag as React.ReactElement<TagProps>, { onSurface: hasHover })}\n </div>\n )}\n {selected && (\n <div className={styles.itemRightContent}>\n <CheckOutlinedSize24 initialColor=\"secondary\" />\n </div>\n )}\n {hasSwitch && (\n <div className={styles.itemRightContent} onClick={(event) => event.stopPropagation()}>\n {rightContent}\n </div>\n )}\n {hasSubmenu && (\n <div className={styles.itemRightContent}>\n <Text ellipsis style={SECONDARY_TEXT_STYLE[style]} typography=\"label-3-regular\">\n {rightContent}\n </Text>\n <ChevronRightOutlinedSize24 initialColor=\"secondary\" />\n </div>\n )}\n </div>\n </DisabledWrapper>\n {hasSubmenu && (\n <MenuContext.Provider value={{ ...contextValue, submenuAllowed: false }}>\n <Drop\n {...DROP_PROPS}\n activatorRef={itemRef}\n lockPlacement\n onClose={() => setSubmenuVisible(false)}\n placement={SUBMENU_DROP_PLACEMENT}\n ref={submenuRef}\n visible={visible && submenuVisible}\n >\n {subitems}\n </Drop>\n {mobileSubmenuContainer &&\n createPortal(submenuVisible ? subitems : null, mobileSubmenuContainer)}\n {mobileTitleContainer && createPortal(submenuVisible ? children : null, mobileTitleContainer)}\n </MenuContext.Provider>\n )}\n </>\n );\n }\n);\n\nMenuItem.displayName = 'MenuItem';\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
package/Menu.js CHANGED
@@ -13,7 +13,7 @@ import { MenuQuickActions } from './QuickActions.js';
13
13
  import { MenuSectionHeader } from './SectionHeader.js';
14
14
  import { MenuContext } from './context.js';
15
15
  import { NavBar } from '@hh.ru/magritte-ui-nav-bar';
16
- import { s as styles } from './menu-BBIgZPUo.js';
16
+ import { s as styles } from './menu-lqJoVt2v.js';
17
17
  import '@hh.ru/magritte-ui-bottom-sheet';
18
18
  import '@hh.ru/magritte-ui-divider';
19
19
  import '@hh.ru/magritte-ui-drop';
package/QuickAction.js CHANGED
@@ -4,7 +4,7 @@ import { forwardRef } from 'react';
4
4
  import classnames from 'classnames';
5
5
  import { DisabledWrapper } from './DisabledWrapper.js';
6
6
  import { Text } from '@hh.ru/magritte-ui-typography';
7
- import { s as styles } from './menu-BBIgZPUo.js';
7
+ import { s as styles } from './menu-lqJoVt2v.js';
8
8
  import '@hh.ru/magritte-common-use-disabled';
9
9
  import '@hh.ru/magritte-ui-icon';
10
10
 
package/QuickActions.js CHANGED
@@ -2,7 +2,7 @@ import './index.css';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef } from 'react';
4
4
  import classnames from 'classnames';
5
- import { s as styles } from './menu-BBIgZPUo.js';
5
+ import { s as styles } from './menu-lqJoVt2v.js';
6
6
 
7
7
  const MenuQuickActions = forwardRef(({ children, className, ...props }, ref) => {
8
8
  return (jsx("div", { ...props, className: classnames(className, styles.quickActions), ref: ref, children: children }));
package/SectionHeader.js CHANGED
@@ -3,7 +3,7 @@ import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef } from 'react';
4
4
  import { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';
5
5
  import { SectionHeader } from '@hh.ru/magritte-ui-section-header';
6
- import { s as styles } from './menu-BBIgZPUo.js';
6
+ import { s as styles } from './menu-lqJoVt2v.js';
7
7
 
8
8
  const MenuSectionHeader = forwardRef((props, ref) => {
9
9
  const { isMobile } = useBreakpoint();
package/index.css CHANGED
@@ -19,158 +19,158 @@
19
19
  --magritte-color-background-state-negative-secondary-hovered-v25-0-0:#3D2622;
20
20
  --magritte-color-background-state-negative-secondary-pressed-v25-0-0:#3D2622;
21
21
  }
22
- .magritte-disabled___ZuG-J_1-0-17{
22
+ .magritte-disabled___ZuG-J_1-0-18{
23
23
  pointer-events:none;
24
24
  }
25
25
  @media (min-width: 1020px){
26
- body.magritte-old-layout .magritte-drop-content-margin___q01ll_1-0-17{
26
+ body.magritte-old-layout .magritte-drop-content-margin___q01ll_1-0-18{
27
27
  margin:0 12px;
28
28
  }
29
29
  }
30
30
  @media (min-width: 1024px){
31
- body:not(.magritte-old-layout) .magritte-drop-content-margin___q01ll_1-0-17{
31
+ body:not(.magritte-old-layout) .magritte-drop-content-margin___q01ll_1-0-18{
32
32
  margin:0 12px;
33
33
  }
34
34
  }
35
- .magritte-item___HyDAw_1-0-17{
35
+ .magritte-item___HyDAw_1-0-18{
36
36
  display:flex;
37
37
  gap:12px;
38
38
  align-items:center;
39
39
  padding:12px 16px;
40
40
  }
41
41
  @media (min-width: 1020px){
42
- body.magritte-old-layout .magritte-item___HyDAw_1-0-17{
42
+ body.magritte-old-layout .magritte-item___HyDAw_1-0-18{
43
43
  cursor:pointer;
44
44
  border-radius:12px;
45
45
  padding:10px 12px;
46
46
  }
47
- body.magritte-old-layout .magritte-item___HyDAw_1-0-17.focus-visible{
47
+ body.magritte-old-layout .magritte-item___HyDAw_1-0-18.focus-visible{
48
48
  outline:4px solid var(--magritte-color-stroke-state-focused-accessible-v25-0-0);
49
49
  }
50
50
  }
51
51
  @media (min-width: 1024px){
52
- body:not(.magritte-old-layout) .magritte-item___HyDAw_1-0-17{
52
+ body:not(.magritte-old-layout) .magritte-item___HyDAw_1-0-18{
53
53
  cursor:pointer;
54
54
  border-radius:12px;
55
55
  padding:10px 12px;
56
56
  }
57
- body:not(.magritte-old-layout) .magritte-item___HyDAw_1-0-17.focus-visible{
57
+ body:not(.magritte-old-layout) .magritte-item___HyDAw_1-0-18.focus-visible{
58
58
  outline:4px solid var(--magritte-color-stroke-state-focused-accessible-v25-0-0);
59
59
  }
60
60
  }
61
- .magritte-neutral___WyGeQ_1-0-17:active{
61
+ .magritte-neutral___WyGeQ_1-0-18:active{
62
62
  background-color:var(--magritte-color-background-state-secondary-pressed-v25-0-0);
63
63
  }
64
64
  @media (min-width: 1020px){
65
- body.magritte-old-layout .magritte-neutral___WyGeQ_1-0-17:hover:not(:active){
65
+ body.magritte-old-layout .magritte-neutral___WyGeQ_1-0-18:hover:not(:active){
66
66
  background-color:var(--magritte-color-background-state-secondary-hovered-v25-0-0);
67
67
  }
68
68
  }
69
69
  @media (min-width: 1024px){
70
- body:not(.magritte-old-layout) .magritte-neutral___WyGeQ_1-0-17:hover:not(:active){
70
+ body:not(.magritte-old-layout) .magritte-neutral___WyGeQ_1-0-18:hover:not(:active){
71
71
  background-color:var(--magritte-color-background-state-secondary-hovered-v25-0-0);
72
72
  }
73
73
  }
74
- .magritte-negative___F7a0c_1-0-17:active{
74
+ .magritte-negative___F7a0c_1-0-18:active{
75
75
  background-color:var(--magritte-color-background-state-negative-secondary-pressed-v25-0-0);
76
76
  }
77
77
  @media (min-width: 1020px){
78
- body.magritte-old-layout .magritte-negative___F7a0c_1-0-17:hover:not(:active){
78
+ body.magritte-old-layout .magritte-negative___F7a0c_1-0-18:hover:not(:active){
79
79
  background-color:var(--magritte-color-background-state-negative-secondary-hovered-v25-0-0);
80
80
  }
81
81
  }
82
82
  @media (min-width: 1024px){
83
- body:not(.magritte-old-layout) .magritte-negative___F7a0c_1-0-17:hover:not(:active){
83
+ body:not(.magritte-old-layout) .magritte-negative___F7a0c_1-0-18:hover:not(:active){
84
84
  background-color:var(--magritte-color-background-state-negative-secondary-hovered-v25-0-0);
85
85
  }
86
86
  }
87
- .magritte-item-icon___yCv9l_1-0-17{
87
+ .magritte-item-icon___yCv9l_1-0-18{
88
88
  flex:0 0 auto;
89
89
  padding:4px 0;
90
90
  }
91
91
  @media (min-width: 1020px){
92
- body.magritte-old-layout .magritte-item-icon___yCv9l_1-0-17{
92
+ body.magritte-old-layout .magritte-item-icon___yCv9l_1-0-18{
93
93
  padding:0;
94
94
  }
95
95
  }
96
96
  @media (min-width: 1024px){
97
- body:not(.magritte-old-layout) .magritte-item-icon___yCv9l_1-0-17{
97
+ body:not(.magritte-old-layout) .magritte-item-icon___yCv9l_1-0-18{
98
98
  padding:0;
99
99
  }
100
100
  }
101
- .magritte-item-text___GL3A5_1-0-17{
101
+ .magritte-item-text___GL3A5_1-0-18{
102
102
  flex:1 1 auto;
103
103
  min-width:0;
104
104
  padding:4px 0;
105
105
  }
106
106
  @media (min-width: 1020px){
107
- body.magritte-old-layout .magritte-item-text___GL3A5_1-0-17{
107
+ body.magritte-old-layout .magritte-item-text___GL3A5_1-0-18{
108
108
  padding:0;
109
109
  }
110
110
  }
111
111
  @media (min-width: 1024px){
112
- body:not(.magritte-old-layout) .magritte-item-text___GL3A5_1-0-17{
112
+ body:not(.magritte-old-layout) .magritte-item-text___GL3A5_1-0-18{
113
113
  padding:0;
114
114
  }
115
115
  }
116
- .magritte-item-tag___KX5wL_1-0-17{
116
+ .magritte-item-tag___KX5wL_1-0-18{
117
117
  flex:0 0 auto;
118
118
  padding:4px 0;
119
119
  }
120
120
  @media (min-width: 1020px){
121
- body.magritte-old-layout .magritte-item-tag___KX5wL_1-0-17{
121
+ body.magritte-old-layout .magritte-item-tag___KX5wL_1-0-18{
122
122
  padding:0;
123
123
  }
124
124
  }
125
125
  @media (min-width: 1024px){
126
- body:not(.magritte-old-layout) .magritte-item-tag___KX5wL_1-0-17{
126
+ body:not(.magritte-old-layout) .magritte-item-tag___KX5wL_1-0-18{
127
127
  padding:0;
128
128
  }
129
129
  }
130
- .magritte-item-right-content___U2hc1_1-0-17{
130
+ .magritte-item-right-content___U2hc1_1-0-18{
131
131
  flex:0 1 auto;
132
132
  min-width:0;
133
133
  display:flex;
134
134
  align-items:center;
135
135
  gap:8px;
136
136
  }
137
- .magritte-mobile-menu-container___zlY08_1-0-17{
137
+ .magritte-mobile-menu-container___zlY08_1-0-18{
138
138
  position:relative;
139
139
  overflow:hidden;
140
140
  }
141
- .magritte-mobile-main-menu-container___fOW3d_1-0-17{
141
+ .magritte-mobile-main-menu-container___fOW3d_1-0-18{
142
142
  position:relative;
143
143
  }
144
- .magritte-mobile-submenu-container___od1Ev_1-0-17{
144
+ .magritte-mobile-submenu-container___od1Ev_1-0-18{
145
145
  position:absolute;
146
146
  inset:0 -100% auto 100%;
147
147
  }
148
148
  @media (prefers-reduced-motion: no-preference){
149
- .magritte-mobile-main-menu-container___fOW3d_1-0-17,
150
- .magritte-mobile-submenu-container___od1Ev_1-0-17{
149
+ .magritte-mobile-main-menu-container___fOW3d_1-0-18,
150
+ .magritte-mobile-submenu-container___od1Ev_1-0-18{
151
151
  transition:transform var(--magritte-semantic-animation-time-m-duration-v25-0-0) var(--magritte-semantic-animation-ease-base-timing-function-v25-0-0);
152
152
  }
153
153
  }
154
- .magritte-mobile-menu-container-slide___HXiEx_1-0-17 .magritte-mobile-main-menu-container___fOW3d_1-0-17,
155
- .magritte-mobile-menu-container-slide___HXiEx_1-0-17 .magritte-mobile-submenu-container___od1Ev_1-0-17{
154
+ .magritte-mobile-menu-container-slide___HXiEx_1-0-18 .magritte-mobile-main-menu-container___fOW3d_1-0-18,
155
+ .magritte-mobile-menu-container-slide___HXiEx_1-0-18 .magritte-mobile-submenu-container___od1Ev_1-0-18{
156
156
  transform:translateX(-100%);
157
157
  }
158
- .magritte-quick-actions___HvUJ3_1-0-17{
158
+ .magritte-quick-actions___HvUJ3_1-0-18{
159
159
  display:flex;
160
160
  gap:4px;
161
161
  margin:0 16px 4px;
162
162
  }
163
163
  @media (min-width: 1020px){
164
- body.magritte-old-layout .magritte-quick-actions___HvUJ3_1-0-17{
164
+ body.magritte-old-layout .magritte-quick-actions___HvUJ3_1-0-18{
165
165
  margin:0 12px 4px;
166
166
  }
167
167
  }
168
168
  @media (min-width: 1024px){
169
- body:not(.magritte-old-layout) .magritte-quick-actions___HvUJ3_1-0-17{
169
+ body:not(.magritte-old-layout) .magritte-quick-actions___HvUJ3_1-0-18{
170
170
  margin:0 12px 4px;
171
171
  }
172
172
  }
173
- .magritte-quick-action___1K5Ip_1-0-17{
173
+ .magritte-quick-action___1K5Ip_1-0-18{
174
174
  display:flex;
175
175
  flex-direction:column;
176
176
  align-items:center;
@@ -181,31 +181,31 @@
181
181
  min-width:0;
182
182
  padding:14px 12px;
183
183
  }
184
- .magritte-quick-action___1K5Ip_1-0-17:active{
184
+ .magritte-quick-action___1K5Ip_1-0-18:active{
185
185
  background-color:var(--magritte-color-background-state-secondary-pressed-v25-0-0);
186
186
  }
187
187
  @media (min-width: 1020px){
188
- body.magritte-old-layout .magritte-quick-action___1K5Ip_1-0-17{
188
+ body.magritte-old-layout .magritte-quick-action___1K5Ip_1-0-18{
189
189
  cursor:pointer;
190
190
  }
191
- body.magritte-old-layout .magritte-quick-action___1K5Ip_1-0-17:hover:not(:active){
191
+ body.magritte-old-layout .magritte-quick-action___1K5Ip_1-0-18:hover:not(:active){
192
192
  background-color:var(--magritte-color-background-state-secondary-hovered-v25-0-0);
193
193
  }
194
- body.magritte-old-layout .magritte-quick-action___1K5Ip_1-0-17.focus-visible{
194
+ body.magritte-old-layout .magritte-quick-action___1K5Ip_1-0-18.focus-visible{
195
195
  outline:4px solid var(--magritte-color-stroke-state-focused-accessible-v25-0-0);
196
196
  }
197
197
  }
198
198
  @media (min-width: 1024px){
199
- body:not(.magritte-old-layout) .magritte-quick-action___1K5Ip_1-0-17{
199
+ body:not(.magritte-old-layout) .magritte-quick-action___1K5Ip_1-0-18{
200
200
  cursor:pointer;
201
201
  }
202
- body:not(.magritte-old-layout) .magritte-quick-action___1K5Ip_1-0-17:hover:not(:active){
202
+ body:not(.magritte-old-layout) .magritte-quick-action___1K5Ip_1-0-18:hover:not(:active){
203
203
  background-color:var(--magritte-color-background-state-secondary-hovered-v25-0-0);
204
204
  }
205
- body:not(.magritte-old-layout) .magritte-quick-action___1K5Ip_1-0-17.focus-visible{
205
+ body:not(.magritte-old-layout) .magritte-quick-action___1K5Ip_1-0-18.focus-visible{
206
206
  outline:4px solid var(--magritte-color-stroke-state-focused-accessible-v25-0-0);
207
207
  }
208
208
  }
209
- .magritte-quick-action-text___diFW5_1-0-17{
209
+ .magritte-quick-action-text___diFW5_1-0-18{
210
210
  max-width:100%;
211
211
  }
package/index.js CHANGED
@@ -24,7 +24,7 @@ import './useSubmenuSafeZone.js';
24
24
  import '@hh.ru/magritte-common-func-utils';
25
25
  import './safeZone.js';
26
26
  import '@hh.ru/magritte-ui-switch';
27
- import './menu-BBIgZPUo.js';
27
+ import './menu-lqJoVt2v.js';
28
28
  import './QuickAction.js';
29
29
  import './QuickActions.js';
30
30
  import './SectionHeader.js';
@@ -0,0 +1,5 @@
1
+ import './index.css';
2
+ var styles = {"disabled":"magritte-disabled___ZuG-J_1-0-18","drop-content-margin":"magritte-drop-content-margin___q01ll_1-0-18","dropContentMargin":"magritte-drop-content-margin___q01ll_1-0-18","item":"magritte-item___HyDAw_1-0-18","neutral":"magritte-neutral___WyGeQ_1-0-18","negative":"magritte-negative___F7a0c_1-0-18","item-icon":"magritte-item-icon___yCv9l_1-0-18","itemIcon":"magritte-item-icon___yCv9l_1-0-18","item-text":"magritte-item-text___GL3A5_1-0-18","itemText":"magritte-item-text___GL3A5_1-0-18","item-tag":"magritte-item-tag___KX5wL_1-0-18","itemTag":"magritte-item-tag___KX5wL_1-0-18","item-right-content":"magritte-item-right-content___U2hc1_1-0-18","itemRightContent":"magritte-item-right-content___U2hc1_1-0-18","mobile-menu-container":"magritte-mobile-menu-container___zlY08_1-0-18","mobileMenuContainer":"magritte-mobile-menu-container___zlY08_1-0-18","mobile-main-menu-container":"magritte-mobile-main-menu-container___fOW3d_1-0-18","mobileMainMenuContainer":"magritte-mobile-main-menu-container___fOW3d_1-0-18","mobile-submenu-container":"magritte-mobile-submenu-container___od1Ev_1-0-18","mobileSubmenuContainer":"magritte-mobile-submenu-container___od1Ev_1-0-18","mobile-menu-container-slide":"magritte-mobile-menu-container-slide___HXiEx_1-0-18","mobileMenuContainerSlide":"magritte-mobile-menu-container-slide___HXiEx_1-0-18","quick-actions":"magritte-quick-actions___HvUJ3_1-0-18","quickActions":"magritte-quick-actions___HvUJ3_1-0-18","quick-action":"magritte-quick-action___1K5Ip_1-0-18","quickAction":"magritte-quick-action___1K5Ip_1-0-18","quick-action-text":"magritte-quick-action-text___diFW5_1-0-18","quickActionText":"magritte-quick-action-text___diFW5_1-0-18"};
3
+
4
+ export { styles as s };
5
+ //# sourceMappingURL=menu-lqJoVt2v.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-lqJoVt2v.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hh.ru/magritte-ui-menu",
3
- "version": "1.0.17",
3
+ "version": "1.0.18",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "sideEffects": [
@@ -24,7 +24,7 @@
24
24
  "@hh.ru/magritte-common-use-disabled": "1.0.15",
25
25
  "@hh.ru/magritte-common-use-multiple-refs": "1.1.11",
26
26
  "@hh.ru/magritte-design-tokens": "25.0.0",
27
- "@hh.ru/magritte-ui-bottom-sheet": "9.4.20",
27
+ "@hh.ru/magritte-ui-bottom-sheet": "9.4.21",
28
28
  "@hh.ru/magritte-ui-breakpoint": "6.1.1",
29
29
  "@hh.ru/magritte-ui-divider": "3.2.6",
30
30
  "@hh.ru/magritte-ui-drop": "12.3.43",
@@ -44,5 +44,5 @@
44
44
  "publishConfig": {
45
45
  "access": "public"
46
46
  },
47
- "gitHead": "d2f817b284c3d3865462ffa386ed532ef6010269"
47
+ "gitHead": "66ff92f76337f5eee98fe0890a41eedbff6dc148"
48
48
  }
package/menu-BBIgZPUo.js DELETED
@@ -1,5 +0,0 @@
1
- import './index.css';
2
- var styles = {"disabled":"magritte-disabled___ZuG-J_1-0-17","drop-content-margin":"magritte-drop-content-margin___q01ll_1-0-17","dropContentMargin":"magritte-drop-content-margin___q01ll_1-0-17","item":"magritte-item___HyDAw_1-0-17","neutral":"magritte-neutral___WyGeQ_1-0-17","negative":"magritte-negative___F7a0c_1-0-17","item-icon":"magritte-item-icon___yCv9l_1-0-17","itemIcon":"magritte-item-icon___yCv9l_1-0-17","item-text":"magritte-item-text___GL3A5_1-0-17","itemText":"magritte-item-text___GL3A5_1-0-17","item-tag":"magritte-item-tag___KX5wL_1-0-17","itemTag":"magritte-item-tag___KX5wL_1-0-17","item-right-content":"magritte-item-right-content___U2hc1_1-0-17","itemRightContent":"magritte-item-right-content___U2hc1_1-0-17","mobile-menu-container":"magritte-mobile-menu-container___zlY08_1-0-17","mobileMenuContainer":"magritte-mobile-menu-container___zlY08_1-0-17","mobile-main-menu-container":"magritte-mobile-main-menu-container___fOW3d_1-0-17","mobileMainMenuContainer":"magritte-mobile-main-menu-container___fOW3d_1-0-17","mobile-submenu-container":"magritte-mobile-submenu-container___od1Ev_1-0-17","mobileSubmenuContainer":"magritte-mobile-submenu-container___od1Ev_1-0-17","mobile-menu-container-slide":"magritte-mobile-menu-container-slide___HXiEx_1-0-17","mobileMenuContainerSlide":"magritte-mobile-menu-container-slide___HXiEx_1-0-17","quick-actions":"magritte-quick-actions___HvUJ3_1-0-17","quickActions":"magritte-quick-actions___HvUJ3_1-0-17","quick-action":"magritte-quick-action___1K5Ip_1-0-17","quickAction":"magritte-quick-action___1K5Ip_1-0-17","quick-action-text":"magritte-quick-action-text___diFW5_1-0-17","quickActionText":"magritte-quick-action-text___diFW5_1-0-17"};
3
-
4
- export { styles as s };
5
- //# sourceMappingURL=menu-BBIgZPUo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"menu-BBIgZPUo.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}