@pushframe/sdk 0.1.5 → 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,23 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { Switch as RNSwitch } from 'react-native';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ /**
7
+ * Thin wrapper over React Native Switch.
8
+ * Maps Pushframe schema trigger to RN event prop:
9
+ * onChange → onValueChange
10
+ * Strips `if`, `actions`, `onChange` before forwarding to RN.
11
+ */
12
+ export function Switch({
13
+ if: _if,
14
+ actions: _actions,
15
+ onChange,
16
+ ...rest
17
+ }) {
18
+ return /*#__PURE__*/_jsx(RNSwitch, {
19
+ onValueChange: onChange,
20
+ ...rest
21
+ });
22
+ }
23
+ //# sourceMappingURL=Switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Switch","RNSwitch","jsx","_jsx","if","_if","actions","_actions","onChange","rest","onValueChange"],"sourceRoot":"../../../src","sources":["primitives/Switch.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,IAAIC,QAAQ,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAclD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASH,MAAMA,CAAC;EAAEI,EAAE,EAAEC,GAAG;EAAEC,OAAO,EAAEC,QAAQ;EAAEC,QAAQ;EAAE,GAAGC;AAA2B,CAAC,EAAE;EAC9F,oBAAON,IAAA,CAACF,QAAQ;IAACS,aAAa,EAAEF,QAAS;IAAA,GAAKC;EAAI,CAAG,CAAC;AACxD","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { Text as RNText } from 'react-native';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ /**
7
+ * Thin wrapper over React Native Text.
8
+ * Strips `if`, `actions`, `content` before forwarding to RN.
9
+ * Display priority: value > content > children (children remain in rest).
10
+ */
11
+ export function Text({
12
+ if: _if,
13
+ actions: _actions,
14
+ value,
15
+ content,
16
+ ...rest
17
+ }) {
18
+ // When value or content is provided it takes precedence over JSX children
19
+ // (which are part of rest via RNTextProps inheritance).
20
+ const textContent = value !== undefined ? value : content;
21
+ if (textContent !== undefined) {
22
+ return /*#__PURE__*/_jsx(RNText, {
23
+ ...rest,
24
+ children: textContent
25
+ });
26
+ }
27
+ // No explicit text content — forward rest as-is (includes any children prop)
28
+ return /*#__PURE__*/_jsx(RNText, {
29
+ ...rest
30
+ });
31
+ }
32
+ //# sourceMappingURL=Text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Text","RNText","jsx","_jsx","if","_if","actions","_actions","value","content","rest","textContent","undefined","children"],"sourceRoot":"../../../src","sources":["primitives/Text.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,IAAIC,MAAM,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAqB9C;AACA;AACA;AACA;AACA;AACA,OAAO,SAASH,IAAIA,CAAC;EACnBI,EAAE,EAAEC,GAAG;EACPC,OAAO,EAAEC,QAAQ;EACjBC,KAAK;EACLC,OAAO;EACP,GAAGC;AACe,CAAC,EAAE;EACrB;EACA;EACA,MAAMC,WAAW,GAAGH,KAAK,KAAKI,SAAS,GAAGJ,KAAK,GAAGC,OAAO;EACzD,IAAIE,WAAW,KAAKC,SAAS,EAAE;IAC7B,oBAAOT,IAAA,CAACF,MAAM;MAAA,GAAKS,IAAI;MAAAG,QAAA,EAAGF;IAAW,CAAS,CAAC;EACjD;EACA;EACA,oBAAOR,IAAA,CAACF,MAAM;IAAA,GAAKS;EAAI,CAAG,CAAC;AAC7B","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { TextInput as RNTextInput } from 'react-native';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ /**
7
+ * Thin wrapper over React Native TextInput.
8
+ * Maps Pushframe schema triggers to RN event props:
9
+ * onChange → onChangeText
10
+ * onSubmit → onSubmitEditing
11
+ * Strips `if`, `actions`, `onChange`, `onSubmit` before forwarding to RN.
12
+ */
13
+ export function TextInput({
14
+ if: _if,
15
+ actions: _actions,
16
+ onChange,
17
+ onSubmit,
18
+ ...rest
19
+ }) {
20
+ return /*#__PURE__*/_jsx(RNTextInput, {
21
+ onChangeText: onChange,
22
+ onSubmitEditing: onSubmit ? () => onSubmit() : undefined,
23
+ ...rest
24
+ });
25
+ }
26
+ //# sourceMappingURL=TextInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","TextInput","RNTextInput","jsx","_jsx","if","_if","actions","_actions","onChange","onSubmit","rest","onChangeText","onSubmitEditing","undefined"],"sourceRoot":"../../../src","sources":["primitives/TextInput.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,IAAIC,WAAW,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAmBxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASH,SAASA,CAAC;EACxBI,EAAE,EAAEC,GAAG;EACPC,OAAO,EAAEC,QAAQ;EACjBC,QAAQ;EACRC,QAAQ;EACR,GAAGC;AACoB,CAAC,EAAE;EAC1B,oBACEP,IAAA,CAACF,WAAW;IACVU,YAAY,EAAEH,QAAS;IACvBI,eAAe,EAAEH,QAAQ,GAAG,MAAMA,QAAQ,CAAC,CAAC,GAAGI,SAAU;IAAA,GACrDH;EAAI,CACT,CAAC;AAEN","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View as RNView } from 'react-native';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ /**
7
+ * Thin wrapper over React Native View.
8
+ * Strips `if`, `actions` before forwarding to RN.
9
+ */
10
+ export function View({
11
+ if: _if,
12
+ actions: _actions,
13
+ ...rest
14
+ }) {
15
+ return /*#__PURE__*/_jsx(RNView, {
16
+ ...rest
17
+ });
18
+ }
19
+ //# sourceMappingURL=View.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","RNView","jsx","_jsx","if","_if","actions","_actions","rest"],"sourceRoot":"../../../src","sources":["primitives/View.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,IAAIC,MAAM,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAS9C;AACA;AACA;AACA;AACA,OAAO,SAASH,IAAIA,CAAC;EAAEI,EAAE,EAAEC,GAAG;EAAEC,OAAO,EAAEC,QAAQ;EAAE,GAAGC;AAAyB,CAAC,EAAE;EAChF,oBAAOL,IAAA,CAACF,MAAM;IAAA,GAAKO;EAAI,CAAG,CAAC;AAC7B","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ export { Text } from './Text';
4
+ export { View } from './View';
5
+ export { ScrollView } from './ScrollView';
6
+ export { Image } from './Image';
7
+ export { Pressable } from './Pressable';
8
+ export { TextInput } from './TextInput';
9
+ export { FlatList } from './FlatList';
10
+ export { Modal } from './Modal';
11
+ export { ActivityIndicator } from './ActivityIndicator';
12
+ export { Switch } from './Switch';
13
+ export { KeyboardAvoidingView } from './KeyboardAvoidingView';
14
+ export { SafeAreaView } from './SafeAreaView';
15
+ export { StatusBar } from './StatusBar';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Text","View","ScrollView","Image","Pressable","TextInput","FlatList","Modal","ActivityIndicator","Switch","KeyboardAvoidingView","SafeAreaView","StatusBar"],"sourceRoot":"../../../src","sources":["primitives/index.ts"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,QAAQ;AAG7B,SAASC,IAAI,QAAQ,QAAQ;AAG7B,SAASC,UAAU,QAAQ,cAAc;AAGzC,SAASC,KAAK,QAAQ,SAAS;AAG/B,SAASC,SAAS,QAAQ,aAAa;AAGvC,SAASC,SAAS,QAAQ,aAAa;AAGvC,SAASC,QAAQ,QAAQ,YAAY;AAGrC,SAASC,KAAK,QAAQ,SAAS;AAG/B,SAASC,iBAAiB,QAAQ,qBAAqB;AAGvD,SAASC,MAAM,QAAQ,UAAU;AAGjC,SAASC,oBAAoB,QAAQ,wBAAwB;AAG7D,SAASC,YAAY,QAAQ,gBAAgB;AAG7C,SAASC,SAAS,QAAQ,aAAa","ignoreList":[]}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ import { Text } from '../primitives/Text';
4
+ import { View } from '../primitives/View';
5
+ import { ScrollView } from '../primitives/ScrollView';
6
+ import { Image } from '../primitives/Image';
7
+ import { Pressable } from '../primitives/Pressable';
8
+ import { TextInput } from '../primitives/TextInput';
9
+ import { FlatList } from '../primitives/FlatList';
10
+ import { Modal } from '../primitives/Modal';
11
+ import { ActivityIndicator } from '../primitives/ActivityIndicator';
12
+ import { Switch } from '../primitives/Switch';
13
+ import { KeyboardAvoidingView } from '../primitives/KeyboardAvoidingView';
14
+ import { SafeAreaView } from '../primitives/SafeAreaView';
15
+ import { StatusBar } from '../primitives/StatusBar';
16
+
17
+ // ---------------------------------------------------------------------------
18
+ // Built-in type → component mappings (cannot be overridden)
19
+ // ---------------------------------------------------------------------------
20
+
21
+ const BUILT_IN_TYPES = new Set(['text', 'view', 'scrollview', 'image', 'pressable', 'textinput', 'flatlist', 'modal', 'activityindicator', 'switch', 'keyboardavoidingview', 'safeareaview', 'statusbar']);
22
+ const BUILT_IN_COMPONENTS = new Map([['text', Text], ['view', View], ['scrollview', ScrollView], ['image', Image], ['pressable', Pressable], ['textinput', TextInput], ['flatlist', FlatList], ['modal', Modal], ['activityindicator', ActivityIndicator], ['switch', Switch], ['keyboardavoidingview', KeyboardAvoidingView], ['safeareaview', SafeAreaView], ['statusbar', StatusBar]]);
23
+
24
+ // ---------------------------------------------------------------------------
25
+ // ComponentRegistry
26
+ // ---------------------------------------------------------------------------
27
+
28
+ /**
29
+ * Maps component type strings to React components.
30
+ *
31
+ * Built-ins are always present and cannot be overridden.
32
+ * Developer-registered components are merged on top for non-conflicting types.
33
+ */
34
+ export class ComponentRegistry {
35
+ constructor(developerComponents) {
36
+ // Start with built-ins
37
+ this.components = new Map(BUILT_IN_COMPONENTS);
38
+
39
+ // Merge developer components, skipping any that conflict with built-ins
40
+ if (developerComponents) {
41
+ for (const [type, component] of Object.entries(developerComponents)) {
42
+ if (BUILT_IN_TYPES.has(type)) {
43
+ console.warn(`[PushFrame] ComponentRegistry: "${type}" is a built-in type and cannot be overridden. ` + `Registration skipped.`);
44
+ continue;
45
+ }
46
+ this.components.set(type, component);
47
+ }
48
+ }
49
+ }
50
+
51
+ /**
52
+ * Resolve a type string to its React component.
53
+ * Returns null if no component is registered for the type.
54
+ */
55
+ resolve(type) {
56
+ return this.components.get(type) ?? null;
57
+ }
58
+
59
+ /**
60
+ * Returns all registered type strings (useful for debugging).
61
+ */
62
+ types() {
63
+ return Array.from(this.components.keys());
64
+ }
65
+ }
66
+ //# sourceMappingURL=ComponentRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Text","View","ScrollView","Image","Pressable","TextInput","FlatList","Modal","ActivityIndicator","Switch","KeyboardAvoidingView","SafeAreaView","StatusBar","BUILT_IN_TYPES","Set","BUILT_IN_COMPONENTS","Map","ComponentRegistry","constructor","developerComponents","components","type","component","Object","entries","has","console","warn","set","resolve","get","types","Array","from","keys"],"sourceRoot":"../../../src","sources":["registry/ComponentRegistry.ts"],"mappings":";;AACA,SAASA,IAAI,QAAQ,oBAAoB;AACzC,SAASC,IAAI,QAAQ,oBAAoB;AACzC,SAASC,UAAU,QAAQ,0BAA0B;AACrD,SAASC,KAAK,QAAQ,qBAAqB;AAC3C,SAASC,SAAS,QAAQ,yBAAyB;AACnD,SAASC,SAAS,QAAQ,yBAAyB;AACnD,SAASC,QAAQ,QAAQ,wBAAwB;AACjD,SAASC,KAAK,QAAQ,qBAAqB;AAC3C,SAASC,iBAAiB,QAAQ,iCAAiC;AACnE,SAASC,MAAM,QAAQ,sBAAsB;AAC7C,SAASC,oBAAoB,QAAQ,oCAAoC;AACzE,SAASC,YAAY,QAAQ,4BAA4B;AACzD,SAASC,SAAS,QAAQ,yBAAyB;;AAEnD;AACA;AACA;;AAEA,MAAMC,cAAmC,GAAG,IAAIC,GAAG,CAAC,CAClD,MAAM,EACN,MAAM,EACN,YAAY,EACZ,OAAO,EACP,WAAW,EACX,WAAW,EACX,UAAU,EACV,OAAO,EACP,mBAAmB,EACnB,QAAQ,EACR,sBAAsB,EACtB,cAAc,EACd,WAAW,CACZ,CAAC;AAEF,MAAMC,mBAAsF,GAC1F,IAAIC,GAAG,CAAC,CACN,CAAC,MAAM,EAAEhB,IAAI,CAAiD,EAC9D,CAAC,MAAM,EAAEC,IAAI,CAAiD,EAC9D,CAAC,YAAY,EAAEC,UAAU,CAAiD,EAC1E,CAAC,OAAO,EAAEC,KAAK,CAAiD,EAChE,CAAC,WAAW,EAAEC,SAAS,CAAiD,EACxE,CAAC,WAAW,EAAEC,SAAS,CAAiD,EACxE,CAAC,UAAU,EAAEC,QAAQ,CAA4D,EACjF,CAAC,OAAO,EAAEC,KAAK,CAAiD,EAChE,CAAC,mBAAmB,EAAEC,iBAAiB,CAAiD,EACxF,CAAC,QAAQ,EAAEC,MAAM,CAAiD,EAClE,CAAC,sBAAsB,EAAEC,oBAAoB,CAAiD,EAC9F,CAAC,cAAc,EAAEC,YAAY,CAAiD,EAC9E,CAAC,WAAW,EAAEC,SAAS,CAAiD,CACzE,CAAC;;AAEJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMK,iBAAiB,CAAC;EAG7BC,WAAWA,CAACC,mBAAkE,EAAE;IAC9E;IACA,IAAI,CAACC,UAAU,GAAG,IAAIJ,GAAG,CAACD,mBAAmB,CAAC;;IAE9C;IACA,IAAII,mBAAmB,EAAE;MACvB,KAAK,MAAM,CAACE,IAAI,EAAEC,SAAS,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,mBAAmB,CAAC,EAAE;QACnE,IAAIN,cAAc,CAACY,GAAG,CAACJ,IAAI,CAAC,EAAE;UAC5BK,OAAO,CAACC,IAAI,CACV,mCAAmCN,IAAI,iDAAiD,GACtF,uBACJ,CAAC;UACD;QACF;QACA,IAAI,CAACD,UAAU,CAACQ,GAAG,CAACP,IAAI,EAAEC,SAAyD,CAAC;MACtF;IACF;EACF;;EAEA;AACF;AACA;AACA;EACEO,OAAOA,CAACR,IAAY,EAAuD;IACzE,OAAO,IAAI,CAACD,UAAU,CAACU,GAAG,CAACT,IAAI,CAAC,IAAI,IAAI;EAC1C;;EAEA;AACF;AACA;EACEU,KAAKA,CAAA,EAAa;IAChB,OAAOC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACb,UAAU,CAACc,IAAI,CAAC,CAAC,CAAC;EAC3C;AACF","ignoreList":[]}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Props passed to every Pushframe component.
5
+ *
6
+ * `props` — fully-resolved (all $bind references substituted) props map.
7
+ * `children` — pre-rendered child nodes (if any).
8
+ * `onAction` — callback for emitting an action event back to the host app.
9
+ * `rawChildren` — raw schema child nodes, available for data-driven components
10
+ * (e.g. FlatList) that need to render the same template
11
+ * multiple times with different context.
12
+ * `renderChild` — render a schema node with an optional context override that
13
+ * gets merged into the parent context. Use this together with
14
+ * `rawChildren` to implement per-item rendering.
15
+ */
16
+
17
+ /**
18
+ * ComponentRegistry maps a component type string (e.g. "stack") to its
19
+ * React component implementation.
20
+ *
21
+ * Use `createRegistry()` to construct one, then call `register()` to add
22
+ * custom components on top.
23
+ */
24
+ export class ComponentRegistry {
25
+ components = new Map();
26
+
27
+ /**
28
+ * Register a component under the given type string.
29
+ * Calling register() with an existing type overwrites the previous entry,
30
+ * allowing host apps to override built-ins.
31
+ */
32
+ register(type, component) {
33
+ this.components.set(type, component);
34
+ return this;
35
+ }
36
+
37
+ /**
38
+ * Look up a component by type string.
39
+ * Returns undefined if no component is registered for that type.
40
+ */
41
+ get(type) {
42
+ return this.components.get(type);
43
+ }
44
+
45
+ /**
46
+ * Returns true if the registry contains an entry for the given type.
47
+ */
48
+ has(type) {
49
+ return this.components.has(type);
50
+ }
51
+
52
+ /**
53
+ * Returns all registered type strings (useful for debugging).
54
+ */
55
+ types() {
56
+ return Array.from(this.components.keys());
57
+ }
58
+ }
59
+
60
+ /**
61
+ * Build the default registry pre-loaded with all built-in components.
62
+ */
63
+ export function createDefaultRegistry() {
64
+ // Lazy-import to keep tree-shaking effective when consumers only need
65
+ // a subset of built-ins.
66
+ const {
67
+ StackComponent
68
+ } = require('./components/StackComponent');
69
+ const {
70
+ TextComponent
71
+ } = require('./components/TextComponent');
72
+ const {
73
+ ButtonComponent
74
+ } = require('./components/ButtonComponent');
75
+ const {
76
+ ImageComponent
77
+ } = require('./components/ImageComponent');
78
+ const {
79
+ ScrollViewComponent
80
+ } = require('./components/ScrollViewComponent');
81
+ const {
82
+ FlatListComponent
83
+ } = require('./components/FlatListComponent');
84
+ return new ComponentRegistry().register('stack', StackComponent)
85
+ // 'screen' is a common server-side root container alias for stack
86
+ .register('screen', StackComponent).register('text', TextComponent).register('button', ButtonComponent).register('image', ImageComponent).register('scrollview', ScrollViewComponent).register('flatlist', FlatListComponent);
87
+ }
88
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ComponentRegistry","components","Map","register","type","component","set","get","has","types","Array","from","keys","createDefaultRegistry","StackComponent","require","TextComponent","ButtonComponent","ImageComponent","ScrollViewComponent","FlatListComponent"],"sourceRoot":"../../src","sources":["registry.ts"],"mappings":";;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,iBAAiB,CAAC;EACZC,UAAU,GAAG,IAAIC,GAAG,CAA6B,CAAC;;EAEnE;AACF;AACA;AACA;AACA;EACEC,QAAQA,CACNC,IAAY,EACZC,SAAqC,EAC/B;IACN,IAAI,CAACJ,UAAU,CAACK,GAAG,CAACF,IAAI,EAAEC,SAA+B,CAAC;IAC1D,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;EACEE,GAAGA,CAACH,IAAY,EAAkC;IAChD,OAAO,IAAI,CAACH,UAAU,CAACM,GAAG,CAACH,IAAI,CAAC;EAClC;;EAEA;AACF;AACA;EACEI,GAAGA,CAACJ,IAAY,EAAW;IACzB,OAAO,IAAI,CAACH,UAAU,CAACO,GAAG,CAACJ,IAAI,CAAC;EAClC;;EAEA;AACF;AACA;EACEK,KAAKA,CAAA,EAAa;IAChB,OAAOC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACV,UAAU,CAACW,IAAI,CAAC,CAAC,CAAC;EAC3C;AACF;;AAEA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAA,EAAsB;EACzD;EACA;EACA,MAAM;IAAEC;EAAe,CAAC,GAAGC,OAAO,CAAC,6BAA6B,CAAC;EACjE,MAAM;IAAEC;EAAc,CAAC,GAAGD,OAAO,CAAC,4BAA4B,CAAC;EAC/D,MAAM;IAAEE;EAAgB,CAAC,GAAGF,OAAO,CAAC,8BAA8B,CAAC;EACnE,MAAM;IAAEG;EAAe,CAAC,GAAGH,OAAO,CAAC,6BAA6B,CAAC;EACjE,MAAM;IAAEI;EAAoB,CAAC,GAAGJ,OAAO,CAAC,kCAAkC,CAAC;EAC3E,MAAM;IAAEK;EAAkB,CAAC,GAAGL,OAAO,CAAC,gCAAgC,CAAC;EAEvE,OAAO,IAAIf,iBAAiB,CAAC,CAAC,CAC3BG,QAAQ,CAAC,OAAO,EAAEW,cAAc;EACjC;EAAA,CACCX,QAAQ,CAAC,QAAQ,EAAEW,cAAc,CAAC,CAClCX,QAAQ,CAAC,MAAM,EAAEa,aAAa,CAAC,CAC/Bb,QAAQ,CAAC,QAAQ,EAAEc,eAAe,CAAC,CACnCd,QAAQ,CAAC,OAAO,EAAEe,cAAc,CAAC,CACjCf,QAAQ,CAAC,YAAY,EAAEgB,mBAAmB,CAAC,CAC3ChB,QAAQ,CAAC,UAAU,EAAEiB,iBAAiB,CAAC;AAC5C","ignoreList":[]}
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { resolveProps, resolveDeep, resolveValue } from './bindingResolver';
5
+ import { evaluateIf } from './conditionalEvaluator';
6
+
7
+ // ---------------------------------------------------------------------------
8
+ // Types
9
+ // ---------------------------------------------------------------------------
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ // ---------------------------------------------------------------------------
12
+ // Action wiring helpers
13
+ // ---------------------------------------------------------------------------
14
+
15
+ /**
16
+ * Group an actions array by trigger name and produce a prop map where each
17
+ * trigger key maps to a callback that fires all actions for that trigger.
18
+ */
19
+ function buildActionProps(actions, context, dispatchAction) {
20
+ // Group by trigger
21
+ const grouped = new Map();
22
+ for (const action of actions) {
23
+ const existing = grouped.get(action.trigger);
24
+ if (existing) {
25
+ existing.push(action);
26
+ } else {
27
+ grouped.set(action.trigger, [action]);
28
+ }
29
+ }
30
+ const result = {};
31
+ for (const [trigger, triggerActions] of grouped) {
32
+ result[trigger] = (..._args) => {
33
+ for (const action of triggerActions) {
34
+ const resolvedPayload = action.payload !== undefined ? resolveDeep(action.payload, context) : undefined;
35
+ dispatchAction(action.action, resolvedPayload);
36
+ }
37
+ };
38
+ }
39
+ return result;
40
+ }
41
+
42
+ // ---------------------------------------------------------------------------
43
+ // FlatList special handling
44
+ // ---------------------------------------------------------------------------
45
+
46
+ function renderFlatListNode(node, context, registry, dispatchAction, fallbackComponent) {
47
+ // Resolve all props including the data/items binding
48
+ const resolvedProps = resolveProps(node.props, context);
49
+
50
+ // Build action props for the FlatList container itself
51
+ const actionProps = node.actions ? buildActionProps(node.actions, context, dispatchAction) : {};
52
+
53
+ // Support both `data` (transformer output) and `items` (legacy) for the array source.
54
+ // Extract and resolve; the primitive receives it as `items`.
55
+ const {
56
+ data: resolvedData,
57
+ items: resolvedItems,
58
+ keyExtractor: keyExtractorExpr,
59
+ direction,
60
+ numColumns,
61
+ visible: _visible,
62
+ _propValues: _pv,
63
+ ...restProps
64
+ } = resolvedProps;
65
+ const items = Array.isArray(resolvedData) ? resolvedData : Array.isArray(resolvedItems) ? resolvedItems : [];
66
+
67
+ // Build a keyExtractor function if specified in schema
68
+ let keyExtractorFn;
69
+ if (typeof keyExtractorExpr === 'string') {
70
+ const extractorExpr = keyExtractorExpr;
71
+ keyExtractorFn = (item, index) => {
72
+ const itemContext = {
73
+ ...context,
74
+ item,
75
+ index
76
+ };
77
+ const resolved = resolveValue(extractorExpr, itemContext);
78
+ return resolved !== undefined && resolved !== null ? String(resolved) : String(index);
79
+ };
80
+ }
81
+
82
+ // itemTemplate: per-item context merges { item, index } into current context
83
+ const renderItemFn = ({
84
+ item,
85
+ index
86
+ }) => {
87
+ const itemContext = {
88
+ ...context,
89
+ item,
90
+ index
91
+ };
92
+ return /*#__PURE__*/_jsx(RecursiveRenderer, {
93
+ node: node.itemTemplate,
94
+ context: itemContext,
95
+ registry: registry,
96
+ dispatchAction: dispatchAction,
97
+ fallbackComponent: fallbackComponent
98
+ }, keyExtractorFn ? keyExtractorFn(item, index) : index);
99
+ };
100
+ const FlatListComponent = registry.resolve('flatlist');
101
+ if (!FlatListComponent) {
102
+ console.warn('[PushFrame] RecursiveRenderer: "flatlist" not found in registry.');
103
+ return fallbackComponent ? fallbackComponent : null;
104
+ }
105
+ return /*#__PURE__*/React.createElement(FlatListComponent, {
106
+ ...restProps,
107
+ ...actionProps,
108
+ items,
109
+ direction,
110
+ numColumns,
111
+ keyExtractor: keyExtractorFn,
112
+ renderItem: renderItemFn
113
+ });
114
+ }
115
+
116
+ // ---------------------------------------------------------------------------
117
+ // RecursiveRenderer
118
+ // ---------------------------------------------------------------------------
119
+
120
+ /**
121
+ * Stateless recursive renderer. Evaluates schema nodes and produces React elements.
122
+ *
123
+ * - Evaluates `if` expression (string or non-string); returns null when falsy
124
+ * - Handles `visible` prop: returns null when visible resolves to false
125
+ * - Handles FlatList nodes with per-item context injection via `itemTemplate`
126
+ * - Supports `data` (transformer) and `items` (legacy) as FlatList data source
127
+ * - Resolves all prop bindings against current context
128
+ * - Merges `_propValues` into child context (custom component prop injection)
129
+ * - Wires actions to component event handler props
130
+ * - Looks up component in registry; renders fallback or null when not found
131
+ * - Recurses into children
132
+ */
133
+ export function RecursiveRenderer({
134
+ node,
135
+ context,
136
+ registry,
137
+ dispatchAction,
138
+ fallbackComponent
139
+ }) {
140
+ // 1. Evaluate conditional — skip entire subtree if falsy
141
+ if (!evaluateIf(node.if, context)) {
142
+ return null;
143
+ }
144
+
145
+ // 2. FlatList special case
146
+ if (node.type === 'flatlist') {
147
+ return renderFlatListNode(node, context, registry, dispatchAction, fallbackComponent);
148
+ }
149
+
150
+ // 3. Resolve props
151
+ const resolvedProps = resolveProps(node.props, context);
152
+
153
+ // 4. Handle `visible` prop — transformer sets visible:false when a node is hidden.
154
+ // A missing or true value means visible; anything falsy hides the node.
155
+ if (resolvedProps.visible !== undefined && !resolvedProps.visible) {
156
+ return null;
157
+ }
158
+
159
+ // 5. Extract SDK-internal props that must not be forwarded to RN components.
160
+ // `_propValues` carries custom-component instance overrides → merge into
161
+ // child context so nested bindings resolve against them.
162
+ const {
163
+ visible: _visible,
164
+ _propValues: propValuesRaw,
165
+ ...propsToForward
166
+ } = resolvedProps;
167
+ const propValues = propValuesRaw;
168
+ const childContext = propValues && Object.keys(propValues).length > 0 ? {
169
+ ...context,
170
+ ...propValues
171
+ } : context;
172
+
173
+ // 6. Wire actions → inject as trigger-named props
174
+ const actionProps = node.actions ? buildActionProps(node.actions, context, dispatchAction) : {};
175
+
176
+ // 7. Resolve component from registry
177
+ const Component = registry.resolve(node.type);
178
+ if (!Component) {
179
+ console.warn(`[PushFrame] RecursiveRenderer: Unknown component type "${node.type}". ` + `Registered types: ${registry.types().join(', ')}`);
180
+ return fallbackComponent ? fallbackComponent : null;
181
+ }
182
+
183
+ // 8. Render children recursively (using childContext for _propValues injection)
184
+ const children = node.children && node.children.length > 0 ? node.children.map((child, index) => /*#__PURE__*/_jsx(RecursiveRenderer, {
185
+ node: child,
186
+ context: childContext,
187
+ registry: registry,
188
+ dispatchAction: dispatchAction,
189
+ fallbackComponent: fallbackComponent
190
+ }, `${child.type}-${index}`)) : undefined;
191
+ return /*#__PURE__*/React.createElement(Component, {
192
+ ...propsToForward,
193
+ ...actionProps,
194
+ children
195
+ });
196
+ }
197
+ //# sourceMappingURL=RecursiveRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","resolveProps","resolveDeep","resolveValue","evaluateIf","jsx","_jsx","buildActionProps","actions","context","dispatchAction","grouped","Map","action","existing","get","trigger","push","set","result","triggerActions","_args","resolvedPayload","payload","undefined","renderFlatListNode","node","registry","fallbackComponent","resolvedProps","props","actionProps","data","resolvedData","items","resolvedItems","keyExtractor","keyExtractorExpr","direction","numColumns","visible","_visible","_propValues","_pv","restProps","Array","isArray","keyExtractorFn","extractorExpr","item","index","itemContext","resolved","String","renderItemFn","RecursiveRenderer","itemTemplate","FlatListComponent","resolve","console","warn","createElement","renderItem","if","type","propValuesRaw","propsToForward","propValues","childContext","Object","keys","length","Component","types","join","children","map","child"],"sourceRoot":"../../../src","sources":["renderer/RecursiveRenderer.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Binding resolver for PushFrame {{expression}} syntax.
5
+ *
6
+ * Rules:
7
+ * - A value that is entirely "{{expr}}" resolves to the bound value (any type)
8
+ * - A value with inline bindings "Hello {{user.name}}" resolves to a string
9
+ * - Unresolved paths return undefined — never throws
10
+ * - Non-string values are returned as-is
11
+ */
12
+
13
+ const FULL_BINDING_RE = /^\{\{(.+)\}\}$/;
14
+ const INLINE_BINDING_RE = /\{\{([^}]+)\}\}/g;
15
+
16
+ /**
17
+ * Evaluate a binding expression string against the provided context.
18
+ * Uses Function constructor for safe, sandboxed expression evaluation.
19
+ * Returns undefined on any error.
20
+ */
21
+ function evaluateExpression(expr, context) {
22
+ try {
23
+ const keys = Object.keys(context);
24
+ const values = keys.map(k => context[k]);
25
+ // eslint-disable-next-line no-new-func
26
+ const fn = new Function(...keys, `"use strict"; try { return (${expr}); } catch(e) { return undefined; }`);
27
+ return fn(...values);
28
+ } catch {
29
+ return undefined;
30
+ }
31
+ }
32
+
33
+ /**
34
+ * Resolve a single prop value against context.
35
+ *
36
+ * - String values: check for full binding "{{expr}}" or inline bindings "Hello {{name}}"
37
+ * - Non-string values: returned as-is
38
+ */
39
+ export function resolveValue(value, context) {
40
+ if (typeof value !== 'string') {
41
+ return value;
42
+ }
43
+
44
+ // Full binding: entire string is "{{expr}}" — return the actual resolved value
45
+ const fullMatch = FULL_BINDING_RE.exec(value);
46
+ if (fullMatch?.[1] !== undefined) {
47
+ return evaluateExpression(fullMatch[1].trim(), context);
48
+ }
49
+
50
+ // Inline binding: replace each "{{expr}}" occurrence within the string
51
+ if (INLINE_BINDING_RE.test(value)) {
52
+ INLINE_BINDING_RE.lastIndex = 0;
53
+ return value.replace(INLINE_BINDING_RE, (_, expr) => {
54
+ const resolved = evaluateExpression(expr.trim(), context);
55
+ return resolved !== undefined && resolved !== null ? String(resolved) : '';
56
+ });
57
+ }
58
+
59
+ // No bindings — return as-is
60
+ return value;
61
+ }
62
+
63
+ /**
64
+ * Resolve all values in a props map against the context.
65
+ * Recursively resolves nested objects and arrays.
66
+ */
67
+ export function resolveProps(props, context) {
68
+ if (!props) return {};
69
+ const resolved = {};
70
+ for (const [key, value] of Object.entries(props)) {
71
+ resolved[key] = resolveDeep(value, context);
72
+ }
73
+ return resolved;
74
+ }
75
+
76
+ /**
77
+ * Recursively resolve binding expressions in a value (including nested objects/arrays).
78
+ */
79
+ export function resolveDeep(value, context) {
80
+ if (Array.isArray(value)) {
81
+ return value.map(item => resolveDeep(item, context));
82
+ }
83
+ if (typeof value === 'object' && value !== null) {
84
+ const result = {};
85
+ for (const [k, v] of Object.entries(value)) {
86
+ result[k] = resolveDeep(v, context);
87
+ }
88
+ return result;
89
+ }
90
+ return resolveValue(value, context);
91
+ }
92
+ //# sourceMappingURL=bindingResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FULL_BINDING_RE","INLINE_BINDING_RE","evaluateExpression","expr","context","keys","Object","values","map","k","fn","Function","undefined","resolveValue","value","fullMatch","exec","trim","test","lastIndex","replace","_","resolved","String","resolveProps","props","key","entries","resolveDeep","Array","isArray","item","result","v"],"sourceRoot":"../../../src","sources":["renderer/bindingResolver.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ import { resolveValue } from './bindingResolver';
4
+
5
+ /**
6
+ * Evaluate the `if` expression of a SchemaNode against the current context.
7
+ *
8
+ * Returns true → node should render
9
+ * Returns false → node (and its entire subtree) should be skipped
10
+ *
11
+ * Falsy values: false, null, undefined, 0, "" all hide the node.
12
+ * When `ifExpr` is undefined/null the node always renders.
13
+ *
14
+ * Accepts `unknown` to match the transformer's `if?: unknown` output:
15
+ * - String values are resolved as {{}} binding expressions
16
+ * - Non-string values (boolean, number, null) are coerced directly
17
+ */
18
+ export function evaluateIf(ifExpr, context) {
19
+ if (ifExpr === undefined || ifExpr === null) return true;
20
+
21
+ // Non-string: treat the value itself as the condition (e.g. `if: false`)
22
+ if (typeof ifExpr !== 'string') return Boolean(ifExpr);
23
+ const resolved = resolveValue(ifExpr, context);
24
+
25
+ // Standard falsy check — any falsy value hides the node
26
+ return Boolean(resolved);
27
+ }
28
+ //# sourceMappingURL=conditionalEvaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["resolveValue","evaluateIf","ifExpr","context","undefined","Boolean","resolved"],"sourceRoot":"../../../src","sources":["renderer/conditionalEvaluator.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,mBAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CACxBC,MAAe,EACfC,OAAgC,EACvB;EACT,IAAID,MAAM,KAAKE,SAAS,IAAIF,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI;;EAExD;EACA,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE,OAAOG,OAAO,CAACH,MAAM,CAAC;EAEtD,MAAMI,QAAQ,GAAGN,YAAY,CAACE,MAAM,EAAEC,OAAO,CAAC;;EAE9C;EACA,OAAOE,OAAO,CAACC,QAAQ,CAAC;AAC1B","ignoreList":[]}