@oxyhq/bloom 0.13.0 → 0.15.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 (140) hide show
  1. package/lib/commonjs/dialog/CenteredDialog.js +2 -0
  2. package/lib/commonjs/dialog/CenteredDialog.js.map +1 -1
  3. package/lib/commonjs/dialog/CenteredDialog.web.js +2 -0
  4. package/lib/commonjs/dialog/CenteredDialog.web.js.map +1 -1
  5. package/lib/commonjs/dialog/Dialog.js +337 -43
  6. package/lib/commonjs/dialog/Dialog.js.map +1 -1
  7. package/lib/commonjs/dialog/Dialog.web.js +414 -63
  8. package/lib/commonjs/dialog/Dialog.web.js.map +1 -1
  9. package/lib/commonjs/dialog/index.js +6 -0
  10. package/lib/commonjs/dialog/index.js.map +1 -1
  11. package/lib/commonjs/dialog/index.web.js +6 -0
  12. package/lib/commonjs/dialog/index.web.js.map +1 -1
  13. package/lib/commonjs/dialog/placement.js +104 -0
  14. package/lib/commonjs/dialog/placement.js.map +1 -0
  15. package/lib/commonjs/index.js +22 -0
  16. package/lib/commonjs/index.js.map +1 -1
  17. package/lib/commonjs/index.web.js +28 -6
  18. package/lib/commonjs/index.web.js.map +1 -1
  19. package/lib/commonjs/responsive-sheet/ResponsiveSheet.js +97 -0
  20. package/lib/commonjs/responsive-sheet/ResponsiveSheet.js.map +1 -0
  21. package/lib/commonjs/responsive-sheet/ResponsiveSheet.web.js +84 -0
  22. package/lib/commonjs/responsive-sheet/ResponsiveSheet.web.js.map +1 -0
  23. package/lib/commonjs/responsive-sheet/index.js +19 -0
  24. package/lib/commonjs/responsive-sheet/index.js.map +1 -0
  25. package/lib/commonjs/responsive-sheet/index.web.js +19 -0
  26. package/lib/commonjs/responsive-sheet/index.web.js.map +1 -0
  27. package/lib/commonjs/responsive-sheet/types.js +6 -0
  28. package/lib/commonjs/responsive-sheet/types.js.map +1 -0
  29. package/lib/module/dialog/CenteredDialog.js +2 -0
  30. package/lib/module/dialog/CenteredDialog.js.map +1 -1
  31. package/lib/module/dialog/CenteredDialog.web.js +2 -0
  32. package/lib/module/dialog/CenteredDialog.web.js.map +1 -1
  33. package/lib/module/dialog/Dialog.js +336 -46
  34. package/lib/module/dialog/Dialog.js.map +1 -1
  35. package/lib/module/dialog/Dialog.web.js +412 -65
  36. package/lib/module/dialog/Dialog.web.js.map +1 -1
  37. package/lib/module/dialog/index.js +1 -1
  38. package/lib/module/dialog/index.js.map +1 -1
  39. package/lib/module/dialog/index.web.js +1 -1
  40. package/lib/module/dialog/index.web.js.map +1 -1
  41. package/lib/module/dialog/placement.js +100 -0
  42. package/lib/module/dialog/placement.js.map +1 -0
  43. package/lib/module/index.js +3 -1
  44. package/lib/module/index.js.map +1 -1
  45. package/lib/module/index.web.js +3 -1
  46. package/lib/module/index.web.js.map +1 -1
  47. package/lib/module/responsive-sheet/ResponsiveSheet.js +90 -0
  48. package/lib/module/responsive-sheet/ResponsiveSheet.js.map +1 -0
  49. package/lib/module/responsive-sheet/ResponsiveSheet.web.js +77 -0
  50. package/lib/module/responsive-sheet/ResponsiveSheet.web.js.map +1 -0
  51. package/lib/module/responsive-sheet/index.js +4 -0
  52. package/lib/module/responsive-sheet/index.js.map +1 -0
  53. package/lib/module/responsive-sheet/index.web.js +12 -0
  54. package/lib/module/responsive-sheet/index.web.js.map +1 -0
  55. package/lib/module/responsive-sheet/types.js +4 -0
  56. package/lib/module/responsive-sheet/types.js.map +1 -0
  57. package/lib/typescript/commonjs/dialog/CenteredDialog.d.ts +2 -0
  58. package/lib/typescript/commonjs/dialog/CenteredDialog.d.ts.map +1 -1
  59. package/lib/typescript/commonjs/dialog/CenteredDialog.web.d.ts +2 -0
  60. package/lib/typescript/commonjs/dialog/CenteredDialog.web.d.ts.map +1 -1
  61. package/lib/typescript/commonjs/dialog/Dialog.d.ts +18 -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/centered-dialog-types.d.ts +4 -0
  66. package/lib/typescript/commonjs/dialog/centered-dialog-types.d.ts.map +1 -1
  67. package/lib/typescript/commonjs/dialog/index.d.ts +2 -2
  68. package/lib/typescript/commonjs/dialog/index.d.ts.map +1 -1
  69. package/lib/typescript/commonjs/dialog/index.web.d.ts +2 -2
  70. package/lib/typescript/commonjs/dialog/index.web.d.ts.map +1 -1
  71. package/lib/typescript/commonjs/dialog/placement.d.ts +71 -0
  72. package/lib/typescript/commonjs/dialog/placement.d.ts.map +1 -0
  73. package/lib/typescript/commonjs/dialog/types.d.ts +66 -3
  74. package/lib/typescript/commonjs/dialog/types.d.ts.map +1 -1
  75. package/lib/typescript/commonjs/index.d.ts +4 -2
  76. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  77. package/lib/typescript/commonjs/index.web.d.ts +4 -2
  78. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  79. package/lib/typescript/commonjs/responsive-sheet/ResponsiveSheet.d.ts +22 -0
  80. package/lib/typescript/commonjs/responsive-sheet/ResponsiveSheet.d.ts.map +1 -0
  81. package/lib/typescript/commonjs/responsive-sheet/ResponsiveSheet.web.d.ts +16 -0
  82. package/lib/typescript/commonjs/responsive-sheet/ResponsiveSheet.web.d.ts.map +1 -0
  83. package/lib/typescript/commonjs/responsive-sheet/index.d.ts +3 -0
  84. package/lib/typescript/commonjs/responsive-sheet/index.d.ts.map +1 -0
  85. package/lib/typescript/commonjs/responsive-sheet/index.web.d.ts +3 -0
  86. package/lib/typescript/commonjs/responsive-sheet/index.web.d.ts.map +1 -0
  87. package/lib/typescript/commonjs/responsive-sheet/types.d.ts +58 -0
  88. package/lib/typescript/commonjs/responsive-sheet/types.d.ts.map +1 -0
  89. package/lib/typescript/module/dialog/CenteredDialog.d.ts +2 -0
  90. package/lib/typescript/module/dialog/CenteredDialog.d.ts.map +1 -1
  91. package/lib/typescript/module/dialog/CenteredDialog.web.d.ts +2 -0
  92. package/lib/typescript/module/dialog/CenteredDialog.web.d.ts.map +1 -1
  93. package/lib/typescript/module/dialog/Dialog.d.ts +18 -15
  94. package/lib/typescript/module/dialog/Dialog.d.ts.map +1 -1
  95. package/lib/typescript/module/dialog/Dialog.web.d.ts +18 -5
  96. package/lib/typescript/module/dialog/Dialog.web.d.ts.map +1 -1
  97. package/lib/typescript/module/dialog/centered-dialog-types.d.ts +4 -0
  98. package/lib/typescript/module/dialog/centered-dialog-types.d.ts.map +1 -1
  99. package/lib/typescript/module/dialog/index.d.ts +2 -2
  100. package/lib/typescript/module/dialog/index.d.ts.map +1 -1
  101. package/lib/typescript/module/dialog/index.web.d.ts +2 -2
  102. package/lib/typescript/module/dialog/index.web.d.ts.map +1 -1
  103. package/lib/typescript/module/dialog/placement.d.ts +71 -0
  104. package/lib/typescript/module/dialog/placement.d.ts.map +1 -0
  105. package/lib/typescript/module/dialog/types.d.ts +66 -3
  106. package/lib/typescript/module/dialog/types.d.ts.map +1 -1
  107. package/lib/typescript/module/index.d.ts +4 -2
  108. package/lib/typescript/module/index.d.ts.map +1 -1
  109. package/lib/typescript/module/index.web.d.ts +4 -2
  110. package/lib/typescript/module/index.web.d.ts.map +1 -1
  111. package/lib/typescript/module/responsive-sheet/ResponsiveSheet.d.ts +22 -0
  112. package/lib/typescript/module/responsive-sheet/ResponsiveSheet.d.ts.map +1 -0
  113. package/lib/typescript/module/responsive-sheet/ResponsiveSheet.web.d.ts +16 -0
  114. package/lib/typescript/module/responsive-sheet/ResponsiveSheet.web.d.ts.map +1 -0
  115. package/lib/typescript/module/responsive-sheet/index.d.ts +3 -0
  116. package/lib/typescript/module/responsive-sheet/index.d.ts.map +1 -0
  117. package/lib/typescript/module/responsive-sheet/index.web.d.ts +3 -0
  118. package/lib/typescript/module/responsive-sheet/index.web.d.ts.map +1 -0
  119. package/lib/typescript/module/responsive-sheet/types.d.ts +58 -0
  120. package/lib/typescript/module/responsive-sheet/types.d.ts.map +1 -0
  121. package/package.json +18 -1
  122. package/src/__tests__/DialogPlacement.test.tsx +144 -0
  123. package/src/__tests__/ResponsiveSheet.test.tsx +88 -0
  124. package/src/dialog/CenteredDialog.tsx +2 -0
  125. package/src/dialog/CenteredDialog.web.tsx +2 -0
  126. package/src/dialog/Dialog.tsx +407 -50
  127. package/src/dialog/Dialog.web.tsx +490 -75
  128. package/src/dialog/centered-dialog-types.ts +4 -0
  129. package/src/dialog/index.ts +4 -1
  130. package/src/dialog/index.web.ts +4 -1
  131. package/src/dialog/placement.ts +113 -0
  132. package/src/dialog/types.ts +69 -3
  133. package/src/index.ts +12 -0
  134. package/src/index.web.ts +12 -0
  135. package/src/responsive-sheet/ResponsiveSheet.stories.tsx +54 -0
  136. package/src/responsive-sheet/ResponsiveSheet.tsx +88 -0
  137. package/src/responsive-sheet/ResponsiveSheet.web.tsx +76 -0
  138. package/src/responsive-sheet/index.ts +6 -0
  139. package/src/responsive-sheet/index.web.ts +14 -0
  140. package/src/responsive-sheet/types.ts +60 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_index","_useTheme","_context","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Dialog","control","onClose","testID","title","description","actions","style","label","children","theme","useTheme","ref","useRef","closeCallbacks","titleId","useId","descriptionId","callQueuedCallbacks","useCallback","queued","current","cb","console","error","open","present","close","push","dismiss","handleDismiss","useImperativeHandle","context","useMemo","isWithinDialog","sheetStyle","maxWidth","backgroundColor","colors","background","borderRadius","jsx","BottomSheet","onDismiss","enablePanDownToClose","detached","backdropOpacity","Context","Provider","value","jsxs","View","accessibilityLabel","undefined","paddingTop","paddingHorizontal","paddingBottom","Text","nativeID","fontSize","fontWeight","color","text","lineHeight","textSecondary","length","ActionRow","width","gap","justifyContent","map","action","idx","ActionButton","useDialogContext","shouldCloseOnPress","foreground","getActionPalette","handlePress","onPress","TouchableOpacity","alignItems","opacity","disabled","paddingVertical","activeOpacity","negative","negativeForeground","contrast50","primary","primaryForeground","_exhaustive","AutoMountedDialog","onResolve","useDialogControl","useEffect"],"sourceRoot":"../../../src","sources":["dialog/Dialog.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_index","_zIndex","_useTheme","_context","_placement","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Dialog","control","open","controlledOpen","onClose","testID","title","description","actions","placement","width","DEFAULT_SIDE_WIDTH","maxHeightRatio","DEFAULT_MAX_HEIGHT_RATIO","inset","showHandle","dismissOnBackdrop","style","panelStyle","panelClassName","containerStyle","containerClassName","label","children","isControlled","undefined","resolvedPlacement","useResolvedPlacement","isSide","sideOpen","setSideOpen","useState","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","sheetStyle","maxWidth","backgroundColor","colors","background","borderRadius","bodyNode","jsx","DialogBody","Context","Provider","value","SideSheet","onDismiss","side","isBottom","BottomSheet","enablePanDownToClose","detached","backdropOpacity","bottomSheetStyle","View","accessibilityLabel","className","paddingTop","paddingHorizontal","paddingBottom","borderTopLeftRadius","PANEL_RADIUS","borderTopRightRadius","maxHeight","Math","round","jsxs","Fragment","Text","nativeID","fontSize","fontWeight","color","text","lineHeight","textSecondary","length","ActionRow","viewportWidth","useWindowDimensions","mounted","setMounted","progress","useSharedValue","insetTop","top","insetBottom","bottom","insetLeft","left","insetRight","right","anchorInset","oppositeInset","sideWidth","available","SIDE_SHEET_MIN_GUTTER","max","min","travel","finishClose","cancelAnimation","timing","duration","ANIMATION_DURATION","easing","Easing","out","cubic","withTiming","finished","runOnJS","handleBackdropPress","backdropAnimatedStyle","useAnimatedStyle","opacity","SHEET_BACKDROP_OPACITY","hiddenSign","panelAnimatedStyle","hidden","transform","translateX","measurePanel","measured","nativeEvent","layout","panelGeometry","sideStyles","root","pointerEvents","backdrop","Pressable","DIALOG_SHEET_BACKDROP_TESTID","accessibilityRole","onPress","disabled","StyleSheet","absoluteFill","accessibilityViewIsModal","onLayout","panel","shadowColor","shadow","body","gap","justifyContent","map","action","idx","ActionButton","useDialogContext","shouldCloseOnPress","foreground","getActionPalette","handlePress","TouchableOpacity","alignItems","paddingVertical","activeOpacity","negative","negativeForeground","contrast50","primary","primaryForeground","_exhaustive","create","zIndex","Z_INDEX","fullscreen","position","overflow","shadowOpacity","shadowRadius","shadowOffset","height","elevation","padding","AutoMountedDialog","onResolve","useDialogControl"],"sourceRoot":"../../../src","sources":["dialog/Dialog.tsx"],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.AutoMountedDialog = AutoMountedDialog;
