@oxyhq/bloom 0.6.8 → 0.6.10

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 (117) hide show
  1. package/lib/commonjs/accordion/Accordion.js +12 -3
  2. package/lib/commonjs/accordion/Accordion.js.map +1 -1
  3. package/lib/commonjs/button/Button.js +31 -7
  4. package/lib/commonjs/button/Button.js.map +1 -1
  5. package/lib/commonjs/card/Card.js +12 -3
  6. package/lib/commonjs/card/Card.js.map +1 -1
  7. package/lib/commonjs/dialog/CenteredDialog.js +242 -0
  8. package/lib/commonjs/dialog/CenteredDialog.js.map +1 -0
  9. package/lib/commonjs/dialog/CenteredDialog.web.js +326 -0
  10. package/lib/commonjs/dialog/CenteredDialog.web.js.map +1 -0
  11. package/lib/commonjs/dialog/centered-dialog-tokens.js +62 -0
  12. package/lib/commonjs/dialog/centered-dialog-tokens.js.map +1 -0
  13. package/lib/commonjs/dialog/centered-dialog-types.js +6 -0
  14. package/lib/commonjs/dialog/centered-dialog-types.js.map +1 -0
  15. package/lib/commonjs/dialog/index.js +13 -0
  16. package/lib/commonjs/dialog/index.js.map +1 -1
  17. package/lib/commonjs/dialog/index.web.js +19 -0
  18. package/lib/commonjs/dialog/index.web.js.map +1 -1
  19. package/lib/commonjs/index.js +14 -0
  20. package/lib/commonjs/index.js.map +1 -1
  21. package/lib/commonjs/index.web.js +14 -0
  22. package/lib/commonjs/index.web.js.map +1 -1
  23. package/lib/commonjs/segmented-control/index.js +12 -3
  24. package/lib/commonjs/segmented-control/index.js.map +1 -1
  25. package/lib/commonjs/settings-list/SettingsList.js +11 -3
  26. package/lib/commonjs/settings-list/SettingsList.js.map +1 -1
  27. package/lib/commonjs/toast/Toast.js +13 -6
  28. package/lib/commonjs/toast/Toast.js.map +1 -1
  29. package/lib/module/accordion/Accordion.js +12 -3
  30. package/lib/module/accordion/Accordion.js.map +1 -1
  31. package/lib/module/button/Button.js +31 -7
  32. package/lib/module/button/Button.js.map +1 -1
  33. package/lib/module/card/Card.js +12 -3
  34. package/lib/module/card/Card.js.map +1 -1
  35. package/lib/module/dialog/CenteredDialog.js +236 -0
  36. package/lib/module/dialog/CenteredDialog.js.map +1 -0
  37. package/lib/module/dialog/CenteredDialog.web.js +320 -0
  38. package/lib/module/dialog/CenteredDialog.web.js.map +1 -0
  39. package/lib/module/dialog/centered-dialog-tokens.js +58 -0
  40. package/lib/module/dialog/centered-dialog-tokens.js.map +1 -0
  41. package/lib/module/dialog/centered-dialog-types.js +4 -0
  42. package/lib/module/dialog/centered-dialog-types.js.map +1 -0
  43. package/lib/module/dialog/index.js +1 -0
  44. package/lib/module/dialog/index.js.map +1 -1
  45. package/lib/module/dialog/index.web.js +1 -0
  46. package/lib/module/dialog/index.web.js.map +1 -1
  47. package/lib/module/index.js +1 -1
  48. package/lib/module/index.js.map +1 -1
  49. package/lib/module/index.web.js +1 -1
  50. package/lib/module/index.web.js.map +1 -1
  51. package/lib/module/segmented-control/index.js +12 -3
  52. package/lib/module/segmented-control/index.js.map +1 -1
  53. package/lib/module/settings-list/SettingsList.js +11 -3
  54. package/lib/module/settings-list/SettingsList.js.map +1 -1
  55. package/lib/module/toast/Toast.js +13 -6
  56. package/lib/module/toast/Toast.js.map +1 -1
  57. package/lib/typescript/commonjs/accordion/Accordion.d.ts.map +1 -1
  58. package/lib/typescript/commonjs/button/Button.d.ts.map +1 -1
  59. package/lib/typescript/commonjs/card/Card.d.ts.map +1 -1
  60. package/lib/typescript/commonjs/dialog/CenteredDialog.d.ts +20 -0
  61. package/lib/typescript/commonjs/dialog/CenteredDialog.d.ts.map +1 -0
  62. package/lib/typescript/commonjs/dialog/CenteredDialog.web.d.ts +29 -0
  63. package/lib/typescript/commonjs/dialog/CenteredDialog.web.d.ts.map +1 -0
  64. package/lib/typescript/commonjs/dialog/centered-dialog-tokens.d.ts +47 -0
  65. package/lib/typescript/commonjs/dialog/centered-dialog-tokens.d.ts.map +1 -0
  66. package/lib/typescript/commonjs/dialog/centered-dialog-types.d.ts +70 -0
  67. package/lib/typescript/commonjs/dialog/centered-dialog-types.d.ts.map +1 -0
  68. package/lib/typescript/commonjs/dialog/index.d.ts +2 -0
  69. package/lib/typescript/commonjs/dialog/index.d.ts.map +1 -1
  70. package/lib/typescript/commonjs/dialog/index.web.d.ts +2 -0
  71. package/lib/typescript/commonjs/dialog/index.web.d.ts.map +1 -1
  72. package/lib/typescript/commonjs/index.d.ts +2 -2
  73. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  74. package/lib/typescript/commonjs/index.web.d.ts +2 -2
  75. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  76. package/lib/typescript/commonjs/segmented-control/index.d.ts.map +1 -1
  77. package/lib/typescript/commonjs/settings-list/SettingsList.d.ts.map +1 -1
  78. package/lib/typescript/commonjs/toast/Toast.d.ts.map +1 -1
  79. package/lib/typescript/module/accordion/Accordion.d.ts.map +1 -1
  80. package/lib/typescript/module/button/Button.d.ts.map +1 -1
  81. package/lib/typescript/module/card/Card.d.ts.map +1 -1
  82. package/lib/typescript/module/dialog/CenteredDialog.d.ts +20 -0
  83. package/lib/typescript/module/dialog/CenteredDialog.d.ts.map +1 -0
  84. package/lib/typescript/module/dialog/CenteredDialog.web.d.ts +29 -0
  85. package/lib/typescript/module/dialog/CenteredDialog.web.d.ts.map +1 -0
  86. package/lib/typescript/module/dialog/centered-dialog-tokens.d.ts +47 -0
  87. package/lib/typescript/module/dialog/centered-dialog-tokens.d.ts.map +1 -0
  88. package/lib/typescript/module/dialog/centered-dialog-types.d.ts +70 -0
  89. package/lib/typescript/module/dialog/centered-dialog-types.d.ts.map +1 -0
  90. package/lib/typescript/module/dialog/index.d.ts +2 -0
  91. package/lib/typescript/module/dialog/index.d.ts.map +1 -1
  92. package/lib/typescript/module/dialog/index.web.d.ts +2 -0
  93. package/lib/typescript/module/dialog/index.web.d.ts.map +1 -1
  94. package/lib/typescript/module/index.d.ts +2 -2
  95. package/lib/typescript/module/index.d.ts.map +1 -1
  96. package/lib/typescript/module/index.web.d.ts +2 -2
  97. package/lib/typescript/module/index.web.d.ts.map +1 -1
  98. package/lib/typescript/module/segmented-control/index.d.ts.map +1 -1
  99. package/lib/typescript/module/settings-list/SettingsList.d.ts.map +1 -1
  100. package/lib/typescript/module/toast/Toast.d.ts.map +1 -1
  101. package/package.json +1 -1
  102. package/src/__tests__/CenteredDialog.test.tsx +108 -0
  103. package/src/accordion/Accordion.tsx +9 -1
  104. package/src/button/Button.tsx +32 -6
  105. package/src/card/Card.tsx +10 -2
  106. package/src/dialog/CenteredDialog.stories.tsx +125 -0
  107. package/src/dialog/CenteredDialog.tsx +295 -0
  108. package/src/dialog/CenteredDialog.web.tsx +370 -0
  109. package/src/dialog/centered-dialog-tokens.ts +68 -0
  110. package/src/dialog/centered-dialog-types.ts +70 -0
  111. package/src/dialog/index.ts +2 -0
  112. package/src/dialog/index.web.ts +6 -0
  113. package/src/index.ts +3 -0
  114. package/src/index.web.ts +3 -0
  115. package/src/segmented-control/index.tsx +9 -1
  116. package/src/settings-list/SettingsList.tsx +8 -1
  117. package/src/toast/Toast.tsx +20 -14
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","useMemo","View","Text","Pressable","Platform","useTheme","borderRadius","space","jsx","_jsx","CardRootComponent","children","variant","style","onPress","disabled","accessibilityLabel","testID","theme","containerStyle","base","md","overflow","backgroundColor","colors","card","OS","boxShadow","shadow","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","borderWidth","borderColor","border","backgroundSecondary","pressed","opacity","accessibilityRole","accessibilityState","CardHeaderComponent","paddingHorizontal","lg","paddingTop","paddingBottom","sm","CardBodyComponent","paddingVertical","CardFooterComponent","flexDirection","alignItems","justifyContent","gap","CardTitleComponent","numberOfLines","fontSize","fontWeight","color","text","lineHeight","CardDescriptionComponent","textSecondary","Card","displayName","CardHeader","CardBody","CardFooter","CardTitle","CardDescription"],"sourceRoot":"../../../src","sources":["card/Card.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","useMemo","View","Text","Pressable","Platform","useTheme","useInteractionState","borderRadius","space","jsx","_jsx","CardRootComponent","children","variant","style","onPress","disabled","accessibilityLabel","testID","theme","state","pressed","onIn","onPressIn","onOut","onPressOut","containerStyle","base","md","overflow","backgroundColor","colors","card","OS","boxShadow","shadow","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","borderWidth","borderColor","border","backgroundSecondary","opacity","undefined","accessibilityRole","accessibilityState","CardHeaderComponent","paddingHorizontal","lg","paddingTop","paddingBottom","sm","CardBodyComponent","paddingVertical","CardFooterComponent","flexDirection","alignItems","justifyContent","gap","CardTitleComponent","numberOfLines","fontSize","fontWeight","color","text","lineHeight","CardDescriptionComponent","textSecondary","Card","displayName","CardHeader","CardBody","CardFooter","CardTitle","CardDescription"],"sourceRoot":"../../../src","sources":["card/Card.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+
3
+ import React, { useMemo } from 'react';
4
+ import { Modal, Pressable, ScrollView, StyleSheet, View } from 'react-native';
5
+ import { useInteractionState } from "../hooks/useInteractionState.js";
6
+ import { TimesLarge_Stroke2_Corner0_Rounded as CloseIcon } from "../icons/Times.js";
7
+ import { useTheme } from "../theme/use-theme.js";
8
+ import { Text } from "../typography/index.js";
9
+ import { CARD_RADIUS, DEFAULT_MAX_WIDTH, MAX_HEIGHT_FRACTION, resolveSpacing, VIEWPORT_GUTTER } from "./centered-dialog-tokens.js";
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ const CLOSE_HIT_SLOP = {
12
+ top: 8,
13
+ bottom: 8,
14
+ left: 8,
15
+ right: 8
16
+ };
17
+
18
+ /** Stable testID for the dimmed backdrop. Overridden when a `testID` is set. */
19
+ export const CENTERED_DIALOG_BACKDROP_TESTID = 'bloom-centered-dialog-backdrop';
20
+
21
+ /**
22
+ * Native variant of `<CenteredDialog>`.
23
+ *
24
+ * A controlled, centered modal: a transparent RN `Modal` (fade animation,
25
+ * own native window) hosting a dimmed full-screen backdrop and a centered,
26
+ * rounded card styled entirely from Bloom theme tokens.
27
+ *
28
+ * The backdrop is a sibling `Pressable` rendered BEHIND the card (absolute
29
+ * filled), never a parent of it — so a tap on the card never bubbles to the
30
+ * backdrop's close handler and the card never ends up nested inside the
31
+ * backdrop's pressable on web.
32
+ *
33
+ * Dismissal: backdrop tap (when `dismissible`), the header close button, and
34
+ * the Android hardware back button (`onRequestClose`) all call `onClose`.
35
+ */
36
+ export function CenteredDialog({
37
+ visible,
38
+ onClose,
39
+ title,
40
+ dismissible = true,
41
+ maxWidth = DEFAULT_MAX_WIDTH,
42
+ compact = true,
43
+ showClose,
44
+ children,
45
+ footer,
46
+ accessibilityLabel,
47
+ closeAccessibilityLabel = 'Close dialog',
48
+ backdropAccessibilityLabel = 'Dismiss dialog',
49
+ cardStyle,
50
+ contentStyle,
51
+ testID
52
+ }) {
53
+ const theme = useTheme();
54
+ const backdropPress = useInteractionState();
55
+ const spacing = useMemo(() => resolveSpacing(compact), [compact]);
56
+ const resolvedShowClose = showClose ?? Boolean(title);
57
+ const hasHeader = Boolean(title) || resolvedShowClose;
58
+ const handleBackdropPress = dismissible ? onClose : undefined;
59
+ // Android's hardware back must always be answerable; when the dialog is
60
+ // non-dismissible we still need a handler (RN requires one for transparent
61
+ // modals) — make it a no-op so back does nothing rather than crash.
62
+ const handleRequestClose = dismissible ? onClose : noop;
63
+ return /*#__PURE__*/_jsx(Modal, {
64
+ visible: visible,
65
+ transparent: true,
66
+ animationType: "fade",
67
+ statusBarTranslucent: true,
68
+ onRequestClose: handleRequestClose,
69
+ children: /*#__PURE__*/_jsxs(View, {
70
+ style: [styles.root, {
71
+ padding: VIEWPORT_GUTTER
72
+ }],
73
+ children: [/*#__PURE__*/_jsx(Pressable, {
74
+ testID: testID ? `${testID}-backdrop` : CENTERED_DIALOG_BACKDROP_TESTID,
75
+ style: [styles.backdrop, {
76
+ backgroundColor: theme.colors.overlay
77
+ }, backdropPress.state && styles.backdropPressed],
78
+ onPress: handleBackdropPress,
79
+ onPressIn: backdropPress.onIn,
80
+ onPressOut: backdropPress.onOut,
81
+ disabled: !dismissible,
82
+ accessibilityRole: "button",
83
+ accessibilityLabel: backdropAccessibilityLabel
84
+ }), /*#__PURE__*/_jsxs(View, {
85
+ testID: testID,
86
+ accessibilityLabel: accessibilityLabel ?? title,
87
+ style: [styles.card, {
88
+ maxWidth,
89
+ maxHeight: `${MAX_HEIGHT_FRACTION * 100}%`,
90
+ backgroundColor: theme.colors.card,
91
+ borderColor: theme.colors.border,
92
+ shadowColor: theme.colors.shadow
93
+ }, cardStyle],
94
+ children: [hasHeader ? /*#__PURE__*/_jsx(DialogHeader, {
95
+ title: title,
96
+ showClose: resolvedShowClose,
97
+ padding: spacing.pad,
98
+ gap: spacing.headerGap,
99
+ closeAccessibilityLabel: closeAccessibilityLabel,
100
+ onClose: onClose
101
+ }) : null, /*#__PURE__*/_jsx(ScrollView, {
102
+ style: styles.bodyScroll,
103
+ contentContainerStyle: [{
104
+ padding: spacing.pad,
105
+ paddingTop: hasHeader ? spacing.headerGap : spacing.pad,
106
+ gap: spacing.contentGap
107
+ }, contentStyle],
108
+ showsVerticalScrollIndicator: false,
109
+ keyboardShouldPersistTaps: "handled",
110
+ children: children
111
+ }), footer ? /*#__PURE__*/_jsx(View, {
112
+ style: [styles.footer, {
113
+ padding: spacing.pad,
114
+ paddingTop: spacing.footerGap,
115
+ borderTopColor: theme.colors.borderLight
116
+ }],
117
+ children: footer
118
+ }) : null]
119
+ })]
120
+ })
121
+ });
122
+ }
123
+ function DialogHeader({
124
+ title,
125
+ showClose,
126
+ padding,
127
+ gap,
128
+ closeAccessibilityLabel,
129
+ onClose
130
+ }) {
131
+ const theme = useTheme();
132
+ return /*#__PURE__*/_jsxs(View, {
133
+ style: [styles.header, {
134
+ paddingHorizontal: padding,
135
+ paddingTop: padding,
136
+ gap
137
+ }],
138
+ children: [title ? /*#__PURE__*/_jsx(Text, {
139
+ accessibilityRole: "header",
140
+ numberOfLines: 2,
141
+ style: [styles.title, {
142
+ color: theme.colors.text
143
+ }],
144
+ children: title
145
+ }) : /*#__PURE__*/_jsx(View, {
146
+ style: styles.titleSpacer
147
+ }), showClose ? /*#__PURE__*/_jsx(CloseButton, {
148
+ accessibilityLabel: closeAccessibilityLabel,
149
+ onPress: onClose
150
+ }) : null]
151
+ });
152
+ }
153
+ function CloseButton({
154
+ accessibilityLabel,
155
+ onPress
156
+ }) {
157
+ const theme = useTheme();
158
+ const press = useInteractionState();
159
+ return /*#__PURE__*/_jsx(Pressable, {
160
+ onPress: onPress,
161
+ onPressIn: press.onIn,
162
+ onPressOut: press.onOut,
163
+ hitSlop: CLOSE_HIT_SLOP,
164
+ accessibilityRole: "button",
165
+ accessibilityLabel: accessibilityLabel,
166
+ style: [styles.closeButton, {
167
+ backgroundColor: theme.colors.contrast50
168
+ }, press.state && styles.closeButtonPressed],
169
+ children: /*#__PURE__*/_jsx(CloseIcon, {
170
+ size: "sm",
171
+ fill: theme.colors.textSecondary
172
+ })
173
+ });
174
+ }
175
+ function noop() {
176
+ /* non-dismissible: hardware back is intentionally inert */
177
+ }
178
+ const styles = StyleSheet.create({
179
+ root: {
180
+ flex: 1,
181
+ alignItems: 'center',
182
+ justifyContent: 'center'
183
+ },
184
+ backdrop: {
185
+ ...StyleSheet.absoluteFillObject
186
+ },
187
+ // A subtle deepening on press confirms the tap-to-dismiss affordance.
188
+ backdropPressed: {
189
+ opacity: 0.92
190
+ },
191
+ card: {
192
+ width: '100%',
193
+ borderRadius: CARD_RADIUS,
194
+ borderWidth: StyleSheet.hairlineWidth,
195
+ overflow: 'hidden',
196
+ shadowOpacity: 0.18,
197
+ shadowRadius: 24,
198
+ shadowOffset: {
199
+ width: 0,
200
+ height: 8
201
+ },
202
+ elevation: 12
203
+ },
204
+ header: {
205
+ flexDirection: 'row',
206
+ alignItems: 'flex-start',
207
+ justifyContent: 'space-between'
208
+ },
209
+ title: {
210
+ flex: 1,
211
+ fontSize: 17,
212
+ fontWeight: '700',
213
+ lineHeight: 22
214
+ },
215
+ titleSpacer: {
216
+ flex: 1
217
+ },
218
+ closeButton: {
219
+ width: 28,
220
+ height: 28,
221
+ borderRadius: 14,
222
+ alignItems: 'center',
223
+ justifyContent: 'center'
224
+ },
225
+ closeButtonPressed: {
226
+ opacity: 0.7
227
+ },
228
+ bodyScroll: {
229
+ flexGrow: 0,
230
+ flexShrink: 1
231
+ },
232
+ footer: {
233
+ borderTopWidth: StyleSheet.hairlineWidth
234
+ }
235
+ });
236
+ //# sourceMappingURL=CenteredDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useMemo","Modal","Pressable","ScrollView","StyleSheet","View","useInteractionState","TimesLarge_Stroke2_Corner0_Rounded","CloseIcon","useTheme","Text","CARD_RADIUS","DEFAULT_MAX_WIDTH","MAX_HEIGHT_FRACTION","resolveSpacing","VIEWPORT_GUTTER","jsx","_jsx","jsxs","_jsxs","CLOSE_HIT_SLOP","top","bottom","left","right","CENTERED_DIALOG_BACKDROP_TESTID","CenteredDialog","visible","onClose","title","dismissible","maxWidth","compact","showClose","children","footer","accessibilityLabel","closeAccessibilityLabel","backdropAccessibilityLabel","cardStyle","contentStyle","testID","theme","backdropPress","spacing","resolvedShowClose","Boolean","hasHeader","handleBackdropPress","undefined","handleRequestClose","noop","transparent","animationType","statusBarTranslucent","onRequestClose","style","styles","root","padding","backdrop","backgroundColor","colors","overlay","state","backdropPressed","onPress","onPressIn","onIn","onPressOut","onOut","disabled","accessibilityRole","card","maxHeight","borderColor","border","shadowColor","shadow","DialogHeader","pad","gap","headerGap","bodyScroll","contentContainerStyle","paddingTop","contentGap","showsVerticalScrollIndicator","keyboardShouldPersistTaps","footerGap","borderTopColor","borderLight","header","paddingHorizontal","numberOfLines","color","text","titleSpacer","CloseButton","press","hitSlop","closeButton","contrast50","closeButtonPressed","size","fill","textSecondary","create","flex","alignItems","justifyContent","absoluteFillObject","opacity","width","borderRadius","borderWidth","hairlineWidth","overflow","shadowOpacity","shadowRadius","shadowOffset","height","elevation","flexDirection","fontSize","fontWeight","lineHeight","flexGrow","flexShrink","borderTopWidth"],"sourceRoot":"../../../src","sources":["dialog/CenteredDialog.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,320 @@
1
+ "use strict";
2
+
3
+ import React, { useEffect, useMemo, useState } from 'react';
4
+ import { Pressable, ScrollView, StyleSheet, View } from 'react-native';
5
+ import { RemoveScrollBar } from 'react-remove-scroll-bar';
6
+ import { useInteractionStates } from "../hooks/useInteractionState.js";
7
+ import { TimesLarge_Stroke2_Corner0_Rounded as CloseIcon } from "../icons/Times.js";
8
+ import { Portal } from "../portal/index.web.js";
9
+ import { useTheme } from "../theme/use-theme.js";
10
+ import { Text } from "../typography/index.js";
11
+ import { CARD_RADIUS, DEFAULT_MAX_WIDTH, MAX_HEIGHT_FRACTION, resolveSpacing, VIEWPORT_GUTTER } from "./centered-dialog-tokens.js";
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ const FADE_OUT_DURATION = 150;
14
+ const CLOSE_HIT_SLOP = {
15
+ top: 8,
16
+ bottom: 8,
17
+ left: 8,
18
+ right: 8
19
+ };
20
+
21
+ /** Stable testID for the dimmed backdrop. Overridden when a `testID` is set. */
22
+ export const CENTERED_DIALOG_BACKDROP_TESTID = 'bloom-centered-dialog-backdrop';
23
+ const stopPropagation = e => e.stopPropagation();
24
+
25
+ /**
26
+ * Web variant of `<CenteredDialog>`.
27
+ *
28
+ * A centered modal card rendered into the Bloom Portal at the end of
29
+ * `document.body`. Identical prop surface to native — `visible`, `onClose`,
30
+ * `title`, `compact`, etc. — so call sites are platform agnostic.
31
+ *
32
+ * Differences from the native fork (necessary, not behavioural):
33
+ * - Portal + `RemoveScrollBar` lock the underlying page while open.
34
+ * - `Escape` dismisses (when `dismissible`).
35
+ * - A `role="dialog"` panel with `aria-label`/`aria-modal` for a11y.
36
+ * - A CSS fade/zoom keyframe matches the native modal's `fade` animation;
37
+ * the keyframes are injected once (idempotent) into `<head>`.
38
+ *
39
+ * The backdrop is a sibling element BEHIND the card, and the card stops
40
+ * click/press propagation so a tap on the card never dismisses.
41
+ */
42
+ export function CenteredDialog({
43
+ visible,
44
+ onClose,
45
+ title,
46
+ dismissible = true,
47
+ maxWidth = DEFAULT_MAX_WIDTH,
48
+ compact = true,
49
+ showClose,
50
+ children,
51
+ footer,
52
+ accessibilityLabel,
53
+ closeAccessibilityLabel = 'Close dialog',
54
+ backdropAccessibilityLabel = 'Dismiss dialog',
55
+ cardStyle,
56
+ contentStyle,
57
+ testID
58
+ }) {
59
+ const theme = useTheme();
60
+ // `rendered` keeps the dialog mounted through its fade-out so a controlled
61
+ // `visible` flip to `false` still plays an exit animation (matching the
62
+ // native `Modal animationType="fade"`, which animates both directions).
63
+ const [rendered, setRendered] = useState(visible);
64
+ const isClosing = rendered && !visible;
65
+ useKeyframes();
66
+
67
+ // Mount immediately when opened; defer unmount until the exit animation
68
+ // has played when closed.
69
+ useEffect(() => {
70
+ if (visible) {
71
+ setRendered(true);
72
+ return;
73
+ }
74
+ if (!rendered) return;
75
+ const timer = setTimeout(() => setRendered(false), FADE_OUT_DURATION);
76
+ return () => clearTimeout(timer);
77
+ }, [visible, rendered]);
78
+
79
+ // Escape-to-close while open. Scoped to the open lifetime so stacked
80
+ // dialogs don't fight for the keydown — the top-most one wins via
81
+ // document-level event order.
82
+ useEffect(() => {
83
+ if (!visible || !dismissible || typeof document === 'undefined') return;
84
+ const handler = e => {
85
+ if (e.key === 'Escape') {
86
+ e.stopPropagation();
87
+ onClose();
88
+ }
89
+ };
90
+ document.addEventListener('keydown', handler);
91
+ return () => document.removeEventListener('keydown', handler);
92
+ }, [visible, dismissible, onClose]);
93
+ const spacing = useMemo(() => resolveSpacing(compact), [compact]);
94
+ const resolvedShowClose = showClose ?? Boolean(title);
95
+ const hasHeader = Boolean(title) || resolvedShowClose;
96
+ if (!rendered) return null;
97
+
98
+ // While closing, the backdrop must not re-trigger onClose (it's mid-exit).
99
+ const handleBackdropPress = dismissible && !isClosing ? onClose : undefined;
100
+ return /*#__PURE__*/_jsxs(Portal, {
101
+ children: [/*#__PURE__*/_jsx(RemoveScrollBar, {}), /*#__PURE__*/_jsxs(View, {
102
+ style: [styles.root, {
103
+ padding: VIEWPORT_GUTTER
104
+ }],
105
+ children: [/*#__PURE__*/_jsx(Pressable, {
106
+ testID: testID ? `${testID}-backdrop` : CENTERED_DIALOG_BACKDROP_TESTID,
107
+ onPress: handleBackdropPress,
108
+ disabled: !dismissible,
109
+ accessibilityRole: "button",
110
+ accessibilityLabel: backdropAccessibilityLabel,
111
+ style: [styles.backdrop, {
112
+ backgroundColor: theme.colors.overlay
113
+ }, backdropAnimation(isClosing)]
114
+ }), /*#__PURE__*/_jsxs(View, {
115
+ testID: testID,
116
+ role: "dialog",
117
+ "aria-modal": true,
118
+ "aria-label": accessibilityLabel ?? title,
119
+ onStartShouldSetResponder: returnsTrue,
120
+ onResponderRelease: stopPropagation,
121
+ onClick: stopPropagation,
122
+ style: [styles.card, {
123
+ maxWidth,
124
+ maxHeight: `${MAX_HEIGHT_FRACTION * 100}%`,
125
+ backgroundColor: theme.colors.card,
126
+ borderColor: theme.colors.border,
127
+ shadowColor: theme.colors.shadow
128
+ }, cardAnimation(isClosing), cardStyle],
129
+ children: [hasHeader ? /*#__PURE__*/_jsx(DialogHeader, {
130
+ title: title,
131
+ showClose: resolvedShowClose,
132
+ padding: spacing.pad,
133
+ gap: spacing.headerGap,
134
+ closeAccessibilityLabel: closeAccessibilityLabel,
135
+ onClose: onClose
136
+ }) : null, /*#__PURE__*/_jsx(ScrollView, {
137
+ style: styles.bodyScroll,
138
+ contentContainerStyle: [{
139
+ padding: spacing.pad,
140
+ paddingTop: hasHeader ? spacing.headerGap : spacing.pad,
141
+ gap: spacing.contentGap
142
+ }, contentStyle],
143
+ showsVerticalScrollIndicator: false,
144
+ keyboardShouldPersistTaps: "handled",
145
+ children: children
146
+ }), footer ? /*#__PURE__*/_jsx(View, {
147
+ style: [styles.footer, {
148
+ padding: spacing.pad,
149
+ paddingTop: spacing.footerGap,
150
+ borderTopColor: theme.colors.borderLight
151
+ }],
152
+ children: footer
153
+ }) : null]
154
+ })]
155
+ })]
156
+ });
157
+ }
158
+ function DialogHeader({
159
+ title,
160
+ showClose,
161
+ padding,
162
+ gap,
163
+ closeAccessibilityLabel,
164
+ onClose
165
+ }) {
166
+ const theme = useTheme();
167
+ return /*#__PURE__*/_jsxs(View, {
168
+ style: [styles.header, {
169
+ paddingHorizontal: padding,
170
+ paddingTop: padding,
171
+ gap
172
+ }],
173
+ children: [title ? /*#__PURE__*/_jsx(Text, {
174
+ accessibilityRole: "header",
175
+ numberOfLines: 2,
176
+ style: [styles.title, {
177
+ color: theme.colors.text
178
+ }],
179
+ children: title
180
+ }) : /*#__PURE__*/_jsx(View, {
181
+ style: styles.titleSpacer
182
+ }), showClose ? /*#__PURE__*/_jsx(CloseButton, {
183
+ accessibilityLabel: closeAccessibilityLabel,
184
+ onPress: onClose
185
+ }) : null]
186
+ });
187
+ }
188
+ function CloseButton({
189
+ accessibilityLabel,
190
+ onPress
191
+ }) {
192
+ const theme = useTheme();
193
+ const {
194
+ hovered,
195
+ pressed,
196
+ hoverHandlers,
197
+ pressHandlers
198
+ } = useInteractionStates();
199
+ return /*#__PURE__*/_jsx(Pressable, {
200
+ onPress: onPress,
201
+ ...hoverHandlers,
202
+ ...pressHandlers,
203
+ hitSlop: CLOSE_HIT_SLOP,
204
+ accessibilityRole: "button",
205
+ accessibilityLabel: accessibilityLabel,
206
+ style: [styles.closeButton, {
207
+ backgroundColor: theme.colors.contrast50
208
+ }, (hovered || pressed) && styles.closeButtonActive],
209
+ children: /*#__PURE__*/_jsx(CloseIcon, {
210
+ size: "sm",
211
+ fill: theme.colors.textSecondary
212
+ })
213
+ });
214
+ }
215
+ const returnsTrue = () => true;
216
+ function backdropAnimation(isClosing) {
217
+ return isClosing ? {
218
+ animation: `bloomCenteredDialogFadeOut ease-in ${FADE_OUT_DURATION}ms forwards`
219
+ } : {
220
+ animation: 'bloomCenteredDialogFadeIn ease-out 150ms'
221
+ };
222
+ }
223
+ function cardAnimation(isClosing) {
224
+ return isClosing ? {
225
+ animation: `bloomCenteredDialogZoomOut ease-in ${FADE_OUT_DURATION}ms forwards`
226
+ } : {
227
+ animation: 'bloomCenteredDialogZoomIn cubic-bezier(0.16, 1, 0.3, 1) 200ms'
228
+ };
229
+ }
230
+ const KEYFRAMES_ID = 'bloom-centered-dialog-keyframes';
231
+
232
+ /**
233
+ * CSS keyframes powering the web enter/exit animation. Injected once into
234
+ * `<head>` on first mount (keyed by id so re-mounts and multiple dialogs
235
+ * don't duplicate the rule). Mirrors the native modal's `fade` feel with a
236
+ * subtle zoom on the card.
237
+ */
238
+ export const BLOOM_CENTERED_DIALOG_CSS = `
239
+ @keyframes bloomCenteredDialogFadeIn { from { opacity: 0; } to { opacity: 1; } }
240
+ @keyframes bloomCenteredDialogFadeOut { from { opacity: 1; } to { opacity: 0; } }
241
+ @keyframes bloomCenteredDialogZoomIn { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } }
242
+ @keyframes bloomCenteredDialogZoomOut { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(0.96); } }
243
+ `;
244
+ function useKeyframes() {
245
+ useEffect(() => {
246
+ if (typeof document === 'undefined') return;
247
+ if (document.getElementById(KEYFRAMES_ID)) return;
248
+ const style = document.createElement('style');
249
+ style.id = KEYFRAMES_ID;
250
+ style.textContent = BLOOM_CENTERED_DIALOG_CSS;
251
+ document.head.appendChild(style);
252
+ }, []);
253
+ }
254
+ const styles = StyleSheet.create({
255
+ root: {
256
+ position: 'fixed',
257
+ top: 0,
258
+ left: 0,
259
+ right: 0,
260
+ bottom: 0,
261
+ zIndex: 50,
262
+ alignItems: 'center',
263
+ justifyContent: 'center',
264
+ pointerEvents: 'auto'
265
+ },
266
+ backdrop: {
267
+ position: 'fixed',
268
+ top: 0,
269
+ left: 0,
270
+ right: 0,
271
+ bottom: 0
272
+ },
273
+ card: {
274
+ position: 'relative',
275
+ width: '100%',
276
+ borderRadius: CARD_RADIUS,
277
+ borderWidth: 1,
278
+ overflow: 'hidden',
279
+ shadowOpacity: 0.18,
280
+ shadowRadius: 24,
281
+ shadowOffset: {
282
+ width: 0,
283
+ height: 8
284
+ },
285
+ zIndex: 60
286
+ },
287
+ header: {
288
+ flexDirection: 'row',
289
+ alignItems: 'flex-start',
290
+ justifyContent: 'space-between'
291
+ },
292
+ title: {
293
+ flex: 1,
294
+ fontSize: 17,
295
+ fontWeight: '700',
296
+ lineHeight: 22
297
+ },
298
+ titleSpacer: {
299
+ flex: 1
300
+ },
301
+ closeButton: {
302
+ width: 28,
303
+ height: 28,
304
+ borderRadius: 14,
305
+ alignItems: 'center',
306
+ justifyContent: 'center',
307
+ cursor: 'pointer'
308
+ },
309
+ closeButtonActive: {
310
+ opacity: 0.7
311
+ },
312
+ bodyScroll: {
313
+ flexGrow: 0,
314
+ flexShrink: 1
315
+ },
316
+ footer: {
317
+ borderTopWidth: 1
318
+ }
319
+ });
320
+ //# sourceMappingURL=CenteredDialog.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useMemo","useState","Pressable","ScrollView","StyleSheet","View","RemoveScrollBar","useInteractionStates","TimesLarge_Stroke2_Corner0_Rounded","CloseIcon","Portal","useTheme","Text","CARD_RADIUS","DEFAULT_MAX_WIDTH","MAX_HEIGHT_FRACTION","resolveSpacing","VIEWPORT_GUTTER","jsx","_jsx","jsxs","_jsxs","FADE_OUT_DURATION","CLOSE_HIT_SLOP","top","bottom","left","right","CENTERED_DIALOG_BACKDROP_TESTID","stopPropagation","e","CenteredDialog","visible","onClose","title","dismissible","maxWidth","compact","showClose","children","footer","accessibilityLabel","closeAccessibilityLabel","backdropAccessibilityLabel","cardStyle","contentStyle","testID","theme","rendered","setRendered","isClosing","useKeyframes","timer","setTimeout","clearTimeout","document","handler","key","addEventListener","removeEventListener","spacing","resolvedShowClose","Boolean","hasHeader","handleBackdropPress","undefined","style","styles","root","padding","onPress","disabled","accessibilityRole","backdrop","backgroundColor","colors","overlay","backdropAnimation","role","onStartShouldSetResponder","returnsTrue","onResponderRelease","onClick","card","maxHeight","borderColor","border","shadowColor","shadow","cardAnimation","DialogHeader","pad","gap","headerGap","bodyScroll","contentContainerStyle","paddingTop","contentGap","showsVerticalScrollIndicator","keyboardShouldPersistTaps","footerGap","borderTopColor","borderLight","header","paddingHorizontal","numberOfLines","color","text","titleSpacer","CloseButton","hovered","pressed","hoverHandlers","pressHandlers","hitSlop","closeButton","contrast50","closeButtonActive","size","fill","textSecondary","animation","KEYFRAMES_ID","BLOOM_CENTERED_DIALOG_CSS","getElementById","createElement","id","textContent","head","appendChild","create","position","zIndex","alignItems","justifyContent","pointerEvents","width","borderRadius","borderWidth","overflow","shadowOpacity","shadowRadius","shadowOffset","height","flexDirection","flex","fontSize","fontWeight","lineHeight","cursor","opacity","flexGrow","flexShrink","borderTopWidth"],"sourceRoot":"../../../src","sources":["dialog/CenteredDialog.web.tsx"],"mappings":"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","ignoreList":[]}