@hh.ru/magritte-ui-nav-bar 1.3.15 → 1.3.16
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/{NavBar-CvsIjCm0.js → NavBar-CNO3MlXV.js} +2 -2
- package/{NavBar-CvsIjCm0.js.map → NavBar-CNO3MlXV.js.map} +1 -1
- package/index.css +103 -103
- package/index.js +1 -1
- package/internal/PaneStore.js +1 -1
- package/internal/useScrollAdapter.js +5 -1
- package/internal/useScrollAdapter.js.map +1 -1
- package/package.json +2 -2
- package/public/Actions.js +1 -1
- package/public/LayoutMorph.js +1 -1
- package/public/LayoutStage.js +1 -1
- package/public/Morph.js +1 -1
- package/public/NavBar.js +1 -1
- package/public/Pane.js +1 -1
- package/public/Stage.js +1 -1
- package/public/TitleContainer.js +1 -1
|
@@ -15,7 +15,7 @@ import { useSnapScroll } from './internal/useSnapScroll.js';
|
|
|
15
15
|
import { useSyncMotionValue } from './internal/useSyncMotionValue.js';
|
|
16
16
|
import { useInitOnce, scheduleMicro, scheduleMacro, remap } from './internal/utils.js';
|
|
17
17
|
|
|
18
|
-
var styles = {"actions-container":"magritte-actions-container___CBgYW_1-3-
|
|
18
|
+
var styles = {"actions-container":"magritte-actions-container___CBgYW_1-3-16","actionsContainer":"magritte-actions-container___CBgYW_1-3-16","actions-no-children":"magritte-actions-no-children___rgJUl_1-3-16","actionsNoChildren":"magritte-actions-no-children___rgJUl_1-3-16","actions-left-slot":"magritte-actions-left-slot___DNOj0_1-3-16","actionsLeftSlot":"magritte-actions-left-slot___DNOj0_1-3-16","actions-right-slot":"magritte-actions-right-slot___aodtj_1-3-16","actionsRightSlot":"magritte-actions-right-slot___aodtj_1-3-16","navbar-transparent-end":"magritte-navbar-transparent-end___6KqLR_1-3-16","navbarTransparentEnd":"magritte-navbar-transparent-end___6KqLR_1-3-16","actions-start-stage":"magritte-actions-start-stage___MJ67a_1-3-16","actionsStartStage":"magritte-actions-start-stage___MJ67a_1-3-16","actions-side-slot-content":"magritte-actions-side-slot-content___TlHrX_1-3-16","actionsSideSlotContent":"magritte-actions-side-slot-content___TlHrX_1-3-16","actions-icon-morph":"magritte-actions-icon-morph___-nNgW_1-3-16","actionsIconMorph":"magritte-actions-icon-morph___-nNgW_1-3-16","navbar-transparent-start":"magritte-navbar-transparent-start___wysv0_1-3-16","navbarTransparentStart":"magritte-navbar-transparent-start___wysv0_1-3-16","actions-end-stage":"magritte-actions-end-stage___qHtTV_1-3-16","actionsEndStage":"magritte-actions-end-stage___qHtTV_1-3-16","navbar-not-transparent":"magritte-navbar-not-transparent___5KZNp_1-3-16","navbarNotTransparent":"magritte-navbar-not-transparent___5KZNp_1-3-16","actions-only-stage":"magritte-actions-only-stage___cg10A_1-3-16","actionsOnlyStage":"magritte-actions-only-stage___cg10A_1-3-16","actions-side-slot-content-clone":"magritte-actions-side-slot-content-clone___jDxVm_1-3-16","actionsSideSlotContentClone":"magritte-actions-side-slot-content-clone___jDxVm_1-3-16","actions-center-slot":"magritte-actions-center-slot___hLAy6_1-3-16","actionsCenterSlot":"magritte-actions-center-slot___hLAy6_1-3-16","actions-center-slot-centered":"magritte-actions-center-slot-centered___merXQ_1-3-16","actionsCenterSlotCentered":"magritte-actions-center-slot-centered___merXQ_1-3-16","title-container-wrapper":"magritte-title-container-wrapper___DQUcj_1-3-16","titleContainerWrapper":"magritte-title-container-wrapper___DQUcj_1-3-16","title-main-part":"magritte-title-main-part___npoHN_1-3-16","titleMainPart":"magritte-title-main-part___npoHN_1-3-16","title-left-slot":"magritte-title-left-slot___HTE7h_1-3-16","titleLeftSlot":"magritte-title-left-slot___HTE7h_1-3-16","title-container":"magritte-title-container___y9AIx_1-3-16","titleContainer":"magritte-title-container___y9AIx_1-3-16","subtitle-container":"magritte-subtitle-container___nVUBu_1-3-16","subtitleContainer":"magritte-subtitle-container___nVUBu_1-3-16","centered":"magritte-centered___Y2mlP_1-3-16","title-morph-item":"magritte-title-morph-item___t7Wf3_1-3-16","titleMorphItem":"magritte-title-morph-item___t7Wf3_1-3-16","title":"magritte-title___ZbLgP_1-3-16","pane-content":"magritte-pane-content___UVmC6_1-3-16","paneContent":"magritte-pane-content___UVmC6_1-3-16","pane-background":"magritte-pane-background___PDZAX_1-3-16","paneBackground":"magritte-pane-background___PDZAX_1-3-16","morph-item":"magritte-morph-item___8kF46_1-3-16","morphItem":"magritte-morph-item___8kF46_1-3-16","morph-item-top":"magritte-morph-item-top___WPEkn_1-3-16","morphItemTop":"magritte-morph-item-top___WPEkn_1-3-16","morph-item-bottom":"magritte-morph-item-bottom___zNbsF_1-3-16","morphItemBottom":"magritte-morph-item-bottom___zNbsF_1-3-16","morph-item-left":"magritte-morph-item-left___T6AMW_1-3-16","morphItemLeft":"magritte-morph-item-left___T6AMW_1-3-16","morph-item-right":"magritte-morph-item-right___EuT1E_1-3-16","morphItemRight":"magritte-morph-item-right___EuT1E_1-3-16","pane":"magritte-pane___f8eFC_1-3-16","start-state-container":"magritte-start-state-container___giBVb_1-3-16","startStateContainer":"magritte-start-state-container___giBVb_1-3-16","end-state-container":"magritte-end-state-container___uiW8Q_1-3-16","endStateContainer":"magritte-end-state-container___uiW8Q_1-3-16","content-container":"magritte-content-container___7s7vv_1-3-16","contentContainer":"magritte-content-container___7s7vv_1-3-16","next-pane":"magritte-next-pane___H2oxQ_1-3-16","nextPane":"magritte-next-pane___H2oxQ_1-3-16","nav-bar":"magritte-nav-bar___RRGe0_1-3-16","navBar":"magritte-nav-bar___RRGe0_1-3-16","nav-bar-overlay":"magritte-nav-bar-overlay___Mq5ZD_1-3-16","navBarOverlay":"magritte-nav-bar-overlay___Mq5ZD_1-3-16","nav-bar-overlay-wrapper":"magritte-nav-bar-overlay-wrapper___y1VpY_1-3-16","navBarOverlayWrapper":"magritte-nav-bar-overlay-wrapper___y1VpY_1-3-16","nav-bar-content-container":"magritte-nav-bar-content-container___H-WMO_1-3-16","navBarContentContainer":"magritte-nav-bar-content-container___H-WMO_1-3-16","nav-bar-panes-container":"magritte-nav-bar-panes-container___5ZDLa_1-3-16","navBarPanesContainer":"magritte-nav-bar-panes-container___5ZDLa_1-3-16","nav-bar-progressive-blur":"magritte-nav-bar-progressive-blur___qyeUV_1-3-16","navBarProgressiveBlur":"magritte-nav-bar-progressive-blur___qyeUV_1-3-16","nav-bar-stage":"magritte-nav-bar-stage___amDz7_1-3-16","navBarStage":"magritte-nav-bar-stage___amDz7_1-3-16","last-pane":"magritte-last-pane___Hf2No_1-3-16","lastPane":"magritte-last-pane___Hf2No_1-3-16","metrics-mode":"magritte-metrics-mode___h38aX_1-3-16","metricsMode":"magritte-metrics-mode___h38aX_1-3-16","layout-morph":"magritte-layout-morph___I3SPy_1-3-16","layoutMorph":"magritte-layout-morph___I3SPy_1-3-16","animation-stage-progress":"magritte-animation-stage-progress___5FthT_1-3-16","animationStageProgress":"magritte-animation-stage-progress___5FthT_1-3-16","layout-morph-start":"magritte-layout-morph-start___9-krP_1-3-16","layoutMorphStart":"magritte-layout-morph-start___9-krP_1-3-16","layout-morph-end":"magritte-layout-morph-end___LIg4d_1-3-16","layoutMorphEnd":"magritte-layout-morph-end___LIg4d_1-3-16","divider-container":"magritte-divider-container___-NdWi_1-3-16","dividerContainer":"magritte-divider-container___-NdWi_1-3-16"};
|
|
19
19
|
|
|
20
20
|
const NavBarContext = createContext(null);
|
|
21
21
|
const useNavBarContext = () => useContext(NavBarContext);
|
|
@@ -113,4 +113,4 @@ const NavBar = ({ children, transparent = false, startTriggerPosition = 'start',
|
|
|
113
113
|
};
|
|
114
114
|
|
|
115
115
|
export { NavBar as N, styles as s, useNavBarContext as u };
|
|
116
|
-
//# sourceMappingURL=NavBar-
|
|
116
|
+
//# sourceMappingURL=NavBar-CNO3MlXV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavBar-CvsIjCm0.js","sources":["src/public/NavBar.tsx"],"sourcesContent":["import React, { createContext, type RefObject, useContext, useLayoutEffect, useRef, type FC } from 'react';\nimport classNames from 'classnames';\nimport { motion, type MotionStyle, MotionValue, frame } from 'motion/react';\n\nimport { Divider, type ShowDivider } from '@hh.ru/magritte-ui-divider';\nimport { Layer } from '@hh.ru/magritte-ui-layer';\nimport { MetricsProvider } from '@hh.ru/magritte-ui-nav-bar/internal/MetricsProvider';\nimport { PaneStore } from '@hh.ru/magritte-ui-nav-bar/internal/PaneStore';\nimport { useAnimationRanges } from '@hh.ru/magritte-ui-nav-bar/internal/useAnimationRanges';\nimport { useBindScrollToAnimationProgress } from '@hh.ru/magritte-ui-nav-bar/internal/useBindScrollToAnimationProgress';\nimport { useNavBarMetrics } from '@hh.ru/magritte-ui-nav-bar/internal/useNavBarMetrics';\nimport { useResetFocus } from '@hh.ru/magritte-ui-nav-bar/internal/useResetFocus';\nimport { useScrollAdapter } from '@hh.ru/magritte-ui-nav-bar/internal/useScrollAdapter';\nimport { useSnapScroll } from '@hh.ru/magritte-ui-nav-bar/internal/useSnapScroll';\nimport { useSyncMotionValue } from '@hh.ru/magritte-ui-nav-bar/internal/useSyncMotionValue';\nimport { remap, scheduleMicro, scheduleMacro, useInitOnce } from '@hh.ru/magritte-ui-nav-bar/internal/utils';\nimport { type PaneElement, type InternalPaneProps } from '@hh.ru/magritte-ui-nav-bar/public/Pane';\n\nimport styles from './nav-bar.less';\n\ntype PaneStoreContextValue = ((store: PaneStore) => VoidFunction) | null;\nconst NavBarContext = createContext<PaneStoreContextValue>(null);\n\nexport const useNavBarContext = (): PaneStoreContextValue => useContext(NavBarContext);\n\nexport interface NavBarProps {\n /**\n * В качестве потомков могут передаваться только компоненты <Pane />\n */\n children: PaneElement | PaneElement[];\n /**\n * Управляет режимом прозрачности:\n * -- Прозрачность отключена (`false`)\n * -- Прозрачный всегда (`true`)\n * -- Прозрачный в начале анимации (`start`)\n * -- Прозрачный в конце анимации (`end`)\n */\n transparent?: 'start' | 'end' | boolean;\n /**\n * Управляет позицией триггера начала анимации\n */\n startTriggerPosition?: 'start' | 'full-area' | RefObject<HTMLElement | null>;\n /**\n * Управляет позицией триггера конца анимации. Если не передан вычисляется автоматически на основе изменения\n * высоты навбара в процессе анимации и позиции триггера начала анмиации. Если передано число, то интерпретируется\n * как отступ в пикселях от позиции триггера старта анимации.\n */\n endTriggerPosition?: RefObject<HTMLElement | null> | number;\n /**\n * Включает режим когда NavBar не занимает место в лейауте и контент располагается под ним.\n */\n overlay?: boolean;\n /**\n * Управляет режимом автодоскролла. По умолчанию включен.\n */\n snapScroll?: boolean;\n /**\n * Управляет режимом отображения дивайдера:\n * - `false` дивайдер отключен\n * - `always` дивайдер отображается постоянно\n * - `with-scroll` дивайдер отображается только когда контент подскроллен под NavBar\n */\n showDivider?: ShowDivider;\n /**\n * Принимает MotionValue значение которого будет обновляться синхронно с анимацией всего NavBar.\n * Прогресс анимации представляется в виде числа 0..1\n * Предназначен для синхронизации внешних анимаций с анимациями NavBar.\n */\n animationProgress?: MotionValue<number>;\n}\n\nexport const NavBar: FC<NavBarProps> = ({\n children,\n transparent = false,\n startTriggerPosition = 'start',\n endTriggerPosition,\n overlay = false,\n snapScroll: scrollSnapping = true,\n showDivider = false,\n animationProgress,\n}) => {\n const paneStoreRegistry = useInitOnce(() => new Set<PaneStore>());\n const prevFullHeight = useRef<null | number>(0);\n const rootRef = useRef<HTMLDivElement>(null);\n\n const [scrollAdapter, scrollPosition] = useScrollAdapter(rootRef);\n const [getMetrics, invalidateMetrics] = useNavBarMetrics(paneStoreRegistry, rootRef, scrollAdapter);\n const [getAnimationRanges, invalidateAnimationRanges] = useAnimationRanges(paneStoreRegistry, getMetrics);\n const [bindScrollToAnimation, getClosestStops, totalAnimationProgress, dividerStyle] =\n useBindScrollToAnimationProgress(\n scrollPosition,\n getMetrics,\n getAnimationRanges,\n scrollAdapter,\n startTriggerPosition,\n endTriggerPosition\n );\n const snapScroll = useSnapScroll(\n scrollPosition,\n totalAnimationProgress,\n scrollAdapter,\n getClosestStops,\n scrollSnapping\n );\n\n // При получении размеров важно дождаться применения MotionValue к DOM, поэтому используем frame.render\n const bindScrollToAnimationScheduled = useInitOnce(() => scheduleMicro(() => frame.render(bindScrollToAnimation)));\n useResetFocus(rootRef, totalAnimationProgress);\n useSyncMotionValue(totalAnimationProgress, animationProgress);\n\n const dividerVisibility =\n // eslint-disable-next-line no-nested-ternary\n showDivider === 'with-scroll' ? dividerStyle.visibility : showDivider ? 'visible' : 'hidden';\n\n const registerPaneStore = useInitOnce(() => {\n const subscriptions: VoidFunction[] = [];\n\n const updateAnimationParams = () => {\n subscriptions.length = 0;\n invalidateMetrics();\n invalidateAnimationRanges();\n bindScrollToAnimationScheduled();\n const navBarMetrics = getMetrics();\n const fullPanesStartHeight = navBarMetrics.bottom - navBarMetrics.top;\n\n let scroll = scrollAdapter.getScrollTop();\n if (prevFullHeight.current !== null && scroll !== 0) {\n const heightDelta = fullPanesStartHeight - prevFullHeight.current;\n scroll += heightDelta;\n\n requestAnimationFrame(() => {\n scrollPosition.jump(scrollAdapter.getScrollTop() - 1);\n scrollPosition.jump(scrollAdapter.getScrollTop());\n });\n }\n\n const animationRanges = getAnimationRanges();\n [...paneStoreRegistry.values()].forEach((paneStore) => {\n const range = animationRanges.get(paneStore.get('id'));\n if (!range) {\n return;\n }\n const remapFn = remap(\n range[0] === 0 && range[1] === 0\n ? [0, 1]\n : [range[0] / navBarMetrics.animationHeight, range[1] / navBarMetrics.animationHeight],\n [0, 1]\n );\n const motionValue = paneStore.get('motionValue');\n motionValue.set(remapFn(totalAnimationProgress.get()));\n subscriptions.push(totalAnimationProgress.on('change', (value) => motionValue.set(remapFn(value))));\n });\n\n prevFullHeight.current = fullPanesStartHeight;\n };\n\n // основной триггер запуска updateAnimationParams это изменения размеров, обработка которых происходит\n // в очереди микрозадач, поэтому откладываем запуск функции до перехдоа к макрозадачам, чтобы сократить\n // количество вызовов при массовых изменениях\n const onChange = scheduleMacro(updateAnimationParams);\n\n return (paneStore: PaneStore) => {\n const unsubscribe = paneStore.onChange(\n ['startHeight', 'endHeight', 'top', 'foldable', 'animated'],\n onChange\n );\n paneStoreRegistry.add(paneStore);\n return () => {\n paneStoreRegistry.delete(paneStore);\n unsubscribe();\n };\n };\n });\n\n useLayoutEffect(() => {\n bindScrollToAnimation();\n snapScroll();\n if (!rootRef.current || (typeof startTriggerPosition === 'string' && !endTriggerPosition)) {\n return void 0;\n }\n return scrollAdapter.onResize(bindScrollToAnimationScheduled);\n }, [\n startTriggerPosition,\n endTriggerPosition,\n bindScrollToAnimation,\n bindScrollToAnimationScheduled,\n snapScroll,\n scrollAdapter,\n ]);\n\n // Вкладываем панели друг в друга через проп nextPane\n const items = React.Children.toArray(children) as PaneElement[];\n\n const nested = items.reduceRight<PaneElement | null>((acc, child) => {\n return React.cloneElement<InternalPaneProps>(child, {\n ...child.props,\n nextPane: acc,\n }) as PaneElement;\n }, null);\n\n return (\n <Layer layer=\"navigation-bar\">\n <MetricsProvider\n className={classNames(styles.navBar, {\n [styles.navbarTransparentStart]: transparent === 'start',\n [styles.navbarTransparentEnd]: transparent === 'end',\n [styles.navbarNotTransparent]: !transparent,\n [styles.navBarOverlay]: overlay,\n })}\n ref={rootRef}\n measureClassName={styles.metricsMode}\n >\n <div className={styles.navBarOverlayWrapper}>\n <div className={styles.navBarContentContainer}>\n <motion.div\n style={{ '--magritte-ui-navbar-animation-progress': totalAnimationProgress } as MotionStyle}\n className={styles.navBarPanesContainer}\n >\n <NavBarContext.Provider value={registerPaneStore}>{nested}</NavBarContext.Provider>\n </motion.div>\n <motion.div\n className={styles.dividerContainer}\n style={{ ...dividerStyle, visibility: dividerVisibility }}\n >\n <Divider />\n </motion.div>\n </div>\n </div>\n </MetricsProvider>\n </Layer>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NavBar-CNO3MlXV.js","sources":["src/public/NavBar.tsx"],"sourcesContent":["import React, { createContext, type RefObject, useContext, useLayoutEffect, useRef, type FC } from 'react';\nimport classNames from 'classnames';\nimport { motion, type MotionStyle, MotionValue, frame } from 'motion/react';\n\nimport { Divider, type ShowDivider } from '@hh.ru/magritte-ui-divider';\nimport { Layer } from '@hh.ru/magritte-ui-layer';\nimport { MetricsProvider } from '@hh.ru/magritte-ui-nav-bar/internal/MetricsProvider';\nimport { PaneStore } from '@hh.ru/magritte-ui-nav-bar/internal/PaneStore';\nimport { useAnimationRanges } from '@hh.ru/magritte-ui-nav-bar/internal/useAnimationRanges';\nimport { useBindScrollToAnimationProgress } from '@hh.ru/magritte-ui-nav-bar/internal/useBindScrollToAnimationProgress';\nimport { useNavBarMetrics } from '@hh.ru/magritte-ui-nav-bar/internal/useNavBarMetrics';\nimport { useResetFocus } from '@hh.ru/magritte-ui-nav-bar/internal/useResetFocus';\nimport { useScrollAdapter } from '@hh.ru/magritte-ui-nav-bar/internal/useScrollAdapter';\nimport { useSnapScroll } from '@hh.ru/magritte-ui-nav-bar/internal/useSnapScroll';\nimport { useSyncMotionValue } from '@hh.ru/magritte-ui-nav-bar/internal/useSyncMotionValue';\nimport { remap, scheduleMicro, scheduleMacro, useInitOnce } from '@hh.ru/magritte-ui-nav-bar/internal/utils';\nimport { type PaneElement, type InternalPaneProps } from '@hh.ru/magritte-ui-nav-bar/public/Pane';\n\nimport styles from './nav-bar.less';\n\ntype PaneStoreContextValue = ((store: PaneStore) => VoidFunction) | null;\nconst NavBarContext = createContext<PaneStoreContextValue>(null);\n\nexport const useNavBarContext = (): PaneStoreContextValue => useContext(NavBarContext);\n\nexport interface NavBarProps {\n /**\n * В качестве потомков могут передаваться только компоненты <Pane />\n */\n children: PaneElement | PaneElement[];\n /**\n * Управляет режимом прозрачности:\n * -- Прозрачность отключена (`false`)\n * -- Прозрачный всегда (`true`)\n * -- Прозрачный в начале анимации (`start`)\n * -- Прозрачный в конце анимации (`end`)\n */\n transparent?: 'start' | 'end' | boolean;\n /**\n * Управляет позицией триггера начала анимации\n */\n startTriggerPosition?: 'start' | 'full-area' | RefObject<HTMLElement | null>;\n /**\n * Управляет позицией триггера конца анимации. Если не передан вычисляется автоматически на основе изменения\n * высоты навбара в процессе анимации и позиции триггера начала анмиации. Если передано число, то интерпретируется\n * как отступ в пикселях от позиции триггера старта анимации.\n */\n endTriggerPosition?: RefObject<HTMLElement | null> | number;\n /**\n * Включает режим когда NavBar не занимает место в лейауте и контент располагается под ним.\n */\n overlay?: boolean;\n /**\n * Управляет режимом автодоскролла. По умолчанию включен.\n */\n snapScroll?: boolean;\n /**\n * Управляет режимом отображения дивайдера:\n * - `false` дивайдер отключен\n * - `always` дивайдер отображается постоянно\n * - `with-scroll` дивайдер отображается только когда контент подскроллен под NavBar\n */\n showDivider?: ShowDivider;\n /**\n * Принимает MotionValue значение которого будет обновляться синхронно с анимацией всего NavBar.\n * Прогресс анимации представляется в виде числа 0..1\n * Предназначен для синхронизации внешних анимаций с анимациями NavBar.\n */\n animationProgress?: MotionValue<number>;\n}\n\nexport const NavBar: FC<NavBarProps> = ({\n children,\n transparent = false,\n startTriggerPosition = 'start',\n endTriggerPosition,\n overlay = false,\n snapScroll: scrollSnapping = true,\n showDivider = false,\n animationProgress,\n}) => {\n const paneStoreRegistry = useInitOnce(() => new Set<PaneStore>());\n const prevFullHeight = useRef<null | number>(0);\n const rootRef = useRef<HTMLDivElement>(null);\n\n const [scrollAdapter, scrollPosition] = useScrollAdapter(rootRef);\n const [getMetrics, invalidateMetrics] = useNavBarMetrics(paneStoreRegistry, rootRef, scrollAdapter);\n const [getAnimationRanges, invalidateAnimationRanges] = useAnimationRanges(paneStoreRegistry, getMetrics);\n const [bindScrollToAnimation, getClosestStops, totalAnimationProgress, dividerStyle] =\n useBindScrollToAnimationProgress(\n scrollPosition,\n getMetrics,\n getAnimationRanges,\n scrollAdapter,\n startTriggerPosition,\n endTriggerPosition\n );\n const snapScroll = useSnapScroll(\n scrollPosition,\n totalAnimationProgress,\n scrollAdapter,\n getClosestStops,\n scrollSnapping\n );\n\n // При получении размеров важно дождаться применения MotionValue к DOM, поэтому используем frame.render\n const bindScrollToAnimationScheduled = useInitOnce(() => scheduleMicro(() => frame.render(bindScrollToAnimation)));\n useResetFocus(rootRef, totalAnimationProgress);\n useSyncMotionValue(totalAnimationProgress, animationProgress);\n\n const dividerVisibility =\n // eslint-disable-next-line no-nested-ternary\n showDivider === 'with-scroll' ? dividerStyle.visibility : showDivider ? 'visible' : 'hidden';\n\n const registerPaneStore = useInitOnce(() => {\n const subscriptions: VoidFunction[] = [];\n\n const updateAnimationParams = () => {\n subscriptions.length = 0;\n invalidateMetrics();\n invalidateAnimationRanges();\n bindScrollToAnimationScheduled();\n const navBarMetrics = getMetrics();\n const fullPanesStartHeight = navBarMetrics.bottom - navBarMetrics.top;\n\n let scroll = scrollAdapter.getScrollTop();\n if (prevFullHeight.current !== null && scroll !== 0) {\n const heightDelta = fullPanesStartHeight - prevFullHeight.current;\n scroll += heightDelta;\n\n requestAnimationFrame(() => {\n scrollPosition.jump(scrollAdapter.getScrollTop() - 1);\n scrollPosition.jump(scrollAdapter.getScrollTop());\n });\n }\n\n const animationRanges = getAnimationRanges();\n [...paneStoreRegistry.values()].forEach((paneStore) => {\n const range = animationRanges.get(paneStore.get('id'));\n if (!range) {\n return;\n }\n const remapFn = remap(\n range[0] === 0 && range[1] === 0\n ? [0, 1]\n : [range[0] / navBarMetrics.animationHeight, range[1] / navBarMetrics.animationHeight],\n [0, 1]\n );\n const motionValue = paneStore.get('motionValue');\n motionValue.set(remapFn(totalAnimationProgress.get()));\n subscriptions.push(totalAnimationProgress.on('change', (value) => motionValue.set(remapFn(value))));\n });\n\n prevFullHeight.current = fullPanesStartHeight;\n };\n\n // основной триггер запуска updateAnimationParams это изменения размеров, обработка которых происходит\n // в очереди микрозадач, поэтому откладываем запуск функции до перехдоа к макрозадачам, чтобы сократить\n // количество вызовов при массовых изменениях\n const onChange = scheduleMacro(updateAnimationParams);\n\n return (paneStore: PaneStore) => {\n const unsubscribe = paneStore.onChange(\n ['startHeight', 'endHeight', 'top', 'foldable', 'animated'],\n onChange\n );\n paneStoreRegistry.add(paneStore);\n return () => {\n paneStoreRegistry.delete(paneStore);\n unsubscribe();\n };\n };\n });\n\n useLayoutEffect(() => {\n bindScrollToAnimation();\n snapScroll();\n if (!rootRef.current || (typeof startTriggerPosition === 'string' && !endTriggerPosition)) {\n return void 0;\n }\n return scrollAdapter.onResize(bindScrollToAnimationScheduled);\n }, [\n startTriggerPosition,\n endTriggerPosition,\n bindScrollToAnimation,\n bindScrollToAnimationScheduled,\n snapScroll,\n scrollAdapter,\n ]);\n\n // Вкладываем панели друг в друга через проп nextPane\n const items = React.Children.toArray(children) as PaneElement[];\n\n const nested = items.reduceRight<PaneElement | null>((acc, child) => {\n return React.cloneElement<InternalPaneProps>(child, {\n ...child.props,\n nextPane: acc,\n }) as PaneElement;\n }, null);\n\n return (\n <Layer layer=\"navigation-bar\">\n <MetricsProvider\n className={classNames(styles.navBar, {\n [styles.navbarTransparentStart]: transparent === 'start',\n [styles.navbarTransparentEnd]: transparent === 'end',\n [styles.navbarNotTransparent]: !transparent,\n [styles.navBarOverlay]: overlay,\n })}\n ref={rootRef}\n measureClassName={styles.metricsMode}\n >\n <div className={styles.navBarOverlayWrapper}>\n <div className={styles.navBarContentContainer}>\n <motion.div\n style={{ '--magritte-ui-navbar-animation-progress': totalAnimationProgress } as MotionStyle}\n className={styles.navBarPanesContainer}\n >\n <NavBarContext.Provider value={registerPaneStore}>{nested}</NavBarContext.Provider>\n </motion.div>\n <motion.div\n className={styles.dividerContainer}\n style={{ ...dividerStyle, visibility: dividerVisibility }}\n >\n <Divider />\n </motion.div>\n </div>\n </div>\n </MetricsProvider>\n </Layer>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
package/index.css
CHANGED
|
@@ -5,97 +5,97 @@
|
|
|
5
5
|
.magritte-night-theme{
|
|
6
6
|
--magritte-color-background-body-v24-5-0:#000000;
|
|
7
7
|
}
|
|
8
|
-
.magritte-actions-container___CBgYW_1-3-
|
|
8
|
+
.magritte-actions-container___CBgYW_1-3-16{
|
|
9
9
|
display:flex;
|
|
10
10
|
flex-direction:row;
|
|
11
11
|
gap:12px;
|
|
12
12
|
min-height:40px;
|
|
13
13
|
}
|
|
14
|
-
.magritte-actions-no-children___rgJUl_1-3-
|
|
14
|
+
.magritte-actions-no-children___rgJUl_1-3-16{
|
|
15
15
|
justify-content:space-between;
|
|
16
16
|
}
|
|
17
|
-
.magritte-actions-left-slot___DNOj0_1-3-
|
|
18
|
-
.magritte-actions-right-slot___aodtj_1-3-
|
|
17
|
+
.magritte-actions-left-slot___DNOj0_1-3-16,
|
|
18
|
+
.magritte-actions-right-slot___aodtj_1-3-16{
|
|
19
19
|
display:grid;
|
|
20
20
|
flex:0 0 auto;
|
|
21
21
|
}
|
|
22
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
23
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
24
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
25
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
26
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
22
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-16 .magritte-actions-start-stage___MJ67a_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > .magritte-actions-icon-morph___-nNgW_1-3-16:first-child,
|
|
23
|
+
.magritte-navbar-transparent-start___wysv0_1-3-16 .magritte-actions-end-stage___qHtTV_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > .magritte-actions-icon-morph___-nNgW_1-3-16:first-child,
|
|
24
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-actions-start-stage___MJ67a_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > .magritte-actions-icon-morph___-nNgW_1-3-16:first-child,
|
|
25
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-actions-end-stage___qHtTV_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > .magritte-actions-icon-morph___-nNgW_1-3-16:first-child,
|
|
26
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-actions-only-stage___cg10A_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > .magritte-actions-icon-morph___-nNgW_1-3-16:first-child{
|
|
27
27
|
margin-left:-8px;
|
|
28
28
|
}
|
|
29
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
30
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
31
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
32
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
33
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
29
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-16 .magritte-actions-start-stage___MJ67a_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > .magritte-actions-icon-morph___-nNgW_1-3-16:last-child,
|
|
30
|
+
.magritte-navbar-transparent-start___wysv0_1-3-16 .magritte-actions-end-stage___qHtTV_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > .magritte-actions-icon-morph___-nNgW_1-3-16:last-child,
|
|
31
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-actions-start-stage___MJ67a_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > .magritte-actions-icon-morph___-nNgW_1-3-16:last-child,
|
|
32
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-actions-end-stage___qHtTV_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > .magritte-actions-icon-morph___-nNgW_1-3-16:last-child,
|
|
33
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-actions-only-stage___cg10A_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > .magritte-actions-icon-morph___-nNgW_1-3-16:last-child{
|
|
34
34
|
margin-right:-8px;
|
|
35
35
|
}
|
|
36
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
37
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
38
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
39
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
40
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
41
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
42
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
43
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
44
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
45
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
36
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-16 .magritte-actions-start-stage___MJ67a_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content-clone___jDxVm_1-3-16 > :last-child,
|
|
37
|
+
.magritte-navbar-transparent-start___wysv0_1-3-16 .magritte-actions-end-stage___qHtTV_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content-clone___jDxVm_1-3-16 > :last-child,
|
|
38
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-actions-start-stage___MJ67a_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content-clone___jDxVm_1-3-16 > :last-child,
|
|
39
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-actions-end-stage___qHtTV_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content-clone___jDxVm_1-3-16 > :last-child,
|
|
40
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-actions-only-stage___cg10A_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content-clone___jDxVm_1-3-16 > :last-child,
|
|
41
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-16 .magritte-actions-start-stage___MJ67a_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > :last-child:not(.magritte-actions-icon-morph___-nNgW_1-3-16),
|
|
42
|
+
.magritte-navbar-transparent-start___wysv0_1-3-16 .magritte-actions-end-stage___qHtTV_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > :last-child:not(.magritte-actions-icon-morph___-nNgW_1-3-16),
|
|
43
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-actions-start-stage___MJ67a_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > :last-child:not(.magritte-actions-icon-morph___-nNgW_1-3-16),
|
|
44
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-actions-end-stage___qHtTV_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > :last-child:not(.magritte-actions-icon-morph___-nNgW_1-3-16),
|
|
45
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-actions-only-stage___cg10A_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > :last-child:not(.magritte-actions-icon-morph___-nNgW_1-3-16){
|
|
46
46
|
--magritte-ui-icon-margin-right-override:-8px;
|
|
47
47
|
}
|
|
48
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
49
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
50
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
51
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
52
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
53
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
54
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
55
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
56
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
57
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
48
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-16 .magritte-actions-start-stage___MJ67a_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content-clone___jDxVm_1-3-16 > :first-child,
|
|
49
|
+
.magritte-navbar-transparent-start___wysv0_1-3-16 .magritte-actions-end-stage___qHtTV_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content-clone___jDxVm_1-3-16 > :first-child,
|
|
50
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-actions-start-stage___MJ67a_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content-clone___jDxVm_1-3-16 > :first-child,
|
|
51
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-actions-end-stage___qHtTV_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content-clone___jDxVm_1-3-16 > :first-child,
|
|
52
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-actions-only-stage___cg10A_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content-clone___jDxVm_1-3-16 > :first-child,
|
|
53
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-16 .magritte-actions-start-stage___MJ67a_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > :first-child:not(.magritte-actions-icon-morph___-nNgW_1-3-16),
|
|
54
|
+
.magritte-navbar-transparent-start___wysv0_1-3-16 .magritte-actions-end-stage___qHtTV_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > :first-child:not(.magritte-actions-icon-morph___-nNgW_1-3-16),
|
|
55
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-actions-start-stage___MJ67a_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > :first-child:not(.magritte-actions-icon-morph___-nNgW_1-3-16),
|
|
56
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-actions-end-stage___qHtTV_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > :first-child:not(.magritte-actions-icon-morph___-nNgW_1-3-16),
|
|
57
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-actions-only-stage___cg10A_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > :first-child:not(.magritte-actions-icon-morph___-nNgW_1-3-16){
|
|
58
58
|
--magritte-ui-icon-margin-left-override:-8px;
|
|
59
59
|
}
|
|
60
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
61
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
60
|
+
.magritte-navbar-transparent-start___wysv0_1-3-16 .magritte-actions-only-stage___cg10A_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > :first-child,
|
|
61
|
+
.magritte-navbar-transparent-start___wysv0_1-3-16 .magritte-actions-only-stage___cg10A_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content-clone___jDxVm_1-3-16 > :first-child{
|
|
62
62
|
--magritte-ui-icon-margin-left-override:calc(-8px * var(--magritte-ui-navbar-animation-progress));
|
|
63
63
|
}
|
|
64
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
65
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
64
|
+
.magritte-navbar-transparent-start___wysv0_1-3-16 .magritte-actions-only-stage___cg10A_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > :last-child,
|
|
65
|
+
.magritte-navbar-transparent-start___wysv0_1-3-16 .magritte-actions-only-stage___cg10A_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content-clone___jDxVm_1-3-16 > :last-child{
|
|
66
66
|
--magritte-ui-icon-margin-right-override:calc(-8px * var(--magritte-ui-navbar-animation-progress));
|
|
67
67
|
}
|
|
68
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
69
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
68
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-16 .magritte-actions-only-stage___cg10A_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > :first-child,
|
|
69
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-16 .magritte-actions-only-stage___cg10A_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content-clone___jDxVm_1-3-16 > :first-child{
|
|
70
70
|
--magritte-ui-icon-margin-left-override:calc(-8px * (1 - var(--magritte-ui-navbar-animation-progress)));
|
|
71
71
|
}
|
|
72
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
73
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
72
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-16 .magritte-actions-only-stage___cg10A_1-3-16 .magritte-actions-right-slot___aodtj_1-3-16 .magritte-actions-side-slot-content___TlHrX_1-3-16 > :last-child,
|
|
73
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-16 .magritte-actions-only-stage___cg10A_1-3-16 .magritte-actions-left-slot___DNOj0_1-3-16 .magritte-actions-side-slot-content-clone___jDxVm_1-3-16 > :last-child{
|
|
74
74
|
--magritte-ui-icon-margin-right-override:calc(-8px * (1 - var(--magritte-ui-navbar-animation-progress)));
|
|
75
75
|
}
|
|
76
|
-
.magritte-actions-center-slot___hLAy6_1-3-
|
|
76
|
+
.magritte-actions-center-slot___hLAy6_1-3-16{
|
|
77
77
|
display:flex;
|
|
78
78
|
flex:1 1 auto;
|
|
79
79
|
min-width:0;
|
|
80
80
|
}
|
|
81
|
-
.magritte-actions-center-slot___hLAy6_1-3-
|
|
81
|
+
.magritte-actions-center-slot___hLAy6_1-3-16.magritte-actions-center-slot-centered___merXQ_1-3-16{
|
|
82
82
|
justify-content:center;
|
|
83
83
|
}
|
|
84
|
-
.magritte-actions-side-slot-content___TlHrX_1-3-
|
|
85
|
-
.magritte-actions-side-slot-content-clone___jDxVm_1-3-
|
|
84
|
+
.magritte-actions-side-slot-content___TlHrX_1-3-16,
|
|
85
|
+
.magritte-actions-side-slot-content-clone___jDxVm_1-3-16{
|
|
86
86
|
grid-area:1 / 1;
|
|
87
87
|
display:flex;
|
|
88
88
|
align-items:center;
|
|
89
89
|
gap:4px;
|
|
90
90
|
}
|
|
91
|
-
.magritte-actions-side-slot-content-clone___jDxVm_1-3-
|
|
91
|
+
.magritte-actions-side-slot-content-clone___jDxVm_1-3-16{
|
|
92
92
|
visibility:hidden;
|
|
93
93
|
z-index:0;
|
|
94
94
|
pointer-events:none;
|
|
95
95
|
user-select:none;
|
|
96
96
|
contain:style layout;
|
|
97
97
|
}
|
|
98
|
-
.magritte-title-container-wrapper___DQUcj_1-3-
|
|
98
|
+
.magritte-title-container-wrapper___DQUcj_1-3-16{
|
|
99
99
|
display:flex;
|
|
100
100
|
flex-direction:row;
|
|
101
101
|
align-items:center;
|
|
@@ -103,45 +103,45 @@
|
|
|
103
103
|
min-width:0;
|
|
104
104
|
gap:12px;
|
|
105
105
|
}
|
|
106
|
-
.magritte-title-main-part___npoHN_1-3-
|
|
106
|
+
.magritte-title-main-part___npoHN_1-3-16{
|
|
107
107
|
display:flex;
|
|
108
108
|
flex-direction:column;
|
|
109
109
|
flex:0 1 auto;
|
|
110
110
|
min-width:0;
|
|
111
111
|
}
|
|
112
|
-
.magritte-title-left-slot___HTE7h_1-3-
|
|
112
|
+
.magritte-title-left-slot___HTE7h_1-3-16{
|
|
113
113
|
display:flex;
|
|
114
114
|
align-items:center;
|
|
115
115
|
flex:0 0 auto;
|
|
116
116
|
}
|
|
117
|
-
.magritte-title-container___y9AIx_1-3-
|
|
117
|
+
.magritte-title-container___y9AIx_1-3-16{
|
|
118
118
|
display:flex;
|
|
119
119
|
flex-direction:row;
|
|
120
120
|
align-items:center;
|
|
121
121
|
gap:5px;
|
|
122
122
|
}
|
|
123
|
-
.magritte-subtitle-container___nVUBu_1-3-
|
|
123
|
+
.magritte-subtitle-container___nVUBu_1-3-16{
|
|
124
124
|
display:flex;
|
|
125
125
|
}
|
|
126
|
-
.magritte-centered___Y2mlP_1-3-
|
|
127
|
-
.magritte-centered___Y2mlP_1-3-
|
|
126
|
+
.magritte-centered___Y2mlP_1-3-16 .magritte-subtitle-container___nVUBu_1-3-16,
|
|
127
|
+
.magritte-centered___Y2mlP_1-3-16 .magritte-title-container___y9AIx_1-3-16{
|
|
128
128
|
justify-content:center;
|
|
129
129
|
}
|
|
130
|
-
.magritte-title-morph-item___t7Wf3_1-3-
|
|
130
|
+
.magritte-title-morph-item___t7Wf3_1-3-16{
|
|
131
131
|
display:flex;
|
|
132
132
|
min-width:0;
|
|
133
133
|
}
|
|
134
|
-
.magritte-title___ZbLgP_1-3-
|
|
134
|
+
.magritte-title___ZbLgP_1-3-16{
|
|
135
135
|
display:flex;
|
|
136
136
|
flex:0 1 auto;
|
|
137
137
|
min-width:0;
|
|
138
138
|
}
|
|
139
|
-
.magritte-pane-content___UVmC6_1-3-
|
|
139
|
+
.magritte-pane-content___UVmC6_1-3-16{
|
|
140
140
|
position:relative;
|
|
141
141
|
pointer-events:none;
|
|
142
142
|
z-index:2;
|
|
143
143
|
}
|
|
144
|
-
.magritte-pane-background___PDZAX_1-3-
|
|
144
|
+
.magritte-pane-background___PDZAX_1-3-16{
|
|
145
145
|
position:absolute;
|
|
146
146
|
background-color:var(--magritte-ui-nav-bar-background-color-override, var(--magritte-ui-container-background-color-override, var(--magritte-color-background-body-v24-5-0)));
|
|
147
147
|
opacity:0;
|
|
@@ -149,43 +149,43 @@
|
|
|
149
149
|
z-index:-1;
|
|
150
150
|
transform-origin:0 0;
|
|
151
151
|
}
|
|
152
|
-
.magritte-navbar-transparent-start___wysv0_1-3-
|
|
152
|
+
.magritte-navbar-transparent-start___wysv0_1-3-16 .magritte-pane-background___PDZAX_1-3-16{
|
|
153
153
|
opacity:calc(var(--magritte-ui-navbar-animation-progress) * 0.95);
|
|
154
154
|
}
|
|
155
|
-
.magritte-navbar-transparent-end___6KqLR_1-3-
|
|
155
|
+
.magritte-navbar-transparent-end___6KqLR_1-3-16 .magritte-pane-background___PDZAX_1-3-16{
|
|
156
156
|
opacity:calc((1 - var(--magritte-ui-navbar-animation-progress)) * 0.95);
|
|
157
157
|
}
|
|
158
|
-
.magritte-navbar-not-transparent___5KZNp_1-3-
|
|
158
|
+
.magritte-navbar-not-transparent___5KZNp_1-3-16 .magritte-pane-background___PDZAX_1-3-16{
|
|
159
159
|
opacity:0.95;
|
|
160
160
|
}
|
|
161
|
-
.magritte-morph-item___8kF46_1-3-
|
|
161
|
+
.magritte-morph-item___8kF46_1-3-16{
|
|
162
162
|
line-height:0;
|
|
163
163
|
transform-origin:var(--magritte-ui-morph-item-transform-origin-x, center) var(--magritte-ui-morph-item-transform-origin-y, center);
|
|
164
164
|
}
|
|
165
|
-
.magritte-morph-item-top___WPEkn_1-3-
|
|
165
|
+
.magritte-morph-item-top___WPEkn_1-3-16{
|
|
166
166
|
--magritte-ui-morph-item-transform-origin-y:top;
|
|
167
167
|
}
|
|
168
|
-
.magritte-morph-item-bottom___zNbsF_1-3-
|
|
168
|
+
.magritte-morph-item-bottom___zNbsF_1-3-16{
|
|
169
169
|
--magritte-ui-morph-item-transform-origin-y:bottom;
|
|
170
170
|
}
|
|
171
|
-
.magritte-morph-item-left___T6AMW_1-3-
|
|
171
|
+
.magritte-morph-item-left___T6AMW_1-3-16{
|
|
172
172
|
--magritte-ui-morph-item-transform-origin-x:left;
|
|
173
173
|
}
|
|
174
|
-
.magritte-morph-item-right___EuT1E_1-3-
|
|
174
|
+
.magritte-morph-item-right___EuT1E_1-3-16{
|
|
175
175
|
--magritte-ui-morph-item-transform-origin-x:right;
|
|
176
176
|
}
|
|
177
|
-
.magritte-pane___f8eFC_1-3-
|
|
177
|
+
.magritte-pane___f8eFC_1-3-16{
|
|
178
178
|
position:relative;
|
|
179
179
|
overflow:hidden;
|
|
180
180
|
pointer-events:none;
|
|
181
181
|
}
|
|
182
|
-
.magritte-start-state-container___giBVb_1-3-
|
|
182
|
+
.magritte-start-state-container___giBVb_1-3-16{
|
|
183
183
|
position:relative;
|
|
184
184
|
z-index:1;
|
|
185
185
|
box-sizing:border-box;
|
|
186
186
|
pointer-events:auto;
|
|
187
187
|
}
|
|
188
|
-
.magritte-end-state-container___uiW8Q_1-3-
|
|
188
|
+
.magritte-end-state-container___uiW8Q_1-3-16{
|
|
189
189
|
position:absolute;
|
|
190
190
|
z-index:0;
|
|
191
191
|
top:0;
|
|
@@ -194,66 +194,66 @@
|
|
|
194
194
|
pointer-events:none;
|
|
195
195
|
opacity:0;
|
|
196
196
|
}
|
|
197
|
-
.magritte-content-container___7s7vv_1-3-
|
|
197
|
+
.magritte-content-container___7s7vv_1-3-16{
|
|
198
198
|
box-sizing:border-box;
|
|
199
199
|
}
|
|
200
|
-
.magritte-next-pane___H2oxQ_1-3-
|
|
200
|
+
.magritte-next-pane___H2oxQ_1-3-16{
|
|
201
201
|
position:relative;
|
|
202
202
|
}
|
|
203
|
-
.magritte-nav-bar___RRGe0_1-3-
|
|
203
|
+
.magritte-nav-bar___RRGe0_1-3-16{
|
|
204
204
|
top:0;
|
|
205
205
|
position:sticky;
|
|
206
206
|
pointer-events:none;
|
|
207
207
|
overflow-anchor:none;
|
|
208
208
|
z-index:10;
|
|
209
209
|
}
|
|
210
|
-
.magritte-nav-bar-overlay___Mq5ZD_1-3-
|
|
210
|
+
.magritte-nav-bar-overlay___Mq5ZD_1-3-16 .magritte-nav-bar-overlay-wrapper___y1VpY_1-3-16{
|
|
211
211
|
position:absolute;
|
|
212
212
|
inset:0;
|
|
213
213
|
}
|
|
214
|
-
.magritte-nav-bar-content-container___H-WMO_1-3-
|
|
214
|
+
.magritte-nav-bar-content-container___H-WMO_1-3-16{
|
|
215
215
|
display:grid;
|
|
216
216
|
position:relative;
|
|
217
217
|
}
|
|
218
|
-
.magritte-nav-bar-panes-container___5ZDLa_1-3-
|
|
218
|
+
.magritte-nav-bar-panes-container___5ZDLa_1-3-16{
|
|
219
219
|
position:relative;
|
|
220
220
|
z-index:1;
|
|
221
221
|
grid-area:1 / 1;
|
|
222
222
|
min-width:0;
|
|
223
223
|
}
|
|
224
|
-
.magritte-nav-bar-progressive-blur___qyeUV_1-3-
|
|
224
|
+
.magritte-nav-bar-progressive-blur___qyeUV_1-3-16{
|
|
225
225
|
position:relative;
|
|
226
226
|
z-index:0;
|
|
227
227
|
transform-origin:0 0;
|
|
228
228
|
grid-area:1 / 1;
|
|
229
229
|
min-width:0;
|
|
230
230
|
}
|
|
231
|
-
.magritte-nav-bar-content-container___H-WMO_1-3-
|
|
232
|
-
.magritte-nav-bar-content-container___H-WMO_1-3-
|
|
233
|
-
.magritte-nav-bar-content-container___H-WMO_1-3-
|
|
231
|
+
.magritte-nav-bar-content-container___H-WMO_1-3-16 .magritte-nav-bar-stage___amDz7_1-3-16,
|
|
232
|
+
.magritte-nav-bar-content-container___H-WMO_1-3-16 .nav-bar-layout-animation-stage-start,
|
|
233
|
+
.magritte-nav-bar-content-container___H-WMO_1-3-16 .nav-bar-layout-animation-stage-end{
|
|
234
234
|
padding-top:calc(8px + var(--magritte-ui-nav-bar-padding-top-override, 0px));
|
|
235
235
|
}
|
|
236
|
-
.magritte-nav-bar-content-container___H-WMO_1-3-
|
|
237
|
-
.magritte-nav-bar-content-container___H-WMO_1-3-
|
|
238
|
-
.magritte-nav-bar-content-container___H-WMO_1-3-
|
|
236
|
+
.magritte-nav-bar-content-container___H-WMO_1-3-16 .magritte-next-pane___H2oxQ_1-3-16 .magritte-nav-bar-stage___amDz7_1-3-16,
|
|
237
|
+
.magritte-nav-bar-content-container___H-WMO_1-3-16 .magritte-next-pane___H2oxQ_1-3-16 .nav-bar-layout-animation-stage-start,
|
|
238
|
+
.magritte-nav-bar-content-container___H-WMO_1-3-16 .magritte-next-pane___H2oxQ_1-3-16 .nav-bar-layout-animation-stage-end{
|
|
239
239
|
padding-top:8px;
|
|
240
240
|
}
|
|
241
|
-
.magritte-last-pane___Hf2No_1-3-
|
|
242
|
-
.magritte-last-pane___Hf2No_1-3-
|
|
243
|
-
.magritte-last-pane___Hf2No_1-3-
|
|
241
|
+
.magritte-last-pane___Hf2No_1-3-16 .magritte-nav-bar-stage___amDz7_1-3-16,
|
|
242
|
+
.magritte-last-pane___Hf2No_1-3-16 .nav-bar-layout-animation-stage-start,
|
|
243
|
+
.magritte-last-pane___Hf2No_1-3-16 .nav-bar-layout-animation-stage-end{
|
|
244
244
|
padding-bottom:var(--magritte-ui-nav-bar-stage-padding-bottom-override, 8px);
|
|
245
245
|
}
|
|
246
|
-
.magritte-next-pane___H2oxQ_1-3-
|
|
247
|
-
.magritte-next-pane___H2oxQ_1-3-
|
|
248
|
-
.magritte-next-pane___H2oxQ_1-3-
|
|
246
|
+
.magritte-next-pane___H2oxQ_1-3-16 .magritte-last-pane___Hf2No_1-3-16 .magritte-nav-bar-stage___amDz7_1-3-16,
|
|
247
|
+
.magritte-next-pane___H2oxQ_1-3-16 .magritte-last-pane___Hf2No_1-3-16 .nav-bar-layout-animation-stage-start,
|
|
248
|
+
.magritte-next-pane___H2oxQ_1-3-16 .magritte-last-pane___Hf2No_1-3-16 .nav-bar-layout-animation-stage-end{
|
|
249
249
|
padding-bottom:var(--magritte-ui-nav-bar-stage-padding-bottom-override, 16px);
|
|
250
250
|
}
|
|
251
|
-
.magritte-nav-bar-stage___amDz7_1-3-
|
|
251
|
+
.magritte-nav-bar-stage___amDz7_1-3-16{
|
|
252
252
|
padding:8px var(--magritte-ui-nav-bar-stage-horizontal-padding-override, 16px);
|
|
253
253
|
}
|
|
254
|
-
.magritte-metrics-mode___h38aX_1-3-
|
|
255
|
-
.magritte-metrics-mode___h38aX_1-3-
|
|
256
|
-
.magritte-metrics-mode___h38aX_1-3-
|
|
254
|
+
.magritte-metrics-mode___h38aX_1-3-16 .magritte-morph-item___8kF46_1-3-16,
|
|
255
|
+
.magritte-metrics-mode___h38aX_1-3-16 .magritte-pane___f8eFC_1-3-16,
|
|
256
|
+
.magritte-metrics-mode___h38aX_1-3-16 .magritte-next-pane___H2oxQ_1-3-16{
|
|
257
257
|
transform:none !important;
|
|
258
258
|
}
|
|
259
259
|
.nav-bar-layout-animation-stage-end,
|
|
@@ -264,41 +264,41 @@
|
|
|
264
264
|
height:auto !important;
|
|
265
265
|
transform:none !important;
|
|
266
266
|
}
|
|
267
|
-
.nav-bar-layout-animation-stage-end .magritte-layout-morph___I3SPy_1-3-
|
|
268
|
-
.nav-bar-layout-animation-stage-start .magritte-layout-morph___I3SPy_1-3-
|
|
267
|
+
.nav-bar-layout-animation-stage-end .magritte-layout-morph___I3SPy_1-3-16,
|
|
268
|
+
.nav-bar-layout-animation-stage-start .magritte-layout-morph___I3SPy_1-3-16{
|
|
269
269
|
position:static !important;
|
|
270
270
|
width:auto !important;
|
|
271
271
|
height:auto !important;
|
|
272
272
|
transform:none !important;
|
|
273
273
|
}
|
|
274
|
-
.magritte-layout-morph___I3SPy_1-3-
|
|
274
|
+
.magritte-layout-morph___I3SPy_1-3-16{
|
|
275
275
|
display:block;
|
|
276
276
|
position:absolute;
|
|
277
277
|
transform-origin:var(--magritte-ui-morph-item-transform-origin-x, center) var(--magritte-ui-morph-item-transform-origin-y, center);
|
|
278
278
|
z-index:3;
|
|
279
279
|
}
|
|
280
|
-
.magritte-animation-stage-progress___5FthT_1-3-
|
|
280
|
+
.magritte-animation-stage-progress___5FthT_1-3-16 .magritte-layout-morph___I3SPy_1-3-16 > *{
|
|
281
281
|
margin:0 !important;
|
|
282
282
|
}
|
|
283
|
-
.magritte-layout-morph-start___9-krP_1-3-
|
|
283
|
+
.magritte-layout-morph-start___9-krP_1-3-16{
|
|
284
284
|
z-index:2;
|
|
285
285
|
}
|
|
286
|
-
.magritte-layout-morph-end___LIg4d_1-3-
|
|
286
|
+
.magritte-layout-morph-end___LIg4d_1-3-16{
|
|
287
287
|
z-index:1;
|
|
288
288
|
}
|
|
289
|
-
.nav-bar-layout-animation-stage-start .magritte-layout-morph___I3SPy_1-3-
|
|
289
|
+
.nav-bar-layout-animation-stage-start .magritte-layout-morph___I3SPy_1-3-16{
|
|
290
290
|
display:contents;
|
|
291
291
|
}
|
|
292
|
-
.nav-bar-layout-animation-stage-start .magritte-layout-morph-end___LIg4d_1-3-
|
|
292
|
+
.nav-bar-layout-animation-stage-start .magritte-layout-morph-end___LIg4d_1-3-16{
|
|
293
293
|
display:none;
|
|
294
294
|
}
|
|
295
|
-
.nav-bar-layout-animation-stage-end .magritte-layout-morph___I3SPy_1-3-
|
|
295
|
+
.nav-bar-layout-animation-stage-end .magritte-layout-morph___I3SPy_1-3-16{
|
|
296
296
|
display:contents;
|
|
297
297
|
}
|
|
298
|
-
.nav-bar-layout-animation-stage-end .magritte-layout-morph-start___9-krP_1-3-
|
|
298
|
+
.nav-bar-layout-animation-stage-end .magritte-layout-morph-start___9-krP_1-3-16{
|
|
299
299
|
display:none;
|
|
300
300
|
}
|
|
301
|
-
.magritte-divider-container___-NdWi_1-3-
|
|
301
|
+
.magritte-divider-container___-NdWi_1-3-16{
|
|
302
302
|
position:absolute;
|
|
303
303
|
width:100%;
|
|
304
304
|
bottom:0;
|
package/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './index.css';
|
|
2
2
|
export { Actions } from './public/Actions.js';
|
|
3
|
-
export { N as NavBar } from './NavBar-
|
|
3
|
+
export { N as NavBar } from './NavBar-CNO3MlXV.js';
|
|
4
4
|
export { ExternalPane as Pane } from './public/Pane.js';
|
|
5
5
|
export { ExternalStage as Stage } from './public/Stage.js';
|
|
6
6
|
export { Morph } from './public/Morph.js';
|
package/internal/PaneStore.js
CHANGED
|
@@ -3,7 +3,7 @@ import { createContext, useContext, useId, useLayoutEffect } from 'react';
|
|
|
3
3
|
import { motionValue } from 'motion';
|
|
4
4
|
import { KeyedSubscriptions } from './KeyedSubscriptions.js';
|
|
5
5
|
import { useInitOnce } from './utils.js';
|
|
6
|
-
import { u as useNavBarContext } from '../NavBar-
|
|
6
|
+
import { u as useNavBarContext } from '../NavBar-CNO3MlXV.js';
|
|
7
7
|
import 'react/jsx-runtime';
|
|
8
8
|
import 'classnames';
|
|
9
9
|
import 'motion/react';
|
|
@@ -108,7 +108,11 @@ const useScrollAdapter = (elementRef) => {
|
|
|
108
108
|
observer.observe(scrollAdapter.scrollContainer.current);
|
|
109
109
|
subscriptions.push(() => observer.disconnect());
|
|
110
110
|
}
|
|
111
|
-
return () =>
|
|
111
|
+
return () => {
|
|
112
|
+
subscriptions.forEach((fn) => fn());
|
|
113
|
+
scrollContainerElRef.current = null;
|
|
114
|
+
scrollContainerRef.current = undefined;
|
|
115
|
+
};
|
|
112
116
|
}, [notifier, elementRef, scrollContext, scrollAdapter, scrollPosition]);
|
|
113
117
|
return [scrollAdapter, scrollPosition];
|
|
114
118
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollAdapter.js","sources":["src/internal/useScrollAdapter.ts"],"sourcesContent":["import { MutableRefObject, useEffect, useLayoutEffect, useRef, type RefObject } from 'react';\nimport { type MotionValue, useMotionValue } from 'motion/react';\n\nimport { useScrollContext } from '@hh.ru/magritte-internal-custom-scroll';\nimport { findScrollContainer, useInitOnce } from '@hh.ru/magritte-ui-nav-bar/internal/utils';\n\nconst createSubFn = (store: Set<VoidFunction>) => (handler: VoidFunction) => {\n store.add(handler);\n return () => store.delete(handler);\n};\n\nexport interface ScrollAdapter {\n getMaxScrollTop: () => number;\n getScrollTop: () => number;\n setScrollTop: (pos: number) => void;\n onScroll: (cb: VoidFunction) => VoidFunction;\n onTouchStart: (cb: VoidFunction) => VoidFunction;\n onTouchEnd: (cb: VoidFunction) => VoidFunction;\n onResize: (cb: VoidFunction) => VoidFunction;\n scrollContainer: RefObject<Element>;\n hasTouchSupport: () => boolean;\n breakScrollSession: VoidFunction;\n}\n\nexport const useScrollAdapter = (elementRef: RefObject<HTMLElement>): [ScrollAdapter, MotionValue<number>] => {\n const scrollContext = useScrollContext();\n const scrollContainerRef = useRef<ReturnType<typeof findScrollContainer>>();\n const scrollPosition = useMotionValue(0);\n const mediaQueryRef: MutableRefObject<MediaQueryList | null> = useRef(null);\n const scrollContainerElRef: MutableRefObject<null | Element> = useRef(null);\n\n const [subscriptionsManager, notifier] = useInitOnce(() => {\n const touchStartHandlers = new Set<VoidFunction>();\n const touchEndHandlers = new Set<VoidFunction>();\n const scrollHandlers = new Set<VoidFunction>();\n const resizeHandlers = new Set<VoidFunction>();\n const subscriptionsManager = {\n onTouchStart: createSubFn(touchStartHandlers),\n onTouchEnd: createSubFn(touchEndHandlers),\n onScroll: createSubFn(scrollHandlers),\n onResize: createSubFn(resizeHandlers),\n };\n\n const notifier = {\n notifyTouchStart: () => touchStartHandlers.forEach((fn) => fn()),\n notifyTouchEnd: () => touchEndHandlers.forEach((fn) => fn()),\n notifyScroll: () => scrollHandlers.forEach((fn) => fn()),\n notifyResize: () => resizeHandlers.forEach((fn) => fn()),\n };\n\n return [subscriptionsManager, notifier];\n });\n\n useEffect(() => {\n if (window && 'matchMedia' in window) {\n mediaQueryRef.current = window.matchMedia('(pointer:coarse)');\n }\n }, []);\n\n const scrollAdapter = useInitOnce(() => {\n const hasTouchSupport = () => mediaQueryRef.current?.matches ?? false;\n if (scrollContext) {\n const subscriptions = [\n scrollContext.onTouchStart(notifier.notifyTouchStart),\n scrollContext.onTouchEnd(notifier.notifyTouchEnd),\n scrollContext.onScroll(notifier.notifyScroll),\n ];\n return {\n ...scrollContext,\n scrollContainer: scrollContext.wrapperRef,\n ...subscriptionsManager,\n unsubscribe: () => subscriptions.forEach((fn) => fn()),\n hasTouchSupport,\n // не нужно для ненативного скролла\n breakScrollSession: (): void => void 0,\n };\n }\n return {\n getMaxScrollTop: () => {\n if (!scrollContainerRef.current) {\n return 0;\n }\n\n const height =\n scrollContainerRef.current.mode === 'window'\n ? scrollContainerRef.current.infoProvider.clientHeight\n : scrollContainerRef.current.infoProvider.offsetHeight;\n return scrollContainerRef.current.infoProvider.scrollHeight - height;\n },\n getScrollTop: () =>\n scrollContainerRef.current ? Math.max(scrollContainerRef.current.infoProvider.scrollTop, 0) : 0,\n setScrollTop: (pos: number) => {\n if (scrollContainerRef.current) {\n scrollContainerRef.current.infoProvider.scrollTop = pos;\n }\n },\n scrollContainer: scrollContainerElRef,\n ...subscriptionsManager,\n unsubscribe: (): void => void 0,\n breakScrollSession: () => {\n if (scrollContainerRef.current?.mode !== 'element' || !scrollContainerElRef.current) {\n return;\n }\n\n const element = scrollContainerElRef.current as HTMLElement;\n const overflowY = element.style.overflowY;\n element.style.overflowY = 'hidden';\n // force layout\n void element.offsetHeight;\n element.style.overflowY = overflowY;\n },\n hasTouchSupport,\n };\n }) satisfies ScrollAdapter;\n\n useLayoutEffect(() => {\n const subscriptions: VoidFunction[] = [];\n if (!scrollContext && elementRef.current) {\n scrollContainerRef.current = findScrollContainer(elementRef.current);\n const subscriptionsController = new AbortController();\n const signal = subscriptionsController.signal;\n const eventsProvider = scrollContainerRef.current.eventsProvider;\n eventsProvider.addEventListener('scroll', notifier.notifyScroll, { passive: true, signal });\n eventsProvider.addEventListener('touchstart', notifier.notifyTouchStart, { passive: true, signal });\n eventsProvider.addEventListener('touchend', notifier.notifyTouchEnd, { passive: true, signal });\n scrollContainerElRef.current = scrollContainerRef.current.infoProvider;\n subscriptions.push(() => subscriptionsController.abort());\n }\n\n if (scrollAdapter.scrollContainer.current) {\n const observer = new ResizeObserver(notifier.notifyResize);\n observer.observe(scrollAdapter.scrollContainer.current);\n subscriptions.push(() => observer.disconnect());\n }\n\n return () => subscriptions.forEach((fn) => fn());\n }, [notifier, elementRef, scrollContext, scrollAdapter, scrollPosition]);\n\n return [scrollAdapter, scrollPosition];\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useScrollAdapter.js","sources":["src/internal/useScrollAdapter.ts"],"sourcesContent":["import { MutableRefObject, useEffect, useLayoutEffect, useRef, type RefObject } from 'react';\nimport { type MotionValue, useMotionValue } from 'motion/react';\n\nimport { useScrollContext } from '@hh.ru/magritte-internal-custom-scroll';\nimport { findScrollContainer, useInitOnce } from '@hh.ru/magritte-ui-nav-bar/internal/utils';\n\nconst createSubFn = (store: Set<VoidFunction>) => (handler: VoidFunction) => {\n store.add(handler);\n return () => store.delete(handler);\n};\n\nexport interface ScrollAdapter {\n getMaxScrollTop: () => number;\n getScrollTop: () => number;\n setScrollTop: (pos: number) => void;\n onScroll: (cb: VoidFunction) => VoidFunction;\n onTouchStart: (cb: VoidFunction) => VoidFunction;\n onTouchEnd: (cb: VoidFunction) => VoidFunction;\n onResize: (cb: VoidFunction) => VoidFunction;\n scrollContainer: RefObject<Element>;\n hasTouchSupport: () => boolean;\n breakScrollSession: VoidFunction;\n}\n\nexport const useScrollAdapter = (elementRef: RefObject<HTMLElement>): [ScrollAdapter, MotionValue<number>] => {\n const scrollContext = useScrollContext();\n const scrollContainerRef = useRef<ReturnType<typeof findScrollContainer>>();\n const scrollPosition = useMotionValue(0);\n const mediaQueryRef: MutableRefObject<MediaQueryList | null> = useRef(null);\n const scrollContainerElRef: MutableRefObject<null | Element> = useRef(null);\n\n const [subscriptionsManager, notifier] = useInitOnce(() => {\n const touchStartHandlers = new Set<VoidFunction>();\n const touchEndHandlers = new Set<VoidFunction>();\n const scrollHandlers = new Set<VoidFunction>();\n const resizeHandlers = new Set<VoidFunction>();\n const subscriptionsManager = {\n onTouchStart: createSubFn(touchStartHandlers),\n onTouchEnd: createSubFn(touchEndHandlers),\n onScroll: createSubFn(scrollHandlers),\n onResize: createSubFn(resizeHandlers),\n };\n\n const notifier = {\n notifyTouchStart: () => touchStartHandlers.forEach((fn) => fn()),\n notifyTouchEnd: () => touchEndHandlers.forEach((fn) => fn()),\n notifyScroll: () => scrollHandlers.forEach((fn) => fn()),\n notifyResize: () => resizeHandlers.forEach((fn) => fn()),\n };\n\n return [subscriptionsManager, notifier];\n });\n\n useEffect(() => {\n if (window && 'matchMedia' in window) {\n mediaQueryRef.current = window.matchMedia('(pointer:coarse)');\n }\n }, []);\n\n const scrollAdapter = useInitOnce(() => {\n const hasTouchSupport = () => mediaQueryRef.current?.matches ?? false;\n if (scrollContext) {\n const subscriptions = [\n scrollContext.onTouchStart(notifier.notifyTouchStart),\n scrollContext.onTouchEnd(notifier.notifyTouchEnd),\n scrollContext.onScroll(notifier.notifyScroll),\n ];\n return {\n ...scrollContext,\n scrollContainer: scrollContext.wrapperRef,\n ...subscriptionsManager,\n unsubscribe: () => subscriptions.forEach((fn) => fn()),\n hasTouchSupport,\n // не нужно для ненативного скролла\n breakScrollSession: (): void => void 0,\n };\n }\n return {\n getMaxScrollTop: () => {\n if (!scrollContainerRef.current) {\n return 0;\n }\n\n const height =\n scrollContainerRef.current.mode === 'window'\n ? scrollContainerRef.current.infoProvider.clientHeight\n : scrollContainerRef.current.infoProvider.offsetHeight;\n return scrollContainerRef.current.infoProvider.scrollHeight - height;\n },\n getScrollTop: () =>\n scrollContainerRef.current ? Math.max(scrollContainerRef.current.infoProvider.scrollTop, 0) : 0,\n setScrollTop: (pos: number) => {\n if (scrollContainerRef.current) {\n scrollContainerRef.current.infoProvider.scrollTop = pos;\n }\n },\n scrollContainer: scrollContainerElRef,\n ...subscriptionsManager,\n unsubscribe: (): void => void 0,\n breakScrollSession: () => {\n if (scrollContainerRef.current?.mode !== 'element' || !scrollContainerElRef.current) {\n return;\n }\n\n const element = scrollContainerElRef.current as HTMLElement;\n const overflowY = element.style.overflowY;\n element.style.overflowY = 'hidden';\n // force layout\n void element.offsetHeight;\n element.style.overflowY = overflowY;\n },\n hasTouchSupport,\n };\n }) satisfies ScrollAdapter;\n\n useLayoutEffect(() => {\n const subscriptions: VoidFunction[] = [];\n if (!scrollContext && elementRef.current) {\n scrollContainerRef.current = findScrollContainer(elementRef.current);\n const subscriptionsController = new AbortController();\n const signal = subscriptionsController.signal;\n const eventsProvider = scrollContainerRef.current.eventsProvider;\n eventsProvider.addEventListener('scroll', notifier.notifyScroll, { passive: true, signal });\n eventsProvider.addEventListener('touchstart', notifier.notifyTouchStart, { passive: true, signal });\n eventsProvider.addEventListener('touchend', notifier.notifyTouchEnd, { passive: true, signal });\n scrollContainerElRef.current = scrollContainerRef.current.infoProvider;\n subscriptions.push(() => subscriptionsController.abort());\n }\n\n if (scrollAdapter.scrollContainer.current) {\n const observer = new ResizeObserver(notifier.notifyResize);\n observer.observe(scrollAdapter.scrollContainer.current);\n subscriptions.push(() => observer.disconnect());\n }\n\n return () => {\n subscriptions.forEach((fn) => fn());\n scrollContainerElRef.current = null;\n scrollContainerRef.current = undefined;\n };\n }, [notifier, elementRef, scrollContext, scrollAdapter, scrollPosition]);\n\n return [scrollAdapter, scrollPosition];\n};\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hh.ru/magritte-ui-nav-bar",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.16",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"sideEffects": [
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"@hh.ru/magritte-ui-layer": "3.2.3",
|
|
37
37
|
"@hh.ru/magritte-ui-mock-component": "1.1.7"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "757f83a1008fb87c86e0f52c7098c41c3db069cc"
|
|
40
40
|
}
|
package/public/Actions.js
CHANGED
|
@@ -6,7 +6,7 @@ import { isIconElement } from '@hh.ru/magritte-ui-icon';
|
|
|
6
6
|
import { EnvironmentFingerprintNode } from './EnvironmentFingerprintNode.js';
|
|
7
7
|
import { Morph } from './Morph.js';
|
|
8
8
|
import { useAnimationStage } from './Stage.js';
|
|
9
|
-
import { s as styles } from '../NavBar-
|
|
9
|
+
import { s as styles } from '../NavBar-CNO3MlXV.js';
|
|
10
10
|
import '../internal/MetricsProvider.js';
|
|
11
11
|
import '../internal/utils.js';
|
|
12
12
|
import 'motion';
|
package/public/LayoutMorph.js
CHANGED
|
@@ -10,7 +10,7 @@ import { usePaneStore } from '../internal/PaneStore.js';
|
|
|
10
10
|
import { useInert } from '../internal/useInert.js';
|
|
11
11
|
import { useActualRef, useStoreSyncedTransform, lerp, calcMorphParams } from '../internal/utils.js';
|
|
12
12
|
import { AnimationStageContext } from './LayoutStage.js';
|
|
13
|
-
import { s as styles } from '../NavBar-
|
|
13
|
+
import { s as styles } from '../NavBar-CNO3MlXV.js';
|
|
14
14
|
import '../internal/KeyedSubscriptions.js';
|
|
15
15
|
import 'motion';
|
|
16
16
|
import '@hh.ru/magritte-common-use-when-font-loaded';
|
package/public/LayoutStage.js
CHANGED
|
@@ -9,7 +9,7 @@ import { MorphStoreProvider, useMorphStore } from '../internal/MorphStore.js';
|
|
|
9
9
|
import { usePaneStore } from '../internal/PaneStore.js';
|
|
10
10
|
import { useInitOnce } from '../internal/utils.js';
|
|
11
11
|
import { EnvironmentFingerprintNode, useEnvironmentFingerprint } from './EnvironmentFingerprintNode.js';
|
|
12
|
-
import { s as styles } from '../NavBar-
|
|
12
|
+
import { s as styles } from '../NavBar-CNO3MlXV.js';
|
|
13
13
|
import '../internal/KeyedSubscriptions.js';
|
|
14
14
|
import 'motion';
|
|
15
15
|
import '@hh.ru/magritte-ui-divider';
|
package/public/Morph.js
CHANGED
|
@@ -9,7 +9,7 @@ import { usePaneStore } from '../internal/PaneStore.js';
|
|
|
9
9
|
import { useStoreSyncedTransform, calcMorphParams, lerp } from '../internal/utils.js';
|
|
10
10
|
import { useEnvironmentFingerprint } from './EnvironmentFingerprintNode.js';
|
|
11
11
|
import { useAnimationStage } from './Stage.js';
|
|
12
|
-
import { s as styles } from '../NavBar-
|
|
12
|
+
import { s as styles } from '../NavBar-CNO3MlXV.js';
|
|
13
13
|
import '../internal/KeyedSubscriptions.js';
|
|
14
14
|
import 'motion';
|
|
15
15
|
import '../internal/useInert.js';
|
package/public/NavBar.js
CHANGED
|
@@ -14,7 +14,7 @@ import '../internal/useScrollAdapter.js';
|
|
|
14
14
|
import '../internal/useSnapScroll.js';
|
|
15
15
|
import '../internal/useSyncMotionValue.js';
|
|
16
16
|
import '../internal/utils.js';
|
|
17
|
-
export { N as NavBar, u as useNavBarContext } from '../NavBar-
|
|
17
|
+
export { N as NavBar, u as useNavBarContext } from '../NavBar-CNO3MlXV.js';
|
|
18
18
|
import 'motion';
|
|
19
19
|
import '@hh.ru/magritte-internal-custom-scroll';
|
|
20
20
|
//# sourceMappingURL=NavBar.js.map
|
package/public/Pane.js
CHANGED
|
@@ -10,7 +10,7 @@ import { useInitOnce, useStoreSyncedTransform, lerp } from '../internal/utils.js
|
|
|
10
10
|
import { EnvironmentFingerprintProvider } from './EnvironmentFingerprintNode.js';
|
|
11
11
|
import { LayoutStage } from './LayoutStage.js';
|
|
12
12
|
import { Stage } from './Stage.js';
|
|
13
|
-
import { s as styles } from '../NavBar-
|
|
13
|
+
import { s as styles } from '../NavBar-CNO3MlXV.js';
|
|
14
14
|
import '../internal/KeyedSubscriptions.js';
|
|
15
15
|
import 'motion';
|
|
16
16
|
import '../internal/MetricsProvider.js';
|
package/public/Stage.js
CHANGED
|
@@ -7,7 +7,7 @@ import { useMeasureAuto } from '../internal/MetricsProvider.js';
|
|
|
7
7
|
import { usePaneStore } from '../internal/PaneStore.js';
|
|
8
8
|
import { useInert } from '../internal/useInert.js';
|
|
9
9
|
import { EnvironmentFingerprintNode } from './EnvironmentFingerprintNode.js';
|
|
10
|
-
import { s as styles } from '../NavBar-
|
|
10
|
+
import { s as styles } from '../NavBar-CNO3MlXV.js';
|
|
11
11
|
import '../internal/utils.js';
|
|
12
12
|
import 'motion';
|
|
13
13
|
import '../internal/KeyedSubscriptions.js';
|
package/public/TitleContainer.js
CHANGED
|
@@ -2,7 +2,7 @@ import './../index.css';
|
|
|
2
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import { Morph } from './Morph.js';
|
|
5
|
-
import { s as styles } from '../NavBar-
|
|
5
|
+
import { s as styles } from '../NavBar-CNO3MlXV.js';
|
|
6
6
|
import 'react';
|
|
7
7
|
import 'motion/react';
|
|
8
8
|
import '../internal/MetricsProvider.js';
|