7
7
  exports.BLOOM_DIALOG_CSS = void 0;
8
+ Object.defineProperty(exports, "DIALOG_SHEET_BACKDROP_TESTID", {
9
+ enumerable: true,
10
+ get: function () {
11
+ return _placement.DIALOG_SHEET_BACKDROP_TESTID;
12
+ }
13
+ });
8
14
  exports.Dialog = Dialog;
9
15
  var _react = _interopRequireWildcard(require("react"));
10
16
  var _reactNative = require("react-native");
@@ -13,9 +19,10 @@ var _indexWeb = require("../portal/index.web.js");
13
19
  var _zIndex = require("../styles/z-index.js");
14
20
  var _useTheme = require("../theme/use-theme.js");
15
21
  var _context = require("./context.js");
22
+ var _placement = require("./placement.js");
16
23
  var _jsxRuntime = require("react/jsx-runtime");
17
24
  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); }
18
- const FADE_OUT_DURATION = 150;
25
+ const FADE_OUT_DURATION = _placement.CENTER_FADE_OUT_DURATION;
19
26
  const dialogZIndex = (0, _zIndex.createOverlayZIndex)();
20
27
  const stopPropagation = e => e.stopPropagation();
21
28
  const ClosingContext = /*#__PURE__*/(0, _react.createContext)(false);
