@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.
Files changed (40) hide show
  1. package/lib/commonjs/alert-dialog/AlertDialog.js +69 -21
  2. package/lib/commonjs/alert-dialog/AlertDialog.js.map +1 -1
  3. package/lib/commonjs/button/Button.web.js +6 -29
  4. package/lib/commonjs/button/Button.web.js.map +1 -1
  5. package/lib/commonjs/fab/Fab.web.js +11 -2
  6. package/lib/commonjs/fab/Fab.web.js.map +1 -1
  7. package/lib/commonjs/styles/flatten-web-style.js +49 -0
  8. package/lib/commonjs/styles/flatten-web-style.js.map +1 -0
  9. package/lib/module/alert-dialog/AlertDialog.js +70 -22
  10. package/lib/module/alert-dialog/AlertDialog.js.map +1 -1
  11. package/lib/module/button/Button.web.js +6 -29
  12. package/lib/module/button/Button.web.js.map +1 -1
  13. package/lib/module/fab/Fab.web.js +11 -2
  14. package/lib/module/fab/Fab.web.js.map +1 -1
  15. package/lib/module/styles/flatten-web-style.js +45 -0
  16. package/lib/module/styles/flatten-web-style.js.map +1 -0
  17. package/lib/typescript/commonjs/alert-dialog/AlertDialog.d.ts +13 -0
  18. package/lib/typescript/commonjs/alert-dialog/AlertDialog.d.ts.map +1 -1
  19. package/lib/typescript/commonjs/alert-dialog/types.d.ts +8 -2
  20. package/lib/typescript/commonjs/alert-dialog/types.d.ts.map +1 -1
  21. package/lib/typescript/commonjs/button/Button.web.d.ts.map +1 -1
  22. package/lib/typescript/commonjs/fab/Fab.web.d.ts.map +1 -1
  23. package/lib/typescript/commonjs/styles/flatten-web-style.d.ts +6 -0
  24. package/lib/typescript/commonjs/styles/flatten-web-style.d.ts.map +1 -0
  25. package/lib/typescript/module/alert-dialog/AlertDialog.d.ts +13 -0
  26. package/lib/typescript/module/alert-dialog/AlertDialog.d.ts.map +1 -1
  27. package/lib/typescript/module/alert-dialog/types.d.ts +8 -2
  28. package/lib/typescript/module/alert-dialog/types.d.ts.map +1 -1
  29. package/lib/typescript/module/button/Button.web.d.ts.map +1 -1
  30. package/lib/typescript/module/fab/Fab.web.d.ts.map +1 -1
  31. package/lib/typescript/module/styles/flatten-web-style.d.ts +6 -0
  32. package/lib/typescript/module/styles/flatten-web-style.d.ts.map +1 -0
  33. package/package.json +1 -1
  34. package/src/__tests__/AlertDialog.test.tsx +72 -0
  35. package/src/__tests__/Fab.web.test.tsx +62 -0
  36. package/src/alert-dialog/AlertDialog.tsx +68 -21
  37. package/src/alert-dialog/types.ts +8 -2
  38. package/src/button/Button.web.tsx +6 -36
  39. package/src/fab/Fab.web.tsx +11 -2
  40. 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) into one
