@oxyhq/bloom 0.3.12 → 0.5.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 (191) hide show
  1. package/README.md +133 -90
  2. package/lib/commonjs/bottom-sheet/index.js +341 -98
  3. package/lib/commonjs/bottom-sheet/index.js.map +1 -1
  4. package/lib/commonjs/context-menu/index.js +18 -19
  5. package/lib/commonjs/context-menu/index.js.map +1 -1
  6. package/lib/commonjs/dialog/BloomDialogProvider.js +61 -0
  7. package/lib/commonjs/dialog/BloomDialogProvider.js.map +1 -0
  8. package/lib/commonjs/dialog/BloomDialogProvider.web.js +45 -0
  9. package/lib/commonjs/dialog/BloomDialogProvider.web.js.map +1 -0
  10. package/lib/commonjs/dialog/Dialog.js +197 -100
  11. package/lib/commonjs/dialog/Dialog.js.map +1 -1
  12. package/lib/commonjs/dialog/Dialog.web.js +194 -84
  13. package/lib/commonjs/dialog/Dialog.web.js.map +1 -1
  14. package/lib/commonjs/dialog/SheetShell.js +149 -0
  15. package/lib/commonjs/dialog/SheetShell.js.map +1 -0
  16. package/lib/commonjs/dialog/alert-store.js +116 -0
  17. package/lib/commonjs/dialog/alert-store.js.map +1 -0
  18. package/lib/commonjs/dialog/alert.js +38 -0
  19. package/lib/commonjs/dialog/alert.js.map +1 -0
  20. package/lib/commonjs/dialog/context.js +10 -2
  21. package/lib/commonjs/dialog/context.js.map +1 -1
  22. package/lib/commonjs/dialog/index.js +8 -24
  23. package/lib/commonjs/dialog/index.js.map +1 -1
  24. package/lib/commonjs/dialog/index.web.js +10 -20
  25. package/lib/commonjs/dialog/index.web.js.map +1 -1
  26. package/lib/commonjs/index.js +101 -66
  27. package/lib/commonjs/index.js.map +1 -1
  28. package/lib/commonjs/index.web.js +101 -66
  29. package/lib/commonjs/index.web.js.map +1 -1
  30. package/lib/commonjs/menu/index.js +21 -23
  31. package/lib/commonjs/menu/index.js.map +1 -1
  32. package/lib/commonjs/select/index.js +26 -27
  33. package/lib/commonjs/select/index.js.map +1 -1
  34. package/lib/commonjs/toast/index.js +42 -13
  35. package/lib/commonjs/toast/index.js.map +1 -1
  36. package/lib/commonjs/toast/index.web.js +19 -15
  37. package/lib/commonjs/toast/index.web.js.map +1 -1
  38. package/lib/module/bottom-sheet/index.js +341 -98
  39. package/lib/module/bottom-sheet/index.js.map +1 -1
  40. package/lib/module/context-menu/index.js +15 -16
  41. package/lib/module/context-menu/index.js.map +1 -1
  42. package/lib/module/dialog/BloomDialogProvider.js +57 -0
  43. package/lib/module/dialog/BloomDialogProvider.js.map +1 -0
  44. package/lib/module/dialog/BloomDialogProvider.web.js +41 -0
  45. package/lib/module/dialog/BloomDialogProvider.web.js.map +1 -0
  46. package/lib/module/dialog/Dialog.js +199 -87
  47. package/lib/module/dialog/Dialog.js.map +1 -1
  48. package/lib/module/dialog/Dialog.web.js +195 -70
  49. package/lib/module/dialog/Dialog.web.js.map +1 -1
  50. package/lib/module/dialog/SheetShell.js +143 -0
  51. package/lib/module/dialog/SheetShell.js.map +1 -0
  52. package/lib/module/dialog/alert-store.js +107 -0
  53. package/lib/module/dialog/alert-store.js.map +1 -0
  54. package/lib/module/dialog/alert.js +35 -0
  55. package/lib/module/dialog/alert.js.map +1 -0
  56. package/lib/module/dialog/context.js +10 -2
  57. package/lib/module/dialog/context.js.map +1 -1
  58. package/lib/module/dialog/index.js +3 -1
  59. package/lib/module/dialog/index.js.map +1 -1
  60. package/lib/module/dialog/index.web.js +9 -7
  61. package/lib/module/dialog/index.web.js.map +1 -1
  62. package/lib/module/index.js +2 -3
  63. package/lib/module/index.js.map +1 -1
  64. package/lib/module/index.web.js +2 -3
  65. package/lib/module/index.web.js.map +1 -1
  66. package/lib/module/menu/index.js +11 -13
  67. package/lib/module/menu/index.js.map +1 -1
  68. package/lib/module/select/index.js +27 -28
  69. package/lib/module/select/index.js.map +1 -1
  70. package/lib/module/toast/index.js +41 -11
  71. package/lib/module/toast/index.js.map +1 -1
  72. package/lib/module/toast/index.web.js +18 -13
  73. package/lib/module/toast/index.web.js.map +1 -1
  74. package/lib/typescript/commonjs/__tests__/Dialog.test.d.ts +2 -0
  75. package/lib/typescript/commonjs/__tests__/Dialog.test.d.ts.map +1 -0
  76. package/lib/typescript/commonjs/bottom-sheet/index.d.ts +47 -1
  77. package/lib/typescript/commonjs/bottom-sheet/index.d.ts.map +1 -1
  78. package/lib/typescript/commonjs/context-menu/index.d.ts +4 -3
  79. package/lib/typescript/commonjs/context-menu/index.d.ts.map +1 -1
  80. package/lib/typescript/commonjs/dialog/BloomDialogProvider.d.ts +27 -0
  81. package/lib/typescript/commonjs/dialog/BloomDialogProvider.d.ts.map +1 -0
  82. package/lib/typescript/commonjs/dialog/BloomDialogProvider.web.d.ts +15 -0
  83. package/lib/typescript/commonjs/dialog/BloomDialogProvider.web.d.ts.map +1 -0
  84. package/lib/typescript/commonjs/dialog/Dialog.d.ts +37 -10
  85. package/lib/typescript/commonjs/dialog/Dialog.d.ts.map +1 -1
  86. package/lib/typescript/commonjs/dialog/Dialog.web.d.ts +26 -10
  87. package/lib/typescript/commonjs/dialog/Dialog.web.d.ts.map +1 -1
  88. package/lib/typescript/commonjs/dialog/SheetShell.d.ts +31 -0
  89. package/lib/typescript/commonjs/dialog/SheetShell.d.ts.map +1 -0
  90. package/lib/typescript/commonjs/dialog/alert-store.d.ts +70 -0
  91. package/lib/typescript/commonjs/dialog/alert-store.d.ts.map +1 -0
  92. package/lib/typescript/commonjs/dialog/alert.d.ts +27 -0
  93. package/lib/typescript/commonjs/dialog/alert.d.ts.map +1 -0
  94. package/lib/typescript/commonjs/dialog/context.d.ts +7 -0
  95. package/lib/typescript/commonjs/dialog/context.d.ts.map +1 -1
  96. package/lib/typescript/commonjs/dialog/index.d.ts +5 -2
  97. package/lib/typescript/commonjs/dialog/index.d.ts.map +1 -1
  98. package/lib/typescript/commonjs/dialog/index.web.d.ts +5 -2
  99. package/lib/typescript/commonjs/dialog/index.web.d.ts.map +1 -1
  100. package/lib/typescript/commonjs/dialog/types.d.ts +70 -15
  101. package/lib/typescript/commonjs/dialog/types.d.ts.map +1 -1
  102. package/lib/typescript/commonjs/index.d.ts +3 -3
  103. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  104. package/lib/typescript/commonjs/index.web.d.ts +3 -3
  105. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  106. package/lib/typescript/commonjs/menu/index.d.ts +4 -4
  107. package/lib/typescript/commonjs/menu/index.d.ts.map +1 -1
  108. package/lib/typescript/commonjs/select/index.d.ts.map +1 -1
  109. package/lib/typescript/commonjs/toast/index.d.ts +32 -3
  110. package/lib/typescript/commonjs/toast/index.d.ts.map +1 -1
  111. package/lib/typescript/commonjs/toast/index.web.d.ts +14 -7
  112. package/lib/typescript/commonjs/toast/index.web.d.ts.map +1 -1
  113. package/lib/typescript/module/__tests__/Dialog.test.d.ts +2 -0
  114. package/lib/typescript/module/__tests__/Dialog.test.d.ts.map +1 -0
  115. package/lib/typescript/module/bottom-sheet/index.d.ts +47 -1
  116. package/lib/typescript/module/bottom-sheet/index.d.ts.map +1 -1
  117. package/lib/typescript/module/context-menu/index.d.ts +4 -3
  118. package/lib/typescript/module/context-menu/index.d.ts.map +1 -1
  119. package/lib/typescript/module/dialog/BloomDialogProvider.d.ts +27 -0
  120. package/lib/typescript/module/dialog/BloomDialogProvider.d.ts.map +1 -0
  121. package/lib/typescript/module/dialog/BloomDialogProvider.web.d.ts +15 -0
  122. package/lib/typescript/module/dialog/BloomDialogProvider.web.d.ts.map +1 -0
  123. package/lib/typescript/module/dialog/Dialog.d.ts +37 -10
  124. package/lib/typescript/module/dialog/Dialog.d.ts.map +1 -1
  125. package/lib/typescript/module/dialog/Dialog.web.d.ts +26 -10
  126. package/lib/typescript/module/dialog/Dialog.web.d.ts.map +1 -1
  127. package/lib/typescript/module/dialog/SheetShell.d.ts +31 -0
  128. package/lib/typescript/module/dialog/SheetShell.d.ts.map +1 -0
  129. package/lib/typescript/module/dialog/alert-store.d.ts +70 -0
  130. package/lib/typescript/module/dialog/alert-store.d.ts.map +1 -0
  131. package/lib/typescript/module/dialog/alert.d.ts +27 -0
  132. package/lib/typescript/module/dialog/alert.d.ts.map +1 -0
  133. package/lib/typescript/module/dialog/context.d.ts +7 -0
  134. package/lib/typescript/module/dialog/context.d.ts.map +1 -1
  135. package/lib/typescript/module/dialog/index.d.ts +5 -2
  136. package/lib/typescript/module/dialog/index.d.ts.map +1 -1
  137. package/lib/typescript/module/dialog/index.web.d.ts +5 -2
  138. package/lib/typescript/module/dialog/index.web.d.ts.map +1 -1
  139. package/lib/typescript/module/dialog/types.d.ts +70 -15
  140. package/lib/typescript/module/dialog/types.d.ts.map +1 -1
  141. package/lib/typescript/module/index.d.ts +3 -3
  142. package/lib/typescript/module/index.d.ts.map +1 -1
  143. package/lib/typescript/module/index.web.d.ts +3 -3
  144. package/lib/typescript/module/index.web.d.ts.map +1 -1
  145. package/lib/typescript/module/menu/index.d.ts +4 -4
  146. package/lib/typescript/module/menu/index.d.ts.map +1 -1
  147. package/lib/typescript/module/select/index.d.ts.map +1 -1
  148. package/lib/typescript/module/toast/index.d.ts +32 -3
  149. package/lib/typescript/module/toast/index.d.ts.map +1 -1
  150. package/lib/typescript/module/toast/index.web.d.ts +14 -7
  151. package/lib/typescript/module/toast/index.web.d.ts.map +1 -1
  152. package/package.json +3 -14
  153. package/src/__tests__/BottomSheet.test.tsx +149 -2
  154. package/src/__tests__/Dialog.test.tsx +177 -0
  155. package/src/bottom-sheet/index.tsx +367 -83
  156. package/src/context-menu/index.tsx +12 -12
  157. package/src/dialog/BloomDialogProvider.tsx +61 -0
  158. package/src/dialog/BloomDialogProvider.web.tsx +46 -0
  159. package/src/dialog/Dialog.tsx +217 -64
  160. package/src/dialog/Dialog.web.tsx +240 -75
  161. package/src/dialog/SheetShell.tsx +154 -0
  162. package/src/dialog/alert-store.ts +126 -0
  163. package/src/dialog/alert.ts +42 -0
  164. package/src/dialog/context.ts +14 -3
  165. package/src/dialog/index.ts +14 -2
  166. package/src/dialog/index.web.ts +20 -8
  167. package/src/dialog/types.ts +73 -16
  168. package/src/index.ts +17 -3
  169. package/src/index.web.ts +17 -3
  170. package/src/menu/index.tsx +13 -17
  171. package/src/select/index.tsx +30 -30
  172. package/src/toast/index.tsx +55 -11
  173. package/src/toast/index.web.tsx +33 -13
  174. package/lib/commonjs/prompt/Prompt.js +0 -267
  175. package/lib/commonjs/prompt/Prompt.js.map +0 -1
  176. package/lib/commonjs/prompt/index.js +0 -61
  177. package/lib/commonjs/prompt/index.js.map +0 -1
  178. package/lib/module/prompt/Prompt.js +0 -250
  179. package/lib/module/prompt/Prompt.js.map +0 -1
  180. package/lib/module/prompt/index.js +0 -4
  181. package/lib/module/prompt/index.js.map +0 -1
  182. package/lib/typescript/commonjs/prompt/Prompt.d.ts +0 -42
  183. package/lib/typescript/commonjs/prompt/Prompt.d.ts.map +0 -1
  184. package/lib/typescript/commonjs/prompt/index.d.ts +0 -3
  185. package/lib/typescript/commonjs/prompt/index.d.ts.map +0 -1
  186. package/lib/typescript/module/prompt/Prompt.d.ts +0 -42
  187. package/lib/typescript/module/prompt/Prompt.d.ts.map +0 -1
  188. package/lib/typescript/module/prompt/index.d.ts +0 -3
  189. package/lib/typescript/module/prompt/index.d.ts.map +0 -1
  190. package/src/prompt/Prompt.tsx +0 -247
  191. package/src/prompt/index.ts +0 -13