@@ -23,40 +30,94 @@ const ClosingContext = /*#__PURE__*/(0, _react.createContext)(false);
23
30
  /**
24
31
  * Web variant of `<Dialog>`.
25
32
  *
26
- * A centered modal card rendered into the bloom Portal at the end of
27
- * `document.body`. Same prop API as native`title`, `description`,
28
- * `actions`, or arbitrary `children` so call sites are platform
29
- * agnostic.
33
+ * A centered modal card (default) rendered into the bloom Portal at the end of
34
+ * `document.body`, or when `placement` is `left`/`right`/`bottom` an
35
+ * anchored side-sheet or bottom-sheet. Same prop API as native, so call sites
36
+ * are platform agnostic.
37
+ *
38
+ * Open/close is driven by EITHER the imperative `control` (legacy) OR the
39
+ * controlled `open` prop. When `open` is provided it wins.
30
40
  *
31
41
  * Accessibility: the panel has `role="dialog"` and the `title`/`description`
32
42
  * props (when provided) become the `aria-labelledby` / `aria-describedby`
33
43
  * targets. Pressing the backdrop dismisses. Pressing `Escape` dismisses.
34
44
  * Focus is locked inside the dialog while it's open.
45
+ *
46
+ * Web motion never uses reanimated `exiting` (which throws `removeChild` on
47
+ * concurrent React unmounts): the centered card uses CSS keyframes and the
48
+ * side/bottom modes use self-contained CSS transitions (the `responsive-sheet`
49
+ * technique) on a mounted-through-exit node.
35
50
  */
