@pushframe/sdk 0.1.4 → 0.1.8

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 (288) hide show
  1. package/lib/commonjs/PushframeProvider.js +69 -0
  2. package/lib/commonjs/PushframeProvider.js.map +1 -0
  3. package/lib/commonjs/PushframeScreen.js +69 -0
  4. package/lib/commonjs/PushframeScreen.js.map +1 -0
  5. package/lib/commonjs/bindings.js +73 -0
  6. package/lib/commonjs/bindings.js.map +1 -0
  7. package/lib/commonjs/components/ButtonComponent.js +72 -0
  8. package/lib/commonjs/components/ButtonComponent.js.map +1 -0
  9. package/lib/commonjs/components/FlatListComponent.js +73 -0
  10. package/lib/commonjs/components/FlatListComponent.js.map +1 -0
  11. package/lib/commonjs/components/ImageComponent.js +67 -0
  12. package/lib/commonjs/components/ImageComponent.js.map +1 -0
  13. package/lib/commonjs/components/PushFrameComponent.js +179 -0
  14. package/lib/commonjs/components/PushFrameComponent.js.map +1 -0
  15. package/lib/commonjs/components/PushFrameProvider.js +115 -0
  16. package/lib/commonjs/components/PushFrameProvider.js.map +1 -0
  17. package/lib/commonjs/components/PushFrameScreen.js +39 -0
  18. package/lib/commonjs/components/PushFrameScreen.js.map +1 -0
  19. package/lib/commonjs/components/ScrollViewComponent.js +64 -0
  20. package/lib/commonjs/components/ScrollViewComponent.js.map +1 -0
  21. package/lib/commonjs/components/StackComponent.js +61 -0
  22. package/lib/commonjs/components/StackComponent.js.map +1 -0
  23. package/lib/commonjs/components/TextComponent.js +62 -0
  24. package/lib/commonjs/components/TextComponent.js.map +1 -0
  25. package/lib/commonjs/conditions.js +44 -0
  26. package/lib/commonjs/conditions.js.map +1 -0
  27. package/lib/commonjs/context/PushFrameContext.js +33 -0
  28. package/lib/commonjs/context/PushFrameContext.js.map +1 -0
  29. package/lib/commonjs/index.js +200 -0
  30. package/lib/commonjs/index.js.map +1 -0
  31. package/lib/commonjs/overlays/BottomSheetHost.js +144 -0
  32. package/lib/commonjs/overlays/BottomSheetHost.js.map +1 -0
  33. package/lib/commonjs/overlays/ToastHost.js +135 -0
  34. package/lib/commonjs/overlays/ToastHost.js.map +1 -0
  35. package/lib/commonjs/package.json +1 -0
  36. package/lib/commonjs/primitives/ActivityIndicator.js +24 -0
  37. package/lib/commonjs/primitives/ActivityIndicator.js.map +1 -0
  38. package/lib/commonjs/primitives/FlatList.js +34 -0
  39. package/lib/commonjs/primitives/FlatList.js.map +1 -0
  40. package/lib/commonjs/primitives/Image.js +33 -0
  41. package/lib/commonjs/primitives/Image.js.map +1 -0
  42. package/lib/commonjs/primitives/KeyboardAvoidingView.js +24 -0
  43. package/lib/commonjs/primitives/KeyboardAvoidingView.js.map +1 -0
  44. package/lib/commonjs/primitives/Modal.js +24 -0
  45. package/lib/commonjs/primitives/Modal.js.map +1 -0
  46. package/lib/commonjs/primitives/Pressable.js +26 -0
  47. package/lib/commonjs/primitives/Pressable.js.map +1 -0
  48. package/lib/commonjs/primitives/SafeAreaView.js +38 -0
  49. package/lib/commonjs/primitives/SafeAreaView.js.map +1 -0
  50. package/lib/commonjs/primitives/ScrollView.js +26 -0
  51. package/lib/commonjs/primitives/ScrollView.js.map +1 -0
  52. package/lib/commonjs/primitives/StatusBar.js +24 -0
  53. package/lib/commonjs/primitives/StatusBar.js.map +1 -0
  54. package/lib/commonjs/primitives/Switch.js +28 -0
  55. package/lib/commonjs/primitives/Switch.js.map +1 -0
  56. package/lib/commonjs/primitives/Text.js +37 -0
  57. package/lib/commonjs/primitives/Text.js.map +1 -0
  58. package/lib/commonjs/primitives/TextInput.js +31 -0
  59. package/lib/commonjs/primitives/TextInput.js.map +1 -0
  60. package/lib/commonjs/primitives/View.js +24 -0
  61. package/lib/commonjs/primitives/View.js.map +1 -0
  62. package/lib/commonjs/primitives/index.js +97 -0
  63. package/lib/commonjs/primitives/index.js.map +1 -0
  64. package/lib/commonjs/registry/ComponentRegistry.js +70 -0
  65. package/lib/commonjs/registry/ComponentRegistry.js.map +1 -0
  66. package/lib/commonjs/registry.js +94 -0
  67. package/lib/commonjs/registry.js.map +1 -0
  68. package/lib/commonjs/renderer/RecursiveRenderer.js +202 -0
  69. package/lib/commonjs/renderer/RecursiveRenderer.js.map +1 -0
  70. package/lib/commonjs/renderer/bindingResolver.js +98 -0
  71. package/lib/commonjs/renderer/bindingResolver.js.map +1 -0
  72. package/lib/commonjs/renderer/conditionalEvaluator.js +31 -0
  73. package/lib/commonjs/renderer/conditionalEvaluator.js.map +1 -0
  74. package/lib/commonjs/renderer.js +107 -0
  75. package/lib/commonjs/renderer.js.map +1 -0
  76. package/lib/commonjs/schema.js +79 -0
  77. package/lib/commonjs/schema.js.map +1 -0
  78. package/lib/commonjs/transformer/index.js +1055 -0
  79. package/lib/commonjs/transformer/index.js.map +1 -0
  80. package/lib/commonjs/transport.js +86 -0
  81. package/lib/commonjs/transport.js.map +1 -0
  82. package/lib/module/PushframeProvider.js +62 -0
  83. package/lib/module/PushframeProvider.js.map +1 -0
  84. package/lib/module/PushframeScreen.js +65 -0
  85. package/lib/module/PushframeScreen.js.map +1 -0
  86. package/lib/module/bindings.js +68 -0
  87. package/lib/module/bindings.js.map +1 -0
  88. package/lib/module/components/ButtonComponent.js +67 -0
  89. package/lib/module/components/ButtonComponent.js.map +1 -0
  90. package/lib/module/components/FlatListComponent.js +68 -0
  91. package/lib/module/components/FlatListComponent.js.map +1 -0
  92. package/lib/module/components/ImageComponent.js +62 -0
  93. package/lib/module/components/ImageComponent.js.map +1 -0
  94. package/lib/module/components/PushFrameComponent.js +174 -0
  95. package/lib/module/components/PushFrameComponent.js.map +1 -0
  96. package/lib/module/components/PushFrameProvider.js +110 -0
  97. package/lib/module/components/PushFrameProvider.js.map +1 -0
  98. package/lib/module/components/PushFrameScreen.js +34 -0
  99. package/lib/module/components/PushFrameScreen.js.map +1 -0
  100. package/lib/module/components/ScrollViewComponent.js +59 -0
  101. package/lib/module/components/ScrollViewComponent.js.map +1 -0
  102. package/lib/module/components/StackComponent.js +56 -0
  103. package/lib/module/components/StackComponent.js.map +1 -0
  104. package/lib/module/components/TextComponent.js +57 -0
  105. package/lib/module/components/TextComponent.js.map +1 -0
  106. package/lib/module/conditions.js +40 -0
  107. package/lib/module/conditions.js.map +1 -0
  108. package/lib/module/context/PushFrameContext.js +29 -0
  109. package/lib/module/context/PushFrameContext.js.map +1 -0
  110. package/lib/module/index.js +99 -0
  111. package/lib/module/index.js.map +1 -0
  112. package/lib/module/overlays/BottomSheetHost.js +139 -0
  113. package/lib/module/overlays/BottomSheetHost.js.map +1 -0
  114. package/lib/module/overlays/ToastHost.js +130 -0
  115. package/lib/module/overlays/ToastHost.js.map +1 -0
  116. package/lib/module/primitives/ActivityIndicator.js +19 -0
  117. package/lib/module/primitives/ActivityIndicator.js.map +1 -0
  118. package/lib/module/primitives/FlatList.js +29 -0
  119. package/lib/module/primitives/FlatList.js.map +1 -0
  120. package/lib/module/primitives/Image.js +28 -0
  121. package/lib/module/primitives/Image.js.map +1 -0
  122. package/lib/module/primitives/KeyboardAvoidingView.js +19 -0
  123. package/lib/module/primitives/KeyboardAvoidingView.js.map +1 -0
  124. package/lib/module/primitives/Modal.js +19 -0
  125. package/lib/module/primitives/Modal.js.map +1 -0
  126. package/lib/module/primitives/Pressable.js +21 -0
  127. package/lib/module/primitives/Pressable.js.map +1 -0
  128. package/lib/module/primitives/SafeAreaView.js +33 -0
  129. package/lib/module/primitives/SafeAreaView.js.map +1 -0
  130. package/lib/module/primitives/ScrollView.js +21 -0
  131. package/lib/module/primitives/ScrollView.js.map +1 -0
  132. package/lib/module/primitives/StatusBar.js +19 -0
  133. package/lib/module/primitives/StatusBar.js.map +1 -0
  134. package/lib/module/primitives/Switch.js +23 -0
  135. package/lib/module/primitives/Switch.js.map +1 -0
  136. package/lib/module/primitives/Text.js +32 -0
  137. package/lib/module/primitives/Text.js.map +1 -0
  138. package/lib/module/primitives/TextInput.js +26 -0
  139. package/lib/module/primitives/TextInput.js.map +1 -0
  140. package/lib/module/primitives/View.js +19 -0
  141. package/lib/module/primitives/View.js.map +1 -0
  142. package/lib/module/primitives/index.js +16 -0
  143. package/lib/module/primitives/index.js.map +1 -0
  144. package/lib/module/registry/ComponentRegistry.js +66 -0
  145. package/lib/module/registry/ComponentRegistry.js.map +1 -0
  146. package/lib/module/registry.js +88 -0
  147. package/lib/module/registry.js.map +1 -0
  148. package/lib/module/renderer/RecursiveRenderer.js +197 -0
  149. package/lib/module/renderer/RecursiveRenderer.js.map +1 -0
  150. package/lib/module/renderer/bindingResolver.js +92 -0
  151. package/lib/module/renderer/bindingResolver.js.map +1 -0
  152. package/lib/module/renderer/conditionalEvaluator.js +28 -0
  153. package/lib/module/renderer/conditionalEvaluator.js.map +1 -0
  154. package/lib/module/renderer.js +103 -0
  155. package/lib/module/renderer.js.map +1 -0
  156. package/lib/module/schema.js +74 -0
  157. package/lib/module/schema.js.map +1 -0
  158. package/lib/module/transformer/index.js +1051 -0
  159. package/lib/module/transformer/index.js.map +1 -0
  160. package/lib/module/transport.js +82 -0
  161. package/lib/module/transport.js.map +1 -0
  162. package/lib/typescript/PushframeProvider.d.ts +58 -0
  163. package/lib/typescript/PushframeProvider.d.ts.map +1 -0
  164. package/lib/typescript/PushframeScreen.d.ts +36 -0
  165. package/lib/typescript/PushframeScreen.d.ts.map +1 -0
  166. package/lib/typescript/bindings.d.ts +29 -0
  167. package/lib/typescript/bindings.d.ts.map +1 -0
  168. package/lib/typescript/components/ButtonComponent.d.ts +11 -0
  169. package/lib/typescript/components/ButtonComponent.d.ts.map +1 -0
  170. package/lib/typescript/components/FlatListComponent.d.ts +28 -0
  171. package/lib/typescript/components/FlatListComponent.d.ts.map +1 -0
  172. package/lib/typescript/components/ImageComponent.d.ts +12 -0
  173. package/lib/typescript/components/ImageComponent.d.ts.map +1 -0
  174. package/lib/typescript/components/PushFrameComponent.d.ts +48 -0
  175. package/lib/typescript/components/PushFrameComponent.d.ts.map +1 -0
  176. package/lib/typescript/components/PushFrameProvider.d.ts +51 -0
  177. package/lib/typescript/components/PushFrameProvider.d.ts.map +1 -0
  178. package/lib/typescript/components/PushFrameScreen.d.ts +15 -0
  179. package/lib/typescript/components/PushFrameScreen.d.ts.map +1 -0
  180. package/lib/typescript/components/ScrollViewComponent.d.ts +19 -0
  181. package/lib/typescript/components/ScrollViewComponent.d.ts.map +1 -0
  182. package/lib/typescript/components/StackComponent.d.ts +16 -0
  183. package/lib/typescript/components/StackComponent.d.ts.map +1 -0
  184. package/lib/typescript/components/TextComponent.d.ts +13 -0
  185. package/lib/typescript/components/TextComponent.d.ts.map +1 -0
  186. package/lib/typescript/conditions.d.ts +12 -0
  187. package/lib/typescript/conditions.d.ts.map +1 -0
  188. package/lib/typescript/context/PushFrameContext.d.ts +57 -0
  189. package/lib/typescript/context/PushFrameContext.d.ts.map +1 -0
  190. package/lib/typescript/index.d.ts +74 -0
  191. package/lib/typescript/index.d.ts.map +1 -0
  192. package/lib/typescript/overlays/BottomSheetHost.d.ts +21 -0
  193. package/lib/typescript/overlays/BottomSheetHost.d.ts.map +1 -0
  194. package/lib/typescript/overlays/ToastHost.d.ts +12 -0
  195. package/lib/typescript/overlays/ToastHost.d.ts.map +1 -0
  196. package/lib/typescript/primitives/ActivityIndicator.d.ts +12 -0
  197. package/lib/typescript/primitives/ActivityIndicator.d.ts.map +1 -0
  198. package/lib/typescript/primitives/FlatList.d.ts +29 -0
  199. package/lib/typescript/primitives/FlatList.d.ts.map +1 -0
  200. package/lib/typescript/primitives/Image.d.ts +20 -0
  201. package/lib/typescript/primitives/Image.d.ts.map +1 -0
  202. package/lib/typescript/primitives/KeyboardAvoidingView.d.ts +12 -0
  203. package/lib/typescript/primitives/KeyboardAvoidingView.d.ts.map +1 -0
  204. package/lib/typescript/primitives/Modal.d.ts +12 -0
  205. package/lib/typescript/primitives/Modal.d.ts.map +1 -0
  206. package/lib/typescript/primitives/Pressable.d.ts +14 -0
  207. package/lib/typescript/primitives/Pressable.d.ts.map +1 -0
  208. package/lib/typescript/primitives/SafeAreaView.d.ts +20 -0
  209. package/lib/typescript/primitives/SafeAreaView.d.ts.map +1 -0
  210. package/lib/typescript/primitives/ScrollView.d.ts +15 -0
  211. package/lib/typescript/primitives/ScrollView.d.ts.map +1 -0
  212. package/lib/typescript/primitives/StatusBar.d.ts +12 -0
  213. package/lib/typescript/primitives/StatusBar.d.ts.map +1 -0
  214. package/lib/typescript/primitives/Switch.d.ts +19 -0
  215. package/lib/typescript/primitives/Switch.d.ts.map +1 -0
  216. package/lib/typescript/primitives/Text.d.ts +25 -0
  217. package/lib/typescript/primitives/Text.d.ts.map +1 -0
  218. package/lib/typescript/primitives/TextInput.d.ts +25 -0
  219. package/lib/typescript/primitives/TextInput.d.ts.map +1 -0
  220. package/lib/typescript/primitives/View.d.ts +12 -0
  221. package/lib/typescript/primitives/View.d.ts.map +1 -0
  222. package/lib/typescript/primitives/index.d.ts +27 -0
  223. package/lib/typescript/primitives/index.d.ts.map +1 -0
  224. package/lib/typescript/registry/ComponentRegistry.d.ts +21 -0
  225. package/lib/typescript/registry/ComponentRegistry.d.ts.map +1 -0
  226. package/lib/typescript/registry.d.ts +57 -0
  227. package/lib/typescript/registry.d.ts.map +1 -0
  228. package/lib/typescript/renderer/RecursiveRenderer.d.ts +32 -0
  229. package/lib/typescript/renderer/RecursiveRenderer.d.ts.map +1 -0
  230. package/lib/typescript/renderer/bindingResolver.d.ts +26 -0
  231. package/lib/typescript/renderer/bindingResolver.d.ts.map +1 -0
  232. package/lib/typescript/renderer/conditionalEvaluator.d.ts +15 -0
  233. package/lib/typescript/renderer/conditionalEvaluator.d.ts.map +1 -0
  234. package/lib/typescript/renderer.d.ts +29 -0
  235. package/lib/typescript/renderer.d.ts.map +1 -0
  236. package/lib/typescript/schema.d.ts +84 -0
  237. package/lib/typescript/schema.d.ts.map +1 -0
  238. package/lib/typescript/transformer/index.d.ts +49 -0
  239. package/lib/typescript/transformer/index.d.ts.map +1 -0
  240. package/lib/typescript/transport.d.ts +19 -0
  241. package/lib/typescript/transport.d.ts.map +1 -0
  242. package/package.json +20 -18
  243. package/src/PushframeProvider.tsx +119 -0
  244. package/src/PushframeScreen.tsx +107 -0
  245. package/src/bindings.ts +72 -0
  246. package/src/components/ButtonComponent.tsx +87 -0
  247. package/src/components/FlatListComponent.tsx +86 -0
  248. package/src/components/ImageComponent.tsx +70 -0
  249. package/src/components/PushFrameComponent.tsx +221 -0
  250. package/src/components/PushFrameProvider.tsx +177 -0
  251. package/src/components/PushFrameScreen.tsx +30 -0
  252. package/src/components/ScrollViewComponent.tsx +65 -0
  253. package/src/components/StackComponent.tsx +69 -0
  254. package/src/components/TextComponent.tsx +60 -0
  255. package/src/conditions.ts +46 -0
  256. package/src/context/PushFrameContext.ts +89 -0
  257. package/src/index.ts +119 -0
  258. package/src/overlays/BottomSheetHost.tsx +175 -0
  259. package/src/overlays/ToastHost.tsx +147 -0
  260. package/src/primitives/ActivityIndicator.tsx +21 -0
  261. package/src/primitives/FlatList.tsx +49 -0
  262. package/src/primitives/Image.tsx +26 -0
  263. package/src/primitives/KeyboardAvoidingView.tsx +21 -0
  264. package/src/primitives/Modal.tsx +17 -0
  265. package/src/primitives/Pressable.tsx +19 -0
  266. package/src/primitives/SafeAreaView.tsx +42 -0
  267. package/src/primitives/ScrollView.tsx +21 -0
  268. package/src/primitives/StatusBar.tsx +17 -0
  269. package/src/primitives/Switch.tsx +24 -0
  270. package/src/primitives/Text.tsx +43 -0
  271. package/src/primitives/TextInput.tsx +42 -0
  272. package/src/primitives/View.tsx +17 -0
  273. package/src/primitives/index.ts +38 -0
  274. package/src/registry/ComponentRegistry.ts +99 -0
  275. package/src/registry.ts +99 -0
  276. package/src/renderer/RecursiveRenderer.tsx +242 -0
  277. package/src/renderer/bindingResolver.ts +94 -0
  278. package/src/renderer/conditionalEvaluator.ts +29 -0
  279. package/src/renderer.tsx +124 -0
  280. package/src/schema.ts +132 -0
  281. package/src/transformer/index.ts +1016 -0
  282. package/src/transport.ts +104 -0
  283. package/dist/index.d.mts +0 -534
  284. package/dist/index.d.ts +0 -534
  285. package/dist/index.js +0 -1572
  286. package/dist/index.js.map +0 -1
  287. package/dist/index.mjs +0 -1541
  288. package/dist/index.mjs.map +0 -1
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DEFAULT_SERVER_URL = void 0;
7
+ exports.PushframeProvider = PushframeProvider;
8
+ exports.usePushframe = usePushframe;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _registry = require("./registry");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ const DEFAULT_SERVER_URL = exports.DEFAULT_SERVER_URL = 'http://localhost:3001';
14
+
15
+ // ---------------------------------------------------------------------------
16
+ // Context shape
17
+ // ---------------------------------------------------------------------------
18
+
19
+ const PushframeCtx = /*#__PURE__*/(0, _react.createContext)(null);
20
+
21
+ // ---------------------------------------------------------------------------
22
+ // Hook
23
+ // ---------------------------------------------------------------------------
24
+
25
+ function usePushframe() {
26
+ const value = (0, _react.useContext)(PushframeCtx);
27
+ if (!value) {
28
+ throw new Error('[Pushframe] usePushframe() must be called inside a <PushframeProvider>.');
29
+ }
30
+ return value;
31
+ }
32
+
33
+ // ---------------------------------------------------------------------------
34
+ // Provider
35
+ // ---------------------------------------------------------------------------
36
+
37
+ function PushframeProvider({
38
+ projectKey,
39
+ serverUrl = DEFAULT_SERVER_URL,
40
+ context,
41
+ registry,
42
+ customComponents,
43
+ onAction,
44
+ children
45
+ }) {
46
+ const resolvedRegistry = (0, _react.useMemo)(() => {
47
+ if (registry) return registry;
48
+ const defaultReg = (0, _registry.createDefaultRegistry)();
49
+ if (customComponents) {
50
+ for (const [type, component] of Object.entries(customComponents)) {
51
+ defaultReg.register(type, component);
52
+ }
53
+ }
54
+ return defaultReg;
55
+ // eslint-disable-next-line react-hooks/exhaustive-deps
56
+ }, [registry, customComponents]);
57
+ const value = (0, _react.useMemo)(() => ({
58
+ projectKey,
59
+ serverUrl,
60
+ context,
61
+ registry: resolvedRegistry,
62
+ onAction
63
+ }), [projectKey, serverUrl, context, resolvedRegistry, onAction]);
64
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(PushframeCtx.Provider, {
65
+ value: value,
66
+ children: children
67
+ });
68
+ }
69
+ //# sourceMappingURL=PushframeProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_registry","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_SERVER_URL","exports","PushframeCtx","createContext","usePushframe","value","useContext","Error","PushframeProvider","projectKey","serverUrl","context","registry","customComponents","onAction","children","resolvedRegistry","useMemo","defaultReg","createDefaultRegistry","type","component","entries","register","jsx","Provider"],"sourceRoot":"../../src","sources":["PushframeProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PushframeScreen = PushframeScreen;
7
+ var _react = require("react");
8
+ var _PushframeProvider = require("./PushframeProvider");
9
+ var _renderer = require("./renderer");
10
+ var _transport = require("./transport");
11
+ var _schema = require("./schema");
12
+ function PushframeScreen({
13
+ screenId,
14
+ definition: staticDefinition,
15
+ onAction,
16
+ fallback = null,
17
+ errorFallback = null
18
+ }) {
19
+ if (!screenId && !staticDefinition) {
20
+ throw new Error('[Pushframe] <PushframeScreen> requires either screenId or definition.');
21
+ }
22
+ const {
23
+ context,
24
+ registry,
25
+ projectKey,
26
+ serverUrl,
27
+ onAction: globalOnAction
28
+ } = (0, _PushframeProvider.usePushframe)();
29
+ const effectiveOnAction = onAction ?? globalOnAction;
30
+
31
+ // When a static definition is passed we skip the fetch entirely.
32
+ const [fetchedDefinition, setFetchedDefinition] = (0, _react.useState)(null);
33
+ const [fetchError, setFetchError] = (0, _react.useState)(null);
34
+ (0, _react.useEffect)(() => {
35
+ if (!screenId) return;
36
+ let cancelled = false;
37
+ setFetchedDefinition(null);
38
+ setFetchError(null);
39
+ (0, _transport.fetchScreenDefinition)(serverUrl, projectKey, screenId).then(def => {
40
+ if (!cancelled) setFetchedDefinition(def);
41
+ }).catch(err => {
42
+ if (!cancelled) {
43
+ const error = err instanceof Error ? err : new Error(String(err));
44
+ console.error(`[Pushframe] Error fetching screen "${screenId}":`, error.message);
45
+ setFetchError(error);
46
+ }
47
+ });
48
+ return () => {
49
+ cancelled = true;
50
+ };
51
+ }, [screenId, projectKey, serverUrl]);
52
+ const definition = staticDefinition ?? fetchedDefinition;
53
+ if (!definition) {
54
+ return fetchError ? errorFallback : fallback;
55
+ }
56
+ if (definition.schemaVersion !== _schema.SCHEMA_VERSION) {
57
+ console.warn(`[Pushframe] Schema version mismatch: expected "${_schema.SCHEMA_VERSION}", ` + `got "${definition.schemaVersion}" for screen "${definition.id}".`);
58
+ }
59
+ return (0, _renderer.renderNode)({
60
+ node: definition.root,
61
+ context,
62
+ registry,
63
+ ...(effectiveOnAction !== undefined && {
64
+ onAction: effectiveOnAction
65
+ }),
66
+ key: definition.id
67
+ });
68
+ }
69
+ //# sourceMappingURL=PushframeScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_PushframeProvider","_renderer","_transport","_schema","PushframeScreen","screenId","definition","staticDefinition","onAction","fallback","errorFallback","Error","context","registry","projectKey","serverUrl","globalOnAction","usePushframe","effectiveOnAction","fetchedDefinition","setFetchedDefinition","useState","fetchError","setFetchError","useEffect","cancelled","fetchScreenDefinition","then","def","catch","err","error","String","console","message","schemaVersion","SCHEMA_VERSION","warn","id","renderNode","node","root","undefined","key"],"sourceRoot":"../../src","sources":["PushframeScreen.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAGA,IAAAI,OAAA,GAAAJ,OAAA;AAqCO,SAASK,eAAeA,CAAC;EAC9BC,QAAQ;EACRC,UAAU,EAAEC,gBAAgB;EAC5BC,QAAQ;EACRC,QAAQ,GAAG,IAAI;EACfC,aAAa,GAAG;AACI,CAAC,EAAE;EACvB,IAAI,CAACL,QAAQ,IAAI,CAACE,gBAAgB,EAAE;IAClC,MAAM,IAAII,KAAK,CAAC,uEAAuE,CAAC;EAC1F;EAEA,MAAM;IAAEC,OAAO;IAAEC,QAAQ;IAAEC,UAAU;IAAEC,SAAS;IAAEP,QAAQ,EAAEQ;EAAe,CAAC,GAAG,IAAAC,+BAAY,EAAC,CAAC;EAC7F,MAAMC,iBAAiB,GAAGV,QAAQ,IAAIQ,cAAc;;EAEpD;EACA,MAAM,CAACG,iBAAiB,EAAEC,oBAAoB,CAAC,GAAG,IAAAC,eAAQ,EAA0B,IAAI,CAAC;EACzF,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAF,eAAQ,EAAe,IAAI,CAAC;EAEhE,IAAAG,gBAAS,EAAC,MAAM;IACd,IAAI,CAACnB,QAAQ,EAAE;IAEf,IAAIoB,SAAS,GAAG,KAAK;IACrBL,oBAAoB,CAAC,IAAI,CAAC;IAC1BG,aAAa,CAAC,IAAI,CAAC;IAEnB,IAAAG,gCAAqB,EAACX,SAAS,EAAED,UAAU,EAAET,QAAQ,CAAC,CACnDsB,IAAI,CAAEC,GAAG,IAAK;MACb,IAAI,CAACH,SAAS,EAAEL,oBAAoB,CAACQ,GAAG,CAAC;IAC3C,CAAC,CAAC,CACDC,KAAK,CAAEC,GAAY,IAAK;MACvB,IAAI,CAACL,SAAS,EAAE;QACd,MAAMM,KAAK,GAAGD,GAAG,YAAYnB,KAAK,GAAGmB,GAAG,GAAG,IAAInB,KAAK,CAACqB,MAAM,CAACF,GAAG,CAAC,CAAC;QACjEG,OAAO,CAACF,KAAK,CAAC,sCAAsC1B,QAAQ,IAAI,EAAE0B,KAAK,CAACG,OAAO,CAAC;QAChFX,aAAa,CAACQ,KAAK,CAAC;MACtB;IACF,CAAC,CAAC;IAEJ,OAAO,MAAM;MACXN,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CAACpB,QAAQ,EAAES,UAAU,EAAEC,SAAS,CAAC,CAAC;EAErC,MAAMT,UAAU,GAAGC,gBAAgB,IAAIY,iBAAiB;EAExD,IAAI,CAACb,UAAU,EAAE;IACf,OAAOgB,UAAU,GAAGZ,aAAa,GAAGD,QAAQ;EAC9C;EAEA,IAAIH,UAAU,CAAC6B,aAAa,KAAKC,sBAAc,EAAE;IAC/CH,OAAO,CAACI,IAAI,CACV,kDAAkDD,sBAAc,KAAK,GACnE,QAAQ9B,UAAU,CAAC6B,aAAa,iBAAiB7B,UAAU,CAACgC,EAAE,IAClE,CAAC;EACH;EAEA,OAAO,IAAAC,oBAAU,EAAC;IAChBC,IAAI,EAAElC,UAAU,CAACmC,IAAI;IACrB7B,OAAO;IACPC,QAAQ;IACR,IAAIK,iBAAiB,KAAKwB,SAAS,IAAI;MAAElC,QAAQ,EAAEU;IAAkB,CAAC,CAAC;IACvEyB,GAAG,EAAErC,UAAU,CAACgC;EAClB,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.resolvePath = resolvePath;
7
+ exports.resolveProps = resolveProps;
8
+ exports.resolveValue = resolveValue;
9
+ var _schema = require("./schema");
10
+ /**
11
+ * Runtime context passed into the renderer.
12
+ * Any JSON-serialisable data structure is valid.
13
+ */
14
+
15
+ /**
16
+ * Resolve a dot-separated path against an object.
17
+ *
18
+ * e.g. resolvePath({ user: { firstName: "Alex" } }, "user.firstName") → "Alex"
19
+ *
20
+ * Returns undefined when any segment along the path is absent.
21
+ */
22
+ function resolvePath(context, path) {
23
+ const parts = path.split('.');
24
+ let current = context;
25
+ for (const part of parts) {
26
+ if (current === null || current === undefined || typeof current !== 'object') {
27
+ return undefined;
28
+ }
29
+ current = current[part];
30
+ }
31
+ return current;
32
+ }
33
+
34
+ /**
35
+ * Recursively resolve all $bind references in a PropValue against the context.
36
+ *
37
+ * - Binding objects → resolved to the context value (or undefined if missing)
38
+ * - Arrays → each element resolved
39
+ * - Plain objects → each value resolved
40
+ * - Primitives → returned as-is
41
+ */
42
+ function resolveValue(value, context) {
43
+ if ((0, _schema.isBinding)(value)) {
44
+ return resolvePath(context, value.$bind);
45
+ }
46
+ if (Array.isArray(value)) {
47
+ return value.map(item => resolveValue(item, context));
48
+ }
49
+ if (typeof value === 'object' && value !== null) {
50
+ const resolved = {};
51
+ for (const [k, v] of Object.entries(value)) {
52
+ resolved[k] = resolveValue(v, context);
53
+ }
54
+ return resolved;
55
+ }
56
+
57
+ // string | number | boolean | null
58
+ return value;
59
+ }
60
+
61
+ /**
62
+ * Resolve all entries in a props map against the context.
63
+ * Returns a plain Record<string, unknown> ready to spread onto a component.
64
+ */
65
+ function resolveProps(props, context) {
66
+ if (!props) return {};
67
+ const resolved = {};
68
+ for (const [key, value] of Object.entries(props)) {
69
+ resolved[key] = resolveValue(value, context);
70
+ }
71
+ return resolved;
72
+ }
73
+ //# sourceMappingURL=bindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_schema","require","resolvePath","context","path","parts","split","current","part","undefined","resolveValue","value","isBinding","$bind","Array","isArray","map","item","resolved","k","v","Object","entries","resolveProps","props","key"],"sourceRoot":"../../src","sources":["bindings.ts"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,WAAWA,CAACC,OAAyB,EAAEC,IAAY,EAAW;EAC5E,MAAMC,KAAK,GAAGD,IAAI,CAACE,KAAK,CAAC,GAAG,CAAC;EAC7B,IAAIC,OAAgB,GAAGJ,OAAO;EAC9B,KAAK,MAAMK,IAAI,IAAIH,KAAK,EAAE;IACxB,IAAIE,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAKE,SAAS,IAAI,OAAOF,OAAO,KAAK,QAAQ,EAAE;MAC5E,OAAOE,SAAS;IAClB;IACAF,OAAO,GAAIA,OAAO,CAA6BC,IAAI,CAAC;EACtD;EACA,OAAOD,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,YAAYA,CAACC,KAAgB,EAAER,OAAyB,EAAW;EACjF,IAAI,IAAAS,iBAAS,EAACD,KAAK,CAAC,EAAE;IACpB,OAAOT,WAAW,CAACC,OAAO,EAAEQ,KAAK,CAACE,KAAK,CAAC;EAC1C;EAEA,IAAIC,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,EAAE;IACxB,OAAOA,KAAK,CAACK,GAAG,CAAEC,IAAI,IAAKP,YAAY,CAACO,IAAI,EAAEd,OAAO,CAAC,CAAC;EACzD;EAEA,IAAI,OAAOQ,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,EAAE;IAC/C,MAAMO,QAAiC,GAAG,CAAC,CAAC;IAC5C,KAAK,MAAM,CAACC,CAAC,EAAEC,CAAC,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACX,KAAkC,CAAC,EAAE;MACvEO,QAAQ,CAACC,CAAC,CAAC,GAAGT,YAAY,CAACU,CAAC,EAAEjB,OAAO,CAAC;IACxC;IACA,OAAOe,QAAQ;EACjB;;EAEA;EACA,OAAOP,KAAK;AACd;;AAEA;AACA;AACA;AACA;AACO,SAASY,YAAYA,CAC1BC,KAA2B,EAC3BrB,OAAyB,EACA;EACzB,IAAI,CAACqB,KAAK,EAAE,OAAO,CAAC,CAAC;EACrB,MAAMN,QAAiC,GAAG,CAAC,CAAC;EAC5C,KAAK,MAAM,CAACO,GAAG,EAAEd,KAAK,CAAC,IAAIU,MAAM,CAACC,OAAO,CAACE,KAAK,CAAC,EAAE;IAChDN,QAAQ,CAACO,GAAG,CAAC,GAAGf,YAAY,CAACC,KAAK,EAAER,OAAO,CAAC;EAC9C;EACA,OAAOe,QAAQ;AACjB","ignoreList":[]}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ButtonComponent = ButtonComponent;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ function ButtonComponent({
12
+ props
13
+ }) {
14
+ const {
15
+ label = 'Button',
16
+ variant = 'primary',
17
+ disabled = false,
18
+ loading = false,
19
+ onPress
20
+ } = props;
21
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
22
+ style: [styles.base, variant === 'secondary' && styles.secondary, variant === 'ghost' && styles.ghost, (disabled || loading) && styles.disabled],
23
+ onPress: onPress,
24
+ disabled: disabled || loading,
25
+ activeOpacity: 0.8,
26
+ children: loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
27
+ size: "small",
28
+ color: variant === 'primary' ? '#ffffff' : '#2563eb'
29
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
30
+ style: [styles.label, variant === 'secondary' && styles.labelSecondary, variant === 'ghost' && styles.labelGhost, (disabled || loading) && styles.labelDisabled],
31
+ children: label
32
+ })
33
+ });
34
+ }
35
+ const styles = _reactNative.StyleSheet.create({
36
+ base: {
37
+ backgroundColor: '#2563eb',
38
+ paddingVertical: 12,
39
+ paddingHorizontal: 24,
40
+ borderRadius: 8,
41
+ alignItems: 'center',
42
+ justifyContent: 'center',
43
+ minHeight: 44
44
+ },
45
+ secondary: {
46
+ backgroundColor: 'transparent',
47
+ borderWidth: 1.5,
48
+ borderColor: '#2563eb'
49
+ },
50
+ ghost: {
51
+ backgroundColor: 'transparent',
52
+ borderWidth: 0
53
+ },
54
+ disabled: {
55
+ opacity: 0.4
56
+ },
57
+ label: {
58
+ color: '#ffffff',
59
+ fontSize: 16,
60
+ fontWeight: '600'
61
+ },
62
+ labelSecondary: {
63
+ color: '#2563eb'
64
+ },
65
+ labelGhost: {
66
+ color: '#2563eb'
67
+ },
68
+ labelDisabled: {
69
+ opacity: 0.6
70
+ }
71
+ });
72
+ //# sourceMappingURL=ButtonComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_jsxRuntime","e","__esModule","default","ButtonComponent","props","label","variant","disabled","loading","onPress","jsx","TouchableOpacity","style","styles","base","secondary","ghost","activeOpacity","children","ActivityIndicator","size","color","Text","labelSecondary","labelGhost","labelDisabled","StyleSheet","create","backgroundColor","paddingVertical","paddingHorizontal","borderRadius","alignItems","justifyContent","minHeight","borderWidth","borderColor","opacity","fontSize","fontWeight"],"sourceRoot":"../../../src","sources":["components/ButtonComponent.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAqF,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAa9E,SAASG,eAAeA,CAAC;EAAEC;AAA4C,CAAC,EAAE;EAC/E,MAAM;IAAEC,KAAK,GAAG,QAAQ;IAAEC,OAAO,GAAG,SAAS;IAAEC,QAAQ,GAAG,KAAK;IAAEC,OAAO,GAAG,KAAK;IAAEC;EAAQ,CAAC,GAAGL,KAAK;EAEnG,oBACE,IAAAL,WAAA,CAAAW,GAAA,EAACZ,YAAA,CAAAa,gBAAgB;IACfC,KAAK,EAAE,CACLC,MAAM,CAACC,IAAI,EACXR,OAAO,KAAK,WAAW,IAAIO,MAAM,CAACE,SAAS,EAC3CT,OAAO,KAAK,OAAO,IAAIO,MAAM,CAACG,KAAK,EACnC,CAACT,QAAQ,IAAIC,OAAO,KAAKK,MAAM,CAACN,QAAQ,CACxC;IACFE,OAAO,EAAEA,OAAQ;IACjBF,QAAQ,EAAEA,QAAQ,IAAIC,OAAQ;IAC9BS,aAAa,EAAE,GAAI;IAAAC,QAAA,EAElBV,OAAO,gBACN,IAAAT,WAAA,CAAAW,GAAA,EAACZ,YAAA,CAAAqB,iBAAiB;MAChBC,IAAI,EAAC,OAAO;MACZC,KAAK,EAAEf,OAAO,KAAK,SAAS,GAAG,SAAS,GAAG;IAAU,CACtD,CAAC,gBAEF,IAAAP,WAAA,CAAAW,GAAA,EAACZ,YAAA,CAAAwB,IAAI;MACHV,KAAK,EAAE,CACLC,MAAM,CAACR,KAAK,EACZC,OAAO,KAAK,WAAW,IAAIO,MAAM,CAACU,cAAc,EAChDjB,OAAO,KAAK,OAAO,IAAIO,MAAM,CAACW,UAAU,EACxC,CAACjB,QAAQ,IAAIC,OAAO,KAAKK,MAAM,CAACY,aAAa,CAC7C;MAAAP,QAAA,EAEDb;IAAK,CACF;EACP,CACe,CAAC;AAEvB;AAEA,MAAMQ,MAAM,GAAGa,uBAAU,CAACC,MAAM,CAAC;EAC/Bb,IAAI,EAAE;IACJc,eAAe,EAAE,SAAS;IAC1BC,eAAe,EAAE,EAAE;IACnBC,iBAAiB,EAAE,EAAE;IACrBC,YAAY,EAAE,CAAC;IACfC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,SAAS,EAAE;EACb,CAAC;EACDnB,SAAS,EAAE;IACTa,eAAe,EAAE,aAAa;IAC9BO,WAAW,EAAE,GAAG;IAChBC,WAAW,EAAE;EACf,CAAC;EACDpB,KAAK,EAAE;IACLY,eAAe,EAAE,aAAa;IAC9BO,WAAW,EAAE;EACf,CAAC;EACD5B,QAAQ,EAAE;IACR8B,OAAO,EAAE;EACX,CAAC;EACDhC,KAAK,EAAE;IACLgB,KAAK,EAAE,SAAS;IAChBiB,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDhB,cAAc,EAAE;IACdF,KAAK,EAAE;EACT,CAAC;EACDG,UAAU,EAAE;IACVH,KAAK,EAAE;EACT,CAAC;EACDI,aAAa,EAAE;IACbY,OAAO,EAAE;EACX;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FlatListComponent = FlatListComponent;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ function FlatListComponent({
12
+ props,
13
+ rawChildren,
14
+ renderChild
15
+ }) {
16
+ const {
17
+ data = [],
18
+ keyExtractor = 'id',
19
+ horizontal = false,
20
+ numColumns = 1,
21
+ padding,
22
+ paddingTop,
23
+ paddingBottom,
24
+ paddingLeft,
25
+ paddingRight,
26
+ backgroundColor,
27
+ flex,
28
+ showsScrollIndicator = true,
29
+ itemSeparatorHeight = 0
30
+ } = props;
31
+
32
+ // The first child node is used as the item template.
33
+ const itemTemplate = rawChildren?.[0];
34
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.FlatList, {
35
+ data: data,
36
+ horizontal: horizontal,
37
+ numColumns: horizontal ? 1 : numColumns,
38
+ showsHorizontalScrollIndicator: horizontal ? showsScrollIndicator : false,
39
+ showsVerticalScrollIndicator: !horizontal ? showsScrollIndicator : false,
40
+ keyExtractor: (item, index) => String(item[keyExtractor] ?? index),
41
+ renderItem: ({
42
+ item,
43
+ index
44
+ }) => {
45
+ if (!itemTemplate || !renderChild) return null;
46
+ return renderChild(itemTemplate, {
47
+ item,
48
+ index
49
+ });
50
+ },
51
+ ItemSeparatorComponent: itemSeparatorHeight > 0 ? () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
52
+ style: {
53
+ height: itemSeparatorHeight
54
+ }
55
+ }) : undefined,
56
+ style: [padding !== undefined && {
57
+ padding
58
+ }, paddingTop !== undefined && {
59
+ paddingTop
60
+ }, paddingBottom !== undefined && {
61
+ paddingBottom
62
+ }, paddingLeft !== undefined && {
63
+ paddingLeft
64
+ }, paddingRight !== undefined && {
65
+ paddingRight
66
+ }, backgroundColor !== undefined && {
67
+ backgroundColor
68
+ }, flex !== undefined && {
69
+ flex
70
+ }]
71
+ });
72
+ }
73
+ //# sourceMappingURL=FlatListComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_jsxRuntime","e","__esModule","default","FlatListComponent","props","rawChildren","renderChild","data","keyExtractor","horizontal","numColumns","padding","paddingTop","paddingBottom","paddingLeft","paddingRight","backgroundColor","flex","showsScrollIndicator","itemSeparatorHeight","itemTemplate","jsx","FlatList","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","item","index","String","renderItem","ItemSeparatorComponent","View","style","height","undefined"],"sourceRoot":"../../../src","sources":["components/FlatListComponent.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAA8C,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AA8BvC,SAASG,iBAAiBA,CAAC;EAChCC,KAAK;EACLC,WAAW;EACXC;AACsC,CAAC,EAAE;EACzC,MAAM;IACJC,IAAI,GAAG,EAAE;IACTC,YAAY,GAAG,IAAI;IACnBC,UAAU,GAAG,KAAK;IAClBC,UAAU,GAAG,CAAC;IACdC,OAAO;IACPC,UAAU;IACVC,aAAa;IACbC,WAAW;IACXC,YAAY;IACZC,eAAe;IACfC,IAAI;IACJC,oBAAoB,GAAG,IAAI;IAC3BC,mBAAmB,GAAG;EACxB,CAAC,GAAGf,KAAK;;EAET;EACA,MAAMgB,YAAY,GAAGf,WAAW,GAAG,CAAC,CAAC;EAErC,oBACE,IAAAN,WAAA,CAAAsB,GAAA,EAACvB,YAAA,CAAAwB,QAAQ;IACPf,IAAI,EAAEA,IAAK;IACXE,UAAU,EAAEA,UAAW;IACvBC,UAAU,EAAED,UAAU,GAAG,CAAC,GAAGC,UAAW;IACxCa,8BAA8B,EAAEd,UAAU,GAAGS,oBAAoB,GAAG,KAAM;IAC1EM,4BAA4B,EAAE,CAACf,UAAU,GAAGS,oBAAoB,GAAG,KAAM;IACzEV,YAAY,EAAEA,CAACiB,IAAI,EAAEC,KAAK,KACxBC,MAAM,CAAEF,IAAI,CAA6BjB,YAAY,CAAC,IAAIkB,KAAK,CAChE;IACDE,UAAU,EAAEA,CAAC;MAAEH,IAAI;MAAEC;IAAM,CAAC,KAAK;MAC/B,IAAI,CAACN,YAAY,IAAI,CAACd,WAAW,EAAE,OAAO,IAAI;MAC9C,OAAOA,WAAW,CAACc,YAAY,EAAE;QAAEK,IAAI;QAAEC;MAAM,CAAC,CAAC;IACnD,CAAE;IACFG,sBAAsB,EACpBV,mBAAmB,GAAG,CAAC,GACnB,mBAAM,IAAApB,WAAA,CAAAsB,GAAA,EAACvB,YAAA,CAAAgC,IAAI;MAACC,KAAK,EAAE;QAAEC,MAAM,EAAEb;MAAoB;IAAE,CAAE,CAAC,GACtDc,SACL;IACDF,KAAK,EAAE,CACLpB,OAAO,KAAKsB,SAAS,IAAI;MAAEtB;IAAQ,CAAC,EACpCC,UAAU,KAAKqB,SAAS,IAAI;MAAErB;IAAW,CAAC,EAC1CC,aAAa,KAAKoB,SAAS,IAAI;MAAEpB;IAAc,CAAC,EAChDC,WAAW,KAAKmB,SAAS,IAAI;MAAEnB;IAAY,CAAC,EAC5CC,YAAY,KAAKkB,SAAS,IAAI;MAAElB;IAAa,CAAC,EAC9CC,eAAe,KAAKiB,SAAS,IAAI;MAAEjB;IAAgB,CAAC,EACpDC,IAAI,KAAKgB,SAAS,IAAI;MAAEhB;IAAK,CAAC;EAC9B,CACH,CAAC;AAEN","ignoreList":[]}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ImageComponent = ImageComponent;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ function ImageComponent({
12
+ props
13
+ }) {
14
+ const {
15
+ src,
16
+ alt = '',
17
+ width,
18
+ height = 200,
19
+ resizeMode = 'cover',
20
+ borderRadius
21
+ } = props;
22
+ if (!src) {
23
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
24
+ style: [styles.placeholder, width !== undefined && {
25
+ width
26
+ }, {
27
+ height
28
+ }, borderRadius !== undefined && {
29
+ borderRadius
30
+ }],
31
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
32
+ style: styles.placeholderText,
33
+ children: alt || 'No image'
34
+ })
35
+ });
36
+ }
37
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
38
+ source: {
39
+ uri: src
40
+ },
41
+ accessibilityLabel: alt,
42
+ resizeMode: resizeMode,
43
+ style: [styles.image, width !== undefined && {
44
+ width
45
+ }, {
46
+ height
47
+ }, borderRadius !== undefined && {
48
+ borderRadius
49
+ }]
50
+ });
51
+ }
52
+ const styles = _reactNative.StyleSheet.create({
53
+ image: {
54
+ width: '100%'
55
+ },
56
+ placeholder: {
57
+ width: '100%',
58
+ backgroundColor: '#e5e7eb',
59
+ alignItems: 'center',
60
+ justifyContent: 'center'
61
+ },
62
+ placeholderText: {
63
+ color: '#9ca3af',
64
+ fontSize: 14
65
+ }
66
+ });
67
+ //# sourceMappingURL=ImageComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_jsxRuntime","e","__esModule","default","ImageComponent","props","src","alt","width","height","resizeMode","borderRadius","jsx","View","style","styles","placeholder","undefined","children","Text","placeholderText","Image","source","uri","accessibilityLabel","image","StyleSheet","create","backgroundColor","alignItems","justifyContent","color","fontSize"],"sourceRoot":"../../../src","sources":["components/ImageComponent.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAA6D,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AActD,SAASG,cAAcA,CAAC;EAAEC;AAA2C,CAAC,EAAE;EAC7E,MAAM;IACJC,GAAG;IACHC,GAAG,GAAG,EAAE;IACRC,KAAK;IACLC,MAAM,GAAG,GAAG;IACZC,UAAU,GAAG,OAAO;IACpBC;EACF,CAAC,GAAGN,KAAK;EAET,IAAI,CAACC,GAAG,EAAE;IACR,oBACE,IAAAN,WAAA,CAAAY,GAAA,EAACb,YAAA,CAAAc,IAAI;MACHC,KAAK,EAAE,CACLC,MAAM,CAACC,WAAW,EAClBR,KAAK,KAAKS,SAAS,IAAI;QAAET;MAAM,CAAC,EAChC;QAAEC;MAAO,CAAC,EACVE,YAAY,KAAKM,SAAS,IAAI;QAAEN;MAAa,CAAC,CAC9C;MAAAO,QAAA,eAEF,IAAAlB,WAAA,CAAAY,GAAA,EAACb,YAAA,CAAAoB,IAAI;QAACL,KAAK,EAAEC,MAAM,CAACK,eAAgB;QAAAF,QAAA,EAAEX,GAAG,IAAI;MAAU,CAAO;IAAC,CAC3D,CAAC;EAEX;EAEA,oBACE,IAAAP,WAAA,CAAAY,GAAA,EAACb,YAAA,CAAAsB,KAAK;IACJC,MAAM,EAAE;MAAEC,GAAG,EAAEjB;IAAI,CAAE;IACrBkB,kBAAkB,EAAEjB,GAAI;IACxBG,UAAU,EAAEA,UAAW;IACvBI,KAAK,EAAE,CACLC,MAAM,CAACU,KAAK,EACZjB,KAAK,KAAKS,SAAS,IAAI;MAAET;IAAM,CAAC,EAChC;MAAEC;IAAO,CAAC,EACVE,YAAY,KAAKM,SAAS,IAAI;MAAEN;IAAa,CAAC;EAC9C,CACH,CAAC;AAEN;AAEA,MAAMI,MAAM,GAAGW,uBAAU,CAACC,MAAM,CAAC;EAC/BF,KAAK,EAAE;IACLjB,KAAK,EAAE;EACT,CAAC;EACDQ,WAAW,EAAE;IACXR,KAAK,EAAE,MAAM;IACboB,eAAe,EAAE,SAAS;IAC1BC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDV,eAAe,EAAE;IACfW,KAAK,EAAE,SAAS;IAChBC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PushFrameComponent = PushFrameComponent;
7
+ exports.PushFrameComponentInternal = PushFrameComponentInternal;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _PushFrameContext = require("../context/PushFrameContext");
10
+ var _RecursiveRenderer = require("../renderer/RecursiveRenderer");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ // ---------------------------------------------------------------------------
14
+ // Shared slot props (used by both Screen and Component)
15
+ // ---------------------------------------------------------------------------
16
+
17
+ // ---------------------------------------------------------------------------
18
+ // Schema fetch
19
+ // ---------------------------------------------------------------------------
20
+
21
+ async function fetchSchema(baseUrl, apiKey, path) {
22
+ const url = new URL(path, baseUrl + '/').toString();
23
+ const headers = {
24
+ Accept: 'application/json',
25
+ Authorization: `Bearer ${apiKey}`,
26
+ 'x-project-key': apiKey
27
+ };
28
+ const res = await fetch(url, {
29
+ headers
30
+ });
31
+ if (!res.ok) {
32
+ throw new Error(`[PushFrame] HTTP ${res.status} fetching "${path}"`);
33
+ }
34
+ const envelope = await res.json();
35
+ return envelope.schema ?? envelope;
36
+ }
37
+
38
+ // ---------------------------------------------------------------------------
39
+ // PushFrameComponent
40
+ // ---------------------------------------------------------------------------
41
+
42
+ function PushFrameComponentInternal({
43
+ id,
44
+ resourceType,
45
+ context: slotContext,
46
+ isLoading: externalLoading,
47
+ loadingComponent: slotLoading,
48
+ fallbackComponent: slotFallback,
49
+ onAction: slotOnAction,
50
+ fullscreen
51
+ }) {
52
+ const {
53
+ apiKey,
54
+ baseUrl,
55
+ appVersion,
56
+ globalContext,
57
+ registry,
58
+ loadingComponent: providerLoading,
59
+ fallbackComponent: providerFallback,
60
+ onAction: providerOnAction,
61
+ onError,
62
+ showToast,
63
+ showBottomSheet,
64
+ dismissBottomSheet
65
+ } = (0, _PushFrameContext.usePushFrameContext)();
66
+ const [schema, setSchema] = (0, _react.useState)(null);
67
+ const [fetchError, setFetchError] = (0, _react.useState)(null);
68
+ const [isFetching, setIsFetching] = (0, _react.useState)(true);
69
+
70
+ // Build fetch path: {resourceType}/{id}/{appVersion} — "null" when not set
71
+ const fetchPath = `${resourceType}/${encodeURIComponent(id)}/${encodeURIComponent(appVersion ?? 'null')}`;
72
+
73
+ // Merged data context: provider → slot (local wins)
74
+ const mergedContext = slotContext ? {
75
+ ...globalContext,
76
+ ...slotContext
77
+ } : globalContext;
78
+
79
+ // Resolved UI components with fallback precedence
80
+ const loadingUI = slotLoading !== undefined ? slotLoading : providerLoading;
81
+ const fallbackUI = slotFallback !== undefined ? slotFallback : providerFallback;
82
+
83
+ // Fetch schema
84
+ (0, _react.useEffect)(() => {
85
+ let cancelled = false;
86
+ setSchema(null);
87
+ setFetchError(null);
88
+ setIsFetching(true);
89
+ fetchSchema(baseUrl, apiKey, fetchPath).then(s => {
90
+ if (!cancelled) {
91
+ setSchema(s);
92
+ setIsFetching(false);
93
+ }
94
+ }).catch(err => {
95
+ if (!cancelled) {
96
+ const error = err instanceof Error ? err : new Error(String(err));
97
+ setFetchError(error);
98
+ setIsFetching(false);
99
+ onError?.(error);
100
+ }
101
+ });
102
+ return () => {
103
+ cancelled = true;
104
+ };
105
+ }, [fetchPath, baseUrl, apiKey, onError]);
106
+
107
+ // Dispatch action — handles built-ins, then bubbles via slot → provider
108
+ const dispatchAction = (0, _react.useCallback)((action, payload) => {
109
+ // Built-in actions — never bubble to host app
110
+ if (action === 'show-toast') {
111
+ showToast(payload);
112
+ return;
113
+ }
114
+ if (action === 'show-bottom-sheet') {
115
+ showBottomSheet(payload);
116
+ return;
117
+ }
118
+ if (action === 'dismiss-bottom-sheet') {
119
+ dismissBottomSheet();
120
+ return;
121
+ }
122
+ if (action === 'scroll-to') {
123
+ // scroll-to is handled by the ScrollView primitive via ref; no bubbling needed
124
+ return;
125
+ }
126
+
127
+ // Bubble: slot onAction first; if it returns true, stop
128
+ const stopped = slotOnAction?.(action, payload);
129
+ if (stopped) return;
130
+
131
+ // Provider onAction
132
+ providerOnAction?.(action, payload);
133
+ }, [showToast, showBottomSheet, dismissBottomSheet, slotOnAction, providerOnAction]);
134
+
135
+ // Loading state: external flag OR schema not yet fetched
136
+ const isShowingLoader = externalLoading || isFetching;
137
+ if (isShowingLoader) {
138
+ return loadingUI ?? null;
139
+ }
140
+ if (fetchError || !schema) {
141
+ return fallbackUI ?? null;
142
+ }
143
+ const rendered = /*#__PURE__*/(0, _jsxRuntime.jsx)(_RecursiveRenderer.RecursiveRenderer, {
144
+ node: schema,
145
+ context: mergedContext,
146
+ registry: registry,
147
+ dispatchAction: dispatchAction,
148
+ fallbackComponent: fallbackUI
149
+ });
150
+ if (fullscreen) {
151
+ // PushFrame.Screen wraps with flex:1
152
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
153
+ children: rendered
154
+ });
155
+ }
156
+ return rendered;
157
+ }
158
+
159
+ // ---------------------------------------------------------------------------
160
+ // Public PushFrameComponent
161
+ // ---------------------------------------------------------------------------
162
+
163
+ /**
164
+ * Fetches a component schema from GET /components/:id[/:appVersion] on the
165
+ * delivery service and renders it inline using RecursiveRenderer.
166
+ *
167
+ * Context is merged: Provider context → slot context (local wins).
168
+ * Actions bubble: slot onAction → Provider onAction.
169
+ * Built-in actions (show-toast, show-bottom-sheet, etc.) are handled internally.
170
+ */
171
+ function PushFrameComponent(props) {
172
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(PushFrameComponentInternal, {
173
+ ...props,
174
+ resourceType: "components"
175
+ });
176
+ }
177
+
178
+ // Re-export internal for Screen to use
179
+ //# sourceMappingURL=PushFrameComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_PushFrameContext","_RecursiveRenderer","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","fetchSchema","baseUrl","apiKey","path","url","URL","toString","headers","Accept","Authorization","res","fetch","ok","Error","status","envelope","json","schema","PushFrameComponentInternal","id","resourceType","context","slotContext","isLoading","externalLoading","loadingComponent","slotLoading","fallbackComponent","slotFallback","onAction","slotOnAction","fullscreen","appVersion","globalContext","registry","providerLoading","providerFallback","providerOnAction","onError","showToast","showBottomSheet","dismissBottomSheet","usePushFrameContext","setSchema","useState","fetchError","setFetchError","isFetching","setIsFetching","fetchPath","encodeURIComponent","mergedContext","loadingUI","undefined","fallbackUI","useEffect","cancelled","then","s","catch","err","error","String","dispatchAction","useCallback","action","payload","stopped","isShowingLoader","rendered","jsx","RecursiveRenderer","node","Fragment","children","PushFrameComponent","props"],"sourceRoot":"../../../src","sources":["components/PushFrameComponent.tsx"],"mappings":"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","ignoreList":[]}