@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,57 @@
1
+ import type React from 'react';
2
+ import type { ComponentRegistry } from '../registry/ComponentRegistry';
3
+ export interface SchemaNode {
4
+ id?: string;
5
+ type: string;
6
+ props?: Record<string, unknown>;
7
+ children?: SchemaNode[];
8
+ /** Per-item render template for flatlist nodes. */
9
+ itemTemplate?: SchemaNode;
10
+ actions?: Action[];
11
+ /**
12
+ * Conditional render expression. String values are resolved against the
13
+ * context via {{}} binding syntax. Non-string values (boolean, number, null)
14
+ * are coerced directly. Falsy → node is hidden.
15
+ */
16
+ if?: unknown;
17
+ }
18
+ export interface FlatListSchemaNode extends SchemaNode {
19
+ type: 'flatlist';
20
+ itemTemplate: SchemaNode;
21
+ }
22
+ export interface Action {
23
+ trigger: string;
24
+ action: string;
25
+ payload?: Record<string, unknown>;
26
+ }
27
+ export interface ToastPayload {
28
+ message: string;
29
+ duration?: number;
30
+ type?: 'success' | 'error' | 'info' | 'warning';
31
+ }
32
+ export interface BottomSheetPayload {
33
+ schema: SchemaNode;
34
+ context?: Record<string, unknown>;
35
+ }
36
+ export interface ScrollToPayload {
37
+ x?: number;
38
+ y?: number;
39
+ animated?: boolean;
40
+ }
41
+ export interface PushFrameContextValue {
42
+ apiKey: string;
43
+ baseUrl: string;
44
+ appVersion?: string;
45
+ globalContext: Record<string, unknown>;
46
+ registry: ComponentRegistry;
47
+ loadingComponent?: React.ReactNode;
48
+ fallbackComponent?: React.ReactNode;
49
+ onAction?: (action: string, payload?: Record<string, unknown>) => void;
50
+ onError?: (error: Error) => void;
51
+ showToast: (payload: ToastPayload) => void;
52
+ showBottomSheet: (payload: BottomSheetPayload) => void;
53
+ dismissBottomSheet: () => void;
54
+ }
55
+ export declare const PushFrameContext: React.Context<PushFrameContextValue | null>;
56
+ export declare function usePushFrameContext(): PushFrameContextValue;
57
+ //# sourceMappingURL=PushFrameContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PushFrameContext.d.ts","sourceRoot":"","sources":["../../../src/context/PushFrameContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAMvE,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,mDAAmD;IACnD,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,UAAU,CAAC;CAC1B;AAED,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAMD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CACjD;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAMD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACvE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC,SAAS,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C,eAAe,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACvD,kBAAkB,EAAE,MAAM,IAAI,CAAC;CAChC;AAMD,eAAO,MAAM,gBAAgB,6CAAoD,CAAC;AAElF,wBAAgB,mBAAmB,IAAI,qBAAqB,CAM3D"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @pushframe/sdk — Server-Driven UI for React Native
3
+ *
4
+ * Usage:
5
+ * import { PushFrame } from '@pushframe/sdk';
6
+ *
7
+ * <PushFrame.Provider apiKey="..." context={...}>
8
+ * <PushFrame.Screen name="home" />
9
+ * <PushFrame.Component name="promo-banner" />
10
+ * </PushFrame.Provider>
11
+ */
12
+ import { PushFrameProvider } from './components/PushFrameProvider';
13
+ import { PushFrameScreen } from './components/PushFrameScreen';
14
+ import { PushFrameComponent } from './components/PushFrameComponent';
15
+ import { Text } from './primitives/Text';
16
+ import { View } from './primitives/View';
17
+ import { Image } from './primitives/Image';
18
+ import { Pressable } from './primitives/Pressable';
19
+ import { TextInput } from './primitives/TextInput';
20
+ import { FlatList } from './primitives/FlatList';
21
+ import { Modal } from './primitives/Modal';
22
+ import { ActivityIndicator } from './primitives/ActivityIndicator';
23
+ import { Switch } from './primitives/Switch';
24
+ import { KeyboardAvoidingView } from './primitives/KeyboardAvoidingView';
25
+ import { SafeAreaView } from './primitives/SafeAreaView';
26
+ import { StatusBar } from './primitives/StatusBar';
27
+ /**
28
+ * The PushFrame namespace. Import this as the single entry-point for the SDK.
29
+ *
30
+ * Slot components:
31
+ * - PushFrame.Provider — wraps the app, initialises registry and context
32
+ * - PushFrame.Screen — full-page slot (fetches /screens/:name, applies flex:1)
33
+ * - PushFrame.Component — inline slot (fetches /components/:name)
34
+ *
35
+ * Primitives (used internally by RecursiveRenderer, available for direct use):
36
+ * - PushFrame.Text, PushFrame.View, PushFrame.ScrollView, PushFrame.Image
37
+ * - PushFrame.Pressable, PushFrame.TextInput, PushFrame.FlatList
38
+ * - PushFrame.Modal, PushFrame.ActivityIndicator, PushFrame.Switch
39
+ * - PushFrame.KeyboardAvoidingView, PushFrame.SafeAreaView, PushFrame.StatusBar
40
+ */
41
+ export declare const PushFrame: {
42
+ readonly Provider: typeof PushFrameProvider;
43
+ readonly Screen: typeof PushFrameScreen;
44
+ readonly Component: typeof PushFrameComponent;
45
+ readonly Text: typeof Text;
46
+ readonly View: typeof View;
47
+ readonly ScrollView: import("react").ForwardRefExoticComponent<import(".").PushFrameScrollViewProps & import("react").RefAttributes<import("react-native").ScrollView>>;
48
+ readonly Image: typeof Image;
49
+ readonly Pressable: typeof Pressable;
50
+ readonly TextInput: typeof TextInput;
51
+ readonly FlatList: typeof FlatList;
52
+ readonly Modal: typeof Modal;
53
+ readonly ActivityIndicator: typeof ActivityIndicator;
54
+ readonly Switch: typeof Switch;
55
+ readonly KeyboardAvoidingView: typeof KeyboardAvoidingView;
56
+ readonly SafeAreaView: typeof SafeAreaView;
57
+ readonly StatusBar: typeof StatusBar;
58
+ };
59
+ export { PushFrameProvider } from './components/PushFrameProvider';
60
+ export type { PushFrameProviderProps } from './components/PushFrameProvider';
61
+ export { PushFrameScreen } from './components/PushFrameScreen';
62
+ export { PushFrameComponent } from './components/PushFrameComponent';
63
+ export type { PushFrameSlotProps } from './components/PushFrameComponent';
64
+ export { PushFrameContext, usePushFrameContext } from './context/PushFrameContext';
65
+ export type { PushFrameContextValue, SchemaNode, FlatListSchemaNode, Action, ToastPayload, BottomSheetPayload, ScrollToPayload, } from './context/PushFrameContext';
66
+ export { ComponentRegistry } from './registry/ComponentRegistry';
67
+ export { RecursiveRenderer } from './renderer/RecursiveRenderer';
68
+ export type { RecursiveRendererProps, DispatchAction } from './renderer/RecursiveRenderer';
69
+ export { resolveValue, resolveProps, resolveDeep } from './renderer/bindingResolver';
70
+ export { evaluateIf } from './renderer/conditionalEvaluator';
71
+ export * from './primitives/index';
72
+ export { transformCraftToSDUI } from './transformer/index';
73
+ export type { CraftNode, CraftSchema, SDUINode, CustomComponentDef, CustomComponentsMap, } from './transformer/index';
74
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAMnD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;CAoBZ,CAAC;AAOX,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAG1E,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACnF,YAAY,EACV,qBAAqB,EACrB,UAAU,EACV,kBAAkB,EAClB,MAAM,EACN,YAAY,EACZ,kBAAkB,EAClB,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG3F,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7D,cAAc,oBAAoB,CAAC;AAGnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EACV,SAAS,EACT,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import type { BottomSheetPayload } from '../context/PushFrameContext';
3
+ import type { SchemaNode } from '../context/PushFrameContext';
4
+ export interface BottomSheetHostHandle {
5
+ show(payload: BottomSheetPayload): void;
6
+ dismiss(): void;
7
+ }
8
+ export interface BottomSheetHostProps {
9
+ /**
10
+ * Callback to render a SchemaNode inside the bottom sheet.
11
+ * Provided by the Provider which has access to registry and context.
12
+ */
13
+ renderContent: (schema: SchemaNode, context?: Record<string, unknown>) => React.ReactElement | null;
14
+ }
15
+ /**
16
+ * Rendered by PushFrameProvider at the root level.
17
+ * Exposes imperative `show()` and `dismiss()` handles.
18
+ * Zero third-party dependencies — built with Animated + Modal.
19
+ */
20
+ export declare const BottomSheetHost: React.ForwardRefExoticComponent<BottomSheetHostProps & React.RefAttributes<BottomSheetHostHandle>>;
21
+ //# sourceMappingURL=BottomSheetHost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BottomSheetHost.d.ts","sourceRoot":"","sources":["../../../src/overlays/BottomSheetHost.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAM9D,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACxC,OAAO,IAAI,IAAI,CAAC;CACjB;AAMD,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,aAAa,EAAE,CACb,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;CAChC;AAQD;;;;GAIG;AACH,eAAO,MAAM,eAAe,oGA8E3B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import type { ToastPayload } from '../context/PushFrameContext';
3
+ export interface ToastHostHandle {
4
+ show(payload: ToastPayload): void;
5
+ }
6
+ /**
7
+ * Rendered by PushFrameProvider at the root level.
8
+ * Exposes an imperative `show()` handle for displaying toast messages.
9
+ * Zero third-party dependencies — built with Animated API.
10
+ */
11
+ export declare const ToastHost: React.ForwardRefExoticComponent<React.RefAttributes<ToastHostHandle>>;
12
+ //# sourceMappingURL=ToastHost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToastHost.d.ts","sourceRoot":"","sources":["../../../src/overlays/ToastHost.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAMhE,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;CACnC;AA4BD;;;;GAIG;AACH,eAAO,MAAM,SAAS,uEAgEpB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ActivityIndicatorProps as RNActivityIndicatorProps } from 'react-native';
2
+ import type { Action } from '../context/PushFrameContext';
3
+ export interface PushFrameActivityIndicatorProps extends RNActivityIndicatorProps {
4
+ if?: string;
5
+ actions?: Action[];
6
+ }
7
+ /**
8
+ * Thin wrapper over React Native ActivityIndicator.
9
+ * Strips `if`, `actions` before forwarding to RN.
10
+ */
11
+ export declare function ActivityIndicator({ if: _if, actions: _actions, ...rest }: PushFrameActivityIndicatorProps): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=ActivityIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActivityIndicator.d.ts","sourceRoot":"","sources":["../../../src/primitives/ActivityIndicator.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,IAAI,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,WAAW,+BAAgC,SAAQ,wBAAwB;IAC/E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,EAAE,EAAE,GAAG,EACP,OAAO,EAAE,QAAQ,EACjB,GAAG,IAAI,EACR,EAAE,+BAA+B,2CAEjC"}
@@ -0,0 +1,29 @@
1
+ import type { FlatListProps as RNFlatListProps } from 'react-native';
2
+ import type { Action } from '../context/PushFrameContext';
3
+ export interface PushFrameFlatListProps<T = unknown> extends Omit<RNFlatListProps<T>, 'data' | 'horizontal'> {
4
+ if?: string;
5
+ actions?: Action[];
6
+ /**
7
+ * Resolved array of items. Populated by RecursiveRenderer from the
8
+ * `items` binding expression on the schema node.
9
+ */
10
+ items?: T[];
11
+ /**
12
+ * "vertical" (default) or "horizontal". Maps to RN `horizontal` boolean.
13
+ */
14
+ direction?: 'vertical' | 'horizontal';
15
+ /**
16
+ * Number of columns for grid layouts. Forwarded directly to RN FlatList.
17
+ */
18
+ numColumns?: number;
19
+ }
20
+ /**
21
+ * Thin wrapper over React Native FlatList.
22
+ * RecursiveRenderer handles this type specially — it resolves `items` from
23
+ * a binding expression and constructs the `renderItem` per-item context.
24
+ *
25
+ * This component maps Pushframe props to RN FlatList props and strips
26
+ * Pushframe-specific props before forwarding.
27
+ */
28
+ export declare function FlatList<T = unknown>({ if: _if, actions: _actions, items, direction, numColumns, ...rest }: PushFrameFlatListProps<T>): import("react/jsx-runtime").JSX.Element;
29
+ //# sourceMappingURL=FlatList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlatList.d.ts","sourceRoot":"","sources":["../../../src/primitives/FlatList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,WAAW,sBAAsB,CAAC,CAAC,GAAG,OAAO,CACjD,SAAQ,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IACvD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ;;OAEG;IACH,SAAS,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACtC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,EACpC,EAAE,EAAE,GAAG,EACP,OAAO,EAAE,QAAQ,EACjB,KAAK,EACL,SAAS,EACT,UAAU,EACV,GAAG,IAAI,EACR,EAAE,sBAAsB,CAAC,CAAC,CAAC,2CAS3B"}
@@ -0,0 +1,20 @@
1
+ import type { ImageProps as RNImageProps } from 'react-native';
2
+ import type { Action } from '../context/PushFrameContext';
3
+ export interface PushFrameImageProps extends Omit<RNImageProps, 'source'> {
4
+ if?: string;
5
+ actions?: Action[];
6
+ /**
7
+ * URI string for the image source. Maps to RN `source={{ uri: src }}`.
8
+ * Takes precedence over the base `source` prop.
9
+ */
10
+ src?: string;
11
+ /** Pass-through for cases where a static require() source is needed. */
12
+ source?: RNImageProps['source'];
13
+ }
14
+ /**
15
+ * Thin wrapper over React Native Image.
16
+ * `src` maps to `source={{ uri: src }}`.
17
+ * Strips `if`, `actions`, `src` before forwarding to RN.
18
+ */
19
+ export declare function Image({ if: _if, actions: _actions, src, source, ...rest }: PushFrameImageProps): import("react/jsx-runtime").JSX.Element;
20
+ //# sourceMappingURL=Image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../../../src/primitives/Image.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC;IACvE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,MAAM,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,mBAAmB,2CAG9F"}
@@ -0,0 +1,12 @@
1
+ import type { KeyboardAvoidingViewProps as RNKeyboardAvoidingViewProps } from 'react-native';
2
+ import type { Action } from '../context/PushFrameContext';
3
+ export interface PushFrameKeyboardAvoidingViewProps extends RNKeyboardAvoidingViewProps {
4
+ if?: string;
5
+ actions?: Action[];
6
+ }
7
+ /**
8
+ * Thin wrapper over React Native KeyboardAvoidingView.
9
+ * Strips `if`, `actions` before forwarding to RN.
10
+ */
11
+ export declare function KeyboardAvoidingView({ if: _if, actions: _actions, ...rest }: PushFrameKeyboardAvoidingViewProps): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=KeyboardAvoidingView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyboardAvoidingView.d.ts","sourceRoot":"","sources":["../../../src/primitives/KeyboardAvoidingView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,IAAI,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC7F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,WAAW,kCAAmC,SAAQ,2BAA2B;IACrF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,EAAE,EAAE,GAAG,EACP,OAAO,EAAE,QAAQ,EACjB,GAAG,IAAI,EACR,EAAE,kCAAkC,2CAEpC"}
@@ -0,0 +1,12 @@
1
+ import type { ModalProps as RNModalProps } from 'react-native';
2
+ import type { Action } from '../context/PushFrameContext';
3
+ export interface PushFrameModalProps extends RNModalProps {
4
+ if?: string;
5
+ actions?: Action[];
6
+ }
7
+ /**
8
+ * Thin wrapper over React Native Modal.
9
+ * Strips `if`, `actions` before forwarding to RN.
10
+ */
11
+ export declare function Modal({ if: _if, actions: _actions, ...rest }: PushFrameModalProps): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=Modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/primitives/Modal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,mBAAmB,2CAEjF"}
@@ -0,0 +1,14 @@
1
+ import type { PressableProps as RNPressableProps } from 'react-native';
2
+ import type { Action } from '../context/PushFrameContext';
3
+ export interface PushFramePressableProps extends RNPressableProps {
4
+ if?: string;
5
+ actions?: Action[];
6
+ }
7
+ /**
8
+ * Thin wrapper over React Native Pressable.
9
+ * Actions with trigger "onPress" and "onLongPress" are wired by RecursiveRenderer
10
+ * and forwarded through as standard RN props.
11
+ * Strips `if`, `actions` before forwarding to RN.
12
+ */
13
+ export declare function Pressable({ if: _if, actions: _actions, ...rest }: PushFramePressableProps): import("react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=Pressable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pressable.d.ts","sourceRoot":"","sources":["../../../src/primitives/Pressable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,IAAI,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,uBAAuB,2CAEzF"}
@@ -0,0 +1,20 @@
1
+ import type { ViewProps } from 'react-native';
2
+ import type { Action } from '../context/PushFrameContext';
3
+ export interface PushFrameSafeAreaViewProps extends ViewProps {
4
+ if?: string;
5
+ actions?: Action[];
6
+ /**
7
+ * Edges to apply safe-area insets on.
8
+ * Forwarded to react-native-safe-area-context's SafeAreaView when available.
9
+ * Example: ['top', 'bottom']
10
+ */
11
+ edges?: string[];
12
+ }
13
+ /**
14
+ * Thin wrapper over SafeAreaView.
15
+ * Uses react-native-safe-area-context when available, RN core otherwise.
16
+ * Strips `if`, `actions` before forwarding; passes `edges` through to
17
+ * react-native-safe-area-context (ignored gracefully in the RN core fallback).
18
+ */
19
+ export declare function SafeAreaView({ if: _if, actions: _actions, ...rest }: PushFrameSafeAreaViewProps): import("react/jsx-runtime").JSX.Element;
20
+ //# sourceMappingURL=SafeAreaView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeAreaView.d.ts","sourceRoot":"","sources":["../../../src/primitives/SafeAreaView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,WAAW,0BAA2B,SAAQ,SAAS;IAC3D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAoBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,0BAA0B,2CAE/F"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { ScrollView as RNScrollView } from 'react-native';
3
+ import type { ScrollViewProps as RNScrollViewProps } from 'react-native';
4
+ import type { Action } from '../context/PushFrameContext';
5
+ export interface PushFrameScrollViewProps extends RNScrollViewProps {
6
+ if?: string;
7
+ actions?: Action[];
8
+ }
9
+ /**
10
+ * Thin wrapper over React Native ScrollView.
11
+ * Forwards ref to support programmatic scrolling (e.g. scroll-to action).
12
+ * Strips `if`, `actions` before forwarding to RN.
13
+ */
14
+ export declare const ScrollView: React.ForwardRefExoticComponent<PushFrameScrollViewProps & React.RefAttributes<RNScrollView>>;
15
+ //# sourceMappingURL=ScrollView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollView.d.ts","sourceRoot":"","sources":["../../../src/primitives/ScrollView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,IAAI,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,+FAKrB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { StatusBarProps as RNStatusBarProps } from 'react-native';
2
+ import type { Action } from '../context/PushFrameContext';
3
+ export interface PushFrameStatusBarProps extends RNStatusBarProps {
4
+ if?: string;
5
+ actions?: Action[];
6
+ }
7
+ /**
8
+ * Thin wrapper over React Native StatusBar.
9
+ * Strips `if`, `actions` before forwarding to RN.
10
+ */
11
+ export declare function StatusBar({ if: _if, actions: _actions, ...rest }: PushFrameStatusBarProps): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=StatusBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../src/primitives/StatusBar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,IAAI,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,uBAAuB,2CAEzF"}
@@ -0,0 +1,19 @@
1
+ import type { SwitchProps as RNSwitchProps } from 'react-native';
2
+ import type { Action } from '../context/PushFrameContext';
3
+ export interface PushFrameSwitchProps extends Omit<RNSwitchProps, 'onValueChange' | 'onChange'> {
4
+ if?: string;
5
+ actions?: Action[];
6
+ /**
7
+ * Schema trigger "onChange" — wired by RecursiveRenderer.
8
+ * Mapped to RN `onValueChange` by this component.
9
+ */
10
+ onChange?: (value: boolean) => void;
11
+ }
12
+ /**
13
+ * Thin wrapper over React Native Switch.
14
+ * Maps Pushframe schema trigger to RN event prop:
15
+ * onChange → onValueChange
16
+ * Strips `if`, `actions`, `onChange` before forwarding to RN.
17
+ */
18
+ export declare function Switch({ if: _if, actions: _actions, onChange, ...rest }: PushFrameSwitchProps): import("react/jsx-runtime").JSX.Element;
19
+ //# sourceMappingURL=Switch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/primitives/Switch.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,aAAa,EAAE,eAAe,GAAG,UAAU,CAAC;IAC7F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,oBAAoB,2CAE7F"}
@@ -0,0 +1,25 @@
1
+ import type { TextProps as RNTextProps } from 'react-native';
2
+ import type { Action } from '../context/PushFrameContext';
3
+ export interface PushFrameTextProps extends RNTextProps {
4
+ /** Pushframe: hidden by RecursiveRenderer before component renders. */
5
+ if?: string;
6
+ /** Pushframe: converted to handlers by RecursiveRenderer before component renders. */
7
+ actions?: Action[];
8
+ /**
9
+ * Text content. Takes precedence over `children`.
10
+ * Pushframe schema convention: use `value`.
11
+ */
12
+ value?: string;
13
+ /**
14
+ * Alias for `value`. The transformer outputs the Craft editor's `content`
15
+ * field here. `value` takes precedence when both are present.
16
+ */
17
+ content?: string;
18
+ }
19
+ /**
20
+ * Thin wrapper over React Native Text.
21
+ * Strips `if`, `actions`, `content` before forwarding to RN.
22
+ * Display priority: value > content > children (children remain in rest).
23
+ */
24
+ export declare function Text({ if: _if, actions: _actions, value, content, ...rest }: PushFrameTextProps): import("react/jsx-runtime").JSX.Element;
25
+ //# sourceMappingURL=Text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../src/primitives/Text.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,uEAAuE;IACvE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,EACnB,EAAE,EAAE,GAAG,EACP,OAAO,EAAE,QAAQ,EACjB,KAAK,EACL,OAAO,EACP,GAAG,IAAI,EACR,EAAE,kBAAkB,2CASpB"}
@@ -0,0 +1,25 @@
1
+ import type { TextInputProps as RNTextInputProps } from 'react-native';
2
+ import type { Action } from '../context/PushFrameContext';
3
+ export interface PushFrameTextInputProps extends Omit<RNTextInputProps, 'onChange'> {
4
+ if?: string;
5
+ actions?: Action[];
6
+ /**
7
+ * Schema trigger "onChange" — wired by RecursiveRenderer.
8
+ * Mapped to RN `onChangeText` by this component.
9
+ */
10
+ onChange?: (text: string) => void;
11
+ /**
12
+ * Schema trigger "onSubmit" — wired by RecursiveRenderer.
13
+ * Mapped to RN `onSubmitEditing` by this component.
14
+ */
15
+ onSubmit?: () => void;
16
+ }
17
+ /**
18
+ * Thin wrapper over React Native TextInput.
19
+ * Maps Pushframe schema triggers to RN event props:
20
+ * onChange → onChangeText
21
+ * onSubmit → onSubmitEditing
22
+ * Strips `if`, `actions`, `onChange`, `onSubmit` before forwarding to RN.
23
+ */
24
+ export declare function TextInput({ if: _if, actions: _actions, onChange, onSubmit, ...rest }: PushFrameTextInputProps): import("react/jsx-runtime").JSX.Element;
25
+ //# sourceMappingURL=TextInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextInput.d.ts","sourceRoot":"","sources":["../../../src/primitives/TextInput.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,IAAI,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC;IACjF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EACxB,EAAE,EAAE,GAAG,EACP,OAAO,EAAE,QAAQ,EACjB,QAAQ,EACR,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,uBAAuB,2CAQzB"}
@@ -0,0 +1,12 @@
1
+ import type { ViewProps as RNViewProps } from 'react-native';
2
+ import type { Action } from '../context/PushFrameContext';
3
+ export interface PushFrameViewProps extends RNViewProps {
4
+ if?: string;
5
+ actions?: Action[];
6
+ }
7
+ /**
8
+ * Thin wrapper over React Native View.
9
+ * Strips `if`, `actions` before forwarding to RN.
10
+ */
11
+ export declare function View({ if: _if, actions: _actions, ...rest }: PushFrameViewProps): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=View.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"View.d.ts","sourceRoot":"","sources":["../../../src/primitives/View.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,kBAAkB,2CAE/E"}
@@ -0,0 +1,27 @@
1
+ export { Text } from './Text';
2
+ export type { PushFrameTextProps } from './Text';
3
+ export { View } from './View';
4
+ export type { PushFrameViewProps } from './View';
5
+ export { ScrollView } from './ScrollView';
6
+ export type { PushFrameScrollViewProps } from './ScrollView';
7
+ export { Image } from './Image';
8
+ export type { PushFrameImageProps } from './Image';
9
+ export { Pressable } from './Pressable';
10
+ export type { PushFramePressableProps } from './Pressable';
11
+ export { TextInput } from './TextInput';
12
+ export type { PushFrameTextInputProps } from './TextInput';
13
+ export { FlatList } from './FlatList';
14
+ export type { PushFrameFlatListProps } from './FlatList';
15
+ export { Modal } from './Modal';
16
+ export type { PushFrameModalProps } from './Modal';
17
+ export { ActivityIndicator } from './ActivityIndicator';
18
+ export type { PushFrameActivityIndicatorProps } from './ActivityIndicator';
19
+ export { Switch } from './Switch';
20
+ export type { PushFrameSwitchProps } from './Switch';
21
+ export { KeyboardAvoidingView } from './KeyboardAvoidingView';
22
+ export type { PushFrameKeyboardAvoidingViewProps } from './KeyboardAvoidingView';
23
+ export { SafeAreaView } from './SafeAreaView';
24
+ export type { PushFrameSafeAreaViewProps } from './SafeAreaView';
25
+ export { StatusBar } from './StatusBar';
26
+ export type { PushFrameStatusBarProps } from './StatusBar';
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/primitives/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAEjD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AAE3E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type React from 'react';
2
+ /**
3
+ * Maps component type strings to React components.
4
+ *
5
+ * Built-ins are always present and cannot be overridden.
6
+ * Developer-registered components are merged on top for non-conflicting types.
7
+ */
8
+ export declare class ComponentRegistry {
9
+ private readonly components;
10
+ constructor(developerComponents?: Record<string, React.ComponentType<unknown>>);
11
+ /**
12
+ * Resolve a type string to its React component.
13
+ * Returns null if no component is registered for the type.
14
+ */
15
+ resolve(type: string): React.ComponentType<Record<string, unknown>> | null;
16
+ /**
17
+ * Returns all registered type strings (useful for debugging).
18
+ */
19
+ types(): string[];
20
+ }
21
+ //# sourceMappingURL=ComponentRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentRegistry.d.ts","sourceRoot":"","sources":["../../../src/registry/ComponentRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAwD/B;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4D;gBAE3E,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAmB9E;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI;IAI1E;;OAEG;IACH,KAAK,IAAI,MAAM,EAAE;CAGlB"}
@@ -0,0 +1,57 @@
1
+ import type { ComponentType, ReactElement, ReactNode } from 'react';
2
+ import type { PushframeNode } from './schema';
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
+ export interface PushframeComponentProps<TProps = Record<string, unknown>> {
17
+ props: TProps;
18
+ children?: ReactNode;
19
+ onAction?: (eventName: string, payload: unknown) => void;
20
+ rawChildren?: readonly PushframeNode[];
21
+ renderChild?: (node: PushframeNode, contextOverride?: Record<string, unknown>) => ReactElement | null;
22
+ }
23
+ export type PushframeComponent<TProps = Record<string, unknown>> = ComponentType<PushframeComponentProps<TProps>>;
24
+ /**
25
+ * ComponentRegistry maps a component type string (e.g. "stack") to its
26
+ * React component implementation.
27
+ *
28
+ * Use `createRegistry()` to construct one, then call `register()` to add
29
+ * custom components on top.
30
+ */
31
+ export declare class ComponentRegistry {
32
+ private readonly components;
33
+ /**
34
+ * Register a component under the given type string.
35
+ * Calling register() with an existing type overwrites the previous entry,
36
+ * allowing host apps to override built-ins.
37
+ */
38
+ register<TProps>(type: string, component: PushframeComponent<TProps>): this;
39
+ /**
40
+ * Look up a component by type string.
41
+ * Returns undefined if no component is registered for that type.
42
+ */
43
+ get(type: string): PushframeComponent | undefined;
44
+ /**
45
+ * Returns true if the registry contains an entry for the given type.
46
+ */
47
+ has(type: string): boolean;
48
+ /**
49
+ * Returns all registered type strings (useful for debugging).
50
+ */
51
+ types(): string[];
52
+ }
53
+ /**
54
+ * Build the default registry pre-loaded with all built-in components.
55
+ */
56
+ export declare function createDefaultRegistry(): ComponentRegistry;
57
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,uBAAuB,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,WAAW,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACvC,WAAW,CAAC,EAAE,CACZ,IAAI,EAAE,aAAa,EACnB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACtC,YAAY,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,MAAM,kBAAkB,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC7D,aAAa,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;AAEjD;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyC;IAEpE;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC,GACpC,IAAI;IAKP;;;OAGG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIjD;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,KAAK,IAAI,MAAM,EAAE;CAGlB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,iBAAiB,CAmBzD"}