@oxyhq/bloom 0.14.0 → 0.16.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.
Files changed (212) hide show
  1. package/lib/commonjs/alert-dialog/AlertDialog.js +35 -27
  2. package/lib/commonjs/alert-dialog/AlertDialog.js.map +1 -1
  3. package/lib/commonjs/alert-dialog/index.js +1 -1
  4. package/lib/commonjs/alert-dialog/index.js.map +1 -1
  5. package/lib/commonjs/alert-dialog/index.web.js +1 -1
  6. package/lib/commonjs/alert-dialog/index.web.js.map +1 -1
  7. package/lib/commonjs/command/Command.js +27 -16
  8. package/lib/commonjs/command/Command.js.map +1 -1
  9. package/lib/commonjs/command/index.js +1 -1
  10. package/lib/commonjs/command/index.js.map +1 -1
  11. package/lib/commonjs/command/index.web.js +1 -1
  12. package/lib/commonjs/command/index.web.js.map +1 -1
  13. package/lib/commonjs/dialog/Dialog.js +336 -43
  14. package/lib/commonjs/dialog/Dialog.js.map +1 -1
  15. package/lib/commonjs/dialog/Dialog.web.js +420 -66
  16. package/lib/commonjs/dialog/Dialog.web.js.map +1 -1
  17. package/lib/commonjs/dialog/index.js +2 -9
  18. package/lib/commonjs/dialog/index.js.map +1 -1
  19. package/lib/commonjs/dialog/index.web.js +2 -15
  20. package/lib/commonjs/dialog/index.web.js.map +1 -1
  21. package/lib/commonjs/dialog/placement.js +104 -0
  22. package/lib/commonjs/dialog/placement.js.map +1 -0
  23. package/lib/commonjs/index.js +7 -29
  24. package/lib/commonjs/index.js.map +1 -1
  25. package/lib/commonjs/index.web.js +13 -35
  26. package/lib/commonjs/index.web.js.map +1 -1
  27. package/lib/module/alert-dialog/AlertDialog.js +35 -27
  28. package/lib/module/alert-dialog/AlertDialog.js.map +1 -1
  29. package/lib/module/alert-dialog/index.js +2 -2
  30. package/lib/module/alert-dialog/index.js.map +1 -1
  31. package/lib/module/alert-dialog/index.web.js +2 -2
  32. package/lib/module/alert-dialog/index.web.js.map +1 -1
  33. package/lib/module/command/Command.js +27 -16
  34. package/lib/module/command/Command.js.map +1 -1
  35. package/lib/module/command/index.js +2 -2
  36. package/lib/module/command/index.js.map +1 -1
  37. package/lib/module/command/index.web.js +2 -2
  38. package/lib/module/command/index.web.js.map +1 -1
  39. package/lib/module/dialog/Dialog.js +335 -46
  40. package/lib/module/dialog/Dialog.js.map +1 -1
  41. package/lib/module/dialog/Dialog.web.js +418 -68
  42. package/lib/module/dialog/Dialog.web.js.map +1 -1
  43. package/lib/module/dialog/index.js +1 -2
  44. package/lib/module/dialog/index.js.map +1 -1
  45. package/lib/module/dialog/index.web.js +1 -2
  46. package/lib/module/dialog/index.web.js.map +1 -1
  47. package/lib/module/dialog/placement.js +100 -0
  48. package/lib/module/dialog/placement.js.map +1 -0
  49. package/lib/module/index.js +1 -3
  50. package/lib/module/index.js.map +1 -1
  51. package/lib/module/index.web.js +1 -3
  52. package/lib/module/index.web.js.map +1 -1
  53. package/lib/typescript/commonjs/alert-dialog/AlertDialog.d.ts +13 -12
  54. package/lib/typescript/commonjs/alert-dialog/AlertDialog.d.ts.map +1 -1
  55. package/lib/typescript/commonjs/alert-dialog/index.d.ts.map +1 -1
  56. package/lib/typescript/commonjs/alert-dialog/index.web.d.ts.map +1 -1
  57. package/lib/typescript/commonjs/command/Command.d.ts +8 -8
  58. package/lib/typescript/commonjs/command/Command.d.ts.map +1 -1
  59. package/lib/typescript/commonjs/command/index.d.ts.map +1 -1
  60. package/lib/typescript/commonjs/command/index.web.d.ts.map +1 -1
  61. package/lib/typescript/commonjs/dialog/Dialog.d.ts +17 -15
  62. package/lib/typescript/commonjs/dialog/Dialog.d.ts.map +1 -1
  63. package/lib/typescript/commonjs/dialog/Dialog.web.d.ts +18 -5
  64. package/lib/typescript/commonjs/dialog/Dialog.web.d.ts.map +1 -1
  65. package/lib/typescript/commonjs/dialog/index.d.ts +2 -4
  66. package/lib/typescript/commonjs/dialog/index.d.ts.map +1 -1
  67. package/lib/typescript/commonjs/dialog/index.web.d.ts +2 -4
  68. package/lib/typescript/commonjs/dialog/index.web.d.ts.map +1 -1
  69. package/lib/typescript/commonjs/dialog/placement.d.ts +71 -0
  70. package/lib/typescript/commonjs/dialog/placement.d.ts.map +1 -0
  71. package/lib/typescript/commonjs/dialog/types.d.ts +66 -3
  72. package/lib/typescript/commonjs/dialog/types.d.ts.map +1 -1
  73. package/lib/typescript/commonjs/index.d.ts +2 -4
  74. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  75. package/lib/typescript/commonjs/index.web.d.ts +2 -4
  76. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  77. package/lib/typescript/module/alert-dialog/AlertDialog.d.ts +13 -12
  78. package/lib/typescript/module/alert-dialog/AlertDialog.d.ts.map +1 -1
  79. package/lib/typescript/module/alert-dialog/index.d.ts.map +1 -1
  80. package/lib/typescript/module/alert-dialog/index.web.d.ts.map +1 -1
  81. package/lib/typescript/module/command/Command.d.ts +8 -8
  82. package/lib/typescript/module/command/Command.d.ts.map +1 -1
  83. package/lib/typescript/module/command/index.d.ts.map +1 -1
  84. package/lib/typescript/module/command/index.web.d.ts.map +1 -1
  85. package/lib/typescript/module/dialog/Dialog.d.ts +17 -15
  86. package/lib/typescript/module/dialog/Dialog.d.ts.map +1 -1
  87. package/lib/typescript/module/dialog/Dialog.web.d.ts +18 -5
  88. package/lib/typescript/module/dialog/Dialog.web.d.ts.map +1 -1
  89. package/lib/typescript/module/dialog/index.d.ts +2 -4
  90. package/lib/typescript/module/dialog/index.d.ts.map +1 -1
  91. package/lib/typescript/module/dialog/index.web.d.ts +2 -4
  92. package/lib/typescript/module/dialog/index.web.d.ts.map +1 -1
  93. package/lib/typescript/module/dialog/placement.d.ts +71 -0
  94. package/lib/typescript/module/dialog/placement.d.ts.map +1 -0
  95. package/lib/typescript/module/dialog/types.d.ts +66 -3
  96. package/lib/typescript/module/dialog/types.d.ts.map +1 -1
  97. package/lib/typescript/module/index.d.ts +2 -4
  98. package/lib/typescript/module/index.d.ts.map +1 -1
  99. package/lib/typescript/module/index.web.d.ts +2 -4
  100. package/lib/typescript/module/index.web.d.ts.map +1 -1
  101. package/package.json +1 -18
  102. package/src/__tests__/AlertDialog.test.tsx +122 -0
  103. package/src/__tests__/Command.test.tsx +107 -0
  104. package/src/__tests__/DialogPlacement.test.tsx +144 -0
  105. package/src/alert-dialog/AlertDialog.tsx +46 -36
  106. package/src/alert-dialog/index.ts +2 -2
  107. package/src/alert-dialog/index.web.ts +2 -2
  108. package/src/command/Command.tsx +30 -19
  109. package/src/command/index.ts +2 -2
  110. package/src/command/index.web.ts +2 -2
  111. package/src/dialog/Dialog.tsx +406 -50
  112. package/src/dialog/Dialog.web.tsx +496 -78
  113. package/src/dialog/index.ts +4 -3
  114. package/src/dialog/index.web.ts +4 -7
  115. package/src/dialog/placement.ts +113 -0
  116. package/src/dialog/types.ts +69 -3
  117. package/src/index.ts +4 -11
  118. package/src/index.web.ts +4 -11
  119. package/lib/commonjs/dialog/CenteredDialog.js +0 -250
  120. package/lib/commonjs/dialog/CenteredDialog.js.map +0 -1
  121. package/lib/commonjs/dialog/CenteredDialog.web.js +0 -328
  122. package/lib/commonjs/dialog/CenteredDialog.web.js.map +0 -1
  123. package/lib/commonjs/dialog/centered-dialog-tokens.js +0 -62
  124. package/lib/commonjs/dialog/centered-dialog-tokens.js.map +0 -1
  125. package/lib/commonjs/dialog/centered-dialog-types.js +0 -6
  126. package/lib/commonjs/dialog/centered-dialog-types.js.map +0 -1
  127. package/lib/commonjs/responsive-sheet/ResponsiveSheet.js +0 -300
  128. package/lib/commonjs/responsive-sheet/ResponsiveSheet.js.map +0 -1
  129. package/lib/commonjs/responsive-sheet/ResponsiveSheet.native.js +0 -226
  130. package/lib/commonjs/responsive-sheet/ResponsiveSheet.native.js.map +0 -1
  131. package/lib/commonjs/responsive-sheet/const.js +0 -60
  132. package/lib/commonjs/responsive-sheet/const.js.map +0 -1
  133. package/lib/commonjs/responsive-sheet/index.js +0 -19
  134. package/lib/commonjs/responsive-sheet/index.js.map +0 -1
  135. package/lib/commonjs/responsive-sheet/index.web.js +0 -19
  136. package/lib/commonjs/responsive-sheet/index.web.js.map +0 -1
  137. package/lib/commonjs/responsive-sheet/types.js +0 -6
  138. package/lib/commonjs/responsive-sheet/types.js.map +0 -1
  139. package/lib/module/dialog/CenteredDialog.js +0 -244
  140. package/lib/module/dialog/CenteredDialog.js.map +0 -1
  141. package/lib/module/dialog/CenteredDialog.web.js +0 -322
  142. package/lib/module/dialog/CenteredDialog.web.js.map +0 -1
  143. package/lib/module/dialog/centered-dialog-tokens.js +0 -58
  144. package/lib/module/dialog/centered-dialog-tokens.js.map +0 -1
  145. package/lib/module/dialog/centered-dialog-types.js +0 -4
  146. package/lib/module/dialog/centered-dialog-types.js.map +0 -1
  147. package/lib/module/responsive-sheet/ResponsiveSheet.js +0 -293
  148. package/lib/module/responsive-sheet/ResponsiveSheet.js.map +0 -1
  149. package/lib/module/responsive-sheet/ResponsiveSheet.native.js +0 -219
  150. package/lib/module/responsive-sheet/ResponsiveSheet.native.js.map +0 -1
  151. package/lib/module/responsive-sheet/const.js +0 -56
  152. package/lib/module/responsive-sheet/const.js.map +0 -1
  153. package/lib/module/responsive-sheet/index.js +0 -4
  154. package/lib/module/responsive-sheet/index.js.map +0 -1
  155. package/lib/module/responsive-sheet/index.web.js +0 -14
  156. package/lib/module/responsive-sheet/index.web.js.map +0 -1
  157. package/lib/module/responsive-sheet/types.js +0 -4
  158. package/lib/module/responsive-sheet/types.js.map +0 -1
  159. package/lib/typescript/commonjs/dialog/CenteredDialog.d.ts +0 -20
  160. package/lib/typescript/commonjs/dialog/CenteredDialog.d.ts.map +0 -1
  161. package/lib/typescript/commonjs/dialog/CenteredDialog.web.d.ts +0 -29
  162. package/lib/typescript/commonjs/dialog/CenteredDialog.web.d.ts.map +0 -1
  163. package/lib/typescript/commonjs/dialog/centered-dialog-tokens.d.ts +0 -47
  164. package/lib/typescript/commonjs/dialog/centered-dialog-tokens.d.ts.map +0 -1
  165. package/lib/typescript/commonjs/dialog/centered-dialog-types.d.ts +0 -70
  166. package/lib/typescript/commonjs/dialog/centered-dialog-types.d.ts.map +0 -1
  167. package/lib/typescript/commonjs/responsive-sheet/ResponsiveSheet.d.ts +0 -26
  168. package/lib/typescript/commonjs/responsive-sheet/ResponsiveSheet.d.ts.map +0 -1
  169. package/lib/typescript/commonjs/responsive-sheet/ResponsiveSheet.native.d.ts +0 -20
  170. package/lib/typescript/commonjs/responsive-sheet/ResponsiveSheet.native.d.ts.map +0 -1
  171. package/lib/typescript/commonjs/responsive-sheet/const.d.ts +0 -43
  172. package/lib/typescript/commonjs/responsive-sheet/const.d.ts.map +0 -1
  173. package/lib/typescript/commonjs/responsive-sheet/index.d.ts +0 -3
  174. package/lib/typescript/commonjs/responsive-sheet/index.d.ts.map +0 -1
  175. package/lib/typescript/commonjs/responsive-sheet/index.web.d.ts +0 -3
  176. package/lib/typescript/commonjs/responsive-sheet/index.web.d.ts.map +0 -1
  177. package/lib/typescript/commonjs/responsive-sheet/types.d.ts +0 -55
  178. package/lib/typescript/commonjs/responsive-sheet/types.d.ts.map +0 -1
  179. package/lib/typescript/module/dialog/CenteredDialog.d.ts +0 -20
  180. package/lib/typescript/module/dialog/CenteredDialog.d.ts.map +0 -1
  181. package/lib/typescript/module/dialog/CenteredDialog.web.d.ts +0 -29
  182. package/lib/typescript/module/dialog/CenteredDialog.web.d.ts.map +0 -1
  183. package/lib/typescript/module/dialog/centered-dialog-tokens.d.ts +0 -47
  184. package/lib/typescript/module/dialog/centered-dialog-tokens.d.ts.map +0 -1
  185. package/lib/typescript/module/dialog/centered-dialog-types.d.ts +0 -70
  186. package/lib/typescript/module/dialog/centered-dialog-types.d.ts.map +0 -1
  187. package/lib/typescript/module/responsive-sheet/ResponsiveSheet.d.ts +0 -26
  188. package/lib/typescript/module/responsive-sheet/ResponsiveSheet.d.ts.map +0 -1
  189. package/lib/typescript/module/responsive-sheet/ResponsiveSheet.native.d.ts +0 -20
  190. package/lib/typescript/module/responsive-sheet/ResponsiveSheet.native.d.ts.map +0 -1
  191. package/lib/typescript/module/responsive-sheet/const.d.ts +0 -43
  192. package/lib/typescript/module/responsive-sheet/const.d.ts.map +0 -1
  193. package/lib/typescript/module/responsive-sheet/index.d.ts +0 -3
  194. package/lib/typescript/module/responsive-sheet/index.d.ts.map +0 -1
  195. package/lib/typescript/module/responsive-sheet/index.web.d.ts +0 -3
  196. package/lib/typescript/module/responsive-sheet/index.web.d.ts.map +0 -1
  197. package/lib/typescript/module/responsive-sheet/types.d.ts +0 -55
  198. package/lib/typescript/module/responsive-sheet/types.d.ts.map +0 -1
  199. package/src/__tests__/CenteredDialog.test.tsx +0 -108
  200. package/src/__tests__/ResponsiveSheet.test.tsx +0 -104
  201. package/src/dialog/CenteredDialog.stories.tsx +0 -125
  202. package/src/dialog/CenteredDialog.tsx +0 -303
  203. package/src/dialog/CenteredDialog.web.tsx +0 -372
  204. package/src/dialog/centered-dialog-tokens.ts +0 -68
  205. package/src/dialog/centered-dialog-types.ts +0 -70
  206. package/src/responsive-sheet/ResponsiveSheet.native.tsx +0 -257
  207. package/src/responsive-sheet/ResponsiveSheet.stories.tsx +0 -54
  208. package/src/responsive-sheet/ResponsiveSheet.tsx +0 -327
  209. package/src/responsive-sheet/const.ts +0 -53
  210. package/src/responsive-sheet/index.ts +0 -6
  211. package/src/responsive-sheet/index.web.ts +0 -16
  212. package/src/responsive-sheet/types.ts +0 -57
