@oxyhq/bloom 0.31.0 → 0.32.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/alert-dialog/AlertDialog.js +69 -21
- package/lib/commonjs/alert-dialog/AlertDialog.js.map +1 -1
- package/lib/commonjs/button/Button.web.js +6 -29
- package/lib/commonjs/button/Button.web.js.map +1 -1
- package/lib/commonjs/fab/Fab.web.js +11 -2
- package/lib/commonjs/fab/Fab.web.js.map +1 -1
- package/lib/commonjs/styles/flatten-web-style.js +49 -0
- package/lib/commonjs/styles/flatten-web-style.js.map +1 -0
- package/lib/module/alert-dialog/AlertDialog.js +70 -22
- package/lib/module/alert-dialog/AlertDialog.js.map +1 -1
- package/lib/module/button/Button.web.js +6 -29
- package/lib/module/button/Button.web.js.map +1 -1
- package/lib/module/fab/Fab.web.js +11 -2
- package/lib/module/fab/Fab.web.js.map +1 -1
- package/lib/module/styles/flatten-web-style.js +45 -0
- package/lib/module/styles/flatten-web-style.js.map +1 -0
- package/lib/typescript/commonjs/alert-dialog/AlertDialog.d.ts +13 -0
- package/lib/typescript/commonjs/alert-dialog/AlertDialog.d.ts.map +1 -1
- package/lib/typescript/commonjs/alert-dialog/types.d.ts +8 -2
- package/lib/typescript/commonjs/alert-dialog/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/button/Button.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/fab/Fab.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/styles/flatten-web-style.d.ts +6 -0
- package/lib/typescript/commonjs/styles/flatten-web-style.d.ts.map +1 -0
- package/lib/typescript/module/alert-dialog/AlertDialog.d.ts +13 -0
- package/lib/typescript/module/alert-dialog/AlertDialog.d.ts.map +1 -1
- package/lib/typescript/module/alert-dialog/types.d.ts +8 -2
- package/lib/typescript/module/alert-dialog/types.d.ts.map +1 -1
- package/lib/typescript/module/button/Button.web.d.ts.map +1 -1
- package/lib/typescript/module/fab/Fab.web.d.ts.map +1 -1
- package/lib/typescript/module/styles/flatten-web-style.d.ts +6 -0
- package/lib/typescript/module/styles/flatten-web-style.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/__tests__/AlertDialog.test.tsx +72 -0
- package/src/__tests__/Fab.web.test.tsx +62 -0
- package/src/alert-dialog/AlertDialog.tsx +68 -21
- package/src/alert-dialog/types.ts +8 -2
- package/src/button/Button.web.tsx +6 -36
- package/src/fab/Fab.web.tsx +11 -2
- package/src/styles/flatten-web-style.ts +58 -0
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import React, { memo, useCallback, useEffect, useId, useMemo } from 'react';
|
|
4
4
|
import { useTheme } from "../theme/use-theme.js";
|
|
5
5
|
import { SpinnerIcon } from "../loading/SpinnerIcon.web.js";
|
|
6
|
+
import { flattenWebStyle } from "../styles/flatten-web-style.js";
|
|
6
7
|
|
|
7
8
|
// ---------------------------------------------------------------------------
|
|
8
9
|
// Geometry — mirrors the native (`Button.tsx`) impl exactly so the web button
|
|
@@ -209,32 +210,6 @@ function resolveVariantStyle(variant, size, theme) {
|
|
|
209
210
|
}
|
|
210
211
|
}
|
|
211
212
|
|
|
212
|
-
// ---------------------------------------------------------------------------
|
|
213
|
-
// Style normalization
|
|
214
|
-
//
|
|
215
|
-
// Callers idiomatically pass `style` as a React-Native `StyleProp` — most
|
|
216
|
-
// often an ARRAY (`style={[base, cond && override]}`, possibly nested and
|
|
217
|
-
// containing falsy holes from `cond && {...}`). The DOM `<button>` below needs
|
|
218
|
-
// a SINGLE plain object: spreading a raw array into an object literal produces
|
|
219
|
-
// numeric keys (`"0"`, `"1"`, …), which React then assigns onto the real
|
|
220
|
-
// `CSSStyleDeclaration`, throwing
|
|
221
|
-
// `Failed to set an indexed property [0] on 'CSSStyleDeclaration'`. Flatten the
|
|
222
|
-
// StyleProp into one object here, once, before it reaches either merge site.
|
|
223
|
-
// Later entries win, mirroring React-Native array-style precedence.
|
|
224
|
-
//
|
|
225
|
-
// `StyleNode` is a readonly-closed recursion type (RN's own `StyleProp` array
|
|
226
|
-
// member yields `readonly` sub-arrays that aren't assignable back to
|
|
227
|
-
// `StyleProp`, so it can't be recursed over directly). `ButtonProps['style']`
|
|
228
|
-
// is assignable to it, so call sites pass `style` with no cast.
|
|
229
|
-
// ---------------------------------------------------------------------------
|
|
230
|
-
|
|
231
|
-
function flattenStyle(style) {
|
|
232
|
-
if (Array.isArray(style)) {
|
|
233
|
-
return style.reduce((merged, entry) => Object.assign(merged, flattenStyle(entry)), {});
|
|
234
|
-
}
|
|
235
|
-
return style && typeof style === 'object' ? style : {};
|
|
236
|
-
}
|
|
237
|
-
|
|
238
213
|
// ---------------------------------------------------------------------------
|
|
239
214
|
// Component
|
|
240
215
|
// ---------------------------------------------------------------------------
|
|
@@ -318,9 +293,11 @@ const ButtonWebComponent = ({
|
|
|
318
293
|
const composedClassName = ['bloom-btn'].concat(resolvedVariant === 'link' ? ['bloom-btn--link'] : []).concat(className ? [className] : []).join(' ');
|
|
319
294
|
const spinnerColor = loadingColor ?? variantStyle.textColor;
|
|
320
295
|
|
|
321
|
-
// Normalize the caller's `style` (single object, array, or falsy)
|
|
322
|
-
// flat plain object
|
|
323
|
-
|
|
296
|
+
// Normalize the caller's `style` (single object, StyleProp array, or falsy)
|
|
297
|
+
// into ONE flat plain object here, once, so neither raw-DOM merge site below
|
|
298
|
+
// spreads a StyleProp array (which would leak numeric keys onto the button's
|
|
299
|
+
// CSSStyleDeclaration). See `flattenWebStyle` for the full rationale.
|
|
300
|
+
const resolvedStyle = flattenWebStyle(style);
|
|
324
301
|
const content = /*#__PURE__*/_jsxs(_Fragment, {
|
|
325
302
|
children: [iconPosition === 'left' && icon, children != null && (typeof children === 'string' || typeof children === 'number' ? /*#__PURE__*/_jsx("span", {
|
|
326
303
|
children: children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","useCallback","useEffect","useId","useMemo","useTheme","SpinnerIcon","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SIZE_CONFIG","small","paddingVertical","paddingHorizontal","fontSize","minHeight","medium","large","SIZE_ALIAS","sm","md","lg","icon","PILL_RADIUS","ICON_RADIUS","PRESS_SCALE","SCALE_VARIANTS","Set","STYLE_ID","BLOOM_BUTTON_CSS","useButtonCss","document","getElementById","style","createElement","id","textContent","head","appendChild","resolveVariantStyle","variant","size","theme","c","colors","sizeConfig","container","backgroundColor","primary","borderRadius","textColor","primaryForeground","ringColor","negative","negativeForeground","borderWidth","borderStyle","borderColor","border","text","background","padding","width","height","flattenStyle","Array","isArray","reduce","merged","entry","Object","assign","ButtonWebComponent","onPress","onClick","children","disabled","sizeProp","iconPosition","loading","loadingColor","accessibilityLabel","ariaLabelProp","accessibilityHint","testID","className","type","asChild","name","value","title","autoFocus","tabIndex","fullWidth","reactId","resolvedId","resolvedVariant","isIcon","isInteractionBlocked","variantStyle","containerStyle","base","fontWeight","color","undefined","has","paddingTop","paddingBottom","paddingLeft","paddingRight","handleClick","event","preventDefault","ariaLabel","composedClassName","concat","join","spinnerColor","resolvedStyle","content","body","display","alignItems","justifyContent","gap","opacity","pointerEvents","position","inset","Math","round","isValidElement","child","childProps","props","cloneElement","filter","Boolean","Button","displayName","PrimaryButton","SecondaryButton","IconButton","GhostButton","InverseButton","TextButton","OutlineButton","LinkButton","DestructiveButton"],"sourceRoot":"../../../src","sources":["button/Button.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","memo","useCallback","useEffect","useId","useMemo","useTheme","SpinnerIcon","flattenWebStyle","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SIZE_CONFIG","small","paddingVertical","paddingHorizontal","fontSize","minHeight","medium","large","SIZE_ALIAS","sm","md","lg","icon","PILL_RADIUS","ICON_RADIUS","PRESS_SCALE","SCALE_VARIANTS","Set","STYLE_ID","BLOOM_BUTTON_CSS","useButtonCss","document","getElementById","style","createElement","id","textContent","head","appendChild","resolveVariantStyle","variant","size","theme","c","colors","sizeConfig","container","backgroundColor","primary","borderRadius","textColor","primaryForeground","ringColor","negative","negativeForeground","borderWidth","borderStyle","borderColor","border","text","background","padding","width","height","ButtonWebComponent","onPress","onClick","children","disabled","sizeProp","iconPosition","loading","loadingColor","accessibilityLabel","ariaLabelProp","accessibilityHint","testID","className","type","asChild","name","value","title","autoFocus","tabIndex","fullWidth","reactId","resolvedId","resolvedVariant","isIcon","isInteractionBlocked","variantStyle","containerStyle","base","fontWeight","color","undefined","has","paddingTop","paddingBottom","paddingLeft","paddingRight","handleClick","event","preventDefault","ariaLabel","composedClassName","concat","join","spinnerColor","resolvedStyle","content","body","display","alignItems","justifyContent","gap","opacity","pointerEvents","position","inset","Math","round","isValidElement","child","childProps","props","cloneElement","filter","Boolean","Button","displayName","PrimaryButton","SecondaryButton","IconButton","GhostButton","InverseButton","TextButton","OutlineButton","LinkButton","DestructiveButton"],"sourceRoot":"../../../src","sources":["button/Button.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import React, { memo, useCallback, useEffect, useId, useMemo } from 'react';
|
|
4
4
|
import { useTheme } from "../theme/use-theme.js";
|
|
5
|
+
import { flattenWebStyle } from "../styles/flatten-web-style.js";
|
|
5
6
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
7
|
// Material-style FAB scale. `small` (40px) keeps a full 24px icon box so the
|
|
7
8
|
// glyph reads clearly; `medium` (56px) is the canonical FAB; `large` (64px) is
|
|
@@ -239,13 +240,21 @@ const FabWebComponent = ({
|
|
|
239
240
|
}, [disabled, onClick, onPress]);
|
|
240
241
|
const ariaLabel = ariaLabelProp ?? accessibilityLabel ?? label;
|
|
241
242
|
const composedClassName = ['bloom-fab'].concat(className ? [className] : []).join(' ');
|
|
243
|
+
|
|
244
|
+
// Normalize `style`/`labelStyle` (single object, StyleProp array — the native
|
|
245
|
+
// fork passes `style={[placementStyle(...), {...}, style]}` — or falsy) into
|
|
246
|
+
// ONE flat plain object each, so neither raw-DOM merge site below spreads a
|
|
247
|
+
// StyleProp array (which would leak numeric keys onto the element's
|
|
248
|
+
// CSSStyleDeclaration). See `flattenWebStyle` for the full rationale.
|
|
249
|
+
const resolvedStyle = flattenWebStyle(style);
|
|
250
|
+
const resolvedLabelStyle = flattenWebStyle(labelStyle);
|
|
242
251
|
return /*#__PURE__*/_jsxs("button", {
|
|
243
252
|
id: resolvedId,
|
|
244
253
|
type: type,
|
|
245
254
|
className: composedClassName,
|
|
246
255
|
style: {
|
|
247
256
|
...containerStyle,
|
|
248
|
-
...
|
|
257
|
+
...resolvedStyle
|
|
249
258
|
},
|
|
250
259
|
onClick: handleClick,
|
|
251
260
|
disabled: disabled,
|
|
@@ -264,7 +273,7 @@ const FabWebComponent = ({
|
|
|
264
273
|
},
|
|
265
274
|
children: content
|
|
266
275
|
}), isExtended && /*#__PURE__*/_jsx("span", {
|
|
267
|
-
style:
|
|
276
|
+
style: resolvedLabelStyle,
|
|
268
277
|
children: label
|
|
269
278
|
})]
|
|
270
279
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","useCallback","useEffect","useId","useMemo","useTheme","jsx","_jsx","jsxs","_jsxs","SIZE_CONFIG","small","diameter","iconBox","fontSize","medium","large","MIN_NUMERIC_ICON_BOX","resolveSize","size","Math","max","round","PILL_RADIUS","PRESS_SCALE","DEFAULT_OFFSET","DEFAULT_Z_INDEX","STYLE_ID","BLOOM_FAB_CSS","useFabCss","document","getElementById","style","createElement","id","textContent","head","appendChild","placementStyle","placement","offset","position","isBottom","bottom","marginTop","top","alignSelf","marginRight","marginLeft","resolveVariant","variant","c","background","card","foreground","text","ring","primary","primaryForeground","FabWebComponent","onPress","onClick","icon","children","label","disabled","accessibilityLabel","ariaLabelProp","accessibilityHint","labelStyle","className","testID","zIndex","title","type","theme","reactId","resolvedId","sizeConfig","isExtended","length","content","variantColors","colors","restShadow","shadow","hoverShadow","containerStyle","base","backgroundColor","color","borderRadius","height","boxShadow","fontWeight","pad","paddingLeft","paddingRight","width","handleClick","event","preventDefault","ariaLabel","composedClassName","concat","join","undefined","display","alignItems","justifyContent","Fab","displayName"],"sourceRoot":"../../../src","sources":["fab/Fab.web.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IACVC,IAAI,EACJC,WAAW,EACXC,SAAS,EACTC,KAAK,EACLC,OAAO,QAGF,OAAO;AAEd,SAASC,QAAQ,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;
|
|
1
|
+
{"version":3,"names":["React","memo","useCallback","useEffect","useId","useMemo","useTheme","flattenWebStyle","jsx","_jsx","jsxs","_jsxs","SIZE_CONFIG","small","diameter","iconBox","fontSize","medium","large","MIN_NUMERIC_ICON_BOX","resolveSize","size","Math","max","round","PILL_RADIUS","PRESS_SCALE","DEFAULT_OFFSET","DEFAULT_Z_INDEX","STYLE_ID","BLOOM_FAB_CSS","useFabCss","document","getElementById","style","createElement","id","textContent","head","appendChild","placementStyle","placement","offset","position","isBottom","bottom","marginTop","top","alignSelf","marginRight","marginLeft","resolveVariant","variant","c","background","card","foreground","text","ring","primary","primaryForeground","FabWebComponent","onPress","onClick","icon","children","label","disabled","accessibilityLabel","ariaLabelProp","accessibilityHint","labelStyle","className","testID","zIndex","title","type","theme","reactId","resolvedId","sizeConfig","isExtended","length","content","variantColors","colors","restShadow","shadow","hoverShadow","containerStyle","base","backgroundColor","color","borderRadius","height","boxShadow","fontWeight","pad","paddingLeft","paddingRight","width","handleClick","event","preventDefault","ariaLabel","composedClassName","concat","join","resolvedStyle","resolvedLabelStyle","undefined","display","alignItems","justifyContent","Fab","displayName"],"sourceRoot":"../../../src","sources":["fab/Fab.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// flattenWebStyle — StyleProp → plain CSSProperties, for raw-DOM web forks.
|
|
5
|
+
//
|
|
6
|
+
// A handful of Bloom's `.web.tsx` forks (`Button.web.tsx`, `Fab.web.tsx`)
|
|
7
|
+
// render REAL HTML elements through react-dom (`<button>`, `<span>`), NOT
|
|
8
|
+
// react-native-web components. Their `style` prop is therefore a single plain
|
|
9
|
+
// `CSSProperties` object that React commits straight to a live
|
|
10
|
+
// `CSSStyleDeclaration`.
|
|
11
|
+
//
|
|
12
|
+
// Callers, however, pass `style` as a React-Native `StyleProp` — most often an
|
|
13
|
+
// ARRAY (`style={[base, cond && override]}`, possibly nested, with falsy holes
|
|
14
|
+
// from `cond && {...}`). Spreading a raw array into an object literal produces
|
|
15
|
+
// numeric keys ("0", "1", …), which React then assigns onto the DOM node's
|
|
16
|
+
// `CSSStyleDeclaration`, throwing:
|
|
17
|
+
// `Failed to set an indexed property [0] on 'CSSStyleDeclaration'`.
|
|
18
|
+
//
|
|
19
|
+
// Why NOT `StyleSheet.flatten` (the convention the RNW-component forks such as
|
|
20
|
+
// `list/index.web.tsx` use): these raw-DOM forks have NO other react-native
|
|
21
|
+
// runtime dependency. Reaching for `StyleSheet.flatten` would couple them to
|
|
22
|
+
// the `react-native` → `react-native-web` bundler alias they otherwise never
|
|
23
|
+
// need — a coupling the jsdom test environment does not provide (its
|
|
24
|
+
// `react-native` mock stubs `flatten` as an identity no-op, so an array would
|
|
25
|
+
// pass through unflattened and the raw-DOM render would crash under test). A
|
|
26
|
+
// dependency-free flatten is provably correct in every bundling/test context,
|
|
27
|
+
// so it is the right convention for THIS sub-class of forks specifically.
|
|
28
|
+
//
|
|
29
|
+
// `StyleNode` is a readonly-closed recursion type: RN's own `StyleProp` array
|
|
30
|
+
// members are `readonly` and its `RegisteredStyle` members are branded numbers,
|
|
31
|
+
// neither of which is assignable back to `StyleProp` for direct recursion.
|
|
32
|
+
// `StyleProp<ViewStyle>` / `StyleProp<TextStyle>` ARE assignable to it, so call
|
|
33
|
+
// sites pass `style` / `labelStyle` with no cast. Later entries win, mirroring
|
|
34
|
+
// React-Native array-style precedence; falsy holes and unresolved registered-
|
|
35
|
+
// style ids (bare numbers — not resolvable without the RN runtime, and never
|
|
36
|
+
// passed to a raw-DOM fork in practice) are skipped.
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
|
|
39
|
+
export function flattenWebStyle(style) {
|
|
40
|
+
if (Array.isArray(style)) {
|
|
41
|
+
return style.reduce((merged, entry) => Object.assign(merged, flattenWebStyle(entry)), {});
|
|
42
|
+
}
|
|
43
|
+
return style && typeof style === 'object' ? style : {};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=flatten-web-style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["flattenWebStyle","style","Array","isArray","reduce","merged","entry","Object","assign"],"sourceRoot":"../../../src","sources":["styles/flatten-web-style.ts"],"mappings":";;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA,OAAO,SAASA,eAAeA,CAACC,KAAgB,EAAiB;EAC/D,IAAIC,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,EAAE;IACxB,OAAOA,KAAK,CAACG,MAAM,CACjB,CAACC,MAAM,EAAEC,KAAK,KAAKC,MAAM,CAACC,MAAM,CAACH,MAAM,EAAEL,eAAe,CAACM,KAAK,CAAC,CAAC,EAChE,CAAC,CACH,CAAC;EACH;EACA,OAAOL,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,GAAIA,KAAK,GAAqB,CAAC,CAAC;AAC3E","ignoreList":[]}
|
|
@@ -19,6 +19,19 @@ type DialogComponent = React.ComponentType<DialogProps>;
|
|
|
19
19
|
* imperative `confirm()` helper + `<AlertDialogHost />` to trigger a confirm
|
|
20
20
|
* from an event handler without owning visible state.
|
|
21
21
|
*
|
|
22
|
+
* Control mode — IMPERATIVE, not controlled. `AlertDialog` keeps its public
|
|
23
|
+
* *controlled* API (`visible` boolean + `onClose`) but internally bridges it
|
|
24
|
+
* onto the Dialog's imperative `useDialogControl()` handle, so `confirm()`
|
|
25
|
+
* drives `<Dialog>` through the EXACT uncontrolled/imperative internals
|
|
26
|
+
* Mention's `ConfirmPrompt` uses. That is the code path that actually plays the
|
|
27
|
+
* exit animation on dismiss: imperative `close()` sets `isClosing`, runs the
|
|
28
|
+
* exit animation, and fires `onClose` only once it settles. The controlled path
|
|
29
|
+
* instead fires `onClose` synchronously — and because `<AlertDialogHost />`
|
|
30
|
+
* resolves + drops the queue entry inside `onClose`, the surface would then
|
|
31
|
+
* unmount instantly, skipping the exit animation entirely. Bridging to
|
|
32
|
+
* imperative mode eliminates that fork so `confirm()` and Mention's
|
|
33
|
+
* `ConfirmPrompt` are pixel/timing identical.
|
|
34
|
+
*
|
|
22
35
|
* The centered card uses the Dialog default `maxWidth` (480px) for full visual
|
|
23
36
|
* parity with the shared confirm surface.
|
|
24
37
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertDialog.d.ts","sourceRoot":"","sources":["../../../../src/alert-dialog/AlertDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AlertDialog.d.ts","sourceRoot":"","sources":["../../../../src/alert-dialog/AlertDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,WAAW,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,KAAK,eAAe,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,kLAepD,gBAAgB,8CAsFpB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -25,8 +25,10 @@ export interface AlertDialogProps {
|
|
|
25
25
|
/** Render only the confirm button (no cancel). Defaults to `false`. */
|
|
26
26
|
hideCancel?: boolean;
|
|
27
27
|
/**
|
|
28
|
-
* Tap-outside / Escape dismisses. Defaults to `
|
|
29
|
-
*
|
|
28
|
+
* Tap-outside / Escape dismisses. Defaults to `true` — matching the shared
|
|
29
|
+
* `Dialog` default and Mention's `ConfirmPrompt`. A backdrop / Escape
|
|
30
|
+
* dismissal always resolves the confirm as cancelled (`false`), so it is
|
|
31
|
+
* safe by default; pass `false` for a truly blocking confirm.
|
|
30
32
|
*/
|
|
31
33
|
dismissible?: boolean;
|
|
32
34
|
cardStyle?: StyleProp<ViewStyle>;
|
|
@@ -39,6 +41,10 @@ export interface ConfirmOptions {
|
|
|
39
41
|
cancelLabel?: string;
|
|
40
42
|
destructive?: boolean;
|
|
41
43
|
hideCancel?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Tap-outside / Escape dismisses (resolving `false`). Defaults to `true`;
|
|
46
|
+
* pass `false` for a blocking confirm that must be answered by a button.
|
|
47
|
+
*/
|
|
42
48
|
dismissible?: boolean;
|
|
43
49
|
}
|
|
44
50
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/alert-dialog/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC;AAE1E,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,sEAAsE;IACtE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/alert-dialog/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC;AAE1E,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,sEAAsE;IACtE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.web.d.ts","sourceRoot":"","sources":["../../../../src/button/Button.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Button.web.d.ts","sourceRoot":"","sources":["../../../../src/button/Button.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EAAE,WAAW,EAA6B,MAAM,SAAS,CAAC;AAEtE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AA+ZtE,eAAO,MAAM,MAAM,yCAA2B,CAAC;AAG/C,eAAO,MAAM,aAAa,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEpE,CAAC;AAGH,eAAO,MAAM,eAAe,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEtE,CAAC;AAGH,eAAO,MAAM,UAAU,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEjE,CAAC;AAGH,eAAO,MAAM,WAAW,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAElE,CAAC;AAGH,eAAO,MAAM,aAAa,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEpE,CAAC;AAGH,eAAO,MAAM,UAAU,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEjE,CAAC;AAGH,eAAO,MAAM,aAAa,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEpE,CAAC;AAGH,eAAO,MAAM,UAAU,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEjE,CAAC;AAGH,eAAO,MAAM,iBAAiB,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAExE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fab.web.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Fab.web.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAiS3E,eAAO,MAAM,GAAG,sCAAwB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CSSProperties } from 'react';
|
|
2
|
+
import type { TextStyle, ViewStyle } from 'react-native';
|
|
3
|
+
type StyleNode = ViewStyle | TextStyle | number | false | null | undefined | '' | ReadonlyArray<StyleNode>;
|
|
4
|
+
export declare function flattenWebStyle(style: StyleNode): CSSProperties;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=flatten-web-style.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flatten-web-style.d.ts","sourceRoot":"","sources":["../../../../src/styles/flatten-web-style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAsCzD,KAAK,SAAS,GACV,SAAS,GACT,SAAS,GACT,MAAM,GACN,KAAK,GACL,IAAI,GACJ,SAAS,GACT,EAAE,GACF,aAAa,CAAC,SAAS,CAAC,CAAC;AAE7B,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,aAAa,CAQ/D"}
|
|
@@ -19,6 +19,19 @@ type DialogComponent = React.ComponentType<DialogProps>;
|
|
|
19
19
|
* imperative `confirm()` helper + `<AlertDialogHost />` to trigger a confirm
|
|
20
20
|
* from an event handler without owning visible state.
|
|
21
21
|
*
|
|
22
|
+
* Control mode — IMPERATIVE, not controlled. `AlertDialog` keeps its public
|
|
23
|
+
* *controlled* API (`visible` boolean + `onClose`) but internally bridges it
|
|
24
|
+
* onto the Dialog's imperative `useDialogControl()` handle, so `confirm()`
|
|
25
|
+
* drives `<Dialog>` through the EXACT uncontrolled/imperative internals
|
|
26
|
+
* Mention's `ConfirmPrompt` uses. That is the code path that actually plays the
|
|
27
|
+
* exit animation on dismiss: imperative `close()` sets `isClosing`, runs the
|
|
28
|
+
* exit animation, and fires `onClose` only once it settles. The controlled path
|
|
29
|
+
* instead fires `onClose` synchronously — and because `<AlertDialogHost />`
|
|
30
|
+
* resolves + drops the queue entry inside `onClose`, the surface would then
|
|
31
|
+
* unmount instantly, skipping the exit animation entirely. Bridging to
|
|
32
|
+
* imperative mode eliminates that fork so `confirm()` and Mention's
|
|
33
|
+
* `ConfirmPrompt` are pixel/timing identical.
|
|
34
|
+
*
|
|
22
35
|
* The centered card uses the Dialog default `maxWidth` (480px) for full visual
|
|
23
36
|
* parity with the shared confirm surface.
|
|
24
37
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertDialog.d.ts","sourceRoot":"","sources":["../../../../src/alert-dialog/AlertDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AlertDialog.d.ts","sourceRoot":"","sources":["../../../../src/alert-dialog/AlertDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,WAAW,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,KAAK,eAAe,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,kLAepD,gBAAgB,8CAsFpB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -25,8 +25,10 @@ export interface AlertDialogProps {
|
|
|
25
25
|
/** Render only the confirm button (no cancel). Defaults to `false`. */
|
|
26
26
|
hideCancel?: boolean;
|
|
27
27
|
/**
|
|
28
|
-
* Tap-outside / Escape dismisses. Defaults to `
|
|
29
|
-
*
|
|
28
|
+
* Tap-outside / Escape dismisses. Defaults to `true` — matching the shared
|
|
29
|
+
* `Dialog` default and Mention's `ConfirmPrompt`. A backdrop / Escape
|
|
30
|
+
* dismissal always resolves the confirm as cancelled (`false`), so it is
|
|
31
|
+
* safe by default; pass `false` for a truly blocking confirm.
|
|
30
32
|
*/
|
|
31
33
|
dismissible?: boolean;
|
|
32
34
|
cardStyle?: StyleProp<ViewStyle>;
|
|
@@ -39,6 +41,10 @@ export interface ConfirmOptions {
|
|
|
39
41
|
cancelLabel?: string;
|
|
40
42
|
destructive?: boolean;
|
|
41
43
|
hideCancel?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Tap-outside / Escape dismisses (resolving `false`). Defaults to `true`;
|
|
46
|
+
* pass `false` for a blocking confirm that must be answered by a button.
|
|
47
|
+
*/
|
|
42
48
|
dismissible?: boolean;
|
|
43
49
|
}
|
|
44
50
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/alert-dialog/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC;AAE1E,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,sEAAsE;IACtE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/alert-dialog/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC;AAE1E,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,sEAAsE;IACtE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.web.d.ts","sourceRoot":"","sources":["../../../../src/button/Button.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Button.web.d.ts","sourceRoot":"","sources":["../../../../src/button/Button.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EAAE,WAAW,EAA6B,MAAM,SAAS,CAAC;AAEtE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AA+ZtE,eAAO,MAAM,MAAM,yCAA2B,CAAC;AAG/C,eAAO,MAAM,aAAa,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEpE,CAAC;AAGH,eAAO,MAAM,eAAe,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEtE,CAAC;AAGH,eAAO,MAAM,UAAU,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEjE,CAAC;AAGH,eAAO,MAAM,WAAW,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAElE,CAAC;AAGH,eAAO,MAAM,aAAa,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEpE,CAAC;AAGH,eAAO,MAAM,UAAU,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEjE,CAAC;AAGH,eAAO,MAAM,aAAa,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEpE,CAAC;AAGH,eAAO,MAAM,UAAU,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEjE,CAAC;AAGH,eAAO,MAAM,iBAAiB,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAExE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fab.web.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Fab.web.d.ts","sourceRoot":"","sources":["../../../../src/fab/Fab.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAiS3E,eAAO,MAAM,GAAG,sCAAwB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CSSProperties } from 'react';
|
|
2
|
+
import type { TextStyle, ViewStyle } from 'react-native';
|
|
3
|
+
type StyleNode = ViewStyle | TextStyle | number | false | null | undefined | '' | ReadonlyArray<StyleNode>;
|
|
4
|
+
export declare function flattenWebStyle(style: StyleNode): CSSProperties;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=flatten-web-style.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flatten-web-style.d.ts","sourceRoot":"","sources":["../../../../src/styles/flatten-web-style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAsCzD,KAAK,SAAS,GACV,SAAS,GACT,SAAS,GACT,MAAM,GACN,KAAK,GACL,IAAI,GACJ,SAAS,GACT,EAAE,GACF,aAAa,CAAC,SAAS,CAAC,CAAC;AAE7B,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,aAAa,CAQ/D"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,10 @@ import React, { useState } from 'react';
|
|
|
2
2
|
import { act, fireEvent, render } from '@testing-library/react-native';
|
|
3
3
|
|
|
4
4
|
import { AlertDialog, AlertDialogHost, confirm } from '../alert-dialog';
|
|
5
|
+
import { createAlertDialog } from '../alert-dialog/AlertDialog';
|
|
6
|
+
import { createAlertDialogHost } from '../alert-dialog/AlertDialogHost';
|
|
5
7
|
import { getConfirmQueue, resolveConfirm } from '../alert-dialog/confirm-store';
|
|
8
|
+
import type { DialogProps } from '../dialog';
|
|
6
9
|
import { BloomThemeProvider } from '../theme/BloomThemeProvider';
|
|
7
10
|
|
|
8
11
|
function renderWithTheme(ui: React.ReactElement) {
|
|
@@ -209,4 +212,73 @@ describe('AlertDialog (built on Dialog)', () => {
|
|
|
209
212
|
await expect(result).resolves.toBe(true);
|
|
210
213
|
});
|
|
211
214
|
});
|
|
215
|
+
|
|
216
|
+
// Finding 1 (control-mode) + Finding 2 (backdrop-dismiss default). These pin
|
|
217
|
+
// the two behavioural fixes at the prop boundary between `AlertDialog` and the
|
|
218
|
+
// underlying `Dialog`, using a prop-capturing mock `Dialog` so the assertions
|
|
219
|
+
// are deterministic and platform-agnostic.
|
|
220
|
+
describe('control-mode bridge + dismiss defaults', () => {
|
|
221
|
+
function captureDialogProps() {
|
|
222
|
+
const captured: { props?: DialogProps } = {};
|
|
223
|
+
const MockDialog = (props: DialogProps) => {
|
|
224
|
+
captured.props = props;
|
|
225
|
+
return null;
|
|
226
|
+
};
|
|
227
|
+
return { captured, MockDialog };
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
it('drives the underlying Dialog imperatively (control), never the controlled `open` prop', () => {
|
|
231
|
+
const { captured, MockDialog } = captureDialogProps();
|
|
232
|
+
const TestAlertDialog = createAlertDialog(MockDialog);
|
|
233
|
+
renderWithTheme(<TestAlertDialog visible onClose={() => {}} title="Delete?" />);
|
|
234
|
+
// The whole point of the fix: `confirm()` must take the Dialog's
|
|
235
|
+
// imperative/uncontrolled branch (the one that plays the exit animation),
|
|
236
|
+
// so an imperative `control` handle is passed and the controlled `open`
|
|
237
|
+
// boolean — which would take the other branch — is never set.
|
|
238
|
+
expect(captured.props?.control).toBeDefined();
|
|
239
|
+
expect(captured.props?.open).toBeUndefined();
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
it('defaults dismissOnBackdrop to true (backdrop / Escape dismiss by default)', () => {
|
|
243
|
+
const { captured, MockDialog } = captureDialogProps();
|
|
244
|
+
const TestAlertDialog = createAlertDialog(MockDialog);
|
|
245
|
+
renderWithTheme(<TestAlertDialog visible onClose={() => {}} title="Delete?" />);
|
|
246
|
+
// Matches the shared Dialog default + Mention's ConfirmPrompt.
|
|
247
|
+
expect(captured.props?.dismissOnBackdrop).toBe(true);
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
it('still supports an opt-in blocking confirm via dismissible={false}', () => {
|
|
251
|
+
const { captured, MockDialog } = captureDialogProps();
|
|
252
|
+
const TestAlertDialog = createAlertDialog(MockDialog);
|
|
253
|
+
renderWithTheme(
|
|
254
|
+
<TestAlertDialog visible onClose={() => {}} title="Delete?" dismissible={false} />,
|
|
255
|
+
);
|
|
256
|
+
expect(captured.props?.dismissOnBackdrop).toBe(false);
|
|
257
|
+
});
|
|
258
|
+
|
|
259
|
+
it('resolves false when dismissed via backdrop / Escape (Dialog onClose) with no button press', async () => {
|
|
260
|
+
// Backdrop tap and Escape both route through the Dialog's `onClose`. Now
|
|
261
|
+
// that dismissOnBackdrop defaults true, that path is reachable by default
|
|
262
|
+
// and must resolve the confirm as cancelled (false) and drain the queue —
|
|
263
|
+
// never trigger the (potentially destructive) confirm action.
|
|
264
|
+
const captured: { onClose?: () => void } = {};
|
|
265
|
+
const MockDialog = (props: DialogProps) => {
|
|
266
|
+
captured.onClose = props.onClose;
|
|
267
|
+
return null;
|
|
268
|
+
};
|
|
269
|
+
const Host = createAlertDialogHost(createAlertDialog(MockDialog));
|
|
270
|
+
renderWithTheme(<Host />);
|
|
271
|
+
let result!: Promise<boolean>;
|
|
272
|
+
act(() => {
|
|
273
|
+
result = confirm({ title: 'Discard unsaved changes?' });
|
|
274
|
+
});
|
|
275
|
+
act(() => {
|
|
276
|
+
// Simulate the backdrop / Escape dismissal the real Dialog fires after
|
|
277
|
+
// its exit animation settles.
|
|
278
|
+
captured.onClose?.();
|
|
279
|
+
});
|
|
280
|
+
await expect(result).resolves.toBe(false);
|
|
281
|
+
expect(getConfirmQueue()).toHaveLength(0);
|
|
282
|
+
});
|
|
283
|
+
});
|
|
212
284
|
});
|
|
@@ -138,4 +138,66 @@ describe('Fab.web', () => {
|
|
|
138
138
|
expect(fab.style.width).toBe('56px');
|
|
139
139
|
expect(fab.style.height).toBe('56px');
|
|
140
140
|
});
|
|
141
|
+
|
|
142
|
+
// Regression: `style` / `labelStyle` are React-Native `StyleProp`s (array-
|
|
143
|
+
// capable — the native fork passes `style={[placementStyle(...), {...}, style]}`).
|
|
144
|
+
// Spreading a raw array into the DOM element's inline style used to produce
|
|
145
|
+
// numeric keys and throw at runtime:
|
|
146
|
+
// "Failed to set an indexed property [0] on 'CSSStyleDeclaration'".
|
|
147
|
+
describe('style prop flattening', () => {
|
|
148
|
+
it('renders without crashing when style is an array with a falsy hole', () => {
|
|
149
|
+
const showBorder = false;
|
|
150
|
+
const c = mount(
|
|
151
|
+
<Fab
|
|
152
|
+
accessibilityLabel="Add"
|
|
153
|
+
icon={<span>+</span>}
|
|
154
|
+
style={[{ marginBottom: 10 }, showBorder && { borderColor: 'rgb(9, 9, 9)' }]}
|
|
155
|
+
/>,
|
|
156
|
+
);
|
|
157
|
+
const fab = getByRole(c, 'button');
|
|
158
|
+
expect(fab.tagName).toBe('BUTTON');
|
|
159
|
+
// The array is flattened onto the button; falsy entries are skipped.
|
|
160
|
+
expect(fab.style.marginBottom).toBe('10px');
|
|
161
|
+
// The crash signature: a leaked numeric ("0") style key.
|
|
162
|
+
expect(fab.getAttribute('style') ?? '').not.toMatch(/(^|;)\s*0\s*:/);
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
it('later array entries win, mirroring RN precedence, and override the base container style', () => {
|
|
166
|
+
const c = mount(
|
|
167
|
+
<Fab
|
|
168
|
+
accessibilityLabel="Add"
|
|
169
|
+
icon={<span>+</span>}
|
|
170
|
+
// `zIndex: 7` overrides the container's default zIndex (50).
|
|
171
|
+
style={[{ zIndex: 3 }, { zIndex: 7, backgroundColor: 'rgb(1, 2, 3)' }]}
|
|
172
|
+
/>,
|
|
173
|
+
);
|
|
174
|
+
const fab = getByRole(c, 'button');
|
|
175
|
+
expect(fab.style.zIndex).toBe('7');
|
|
176
|
+
// Caller style is spread after the variant container style, so it wins.
|
|
177
|
+
expect(fab.style.backgroundColor).toBe('rgb(1, 2, 3)');
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
it('accepts a single style object', () => {
|
|
181
|
+
const c = mount(
|
|
182
|
+
<Fab accessibilityLabel="Add" icon={<span>+</span>} style={{ marginBottom: 5 }} />,
|
|
183
|
+
);
|
|
184
|
+
expect(getByRole(c, 'button').style.marginBottom).toBe('5px');
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
it('flattens an array labelStyle onto the extended-FAB label span', () => {
|
|
188
|
+
const c = mount(
|
|
189
|
+
<Fab
|
|
190
|
+
label="Compose"
|
|
191
|
+
icon={<span>+</span>}
|
|
192
|
+
labelStyle={[{ fontWeight: '700' }, false, { letterSpacing: 2 }]}
|
|
193
|
+
/>,
|
|
194
|
+
);
|
|
195
|
+
const label = getByText(c, 'Compose');
|
|
196
|
+
expect(label.tagName).toBe('SPAN');
|
|
197
|
+
expect(label.style.fontWeight).toBe('700');
|
|
198
|
+
expect(label.style.letterSpacing).toBe('2px');
|
|
199
|
+
// No leaked numeric style key from the array spread.
|
|
200
|
+
expect(label.getAttribute('style') ?? '').not.toMatch(/(^|;)\s*0\s*:/);
|
|
201
|
+
});
|
|
202
|
+
});
|
|
141
203
|
});
|