@surdeddd/bottom-sheet 0.23.4 → 0.24.1
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/README.md +513 -527
- package/README.ru.md +533 -545
- package/dist/{BottomSheetCore-C5tJYVMY.d.cts → BottomSheetCore-B_r4KCQL.d.cts} +48 -13
- package/dist/{BottomSheetCore-DxSrC4QC.d.ts → BottomSheetCore-B_r4KCQL.d.ts} +48 -13
- package/dist/{BottomSheetEngine-B3F9qukX.d.cts → BottomSheetEngine-0F7mjyvF.d.cts} +1 -1
- package/dist/{BottomSheetEngine-BchzgqGG.d.ts → BottomSheetEngine-CJV_DDrM.d.ts} +1 -1
- package/dist/core.cjs +810 -436
- package/dist/core.d.cts +2 -3
- package/dist/core.d.ts +2 -3
- package/dist/core.js +810 -436
- package/dist/debug.d.cts +0 -1
- package/dist/debug.d.ts +0 -1
- package/dist/{default-features-DwVTzDwP.d.ts → default-features-4Xwv6aVt.d.ts} +4 -2
- package/dist/{default-features-BGiCSmV1.d.cts → default-features-DX2NOxP6.d.cts} +4 -2
- package/dist/element.cjs +1421 -697
- package/dist/element.d.cts +11 -3
- package/dist/element.d.ts +11 -3
- package/dist/element.iife.global.js +2 -2
- package/dist/element.js +1421 -697
- package/dist/features.cjs +334 -190
- package/dist/features.d.cts +3 -4
- package/dist/features.d.ts +3 -4
- package/dist/features.js +334 -191
- package/dist/{index-C7TSQkVK.d.cts → index-2shlxhcG.d.cts} +1 -1
- package/dist/{index-CdM1tke5.d.ts → index-CNCRQnpc.d.ts} +1 -1
- package/dist/index.cjs +1129 -631
- package/dist/index.d.cts +11 -6
- package/dist/index.d.ts +11 -6
- package/dist/index.js +1129 -632
- package/dist/integrations/formik.cjs +21 -10
- package/dist/integrations/formik.d.cts +0 -1
- package/dist/integrations/formik.d.ts +0 -1
- package/dist/integrations/formik.js +22 -11
- package/dist/integrations/react-hook-form.cjs +21 -12
- package/dist/integrations/react-hook-form.d.cts +0 -1
- package/dist/integrations/react-hook-form.d.ts +0 -1
- package/dist/integrations/react-hook-form.js +21 -12
- package/dist/option-keys-DItuAjUw.d.cts +6 -0
- package/dist/option-keys-a5DYNwwO.d.ts +6 -0
- package/dist/overlay.cjs +386 -189
- package/dist/overlay.d.cts +1 -3
- package/dist/overlay.d.ts +1 -3
- package/dist/overlay.js +386 -189
- package/dist/preact.d.cts +3 -4
- package/dist/preact.d.ts +3 -4
- package/dist/qwik-lib/index.qwik.cjs +1306 -671
- package/dist/qwik-lib/index.qwik.mjs +1306 -671
- package/dist/qwik.cjs +1326 -701
- package/dist/qwik.d.cts +12 -30
- package/dist/qwik.d.ts +12 -30
- package/dist/qwik.js +1326 -701
- package/dist/react.cjs +1373 -750
- package/dist/react.d.cts +26 -12
- package/dist/react.d.ts +26 -12
- package/dist/react.js +1375 -752
- package/dist/solid.cjs +1332 -727
- package/dist/solid.d.cts +13 -438
- package/dist/solid.d.ts +13 -438
- package/dist/solid.js +1334 -729
- package/dist/solid.source.jsx +1374 -751
- package/dist/styles.css +20 -6
- package/dist/svelte-core.cjs +1209 -676
- package/dist/svelte-core.js +1207 -677
- package/dist/svelte-src/BottomSheet.svelte +101 -58
- package/dist/svelte.cjs +1323 -705
- package/dist/svelte.d.cts +45 -25
- package/dist/svelte.d.ts +45 -25
- package/dist/svelte.js +1323 -705
- package/dist/vue.cjs +1354 -773
- package/dist/vue.d.cts +20 -3
- package/dist/vue.d.ts +20 -3
- package/dist/vue.js +1354 -773
- package/dist/webgl.cjs +159 -53
- package/dist/webgl.d.cts +2 -2
- package/dist/webgl.d.ts +2 -2
- package/dist/webgl.js +159 -53
- package/llms.txt +330 -0
- package/package.json +42 -20
- package/dist/transform-jVfAikE9.d.cts +0 -3
- package/dist/transform-jVfAikE9.d.ts +0 -3
|
@@ -4,22 +4,33 @@ var react = require('react');
|
|
|
4
4
|
|
|
5
5
|
// src/integrations/formik.ts
|
|
6
6
|
function useFormikGuard(sheetRef, formikRef, _tag) {
|
|
7
|
+
const boundTo = react.useRef(null);
|
|
8
|
+
const release = react.useRef(null);
|
|
7
9
|
react.useEffect(() => {
|
|
8
|
-
const target = sheetRef.current;
|
|
9
|
-
if (
|
|
10
|
-
|
|
10
|
+
const target = sheetRef.current ?? null;
|
|
11
|
+
if (target === boundTo.current) return;
|
|
12
|
+
release.current?.();
|
|
13
|
+
boundTo.current = target;
|
|
14
|
+
if (!target) {
|
|
15
|
+
release.current = null;
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
release.current = target.on("before-snap", (payload) => {
|
|
11
19
|
const formik = formikRef.current;
|
|
12
20
|
if (!formik) return;
|
|
13
|
-
if (formik.isSubmitting) {
|
|
14
|
-
payload.cancel();
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
if (payload.id === "closed" && formik.dirty) {
|
|
21
|
+
if (formik.isSubmitting || payload.size === 0 && formik.dirty) {
|
|
18
22
|
payload.cancel();
|
|
19
23
|
}
|
|
20
24
|
});
|
|
21
|
-
|
|
22
|
-
|
|
25
|
+
});
|
|
26
|
+
react.useEffect(
|
|
27
|
+
() => () => {
|
|
28
|
+
release.current?.();
|
|
29
|
+
release.current = null;
|
|
30
|
+
boundTo.current = null;
|
|
31
|
+
},
|
|
32
|
+
[]
|
|
33
|
+
);
|
|
23
34
|
}
|
|
24
35
|
|
|
25
36
|
exports.useFormikGuard = useFormikGuard;
|
|
@@ -1,23 +1,34 @@
|
|
|
1
|
-
import { useEffect } from 'react';
|
|
1
|
+
import { useRef, useEffect } from 'react';
|
|
2
2
|
|
|
3
3
|
// src/integrations/formik.ts
|
|
4
4
|
function useFormikGuard(sheetRef, formikRef, _tag) {
|
|
5
|
+
const boundTo = useRef(null);
|
|
6
|
+
const release = useRef(null);
|
|
5
7
|
useEffect(() => {
|
|
6
|
-
const target = sheetRef.current;
|
|
7
|
-
if (
|
|
8
|
-
|
|
8
|
+
const target = sheetRef.current ?? null;
|
|
9
|
+
if (target === boundTo.current) return;
|
|
10
|
+
release.current?.();
|
|
11
|
+
boundTo.current = target;
|
|
12
|
+
if (!target) {
|
|
13
|
+
release.current = null;
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
release.current = target.on("before-snap", (payload) => {
|
|
9
17
|
const formik = formikRef.current;
|
|
10
18
|
if (!formik) return;
|
|
11
|
-
if (formik.isSubmitting) {
|
|
12
|
-
payload.cancel();
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
if (payload.id === "closed" && formik.dirty) {
|
|
19
|
+
if (formik.isSubmitting || payload.size === 0 && formik.dirty) {
|
|
16
20
|
payload.cancel();
|
|
17
21
|
}
|
|
18
22
|
});
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
});
|
|
24
|
+
useEffect(
|
|
25
|
+
() => () => {
|
|
26
|
+
release.current?.();
|
|
27
|
+
release.current = null;
|
|
28
|
+
boundTo.current = null;
|
|
29
|
+
},
|
|
30
|
+
[]
|
|
31
|
+
);
|
|
21
32
|
}
|
|
22
33
|
|
|
23
34
|
export { useFormikGuard };
|
|
@@ -6,21 +6,30 @@ var react = require('react');
|
|
|
6
6
|
function useFormGuard(sheetRef, methods, _tag) {
|
|
7
7
|
const methodsRef = react.useRef(methods);
|
|
8
8
|
methodsRef.current = methods;
|
|
9
|
+
const boundTo = react.useRef(null);
|
|
10
|
+
const release = react.useRef(null);
|
|
9
11
|
react.useEffect(() => {
|
|
10
|
-
const target = sheetRef.current;
|
|
11
|
-
if (
|
|
12
|
-
|
|
12
|
+
const target = sheetRef.current ?? null;
|
|
13
|
+
if (target === boundTo.current) return;
|
|
14
|
+
release.current?.();
|
|
15
|
+
boundTo.current = target;
|
|
16
|
+
if (!target) {
|
|
17
|
+
release.current = null;
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
release.current = target.on("before-snap", (payload) => {
|
|
13
21
|
const { isDirty, isSubmitting } = methodsRef.current.formState;
|
|
14
|
-
if (isSubmitting)
|
|
15
|
-
payload.cancel();
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
if (payload.id === "closed" && isDirty) {
|
|
19
|
-
payload.cancel();
|
|
20
|
-
}
|
|
22
|
+
if (isSubmitting || payload.size === 0 && isDirty) payload.cancel();
|
|
21
23
|
});
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
});
|
|
25
|
+
react.useEffect(
|
|
26
|
+
() => () => {
|
|
27
|
+
release.current?.();
|
|
28
|
+
release.current = null;
|
|
29
|
+
boundTo.current = null;
|
|
30
|
+
},
|
|
31
|
+
[]
|
|
32
|
+
);
|
|
24
33
|
}
|
|
25
34
|
|
|
26
35
|
exports.useFormGuard = useFormGuard;
|
|
@@ -4,21 +4,30 @@ import { useRef, useEffect } from 'react';
|
|
|
4
4
|
function useFormGuard(sheetRef, methods, _tag) {
|
|
5
5
|
const methodsRef = useRef(methods);
|
|
6
6
|
methodsRef.current = methods;
|
|
7
|
+
const boundTo = useRef(null);
|
|
8
|
+
const release = useRef(null);
|
|
7
9
|
useEffect(() => {
|
|
8
|
-
const target = sheetRef.current;
|
|
9
|
-
if (
|
|
10
|
-
|
|
10
|
+
const target = sheetRef.current ?? null;
|
|
11
|
+
if (target === boundTo.current) return;
|
|
12
|
+
release.current?.();
|
|
13
|
+
boundTo.current = target;
|
|
14
|
+
if (!target) {
|
|
15
|
+
release.current = null;
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
release.current = target.on("before-snap", (payload) => {
|
|
11
19
|
const { isDirty, isSubmitting } = methodsRef.current.formState;
|
|
12
|
-
if (isSubmitting)
|
|
13
|
-
payload.cancel();
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
if (payload.id === "closed" && isDirty) {
|
|
17
|
-
payload.cancel();
|
|
18
|
-
}
|
|
20
|
+
if (isSubmitting || payload.size === 0 && isDirty) payload.cancel();
|
|
19
21
|
});
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
});
|
|
23
|
+
useEffect(
|
|
24
|
+
() => () => {
|
|
25
|
+
release.current?.();
|
|
26
|
+
release.current = null;
|
|
27
|
+
boundTo.current = null;
|
|
28
|
+
},
|
|
29
|
+
[]
|
|
30
|
+
);
|
|
22
31
|
}
|
|
23
32
|
|
|
24
33
|
export { useFormGuard };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { f as EngineOptions } from './BottomSheetCore-B_r4KCQL.cjs';
|
|
2
|
+
|
|
3
|
+
declare const ENGINE_OPTION_KEYS: readonly ["mode", "snapPoints", "allowed", "initial", "duration", "easing", "respectReducedMotion", "flickVelocity", "dragThreshold", "dragFrom", "dragFromContent", "fitContentToSnap", "rubberBand", "backdropRange", "backdropOpacity", "backdropColor", "screenRange", "scrimMode", "scrimColor", "scrimBlur", "scrimInteractive", "scrimTapToClose", "scrimPreset", "animation", "settleAnimation", "spring", "focusTrap", "initialFocus", "closeOnEscape", "lockBodyScroll", "closeOnBack", "routedTo", "inertSiblings", "persistent", "disableClose", "disableDrag", "closeOnRouteChange", "radius", "maxHeight", "returnFocusTo", "persistKey", "autoCollapseAfter", "linkedSheets", "viewTransitions", "stackEffect", "features"];
|
|
4
|
+
type EngineConfig = Pick<EngineOptions, (typeof ENGINE_OPTION_KEYS)[number]>;
|
|
5
|
+
|
|
6
|
+
export type { EngineConfig as E };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { f as EngineOptions } from './BottomSheetCore-B_r4KCQL.js';
|
|
2
|
+
|
|
3
|
+
declare const ENGINE_OPTION_KEYS: readonly ["mode", "snapPoints", "allowed", "initial", "duration", "easing", "respectReducedMotion", "flickVelocity", "dragThreshold", "dragFrom", "dragFromContent", "fitContentToSnap", "rubberBand", "backdropRange", "backdropOpacity", "backdropColor", "screenRange", "scrimMode", "scrimColor", "scrimBlur", "scrimInteractive", "scrimTapToClose", "scrimPreset", "animation", "settleAnimation", "spring", "focusTrap", "initialFocus", "closeOnEscape", "lockBodyScroll", "closeOnBack", "routedTo", "inertSiblings", "persistent", "disableClose", "disableDrag", "closeOnRouteChange", "radius", "maxHeight", "returnFocusTo", "persistKey", "autoCollapseAfter", "linkedSheets", "viewTransitions", "stackEffect", "features"];
|
|
4
|
+
type EngineConfig = Pick<EngineOptions, (typeof ENGINE_OPTION_KEYS)[number]>;
|
|
5
|
+
|
|
6
|
+
export type { EngineConfig as E };
|