@oxyhq/bloom 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/lib/commonjs/dialog/CenteredDialog.js +2 -0
  2. package/lib/commonjs/dialog/CenteredDialog.js.map +1 -1
  3. package/lib/commonjs/dialog/CenteredDialog.web.js +2 -0
  4. package/lib/commonjs/dialog/CenteredDialog.web.js.map +1 -1
  5. package/lib/commonjs/dialog/Dialog.js +337 -43
  6. package/lib/commonjs/dialog/Dialog.js.map +1 -1
  7. package/lib/commonjs/dialog/Dialog.web.js +414 -63
  8. package/lib/commonjs/dialog/Dialog.web.js.map +1 -1
  9. package/lib/commonjs/dialog/index.js +6 -0
  10. package/lib/commonjs/dialog/index.js.map +1 -1
  11. package/lib/commonjs/dialog/index.web.js +6 -0
  12. package/lib/commonjs/dialog/index.web.js.map +1 -1
  13. package/lib/commonjs/dialog/placement.js +104 -0
  14. package/lib/commonjs/dialog/placement.js.map +1 -0
  15. package/lib/commonjs/index.js +22 -0
  16. package/lib/commonjs/index.js.map +1 -1
  17. package/lib/commonjs/index.web.js +28 -6
  18. package/lib/commonjs/index.web.js.map +1 -1
  19. package/lib/commonjs/responsive-sheet/ResponsiveSheet.js +97 -0
  20. package/lib/commonjs/responsive-sheet/ResponsiveSheet.js.map +1 -0
  21. package/lib/commonjs/responsive-sheet/ResponsiveSheet.web.js +84 -0
  22. package/lib/commonjs/responsive-sheet/ResponsiveSheet.web.js.map +1 -0
  23. package/lib/commonjs/responsive-sheet/index.js +19 -0
  24. package/lib/commonjs/responsive-sheet/index.js.map +1 -0
  25. package/lib/commonjs/responsive-sheet/index.web.js +19 -0
  26. package/lib/commonjs/responsive-sheet/index.web.js.map +1 -0
  27. package/lib/commonjs/responsive-sheet/types.js +6 -0
  28. package/lib/commonjs/responsive-sheet/types.js.map +1 -0
  29. package/lib/module/dialog/CenteredDialog.js +2 -0
  30. package/lib/module/dialog/CenteredDialog.js.map +1 -1
  31. package/lib/module/dialog/CenteredDialog.web.js +2 -0
  32. package/lib/module/dialog/CenteredDialog.web.js.map +1 -1
  33. package/lib/module/dialog/Dialog.js +336 -46
  34. package/lib/module/dialog/Dialog.js.map +1 -1
  35. package/lib/module/dialog/Dialog.web.js +412 -65
  36. package/lib/module/dialog/Dialog.web.js.map +1 -1
  37. package/lib/module/dialog/index.js +1 -1
  38. package/lib/module/dialog/index.js.map +1 -1
  39. package/lib/module/dialog/index.web.js +1 -1
  40. package/lib/module/dialog/index.web.js.map +1 -1
  41. package/lib/module/dialog/placement.js +100 -0
  42. package/lib/module/dialog/placement.js.map +1 -0
  43. package/lib/module/index.js +3 -1
  44. package/lib/module/index.js.map +1 -1
  45. package/lib/module/index.web.js +3 -1
  46. package/lib/module/index.web.js.map +1 -1
  47. package/lib/module/responsive-sheet/ResponsiveSheet.js +90 -0
  48. package/lib/module/responsive-sheet/ResponsiveSheet.js.map +1 -0
  49. package/lib/module/responsive-sheet/ResponsiveSheet.web.js +77 -0
  50. package/lib/module/responsive-sheet/ResponsiveSheet.web.js.map +1 -0
  51. package/lib/module/responsive-sheet/index.js +4 -0
  52. package/lib/module/responsive-sheet/index.js.map +1 -0
  53. package/lib/module/responsive-sheet/index.web.js +12 -0
  54. package/lib/module/responsive-sheet/index.web.js.map +1 -0
  55. package/lib/module/responsive-sheet/types.js +4 -0
  56. package/lib/module/responsive-sheet/types.js.map +1 -0
  57. package/lib/typescript/commonjs/dialog/CenteredDialog.d.ts +2 -0
  58. package/lib/typescript/commonjs/dialog/CenteredDialog.d.ts.map +1 -1
  59. package/lib/typescript/commonjs/dialog/CenteredDialog.web.d.ts +2 -0
  60. package/lib/typescript/commonjs/dialog/CenteredDialog.web.d.ts.map +1 -1
  61. package/lib/typescript/commonjs/dialog/Dialog.d.ts +18 -15
  62. package/lib/typescript/commonjs/dialog/Dialog.d.ts.map +1 -1
  63. package/lib/typescript/commonjs/dialog/Dialog.web.d.ts +18 -5
  64. package/lib/typescript/commonjs/dialog/Dialog.web.d.ts.map +1 -1
  65. package/lib/typescript/commonjs/dialog/centered-dialog-types.d.ts +4 -0
  66. package/lib/typescript/commonjs/dialog/centered-dialog-types.d.ts.map +1 -1
  67. package/lib/typescript/commonjs/dialog/index.d.ts +2 -2
  68. package/lib/typescript/commonjs/dialog/index.d.ts.map +1 -1
  69. package/lib/typescript/commonjs/dialog/index.web.d.ts +2 -2
  70. package/lib/typescript/commonjs/dialog/index.web.d.ts.map +1 -1
  71. package/lib/typescript/commonjs/dialog/placement.d.ts +71 -0
  72. package/lib/typescript/commonjs/dialog/placement.d.ts.map +1 -0
  73. package/lib/typescript/commonjs/dialog/types.d.ts +66 -3
  74. package/lib/typescript/commonjs/dialog/types.d.ts.map +1 -1
  75. package/lib/typescript/commonjs/index.d.ts +4 -2
  76. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  77. package/lib/typescript/commonjs/index.web.d.ts +4 -2
  78. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  79. package/lib/typescript/commonjs/responsive-sheet/ResponsiveSheet.d.ts +22 -0
  80. package/lib/typescript/commonjs/responsive-sheet/ResponsiveSheet.d.ts.map +1 -0
  81. package/lib/typescript/commonjs/responsive-sheet/ResponsiveSheet.web.d.ts +16 -0
  82. package/lib/typescript/commonjs/responsive-sheet/ResponsiveSheet.web.d.ts.map +1 -0
  83. package/lib/typescript/commonjs/responsive-sheet/index.d.ts +3 -0
  84. package/lib/typescript/commonjs/responsive-sheet/index.d.ts.map +1 -0
  85. package/lib/typescript/commonjs/responsive-sheet/index.web.d.ts +3 -0
  86. package/lib/typescript/commonjs/responsive-sheet/index.web.d.ts.map +1 -0
  87. package/lib/typescript/commonjs/responsive-sheet/types.d.ts +58 -0
  88. package/lib/typescript/commonjs/responsive-sheet/types.d.ts.map +1 -0
  89. package/lib/typescript/module/dialog/CenteredDialog.d.ts +2 -0
  90. package/lib/typescript/module/dialog/CenteredDialog.d.ts.map +1 -1
  91. package/lib/typescript/module/dialog/CenteredDialog.web.d.ts +2 -0
  92. package/lib/typescript/module/dialog/CenteredDialog.web.d.ts.map +1 -1
  93. package/lib/typescript/module/dialog/Dialog.d.ts +18 -15
  94. package/lib/typescript/module/dialog/Dialog.d.ts.map +1 -1
  95. package/lib/typescript/module/dialog/Dialog.web.d.ts +18 -5
  96. package/lib/typescript/module/dialog/Dialog.web.d.ts.map +1 -1
  97. package/lib/typescript/module/dialog/centered-dialog-types.d.ts +4 -0
  98. package/lib/typescript/module/dialog/centered-dialog-types.d.ts.map +1 -1
  99. package/lib/typescript/module/dialog/index.d.ts +2 -2
  100. package/lib/typescript/module/dialog/index.d.ts.map +1 -1
  101. package/lib/typescript/module/dialog/index.web.d.ts +2 -2
  102. package/lib/typescript/module/dialog/index.web.d.ts.map +1 -1
  103. package/lib/typescript/module/dialog/placement.d.ts +71 -0
  104. package/lib/typescript/module/dialog/placement.d.ts.map +1 -0
  105. package/lib/typescript/module/dialog/types.d.ts +66 -3
  106. package/lib/typescript/module/dialog/types.d.ts.map +1 -1
  107. package/lib/typescript/module/index.d.ts +4 -2
  108. package/lib/typescript/module/index.d.ts.map +1 -1
  109. package/lib/typescript/module/index.web.d.ts +4 -2
  110. package/lib/typescript/module/index.web.d.ts.map +1 -1
  111. package/lib/typescript/module/responsive-sheet/ResponsiveSheet.d.ts +22 -0
  112. package/lib/typescript/module/responsive-sheet/ResponsiveSheet.d.ts.map +1 -0
  113. package/lib/typescript/module/responsive-sheet/ResponsiveSheet.web.d.ts +16 -0
  114. package/lib/typescript/module/responsive-sheet/ResponsiveSheet.web.d.ts.map +1 -0
  115. package/lib/typescript/module/responsive-sheet/index.d.ts +3 -0
  116. package/lib/typescript/module/responsive-sheet/index.d.ts.map +1 -0
  117. package/lib/typescript/module/responsive-sheet/index.web.d.ts +3 -0
  118. package/lib/typescript/module/responsive-sheet/index.web.d.ts.map +1 -0
  119. package/lib/typescript/module/responsive-sheet/types.d.ts +58 -0
  120. package/lib/typescript/module/responsive-sheet/types.d.ts.map +1 -0
  121. package/package.json +18 -1
  122. package/src/__tests__/DialogPlacement.test.tsx +144 -0
  123. package/src/__tests__/ResponsiveSheet.test.tsx +88 -0
  124. package/src/dialog/CenteredDialog.tsx +2 -0
  125. package/src/dialog/CenteredDialog.web.tsx +2 -0
  126. package/src/dialog/Dialog.tsx +407 -50
  127. package/src/dialog/Dialog.web.tsx +490 -75
  128. package/src/dialog/centered-dialog-types.ts +4 -0
  129. package/src/dialog/index.ts +4 -1
  130. package/src/dialog/index.web.ts +4 -1
  131. package/src/dialog/placement.ts +113 -0
  132. package/src/dialog/types.ts +69 -3
  133. package/src/index.ts +12 -0
  134. package/src/index.web.ts +12 -0
  135. package/src/responsive-sheet/ResponsiveSheet.stories.tsx +54 -0
  136. package/src/responsive-sheet/ResponsiveSheet.tsx +88 -0
  137. package/src/responsive-sheet/ResponsiveSheet.web.tsx +76 -0
  138. package/src/responsive-sheet/index.ts +6 -0
  139. package/src/responsive-sheet/index.web.ts +14 -0
  140. package/src/responsive-sheet/types.ts +60 -0
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- export { Dialog } from './Dialog';
3
+ export { Dialog, DIALOG_SHEET_BACKDROP_TESTID } from './Dialog';
4
4
  export { CenteredDialog, CENTERED_DIALOG_BACKDROP_TESTID } from './CenteredDialog';