@@ -3,22 +3,24 @@
3
3
  /**
4
4
  * ContextMenu — Native implementation
5
5
  *
6
- * Opens a bottom-sheet menu via Bloom's Dialog when the user long-presses
7
- * the trigger. The menu body is rendered through Bloom's Menu component
8
- * pattern using Dialog.Outer / Dialog.ScrollableInner.
6
+ * Opens a bottom-sheet menu when the user long-presses the trigger. The
7
+ * menu body uses bloom's internal `SheetShell` (a `BottomSheet`
8
+ * presentation primitive with the same drag-handle + close-on-tap
9
+ * semantics shared by `Menu` and `Select`).
9
10
  */
10
11
  import React, { createContext, useCallback, useContext, useMemo } from 'react';
11
12
  import { Pressable, StyleSheet, View } from 'react-native';
12
13
  import { useTheme } from "../theme/use-theme.js";
13
14
  import { Text } from "../typography/index.js";
14
- import * as Dialog from '../dialog';
15
+ import { useDialogControl } from "../dialog/context.js";
16
+ import { SheetShell } from "../dialog/SheetShell.js";
15
17
  import { useInteractionState } from "../hooks/useInteractionState.js";
16
18
  import { ItemCtx, useItemContext } from "./context.js";
17
19
 
