@tamagui/sheet 3.0.0-beta.924.1 → 3.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/cjs/Sheet.cjs +48 -16
- package/dist/cjs/Sheet.native.cjs +46 -17
- package/dist/cjs/Sheet.native.js +46 -17
- package/dist/cjs/Sheet.native.js.map +1 -1
- package/dist/cjs/SheetDragSurface.cjs +50 -0
- package/dist/{jsx/GestureDetectorWrapper.native.js → cjs/SheetDragSurface.native.cjs} +24 -12
- package/dist/cjs/{GestureDetectorWrapper.native.js → SheetDragSurface.native.js} +25 -11
- package/dist/cjs/SheetDragSurface.native.js.map +1 -0
- package/dist/cjs/SheetImplementationCustom.cjs +41 -58
- package/dist/cjs/SheetImplementationCustom.native.cjs +43 -59
- package/dist/cjs/SheetImplementationCustom.native.js +43 -59
- package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
- package/dist/cjs/SheetScrollView.cjs +15 -3
- package/dist/cjs/SheetScrollView.native.cjs +17 -4
- package/dist/cjs/SheetScrollView.native.js +17 -4
- package/dist/cjs/SheetScrollView.native.js.map +1 -1
- package/dist/cjs/nativeSheet.cjs +3 -59
- package/dist/cjs/nativeSheet.native.cjs +70 -58
- package/dist/cjs/nativeSheet.native.js +70 -58
- package/dist/cjs/nativeSheet.native.js.map +1 -1
- package/dist/cjs/stableViewportHeight.cjs +27 -0
- package/dist/cjs/stableViewportHeight.native.cjs +29 -0
- package/dist/cjs/stableViewportHeight.native.js +31 -0
- package/dist/cjs/stableViewportHeight.native.js.map +1 -0
- package/dist/cjs/useSheetOffscreenSize.cjs +3 -1
- package/dist/cjs/useSheetOffscreenSize.native.cjs +3 -2
- package/dist/cjs/useSheetOffscreenSize.native.js +3 -2
- package/dist/cjs/useSheetOffscreenSize.native.js.map +1 -1
- package/dist/cjs/useSheetOpenState.cjs +13 -6
- package/dist/cjs/useSheetOpenState.native.cjs +15 -5
- package/dist/cjs/useSheetOpenState.native.js +15 -5
- package/dist/cjs/useSheetOpenState.native.js.map +1 -1
- package/dist/cjs/useSheetProviderProps.cjs +5 -94
- package/dist/cjs/useSheetProviderProps.native.cjs +5 -103
- package/dist/cjs/useSheetProviderProps.native.js +5 -103
- package/dist/cjs/useSheetProviderProps.native.js.map +1 -1
- package/dist/cjs/useSheetState.cjs +120 -0
- package/dist/cjs/useSheetState.native.cjs +131 -0
- package/dist/cjs/useSheetState.native.js +133 -0
- package/dist/cjs/useSheetState.native.js.map +1 -0
- package/dist/esm/Sheet.mjs +48 -15
- package/dist/esm/Sheet.mjs.map +1 -1
- package/dist/esm/Sheet.native.js +46 -17
- package/dist/esm/Sheet.native.js.map +1 -1
- package/dist/esm/SheetDragSurface.mjs +25 -0
- package/dist/esm/SheetDragSurface.mjs.map +1 -0
- package/dist/esm/SheetDragSurface.native.js +34 -0
- package/dist/esm/SheetDragSurface.native.js.map +1 -0
- package/dist/esm/SheetImplementationCustom.mjs +39 -56
- package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
- package/dist/esm/SheetImplementationCustom.native.js +41 -57
- package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
- package/dist/esm/SheetScrollView.mjs +16 -4
- package/dist/esm/SheetScrollView.mjs.map +1 -1
- package/dist/esm/SheetScrollView.native.js +18 -5
- package/dist/esm/SheetScrollView.native.js.map +1 -1
- package/dist/esm/nativeSheet.mjs +3 -60
- package/dist/esm/nativeSheet.mjs.map +1 -1
- package/dist/esm/nativeSheet.native.js +70 -58
- package/dist/esm/nativeSheet.native.js.map +1 -1
- package/dist/esm/stableViewportHeight.mjs +8 -0
- package/dist/esm/stableViewportHeight.mjs.map +1 -0
- package/dist/esm/stableViewportHeight.native.js +8 -0
- package/dist/esm/stableViewportHeight.native.js.map +1 -0
- package/dist/esm/useKeyboardControllerSheet.native.js +0 -5
- package/dist/esm/useSheetOffscreenSize.mjs +3 -1
- package/dist/esm/useSheetOffscreenSize.mjs.map +1 -1
- package/dist/esm/useSheetOffscreenSize.native.js +3 -2
- package/dist/esm/useSheetOffscreenSize.native.js.map +1 -1
- package/dist/esm/useSheetOpenState.mjs +14 -7
- package/dist/esm/useSheetOpenState.mjs.map +1 -1
- package/dist/esm/useSheetOpenState.native.js +16 -6
- package/dist/esm/useSheetOpenState.native.js.map +1 -1
- package/dist/esm/useSheetProviderProps.mjs +5 -88
- package/dist/esm/useSheetProviderProps.mjs.map +1 -1
- package/dist/esm/useSheetProviderProps.native.js +5 -97
- package/dist/esm/useSheetProviderProps.native.js.map +1 -1
- package/dist/esm/useSheetState.mjs +95 -0
- package/dist/esm/useSheetState.mjs.map +1 -0
- package/dist/esm/useSheetState.native.js +104 -0
- package/dist/esm/useSheetState.native.js.map +1 -0
- package/dist/jsx/Sheet.mjs +48 -15
- package/dist/jsx/Sheet.mjs.map +1 -1
- package/dist/jsx/Sheet.native.cjs +46 -17
- package/dist/jsx/Sheet.native.js +46 -17
- package/dist/jsx/Sheet.native.js.map +1 -1
- package/dist/jsx/SheetDragSurface.mjs +25 -0
- package/dist/jsx/SheetDragSurface.mjs.map +1 -0
- package/dist/{cjs/GestureDetectorWrapper.native.cjs → jsx/SheetDragSurface.native.cjs} +24 -10
- package/dist/jsx/{GestureDetectorWrapper.native.cjs → SheetDragSurface.native.js} +26 -10
- package/dist/jsx/SheetDragSurface.native.js.map +1 -0
- package/dist/jsx/SheetImplementationCustom.mjs +39 -56
- package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
- package/dist/jsx/SheetImplementationCustom.native.cjs +43 -59
- package/dist/jsx/SheetImplementationCustom.native.js +43 -59
- package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
- package/dist/jsx/SheetScrollView.mjs +16 -4
- package/dist/jsx/SheetScrollView.mjs.map +1 -1
- package/dist/jsx/SheetScrollView.native.cjs +17 -4
- package/dist/jsx/SheetScrollView.native.js +17 -4
- package/dist/jsx/SheetScrollView.native.js.map +1 -1
- package/dist/jsx/nativeSheet.mjs +3 -60
- package/dist/jsx/nativeSheet.mjs.map +1 -1
- package/dist/jsx/nativeSheet.native.cjs +70 -58
- package/dist/jsx/nativeSheet.native.js +70 -58
- package/dist/jsx/nativeSheet.native.js.map +1 -1
- package/dist/jsx/stableViewportHeight.mjs +8 -0
- package/dist/jsx/stableViewportHeight.mjs.map +1 -0
- package/dist/jsx/stableViewportHeight.native.cjs +29 -0
- package/dist/jsx/stableViewportHeight.native.js +31 -0
- package/dist/jsx/stableViewportHeight.native.js.map +1 -0
- package/dist/jsx/useSheetOffscreenSize.mjs +3 -1
- package/dist/jsx/useSheetOffscreenSize.mjs.map +1 -1
- package/dist/jsx/useSheetOffscreenSize.native.cjs +3 -2
- package/dist/jsx/useSheetOffscreenSize.native.js +3 -2
- package/dist/jsx/useSheetOffscreenSize.native.js.map +1 -1
- package/dist/jsx/useSheetOpenState.mjs +14 -7
- package/dist/jsx/useSheetOpenState.mjs.map +1 -1
- package/dist/jsx/useSheetOpenState.native.cjs +15 -5
- package/dist/jsx/useSheetOpenState.native.js +15 -5
- package/dist/jsx/useSheetOpenState.native.js.map +1 -1
- package/dist/jsx/useSheetProviderProps.mjs +5 -88
- package/dist/jsx/useSheetProviderProps.mjs.map +1 -1
- package/dist/jsx/useSheetProviderProps.native.cjs +5 -103
- package/dist/jsx/useSheetProviderProps.native.js +5 -103
- package/dist/jsx/useSheetProviderProps.native.js.map +1 -1
- package/dist/jsx/useSheetState.mjs +95 -0
- package/dist/jsx/useSheetState.mjs.map +1 -0
- package/dist/jsx/useSheetState.native.cjs +131 -0
- package/dist/jsx/useSheetState.native.js +133 -0
- package/dist/jsx/useSheetState.native.js.map +1 -0
- package/package.json +27 -22
- package/src/Sheet.tsx +45 -18
- package/src/SheetDragSurface.native.tsx +42 -0
- package/src/SheetDragSurface.tsx +40 -0
- package/src/SheetImplementationCustom.tsx +67 -92
- package/src/SheetScrollView.tsx +26 -4
- package/src/nativeSheet.native.tsx +110 -0
- package/src/nativeSheet.ts +16 -0
- package/src/stableViewportHeight.native.ts +9 -0
- package/src/stableViewportHeight.ts +15 -0
- package/src/types.tsx +44 -1
- package/src/useSheetOffscreenSize.tsx +3 -7
- package/src/useSheetOpenState.tsx +18 -8
- package/src/useSheetProviderProps.tsx +18 -149
- package/src/useSheetScrollViewGestures.native.ts +4 -1
- package/src/useSheetState.tsx +139 -0
- package/types/Sheet.d.ts +71 -167
- package/types/Sheet.d.ts.map +1 -1
- package/types/SheetDragSurface.d.ts +11 -0
- package/types/SheetDragSurface.d.ts.map +1 -0
- package/types/SheetDragSurface.native.d.ts +11 -0
- package/types/SheetDragSurface.native.d.ts.map +1 -0
- package/types/SheetImplementationCustom.d.ts +1 -2
- package/types/SheetImplementationCustom.d.ts.map +1 -1
- package/types/SheetScrollView.d.ts +3 -3
- package/types/SheetScrollView.d.ts.map +1 -1
- package/types/nativeSheet.d.ts +8 -9
- package/types/nativeSheet.d.ts.map +1 -1
- package/types/nativeSheet.native.d.ts +4 -0
- package/types/nativeSheet.native.d.ts.map +1 -0
- package/types/stableViewportHeight.d.ts +12 -0
- package/types/stableViewportHeight.d.ts.map +1 -0
- package/types/stableViewportHeight.native.d.ts +6 -0
- package/types/stableViewportHeight.native.d.ts.map +1 -0
- package/types/types.d.ts +34 -1
- package/types/types.d.ts.map +1 -1
- package/types/useSheetOffscreenSize.d.ts +1 -1
- package/types/useSheetOffscreenSize.d.ts.map +1 -1
- package/types/useSheetOpenState.d.ts +3 -1
- package/types/useSheetOpenState.d.ts.map +1 -1
- package/types/useSheetProviderProps.d.ts +15 -13
- package/types/useSheetProviderProps.d.ts.map +1 -1
- package/types/useSheetScrollViewGestures.native.d.ts +1 -1
- package/types/useSheetScrollViewGestures.native.d.ts.map +1 -1
- package/types/useSheetState.d.ts +26 -0
- package/types/useSheetState.d.ts.map +1 -0
- package/dist/cjs/GestureDetectorWrapper.cjs +0 -44
- package/dist/cjs/GestureDetectorWrapper.native.js.map +0 -1
- package/dist/esm/GestureDetectorWrapper.mjs +0 -25
- package/dist/esm/GestureDetectorWrapper.mjs.map +0 -1
- package/dist/esm/GestureDetectorWrapper.native.js +0 -26
- package/dist/esm/GestureDetectorWrapper.native.js.map +0 -1
- package/dist/jsx/GestureDetectorWrapper.mjs +0 -25
- package/dist/jsx/GestureDetectorWrapper.mjs.map +0 -1
- package/dist/jsx/GestureDetectorWrapper.native.js.map +0 -1
- package/src/GestureDetectorWrapper.tsx +0 -38
- package/src/nativeSheet.tsx +0 -86
- package/types/GestureDetectorWrapper.d.ts +0 -14
- package/types/GestureDetectorWrapper.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSheetOpenState.js","names":[],"sources":["jsx/useSheetOpenState.js"],"sourcesContent":["import { useAdaptContext, useAdaptTarget } from \"@tamagui/adapt\";\nimport React from \"react\";\nimport { useControllableState } from \"@tamagui/use-controllable-state\";\nimport { useSheetController } from \"./useSheetController\";\nconst useSheetOpenState = (props) => {\n const
|
|
1
|
+
{"version":3,"file":"useSheetOpenState.js","names":[],"sources":["jsx/useSheetOpenState.js"],"sourcesContent":["import { useAdaptContext, useAdaptTarget, useAdaptTargetScope } from \"@tamagui/adapt\";\nimport React from \"react\";\nimport { useControllableState } from \"@tamagui/use-controllable-state\";\nimport { useSheetController } from \"./useSheetController\";\nconst useSheetOpenState = (props, strategy = \"most-recent-wins\") => {\n const adaptTargetScope = useAdaptTargetScope();\n const adapt = useAdaptTarget(adaptTargetScope ?? void 0);\n const adaptContext = useAdaptContext(adaptTargetScope ?? void 0);\n const { isHidden: controllerIsHidden, controller: legacyController } = useSheetController(props.scope);\n const shouldUseAdapt = adaptTargetScope === adaptContext.scopeName && Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);\n const isHidden = shouldUseAdapt ? !adaptContext.active : controllerIsHidden;\n const wasHiddenRef = React.useRef(isHidden);\n const controllerOpen = shouldUseAdapt ? Boolean(adaptContext.open) && !adaptContext.handoff.hidden : legacyController?.open;\n const localSkipNextAnimation = Boolean(\n wasHiddenRef.current && !isHidden && controllerOpen\n );\n const skipNextAnimation = (shouldUseAdapt ? adapt?.handoff.skipNextAnimation : void 0) ?? localSkipNextAnimation;\n wasHiddenRef.current = isHidden;\n const adaptController = React.useMemo(() => {\n if (!adapt || !shouldUseAdapt) return null;\n return {\n open: adaptContext.open,\n hidden: isHidden,\n onOpenChange: adaptContext.active ? adaptContext.onOpenChange : void 0,\n onTransition: adapt?.handoff.onTransition,\n skipNextAnimation\n };\n }, [adapt, adaptContext, isHidden, shouldUseAdapt, skipNextAnimation]);\n const controller = adaptController ?? legacyController;\n const controllerOnOpenChange = (shouldUseAdapt && adaptContext.active ? adaptContext.onOpenChange : void 0) ?? legacyController?.onOpenChange;\n const onOpenChangeInternal = (val) => {\n controllerOnOpenChange?.(val);\n props.onOpenChange?.(val);\n };\n const propVal = props.preferAdaptParentOpenState ? controllerOpen ?? props.open : props.open ?? controllerOpen;\n const [open, setOpen] = useControllableState({\n prop: propVal,\n defaultProp: props.defaultOpen ?? false,\n onChange: onOpenChangeInternal,\n strategy\n });\n return {\n open,\n setOpen,\n isHidden,\n controller,\n strategy,\n onNativeDismiss: shouldUseAdapt ? () => adapt?.handoff.onTransition({ phase: \"end\", cause: \"close\", finished: true }) : void 0\n };\n};\nexport {\n useSheetOpenState\n};\n//# sourceMappingURL=useSheetOpenState.js.map\n"],"mappings":";;;;;;AAIA,MAAM,qBAAqB,OAAO,WAAW,uBAAuB;CAClE,MAAM,mBAAmB,oBAAoB;CAC7C,MAAM,QAAQ,eAAe,oBAAoB,KAAK,CAAC;CACvD,MAAM,eAAe,gBAAgB,oBAAoB,KAAK,CAAC;CAC/D,MAAM,EAAE,UAAU,oBAAoB,YAAY,qBAAqB,mBAAmB,MAAM,KAAK;CACrG,MAAM,iBAAiB,qBAAqB,aAAa,aAAa,QAAQ,aAAa,SAAS,KAAK,KAAK,aAAa,YAAY;CACvI,MAAM,WAAW,iBAAiB,CAAC,aAAa,SAAS;CACzD,MAAM,eAAe,MAAM,OAAO,QAAQ;CAC1C,MAAM,iBAAiB,iBAAiB,QAAQ,aAAa,IAAI,KAAK,CAAC,aAAa,QAAQ,SAAS,kBAAkB;CACvH,MAAM,yBAAyB,QAC7B,aAAa,WAAW,CAAC,YAAY,cACvC;CACA,MAAM,qBAAqB,iBAAiB,OAAO,QAAQ,oBAAoB,KAAK,MAAM;CAC1F,aAAa,UAAU;CACvB,MAAM,kBAAkB,MAAM,cAAc;EAC1C,IAAI,CAAC,SAAS,CAAC,gBAAgB,OAAO;EACtC,OAAO;GACL,MAAM,aAAa;GACnB,QAAQ;GACR,cAAc,aAAa,SAAS,aAAa,eAAe,KAAK;GACrE,cAAc,OAAO,QAAQ;GAC7B;EACF;CACF,GAAG;EAAC;EAAO;EAAc;EAAU;EAAgB;CAAiB,CAAC;CACrE,MAAM,aAAa,mBAAmB;CACtC,MAAM,0BAA0B,kBAAkB,aAAa,SAAS,aAAa,eAAe,KAAK,MAAM,kBAAkB;CACjI,MAAM,wBAAwB,QAAQ;EACpC,yBAAyB,GAAG;EAC5B,MAAM,eAAe,GAAG;CAC1B;CACA,MAAM,UAAU,MAAM,6BAA6B,kBAAkB,MAAM,OAAO,MAAM,QAAQ;CAChG,MAAM,CAAC,MAAM,WAAW,qBAAqB;EAC3C,MAAM;EACN,aAAa,MAAM,eAAe;EAClC,UAAU;EACV;CACF,CAAC;CACD,OAAO;EACL;EACA;EACA;EACA;EACA;EACA,iBAAiB,uBAAuB,OAAO,QAAQ,aAAa;GAAE,OAAO;GAAO,OAAO;GAAS,UAAU;EAAK,CAAC,IAAI,KAAK;CAC/H;AACF"}
|
|
@@ -34,10 +34,12 @@ var import_react = __toESM(require("react"), 1);
|
|
|
34
34
|
var import_use_controllable_state = require("@tamagui/use-controllable-state");
|
|
35
35
|
var import_useSheetController = require("./useSheetController.native.js");
|
|
36
36
|
var useSheetOpenState = function(props) {
|
|
37
|
-
var
|
|
38
|
-
var
|
|
37
|
+
var strategy = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "most-recent-wins";
|
|
38
|
+
var adaptTargetScope = (0, import_adapt.useAdaptTargetScope)();
|
|
39
|
+
var adapt = (0, import_adapt.useAdaptTarget)(adaptTargetScope !== null && adaptTargetScope !== void 0 ? adaptTargetScope : void 0);
|
|
40
|
+
var adaptContext = (0, import_adapt.useAdaptContext)(adaptTargetScope !== null && adaptTargetScope !== void 0 ? adaptTargetScope : void 0);
|
|
39
41
|
var { isHidden: controllerIsHidden, controller: legacyController } = (0, import_useSheetController.useSheetController)(props.scope);
|
|
40
|
-
var shouldUseAdapt = Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);
|
|
42
|
+
var shouldUseAdapt = adaptTargetScope === adaptContext.scopeName && Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);
|
|
41
43
|
var isHidden = shouldUseAdapt ? !adaptContext.active : controllerIsHidden;
|
|
42
44
|
var wasHiddenRef = import_react.default.useRef(isHidden);
|
|
43
45
|
var controllerOpen = shouldUseAdapt ? Boolean(adaptContext.open) && !adaptContext.handoff.hidden : legacyController === null || legacyController === void 0 ? void 0 : legacyController.open;
|
|
@@ -76,12 +78,20 @@ var useSheetOpenState = function(props) {
|
|
|
76
78
|
prop: propVal,
|
|
77
79
|
defaultProp: (_props_defaultOpen = props.defaultOpen) !== null && _props_defaultOpen !== void 0 ? _props_defaultOpen : false,
|
|
78
80
|
onChange: onOpenChangeInternal,
|
|
79
|
-
strategy
|
|
81
|
+
strategy
|
|
80
82
|
});
|
|
81
83
|
return {
|
|
82
84
|
open,
|
|
83
85
|
setOpen,
|
|
84
86
|
isHidden,
|
|
85
|
-
controller
|
|
87
|
+
controller,
|
|
88
|
+
strategy,
|
|
89
|
+
onNativeDismiss: shouldUseAdapt ? function() {
|
|
90
|
+
return adapt === null || adapt === void 0 ? void 0 : adapt.handoff.onTransition({
|
|
91
|
+
phase: "end",
|
|
92
|
+
cause: "close",
|
|
93
|
+
finished: true
|
|
94
|
+
});
|
|
95
|
+
} : void 0
|
|
86
96
|
};
|
|
87
97
|
};
|
|
@@ -34,10 +34,12 @@ var import_react = __toESM(require("react"), 1);
|
|
|
34
34
|
var import_use_controllable_state = require("@tamagui/use-controllable-state");
|
|
35
35
|
var import_useSheetController = require("./useSheetController.native.js");
|
|
36
36
|
var useSheetOpenState = function(props) {
|
|
37
|
-
var
|
|
38
|
-
var
|
|
37
|
+
var strategy = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "most-recent-wins";
|
|
38
|
+
var adaptTargetScope = (0, import_adapt.useAdaptTargetScope)();
|
|
39
|
+
var adapt = (0, import_adapt.useAdaptTarget)(adaptTargetScope !== null && adaptTargetScope !== void 0 ? adaptTargetScope : void 0);
|
|
40
|
+
var adaptContext = (0, import_adapt.useAdaptContext)(adaptTargetScope !== null && adaptTargetScope !== void 0 ? adaptTargetScope : void 0);
|
|
39
41
|
var { isHidden: controllerIsHidden, controller: legacyController } = (0, import_useSheetController.useSheetController)(props.scope);
|
|
40
|
-
var shouldUseAdapt = Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);
|
|
42
|
+
var shouldUseAdapt = adaptTargetScope === adaptContext.scopeName && Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);
|
|
41
43
|
var isHidden = shouldUseAdapt ? !adaptContext.active : controllerIsHidden;
|
|
42
44
|
var wasHiddenRef = import_react.default.useRef(isHidden);
|
|
43
45
|
var controllerOpen = shouldUseAdapt ? Boolean(adaptContext.open) && !adaptContext.handoff.hidden : legacyController === null || legacyController === void 0 ? void 0 : legacyController.open;
|
|
@@ -76,13 +78,21 @@ var useSheetOpenState = function(props) {
|
|
|
76
78
|
prop: propVal,
|
|
77
79
|
defaultProp: (_props_defaultOpen = props.defaultOpen) !== null && _props_defaultOpen !== void 0 ? _props_defaultOpen : false,
|
|
78
80
|
onChange: onOpenChangeInternal,
|
|
79
|
-
strategy
|
|
81
|
+
strategy
|
|
80
82
|
});
|
|
81
83
|
return {
|
|
82
84
|
open,
|
|
83
85
|
setOpen,
|
|
84
86
|
isHidden,
|
|
85
|
-
controller
|
|
87
|
+
controller,
|
|
88
|
+
strategy,
|
|
89
|
+
onNativeDismiss: shouldUseAdapt ? function() {
|
|
90
|
+
return adapt === null || adapt === void 0 ? void 0 : adapt.handoff.onTransition({
|
|
91
|
+
phase: "end",
|
|
92
|
+
cause: "close",
|
|
93
|
+
finished: true
|
|
94
|
+
});
|
|
95
|
+
} : void 0
|
|
86
96
|
};
|
|
87
97
|
};
|
|
88
98
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSheetOpenState.native.js","names":[],"sources":["jsx/useSheetOpenState.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar useSheetOpenState_exports = {};\n__export(useSheetOpenState_exports, {\n useSheetOpenState: () => useSheetOpenState\n});\nmodule.exports = __toCommonJS(useSheetOpenState_exports);\nvar import_adapt = require(\"@tamagui/adapt\");\nvar import_react = __toESM(require(\"react\"), 1);\nvar import_use_controllable_state = require(\"@tamagui/use-controllable-state\");\nvar import_useSheetController = require(\"./useSheetController\");\nvar useSheetOpenState = function(props) {\n var
|
|
1
|
+
{"version":3,"file":"useSheetOpenState.native.js","names":[],"sources":["jsx/useSheetOpenState.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar useSheetOpenState_exports = {};\n__export(useSheetOpenState_exports, {\n useSheetOpenState: () => useSheetOpenState\n});\nmodule.exports = __toCommonJS(useSheetOpenState_exports);\nvar import_adapt = require(\"@tamagui/adapt\");\nvar import_react = __toESM(require(\"react\"), 1);\nvar import_use_controllable_state = require(\"@tamagui/use-controllable-state\");\nvar import_useSheetController = require(\"./useSheetController\");\nvar useSheetOpenState = function(props) {\n var strategy = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"most-recent-wins\";\n var adaptTargetScope = (0, import_adapt.useAdaptTargetScope)();\n var adapt = (0, import_adapt.useAdaptTarget)(adaptTargetScope !== null && adaptTargetScope !== void 0 ? adaptTargetScope : void 0);\n var adaptContext = (0, import_adapt.useAdaptContext)(adaptTargetScope !== null && adaptTargetScope !== void 0 ? adaptTargetScope : void 0);\n var { isHidden: controllerIsHidden, controller: legacyController } = (0, import_useSheetController.useSheetController)(props.scope);\n var shouldUseAdapt = adaptTargetScope === adaptContext.scopeName && Boolean(adaptContext.open !== void 0 || adaptContext.onOpenChange);\n var isHidden = shouldUseAdapt ? !adaptContext.active : controllerIsHidden;\n var wasHiddenRef = import_react.default.useRef(isHidden);\n var controllerOpen = shouldUseAdapt ? Boolean(adaptContext.open) && !adaptContext.handoff.hidden : legacyController === null || legacyController === void 0 ? void 0 : legacyController.open;\n var localSkipNextAnimation = Boolean(wasHiddenRef.current && !isHidden && controllerOpen);\n var _ref;\n var skipNextAnimation = (_ref = shouldUseAdapt ? adapt === null || adapt === void 0 ? void 0 : adapt.handoff.skipNextAnimation : void 0) !== null && _ref !== void 0 ? _ref : localSkipNextAnimation;\n wasHiddenRef.current = isHidden;\n var adaptController = import_react.default.useMemo(function() {\n if (!adapt || !shouldUseAdapt) return null;\n return {\n open: adaptContext.open,\n hidden: isHidden,\n onOpenChange: adaptContext.active ? adaptContext.onOpenChange : void 0,\n onTransition: adapt === null || adapt === void 0 ? void 0 : adapt.handoff.onTransition,\n skipNextAnimation\n };\n }, [\n adapt,\n adaptContext,\n isHidden,\n shouldUseAdapt,\n skipNextAnimation\n ]);\n var controller = adaptController !== null && adaptController !== void 0 ? adaptController : legacyController;\n var _ref1;\n var controllerOnOpenChange = (_ref1 = shouldUseAdapt && adaptContext.active ? adaptContext.onOpenChange : void 0) !== null && _ref1 !== void 0 ? _ref1 : legacyController === null || legacyController === void 0 ? void 0 : legacyController.onOpenChange;\n var onOpenChangeInternal = function(val) {\n var _props_onOpenChange;\n controllerOnOpenChange === null || controllerOnOpenChange === void 0 ? void 0 : controllerOnOpenChange(val);\n (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, val);\n };\n var _props_open;\n var propVal = props.preferAdaptParentOpenState ? controllerOpen !== null && controllerOpen !== void 0 ? controllerOpen : props.open : (_props_open = props.open) !== null && _props_open !== void 0 ? _props_open : controllerOpen;\n var _props_defaultOpen;\n var [open, setOpen] = (0, import_use_controllable_state.useControllableState)({\n prop: propVal,\n defaultProp: (_props_defaultOpen = props.defaultOpen) !== null && _props_defaultOpen !== void 0 ? _props_defaultOpen : false,\n onChange: onOpenChangeInternal,\n strategy\n });\n return {\n open,\n setOpen,\n isHidden,\n controller,\n strategy,\n onNativeDismiss: shouldUseAdapt ? function() {\n return adapt === null || adapt === void 0 ? void 0 : adapt.handoff.onTransition({\n phase: \"end\",\n cause: \"close\",\n finished: true\n });\n } : void 0\n };\n};\n//# sourceMappingURL=useSheetOpenState.js.map\n"],"mappings":"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"}
|
|
@@ -1,75 +1,10 @@
|
|
|
1
|
-
import React from "react";
|
|
2
1
|
import { useConfiguration } from "@tamagui/core";
|
|
3
2
|
import { useConstant } from "@tamagui/use-constant";
|
|
4
|
-
import {
|
|
3
|
+
import { useSheetState } from "./useSheetState.mjs";
|
|
5
4
|
|
|
6
5
|
function useSheetProviderProps(props, state) {
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const [frameSize, setFrameSize] = React.useState(0);
|
|
10
|
-
const [maxContentSize, setMaxContentSize] = React.useState(0);
|
|
11
|
-
const snapPointsMode = props.snapPointsMode ?? "percent";
|
|
12
|
-
const snapPointsProp = props.snapPoints ?? (snapPointsMode === "percent" ? [80] : snapPointsMode === "constant" ? [256] : ["fit"]);
|
|
13
|
-
const hasFit = snapPointsProp[0] === "fit";
|
|
14
|
-
const snapPoints = React.useMemo(() => props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp, [JSON.stringify(snapPointsProp), props.dismissOnSnapToBottom]);
|
|
15
|
-
const [position_, setPositionImmediate] = useControllableState({
|
|
16
|
-
prop: props.position,
|
|
17
|
-
defaultProp: props.defaultPosition || (state.open ? 0 : -1),
|
|
18
|
-
onChange: props.onPositionChange,
|
|
19
|
-
strategy: "most-recent-wins"
|
|
20
|
-
});
|
|
21
|
-
const position = state.open === false ? -1 : position_;
|
|
22
|
-
const { open } = state;
|
|
23
|
-
const setPosition = React.useCallback((next) => {
|
|
24
|
-
if (props.dismissOnSnapToBottom && next === snapPoints.length - 1) {
|
|
25
|
-
state.setOpen(false);
|
|
26
|
-
} else {
|
|
27
|
-
setPositionImmediate(next);
|
|
28
|
-
}
|
|
29
|
-
}, [
|
|
30
|
-
props.dismissOnSnapToBottom,
|
|
31
|
-
snapPoints.length,
|
|
32
|
-
setPositionImmediate,
|
|
33
|
-
state.setOpen
|
|
34
|
-
]);
|
|
35
|
-
if (process.env.NODE_ENV === "development") {
|
|
36
|
-
if (snapPointsMode === "mixed" && snapPoints.some((p) => {
|
|
37
|
-
if (typeof p === "string") {
|
|
38
|
-
if (p === "fit") {
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
if (p.endsWith("%")) {
|
|
42
|
-
const n = Number(p.slice(0, -1));
|
|
43
|
-
return n < 0 || n > 100;
|
|
44
|
-
}
|
|
45
|
-
return true;
|
|
46
|
-
}
|
|
47
|
-
return typeof p !== "number" || p < 0;
|
|
48
|
-
})) {
|
|
49
|
-
console.warn("⚠️ Invalid snapPoint given, snapPoints must be positive numeric values, string percentages between 0-100%, or \"fit\" when snapPointsMode is mixed");
|
|
50
|
-
}
|
|
51
|
-
if (snapPointsMode === "mixed" && snapPoints.indexOf("fit") > 0) {
|
|
52
|
-
console.warn("⚠️ Invalid snapPoint given, \"fit\" must be the first/largest snap point when snapPointsMode is mixed");
|
|
53
|
-
}
|
|
54
|
-
if (snapPointsMode === "fit" && (snapPoints.length !== (props.dismissOnSnapToBottom ? 2 : 1) || snapPoints[0] !== "fit")) {
|
|
55
|
-
console.warn("⚠️ Invalid snapPoint given, there are no snap points when snapPointsMode is fit");
|
|
56
|
-
}
|
|
57
|
-
if (snapPointsMode === "constant" && snapPoints.some((p) => typeof p !== "number" || p < 0)) {
|
|
58
|
-
console.warn("⚠️ Invalid snapPoint given, snapPoints must be positive numeric values when snapPointsMode is constant");
|
|
59
|
-
}
|
|
60
|
-
if (snapPointsMode === "percent" && snapPoints.some((p) => typeof p !== "number" || p < 0 || p > 100)) {
|
|
61
|
-
console.warn("⚠️ Invalid snapPoint given, snapPoints must be numeric values between 0 and 100 when snapPointsMode is percent");
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
if (open && props.dismissOnSnapToBottom && position === snapPoints.length - 1) {
|
|
65
|
-
setPositionImmediate(0);
|
|
66
|
-
}
|
|
67
|
-
const shouldSetPositionOpen = open && position < 0;
|
|
68
|
-
React.useEffect(() => {
|
|
69
|
-
if (shouldSetPositionOpen) {
|
|
70
|
-
setPosition(0);
|
|
71
|
-
}
|
|
72
|
-
}, [setPosition, shouldSetPositionOpen]);
|
|
6
|
+
const { maxContentSize, ...sheetState } = useSheetState(props, state);
|
|
7
|
+
const { frameSize, snapPointsMode, snapPoints, open } = sheetState;
|
|
73
8
|
const { animationDriver } = useConfiguration();
|
|
74
9
|
if (!animationDriver) {
|
|
75
10
|
throw new Error(process.env.NODE_ENV === "production" ? `\u274C 008` : "Must set animations in tamagui.config.ts");
|
|
@@ -105,32 +40,14 @@ function useSheetProviderProps(props, state) {
|
|
|
105
40
|
const disableRemoveScroll = props.disableRemoveScroll || !open || !props.modal;
|
|
106
41
|
const maxSnapPoint = snapPoints[0];
|
|
107
42
|
const screenSize = snapPointsMode === "percent" ? frameSize / ((typeof maxSnapPoint === "number" ? maxSnapPoint : 100) / 100) : maxContentSize;
|
|
108
|
-
|
|
43
|
+
return {
|
|
44
|
+
...sheetState,
|
|
109
45
|
screenSize,
|
|
110
46
|
maxSnapPoint,
|
|
111
47
|
disableRemoveScroll,
|
|
112
48
|
scrollBridge,
|
|
113
|
-
modal: !!props.modal,
|
|
114
|
-
open: state.open,
|
|
115
|
-
setOpen: state.setOpen,
|
|
116
|
-
hidden: !!state.isHidden,
|
|
117
|
-
contentRef,
|
|
118
|
-
handleRef,
|
|
119
|
-
frameSize,
|
|
120
|
-
setFrameSize,
|
|
121
|
-
dismissOnOverlayPress: props.dismissOnOverlayPress ?? true,
|
|
122
|
-
dismissOnSnapToBottom: props.dismissOnSnapToBottom ?? false,
|
|
123
|
-
scope: props.scope ?? "",
|
|
124
|
-
hasFit,
|
|
125
|
-
position,
|
|
126
|
-
snapPoints,
|
|
127
|
-
snapPointsMode,
|
|
128
|
-
setMaxContentSize,
|
|
129
|
-
setPosition,
|
|
130
|
-
setPositionImmediate,
|
|
131
49
|
onlyShowContainer: false
|
|
132
50
|
};
|
|
133
|
-
return providerProps;
|
|
134
51
|
}
|
|
135
52
|
|
|
136
53
|
export { useSheetProviderProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSheetProviderProps.js","names":[],"sources":["jsx/useSheetProviderProps.js"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"useSheetProviderProps.js","names":[],"sources":["jsx/useSheetProviderProps.js"],"sourcesContent":["import { useConfiguration } from \"@tamagui/core\";\nimport { useConstant } from \"@tamagui/use-constant\";\nimport { useSheetState } from \"./useSheetState\";\nfunction useSheetProviderProps(props, state) {\n const { maxContentSize, ...sheetState } = useSheetState(props, state);\n const { frameSize, snapPointsMode, snapPoints, open } = sheetState;\n const { animationDriver } = useConfiguration();\n if (!animationDriver) {\n throw new Error(\n process.env.NODE_ENV === \"production\" ? `\\u274C 008` : \"Must set animations in tamagui.config.ts\"\n );\n }\n const scrollBridge = useConstant(() => {\n const parentDragListeners = /* @__PURE__ */ new Set();\n const bridge = {\n hasScrollableContent: false,\n enabled: false,\n y: 0,\n paneY: 0,\n paneMinY: 0,\n scrollStartY: -1,\n drag: () => {\n },\n release: () => {\n },\n scrollLock: false,\n isParentDragging: false,\n onParentDragging: (cb) => {\n parentDragListeners.add(cb);\n return () => {\n parentDragListeners.delete(cb);\n };\n },\n setParentDragging: (val) => {\n if (val !== bridge.isParentDragging) {\n bridge.isParentDragging = val;\n parentDragListeners.forEach((cb) => cb(val));\n }\n }\n };\n return bridge;\n });\n const disableRemoveScroll = props.disableRemoveScroll || !open || !props.modal;\n const maxSnapPoint = snapPoints[0];\n const screenSize = snapPointsMode === \"percent\" ? frameSize / ((typeof maxSnapPoint === \"number\" ? maxSnapPoint : 100) / 100) : maxContentSize;\n return {\n ...sheetState,\n screenSize,\n maxSnapPoint,\n disableRemoveScroll,\n scrollBridge,\n onlyShowContainer: false\n };\n}\nexport {\n useSheetProviderProps\n};\n//# sourceMappingURL=useSheetProviderProps.js.map\n"],"mappings":";;;;;AAGA,SAAS,sBAAsB,OAAO,OAAO;CAC3C,MAAM,EAAE,gBAAgB,GAAG,eAAe,cAAc,OAAO,KAAK;CACpE,MAAM,EAAE,WAAW,gBAAgB,YAAY,SAAS;CACxD,MAAM,EAAE,oBAAoB,iBAAiB;CAC7C,IAAI,CAAC,iBAAiB;EACpB,MAAM,IAAI,MACR,QAAQ,IAAI,aAAa,eAAe,eAAe,0CACzD;CACF;CACA,MAAM,eAAe,kBAAkB;EACrC,MAAM,sCAAsC,IAAI,IAAI;EACpD,MAAM,SAAS;GACb,sBAAsB;GACtB,SAAS;GACT,GAAG;GACH,OAAO;GACP,UAAU;GACV,cAAc,CAAC;GACf,YAAY,CACZ;GACA,eAAe,CACf;GACA,YAAY;GACZ,kBAAkB;GAClB,mBAAmB,OAAO;IACxB,oBAAoB,IAAI,EAAE;IAC1B,aAAa;KACX,oBAAoB,OAAO,EAAE;IAC/B;GACF;GACA,oBAAoB,QAAQ;IAC1B,IAAI,QAAQ,OAAO,kBAAkB;KACnC,OAAO,mBAAmB;KAC1B,oBAAoB,SAAS,OAAO,GAAG,GAAG,CAAC;IAC7C;GACF;EACF;EACA,OAAO;CACT,CAAC;CACD,MAAM,sBAAsB,MAAM,uBAAuB,CAAC,QAAQ,CAAC,MAAM;CACzE,MAAM,eAAe,WAAW;CAChC,MAAM,aAAa,mBAAmB,YAAY,cAAc,OAAO,iBAAiB,WAAW,eAAe,OAAO,OAAO;CAChI,OAAO;EACL,GAAG;EACH;EACA;EACA;EACA;EACA,mBAAmB;CACrB;AACF"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var __create = Object.create;
|
|
4
3
|
var __defProp = Object.defineProperty;
|
|
5
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
8
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
7
|
var __export = (target, all) => {
|
|
10
8
|
for (var name in all) __defProp(target, name, {
|
|
@@ -21,93 +19,16 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
21
19
|
}
|
|
22
20
|
return to;
|
|
23
21
|
};
|
|
24
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
25
|
-
value: mod,
|
|
26
|
-
enumerable: true
|
|
27
|
-
}) : target, mod));
|
|
28
22
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
23
|
var useSheetProviderProps_exports = {};
|
|
30
24
|
__export(useSheetProviderProps_exports, { useSheetProviderProps: () => useSheetProviderProps });
|
|
31
25
|
module.exports = __toCommonJS(useSheetProviderProps_exports);
|
|
32
|
-
var import_react = __toESM(require("react"), 1);
|
|
33
26
|
var import_core = require("@tamagui/core");
|
|
34
27
|
var import_use_constant = require("@tamagui/use-constant");
|
|
35
|
-
var
|
|
28
|
+
var import_useSheetState = require("./useSheetState.native.js");
|
|
36
29
|
function useSheetProviderProps(props, state) {
|
|
37
|
-
var
|
|
38
|
-
var
|
|
39
|
-
var [frameSize, setFrameSize] = import_react.default.useState(0);
|
|
40
|
-
var [maxContentSize, setMaxContentSize] = import_react.default.useState(0);
|
|
41
|
-
var _props_snapPointsMode;
|
|
42
|
-
var snapPointsMode = (_props_snapPointsMode = props.snapPointsMode) !== null && _props_snapPointsMode !== void 0 ? _props_snapPointsMode : "percent";
|
|
43
|
-
var _props_snapPoints;
|
|
44
|
-
var snapPointsProp = (_props_snapPoints = props.snapPoints) !== null && _props_snapPoints !== void 0 ? _props_snapPoints : snapPointsMode === "percent" ? [80] : snapPointsMode === "constant" ? [256] : ["fit"];
|
|
45
|
-
var hasFit = snapPointsProp[0] === "fit";
|
|
46
|
-
var snapPoints = import_react.default.useMemo(function() {
|
|
47
|
-
return props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp;
|
|
48
|
-
}, [JSON.stringify(snapPointsProp), props.dismissOnSnapToBottom]);
|
|
49
|
-
var [position_, setPositionImmediate] = (0, import_use_controllable_state.useControllableState)({
|
|
50
|
-
prop: props.position,
|
|
51
|
-
defaultProp: props.defaultPosition || (state.open ? 0 : -1),
|
|
52
|
-
onChange: props.onPositionChange,
|
|
53
|
-
strategy: "most-recent-wins"
|
|
54
|
-
});
|
|
55
|
-
var position = state.open === false ? -1 : position_;
|
|
56
|
-
var { open } = state;
|
|
57
|
-
var setPosition = import_react.default.useCallback(function(next) {
|
|
58
|
-
if (props.dismissOnSnapToBottom && next === snapPoints.length - 1) {
|
|
59
|
-
state.setOpen(false);
|
|
60
|
-
} else {
|
|
61
|
-
setPositionImmediate(next);
|
|
62
|
-
}
|
|
63
|
-
}, [
|
|
64
|
-
props.dismissOnSnapToBottom,
|
|
65
|
-
snapPoints.length,
|
|
66
|
-
setPositionImmediate,
|
|
67
|
-
state.setOpen
|
|
68
|
-
]);
|
|
69
|
-
if (process.env.NODE_ENV === "development") {
|
|
70
|
-
if (snapPointsMode === "mixed" && snapPoints.some(function(p) {
|
|
71
|
-
if (typeof p === "string") {
|
|
72
|
-
if (p === "fit") {
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
if (p.endsWith("%")) {
|
|
76
|
-
var n = Number(p.slice(0, -1));
|
|
77
|
-
return n < 0 || n > 100;
|
|
78
|
-
}
|
|
79
|
-
return true;
|
|
80
|
-
}
|
|
81
|
-
return typeof p !== "number" || p < 0;
|
|
82
|
-
})) {
|
|
83
|
-
console.warn("⚠️ Invalid snapPoint given, snapPoints must be positive numeric values, string percentages between 0-100%, or \"fit\" when snapPointsMode is mixed");
|
|
84
|
-
}
|
|
85
|
-
if (snapPointsMode === "mixed" && snapPoints.indexOf("fit") > 0) {
|
|
86
|
-
console.warn("⚠️ Invalid snapPoint given, \"fit\" must be the first/largest snap point when snapPointsMode is mixed");
|
|
87
|
-
}
|
|
88
|
-
if (snapPointsMode === "fit" && (snapPoints.length !== (props.dismissOnSnapToBottom ? 2 : 1) || snapPoints[0] !== "fit")) {
|
|
89
|
-
console.warn("⚠️ Invalid snapPoint given, there are no snap points when snapPointsMode is fit");
|
|
90
|
-
}
|
|
91
|
-
if (snapPointsMode === "constant" && snapPoints.some(function(p) {
|
|
92
|
-
return typeof p !== "number" || p < 0;
|
|
93
|
-
})) {
|
|
94
|
-
console.warn("⚠️ Invalid snapPoint given, snapPoints must be positive numeric values when snapPointsMode is constant");
|
|
95
|
-
}
|
|
96
|
-
if (snapPointsMode === "percent" && snapPoints.some(function(p) {
|
|
97
|
-
return typeof p !== "number" || p < 0 || p > 100;
|
|
98
|
-
})) {
|
|
99
|
-
console.warn("⚠️ Invalid snapPoint given, snapPoints must be numeric values between 0 and 100 when snapPointsMode is percent");
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
if (open && props.dismissOnSnapToBottom && position === snapPoints.length - 1) {
|
|
103
|
-
setPositionImmediate(0);
|
|
104
|
-
}
|
|
105
|
-
var shouldSetPositionOpen = open && position < 0;
|
|
106
|
-
import_react.default.useEffect(function() {
|
|
107
|
-
if (shouldSetPositionOpen) {
|
|
108
|
-
setPosition(0);
|
|
109
|
-
}
|
|
110
|
-
}, [setPosition, shouldSetPositionOpen]);
|
|
30
|
+
var { maxContentSize, ...sheetState } = (0, import_useSheetState.useSheetState)(props, state);
|
|
31
|
+
var { frameSize, snapPointsMode, snapPoints, open } = sheetState;
|
|
111
32
|
var { animationDriver } = (0, import_core.useConfiguration)();
|
|
112
33
|
if (!animationDriver) {
|
|
113
34
|
throw new Error(process.env.NODE_ENV === "production" ? `\u274C 008` : "Must set animations in tamagui.config.ts");
|
|
@@ -145,31 +66,12 @@ function useSheetProviderProps(props, state) {
|
|
|
145
66
|
var disableRemoveScroll = props.disableRemoveScroll || !open || !props.modal;
|
|
146
67
|
var maxSnapPoint = snapPoints[0];
|
|
147
68
|
var screenSize = snapPointsMode === "percent" ? frameSize / ((typeof maxSnapPoint === "number" ? maxSnapPoint : 100) / 100) : maxContentSize;
|
|
148
|
-
|
|
149
|
-
|
|
69
|
+
return {
|
|
70
|
+
...sheetState,
|
|
150
71
|
screenSize,
|
|
151
72
|
maxSnapPoint,
|
|
152
73
|
disableRemoveScroll,
|
|
153
74
|
scrollBridge,
|
|
154
|
-
modal: !!props.modal,
|
|
155
|
-
open: state.open,
|
|
156
|
-
setOpen: state.setOpen,
|
|
157
|
-
hidden: !!state.isHidden,
|
|
158
|
-
contentRef,
|
|
159
|
-
handleRef,
|
|
160
|
-
frameSize,
|
|
161
|
-
setFrameSize,
|
|
162
|
-
dismissOnOverlayPress: (_props_dismissOnOverlayPress = props.dismissOnOverlayPress) !== null && _props_dismissOnOverlayPress !== void 0 ? _props_dismissOnOverlayPress : true,
|
|
163
|
-
dismissOnSnapToBottom: (_props_dismissOnSnapToBottom = props.dismissOnSnapToBottom) !== null && _props_dismissOnSnapToBottom !== void 0 ? _props_dismissOnSnapToBottom : false,
|
|
164
|
-
scope: (_props_scope = props.scope) !== null && _props_scope !== void 0 ? _props_scope : "",
|
|
165
|
-
hasFit,
|
|
166
|
-
position,
|
|
167
|
-
snapPoints,
|
|
168
|
-
snapPointsMode,
|
|
169
|
-
setMaxContentSize,
|
|
170
|
-
setPosition,
|
|
171
|
-
setPositionImmediate,
|
|
172
75
|
onlyShowContainer: false
|
|
173
76
|
};
|
|
174
|
-
return providerProps;
|
|
175
77
|
}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var __create = Object.create;
|
|
4
3
|
var __defProp = Object.defineProperty;
|
|
5
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
8
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
7
|
var __export = (target, all) => {
|
|
10
8
|
for (var name in all) __defProp(target, name, {
|
|
@@ -21,93 +19,16 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
21
19
|
}
|
|
22
20
|
return to;
|
|
23
21
|
};
|
|
24
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
25
|
-
value: mod,
|
|
26
|
-
enumerable: true
|
|
27
|
-
}) : target, mod));
|
|
28
22
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
23
|
var useSheetProviderProps_exports = {};
|
|
30
24
|
__export(useSheetProviderProps_exports, { useSheetProviderProps: () => useSheetProviderProps });
|
|
31
25
|
module.exports = __toCommonJS(useSheetProviderProps_exports);
|
|
32
|
-
var import_react = __toESM(require("react"), 1);
|
|
33
26
|
var import_core = require("@tamagui/core");
|
|
34
27
|
var import_use_constant = require("@tamagui/use-constant");
|
|
35
|
-
var
|
|
28
|
+
var import_useSheetState = require("./useSheetState.native.js");
|
|
36
29
|
function useSheetProviderProps(props, state) {
|
|
37
|
-
var
|
|
38
|
-
var
|
|
39
|
-
var [frameSize, setFrameSize] = import_react.default.useState(0);
|
|
40
|
-
var [maxContentSize, setMaxContentSize] = import_react.default.useState(0);
|
|
41
|
-
var _props_snapPointsMode;
|
|
42
|
-
var snapPointsMode = (_props_snapPointsMode = props.snapPointsMode) !== null && _props_snapPointsMode !== void 0 ? _props_snapPointsMode : "percent";
|
|
43
|
-
var _props_snapPoints;
|
|
44
|
-
var snapPointsProp = (_props_snapPoints = props.snapPoints) !== null && _props_snapPoints !== void 0 ? _props_snapPoints : snapPointsMode === "percent" ? [80] : snapPointsMode === "constant" ? [256] : ["fit"];
|
|
45
|
-
var hasFit = snapPointsProp[0] === "fit";
|
|
46
|
-
var snapPoints = import_react.default.useMemo(function() {
|
|
47
|
-
return props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp;
|
|
48
|
-
}, [JSON.stringify(snapPointsProp), props.dismissOnSnapToBottom]);
|
|
49
|
-
var [position_, setPositionImmediate] = (0, import_use_controllable_state.useControllableState)({
|
|
50
|
-
prop: props.position,
|
|
51
|
-
defaultProp: props.defaultPosition || (state.open ? 0 : -1),
|
|
52
|
-
onChange: props.onPositionChange,
|
|
53
|
-
strategy: "most-recent-wins"
|
|
54
|
-
});
|
|
55
|
-
var position = state.open === false ? -1 : position_;
|
|
56
|
-
var { open } = state;
|
|
57
|
-
var setPosition = import_react.default.useCallback(function(next) {
|
|
58
|
-
if (props.dismissOnSnapToBottom && next === snapPoints.length - 1) {
|
|
59
|
-
state.setOpen(false);
|
|
60
|
-
} else {
|
|
61
|
-
setPositionImmediate(next);
|
|
62
|
-
}
|
|
63
|
-
}, [
|
|
64
|
-
props.dismissOnSnapToBottom,
|
|
65
|
-
snapPoints.length,
|
|
66
|
-
setPositionImmediate,
|
|
67
|
-
state.setOpen
|
|
68
|
-
]);
|
|
69
|
-
if (process.env.NODE_ENV === "development") {
|
|
70
|
-
if (snapPointsMode === "mixed" && snapPoints.some(function(p) {
|
|
71
|
-
if (typeof p === "string") {
|
|
72
|
-
if (p === "fit") {
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
if (p.endsWith("%")) {
|
|
76
|
-
var n = Number(p.slice(0, -1));
|
|
77
|
-
return n < 0 || n > 100;
|
|
78
|
-
}
|
|
79
|
-
return true;
|
|
80
|
-
}
|
|
81
|
-
return typeof p !== "number" || p < 0;
|
|
82
|
-
})) {
|
|
83
|
-
console.warn("⚠️ Invalid snapPoint given, snapPoints must be positive numeric values, string percentages between 0-100%, or \"fit\" when snapPointsMode is mixed");
|
|
84
|
-
}
|
|
85
|
-
if (snapPointsMode === "mixed" && snapPoints.indexOf("fit") > 0) {
|
|
86
|
-
console.warn("⚠️ Invalid snapPoint given, \"fit\" must be the first/largest snap point when snapPointsMode is mixed");
|
|
87
|
-
}
|
|
88
|
-
if (snapPointsMode === "fit" && (snapPoints.length !== (props.dismissOnSnapToBottom ? 2 : 1) || snapPoints[0] !== "fit")) {
|
|
89
|
-
console.warn("⚠️ Invalid snapPoint given, there are no snap points when snapPointsMode is fit");
|
|
90
|
-
}
|
|
91
|
-
if (snapPointsMode === "constant" && snapPoints.some(function(p) {
|
|
92
|
-
return typeof p !== "number" || p < 0;
|
|
93
|
-
})) {
|
|
94
|
-
console.warn("⚠️ Invalid snapPoint given, snapPoints must be positive numeric values when snapPointsMode is constant");
|
|
95
|
-
}
|
|
96
|
-
if (snapPointsMode === "percent" && snapPoints.some(function(p) {
|
|
97
|
-
return typeof p !== "number" || p < 0 || p > 100;
|
|
98
|
-
})) {
|
|
99
|
-
console.warn("⚠️ Invalid snapPoint given, snapPoints must be numeric values between 0 and 100 when snapPointsMode is percent");
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
if (open && props.dismissOnSnapToBottom && position === snapPoints.length - 1) {
|
|
103
|
-
setPositionImmediate(0);
|
|
104
|
-
}
|
|
105
|
-
var shouldSetPositionOpen = open && position < 0;
|
|
106
|
-
import_react.default.useEffect(function() {
|
|
107
|
-
if (shouldSetPositionOpen) {
|
|
108
|
-
setPosition(0);
|
|
109
|
-
}
|
|
110
|
-
}, [setPosition, shouldSetPositionOpen]);
|
|
30
|
+
var { maxContentSize, ...sheetState } = (0, import_useSheetState.useSheetState)(props, state);
|
|
31
|
+
var { frameSize, snapPointsMode, snapPoints, open } = sheetState;
|
|
111
32
|
var { animationDriver } = (0, import_core.useConfiguration)();
|
|
112
33
|
if (!animationDriver) {
|
|
113
34
|
throw new Error(process.env.NODE_ENV === "production" ? `\u274C 008` : "Must set animations in tamagui.config.ts");
|
|
@@ -145,33 +66,14 @@ function useSheetProviderProps(props, state) {
|
|
|
145
66
|
var disableRemoveScroll = props.disableRemoveScroll || !open || !props.modal;
|
|
146
67
|
var maxSnapPoint = snapPoints[0];
|
|
147
68
|
var screenSize = snapPointsMode === "percent" ? frameSize / ((typeof maxSnapPoint === "number" ? maxSnapPoint : 100) / 100) : maxContentSize;
|
|
148
|
-
|
|
149
|
-
|
|
69
|
+
return {
|
|
70
|
+
...sheetState,
|
|
150
71
|
screenSize,
|
|
151
72
|
maxSnapPoint,
|
|
152
73
|
disableRemoveScroll,
|
|
153
74
|
scrollBridge,
|
|
154
|
-
modal: !!props.modal,
|
|
155
|
-
open: state.open,
|
|
156
|
-
setOpen: state.setOpen,
|
|
157
|
-
hidden: !!state.isHidden,
|
|
158
|
-
contentRef,
|
|
159
|
-
handleRef,
|
|
160
|
-
frameSize,
|
|
161
|
-
setFrameSize,
|
|
162
|
-
dismissOnOverlayPress: (_props_dismissOnOverlayPress = props.dismissOnOverlayPress) !== null && _props_dismissOnOverlayPress !== void 0 ? _props_dismissOnOverlayPress : true,
|
|
163
|
-
dismissOnSnapToBottom: (_props_dismissOnSnapToBottom = props.dismissOnSnapToBottom) !== null && _props_dismissOnSnapToBottom !== void 0 ? _props_dismissOnSnapToBottom : false,
|
|
164
|
-
scope: (_props_scope = props.scope) !== null && _props_scope !== void 0 ? _props_scope : "",
|
|
165
|
-
hasFit,
|
|
166
|
-
position,
|
|
167
|
-
snapPoints,
|
|
168
|
-
snapPointsMode,
|
|
169
|
-
setMaxContentSize,
|
|
170
|
-
setPosition,
|
|
171
|
-
setPositionImmediate,
|
|
172
75
|
onlyShowContainer: false
|
|
173
76
|
};
|
|
174
|
-
return providerProps;
|
|
175
77
|
}
|
|
176
78
|
|
|
177
79
|
//# sourceMappingURL=useSheetProviderProps.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSheetProviderProps.native.js","names":[],"sources":["jsx/useSheetProviderProps.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar useSheetProviderProps_exports = {};\n__export(useSheetProviderProps_exports, {\n useSheetProviderProps: () => useSheetProviderProps\n});\nmodule.exports = __toCommonJS(useSheetProviderProps_exports);\nvar import_react = __toESM(require(\"react\"), 1);\nvar import_core = require(\"@tamagui/core\");\nvar import_use_constant = require(\"@tamagui/use-constant\");\nvar import_use_controllable_state = require(\"@tamagui/use-controllable-state\");\nfunction useSheetProviderProps(props, state) {\n var handleRef = import_react.default.useRef(null);\n var contentRef = import_react.default.useRef(null);\n var [frameSize, setFrameSize] = import_react.default.useState(0);\n var [maxContentSize, setMaxContentSize] = import_react.default.useState(0);\n var _props_snapPointsMode;\n var snapPointsMode = (_props_snapPointsMode = props.snapPointsMode) !== null && _props_snapPointsMode !== void 0 ? _props_snapPointsMode : \"percent\";\n var _props_snapPoints;\n var snapPointsProp = (_props_snapPoints = props.snapPoints) !== null && _props_snapPoints !== void 0 ? _props_snapPoints : snapPointsMode === \"percent\" ? [\n 80\n ] : snapPointsMode === \"constant\" ? [\n 256\n ] : [\n \"fit\"\n ];\n var hasFit = snapPointsProp[0] === \"fit\";\n var snapPoints = import_react.default.useMemo(function() {\n return props.dismissOnSnapToBottom ? [\n ...snapPointsProp,\n 0\n ] : snapPointsProp;\n }, [\n JSON.stringify(snapPointsProp),\n props.dismissOnSnapToBottom\n ]);\n var [position_, setPositionImmediate] = (0, import_use_controllable_state.useControllableState)({\n prop: props.position,\n defaultProp: props.defaultPosition || (state.open ? 0 : -1),\n onChange: props.onPositionChange,\n strategy: \"most-recent-wins\"\n });\n var position = state.open === false ? -1 : position_;\n var { open } = state;\n var setPosition = import_react.default.useCallback(function(next) {\n if (props.dismissOnSnapToBottom && next === snapPoints.length - 1) {\n state.setOpen(false);\n } else {\n setPositionImmediate(next);\n }\n }, [\n props.dismissOnSnapToBottom,\n snapPoints.length,\n setPositionImmediate,\n state.setOpen\n ]);\n if (process.env.NODE_ENV === \"development\") {\n if (snapPointsMode === \"mixed\" && snapPoints.some(function(p) {\n if (typeof p === \"string\") {\n if (p === \"fit\") {\n return false;\n }\n if (p.endsWith(\"%\")) {\n var n = Number(p.slice(0, -1));\n return n < 0 || n > 100;\n }\n return true;\n }\n return typeof p !== \"number\" || p < 0;\n })) {\n console.warn('\\u26A0\\uFE0F Invalid snapPoint given, snapPoints must be positive numeric values, string percentages between 0-100%, or \"fit\" when snapPointsMode is mixed');\n }\n if (snapPointsMode === \"mixed\" && snapPoints.indexOf(\"fit\") > 0) {\n console.warn('\\u26A0\\uFE0F Invalid snapPoint given, \"fit\" must be the first/largest snap point when snapPointsMode is mixed');\n }\n if (snapPointsMode === \"fit\" && (snapPoints.length !== (props.dismissOnSnapToBottom ? 2 : 1) || snapPoints[0] !== \"fit\")) {\n console.warn(\"\\u26A0\\uFE0F Invalid snapPoint given, there are no snap points when snapPointsMode is fit\");\n }\n if (snapPointsMode === \"constant\" && snapPoints.some(function(p) {\n return typeof p !== \"number\" || p < 0;\n })) {\n console.warn(\"\\u26A0\\uFE0F Invalid snapPoint given, snapPoints must be positive numeric values when snapPointsMode is constant\");\n }\n if (snapPointsMode === \"percent\" && snapPoints.some(function(p) {\n return typeof p !== \"number\" || p < 0 || p > 100;\n })) {\n console.warn(\"\\u26A0\\uFE0F Invalid snapPoint given, snapPoints must be numeric values between 0 and 100 when snapPointsMode is percent\");\n }\n }\n if (open && props.dismissOnSnapToBottom && position === snapPoints.length - 1) {\n setPositionImmediate(0);\n }\n var shouldSetPositionOpen = open && position < 0;\n import_react.default.useEffect(function() {\n if (shouldSetPositionOpen) {\n setPosition(0);\n }\n }, [\n setPosition,\n shouldSetPositionOpen\n ]);\n var { animationDriver } = (0, import_core.useConfiguration)();\n if (!animationDriver) {\n throw new Error(process.env.NODE_ENV === \"production\" ? `\\u274C 008` : \"Must set animations in tamagui.config.ts\");\n }\n var scrollBridge = (0, import_use_constant.useConstant)(function() {\n var parentDragListeners = /* @__PURE__ */ new Set();\n var bridge = {\n hasScrollableContent: false,\n enabled: false,\n y: 0,\n paneY: 0,\n paneMinY: 0,\n scrollStartY: -1,\n drag: function() {\n },\n release: function() {\n },\n scrollLock: false,\n isParentDragging: false,\n onParentDragging: function(cb) {\n parentDragListeners.add(cb);\n return function() {\n parentDragListeners.delete(cb);\n };\n },\n setParentDragging: function(val) {\n if (val !== bridge.isParentDragging) {\n bridge.isParentDragging = val;\n parentDragListeners.forEach(function(cb) {\n return cb(val);\n });\n }\n }\n };\n return bridge;\n });\n var disableRemoveScroll = props.disableRemoveScroll || !open || !props.modal;\n var maxSnapPoint = snapPoints[0];\n var screenSize = snapPointsMode === \"percent\" ? frameSize / ((typeof maxSnapPoint === \"number\" ? maxSnapPoint : 100) / 100) : maxContentSize;\n var _props_dismissOnOverlayPress, _props_dismissOnSnapToBottom, _props_scope;\n var providerProps = {\n screenSize,\n maxSnapPoint,\n disableRemoveScroll,\n scrollBridge,\n modal: !!props.modal,\n open: state.open,\n setOpen: state.setOpen,\n hidden: !!state.isHidden,\n contentRef,\n handleRef,\n frameSize,\n setFrameSize,\n dismissOnOverlayPress: (_props_dismissOnOverlayPress = props.dismissOnOverlayPress) !== null && _props_dismissOnOverlayPress !== void 0 ? _props_dismissOnOverlayPress : true,\n dismissOnSnapToBottom: (_props_dismissOnSnapToBottom = props.dismissOnSnapToBottom) !== null && _props_dismissOnSnapToBottom !== void 0 ? _props_dismissOnSnapToBottom : false,\n scope: (_props_scope = props.scope) !== null && _props_scope !== void 0 ? _props_scope : \"\",\n hasFit,\n position,\n snapPoints,\n snapPointsMode,\n setMaxContentSize,\n setPosition,\n setPositionImmediate,\n onlyShowContainer: false\n };\n return providerProps;\n}\n//# sourceMappingURL=useSheetProviderProps.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSheetProviderProps.native.js","names":[],"sources":["jsx/useSheetProviderProps.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar useSheetProviderProps_exports = {};\n__export(useSheetProviderProps_exports, {\n useSheetProviderProps: () => useSheetProviderProps\n});\nmodule.exports = __toCommonJS(useSheetProviderProps_exports);\nvar import_core = require(\"@tamagui/core\");\nvar import_use_constant = require(\"@tamagui/use-constant\");\nvar import_useSheetState = require(\"./useSheetState\");\nfunction useSheetProviderProps(props, state) {\n var { maxContentSize, ...sheetState } = (0, import_useSheetState.useSheetState)(props, state);\n var { frameSize, snapPointsMode, snapPoints, open } = sheetState;\n var { animationDriver } = (0, import_core.useConfiguration)();\n if (!animationDriver) {\n throw new Error(process.env.NODE_ENV === \"production\" ? `\\u274C 008` : \"Must set animations in tamagui.config.ts\");\n }\n var scrollBridge = (0, import_use_constant.useConstant)(function() {\n var parentDragListeners = /* @__PURE__ */ new Set();\n var bridge = {\n hasScrollableContent: false,\n enabled: false,\n y: 0,\n paneY: 0,\n paneMinY: 0,\n scrollStartY: -1,\n drag: function() {\n },\n release: function() {\n },\n scrollLock: false,\n isParentDragging: false,\n onParentDragging: function(cb) {\n parentDragListeners.add(cb);\n return function() {\n parentDragListeners.delete(cb);\n };\n },\n setParentDragging: function(val) {\n if (val !== bridge.isParentDragging) {\n bridge.isParentDragging = val;\n parentDragListeners.forEach(function(cb) {\n return cb(val);\n });\n }\n }\n };\n return bridge;\n });\n var disableRemoveScroll = props.disableRemoveScroll || !open || !props.modal;\n var maxSnapPoint = snapPoints[0];\n var screenSize = snapPointsMode === \"percent\" ? frameSize / ((typeof maxSnapPoint === \"number\" ? maxSnapPoint : 100) / 100) : maxContentSize;\n return {\n ...sheetState,\n screenSize,\n maxSnapPoint,\n disableRemoveScroll,\n scrollBridge,\n onlyShowContainer: false\n };\n}\n//# sourceMappingURL=useSheetProviderProps.js.map\n"],"mappings":";;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,gCAAgC,CAAC;AACrC,SAAS,+BAA+B,EACtC,6BAA6B,sBAC/B,CAAC;AACD,OAAO,UAAU,aAAa,6BAA6B;AAC3D,IAAI,cAAc,QAAQ,eAAe;AACzC,IAAI,sBAAsB,QAAQ,uBAAuB;AACzD,IAAI,uBAAuB,QAAQ,2BAAiB;AACpD,SAAS,sBAAsB,OAAO,OAAO;CAC3C,IAAI,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,qBAAqB,cAAa,CAAE,OAAO,KAAK;CAC5F,IAAI,EAAE,WAAW,gBAAgB,YAAY,SAAS;CACtD,IAAI,EAAE,qBAAqB,GAAG,YAAY,iBAAgB,CAAE;CAC5D,IAAI,CAAC,iBAAiB;EACpB,MAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,eAAe,0CAA0C;CACnH;CACA,IAAI,gBAAgB,GAAG,oBAAoB,YAAW,CAAE,WAAW;EACjE,IAAI,sCAAsC,IAAI,IAAI;EAClD,IAAI,SAAS;GACX,sBAAsB;GACtB,SAAS;GACT,GAAG;GACH,OAAO;GACP,UAAU;GACV,cAAc,CAAC;GACf,MAAM,WAAW,CACjB;GACA,SAAS,WAAW,CACpB;GACA,YAAY;GACZ,kBAAkB;GAClB,kBAAkB,SAAS,IAAI;IAC7B,oBAAoB,IAAI,EAAE;IAC1B,OAAO,WAAW;KAChB,oBAAoB,OAAO,EAAE;IAC/B;GACF;GACA,mBAAmB,SAAS,KAAK;IAC/B,IAAI,QAAQ,OAAO,kBAAkB;KACnC,OAAO,mBAAmB;KAC1B,oBAAoB,QAAQ,SAAS,IAAI;MACvC,OAAO,GAAG,GAAG;KACf,CAAC;IACH;GACF;EACF;EACA,OAAO;CACT,CAAC;CACD,IAAI,sBAAsB,MAAM,uBAAuB,CAAC,QAAQ,CAAC,MAAM;CACvE,IAAI,eAAe,WAAW;CAC9B,IAAI,aAAa,mBAAmB,YAAY,cAAc,OAAO,iBAAiB,WAAW,eAAe,OAAO,OAAO;CAC9H,OAAO;EACL,GAAG;EACH;EACA;EACA;EACA;EACA,mBAAmB;CACrB;AACF"}
|