5
5
  export { BloomDialogProvider } from './BloomDialogProvider';
6
6
  export { alert } from "./alert.js";
@@ -1 +1 @@
1
- {"version":3,"names":["Dialog","CenteredDialog","CENTERED_DIALOG_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl"],"sourceRoot":"../../../src","sources":["dialog/index.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,UAAU;AACjC,SAASC,cAAc,EAAEC,+BAA+B,QAAQ,kBAAkB;AAClF,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,cAAW","ignoreList":[]}
1
+ {"version":3,"names":["Dialog","DIALOG_SHEET_BACKDROP_TESTID","CenteredDialog","CENTERED_DIALOG_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl"],"sourceRoot":"../../../src","sources":["dialog/index.ts"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,4BAA4B,QAAQ,UAAU;AAC/D,SAASC,cAAc,EAAEC,+BAA+B,QAAQ,kBAAkB;AAClF,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,cAAW","ignoreList":[]}
@@ -10,7 +10,7 @@
10
10
  // Web bundlers select this file via the `"browser"` export condition in
11
11
  // `package.json`'s `exports['./dialog']`; native bundlers fall through to
12
12
  // the React Native build above.
13
- export { Dialog, BLOOM_DIALOG_CSS } from "./Dialog.web.js";
13
+ export { Dialog, BLOOM_DIALOG_CSS, DIALOG_SHEET_BACKDROP_TESTID } from "./Dialog.web.js";
14
14
  export { CenteredDialog, BLOOM_CENTERED_DIALOG_CSS, CENTERED_DIALOG_BACKDROP_TESTID } from "./CenteredDialog.web.js";
15
15
  export { BloomDialogProvider } from "./BloomDialogProvider.web.js";
16
16
  export { alert } from "./alert.js";
@@ -1 +1 @@
1
- {"version":3,"names":["Dialog","BLOOM_DIALOG_CSS","CenteredDialog","BLOOM_CENTERED_DIALOG_CSS","CENTERED_DIALOG_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl"],"sourceRoot":"../../../src","sources":["dialog/index.web.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,MAAM,EAAEC,gBAAgB,QAAQ,iBAAc;AACvD,SACEC,cAAc,EACdC,yBAAyB,EACzBC,+BAA+B,QAC1B,yBAAsB;AAC7B,SAASC,mBAAmB,QAAQ,8BAA2B;AAC/D,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,cAAW","ignoreList":[]}
1
+ {"version":3,"names":["Dialog","BLOOM_DIALOG_CSS","DIALOG_SHEET_BACKDROP_TESTID","CenteredDialog","BLOOM_CENTERED_DIALOG_CSS","CENTERED_DIALOG_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl"],"sourceRoot":"../../../src","sources":["dialog/index.web.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,MAAM,EAAEC,gBAAgB,EAAEC,4BAA4B,QAAQ,iBAAc;AACrF,SACEC,cAAc,EACdC,yBAAyB,EACzBC,+BAA+B,QAC1B,yBAAsB;AAC7B,SAASC,mBAAmB,QAAQ,8BAA2B;AAC/D,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,cAAW","ignoreList":[]}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ import { useMemo } from 'react';
4
+ import { useWindowDimensions } from 'react-native';
5
+
6
+ /**
7
+ * Anchor a `<Dialog>` can render against.
8
+ *
9
+ * - `'center'` — the default centered modal card (current behavior).
10
+ * - `'left'` / `'right'` — an anchored side-sheet / drawer.
11
+ * - `'bottom'` — a bottom-sheet (drag handle, slide-up).
12
+ */
13
+
14
+ /**
15
+ * A `<Dialog>` placement that may vary by viewport width.
16
+ *
17
+ * Either a single `DialogPlacement` (applied at every width) or a responsive
18
+ * map whose `base` applies below the first breakpoint and whose `sm`/`md`/`lg`/
19
+ * `xl` keys override it at and above the matching Tailwind breakpoint.
20
+ *
21
+ * The common store-drawer case is `{ base: 'bottom', md: 'left' }`; the common
22
+ * dialog-to-sheet case is `{ base: 'bottom', md: 'center' }`.
23
+ */
24
+
25
+ /**
26
+ * Tailwind-default breakpoints (px). A responsive `placement` map resolves to
27
+ * the value for the largest key whose min-width is `<=` the current viewport
28
+ * width, falling back to `base`.
29
+ */
30
+ export const BREAKPOINT_SM = 640;
31
+ export const BREAKPOINT_MD = 768;
32
+ export const BREAKPOINT_LG = 1024;
33
+ export const BREAKPOINT_XL = 1280;
34
+
35
+ /** Ordered breakpoint table, widest first, so the first match wins. */
36
+ const RESPONSIVE_KEYS = [['xl', BREAKPOINT_XL], ['lg', BREAKPOINT_LG], ['md', BREAKPOINT_MD], ['sm', BREAKPOINT_SM]];
37
+
38
+ /** Default side-sheet width (px) on wide screens. */
39
+ export const DEFAULT_SIDE_WIDTH = 460;
40
+
41
+ /** Default centered-card max width (px). Matches the legacy `maxWidth: 480`. */
42
+ export const DEFAULT_CENTER_MAX_WIDTH = 480;
43
+
44
+ /** Default bottom-sheet max height as a fraction of the viewport height. */
45
+ export const DEFAULT_MAX_HEIGHT_RATIO = 0.9;
46
+
47
+ /** Corner radius shared by the side-sheet panel and the bottom-sheet top. */
48
+ export const PANEL_RADIUS = 20;
49
+
50
+ /** Open/close transition duration (ms). ~280ms ease-out reads smooth. */
51
+ export const ANIMATION_DURATION = 280;
52
+
53
+ /** Centered-card fade-out duration (ms) — preserves the legacy timing. */
54
+ export const CENTER_FADE_OUT_DURATION = 150;
55
+
56
+ /** CSS approximation of reanimated's `Easing.out(Easing.cubic)`. */
57
+ export const EASE_OUT = 'cubic-bezier(0.33, 1, 0.68, 1)';
58
+
59
+ /** Backdrop dim opacity once fully shown (matches `bg-black/40`). */
60
+ export const SHEET_BACKDROP_OPACITY = 0.4;
61
+
62
+ /** Stable testID for the dimmed backdrop of a side/bottom placement dialog. */
63
+ export const DIALOG_SHEET_BACKDROP_TESTID = 'bloom-dialog-sheet-backdrop';
64
+
65
+ /** Drag-handle pill geometry for the bottom-sheet. */
66
+ export const HANDLE_WIDTH = 36;
67
+ export const HANDLE_HEIGHT = 5;
68
+ export const HANDLE_RADIUS = 3;
69
+
70
+ /**
71
+ * Minimum gutter kept between a wide side-sheet and the opposite viewport edge
72
+ * when capping its width, so the panel never spans the full screen.
73
+ */
74
+ export const SIDE_SHEET_MIN_GUTTER = 24;
75
+
76
+ /**
77
+ * Resolve a (possibly responsive) `placement` to a concrete `DialogPlacement`
78
+ * for the current viewport width.
79
+ *
80
+ * A plain string placement resolves to itself. A responsive map picks the
81
+ * value for the largest breakpoint key whose min-width is `<=` the viewport
82
+ * width, falling back to `base` below the first breakpoint.
83
+ */
84
+ export function useResolvedPlacement(placement) {
85
+ const {
86
+ width
87
+ } = useWindowDimensions();
88
+ return useMemo(() => {
89
+ if (placement === undefined) return 'center';
90
+ if (typeof placement === 'string') return placement;
91
+ for (const [key, minWidth] of RESPONSIVE_KEYS) {
92
+ if (width >= minWidth) {
93
+ const value = placement[key];
94
+ if (value !== undefined) return value;
95
+ }
96
+ }
97
+ return placement.base;
98
+ }, [placement, width]);
99
+ }
100
+ //# sourceMappingURL=placement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","useWindowDimensions","BREAKPOINT_SM","BREAKPOINT_MD","BREAKPOINT_LG","BREAKPOINT_XL","RESPONSIVE_KEYS","DEFAULT_SIDE_WIDTH","DEFAULT_CENTER_MAX_WIDTH","DEFAULT_MAX_HEIGHT_RATIO","PANEL_RADIUS","ANIMATION_DURATION","CENTER_FADE_OUT_DURATION","EASE_OUT","SHEET_BACKDROP_OPACITY","DIALOG_SHEET_BACKDROP_TESTID","HANDLE_WIDTH","HANDLE_HEIGHT","HANDLE_RADIUS","SIDE_SHEET_MIN_GUTTER","useResolvedPlacement","placement","width","undefined","key","minWidth","value","base"],"sourceRoot":"../../../src","sources":["dialog/placement.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,mBAAmB,QAAQ,cAAc;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,GAAG,GAAG;AAChC,OAAO,MAAMC,aAAa,GAAG,GAAG;AAChC,OAAO,MAAMC,aAAa,GAAG,IAAI;AACjC,OAAO,MAAMC,aAAa,GAAG,IAAI;;AAEjC;AACA,MAAMC,eAAe,GAAG,CACtB,CAAC,IAAI,EAAED,aAAa,CAAC,EACrB,CAAC,IAAI,EAAED,aAAa,CAAC,EACrB,CAAC,IAAI,EAAED,aAAa,CAAC,EACrB,CAAC,IAAI,EAAED,aAAa,CAAC,CACb;;AAEV;AACA,OAAO,MAAMK,kBAAkB,GAAG,GAAG;;AAErC;AACA,OAAO,MAAMC,wBAAwB,GAAG,GAAG;;AAE3C;AACA,OAAO,MAAMC,wBAAwB,GAAG,GAAG;;AAE3C;AACA,OAAO,MAAMC,YAAY,GAAG,EAAE;;AAE9B;AACA,OAAO,MAAMC,kBAAkB,GAAG,GAAG;;AAErC;AACA,OAAO,MAAMC,wBAAwB,GAAG,GAAG;;AAE3C;AACA,OAAO,MAAMC,QAAQ,GAAG,gCAAgC;;AAExD;AACA,OAAO,MAAMC,sBAAsB,GAAG,GAAG;;AAEzC;AACA,OAAO,MAAMC,4BAA4B,GAAG,6BAA6B;;AAEzE;AACA,OAAO,MAAMC,YAAY,GAAG,EAAE;AAC9B,OAAO,MAAMC,aAAa,GAAG,CAAC;AAC9B,OAAO,MAAMC,aAAa,GAAG,CAAC;;AAE9B;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,GAAG,EAAE;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAClCC,SAAgD,EAC/B;EACjB,MAAM;IAAEC;EAAM,CAAC,GAAGrB,mBAAmB,CAAC,CAAC;EAEvC,OAAOD,OAAO,CAAkB,MAAM;IACpC,IAAIqB,SAAS,KAAKE,SAAS,EAAE,OAAO,QAAQ;IAC5C,IAAI,OAAOF,SAAS,KAAK,QAAQ,EAAE,OAAOA,SAAS;IACnD,KAAK,MAAM,CAACG,GAAG,EAAEC,QAAQ,CAAC,IAAInB,eAAe,EAAE;MAC7C,IAAIgB,KAAK,IAAIG,QAAQ,EAAE;QACrB,MAAMC,KAAK,GAAGL,SAAS,CAACG,GAAG,CAAC;QAC5B,IAAIE,KAAK,KAAKH,SAAS,EAAE,OAAOG,KAAK;MACvC;IACF;IACA,OAAOL,SAAS,CAACM,IAAI;EACvB,CAAC,EAAE,CAACN,SAAS,EAAEC,KAAK,CAAC,CAAC;AACxB","ignoreList":[]}
@@ -19,7 +19,7 @@ export { sizes as iconSizes, useCommonSVGProps } from "./icons/common.js";
19
19
 
20
20
  // Core components
21
21
  export * from './portal';
22
- export { Dialog, CenteredDialog, CENTERED_DIALOG_BACKDROP_TESTID, BloomDialogProvider, alert, useDialogContext, useDialogControl } from './dialog';
22
+ export { Dialog, DIALOG_SHEET_BACKDROP_TESTID, CenteredDialog, CENTERED_DIALOG_BACKDROP_TESTID, BloomDialogProvider, alert, useDialogContext, useDialogControl } from './dialog';
23
23
  export * from './button';
24
24
  export { Fab } from './fab';
25
25
  export * from "./grouped-buttons/index.js";
@@ -55,6 +55,8 @@ export { Slider } from "./slider/index.js";
55
55
  export { Combobox } from './combobox';
56
56
  // Bottom sheet
57
57
  export { BottomSheet } from "./bottom-sheet/index.js";
58
+ // Responsive sheet — side-sheet on wide screens, bottom-sheet on narrow.
59
+ export { ResponsiveSheet, RESPONSIVE_SHEET_BACKDROP_TESTID } from './responsive-sheet';
58
60
  // Data display
59
61
  export * from "./card/index.js";
60
62
  export * from "./badge/index.js";
@@ -1 +1 @@
1
- {"version":3,"names":["atoms","flatten","Z_INDEX","zIndex","tokens","web","native","ios","android","platform","select","useInteractionState","useDelayedLoading","useThrottledValue","Icons","sizes","iconSizes","useCommonSVGProps","Dialog","CenteredDialog","CENTERED_DIALOG_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl","Fab","ErrorBoundary","AvatarGroup","UserHoverCard","PromptInput","toast","Typography","Skeleton","Grid","Fill","IconCircle","TextField","SegmentedControl","SearchInput","Label","Field","InputGroup","Slider","Combobox","BottomSheet","Tabs","Accordion","Item","Kbd","Admonition","Menu","Tooltip","Select","ContextMenu","Popover","AlertDialog","AlertDialogHost","confirm","Command","Code","Fonts"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,cAAc,kBAAS;;AAEvB;AACA,SAASA,KAAK,EAAEC,OAAO,EAAEC,OAAO,EAAEC,MAAM,QAAQ,mBAAU;AAE1D,OAAO,KAAKC,MAAM,MAAM,oBAAiB;AACzC,SAASC,GAAG,EAAEC,MAAM,EAAEC,GAAG,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,sBAAmB;;AAE/E;AACA,SAASC,mBAAmB,QAAQ,gCAA6B;AACjE,SAASC,iBAAiB,QAAQ,8BAA2B;AAC7D,SAASC,iBAAiB,QAAQ,8BAA2B;;AAE7D;AACA,OAAO,KAAKC,KAAK,MAAM,kBAAS;AAChC,SAAkCC,KAAK,IAAIC,SAAS,EAAEC,iBAAiB,QAAQ,mBAAgB;;AAE/F;AACA,cAAc,UAAU;AACxB,SACEC,MAAM,EACNC,cAAc,EACdC,+BAA+B,EAC/BC,mBAAmB,EACnBC,KAAK,EACLC,gBAAgB,EAChBC,gBAAgB,QACX,UAAU;AAWjB,cAAc,UAAU;AACxB,SAASC,GAAG,QAAQ,OAAO;AAE3B,cAAc,4BAAmB;AACjC,cAAc,oBAAW;AACzB,cAAc,4BAAmB;AACjC,cAAc,wBAAe;AAC7B,SAASC,aAAa,QAAQ,2BAAkB;AAMhD,cAAc,mBAAU;AACxB,SAASC,WAAW,QAAQ,yBAAgB;AAE5C,SAASC,aAAa,QAAQ,4BAAmB;AAEjD,cAAc,WAAW;AACzB,OAAO,KAAKC,WAAW,MAAM,yBAAgB;AAC7C,cAAc,mBAAU;AACxB,SAASC,KAAK,QAAoB,SAAS;;AAE3C;AACA,OAAO,KAAKC,UAAU,MAAM,uBAAc;;AAE1C;AACA,OAAO,KAAKC,QAAQ,MAAM,qBAAY;AACtC,OAAO,KAAKC,IAAI,MAAM,iBAAQ;AAC9B,SAASC,IAAI,QAAQ,iBAAQ;AAC7B,SAASC,UAAU,QAAQ,wBAAe;;AAE1C;AACA,OAAO,KAAKC,SAAS,MAAM,uBAAc;AACzC,OAAO,KAAKC,gBAAgB,MAAM,8BAAqB;AACvD,SAASC,WAAW,QAAQ,yBAAgB;AAC5C,SAASC,KAAK,QAAQ,kBAAS;AAE/B,SAASC,KAAK,QAAQ,kBAAS;AAE/B,SAASC,UAAU,QAAQ,wBAAe;AAE1C,SAASC,MAAM,QAAQ,mBAAU;AAEjC,SAASC,QAAQ,QAAQ,YAAY;AAGrC;AACA,SAASC,WAAW,QAAQ,yBAAgB;AAG5C;AACA,cAAc,iBAAQ;AACtB,cAAc,kBAAS;AACvB,cAAc,iBAAQ;AACtB,OAAO,KAAKC,IAAI,MAAM,iBAAQ;AAC9B,cAAc,qBAAY;AAC1B,OAAO,KAAKC,SAAS,MAAM,sBAAa;;AAExC;AACA,cAAc,0BAAiB;AAC/B,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,GAAG,QAAQ,gBAAO;AAG3B;AACA,OAAO,KAAKC,UAAU,MAAM,uBAAc;AAC1C,OAAO,KAAKC,IAAI,MAAM,QAAQ;AAC9B,OAAO,KAAKC,OAAO,MAAM,WAAW;AACpC,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,WAAW,MAAM,gBAAgB;AAC7C,OAAO,KAAKC,OAAO,MAAM,WAAW;AACpC,SAASC,WAAW,EAAEC,eAAe,EAAEC,OAAO,QAAQ,gBAAgB;AAMtE,SAASC,OAAO,QAAQ,WAAW;AAGnC;AACA,OAAO,KAAKC,IAAI,MAAM,iBAAQ;;AAE9B;AACA,OAAO,KAAKC,KAAK,MAAM,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["atoms","flatten","Z_INDEX","zIndex","tokens","web","native","ios","android","platform","select","useInteractionState","useDelayedLoading","useThrottledValue","Icons","sizes","iconSizes","useCommonSVGProps","Dialog","DIALOG_SHEET_BACKDROP_TESTID","CenteredDialog","CENTERED_DIALOG_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl","Fab","ErrorBoundary","AvatarGroup","UserHoverCard","PromptInput","toast","Typography","Skeleton","Grid","Fill","IconCircle","TextField","SegmentedControl","SearchInput","Label","Field","InputGroup","Slider","Combobox","BottomSheet","ResponsiveSheet","RESPONSIVE_SHEET_BACKDROP_TESTID","Tabs","Accordion","Item","Kbd","Admonition","Menu","Tooltip","Select","ContextMenu","Popover","AlertDialog","AlertDialogHost","confirm","Command","Code","Fonts"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,cAAc,kBAAS;;AAEvB;AACA,SAASA,KAAK,EAAEC,OAAO,EAAEC,OAAO,EAAEC,MAAM,QAAQ,mBAAU;AAE1D,OAAO,KAAKC,MAAM,MAAM,oBAAiB;AACzC,SAASC,GAAG,EAAEC,MAAM,EAAEC,GAAG,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,sBAAmB;;AAE/E;AACA,SAASC,mBAAmB,QAAQ,gCAA6B;AACjE,SAASC,iBAAiB,QAAQ,8BAA2B;AAC7D,SAASC,iBAAiB,QAAQ,8BAA2B;;AAE7D;AACA,OAAO,KAAKC,KAAK,MAAM,kBAAS;AAChC,SAAkCC,KAAK,IAAIC,SAAS,EAAEC,iBAAiB,QAAQ,mBAAgB;;AAE/F;AACA,cAAc,UAAU;AACxB,SACEC,MAAM,EACNC,4BAA4B,EAC5BC,cAAc,EACdC,+BAA+B,EAC/BC,mBAAmB,EACnBC,KAAK,EACLC,gBAAgB,EAChBC,gBAAgB,QACX,UAAU;AAcjB,cAAc,UAAU;AACxB,SAASC,GAAG,QAAQ,OAAO;AAE3B,cAAc,4BAAmB;AACjC,cAAc,oBAAW;AACzB,cAAc,4BAAmB;AACjC,cAAc,wBAAe;AAC7B,SAASC,aAAa,QAAQ,2BAAkB;AAMhD,cAAc,mBAAU;AACxB,SAASC,WAAW,QAAQ,yBAAgB;AAE5C,SAASC,aAAa,QAAQ,4BAAmB;AAEjD,cAAc,WAAW;AACzB,OAAO,KAAKC,WAAW,MAAM,yBAAgB;AAC7C,cAAc,mBAAU;AACxB,SAASC,KAAK,QAAoB,SAAS;;AAE3C;AACA,OAAO,KAAKC,UAAU,MAAM,uBAAc;;AAE1C;AACA,OAAO,KAAKC,QAAQ,MAAM,qBAAY;AACtC,OAAO,KAAKC,IAAI,MAAM,iBAAQ;AAC9B,SAASC,IAAI,QAAQ,iBAAQ;AAC7B,SAASC,UAAU,QAAQ,wBAAe;;AAE1C;AACA,OAAO,KAAKC,SAAS,MAAM,uBAAc;AACzC,OAAO,KAAKC,gBAAgB,MAAM,8BAAqB;AACvD,SAASC,WAAW,QAAQ,yBAAgB;AAC5C,SAASC,KAAK,QAAQ,kBAAS;AAE/B,SAASC,KAAK,QAAQ,kBAAS;AAE/B,SAASC,UAAU,QAAQ,wBAAe;AAE1C,SAASC,MAAM,QAAQ,mBAAU;AAEjC,SAASC,QAAQ,QAAQ,YAAY;AAGrC;AACA,SAASC,WAAW,QAAQ,yBAAgB;AAG5C;AACA,SAASC,eAAe,EAAEC,gCAAgC,QAAQ,oBAAoB;AAOtF;AACA,cAAc,iBAAQ;AACtB,cAAc,kBAAS;AACvB,cAAc,iBAAQ;AACtB,OAAO,KAAKC,IAAI,MAAM,iBAAQ;AAC9B,cAAc,qBAAY;AAC1B,OAAO,KAAKC,SAAS,MAAM,sBAAa;;AAExC;AACA,cAAc,0BAAiB;AAC/B,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,GAAG,QAAQ,gBAAO;AAG3B;AACA,OAAO,KAAKC,UAAU,MAAM,uBAAc;AAC1C,OAAO,KAAKC,IAAI,MAAM,QAAQ;AAC9B,OAAO,KAAKC,OAAO,MAAM,WAAW;AACpC,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,WAAW,MAAM,gBAAgB;AAC7C,OAAO,KAAKC,OAAO,MAAM,WAAW;AACpC,SAASC,WAAW,EAAEC,eAAe,EAAEC,OAAO,QAAQ,gBAAgB;AAMtE,SAASC,OAAO,QAAQ,WAAW;AAGnC;AACA,OAAO,KAAKC,IAAI,MAAM,iBAAQ;;AAE9B;AACA,OAAO,KAAKC,KAAK,MAAM,SAAS","ignoreList":[]}
@@ -24,7 +24,7 @@ export { sizes as iconSizes, useCommonSVGProps } from "./icons/common.js";
24
24
 
25
25
  // Core components
26
26
  export * from "./portal/index.web.js";
27
- export { Dialog, CenteredDialog, CENTERED_DIALOG_BACKDROP_TESTID, BloomDialogProvider, alert, useDialogContext, useDialogControl } from "./dialog/index.web.js";
27
+ export { Dialog, DIALOG_SHEET_BACKDROP_TESTID, CenteredDialog, CENTERED_DIALOG_BACKDROP_TESTID, BloomDialogProvider, alert, useDialogContext, useDialogControl } from "./dialog/index.web.js";
28
28
  export * from "./button/index.web.js";
29
29
  export { Fab } from "./fab/index.web.js";
30
30
  export * from "./grouped-buttons/index.js";
@@ -60,6 +60,8 @@ export { Slider } from "./slider/index.js";
60
60
  export { Combobox } from "./combobox/index.web.js";
61
61
  // Bottom sheet
62
62
  export { BottomSheet } from "./bottom-sheet/index.js";
63
+ // Responsive sheet — side-sheet on wide screens, bottom-sheet on narrow.
64
+ export { ResponsiveSheet, RESPONSIVE_SHEET_BACKDROP_TESTID } from "./responsive-sheet/index.web.js";
63
65
  // Data display
64
66
  export * from "./card/index.js";
65
67
  export * from "./badge/index.js";
@@ -1 +1 @@
1
- {"version":3,"names":["atoms","flatten","Z_INDEX","zIndex","tokens","web","native","ios","android","platform","select","useInteractionState","useDelayedLoading","useThrottledValue","Icons","sizes","iconSizes","useCommonSVGProps","Dialog","CenteredDialog","CENTERED_DIALOG_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl","Fab","ErrorBoundary","AvatarGroup","UserHoverCard","PromptInput","toast","Typography","Skeleton","Grid","Fill","IconCircle","TextField","SegmentedControl","SearchInput","Label","Field","InputGroup","Slider","Combobox","BottomSheet","Tabs","Accordion","Item","Kbd","Admonition","Menu","Tooltip","Select","ContextMenu","Popover","AlertDialog","AlertDialogHost","confirm","Command","Code","Fonts"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAEA;AACA,cAAc,kBAAS;;AAEvB;AACA,SAASA,KAAK,EAAEC,OAAO,EAAEC,OAAO,EAAEC,MAAM,QAAQ,mBAAU;AAE1D,OAAO,KAAKC,MAAM,MAAM,oBAAiB;AACzC,SAASC,GAAG,EAAEC,MAAM,EAAEC,GAAG,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,sBAAmB;;AAE/E;AACA,SAASC,mBAAmB,QAAQ,gCAA6B;AACjE,SAASC,iBAAiB,QAAQ,8BAA2B;AAC7D,SAASC,iBAAiB,QAAQ,8BAA2B;;AAE7D;AACA,OAAO,KAAKC,KAAK,MAAM,kBAAS;AAChC,SAAkCC,KAAK,IAAIC,SAAS,EAAEC,iBAAiB,QAAQ,mBAAgB;;AAE/F;AACA,cAAc,uBAAoB;AAClC,SACEC,MAAM,EACNC,cAAc,EACdC,+BAA+B,EAC/BC,mBAAmB,EACnBC,KAAK,EACLC,gBAAgB,EAChBC,gBAAgB,QACX,uBAAoB;AAW3B,cAAc,uBAAoB;AAClC,SAASC,GAAG,QAAQ,oBAAiB;AAErC,cAAc,4BAAmB;AACjC,cAAc,oBAAW;AACzB,cAAc,4BAAmB;AACjC,cAAc,wBAAe;AAC7B,SAASC,aAAa,QAAQ,2BAAkB;AAMhD,cAAc,mBAAU;AACxB,SAASC,WAAW,QAAQ,6BAA0B;AAEtD,SAASC,aAAa,QAAQ,4BAAmB;AAEjD,cAAc,wBAAqB;AACnC,OAAO,KAAKC,WAAW,MAAM,yBAAgB;AAC7C,cAAc,mBAAU;AACxB,SAASC,KAAK,QAAoB,sBAAmB;;AAErD;AACA,OAAO,KAAKC,UAAU,MAAM,uBAAc;;AAE1C;AACA,OAAO,KAAKC,QAAQ,MAAM,qBAAY;AACtC,OAAO,KAAKC,IAAI,MAAM,iBAAQ;AAC9B,SAASC,IAAI,QAAQ,iBAAQ;AAC7B,SAASC,UAAU,QAAQ,wBAAe;;AAE1C;AACA,OAAO,KAAKC,SAAS,MAAM,uBAAc;AACzC,OAAO,KAAKC,gBAAgB,MAAM,8BAAqB;AACvD,SAASC,WAAW,QAAQ,yBAAgB;AAC5C,SAASC,KAAK,QAAQ,kBAAS;AAE/B,SAASC,KAAK,QAAQ,kBAAS;AAE/B,SAASC,UAAU,QAAQ,wBAAe;AAE1C,SAASC,MAAM,QAAQ,mBAAU;AAEjC,SAASC,QAAQ,QAAQ,yBAAsB;AAG/C;AACA,SAASC,WAAW,QAAQ,yBAAgB;AAG5C;AACA,cAAc,iBAAQ;AACtB,cAAc,kBAAS;AACvB,cAAc,iBAAQ;AACtB,OAAO,KAAKC,IAAI,MAAM,iBAAQ;AAC9B,cAAc,qBAAY;AAC1B,OAAO,KAAKC,SAAS,MAAM,sBAAa;;AAExC;AACA,cAAc,0BAAiB;AAC/B,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,GAAG,QAAQ,gBAAO;AAG3B;AACA,OAAO,KAAKC,UAAU,MAAM,uBAAc;AAC1C,OAAO,KAAKC,IAAI,MAAM,qBAAkB;AACxC,OAAO,KAAKC,OAAO,MAAM,wBAAqB;AAC9C,OAAO,KAAKC,MAAM,MAAM,uBAAoB;AAC5C,OAAO,KAAKC,WAAW,MAAM,6BAA0B;AACvD,OAAO,KAAKC,OAAO,MAAM,wBAAqB;AAC9C,SAASC,WAAW,EAAEC,eAAe,EAAEC,OAAO,QAAQ,6BAA0B;AAMhF,SAASC,OAAO,QAAQ,wBAAqB;AAG7C;AACA,OAAO,KAAKC,IAAI,MAAM,iBAAQ;;AAE9B;AACA,OAAO,KAAKC,KAAK,MAAM,sBAAmB","ignoreList":[]}
1
+ {"version":3,"names":["atoms","flatten","Z_INDEX","zIndex","tokens","web","native","ios","android","platform","select","useInteractionState","useDelayedLoading","useThrottledValue","Icons","sizes","iconSizes","useCommonSVGProps","Dialog","DIALOG_SHEET_BACKDROP_TESTID","CenteredDialog","CENTERED_DIALOG_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl","Fab","ErrorBoundary","AvatarGroup","UserHoverCard","PromptInput","toast","Typography","Skeleton","Grid","Fill","IconCircle","TextField","SegmentedControl","SearchInput","Label","Field","InputGroup","Slider","Combobox","BottomSheet","ResponsiveSheet","RESPONSIVE_SHEET_BACKDROP_TESTID","Tabs","Accordion","Item","Kbd","Admonition","Menu","Tooltip","Select","ContextMenu","Popover","AlertDialog","AlertDialogHost","confirm","Command","Code","Fonts"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAEA;AACA,cAAc,kBAAS;;AAEvB;AACA,SAASA,KAAK,EAAEC,OAAO,EAAEC,OAAO,EAAEC,MAAM,QAAQ,mBAAU;AAE1D,OAAO,KAAKC,MAAM,MAAM,oBAAiB;AACzC,SAASC,GAAG,EAAEC,MAAM,EAAEC,GAAG,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,sBAAmB;;AAE/E;AACA,SAASC,mBAAmB,QAAQ,gCAA6B;AACjE,SAASC,iBAAiB,QAAQ,8BAA2B;AAC7D,SAASC,iBAAiB,QAAQ,8BAA2B;;AAE7D;AACA,OAAO,KAAKC,KAAK,MAAM,kBAAS;AAChC,SAAkCC,KAAK,IAAIC,SAAS,EAAEC,iBAAiB,QAAQ,mBAAgB;;AAE/F;AACA,cAAc,uBAAoB;AAClC,SACEC,MAAM,EACNC,4BAA4B,EAC5BC,cAAc,EACdC,+BAA+B,EAC/BC,mBAAmB,EACnBC,KAAK,EACLC,gBAAgB,EAChBC,gBAAgB,QACX,uBAAoB;AAc3B,cAAc,uBAAoB;AAClC,SAASC,GAAG,QAAQ,oBAAiB;AAErC,cAAc,4BAAmB;AACjC,cAAc,oBAAW;AACzB,cAAc,4BAAmB;AACjC,cAAc,wBAAe;AAC7B,SAASC,aAAa,QAAQ,2BAAkB;AAMhD,cAAc,mBAAU;AACxB,SAASC,WAAW,QAAQ,6BAA0B;AAEtD,SAASC,aAAa,QAAQ,4BAAmB;AAEjD,cAAc,wBAAqB;AACnC,OAAO,KAAKC,WAAW,MAAM,yBAAgB;AAC7C,cAAc,mBAAU;AACxB,SAASC,KAAK,QAAoB,sBAAmB;;AAErD;AACA,OAAO,KAAKC,UAAU,MAAM,uBAAc;;AAE1C;AACA,OAAO,KAAKC,QAAQ,MAAM,qBAAY;AACtC,OAAO,KAAKC,IAAI,MAAM,iBAAQ;AAC9B,SAASC,IAAI,QAAQ,iBAAQ;AAC7B,SAASC,UAAU,QAAQ,wBAAe;;AAE1C;AACA,OAAO,KAAKC,SAAS,MAAM,uBAAc;AACzC,OAAO,KAAKC,gBAAgB,MAAM,8BAAqB;AACvD,SAASC,WAAW,QAAQ,yBAAgB;AAC5C,SAASC,KAAK,QAAQ,kBAAS;AAE/B,SAASC,KAAK,QAAQ,kBAAS;AAE/B,SAASC,UAAU,QAAQ,wBAAe;AAE1C,SAASC,MAAM,QAAQ,mBAAU;AAEjC,SAASC,QAAQ,QAAQ,yBAAsB;AAG/C;AACA,SAASC,WAAW,QAAQ,yBAAgB;AAG5C;AACA,SAASC,eAAe,EAAEC,gCAAgC,QAAQ,iCAA8B;AAOhG;AACA,cAAc,iBAAQ;AACtB,cAAc,kBAAS;AACvB,cAAc,iBAAQ;AACtB,OAAO,KAAKC,IAAI,MAAM,iBAAQ;AAC9B,cAAc,qBAAY;AAC1B,OAAO,KAAKC,SAAS,MAAM,sBAAa;;AAExC;AACA,cAAc,0BAAiB;AAC/B,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,GAAG,QAAQ,gBAAO;AAG3B;AACA,OAAO,KAAKC,UAAU,MAAM,uBAAc;AAC1C,OAAO,KAAKC,IAAI,MAAM,qBAAkB;AACxC,OAAO,KAAKC,OAAO,MAAM,wBAAqB;AAC9C,OAAO,KAAKC,MAAM,MAAM,uBAAoB;AAC5C,OAAO,KAAKC,WAAW,MAAM,6BAA0B;AACvD,OAAO,KAAKC,OAAO,MAAM,wBAAqB;AAC9C,SAASC,WAAW,EAAEC,eAAe,EAAEC,OAAO,QAAQ,6BAA0B;AAMhF,SAASC,OAAO,QAAQ,wBAAqB;AAG7C;AACA,OAAO,KAAKC,IAAI,MAAM,iBAAQ;;AAE9B;AACA,OAAO,KAAKC,KAAK,MAAM,sBAAmB","ignoreList":[]}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { Dialog } from '../dialog';
5
+ import { BREAKPOINT_LG, BREAKPOINT_MD, BREAKPOINT_SM, BREAKPOINT_XL, DIALOG_SHEET_BACKDROP_TESTID } from "../dialog/placement.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ /**
8
+ * @deprecated Use `<Dialog placement={{ base: 'bottom', md: 'left' }}>` instead.
9
+ *
10
+ * `ResponsiveSheet` is now a thin wrapper that configures the canonical
11
+ * `<Dialog>` — an anchored side-sheet on wide screens collapsing to a
12
+ * bottom-sheet below the breakpoint. It holds ZERO motion/layout logic of its
13
+ * own; it maps its props onto a responsive `Dialog` `placement`. The
14
+ * `@oxyhq/bloom/responsive-sheet` subpath is retained for the migration window.
15
+ *
16
+ * This file is BOTH the package default entry (resolved by downstream `tsc`
17
+ * and non-Metro web bundlers via the `browser` condition through `index.web`)
18
+ * AND a clean delegation, so it carries no platform-specific imports.
19
+ */
20
+ export function ResponsiveSheet({
21
+ open,
22
+ onClose,
23
+ side = 'left',
24
+ breakpoint = BREAKPOINT_MD,
25
+ width,
26
+ maxHeightRatio,
27
+ inset,
28
+ showHandle,
29
+ dismissOnBackdrop,
30
+ panelStyle,
31
+ panelClassName,
32
+ containerStyle,
33
+ containerClassName,
34
+ label,
35
+ children
36
+ }) {
37
+ return /*#__PURE__*/_jsx(Dialog, {
38
+ open: open,
39
+ onClose: onClose,
40
+ placement: placementForSide(side, breakpoint),
41
+ width: width,
42
+ maxHeightRatio: maxHeightRatio,
43
+ inset: inset,
44
+ showHandle: showHandle,
45
+ dismissOnBackdrop: dismissOnBackdrop,
46
+ panelStyle: panelStyle,
47
+ panelClassName: panelClassName,
48
+ containerStyle: containerStyle,
49
+ containerClassName: containerClassName,
50
+ label: label,
51
+ children: children
52
+ });
53
+ }
54
+
55
+ /**
56
+ * Build the `Dialog` `placement` map for a `ResponsiveSheet`: a bottom-sheet
57
+ * below `breakpoint`, the anchored `side` at and above it. The `breakpoint`
58
+ * (px) is bucketed to the nearest Tailwind key so the side-sheet engages at the
59
+ * matching width.
60
+ */
61
+ function placementForSide(side, breakpoint) {
62
+ if (breakpoint <= BREAKPOINT_SM) return {
63
+ base: 'bottom',
64
+ sm: side
65
+ };
66
+ if (breakpoint <= BREAKPOINT_MD) return {
67
+ base: 'bottom',
68
+ md: side
69
+ };
70
+ if (breakpoint <= BREAKPOINT_LG) return {
71
+ base: 'bottom',
72
+ lg: side
73
+ };
74
+ if (breakpoint <= BREAKPOINT_XL) return {
75
+ base: 'bottom',
76
+ xl: side
77
+ };
78
+ return {
79
+ base: 'bottom',
80
+ xl: side
81
+ };
82
+ }
83
+
84
+ /**
85
+ * @deprecated Stable testID for the dimmed backdrop dismiss button — now
86
+ * provided by the underlying `<Dialog>`'s side/bottom backdrop.
87
+ */
88
+ export const RESPONSIVE_SHEET_BACKDROP_TESTID = DIALOG_SHEET_BACKDROP_TESTID;
89
+ export default ResponsiveSheet;
90
+ //# sourceMappingURL=ResponsiveSheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Dialog","BREAKPOINT_LG","BREAKPOINT_MD","BREAKPOINT_SM","BREAKPOINT_XL","DIALOG_SHEET_BACKDROP_TESTID","jsx","_jsx","ResponsiveSheet","open","onClose","side","breakpoint","width","maxHeightRatio","inset","showHandle","dismissOnBackdrop","panelStyle","panelClassName","containerStyle","containerClassName","label","children","placement","placementForSide","base","sm","md","lg","xl","RESPONSIVE_SHEET_BACKDROP_TESTID"],"sourceRoot":"../../../src","sources":["responsive-sheet/ResponsiveSheet.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,MAAM,QAAQ,WAAW;AAClC,SACEC,aAAa,EACbC,aAAa,EACbC,aAAa,EACbC,aAAa,EACbC,4BAA4B,QAEvB,wBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAAC;EAC9BC,IAAI;EACJC,OAAO;EACPC,IAAI,GAAG,MAAM;EACbC,UAAU,GAAGV,aAAa;EAC1BW,KAAK;EACLC,cAAc;EACdC,KAAK;EACLC,UAAU;EACVC,iBAAiB;EACjBC,UAAU;EACVC,cAAc;EACdC,cAAc;EACdC,kBAAkB;EAClBC,KAAK;EACLC;AACoB,CAAC,EAAE;EACvB,oBACEhB,IAAA,CAACP,MAAM;IACLS,IAAI,EAAEA,IAAK;IACXC,OAAO,EAAEA,OAAQ;IACjBc,SAAS,EAAEC,gBAAgB,CAACd,IAAI,EAAEC,UAAU,CAAE;IAC9CC,KAAK,EAAEA,KAAM;IACbC,cAAc,EAAEA,cAAe;IAC/BC,KAAK,EAAEA,KAAM;IACbC,UAAU,EAAEA,UAAW;IACvBC,iBAAiB,EAAEA,iBAAkB;IACrCC,UAAU,EAAEA,UAAW;IACvBC,cAAc,EAAEA,cAAe;IAC/BC,cAAc,EAAEA,cAAe;IAC/BC,kBAAkB,EAAEA,kBAAmB;IACvCC,KAAK,EAAEA,KAAM;IAAAC,QAAA,EAEZA;EAAQ,CACH,CAAC;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,gBAAgBA,CACvBd,IAAsB,EACtBC,UAAkB,EACS;EAC3B,IAAIA,UAAU,IAAIT,aAAa,EAAE,OAAO;IAAEuB,IAAI,EAAE,QAAQ;IAAEC,EAAE,EAAEhB;EAAK,CAAC;EACpE,IAAIC,UAAU,IAAIV,aAAa,EAAE,OAAO;IAAEwB,IAAI,EAAE,QAAQ;IAAEE,EAAE,EAAEjB;EAAK,CAAC;EACpE,IAAIC,UAAU,IAAIX,aAAa,EAAE,OAAO;IAAEyB,IAAI,EAAE,QAAQ;IAAEG,EAAE,EAAElB;EAAK,CAAC;EACpE,IAAIC,UAAU,IAAIR,aAAa,EAAE,OAAO;IAAEsB,IAAI,EAAE,QAAQ;IAAEI,EAAE,EAAEnB;EAAK,CAAC;EACpE,OAAO;IAAEe,IAAI,EAAE,QAAQ;IAAEI,EAAE,EAAEnB;EAAK,CAAC;AACrC;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMoB,gCAAgC,GAAG1B,4BAA4B;AAE5E,eAAeG,eAAe","ignoreList":[]}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { Dialog } from "../dialog/index.web.js";
5
+ import { BREAKPOINT_LG, BREAKPOINT_MD, BREAKPOINT_SM, BREAKPOINT_XL, DIALOG_SHEET_BACKDROP_TESTID } from "../dialog/placement.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ /**
8
+ * @deprecated Use `<Dialog placement={{ base: 'bottom', md: 'left' }}>` instead.
9
+ *
10
+ * Web fork of the deprecated `ResponsiveSheet` wrapper. Identical delegation to
11
+ * the default fork, but imports the web `Dialog` explicitly so non-Metro web
12
+ * bundlers never follow the native (reanimated) `Dialog` sibling.
13
+ */
14
+ export function ResponsiveSheet({
15
+ open,
16
+ onClose,
17
+ side = 'left',
18
+ breakpoint = BREAKPOINT_MD,
19
+ width,
20
+ maxHeightRatio,
21
+ inset,
22
+ showHandle,
23
+ dismissOnBackdrop,
24
+ panelStyle,
25
+ panelClassName,
26
+ containerStyle,
27
+ containerClassName,
28
+ label,
29
+ children
30
+ }) {
31
+ return /*#__PURE__*/_jsx(Dialog, {
32
+ open: open,
33
+ onClose: onClose,
34
+ placement: placementForSide(side, breakpoint),
35
+ width: width,
36
+ maxHeightRatio: maxHeightRatio,
37
+ inset: inset,
38
+ showHandle: showHandle,
39
+ dismissOnBackdrop: dismissOnBackdrop,
40
+ panelStyle: panelStyle,
41
+ panelClassName: panelClassName,
42
+ containerStyle: containerStyle,
43
+ containerClassName: containerClassName,
44
+ label: label,
45
+ children: children
46
+ });
47
+ }
48
+ function placementForSide(side, breakpoint) {
49
+ if (breakpoint <= BREAKPOINT_SM) return {
50
+ base: 'bottom',
51
+ sm: side
52
+ };
53
+ if (breakpoint <= BREAKPOINT_MD) return {
54
+ base: 'bottom',
55
+ md: side
56
+ };
57
+ if (breakpoint <= BREAKPOINT_LG) return {
58
+ base: 'bottom',
59
+ lg: side
60
+ };
61
+ if (breakpoint <= BREAKPOINT_XL) return {
62
+ base: 'bottom',
63
+ xl: side
64
+ };
65
+ return {
66
+ base: 'bottom',
67
+ xl: side
68
+ };
69
+ }
70
+
71
+ /**
72
+ * @deprecated Stable testID for the dimmed backdrop dismiss button — now
73
+ * provided by the underlying `<Dialog>`'s side/bottom backdrop.
74
+ */
75
+ export const RESPONSIVE_SHEET_BACKDROP_TESTID = DIALOG_SHEET_BACKDROP_TESTID;
76
+ export default ResponsiveSheet;
77
+ //# sourceMappingURL=ResponsiveSheet.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Dialog","BREAKPOINT_LG","BREAKPOINT_MD","BREAKPOINT_SM","BREAKPOINT_XL","DIALOG_SHEET_BACKDROP_TESTID","jsx","_jsx","ResponsiveSheet","open","onClose","side","breakpoint","width","maxHeightRatio","inset","showHandle","dismissOnBackdrop","panelStyle","panelClassName","containerStyle","containerClassName","label","children","placement","placementForSide","base","sm","md","lg","xl","RESPONSIVE_SHEET_BACKDROP_TESTID"],"sourceRoot":"../../../src","sources":["responsive-sheet/ResponsiveSheet.web.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,MAAM,QAAQ,wBAAqB;AAC5C,SACEC,aAAa,EACbC,aAAa,EACbC,aAAa,EACbC,aAAa,EACbC,4BAA4B,QAEvB,wBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAAC;EAC9BC,IAAI;EACJC,OAAO;EACPC,IAAI,GAAG,MAAM;EACbC,UAAU,GAAGV,aAAa;EAC1BW,KAAK;EACLC,cAAc;EACdC,KAAK;EACLC,UAAU;EACVC,iBAAiB;EACjBC,UAAU;EACVC,cAAc;EACdC,cAAc;EACdC,kBAAkB;EAClBC,KAAK;EACLC;AACoB,CAAC,EAAE;EACvB,oBACEhB,IAAA,CAACP,MAAM;IACLS,IAAI,EAAEA,IAAK;IACXC,OAAO,EAAEA,OAAQ;IACjBc,SAAS,EAAEC,gBAAgB,CAACd,IAAI,EAAEC,UAAU,CAAE;IAC9CC,KAAK,EAAEA,KAAM;IACbC,cAAc,EAAEA,cAAe;IAC/BC,KAAK,EAAEA,KAAM;IACbC,UAAU,EAAEA,UAAW;IACvBC,iBAAiB,EAAEA,iBAAkB;IACrCC,UAAU,EAAEA,UAAW;IACvBC,cAAc,EAAEA,cAAe;IAC/BC,cAAc,EAAEA,cAAe;IAC/BC,kBAAkB,EAAEA,kBAAmB;IACvCC,KAAK,EAAEA,KAAM;IAAAC,QAAA,EAEZA;EAAQ,CACH,CAAC;AAEb;AAEA,SAASE,gBAAgBA,CACvBd,IAAsB,EACtBC,UAAkB,EACS;EAC3B,IAAIA,UAAU,IAAIT,aAAa,EAAE,OAAO;IAAEuB,IAAI,EAAE,QAAQ;IAAEC,EAAE,EAAEhB;EAAK,CAAC;EACpE,IAAIC,UAAU,IAAIV,aAAa,EAAE,OAAO;IAAEwB,IAAI,EAAE,QAAQ;IAAEE,EAAE,EAAEjB;EAAK,CAAC;EACpE,IAAIC,UAAU,IAAIX,aAAa,EAAE,OAAO;IAAEyB,IAAI,EAAE,QAAQ;IAAEG,EAAE,EAAElB;EAAK,CAAC;EACpE,IAAIC,UAAU,IAAIR,aAAa,EAAE,OAAO;IAAEsB,IAAI,EAAE,QAAQ;IAAEI,EAAE,EAAEnB;EAAK,CAAC;EACpE,OAAO;IAAEe,IAAI,EAAE,QAAQ;IAAEI,EAAE,EAAEnB;EAAK,CAAC;AACrC;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMoB,gCAAgC,GAAG1B,4BAA4B;AAE5E,eAAeG,eAAe","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { ResponsiveSheet, RESPONSIVE_SHEET_BACKDROP_TESTID } from './ResponsiveSheet';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ResponsiveSheet","RESPONSIVE_SHEET_BACKDROP_TESTID"],"sourceRoot":"../../../src","sources":["responsive-sheet/index.ts"],"mappings":";;AAAA,SAASA,eAAe,EAAEC,gCAAgC,QAAQ,mBAAmB","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ // Web variant of the `./responsive-sheet` barrel.
4
+ //
5
+ // `ResponsiveSheet` is now a deprecated thin wrapper over `<Dialog>`. The
6
+ // default barrel (`./index.ts`) imports the default `Dialog`; THIS web barrel
7
+ // re-exports from `./ResponsiveSheet.web`, which imports the web `Dialog`
8
+ // explicitly so a non-Metro bundler never follows the native (reanimated)
9
+ // `Dialog` sibling. Web bundlers select this file via the `"browser"` export
10
+ // condition in `package.json`'s `exports['./responsive-sheet']`.
11
+ export { ResponsiveSheet, RESPONSIVE_SHEET_BACKDROP_TESTID } from "./ResponsiveSheet.web.js";
12
+ //# sourceMappingURL=index.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ResponsiveSheet","RESPONSIVE_SHEET_BACKDROP_TESTID"],"sourceRoot":"../../../src","sources":["responsive-sheet/index.web.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,eAAe,EAAEC,gCAAgC,QAAQ,0BAAuB","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["responsive-sheet/types.ts"],"mappings":"","ignoreList":[]}
@@ -2,6 +2,8 @@ import type { CenteredDialogProps } from './centered-dialog-types';
2
2
  /** Stable testID for the dimmed backdrop. Overridden when a `testID` is set. */
3
3
  export declare const CENTERED_DIALOG_BACKDROP_TESTID = "bloom-centered-dialog-backdrop";
4
4
  /**
5
+ * @deprecated Use `<Dialog placement="center">` instead.
6
+ *
5
7
  * Native variant of `<CenteredDialog>`.
6
8
  *
7
9
  * A controlled, centered modal: a transparent RN `Modal` (fade animation,
@@ -1 +1 @@
1
- {"version":3,"file":"CenteredDialog.d.ts","sourceRoot":"","sources":["../../../../src/dialog/CenteredDialog.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAWnE,gFAAgF;AAChF,eAAO,MAAM,+BAA+B,mCAAmC,CAAC;AAEhF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,OAAO,EACP,KAAK,EACL,WAAkB,EAClB,QAA4B,EAC5B,OAAc,EACd,SAAS,EACT,QAAQ,EACR,MAAM,EACN,kBAAkB,EAClB,uBAAwC,EACxC,0BAA6C,EAC7C,SAAS,EACT,YAAY,EACZ,MAAM,GACP,EAAE,mBAAmB,2CAsGrB"}
1
+ {"version":3,"file":"CenteredDialog.d.ts","sourceRoot":"","sources":["../../../../src/dialog/CenteredDialog.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAWnE,gFAAgF;AAChF,eAAO,MAAM,+BAA+B,mCAAmC,CAAC;AAEhF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,OAAO,EACP,KAAK,EACL,WAAkB,EAClB,QAA4B,EAC5B,OAAc,EACd,SAAS,EACT,QAAQ,EACR,MAAM,EACN,kBAAkB,EAClB,uBAAwC,EACxC,0BAA6C,EAC7C,SAAS,EACT,YAAY,EACZ,MAAM,GACP,EAAE,mBAAmB,2CAsGrB"}
@@ -2,6 +2,8 @@ import type { CenteredDialogProps } from './centered-dialog-types';
2
2
  /** Stable testID for the dimmed backdrop. Overridden when a `testID` is set. */
3
3
  export declare const CENTERED_DIALOG_BACKDROP_TESTID = "bloom-centered-dialog-backdrop";
4
4
  /**
5
+ * @deprecated Use `<Dialog placement="center">` instead.
6
+ *
5
7
  * Web variant of `<CenteredDialog>`.
6
8
  *
7
9
  * A centered modal card rendered into the Bloom Portal at the end of
@@ -1 +1 @@
1
- {"version":3,"file":"CenteredDialog.web.d.ts","sourceRoot":"","sources":["../../../../src/dialog/CenteredDialog.web.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAanE,gFAAgF;AAChF,eAAO,MAAM,+BAA+B,mCAAmC,CAAC;AAIhF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,OAAO,EACP,KAAK,EACL,WAAkB,EAClB,QAA4B,EAC5B,OAAc,EACd,SAAS,EACT,QAAQ,EACR,MAAM,EACN,kBAAkB,EAClB,uBAAwC,EACxC,0BAA6C,EAC7C,SAAS,EACT,YAAY,EACZ,MAAM,GACP,EAAE,mBAAmB,kDAoIrB;AA4FD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,2aAKrC,CAAC"}
1
+ {"version":3,"file":"CenteredDialog.web.d.ts","sourceRoot":"","sources":["../../../../src/dialog/CenteredDialog.web.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAanE,gFAAgF;AAChF,eAAO,MAAM,+BAA+B,mCAAmC,CAAC;AAIhF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,OAAO,EACP,KAAK,EACL,WAAkB,EAClB,QAA4B,EAC5B,OAAc,EACd,SAAS,EACT,QAAQ,EACR,MAAM,EACN,kBAAkB,EAClB,uBAAwC,EACxC,0BAA6C,EAC7C,SAAS,EACT,YAAY,EACZ,MAAM,GACP,EAAE,mBAAmB,kDAoIrB;AA4FD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,2aAKrC,CAAC"}
@@ -1,26 +1,29 @@
1
+ import { DIALOG_SHEET_BACKDROP_TESTID } from './placement';
1
2
  import type { DialogAction, DialogProps } from './types';
3
+ export { DIALOG_SHEET_BACKDROP_TESTID };
2
4
  /**
3
5
  * Native variant of `<Dialog>`.
4
6
  *
5
- * Uses bloom's own `BottomSheet` in `detached` mode as the underlying
6
- * surface a floating, dynamically-sized, content-hugging card that
7
- * gracefully degrades from sheet (phone) to centered card (tablet, via the
8
- * 500px max-width cap).
7
+ * Open/close is driven by EITHER the imperative `control` (legacy) OR the
8
+ * controlled `open` prop. When `open` is provided it wins.
9
9
  *
10
- * The component accepts three rendering modes simultaneously:
10
+ * `placement` selects the surface:
11
+ *
12
+ * - `'center'` (default) / `'bottom'` — bloom's `BottomSheet` (`detached`
13
+ * for center: a floating, content-hugging card that degrades from sheet to
14
+ * centered card via the 500px cap; flush for bottom: a full-width sheet
15
+ * with a drag handle). Default behavior is unchanged.
16
+ * - `'left'` / `'right'` — an anchored side-sheet/drawer driven by
17
+ * reanimated (the `responsive-sheet` native technique). Exit animations
18
+ * are safe on native.
11
19
  *
12
- * 1. Declarative `title`, `description`, `actions`. Bloom renders a
13
- * standard confirm/destructive/cancel layout.
14
- * 2. Custom children — caller passes JSX, bloom renders the chrome (title
15
- * + close behaviour) and the children fill the body.
16
- * 3. Pure children — no `title`/`description`/`actions`; caller owns
17
- * every pixel.
20
+ * The component accepts three rendering modes simultaneously:
18
21
  *
19
- * All three share the same dismissal semantics: tapping the backdrop, the
20
- * drag handle, swiping down, or `control.close()` runs the queued close
21
- * callbacks once the sheet's exit animation has settled.
22
+ * 1. Declarative `title`, `description`, `actions`.
23
+ * 2. Custom children caller passes JSX, bloom renders the chrome.
24
+ * 3. Pure children no `title`/`description`/`actions`.
22
25
  */
23
- export declare function Dialog({ control, onClose, testID, title, description, actions, style, label, children, }: DialogProps): import("react/jsx-runtime").JSX.Element;
26
+ export declare function Dialog({ control, open: controlledOpen, onClose, testID, title, description, actions, placement, width, maxHeightRatio, inset, showHandle, dismissOnBackdrop, style, panelStyle, panelClassName, containerStyle, containerClassName, label, children, }: DialogProps): import("react/jsx-runtime").JSX.Element;
24
27
  /**
25
28
  * Helper used by the imperative `alert()` API. Mounts a `<Dialog>` against
26
29
  * a fresh control and presents it immediately. `onResolve` is invoked
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../../src/dialog/Dialog.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,YAAY,EAGZ,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,OAAO,EACP,MAAM,EACN,KAAK,EACL,WAAW,EACX,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE,WAAW,2CA6Hb;AAqFD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,WAAW,EACX,OAAO,EACP,SAAS,GACV,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB,2CAoBA"}
1
+ {"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../../src/dialog/Dialog.tsx"],"names":[],"mappings":"AAkCA,OAAO,EAIL,4BAA4B,EAK7B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,YAAY,EAIZ,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,4BAA4B,EAAE,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,IAAI,EAAE,cAAc,EACpB,OAAO,EACP,MAAM,EACN,KAAK,EACL,WAAW,EACX,OAAO,EACP,SAAS,EACT,KAA0B,EAC1B,cAAyC,EACzC,KAAK,EACL,UAAiB,EACjB,iBAAwB,EACxB,KAAK,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,KAAK,EACL,QAAQ,GACT,EAAE,WAAW,2CAwLb;AAuVD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,WAAW,EACX,OAAO,EACP,SAAS,GACV,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB,2CAoBA"}
@@ -1,18 +1,28 @@
1
+ import { DIALOG_SHEET_BACKDROP_TESTID } from './placement';
1
2
  import type { DialogAction, DialogProps } from './types';
2
3
  /**
3
4
  * Web variant of `<Dialog>`.
4
5
  *
5
- * A centered modal card rendered into the bloom Portal at the end of
6
- * `document.body`. Same prop API as native`title`, `description`,
7
- * `actions`, or arbitrary `children` so call sites are platform
8
- * agnostic.
6
+ * A centered modal card (default) rendered into the bloom Portal at the end of
7
+ * `document.body`, or when `placement` is `left`/`right`/`bottom` an
8
+ * anchored side-sheet or bottom-sheet. Same prop API as native, so call sites
9
+ * are platform agnostic.
10
+ *
11
+ * Open/close is driven by EITHER the imperative `control` (legacy) OR the
12
+ * controlled `open` prop. When `open` is provided it wins.
9
13
  *
10
14
  * Accessibility: the panel has `role="dialog"` and the `title`/`description`
11
15
  * props (when provided) become the `aria-labelledby` / `aria-describedby`
12
16
  * targets. Pressing the backdrop dismisses. Pressing `Escape` dismisses.
13
17
  * Focus is locked inside the dialog while it's open.
18
+ *
19
+ * Web motion never uses reanimated `exiting` (which throws `removeChild` on
20
+ * concurrent React unmounts): the centered card uses CSS keyframes and the
21
+ * side/bottom modes use self-contained CSS transitions (the `responsive-sheet`
22
+ * technique) on a mounted-through-exit node.
14
23
  */
15
- export declare function Dialog({ control, onClose, testID, title, description, actions, style, label, children, }: DialogProps): import("react/jsx-runtime").JSX.Element | null;
24
+ export declare function Dialog({ control, open: controlledOpen, onClose, testID, title, description, actions, placement, width, maxWidth, maxHeightRatio, inset, showHandle, dismissOnBackdrop, style, panelStyle, panelClassName, containerStyle, containerClassName, label, children, }: DialogProps): import("react/jsx-runtime").JSX.Element | null;
25
+ export { DIALOG_SHEET_BACKDROP_TESTID };
16
26
  /**
17
27
  * Inline imperative dialog used by `alert()`. Mounts and immediately
18
28
  * presents; resolves the host's `onResolve` once the dialog has finished
@@ -34,6 +44,9 @@ export declare function AutoMountedDialog({ title, description, actions, onResol
34
44
  * @keyframes bloomDialogZoomFadeIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }
35
45
  * @keyframes bloomDialogZoomFadeOut { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(0.95); } }
36
46
  * ```
47
+ *
48
+ * The `left`/`right`/`bottom` placements do NOT depend on this — they animate
49
+ * via self-contained inline CSS transitions and need no keyframe injection.
37
50
  */
38
51
  export declare const BLOOM_DIALOG_CSS = "\n@keyframes bloomDialogFadeIn { from { opacity: 0; } to { opacity: 1; } }\n@keyframes bloomDialogFadeOut { from { opacity: 1; } to { opacity: 0; } }\n@keyframes bloomDialogZoomFadeIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }\n@keyframes bloomDialogZoomFadeOut { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(0.95); } }\n";
39
52
  //# sourceMappingURL=Dialog.web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.web.d.ts","sourceRoot":"","sources":["../../../../src/dialog/Dialog.web.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACV,YAAY,EAGZ,WAAW,EACZ,MAAM,SAAS,CAAC;AASjB;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,OAAO,EACP,MAAM,EACN,KAAK,EACL,WAAW,EACX,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE,WAAW,kDA4Gb;AA8LD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,WAAW,EACX,OAAO,EACP,SAAS,GACV,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB,2CAgBA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,mZAK5B,CAAC"}
1
+ {"version":3,"file":"Dialog.web.d.ts","sourceRoot":"","sources":["../../../../src/dialog/Dialog.web.tsx"],"names":[],"mappings":"AA2BA,OAAO,EAML,4BAA4B,EAU7B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,YAAY,EAIZ,WAAW,EACZ,MAAM,SAAS,CAAC;AASjB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,IAAI,EAAE,cAAc,EACpB,OAAO,EACP,MAAM,EACN,KAAK,EACL,WAAW,EACX,OAAO,EACP,SAAS,EACT,KAA0B,EAC1B,QAAmC,EACnC,cAAyC,EACzC,KAAK,EACL,UAAiB,EACjB,iBAAwB,EACxB,KAAK,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,KAAK,EACL,QAAQ,GACT,EAAE,WAAW,kDA0Lb;AAkID,OAAO,EAAE,4BAA4B,EAAE,CAAC;AAyTxC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,WAAW,EACX,OAAO,EACP,SAAS,GACV,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB,2CAgBA;AA4CD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB,mZAK5B,CAAC"}
@@ -1,6 +1,10 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import type { StyleProp, ViewStyle } from 'react-native';
3
3
  /**
4
+ * @deprecated Use `<Dialog placement="center">` instead. `CenteredDialog` is
5
+ * superseded by the centered placement of the canonical `<Dialog>` and is
6
+ * slated for removal in a future major.
7
+ *
4
8
  * Props for the declarative `<CenteredDialog>` primitive.
5
9
  *
6
10
  * This is the simple, controlled centered-modal surface — distinct from the
@@ -1 +1 @@
1
- {"version":3,"file":"centered-dialog-types.d.ts","sourceRoot":"","sources":["../../../../src/dialog/centered-dialog-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2DAA2D;IAC3D,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,+EAA+E;IAC/E,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,oEAAoE;IACpE,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC"}
1
+ {"version":3,"file":"centered-dialog-types.d.ts","sourceRoot":"","sources":["../../../../src/dialog/centered-dialog-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2DAA2D;IAC3D,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,+EAA+E;IAC/E,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,oEAAoE;IACpE,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC"}
@@ -1,9 +1,9 @@
1
- export { Dialog } from './Dialog';
1
+ export { Dialog, DIALOG_SHEET_BACKDROP_TESTID } from './Dialog';
2
2
  export { CenteredDialog, CENTERED_DIALOG_BACKDROP_TESTID } from './CenteredDialog';
3
3
  export { BloomDialogProvider } from './BloomDialogProvider';
4
4
  export { alert } from './alert';
5
5
  export { useDialogContext, useDialogControl } from './context';
6
6
  export type { AlertButton, AlertButtonStyle, } from './alert-store';
7
- export type { DialogAction, DialogActionColor, DialogContextProps, DialogControlProps, DialogProps, } from './types';
7
+ export type { DialogAction, DialogActionColor, DialogContextProps, DialogControlProps, DialogInset, DialogPlacement, DialogProps, ResponsiveDialogPlacement, } from './types';
8
8
  export type { CenteredDialogProps } from './centered-dialog-types';
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC/D,YAAY,EACV,WAAW,EACX,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC/D,YAAY,EACV,WAAW,EACX,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,WAAW,EACX,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}