36
51
  function Dialog({
37
52
  control,
53
+ open: controlledOpen,
38
54
  onClose,
39
55
  testID,
40
56
  title,
41
57
  description,
42
58
  actions,
59
+ placement,
60
+ width = _placement.DEFAULT_SIDE_WIDTH,
61
+ maxWidth = _placement.DEFAULT_CENTER_MAX_WIDTH,
62
+ maxHeightRatio = _placement.DEFAULT_MAX_HEIGHT_RATIO,
63
+ inset,
64
+ showHandle = true,
65
+ dismissOnBackdrop = true,
43
66
  style,
67
+ panelStyle,
68
+ panelClassName,
69
+ containerStyle,
70
+ containerClassName,
44
71
  label,
45
72
  children
46
73
  }) {
74
+ // Controlled mode is opt-in: when `open` is a boolean the host owns the
75
+ // visible state; otherwise the legacy imperative `control` path drives it.
76
+ const isControlled = controlledOpen !== undefined;
77
+ const resolvedPlacement = (0, _placement.useResolvedPlacement)(placement);
47
78
  const [isOpen, setIsOpen] = (0, _react.useState)(false);
48
79
  const [isClosing, setIsClosing] = (0, _react.useState)(false);
49
80
  const closeCallbacksRef = (0, _react.useRef)([]);
81
+ // Read the latest controlled flag inside stable callbacks without re-binding.
82
+ const isControlledRef = (0, _react.useRef)(isControlled);
83
+ isControlledRef.current = isControlled;
50
84
  const open = (0, _react.useCallback)(() => {
51
85
  setIsClosing(false);
52
86
  setIsOpen(true);
53
87
  }, []);
88
+
89
+ // A dismissal request (backdrop, Escape, action button). In controlled mode
90
+ // it asks the host to close via `onClose` (the host flips `open`); in
91
+ // imperative mode it starts the exit animation directly. Either way an
92
+ // optional callback runs after the dialog has finished closing.
54
93
  const close = (0, _react.useCallback)(cb => {
55
94
  if (typeof cb === 'function') {
56
95
  closeCallbacksRef.current.push(cb);
57
96
  }
97
+ if (isControlledRef.current) {
98
+ onCloseRef.current?.();
99
+ return;
100
+ }
58
101
  setIsClosing(true);
59
102
  }, []);
103
+
104
+ // `onClose` mirrored into a ref so `close` stays referentially stable (the
105
+ // dialog context + imperative handle depend on it).
106
+ const onCloseRef = (0, _react.useRef)(onClose);
107
+ onCloseRef.current = onClose;
108
+
109
+ // In controlled mode, mirror the `open` prop into the internal open/closing
110
+ // state machine so both modes share the same exit-animation lifecycle.
111
+ (0, _react.useEffect)(() => {
112
+ if (!isControlled) return;
113
+ if (controlledOpen) {
114
+ setIsClosing(false);
115
+ setIsOpen(true);
116
+ } else {
117
+ setIsClosing(true);
118
+ }
119
+ }, [isControlled, controlledOpen]);
120
+ const exitDuration = resolvedPlacement === 'center' ? FADE_OUT_DURATION : _placement.ANIMATION_DURATION;
60
121
  (0, _react.useEffect)(() => {
61
122
  if (!isClosing) return;
62
123
  const timer = setTimeout(() => {
@@ -73,10 +134,13 @@ function Dialog({
73
134
  }
74
135
  }
75
136
  }
76
- onClose?.();
77
- }, FADE_OUT_DURATION);
137
+ // Imperative mode fires `onClose` when the exit settles. Controlled mode
138
+ // already requested the close through `onClose` (the host then flipped
139
+ // `open`), so it must NOT fire it a second time here.
140
+ if (!isControlledRef.current) onCloseRef.current?.();
141
+ }, exitDuration);
78
142
  return () => clearTimeout(timer);
