@oxyhq/bloom 0.15.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 (188) 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 +1 -2
  14. package/lib/commonjs/dialog/Dialog.js.map +1 -1
  15. package/lib/commonjs/dialog/Dialog.web.js +9 -6
  16. package/lib/commonjs/dialog/Dialog.web.js.map +1 -1
  17. package/lib/commonjs/dialog/index.js +0 -13
  18. package/lib/commonjs/dialog/index.js.map +1 -1
  19. package/lib/commonjs/dialog/index.web.js +0 -19
  20. package/lib/commonjs/dialog/index.web.js.map +1 -1
  21. package/lib/commonjs/index.js +0 -29
  22. package/lib/commonjs/index.js.map +1 -1
  23. package/lib/commonjs/index.web.js +6 -35
  24. package/lib/commonjs/index.web.js.map +1 -1
  25. package/lib/module/alert-dialog/AlertDialog.js +35 -27
  26. package/lib/module/alert-dialog/AlertDialog.js.map +1 -1
  27. package/lib/module/alert-dialog/index.js +2 -2
  28. package/lib/module/alert-dialog/index.js.map +1 -1
  29. package/lib/module/alert-dialog/index.web.js +2 -2
  30. package/lib/module/alert-dialog/index.web.js.map +1 -1
  31. package/lib/module/command/Command.js +27 -16
  32. package/lib/module/command/Command.js.map +1 -1
  33. package/lib/module/command/index.js +2 -2
  34. package/lib/module/command/index.js.map +1 -1
  35. package/lib/module/command/index.web.js +2 -2
  36. package/lib/module/command/index.web.js.map +1 -1
  37. package/lib/module/dialog/Dialog.js +1 -2
  38. package/lib/module/dialog/Dialog.js.map +1 -1
  39. package/lib/module/dialog/Dialog.web.js +9 -6
  40. package/lib/module/dialog/Dialog.web.js.map +1 -1
  41. package/lib/module/dialog/index.js +0 -1
  42. package/lib/module/dialog/index.js.map +1 -1
  43. package/lib/module/dialog/index.web.js +0 -1
  44. package/lib/module/dialog/index.web.js.map +1 -1
  45. package/lib/module/index.js +1 -3
  46. package/lib/module/index.js.map +1 -1
  47. package/lib/module/index.web.js +1 -3
  48. package/lib/module/index.web.js.map +1 -1
  49. package/lib/typescript/commonjs/alert-dialog/AlertDialog.d.ts +13 -12
  50. package/lib/typescript/commonjs/alert-dialog/AlertDialog.d.ts.map +1 -1
  51. package/lib/typescript/commonjs/alert-dialog/index.d.ts.map +1 -1
  52. package/lib/typescript/commonjs/alert-dialog/index.web.d.ts.map +1 -1
  53. package/lib/typescript/commonjs/command/Command.d.ts +8 -8
  54. package/lib/typescript/commonjs/command/Command.d.ts.map +1 -1
  55. package/lib/typescript/commonjs/command/index.d.ts.map +1 -1
  56. package/lib/typescript/commonjs/command/index.web.d.ts.map +1 -1
  57. package/lib/typescript/commonjs/dialog/Dialog.d.ts +1 -2
  58. package/lib/typescript/commonjs/dialog/Dialog.d.ts.map +1 -1
  59. package/lib/typescript/commonjs/dialog/Dialog.web.d.ts +2 -2
  60. package/lib/typescript/commonjs/dialog/Dialog.web.d.ts.map +1 -1
  61. package/lib/typescript/commonjs/dialog/index.d.ts +0 -2
  62. package/lib/typescript/commonjs/dialog/index.d.ts.map +1 -1
  63. package/lib/typescript/commonjs/dialog/index.web.d.ts +0 -2
  64. package/lib/typescript/commonjs/dialog/index.web.d.ts.map +1 -1
  65. package/lib/typescript/commonjs/index.d.ts +2 -4
  66. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  67. package/lib/typescript/commonjs/index.web.d.ts +2 -4
  68. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  69. package/lib/typescript/module/alert-dialog/AlertDialog.d.ts +13 -12
  70. package/lib/typescript/module/alert-dialog/AlertDialog.d.ts.map +1 -1
  71. package/lib/typescript/module/alert-dialog/index.d.ts.map +1 -1
  72. package/lib/typescript/module/alert-dialog/index.web.d.ts.map +1 -1
  73. package/lib/typescript/module/command/Command.d.ts +8 -8
  74. package/lib/typescript/module/command/Command.d.ts.map +1 -1
  75. package/lib/typescript/module/command/index.d.ts.map +1 -1
  76. package/lib/typescript/module/command/index.web.d.ts.map +1 -1
  77. package/lib/typescript/module/dialog/Dialog.d.ts +1 -2
  78. package/lib/typescript/module/dialog/Dialog.d.ts.map +1 -1
  79. package/lib/typescript/module/dialog/Dialog.web.d.ts +2 -2
  80. package/lib/typescript/module/dialog/Dialog.web.d.ts.map +1 -1
  81. package/lib/typescript/module/dialog/index.d.ts +0 -2
  82. package/lib/typescript/module/dialog/index.d.ts.map +1 -1
  83. package/lib/typescript/module/dialog/index.web.d.ts +0 -2
  84. package/lib/typescript/module/dialog/index.web.d.ts.map +1 -1
  85. package/lib/typescript/module/index.d.ts +2 -4
  86. package/lib/typescript/module/index.d.ts.map +1 -1
  87. package/lib/typescript/module/index.web.d.ts +2 -4
  88. package/lib/typescript/module/index.web.d.ts.map +1 -1
  89. package/package.json +1 -18
  90. package/src/__tests__/AlertDialog.test.tsx +122 -0
  91. package/src/__tests__/Command.test.tsx +107 -0
  92. package/src/alert-dialog/AlertDialog.tsx +46 -36
  93. package/src/alert-dialog/index.ts +2 -2
  94. package/src/alert-dialog/index.web.ts +2 -2
  95. package/src/command/Command.tsx +30 -19
  96. package/src/command/index.ts +2 -2
  97. package/src/command/index.web.ts +2 -2
  98. package/src/dialog/Dialog.tsx +1 -2
  99. package/src/dialog/Dialog.web.tsx +9 -6
  100. package/src/dialog/index.ts +0 -2
  101. package/src/dialog/index.web.ts +0 -6
  102. package/src/index.ts +0 -11
  103. package/src/index.web.ts +0 -11
  104. package/lib/commonjs/dialog/CenteredDialog.js +0 -252
  105. package/lib/commonjs/dialog/CenteredDialog.js.map +0 -1
  106. package/lib/commonjs/dialog/CenteredDialog.web.js +0 -330
  107. package/lib/commonjs/dialog/CenteredDialog.web.js.map +0 -1
  108. package/lib/commonjs/dialog/centered-dialog-tokens.js +0 -62
  109. package/lib/commonjs/dialog/centered-dialog-tokens.js.map +0 -1
  110. package/lib/commonjs/dialog/centered-dialog-types.js +0 -6
  111. package/lib/commonjs/dialog/centered-dialog-types.js.map +0 -1
  112. package/lib/commonjs/responsive-sheet/ResponsiveSheet.js +0 -97
  113. package/lib/commonjs/responsive-sheet/ResponsiveSheet.js.map +0 -1
  114. package/lib/commonjs/responsive-sheet/ResponsiveSheet.web.js +0 -84
  115. package/lib/commonjs/responsive-sheet/ResponsiveSheet.web.js.map +0 -1
  116. package/lib/commonjs/responsive-sheet/index.js +0 -19
  117. package/lib/commonjs/responsive-sheet/index.js.map +0 -1
  118. package/lib/commonjs/responsive-sheet/index.web.js +0 -19
  119. package/lib/commonjs/responsive-sheet/index.web.js.map +0 -1
  120. package/lib/commonjs/responsive-sheet/types.js +0 -6
  121. package/lib/commonjs/responsive-sheet/types.js.map +0 -1
  122. package/lib/module/dialog/CenteredDialog.js +0 -246
  123. package/lib/module/dialog/CenteredDialog.js.map +0 -1
  124. package/lib/module/dialog/CenteredDialog.web.js +0 -324
  125. package/lib/module/dialog/CenteredDialog.web.js.map +0 -1
  126. package/lib/module/dialog/centered-dialog-tokens.js +0 -58
  127. package/lib/module/dialog/centered-dialog-tokens.js.map +0 -1
  128. package/lib/module/dialog/centered-dialog-types.js +0 -4
  129. package/lib/module/dialog/centered-dialog-types.js.map +0 -1
  130. package/lib/module/responsive-sheet/ResponsiveSheet.js +0 -90
  131. package/lib/module/responsive-sheet/ResponsiveSheet.js.map +0 -1
  132. package/lib/module/responsive-sheet/ResponsiveSheet.web.js +0 -77
  133. package/lib/module/responsive-sheet/ResponsiveSheet.web.js.map +0 -1
  134. package/lib/module/responsive-sheet/index.js +0 -4
  135. package/lib/module/responsive-sheet/index.js.map +0 -1
  136. package/lib/module/responsive-sheet/index.web.js +0 -12
  137. package/lib/module/responsive-sheet/index.web.js.map +0 -1
  138. package/lib/module/responsive-sheet/types.js +0 -4
  139. package/lib/module/responsive-sheet/types.js.map +0 -1
  140. package/lib/typescript/commonjs/dialog/CenteredDialog.d.ts +0 -22
  141. package/lib/typescript/commonjs/dialog/CenteredDialog.d.ts.map +0 -1
  142. package/lib/typescript/commonjs/dialog/CenteredDialog.web.d.ts +0 -31
  143. package/lib/typescript/commonjs/dialog/CenteredDialog.web.d.ts.map +0 -1
  144. package/lib/typescript/commonjs/dialog/centered-dialog-tokens.d.ts +0 -47
  145. package/lib/typescript/commonjs/dialog/centered-dialog-tokens.d.ts.map +0 -1
  146. package/lib/typescript/commonjs/dialog/centered-dialog-types.d.ts +0 -74
  147. package/lib/typescript/commonjs/dialog/centered-dialog-types.d.ts.map +0 -1
  148. package/lib/typescript/commonjs/responsive-sheet/ResponsiveSheet.d.ts +0 -22
  149. package/lib/typescript/commonjs/responsive-sheet/ResponsiveSheet.d.ts.map +0 -1
  150. package/lib/typescript/commonjs/responsive-sheet/ResponsiveSheet.web.d.ts +0 -16
  151. package/lib/typescript/commonjs/responsive-sheet/ResponsiveSheet.web.d.ts.map +0 -1
  152. package/lib/typescript/commonjs/responsive-sheet/index.d.ts +0 -3
  153. package/lib/typescript/commonjs/responsive-sheet/index.d.ts.map +0 -1
  154. package/lib/typescript/commonjs/responsive-sheet/index.web.d.ts +0 -3
  155. package/lib/typescript/commonjs/responsive-sheet/index.web.d.ts.map +0 -1
  156. package/lib/typescript/commonjs/responsive-sheet/types.d.ts +0 -58
  157. package/lib/typescript/commonjs/responsive-sheet/types.d.ts.map +0 -1
  158. package/lib/typescript/module/dialog/CenteredDialog.d.ts +0 -22
  159. package/lib/typescript/module/dialog/CenteredDialog.d.ts.map +0 -1
  160. package/lib/typescript/module/dialog/CenteredDialog.web.d.ts +0 -31
  161. package/lib/typescript/module/dialog/CenteredDialog.web.d.ts.map +0 -1
  162. package/lib/typescript/module/dialog/centered-dialog-tokens.d.ts +0 -47
  163. package/lib/typescript/module/dialog/centered-dialog-tokens.d.ts.map +0 -1
  164. package/lib/typescript/module/dialog/centered-dialog-types.d.ts +0 -74
  165. package/lib/typescript/module/dialog/centered-dialog-types.d.ts.map +0 -1
  166. package/lib/typescript/module/responsive-sheet/ResponsiveSheet.d.ts +0 -22
  167. package/lib/typescript/module/responsive-sheet/ResponsiveSheet.d.ts.map +0 -1
  168. package/lib/typescript/module/responsive-sheet/ResponsiveSheet.web.d.ts +0 -16
  169. package/lib/typescript/module/responsive-sheet/ResponsiveSheet.web.d.ts.map +0 -1
  170. package/lib/typescript/module/responsive-sheet/index.d.ts +0 -3
  171. package/lib/typescript/module/responsive-sheet/index.d.ts.map +0 -1
  172. package/lib/typescript/module/responsive-sheet/index.web.d.ts +0 -3
  173. package/lib/typescript/module/responsive-sheet/index.web.d.ts.map +0 -1
  174. package/lib/typescript/module/responsive-sheet/types.d.ts +0 -58
  175. package/lib/typescript/module/responsive-sheet/types.d.ts.map +0 -1
  176. package/src/__tests__/CenteredDialog.test.tsx +0 -108
  177. package/src/__tests__/ResponsiveSheet.test.tsx +0 -88
  178. package/src/dialog/CenteredDialog.stories.tsx +0 -125
  179. package/src/dialog/CenteredDialog.tsx +0 -305
  180. package/src/dialog/CenteredDialog.web.tsx +0 -374
  181. package/src/dialog/centered-dialog-tokens.ts +0 -68
  182. package/src/dialog/centered-dialog-types.ts +0 -74
  183. package/src/responsive-sheet/ResponsiveSheet.stories.tsx +0 -54
  184. package/src/responsive-sheet/ResponsiveSheet.tsx +0 -88
  185. package/src/responsive-sheet/ResponsiveSheet.web.tsx +0 -76
  186. package/src/responsive-sheet/index.ts +0 -6
  187. package/src/responsive-sheet/index.web.ts +0 -14
  188. package/src/responsive-sheet/types.ts +0 -60
