@hh.ru/magritte-ui-breadcrumbs 7.2.29 → 7.2.31
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/Breadcrumbs.js +2 -2
- package/Breadcrumbs.js.map +1 -1
- package/BreadcrumbsDivider.js +1 -1
- package/BreadcrumbsItem.js +1 -1
- package/breadcrumbs-nPdT6RtT.js +5 -0
- package/breadcrumbs-nPdT6RtT.js.map +1 -0
- package/index.css +41 -41
- package/index.js +1 -1
- package/package.json +14 -14
- package/breadcrumbs-D6BNMk4L.js +0 -5
- package/breadcrumbs-D6BNMk4L.js.map +0 -1
package/Breadcrumbs.js
CHANGED
|
@@ -10,7 +10,7 @@ import { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';
|
|
|
10
10
|
import { Card } from '@hh.ru/magritte-ui-card';
|
|
11
11
|
import { Drop } from '@hh.ru/magritte-ui-drop';
|
|
12
12
|
import { Text } from '@hh.ru/magritte-ui-typography';
|
|
13
|
-
import { s as styles } from './breadcrumbs-
|
|
13
|
+
import { s as styles } from './breadcrumbs-nPdT6RtT.js';
|
|
14
14
|
|
|
15
15
|
const MAX_VISIBLE_ITEMS = 5;
|
|
16
16
|
const TEXT_TYPOGRAPHY = 'label-3-regular';
|
|
@@ -76,7 +76,7 @@ const Breadcrumbs = ({ children, 'aria-label': ariaLabel = DEFAULT_ARIA_LABEL, e
|
|
|
76
76
|
// Сжимаем первую крошку только когда больше нечего коллапсировать,
|
|
77
77
|
// иначе она «отдаёт» ширину соседним и они налезают друг на друга.
|
|
78
78
|
const canShrinkFirstItem = children.length <= 2 || hiddenCount >= children.length - 2;
|
|
79
|
-
// eslint-disable-next-line
|
|
79
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
80
80
|
const checkIfItemsCollapsed = useCallback(throttle(() => {
|
|
81
81
|
const list = listRef.current;
|
|
82
82
|
if (!list || children.length <= 1) {
|
package/Breadcrumbs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumbs.js","sources":["src/Breadcrumbs.tsx"],"sourcesContent":["import { cloneElement, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport classnames from 'classnames';\n\nimport { throttle } from '@hh.ru/magritte-common-func-utils';\nimport { useResize } from '@hh.ru/magritte-common-resize';\nimport { BottomSheet } from '@hh.ru/magritte-ui-bottom-sheet';\nimport { BreadcrumbsDivider } from '@hh.ru/magritte-ui-breadcrumbs/BreadcrumbsDivider';\nimport type { BreadcrumbsItem, BreadcrumbsProps } from '@hh.ru/magritte-ui-breadcrumbs/types';\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { Card } from '@hh.ru/magritte-ui-card';\nimport { Drop } from '@hh.ru/magritte-ui-drop';\nimport { Text, TextTypography } from '@hh.ru/magritte-ui-typography';\n\nimport styles from './breadcrumbs.less';\n\nconst MAX_VISIBLE_ITEMS = 5;\nconst TEXT_TYPOGRAPHY = 'label-3-regular';\n// Допуск на погрешность округления при сравнении суммы offsetWidth с clientWidth.\nconst OVERFLOW_EPS_PX = 1;\nconst FIRST_COLLAPSIBLE_ITEM_INDEX = 1;\nconst DEFAULT_ARIA_LABEL = 'Хлебные крошки';\nconst DEFAULT_ELLIPSIS_ARIA_LABEL = 'Показать скрытые элементы';\n\nconst measureIntrinsicWidth = (element: HTMLElement | null | undefined) => {\n if (!element) {\n return 0;\n }\n\n // Временно форсируем натуральную ширину: к этому моменту первая крошка\n // уже может быть сжата flex-shrink, и offsetWidth будет занижен.\n element.classList.add(styles.itemIntrinsicWidth);\n const measuredWidth = element.offsetWidth;\n element.classList.remove(styles.itemIntrinsicWidth);\n\n return measuredWidth;\n};\n\nconst arrayFromRange = (start: number, end: number) => {\n return start <= end ? [...Array(end - start + 1).keys()].map((x) => x + start) : [];\n};\n\nconst makeItemKey = (children: Array<BreadcrumbsItem>, index: number): React.Key => {\n return (\n children[index].key ??\n (typeof children[index].props.children === 'string' ? children[index].props.children : index)\n );\n};\n\nconst getMinHiddenCount = (length: number) => {\n return length > MAX_VISIBLE_ITEMS ? length - (MAX_VISIBLE_ITEMS - 1) : 0;\n};\n\n/**\n * В спецификации указано, что breadcrumbs не может отображать более 5-ти элементов.\n *\n * Варианты отображения breadcrumbs:\n * -> link / link / link / link / text\n * или\n * -> link / ellipsis / link / link / text\n *\n * Если лимит будет превышен, компонент схлопнет в ellipsis все элементы, которые окажутся между первым и\n * тремя последними элементами. Таким образом breadcrumbs будет приведен к виду -> link / ellipsis / link / link / text,\n * где ellipsis — это кнопка, раскрывающая дроп-контейнер, в который складываются сколлапсировавшие элементы.\n *\n * Если после лимитирования контейнер-родитель всё равно не будет умещать в себе контент, то видимые элементы\n * один за другим начнут коллапсировать до максимально возможного уровеня сворачивания элементов:\n * -> link / ellipsis / text.\n *\n * Если и после этого контент все равно будет слишком широким, первый элемент начнет уменьшаться с text-overflow:ellipsis.\n *\n * Все пункты остаются в одном `ol` в порядке иерархии. Свёрнутые `li` выводятся из flex-раскладки\n * и остаются в DOM для SEO.\n */\nexport const Breadcrumbs: React.FC<BreadcrumbsProps> = ({\n children,\n 'aria-label': ariaLabel = DEFAULT_ARIA_LABEL,\n ellipsisAriaLabel = DEFAULT_ELLIPSIS_ARIA_LABEL,\n 'data-qa': dataQa,\n}) => {\n const listRef = useRef<HTMLOListElement>(null);\n const ellipsisRef = useRef<HTMLLIElement>(null);\n const activatorRef = useRef<HTMLButtonElement>(null);\n\n const [hiddenCount, setHiddenCount] = useState(() => getMinHiddenCount(children.length));\n const [expandCollapsedItems, setExpandCollapsedItems] = useState(false);\n const showEllipsis = hiddenCount > 0;\n\n const itemRefs = useRef<Record<number, HTMLLIElement>>({});\n const itemRefCallbacks = useMemo<React.RefCallback<HTMLLIElement>[]>(\n () =>\n [...Array(children.length).keys()].map((_, index) => (element: HTMLLIElement) => {\n itemRefs.current[index] = element;\n }),\n [children.length]\n );\n\n const { isMobile } = useBreakpoint();\n // Сжимаем первую крошку только когда больше нечего коллапсировать,\n // иначе она «отдаёт» ширину соседним и они налезают друг на друга.\n const canShrinkFirstItem = children.length <= 2 || hiddenCount >= children.length - 2;\n\n // eslint-disable-next-line disable-autofix/react-hooks/exhaustive-deps\n const checkIfItemsCollapsed = useCallback(\n throttle(() => {\n const list = listRef.current;\n if (!list || children.length <= 1) {\n setHiddenCount(0);\n setExpandCollapsedItems(false);\n return;\n }\n\n const containerWidth = list.clientWidth;\n const length = children.length;\n const minHidden = getMinHiddenCount(length);\n const maxHidden = length - 2;\n const ellipsisWidth = ellipsisRef.current?.offsetWidth ?? 0;\n // offsetWidth первой крошки может быть уже сжатым — для расчёта нужна полная ширина,\n // иначе соседние пункты останутся видимыми и налезут друг на друга.\n const firstItemWidth = measureIntrinsicWidth(itemRefs.current[0]);\n\n let nextHidden = minHidden;\n\n // Ищем минимальное число скрытых средних пунктов, при котором\n // first + (ellipsis) + видимые средние + last влезают в контейнер.\n // Начинаем с minHidden (лимит в 5 видимых) и при нехватке места\n // прячем пункты слева направо до first / ellipsis / last.\n for (let hidden = minHidden; hidden <= maxHidden; hidden++) {\n let totalWidth = firstItemWidth + (itemRefs.current[length - 1]?.offsetWidth ?? 0);\n\n if (hidden > 0) {\n totalWidth += ellipsisWidth;\n }\n\n for (let index = hidden + FIRST_COLLAPSIBLE_ITEM_INDEX; index < length - 1; index++) {\n totalWidth += itemRefs.current[index]?.offsetWidth ?? 0;\n }\n\n nextHidden = hidden;\n\n if (totalWidth <= containerWidth + OVERFLOW_EPS_PX) {\n break;\n }\n }\n\n setHiddenCount(nextHidden);\n if (nextHidden === 0) {\n setExpandCollapsedItems(false);\n }\n }, 50),\n [children.length]\n );\n\n useLayoutEffect(checkIfItemsCollapsed);\n useResize(checkIfItemsCollapsed);\n\n const renderCollapsedItems = (itemClassName: string, typography: TextTypography) => {\n if (!showEllipsis) {\n return null;\n }\n\n return arrayFromRange(FIRST_COLLAPSIBLE_ITEM_INDEX, hiddenCount).map((index) => {\n const { Element = 'a', children: child, ...props } = children[index].props;\n return (\n <div className={itemClassName} key={makeItemKey(children, index)}>\n <Card\n {...props}\n Element={Element}\n borderRadius={12}\n padding={8}\n paddingLeft={12}\n paddingRight={12}\n style=\"primary\"\n hoverStyle=\"secondary\"\n hoverEnabled\n pressEnabled\n stretched\n >\n <div className={styles.interactiveText}>\n <Text Element=\"div\" typography={typography}>\n <div className={styles.textWithEllipsis}>{child}</div>\n </Text>\n </div>\n </Card>\n </div>\n );\n });\n };\n\n const renderLastItem = () => {\n if (children.length === 0) {\n return null;\n }\n\n const index = children.length - 1;\n const { children: child, href, ...props } = { ...children[index].props };\n return (\n <li className={styles.item} ref={itemRefCallbacks[index]}>\n <div className={styles.staticText}>\n <Text {...props} Element=\"span\" typography={TEXT_TYPOGRAPHY} aria-current=\"page\">\n {child}\n </Text>\n </div>\n </li>\n );\n };\n\n return (\n <nav className={styles.breadcrumbs} aria-label={ariaLabel} data-qa={dataQa}>\n <ol className={styles.unbreakableContainer} ref={listRef}>\n {/*\n Нулевой айтем имеет text-overflow:ellipsis, все остальные скрываются целиком.\n Он начнет уменьшаться, только если все остальные айтемы, кроме последнего, уже были скрыты.\n */}\n {children.length > 1 && (\n <li\n className={classnames(styles.item, styles.firstItem, {\n [styles.firstItemShrinkable]: canShrinkFirstItem,\n })}\n ref={itemRefCallbacks[0]}\n >\n <div className={styles.firstItemContent}>\n {cloneElement(\n children[0],\n undefined,\n <span className={styles.textWithEllipsis}>{children[0].props.children}</span>\n )}\n </div>\n <BreadcrumbsDivider />\n </li>\n )}\n\n {/*\n Свёрнутые айтемы остаются в DOM в порядке иерархии для SEO,\n но выводятся из flex-раскладки через position:absolute + visibility:hidden.\n inert исключает ссылки из таб-порядка и accessibility tree.\n */}\n {arrayFromRange(FIRST_COLLAPSIBLE_ITEM_INDEX, hiddenCount).map((index) => (\n <li\n className={classnames(styles.item, styles.invisibleContainer)}\n key={makeItemKey(children, index)}\n ref={itemRefCallbacks[index]}\n // атрибут не завезли в типы react 18, только с 19го\n {...{ inert: '' }}\n >\n {children[index]}\n <BreadcrumbsDivider />\n </li>\n ))}\n\n {/*\n Эллипсис всегда в DOM (если пунктов больше двух), чтобы расчёт коллапса\n сразу знал его ширину и не мигал при появлении кнопки.\n Если свёрнутых айтемов нет — прячем через invisibleContainer + inert.\n */}\n {children.length > 2 && (\n <li\n className={classnames(styles.item, { [styles.invisibleContainer]: !showEllipsis })}\n data-qa=\"breadcrumbs-action\"\n ref={ellipsisRef}\n {...(!showEllipsis ? { inert: '' } : undefined)}\n >\n <button\n type=\"button\"\n className={styles.ellipsis}\n ref={activatorRef}\n aria-label={ellipsisAriaLabel}\n aria-expanded={expandCollapsedItems}\n aria-haspopup={isMobile ? 'dialog' : 'menu'}\n onClick={() => setExpandCollapsedItems(!expandCollapsedItems)}\n >\n <span className={styles.interactiveText}>\n <Text Element=\"span\" typography={TEXT_TYPOGRAPHY}>\n ...\n </Text>\n </span>\n </button>\n <BreadcrumbsDivider />\n {showEllipsis &&\n (isMobile ? (\n <BottomSheet\n visible={expandCollapsedItems}\n onClose={() => setExpandCollapsedItems(false)}\n >\n {renderCollapsedItems(styles.bottomSheetItem, 'label-2-regular')}\n </BottomSheet>\n ) : (\n <Drop\n activatorRef={activatorRef}\n placement=\"bottom-left\"\n padding={12}\n visible={expandCollapsedItems}\n onClose={() => setExpandCollapsedItems(false)}\n role=\"menu\"\n >\n {renderCollapsedItems(styles.dropItem, TEXT_TYPOGRAPHY)}\n </Drop>\n ))}\n </li>\n )}\n\n {/*\n Видимые средние айтемы между эллипсисом и последним пунктом.\n При нехватке места скрываются слева направо до вида link / ellipsis / text.\n Последний айтем имеет наибольший приоритет и никогда не скрывается.\n */}\n {arrayFromRange(hiddenCount + FIRST_COLLAPSIBLE_ITEM_INDEX, children.length - 2).map((index) => (\n <li className={styles.item} key={makeItemKey(children, index)} ref={itemRefCallbacks[index]}>\n {children[index]}\n <BreadcrumbsDivider />\n </li>\n ))}\n\n {renderLastItem()}\n </ol>\n </nav>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Breadcrumbs.js","sources":["src/Breadcrumbs.tsx"],"sourcesContent":["import { cloneElement, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport classnames from 'classnames';\n\nimport { throttle } from '@hh.ru/magritte-common-func-utils';\nimport { useResize } from '@hh.ru/magritte-common-resize';\nimport { BottomSheet } from '@hh.ru/magritte-ui-bottom-sheet';\nimport { BreadcrumbsDivider } from '@hh.ru/magritte-ui-breadcrumbs/BreadcrumbsDivider';\nimport type { BreadcrumbsItem, BreadcrumbsProps } from '@hh.ru/magritte-ui-breadcrumbs/types';\nimport { useBreakpoint } from '@hh.ru/magritte-ui-breakpoint';\nimport { Card } from '@hh.ru/magritte-ui-card';\nimport { Drop } from '@hh.ru/magritte-ui-drop';\nimport { Text, TextTypography } from '@hh.ru/magritte-ui-typography';\n\nimport styles from './breadcrumbs.less';\n\nconst MAX_VISIBLE_ITEMS = 5;\nconst TEXT_TYPOGRAPHY = 'label-3-regular';\n// Допуск на погрешность округления при сравнении суммы offsetWidth с clientWidth.\nconst OVERFLOW_EPS_PX = 1;\nconst FIRST_COLLAPSIBLE_ITEM_INDEX = 1;\nconst DEFAULT_ARIA_LABEL = 'Хлебные крошки';\nconst DEFAULT_ELLIPSIS_ARIA_LABEL = 'Показать скрытые элементы';\n\nconst measureIntrinsicWidth = (element: HTMLElement | null | undefined) => {\n if (!element) {\n return 0;\n }\n\n // Временно форсируем натуральную ширину: к этому моменту первая крошка\n // уже может быть сжата flex-shrink, и offsetWidth будет занижен.\n element.classList.add(styles.itemIntrinsicWidth);\n const measuredWidth = element.offsetWidth;\n element.classList.remove(styles.itemIntrinsicWidth);\n\n return measuredWidth;\n};\n\nconst arrayFromRange = (start: number, end: number) => {\n return start <= end ? [...Array(end - start + 1).keys()].map((x) => x + start) : [];\n};\n\nconst makeItemKey = (children: Array<BreadcrumbsItem>, index: number): React.Key => {\n return (\n children[index].key ??\n (typeof children[index].props.children === 'string' ? children[index].props.children : index)\n );\n};\n\nconst getMinHiddenCount = (length: number) => {\n return length > MAX_VISIBLE_ITEMS ? length - (MAX_VISIBLE_ITEMS - 1) : 0;\n};\n\n/**\n * В спецификации указано, что breadcrumbs не может отображать более 5-ти элементов.\n *\n * Варианты отображения breadcrumbs:\n * -> link / link / link / link / text\n * или\n * -> link / ellipsis / link / link / text\n *\n * Если лимит будет превышен, компонент схлопнет в ellipsis все элементы, которые окажутся между первым и\n * тремя последними элементами. Таким образом breadcrumbs будет приведен к виду -> link / ellipsis / link / link / text,\n * где ellipsis — это кнопка, раскрывающая дроп-контейнер, в который складываются сколлапсировавшие элементы.\n *\n * Если после лимитирования контейнер-родитель всё равно не будет умещать в себе контент, то видимые элементы\n * один за другим начнут коллапсировать до максимально возможного уровеня сворачивания элементов:\n * -> link / ellipsis / text.\n *\n * Если и после этого контент все равно будет слишком широким, первый элемент начнет уменьшаться с text-overflow:ellipsis.\n *\n * Все пункты остаются в одном `ol` в порядке иерархии. Свёрнутые `li` выводятся из flex-раскладки\n * и остаются в DOM для SEO.\n */\nexport const Breadcrumbs: React.FC<BreadcrumbsProps> = ({\n children,\n 'aria-label': ariaLabel = DEFAULT_ARIA_LABEL,\n ellipsisAriaLabel = DEFAULT_ELLIPSIS_ARIA_LABEL,\n 'data-qa': dataQa,\n}) => {\n const listRef = useRef<HTMLOListElement>(null);\n const ellipsisRef = useRef<HTMLLIElement>(null);\n const activatorRef = useRef<HTMLButtonElement>(null);\n\n const [hiddenCount, setHiddenCount] = useState(() => getMinHiddenCount(children.length));\n const [expandCollapsedItems, setExpandCollapsedItems] = useState(false);\n const showEllipsis = hiddenCount > 0;\n\n const itemRefs = useRef<Record<number, HTMLLIElement>>({});\n const itemRefCallbacks = useMemo<React.RefCallback<HTMLLIElement>[]>(\n () =>\n [...Array(children.length).keys()].map((_, index) => (element: HTMLLIElement) => {\n itemRefs.current[index] = element;\n }),\n [children.length]\n );\n\n const { isMobile } = useBreakpoint();\n // Сжимаем первую крошку только когда больше нечего коллапсировать,\n // иначе она «отдаёт» ширину соседним и они налезают друг на друга.\n const canShrinkFirstItem = children.length <= 2 || hiddenCount >= children.length - 2;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const checkIfItemsCollapsed = useCallback(\n throttle(() => {\n const list = listRef.current;\n if (!list || children.length <= 1) {\n setHiddenCount(0);\n setExpandCollapsedItems(false);\n return;\n }\n\n const containerWidth = list.clientWidth;\n const length = children.length;\n const minHidden = getMinHiddenCount(length);\n const maxHidden = length - 2;\n const ellipsisWidth = ellipsisRef.current?.offsetWidth ?? 0;\n // offsetWidth первой крошки может быть уже сжатым — для расчёта нужна полная ширина,\n // иначе соседние пункты останутся видимыми и налезут друг на друга.\n const firstItemWidth = measureIntrinsicWidth(itemRefs.current[0]);\n\n let nextHidden = minHidden;\n\n // Ищем минимальное число скрытых средних пунктов, при котором\n // first + (ellipsis) + видимые средние + last влезают в контейнер.\n // Начинаем с minHidden (лимит в 5 видимых) и при нехватке места\n // прячем пункты слева направо до first / ellipsis / last.\n for (let hidden = minHidden; hidden <= maxHidden; hidden++) {\n let totalWidth = firstItemWidth + (itemRefs.current[length - 1]?.offsetWidth ?? 0);\n\n if (hidden > 0) {\n totalWidth += ellipsisWidth;\n }\n\n for (let index = hidden + FIRST_COLLAPSIBLE_ITEM_INDEX; index < length - 1; index++) {\n totalWidth += itemRefs.current[index]?.offsetWidth ?? 0;\n }\n\n nextHidden = hidden;\n\n if (totalWidth <= containerWidth + OVERFLOW_EPS_PX) {\n break;\n }\n }\n\n setHiddenCount(nextHidden);\n if (nextHidden === 0) {\n setExpandCollapsedItems(false);\n }\n }, 50),\n [children.length]\n );\n\n useLayoutEffect(checkIfItemsCollapsed);\n useResize(checkIfItemsCollapsed);\n\n const renderCollapsedItems = (itemClassName: string, typography: TextTypography) => {\n if (!showEllipsis) {\n return null;\n }\n\n return arrayFromRange(FIRST_COLLAPSIBLE_ITEM_INDEX, hiddenCount).map((index) => {\n const { Element = 'a', children: child, ...props } = children[index].props;\n return (\n <div className={itemClassName} key={makeItemKey(children, index)}>\n <Card\n {...props}\n Element={Element}\n borderRadius={12}\n padding={8}\n paddingLeft={12}\n paddingRight={12}\n style=\"primary\"\n hoverStyle=\"secondary\"\n hoverEnabled\n pressEnabled\n stretched\n >\n <div className={styles.interactiveText}>\n <Text Element=\"div\" typography={typography}>\n <div className={styles.textWithEllipsis}>{child}</div>\n </Text>\n </div>\n </Card>\n </div>\n );\n });\n };\n\n const renderLastItem = () => {\n if (children.length === 0) {\n return null;\n }\n\n const index = children.length - 1;\n const { children: child, href, ...props } = { ...children[index].props };\n return (\n <li className={styles.item} ref={itemRefCallbacks[index]}>\n <div className={styles.staticText}>\n <Text {...props} Element=\"span\" typography={TEXT_TYPOGRAPHY} aria-current=\"page\">\n {child}\n </Text>\n </div>\n </li>\n );\n };\n\n return (\n <nav className={styles.breadcrumbs} aria-label={ariaLabel} data-qa={dataQa}>\n <ol className={styles.unbreakableContainer} ref={listRef}>\n {/*\n Нулевой айтем имеет text-overflow:ellipsis, все остальные скрываются целиком.\n Он начнет уменьшаться, только если все остальные айтемы, кроме последнего, уже были скрыты.\n */}\n {children.length > 1 && (\n <li\n className={classnames(styles.item, styles.firstItem, {\n [styles.firstItemShrinkable]: canShrinkFirstItem,\n })}\n ref={itemRefCallbacks[0]}\n >\n <div className={styles.firstItemContent}>\n {cloneElement(\n children[0],\n undefined,\n <span className={styles.textWithEllipsis}>{children[0].props.children}</span>\n )}\n </div>\n <BreadcrumbsDivider />\n </li>\n )}\n\n {/*\n Свёрнутые айтемы остаются в DOM в порядке иерархии для SEO,\n но выводятся из flex-раскладки через position:absolute + visibility:hidden.\n inert исключает ссылки из таб-порядка и accessibility tree.\n */}\n {arrayFromRange(FIRST_COLLAPSIBLE_ITEM_INDEX, hiddenCount).map((index) => (\n <li\n className={classnames(styles.item, styles.invisibleContainer)}\n key={makeItemKey(children, index)}\n ref={itemRefCallbacks[index]}\n // атрибут не завезли в типы react 18, только с 19го\n {...{ inert: '' }}\n >\n {children[index]}\n <BreadcrumbsDivider />\n </li>\n ))}\n\n {/*\n Эллипсис всегда в DOM (если пунктов больше двух), чтобы расчёт коллапса\n сразу знал его ширину и не мигал при появлении кнопки.\n Если свёрнутых айтемов нет — прячем через invisibleContainer + inert.\n */}\n {children.length > 2 && (\n <li\n className={classnames(styles.item, { [styles.invisibleContainer]: !showEllipsis })}\n data-qa=\"breadcrumbs-action\"\n ref={ellipsisRef}\n {...(!showEllipsis ? { inert: '' } : undefined)}\n >\n <button\n type=\"button\"\n className={styles.ellipsis}\n ref={activatorRef}\n aria-label={ellipsisAriaLabel}\n aria-expanded={expandCollapsedItems}\n aria-haspopup={isMobile ? 'dialog' : 'menu'}\n onClick={() => setExpandCollapsedItems(!expandCollapsedItems)}\n >\n <span className={styles.interactiveText}>\n <Text Element=\"span\" typography={TEXT_TYPOGRAPHY}>\n ...\n </Text>\n </span>\n </button>\n <BreadcrumbsDivider />\n {showEllipsis &&\n (isMobile ? (\n <BottomSheet\n visible={expandCollapsedItems}\n onClose={() => setExpandCollapsedItems(false)}\n >\n {renderCollapsedItems(styles.bottomSheetItem, 'label-2-regular')}\n </BottomSheet>\n ) : (\n <Drop\n activatorRef={activatorRef}\n placement=\"bottom-left\"\n padding={12}\n visible={expandCollapsedItems}\n onClose={() => setExpandCollapsedItems(false)}\n role=\"menu\"\n >\n {renderCollapsedItems(styles.dropItem, TEXT_TYPOGRAPHY)}\n </Drop>\n ))}\n </li>\n )}\n\n {/*\n Видимые средние айтемы между эллипсисом и последним пунктом.\n При нехватке места скрываются слева направо до вида link / ellipsis / text.\n Последний айтем имеет наибольший приоритет и никогда не скрывается.\n */}\n {arrayFromRange(hiddenCount + FIRST_COLLAPSIBLE_ITEM_INDEX, children.length - 2).map((index) => (\n <li className={styles.item} key={makeItemKey(children, index)} ref={itemRefCallbacks[index]}>\n {children[index]}\n <BreadcrumbsDivider />\n </li>\n ))}\n\n {renderLastItem()}\n </ol>\n </nav>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;;;AAeA,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAC1C;AACA,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,4BAA4B,GAAG,CAAC,CAAC;AACvC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAC5C,MAAM,2BAA2B,GAAG,2BAA2B,CAAC;AAEhE,MAAM,qBAAqB,GAAG,CAAC,OAAuC,KAAI;IACtE,IAAI,CAAC,OAAO,EAAE;AACV,QAAA,OAAO,CAAC,CAAC;KACZ;;;IAID,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACjD,IAAA,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;IAC1C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAEpD,IAAA,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,GAAW,KAAI;AAClD,IAAA,OAAO,KAAK,IAAI,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;AACxF,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,QAAgC,EAAE,KAAa,KAAe;AAC/E,IAAA,QACI,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG;AACnB,SAAC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,EAC/F;AACN,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,MAAc,KAAI;AACzC,IAAA,OAAO,MAAM,GAAG,iBAAiB,GAAG,MAAM,IAAI,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7E,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;AAoBG;MACU,WAAW,GAA+B,CAAC,EACpD,QAAQ,EACR,YAAY,EAAE,SAAS,GAAG,kBAAkB,EAC5C,iBAAiB,GAAG,2BAA2B,EAC/C,SAAS,EAAE,MAAM,GACpB,KAAI;AACD,IAAA,MAAM,OAAO,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;AAC/C,IAAA,MAAM,WAAW,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;AAChD,IAAA,MAAM,YAAY,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;AAErD,IAAA,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,MAAM,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxE,IAAA,MAAM,YAAY,GAAG,WAAW,GAAG,CAAC,CAAC;AAErC,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAgC,EAAE,CAAC,CAAC;AAC3D,IAAA,MAAM,gBAAgB,GAAG,OAAO,CAC5B,MACI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,OAAsB,KAAI;AAC5E,QAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;KACrC,CAAC,EACN,CAAC,QAAQ,CAAC,MAAM,CAAC,CACpB,CAAC;AAEF,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;;;AAGrC,IAAA,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,WAAW,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;;AAGtF,IAAA,MAAM,qBAAqB,GAAG,WAAW,CACrC,QAAQ,CAAC,MAAK;AACV,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YAC/B,cAAc,CAAC,CAAC,CAAC,CAAC;YAClB,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO;SACV;AAED,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC;AACxC,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC/B,QAAA,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC5C,QAAA,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC;QAC7B,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,EAAE,WAAW,IAAI,CAAC,CAAC;;;QAG5D,MAAM,cAAc,GAAG,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAElE,IAAI,UAAU,GAAG,SAAS,CAAC;;;;;AAM3B,QAAA,KAAK,IAAI,MAAM,GAAG,SAAS,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,EAAE,EAAE;AACxD,YAAA,IAAI,UAAU,GAAG,cAAc,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;AAEnF,YAAA,IAAI,MAAM,GAAG,CAAC,EAAE;gBACZ,UAAU,IAAI,aAAa,CAAC;aAC/B;AAED,YAAA,KAAK,IAAI,KAAK,GAAG,MAAM,GAAG,4BAA4B,EAAE,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE;gBACjF,UAAU,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,IAAI,CAAC,CAAC;aAC3D;YAED,UAAU,GAAG,MAAM,CAAC;AAEpB,YAAA,IAAI,UAAU,IAAI,cAAc,GAAG,eAAe,EAAE;gBAChD,MAAM;aACT;SACJ;QAED,cAAc,CAAC,UAAU,CAAC,CAAC;AAC3B,QAAA,IAAI,UAAU,KAAK,CAAC,EAAE;YAClB,uBAAuB,CAAC,KAAK,CAAC,CAAC;SAClC;KACJ,EAAE,EAAE,CAAC,EACN,CAAC,QAAQ,CAAC,MAAM,CAAC,CACpB,CAAC;IAEF,eAAe,CAAC,qBAAqB,CAAC,CAAC;IACvC,SAAS,CAAC,qBAAqB,CAAC,CAAC;AAEjC,IAAA,MAAM,oBAAoB,GAAG,CAAC,aAAqB,EAAE,UAA0B,KAAI;QAC/E,IAAI,CAAC,YAAY,EAAE;AACf,YAAA,OAAO,IAAI,CAAC;SACf;AAED,QAAA,OAAO,cAAc,CAAC,4BAA4B,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;AAC3E,YAAA,MAAM,EAAE,OAAO,GAAG,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;AAC3E,YAAA,QACIA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,aAAa,EAAA,QAAA,EACzBA,IAAC,IAAI,EAAA,EAAA,GACG,KAAK,EACT,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,EAAE,EAChB,OAAO,EAAE,CAAC,EACV,WAAW,EAAE,EAAE,EACf,YAAY,EAAE,EAAE,EAChB,KAAK,EAAC,SAAS,EACf,UAAU,EAAC,WAAW,EACtB,YAAY,EACZ,IAAA,EAAA,YAAY,EACZ,IAAA,EAAA,SAAS,kBAETA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,eAAe,EAClC,QAAA,EAAAA,GAAA,CAAC,IAAI,EAAA,EAAC,OAAO,EAAC,KAAK,EAAC,UAAU,EAAE,UAAU,EACtC,QAAA,EAAAA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,gBAAgB,YAAG,KAAK,EAAA,CAAO,GACnD,EACL,CAAA,EAAA,CACH,EAnByB,EAAA,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAoB1D,EACR;AACN,SAAC,CAAC,CAAC;AACP,KAAC,CAAC;IAEF,MAAM,cAAc,GAAG,MAAK;AACxB,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACvB,YAAA,OAAO,IAAI,CAAC;SACf;AAED,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAClC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;AACzE,QAAA,QACIA,GAAI,CAAA,IAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAA,QAAA,EACpDA,aAAK,SAAS,EAAE,MAAM,CAAC,UAAU,EAC7B,QAAA,EAAAA,GAAA,CAAC,IAAI,EAAK,EAAA,GAAA,KAAK,EAAE,OAAO,EAAC,MAAM,EAAC,UAAU,EAAE,eAAe,EAAA,cAAA,EAAe,MAAM,EAC3E,QAAA,EAAA,KAAK,GACH,EACL,CAAA,EAAA,CACL,EACP;AACN,KAAC,CAAC;AAEF,IAAA,QACIA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,WAAW,EAAc,YAAA,EAAA,SAAS,aAAW,MAAM,EAAA,QAAA,EACtEC,aAAI,SAAS,EAAE,MAAM,CAAC,oBAAoB,EAAE,GAAG,EAAE,OAAO,EAAA,QAAA,EAAA,CAKnD,QAAQ,CAAC,MAAM,GAAG,CAAC,KAChBA,IACI,CAAA,IAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE;AACjD,wBAAA,CAAC,MAAM,CAAC,mBAAmB,GAAG,kBAAkB;qBACnD,CAAC,EACF,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAA,QAAA,EAAA,CAExBD,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,gBAAgB,EAAA,QAAA,EAClC,YAAY,CACT,QAAQ,CAAC,CAAC,CAAC,EACX,SAAS,EACTA,GAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,gBAAgB,EAAA,QAAA,EAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAA,CAAQ,CAChF,EACC,CAAA,EACNA,GAAC,CAAA,kBAAkB,EAAG,EAAA,CAAA,CAAA,EAAA,CACrB,CACR,EAOA,cAAc,CAAC,4BAA4B,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,MACjEC,IAAA,CAAA,IAAA,EAAA,EACI,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,kBAAkB,CAAC,EAE7D,GAAG,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAEtB,KAAK,EAAE,EAAE,EAEd,QAAA,EAAA,CAAA,QAAQ,CAAC,KAAK,CAAC,EAChBD,GAAA,CAAC,kBAAkB,EAAA,EAAA,CAAG,KANjB,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAOhC,CACR,CAAC,EAOD,QAAQ,CAAC,MAAM,GAAG,CAAC,KAChBC,IACI,CAAA,IAAA,EAAA,EAAA,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,GAAG,CAAC,YAAY,EAAE,CAAC,EAAA,SAAA,EAC1E,oBAAoB,EAC5B,GAAG,EAAE,WAAW,EACZ,IAAC,CAAC,YAAY,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,SAAS,GAAC,QAAA,EAAA,CAE/CD,GACI,CAAA,QAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,QAAQ,EAC1B,GAAG,EAAE,YAAY,EAAA,YAAA,EACL,iBAAiB,EAAA,eAAA,EACd,oBAAoB,EACpB,eAAA,EAAA,QAAQ,GAAG,QAAQ,GAAG,MAAM,EAC3C,OAAO,EAAE,MAAM,uBAAuB,CAAC,CAAC,oBAAoB,CAAC,EAE7D,QAAA,EAAAA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,MAAM,CAAC,eAAe,EACnC,QAAA,EAAAA,GAAA,CAAC,IAAI,EAAA,EAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAE,eAAe,EAEzC,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CACJ,EACF,CAAA,EACTA,GAAC,CAAA,kBAAkB,EAAG,EAAA,CAAA,EACrB,YAAY;AACT,6BAAC,QAAQ,IACLA,GAAC,CAAA,WAAW,EACR,EAAA,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,MAAM,uBAAuB,CAAC,KAAK,CAAC,EAAA,QAAA,EAE5C,oBAAoB,CAAC,MAAM,CAAC,eAAe,EAAE,iBAAiB,CAAC,EAAA,CACtD,KAEdA,GAAC,CAAA,IAAI,EACD,EAAA,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAC,aAAa,EACvB,OAAO,EAAE,EAAE,EACX,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,MAAM,uBAAuB,CAAC,KAAK,CAAC,EAC7C,IAAI,EAAC,MAAM,YAEV,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,GACpD,CACV,CAAC,CACL,EAAA,CAAA,CACR,EAOA,cAAc,CAAC,WAAW,GAAG,4BAA4B,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,MACvFC,aAAI,SAAS,EAAE,MAAM,CAAC,IAAI,EAAqC,GAAG,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAA,QAAA,EAAA,CACtF,QAAQ,CAAC,KAAK,CAAC,EAChBD,GAAC,CAAA,kBAAkB,EAAG,EAAA,CAAA,CAAA,EAAA,EAFO,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAGxD,CACR,CAAC,EAED,cAAc,EAAE,CAChB,EAAA,CAAA,EAAA,CACH,EACR;AACN;;;;"}
|
package/BreadcrumbsDivider.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import './index.css';
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { Text } from '@hh.ru/magritte-ui-typography';
|
|
4
|
-
import { s as styles } from './breadcrumbs-
|
|
4
|
+
import { s as styles } from './breadcrumbs-nPdT6RtT.js';
|
|
5
5
|
|
|
6
6
|
const BreadcrumbsDivider = () => {
|
|
7
7
|
return (jsx("span", { className: styles.divider, "aria-hidden": "true", children: jsx(Text, { Element: "span", typography: "label-3-regular", children: "/" }) }));
|
package/BreadcrumbsItem.js
CHANGED
|
@@ -2,7 +2,7 @@ import './index.css';
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { Link } from '@hh.ru/magritte-ui-link';
|
|
4
4
|
import { Text } from '@hh.ru/magritte-ui-typography';
|
|
5
|
-
import { s as styles } from './breadcrumbs-
|
|
5
|
+
import { s as styles } from './breadcrumbs-nPdT6RtT.js';
|
|
6
6
|
|
|
7
7
|
const BreadcrumbsItem = ({ Element = 'a', children, ...rest }) => {
|
|
8
8
|
return (jsx(Link, { Element: Element, ...rest, typography: "label-3-regular", inline: true, children: jsx("span", { className: styles.interactiveText, children: jsx(Text, { Element: "span", typography: "label-3-regular", children: children }) }) }));
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import './index.css';
|
|
2
|
+
var styles = {"breadcrumbs":"magritte-breadcrumbs___Go2gs_7-2-31","unbreakable-container":"magritte-unbreakable-container___VcQQ2_7-2-31","unbreakableContainer":"magritte-unbreakable-container___VcQQ2_7-2-31","invisible-container":"magritte-invisible-container___V0W27_7-2-31","invisibleContainer":"magritte-invisible-container___V0W27_7-2-31","ellipsis":"magritte-ellipsis___-3wI7_7-2-31","item":"magritte-item___oaSMH_7-2-31","first-item":"magritte-first-item___N6MFS_7-2-31","firstItem":"magritte-first-item___N6MFS_7-2-31","first-item-shrinkable":"magritte-first-item-shrinkable___ZDlYS_7-2-31","firstItemShrinkable":"magritte-first-item-shrinkable___ZDlYS_7-2-31","item-intrinsic-width":"magritte-item-intrinsic-width___hf4d2_7-2-31","itemIntrinsicWidth":"magritte-item-intrinsic-width___hf4d2_7-2-31","first-item-content":"magritte-first-item-content___G98CF_7-2-31","firstItemContent":"magritte-first-item-content___G98CF_7-2-31","divider":"magritte-divider___J8lfR_7-2-31","interactive-text":"magritte-interactive-text___fBwYg_7-2-31","interactiveText":"magritte-interactive-text___fBwYg_7-2-31","static-text":"magritte-static-text___pslMP_7-2-31","staticText":"magritte-static-text___pslMP_7-2-31","text-with-ellipsis":"magritte-text-with-ellipsis___bEJaf_7-2-31","textWithEllipsis":"magritte-text-with-ellipsis___bEJaf_7-2-31","bottom-sheet-item":"magritte-bottom-sheet-item___lc1TO_7-2-31","bottomSheetItem":"magritte-bottom-sheet-item___lc1TO_7-2-31","drop-item":"magritte-drop-item___62c-z_7-2-31","dropItem":"magritte-drop-item___62c-z_7-2-31"};
|
|
3
|
+
|
|
4
|
+
export { styles as s };
|
|
5
|
+
//# sourceMappingURL=breadcrumbs-nPdT6RtT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breadcrumbs-nPdT6RtT.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
package/index.css
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
:root{
|
|
2
|
-
--magritte-color-component-action-stroke-state-accent-focused-accessible-v25-1-
|
|
3
|
-
--magritte-color-component-breadcrumbs-text-primary-v25-1-
|
|
4
|
-
--magritte-color-component-breadcrumbs-text-secondary-v25-1-
|
|
5
|
-
--magritte-color-component-breadcrumbs-text-tertiary-v25-1-
|
|
6
|
-
--magritte-color-component-breadcrumbs-text-state-secondary-hovered-v25-1-
|
|
7
|
-
--magritte-color-component-breadcrumbs-text-state-secondary-pressed-v25-1-
|
|
2
|
+
--magritte-color-component-action-stroke-state-accent-focused-accessible-v25-1-1:#0070ff7a;
|
|
3
|
+
--magritte-color-component-breadcrumbs-text-primary-v25-1-1:#20262b;
|
|
4
|
+
--magritte-color-component-breadcrumbs-text-secondary-v25-1-1:#768694;
|
|
5
|
+
--magritte-color-component-breadcrumbs-text-tertiary-v25-1-1:#DCE3EB;
|
|
6
|
+
--magritte-color-component-breadcrumbs-text-state-secondary-hovered-v25-1-1:#6a7885;
|
|
7
|
+
--magritte-color-component-breadcrumbs-text-state-secondary-pressed-v25-1-1:#8293a2;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
.magritte-night-theme{
|
|
11
|
-
--magritte-color-component-breadcrumbs-text-primary-v25-1-
|
|
12
|
-
--magritte-color-component-breadcrumbs-text-secondary-v25-1-
|
|
13
|
-
--magritte-color-component-breadcrumbs-text-tertiary-v25-1-
|
|
14
|
-
--magritte-color-component-breadcrumbs-text-state-secondary-hovered-v25-1-
|
|
15
|
-
--magritte-color-component-breadcrumbs-text-state-secondary-pressed-v25-1-
|
|
11
|
+
--magritte-color-component-breadcrumbs-text-primary-v25-1-1:#D4D4D4;
|
|
12
|
+
--magritte-color-component-breadcrumbs-text-secondary-v25-1-1:#ABABAB;
|
|
13
|
+
--magritte-color-component-breadcrumbs-text-tertiary-v25-1-1:#3B3B3B;
|
|
14
|
+
--magritte-color-component-breadcrumbs-text-state-secondary-hovered-v25-1-1:#767676;
|
|
15
|
+
--magritte-color-component-breadcrumbs-text-state-secondary-pressed-v25-1-1:#5E5E5E;
|
|
16
16
|
}
|
|
17
|
-
.magritte-breadcrumbs___Go2gs_7-2-
|
|
17
|
+
.magritte-breadcrumbs___Go2gs_7-2-31{
|
|
18
18
|
position:relative;
|
|
19
19
|
min-width:0;
|
|
20
20
|
max-width:100%;
|
|
21
21
|
padding:12px 0;
|
|
22
22
|
}
|
|
23
|
-
.magritte-unbreakable-container___VcQQ2_7-2-
|
|
24
|
-
--magritte-ui-text-color-override:var(--magritte-color-component-breadcrumbs-text-tertiary-v25-1-
|
|
23
|
+
.magritte-unbreakable-container___VcQQ2_7-2-31{
|
|
24
|
+
--magritte-ui-text-color-override:var(--magritte-color-component-breadcrumbs-text-tertiary-v25-1-1);
|
|
25
25
|
position:relative;
|
|
26
26
|
display:flex;
|
|
27
27
|
flex-wrap:nowrap;
|
|
@@ -33,84 +33,84 @@
|
|
|
33
33
|
list-style:none;
|
|
34
34
|
white-space:nowrap;
|
|
35
35
|
}
|
|
36
|
-
.magritte-invisible-container___V0W27_7-2-
|
|
36
|
+
.magritte-invisible-container___V0W27_7-2-31{
|
|
37
37
|
position:absolute;
|
|
38
38
|
top:0;
|
|
39
39
|
left:0;
|
|
40
40
|
visibility:hidden;
|
|
41
41
|
pointer-events:none;
|
|
42
42
|
}
|
|
43
|
-
.magritte-ellipsis___-3wI7_7-2-
|
|
43
|
+
.magritte-ellipsis___-3wI7_7-2-31{
|
|
44
44
|
height:20px;
|
|
45
45
|
width:20px;
|
|
46
46
|
}
|
|
47
|
-
.magritte-ellipsis___-3wI7_7-2-
|
|
48
|
-
outline:var(--magritte-color-component-action-stroke-state-accent-focused-accessible-v25-1-
|
|
47
|
+
.magritte-ellipsis___-3wI7_7-2-31.focus-visible{
|
|
48
|
+
outline:var(--magritte-color-component-action-stroke-state-accent-focused-accessible-v25-1-1) solid 4px;
|
|
49
49
|
}
|
|
50
|
-
.magritte-item___oaSMH_7-2-
|
|
50
|
+
.magritte-item___oaSMH_7-2-31{
|
|
51
51
|
display:flex;
|
|
52
52
|
flex-shrink:0;
|
|
53
53
|
}
|
|
54
|
-
.magritte-first-item___N6MFS_7-2-
|
|
54
|
+
.magritte-first-item___N6MFS_7-2-31{
|
|
55
55
|
min-width:calc(20px + 6px * 2 + 5px);
|
|
56
56
|
overflow:hidden;
|
|
57
57
|
}
|
|
58
|
-
.magritte-first-item-shrinkable___ZDlYS_7-2-
|
|
58
|
+
.magritte-first-item-shrinkable___ZDlYS_7-2-31{
|
|
59
59
|
flex-shrink:1;
|
|
60
60
|
}
|
|
61
|
-
.magritte-item-intrinsic-width___hf4d2_7-2-
|
|
61
|
+
.magritte-item-intrinsic-width___hf4d2_7-2-31{
|
|
62
62
|
width:max-content;
|
|
63
63
|
min-width:max-content;
|
|
64
64
|
max-width:none;
|
|
65
65
|
flex-shrink:0;
|
|
66
66
|
}
|
|
67
|
-
.magritte-first-item-content___G98CF_7-2-
|
|
67
|
+
.magritte-first-item-content___G98CF_7-2-31{
|
|
68
68
|
min-width:0;
|
|
69
69
|
display:flex;
|
|
70
70
|
}
|
|
71
|
-
.magritte-divider___J8lfR_7-2-
|
|
72
|
-
--magritte-ui-text-color-override:var(--magritte-color-component-breadcrumbs-text-tertiary-v25-1-
|
|
71
|
+
.magritte-divider___J8lfR_7-2-31{
|
|
72
|
+
--magritte-ui-text-color-override:var(--magritte-color-component-breadcrumbs-text-tertiary-v25-1-1);
|
|
73
73
|
position:relative;
|
|
74
74
|
bottom:1px;
|
|
75
75
|
padding:0 6px;
|
|
76
76
|
width:5px;
|
|
77
77
|
text-align:center;
|
|
78
78
|
}
|
|
79
|
-
.magritte-interactive-text___fBwYg_7-2-
|
|
80
|
-
--magritte-ui-text-color-override:var(--magritte-color-component-breadcrumbs-text-secondary-v25-1-
|
|
79
|
+
.magritte-interactive-text___fBwYg_7-2-31{
|
|
80
|
+
--magritte-ui-text-color-override:var(--magritte-color-component-breadcrumbs-text-secondary-v25-1-1);
|
|
81
81
|
}
|
|
82
82
|
@media (min-width: 1020px){
|
|
83
|
-
body.magritte-old-layout .magritte-interactive-text___fBwYg_7-2-
|
|
84
|
-
--magritte-ui-text-color-override:var(--magritte-color-component-breadcrumbs-text-state-secondary-hovered-v25-1-
|
|
83
|
+
body.magritte-old-layout .magritte-interactive-text___fBwYg_7-2-31:hover{
|
|
84
|
+
--magritte-ui-text-color-override:var(--magritte-color-component-breadcrumbs-text-state-secondary-hovered-v25-1-1);
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
@media (min-width: 1024px){
|
|
88
|
-
body:not(.magritte-old-layout) .magritte-interactive-text___fBwYg_7-2-
|
|
89
|
-
--magritte-ui-text-color-override:var(--magritte-color-component-breadcrumbs-text-state-secondary-hovered-v25-1-
|
|
88
|
+
body:not(.magritte-old-layout) .magritte-interactive-text___fBwYg_7-2-31:hover{
|
|
89
|
+
--magritte-ui-text-color-override:var(--magritte-color-component-breadcrumbs-text-state-secondary-hovered-v25-1-1);
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
|
-
.magritte-interactive-text___fBwYg_7-2-
|
|
93
|
-
--magritte-ui-text-color-override:var(--magritte-color-component-breadcrumbs-text-state-secondary-pressed-v25-1-
|
|
92
|
+
.magritte-interactive-text___fBwYg_7-2-31:active{
|
|
93
|
+
--magritte-ui-text-color-override:var(--magritte-color-component-breadcrumbs-text-state-secondary-pressed-v25-1-1);
|
|
94
94
|
}
|
|
95
|
-
.magritte-static-text___pslMP_7-2-
|
|
96
|
-
--magritte-ui-text-color-override:var(--magritte-color-component-breadcrumbs-text-primary-v25-1-
|
|
95
|
+
.magritte-static-text___pslMP_7-2-31{
|
|
96
|
+
--magritte-ui-text-color-override:var(--magritte-color-component-breadcrumbs-text-primary-v25-1-1);
|
|
97
97
|
}
|
|
98
|
-
.magritte-text-with-ellipsis___bEJaf_7-2-
|
|
98
|
+
.magritte-text-with-ellipsis___bEJaf_7-2-31{
|
|
99
99
|
display:block;
|
|
100
100
|
overflow:hidden;
|
|
101
101
|
text-overflow:ellipsis;
|
|
102
102
|
}
|
|
103
|
-
.magritte-bottom-sheet-item___lc1TO_7-2-
|
|
104
|
-
--magritte-ui-text-color-override:var(--magritte-color-component-breadcrumbs-text-primary-v25-1-
|
|
103
|
+
.magritte-bottom-sheet-item___lc1TO_7-2-31{
|
|
104
|
+
--magritte-ui-text-color-override:var(--magritte-color-component-breadcrumbs-text-primary-v25-1-1);
|
|
105
105
|
overflow:hidden;
|
|
106
106
|
text-overflow:ellipsis;
|
|
107
107
|
white-space:nowrap;
|
|
108
108
|
line-height:22px;
|
|
109
109
|
margin-bottom:8px;
|
|
110
110
|
}
|
|
111
|
-
.magritte-drop-item___62c-z_7-2-
|
|
112
|
-
--magritte-ui-text-color-override:var(--magritte-color-component-breadcrumbs-text-primary-v25-1-
|
|
111
|
+
.magritte-drop-item___62c-z_7-2-31{
|
|
112
|
+
--magritte-ui-text-color-override:var(--magritte-color-component-breadcrumbs-text-primary-v25-1-1);
|
|
113
113
|
}
|
|
114
|
-
.magritte-drop-item___62c-z_7-2-
|
|
114
|
+
.magritte-drop-item___62c-z_7-2-31:not(:last-child){
|
|
115
115
|
margin-bottom:4px;
|
|
116
116
|
}
|
package/index.js
CHANGED
|
@@ -9,7 +9,7 @@ import '@hh.ru/magritte-common-resize';
|
|
|
9
9
|
import '@hh.ru/magritte-ui-bottom-sheet';
|
|
10
10
|
import './BreadcrumbsDivider.js';
|
|
11
11
|
import '@hh.ru/magritte-ui-typography';
|
|
12
|
-
import './breadcrumbs-
|
|
12
|
+
import './breadcrumbs-nPdT6RtT.js';
|
|
13
13
|
import '@hh.ru/magritte-ui-breakpoint';
|
|
14
14
|
import '@hh.ru/magritte-ui-card';
|
|
15
15
|
import '@hh.ru/magritte-ui-drop';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hh.ru/magritte-ui-breadcrumbs",
|
|
3
|
-
"version": "7.2.
|
|
3
|
+
"version": "7.2.31",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"sideEffects": [
|
|
@@ -12,24 +12,24 @@
|
|
|
12
12
|
"prepack": "yarn root:prepack $(pwd)",
|
|
13
13
|
"postpublish": "yarn root:postpublish $(pwd)",
|
|
14
14
|
"stylelint-check": "yarn root:stylelint-check $(pwd)",
|
|
15
|
-
"
|
|
15
|
+
"lint-check": "yarn root:lint-check $(pwd)",
|
|
16
16
|
"ts-config": "yarn root:ts-config $(pwd)",
|
|
17
17
|
"ts-check": "yarn root:ts-check $(pwd)",
|
|
18
18
|
"test": "yarn root:test $(pwd)",
|
|
19
19
|
"watch": "yarn root:watch $(pwd)"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@hh.ru/magritte-common-func-utils": "1.3.
|
|
23
|
-
"@hh.ru/magritte-common-resize": "0.2.
|
|
24
|
-
"@hh.ru/magritte-design-tokens": "25.1.
|
|
25
|
-
"@hh.ru/magritte-types": "5.0.
|
|
26
|
-
"@hh.ru/magritte-ui-bottom-sheet": "9.4.
|
|
27
|
-
"@hh.ru/magritte-ui-breakpoint": "6.1.
|
|
28
|
-
"@hh.ru/magritte-ui-card": "8.7.
|
|
29
|
-
"@hh.ru/magritte-ui-drop": "12.3.
|
|
30
|
-
"@hh.ru/magritte-ui-link": "7.2.
|
|
31
|
-
"@hh.ru/magritte-ui-mock-component": "1.1.
|
|
32
|
-
"@hh.ru/magritte-ui-typography": "5.3.
|
|
22
|
+
"@hh.ru/magritte-common-func-utils": "1.3.16",
|
|
23
|
+
"@hh.ru/magritte-common-resize": "0.2.3",
|
|
24
|
+
"@hh.ru/magritte-design-tokens": "25.1.1",
|
|
25
|
+
"@hh.ru/magritte-types": "5.0.8",
|
|
26
|
+
"@hh.ru/magritte-ui-bottom-sheet": "9.4.47",
|
|
27
|
+
"@hh.ru/magritte-ui-breakpoint": "6.1.2",
|
|
28
|
+
"@hh.ru/magritte-ui-card": "8.7.4",
|
|
29
|
+
"@hh.ru/magritte-ui-drop": "12.3.59",
|
|
30
|
+
"@hh.ru/magritte-ui-link": "7.2.4",
|
|
31
|
+
"@hh.ru/magritte-ui-mock-component": "1.1.8",
|
|
32
|
+
"@hh.ru/magritte-ui-typography": "5.3.14"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"classnames": ">=2.3.2",
|
|
@@ -38,5 +38,5 @@
|
|
|
38
38
|
"publishConfig": {
|
|
39
39
|
"access": "public"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "46d606980abbb523a41afba452c0a852ee902864"
|
|
42
42
|
}
|
package/breadcrumbs-D6BNMk4L.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import './index.css';
|
|
2
|
-
var styles = {"breadcrumbs":"magritte-breadcrumbs___Go2gs_7-2-29","unbreakable-container":"magritte-unbreakable-container___VcQQ2_7-2-29","unbreakableContainer":"magritte-unbreakable-container___VcQQ2_7-2-29","invisible-container":"magritte-invisible-container___V0W27_7-2-29","invisibleContainer":"magritte-invisible-container___V0W27_7-2-29","ellipsis":"magritte-ellipsis___-3wI7_7-2-29","item":"magritte-item___oaSMH_7-2-29","first-item":"magritte-first-item___N6MFS_7-2-29","firstItem":"magritte-first-item___N6MFS_7-2-29","first-item-shrinkable":"magritte-first-item-shrinkable___ZDlYS_7-2-29","firstItemShrinkable":"magritte-first-item-shrinkable___ZDlYS_7-2-29","item-intrinsic-width":"magritte-item-intrinsic-width___hf4d2_7-2-29","itemIntrinsicWidth":"magritte-item-intrinsic-width___hf4d2_7-2-29","first-item-content":"magritte-first-item-content___G98CF_7-2-29","firstItemContent":"magritte-first-item-content___G98CF_7-2-29","divider":"magritte-divider___J8lfR_7-2-29","interactive-text":"magritte-interactive-text___fBwYg_7-2-29","interactiveText":"magritte-interactive-text___fBwYg_7-2-29","static-text":"magritte-static-text___pslMP_7-2-29","staticText":"magritte-static-text___pslMP_7-2-29","text-with-ellipsis":"magritte-text-with-ellipsis___bEJaf_7-2-29","textWithEllipsis":"magritte-text-with-ellipsis___bEJaf_7-2-29","bottom-sheet-item":"magritte-bottom-sheet-item___lc1TO_7-2-29","bottomSheetItem":"magritte-bottom-sheet-item___lc1TO_7-2-29","drop-item":"magritte-drop-item___62c-z_7-2-29","dropItem":"magritte-drop-item___62c-z_7-2-29"};
|
|
3
|
-
|
|
4
|
-
export { styles as s };
|
|
5
|
-
//# sourceMappingURL=breadcrumbs-D6BNMk4L.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumbs-D6BNMk4L.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|