79
- }, [isClosing, onClose]);
143
+ }, [isClosing, exitDuration]);
80
144
 
81
145
  // Escape-to-close while open. The listener is intentionally scoped to the
82
146
  // open lifetime so stacked dialogs don't fight for the keydown — the
@@ -92,7 +156,7 @@ function Dialog({
92
156
  document.addEventListener('keydown', handler);
93
157
  return () => document.removeEventListener('keydown', handler);
94
158
  }, [close, isOpen]);
95
- (0, _react.useImperativeHandle)(control.ref, () => ({
159
+ (0, _react.useImperativeHandle)(control?.ref, () => ({
96
160
  open,
97
161
  close
98
162
  }), [open, close]);
@@ -101,46 +165,121 @@ function Dialog({
101
165
  isWithinDialog: true
102
166
  }), [close]);
103
167
  if (!isOpen) return null;
168
+ if (resolvedPlacement === 'center') {
169
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_indexWeb.Portal, {
170
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.Context.Provider, {
171
+ value: context,
172
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(ClosingContext.Provider, {
173
+ value: isClosing,
174
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRemoveScrollBar.RemoveScrollBar, {}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
175
+ onPress: dismissOnBackdrop ? () => close() : undefined,
176
+ disabled: !dismissOnBackdrop
177
+ // `pointerEvents: 'auto'` opts back in from the Portal root's
178
+ // `pointer-events: none`, which is set so the idle portal
179
+ // doesn't intercept clicks on the underlying app.
180
+ ,
181
+ style: {
182
+ position: 'fixed',
183
+ top: 0,
184
+ left: 0,
185
+ right: 0,
186
+ bottom: 0,
187
+ zIndex: dialogZIndex.backdrop,
188
+ alignItems: 'center',
189
+ justifyContent: 'center',
190
+ paddingHorizontal: 20,
191
+ pointerEvents: 'auto'
192
+ },
193
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(DialogBackdrop, {
194
+ isClosing: isClosing
195
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(DialogPanel, {
196
+ testID: testID,
197
+ label: label,
198
+ title: title,
199
+ description: description,
200
+ actions: actions,
201
+ style: style,
202
+ maxWidth: maxWidth,
203
+ isClosing: isClosing,
204
+ children: children
205
+ })]
206
+ })]
207
+ })
208
+ })
209
+ });
210
+ }
104
211
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_indexWeb.Portal, {
105
212
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.Context.Provider, {
106
213
  value: context,
107
214
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(ClosingContext.Provider, {
108
215
  value: isClosing,
109
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRemoveScrollBar.RemoveScrollBar, {}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
110
- onPress: () => close()
111
- // `pointerEvents: 'auto'` opts back in from the Portal root's
112
- // `pointer-events: none`, which is set so the idle portal
113
- // doesn't intercept clicks on the underlying app.
114
- ,
115
- style: {
116
- position: 'fixed',
117
- top: 0,
118
- left: 0,
119
- right: 0,
120
- bottom: 0,
121
- zIndex: dialogZIndex.backdrop,
122
- alignItems: 'center',
123
- justifyContent: 'center',
124
- paddingHorizontal: 20,
125
- pointerEvents: 'auto'
126
- },
127
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(DialogBackdrop, {
128
- isClosing: isClosing
129
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(DialogPanel, {
130
- testID: testID,
131
- label: label,
132
- title: title,
133
- description: description,
134
- actions: actions,
135
- style: style,
136
- isClosing: isClosing,
137
- children: children
138
- })]
216
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRemoveScrollBar.RemoveScrollBar, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(SheetSurface, {
217
+ testID: testID,
218
+ label: label,
219
+ title: title,
220
+ description: description,
221
+ actions: actions,
222
+ placement: resolvedPlacement,
223
+ shown: !isClosing,
224
+ width: width,
225
+ maxHeightRatio: maxHeightRatio,
226
+ inset: inset,
227
+ showHandle: showHandle,
228
+ dismissOnBackdrop: dismissOnBackdrop,
229
+ onDismiss: close,
230
+ panelStyle: panelStyle,
231
+ panelClassName: panelClassName,
232
+ containerStyle: containerStyle,
233
+ containerClassName: containerClassName,
234
+ style: style,
235
+ children: children
139
236
  })]
140
237
  })
141
238
  })