@@ -1,252 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.CENTERED_DIALOG_BACKDROP_TESTID = void 0;
7
- exports.CenteredDialog = CenteredDialog;
8
- var _react = _interopRequireWildcard(require("react"));
9
- var _reactNative = require("react-native");
10
- var _useInteractionState = require("../hooks/useInteractionState.js");
11
- var _Times = require("../icons/Times.js");
12
- var _useTheme = require("../theme/use-theme.js");
13
- var _index = require("../typography/index.js");
14
- var _centeredDialogTokens = require("./centered-dialog-tokens.js");
15
- var _jsxRuntime = require("react/jsx-runtime");
16
- 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); }
17
- const CLOSE_HIT_SLOP = {
18
- top: 8,
19
- bottom: 8,
20
- left: 8,
21
- right: 8
22
- };
23
-
24
- /** Stable testID for the dimmed backdrop. Overridden when a `testID` is set. */
25
- const CENTERED_DIALOG_BACKDROP_TESTID = exports.CENTERED_DIALOG_BACKDROP_TESTID = 'bloom-centered-dialog-backdrop';
26
-
27
- /**
28
- * @deprecated Use `<Dialog placement="center">` instead.
29
- *
30
- * Native variant of `<CenteredDialog>`.
31
- *
32
- * A controlled, centered modal: a transparent RN `Modal` (fade animation,
33
- * own native window) hosting a dimmed full-screen backdrop and a centered,
34
- * rounded card styled entirely from Bloom theme tokens.
35
- *
36
- * The backdrop is a sibling `Pressable` rendered BEHIND the card (absolute
37
- * filled), never a parent of it — so a tap on the card never bubbles to the
38
- * backdrop's close handler and the card never ends up nested inside the
39
- * backdrop's pressable on web.
40
- *
41
- * Dismissal: backdrop tap (when `dismissible`), the header close button, and
42
- * the Android hardware back button (`onRequestClose`) all call `onClose`.
43
- */
44
- function CenteredDialog({
45
- visible,
46
- onClose,
47
- title,
48
- dismissible = true,
49
- maxWidth = _centeredDialogTokens.DEFAULT_MAX_WIDTH,
50
- compact = true,
51
- showClose,
52
- children,
53
- footer,
54
- accessibilityLabel,
55
- closeAccessibilityLabel = 'Close dialog',
56
- backdropAccessibilityLabel = 'Dismiss dialog',
57
- cardStyle,
58
- contentStyle,
59
- testID
60
- }) {
61
- const theme = (0, _useTheme.useTheme)();
62
- const backdropPress = (0, _useInteractionState.useInteractionState)();
63
- const spacing = (0, _react.useMemo)(() => (0, _centeredDialogTokens.resolveSpacing)(compact), [compact]);
64
- const resolvedShowClose = showClose ?? Boolean(title);
65
- const hasHeader = Boolean(title) || resolvedShowClose;
66
- const handleBackdropPress = dismissible ? onClose : undefined;
67
- // Android's hardware back must always be answerable; when the dialog is
68
- // non-dismissible we still need a handler (RN requires one for transparent
69
- // modals) — make it a no-op so back does nothing rather than crash.
70
- const handleRequestClose = dismissible ? onClose : noop;
71
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Modal, {
72
- visible: visible,
73
- transparent: true,
74
- animationType: "fade",
75
- statusBarTranslucent: true,
76
- onRequestClose: handleRequestClose,
77
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
78
- style: [styles.root, {
79
- padding: _centeredDialogTokens.VIEWPORT_GUTTER
80
- }],
81
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
82
- testID: testID ? `${testID}-backdrop` : CENTERED_DIALOG_BACKDROP_TESTID,
83
- style: [styles.backdrop, {
84
- backgroundColor: theme.colors.overlay
85
- }, backdropPress.state && styles.backdropPressed],
86
- onPress: handleBackdropPress,
87
- onPressIn: backdropPress.onIn,
88
- onPressOut: backdropPress.onOut,
89
- disabled: !dismissible,
90
- accessibilityRole: "button",
91
- accessibilityLabel: backdropAccessibilityLabel
92
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
93
- testID: testID,
94
- accessibilityLabel: accessibilityLabel ?? title,
95
- style: [styles.card, {
96
- maxWidth,
97
- maxHeight: `${_centeredDialogTokens.MAX_HEIGHT_FRACTION * 100}%`,
98
- backgroundColor: theme.colors.card,
99
- borderColor: theme.colors.border,
100
- shadowColor: theme.colors.shadow
101
- }, cardStyle],
102
- children: [hasHeader ? /*#__PURE__*/(0, _jsxRuntime.jsx)(DialogHeader, {
103
- title: title,
104
- showClose: resolvedShowClose,
105
- padding: spacing.pad,
106
- gap: spacing.headerGap,
107
- closeAccessibilityLabel: closeAccessibilityLabel,
108
- onClose: onClose
109
- }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
110
- style: styles.bodyScroll,
111
- contentContainerStyle: [{
112
- padding: spacing.pad,
113
- paddingTop: hasHeader ? spacing.headerGap : spacing.pad,
114
- gap: spacing.contentGap
115
- }, contentStyle],
116
- showsVerticalScrollIndicator: false,
117
- keyboardShouldPersistTaps: "handled",
118
- children: children
119
- }), footer ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
120
- style: [styles.footer, {
121
- padding: spacing.pad,
122
- paddingTop: spacing.footerGap,
123
- borderTopColor: theme.colors.borderLight
124
- }],
125
- children: footer
126
- }) : null]
127
- })]
128
- })
129
- });
130
- }
131
- function DialogHeader({
132
- title,
133
- showClose,
134
- padding,
135
- gap,
136
- closeAccessibilityLabel,
137
- onClose
138
- }) {
139
- const theme = (0, _useTheme.useTheme)();
140
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
141
- style: [styles.header, {
142
- paddingHorizontal: padding,
143
- paddingTop: padding,
144
- gap
145
- }],
146
- children: [title ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Text, {
147
- accessibilityRole: "header",
148
- numberOfLines: 2,
149
- style: [styles.title, {
150
- color: theme.colors.text
151
- }],
152
- children: title
153
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
154
- style: styles.titleSpacer
155
- }), showClose ? /*#__PURE__*/(0, _jsxRuntime.jsx)(CloseButton, {
156
- accessibilityLabel: closeAccessibilityLabel,
157
- onPress: onClose
158
- }) : null]
159
- });
160
- }
161
- function CloseButton({
162
- accessibilityLabel,
163
- onPress
164
- }) {
165
- const theme = (0, _useTheme.useTheme)();
166
- const press = (0, _useInteractionState.useInteractionState)();
167
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
168
- onPress: onPress,
169
- onPressIn: press.onIn,
170
- onPressOut: press.onOut,
171
- hitSlop: CLOSE_HIT_SLOP,
172
- accessibilityRole: "button",
173
- accessibilityLabel: accessibilityLabel,
174
- style: [styles.closeButton, {
175
- backgroundColor: theme.colors.contrast50
176
- }, press.state && styles.closeButtonPressed],
177
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Times.TimesLarge_Stroke2_Corner0_Rounded, {
178
- size: "sm",
179
- fill: theme.colors.textSecondary
180
- })
181
- });
182
- }
183
- function noop() {
184
- /* non-dismissible: hardware back is intentionally inert */
185
- }
186
- const styles = _reactNative.StyleSheet.create({
187
- root: {
188
- flex: 1,
189
- alignItems: 'center',
190
- justifyContent: 'center'
191
- },
192
- backdrop: {
193
- // Spell out the absolute-fill rect (matches `Fill`'s canonical style)
194
- // rather than spreading the deprecated `StyleSheet.absoluteFillObject`,
195
- // which RN 0.83's generated types no longer surface on the `StyleSheet`
196
- // namespace and which downstream type-checks reject.
197
- position: 'absolute',
198
- top: 0,
199
- right: 0,
200
- bottom: 0,
201
- left: 0
202
- },
203
- // A subtle deepening on press confirms the tap-to-dismiss affordance.
204
- backdropPressed: {
205
- opacity: 0.92
206
- },
207
- card: {
208
- width: '100%',
209
- borderRadius: _centeredDialogTokens.CARD_RADIUS,
210
- borderWidth: _reactNative.StyleSheet.hairlineWidth,
211
- overflow: 'hidden',
212
- shadowOpacity: 0.18,
213
- shadowRadius: 24,
214
- shadowOffset: {
215
- width: 0,
216
- height: 8
217
- },
218
- elevation: 12
219
- },
220
- header: {
221
- flexDirection: 'row',
222
- alignItems: 'flex-start',
223
- justifyContent: 'space-between'
224
- },
225
- title: {
226
- flex: 1,
227
- fontSize: 17,
228
- fontWeight: '700',
229
- lineHeight: 22
230
- },
231
- titleSpacer: {
232
- flex: 1
233
- },
234
- closeButton: {
235
- width: 28,
236
- height: 28,
237
- borderRadius: 14,
238
- alignItems: 'center',
239
- justifyContent: 'center'
240
- },
241
- closeButtonPressed: {
242
- opacity: 0.7
243
- },
244
- bodyScroll: {
245
- flexGrow: 0,
246
- flexShrink: 1
247
- },
248
- footer: {
249
- borderTopWidth: _reactNative.StyleSheet.hairlineWidth
250
- }
251
- });
252
- //# sourceMappingURL=CenteredDialog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useInteractionState","_Times","_useTheme","_index","_centeredDialogTokens","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","CLOSE_HIT_SLOP","top","bottom","left","right","CENTERED_DIALOG_BACKDROP_TESTID","exports","CenteredDialog","visible","onClose","title","dismissible","maxWidth","DEFAULT_MAX_WIDTH","compact","showClose","children","footer","accessibilityLabel","closeAccessibilityLabel","backdropAccessibilityLabel","cardStyle","contentStyle","testID","theme","useTheme","backdropPress","useInteractionState","spacing","useMemo","resolveSpacing","resolvedShowClose","Boolean","hasHeader","handleBackdropPress","undefined","handleRequestClose","noop","jsx","Modal","transparent","animationType","statusBarTranslucent","onRequestClose","jsxs","View","style","styles","root","padding","VIEWPORT_GUTTER","Pressable","backdrop","backgroundColor","colors","overlay","state","backdropPressed","onPress","onPressIn","onIn","onPressOut","onOut","disabled","accessibilityRole","card","maxHeight","MAX_HEIGHT_FRACTION","borderColor","border","shadowColor","shadow","DialogHeader","pad","gap","headerGap","ScrollView","bodyScroll","contentContainerStyle","paddingTop","contentGap","showsVerticalScrollIndicator","keyboardShouldPersistTaps","footerGap","borderTopColor","borderLight","header","paddingHorizontal","Text","numberOfLines","color","text","titleSpacer","CloseButton","press","hitSlop","closeButton","contrast50","closeButtonPressed","TimesLarge_Stroke2_Corner0_Rounded","size","fill","textSecondary","StyleSheet","create","flex","alignItems","justifyContent","position","opacity","width","borderRadius","CARD_RADIUS","borderWidth","hairlineWidth","overflow","shadowOpacity","shadowRadius","shadowOffset","height","elevation","flexDirection","fontSize","fontWeight","lineHeight","flexGrow","flexShrink","borderTopWidth"],"sourceRoot":"../../../src","sources":["dialog/CenteredDialog.tsx"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAQA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AAEA,IAAAM,qBAAA,GAAAN,OAAA;AAMkC,IAAAO,WAAA,GAAAP,OAAA;AAAA,SAAAD,wBAAAS,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,CAAAS,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAElC,MAAMkB,cAAc,GAAG;EAAEC,GAAG,EAAE,CAAC;EAAEC,MAAM,EAAE,CAAC;EAAEC,IAAI,EAAE,CAAC;EAAEC,KAAK,EAAE;AAAE,CAAU;;AAExE;AACO,MAAMC,+BAA+B,GAAAC,OAAA,CAAAD,+BAAA,GAAG,gCAAgC;;AAE/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,cAAcA,CAAC;EAC7BC,OAAO;EACPC,OAAO;EACPC,KAAK;EACLC,WAAW,GAAG,IAAI;EAClBC,QAAQ,GAAGC,uCAAiB;EAC5BC,OAAO,GAAG,IAAI;EACdC,SAAS;EACTC,QAAQ;EACRC,MAAM;EACNC,kBAAkB;EAClBC,uBAAuB,GAAG,cAAc;EACxCC,0BAA0B,GAAG,gBAAgB;EAC7CC,SAAS;EACTC,YAAY;EACZC;AACmB,CAAC,EAAE;EACtB,MAAMC,KAAK,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EACxB,MAAMC,aAAa,GAAG,IAAAC,wCAAmB,EAAC,CAAC;EAE3C,MAAMC,OAAO,GAAG,IAAAC,cAAO,EAAC,MAAM,IAAAC,oCAAc,EAAChB,OAAO,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EACjE,MAAMiB,iBAAiB,GAAGhB,SAAS,IAAIiB,OAAO,CAACtB,KAAK,CAAC;EACrD,MAAMuB,SAAS,GAAGD,OAAO,CAACtB,KAAK,CAAC,IAAIqB,iBAAiB;EAErD,MAAMG,mBAAmB,GAAGvB,WAAW,GAAGF,OAAO,GAAG0B,SAAS;EAC7D;EACA;EACA;EACA,MAAMC,kBAAkB,GAAGzB,WAAW,GAAGF,OAAO,GAAG4B,IAAI;EAEvD,oBACE,IAAAzD,WAAA,CAAA0D,GAAA,EAAChE,YAAA,CAAAiE,KAAK;IACJ/B,OAAO,EAAEA,OAAQ;IACjBgC,WAAW;IACXC,aAAa,EAAC,MAAM;IACpBC,oBAAoB;IACpBC,cAAc,EAAEP,kBAAmB;IAAApB,QAAA,eAEnC,IAAApC,WAAA,CAAAgE,IAAA,EAACtE,YAAA,CAAAuE,IAAI;MAACC,KAAK,EAAE,CAACC,MAAM,CAACC,IAAI,EAAE;QAAEC,OAAO,EAAEC;MAAgB,CAAC,CAAE;MAAAlC,QAAA,gBACvD,IAAApC,WAAA,CAAA0D,GAAA,EAAChE,YAAA,CAAA6E,SAAS;QACR5B,MAAM,EAAEA,MAAM,GAAG,GAAGA,MAAM,WAAW,GAAGlB,+BAAgC;QACxEyC,KAAK,EAAE,CACLC,MAAM,CAACK,QAAQ,EACf;UAAEC,eAAe,EAAE7B,KAAK,CAAC8B,MAAM,CAACC;QAAQ,CAAC,EACzC7B,aAAa,CAAC8B,KAAK,IAAIT,MAAM,CAACU,eAAe,CAC7C;QACFC,OAAO,EAAExB,mBAAoB;QAC7ByB,SAAS,EAAEjC,aAAa,CAACkC,IAAK;QAC9BC,UAAU,EAAEnC,aAAa,CAACoC,KAAM;QAChCC,QAAQ,EAAE,CAACpD,WAAY;QACvBqD,iBAAiB,EAAC,QAAQ;QAC1B9C,kBAAkB,EAAEE;MAA2B,CAChD,CAAC,eAMF,IAAAxC,WAAA,CAAAgE,IAAA,EAACtE,YAAA,CAAAuE,IAAI;QACHtB,MAAM,EAAEA,MAAO;QACfL,kBAAkB,EAAEA,kBAAkB,IAAIR,KAAM;QAChDoC,KAAK,EAAE,CACLC,MAAM,CAACkB,IAAI,EACX;UACErD,QAAQ;UACRsD,SAAS,EAAE,GAAGC,yCAAmB,GAAG,GAAG,GAAG;UAC1Cd,eAAe,EAAE7B,KAAK,CAAC8B,MAAM,CAACW,IAAI;UAClCG,WAAW,EAAE5C,KAAK,CAAC8B,MAAM,CAACe,MAAM;UAChCC,WAAW,EAAE9C,KAAK,CAAC8B,MAAM,CAACiB;QAC5B,CAAC,EACDlD,SAAS,CACT;QAAAL,QAAA,GAEDiB,SAAS,gBACR,IAAArD,WAAA,CAAA0D,GAAA,EAACkC,YAAY;UACX9D,KAAK,EAAEA,KAAM;UACbK,SAAS,EAAEgB,iBAAkB;UAC7BkB,OAAO,EAAErB,OAAO,CAAC6C,GAAI;UACrBC,GAAG,EAAE9C,OAAO,CAAC+C,SAAU;UACvBxD,uBAAuB,EAAEA,uBAAwB;UACjDV,OAAO,EAAEA;QAAQ,CAClB,CAAC,GACA,IAAI,eAER,IAAA7B,WAAA,CAAA0D,GAAA,EAAChE,YAAA,CAAAsG,UAAU;UACT9B,KAAK,EAAEC,MAAM,CAAC8B,UAAW;UACzBC,qBAAqB,EAAE,CACrB;YACE7B,OAAO,EAAErB,OAAO,CAAC6C,GAAG;YACpBM,UAAU,EAAE9C,SAAS,GAAGL,OAAO,CAAC+C,SAAS,GAAG/C,OAAO,CAAC6C,GAAG;YACvDC,GAAG,EAAE9C,OAAO,CAACoD;UACf,CAAC,EACD1D,YAAY,CACZ;UACF2D,4BAA4B,EAAE,KAAM;UACpCC,yBAAyB,EAAC,SAAS;UAAAlE,QAAA,EAElCA;QAAQ,CACC,CAAC,EAEZC,MAAM,gBACL,IAAArC,WAAA,CAAA0D,GAAA,EAAChE,YAAA,CAAAuE,IAAI;UACHC,KAAK,EAAE,CACLC,MAAM,CAAC9B,MAAM,EACb;YACEgC,OAAO,EAAErB,OAAO,CAAC6C,GAAG;YACpBM,UAAU,EAAEnD,OAAO,CAACuD,SAAS;YAC7BC,cAAc,EAAE5D,KAAK,CAAC8B,MAAM,CAAC+B;UAC/B,CAAC,CACD;UAAArE,QAAA,EAEDC;QAAM,CACH,CAAC,GACL,IAAI;MAAA,CACJ,CAAC;IAAA,CACH;EAAC,CACF,CAAC;AAEZ;AAEA,SAASuD,YAAYA,CAAC;EACpB9D,KAAK;EACLK,SAAS;EACTkC,OAAO;EACPyB,GAAG;EACHvD,uBAAuB;EACvBV;AAQF,CAAC,EAAE;EACD,MAAMe,KAAK,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EAExB,oBACE,IAAA7C,WAAA,CAAAgE,IAAA,EAACtE,YAAA,CAAAuE,IAAI;IACHC,KAAK,EAAE,CACLC,MAAM,CAACuC,MAAM,EACb;MAAEC,iBAAiB,EAAEtC,OAAO;MAAE8B,UAAU,EAAE9B,OAAO;MAAEyB;IAAI,CAAC,CACxD;IAAA1D,QAAA,GAEDN,KAAK,gBACJ,IAAA9B,WAAA,CAAA0D,GAAA,EAAC5D,MAAA,CAAA8G,IAAI;MACHxB,iBAAiB,EAAC,QAAQ;MAC1ByB,aAAa,EAAE,CAAE;MACjB3C,KAAK,EAAE,CAACC,MAAM,CAACrC,KAAK,EAAE;QAAEgF,KAAK,EAAElE,KAAK,CAAC8B,MAAM,CAACqC;MAAK,CAAC,CAAE;MAAA3E,QAAA,EAEnDN;IAAK,CACF,CAAC,gBAEP,IAAA9B,WAAA,CAAA0D,GAAA,EAAChE,YAAA,CAAAuE,IAAI;MAACC,KAAK,EAAEC,MAAM,CAAC6C;IAAY,CAAE,CACnC,EACA7E,SAAS,gBACR,IAAAnC,WAAA,CAAA0D,GAAA,EAACuD,WAAW;MACV3E,kBAAkB,EAAEC,uBAAwB;MAC5CuC,OAAO,EAAEjD;IAAQ,CAClB,CAAC,GACA,IAAI;EAAA,CACJ,CAAC;AAEX;AAEA,SAASoF,WAAWA,CAAC;EACnB3E,kBAAkB;EAClBwC;AAIF,CAAC,EAAE;EACD,MAAMlC,KAAK,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EACxB,MAAMqE,KAAK,GAAG,IAAAnE,wCAAmB,EAAC,CAAC;EAEnC,oBACE,IAAA/C,WAAA,CAAA0D,GAAA,EAAChE,YAAA,CAAA6E,SAAS;IACRO,OAAO,EAAEA,OAAQ;IACjBC,SAAS,EAAEmC,KAAK,CAAClC,IAAK;IACtBC,UAAU,EAAEiC,KAAK,CAAChC,KAAM;IACxBiC,OAAO,EAAE/F,cAAe;IACxBgE,iBAAiB,EAAC,QAAQ;IAC1B9C,kBAAkB,EAAEA,kBAAmB;IACvC4B,KAAK,EAAE,CACLC,MAAM,CAACiD,WAAW,EAClB;MAAE3C,eAAe,EAAE7B,KAAK,CAAC8B,MAAM,CAAC2C;IAAW,CAAC,EAC5CH,KAAK,CAACtC,KAAK,IAAIT,MAAM,CAACmD,kBAAkB,CACxC;IAAAlF,QAAA,eAEF,IAAApC,WAAA,CAAA0D,GAAA,EAAC9D,MAAA,CAAA2H,kCAAS;MAACC,IAAI,EAAC,IAAI;MAACC,IAAI,EAAE7E,KAAK,CAAC8B,MAAM,CAACgD;IAAc,CAAE;EAAC,CAChD,CAAC;AAEhB;AAEA,SAASjE,IAAIA,CAAA,EAAS;EACpB;AAAA;AAGF,MAAMU,MAAM,GAAGwD,uBAAU,CAACC,MAAM,CAAC;EAC/BxD,IAAI,EAAE;IACJyD,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDvD,QAAQ,EAAE;IACR;IACA;IACA;IACA;IACAwD,QAAQ,EAAE,UAAU;IACpB3G,GAAG,EAAE,CAAC;IACNG,KAAK,EAAE,CAAC;IACRF,MAAM,EAAE,CAAC;IACTC,IAAI,EAAE;EACR,CAAC;EACD;EACAsD,eAAe,EAAE;IACfoD,OAAO,EAAE;EACX,CAAC;EACD5C,IAAI,EAAE;IACJ6C,KAAK,EAAE,MAAM;IACbC,YAAY,EAAEC,iCAAW;IACzBC,WAAW,EAAEV,uBAAU,CAACW,aAAa;IACrCC,QAAQ,EAAE,QAAQ;IAClBC,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,EAAE;IAChBC,YAAY,EAAE;MAAER,KAAK,EAAE,CAAC;MAAES,MAAM,EAAE;IAAE,CAAC;IACrCC,SAAS,EAAE;EACb,CAAC;EACDlC,MAAM,EAAE;IACNmC,aAAa,EAAE,KAAK;IACpBf,UAAU,EAAE,YAAY;IACxBC,cAAc,EAAE;EAClB,CAAC;EACDjG,KAAK,EAAE;IACL+F,IAAI,EAAE,CAAC;IACPiB,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,UAAU,EAAE;EACd,CAAC;EACDhC,WAAW,EAAE;IACXa,IAAI,EAAE;EACR,CAAC;EACDT,WAAW,EAAE;IACXc,KAAK,EAAE,EAAE;IACTS,MAAM,EAAE,EAAE;IACVR,YAAY,EAAE,EAAE;IAChBL,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDT,kBAAkB,EAAE;IAClBW,OAAO,EAAE;EACX,CAAC;EACDhC,UAAU,EAAE;IACVgD,QAAQ,EAAE,CAAC;IACXC,UAAU,EAAE;EACd,CAAC;EACD7G,MAAM,EAAE;IACN8G,cAAc,EAAExB,uBAAU,CAACW;EAC7B;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1,330 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.CENTERED_DIALOG_BACKDROP_TESTID = exports.BLOOM_CENTERED_DIALOG_CSS = void 0;
7
- exports.CenteredDialog = CenteredDialog;
8
- var _react = _interopRequireWildcard(require("react"));
9
- var _reactNative = require("react-native");
10
- var _reactRemoveScrollBar = require("react-remove-scroll-bar");
11
- var _useInteractionState = require("../hooks/useInteractionState.js");
12
- var _Times = require("../icons/Times.js");
13
- var _indexWeb = require("../portal/index.web.js");
14
- var _zIndex = require("../styles/z-index.js");
15
- var _useTheme = require("../theme/use-theme.js");
16
- var _index = require("../typography/index.js");
17
- var _centeredDialogTokens = require("./centered-dialog-tokens.js");
18
- var _jsxRuntime = require("react/jsx-runtime");
19
- 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); }
20
- const FADE_OUT_DURATION = 150;
21
- const CLOSE_HIT_SLOP = {
22
- top: 8,
23
- bottom: 8,
24
- left: 8,
25
- right: 8
26
- };
27
- const dialogZIndex = (0, _zIndex.createOverlayZIndex)();
28
-
29
- /** Stable testID for the dimmed backdrop. Overridden when a `testID` is set. */
30
- const CENTERED_DIALOG_BACKDROP_TESTID = exports.CENTERED_DIALOG_BACKDROP_TESTID = 'bloom-centered-dialog-backdrop';
31
- const stopPropagation = e => e.stopPropagation();
32
-
33
- /**
34
- * @deprecated Use `<Dialog placement="center">` instead.
35
- *
36
- * Web variant of `<CenteredDialog>`.
37
- *
38
- * A centered modal card rendered into the Bloom Portal at the end of
39
- * `document.body`. Identical prop surface to native — `visible`, `onClose`,
40
- * `title`, `compact`, etc. — so call sites are platform agnostic.
41
- *
42
- * Differences from the native fork (necessary, not behavioural):
43
- * - Portal + `RemoveScrollBar` lock the underlying page while open.
44
- * - `Escape` dismisses (when `dismissible`).
45
- * - A `role="dialog"` panel with `aria-label`/`aria-modal` for a11y.
46
- * - A CSS fade/zoom keyframe matches the native modal's `fade` animation;
47
- * the keyframes are injected once (idempotent) into `<head>`.
48
- *
49
- * The backdrop is a sibling element BEHIND the card, and the card stops
50
- * click/press propagation so a tap on the card never dismisses.
51
- */
52
- function CenteredDialog({
53
- visible,
54
- onClose,
55
- title,
56
- dismissible = true,
57
- maxWidth = _centeredDialogTokens.DEFAULT_MAX_WIDTH,
58
- compact = true,
59
- showClose,
60
- children,
61
- footer,
62
- accessibilityLabel,
63
- closeAccessibilityLabel = 'Close dialog',
64
- backdropAccessibilityLabel = 'Dismiss dialog',
65
- cardStyle,
66
- contentStyle,
67
- testID
68
- }) {
69
- const theme = (0, _useTheme.useTheme)();
70
- // `rendered` keeps the dialog mounted through its fade-out so a controlled
71
- // `visible` flip to `false` still plays an exit animation (matching the
72
- // native `Modal animationType="fade"`, which animates both directions).
73
- const [rendered, setRendered] = (0, _react.useState)(visible);
74
- const isClosing = rendered && !visible;
75
- useKeyframes();
76
-
77
- // Mount immediately when opened; defer unmount until the exit animation
78
- // has played when closed.
79
- (0, _react.useEffect)(() => {
80
- if (visible) {
81
- setRendered(true);
82
- return;
83
- }
84
- if (!rendered) return;
85
- const timer = setTimeout(() => setRendered(false), FADE_OUT_DURATION);
86
- return () => clearTimeout(timer);
87
- }, [visible, rendered]);
88
-
89
- // Escape-to-close while open. Scoped to the open lifetime so stacked
90
- // dialogs don't fight for the keydown — the top-most one wins via
91
- // document-level event order.
92
- (0, _react.useEffect)(() => {
93
- if (!visible || !dismissible || typeof document === 'undefined') return;
94
- const handler = e => {
95
- if (e.key === 'Escape') {
96
- e.stopPropagation();
97
- onClose();
98
- }
99
- };
100
- document.addEventListener('keydown', handler);
101
- return () => document.removeEventListener('keydown', handler);
102
- }, [visible, dismissible, onClose]);
103
- const spacing = (0, _react.useMemo)(() => (0, _centeredDialogTokens.resolveSpacing)(compact), [compact]);
104
- const resolvedShowClose = showClose ?? Boolean(title);
105
- const hasHeader = Boolean(title) || resolvedShowClose;
106
- if (!rendered) return null;
107
-
108
- // While closing, the backdrop must not re-trigger onClose (it's mid-exit).
109
- const handleBackdropPress = dismissible && !isClosing ? onClose : undefined;
110
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_indexWeb.Portal, {
111
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRemoveScrollBar.RemoveScrollBar, {}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
112
- style: [styles.root, {
113
- padding: _centeredDialogTokens.VIEWPORT_GUTTER
114
- }],
115
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
116
- testID: testID ? `${testID}-backdrop` : CENTERED_DIALOG_BACKDROP_TESTID,
117
- onPress: handleBackdropPress,
118
- disabled: !dismissible,
119
- accessibilityRole: "button",
120
- accessibilityLabel: backdropAccessibilityLabel,
121
- style: [styles.backdrop, {
122
- backgroundColor: theme.colors.overlay
123
- }, backdropAnimation(isClosing)]
124
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
125
- testID: testID,
126
- role: "dialog",
127
- "aria-modal": true,
128
- "aria-label": accessibilityLabel ?? title,
129
- onStartShouldSetResponder: returnsTrue,
130
- onResponderRelease: stopPropagation,
131
- onClick: stopPropagation,
132
- style: [styles.card, {
133
- maxWidth,
134
- maxHeight: `${_centeredDialogTokens.MAX_HEIGHT_FRACTION * 100}%`,
135
- backgroundColor: theme.colors.card,
136
- borderColor: theme.colors.border,
137
- shadowColor: theme.colors.shadow
138
- }, cardAnimation(isClosing), cardStyle],
139
- children: [hasHeader ? /*#__PURE__*/(0, _jsxRuntime.jsx)(DialogHeader, {
140
- title: title,
141
- showClose: resolvedShowClose,
142
- padding: spacing.pad,
143
- gap: spacing.headerGap,
144
- closeAccessibilityLabel: closeAccessibilityLabel,
145
- onClose: onClose
146
- }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
147
- style: styles.bodyScroll,
148
- contentContainerStyle: [{
149
- padding: spacing.pad,
150
- paddingTop: hasHeader ? spacing.headerGap : spacing.pad,
151
- gap: spacing.contentGap
152
- }, contentStyle],
153
- showsVerticalScrollIndicator: false,
154
- keyboardShouldPersistTaps: "handled",
155
- children: children
156
- }), footer ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
157
- style: [styles.footer, {
158
- padding: spacing.pad,
159
- paddingTop: spacing.footerGap,
160
- borderTopColor: theme.colors.borderLight
161
- }],
162
- children: footer
163
- }) : null]
164
- })]
165
- })]
166
- });
167
- }
168
- function DialogHeader({
169
- title,
170
- showClose,
171
- padding,
172
- gap,
173
- closeAccessibilityLabel,
174
- onClose
175
- }) {
176
- const theme = (0, _useTheme.useTheme)();
177
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
178
- style: [styles.header, {
179
- paddingHorizontal: padding,
180
- paddingTop: padding,
181
- gap
182
- }],
183
- children: [title ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Text, {
184
- accessibilityRole: "header",
185
- numberOfLines: 2,
186
- style: [styles.title, {
187
- color: theme.colors.text
188
- }],
189
- children: title
190
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
191
- style: styles.titleSpacer
192
- }), showClose ? /*#__PURE__*/(0, _jsxRuntime.jsx)(CloseButton, {
193
- accessibilityLabel: closeAccessibilityLabel,
194
- onPress: onClose
195
- }) : null]
196
- });
197
- }
198
- function CloseButton({
199
- accessibilityLabel,
200
- onPress
201
- }) {
202
- const theme = (0, _useTheme.useTheme)();
203
- const {
204
- hovered,
205
- pressed,
206
- hoverHandlers,
207
- pressHandlers
208
- } = (0, _useInteractionState.useInteractionStates)();
209
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
210
- onPress: onPress,
211
- ...hoverHandlers,
212
- ...pressHandlers,
213
- hitSlop: CLOSE_HIT_SLOP,
214
- accessibilityRole: "button",
215
- accessibilityLabel: accessibilityLabel,
216
- style: [styles.closeButton, {
217
- backgroundColor: theme.colors.contrast50
218
- }, (hovered || pressed) && styles.closeButtonActive],
219
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Times.TimesLarge_Stroke2_Corner0_Rounded, {
220
- size: "sm",
221
- fill: theme.colors.textSecondary
222
- })
223
- });
224
- }
225
- const returnsTrue = () => true;
226
- function backdropAnimation(isClosing) {
227
- return isClosing ? {
228
- animation: `bloomCenteredDialogFadeOut ease-in ${FADE_OUT_DURATION}ms forwards`
229
- } : {
230
- animation: 'bloomCenteredDialogFadeIn ease-out 150ms'
231
- };
232
- }
233
- function cardAnimation(isClosing) {
234
- return isClosing ? {
235
- animation: `bloomCenteredDialogZoomOut ease-in ${FADE_OUT_DURATION}ms forwards`
236
- } : {
237
- animation: 'bloomCenteredDialogZoomIn cubic-bezier(0.16, 1, 0.3, 1) 200ms'
238
- };
239
- }
240
- const KEYFRAMES_ID = 'bloom-centered-dialog-keyframes';
241
-
242
- /**
243
- * CSS keyframes powering the web enter/exit animation. Injected once into
244
- * `<head>` on first mount (keyed by id so re-mounts and multiple dialogs
245
- * don't duplicate the rule). Mirrors the native modal's `fade` feel with a
246
- * subtle zoom on the card.
247
- */
248
- const BLOOM_CENTERED_DIALOG_CSS = exports.BLOOM_CENTERED_DIALOG_CSS = `
249
- @keyframes bloomCenteredDialogFadeIn { from { opacity: 0; } to { opacity: 1; } }
250
- @keyframes bloomCenteredDialogFadeOut { from { opacity: 1; } to { opacity: 0; } }
251
- @keyframes bloomCenteredDialogZoomIn { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } }
252
- @keyframes bloomCenteredDialogZoomOut { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(0.96); } }
253
- `;
254
- function useKeyframes() {
255
- (0, _react.useEffect)(() => {
256
- if (typeof document === 'undefined') return;
257
- if (document.getElementById(KEYFRAMES_ID)) return;
258
- const style = document.createElement('style');
259
- style.id = KEYFRAMES_ID;
260
- style.textContent = BLOOM_CENTERED_DIALOG_CSS;
261
- document.head.appendChild(style);
262
- }, []);
263
- }
264
- const styles = _reactNative.StyleSheet.create({
265
- root: {
266
- position: 'fixed',
267
- top: 0,
268
- left: 0,
269
- right: 0,
270
- bottom: 0,
271
- zIndex: dialogZIndex.backdrop,
272
- alignItems: 'center',
273
- justifyContent: 'center',
274
- pointerEvents: 'auto'
275
- },
276
- backdrop: {
277
- position: 'fixed',
278
- top: 0,
279
- left: 0,
280
- right: 0,
281
- bottom: 0
282
- },
283
- card: {
284
- position: 'relative',
285
- width: '100%',
286
- borderRadius: _centeredDialogTokens.CARD_RADIUS,
287
- borderWidth: 1,
288
- overflow: 'hidden',
289
- shadowOpacity: 0.18,
290
- shadowRadius: 24,
291
- shadowOffset: {
292
- width: 0,
293
- height: 8
294
- },
295
- zIndex: dialogZIndex.surface
296
- },
297
- header: {
298
- flexDirection: 'row',
299
- alignItems: 'flex-start',
300
- justifyContent: 'space-between'
301
- },
302
- title: {
303
- flex: 1,
304
- fontSize: 17,
305
- fontWeight: '700',
306
- lineHeight: 22
307
- },
308
- titleSpacer: {
309
- flex: 1
310
- },
311
- closeButton: {
312
- width: 28,
313
- height: 28,
314
- borderRadius: 14,
315
- alignItems: 'center',
316
- justifyContent: 'center',
317
- cursor: 'pointer'
318
- },
319
- closeButtonActive: {
320
- opacity: 0.7
321
- },
322
- bodyScroll: {
323
- flexGrow: 0,
324
- flexShrink: 1
325
- },
326
- footer: {
327
- borderTopWidth: 1
328
- }
329
- });
330
- //# sourceMappingURL=CenteredDialog.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactRemoveScrollBar","_useInteractionState","_Times","_indexWeb","_zIndex","_useTheme","_index","_centeredDialogTokens","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FADE_OUT_DURATION","CLOSE_HIT_SLOP","top","bottom","left","right","dialogZIndex","createOverlayZIndex","CENTERED_DIALOG_BACKDROP_TESTID","exports","stopPropagation","CenteredDialog","visible","onClose","title","dismissible","maxWidth","DEFAULT_MAX_WIDTH","compact","showClose","children","footer","accessibilityLabel","closeAccessibilityLabel","backdropAccessibilityLabel","cardStyle","contentStyle","testID","theme","useTheme","rendered","setRendered","useState","isClosing","useKeyframes","useEffect","timer","setTimeout","clearTimeout","document","handler","key","addEventListener","removeEventListener","spacing","useMemo","resolveSpacing","resolvedShowClose","Boolean","hasHeader","handleBackdropPress","undefined","jsxs","Portal","jsx","RemoveScrollBar","View","style","styles","root","padding","VIEWPORT_GUTTER","Pressable","onPress","disabled","accessibilityRole","backdrop","backgroundColor","colors","overlay","backdropAnimation","role","onStartShouldSetResponder","returnsTrue","onResponderRelease","onClick","card","maxHeight","MAX_HEIGHT_FRACTION","borderColor","border","shadowColor","shadow","cardAnimation","DialogHeader","pad","gap","headerGap","ScrollView","bodyScroll","contentContainerStyle","paddingTop","contentGap","showsVerticalScrollIndicator","keyboardShouldPersistTaps","footerGap","borderTopColor","borderLight","header","paddingHorizontal","Text","numberOfLines","color","text","titleSpacer","CloseButton","hovered","pressed","hoverHandlers","pressHandlers","useInteractionStates","hitSlop","closeButton","contrast50","closeButtonActive","TimesLarge_Stroke2_Corner0_Rounded","size","fill","textSecondary","animation","KEYFRAMES_ID","BLOOM_CENTERED_DIALOG_CSS","getElementById","createElement","id","textContent","head","appendChild","StyleSheet","create","position","zIndex","alignItems","justifyContent","pointerEvents","width","borderRadius","CARD_RADIUS","borderWidth","overflow","shadowOpacity","shadowRadius","shadowOffset","height","surface","flexDirection","flex","fontSize","fontWeight","lineHeight","cursor","opacity","flexGrow","flexShrink","borderTopWidth"],"sourceRoot":"../../../src","sources":["dialog/CenteredDialog.web.tsx"],"mappings":"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","ignoreList":[]}