@mindlogic-ai/logician-ui 4.0.0-alpha.35 → 4.0.0-alpha.36
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/BottomSheet/BottomSheet.d.ts +28 -0
- package/dist/components/BottomSheet/BottomSheet.d.ts.map +1 -0
- package/dist/components/BottomSheet/BottomSheet.js +38 -0
- package/dist/components/BottomSheet/BottomSheet.js.map +1 -0
- package/dist/components/BottomSheet/BottomSheet.mjs +36 -0
- package/dist/components/BottomSheet/BottomSheet.mjs.map +1 -0
- package/dist/components/BottomSheet/BottomSheet.styles.d.ts +32 -0
- package/dist/components/BottomSheet/BottomSheet.styles.d.ts.map +1 -0
- package/dist/components/BottomSheet/BottomSheet.styles.js +164 -0
- package/dist/components/BottomSheet/BottomSheet.styles.js.map +1 -0
- package/dist/components/BottomSheet/BottomSheet.styles.mjs +161 -0
- package/dist/components/BottomSheet/BottomSheet.styles.mjs.map +1 -0
- package/dist/components/BottomSheet/BottomSheet.types.d.ts +43 -0
- package/dist/components/BottomSheet/BottomSheet.types.d.ts.map +1 -0
- package/dist/components/BottomSheet/BottomSheetBody.d.ts +8 -0
- package/dist/components/BottomSheet/BottomSheetBody.d.ts.map +1 -0
- package/dist/components/BottomSheet/BottomSheetBody.js +17 -0
- package/dist/components/BottomSheet/BottomSheetBody.js.map +1 -0
- package/dist/components/BottomSheet/BottomSheetBody.mjs +15 -0
- package/dist/components/BottomSheet/BottomSheetBody.mjs.map +1 -0
- package/dist/components/BottomSheet/BottomSheetCloseButton.d.ts +11 -0
- package/dist/components/BottomSheet/BottomSheetCloseButton.d.ts.map +1 -0
- package/dist/components/BottomSheet/BottomSheetCloseButton.js +27 -0
- package/dist/components/BottomSheet/BottomSheetCloseButton.js.map +1 -0
- package/dist/components/BottomSheet/BottomSheetCloseButton.mjs +25 -0
- package/dist/components/BottomSheet/BottomSheetCloseButton.mjs.map +1 -0
- package/dist/components/BottomSheet/BottomSheetContent.d.ts +12 -0
- package/dist/components/BottomSheet/BottomSheetContent.d.ts.map +1 -0
- package/dist/components/BottomSheet/BottomSheetContent.js +25 -0
- package/dist/components/BottomSheet/BottomSheetContent.js.map +1 -0
- package/dist/components/BottomSheet/BottomSheetContent.mjs +23 -0
- package/dist/components/BottomSheet/BottomSheetContent.mjs.map +1 -0
- package/dist/components/BottomSheet/BottomSheetContext.d.ts +28 -0
- package/dist/components/BottomSheet/BottomSheetContext.d.ts.map +1 -0
- package/dist/components/BottomSheet/BottomSheetContext.js +53 -0
- package/dist/components/BottomSheet/BottomSheetContext.js.map +1 -0
- package/dist/components/BottomSheet/BottomSheetContext.mjs +40 -0
- package/dist/components/BottomSheet/BottomSheetContext.mjs.map +1 -0
- package/dist/components/BottomSheet/BottomSheetFooter.d.ts +4 -0
- package/dist/components/BottomSheet/BottomSheetFooter.d.ts.map +1 -0
- package/dist/components/BottomSheet/BottomSheetFooter.js +13 -0
- package/dist/components/BottomSheet/BottomSheetFooter.js.map +1 -0
- package/dist/components/BottomSheet/BottomSheetFooter.mjs +11 -0
- package/dist/components/BottomSheet/BottomSheetFooter.mjs.map +1 -0
- package/dist/components/BottomSheet/BottomSheetHeader.d.ts +8 -0
- package/dist/components/BottomSheet/BottomSheetHeader.d.ts.map +1 -0
- package/dist/components/BottomSheet/BottomSheetHeader.js +19 -0
- package/dist/components/BottomSheet/BottomSheetHeader.js.map +1 -0
- package/dist/components/BottomSheet/BottomSheetHeader.mjs +17 -0
- package/dist/components/BottomSheet/BottomSheetHeader.mjs.map +1 -0
- package/dist/components/BottomSheet/BottomSheetOverlay.d.ts +8 -0
- package/dist/components/BottomSheet/BottomSheetOverlay.d.ts.map +1 -0
- package/dist/components/BottomSheet/BottomSheetOverlay.js +17 -0
- package/dist/components/BottomSheet/BottomSheetOverlay.js.map +1 -0
- package/dist/components/BottomSheet/BottomSheetOverlay.mjs +15 -0
- package/dist/components/BottomSheet/BottomSheetOverlay.mjs.map +1 -0
- package/dist/components/BottomSheet/index.d.ts +11 -0
- package/dist/components/BottomSheet/index.d.ts.map +1 -0
- package/dist/components/Toast/useToast.d.ts +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +9 -0
- package/dist/index.mjs.map +1 -1
- package/dist/translations/Defaults.translations.json.js +10 -1
- package/dist/translations/Defaults.translations.json.js.map +1 -1
- package/dist/translations/Defaults.translations.json.mjs +10 -2
- package/dist/translations/Defaults.translations.json.mjs.map +1 -1
- package/package.json +3 -1
- package/src/components/BottomSheet/BottomSheet.stories.tsx +205 -0
- package/src/components/BottomSheet/BottomSheet.styles.ts +162 -0
- package/src/components/BottomSheet/BottomSheet.test.tsx +129 -0
- package/src/components/BottomSheet/BottomSheet.tsx +47 -0
- package/src/components/BottomSheet/BottomSheet.types.ts +50 -0
- package/src/components/BottomSheet/BottomSheetBody.tsx +15 -0
- package/src/components/BottomSheet/BottomSheetCloseButton.tsx +40 -0
- package/src/components/BottomSheet/BottomSheetContent.tsx +43 -0
- package/src/components/BottomSheet/BottomSheetContext.ts +79 -0
- package/src/components/BottomSheet/BottomSheetFooter.tsx +12 -0
- package/src/components/BottomSheet/BottomSheetHeader.tsx +22 -0
- package/src/components/BottomSheet/BottomSheetOverlay.tsx +16 -0
- package/src/components/BottomSheet/index.tsx +22 -0
- package/src/components/SegmentedControl/SegmentedControl.timing.test.tsx +9 -2
- package/src/index.ts +1 -0
- package/src/translations/Defaults.translations.json +8 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { BottomSheetProps } from './BottomSheet.types';
|
|
2
|
+
/**
|
|
3
|
+
* A sheet that rises from the bottom edge and can be dragged between snap
|
|
4
|
+
* points or swiped away — built on Ark's `Drawer` (zag-js), not on Chakra's
|
|
5
|
+
* `Drawer`, which wraps Ark's *Dialog* and so has no swipe, snap points or
|
|
6
|
+
* grabber.
|
|
7
|
+
*
|
|
8
|
+
* Same shape as `Modal`: this is the root and the portal, and the overlay comes
|
|
9
|
+
* with it whenever the sheet is modal. Pass `modal={false}` for a sheet that
|
|
10
|
+
* leaves the page behind it interactive (no overlay, no focus trap, no scroll
|
|
11
|
+
* lock) — typically with `snapPoints` so it can rest half-open.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* <BottomSheet open={open} onOpenChange={(e) => setOpen(e.open)}>
|
|
16
|
+
* <BottomSheetContent>
|
|
17
|
+
* <BottomSheetHeader>노드 추가</BottomSheetHeader>
|
|
18
|
+
* <BottomSheetCloseButton />
|
|
19
|
+
* <BottomSheetBody>…</BottomSheetBody>
|
|
20
|
+
* </BottomSheetContent>
|
|
21
|
+
* </BottomSheet>
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare const BottomSheet: {
|
|
25
|
+
({ children, portalProps, ...rest }: BottomSheetProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
displayName: string;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=BottomSheet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../src/components/BottomSheet/BottomSheet.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAI5D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW;yCAIrB,gBAAgB;;CAWlB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react = require('@chakra-ui/react');
|
|
6
|
+
var BottomSheetContext = require('./BottomSheetContext.js');
|
|
7
|
+
var BottomSheetOverlay = require('./BottomSheetOverlay.js');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A sheet that rises from the bottom edge and can be dragged between snap
|
|
11
|
+
* points or swiped away — built on Ark's `Drawer` (zag-js), not on Chakra's
|
|
12
|
+
* `Drawer`, which wraps Ark's *Dialog* and so has no swipe, snap points or
|
|
13
|
+
* grabber.
|
|
14
|
+
*
|
|
15
|
+
* Same shape as `Modal`: this is the root and the portal, and the overlay comes
|
|
16
|
+
* with it whenever the sheet is modal. Pass `modal={false}` for a sheet that
|
|
17
|
+
* leaves the page behind it interactive (no overlay, no focus trap, no scroll
|
|
18
|
+
* lock) — typically with `snapPoints` so it can rest half-open.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* <BottomSheet open={open} onOpenChange={(e) => setOpen(e.open)}>
|
|
23
|
+
* <BottomSheetContent>
|
|
24
|
+
* <BottomSheetHeader>노드 추가</BottomSheetHeader>
|
|
25
|
+
* <BottomSheetCloseButton />
|
|
26
|
+
* <BottomSheetBody>…</BottomSheetBody>
|
|
27
|
+
* </BottomSheetContent>
|
|
28
|
+
* </BottomSheet>
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
const BottomSheet = ({ children, portalProps, ...rest }) => {
|
|
32
|
+
const isModal = rest.modal !== false;
|
|
33
|
+
return (jsxRuntime.jsx(BottomSheetContext.StyledRoot, { ...rest, children: jsxRuntime.jsxs(react.Portal, { ...portalProps, children: [isModal && jsxRuntime.jsx(BottomSheetOverlay.BottomSheetOverlay, {}), children] }) }));
|
|
34
|
+
};
|
|
35
|
+
BottomSheet.displayName = 'BottomSheet';
|
|
36
|
+
|
|
37
|
+
exports.BottomSheet = BottomSheet;
|
|
38
|
+
//# sourceMappingURL=BottomSheet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheet.js","sources":["../../../src/components/BottomSheet/BottomSheet.tsx"],"sourcesContent":[null],"names":["_jsx","StyledRoot","_jsxs","Portal","BottomSheetOverlay"],"mappings":";;;;;;;;AAOA;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,MAAM,WAAW,GAAG,CAAC,EAC1B,QAAQ,EACR,WAAW,EACX,GAAG,IAAI,EACU,KAAI;AACrB,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,KAAK;IAEpC,QACEA,eAACC,6BAAU,EAAA,EAAA,GAAK,IAAI,EAAA,QAAA,EAClBC,eAAA,CAACC,YAAM,EAAA,EAAA,GAAK,WAAW,aACpB,OAAO,IAAIH,eAACI,qCAAkB,EAAA,EAAA,CAAG,EACjC,QAAQ,CAAA,EAAA,CACF,EAAA,CACE;AAEjB;AAEA,WAAW,CAAC,WAAW,GAAG,aAAa;;;;"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
+
import { Portal } from '@chakra-ui/react';
|
|
4
|
+
import { StyledRoot } from './BottomSheetContext.mjs';
|
|
5
|
+
import { BottomSheetOverlay } from './BottomSheetOverlay.mjs';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* A sheet that rises from the bottom edge and can be dragged between snap
|
|
9
|
+
* points or swiped away — built on Ark's `Drawer` (zag-js), not on Chakra's
|
|
10
|
+
* `Drawer`, which wraps Ark's *Dialog* and so has no swipe, snap points or
|
|
11
|
+
* grabber.
|
|
12
|
+
*
|
|
13
|
+
* Same shape as `Modal`: this is the root and the portal, and the overlay comes
|
|
14
|
+
* with it whenever the sheet is modal. Pass `modal={false}` for a sheet that
|
|
15
|
+
* leaves the page behind it interactive (no overlay, no focus trap, no scroll
|
|
16
|
+
* lock) — typically with `snapPoints` so it can rest half-open.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* <BottomSheet open={open} onOpenChange={(e) => setOpen(e.open)}>
|
|
21
|
+
* <BottomSheetContent>
|
|
22
|
+
* <BottomSheetHeader>노드 추가</BottomSheetHeader>
|
|
23
|
+
* <BottomSheetCloseButton />
|
|
24
|
+
* <BottomSheetBody>…</BottomSheetBody>
|
|
25
|
+
* </BottomSheetContent>
|
|
26
|
+
* </BottomSheet>
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
const BottomSheet = ({ children, portalProps, ...rest }) => {
|
|
30
|
+
const isModal = rest.modal !== false;
|
|
31
|
+
return (jsx(StyledRoot, { ...rest, children: jsxs(Portal, { ...portalProps, children: [isModal && jsx(BottomSheetOverlay, {}), children] }) }));
|
|
32
|
+
};
|
|
33
|
+
BottomSheet.displayName = 'BottomSheet';
|
|
34
|
+
|
|
35
|
+
export { BottomSheet };
|
|
36
|
+
//# sourceMappingURL=BottomSheet.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheet.mjs","sources":["../../../src/components/BottomSheet/BottomSheet.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":";;;;;;AAOA;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,MAAM,WAAW,GAAG,CAAC,EAC1B,QAAQ,EACR,WAAW,EACX,GAAG,IAAI,EACU,KAAI;AACrB,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,KAAK;IAEpC,QACEA,IAAC,UAAU,EAAA,EAAA,GAAK,IAAI,EAAA,QAAA,EAClBC,IAAA,CAAC,MAAM,EAAA,EAAA,GAAK,WAAW,aACpB,OAAO,IAAID,IAAC,kBAAkB,EAAA,EAAA,CAAG,EACjC,QAAQ,CAAA,EAAA,CACF,EAAA,CACE;AAEjB;AAEA,WAAW,CAAC,WAAW,GAAG,aAAa;;;;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parts the sheet styles. Ark's drawer anatomy plus the three layout slots
|
|
3
|
+
* (`header` / `body` / `footer`) that have no machine behaviour of their own —
|
|
4
|
+
* the same extension Chakra makes for its dialog-backed `Drawer`.
|
|
5
|
+
*/
|
|
6
|
+
export declare const bottomSheetAnatomy: import("@zag-js/anatomy").AnatomyInstance<"content" | "body" | "footer" | "header" | "title" | "positioner" | "description" | "trigger" | "backdrop" | "grabber" | "grabberIndicator" | "closeTrigger" | "swipeArea">;
|
|
7
|
+
/**
|
|
8
|
+
* The BottomSheet's slot recipe.
|
|
9
|
+
*
|
|
10
|
+
* Passed to `createSlotRecipeContext({ recipe })` rather than registered in the
|
|
11
|
+
* theme under a key, so the sheet renders the same whether or not the consuming
|
|
12
|
+
* app built its system from `logicianConfig` — and an app that wants to restyle
|
|
13
|
+
* it can still pass style props per part.
|
|
14
|
+
*
|
|
15
|
+
* Two clocks move the content, and they are deliberately separate:
|
|
16
|
+
*
|
|
17
|
+
* - **Presence** (open / close) is a keyframe animation on `translate`, timed by
|
|
18
|
+
* the shared `presence` preset — enter on `motion.base`, exit on `fast`.
|
|
19
|
+
* - **Snap / release** is a transition on `transform`. Zag drives `transform`
|
|
20
|
+
* inline from `--drawer-translate-y` while the sheet is dragged (and zeroes the
|
|
21
|
+
* transition duration during the drag), so the transition only runs when a
|
|
22
|
+
* finger lets go or the snap point changes.
|
|
23
|
+
*
|
|
24
|
+
* `translate` and `transform` compose, so the entrance never fights the drag.
|
|
25
|
+
*
|
|
26
|
+
* Reduced motion: `presence` swaps the slide for a plain fade (restated below so
|
|
27
|
+
* the recipe's own `animationName` cannot outrank it), and the snap transition
|
|
28
|
+
* drops to `motion.instant` so the sheet lands on its snap point without
|
|
29
|
+
* travelling there.
|
|
30
|
+
*/
|
|
31
|
+
export declare const bottomSheetSlotRecipe: import("@chakra-ui/react").SlotRecipeDefinition<"content" | "body" | "footer" | "header" | "title" | "positioner" | "description" | "trigger" | "backdrop" | "grabber" | "grabberIndicator" | "closeTrigger" | "swipeArea", import("@chakra-ui/react").SlotRecipeVariantRecord<"content" | "body" | "footer" | "header" | "title" | "positioner" | "description" | "trigger" | "backdrop" | "grabber" | "grabberIndicator" | "closeTrigger" | "swipeArea">>;
|
|
32
|
+
//# sourceMappingURL=BottomSheet.styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheet.styles.d.ts","sourceRoot":"","sources":["../../../src/components/BottomSheet/BottomSheet.styles.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,uNAI9B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,qBAAqB,6bA2HhC,CAAC"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var drawer = require('@ark-ui/react/drawer');
|
|
5
|
+
var react = require('@chakra-ui/react');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Parts the sheet styles. Ark's drawer anatomy plus the three layout slots
|
|
9
|
+
* (`header` / `body` / `footer`) that have no machine behaviour of their own —
|
|
10
|
+
* the same extension Chakra makes for its dialog-backed `Drawer`.
|
|
11
|
+
*/
|
|
12
|
+
const bottomSheetAnatomy = drawer.drawerAnatomy.extendWith('header', 'body', 'footer');
|
|
13
|
+
/**
|
|
14
|
+
* The BottomSheet's slot recipe.
|
|
15
|
+
*
|
|
16
|
+
* Passed to `createSlotRecipeContext({ recipe })` rather than registered in the
|
|
17
|
+
* theme under a key, so the sheet renders the same whether or not the consuming
|
|
18
|
+
* app built its system from `logicianConfig` — and an app that wants to restyle
|
|
19
|
+
* it can still pass style props per part.
|
|
20
|
+
*
|
|
21
|
+
* Two clocks move the content, and they are deliberately separate:
|
|
22
|
+
*
|
|
23
|
+
* - **Presence** (open / close) is a keyframe animation on `translate`, timed by
|
|
24
|
+
* the shared `presence` preset — enter on `motion.base`, exit on `fast`.
|
|
25
|
+
* - **Snap / release** is a transition on `transform`. Zag drives `transform`
|
|
26
|
+
* inline from `--drawer-translate-y` while the sheet is dragged (and zeroes the
|
|
27
|
+
* transition duration during the drag), so the transition only runs when a
|
|
28
|
+
* finger lets go or the snap point changes.
|
|
29
|
+
*
|
|
30
|
+
* `translate` and `transform` compose, so the entrance never fights the drag.
|
|
31
|
+
*
|
|
32
|
+
* Reduced motion: `presence` swaps the slide for a plain fade (restated below so
|
|
33
|
+
* the recipe's own `animationName` cannot outrank it), and the snap transition
|
|
34
|
+
* drops to `motion.instant` so the sheet lands on its snap point without
|
|
35
|
+
* travelling there.
|
|
36
|
+
*/
|
|
37
|
+
const bottomSheetSlotRecipe = react.defineSlotRecipe({
|
|
38
|
+
className: 'logician-bottom-sheet',
|
|
39
|
+
slots: bottomSheetAnatomy.keys(),
|
|
40
|
+
base: {
|
|
41
|
+
backdrop: {
|
|
42
|
+
position: 'fixed',
|
|
43
|
+
insetInlineStart: 0,
|
|
44
|
+
top: 0,
|
|
45
|
+
w: '100vw',
|
|
46
|
+
h: '100dvh',
|
|
47
|
+
bg: 'blackAlpha.500',
|
|
48
|
+
zIndex: 'calc(var(--chakra-z-index-modal) + var(--layer-index, 0) - 1)',
|
|
49
|
+
// Fades with the finger: zag reports how far toward closed the sheet has
|
|
50
|
+
// been dragged as a 0–1 progress.
|
|
51
|
+
opacity: 'calc(1 - var(--drawer-swipe-progress, 0))',
|
|
52
|
+
animationStyle: 'presence',
|
|
53
|
+
_open: { animationName: 'fade-in' },
|
|
54
|
+
_closed: { animationName: 'fade-out' },
|
|
55
|
+
},
|
|
56
|
+
positioner: {
|
|
57
|
+
display: 'flex',
|
|
58
|
+
alignItems: 'flex-end',
|
|
59
|
+
justifyContent: 'center',
|
|
60
|
+
position: 'fixed',
|
|
61
|
+
insetInlineStart: 0,
|
|
62
|
+
top: 0,
|
|
63
|
+
w: '100vw',
|
|
64
|
+
h: '100dvh',
|
|
65
|
+
zIndex: 'calc(var(--chakra-z-index-modal) + var(--layer-index, 0))',
|
|
66
|
+
overscrollBehaviorY: 'none',
|
|
67
|
+
},
|
|
68
|
+
content: {
|
|
69
|
+
display: 'flex',
|
|
70
|
+
flexDirection: 'column',
|
|
71
|
+
position: 'relative',
|
|
72
|
+
w: '100%',
|
|
73
|
+
maxH: '85dvh',
|
|
74
|
+
outline: 0,
|
|
75
|
+
bg: 'bg.surface',
|
|
76
|
+
color: 'fg.default',
|
|
77
|
+
borderTopRadius: 'l3',
|
|
78
|
+
borderTopWidth: '1px',
|
|
79
|
+
borderColor: 'border.subtle',
|
|
80
|
+
boxShadow: 'lg',
|
|
81
|
+
// Keeps the last row and the footer clear of the iOS home indicator.
|
|
82
|
+
pb: 'env(safe-area-inset-bottom, 0px)',
|
|
83
|
+
animationStyle: 'presence',
|
|
84
|
+
_open: { animationName: 'slide-from-bottom-full' },
|
|
85
|
+
_closed: { animationName: 'slide-to-bottom-full' },
|
|
86
|
+
transitionProperty: 'transform',
|
|
87
|
+
transitionDuration: 'motion.base',
|
|
88
|
+
transitionTimingFunction: 'emphasized',
|
|
89
|
+
_motionReduce: {
|
|
90
|
+
transitionDuration: 'motion.instant',
|
|
91
|
+
_open: { animationName: 'fade-in' },
|
|
92
|
+
_closed: { animationName: 'fade-out' },
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
grabber: {
|
|
96
|
+
display: 'flex',
|
|
97
|
+
alignItems: 'center',
|
|
98
|
+
justifyContent: 'center',
|
|
99
|
+
flexShrink: 0,
|
|
100
|
+
// A finger-sized strip, though the bar inside it is small.
|
|
101
|
+
h: '6',
|
|
102
|
+
cursor: 'grab',
|
|
103
|
+
_active: { cursor: 'grabbing' },
|
|
104
|
+
},
|
|
105
|
+
grabberIndicator: {
|
|
106
|
+
w: '10',
|
|
107
|
+
h: '1',
|
|
108
|
+
borderRadius: 'full',
|
|
109
|
+
bg: 'border.default',
|
|
110
|
+
},
|
|
111
|
+
header: {
|
|
112
|
+
display: 'flex',
|
|
113
|
+
alignItems: 'center',
|
|
114
|
+
gap: '2',
|
|
115
|
+
flexShrink: 0,
|
|
116
|
+
px: '4',
|
|
117
|
+
pt: '1',
|
|
118
|
+
pb: '3',
|
|
119
|
+
// Leave room for the absolutely placed close button so a long title
|
|
120
|
+
// wraps before it instead of running underneath it.
|
|
121
|
+
'[data-part=content]:has(> [data-part=close-trigger]) > &': {
|
|
122
|
+
pe: '12',
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
title: {
|
|
126
|
+
flex: '1',
|
|
127
|
+
minW: 0,
|
|
128
|
+
textStyle: 'h5',
|
|
129
|
+
color: 'fg.default',
|
|
130
|
+
},
|
|
131
|
+
description: {
|
|
132
|
+
color: 'fg.muted',
|
|
133
|
+
},
|
|
134
|
+
body: {
|
|
135
|
+
flex: '1',
|
|
136
|
+
minH: 0,
|
|
137
|
+
overflowY: 'auto',
|
|
138
|
+
overscrollBehavior: 'contain',
|
|
139
|
+
px: '4',
|
|
140
|
+
pb: '4',
|
|
141
|
+
},
|
|
142
|
+
footer: {
|
|
143
|
+
display: 'flex',
|
|
144
|
+
alignItems: 'center',
|
|
145
|
+
justifyContent: 'flex-end',
|
|
146
|
+
gap: '3',
|
|
147
|
+
flexShrink: 0,
|
|
148
|
+
px: '4',
|
|
149
|
+
pt: '3',
|
|
150
|
+
pb: '4',
|
|
151
|
+
borderTopWidth: '1px',
|
|
152
|
+
borderColor: 'border.subtle',
|
|
153
|
+
},
|
|
154
|
+
closeTrigger: {
|
|
155
|
+
position: 'absolute',
|
|
156
|
+
top: '3',
|
|
157
|
+
insetEnd: '3',
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
exports.bottomSheetAnatomy = bottomSheetAnatomy;
|
|
163
|
+
exports.bottomSheetSlotRecipe = bottomSheetSlotRecipe;
|
|
164
|
+
//# sourceMappingURL=BottomSheet.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheet.styles.js","sources":["../../../src/components/BottomSheet/BottomSheet.styles.ts"],"sourcesContent":[null],"names":["drawerAnatomy","defineSlotRecipe"],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { drawerAnatomy } from '@ark-ui/react/drawer';
|
|
3
|
+
import { defineSlotRecipe } from '@chakra-ui/react';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Parts the sheet styles. Ark's drawer anatomy plus the three layout slots
|
|
7
|
+
* (`header` / `body` / `footer`) that have no machine behaviour of their own —
|
|
8
|
+
* the same extension Chakra makes for its dialog-backed `Drawer`.
|
|
9
|
+
*/
|
|
10
|
+
const bottomSheetAnatomy = drawerAnatomy.extendWith('header', 'body', 'footer');
|
|
11
|
+
/**
|
|
12
|
+
* The BottomSheet's slot recipe.
|
|
13
|
+
*
|
|
14
|
+
* Passed to `createSlotRecipeContext({ recipe })` rather than registered in the
|
|
15
|
+
* theme under a key, so the sheet renders the same whether or not the consuming
|
|
16
|
+
* app built its system from `logicianConfig` — and an app that wants to restyle
|
|
17
|
+
* it can still pass style props per part.
|
|
18
|
+
*
|
|
19
|
+
* Two clocks move the content, and they are deliberately separate:
|
|
20
|
+
*
|
|
21
|
+
* - **Presence** (open / close) is a keyframe animation on `translate`, timed by
|
|
22
|
+
* the shared `presence` preset — enter on `motion.base`, exit on `fast`.
|
|
23
|
+
* - **Snap / release** is a transition on `transform`. Zag drives `transform`
|
|
24
|
+
* inline from `--drawer-translate-y` while the sheet is dragged (and zeroes the
|
|
25
|
+
* transition duration during the drag), so the transition only runs when a
|
|
26
|
+
* finger lets go or the snap point changes.
|
|
27
|
+
*
|
|
28
|
+
* `translate` and `transform` compose, so the entrance never fights the drag.
|
|
29
|
+
*
|
|
30
|
+
* Reduced motion: `presence` swaps the slide for a plain fade (restated below so
|
|
31
|
+
* the recipe's own `animationName` cannot outrank it), and the snap transition
|
|
32
|
+
* drops to `motion.instant` so the sheet lands on its snap point without
|
|
33
|
+
* travelling there.
|
|
34
|
+
*/
|
|
35
|
+
const bottomSheetSlotRecipe = defineSlotRecipe({
|
|
36
|
+
className: 'logician-bottom-sheet',
|
|
37
|
+
slots: bottomSheetAnatomy.keys(),
|
|
38
|
+
base: {
|
|
39
|
+
backdrop: {
|
|
40
|
+
position: 'fixed',
|
|
41
|
+
insetInlineStart: 0,
|
|
42
|
+
top: 0,
|
|
43
|
+
w: '100vw',
|
|
44
|
+
h: '100dvh',
|
|
45
|
+
bg: 'blackAlpha.500',
|
|
46
|
+
zIndex: 'calc(var(--chakra-z-index-modal) + var(--layer-index, 0) - 1)',
|
|
47
|
+
// Fades with the finger: zag reports how far toward closed the sheet has
|
|
48
|
+
// been dragged as a 0–1 progress.
|
|
49
|
+
opacity: 'calc(1 - var(--drawer-swipe-progress, 0))',
|
|
50
|
+
animationStyle: 'presence',
|
|
51
|
+
_open: { animationName: 'fade-in' },
|
|
52
|
+
_closed: { animationName: 'fade-out' },
|
|
53
|
+
},
|
|
54
|
+
positioner: {
|
|
55
|
+
display: 'flex',
|
|
56
|
+
alignItems: 'flex-end',
|
|
57
|
+
justifyContent: 'center',
|
|
58
|
+
position: 'fixed',
|
|
59
|
+
insetInlineStart: 0,
|
|
60
|
+
top: 0,
|
|
61
|
+
w: '100vw',
|
|
62
|
+
h: '100dvh',
|
|
63
|
+
zIndex: 'calc(var(--chakra-z-index-modal) + var(--layer-index, 0))',
|
|
64
|
+
overscrollBehaviorY: 'none',
|
|
65
|
+
},
|
|
66
|
+
content: {
|
|
67
|
+
display: 'flex',
|
|
68
|
+
flexDirection: 'column',
|
|
69
|
+
position: 'relative',
|
|
70
|
+
w: '100%',
|
|
71
|
+
maxH: '85dvh',
|
|
72
|
+
outline: 0,
|
|
73
|
+
bg: 'bg.surface',
|
|
74
|
+
color: 'fg.default',
|
|
75
|
+
borderTopRadius: 'l3',
|
|
76
|
+
borderTopWidth: '1px',
|
|
77
|
+
borderColor: 'border.subtle',
|
|
78
|
+
boxShadow: 'lg',
|
|
79
|
+
// Keeps the last row and the footer clear of the iOS home indicator.
|
|
80
|
+
pb: 'env(safe-area-inset-bottom, 0px)',
|
|
81
|
+
animationStyle: 'presence',
|
|
82
|
+
_open: { animationName: 'slide-from-bottom-full' },
|
|
83
|
+
_closed: { animationName: 'slide-to-bottom-full' },
|
|
84
|
+
transitionProperty: 'transform',
|
|
85
|
+
transitionDuration: 'motion.base',
|
|
86
|
+
transitionTimingFunction: 'emphasized',
|
|
87
|
+
_motionReduce: {
|
|
88
|
+
transitionDuration: 'motion.instant',
|
|
89
|
+
_open: { animationName: 'fade-in' },
|
|
90
|
+
_closed: { animationName: 'fade-out' },
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
grabber: {
|
|
94
|
+
display: 'flex',
|
|
95
|
+
alignItems: 'center',
|
|
96
|
+
justifyContent: 'center',
|
|
97
|
+
flexShrink: 0,
|
|
98
|
+
// A finger-sized strip, though the bar inside it is small.
|
|
99
|
+
h: '6',
|
|
100
|
+
cursor: 'grab',
|
|
101
|
+
_active: { cursor: 'grabbing' },
|
|
102
|
+
},
|
|
103
|
+
grabberIndicator: {
|
|
104
|
+
w: '10',
|
|
105
|
+
h: '1',
|
|
106
|
+
borderRadius: 'full',
|
|
107
|
+
bg: 'border.default',
|
|
108
|
+
},
|
|
109
|
+
header: {
|
|
110
|
+
display: 'flex',
|
|
111
|
+
alignItems: 'center',
|
|
112
|
+
gap: '2',
|
|
113
|
+
flexShrink: 0,
|
|
114
|
+
px: '4',
|
|
115
|
+
pt: '1',
|
|
116
|
+
pb: '3',
|
|
117
|
+
// Leave room for the absolutely placed close button so a long title
|
|
118
|
+
// wraps before it instead of running underneath it.
|
|
119
|
+
'[data-part=content]:has(> [data-part=close-trigger]) > &': {
|
|
120
|
+
pe: '12',
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
title: {
|
|
124
|
+
flex: '1',
|
|
125
|
+
minW: 0,
|
|
126
|
+
textStyle: 'h5',
|
|
127
|
+
color: 'fg.default',
|
|
128
|
+
},
|
|
129
|
+
description: {
|
|
130
|
+
color: 'fg.muted',
|
|
131
|
+
},
|
|
132
|
+
body: {
|
|
133
|
+
flex: '1',
|
|
134
|
+
minH: 0,
|
|
135
|
+
overflowY: 'auto',
|
|
136
|
+
overscrollBehavior: 'contain',
|
|
137
|
+
px: '4',
|
|
138
|
+
pb: '4',
|
|
139
|
+
},
|
|
140
|
+
footer: {
|
|
141
|
+
display: 'flex',
|
|
142
|
+
alignItems: 'center',
|
|
143
|
+
justifyContent: 'flex-end',
|
|
144
|
+
gap: '3',
|
|
145
|
+
flexShrink: 0,
|
|
146
|
+
px: '4',
|
|
147
|
+
pt: '3',
|
|
148
|
+
pb: '4',
|
|
149
|
+
borderTopWidth: '1px',
|
|
150
|
+
borderColor: 'border.subtle',
|
|
151
|
+
},
|
|
152
|
+
closeTrigger: {
|
|
153
|
+
position: 'absolute',
|
|
154
|
+
top: '3',
|
|
155
|
+
insetEnd: '3',
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
export { bottomSheetAnatomy, bottomSheetSlotRecipe };
|
|
161
|
+
//# sourceMappingURL=BottomSheet.styles.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheet.styles.mjs","sources":["../../../src/components/BottomSheet/BottomSheet.styles.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { Drawer, UseDrawerContext } from '@ark-ui/react/drawer';
|
|
2
|
+
import type { HTMLChakraProps, PortalProps } from '@chakra-ui/react';
|
|
3
|
+
import type { IconButtonProps } from '../IconButton/IconButton.types';
|
|
4
|
+
/**
|
|
5
|
+
* Props for `BottomSheet` — Ark's `Drawer.Root` props, unchanged, plus
|
|
6
|
+
* `portalProps`.
|
|
7
|
+
*
|
|
8
|
+
* Everything the machine does is configured here: `open` / `onOpenChange`,
|
|
9
|
+
* `snapPoints` / `defaultSnapPoint` / `snapPoint` / `onSnapPointChange`,
|
|
10
|
+
* `modal`, `closeOnInteractOutside`, `closeOnEscape`, `closeThreshold`,
|
|
11
|
+
* `swipeVelocityThreshold`, `preventDragOnScroll`, `lazyMount`,
|
|
12
|
+
* `unmountOnExit`, …
|
|
13
|
+
*
|
|
14
|
+
* Snap points that are numbers ≤ 1 are fractions of the **viewport** height,
|
|
15
|
+
* capped at the sheet's own height (`snapPoints={[0.4, 1]}` = 40% of the
|
|
16
|
+
* screen, then fully open). Strings take `px` / `rem` values.
|
|
17
|
+
*/
|
|
18
|
+
export type BottomSheetProps = Drawer.RootProps & {
|
|
19
|
+
/** Passed to the Chakra `Portal` the sheet renders into. */
|
|
20
|
+
portalProps?: PortalProps;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* `HTMLChakraProps<'div'>` with Ark's content props folded in — which only
|
|
24
|
+
* changes `draggable`: on the sheet it is Ark's boolean "can a drag start from
|
|
25
|
+
* the content itself" (default `true`; `false` leaves the grabber as the only
|
|
26
|
+
* handle), not the HTML drag-and-drop attribute.
|
|
27
|
+
*/
|
|
28
|
+
export type BottomSheetContentProps = HTMLChakraProps<'div', Drawer.ContentBaseProps> & {
|
|
29
|
+
/**
|
|
30
|
+
* Renders the drag handle at the top of the sheet. The whole sheet can be
|
|
31
|
+
* dragged either way; the handle is the visible affordance.
|
|
32
|
+
* @default true
|
|
33
|
+
*/
|
|
34
|
+
showGrabber?: boolean;
|
|
35
|
+
};
|
|
36
|
+
export type BottomSheetHeaderProps = HTMLChakraProps<'div'>;
|
|
37
|
+
export type BottomSheetBodyProps = HTMLChakraProps<'div'>;
|
|
38
|
+
export type BottomSheetFooterProps = HTMLChakraProps<'div'>;
|
|
39
|
+
export type BottomSheetOverlayProps = HTMLChakraProps<'div'>;
|
|
40
|
+
export type BottomSheetCloseButtonProps = Partial<IconButtonProps>;
|
|
41
|
+
/** What `useBottomSheetContext()` returns — Ark's drawer API. */
|
|
42
|
+
export type BottomSheetContextValue = UseDrawerContext;
|
|
43
|
+
//# sourceMappingURL=BottomSheet.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheet.types.d.ts","sourceRoot":"","sources":["../../../src/components/BottomSheet/BottomSheet.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,GAAG;IAChD,4DAA4D;IAC5D,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,eAAe,CACnD,KAAK,EACL,MAAM,CAAC,gBAAgB,CACxB,GAAG;IACF;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;AAC5D,MAAM,MAAM,oBAAoB,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;AAC1D,MAAM,MAAM,sBAAsB,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;AAC5D,MAAM,MAAM,uBAAuB,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;AAC7D,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAEnE,iEAAiE;AACjE,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* The scrolling region. Takes whatever height the header and footer leave and
|
|
4
|
+
* scrolls inside it; zag only starts a drag from here once the list is scrolled
|
|
5
|
+
* to the top (`preventDragOnScroll`), so scrolling a list never drags the sheet.
|
|
6
|
+
*/
|
|
7
|
+
export declare const BottomSheetBody: React.ForwardRefExoticComponent<Omit<import("@chakra-ui/react").PatchHtmlProps<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">>, "color" | "translate" | "transition" | "width" | "height" | "content" | "_hover" | "_active" | "_focus" | "_focusWithin" | "_focusVisible" | "_disabled" | "_visited" | "_target" | "_readOnly" | "_readWrite" | "_empty" | "_checked" | "_enabled" | "_expanded" | "_highlighted" | "_complete" | "_incomplete" | "_dragging" | "_before" | "_after" | "_firstLetter" | "_firstLine" | "_marker" | "_selection" | "_file" | "_backdrop" | "_first" | "_last" | "_notFirst" | "_notLast" | "_only" | "_even" | "_odd" | "_peerFocus" | "_peerHover" | "_peerActive" | "_peerFocusWithin" | "_peerFocusVisible" | "_peerDisabled" | "_peerChecked" | "_peerInvalid" | "_peerExpanded" | "_peerPlaceholderShown" | "_groupFocus" | "_groupHover" | "_groupActive" | "_groupFocusWithin" | "_groupFocusVisible" | "_groupDisabled" | "_groupChecked" | "_groupExpanded" | "_groupInvalid" | "_indeterminate" | "_required" | "_valid" | "_invalid" | "_autofill" | "_inRange" | "_outOfRange" | "_placeholder" | "_placeholderShown" | "_pressed" | "_selected" | "_grabbed" | "_underValue" | "_overValue" | "_atValue" | "_default" | "_optional" | "_open" | "_closed" | "_fullscreen" | "_loading" | "_hidden" | "_current" | "_currentPage" | "_currentStep" | "_today" | "_unavailable" | "_rangeStart" | "_rangeEnd" | "_now" | "_topmost" | "_motionReduce" | "_motionSafe" | "_print" | "_landscape" | "_portrait" | "_dark" | "_light" | "_osDark" | "_osLight" | "_highContrast" | "_lessContrast" | "_moreContrast" | "_ltr" | "_rtl" | "_scrollbar" | "_scrollbarThumb" | "_scrollbarTrack" | "_horizontal" | "_vertical" | "_icon" | "_starting" | "sm" | "smOnly" | "smDown" | "md" | "mdOnly" | "mdDown" | "lg" | "lgOnly" | "lgDown" | "xl" | "xlOnly" | "xlDown" | "2xl" | "2xlOnly" | "2xlDown" | "smToMd" | "smToLg" | "smToXl" | "smTo2xl" | "mdToLg" | "mdToXl" | "mdTo2xl" | "lgToXl" | "lgTo2xl" | "xlTo2xl" | "base" | "page" | "container" | "css" | "WebkitAppearance" | "WebkitBorderBefore" | "WebkitBorderBeforeColor" | "WebkitBorderBeforeStyle" | "WebkitBorderBeforeWidth" | "WebkitBoxReflect" | "WebkitLineClamp" | "WebkitMask" | "WebkitMaskAttachment" | "WebkitMaskClip" | "WebkitMaskComposite" | "WebkitMaskImage" | "WebkitMaskOrigin" | "WebkitMaskPosition" | "WebkitMaskPositionX" | "WebkitMaskPositionY" | "WebkitMaskRepeat" | "WebkitMaskRepeatX" | "WebkitMaskRepeatY" | "WebkitMaskSize" | "WebkitOverflowScrolling" | "WebkitTapHighlightColor" | "WebkitTextFillColor" | "WebkitTextStroke" | "WebkitTextStrokeColor" | "WebkitTextStrokeWidth" | "WebkitTouchCallout" | "WebkitUserModify" | "WebkitUserSelect" | "accentColor" | "alignContent" | "alignItems" | "alignSelf" | "alignTracks" | "all" | "anchorName" | "anchorScope" | "animation" | "animationComposition" | "animationDelay" | "animationDirection" | "animationDuration" | "animationFillMode" | "animationIterationCount" | "animationName" | "animationPlayState" | "animationRange" | "animationRangeEnd" | "animationRangeStart" | "animationTimeline" | "animationTimingFunction" | "appearance" | "aspectRatio" | "backdropFilter" | "backfaceVisibility" | "background" | "backgroundAttachment" | "backgroundBlendMode" | "backgroundClip" | "backgroundColor" | "backgroundImage" | "backgroundOrigin" | "backgroundPosition" | "backgroundPositionX" | "backgroundPositionY" | "backgroundRepeat" | "backgroundSize" | "blockSize" | "border" | "borderBlock" | "borderBlockColor" | "borderBlockEnd" | "borderBlockEndColor" | "borderBlockEndStyle" | "borderBlockEndWidth" | "borderBlockStart" | "borderBlockStartColor" | "borderBlockStartStyle" | "borderBlockStartWidth" | "borderBlockStyle" | "borderBlockWidth" | "borderBottom" | "borderBottomColor" | "borderBottomLeftRadius" | "borderBottomRightRadius" | "borderBottomStyle" | "borderBottomWidth" | "borderCollapse" | "borderColor" | "borderEndEndRadius" | "borderEndStartRadius" | "borderImage" | "borderImageOutset" | "borderImageRepeat" | "borderImageSlice" | "borderImageSource" | "borderImageWidth" | "borderInline" | "borderInlineColor" | "borderInlineEnd" | "borderInlineEndColor" | "borderInlineEndStyle" | "borderInlineEndWidth" | "borderInlineStart" | "borderInlineStartColor" | "borderInlineStartStyle" | "borderInlineStartWidth" | "borderInlineStyle" | "borderInlineWidth" | "borderLeft" | "borderLeftColor" | "borderLeftStyle" | "borderLeftWidth" | "borderRadius" | "borderRight" | "borderRightColor" | "borderRightStyle" | "borderRightWidth" | "borderSpacing" | "borderStartEndRadius" | "borderStartStartRadius" | "borderStyle" | "borderTop" | "borderTopColor" | "borderTopLeftRadius" | "borderTopRightRadius" | "borderTopStyle" | "borderTopWidth" | "borderWidth" | "bottom" | "boxAlign" | "boxDecorationBreak" | "boxDirection" | "boxFlex" | "boxFlexGroup" | "boxLines" | "boxOrdinalGroup" | "boxOrient" | "boxPack" | "boxShadow" | "boxSizing" | "breakAfter" | "breakBefore" | "breakInside" | "captionSide" | "caret" | "caretColor" | "caretShape" | "clear" | "clip" | "clipPath" | "clipRule" | "colorInterpolationFilters" | "colorScheme" | "columnCount" | "columnFill" | "columnGap" | "columnRule" | "columnRuleColor" | "columnRuleStyle" | "columnRuleWidth" | "columnSpan" | "columnWidth" | "columns" | "contain" | "containIntrinsicBlockSize" | "containIntrinsicHeight" | "containIntrinsicInlineSize" | "containIntrinsicSize" | "containIntrinsicWidth" | "containerName" | "containerType" | "contentVisibility" | "counterIncrement" | "counterReset" | "counterSet" | "cursor" | "cx" | "cy" | "d" | "direction" | "display" | "dominantBaseline" | "emptyCells" | "fieldSizing" | "fill" | "fillOpacity" | "fillRule" | "filter" | "flex" | "flexBasis" | "flexDirection" | "flexFlow" | "flexGrow" | "flexShrink" | "flexWrap" | "float" | "floodColor" | "floodOpacity" | "font" | "fontFamily" | "fontFeatureSettings" | "fontKerning" | "fontLanguageOverride" | "fontOpticalSizing" | "fontPalette" | "fontSize" | "fontSizeAdjust" | "fontSmooth" | "fontStretch" | "fontStyle" | "fontSynthesis" | "fontSynthesisPosition" | "fontSynthesisSmallCaps" | "fontSynthesisStyle" | "fontSynthesisWeight" | "fontVariant" | "fontVariantAlternates" | "fontVariantCaps" | "fontVariantEastAsian" | "fontVariantEmoji" | "fontVariantLigatures" | "fontVariantNumeric" | "fontVariantPosition" | "fontVariationSettings" | "fontWeight" | "forcedColorAdjust" | "gap" | "grid" | "gridArea" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridColumn" | "gridColumnEnd" | "gridColumnGap" | "gridColumnStart" | "gridGap" | "gridRow" | "gridRowEnd" | "gridRowGap" | "gridRowStart" | "gridTemplate" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "hangingPunctuation" | "hyphenateCharacter" | "hyphenateLimitChars" | "hyphens" | "imageOrientation" | "imageRendering" | "imageResolution" | "imeMode" | "initialLetter" | "initialLetterAlign" | "inlineSize" | "inset" | "insetBlock" | "insetBlockEnd" | "insetBlockStart" | "insetInline" | "insetInlineEnd" | "insetInlineStart" | "interpolateSize" | "isolation" | "justifyContent" | "justifyItems" | "justifySelf" | "justifyTracks" | "left" | "letterSpacing" | "lightingColor" | "lineBreak" | "lineClamp" | "lineHeight" | "lineHeightStep" | "listStyle" | "listStyleImage" | "listStylePosition" | "listStyleType" | "margin" | "marginBlock" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInline" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "marginTrim" | "marker" | "markerEnd" | "markerMid" | "markerStart" | "mask" | "maskBorder" | "maskBorderMode" | "maskBorderOutset" | "maskBorderRepeat" | "maskBorderSlice" | "maskBorderSource" | "maskBorderWidth" | "maskClip" | "maskComposite" | "maskImage" | "maskMode" | "maskOrigin" | "maskPosition" | "maskRepeat" | "maskSize" | "maskType" | "masonryAutoFlow" | "mathDepth" | "mathShift" | "mathStyle" | "maxBlockSize" | "maxHeight" | "maxInlineSize" | "maxLines" | "maxWidth" | "minBlockSize" | "minHeight" | "minInlineSize" | "minWidth" | "mixBlendMode" | "objectFit" | "objectPosition" | "offset" | "offsetAnchor" | "offsetDistance" | "offsetPath" | "offsetPosition" | "offsetRotate" | "opacity" | "order" | "orphans" | "outline" | "outlineColor" | "outlineOffset" | "outlineStyle" | "outlineWidth" | "overflow" | "overflowAnchor" | "overflowBlock" | "overflowClipBox" | "overflowClipMargin" | "overflowInline" | "overflowWrap" | "overflowX" | "overflowY" | "overlay" | "overscrollBehavior" | "overscrollBehaviorBlock" | "overscrollBehaviorInline" | "overscrollBehaviorX" | "overscrollBehaviorY" | "padding" | "paddingBlock" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInline" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "pageBreakAfter" | "pageBreakBefore" | "pageBreakInside" | "paintOrder" | "perspective" | "perspectiveOrigin" | "placeContent" | "placeItems" | "placeSelf" | "pointerEvents" | "position" | "positionAnchor" | "positionArea" | "positionTry" | "positionTryFallbacks" | "positionTryOrder" | "positionVisibility" | "printColorAdjust" | "quotes" | "r" | "resize" | "right" | "rotate" | "rowGap" | "rubyAlign" | "rubyMerge" | "rubyPosition" | "rx" | "ry" | "scale" | "scrollBehavior" | "scrollMargin" | "scrollMarginBlock" | "scrollMarginBlockEnd" | "scrollMarginBlockStart" | "scrollMarginBottom" | "scrollMarginInline" | "scrollMarginInlineEnd" | "scrollMarginInlineStart" | "scrollMarginLeft" | "scrollMarginRight" | "scrollMarginTop" | "scrollPadding" | "scrollPaddingBlock" | "scrollPaddingBlockEnd" | "scrollPaddingBlockStart" | "scrollPaddingBottom" | "scrollPaddingInline" | "scrollPaddingInlineEnd" | "scrollPaddingInlineStart" | "scrollPaddingLeft" | "scrollPaddingRight" | "scrollPaddingTop" | "scrollSnapAlign" | "scrollSnapCoordinate" | "scrollSnapDestination" | "scrollSnapPointsX" | "scrollSnapPointsY" | "scrollSnapStop" | "scrollSnapType" | "scrollSnapTypeX" | "scrollSnapTypeY" | "scrollTimeline" | "scrollTimelineAxis" | "scrollTimelineName" | "scrollbarColor" | "scrollbarGutter" | "scrollbarWidth" | "shapeImageThreshold" | "shapeMargin" | "shapeOutside" | "shapeRendering" | "stopColor" | "stopOpacity" | "stroke" | "strokeDasharray" | "strokeDashoffset" | "strokeLinecap" | "strokeLinejoin" | "strokeMiterlimit" | "strokeOpacity" | "strokeWidth" | "tabSize" | "tableLayout" | "textAlign" | "textAlignLast" | "textAnchor" | "textBox" | "textBoxEdge" | "textBoxTrim" | "textCombineUpright" | "textDecoration" | "textDecorationColor" | "textDecorationLine" | "textDecorationSkip" | "textDecorationSkipInk" | "textDecorationStyle" | "textDecorationThickness" | "textEmphasis" | "textEmphasisColor" | "textEmphasisPosition" | "textEmphasisStyle" | "textIndent" | "textJustify" | "textOrientation" | "textOverflow" | "textRendering" | "textShadow" | "textSizeAdjust" | "textSpacingTrim" | "textTransform" | "textUnderlineOffset" | "textUnderlinePosition" | "textWrap" | "textWrapMode" | "textWrapStyle" | "timelineScope" | "top" | "touchAction" | "transform" | "transformBox" | "transformOrigin" | "transformStyle" | "transitionBehavior" | "transitionDelay" | "transitionDuration" | "transitionProperty" | "transitionTimingFunction" | "unicodeBidi" | "userSelect" | "vectorEffect" | "verticalAlign" | "viewTimeline" | "viewTimelineAxis" | "viewTimelineInset" | "viewTimelineName" | "viewTransitionName" | "visibility" | "whiteSpace" | "whiteSpaceCollapse" | "widows" | "willChange" | "wordBreak" | "wordSpacing" | "wordWrap" | "writingMode" | "x" | "y" | "zIndex" | "zoom" | "alignmentBaseline" | "baselineShift" | "colorInterpolation" | "colorRendering" | "glyphOrientationVertical" | "bg" | "bgColor" | "bgSize" | "bgPos" | "bgRepeat" | "bgAttachment" | "bgClip" | "bgGradient" | "bgImg" | "bgImage" | "borderStart" | "borderEnd" | "borderX" | "borderY" | "borderStartColor" | "borderEndColor" | "borderStartStyle" | "borderEndStyle" | "rounded" | "roundedTopLeft" | "roundedStartStart" | "borderTopStartRadius" | "roundedEndStart" | "borderBottomStartRadius" | "roundedTopRight" | "roundedStartEnd" | "borderTopEndRadius" | "roundedEndEnd" | "borderBottomEndRadius" | "roundedBottomLeft" | "roundedBottomRight" | "roundedStart" | "borderStartRadius" | "roundedEnd" | "borderEndRadius" | "roundedTop" | "roundedBottom" | "roundedLeft" | "roundedRight" | "borderXWidth" | "borderStartWidth" | "borderEndWidth" | "borderYWidth" | "shadow" | "shadowColor" | "blendMode" | "bgBlendMode" | "gapY" | "gapX" | "flexDir" | "w" | "h" | "minW" | "minH" | "maxW" | "maxH" | "overscroll" | "overscrollX" | "overscrollY" | "scrollPaddingX" | "scrollPaddingY" | "listStylePos" | "listStyleImg" | "pos" | "insetX" | "insetY" | "insetStart" | "insetEnd" | "m" | "mt" | "mr" | "mb" | "ml" | "ms" | "marginStart" | "me" | "marginEnd" | "mx" | "marginX" | "my" | "marginY" | "p" | "pt" | "pr" | "pb" | "pl" | "ps" | "paddingStart" | "pe" | "paddingEnd" | "px" | "paddingX" | "py" | "paddingY" | "textDecor" | "backgroundGradient" | "gradientFrom" | "gradientTo" | "gradientVia" | "borderInlineStartRadius" | "borderInlineEndRadius" | "borderTopRadius" | "borderBottomRadius" | "borderLeftRadius" | "borderRightRadius" | "divideX" | "divideY" | "divideColor" | "divideStyle" | "boxShadowColor" | "blur" | "brightness" | "contrast" | "grayscale" | "hueRotate" | "invert" | "saturate" | "sepia" | "dropShadow" | "backdropBlur" | "backdropBrightness" | "backdropContrast" | "backdropGrayscale" | "backdropHueRotate" | "backdropInvert" | "backdropOpacity" | "backdropSaturate" | "backdropSepia" | "focusRing" | "focusVisibleRing" | "focusRingColor" | "focusRingOffset" | "focusRingWidth" | "focusRingStyle" | "boxSize" | "hideFrom" | "hideBelow" | "scrollbar" | "scrollMarginX" | "scrollMarginY" | "scrollSnapStrictness" | "scrollSnapMargin" | "scrollSnapMarginTop" | "scrollSnapMarginBottom" | "scrollSnapMarginLeft" | "scrollSnapMarginRight" | "ring" | "ringColor" | "ringOffset" | "ringOffsetColor" | "ringInset" | "skewX" | "skewY" | "scaleX" | "scaleY" | "spaceXReverse" | "spaceX" | "spaceYReverse" | "spaceY" | "rotateX" | "rotateY" | "translateX" | "translateY" | "truncate" | "borderSpacingX" | "borderSpacingY" | "srOnly" | "debug" | "colorPalette" | "textStyle" | "layerStyle" | "animationStyle" | keyof import("@chakra-ui/react").PolymorphicProps> & Omit<import("@chakra-ui/react").JsxStyleProps, never> & import("@chakra-ui/react").PolymorphicProps & React.RefAttributes<HTMLDivElement>>;
|
|
8
|
+
//# sourceMappingURL=BottomSheetBody.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheetBody.d.ts","sourceRoot":"","sources":["../../../src/components/BottomSheet/BottomSheetBody.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAK1C;;;;GAIG;AACH,eAAO,MAAM,eAAe,0ucAE3B,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var BottomSheetContext = require('./BottomSheetContext.js');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The scrolling region. Takes whatever height the header and footer leave and
|
|
10
|
+
* scrolls inside it; zag only starts a drag from here once the list is scrolled
|
|
11
|
+
* to the top (`preventDragOnScroll`), so scrolling a list never drags the sheet.
|
|
12
|
+
*/
|
|
13
|
+
const BottomSheetBody = React.forwardRef((props, ref) => jsxRuntime.jsx(BottomSheetContext.StyledBody, { ref: ref, ...props }));
|
|
14
|
+
BottomSheetBody.displayName = 'BottomSheetBody';
|
|
15
|
+
|
|
16
|
+
exports.BottomSheetBody = BottomSheetBody;
|
|
17
|
+
//# sourceMappingURL=BottomSheetBody.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheetBody.js","sources":["../../../src/components/BottomSheet/BottomSheetBody.tsx"],"sourcesContent":[null],"names":["forwardRef","_jsx","StyledBody"],"mappings":";;;;;;;AAKA;;;;AAIG;MACU,eAAe,GAAGA,gBAAU,CACvC,CAAC,KAAK,EAAE,GAAG,KAAKC,cAAA,CAACC,6BAAU,EAAA,EAAC,GAAG,EAAE,GAAG,EAAA,GAAM,KAAK,EAAA,CAAI;AAGrD,eAAe,CAAC,WAAW,GAAG,iBAAiB;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { StyledBody } from './BottomSheetContext.mjs';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The scrolling region. Takes whatever height the header and footer leave and
|
|
8
|
+
* scrolls inside it; zag only starts a drag from here once the list is scrolled
|
|
9
|
+
* to the top (`preventDragOnScroll`), so scrolling a list never drags the sheet.
|
|
10
|
+
*/
|
|
11
|
+
const BottomSheetBody = forwardRef((props, ref) => jsx(StyledBody, { ref: ref, ...props }));
|
|
12
|
+
BottomSheetBody.displayName = 'BottomSheetBody';
|
|
13
|
+
|
|
14
|
+
export { BottomSheetBody };
|
|
15
|
+
//# sourceMappingURL=BottomSheetBody.mjs.map
|