322
- // flat plain object ONCE, so neither merge site below spreads a raw array.
323
- const resolvedStyle = flattenStyle(style);
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":";;AAAA,OAAOA,KAAK,IACVC,IAAI,EACJC,WAAW,EACXC,SAAS,EACTC,KAAK,EACLC,OAAO,QAIF,OAAO;AAEd,SAASC,QAAQ,QAAQ,uBAAoB;AAE7C,SAASC,WAAW,QAAQ,+BAA4B;AACxD,SAASC,eAAe,QAAQ,gCAA6B;;AAK7D;AACA;AACA;AACA;AACA;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAWA,MAAMC,WAA2C,GAAG;EAClDC,KAAK,EAAE;IAAEC,eAAe,EAAE,CAAC;IAAEC,iBAAiB,EAAE,EAAE;IAAEC,QAAQ,EAAE,EAAE;IAAEC,SAAS,EAAE;EAAG,CAAC;EACjFC,MAAM,EAAE;IAAEJ,eAAe,EAAE,CAAC;IAAEC,iBAAiB,EAAE,EAAE;IAAEC,QAAQ,EAAE,EAAE;IAAEC,SAAS,EAAE;EAAG,CAAC;EAClFE,KAAK,EAAE;IAAEL,eAAe,EAAE,EAAE;IAAEC,iBAAiB,EAAE,EAAE;IAAEC,QAAQ,EAAE,EAAE;IAAEC,SAAS,EAAE;EAAG;AACnF,CAAC;AAED,MAAMG,UAA0C,GAAG;EACjDP,KAAK,EAAE,OAAO;EACdK,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,OAAO;EACdE,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,QAAQ;EACZC,EAAE,EAAE,OAAO;EACXC,IAAI,EAAE;AACR,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMC,WAAW,GAAG,GAAG;AACvB,MAAMC,WAAW,GAAGD,WAAW;AAC/B,MAAME,WAAW,GAAG,IAAI;;AAExB;AACA,MAAMC,cAAc,GAAG,IAAIC,GAAG,CAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;;AAEjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,QAAQ,GAAG,sBAAsB;;AAEvC;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,GAAG;AACzB;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;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,SAASC,YAAYA,CAAA,EAAS;EAC5BhC,SAAS,CAAC,MAAM;IACd,IAAI,OAAOiC,QAAQ,KAAK,WAAW,EAAE;IACrC,IAAIA,QAAQ,CAACC,cAAc,CAACJ,QAAQ,CAAC,EAAE;IACvC,MAAMK,KAAK,GAAGF,QAAQ,CAACG,aAAa,CAAC,OAAO,CAAC;IAC7CD,KAAK,CAACE,EAAE,GAAGP,QAAQ;IACnBK,KAAK,CAACG,WAAW,GAAGP,gBAAgB;IACpCE,QAAQ,CAACM,IAAI,CAACC,WAAW,CAACL,KAAK,CAAC;EAClC,CAAC,EAAE,EAAE,CAAC;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAWA,SAASM,mBAAmBA,CAC1BC,OAAsB,EACtBC,IAAgB,EAChBC,KAAY,EACE;EACd,MAAMC,CAAC,GAAGD,KAAK,CAACE,MAAM;EACtB,MAAMC,UAAU,GAAGnC,WAAW,CAAC+B,IAAI,CAAC;EAEpC,QAAQD,OAAO;IACb,KAAK,SAAS;MACZ,OAAO;QACLM,SAAS,EAAE;UAAEC,eAAe,EAAEJ,CAAC,CAACK,OAAO;UAAEC,YAAY,EAAE1B;QAAY,CAAC;QACpE2B,SAAS,EAAEP,CAAC,CAACQ,iBAAiB;QAC9BC,SAAS,EAAET,CAAC,CAACK;MACf,CAAC;IACH,KAAK,aAAa;MAChB,OAAO;QACLF,SAAS,EAAE;UAAEC,eAAe,EAAEJ,CAAC,CAACU,QAAQ;UAAEJ,YAAY,EAAE1B;QAAY,CAAC;QACrE2B,SAAS,EAAEP,CAAC,CAACW,kBAAkB;QAC/BF,SAAS,EAAET,CAAC,CAACU;MACf,CAAC;IACH,KAAK,SAAS;MACZ,OAAO;QACLP,SAAS,EAAE;UAAEC,eAAe,EAAE,SAAS;UAAEE,YAAY,EAAE1B;QAAY,CAAC;QACpE2B,SAAS,EAAE,SAAS;QACpBE,SAAS,EAAET,CAAC,CAACK;MACf,CAAC;IACH,KAAK,WAAW;IAChB,KAAK,SAAS;MACZ,OAAO;QACLF,SAAS,EAAE;UACTC,eAAe,EAAE,aAAa;UAC9BQ,WAAW,EAAE,CAAC;UACdC,WAAW,EAAE,OAAO;UACpBC,WAAW,EAAEd,CAAC,CAACe,MAAM;UACrBT,YAAY,EAAE1B;QAChB,CAAC;QACD2B,SAAS,EAAEP,CAAC,CAACgB,IAAI;QACjBP,SAAS,EAAET,CAAC,CAACK;MACf,CAAC;IACH,KAAK,OAAO;MACV,OAAO;QACLF,SAAS,EAAE;UAAEC,eAAe,EAAE,aAAa;UAAEE,YAAY,EAAE1B;QAAY,CAAC;QACxE2B,SAAS,EAAEP,CAAC,CAACK,OAAO;QACpBI,SAAS,EAAET,CAAC,CAACK;MACf,CAAC;IACH,KAAK,MAAM;MACT,OAAO;QACLF,SAAS,EAAE;UACTC,eAAe,EAAEJ,CAAC,CAACiB,UAAU;UAC7BL,WAAW,EAAE,CAAC;UACdC,WAAW,EAAE,OAAO;UACpBC,WAAW,EAAEd,CAAC,CAACe,MAAM;UACrBT,YAAY,EAAEzB,WAAW;UACzBqC,OAAO,EAAE,CAAC;UACVC,KAAK,EAAEjB,UAAU,CAAC9B,SAAS;UAC3BgD,MAAM,EAAElB,UAAU,CAAC9B;QACrB,CAAC;QACDmC,SAAS,EAAEP,CAAC,CAACgB,IAAI;QACjBP,SAAS,EAAET,CAAC,CAACK;MACf,CAAC;IACH,KAAK,MAAM;IACX,KAAK,MAAM;IACX;MACE,OAAO;QACLF,SAAS,EAAE;UAAEC,eAAe,EAAE,aAAa;UAAEE,YAAY,EAAE1B;QAAY,CAAC;QACxE2B,SAAS,EAAEP,CAAC,CAACK,OAAO;QACpBI,SAAS,EAAET,CAAC,CAACK;MACf,CAAC;EACL;AACF;;AAEA;AACA;AACA;;AAEA,MAAMgB,kBAAyC,GAAGA,CAAC;EACjDC,OAAO;EACPC,OAAO;EACPC,QAAQ;EACRC,QAAQ,GAAG,KAAK;EAChB5B,OAAO,GAAG,SAAS;EACnBC,IAAI,EAAE4B,QAAQ,GAAG,QAAQ;EACzBpC,KAAK;EACLX,IAAI;EACJgD,YAAY,GAAG,MAAM;EACrBC,OAAO,GAAG,KAAK;EACfC,YAAY;EACZC,kBAAkB;EAClB,YAAY,EAAEC,aAAa;EAC3BC,iBAAiB;EACjBC,MAAM;EACNC,SAAS;EACTC,IAAI,GAAG,QAAQ;EACfC,OAAO,GAAG,KAAK;EACf5C,EAAE;EACF6C,IAAI;EACJC,KAAK;EACLC,KAAK;EACLC,SAAS;EACTC,QAAQ;EACRC,SAAS,GAAG;AACd,CAAC,KAAK;EACJvD,YAAY,CAAC,CAAC;EACd,MAAMY,KAAK,GAAGzC,QAAQ,CAAC,CAAC;EACxB,MAAMqF,OAAO,GAAGvF,KAAK,CAAC,CAAC;EACvB,MAAMwF,UAAU,GAAGpD,EAAE,IAAI,aAAamD,OAAO,EAAE;;EAE/C;EACA;EACA,MAAME,eAA8B,GAClCnB,QAAQ,KAAK,MAAM,IAAI7B,OAAO,KAAK,SAAS,GAAG,MAAM,GAAGA,OAAO;EACjE,MAAMC,IAAgB,GAAGvB,UAAU,CAACmD,QAAQ,CAAC;EAC7C,MAAMoB,MAAM,GAAGD,eAAe,KAAK,MAAM;EACzC,MAAME,oBAAoB,GAAGtB,QAAQ,IAAIG,OAAO;EAEhD,MAAMoB,YAAY,GAAG3F,OAAO,CAC1B,MAAMuC,mBAAmB,CAACiD,eAAe,EAAE/C,IAAI,EAAEC,KAAK,CAAC,EACvD,CAAC8C,eAAe,EAAE/C,IAAI,EAAEC,KAAK,CAC/B,CAAC;EAED,MAAMG,UAAU,GAAGnC,WAAW,CAAC+B,IAAI,CAAC;EAEpC,MAAMmD,cAAc,GAAG5F,OAAO,CAAC,MAAqB;IAClD,MAAM6F,IAAmB,GAAG;MAC1B/E,QAAQ,EAAE+B,UAAU,CAAC/B,QAAQ;MAC7BgF,UAAU,EAAE,MAAM;MAClBC,KAAK,EAAEJ,YAAY,CAACzC,SAAS;MAC7BY,KAAK,EAAEuB,SAAS,GAAG,MAAM,GAAGW,SAAS;MACrC;MACA,CAAC,kBAAkB,GAAaL,YAAY,CAACvC,SAAS;MACtD,CAAC,yBAAyB,GAAa1B,cAAc,CAACuE,GAAG,CAACT,eAAe,CAAC,GACtE/D,WAAW,GACX,CAAC;MACL,GAAGkE,YAAY,CAAC7C;IAClB,CAAC;IACD,IAAI,CAAC2C,MAAM,EAAE;MACXI,IAAI,CAACK,UAAU,GAAGrD,UAAU,CAACjC,eAAe;MAC5CiF,IAAI,CAACM,aAAa,GAAGtD,UAAU,CAACjC,eAAe;MAC/CiF,IAAI,CAACO,WAAW,GAAGvD,UAAU,CAAChC,iBAAiB;MAC/CgF,IAAI,CAACQ,YAAY,GAAGxD,UAAU,CAAChC,iBAAiB;MAChDgF,IAAI,CAAC9E,SAAS,GAAG8B,UAAU,CAAC9B,SAAS;IACvC;IACA,IAAIyE,eAAe,KAAK,MAAM,IAAIA,eAAe,KAAK,MAAM,EAAE;MAC5DK,IAAI,CAACK,UAAU,GAAG,CAAC;MACnBL,IAAI,CAACM,aAAa,GAAG,CAAC;MACtBN,IAAI,CAACO,WAAW,GAAG,CAAC;MACpBP,IAAI,CAACQ,YAAY,GAAG,CAAC;MACrBR,IAAI,CAAC9E,SAAS,GAAGiF,SAAS;IAC5B;IACA,OAAOH,IAAI;EACb,CAAC,EAAE,CAAChD,UAAU,EAAE8C,YAAY,EAAEN,SAAS,EAAEI,MAAM,EAAED,eAAe,CAAC,CAAC;EAElE,MAAMc,WAAW,GAAGzG,WAAW,CAC5B0G,KAAoC,IAAK;IACxC,IAAIb,oBAAoB,EAAE;MACxBa,KAAK,CAACC,cAAc,CAAC,CAAC;MACtB;IACF;IACAtC,OAAO,GAAGqC,KAAK,CAAC;IAChBtC,OAAO,GAAG,CAAC;EACb,CAAC,EACD,CAACyB,oBAAoB,EAAExB,OAAO,EAAED,OAAO,CACzC,CAAC;EAED,MAAMwC,SAAS,GAAG/B,aAAa,IAAID,kBAAkB;EACrD,MAAMiC,iBAAiB,GAAG,CAAC,WAAW,CAAC,CACpCC,MAAM,CAACnB,eAAe,KAAK,MAAM,GAAG,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAC7DmB,MAAM,CAAC9B,SAAS,GAAG,CAACA,SAAS,CAAC,GAAG,EAAE,CAAC,CACpC+B,IAAI,CAAC,GAAG,CAAC;EAEZ,MAAMC,YAAY,GAAGrC,YAAY,IAAImB,YAAY,CAACzC,SAAS;;EAE3D;EACA;EACA;EACA;EACA,MAAM4D,aAAa,GAAG3G,eAAe,CAAC8B,KAAK,CAAC;EAE5C,MAAM8E,OAAO,gBACXtG,KAAA,CAAAF,SAAA;IAAA4D,QAAA,GACGG,YAAY,KAAK,MAAM,IAAIhD,IAAI,EAC/B6C,QAAQ,IAAI,IAAI,KACd,OAAOA,QAAQ,KAAK,QAAQ,IAAI,OAAOA,QAAQ,KAAK,QAAQ,gBAC3D9D,IAAA;MAAA8D,QAAA,EAAOA;IAAQ,CAAO,CAAC,GAEvBA,QACD,CAAC,EACHG,YAAY,KAAK,OAAO,IAAIhD,IAAI;EAAA,CACjC,CACH;EAED,MAAM0F,IAAI,GAAGzC,OAAO,gBAClB9D,KAAA,CAAAF,SAAA;IAAA4D,QAAA,gBAEE9D,IAAA;MACE,eAAY,MAAM;MAClB4B,KAAK,EAAE;QACLgF,OAAO,EAAE,aAAa;QACtBC,UAAU,EAAE,QAAQ;QACpBC,cAAc,EAAE,QAAQ;QACxBC,GAAG,EAAE,CAAC;QACNC,OAAO,EAAE,CAAC;QACVC,aAAa,EAAE;MACjB,CAAE;MAAAnD,QAAA,EAED4C;IAAO,CACJ,CAAC,eACP1G,IAAA;MACE,eAAY,MAAM;MAClB4B,KAAK,EAAE;QACLsF,QAAQ,EAAE,UAAU;QACpBC,KAAK,EAAE,CAAC;QACRP,OAAO,EAAE,aAAa;QACtBC,UAAU,EAAE,QAAQ;QACpBC,cAAc,EAAE,QAAQ;QACxBG,aAAa,EAAE;MACjB,CAAE;MAAAnD,QAAA,eAEF9D,IAAA,CAACH,WAAW;QAACuC,IAAI,EAAEgF,IAAI,CAACC,KAAK,CAAC7E,UAAU,CAAC/B,QAAQ,GAAG,GAAG,CAAE;QAACiF,KAAK,EAAEc;MAAa,CAAE;IAAC,CAC7E,CAAC;EAAA,CACP,CAAC,GAEHE,OACD;;EAED;EACA;EACA,IAAIhC,OAAO,iBAAIpF,KAAK,CAACgI,cAAc,CAACxD,QAAQ,CAAC,EAAE;IAC7C,MAAMyD,KAAK,GAAGzD,QAUZ;IACF,MAAM0D,UAAU,GAAGD,KAAK,CAACE,KAAK;IAC9B,oBAAOnI,KAAK,CAACoI,YAAY,CAACH,KAAK,EAAE;MAC/B/C,SAAS,EAAE,CAAC6B,iBAAiB,EAAEmB,UAAU,CAAChD,SAAS,CAAC,CAACmD,MAAM,CAACC,OAAO,CAAC,CAACrB,IAAI,CAAC,GAAG,CAAC;MAC9E3E,KAAK,EAAE;QAAE,GAAG2D,cAAc;QAAE,GAAGkB,aAAa;QAAE,GAAGe,UAAU,CAAC5F;MAAM,CAAC;MACnEiC,OAAO,EAAGqC,KAA8B,IAAK;QAC3C,IAAIb,oBAAoB,EAAE;UACxBa,KAAK,CAACC,cAAc,CAAC,CAAC;UACtB;QACF;QACAqB,UAAU,CAAC3D,OAAO,GAAGqC,KAAK,CAAC;QAC3BrC,OAAO,GAAGqC,KAAsC,CAAC;QACjDtC,OAAO,GAAG,CAAC;MACb,CAAC;MACD,eAAe,EAAEyB,oBAAoB,IAAIM,SAAS;MAClD,WAAW,EAAEzB,OAAO,IAAIyB,SAAS;MACjC,YAAY,EAAES,SAAS,IAAIoB,UAAU,CAAC,YAAY,CAAC;MACnD3C,KAAK,EAAEA,KAAK,IAAI2C,UAAU,CAAC3C,KAAK;MAChC/C,EAAE,EAAE0F,UAAU,CAAC1F,EAAE,IAAIoD,UAAU;MAC/BH,QAAQ,EAAEM,oBAAoB,GAAG,CAAC,CAAC,GAAGmC,UAAU,CAACzC;IACnD,CAAC,CAAC;EACJ;EAEA,oBACE/E,IAAA;IACE8B,EAAE,EAAEoD,UAAW;IACfT,IAAI,EAAEA,IAAK;IACXE,IAAI,EAAEA,IAAK;IACXC,KAAK,EAAEA,KAAM;IACbJ,SAAS,EAAE6B,iBAAkB;IAC7BzE,KAAK,EAAE;MAAE,GAAG2D,cAAc;MAAE,GAAGkB;IAAc,CAAE;IAC/C5C,OAAO,EAAEoC,WAAY;IACrBlC,QAAQ,EAAEA,QAAQ,IAAI,CAACG,OAAQ;IAC/B,iBAAemB,oBAAoB,IAAIM,SAAU;IACjD,aAAWzB,OAAO,IAAIyB,SAAU;IAChC,cAAYS,SAAU;IACtBvB,KAAK,EAAEA,KAAK,IAAIP,iBAAkB;IAClCQ,SAAS,EAAEA,SAAU;IACrBC,QAAQ,EAAEA,QAAS;IACnB,eAAaR,MAAO;IAAAT,QAAA,EAEnB6C;EAAI,CACC,CAAC;AAEb,CAAC;AAED,OAAO,MAAMkB,MAAM,gBAAGtI,IAAI,CAACoE,kBAAkB,CAAC;AAC9CkE,MAAM,CAACC,WAAW,GAAG,QAAQ;AAE7B,OAAO,MAAMC,aAAa,gBAAGxI,IAAI,CAAEkI,KAAmC,iBACpEzH,IAAA,CAAC6H,MAAM;EAAA,GAAKJ,KAAK;EAAEtF,OAAO,EAAC;AAAS,CAAE,CACvC,CAAC;AACF4F,aAAa,CAACD,WAAW,GAAG,eAAe;AAE3C,OAAO,MAAME,eAAe,gBAAGzI,IAAI,CAAEkI,KAAmC,iBACtEzH,IAAA,CAAC6H,MAAM;EAAA,GAAKJ,KAAK;EAAEtF,OAAO,EAAC;AAAW,CAAE,CACzC,CAAC;AACF6F,eAAe,CAACF,WAAW,GAAG,iBAAiB;AAE/C,OAAO,MAAMG,UAAU,gBAAG1I,IAAI,CAAEkI,KAAmC,iBACjEzH,IAAA,CAAC6H,MAAM;EAAA,GAAKJ,KAAK;EAAEtF,OAAO,EAAC;AAAM,CAAE,CACpC,CAAC;AACF8F,UAAU,CAACH,WAAW,GAAG,YAAY;AAErC,OAAO,MAAMI,WAAW,gBAAG3I,IAAI,CAAEkI,KAAmC,iBAClEzH,IAAA,CAAC6H,MAAM;EAAA,GAAKJ,KAAK;EAAEtF,OAAO,EAAC;AAAO,CAAE,CACrC,CAAC;AACF+F,WAAW,CAACJ,WAAW,GAAG,aAAa;AAEvC,OAAO,MAAMK,aAAa,gBAAG5I,IAAI,CAAEkI,KAAmC,iBACpEzH,IAAA,CAAC6H,MAAM;EAAA,GAAKJ,KAAK;EAAEtF,OAAO,EAAC;AAAS,CAAE,CACvC,CAAC;AACFgG,aAAa,CAACL,WAAW,GAAG,eAAe;AAE3C,OAAO,MAAMM,UAAU,gBAAG7I,IAAI,CAAEkI,KAAmC,iBACjEzH,IAAA,CAAC6H,MAAM;EAAA,GAAKJ,KAAK;EAAEtF,OAAO,EAAC;AAAM,CAAE,CACpC,CAAC;AACFiG,UAAU,CAACN,WAAW,GAAG,YAAY;AAErC,OAAO,MAAMO,aAAa,gBAAG9I,IAAI,CAAEkI,KAAmC,iBACpEzH,IAAA,CAAC6H,MAAM;EAAA,GAAKJ,KAAK;EAAEtF,OAAO,EAAC;AAAS,CAAE,CACvC,CAAC;AACFkG,aAAa,CAACP,WAAW,GAAG,eAAe;AAE3C,OAAO,MAAMQ,UAAU,gBAAG/I,IAAI,CAAEkI,KAAmC,iBACjEzH,IAAA,CAAC6H,MAAM;EAAA,GAAKJ,KAAK;EAAEtF,OAAO,EAAC;AAAM,CAAE,CACpC,CAAC;AACFmG,UAAU,CAACR,WAAW,GAAG,YAAY;AAErC,OAAO,MAAMS,iBAAiB,gBAAGhJ,IAAI,CAAEkI,KAAmC,iBACxEzH,IAAA,CAAC6H,MAAM;EAAA,GAAKJ,KAAK;EAAEtF,OAAO,EAAC;AAAa,CAAE,CAC3C,CAAC;AACFoG,iBAAiB,CAACT,WAAW,GAAG,mBAAmB","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
- ...style
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: labelStyle,
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":"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","ignoreList":[]}
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,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,KAAK,eAAe,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,kLAepD,gBAAgB,8CAqDpB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
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 `false` — alert dialogs are
29
- * usually blocking until answered.
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;;;OAGG;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,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB"}
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;AAOf,OAAO,KAAK,EAAE,WAAW,EAA6B,MAAM,SAAS,CAAC;AAEtE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AA4btE,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
+ {"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;AAIf,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAyR3E,eAAO,MAAM,GAAG,sCAAwB,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,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,KAAK,eAAe,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,kLAepD,gBAAgB,8CAqDpB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
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 `false` — alert dialogs are
29
- * usually blocking until answered.
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;;;OAGG;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,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB"}
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;AAOf,OAAO,KAAK,EAAE,WAAW,EAA6B,MAAM,SAAS,CAAC;AAEtE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AA4btE,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
+ {"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;AAIf,OAAO,KAAK,EAAgB,QAAQ,EAAuB,MAAM,SAAS,CAAC;AAE3E,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAyR3E,eAAO,MAAM,GAAG,sCAAwB,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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/bloom",
3
- "version": "0.31.0",
3
+ "version": "0.32.1",
4
4
  "description": "Bloom UI — Oxy ecosystem component library for React Native + Expo + Web",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -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
  });