@oxyhq/bloom 0.16.0 → 0.16.2
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/Dialog.js +45 -157
- package/lib/commonjs/dialog/Dialog.js.map +1 -1
- package/lib/commonjs/dialog/Dialog.web.js +64 -198
- package/lib/commonjs/dialog/Dialog.web.js.map +1 -1
- package/lib/commonjs/dialog/DialogBottomSheet.js +216 -0
- package/lib/commonjs/dialog/DialogBottomSheet.js.map +1 -0
- package/lib/commonjs/dialog/DialogContent.js +155 -0
- package/lib/commonjs/dialog/DialogContent.js.map +1 -0
- package/lib/commonjs/dialog/placement.js +12 -1
- package/lib/commonjs/dialog/placement.js.map +1 -1
- package/lib/module/dialog/Dialog.js +48 -160
- package/lib/module/dialog/Dialog.js.map +1 -1
- package/lib/module/dialog/Dialog.web.js +66 -200
- package/lib/module/dialog/Dialog.web.js.map +1 -1
- package/lib/module/dialog/DialogBottomSheet.js +211 -0
- package/lib/module/dialog/DialogBottomSheet.js.map +1 -0
- package/lib/module/dialog/DialogContent.js +148 -0
- package/lib/module/dialog/DialogContent.js.map +1 -0
- package/lib/module/dialog/placement.js +11 -0
- package/lib/module/dialog/placement.js.map +1 -1
- package/lib/typescript/commonjs/dialog/Dialog.d.ts +1 -1
- package/lib/typescript/commonjs/dialog/Dialog.d.ts.map +1 -1
- package/lib/typescript/commonjs/dialog/Dialog.web.d.ts +11 -8
- package/lib/typescript/commonjs/dialog/Dialog.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/dialog/DialogBottomSheet.d.ts +29 -0
- package/lib/typescript/commonjs/dialog/DialogBottomSheet.d.ts.map +1 -0
- package/lib/typescript/commonjs/dialog/DialogContent.d.ts +32 -0
- package/lib/typescript/commonjs/dialog/DialogContent.d.ts.map +1 -0
- package/lib/typescript/commonjs/dialog/placement.d.ts +10 -0
- package/lib/typescript/commonjs/dialog/placement.d.ts.map +1 -1
- package/lib/typescript/commonjs/dialog/types.d.ts +12 -0
- package/lib/typescript/commonjs/dialog/types.d.ts.map +1 -1
- package/lib/typescript/module/dialog/Dialog.d.ts +1 -1
- package/lib/typescript/module/dialog/Dialog.d.ts.map +1 -1
- package/lib/typescript/module/dialog/Dialog.web.d.ts +11 -8
- package/lib/typescript/module/dialog/Dialog.web.d.ts.map +1 -1
- package/lib/typescript/module/dialog/DialogBottomSheet.d.ts +29 -0
- package/lib/typescript/module/dialog/DialogBottomSheet.d.ts.map +1 -0
- package/lib/typescript/module/dialog/DialogContent.d.ts +32 -0
- package/lib/typescript/module/dialog/DialogContent.d.ts.map +1 -0
- package/lib/typescript/module/dialog/placement.d.ts +10 -0
- package/lib/typescript/module/dialog/placement.d.ts.map +1 -1
- package/lib/typescript/module/dialog/types.d.ts +12 -0
- package/lib/typescript/module/dialog/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/BottomSheetGesture.test.tsx +135 -0
- package/src/__tests__/DialogBottomSheet.test.tsx +259 -0
- package/src/dialog/Dialog.tsx +41 -171
- package/src/dialog/Dialog.web.tsx +56 -211
- package/src/dialog/DialogBottomSheet.tsx +250 -0
- package/src/dialog/DialogContent.tsx +157 -0
- package/src/dialog/placement.ts +11 -0
- package/src/dialog/types.ts +12 -0
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DialogBottomSheet = DialogBottomSheet;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _index = require("../bottom-sheet/index.js");
|
|
10
|
+
var _useTheme = require("../theme/use-theme.js");
|
|
11
|
+
var _context = require("./context.js");
|
|
12
|
+
var _DialogContent = require("./DialogContent.js");
|
|
13
|
+
var _placement = require("./placement.js");
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
16
|
+
/**
|
|
17
|
+
* Shared `BottomSheet`-backed surface for the `bottom` placement, used by BOTH
|
|
18
|
+
* `Dialog.tsx` (native) and `Dialog.web.tsx` (web). `BottomSheet` is itself a
|
|
19
|
+
* single cross-platform implementation (react-native-gesture-handler +
|
|
20
|
+
* reanimated, drag-to-dismiss on web and native alike), so routing the bottom
|
|
21
|
+
* placement through here gives ONE code path with drag working everywhere — no
|
|
22
|
+
* duplicated CSS slide-up sheet.
|
|
23
|
+
*
|
|
24
|
+
* This component owns the entire open↔present/dismiss bridge and the Dialog →
|
|
25
|
+
* BottomSheet prop mapping in one place:
|
|
26
|
+
*
|
|
27
|
+
* - `open` (controlled) / `control` (imperative) → `present()` / `dismiss()`
|
|
28
|
+
* - `onClose` → fired once the sheet settles
|
|
29
|
+
* - `maxHeightRatio` → sheet `maxHeight`
|
|
30
|
+
* - `showHandle` / `dismissOnBackdrop` / `label` → forwarded to the surface
|
|
31
|
+
* - `panelStyle` → paints the sheet surface
|
|
32
|
+
* - `containerStyle` → wraps the content subtree
|
|
33
|
+
* so a host's CSS-var theme scope (`vars()`) still applies to descendants
|
|
34
|
+
* - `title` / `description` / `actions` / `children` → declarative body
|
|
35
|
+
*/
|
|
36
|
+
function DialogBottomSheet({
|
|
37
|
+
control,
|
|
38
|
+
open: controlledOpen,
|
|
39
|
+
onClose,
|
|
40
|
+
testID,
|
|
41
|
+
title,
|
|
42
|
+
description,
|
|
43
|
+
actions,
|
|
44
|
+
maxHeightRatio = _placement.DEFAULT_MAX_HEIGHT_RATIO,
|
|
45
|
+
showHandle = true,
|
|
46
|
+
dismissOnBackdrop = true,
|
|
47
|
+
contentPadding = _placement.DEFAULT_DIALOG_CONTENT_PADDING,
|
|
48
|
+
style,
|
|
49
|
+
panelStyle,
|
|
50
|
+
panelClassName,
|
|
51
|
+
containerStyle,
|
|
52
|
+
containerClassName,
|
|
53
|
+
label,
|
|
54
|
+
children
|
|
55
|
+
}) {
|
|
56
|
+
const isControlled = controlledOpen !== undefined;
|
|
57
|
+
const theme = (0, _useTheme.useTheme)();
|
|
58
|
+
const ref = (0, _react.useRef)(null);
|
|
59
|
+
const closeCallbacks = (0, _react.useRef)([]);
|
|
60
|
+
const titleId = (0, _react.useId)();
|
|
61
|
+
const descriptionId = (0, _react.useId)();
|
|
62
|
+
|
|
63
|
+
// Read the latest controlled flag / `onClose` inside stable callbacks without
|
|
64
|
+
// re-binding them (the context + imperative handle depend on `close` staying
|
|
65
|
+
// referentially stable).
|
|
66
|
+
const isControlledRef = (0, _react.useRef)(isControlled);
|
|
67
|
+
isControlledRef.current = isControlled;
|
|
68
|
+
const onCloseRef = (0, _react.useRef)(onClose);
|
|
69
|
+
onCloseRef.current = onClose;
|
|
70
|
+
|
|
71
|
+
// Drain queued close callbacks atomically — capturing the list and resetting
|
|
72
|
+
// it before invocation ensures a callback that synchronously re-opens the
|
|
73
|
+
// dialog (and queues fresh callbacks) does not see the old ones replayed
|
|
74
|
+
// against the new session.
|
|
75
|
+
const callQueuedCallbacks = (0, _react.useCallback)(() => {
|
|
76
|
+
const queued = closeCallbacks.current;
|
|
77
|
+
closeCallbacks.current = [];
|
|
78
|
+
for (const cb of queued) {
|
|
79
|
+
try {
|
|
80
|
+
cb();
|
|
81
|
+
} catch (e) {
|
|
82
|
+
if (typeof console !== 'undefined' && console.error) {
|
|
83
|
+
console.error('Dialog close callback error:', e);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}, []);
|
|
88
|
+
const open = (0, _react.useCallback)(() => {
|
|
89
|
+
ref.current?.present();
|
|
90
|
+
}, []);
|
|
91
|
+
|
|
92
|
+
// A dismissal request (backdrop, pan-to-close, action button). In controlled
|
|
93
|
+
// mode it asks the host to close via `onClose` (the host flips `open`); in
|
|
94
|
+
// imperative mode it dismisses the surface directly. The optional callback
|
|
95
|
+
// runs once the dialog has finished closing.
|
|
96
|
+
const close = (0, _react.useCallback)(cb => {
|
|
97
|
+
if (typeof cb === 'function') {
|
|
98
|
+
closeCallbacks.current.push(cb);
|
|
99
|
+
}
|
|
100
|
+
if (isControlledRef.current) {
|
|
101
|
+
onCloseRef.current?.();
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
ref.current?.dismiss();
|
|
105
|
+
}, []);
|
|
106
|
+
|
|
107
|
+
// Fired when the sheet has finished closing. Drains queued callbacks, then
|
|
108
|
+
// fires `onClose` ONLY in imperative mode — controlled mode already requested
|
|
109
|
+
// the close through `onClose` (the host then flipped `open`), so firing it
|
|
110
|
+
// again here would double-call it.
|
|
111
|
+
const handleDismiss = (0, _react.useCallback)(() => {
|
|
112
|
+
callQueuedCallbacks();
|
|
113
|
+
if (!isControlledRef.current) onCloseRef.current?.();
|
|
114
|
+
}, [callQueuedCallbacks]);
|
|
115
|
+
|
|
116
|
+
// In controlled mode, mirror the `open` prop onto the underlying sheet so both
|
|
117
|
+
// modes share one lifecycle.
|
|
118
|
+
(0, _react.useEffect)(() => {
|
|
119
|
+
if (!isControlled) return;
|
|
120
|
+
if (controlledOpen) {
|
|
121
|
+
ref.current?.present();
|
|
122
|
+
} else {
|
|
123
|
+
ref.current?.dismiss();
|
|
124
|
+
}
|
|
125
|
+
}, [isControlled, controlledOpen]);
|
|
126
|
+
(0, _react.useImperativeHandle)(control?.ref, () => ({
|
|
127
|
+
open,
|
|
128
|
+
close
|
|
129
|
+
}), [open, close]);
|
|
130
|
+
const context = (0, _react.useMemo)(() => ({
|
|
131
|
+
close,
|
|
132
|
+
isWithinDialog: true
|
|
133
|
+
}), [close]);
|
|
134
|
+
|
|
135
|
+
// Backdrop press → dismiss, unless the host disabled it. Returning `false`
|
|
136
|
+
// from `onDismissAttempt` blocks the BottomSheet's own backdrop/pan dismissal,
|
|
137
|
+
// which is how `dismissOnBackdrop: false` maps onto the single sheet API.
|
|
138
|
+
const onDismissAttempt = (0, _react.useCallback)(() => dismissOnBackdrop, [dismissOnBackdrop]);
|
|
139
|
+
|
|
140
|
+
// `panelStyle` paints the sheet surface (e.g. a brand background). It composes
|
|
141
|
+
// AFTER the BottomSheet's internal background so a host palette wins; the
|
|
142
|
+
// shape (radius, max height) is supplied here and remains overridable.
|
|
143
|
+
const sheetStyle = (0, _react.useMemo)(() => {
|
|
144
|
+
const maxHeightPercent = `${Math.round(maxHeightRatio * 100)}%`;
|
|
145
|
+
return [{
|
|
146
|
+
backgroundColor: theme.colors.background,
|
|
147
|
+
borderTopLeftRadius: _placement.PANEL_RADIUS + 4,
|
|
148
|
+
borderTopRightRadius: _placement.PANEL_RADIUS + 4,
|
|
149
|
+
maxHeight: maxHeightPercent
|
|
150
|
+
}, panelStyle];
|
|
151
|
+
}, [theme.colors.background, maxHeightRatio, panelStyle]);
|
|
152
|
+
|
|
153
|
+
// Does this dialog render bloom's declarative chrome (title / description /
|
|
154
|
+
// actions), or is it pure custom `children`? Pure custom children own their
|
|
155
|
+
// own layout and scrolling, so we render them through a NON-scrollable
|
|
156
|
+
// BottomSheet body — otherwise the sheet's internal ScrollView would wrap a
|
|
157
|
+
// child that already contains its own scroller, producing a scroll-in-scroll
|
|
158
|
+
// (double scroll container). Declarative dialogs are short and keep the
|
|
159
|
+
// sheet's default scrollable body so they degrade gracefully on small
|
|
160
|
+
// viewports. This only changes what `DialogBottomSheet` passes to
|
|
161
|
+
// `BottomSheet`; the standalone `BottomSheet` API and its `scrollable` default
|
|
162
|
+
// are unchanged for direct consumers.
|
|
163
|
+
const hasDeclarativeChrome = title !== undefined || description !== undefined || actions !== undefined && actions.length > 0;
|
|
164
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.BottomSheet, {
|
|
165
|
+
ref: ref,
|
|
166
|
+
onDismiss: handleDismiss,
|
|
167
|
+
onDismissAttempt: onDismissAttempt,
|
|
168
|
+
enablePanDownToClose: true,
|
|
169
|
+
showHandle: showHandle
|
|
170
|
+
// Pure custom children own scrolling → opt OUT of BottomSheet's internal
|
|
171
|
+
// ScrollView so there is exactly ONE scroll container (no scroll-in-scroll).
|
|
172
|
+
,
|
|
173
|
+
scrollable: hasDeclarativeChrome
|
|
174
|
+
// Stronger dim than a lone sheet so an underlying sheet's handle/content
|
|
175
|
+
// doesn't bleed through when a Dialog is stacked over one.
|
|
176
|
+
,
|
|
177
|
+
backdropOpacity: _placement.SHEET_BACKDROP_OPACITY + 0.3,
|
|
178
|
+
style: sheetStyle,
|
|
179
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.Context.Provider, {
|
|
180
|
+
value: context,
|
|
181
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
182
|
+
testID: testID,
|
|
183
|
+
accessibilityLabel: label,
|
|
184
|
+
"aria-labelledby": title ? titleId : undefined,
|
|
185
|
+
"aria-describedby": description ? descriptionId : undefined,
|
|
186
|
+
...(containerClassName ? {
|
|
187
|
+
className: containerClassName
|
|
188
|
+
} : {}),
|
|
189
|
+
...(panelClassName ? {
|
|
190
|
+
className: panelClassName
|
|
191
|
+
} : {}),
|
|
192
|
+
style: [{
|
|
193
|
+
padding: contentPadding
|
|
194
|
+
},
|
|
195
|
+
// `containerStyle` carries the host's CSS-var theme scope; it wraps
|
|
196
|
+
// the content subtree so descendants read the scoped palette.
|
|
197
|
+
containerStyle, style, panelStyle],
|
|
198
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogContent.DialogBody, {
|
|
199
|
+
titleId: titleId,
|
|
200
|
+
descriptionId: descriptionId,
|
|
201
|
+
title: title,
|
|
202
|
+
description: description,
|
|
203
|
+
actions: actions,
|
|
204
|
+
children: children
|
|
205
|
+
})
|
|
206
|
+
})
|
|
207
|
+
})
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Props the shared bottom-sheet surface consumes — the `bottom`-relevant subset
|
|
213
|
+
* of `DialogProps`. `width`, `maxWidth`, and `inset` are placement-specific to
|
|
214
|
+
* the side/centered surfaces and intentionally excluded.
|
|
215
|
+
*/
|
|
216
|
+
//# sourceMappingURL=DialogBottomSheet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_index","_useTheme","_context","_DialogContent","_placement","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DialogBottomSheet","control","open","controlledOpen","onClose","testID","title","description","actions","maxHeightRatio","DEFAULT_MAX_HEIGHT_RATIO","showHandle","dismissOnBackdrop","contentPadding","DEFAULT_DIALOG_CONTENT_PADDING","style","panelStyle","panelClassName","containerStyle","containerClassName","label","children","isControlled","undefined","theme","useTheme","ref","useRef","closeCallbacks","titleId","useId","descriptionId","isControlledRef","current","onCloseRef","callQueuedCallbacks","useCallback","queued","cb","console","error","present","close","push","dismiss","handleDismiss","useEffect","useImperativeHandle","context","useMemo","isWithinDialog","onDismissAttempt","sheetStyle","maxHeightPercent","Math","round","backgroundColor","colors","background","borderTopLeftRadius","PANEL_RADIUS","borderTopRightRadius","maxHeight","hasDeclarativeChrome","length","jsx","BottomSheet","onDismiss","enablePanDownToClose","scrollable","backdropOpacity","SHEET_BACKDROP_OPACITY","Context","Provider","value","View","accessibilityLabel","className","padding","DialogBody"],"sourceRoot":"../../../src","sources":["dialog/DialogBottomSheet.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ActionRow = ActionRow;
|
|
7
|
+
exports.DialogBody = DialogBody;
|
|
8
|
+
exports.getActionPalette = getActionPalette;
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _reactNative = require("react-native");
|
|
11
|
+
var _useTheme = require("../theme/use-theme.js");
|
|
12
|
+
var _context = require("./context.js");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
|
+
/**
|
|
16
|
+
* Shared dialog content primitives used by every `<Dialog>` placement on both
|
|
17
|
+
* platforms — the centered panel, the side-sheets, and the `BottomSheet`-backed
|
|
18
|
+
* bottom placement. Keeping them here is the single source of truth for the
|
|
19
|
+
* declarative `title` / `description` / `actions` chrome, so the surfaces never
|
|
20
|
+
* drift in spacing, typography, or action-button behaviour.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Renders the dialog's body: optional declarative title + description, any
|
|
25
|
+
* `children`, then the action row. The `titleId`/`descriptionId` are wired by
|
|
26
|
+
* the caller onto the dialog role element for `aria-labelledby` /
|
|
27
|
+
* `aria-describedby`.
|
|
28
|
+
*/
|
|
29
|
+
function DialogBody({
|
|
30
|
+
titleId,
|
|
31
|
+
descriptionId,
|
|
32
|
+
title,
|
|
33
|
+
description,
|
|
34
|
+
actions,
|
|
35
|
+
children
|
|
36
|
+
}) {
|
|
37
|
+
const theme = (0, _useTheme.useTheme)();
|
|
38
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
39
|
+
children: [title ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
40
|
+
nativeID: titleId,
|
|
41
|
+
style: {
|
|
42
|
+
fontSize: 22,
|
|
43
|
+
fontWeight: '600',
|
|
44
|
+
color: theme.colors.text,
|
|
45
|
+
paddingBottom: description ? 4 : 16,
|
|
46
|
+
lineHeight: 30
|
|
47
|
+
},
|
|
48
|
+
children: title
|
|
49
|
+
}) : null, description ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
50
|
+
nativeID: descriptionId,
|
|
51
|
+
style: {
|
|
52
|
+
fontSize: 16,
|
|
53
|
+
color: theme.colors.textSecondary,
|
|
54
|
+
paddingBottom: 16,
|
|
55
|
+
lineHeight: 22
|
|
56
|
+
},
|
|
57
|
+
children: description
|
|
58
|
+
}) : null, children, actions && actions.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionRow, {
|
|
59
|
+
actions: actions
|
|
60
|
+
}) : null]
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
function ActionRow({
|
|
64
|
+
actions
|
|
65
|
+
}) {
|
|
66
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
67
|
+
style: {
|
|
68
|
+
width: '100%',
|
|
69
|
+
gap: 8,
|
|
70
|
+
justifyContent: 'flex-end'
|
|
71
|
+
},
|
|
72
|
+
children: actions.map((action, idx) => /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionButton, {
|
|
73
|
+
action: action
|
|
74
|
+
}, `${action.label}-${idx}`))
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
function ActionButton({
|
|
78
|
+
action
|
|
79
|
+
}) {
|
|
80
|
+
const {
|
|
81
|
+
close
|
|
82
|
+
} = (0, _context.useDialogContext)();
|
|
83
|
+
const theme = (0, _useTheme.useTheme)();
|
|
84
|
+
const color = action.color ?? 'default';
|
|
85
|
+
const shouldCloseOnPress = action.shouldCloseOnPress ?? true;
|
|
86
|
+
const {
|
|
87
|
+
background,
|
|
88
|
+
foreground
|
|
89
|
+
} = getActionPalette(color, theme.colors);
|
|
90
|
+
const handlePress = (0, _react.useCallback)(e => {
|
|
91
|
+
const onPress = action.onPress;
|
|
92
|
+
if (color === 'cancel') {
|
|
93
|
+
// Cancel always dismisses; consumer's onPress (rare) runs after.
|
|
94
|
+
close(onPress ? () => onPress(e) : undefined);
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (shouldCloseOnPress) {
|
|
98
|
+
close(onPress ? () => onPress(e) : undefined);
|
|
99
|
+
} else {
|
|
100
|
+
onPress?.(e);
|
|
101
|
+
}
|
|
102
|
+
}, [action.onPress, close, color, shouldCloseOnPress]);
|
|
103
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
104
|
+
style: {
|
|
105
|
+
borderRadius: 9999,
|
|
106
|
+
alignItems: 'center',
|
|
107
|
+
justifyContent: 'center',
|
|
108
|
+
backgroundColor: background,
|
|
109
|
+
opacity: action.disabled ? 0.5 : 1,
|
|
110
|
+
paddingVertical: 12,
|
|
111
|
+
paddingHorizontal: 24
|
|
112
|
+
},
|
|
113
|
+
onPress: handlePress,
|
|
114
|
+
disabled: action.disabled,
|
|
115
|
+
activeOpacity: 0.7,
|
|
116
|
+
testID: action.testID,
|
|
117
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
118
|
+
style: {
|
|
119
|
+
fontSize: 16,
|
|
120
|
+
fontWeight: '500',
|
|
121
|
+
color: foreground
|
|
122
|
+
},
|
|
123
|
+
children: action.label
|
|
124
|
+
})
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
function getActionPalette(color, colors) {
|
|
128
|
+
switch (color) {
|
|
129
|
+
case 'destructive':
|
|
130
|
+
return {
|
|
131
|
+
background: colors.negative,
|
|
132
|
+
foreground: colors.negativeForeground
|
|
133
|
+
};
|
|
134
|
+
case 'cancel':
|
|
135
|
+
return {
|
|
136
|
+
background: colors.contrast50,
|
|
137
|
+
foreground: colors.text
|
|
138
|
+
};
|
|
139
|
+
case 'default':
|
|
140
|
+
return {
|
|
141
|
+
background: colors.primary,
|
|
142
|
+
foreground: colors.primaryForeground
|
|
143
|
+
};
|
|
144
|
+
/* c8 ignore next 3 -- TS exhaustiveness check guards this branch */
|
|
145
|
+
default:
|
|
146
|
+
{
|
|
147
|
+
const _exhaustive = color;
|
|
148
|
+
return {
|
|
149
|
+
background: colors.primary,
|
|
150
|
+
foreground: colors.primaryForeground
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=DialogContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useTheme","_context","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DialogBody","titleId","descriptionId","title","description","actions","children","theme","useTheme","jsxs","Fragment","jsx","Text","nativeID","style","fontSize","fontWeight","color","colors","text","paddingBottom","lineHeight","textSecondary","length","ActionRow","View","width","gap","justifyContent","map","action","idx","ActionButton","label","close","useDialogContext","shouldCloseOnPress","background","foreground","getActionPalette","handlePress","useCallback","onPress","undefined","TouchableOpacity","borderRadius","alignItems","backgroundColor","opacity","disabled","paddingVertical","paddingHorizontal","activeOpacity","testID","negative","negativeForeground","contrast50","primary","primaryForeground","_exhaustive"],"sourceRoot":"../../../src","sources":["dialog/DialogContent.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.SIDE_SHEET_MIN_GUTTER = exports.SHEET_BACKDROP_OPACITY = exports.PANEL_RADIUS = exports.HANDLE_WIDTH = exports.HANDLE_RADIUS = exports.HANDLE_HEIGHT = exports.EASE_OUT = exports.DIALOG_SHEET_BACKDROP_TESTID = exports.DEFAULT_SIDE_WIDTH = exports.DEFAULT_MAX_HEIGHT_RATIO = exports.DEFAULT_CENTER_MAX_WIDTH = exports.CENTER_FADE_OUT_DURATION = exports.BREAKPOINT_XL = exports.BREAKPOINT_SM = exports.BREAKPOINT_MD = exports.BREAKPOINT_LG = exports.ANIMATION_DURATION = void 0;
|
|
6
|
+
exports.SIDE_SHEET_MIN_GUTTER = exports.SHEET_BACKDROP_OPACITY = exports.PANEL_RADIUS = exports.HANDLE_WIDTH = exports.HANDLE_RADIUS = exports.HANDLE_HEIGHT = exports.EASE_OUT = exports.DIALOG_SHEET_BACKDROP_TESTID = exports.DEFAULT_SIDE_WIDTH = exports.DEFAULT_MAX_HEIGHT_RATIO = exports.DEFAULT_DIALOG_CONTENT_PADDING = exports.DEFAULT_CENTER_MAX_WIDTH = exports.CENTER_FADE_OUT_DURATION = exports.BREAKPOINT_XL = exports.BREAKPOINT_SM = exports.BREAKPOINT_MD = exports.BREAKPOINT_LG = exports.ANIMATION_DURATION = void 0;
|
|
7
7
|
exports.useResolvedPlacement = useResolvedPlacement;
|
|
8
8
|
var _react = require("react");
|
|
9
9
|
var _reactNative = require("react-native");
|
|
@@ -51,6 +51,17 @@ const DEFAULT_MAX_HEIGHT_RATIO = exports.DEFAULT_MAX_HEIGHT_RATIO = 0.9;
|
|
|
51
51
|
/** Corner radius shared by the side-sheet panel and the bottom-sheet top. */
|
|
52
52
|
const PANEL_RADIUS = exports.PANEL_RADIUS = 20;
|
|
53
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Default inner padding (px) of the dialog content container, applied uniformly
|
|
56
|
+
* across every placement (centered panel, side-sheet body, bottom-sheet body)
|
|
57
|
+
* so the chrome reads identically regardless of which surface resolves. This is
|
|
58
|
+
* the legacy value — omitting the `contentPadding` prop keeps 20px everywhere,
|
|
59
|
+
* byte-for-byte unchanged. A host that owns its own insets (e.g. custom
|
|
60
|
+
* `children` that already manage padding) can override it via
|
|
61
|
+
* `Dialog`'s `contentPadding` prop (e.g. `contentPadding={0}`).
|
|
62
|
+
*/
|
|
63
|
+
const DEFAULT_DIALOG_CONTENT_PADDING = exports.DEFAULT_DIALOG_CONTENT_PADDING = 20;
|
|
64
|
+
|
|
54
65
|
/** Open/close transition duration (ms). ~280ms ease-out reads smooth. */
|
|
55
66
|
const ANIMATION_DURATION = exports.ANIMATION_DURATION = 280;
|
|
56
67
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","BREAKPOINT_SM","exports","BREAKPOINT_MD","BREAKPOINT_LG","BREAKPOINT_XL","RESPONSIVE_KEYS","DEFAULT_SIDE_WIDTH","DEFAULT_CENTER_MAX_WIDTH","DEFAULT_MAX_HEIGHT_RATIO","PANEL_RADIUS","ANIMATION_DURATION","CENTER_FADE_OUT_DURATION","EASE_OUT","SHEET_BACKDROP_OPACITY","DIALOG_SHEET_BACKDROP_TESTID","HANDLE_WIDTH","HANDLE_HEIGHT","HANDLE_RADIUS","SIDE_SHEET_MIN_GUTTER","useResolvedPlacement","placement","width","useWindowDimensions","useMemo","undefined","key","minWidth","value","base"],"sourceRoot":"../../../src","sources":["dialog/placement.ts"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA;AACA;AACA;AACA;AACA;AACO,MAAME,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,GAAG;AACzB,MAAME,aAAa,GAAAD,OAAA,CAAAC,aAAA,GAAG,GAAG;AACzB,MAAMC,aAAa,GAAAF,OAAA,CAAAE,aAAA,GAAG,IAAI;AAC1B,MAAMC,aAAa,GAAAH,OAAA,CAAAG,aAAA,GAAG,IAAI;;AAEjC;AACA,MAAMC,eAAe,GAAG,CACtB,CAAC,IAAI,EAAED,aAAa,CAAC,EACrB,CAAC,IAAI,EAAED,aAAa,CAAC,EACrB,CAAC,IAAI,EAAED,aAAa,CAAC,EACrB,CAAC,IAAI,EAAEF,aAAa,CAAC,CACb;;AAEV;AACO,MAAMM,kBAAkB,GAAAL,OAAA,CAAAK,kBAAA,GAAG,GAAG;;AAErC;AACO,MAAMC,wBAAwB,GAAAN,OAAA,CAAAM,wBAAA,GAAG,GAAG;;AAE3C;AACO,MAAMC,wBAAwB,GAAAP,OAAA,CAAAO,wBAAA,GAAG,GAAG;;AAE3C;AACO,MAAMC,YAAY,GAAAR,OAAA,CAAAQ,YAAA,GAAG,EAAE;;AAE9B;AACO,MAAMC,
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","BREAKPOINT_SM","exports","BREAKPOINT_MD","BREAKPOINT_LG","BREAKPOINT_XL","RESPONSIVE_KEYS","DEFAULT_SIDE_WIDTH","DEFAULT_CENTER_MAX_WIDTH","DEFAULT_MAX_HEIGHT_RATIO","PANEL_RADIUS","DEFAULT_DIALOG_CONTENT_PADDING","ANIMATION_DURATION","CENTER_FADE_OUT_DURATION","EASE_OUT","SHEET_BACKDROP_OPACITY","DIALOG_SHEET_BACKDROP_TESTID","HANDLE_WIDTH","HANDLE_HEIGHT","HANDLE_RADIUS","SIDE_SHEET_MIN_GUTTER","useResolvedPlacement","placement","width","useWindowDimensions","useMemo","undefined","key","minWidth","value","base"],"sourceRoot":"../../../src","sources":["dialog/placement.ts"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA;AACA;AACA;AACA;AACA;AACO,MAAME,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,GAAG;AACzB,MAAME,aAAa,GAAAD,OAAA,CAAAC,aAAA,GAAG,GAAG;AACzB,MAAMC,aAAa,GAAAF,OAAA,CAAAE,aAAA,GAAG,IAAI;AAC1B,MAAMC,aAAa,GAAAH,OAAA,CAAAG,aAAA,GAAG,IAAI;;AAEjC;AACA,MAAMC,eAAe,GAAG,CACtB,CAAC,IAAI,EAAED,aAAa,CAAC,EACrB,CAAC,IAAI,EAAED,aAAa,CAAC,EACrB,CAAC,IAAI,EAAED,aAAa,CAAC,EACrB,CAAC,IAAI,EAAEF,aAAa,CAAC,CACb;;AAEV;AACO,MAAMM,kBAAkB,GAAAL,OAAA,CAAAK,kBAAA,GAAG,GAAG;;AAErC;AACO,MAAMC,wBAAwB,GAAAN,OAAA,CAAAM,wBAAA,GAAG,GAAG;;AAE3C;AACO,MAAMC,wBAAwB,GAAAP,OAAA,CAAAO,wBAAA,GAAG,GAAG;;AAE3C;AACO,MAAMC,YAAY,GAAAR,OAAA,CAAAQ,YAAA,GAAG,EAAE;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,8BAA8B,GAAAT,OAAA,CAAAS,8BAAA,GAAG,EAAE;;AAEhD;AACO,MAAMC,kBAAkB,GAAAV,OAAA,CAAAU,kBAAA,GAAG,GAAG;;AAErC;AACO,MAAMC,wBAAwB,GAAAX,OAAA,CAAAW,wBAAA,GAAG,GAAG;;AAE3C;AACO,MAAMC,QAAQ,GAAAZ,OAAA,CAAAY,QAAA,GAAG,gCAAgC;;AAExD;AACO,MAAMC,sBAAsB,GAAAb,OAAA,CAAAa,sBAAA,GAAG,GAAG;;AAEzC;AACO,MAAMC,4BAA4B,GAAAd,OAAA,CAAAc,4BAAA,GAAG,6BAA6B;;AAEzE;AACO,MAAMC,YAAY,GAAAf,OAAA,CAAAe,YAAA,GAAG,EAAE;AACvB,MAAMC,aAAa,GAAAhB,OAAA,CAAAgB,aAAA,GAAG,CAAC;AACvB,MAAMC,aAAa,GAAAjB,OAAA,CAAAiB,aAAA,GAAG,CAAC;;AAE9B;AACA;AACA;AACA;AACO,MAAMC,qBAAqB,GAAAlB,OAAA,CAAAkB,qBAAA,GAAG,EAAE;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,oBAAoBA,CAClCC,SAAgD,EAC/B;EACjB,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,gCAAmB,EAAC,CAAC;EAEvC,OAAO,IAAAC,cAAO,EAAkB,MAAM;IACpC,IAAIH,SAAS,KAAKI,SAAS,EAAE,OAAO,QAAQ;IAC5C,IAAI,OAAOJ,SAAS,KAAK,QAAQ,EAAE,OAAOA,SAAS;IACnD,KAAK,MAAM,CAACK,GAAG,EAAEC,QAAQ,CAAC,IAAItB,eAAe,EAAE;MAC7C,IAAIiB,KAAK,IAAIK,QAAQ,EAAE;QACrB,MAAMC,KAAK,GAAGP,SAAS,CAACK,GAAG,CAAC;QAC5B,IAAIE,KAAK,KAAKH,SAAS,EAAE,OAAOG,KAAK;MACvC;IACF;IACA,OAAOP,SAAS,CAACQ,IAAI;EACvB,CAAC,EAAE,CAACR,SAAS,EAAEC,KAAK,CAAC,CAAC;AACxB","ignoreList":[]}
|