142
239
  });
143
240
  }
241
+
242
+ /**
243
+ * Renders the dialog's body: optional declarative title + description, any
244
+ * `children`, then the action row. Shared by the centered panel and the
245
+ * side/bottom sheet so all placements present identical content. The
246
+ * `titleId`/`descriptionId` are wired by the caller onto the `role="dialog"`
247
+ * element for `aria-labelledby` / `aria-describedby`.
248
+ */
249
+ function DialogBody({
250
+ titleId,
251
+ descriptionId,
252
+ title,
253
+ description,
254
+ actions,
255
+ children
256
+ }) {
257
+ const theme = (0, _useTheme.useTheme)();
258
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
259
+ children: [title ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
260
+ nativeID: titleId,
261
+ style: {
262
+ fontSize: 22,
263
+ fontWeight: '600',
264
+ color: theme.colors.text,
265
+ paddingBottom: description ? 4 : 16,
266
+ lineHeight: 30
267
+ },
268
+ children: title
269
+ }) : null, description ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
270
+ nativeID: descriptionId,
271
+ style: {
272
+ fontSize: 16,
273
+ color: theme.colors.textSecondary,
274
+ paddingBottom: 16,
275
+ lineHeight: 22
276
+ },
277
+ children: description
278
+ }) : null, children, actions && actions.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionRow, {
279
+ actions: actions
280
+ }) : null]
281
+ });
282
+ }
144
283
  function DialogPanel({
145
284
  testID,
146
285
  label,
@@ -148,13 +287,14 @@ function DialogPanel({
148
287
  description,
149
288
  actions,
150
289
  style,
290
+ maxWidth,
151
291
  isClosing,
152
292
  children
153
293
  }) {
154
294
  const theme = (0, _useTheme.useTheme)();
155
295
  const titleId = (0, _react.useId)();
156
296
  const descriptionId = (0, _react.useId)();
157
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
297
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
158
298
  role: "dialog",
159
299
  "aria-label": label,
160
300
  "aria-labelledby": title ? titleId : undefined,
@@ -167,7 +307,7 @@ function DialogPanel({
167
307
  position: 'relative',
168
308
  borderRadius: 20,
169
309
  width: '100%',
170
- maxWidth: 480,
310
+ maxWidth,
171
311
  backgroundColor: theme.colors.background,
172
312
  borderWidth: 1,
173
313
  borderColor: theme.isDark ? 'rgba(255,255,255,0.1)' : 'rgba(0,0,0,0.1)',
@@ -185,30 +325,194 @@ function DialogPanel({
185
325
  } : {
186
326
  animation: 'bloomDialogZoomFadeIn cubic-bezier(0.16, 1, 0.3, 1) 0.3s'
187
327
  }, style],
188
- children: [title ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
189
- nativeID: titleId,
190
- style: {
191
- fontSize: 22,
192
- fontWeight: '600',
193
- color: theme.colors.text,
194
- paddingBottom: description ? 4 : 16,
195
- lineHeight: 30
196
- },
197
- children: title
198
- }) : null, description ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
199
- nativeID: descriptionId,
200
- style: {
201
- fontSize: 16,
202
- color: theme.colors.textSecondary,
203
- paddingBottom: 16,
204
- lineHeight: 22
205
- },
206
- children: description
207
- }) : null, children, actions && actions.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionRow, {
208
- actions: actions
209
- }) : null]
328
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DialogBody, {
329
+ titleId: titleId,
330
+ descriptionId: descriptionId,
331
+ title: title,
332
+ description: description,
333
+ actions: actions,
334
+ children: children
335
+ })
336
+ });
337
+ }
338
+ /**
339
+ * Side-sheet / bottom-sheet surface for the `left`/`right`/`bottom`
340
+ * placements. Pure CSS transitions (the `responsive-sheet` technique): the
341
+ * node stays mounted through the exit while a `shown` flag drives the
342
+ * transform/opacity, so both directions animate without reanimated `exiting`.
343
+ */
344
+ function SheetSurface({
345
+ testID,
346
+ label,
347
+ title,
348
+ description,
349
+ actions,
350
+ placement,
351
+ shown,
352
+ width,
353
+ maxHeightRatio,
354
+ inset,
355
+ showHandle,
356
+ dismissOnBackdrop,
357
+ onDismiss,
358
+ panelStyle,
359
+ panelClassName,
360
+ containerStyle,
361
+ containerClassName,
362
+ style,
363
+ children
364
+ }) {
365
+ const theme = (0, _useTheme.useTheme)();
366
+ const titleId = (0, _react.useId)();
367
+ const descriptionId = (0, _react.useId)();
368
+ const {
369
+ width: viewportWidth,
370
+ height: viewportHeight
371
+ } = (0, _reactNative.useWindowDimensions)();
372
+
373
+ // Defer the entry transition by a frame so the start state paints before the
374
+ // browser animates to `shown`. `entered` is false on the first committed
375
+ // frame, then flips true so the CSS transition runs.
376
+ const frameRef = (0, _react.useRef)(null);
377
+ const [entered, setEntered] = (0, _react.useState)(false);
378
+ (0, _react.useEffect)(() => {
379
+ frameRef.current = scheduleFrame(() => {
380
+ frameRef.current = scheduleFrame(() => setEntered(true));
381
+ });
382
+ return () => {
383
+ if (frameRef.current !== null) cancelFrame(frameRef.current);
384
+ frameRef.current = null;
385
+ };
386
+ }, []);
387
+ const visible = shown && entered;
388
+ const isBottom = placement === 'bottom';
389
+ const panelTransition = (0, _react.useMemo)(() => ({
390
+ transitionProperty: 'transform, opacity',
391
+ transitionDuration: `${_placement.ANIMATION_DURATION}ms`,
392
+ transitionTimingFunction: _placement.EASE_OUT
393
+ }), []);
394
+ const backdropTransition = (0, _react.useMemo)(() => ({
395
+ transitionProperty: 'opacity',
396
+ transitionDuration: `${_placement.ANIMATION_DURATION}ms`,
397
+ transitionTimingFunction: _placement.EASE_OUT
398
+ }), []);
399
+ const panelGeometry = (0, _react.useMemo)(() => {
400
+ if (isBottom) {
401
+ return {
402
+ left: 0,
403
+ right: 0,
404
+ bottom: 0,
405
+ maxHeight: Math.round(viewportHeight * maxHeightRatio),
406
+ borderTopLeftRadius: _placement.PANEL_RADIUS,
407
+ borderTopRightRadius: _placement.PANEL_RADIUS,
408
+ transform: [{
409
+ translateY: visible ? 0 : '100%'
410
+ }],
411
+ opacity: visible ? 1 : 0
412
+ };
413
+ }
414
+ const insetTop = inset?.top ?? 0;
415
+ const insetBottom = inset?.bottom ?? 0;
416
+ const insetLeft = inset?.left ?? 0;
417
+ const insetRight = inset?.right ?? 0;
418
+ const anchorInset = placement === 'left' ? insetLeft : insetRight;
419
+ const oppositeInset = placement === 'left' ? insetRight : insetLeft;
420
+ const available = viewportWidth - anchorInset - oppositeInset - _placement.SIDE_SHEET_MIN_GUTTER;
421
+ const cappedWidth = Math.max(0, Math.min(width, available));
422
+ const hiddenSign = placement === 'left' ? '-100%' : '100%';
423
+ return {
424
+ top: insetTop,
425
+ bottom: insetBottom,
426
+ [placement]: anchorInset,
427
+ width: cappedWidth,
428
+ borderRadius: _placement.PANEL_RADIUS,
429
+ transform: [{
430
+ translateX: visible ? 0 : hiddenSign
431
+ }],
432
+ opacity: visible ? 1 : 0
433
+ };
434
+ }, [isBottom, visible, placement, width, inset, viewportWidth, viewportHeight, maxHeightRatio]);
435
+ const handleBackdropPress = (0, _react.useCallback)(() => {
436
+ if (dismissOnBackdrop) onDismiss();
437
+ }, [dismissOnBackdrop, onDismiss]);
438
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
439
+ style: [sheetStyles.root, containerStyle],
440
+ ...(containerClassName ? {
441
+ className: containerClassName
442
+ } : {}),
443
+ pointerEvents: "box-none",
444
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
445
+ testID: testID ? `${testID}-backdrop` : _placement.DIALOG_SHEET_BACKDROP_TESTID,
446
+ accessibilityRole: "button",
447
+ accessibilityLabel: label ? `Dismiss ${label}` : 'Dismiss dialog',
448
+ onPress: handleBackdropPress,
449
+ disabled: !dismissOnBackdrop,
450
+ style: [sheetStyles.backdrop, backdropTransition, {
451
+ opacity: visible ? _placement.SHEET_BACKDROP_OPACITY : 0
452
+ }]
453
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
454
+ role: "dialog",
455
+ "aria-label": label,
456
+ "aria-labelledby": title ? titleId : undefined,
457
+ "aria-describedby": description ? descriptionId : undefined,
458
+ accessibilityViewIsModal: true,
459
+ testID: testID,
460
+ onStartShouldSetResponder: () => true,
461
+ onResponderRelease: stopPropagation,
462
+ onClick: stopPropagation,
463
+ ...(panelClassName ? {
464
+ className: panelClassName
465
+ } : {}),
466
+ style: [sheetStyles.panel, {
467
+ backgroundColor: theme.colors.background,
468
+ shadowColor: theme.colors.shadow
469
+ }, panelGeometry, panelTransition, panelStyle, style],
470
+ pointerEvents: "auto",
471
+ children: [isBottom && showHandle ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
472
+ style: sheetStyles.handleRow,
473
+ pointerEvents: "none",
474
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
475
+ style: [sheetStyles.handle, {
476
+ backgroundColor: theme.colors.border
477
+ }]
478
+ })
479
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
480
+ style: sheetStyles.body,
481
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DialogBody, {
482
+ titleId: titleId,
483
+ descriptionId: descriptionId,
484
+ title: title,
485
+ description: description,
486
+ actions: actions,
487
+ children: children
488
+ })
489
+ })]
490
+ })]
210
491
  });