18
20
  // ---------------------------------------------------------------------------
19
21
  // Native-specific context (extends base with Dialog control)
20
22
  // ---------------------------------------------------------------------------
21
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
23
+ import { jsx as _jsx } from "react/jsx-runtime";
22
24
  const NativeContextMenuContext = /*#__PURE__*/createContext(null);
23
25
  NativeContextMenuContext.displayName = 'NativeContextMenuContext';
24
26
  function useNativeContextMenuContext() {
@@ -36,7 +38,7 @@ function useNativeContextMenuContext() {
36
38
  export function Root({
37
39
  children
38
40
  }) {
39
- const control = Dialog.useDialogControl();
41
+ const control = useDialogControl();
40
42
  const ctx = useMemo(() => ({
41
43
  isOpen: false,
42
44
  open: () => control.open(),
@@ -99,24 +101,21 @@ export function Outer({
99
101
  const {
100
102
  control
101
103
  } = useNativeContextMenuContext();
102
- return /*#__PURE__*/_jsxs(Dialog.Outer, {
104
+ return /*#__PURE__*/_jsx(SheetShell, {
103
105
  control: control,
104
- preventExpansion: true,
105
- children: [/*#__PURE__*/_jsx(Dialog.Handle, {}), /*#__PURE__*/_jsx(NativeContextMenuContext.Provider, {
106
+ label: "Context menu",
107
+ children: /*#__PURE__*/_jsx(NativeContextMenuContext.Provider, {
106
108
  value: {
107
109
  isOpen: true,
108
110
  open: () => control.open(),
109
111
  close: () => control.close(),
110
112
  control
111
113
  },
112
- children: /*#__PURE__*/_jsx(Dialog.ScrollableInner, {
113
- label: "Context menu",
114
- children: /*#__PURE__*/_jsx(View, {
115
- style: [styles.outerContent, style],
116
- children: children
117
- })
114
+ children: /*#__PURE__*/_jsx(View, {
115
+ style: [styles.outerContent, style],
116
+ children: children
118
117
  })
119
- })]
118
+ })
120
119
  });
121
120
  }
122
121
 
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","useCallback","useContext","useMemo","Pressable","StyleSheet","View","useTheme","Text","Dialog","useInteractionState","ItemCtx","useItemContext","jsx","_jsx","jsxs","_jsxs","NativeContextMenuContext","displayName","useNativeContextMenuContext","ctx","Error","Root","children","control","useDialogControl","isOpen","open","close","Provider","value","Trigger","label","hint","style","state","focused","onIn","onFocus","onOut","onBlur","hovered","pressed","props","onPress","onLongPress","accessibilityLabel","accessibilityHint","Outer","preventExpansion","Handle","ScrollableInner","styles","outerContent","Item","disabled","theme","onPressIn","onPressOut","isHighlighted","handlePress","itemCtx","accessibilityState","item","backgroundColor","colors","contrast50","borderColor","borderLight","backgroundSecondary","ItemText","numberOfLines","ellipsizeMode","itemText","color","textTertiary","text","ItemIcon","icon","Comp","size","fill","textSecondary","Group","Divider","divider","borderTopColor","create","gap","flexDirection","alignItems","paddingHorizontal","borderRadius","overflow","borderWidth","minHeight","paddingVertical","flex","fontSize","fontWeight","borderTopWidth","hairlineWidth","marginVertical"],"sourceRoot":"../../../src","sources":["context-menu/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","createContext","useCallback","useContext","useMemo","Pressable","StyleSheet","View","useTheme","Text","useDialogControl","SheetShell","useInteractionState","ItemCtx","useItemContext","jsx","_jsx","NativeContextMenuContext","displayName","useNativeContextMenuContext","ctx","Error","Root","children","control","isOpen","open","close","Provider","value","Trigger","label","hint","style","state","focused","onIn","onFocus","onOut","onBlur","hovered","pressed","props","onPress","onLongPress","accessibilityLabel","accessibilityHint","Outer","styles","outerContent","Item","disabled","theme","onPressIn","onPressOut","isHighlighted","handlePress","itemCtx","accessibilityState","item","backgroundColor","colors","contrast50","borderColor","borderLight","backgroundSecondary","ItemText","numberOfLines","ellipsizeMode","itemText","color","textTertiary","text","ItemIcon","icon","Comp","size","fill","textSecondary","Group","Divider","divider","borderTopColor","create","gap","flexDirection","alignItems","paddingHorizontal","borderRadius","overflow","borderWidth","minHeight","paddingVertical","flex","fontSize","fontWeight","borderTopWidth","hairlineWidth","marginVertical"],"sourceRoot":"../../../src","sources":["context-menu/index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,KAAK,IACVC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,OAAO,QACF,OAAO;AACd,SAASC,SAAS,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE1D,SAASC,QAAQ,QAAQ,uBAAoB;AAC7C,SAASC,IAAI,QAAQ,wBAAe;AACpC,SAASC,gBAAgB,QAAQ,sBAAmB;AACpD,SAASC,UAAU,QAAQ,yBAAsB;AAEjD,SAASC,mBAAmB,QAAQ,iCAA8B;AAClE,SAASC,OAAO,EAAEC,cAAc,QAAQ,cAAW;;AAYnD;AACA;AACA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAMA,MAAMC,wBAAwB,gBAAGhB,aAAa,CAAuC,IAAI,CAAC;AAC1FgB,wBAAwB,CAACC,WAAW,GAAG,0BAA0B;AAEjE,SAASC,2BAA2BA,CAAA,EAAkC;EACpE,MAAMC,GAAG,GAAGjB,UAAU,CAACc,wBAAwB,CAAC;EAChD,IAAI,CAACG,GAAG,EAAE;IACR,MAAM,IAAIC,KAAK,CACb,+DACF,CAAC;EACH;EACA,OAAOD,GAAG;AACZ;;AAEA;AACA;AACA;;AAEA,OAAO,SAASE,IAAIA,CAAC;EAAEC;AAAwC,CAAC,EAAE;EAChE,MAAMC,OAAO,GAAGd,gBAAgB,CAAC,CAAC;EAElC,MAAMU,GAAG,GAAGhB,OAAO,CACjB,OAAO;IACLqB,MAAM,EAAE,KAAK;IACbC,IAAI,EAAEA,CAAA,KAAMF,OAAO,CAACE,IAAI,CAAC,CAAC;IAC1BC,KAAK,EAAEA,CAAA,KAAMH,OAAO,CAACG,KAAK,CAAC,CAAC;IAC5BH;EACF,CAAC,CAAC,EACF,CAACA,OAAO,CACV,CAAC;EAED,oBACER,IAAA,CAACC,wBAAwB,CAACW,QAAQ;IAACC,KAAK,EAAET,GAAI;IAAAG,QAAA,EAC3CA;EAAQ,CACwB,CAAC;AAExC;;AAEA;AACA;AACA;;AAEA,OAAO,SAASO,OAAOA,CAAC;EAAEP,QAAQ;EAAEQ,KAAK;EAAEC,IAAI;EAAEC;AAAoB,CAAC,EAAE;EACtE,MAAM;IAAEP;EAAK,CAAC,GAAGP,2BAA2B,CAAC,CAAC;EAC9C,MAAM;IAAEe,KAAK,EAAEC,OAAO;IAAEC,IAAI,EAAEC,OAAO;IAAEC,KAAK,EAAEC;EAAO,CAAC,GAAG3B,mBAAmB,CAAC,CAAC;EAE9E,oBACEI,IAAA,CAACT,IAAI;IAAC0B,KAAK,EAAEA,KAAM;IAAAV,QAAA,EAChBA,QAAQ,CAAC;MACRE,MAAM,EAAE,KAAK;MACbS,KAAK,EAAE;QACLM,OAAO,EAAE,KAAK;QACdL,OAAO;QACPM,OAAO,EAAE;MACX,CAAC;MACDC,KAAK,EAAE;QACLC,OAAO,EAAE,IAAI;QACbC,WAAW,EAAElB,IAAI;QACjBW,OAAO;QACPE,MAAM;QACNM,kBAAkB,EAAEd,KAAK;QACzBe,iBAAiB,EAAEd,IAAI,IAAI;MAC7B;IACF,CAAC;EAAC,CACE,CAAC;AAEX;;AAEA;AACA;AACA;;AAEA,OAAO,SAASe,KAAKA,CAAC;EAAExB,QAAQ;EAAEU;AAAkB,CAAC,EAAE;EACrD,MAAM;IAAET;EAAQ,CAAC,GAAGL,2BAA2B,CAAC,CAAC;EAEjD,oBACEH,IAAA,CAACL,UAAU;IAACa,OAAO,EAAEA,OAAQ;IAACO,KAAK,EAAC,cAAc;IAAAR,QAAA,eAChDP,IAAA,CAACC,wBAAwB,CAACW,QAAQ;MAChCC,KAAK,EAAE;QACLJ,MAAM,EAAE,IAAI;QACZC,IAAI,EAAEA,CAAA,KAAMF,OAAO,CAACE,IAAI,CAAC,CAAC;QAC1BC,KAAK,EAAEA,CAAA,KAAMH,OAAO,CAACG,KAAK,CAAC,CAAC;QAC5BH;MACF,CAAE;MAAAD,QAAA,eAEFP,IAAA,CAACT,IAAI;QAAC0B,KAAK,EAAE,CAACe,MAAM,CAACC,YAAY,EAAEhB,KAAK,CAAE;QAAAV,QAAA,EAAEA;MAAQ,CAAO;IAAC,CAC3B;EAAC,CAC1B,CAAC;AAEjB;;AAEA;AACA;AACA;;AAEA,OAAO,SAAS2B,IAAIA,CAAC;EACnB3B,QAAQ;EACRQ,KAAK;EACLY,OAAO;EACPQ,QAAQ,GAAG,KAAK;EAChBlB;AACS,CAAC,EAAE;EACZ,MAAMmB,KAAK,GAAG5C,QAAQ,CAAC,CAAC;EACxB,MAAM;IAAEmB;EAAM,CAAC,GAAGR,2BAA2B,CAAC,CAAC;EAC/C,MAAM;IAAEe,KAAK,EAAEC,OAAO;IAAEC,IAAI,EAAEC,OAAO;IAAEC,KAAK,EAAEC;EAAO,CAAC,GAAG3B,mBAAmB,CAAC,CAAC;EAC9E,MAAM;IACJsB,KAAK,EAAEO,OAAO;IACdL,IAAI,EAAEiB,SAAS;IACff,KAAK,EAAEgB;EACT,CAAC,GAAG1C,mBAAmB,CAAC,CAAC;EAEzB,MAAM2C,aAAa,GAAG,CAACpB,OAAO,IAAIM,OAAO,KAAK,CAACU,QAAQ;EAEvD,MAAMK,WAAW,GAAGtD,WAAW,CAAC,MAAM;IACpCyB,KAAK,CAAC,CAAC;IACPgB,OAAO,CAAC,CAAC;EACX,CAAC,EAAE,CAAChB,KAAK,EAAEgB,OAAO,CAAC,CAAC;EAEpB,MAAMc,OAAO,GAAGrD,OAAO,CACrB,OAAO;IAAE+C;EAAS,CAAC,CAAC,EACpB,CAACA,QAAQ,CACX,CAAC;EAED,oBACEnC,IAAA,CAACX,SAAS;IACRyC,iBAAiB,EAAC,EAAE;IACpBD,kBAAkB,EAAEd,KAAM;IAC1B2B,kBAAkB,EAAE;MAAEP;IAAS,CAAE;IACjCA,QAAQ,EAAEA,QAAS;IACnBd,OAAO,EAAEA,OAAQ;IACjBE,MAAM,EAAEA,MAAO;IACfI,OAAO,EAAEa,WAAY;IACrBH,SAAS,EAAEA,SAAU;IACrBC,UAAU,EAAEA,UAAW;IACvBrB,KAAK,EAAE,CACLe,MAAM,CAACW,IAAI,EACX;MACEC,eAAe,EAAER,KAAK,CAACS,MAAM,CAACC,UAAU;MACxCC,WAAW,EAAEX,KAAK,CAACS,MAAM,CAACG;IAC5B,CAAC,EACDT,aAAa,IAAI;MACfK,eAAe,EAAER,KAAK,CAACS,MAAM,CAACI;IAChC,CAAC,EACDhC,KAAK,CACL;IAAAV,QAAA,eAEFP,IAAA,CAACH,OAAO,CAACe,QAAQ;MAACC,KAAK,EAAE4B,OAAQ;MAAAlC,QAAA,EAAEA;IAAQ,CAAmB;EAAC,CACtD,CAAC;AAEhB;;AAEA;AACA;AACA;;AAEA,OAAO,SAAS2C,QAAQA,CAAC;EAAE3C,QAAQ;EAAEU;AAAqB,CAAC,EAAE;EAC3D,MAAMmB,KAAK,GAAG5C,QAAQ,CAAC,CAAC;EACxB,MAAM;IAAE2C;EAAS,CAAC,GAAGrC,cAAc,CAAC,CAAC;EAErC,oBACEE,IAAA,CAACP,IAAI;IACH0D,aAAa,EAAE,CAAE;IACjBC,aAAa,EAAC,QAAQ;IACtBnC,KAAK,EAAE,CACLe,MAAM,CAACqB,QAAQ,EACf;MAAEC,KAAK,EAAEnB,QAAQ,GAAGC,KAAK,CAACS,MAAM,CAACU,YAAY,GAAGnB,KAAK,CAACS,MAAM,CAACW;IAAK,CAAC,EACnE,IAAIvC,KAAK,GAAG,CAACA,KAAK,CAAC,GAAG,EAAE,CAAC,CACzB;IAAAV,QAAA,EAEDA;EAAQ,CACL,CAAC;AAEX;;AAEA;AACA;AACA;;AAEA,OAAO,SAASkD,QAAQA,CAAC;EAAEC,IAAI,EAAEC;AAAoB,CAAC,EAAE;EACtD,MAAMvB,KAAK,GAAG5C,QAAQ,CAAC,CAAC;EACxB,MAAM;IAAE2C;EAAS,CAAC,GAAGrC,cAAc,CAAC,CAAC;EAErC,oBACEE,IAAA,CAAC2D,IAAI;IACHC,IAAI,EAAC,IAAI;IACTC,IAAI,EAAE1B,QAAQ,GAAGC,KAAK,CAACS,MAAM,CAACU,YAAY,GAAGnB,KAAK,CAACS,MAAM,CAACiB;EAAc,CACzE,CAAC;AAEN;;AAEA;AACA;AACA;;AAEA,OAAO,SAASC,KAAKA,CAAC;EAAExD,QAAQ;EAAEU;AAAkB,CAAC,EAAE;EACrD,oBAAOjB,IAAA,CAACT,IAAI;IAAC0B,KAAK,EAAEA,KAAM;IAAAV,QAAA,EAAEA;EAAQ,CAAO,CAAC;AAC9C;;AAEA;AACA;AACA;;AAEA,OAAO,SAASyD,OAAOA,CAAA,EAAG;EACxB,MAAM5B,KAAK,GAAG5C,QAAQ,CAAC,CAAC;EAExB,oBACEQ,IAAA,CAACT,IAAI;IACH0B,KAAK,EAAE,CACLe,MAAM,CAACiC,OAAO,EACd;MAAEC,cAAc,EAAE9B,KAAK,CAACS,MAAM,CAACG;IAAY,CAAC;EAC5C,CACH,CAAC;AAEN;;AAEA;AACA;AACA;;AAEA,MAAMhB,MAAM,GAAG1C,UAAU,CAAC6E,MAAM,CAAC;EAC/BlC,YAAY,EAAE;IACZmC,GAAG,EAAE;EACP,CAAC;EACDzB,IAAI,EAAE;IACJ0B,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBF,GAAG,EAAE,CAAC;IACNG,iBAAiB,EAAE,EAAE;IACrBC,YAAY,EAAE,CAAC;IACfC,QAAQ,EAAE,QAAQ;IAClBC,WAAW,EAAE,CAAC;IACdC,SAAS,EAAE,EAAE;IACbC,eAAe,EAAE;EACnB,CAAC;EACDvB,QAAQ,EAAE;IACRwB,IAAI,EAAE,CAAC;IACPC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDd,OAAO,EAAE;IACPe,cAAc,EAAE1F,UAAU,CAAC2F,aAAa;IACxCC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ import React, { useEffect, useState } from 'react';
4
+ import { AutoMountedDialog } from './Dialog';
5
+ import { buttonToAction, dismissAlert, subscribeAlerts } from "./alert-store.js";
6
+
7
+ /**
8
+ * Mounts the imperative `alert()` host inside your app.
9
+ *
10
+ * Wrap your app root once (after `BloomThemeProvider`, so the dialog's
11
+ * colours come from the active theme) and you can call `alert()` from
12
+ * anywhere — including from code that runs before the provider mounts
13
+ * (alerts are queued and drained on subscribe).
14
+ *
15
+ * ```tsx
16
+ * import { BloomDialogProvider } from '@oxyhq/bloom';
17
+ *
18
+ * <BloomThemeProvider mode="system" colorPreset="oxy">
19
+ * <BloomDialogProvider>
20
+ * <App />
21
+ * </BloomDialogProvider>
22
+ * </BloomThemeProvider>
23
+ * ```
24
+ *
25
+ * Alerts are presented one at a time. While one is on screen, subsequent
26
+ * `alert()` calls enqueue and present in FIFO order once their predecessor
27
+ * has finished closing.
28
+ */
29
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
30
+ export function BloomDialogProvider({
31
+ children
32
+ }) {
33
+ const [queue, setQueue] = useState([]);
34
+ useEffect(() => subscribeAlerts(setQueue), []);
35
+
36
+ // Only the head of the queue is presented; this keeps the bottom-sheet
37
+ // exit/enter animations clean and matches the platform `Alert.alert`
38
+ // behaviour our consumers expect.
39
+ const head = queue[0];
40
+ return /*#__PURE__*/_jsxs(_Fragment, {
41
+ children: [children, head ? /*#__PURE__*/_jsx(AlertHost, {
42
+ entry: head
43
+ }, head.id) : null]
44
+ });
45
+ }
46
+ function AlertHost({
47
+ entry
48
+ }) {
49
+ const actions = entry.buttons.map(buttonToAction);
50
+ return /*#__PURE__*/_jsx(AutoMountedDialog, {
51
+ title: entry.title,
52
+ description: entry.message,
53
+ actions: actions,
54
+ onResolve: () => dismissAlert(entry.id)
55
+ });
56
+ }
57
+ //# sourceMappingURL=BloomDialogProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useState","AutoMountedDialog","buttonToAction","dismissAlert","subscribeAlerts","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","BloomDialogProvider","children","queue","setQueue","head","AlertHost","entry","id","actions","buttons","map","title","description","message","onResolve"],"sourceRoot":"../../../src","sources":["dialog/BloomDialogProvider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAElD,SAASC,iBAAiB,QAAQ,UAAU;AAC5C,SACEC,cAAc,EACdC,YAAY,EACZC,eAAe,QAEV,kBAAe;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AArBA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAsBA,OAAO,SAASC,mBAAmBA,CAAC;EAAEC;AAAwC,CAAC,EAAE;EAC/E,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGd,QAAQ,CAAwB,EAAE,CAAC;EAE7DD,SAAS,CAAC,MAAMK,eAAe,CAACU,QAAQ,CAAC,EAAE,EAAE,CAAC;;EAE9C;EACA;EACA;EACA,MAAMC,IAAI,GAAGF,KAAK,CAAC,CAAC,CAAC;EAErB,oBACEH,KAAA,CAAAF,SAAA;IAAAI,QAAA,GACGA,QAAQ,EACRG,IAAI,gBAAGT,IAAA,CAACU,SAAS;MAAeC,KAAK,EAAEF;IAAK,GAArBA,IAAI,CAACG,EAAkB,CAAC,GAAG,IAAI;EAAA,CACvD,CAAC;AAEP;AAEA,SAASF,SAASA,CAAC;EAAEC;AAA6B,CAAC,EAAE;EACnD,MAAME,OAAO,GAAGF,KAAK,CAACG,OAAO,CAACC,GAAG,CAACnB,cAAc,CAAC;EACjD,oBACEI,IAAA,CAACL,iBAAiB;IAChBqB,KAAK,EAAEL,KAAK,CAACK,KAAM;IACnBC,WAAW,EAAEN,KAAK,CAACO,OAAQ;IAC3BL,OAAO,EAAEA,OAAQ;IACjBM,SAAS,EAAEA,CAAA,KAAMtB,YAAY,CAACc,KAAK,CAACC,EAAE;EAAE,CACzC,CAAC;AAEN","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ import React, { useEffect, useState } from 'react';
4
+ import { AutoMountedDialog } from "./Dialog.web.js";
5
+ import { buttonToAction, dismissAlert, subscribeAlerts } from "./alert-store.js";
6
+
7
+ /**
8
+ * Web variant of `BloomDialogProvider`. Identical surface area to the
9
+ * native version — it just uses the web-fork `Dialog` (`Dialog.web.tsx`)
10
+ * underneath instead of the bottom-sheet variant.
11
+ *
12
+ * See the native file (`./BloomDialogProvider.tsx`) for the full design
13
+ * notes; this fork exists purely so the bundler's `browser` condition can
14
+ * resolve to a `Dialog` that doesn't pull in the native gesture-handler /
15
+ * reanimated stack.
16
+ */
17
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
18
+ export function BloomDialogProvider({
19
+ children
20
+ }) {
21
+ const [queue, setQueue] = useState([]);
22
+ useEffect(() => subscribeAlerts(setQueue), []);
23
+ const head = queue[0];
24
+ return /*#__PURE__*/_jsxs(_Fragment, {
25
+ children: [children, head ? /*#__PURE__*/_jsx(AlertHost, {
26
+ entry: head
27
+ }, head.id) : null]
28
+ });
29
+ }
30
+ function AlertHost({
31
+ entry
32
+ }) {
33
+ const actions = entry.buttons.map(buttonToAction);
34
+ return /*#__PURE__*/_jsx(AutoMountedDialog, {
35
+ title: entry.title,
36
+ description: entry.message,
37
+ actions: actions,
38
+ onResolve: () => dismissAlert(entry.id)
39
+ });
40
+ }
41
+ //# sourceMappingURL=BloomDialogProvider.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useState","AutoMountedDialog","buttonToAction","dismissAlert","subscribeAlerts","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","BloomDialogProvider","children","queue","setQueue","head","AlertHost","entry","id","actions","buttons","map","title","description","message","onResolve"],"sourceRoot":"../../../src","sources":["dialog/BloomDialogProvider.web.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAElD,SAASC,iBAAiB,QAAQ,iBAAc;AAChD,SACEC,cAAc,EACdC,YAAY,EACZC,eAAe,QAEV,kBAAe;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAUA,OAAO,SAASC,mBAAmBA,CAAC;EAAEC;AAAwC,CAAC,EAAE;EAC/E,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGd,QAAQ,CAAwB,EAAE,CAAC;EAE7DD,SAAS,CAAC,MAAMK,eAAe,CAACU,QAAQ,CAAC,EAAE,EAAE,CAAC;EAE9C,MAAMC,IAAI,GAAGF,KAAK,CAAC,CAAC,CAAC;EAErB,oBACEH,KAAA,CAAAF,SAAA;IAAAI,QAAA,GACGA,QAAQ,EACRG,IAAI,gBAAGT,IAAA,CAACU,SAAS;MAAeC,KAAK,EAAEF;IAAK,GAArBA,IAAI,CAACG,EAAkB,CAAC,GAAG,IAAI;EAAA,CACvD,CAAC;AAEP;AAEA,SAASF,SAASA,CAAC;EAAEC;AAA6B,CAAC,EAAE;EACnD,MAAME,OAAO,GAAGF,KAAK,CAACG,OAAO,CAACC,GAAG,CAACnB,cAAc,CAAC;EACjD,oBACEI,IAAA,CAACL,iBAAiB;IAChBqB,KAAK,EAAEL,KAAK,CAACK,KAAM;IACnBC,WAAW,EAAEN,KAAK,CAACO,OAAQ;IAC3BL,OAAO,EAAEA,OAAQ;IACjBM,SAAS,EAAEA,CAAA,KAAMtB,YAAY,CAACc,KAAK,CAACC,EAAE;EAAE,CACzC,CAAC;AAEN","ignoreList":[]}
@@ -1,30 +1,65 @@
1
1
  "use strict";
2
2
 
3
- import React, { useCallback, useImperativeHandle, useMemo, useRef } from 'react';
4
- import { Pressable, StyleSheet, View } from 'react-native';
3
+ import React, { useCallback, useEffect, useId, useImperativeHandle, useMemo, useRef } from 'react';
4
+ import { Text, TouchableOpacity, View } from 'react-native';
5
5
  import { BottomSheet } from "../bottom-sheet/index.js";
6
6
  import { useTheme } from "../theme/use-theme.js";
7
- import { Context, useDialogContext } from "./context.js";
8
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
9
- export { useDialogContext, useDialogControl } from "./context.js";
10
- export function Outer({
11
- children,
7
+ import { Context, useDialogContext, useDialogControl } from "./context.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ /**
10
+ * Native variant of `<Dialog>`.
11
+ *
12
+ * Uses bloom's own `BottomSheet` in `detached` mode as the underlying
13
+ * surface — a floating, dynamically-sized, content-hugging card that
14
+ * gracefully degrades from sheet (phone) to centered card (tablet, via the
15
+ * 500px max-width cap).
16
+ *
17
+ * The component accepts three rendering modes simultaneously:
18
+ *
19
+ * 1. Declarative — `title`, `description`, `actions`. Bloom renders a
20
+ * standard confirm/destructive/cancel layout.
21
+ * 2. Custom children — caller passes JSX, bloom renders the chrome (title
22
+ * + close behaviour) and the children fill the body.
23
+ * 3. Pure children — no `title`/`description`/`actions`; caller owns
24
+ * every pixel.
25
+ *
26
+ * All three share the same dismissal semantics: tapping the backdrop, the
27
+ * drag handle, swiping down, or `control.close()` runs the queued close
28
+ * callbacks once the sheet's exit animation has settled.
29
+ */
30
+ export function Dialog({
12
31
  control,
13
32
  onClose,
14
- testID
33
+ testID,
34
+ title,
35
+ description,
36
+ actions,
37
+ style,
38
+ label,
39
+ children
15
40
  }) {
16
41
  const theme = useTheme();
17
42
  const ref = useRef(null);
18
43
  const closeCallbacks = useRef([]);
44
+ const titleId = useId();
45
+ const descriptionId = useId();
46
+
47
+ // Drain queued close callbacks atomically — capturing the list and
48
+ // resetting it before invocation ensures a callback that synchronously
49
+ // re-opens the dialog (and queues fresh callbacks) does not see the old
50
+ // ones replayed against the new session.
19
51
  const callQueuedCallbacks = useCallback(() => {
20
- for (const cb of closeCallbacks.current) {
52
+ const queued = closeCallbacks.current;
53
+ closeCallbacks.current = [];
54
+ for (const cb of queued) {
21
55
  try {
22
56
  cb();
23
57
  } catch (e) {
24
- console.error('Dialog close callback error:', e);
58
+ if (typeof console !== 'undefined' && console.error) {
59
+ console.error('Dialog close callback error:', e);
60
+ }
25
61
  }
26
62
  }
27
- closeCallbacks.current = [];
28
63
  }, []);
29
64
  const open = useCallback(() => {
30
65
  ref.current?.present();
@@ -35,11 +70,6 @@ export function Outer({
35
70
  }
36
71
  ref.current?.dismiss();
37
72
  }, []);
38
-
39
- // onDismiss fires after the BottomSheet's close animation finishes — this is
40
- // the integration point for the closeCallbacks queue. Consumers (e.g.
41
- // Prompt.Action) rely on the queued callback running AFTER the sheet has
42
- // visually closed so the screen transition feels natural.
43
73
  const handleDismiss = useCallback(() => {
44
74
  callQueuedCallbacks();
45
75
  onClose?.();
@@ -55,9 +85,9 @@ export function Outer({
55
85
  const sheetStyle = useMemo(() => ({
56
86
  maxWidth: 500,
57
87
  backgroundColor: theme.colors.background,
58
- // All four corners rounded — Dialog uses BottomSheet in `detached` mode
59
- // (floating card with safe-area margins), so we round the bottom too
60
- // instead of leaving the default top-only radius.
88
+ // All four corners rounded — bloom's BottomSheet defaults to top-only
89
+ // radius in flush mode, but we use `detached` so the whole card is
90
+ // floating and rounded uniformly.
61
91
  borderRadius: 20
62
92
  }), [theme.colors.background]);
63
93
  return /*#__PURE__*/_jsx(BottomSheet, {
@@ -65,95 +95,177 @@ export function Outer({
65
95
  onDismiss: handleDismiss,
66
96
  enablePanDownToClose: true,
67
97
  detached: true
68
- // Stronger dim so the underlying bottom-sheet's handle/content doesn't
69
- // bleed through when a Dialog/Prompt is stacked over another sheet.
98
+ // Stronger dim when a Dialog is stacked over another sheet so the
99
+ // underlying sheet's handle/content doesn't bleed through.
70
100
  ,
71
101
  backdropOpacity: 0.7,
72
102
  style: sheetStyle,
73
103
  children: /*#__PURE__*/_jsx(Context.Provider, {
74
104
  value: context,
75
- children: /*#__PURE__*/_jsx(View, {
105
+ children: /*#__PURE__*/_jsxs(View, {
76
106
  testID: testID,
77
- style: {
107
+ accessibilityLabel: label,
108
+ "aria-labelledby": title ? titleId : undefined,
109
+ "aria-describedby": description ? descriptionId : undefined,
110
+ style: [
111
+ // Detached BottomSheet already adds `marginBottom: insets.bottom + 16`
112
+ // to the sheet container — the floating card sits ABOVE the
113
+ // system gesture bar, so we don't add `insets.bottom` here.
114
+ {
115
+ paddingTop: 20,
116
+ paddingHorizontal: 20,
117
+ paddingBottom: 20
118
+ }, {
78
119
  backgroundColor: theme.colors.background
79
- },
80
- children: children
120
+ }, style],
121
+ children: [title ? /*#__PURE__*/_jsx(Text, {
122
+ nativeID: titleId,
123
+ style: {
124
+ fontSize: 22,
125
+ fontWeight: '600',
126
+ color: theme.colors.text,
127
+ paddingBottom: description ? 4 : 16,
128
+ lineHeight: 30
129
+ },
130
+ children: title
131
+ }) : null, description ? /*#__PURE__*/_jsx(Text, {
132
+ nativeID: descriptionId,
133
+ style: {
134
+ fontSize: 16,
135
+ color: theme.colors.textSecondary,
136
+ paddingBottom: 16,
137
+ lineHeight: 22
138
+ },
139
+ children: description
140
+ }) : null, children, actions && actions.length > 0 ? /*#__PURE__*/_jsx(ActionRow, {
141
+ actions: actions
142
+ }) : null]
81
143
  })
82
144
  })
83
145
  });
84
146
  }
85
- export function Inner({
86
- children,
87
- style,
88
- header,
89
- contentContainerStyle
147
+ function ActionRow({
148
+ actions
90
149
  }) {
91
- // Dialog renders inside a `detached` BottomSheet, which already adds
92
- // `marginBottom: insets.bottom + 16` to the sheet container — the floating
93
- // card sits ABOVE the system gesture bar, so we don't add `insets.bottom`
94
- // here. Doing so double-padded the bottom on Android edge-to-edge displays.
95
- return /*#__PURE__*/_jsxs(_Fragment, {
96
- children: [header, /*#__PURE__*/_jsx(View, {
97
- style: [{
98
- paddingTop: 20,
99
- paddingHorizontal: 20,
100
- paddingBottom: 20
101
- }, contentContainerStyle, style],
102
- children: children
103
- })]
104
- });
105
- }
106
- export function ScrollableInner(props) {
107
- return /*#__PURE__*/_jsx(Inner, {
108
- ...props
150
+ return /*#__PURE__*/_jsx(View, {
151
+ style: {
152
+ width: '100%',
153
+ gap: 8,
154
+ justifyContent: 'flex-end'
155
+ },
156
+ children: actions.map((action, idx) => /*#__PURE__*/_jsx(ActionButton, {
157
+ action: action
158
+ }, `${action.label}-${idx}`))
109
159
  });
110
160
  }
111
- const handleStyles = StyleSheet.create({
112
- container: {
113
- position: 'absolute',
114
- width: '100%',
115
- alignItems: 'center',
116
- zIndex: 10,
117
- height: 20
118
- },
119
- bar: {
120
- top: 8,
121
- width: 35,
122
- height: 5,
123
- borderRadius: 3,
124
- alignSelf: 'center',
125
- opacity: 0.5
126
- }
127
- });
128
- export function Handle() {
129
- const theme = useTheme();
161
+ function ActionButton({
162
+ action
163
+ }) {
130
164
  const {
131
165
  close
132
166
  } = useDialogContext();
133
- return /*#__PURE__*/_jsx(View, {
134
- style: handleStyles.container,
135
- children: /*#__PURE__*/_jsx(Pressable, {
136
- onPress: () => close(),
137
- accessibilityLabel: "Dismiss",
138
- accessibilityHint: "Tap to close the dialog",
139
- hitSlop: {
140
- top: 10,
141
- bottom: 10,
142
- left: 40,
143
- right: 40
167
+ const theme = useTheme();
168
+ const color = action.color ?? 'default';
169
+ const shouldCloseOnPress = action.shouldCloseOnPress ?? true;
170
+ const {
171
+ background,
172
+ foreground
173
+ } = getActionPalette(color, theme.colors);
174
+ const handlePress = useCallback(e => {
175
+ const onPress = action.onPress;
176
+ if (color === 'cancel') {
177
+ // Cancel always dismisses; consumer's onPress (rare) runs after.
178
+ close(onPress ? () => onPress(e) : undefined);
179
+ return;
180
+ }
181
+ if (shouldCloseOnPress) {
182
+ close(onPress ? () => onPress(e) : undefined);
183
+ } else {
184
+ onPress?.(e);
185
+ }
186
+ }, [action.onPress, close, color, shouldCloseOnPress]);
187
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
188
+ style: {
189
+ borderRadius: 9999,
190
+ alignItems: 'center',
191
+ justifyContent: 'center',
192
+ backgroundColor: background,
193
+ opacity: action.disabled ? 0.5 : 1,
194
+ paddingVertical: 12,
195
+ paddingHorizontal: 24
196
+ },
197
+ onPress: handlePress,
198
+ disabled: action.disabled,
199
+ activeOpacity: 0.7,
200
+ testID: action.testID,
201
+ children: /*#__PURE__*/_jsx(Text, {
202
+ style: {
203
+ fontSize: 16,
204
+ fontWeight: '500',
205
+ color: foreground
144
206
  },
145
- children: /*#__PURE__*/_jsx(View, {
146
- style: [handleStyles.bar, {
147
- backgroundColor: theme.colors.text
148
- }]
149
- })
207
+ children: action.label
150
208
  })
151
209
  });
152
210
  }
153
- export function Close() {
154
- return null;
211
+ function getActionPalette(color, colors) {
212
+ switch (color) {
213
+ case 'destructive':
214
+ return {
215
+ background: colors.negative,
216
+ foreground: colors.negativeForeground
217
+ };
218
+ case 'cancel':
219
+ return {
220
+ background: colors.contrast50,
221
+ foreground: colors.text
222
+ };
223
+ case 'default':
224
+ return {
225
+ background: colors.primary,
226
+ foreground: '#FFFFFF'
227
+ };
228
+ /* c8 ignore next 2 -- TS exhaustiveness check guards this branch */
229
+ default:
230
+ {
231
+ const _exhaustive = color;
232
+ return {
233
+ background: colors.primary,
234
+ foreground: '#FFFFFF'
235
+ };
236
+ }
237
+ }
155
238
  }
156
- export function Backdrop() {
157
- return null;
239
+
240
+ /**
241
+ * Helper used by the imperative `alert()` API. Mounts a `<Dialog>` against
242
+ * a fresh control and presents it immediately. `onResolve` is invoked
243
+ * exactly once when the dialog finishes closing (regardless of how the
244
+ * dismissal happened).
245
+ *
246
+ * Kept private to the dialog module — `alert()` is the public surface.
247
+ */
248
+ export function AutoMountedDialog({
249
+ title,
250
+ description,
251
+ actions,
252
+ onResolve
253
+ }) {
254
+ const control = useDialogControl();
255
+
256
+ // `control` is referentially stable for the lifetime of the component
257
+ // (memoised by `useDialogControl` on `[id]`), so this effect runs exactly
258
+ // once per mount — present-on-mount semantics for an `alert()` call
259
+ // without re-presenting on subsequent renders.
260
+ useEffect(() => {
261
+ control.open();
262
+ }, [control]);
263
+ return /*#__PURE__*/_jsx(Dialog, {
264
+ control: control,
265
+ title: title,
266
+ description: description,
267
+ actions: actions,
268
+ onClose: onResolve
269
+ });
158
270
  }
159
271
  //# sourceMappingURL=Dialog.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useImperativeHandle","useMemo","useRef","Pressable","StyleSheet","View","BottomSheet","useTheme","Context","useDialogContext","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","useDialogControl","Outer","children","control","onClose","testID","theme","ref","closeCallbacks","callQueuedCallbacks","cb","current","e","console","error","open","present","close","push","dismiss","handleDismiss","context","isWithinDialog","sheetStyle","maxWidth","backgroundColor","colors","background","borderRadius","onDismiss","enablePanDownToClose","detached","backdropOpacity","style","Provider","value","Inner","header","contentContainerStyle","paddingTop","paddingHorizontal","paddingBottom","ScrollableInner","props","handleStyles","create","container","position","width","alignItems","zIndex","height","bar","top","alignSelf","opacity","Handle","onPress","accessibilityLabel","accessibilityHint","hitSlop","bottom","left","right","text","Close","Backdrop"],"sourceRoot":"../../../src","sources":["dialog/Dialog.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useId","useImperativeHandle","useMemo","useRef","Text","TouchableOpacity","View","BottomSheet","useTheme","Context","useDialogContext","useDialogControl","jsx","_jsx","jsxs","_jsxs","Dialog","control","onClose","testID","title","description","actions","style","label","children","theme","ref","closeCallbacks","titleId","descriptionId","callQueuedCallbacks","queued","current","cb","e","console","error","open","present","close","push","dismiss","handleDismiss","context","isWithinDialog","sheetStyle","maxWidth","backgroundColor","colors","background","borderRadius","onDismiss","enablePanDownToClose","detached","backdropOpacity","Provider","value","accessibilityLabel","undefined","paddingTop","paddingHorizontal","paddingBottom","nativeID","fontSize","fontWeight","color","text","lineHeight","textSecondary","length","ActionRow","width","gap","justifyContent","map","action","idx","ActionButton","shouldCloseOnPress","foreground","getActionPalette","handlePress","onPress","alignItems","opacity","disabled","paddingVertical","activeOpacity","negative","negativeForeground","contrast50","primary","_exhaustive","AutoMountedDialog","onResolve"],"sourceRoot":"../../../src","sources":["dialog/Dialog.tsx"],"mappings":"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","ignoreList":[]}