@@ -1,49 +1,80 @@
1
1
  "use strict";
2
2
 
3
- import React, { useCallback, useEffect, useId, useImperativeHandle, useMemo, useRef } from 'react';
4
- import { Text, TouchableOpacity, View } from 'react-native';
3
+ import React, { useCallback, useEffect, useId, useImperativeHandle, useMemo, useRef, useState } from 'react';
4
+ import { Pressable, StyleSheet, Text, TouchableOpacity, useWindowDimensions, View } from 'react-native';
5
+ import Animated, { cancelAnimation, Easing, runOnJS, useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
5
6
  import { BottomSheet } from "../bottom-sheet/index.js";
7
+ import { Z_INDEX } from "../styles/z-index.js";
6
8
  import { useTheme } from "../theme/use-theme.js";
7
9
  import { Context, useDialogContext, useDialogControl } from "./context.js";
8
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ import { ANIMATION_DURATION, DEFAULT_MAX_HEIGHT_RATIO, DEFAULT_SIDE_WIDTH, DIALOG_SHEET_BACKDROP_TESTID, PANEL_RADIUS, SHEET_BACKDROP_OPACITY, SIDE_SHEET_MIN_GUTTER, useResolvedPlacement } from "./placement.js";
11
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
12
+ export { DIALOG_SHEET_BACKDROP_TESTID };
13
+
9
14
  /**
10
15
  * Native variant of `<Dialog>`.
11
16
  *
12
- * Uses bloom's own `BottomSheet` in `detached` mode as the underlying
13
- * surface a floating, dynamically-sized, content-hugging card that
14
- * gracefully degrades from sheet (phone) to centered card (tablet, via the
15
- * 500px max-width cap).
17
+ * Open/close is driven by EITHER the imperative `control` (legacy) OR the
18
+ * controlled `open` prop. When `open` is provided it wins.
16
19
  *
17
- * The component accepts three rendering modes simultaneously:
20
+ * `placement` selects the surface:
18
21
  *
19
- * 1. Declarative `title`, `description`, `actions`. Bloom renders a
20
- * standard confirm/destructive/cancel layout.
21
- * 2. Custom children caller passes JSX, bloom renders the chrome (title
22
- * + close behaviour) and the children fill the body.
23
- * 3. Pure childrenno `title`/`description`/`actions`; caller owns
24
- * every pixel.
22
+ * - `'center'` (default) / `'bottom'` bloom's `BottomSheet` (`detached`
23
+ * for center: a floating, content-hugging card that degrades from sheet to
24
+ * centered card via the 500px cap; flush for bottom: a full-width sheet
25
+ * with a drag handle). Default behavior is unchanged.
26
+ * - `'left'` / `'right'` an anchored side-sheet/drawer driven by
27
+ * reanimated. Exit animations are safe on native.
28
+ *
29
+ * The component accepts three rendering modes simultaneously:
25
30
  *
26
- * All three share the same dismissal semantics: tapping the backdrop, the
27
- * drag handle, swiping down, or `control.close()` runs the queued close
28
- * callbacks once the sheet's exit animation has settled.
31
+ * 1. Declarative `title`, `description`, `actions`.
32
+ * 2. Custom children caller passes JSX, bloom renders the chrome.
33
+ * 3. Pure children no `title`/`description`/`actions`.
29
34
  */
30
35
  export function Dialog({
31
36
  control,
37
+ open: controlledOpen,
32
38
  onClose,
33
39
  testID,
34
40
  title,
35
41
  description,
36
42
  actions,
43
+ placement,
44
+ width = DEFAULT_SIDE_WIDTH,
45
+ maxHeightRatio = DEFAULT_MAX_HEIGHT_RATIO,
46
+ inset,
47
+ showHandle = true,
48
+ dismissOnBackdrop = true,
37
49
  style,
50
+ panelStyle,
51
+ panelClassName,
52
+ containerStyle,
53
+ containerClassName,
38
54
  label,
39
55
  children
40
56
  }) {
57
+ const isControlled = controlledOpen !== undefined;
58
+ const resolvedPlacement = useResolvedPlacement(placement);
59
+ const isSide = resolvedPlacement === 'left' || resolvedPlacement === 'right';
60
+
61
+ // Imperative open state for the side placement (the BottomSheet path owns its
62
+ // own visibility via its ref instead).
63
+ const [sideOpen, setSideOpen] = useState(false);
41
64
  const theme = useTheme();
42
65
  const ref = useRef(null);
43
66
  const closeCallbacks = useRef([]);
44
67
  const titleId = useId();
45
68
  const descriptionId = useId();
46
69
 
70
+ // Read the latest controlled flag / `onClose` inside stable callbacks
71
+ // without re-binding them (the context + imperative handle depend on `close`
72
+ // staying referentially stable).
73
+ const isControlledRef = useRef(isControlled);
74
+ isControlledRef.current = isControlled;
75
+ const onCloseRef = useRef(onClose);
76
+ onCloseRef.current = onClose;
77
+
47
78
  // Drain queued close callbacks atomically — capturing the list and
48
79
  // resetting it before invocation ensures a callback that synchronously
49
80
  // re-opens the dialog (and queues fresh callbacks) does not see the old
@@ -62,19 +93,49 @@ export function Dialog({
62
93
  }
63
94
  }, []);
64
95
  const open = useCallback(() => {
96
+ setSideOpen(true);
65
97
  ref.current?.present();
66
98
  }, []);
99
+
100
+ // A dismissal request (backdrop, pan-to-close, action button). In controlled
101
+ // mode it asks the host to close via `onClose` (the host flips `open`); in
102
+ // imperative mode it dismisses the surface directly. The optional callback
103
+ // runs once the dialog has finished closing.
67
104
  const close = useCallback(cb => {
68
105
  if (typeof cb === 'function') {
69
106
  closeCallbacks.current.push(cb);
70
107
  }
108
+ if (isControlledRef.current) {
109
+ onCloseRef.current?.();
110
+ return;
111
+ }
112
+ setSideOpen(false);
71
113
  ref.current?.dismiss();
72
114
  }, []);
115
+
116
+ // Fired when the underlying surface has finished closing. Drains queued
117
+ // callbacks, then fires `onClose` ONLY in imperative mode — controlled mode
118
+ // already requested the close through `onClose` (the host then flipped
119
+ // `open`), so firing it again here would double-call it.
73
120
  const handleDismiss = useCallback(() => {
74
121
  callQueuedCallbacks();
75
- onClose?.();
76
- }, [callQueuedCallbacks, onClose]);
77
- useImperativeHandle(control.ref, () => ({
122
+ if (!isControlledRef.current) onCloseRef.current?.();
123
+ }, [callQueuedCallbacks]);
124
+
125
+ // In controlled mode, mirror the `open` prop onto the underlying surface so
126
+ // both modes share one lifecycle. The BottomSheet path presents/dismisses by
127
+ // ref; the side path flips `sideOpen`.
128
+ useEffect(() => {
129
+ if (!isControlled) return;
130
+ if (controlledOpen) {
131
+ setSideOpen(true);
132
+ ref.current?.present();
133
+ } else {
134
+ setSideOpen(false);
135
+ ref.current?.dismiss();
136
+ }
137
+ }, [isControlled, controlledOpen]);
138
+ useImperativeHandle(control?.ref, () => ({
78
139
  open,
79
140
  close
80
141
  }), [open, close]);
@@ -90,23 +151,61 @@ export function Dialog({
90
151
  // floating and rounded uniformly.
91
152
  borderRadius: 20
92
153
  }), [theme.colors.background]);
154
+ const bodyNode = /*#__PURE__*/_jsx(DialogBody, {
155
+ titleId: titleId,
156
+ descriptionId: descriptionId,
157
+ title: title,
158
+ description: description,
159
+ actions: actions,
160
+ children: children
161
+ });
162
+ if (isSide) {
163
+ return /*#__PURE__*/_jsx(Context.Provider, {
164
+ value: context,
165
+ children: /*#__PURE__*/_jsx(SideSheet, {
166
+ open: sideOpen,
167
+ onDismiss: handleDismiss,
168
+ side: resolvedPlacement,
169
+ width: width,
170
+ inset: inset,
171
+ dismissOnBackdrop: dismissOnBackdrop,
172
+ testID: testID,
173
+ label: label,
174
+ title: title,
175
+ description: description,
176
+ titleId: titleId,
177
+ descriptionId: descriptionId,
178
+ panelStyle: panelStyle,
179
+ panelClassName: panelClassName,
180
+ containerStyle: containerStyle,
181
+ containerClassName: containerClassName,
182
+ style: style,
183
+ children: bodyNode
184
+ })
185
+ });
186
+ }
187
+ const isBottom = resolvedPlacement === 'bottom';
93
188
  return /*#__PURE__*/_jsx(BottomSheet, {
94
189
  ref: ref,
95
190
  onDismiss: handleDismiss,
96
191
  enablePanDownToClose: true,
97
- detached: true
192
+ detached: !isBottom,
193
+ showHandle: isBottom ? showHandle : true
98
194
  // Stronger dim when a Dialog is stacked over another sheet so the
99
195
  // underlying sheet's handle/content doesn't bleed through.
100
196
  ,
101
197
  backdropOpacity: 0.7,
102
- style: sheetStyle,
198
+ style: isBottom ? bottomSheetStyle(theme.colors.background, maxHeightRatio) : sheetStyle,
103
199
  children: /*#__PURE__*/_jsx(Context.Provider, {
104
200
  value: context,
105
- children: /*#__PURE__*/_jsxs(View, {
201
+ children: /*#__PURE__*/_jsx(View, {
106
202
  testID: testID,
107
203
  accessibilityLabel: label,
108
204
  "aria-labelledby": title ? titleId : undefined,
109
205
  "aria-describedby": description ? descriptionId : undefined,
206
+ ...(panelClassName ? {
207
+ className: panelClassName
208
+ } : {}),
110
209
  style: [
111
210
  // Detached BottomSheet already adds `marginBottom: insets.bottom + 16`
112
211
  // to the sheet container — the floating card sits ABOVE the
@@ -117,33 +216,199 @@ export function Dialog({
117
216
  paddingBottom: 20
118
217
  }, {
119
218
  backgroundColor: theme.colors.background
120
- }, style],
121
- children: [title ? /*#__PURE__*/_jsx(Text, {
122
- nativeID: titleId,
123
- style: {
124
- fontSize: 22,
125
- fontWeight: '600',
126
- color: theme.colors.text,
127
- paddingBottom: description ? 4 : 16,
128
- lineHeight: 30
129
- },
130
- children: title
131
- }) : null, description ? /*#__PURE__*/_jsx(Text, {
132
- nativeID: descriptionId,
133
- style: {
134
- fontSize: 16,
135
- color: theme.colors.textSecondary,
136
- paddingBottom: 16,
137
- lineHeight: 22
138
- },
139
- children: description
140
- }) : null, children, actions && actions.length > 0 ? /*#__PURE__*/_jsx(ActionRow, {
141
- actions: actions
142
- }) : null]
219
+ }, style, panelStyle],
220
+ children: bodyNode
143
221
  })
144
222
  })
145
223
  });
146
224
  }
225
+ function bottomSheetStyle(background, maxHeightRatio) {
226
+ return {
227
+ backgroundColor: background,
228
+ borderTopLeftRadius: PANEL_RADIUS + 4,
229
+ borderTopRightRadius: PANEL_RADIUS + 4,
230
+ maxHeight: `${Math.round(maxHeightRatio * 100)}%`
231
+ };
232
+ }
233
+
234
+ /**
235
+ * Renders the dialog's body: optional declarative title + description, any
236
+ * `children`, then the action row. Shared by all placements. The
237
+ * `titleId`/`descriptionId` are wired by the caller for accessibility.
238
+ */
239
+ function DialogBody({
240
+ titleId,
241
+ descriptionId,
242
+ title,
243
+ description,
244
+ actions,
245
+ children
246
+ }) {
247
+ const theme = useTheme();
248
+ return /*#__PURE__*/_jsxs(_Fragment, {
249
+ children: [title ? /*#__PURE__*/_jsx(Text, {
250
+ nativeID: titleId,
251
+ style: {
252
+ fontSize: 22,
253
+ fontWeight: '600',
254
+ color: theme.colors.text,
255
+ paddingBottom: description ? 4 : 16,
256
+ lineHeight: 30
257
+ },
258
+ children: title
259
+ }) : null, description ? /*#__PURE__*/_jsx(Text, {
260
+ nativeID: descriptionId,
261
+ style: {
262
+ fontSize: 16,
263
+ color: theme.colors.textSecondary,
264
+ paddingBottom: 16,
265
+ lineHeight: 22
266
+ },
267
+ children: description
268
+ }) : null, children, actions && actions.length > 0 ? /*#__PURE__*/_jsx(ActionRow, {
269
+ actions: actions
270
+ }) : null]
271
+ });
272
+ }
273
+
274
+ /**
275
+ * Reanimated side-sheet/drawer for the `left`/`right` placements (native).
276
+ *
277
+ * A shared `progress` value times 0 -> 1 on open and 1 -> 0 on close, mapped to
278
+ * the panel translateX and the backdrop opacity. The node stays mounted through
279
+ * the close timing and unmounts from the animation completion callback. Native
280
+ * exit animations are safe (the web `removeChild` crash does not apply).
281
+ */
282
+ function SideSheet({
283
+ open,
284
+ onDismiss,
285
+ side,
286
+ width,
287
+ inset,
288
+ dismissOnBackdrop,
289
+ testID,
290
+ label,
291
+ title,
292
+ description,
293
+ titleId,
294
+ descriptionId,
295
+ panelStyle,
296
+ panelClassName,
297
+ containerStyle,
298
+ containerClassName,
299
+ style,
300
+ children
301
+ }) {
302
+ const theme = useTheme();
303
+ const {
304
+ width: viewportWidth
305
+ } = useWindowDimensions();
306
+ const [mounted, setMounted] = useState(open);
307
+ const progress = useSharedValue(open ? 1 : 0);
308
+ const insetTop = inset?.top ?? 0;
309
+ const insetBottom = inset?.bottom ?? 0;
310
+ const insetLeft = inset?.left ?? 0;
311
+ const insetRight = inset?.right ?? 0;
312
+ const anchorInset = side === 'left' ? insetLeft : insetRight;
313
+ const oppositeInset = side === 'left' ? insetRight : insetLeft;
314
+ const sideWidth = useMemo(() => {
315
+ const available = viewportWidth - anchorInset - oppositeInset - SIDE_SHEET_MIN_GUTTER;
316
+ return Math.max(0, Math.min(width, available));
317
+ }, [viewportWidth, anchorInset, oppositeInset, width]);
318
+
319
+ // Travel distance for the hidden state: the panel's measured width, with the
320
+ // geometry target as the pre-measurement fallback.
321
+ const travel = useSharedValue(sideWidth);
322
+ useEffect(() => {
323
+ travel.value = sideWidth;
324
+ }, [sideWidth, travel]);
325
+ const finishClose = useCallback(() => {
326
+ setMounted(false);
327
+ onDismiss();
328
+ }, [onDismiss]);
329
+ useEffect(() => {
330
+ cancelAnimation(progress);
331
+ const timing = {
332
+ duration: ANIMATION_DURATION,
333
+ easing: Easing.out(Easing.cubic)
334
+ };
335
+ if (open) {
336
+ setMounted(true);
337
+ progress.value = withTiming(1, timing);
338
+ return;
339
+ }
340
+ if (!mounted) return;
341
+ progress.value = withTiming(0, timing, finished => {
342
+ if (finished) runOnJS(finishClose)();
343
+ });
344
+ }, [open, mounted, progress, finishClose]);
345
+ const handleBackdropPress = useCallback(() => {
346
+ if (dismissOnBackdrop) onDismiss();
347
+ }, [dismissOnBackdrop, onDismiss]);
348
+ const backdropAnimatedStyle = useAnimatedStyle(() => ({
349
+ opacity: progress.value * SHEET_BACKDROP_OPACITY
350
+ }));
351
+ const hiddenSign = side === 'left' ? -1 : 1;
352
+ const panelAnimatedStyle = useAnimatedStyle(() => {
353
+ const hidden = 1 - progress.value;
354
+ return {
355
+ opacity: progress.value,
356
+ transform: [{
357
+ translateX: hidden * travel.value * hiddenSign
358
+ }]
359
+ };
360
+ }, [hiddenSign]);
361
+ const measurePanel = useCallback(e => {
362
+ const measured = e.nativeEvent.layout.width;
363
+ if (measured > 0) travel.value = measured;
364
+ }, [travel]);
365
+ const panelGeometry = useMemo(() => ({
366
+ top: insetTop,
367
+ bottom: insetBottom,
368
+ [side]: anchorInset,
369
+ width: sideWidth,
370
+ borderRadius: PANEL_RADIUS
371
+ }), [insetTop, insetBottom, side, anchorInset, sideWidth]);
372
+ if (!mounted) return null;
373
+ return /*#__PURE__*/_jsxs(View, {
374
+ style: [sideStyles.root, containerStyle],
375
+ ...(containerClassName ? {
376
+ className: containerClassName
377
+ } : {}),
378
+ pointerEvents: "box-none",
379
+ children: [/*#__PURE__*/_jsx(Animated.View, {
380
+ style: [sideStyles.backdrop, backdropAnimatedStyle],
381
+ pointerEvents: "auto",
382
+ children: /*#__PURE__*/_jsx(Pressable, {
383
+ testID: testID ? `${testID}-backdrop` : DIALOG_SHEET_BACKDROP_TESTID,
384
+ accessibilityRole: "button",
385
+ accessibilityLabel: label ? `Dismiss ${label}` : 'Dismiss dialog',
386
+ onPress: handleBackdropPress,
387
+ disabled: !dismissOnBackdrop,
388
+ style: StyleSheet.absoluteFill
389
+ })
390
+ }), /*#__PURE__*/_jsx(Animated.View, {
391
+ accessibilityViewIsModal: true,
392
+ accessibilityLabel: label,
393
+ "aria-labelledby": title ? titleId : undefined,
394
+ "aria-describedby": description ? descriptionId : undefined,
395
+ testID: testID,
396
+ onLayout: measurePanel,
397
+ ...(panelClassName ? {
398
+ className: panelClassName
399
+ } : {}),
400
+ style: [sideStyles.panel, {
401
+ backgroundColor: theme.colors.background,
402
+ shadowColor: theme.colors.shadow
403
+ }, panelGeometry, panelAnimatedStyle, panelStyle, style],
404
+ pointerEvents: "auto",
405
+ children: /*#__PURE__*/_jsx(View, {
406
+ style: sideStyles.body,
407
+ children: children
408
+ })
409
+ })]
410
+ });
411
+ }
147
412
  function ActionRow({
148
413
  actions
149
414
  }) {
@@ -236,6 +501,30 @@ function getActionPalette(color, colors) {
236
501
  }
237
502
  }
238
503
  }
