@vkontakte/vkui 7.0.0-dev-efd91c.4 → 7.0.0
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/dist/components/ActionSheet/ActionSheet.d.ts.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.js +1 -3
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.d.ts +1 -1
- package/dist/components/AppRoot/AppRoot.d.ts.map +1 -1
- package/dist/components/AppRoot/AppRoot.js +16 -10
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/AppRoot/AppRootPortal.js +1 -1
- package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/components/AppRoot/{AppRootStyleContainer.d.ts → AppRootStyleContainer/AppRootStyleContainer.d.ts} +3 -3
- package/dist/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.d.ts.map +1 -0
- package/dist/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js +45 -0
- package/dist/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js.map +1 -0
- package/dist/components/AppRoot/helpers.d.ts +7 -0
- package/dist/components/AppRoot/helpers.d.ts.map +1 -1
- package/dist/components/AppRoot/helpers.js +20 -4
- package/dist/components/AppRoot/helpers.js.map +1 -1
- package/dist/components/Clickable/Clickable.d.ts.map +1 -1
- package/dist/components/Clickable/Clickable.js +2 -83
- package/dist/components/Clickable/Clickable.js.map +1 -1
- package/dist/components/Clickable/RealClickable.d.ts +6 -0
- package/dist/components/Clickable/RealClickable.d.ts.map +1 -0
- package/dist/components/Clickable/RealClickable.js +90 -0
- package/dist/components/Clickable/RealClickable.js.map +1 -0
- package/dist/components/HorizontalCell/HorizontalCell.d.ts +4 -0
- package/dist/components/HorizontalCell/HorizontalCell.d.ts.map +1 -1
- package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/components/ModalCard/ModalCardInternal.js +1 -1
- package/dist/components/ModalCard/ModalCardInternal.js.map +1 -1
- package/dist/components/ModalPage/ModalPage.d.ts +1 -1
- package/dist/components/ModalPage/ModalPage.d.ts.map +1 -1
- package/dist/components/ModalPage/ModalPage.js +53 -5
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/ModalPage/ModalPageInternal.d.ts +5 -2
- package/dist/components/ModalPage/ModalPageInternal.d.ts.map +1 -1
- package/dist/components/ModalPage/ModalPageInternal.js +5 -4
- package/dist/components/ModalPage/ModalPageInternal.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/ModalRoot/types.d.ts.map +1 -1
- package/dist/components/ModalRoot/types.js.map +1 -1
- package/dist/components/ModalRoot/useModalManager.d.ts +2 -0
- package/dist/components/ModalRoot/useModalManager.d.ts.map +1 -1
- package/dist/components/ModalRoot/useModalManager.js +4 -1
- package/dist/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/PopoutWrapper/PopoutWrapper.d.ts.map +1 -1
- package/dist/components/PopoutWrapper/PopoutWrapper.js +2 -2
- package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/components/Spinner/Spinner.d.ts.map +1 -1
- package/dist/components/Spinner/Spinner.js +11 -43
- package/dist/components/Spinner/Spinner.js.map +1 -1
- package/dist/components/Spinner/SpinnerAnimation.d.ts +7 -0
- package/dist/components/Spinner/SpinnerAnimation.d.ts.map +1 -0
- package/dist/components/Spinner/SpinnerAnimation.js +36 -0
- package/dist/components/Spinner/SpinnerAnimation.js.map +1 -0
- package/dist/components/SplitLayout/SplitLayout.d.ts +4 -4
- package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js +1 -3
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.js +14 -9
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.module.css +17 -0
- package/dist/cssm/components/AppRoot/AppRootPortal.js +1 -1
- package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cssm/components/AppRoot/{AppRootStyleContainer.js → AppRootStyleContainer/AppRootStyleContainer.js} +12 -23
- package/dist/cssm/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js.map +1 -0
- package/dist/cssm/components/AppRoot/{AppRootStyleContainer.module.css → AppRootStyleContainer/AppRootStyleContainer.module.css} +7 -31
- package/dist/cssm/components/AppRoot/helpers.js +17 -1
- package/dist/cssm/components/AppRoot/helpers.js.map +1 -1
- package/dist/cssm/components/Button/Button.module.css +6 -6
- package/dist/cssm/components/Card/Card.module.css +12 -6
- package/dist/cssm/components/Clickable/Clickable.js +2 -55
- package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
- package/dist/cssm/components/Clickable/RealClickable.js +61 -0
- package/dist/cssm/components/Clickable/RealClickable.js.map +1 -0
- package/dist/cssm/components/FormField/FormField.module.css +2 -0
- package/dist/cssm/components/FormItem/FormItem.module.css +6 -6
- package/dist/cssm/components/Group/Group.module.css +1 -0
- package/dist/cssm/components/Header/Header.module.css +10 -4
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.module.css +1 -0
- package/dist/cssm/components/IconButton/IconButton.module.css +12 -3
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.module.css +1 -0
- package/dist/cssm/components/ModalCard/ModalCardInternal.js +1 -1
- package/dist/cssm/components/ModalCard/ModalCardInternal.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.js +50 -4
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPageInternal.js +3 -2
- package/dist/cssm/components/ModalPage/ModalPageInternal.js.map +1 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.module.css +1 -0
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/ModalRoot/types.js.map +1 -1
- package/dist/cssm/components/ModalRoot/useModalManager.js +4 -1
- package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.module.css +10 -4
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.module.css +4 -0
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +2 -3
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.module.css +7 -2
- package/dist/cssm/components/Spinner/Spinner.js +11 -43
- package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
- package/dist/cssm/components/Spinner/SpinnerAnimation.js +36 -0
- package/dist/cssm/components/Spinner/SpinnerAnimation.js.map +1 -0
- package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/cssm/components/View/View.module.css +2 -2
- package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js +15 -4
- package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/adaptivity/functions.js +1 -7
- package/dist/cssm/lib/adaptivity/functions.js.map +1 -1
- package/dist/cssm/lib/animation/useReducedMotion.js +4 -7
- package/dist/cssm/lib/animation/useReducedMotion.js.map +1 -1
- package/dist/cssm/lib/sheet/controllers/BottomSheetController.js +22 -37
- package/dist/cssm/lib/sheet/controllers/BottomSheetController.js.map +1 -1
- package/dist/cssm/lib/sheet/controllers/CSSTransitionController.js +1 -9
- package/dist/cssm/lib/sheet/controllers/CSSTransitionController.js.map +1 -1
- package/dist/cssm/lib/sheet/index.js +1 -1
- package/dist/cssm/lib/sheet/index.js.map +1 -1
- package/dist/cssm/lib/sheet/useBottomSheet.js +12 -15
- package/dist/cssm/lib/sheet/useBottomSheet.js.map +1 -1
- package/dist/cssm/styles/common.css +10 -4
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts +3 -2
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts.map +1 -1
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js +15 -4
- package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/adaptivity/functions.d.ts +0 -1
- package/dist/lib/adaptivity/functions.d.ts.map +1 -1
- package/dist/lib/adaptivity/functions.js +1 -7
- package/dist/lib/adaptivity/functions.js.map +1 -1
- package/dist/lib/animation/useReducedMotion.d.ts +1 -1
- package/dist/lib/animation/useReducedMotion.d.ts.map +1 -1
- package/dist/lib/animation/useReducedMotion.js +4 -7
- package/dist/lib/animation/useReducedMotion.js.map +1 -1
- package/dist/lib/sheet/controllers/BottomSheetController.d.ts +8 -8
- package/dist/lib/sheet/controllers/BottomSheetController.d.ts.map +1 -1
- package/dist/lib/sheet/controllers/BottomSheetController.js +22 -37
- package/dist/lib/sheet/controllers/BottomSheetController.js.map +1 -1
- package/dist/lib/sheet/controllers/CSSTransitionController.d.ts +1 -1
- package/dist/lib/sheet/controllers/CSSTransitionController.d.ts.map +1 -1
- package/dist/lib/sheet/controllers/CSSTransitionController.js +1 -9
- package/dist/lib/sheet/controllers/CSSTransitionController.js.map +1 -1
- package/dist/lib/sheet/index.d.ts +2 -1
- package/dist/lib/sheet/index.d.ts.map +1 -1
- package/dist/lib/sheet/index.js +1 -1
- package/dist/lib/sheet/index.js.map +1 -1
- package/dist/lib/sheet/useBottomSheet.d.ts +6 -5
- package/dist/lib/sheet/useBottomSheet.d.ts.map +1 -1
- package/dist/lib/sheet/useBottomSheet.js +12 -15
- package/dist/lib/sheet/useBottomSheet.js.map +1 -1
- package/dist/vkui.css +1 -1
- package/dist/vkui.css.map +1 -1
- package/package.json +2 -2
- package/src/components/ActionSheet/ActionSheet.tsx +1 -4
- package/src/components/AppRoot/AppRoot.module.css +17 -0
- package/src/components/AppRoot/AppRoot.tsx +24 -11
- package/src/components/AppRoot/AppRootPortal.tsx +1 -1
- package/src/components/AppRoot/{AppRootStyleContainer.module.css → AppRootStyleContainer/AppRootStyleContainer.module.css} +7 -24
- package/src/components/AppRoot/{AppRootStyleContainer.tsx → AppRootStyleContainer/AppRootStyleContainer.tsx} +11 -29
- package/src/components/AppRoot/helpers.ts +17 -1
- package/src/components/Button/Button.module.css +6 -6
- package/src/components/Card/Card.module.css +8 -6
- package/src/components/Clickable/Clickable.tsx +4 -103
- package/src/components/Clickable/RealClickable.tsx +99 -0
- package/src/components/FormField/FormField.module.css +2 -0
- package/src/components/FormItem/FormItem.module.css +6 -6
- package/src/components/Group/Group.module.css +1 -0
- package/src/components/Header/Header.module.css +8 -4
- package/src/components/HorizontalCell/HorizontalCell.tsx +4 -1
- package/src/components/HorizontalScroll/HorizontalScroll.module.css +1 -0
- package/src/components/IconButton/IconButton.module.css +10 -3
- package/src/components/MiniInfoCell/MiniInfoCell.module.css +1 -0
- package/src/components/ModalCard/ModalCardInternal.tsx +1 -1
- package/src/components/ModalPage/ModalPage.tsx +57 -3
- package/src/components/ModalPage/ModalPageInternal.tsx +14 -5
- package/src/components/ModalPageHeader/ModalPageHeader.module.css +1 -0
- package/src/components/ModalRoot/ModalRoot.tsx +0 -1
- package/src/components/ModalRoot/types.ts +0 -1
- package/src/components/ModalRoot/useModalManager.tsx +5 -3
- package/src/components/PanelHeader/PanelHeader.module.css +8 -4
- package/src/components/PanelHeaderButton/PanelHeaderButton.module.css +4 -0
- package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +1 -1
- package/src/components/PopoutWrapper/PopoutWrapper.tsx +1 -4
- package/src/components/Removable/Removable.module.css +6 -2
- package/src/components/Spinner/Spinner.tsx +10 -48
- package/src/components/Spinner/SpinnerAnimation.tsx +42 -0
- package/src/components/SplitLayout/SplitLayout.tsx +4 -4
- package/src/components/View/View.module.css +2 -2
- package/src/hooks/useSyncHTMLWithBaseVKUIClasses.ts +13 -4
- package/src/index.ts +2 -2
- package/src/lib/adaptivity/functions.ts +1 -8
- package/src/lib/animation/useReducedMotion.ts +6 -13
- package/src/lib/sheet/controllers/BottomSheetController.ts +32 -50
- package/src/lib/sheet/controllers/CSSTransitionController.ts +1 -8
- package/src/lib/sheet/index.ts +3 -0
- package/src/lib/sheet/useBottomSheet.ts +21 -17
- package/src/styles/common.css +12 -4
- package/dist/components/AppRoot/AppRootStyleContainer.d.ts.map +0 -1
- package/dist/components/AppRoot/AppRootStyleContainer.js +0 -57
- package/dist/components/AppRoot/AppRootStyleContainer.js.map +0 -1
- package/dist/cssm/components/AppRoot/AppRootStyleContainer.js.map +0 -1
|
@@ -10,7 +10,7 @@ import { CSSTransitionController } from "./controllers/CSSTransitionController.j
|
|
|
10
10
|
*
|
|
11
11
|
* ## Возможности
|
|
12
12
|
*
|
|
13
|
-
* - [x] есть возможность открывать до определенного размера (см. `
|
|
13
|
+
* - [x] есть возможность открывать до определенного размера (см. `snapPoint`)
|
|
14
14
|
* - [x] есть возможность закрыть при сильном смахивании вниз
|
|
15
15
|
* - [x] есть возможность отключить взаимодействие на определённых элементах используя data-атрибут
|
|
16
16
|
* - [x] есть возможность отключить взаимодействие на определённых элементах используя stopPropagation()
|
|
@@ -18,7 +18,7 @@ import { CSSTransitionController } from "./controllers/CSSTransitionController.j
|
|
|
18
18
|
* ## Анимации
|
|
19
19
|
*
|
|
20
20
|
* - [x] оверлей становится светлее в зависимости от процента сворачивания
|
|
21
|
-
* - [x] при `
|
|
21
|
+
* - [x] при `snapPoint !== 'auto'` процент высчитывается относительно переданного `snapPoint.initial`
|
|
22
22
|
* - [x] при перетаскивании за пределы есть анимация натяжения
|
|
23
23
|
* > note: в `ModalPage` этого эффекта нет при высоте 100% из-за `max-block-size: 100%`
|
|
24
24
|
*
|
|
@@ -30,23 +30,18 @@ import { CSSTransitionController } from "./controllers/CSSTransitionController.j
|
|
|
30
30
|
* - [x] ⚠️ не блокирует взаимодействие с элементами вне корневого элемента
|
|
31
31
|
*
|
|
32
32
|
* @private
|
|
33
|
-
*/ export const useBottomSheet = (enabled, { blocked,
|
|
33
|
+
*/ export const useBottomSheet = (enabled, { blocked, snapPoint, sheetCSSProperty, backdropCSSProperty, onSnapPointChange: onSnapPointChangeProp, onDismiss: onDismissProp })=>{
|
|
34
34
|
const [sheetScrollEl, setSheetScrollEl] = useState(null);
|
|
35
35
|
const [sheetEl, setSheetEl] = useState(null);
|
|
36
36
|
const [backdropEl, setBackdropEl] = useState(null);
|
|
37
|
-
const initialStyle = useMemo(()=>{
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
const { unit, currentSnapPoint } = BottomSheetController.parseInitialSnapPoint(initialSnapPoint);
|
|
42
|
-
return unit === '%' ? {
|
|
43
|
-
[sheetCSSProperty]: `${currentSnapPoint}${unit}`
|
|
44
|
-
} : undefined;
|
|
45
|
-
}, [
|
|
37
|
+
const initialStyle = useMemo(()=>enabled && snapPoint !== 'auto' ? {
|
|
38
|
+
[sheetCSSProperty]: `${snapPoint.initial}%`
|
|
39
|
+
} : undefined, [
|
|
46
40
|
enabled,
|
|
47
|
-
|
|
41
|
+
snapPoint,
|
|
48
42
|
sheetCSSProperty
|
|
49
43
|
]);
|
|
44
|
+
const onSnapPointChange = useStableCallback(onSnapPointChangeProp || noop);
|
|
50
45
|
const onDismiss = useStableCallback(onDismissProp || noop);
|
|
51
46
|
const bsController = useMemo(()=>{
|
|
52
47
|
if (!enabled || sheetEl === null) {
|
|
@@ -56,6 +51,7 @@ import { CSSTransitionController } from "./controllers/CSSTransitionController.j
|
|
|
56
51
|
sheetScrollEl: sheetScrollEl || null,
|
|
57
52
|
sheetTransitionController: new CSSTransitionController(sheetEl, sheetCSSProperty),
|
|
58
53
|
backdropTransitionController: backdropEl ? new CSSTransitionController(backdropEl, backdropCSSProperty) : null,
|
|
54
|
+
onSnapPointChange,
|
|
59
55
|
onDismiss
|
|
60
56
|
});
|
|
61
57
|
}, [
|
|
@@ -65,6 +61,7 @@ import { CSSTransitionController } from "./controllers/CSSTransitionController.j
|
|
|
65
61
|
sheetScrollEl,
|
|
66
62
|
backdropEl,
|
|
67
63
|
backdropCSSProperty,
|
|
64
|
+
onSnapPointChange,
|
|
68
65
|
onDismiss
|
|
69
66
|
]);
|
|
70
67
|
const onPanStart = function onPanStart(event) {
|
|
@@ -80,10 +77,10 @@ import { CSSTransitionController } from "./controllers/CSSTransitionController.j
|
|
|
80
77
|
};
|
|
81
78
|
useIsomorphicLayoutEffect(function init() {
|
|
82
79
|
if (bsController) {
|
|
83
|
-
bsController.init(
|
|
80
|
+
bsController.init(snapPoint);
|
|
84
81
|
}
|
|
85
82
|
}, [
|
|
86
|
-
|
|
83
|
+
snapPoint,
|
|
87
84
|
bsController
|
|
88
85
|
]);
|
|
89
86
|
useIsomorphicLayoutEffect(()=>function unmount() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/sheet/useBottomSheet.ts"],"sourcesContent":["'use client';\n\nimport {\n type CSSProperties,\n type Dispatch,\n type SetStateAction,\n type UIEvent,\n type UIEventHandler,\n useMemo,\n useState,\n} from 'react';\nimport { noop } from '@vkontakte/vkjs';\nimport { useStableCallback } from '../../hooks/useStableCallback';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/sheet/useBottomSheet.ts"],"sourcesContent":["'use client';\n\nimport {\n type CSSProperties,\n type Dispatch,\n type SetStateAction,\n type UIEvent,\n type UIEventHandler,\n useMemo,\n useState,\n} from 'react';\nimport { noop } from '@vkontakte/vkjs';\nimport { useStableCallback } from '../../hooks/useStableCallback';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect';\nimport {\n BottomSheetController,\n type SnapPoint,\n type SnapPointChange,\n} from './controllers/BottomSheetController';\nimport { CSSTransitionController } from './controllers/CSSTransitionController';\n\nexport type UseBottomSheetOptions = {\n sheetCSSProperty: string;\n backdropCSSProperty: string;\n snapPoint: SnapPoint;\n blocked?: boolean;\n onSnapPointChange?: SnapPointChange;\n onDismiss?: VoidFunction;\n};\n\nexport type UseBottomSheetHandlers = {\n onTouchStart: UIEventHandler<HTMLElement>;\n onTouchMove: UIEventHandler<HTMLElement>;\n onTouchEnd: UIEventHandler<HTMLElement>;\n onTouchCancel: UIEventHandler<HTMLElement>;\n onMouseDown: UIEventHandler<HTMLElement>;\n onMouseMove: UIEventHandler<HTMLElement>;\n onMouseUp: UIEventHandler<HTMLElement>;\n onMouseLeave: UIEventHandler<HTMLElement>;\n};\n\nexport type UseBottomSheetResult = [\n {\n initialStyle?: CSSProperties;\n setSheetEl: Dispatch<SetStateAction<HTMLElement | null>>;\n setSheetScrollEl: Dispatch<SetStateAction<HTMLElement | null>>;\n setBackdropEl: Dispatch<SetStateAction<HTMLElement | null>>;\n },\n UseBottomSheetHandlers | undefined,\n];\n\n/**\n * # Checklist\n *\n * ## Возможности\n *\n * - [x] есть возможность открывать до определенного размера (см. `snapPoint`)\n * - [x] есть возможность закрыть при сильном смахивании вниз\n * - [x] есть возможность отключить взаимодействие на определённых элементах используя data-атрибут\n * - [x] есть возможность отключить взаимодействие на определённых элементах используя stopPropagation()\n *\n * ## Анимации\n *\n * - [x] оверлей становится светлее в зависимости от процента сворачивания\n * - [x] при `snapPoint !== 'auto'` процент высчитывается относительно переданного `snapPoint.initial`\n * - [x] при перетаскивании за пределы есть анимация натяжения\n * > note: в `ModalPage` этого эффекта нет при высоте 100% из-за `max-block-size: 100%`\n *\n * ## Пограничные кейсы\n *\n * - [x] ⚠️ не блокирует взаимодействие с _горизонтальным_ скроллом\n * - [x] ⚠️ не блокирует взаимодействие с _вертикальным_ скроллом\n * - [x] ⚠️ не блокирует взаимодействие с полями ввода\n * - [x] ⚠️ не блокирует взаимодействие с элементами вне корневого элемента\n *\n * @private\n */\nexport const useBottomSheet = (\n enabled: boolean,\n {\n blocked,\n snapPoint,\n sheetCSSProperty,\n backdropCSSProperty,\n onSnapPointChange: onSnapPointChangeProp,\n onDismiss: onDismissProp,\n }: UseBottomSheetOptions,\n): UseBottomSheetResult => {\n const [sheetScrollEl, setSheetScrollEl] = useState<HTMLElement | null>(null);\n const [sheetEl, setSheetEl] = useState<HTMLElement | null>(null);\n const [backdropEl, setBackdropEl] = useState<HTMLElement | null>(null);\n\n const initialStyle = useMemo<CSSProperties | undefined>(\n () =>\n enabled && snapPoint !== 'auto' ? { [sheetCSSProperty]: `${snapPoint.initial}%` } : undefined,\n [enabled, snapPoint, sheetCSSProperty],\n );\n\n const onSnapPointChange = useStableCallback(onSnapPointChangeProp || noop);\n const onDismiss = useStableCallback(onDismissProp || noop);\n const bsController = useMemo<BottomSheetController | null>(() => {\n if (!enabled || sheetEl === null) {\n return null;\n }\n\n return new BottomSheetController(sheetEl, {\n sheetScrollEl: sheetScrollEl || null,\n sheetTransitionController: new CSSTransitionController<string>(sheetEl, sheetCSSProperty),\n backdropTransitionController: backdropEl\n ? new CSSTransitionController(backdropEl, backdropCSSProperty)\n : null,\n onSnapPointChange,\n onDismiss,\n });\n }, [\n enabled,\n sheetEl,\n sheetCSSProperty,\n sheetScrollEl,\n backdropEl,\n backdropCSSProperty,\n onSnapPointChange,\n onDismiss,\n ]);\n\n const onPanStart = function onPanStart(event: UIEvent<HTMLElement>) {\n if (!blocked) {\n bsController!.panStart(event.nativeEvent);\n }\n };\n\n const onPanMove = function onPanMove(event: UIEvent<HTMLElement>) {\n bsController!.panMove(event.nativeEvent);\n };\n\n const onPanEnd = function onPanEnd() {\n bsController!.panEnd();\n };\n\n useIsomorphicLayoutEffect(\n function init() {\n if (bsController) {\n bsController.init(snapPoint);\n }\n },\n [snapPoint, bsController],\n );\n\n useIsomorphicLayoutEffect(\n () =>\n function unmount() {\n if (bsController) {\n bsController.destroy();\n }\n },\n [bsController],\n );\n\n return [\n {\n initialStyle,\n setSheetEl,\n setSheetScrollEl,\n setBackdropEl,\n },\n bsController !== null\n ? {\n onTouchStart: onPanStart,\n onTouchMove: onPanMove,\n onTouchEnd: onPanEnd,\n onTouchCancel: onPanEnd,\n onMouseDown: onPanStart,\n onMouseMove: onPanMove,\n onMouseUp: onPanEnd,\n onMouseLeave: onPanEnd,\n }\n : undefined,\n ];\n};\n"],"names":["useMemo","useState","noop","useStableCallback","useIsomorphicLayoutEffect","BottomSheetController","CSSTransitionController","useBottomSheet","enabled","blocked","snapPoint","sheetCSSProperty","backdropCSSProperty","onSnapPointChange","onSnapPointChangeProp","onDismiss","onDismissProp","sheetScrollEl","setSheetScrollEl","sheetEl","setSheetEl","backdropEl","setBackdropEl","initialStyle","initial","undefined","bsController","sheetTransitionController","backdropTransitionController","onPanStart","event","panStart","nativeEvent","onPanMove","panMove","onPanEnd","panEnd","init","unmount","destroy","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","onMouseDown","onMouseMove","onMouseUp","onMouseLeave"],"mappings":"AAAA;AAEA,SAMEA,OAAO,EACPC,QAAQ,QACH,QAAQ;AACf,SAASC,IAAI,QAAQ,kBAAkB;AACvC,SAASC,iBAAiB,QAAQ,mCAAgC;AAClE,SAASC,yBAAyB,QAAQ,kCAA+B;AACzE,SACEC,qBAAqB,QAGhB,yCAAsC;AAC7C,SAASC,uBAAuB,QAAQ,2CAAwC;AAgChF;;;;;;;;;;;;;;;;;;;;;;;;;CAyBC,GACD,OAAO,MAAMC,iBAAiB,CAC5BC,SACA,EACEC,OAAO,EACPC,SAAS,EACTC,gBAAgB,EAChBC,mBAAmB,EACnBC,mBAAmBC,qBAAqB,EACxCC,WAAWC,aAAa,EACF;IAExB,MAAM,CAACC,eAAeC,iBAAiB,GAAGjB,SAA6B;IACvE,MAAM,CAACkB,SAASC,WAAW,GAAGnB,SAA6B;IAC3D,MAAM,CAACoB,YAAYC,cAAc,GAAGrB,SAA6B;IAEjE,MAAMsB,eAAevB,QACnB,IACEQ,WAAWE,cAAc,SAAS;YAAE,CAACC,iBAAiB,EAAE,GAAGD,UAAUc,OAAO,CAAC,CAAC,CAAC;QAAC,IAAIC,WACtF;QAACjB;QAASE;QAAWC;KAAiB;IAGxC,MAAME,oBAAoBV,kBAAkBW,yBAAyBZ;IACrE,MAAMa,YAAYZ,kBAAkBa,iBAAiBd;IACrD,MAAMwB,eAAe1B,QAAsC;QACzD,IAAI,CAACQ,WAAWW,YAAY,MAAM;YAChC,OAAO;QACT;QAEA,OAAO,IAAId,sBAAsBc,SAAS;YACxCF,eAAeA,iBAAiB;YAChCU,2BAA2B,IAAIrB,wBAAgCa,SAASR;YACxEiB,8BAA8BP,aAC1B,IAAIf,wBAAwBe,YAAYT,uBACxC;YACJC;YACAE;QACF;IACF,GAAG;QACDP;QACAW;QACAR;QACAM;QACAI;QACAT;QACAC;QACAE;KACD;IAED,MAAMc,aAAa,SAASA,WAAWC,KAA2B;QAChE,IAAI,CAACrB,SAAS;YACZiB,aAAcK,QAAQ,CAACD,MAAME,WAAW;QAC1C;IACF;IAEA,MAAMC,YAAY,SAASA,UAAUH,KAA2B;QAC9DJ,aAAcQ,OAAO,CAACJ,MAAME,WAAW;IACzC;IAEA,MAAMG,WAAW,SAASA;QACxBT,aAAcU,MAAM;IACtB;IAEAhC,0BACE,SAASiC;QACP,IAAIX,cAAc;YAChBA,aAAaW,IAAI,CAAC3B;QACpB;IACF,GACA;QAACA;QAAWgB;KAAa;IAG3BtB,0BACE,IACE,SAASkC;YACP,IAAIZ,cAAc;gBAChBA,aAAaa,OAAO;YACtB;QACF,GACF;QAACb;KAAa;IAGhB,OAAO;QACL;YACEH;YACAH;YACAF;YACAI;QACF;QACAI,iBAAiB,OACb;YACEc,cAAcX;YACdY,aAAaR;YACbS,YAAYP;YACZQ,eAAeR;YACfS,aAAaf;YACbgB,aAAaZ;YACba,WAAWX;YACXY,cAAcZ;QAChB,IACAV;KACL;AACH,EAAE"}
|