@cdx-ui/primitives 0.0.1-alpha.22 → 0.0.1-alpha.24
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/lib/commonjs/dialog/context.js +11 -0
- package/lib/commonjs/dialog/context.js.map +1 -0
- package/lib/commonjs/dialog/createDialogBody.js +21 -0
- package/lib/commonjs/dialog/createDialogBody.js.map +1 -0
- package/lib/commonjs/dialog/createDialogClose.js +37 -0
- package/lib/commonjs/dialog/createDialogClose.js.map +1 -0
- package/lib/commonjs/dialog/createDialogContent.js +141 -0
- package/lib/commonjs/dialog/createDialogContent.js.map +1 -0
- package/lib/commonjs/dialog/createDialogDescription.js +30 -0
- package/lib/commonjs/dialog/createDialogDescription.js.map +1 -0
- package/lib/commonjs/dialog/createDialogFooter.js +21 -0
- package/lib/commonjs/dialog/createDialogFooter.js.map +1 -0
- package/lib/commonjs/dialog/createDialogHeader.js +21 -0
- package/lib/commonjs/dialog/createDialogHeader.js.map +1 -0
- package/lib/commonjs/dialog/createDialogRoot.js +54 -0
- package/lib/commonjs/dialog/createDialogRoot.js.map +1 -0
- package/lib/commonjs/dialog/createDialogTitle.js +21 -0
- package/lib/commonjs/dialog/createDialogTitle.js.map +1 -0
- package/lib/commonjs/dialog/createDialogTrigger.js +37 -0
- package/lib/commonjs/dialog/createDialogTrigger.js.map +1 -0
- package/lib/commonjs/dialog/index.js +60 -0
- package/lib/commonjs/dialog/index.js.map +1 -0
- package/lib/commonjs/dialog/types.js +6 -0
- package/lib/commonjs/dialog/types.js.map +1 -0
- package/lib/commonjs/index.js +12 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/overlay/OverlayContainer.js +3 -8
- package/lib/commonjs/overlay/OverlayContainer.js.map +1 -1
- package/lib/commonjs/overlay/index.js +7 -0
- package/lib/commonjs/overlay/index.js.map +1 -1
- package/lib/commonjs/overlay/useEscapeKey.js +14 -0
- package/lib/commonjs/overlay/useEscapeKey.js.map +1 -0
- package/lib/commonjs/overlay/useEscapeKey.web.js +30 -0
- package/lib/commonjs/overlay/useEscapeKey.web.js.map +1 -0
- package/lib/commonjs/utils/createPortal.js +23 -0
- package/lib/commonjs/utils/createPortal.js.map +1 -0
- package/lib/module/dialog/context.js +5 -0
- package/lib/module/dialog/context.js.map +1 -0
- package/lib/module/dialog/createDialogBody.js +15 -0
- package/lib/module/dialog/createDialogBody.js.map +1 -0
- package/lib/module/dialog/createDialogClose.js +31 -0
- package/lib/module/dialog/createDialogClose.js.map +1 -0
- package/lib/module/dialog/createDialogContent.js +136 -0
- package/lib/module/dialog/createDialogContent.js.map +1 -0
- package/lib/module/dialog/createDialogDescription.js +24 -0
- package/lib/module/dialog/createDialogDescription.js.map +1 -0
- package/lib/module/dialog/createDialogFooter.js +15 -0
- package/lib/module/dialog/createDialogFooter.js.map +1 -0
- package/lib/module/dialog/createDialogHeader.js +15 -0
- package/lib/module/dialog/createDialogHeader.js.map +1 -0
- package/lib/module/dialog/createDialogRoot.js +49 -0
- package/lib/module/dialog/createDialogRoot.js.map +1 -0
- package/lib/module/dialog/createDialogTitle.js +15 -0
- package/lib/module/dialog/createDialogTitle.js.map +1 -0
- package/lib/module/dialog/createDialogTrigger.js +31 -0
- package/lib/module/dialog/createDialogTrigger.js.map +1 -0
- package/lib/module/dialog/index.js +45 -0
- package/lib/module/dialog/index.js.map +1 -0
- package/lib/module/dialog/types.js +4 -0
- package/lib/module/dialog/types.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/overlay/OverlayContainer.js +1 -6
- package/lib/module/overlay/OverlayContainer.js.map +1 -1
- package/lib/module/overlay/index.js +1 -0
- package/lib/module/overlay/index.js.map +1 -1
- package/lib/module/overlay/useEscapeKey.js +10 -0
- package/lib/module/overlay/useEscapeKey.js.map +1 -0
- package/lib/module/overlay/useEscapeKey.web.js +27 -0
- package/lib/module/overlay/useEscapeKey.web.js.map +1 -0
- package/lib/module/utils/createPortal.js +19 -0
- package/lib/module/utils/createPortal.js.map +1 -0
- package/lib/typescript/dialog/context.d.ts +6 -0
- package/lib/typescript/dialog/context.d.ts.map +1 -0
- package/lib/typescript/dialog/createDialogBody.d.ts +4 -0
- package/lib/typescript/dialog/createDialogBody.d.ts.map +1 -0
- package/lib/typescript/dialog/createDialogClose.d.ts +4 -0
- package/lib/typescript/dialog/createDialogClose.d.ts.map +1 -0
- package/lib/typescript/dialog/createDialogContent.d.ts +4 -0
- package/lib/typescript/dialog/createDialogContent.d.ts.map +1 -0
- package/lib/typescript/dialog/createDialogDescription.d.ts +4 -0
- package/lib/typescript/dialog/createDialogDescription.d.ts.map +1 -0
- package/lib/typescript/dialog/createDialogFooter.d.ts +4 -0
- package/lib/typescript/dialog/createDialogFooter.d.ts.map +1 -0
- package/lib/typescript/dialog/createDialogHeader.d.ts +4 -0
- package/lib/typescript/dialog/createDialogHeader.d.ts.map +1 -0
- package/lib/typescript/dialog/createDialogRoot.d.ts +4 -0
- package/lib/typescript/dialog/createDialogRoot.d.ts.map +1 -0
- package/lib/typescript/dialog/createDialogTitle.d.ts +4 -0
- package/lib/typescript/dialog/createDialogTitle.d.ts.map +1 -0
- package/lib/typescript/dialog/createDialogTrigger.d.ts +4 -0
- package/lib/typescript/dialog/createDialogTrigger.d.ts.map +1 -0
- package/lib/typescript/dialog/index.d.ts +18 -0
- package/lib/typescript/dialog/index.d.ts.map +1 -0
- package/lib/typescript/dialog/types.d.ts +52 -0
- package/lib/typescript/dialog/types.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/overlay/OverlayContainer.d.ts.map +1 -1
- package/lib/typescript/overlay/index.d.ts +1 -0
- package/lib/typescript/overlay/index.d.ts.map +1 -1
- package/lib/typescript/overlay/useEscapeKey.d.ts +6 -0
- package/lib/typescript/overlay/useEscapeKey.d.ts.map +1 -0
- package/lib/typescript/overlay/useEscapeKey.web.d.ts +6 -0
- package/lib/typescript/overlay/useEscapeKey.web.d.ts.map +1 -0
- package/lib/typescript/utils/createPortal.d.ts +11 -0
- package/lib/typescript/utils/createPortal.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/dialog/context.tsx +4 -0
- package/src/dialog/createDialogBody.tsx +11 -0
- package/src/dialog/createDialogClose.tsx +27 -0
- package/src/dialog/createDialogContent.tsx +122 -0
- package/src/dialog/createDialogDescription.tsx +20 -0
- package/src/dialog/createDialogFooter.tsx +11 -0
- package/src/dialog/createDialogHeader.tsx +11 -0
- package/src/dialog/createDialogRoot.tsx +66 -0
- package/src/dialog/createDialogTitle.tsx +11 -0
- package/src/dialog/createDialogTrigger.tsx +27 -0
- package/src/dialog/index.tsx +93 -0
- package/src/dialog/types.ts +88 -0
- package/src/index.ts +1 -0
- package/src/overlay/OverlayContainer.tsx +2 -10
- package/src/overlay/index.ts +1 -0
- package/src/overlay/useEscapeKey.ts +7 -0
- package/src/overlay/useEscapeKey.web.ts +27 -0
- package/src/utils/createPortal.ts +20 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_reactNativeReanimated","_interopRequireDefault","_jsxRuntime","e","__esModule","default","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_reactNativeReanimated","_interopRequireDefault","_createPortal","_jsxRuntime","e","__esModule","default","OverlayContainer","onDismiss","entering","exiting","style","children","Platform","OS","createPortalFn","jsx","View","position","zIndex","document","body","jsxs","Modal","visible","transparent","animationType","statusBarTranslucent","onRequestClose","Pressable","StyleSheet","absoluteFill","onPress","accessible","importantForAccessibility"],"sourceRoot":"../../../src","sources":["overlay/OverlayContainer.tsx"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AASA,IAAAC,sBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AAAuD,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAE,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAUvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,gBAAgBA,CAAC;EAC/BC,SAAS;EACTC,QAAQ;EACRC,OAAO;EACPC,KAAK;EACLC;AAC+B,CAAC,EAAE;EAClC,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAIC,4BAAc,EAAE;IAC3C,OAAO,IAAAA,4BAAc,eACnB,IAAAZ,WAAA,CAAAa,GAAA,EAAClB,YAAA,CAAAmB,IAAI;MAACN,KAAK,EAAE,CAAC;QAAEO,QAAQ,EAAE,OAAc;QAAEC,MAAM,EAAE;MAAG,CAAC,EAAER,KAAK,CAAE;MAAAC,QAAA,EAAEA;IAAQ,CAAO,CAAC,EACjFQ,QAAQ,CAACC,IACX,CAAC;EACH;EAEA,oBACE,IAAAlB,WAAA,CAAAmB,IAAA,EAACxB,YAAA,CAAAyB,KAAK;IAACC,OAAO;IAACC,WAAW;IAACC,aAAa,EAAC,MAAM;IAACC,oBAAoB;IAACC,cAAc,EAAEpB,SAAU;IAAAI,QAAA,gBAC7F,IAAAT,WAAA,CAAAa,GAAA,EAAClB,YAAA,CAAA+B,SAAS;MACRlB,KAAK,EAAEmB,uBAAU,CAACC,YAAa;MAC/BC,OAAO,EAAExB,SAAU;MACnByB,UAAU,EAAE,KAAM;MAClBC,yBAAyB,EAAC;IAAqB,CAChD,CAAC,eACF,IAAA/B,WAAA,CAAAa,GAAA,EAAChB,sBAAA,CAAAM,OAAQ,CAACW,IAAI;MACZR,QAAQ,EAAEA,QAAS;MACnBC,OAAO,EAAEA,OAAQ;MACjBC,KAAK,EAAE,CAAC;QAAEO,QAAQ,EAAE;MAAW,CAAC,EAAEP,KAAK,CAAE;MAAAC,QAAA,EAExCA;IAAQ,CACI,CAAC;EAAA,CACX,CAAC;AAEZ","ignoreList":[]}
|
|
@@ -27,6 +27,12 @@ Object.defineProperty(exports, "useDismissOverlay", {
|
|
|
27
27
|
return _useDismissOverlay.useDismissOverlay;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
+
Object.defineProperty(exports, "useEscapeKey", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _useEscapeKey.useEscapeKey;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
30
36
|
Object.defineProperty(exports, "useOverlayPosition", {
|
|
31
37
|
enumerable: true,
|
|
32
38
|
get: function () {
|
|
@@ -36,5 +42,6 @@ Object.defineProperty(exports, "useOverlayPosition", {
|
|
|
36
42
|
var _OverlayContainer = require("./OverlayContainer");
|
|
37
43
|
var _useAnchorPosition = require("./useAnchorPosition");
|
|
38
44
|
var _useDismissOverlay = require("./useDismissOverlay");
|
|
45
|
+
var _useEscapeKey = require("./useEscapeKey");
|
|
39
46
|
var _useOverlayPosition = require("./useOverlayPosition");
|
|
40
47
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_OverlayContainer","require","_useAnchorPosition","_useDismissOverlay","_useOverlayPosition"],"sourceRoot":"../../../src","sources":["overlay/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_OverlayContainer","require","_useAnchorPosition","_useDismissOverlay","_useEscapeKey","_useOverlayPosition"],"sourceRoot":"../../../src","sources":["overlay/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAEA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useEscapeKey = useEscapeKey;
|
|
7
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* No-op on native — Escape key dismissal is not applicable.
|
|
11
|
+
* Native uses the system back gesture / hardware button via Modal.
|
|
12
|
+
*/
|
|
13
|
+
function useEscapeKey(_open, _onEscape) {}
|
|
14
|
+
//# sourceMappingURL=useEscapeKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEscapeKey","_open","_onEscape"],"sourceRoot":"../../../src","sources":["overlay/useEscapeKey.ts"],"mappings":";;;;;;AAAA;;AAEA;AACA;AACA;AACA;AACO,SAASA,YAAYA,CAACC,KAAc,EAAEC,SAAqB,EAAE,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useEscapeKey = useEscapeKey;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
/**
|
|
9
|
+
* Closes an overlay when the user presses the Escape key.
|
|
10
|
+
* Web-only — native platforms use Modal's `onRequestClose` for back/dismiss.
|
|
11
|
+
*/
|
|
12
|
+
function useEscapeKey(open, onEscape) {
|
|
13
|
+
const onEscapeRef = (0, _react.useRef)(onEscape);
|
|
14
|
+
onEscapeRef.current = onEscape;
|
|
15
|
+
(0, _react.useEffect)(() => {
|
|
16
|
+
if (!open) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const handleKeyDown = e => {
|
|
20
|
+
if (e.key === 'Escape') {
|
|
21
|
+
onEscapeRef.current();
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
25
|
+
return () => {
|
|
26
|
+
document.removeEventListener('keydown', handleKeyDown);
|
|
27
|
+
};
|
|
28
|
+
}, [open]);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=useEscapeKey.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","useEscapeKey","open","onEscape","onEscapeRef","useRef","current","useEffect","handleKeyDown","e","key","document","addEventListener","removeEventListener"],"sourceRoot":"../../../src","sources":["overlay/useEscapeKey.web.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACO,SAASC,YAAYA,CAACC,IAAa,EAAEC,QAAoB,EAAE;EAChE,MAAMC,WAAW,GAAG,IAAAC,aAAM,EAACF,QAAQ,CAAC;EACpCC,WAAW,CAACE,OAAO,GAAGH,QAAQ;EAE9B,IAAAI,gBAAS,EAAC,MAAM;IACd,IAAI,CAACL,IAAI,EAAE;MACT;IACF;IAEA,MAAMM,aAAa,GAAIC,CAAgB,IAAK;MAC1C,IAAIA,CAAC,CAACC,GAAG,KAAK,QAAQ,EAAE;QACtBN,WAAW,CAACE,OAAO,CAAC,CAAC;MACvB;IACF,CAAC;IAEDK,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEJ,aAAa,CAAC;IACnD,OAAO,MAAM;MACXG,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEL,aAAa,CAAC;IACxD,CAAC;EACH,CAAC,EAAE,CAACN,IAAI,CAAC,CAAC;AACZ","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createPortalFn = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
/**
|
|
9
|
+
* A reference to `ReactDOM.createPortal` on web, `undefined` on native.
|
|
10
|
+
*
|
|
11
|
+
* Loaded lazily via `require` so that native bundles never reference
|
|
12
|
+
* `react-dom`, which would cause a build error on native platforms.
|
|
13
|
+
*/
|
|
14
|
+
const createPortalFn = exports.createPortalFn = (() => {
|
|
15
|
+
if (_reactNative.Platform.OS !== 'web') return undefined;
|
|
16
|
+
try {
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
18
|
+
return require('react-dom').createPortal;
|
|
19
|
+
} catch {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
})();
|
|
23
|
+
//# sourceMappingURL=createPortal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","createPortalFn","exports","Platform","OS","undefined","createPortal"],"sourceRoot":"../../../src","sources":["utils/createPortal.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,cAA0C,GAAAC,OAAA,CAAAD,cAAA,GAAG,CAAC,MAAM;EAC/D,IAAIE,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE,OAAOC,SAAS;EAC3C,IAAI;IACF;IACA,OAAQL,OAAO,CAAC,WAAW,CAAC,CAAsCM,YAAY;EAChF,CAAC,CAAC,MAAM;IACN,OAAOD,SAAS;EAClB;AACF,CAAC,EAAE,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","DialogProvider","useDialog"],"sourceRoot":"../../../src","sources":["dialog/context.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,eAAe;AAG7C,OAAO,MAAM,CAACC,cAAc,EAAEC,SAAS,CAAC,GAAGF,aAAa,CAAqB,eAAe,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { forwardRef } from 'react';
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
export const createDialogBody = BaseBody => /*#__PURE__*/forwardRef(({
|
|
6
|
+
children,
|
|
7
|
+
...props
|
|
8
|
+
}, ref) => {
|
|
9
|
+
return /*#__PURE__*/_jsx(BaseBody, {
|
|
10
|
+
ref: ref,
|
|
11
|
+
...props,
|
|
12
|
+
children: children
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=createDialogBody.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","forwardRef","jsx","_jsx","createDialogBody","BaseBody","children","props","ref"],"sourceRoot":"../../../src","sources":["dialog/createDialogBody.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG1C,OAAO,MAAMC,gBAAgB,GAAQC,QAAgC,iBACnEJ,UAAU,CAA4B,CAAC;EAAEK,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACrE,oBACEL,IAAA,CAACE,QAAQ;IAACG,GAAG,EAAEA,GAAI;IAAA,GAAMD,KAAK;IAAAD,QAAA,EAC3BA;EAAQ,CACD,CAAC;AAEf,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { forwardRef } from 'react';
|
|
4
|
+
import { useDialog } from './context';
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
export const createDialogClose = BaseClose => /*#__PURE__*/forwardRef(({
|
|
7
|
+
asChild = false,
|
|
8
|
+
children,
|
|
9
|
+
onPress,
|
|
10
|
+
...props
|
|
11
|
+
}, ref) => {
|
|
12
|
+
const {
|
|
13
|
+
onOpenChange
|
|
14
|
+
} = useDialog();
|
|
15
|
+
const handlePress = e => {
|
|
16
|
+
onPress?.(e);
|
|
17
|
+
onOpenChange(false);
|
|
18
|
+
};
|
|
19
|
+
if (asChild && /*#__PURE__*/React.isValidElement(children)) {
|
|
20
|
+
return /*#__PURE__*/React.cloneElement(children, {
|
|
21
|
+
onPress: handlePress
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return /*#__PURE__*/_jsx(BaseClose, {
|
|
25
|
+
ref: ref,
|
|
26
|
+
...props,
|
|
27
|
+
onPress: handlePress,
|
|
28
|
+
children: children
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=createDialogClose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useDialog","jsx","_jsx","createDialogClose","BaseClose","asChild","children","onPress","props","ref","onOpenChange","handlePress","e","isValidElement","cloneElement"],"sourceRoot":"../../../src","sources":["dialog/createDialogClose.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAEzC,SAASC,SAAS,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEtC,OAAO,MAAMC,iBAAiB,GAAQC,SAAiC,iBACrEL,UAAU,CACR,CAAC;EAAEM,OAAO,GAAG,KAAK;EAAEC,QAAQ;EAAEC,OAAO;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACzD,MAAM;IAAEC;EAAa,CAAC,GAAGV,SAAS,CAAC,CAAC;EAEpC,MAAMW,WAAW,GAAIC,CAAO,IAAK;IAC/BL,OAAO,GAAGK,CAAC,CAAC;IACZF,YAAY,CAAC,KAAK,CAAC;EACrB,CAAC;EAED,IAAIL,OAAO,iBAAIP,KAAK,CAACe,cAAc,CAACP,QAAQ,CAAC,EAAE;IAC7C,oBAAOR,KAAK,CAACgB,YAAY,CAACR,QAAQ,EAA6B;MAC7DC,OAAO,EAAEI;IACX,CAAC,CAAC;EACJ;EAEA,oBACET,IAAA,CAACE,SAAS;IAACK,GAAG,EAAEA,GAAI;IAAA,GAAMD,KAAK;IAAQD,OAAO,EAAEI,WAAY;IAAAL,QAAA,EACzDA;EAAQ,CACA,CAAC;AAEhB,CACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { forwardRef, useCallback } from 'react';
|
|
4
|
+
import { Modal, Platform, StyleSheet, View } from 'react-native';
|
|
5
|
+
import { FocusScope } from '@react-native-aria/focus';
|
|
6
|
+
import { useEscapeKey } from '../overlay';
|
|
7
|
+
import { createPortalFn } from '../utils/createPortal';
|
|
8
|
+
import { dataAttributes } from '../utils/dataAttributes';
|
|
9
|
+
import { useDialog } from './context';
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
export const createDialogContent = (BaseContent, BaseOverlay) => /*#__PURE__*/forwardRef(({
|
|
12
|
+
children,
|
|
13
|
+
forceMount = false,
|
|
14
|
+
...props
|
|
15
|
+
}, ref) => {
|
|
16
|
+
const {
|
|
17
|
+
open,
|
|
18
|
+
onOpenChange,
|
|
19
|
+
closeOnBackdropPress,
|
|
20
|
+
closeOnEscKey,
|
|
21
|
+
nativeID,
|
|
22
|
+
role
|
|
23
|
+
} = useDialog();
|
|
24
|
+
const handleClose = useCallback(() => {
|
|
25
|
+
onOpenChange(false);
|
|
26
|
+
}, [onOpenChange]);
|
|
27
|
+
useEscapeKey(open && closeOnEscKey, handleClose);
|
|
28
|
+
if (!(open || forceMount)) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
const overlayProps = {
|
|
32
|
+
...(closeOnBackdropPress ? {
|
|
33
|
+
onPress: handleClose
|
|
34
|
+
} : {}),
|
|
35
|
+
accessible: false,
|
|
36
|
+
importantForAccessibility: 'no-hide-descendants',
|
|
37
|
+
...dataAttributes({
|
|
38
|
+
slot: 'dialog-overlay'
|
|
39
|
+
})
|
|
40
|
+
};
|
|
41
|
+
const contentSlotAttrs = dataAttributes({
|
|
42
|
+
slot: 'dialog-content',
|
|
43
|
+
state: open ? 'open' : 'closed'
|
|
44
|
+
});
|
|
45
|
+
const ariaProps = {
|
|
46
|
+
role,
|
|
47
|
+
'aria-modal': true,
|
|
48
|
+
'aria-labelledby': `${nativeID}-title`,
|
|
49
|
+
'aria-describedby': `${nativeID}-description`
|
|
50
|
+
};
|
|
51
|
+
if (Platform.OS === 'web' && createPortalFn) {
|
|
52
|
+
return createPortalFn(/*#__PURE__*/_jsx(FocusScope, {
|
|
53
|
+
contain: open,
|
|
54
|
+
restoreFocus: true,
|
|
55
|
+
autoFocus: open,
|
|
56
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
57
|
+
style: {
|
|
58
|
+
position: 'fixed',
|
|
59
|
+
inset: 0,
|
|
60
|
+
zIndex: 50,
|
|
61
|
+
display: 'flex',
|
|
62
|
+
alignItems: 'center',
|
|
63
|
+
justifyContent: 'center'
|
|
64
|
+
},
|
|
65
|
+
children: [/*#__PURE__*/_jsx(BaseOverlay, {
|
|
66
|
+
...overlayProps
|
|
67
|
+
}), /*#__PURE__*/_jsx(BaseContent, {
|
|
68
|
+
ref: ref,
|
|
69
|
+
...contentSlotAttrs,
|
|
70
|
+
...props,
|
|
71
|
+
...ariaProps,
|
|
72
|
+
children: children
|
|
73
|
+
})]
|
|
74
|
+
})
|
|
75
|
+
}), document.body);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Native layout uses two layers to support both backdrop dismiss and
|
|
79
|
+
// scrollable body content. The overlay Pressable fills the Modal via
|
|
80
|
+
// absolute positioning and handles backdrop taps. A second absolute-fill
|
|
81
|
+
// View with pointerEvents="box-none" centers the content panel — "box-none"
|
|
82
|
+
// lets taps outside the panel pass through to the overlay while allowing
|
|
83
|
+
// the panel and its children to receive touches normally.
|
|
84
|
+
//
|
|
85
|
+
// Critically, the content panel must NOT claim the JS touch responder
|
|
86
|
+
// (e.g. via onStartShouldSetResponder). Doing so triggers React Native's
|
|
87
|
+
// blockNativeResponder, which suppresses the native UIScrollView /
|
|
88
|
+
// ScrollView pan gesture recognizer and breaks any ScrollView inside
|
|
89
|
+
// Dialog.Body.
|
|
90
|
+
//
|
|
91
|
+
// Static StyleSheet used here because these are structural layout concerns
|
|
92
|
+
// of the primitive's modal chrome — not themeable styles. They must remain
|
|
93
|
+
// stable regardless of the styled layer's className.
|
|
94
|
+
return /*#__PURE__*/_jsx(Modal, {
|
|
95
|
+
visible: open,
|
|
96
|
+
transparent: true,
|
|
97
|
+
statusBarTranslucent: true,
|
|
98
|
+
onRequestClose: handleClose,
|
|
99
|
+
children: /*#__PURE__*/_jsx(FocusScope, {
|
|
100
|
+
contain: open,
|
|
101
|
+
restoreFocus: true,
|
|
102
|
+
autoFocus: open,
|
|
103
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
104
|
+
style: styles.fill,
|
|
105
|
+
children: [/*#__PURE__*/_jsx(BaseOverlay, {
|
|
106
|
+
...overlayProps
|
|
107
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
108
|
+
style: styles.center,
|
|
109
|
+
pointerEvents: "box-none",
|
|
110
|
+
children: /*#__PURE__*/_jsx(BaseContent, {
|
|
111
|
+
ref: ref,
|
|
112
|
+
...contentSlotAttrs,
|
|
113
|
+
...props,
|
|
114
|
+
...ariaProps,
|
|
115
|
+
children: children
|
|
116
|
+
})
|
|
117
|
+
})]
|
|
118
|
+
})
|
|
119
|
+
})
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
// Structural layout for the native Modal chrome. These are not themeable —
|
|
124
|
+
// they position the overlay and centering layers that the primitive manages
|
|
125
|
+
// internally. Matches the pattern in OverlayContainer.tsx.
|
|
126
|
+
const styles = StyleSheet.create({
|
|
127
|
+
fill: {
|
|
128
|
+
flex: 1
|
|
129
|
+
},
|
|
130
|
+
center: {
|
|
131
|
+
...StyleSheet.absoluteFillObject,
|
|
132
|
+
alignItems: 'center',
|
|
133
|
+
justifyContent: 'center'
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
//# sourceMappingURL=createDialogContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","useCallback","Modal","Platform","StyleSheet","View","FocusScope","useEscapeKey","createPortalFn","dataAttributes","useDialog","jsx","_jsx","jsxs","_jsxs","createDialogContent","BaseContent","BaseOverlay","children","forceMount","props","ref","open","onOpenChange","closeOnBackdropPress","closeOnEscKey","nativeID","role","handleClose","overlayProps","onPress","accessible","importantForAccessibility","slot","contentSlotAttrs","state","ariaProps","OS","contain","restoreFocus","autoFocus","style","position","inset","zIndex","display","alignItems","justifyContent","document","body","visible","transparent","statusBarTranslucent","onRequestClose","styles","fill","center","pointerEvents","create","flex","absoluteFillObject"],"sourceRoot":"../../../src","sources":["dialog/createDialogContent.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { forwardRef } from 'react';
|
|
4
|
+
import { dataAttributes } from '../utils/dataAttributes';
|
|
5
|
+
import { useDialog } from './context';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export const createDialogDescription = BaseDescription => /*#__PURE__*/forwardRef(({
|
|
8
|
+
children,
|
|
9
|
+
...props
|
|
10
|
+
}, ref) => {
|
|
11
|
+
const {
|
|
12
|
+
nativeID
|
|
13
|
+
} = useDialog();
|
|
14
|
+
return /*#__PURE__*/_jsx(BaseDescription, {
|
|
15
|
+
ref: ref,
|
|
16
|
+
nativeID: `${nativeID}-description`,
|
|
17
|
+
...props,
|
|
18
|
+
...dataAttributes({
|
|
19
|
+
slot: 'dialog-description'
|
|
20
|
+
}),
|
|
21
|
+
children: children
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=createDialogDescription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","forwardRef","dataAttributes","useDialog","jsx","_jsx","createDialogDescription","BaseDescription","children","props","ref","nativeID","slot"],"sourceRoot":"../../../src","sources":["dialog/createDialogDescription.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,SAAS,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGtC,OAAO,MAAMC,uBAAuB,GAAQC,eAAuC,iBACjFN,UAAU,CAAmC,CAAC;EAAEO,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC5E,MAAM;IAAEC;EAAS,CAAC,GAAGR,SAAS,CAAC,CAAC;EAEhC,oBACEE,IAAA,CAACE,eAAe;IACdG,GAAG,EAAEA,GAAI;IACTC,QAAQ,EAAE,GAAGA,QAAQ,cAAe;IAAA,GAC/BF,KAAK;IAAA,GACNP,cAAc,CAAC;MAAEU,IAAI,EAAE;IAAqB,CAAC,CAAC;IAAAJ,QAAA,EAEjDA;EAAQ,CACM,CAAC;AAEtB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { forwardRef } from 'react';
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
export const createDialogFooter = BaseFooter => /*#__PURE__*/forwardRef(({
|
|
6
|
+
children,
|
|
7
|
+
...props
|
|
8
|
+
}, ref) => {
|
|
9
|
+
return /*#__PURE__*/_jsx(BaseFooter, {
|
|
10
|
+
ref: ref,
|
|
11
|
+
...props,
|
|
12
|
+
children: children
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=createDialogFooter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","forwardRef","jsx","_jsx","createDialogFooter","BaseFooter","children","props","ref"],"sourceRoot":"../../../src","sources":["dialog/createDialogFooter.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG1C,OAAO,MAAMC,kBAAkB,GAAQC,UAAkC,iBACvEJ,UAAU,CAA8B,CAAC;EAAEK,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACvE,oBACEL,IAAA,CAACE,UAAU;IAACG,GAAG,EAAEA,GAAI;IAAA,GAAMD,KAAK;IAAAD,QAAA,EAC7BA;EAAQ,CACC,CAAC;AAEjB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { forwardRef } from 'react';
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
export const createDialogHeader = BaseHeader => /*#__PURE__*/forwardRef(({
|
|
6
|
+
children,
|
|
7
|
+
...props
|
|
8
|
+
}, ref) => {
|
|
9
|
+
return /*#__PURE__*/_jsx(BaseHeader, {
|
|
10
|
+
ref: ref,
|
|
11
|
+
...props,
|
|
12
|
+
children: children
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=createDialogHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","forwardRef","jsx","_jsx","createDialogHeader","BaseHeader","children","props","ref"],"sourceRoot":"../../../src","sources":["dialog/createDialogHeader.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG1C,OAAO,MAAMC,kBAAkB,GAAQC,UAAkC,iBACvEJ,UAAU,CAA8B,CAAC;EAAEK,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACvE,oBACEL,IAAA,CAACE,UAAU;IAACG,GAAG,EAAEA,GAAI;IAAA,GAAMD,KAAK;IAAAD,QAAA,EAC7BA;EAAQ,CACC,CAAC;AAEjB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { forwardRef, useCallback, useId, useMemo } from 'react';
|
|
4
|
+
import { useControllableState } from '@cdx-ui/utils';
|
|
5
|
+
import { dataAttributes } from '../utils/dataAttributes';
|
|
6
|
+
import { DialogProvider } from './context';
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
export const createDialogRoot = BaseRoot => /*#__PURE__*/forwardRef(({
|
|
9
|
+
open: openProp,
|
|
10
|
+
onOpenChange,
|
|
11
|
+
defaultOpen = false,
|
|
12
|
+
closeOnBackdropPress = true,
|
|
13
|
+
closeOnEscKey = true,
|
|
14
|
+
role = 'dialog',
|
|
15
|
+
children,
|
|
16
|
+
...props
|
|
17
|
+
}, ref) => {
|
|
18
|
+
const [open, setOpenState] = useControllableState({
|
|
19
|
+
prop: openProp,
|
|
20
|
+
defaultProp: defaultOpen,
|
|
21
|
+
onChange: onOpenChange
|
|
22
|
+
});
|
|
23
|
+
const setOpen = useCallback(newOpen => {
|
|
24
|
+
setOpenState(newOpen);
|
|
25
|
+
}, [setOpenState]);
|
|
26
|
+
const id = useId();
|
|
27
|
+
const nativeID = `dialog-${id}`;
|
|
28
|
+
const contextValue = useMemo(() => ({
|
|
29
|
+
open: open ?? false,
|
|
30
|
+
onOpenChange: setOpen,
|
|
31
|
+
closeOnBackdropPress,
|
|
32
|
+
closeOnEscKey,
|
|
33
|
+
nativeID,
|
|
34
|
+
role
|
|
35
|
+
}), [open, setOpen, closeOnBackdropPress, closeOnEscKey, nativeID, role]);
|
|
36
|
+
return /*#__PURE__*/_jsx(DialogProvider, {
|
|
37
|
+
value: contextValue,
|
|
38
|
+
children: /*#__PURE__*/_jsx(BaseRoot, {
|
|
39
|
+
ref: ref,
|
|
40
|
+
...props,
|
|
41
|
+
...dataAttributes({
|
|
42
|
+
slot: 'dialog',
|
|
43
|
+
state: open ? 'open' : 'closed'
|
|
44
|
+
}),
|
|
45
|
+
children: children
|
|
46
|
+
})
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=createDialogRoot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","useCallback","useId","useMemo","useControllableState","dataAttributes","DialogProvider","jsx","_jsx","createDialogRoot","BaseRoot","open","openProp","onOpenChange","defaultOpen","closeOnBackdropPress","closeOnEscKey","role","children","props","ref","setOpenState","prop","defaultProp","onChange","setOpen","newOpen","id","nativeID","contextValue","value","slot","state"],"sourceRoot":"../../../src","sources":["dialog/createDialogRoot.tsx"],"mappings":";;AACA,SAASA,UAAU,EAAEC,WAAW,EAAEC,KAAK,EAAEC,OAAO,QAAQ,OAAO;AAC/D,SAASC,oBAAoB,QAAQ,eAAe;AACpD,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,cAAc,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG3C,OAAO,MAAMC,gBAAgB,GAAQC,QAAgC,iBACnEV,UAAU,CACR,CACE;EACEW,IAAI,EAAEC,QAAQ;EACdC,YAAY;EACZC,WAAW,GAAG,KAAK;EACnBC,oBAAoB,GAAG,IAAI;EAC3BC,aAAa,GAAG,IAAI;EACpBC,IAAI,GAAG,QAAQ;EACfC,QAAQ;EACR,GAAGC;AACa,CAAC,EACnBC,GAAkB,KACf;EACH,MAAM,CAACT,IAAI,EAAEU,YAAY,CAAC,GAAGjB,oBAAoB,CAAU;IACzDkB,IAAI,EAAEV,QAAQ;IACdW,WAAW,EAAET,WAAW;IACxBU,QAAQ,EAAEX;EACZ,CAAC,CAAC;EAEF,MAAMY,OAAO,GAAGxB,WAAW,CACxByB,OAAgB,IAAK;IACpBL,YAAY,CAACK,OAAO,CAAC;EACvB,CAAC,EACD,CAACL,YAAY,CACf,CAAC;EAED,MAAMM,EAAE,GAAGzB,KAAK,CAAC,CAAC;EAClB,MAAM0B,QAAQ,GAAG,UAAUD,EAAE,EAAE;EAE/B,MAAME,YAAY,GAAG1B,OAAO,CAC1B,OAAO;IACLQ,IAAI,EAAEA,IAAI,IAAI,KAAK;IACnBE,YAAY,EAAEY,OAAO;IACrBV,oBAAoB;IACpBC,aAAa;IACbY,QAAQ;IACRX;EACF,CAAC,CAAC,EACF,CAACN,IAAI,EAAEc,OAAO,EAAEV,oBAAoB,EAAEC,aAAa,EAAEY,QAAQ,EAAEX,IAAI,CACrE,CAAC;EAED,oBACET,IAAA,CAACF,cAAc;IAACwB,KAAK,EAAED,YAAa;IAAAX,QAAA,eAClCV,IAAA,CAACE,QAAQ;MACPU,GAAG,EAAEA,GAAI;MAAA,GACJD,KAAK;MAAA,GACNd,cAAc,CAAC;QACjB0B,IAAI,EAAE,QAAQ;QACdC,KAAK,EAAErB,IAAI,GAAG,MAAM,GAAG;MACzB,CAAC,CAAC;MAAAO,QAAA,EAEDA;IAAQ,CACD;EAAC,CACG,CAAC;AAErB,CACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { forwardRef } from 'react';
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
export const createDialogTitle = BaseTitle => /*#__PURE__*/forwardRef(({
|
|
6
|
+
children,
|
|
7
|
+
...props
|
|
8
|
+
}, ref) => {
|
|
9
|
+
return /*#__PURE__*/_jsx(BaseTitle, {
|
|
10
|
+
ref: ref,
|
|
11
|
+
...props,
|
|
12
|
+
children: children
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=createDialogTitle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","forwardRef","jsx","_jsx","createDialogTitle","BaseTitle","children","props","ref"],"sourceRoot":"../../../src","sources":["dialog/createDialogTitle.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG1C,OAAO,MAAMC,iBAAiB,GAAQC,SAAiC,iBACrEJ,UAAU,CAA6B,CAAC;EAAEK,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACtE,oBACEL,IAAA,CAACE,SAAS;IAACG,GAAG,EAAEA,GAAI;IAAA,GAAMD,KAAK;IAAAD,QAAA,EAC5BA;EAAQ,CACA,CAAC;AAEhB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { forwardRef } from 'react';
|
|
4
|
+
import { useDialog } from './context';
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
export const createDialogTrigger = BaseTrigger => /*#__PURE__*/forwardRef(({
|
|
7
|
+
asChild = false,
|
|
8
|
+
children,
|
|
9
|
+
onPress,
|
|
10
|
+
...props
|
|
11
|
+
}, ref) => {
|
|
12
|
+
const {
|
|
13
|
+
onOpenChange
|
|
14
|
+
} = useDialog();
|
|
15
|
+
const handlePress = e => {
|
|
16
|
+
onPress?.(e);
|
|
17
|
+
onOpenChange(true);
|
|
18
|
+
};
|
|
19
|
+
if (asChild && /*#__PURE__*/React.isValidElement(children)) {
|
|
20
|
+
return /*#__PURE__*/React.cloneElement(children, {
|
|
21
|
+
onPress: handlePress
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return /*#__PURE__*/_jsx(BaseTrigger, {
|
|
25
|
+
ref: ref,
|
|
26
|
+
...props,
|
|
27
|
+
onPress: handlePress,
|
|
28
|
+
children: children
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=createDialogTrigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useDialog","jsx","_jsx","createDialogTrigger","BaseTrigger","asChild","children","onPress","props","ref","onOpenChange","handlePress","e","isValidElement","cloneElement"],"sourceRoot":"../../../src","sources":["dialog/createDialogTrigger.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAEzC,SAASC,SAAS,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEtC,OAAO,MAAMC,mBAAmB,GAAQC,WAAmC,iBACzEL,UAAU,CACR,CAAC;EAAEM,OAAO,GAAG,KAAK;EAAEC,QAAQ;EAAEC,OAAO;EAAE,GAAGC;AAA2B,CAAC,EAAEC,GAAkB,KAAK;EAC7F,MAAM;IAAEC;EAAa,CAAC,GAAGV,SAAS,CAAC,CAAC;EAEpC,MAAMW,WAAW,GAAIC,CAAO,IAAK;IAC/BL,OAAO,GAAGK,CAAC,CAAC;IACZF,YAAY,CAAC,IAAI,CAAC;EACpB,CAAC;EAED,IAAIL,OAAO,iBAAIP,KAAK,CAACe,cAAc,CAACP,QAAQ,CAAC,EAAE;IAC7C,oBAAOR,KAAK,CAACgB,YAAY,CAACR,QAAQ,EAA6B;MAC7DC,OAAO,EAAEI;IACX,CAAC,CAAC;EACJ;EAEA,oBACET,IAAA,CAACE,WAAW;IAACK,GAAG,EAAEA,GAAI;IAAA,GAAMD,KAAK;IAAQD,OAAO,EAAEI,WAAY;IAAAL,QAAA,EAC3DA;EAAQ,CACE,CAAC;AAElB,CACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createDialogRoot } from './createDialogRoot';
|
|
4
|
+
import { createDialogTrigger } from './createDialogTrigger';
|
|
5
|
+
import { createDialogContent } from './createDialogContent';
|
|
6
|
+
import { createDialogHeader } from './createDialogHeader';
|
|
7
|
+
import { createDialogTitle } from './createDialogTitle';
|
|
8
|
+
import { createDialogDescription } from './createDialogDescription';
|
|
9
|
+
import { createDialogBody } from './createDialogBody';
|
|
10
|
+
import { createDialogFooter } from './createDialogFooter';
|
|
11
|
+
import { createDialogClose } from './createDialogClose';
|
|
12
|
+
import { DialogProvider, useDialog } from './context';
|
|
13
|
+
export { DialogProvider, useDialog };
|
|
14
|
+
export function createDialog(BaseComponents) {
|
|
15
|
+
const Root = createDialogRoot(BaseComponents.Root);
|
|
16
|
+
const Trigger = createDialogTrigger(BaseComponents.Trigger);
|
|
17
|
+
const Content = createDialogContent(BaseComponents.Content, BaseComponents.Overlay);
|
|
18
|
+
const Header = createDialogHeader(BaseComponents.Header);
|
|
19
|
+
const Title = createDialogTitle(BaseComponents.Title);
|
|
20
|
+
const Description = createDialogDescription(BaseComponents.Description);
|
|
21
|
+
const Body = createDialogBody(BaseComponents.Body);
|
|
22
|
+
const Footer = createDialogFooter(BaseComponents.Footer);
|
|
23
|
+
const Close = createDialogClose(BaseComponents.Close);
|
|
24
|
+
Root.displayName = 'DialogPrimitive.Root';
|
|
25
|
+
Trigger.displayName = 'DialogPrimitive.Trigger';
|
|
26
|
+
Content.displayName = 'DialogPrimitive.Content';
|
|
27
|
+
Header.displayName = 'DialogPrimitive.Header';
|
|
28
|
+
Title.displayName = 'DialogPrimitive.Title';
|
|
29
|
+
Description.displayName = 'DialogPrimitive.Description';
|
|
30
|
+
Body.displayName = 'DialogPrimitive.Body';
|
|
31
|
+
Footer.displayName = 'DialogPrimitive.Footer';
|
|
32
|
+
Close.displayName = 'DialogPrimitive.Close';
|
|
33
|
+
return Object.assign(Root, {
|
|
34
|
+
Root,
|
|
35
|
+
Trigger,
|
|
36
|
+
Content,
|
|
37
|
+
Header,
|
|
38
|
+
Title,
|
|
39
|
+
Description,
|
|
40
|
+
Body,
|
|
41
|
+
Footer,
|
|
42
|
+
Close
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createDialogRoot","createDialogTrigger","createDialogContent","createDialogHeader","createDialogTitle","createDialogDescription","createDialogBody","createDialogFooter","createDialogClose","DialogProvider","useDialog","createDialog","BaseComponents","Root","Trigger","Content","Overlay","Header","Title","Description","Body","Footer","Close","displayName","Object","assign"],"sourceRoot":"../../../src","sources":["dialog/index.tsx"],"mappings":";;AACA,SAASA,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,uBAAuB,QAAQ,2BAA2B;AACnE,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,cAAc,EAAEC,SAAS,QAAQ,WAAW;AAGrD,SAASD,cAAc,EAAEC,SAAS;AAelC,OAAO,SAASC,YAAYA,CAW1BC,cAWD,EAAE;EACD,MAAMC,IAAI,GAAGb,gBAAgB,CAACY,cAAc,CAACC,IAAI,CAAC;EAClD,MAAMC,OAAO,GAAGb,mBAAmB,CAACW,cAAc,CAACE,OAAO,CAAC;EAC3D,MAAMC,OAAO,GAAGb,mBAAmB,CAACU,cAAc,CAACG,OAAO,EAAEH,cAAc,CAACI,OAAO,CAAC;EACnF,MAAMC,MAAM,GAAGd,kBAAkB,CAACS,cAAc,CAACK,MAAM,CAAC;EACxD,MAAMC,KAAK,GAAGd,iBAAiB,CAACQ,cAAc,CAACM,KAAK,CAAC;EACrD,MAAMC,WAAW,GAAGd,uBAAuB,CAACO,cAAc,CAACO,WAAW,CAAC;EACvE,MAAMC,IAAI,GAAGd,gBAAgB,CAACM,cAAc,CAACQ,IAAI,CAAC;EAClD,MAAMC,MAAM,GAAGd,kBAAkB,CAACK,cAAc,CAACS,MAAM,CAAC;EACxD,MAAMC,KAAK,GAAGd,iBAAiB,CAACI,cAAc,CAACU,KAAK,CAAC;EAErDT,IAAI,CAACU,WAAW,GAAG,sBAAsB;EACzCT,OAAO,CAACS,WAAW,GAAG,yBAAyB;EAC/CR,OAAO,CAACQ,WAAW,GAAG,yBAAyB;EAC/CN,MAAM,CAACM,WAAW,GAAG,wBAAwB;EAC7CL,KAAK,CAACK,WAAW,GAAG,uBAAuB;EAC3CJ,WAAW,CAACI,WAAW,GAAG,6BAA6B;EACvDH,IAAI,CAACG,WAAW,GAAG,sBAAsB;EACzCF,MAAM,CAACE,WAAW,GAAG,wBAAwB;EAC7CD,KAAK,CAACC,WAAW,GAAG,uBAAuB;EAE3C,OAAOC,MAAM,CAACC,MAAM,CAACZ,IAAI,EAAE;IACzBA,IAAI;IACJC,OAAO;IACPC,OAAO;IACPE,MAAM;IACNC,KAAK;IACLC,WAAW;IACXC,IAAI;IACJC,MAAM;IACNC;EACF,CAAC,CAAC;AAWJ","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["dialog/types.ts"],"mappings":"","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OverlayInsetsProvider"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,SAA0BA,qBAAqB,QAAQ,WAAW;AAClE,cAAc,UAAU;AACxB,cAAc,UAAU","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["OverlayInsetsProvider"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,YAAY;AAC1B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,SAA0BA,qBAAqB,QAAQ,WAAW;AAClE,cAAc,UAAU;AACxB,cAAc,UAAU","ignoreList":[]}
|
|
@@ -2,13 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
import { Modal, Platform, Pressable, StyleSheet, View } from 'react-native';
|
|
4
4
|
import Animated from 'react-native-reanimated';
|
|
5
|
+
import { createPortalFn } from '../utils/createPortal';
|
|
5
6
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
-
let createPortalFn;
|
|
7
|
-
if (Platform.OS === 'web') {
|
|
8
|
-
try {
|
|
9
|
-
createPortalFn = require('react-dom').createPortal;
|
|
10
|
-
} catch {}
|
|
11
|
-
}
|
|
12
7
|
/**
|
|
13
8
|
* Cross-platform overlay container.
|
|
14
9
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Modal","Platform","Pressable","StyleSheet","View","Animated","jsx","_jsx","jsxs","_jsxs","
|
|
1
|
+
{"version":3,"names":["Modal","Platform","Pressable","StyleSheet","View","Animated","createPortalFn","jsx","_jsx","jsxs","_jsxs","OverlayContainer","onDismiss","entering","exiting","style","children","OS","position","zIndex","document","body","visible","transparent","animationType","statusBarTranslucent","onRequestClose","absoluteFill","onPress","accessible","importantForAccessibility"],"sourceRoot":"../../../src","sources":["overlay/OverlayContainer.tsx"],"mappings":";;AACA,SACEA,KAAK,EACLC,QAAQ,EACRC,SAAS,EACTC,UAAU,EACVC,IAAI,QAGC,cAAc;AACrB,OAAOC,QAAQ,MAAsC,yBAAyB;AAC9E,SAASC,cAAc,QAAQ,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAUvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAC;EAC/BC,SAAS;EACTC,QAAQ;EACRC,OAAO;EACPC,KAAK;EACLC;AAC+B,CAAC,EAAE;EAClC,IAAIf,QAAQ,CAACgB,EAAE,KAAK,KAAK,IAAIX,cAAc,EAAE;IAC3C,OAAOA,cAAc,cACnBE,IAAA,CAACJ,IAAI;MAACW,KAAK,EAAE,CAAC;QAAEG,QAAQ,EAAE,OAAc;QAAEC,MAAM,EAAE;MAAG,CAAC,EAAEJ,KAAK,CAAE;MAAAC,QAAA,EAAEA;IAAQ,CAAO,CAAC,EACjFI,QAAQ,CAACC,IACX,CAAC;EACH;EAEA,oBACEX,KAAA,CAACV,KAAK;IAACsB,OAAO;IAACC,WAAW;IAACC,aAAa,EAAC,MAAM;IAACC,oBAAoB;IAACC,cAAc,EAAEd,SAAU;IAAAI,QAAA,gBAC7FR,IAAA,CAACN,SAAS;MACRa,KAAK,EAAEZ,UAAU,CAACwB,YAAa;MAC/BC,OAAO,EAAEhB,SAAU;MACnBiB,UAAU,EAAE,KAAM;MAClBC,yBAAyB,EAAC;IAAqB,CAChD,CAAC,eACFtB,IAAA,CAACH,QAAQ,CAACD,IAAI;MACZS,QAAQ,EAAEA,QAAS;MACnBC,OAAO,EAAEA,OAAQ;MACjBC,KAAK,EAAE,CAAC;QAAEG,QAAQ,EAAE;MAAW,CAAC,EAAEH,KAAK,CAAE;MAAAC,QAAA,EAExCA;IAAQ,CACI,CAAC;EAAA,CACX,CAAC;AAEZ","ignoreList":[]}
|
|
@@ -3,5 +3,6 @@
|
|
|
3
3
|
export { OverlayContainer } from './OverlayContainer';
|
|
4
4
|
export { useAnchorPosition } from './useAnchorPosition';
|
|
5
5
|
export { useDismissOverlay } from './useDismissOverlay';
|
|
6
|
+
export { useEscapeKey } from './useEscapeKey';
|
|
6
7
|
export { useOverlayPosition, OverlayInsetsProvider } from './useOverlayPosition';
|
|
7
8
|
//# sourceMappingURL=index.js.map
|