211
492
  }
493
+
494
+ /**
495
+ * Opaque token returned by `scheduleFrame`. `requestAnimationFrame` returns a
496
+ * number; the `setTimeout` fallback returns a timer handle.
497
+ */
498
+
499
+ function scheduleFrame(cb) {
500
+ if (typeof requestAnimationFrame === 'function') {
501
+ return {
502
+ raf: requestAnimationFrame(cb)
503
+ };
504
+ }
505
+ return {
506
+ timer: setTimeout(cb, 0)
507
+ };
508
+ }
509
+ function cancelFrame(token) {
510
+ if ('raf' in token) {
511
+ if (typeof cancelAnimationFrame === 'function') cancelAnimationFrame(token.raf);
512
+ return;
513
+ }
514
+ clearTimeout(token.timer);
515
+ }
212
516
  function ActionRow({
213
517
  actions
214
518
  }) {
@@ -343,6 +647,50 @@ function AutoMountedDialog({
343
647
  onClose: onResolve
344
648
  });
345
649
  }
650
+ const sheetStyles = {
651
+ root: {
652
+ position: 'fixed',
653
+ top: 0,
654
+ left: 0,
655
+ right: 0,
656
+ bottom: 0,
657
+ zIndex: dialogZIndex.backdrop
658
+ },
659
+ backdrop: {
660
+ position: 'absolute',
661
+ top: 0,
662
+ left: 0,
663
+ right: 0,
664
+ bottom: 0,
665
+ backgroundColor: '#000'
666
+ },
667
+ panel: {
668
+ position: 'absolute',
669
+ overflow: 'hidden',
670
+ shadowOpacity: 0.18,
671
+ shadowRadius: 24,
672
+ shadowOffset: {
673
+ width: 0,
674
+ height: 8
675
+ },
676
+ zIndex: dialogZIndex.surface
677
+ },
678
+ handleRow: {
679
+ width: '100%',
680
+ alignItems: 'center',
681
+ paddingTop: 8,
682
+ paddingBottom: 4
683
+ },
684
+ handle: {
685
+ width: _placement.HANDLE_WIDTH,
686
+ height: _placement.HANDLE_HEIGHT,
687
+ borderRadius: _placement.HANDLE_RADIUS,
688
+ opacity: 0.5
689
+ },
690
+ body: {
691
+ padding: 20
692
+ }
693
+ };
346
694
 
347
695
  /**
348
696
  * CSS keyframes required for web dialog animations.
@@ -354,6 +702,9 @@ function AutoMountedDialog({
354
702
  * @keyframes bloomDialogZoomFadeIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }
355
703
  * @keyframes bloomDialogZoomFadeOut { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(0.95); } }
356
704
  * ```
705
+ *
706
+ * The `left`/`right`/`bottom` placements do NOT depend on this — they animate
707
+ * via self-contained inline CSS transitions and need no keyframe injection.
357
708
  */
358
709
  const BLOOM_DIALOG_CSS = exports.BLOOM_DIALOG_CSS = `
359
710
  @keyframes bloomDialogFadeIn { from { opacity: 0; } to { opacity: 1; } }