504
+ const sideStyles = StyleSheet.create({
505
+ root: {
506
+ ...StyleSheet.absoluteFill,
507
+ zIndex: Z_INDEX.fullscreen
508
+ },
509
+ backdrop: {
510
+ ...StyleSheet.absoluteFill,
511
+ backgroundColor: '#000'
512
+ },
513
+ panel: {
514
+ position: 'absolute',
515
+ overflow: 'hidden',
516
+ shadowOpacity: 0.18,
517
+ shadowRadius: 24,
518
+ shadowOffset: {
519
+ width: 0,
520
+ height: 8
521
+ },
522
+ elevation: 12
523
+ },
524
+ body: {
525
+ padding: 20
526
+ }
527
+ });
239
528
 
240
529
  /**
241
530
  * Helper used by the imperative `alert()` API. Mounts a `<Dialog>` against
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useId","useImperativeHandle","useMemo","useRef","Text","TouchableOpacity","View","BottomSheet","useTheme","Context","useDialogContext","useDialogControl","jsx","_jsx","jsxs","_jsxs","Dialog","control","onClose","testID","title","description","actions","style","label","children","theme","ref","closeCallbacks","titleId","descriptionId","callQueuedCallbacks","queued","current","cb","e","console","error","open","present","close","push","dismiss","handleDismiss","context","isWithinDialog","sheetStyle","maxWidth","backgroundColor","colors","background","borderRadius","onDismiss","enablePanDownToClose","detached","backdropOpacity","Provider","value","accessibilityLabel","undefined","paddingTop","paddingHorizontal","paddingBottom","nativeID","fontSize","fontWeight","color","text","lineHeight","textSecondary","length","ActionRow","width","gap","justifyContent","map","action","idx","ActionButton","shouldCloseOnPress","foreground","getActionPalette","handlePress","onPress","alignItems","opacity","disabled","paddingVertical","activeOpacity","negative","negativeForeground","contrast50","primary","primaryForeground","_exhaustive","AutoMountedDialog","onResolve"],"sourceRoot":"../../../src","sources":["dialog/Dialog.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useId","useImperativeHandle","useMemo","useRef","useState","Pressable","StyleSheet","Text","TouchableOpacity","useWindowDimensions","View","Animated","cancelAnimation","Easing","runOnJS","useAnimatedStyle","useSharedValue","withTiming","BottomSheet","Z_INDEX","useTheme","Context","useDialogContext","useDialogControl","ANIMATION_DURATION","DEFAULT_MAX_HEIGHT_RATIO","DEFAULT_SIDE_WIDTH","DIALOG_SHEET_BACKDROP_TESTID","PANEL_RADIUS","SHEET_BACKDROP_OPACITY","SIDE_SHEET_MIN_GUTTER","useResolvedPlacement","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","Dialog","control","open","controlledOpen","onClose","testID","title","description","actions","placement","width","maxHeightRatio","inset","showHandle","dismissOnBackdrop","style","panelStyle","panelClassName","containerStyle","containerClassName","label","children","isControlled","undefined","resolvedPlacement","isSide","sideOpen","setSideOpen","theme","ref","closeCallbacks","titleId","descriptionId","isControlledRef","current","onCloseRef","callQueuedCallbacks","queued","cb","e","console","error","present","close","push","dismiss","handleDismiss","context","isWithinDialog","sheetStyle","maxWidth","backgroundColor","colors","background","borderRadius","bodyNode","DialogBody","Provider","value","SideSheet","onDismiss","side","isBottom","enablePanDownToClose","detached","backdropOpacity","bottomSheetStyle","accessibilityLabel","className","paddingTop","paddingHorizontal","paddingBottom","borderTopLeftRadius","borderTopRightRadius","maxHeight","Math","round","nativeID","fontSize","fontWeight","color","text","lineHeight","textSecondary","length","ActionRow","viewportWidth","mounted","setMounted","progress","insetTop","top","insetBottom","bottom","insetLeft","left","insetRight","right","anchorInset","oppositeInset","sideWidth","available","max","min","travel","finishClose","timing","duration","easing","out","cubic","finished","handleBackdropPress","backdropAnimatedStyle","opacity","hiddenSign","panelAnimatedStyle","hidden","transform","translateX","measurePanel","measured","nativeEvent","layout","panelGeometry","sideStyles","root","pointerEvents","backdrop","accessibilityRole","onPress","disabled","absoluteFill","accessibilityViewIsModal","onLayout","panel","shadowColor","shadow","body","gap","justifyContent","map","action","idx","ActionButton","shouldCloseOnPress","foreground","getActionPalette","handlePress","alignItems","paddingVertical","activeOpacity","negative","negativeForeground","contrast50","primary","primaryForeground","_exhaustive","create","zIndex","fullscreen","position","overflow","shadowOpacity","shadowRadius","shadowOffset","height","elevation","padding","AutoMountedDialog","onResolve"],"sourceRoot":"../../../src","sources":["dialog/Dialog.tsx"],"mappings":"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","ignoreList":[]}