@developer_tribe/react-builder 1.2.14 → 1.2.17

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 (183) hide show
  1. package/dist/build-components/BIcon/BIconProps.generated.d.ts +2 -0
  2. package/dist/build-components/BackgroundImage/BackgroundImageProps.generated.d.ts +2 -0
  3. package/dist/build-components/Button/ButtonProps.generated.d.ts +2 -0
  4. package/dist/build-components/Carousel/CarouselProps.generated.d.ts +2 -0
  5. package/dist/build-components/CarouselButtons/CarouselButtonsProps.generated.d.ts +2 -0
  6. package/dist/build-components/CarouselDots/CarouselDotsProps.generated.d.ts +2 -0
  7. package/dist/build-components/CarouselItem/CarouselItemProps.generated.d.ts +2 -0
  8. package/dist/build-components/CarouselProvider/CarouselProviderProps.generated.d.ts +2 -0
  9. package/dist/build-components/CountDown/CountDown.d.ts +2 -0
  10. package/dist/build-components/CountDown/CountDownProps.generated.d.ts +61 -0
  11. package/dist/build-components/CountDown/formatCountdownTime.d.ts +1 -0
  12. package/dist/build-components/Counter/Counter.d.ts +2 -0
  13. package/dist/build-components/Counter/CounterProps.generated.d.ts +61 -0
  14. package/dist/build-components/Image/ImageProps.generated.d.ts +2 -0
  15. package/dist/build-components/Main/MainProps.generated.d.ts +2 -0
  16. package/dist/build-components/Onboard/OnboardProps.generated.d.ts +2 -0
  17. package/dist/build-components/OnboardButton/OnboardButtonProps.generated.d.ts +2 -0
  18. package/dist/build-components/OnboardButtons/OnboardButtonsProps.generated.d.ts +2 -0
  19. package/dist/build-components/OnboardDot/OnboardDotProps.generated.d.ts +2 -0
  20. package/dist/build-components/OnboardFooter/OnboardFooterProps.generated.d.ts +2 -0
  21. package/dist/build-components/OnboardImage/OnboardImageProps.generated.d.ts +2 -0
  22. package/dist/build-components/OnboardItem/OnboardItemProps.generated.d.ts +2 -0
  23. package/dist/build-components/OnboardProvider/OnboardProviderProps.generated.d.ts +2 -0
  24. package/dist/build-components/OnboardSubtitle/OnboardSubtitleProps.generated.d.ts +2 -0
  25. package/dist/build-components/OnboardTitle/OnboardTitleProps.generated.d.ts +2 -0
  26. package/dist/build-components/PaywallBackground/PaywallBackgroundProps.generated.d.ts +2 -0
  27. package/dist/build-components/PaywallCloseButton/PaywallCloseButton.d.ts +1 -1
  28. package/dist/build-components/PaywallCloseButton/PaywallCloseButtonProps.generated.d.ts +2 -0
  29. package/dist/build-components/PaywallCounter/PaywallCounter.d.ts +2 -0
  30. package/dist/build-components/PaywallCounter/PaywallCounterProps.generated.d.ts +61 -0
  31. package/dist/build-components/PaywallOptions/PaywallOptionsProps.generated.d.ts +2 -0
  32. package/dist/build-components/PaywallProvider/PaywallContext.d.ts +2 -1
  33. package/dist/build-components/PaywallProvider/PaywallProviderProps.generated.d.ts +3 -0
  34. package/dist/build-components/PaywallSubscribeButton/PaywallSubscribeButtonProps.generated.d.ts +2 -0
  35. package/dist/build-components/RadioButton/RadioButtonProps.generated.d.ts +2 -0
  36. package/dist/build-components/Text/TextProps.generated.d.ts +2 -0
  37. package/dist/build-components/View/ViewProps.generated.d.ts +2 -0
  38. package/dist/build-components/index.d.ts +4 -1
  39. package/dist/build-components/patterns.generated.d.ts +2969 -1550
  40. package/dist/components/BuilderProvider.d.ts +0 -1
  41. package/dist/index.cjs.js +4 -4
  42. package/dist/index.cjs.js.map +1 -1
  43. package/dist/index.d.ts +2 -1
  44. package/dist/index.esm.js +4 -4
  45. package/dist/index.esm.js.map +1 -1
  46. package/dist/index.native.d.ts +7 -0
  47. package/dist/index.web.cjs.js +7 -5
  48. package/dist/index.web.cjs.js.map +1 -1
  49. package/dist/index.web.esm.js +7 -5
  50. package/dist/index.web.esm.js.map +1 -1
  51. package/dist/mockOS/backHandler.d.ts +4 -0
  52. package/dist/paywall/hooks/index.d.ts +3 -3
  53. package/dist/paywall/hooks/useChangeDelayByPaywall.d.ts +4 -0
  54. package/dist/paywall/hooks/useHandleGoBack.d.ts +1 -0
  55. package/dist/paywall/hooks/useMockOSBackHandler.d.ts +1 -0
  56. package/dist/utils/getDefaultProject.d.ts +4 -0
  57. package/dist/utils/patterns.d.ts +3 -0
  58. package/package.json +5 -1
  59. package/scripts/prebuild/utils/createComponentTsx.js +1 -1
  60. package/scripts/prebuild/utils/createGeneratedProps.js +6 -2
  61. package/scripts/prebuild/utils/createRenderNodeGenerated.js +26 -5
  62. package/scripts/prebuild/utils/validateAllComponentsOrThrow.js +17 -5
  63. package/scripts/prebuild/utils/validateExistingComponentTsx.js +12 -8
  64. package/src/AttributesEditor.tsx +7 -2
  65. package/src/RenderPage.tsx +34 -3
  66. package/src/assets/meta.json +1 -1
  67. package/src/assets/samples/carousel-sample.json +44 -14
  68. package/src/assets/samples/getSamples.ts +3 -1
  69. package/src/assets/samples/paywall-1.json +73 -29
  70. package/src/assets/samples/paywall-2.json +339 -0
  71. package/src/assets/samples/simple-1.json +9 -3
  72. package/src/assets/samples/simple-2.json +72 -24
  73. package/src/assets/samples/unmigrated-builder-1.1.1.json +19 -7
  74. package/src/assets/samples/unmigrated-builder1.json +10 -4
  75. package/src/assets/samples/unvalidated-builder1.json +10 -4
  76. package/src/assets/samples/unvalidated-crash1.json +3 -1
  77. package/src/assets/samples/unvalidated-crashcomponent1.json +3 -1
  78. package/src/assets/samples/vpn-onboard-1.json +88 -40
  79. package/src/assets/samples/vpn-onboard-2.json +85 -37
  80. package/src/assets/samples/vpn-onboard-3.json +93 -45
  81. package/src/assets/samples/vpn-onboard-4.json +93 -45
  82. package/src/assets/samples/vpn-onboard-5.json +121 -53
  83. package/src/assets/samples/vpn-onboard-6.json +93 -45
  84. package/src/attributes-editor/AttributesEditorView.tsx +39 -1
  85. package/src/attributes-editor/Field.tsx +30 -0
  86. package/src/build-components/BIcon/BIconProps.generated.ts +2 -0
  87. package/src/build-components/BIcon/pattern.json +2 -0
  88. package/src/build-components/BackgroundImage/BackgroundImageProps.generated.ts +2 -0
  89. package/src/build-components/BackgroundImage/pattern.json +2 -0
  90. package/src/build-components/Button/ButtonProps.generated.ts +2 -0
  91. package/src/build-components/Button/pattern.json +2 -0
  92. package/src/build-components/Carousel/CarouselProps.generated.ts +2 -0
  93. package/src/build-components/Carousel/pattern.json +2 -0
  94. package/src/build-components/CarouselButtons/CarouselButtonsProps.generated.ts +2 -0
  95. package/src/build-components/CarouselButtons/pattern.json +2 -0
  96. package/src/build-components/CarouselDots/CarouselDotsProps.generated.ts +2 -0
  97. package/src/build-components/CarouselDots/pattern.json +2 -0
  98. package/src/build-components/CarouselItem/CarouselItemProps.generated.ts +2 -0
  99. package/src/build-components/CarouselItem/pattern.json +4 -1
  100. package/src/build-components/CarouselProvider/CarouselProviderProps.generated.ts +2 -0
  101. package/src/build-components/CarouselProvider/pattern.json +4 -1
  102. package/src/build-components/CountDown/CountDown.tsx +81 -0
  103. package/src/build-components/CountDown/CountDownProps.generated.ts +78 -0
  104. package/src/build-components/CountDown/formatCountdownTime.ts +10 -0
  105. package/src/build-components/CountDown/pattern.json +24 -0
  106. package/src/build-components/Counter/Counter.tsx +44 -0
  107. package/src/build-components/Counter/CounterProps.generated.ts +78 -0
  108. package/src/build-components/Counter/pattern.json +26 -0
  109. package/src/build-components/Image/ImageProps.generated.ts +2 -0
  110. package/src/build-components/Image/pattern.json +2 -0
  111. package/src/build-components/Main/MainProps.generated.ts +2 -0
  112. package/src/build-components/Main/pattern.json +2 -0
  113. package/src/build-components/Onboard/OnboardProps.generated.ts +2 -0
  114. package/src/build-components/Onboard/pattern.json +4 -1
  115. package/src/build-components/OnboardButton/OnboardButtonProps.generated.ts +2 -0
  116. package/src/build-components/OnboardButton/pattern.json +2 -0
  117. package/src/build-components/OnboardButtons/OnboardButtonsProps.generated.ts +2 -0
  118. package/src/build-components/OnboardButtons/pattern.json +2 -0
  119. package/src/build-components/OnboardDot/OnboardDotProps.generated.ts +2 -0
  120. package/src/build-components/OnboardDot/pattern.json +2 -0
  121. package/src/build-components/OnboardFooter/OnboardFooterProps.generated.ts +2 -0
  122. package/src/build-components/OnboardFooter/pattern.json +2 -0
  123. package/src/build-components/OnboardImage/OnboardImageProps.generated.ts +2 -0
  124. package/src/build-components/OnboardImage/pattern.json +2 -0
  125. package/src/build-components/OnboardItem/OnboardItemProps.generated.ts +2 -0
  126. package/src/build-components/OnboardItem/pattern.json +2 -0
  127. package/src/build-components/OnboardProvider/OnboardProviderProps.generated.ts +2 -0
  128. package/src/build-components/OnboardProvider/pattern.json +2 -0
  129. package/src/build-components/OnboardSubtitle/OnboardSubtitleProps.generated.ts +2 -0
  130. package/src/build-components/OnboardSubtitle/pattern.json +4 -1
  131. package/src/build-components/OnboardTitle/OnboardTitleProps.generated.ts +2 -0
  132. package/src/build-components/OnboardTitle/pattern.json +4 -1
  133. package/src/build-components/PaywallBackground/PaywallBackgroundProps.generated.ts +2 -0
  134. package/src/build-components/PaywallBackground/pattern.json +4 -1
  135. package/src/build-components/PaywallCloseButton/PaywallCloseButton.tsx +12 -6
  136. package/src/build-components/PaywallCloseButton/PaywallCloseButtonProps.generated.ts +2 -0
  137. package/src/build-components/PaywallCloseButton/pattern.json +7 -1
  138. package/src/build-components/PaywallCounter/PaywallCounter.tsx +46 -0
  139. package/src/build-components/PaywallCounter/PaywallCounterProps.generated.ts +78 -0
  140. package/src/build-components/PaywallCounter/pattern.json +24 -0
  141. package/src/build-components/PaywallOptions/PaywallOptions.tsx +2 -2
  142. package/src/build-components/PaywallOptions/PaywallOptionsProps.generated.ts +2 -0
  143. package/src/build-components/PaywallOptions/pattern.json +4 -1
  144. package/src/build-components/PaywallProvider/PaywallContext.ts +4 -2
  145. package/src/build-components/PaywallProvider/PaywallProvider.tsx +51 -21
  146. package/src/build-components/PaywallProvider/PaywallProviderProps.generated.ts +3 -0
  147. package/src/build-components/PaywallProvider/pattern.json +14 -1
  148. package/src/build-components/PaywallSubscribeButton/PaywallSubscribeButtonProps.generated.ts +2 -0
  149. package/src/build-components/PaywallSubscribeButton/pattern.json +4 -1
  150. package/src/build-components/RadioButton/RadioButtonProps.generated.ts +2 -0
  151. package/src/build-components/RadioButton/pattern.json +2 -0
  152. package/src/build-components/RenderNode.generated.tsx +17 -2
  153. package/src/build-components/Text/TextProps.generated.ts +2 -0
  154. package/src/build-components/Text/pattern.json +3 -1
  155. package/src/build-components/View/View.tsx +1 -1
  156. package/src/build-components/View/ViewProps.generated.ts +2 -0
  157. package/src/build-components/View/pattern.json +35 -38
  158. package/src/build-components/index.ts +15 -0
  159. package/src/build-components/patterns.generated.ts +3094 -1569
  160. package/src/components/BuilderButton.tsx +23 -6
  161. package/src/components/BuilderProvider.tsx +10 -7
  162. package/src/components/DeviceNavigationBar.tsx +5 -0
  163. package/src/index.native.ts +7 -0
  164. package/src/index.ts +2 -3
  165. package/src/mockOS/backHandler.ts +35 -0
  166. package/src/mockOS/context/MockOSContext.tsx +22 -8
  167. package/src/mockOS/managers/navigationManager.ts +4 -0
  168. package/src/pages/ProjectMigrationPage.tsx +10 -1
  169. package/src/pages/ProjectPage.tsx +7 -0
  170. package/src/pages/projectPageUtils.ts +3 -2
  171. package/src/paywall/hooks/index.ts +3 -3
  172. package/src/paywall/hooks/useChangeDelayByPaywall.ts +25 -0
  173. package/src/paywall/hooks/useHandleGoBack.ts +60 -0
  174. package/src/paywall/hooks/useMockOSBackHandler.ts +9 -0
  175. package/src/utils/analyseNodeByPatterns.ts +21 -0
  176. package/src/utils/getDefaultProject.ts +34 -0
  177. package/src/utils/patterns.ts +6 -7
  178. package/dist/paywall/hooks/useCarouselOptionsSeperator.d.ts +0 -6
  179. package/dist/paywall/hooks/useCloseStatusPaywall.d.ts +0 -4
  180. package/dist/paywall/hooks/usePaywallCounter.d.ts +0 -4
  181. package/src/paywall/hooks/useCarouselOptionsSeperator.ts +0 -8
  182. package/src/paywall/hooks/useCloseStatusPaywall.ts +0 -6
  183. package/src/paywall/hooks/usePaywallCounter.ts +0 -6
@@ -21,7 +21,9 @@
21
21
  "type": "Main",
22
22
  "isMain": true,
23
23
  "attributes": {
24
- "useSafeAreaView": true
24
+ "useSafeAreaView": true,
25
+ "description": "Ekran\u0131n ana kapsay\u0131c\u0131s\u0131. (#1)",
26
+ "title": "Main"
25
27
  },
26
28
  "children": [
27
29
  {
@@ -34,25 +36,32 @@
34
36
  "position": "relative",
35
37
  "backgroundColor": "#F5F7FA"
36
38
  },
37
- "scrollable": true
39
+ "scrollable": true,
40
+ "description": "Paywall ana sa\u011flay\u0131c\u0131s\u0131. (#1)",
41
+ "title": "Main Paywall"
38
42
  },
39
43
  "children": [
40
44
  {
41
45
  "type": "PaywallBackground",
46
+ "title": "Paywall Background",
42
47
  "attributes": {
43
48
  "src": "https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=1200&q=80",
44
- "resizeMode": "cover"
49
+ "resizeMode": "cover",
50
+ "description": "Paywall arka plan\u0131. (#1)",
51
+ "title": "Paywall Background"
45
52
  },
46
53
  "children": null
47
54
  },
48
55
  {
49
56
  "type": "View",
57
+ "title": "Paywall Inner",
50
58
  "attributes": {
51
59
  "style": {
52
60
  "paddingTop": 56,
53
61
  "paddingHorizontal": 16,
54
62
  "paddingBottom": 16,
55
- "gap": 12
63
+ "gap": 12,
64
+ "flex": 1
56
65
  }
57
66
  },
58
67
  "children": [
@@ -60,15 +69,14 @@
60
69
  "type": "PaywallCloseButton",
61
70
  "attributes": {
62
71
  "style": {
63
- "position": "absolute",
64
- "top": 24,
65
- "left": 16,
66
72
  "width": 32,
67
73
  "height": 32,
68
74
  "borderRadius": 16,
69
75
  "backgroundColor": "#FFFFFF",
70
76
  "color": "#000",
71
- "zIndex": 10
77
+ "zIndex": 10,
78
+ "alignItems": "center",
79
+ "justifyContent": "center"
72
80
  }
73
81
  },
74
82
  "children": null
@@ -80,7 +88,9 @@
80
88
  "flexDirection": "column",
81
89
  "gap": 0,
82
90
  "marginTop": "16%"
83
- }
91
+ },
92
+ "description": "D\u00fczen ve yerle\u015fim konteyneri. (#2)",
93
+ "title": "Benefits"
84
94
  },
85
95
  "children": [
86
96
  {
@@ -92,7 +102,9 @@
92
102
  "gap": 8,
93
103
  "paddingVertical": 8,
94
104
  "paddingHorizontal": 12
95
- }
105
+ },
106
+ "description": "D\u00fczen ve yerle\u015fim konteyneri. (#3)",
107
+ "title": "Benefit #1"
96
108
  },
97
109
  "children": [
98
110
  {
@@ -104,7 +116,9 @@
104
116
  "color": "#22c55e",
105
117
  "fontSize": "16",
106
118
  "flex": 0
107
- }
119
+ },
120
+ "description": "\u0130kon \u00f6\u011fesi. (#1)",
121
+ "title": "BIcon 1"
108
122
  },
109
123
  "children": null
110
124
  },
@@ -115,9 +129,11 @@
115
129
  "flex": 1,
116
130
  "color": "#FFFFFF",
117
131
  "fontWeight": "700"
118
- }
132
+ },
133
+ "description": "Metin \u00f6\u011fesi. (#1)",
134
+ "title": "text 1"
119
135
  },
120
- "children": "@benefit1 Unlimited access"
136
+ "children": "@benefit1 \u2014 Unlimited access"
121
137
  }
122
138
  ]
123
139
  },
@@ -130,7 +146,9 @@
130
146
  "gap": 8,
131
147
  "paddingVertical": 8,
132
148
  "paddingHorizontal": 12
133
- }
149
+ },
150
+ "description": "D\u00fczen ve yerle\u015fim konteyneri. (#4)",
151
+ "title": "Benefit #2"
134
152
  },
135
153
  "children": [
136
154
  {
@@ -142,7 +160,9 @@
142
160
  "color": "#22c55e",
143
161
  "fontSize": "16",
144
162
  "flex": 0
145
- }
163
+ },
164
+ "description": "\u0130kon \u00f6\u011fesi. (#2)",
165
+ "title": "BIcon 2"
146
166
  },
147
167
  "children": null
148
168
  },
@@ -153,9 +173,11 @@
153
173
  "flex": 1,
154
174
  "color": "#FFFFFF",
155
175
  "fontWeight": "700"
156
- }
176
+ },
177
+ "description": "Metin \u00f6\u011fesi. (#2)",
178
+ "title": "text 2"
157
179
  },
158
- "children": "@benefit2 7-day free trial"
180
+ "children": "@benefit2 \u2014 7-day free trial"
159
181
  }
160
182
  ]
161
183
  },
@@ -168,7 +190,9 @@
168
190
  "gap": 8,
169
191
  "paddingVertical": 8,
170
192
  "paddingHorizontal": 12
171
- }
193
+ },
194
+ "description": "D\u00fczen ve yerle\u015fim konteyneri. (#5)",
195
+ "title": "Benefit #3"
172
196
  },
173
197
  "children": [
174
198
  {
@@ -180,7 +204,9 @@
180
204
  "color": "#22c55e",
181
205
  "fontSize": "16",
182
206
  "flex": 0
183
- }
207
+ },
208
+ "description": "\u0130kon \u00f6\u011fesi. (#3)",
209
+ "title": "BIcon 3"
184
210
  },
185
211
  "children": null
186
212
  },
@@ -191,9 +217,11 @@
191
217
  "flex": 1,
192
218
  "color": "#FFFFFF",
193
219
  "fontWeight": "700"
194
- }
220
+ },
221
+ "description": "Metin \u00f6\u011fesi. (#3)",
222
+ "title": "text 3"
195
223
  },
196
- "children": "@benefit3 Cancel anytime"
224
+ "children": "@benefit3 \u2014 Cancel anytime"
197
225
  }
198
226
  ]
199
227
  }
@@ -205,7 +233,9 @@
205
233
  "style": {
206
234
  "borderRadius": 12,
207
235
  "backgroundColor": "#FFFFFF"
208
- }
236
+ },
237
+ "description": "Abonelik se\u00e7enekleri alan\u0131. (#1)",
238
+ "title": "Option(s)"
209
239
  },
210
240
  "children": [
211
241
  {
@@ -213,7 +243,9 @@
213
243
  "attributes": {
214
244
  "style": {
215
245
  "flex": 1
216
- }
246
+ },
247
+ "description": "Se\u00e7im sat\u0131r\u0131 \u00f6\u011fesi. (#1)",
248
+ "title": "Product Radio(s)"
217
249
  },
218
250
  "children": null
219
251
  },
@@ -223,9 +255,11 @@
223
255
  "style": {
224
256
  "flex": 4,
225
257
  "color": "#000"
226
- }
258
+ },
259
+ "description": "Metin \u00f6\u011fesi. (#4)",
260
+ "title": "Product Desc(s)"
227
261
  },
228
- "children": "@productDescription Unlock all premium features for a month."
262
+ "children": "@productDescription \u2014 Unlock all premium features for a month."
229
263
  },
230
264
  {
231
265
  "type": "text",
@@ -234,7 +268,9 @@
234
268
  "flex": 1,
235
269
  "textAlign": "right",
236
270
  "color": "#000"
237
- }
271
+ },
272
+ "description": "Metin \u00f6\u011fesi. (#5)",
273
+ "title": "Product Price(s)"
238
274
  },
239
275
  "children": "@localizedPrice"
240
276
  },
@@ -248,7 +284,9 @@
248
284
  "flex": 0,
249
285
  "width": 32,
250
286
  "color": "#000"
251
- }
287
+ },
288
+ "description": "\u0130kon \u00f6\u011fesi. (#4)",
289
+ "title": "Product BIcon(s)"
252
290
  },
253
291
  "children": null
254
292
  }
@@ -263,12 +301,18 @@
263
301
  "justifyContent": "flex-end",
264
302
  "alignItems": "stretch",
265
303
  "paddingBottom": "50px"
266
- }
304
+ },
305
+ "description": "Subscription butonu kapsay\u0131c\u0131s\u0131. (#1)",
306
+ "title": "Subs Container"
267
307
  },
268
308
  "children": [
269
309
  {
270
310
  "type": "PaywallSubscribeButton",
271
- "children": "Subscribe"
311
+ "children": "Subscribe",
312
+ "attributes": {
313
+ "description": "Abonelik onay butonu. (#1)",
314
+ "title": "Subscribe"
315
+ }
272
316
  }
273
317
  ]
274
318
  }
@@ -0,0 +1,339 @@
1
+ {
2
+ "name": "Paywall With Counter",
3
+ "version": "1.1.2",
4
+ "type": "paywall",
5
+ "appConfig": {
6
+ "theme": "light",
7
+ "isRtl": false,
8
+ "screenStyle": {
9
+ "light": {
10
+ "backgroundColor": "#F8FAFF",
11
+ "color": "#151725"
12
+ },
13
+ "dark": {
14
+ "backgroundColor": "#0F1118",
15
+ "color": "#E9EBF9"
16
+ }
17
+ },
18
+ "defaultLanguage": "en"
19
+ },
20
+ "data": {
21
+ "type": "Main",
22
+ "isMain": true,
23
+ "attributes": {
24
+ "useSafeAreaView": true,
25
+ "description": "Main container for Paywall 2.",
26
+ "title": "Main"
27
+ },
28
+ "children": [
29
+ {
30
+ "type": "PaywallProvider",
31
+ "attributes": {
32
+ "style": {
33
+ "flexDirection": "column",
34
+ "alignItems": "stretch",
35
+ "justifyContent": "flex-start",
36
+ "position": "relative",
37
+ "backgroundColor": "#EEF2FF"
38
+ },
39
+ "scrollable": true,
40
+ "delay": 5000,
41
+ "description": "Paywall provider container.",
42
+ "title": "Main Paywall"
43
+ },
44
+ "children": [
45
+ {
46
+ "type": "PaywallBackground",
47
+ "attributes": {
48
+ "src": "https://images.unsplash.com/photo-1482192596544-9eb780fc7f66?auto=format&fit=crop&w=1200&q=80",
49
+ "resizeMode": "cover",
50
+ "description": "Paywall background.",
51
+ "title": "Paywall Background"
52
+ },
53
+ "children": null
54
+ },
55
+ {
56
+ "type": "View",
57
+ "attributes": {
58
+ "style": {
59
+ "paddingTop": 56,
60
+ "paddingHorizontal": 16,
61
+ "paddingBottom": 16,
62
+ "gap": 16,
63
+ "flex": 1
64
+ }
65
+ },
66
+ "children": [
67
+ {
68
+ "type": "PaywallCloseButton",
69
+ "attributes": {
70
+ "style": {
71
+ "width": 32,
72
+ "height": 32,
73
+ "borderRadius": 16,
74
+ "backgroundColor": "#FFFFFF",
75
+ "color": "#000",
76
+ "zIndex": 10,
77
+ "alignItems": "center",
78
+ "justifyContent": "center"
79
+ }
80
+ },
81
+ "children": null
82
+ },
83
+ {
84
+ "type": "View",
85
+ "attributes": {
86
+ "style": {
87
+ "flexDirection": "column",
88
+ "gap": 4,
89
+ "marginTop": "12%"
90
+ },
91
+ "description": "Benefits container.",
92
+ "title": "Benefits"
93
+ },
94
+ "children": [
95
+ {
96
+ "type": "View",
97
+ "attributes": {
98
+ "style": {
99
+ "flexDirection": "row",
100
+ "alignItems": "center",
101
+ "gap": 8,
102
+ "paddingVertical": 8,
103
+ "paddingHorizontal": 12
104
+ },
105
+ "description": "Benefit container #1.",
106
+ "title": "Benefit #1"
107
+ },
108
+ "children": [
109
+ {
110
+ "type": "BIcon",
111
+ "attributes": {
112
+ "iconType": "check",
113
+ "strokeWidth": 3,
114
+ "style": {
115
+ "color": "#22c55e",
116
+ "fontSize": "16",
117
+ "flex": 0
118
+ },
119
+ "description": "Icon item.",
120
+ "title": "BIcon 1"
121
+ },
122
+ "children": null
123
+ },
124
+ {
125
+ "type": "text",
126
+ "attributes": {
127
+ "style": {
128
+ "flex": 1,
129
+ "color": "#FFFFFF",
130
+ "fontWeight": "700"
131
+ },
132
+ "description": "Text item.",
133
+ "title": "text 1"
134
+ },
135
+ "children": "@benefit1 — Unlimited access"
136
+ }
137
+ ]
138
+ },
139
+ {
140
+ "type": "View",
141
+ "attributes": {
142
+ "style": {
143
+ "flexDirection": "row",
144
+ "alignItems": "center",
145
+ "gap": 8,
146
+ "paddingVertical": 8,
147
+ "paddingHorizontal": 12
148
+ },
149
+ "description": "Benefit container #2.",
150
+ "title": "Benefit #2"
151
+ },
152
+ "children": [
153
+ {
154
+ "type": "BIcon",
155
+ "attributes": {
156
+ "iconType": "check",
157
+ "strokeWidth": 3,
158
+ "style": {
159
+ "color": "#22c55e",
160
+ "fontSize": "16",
161
+ "flex": 0
162
+ },
163
+ "description": "Icon item.",
164
+ "title": "BIcon 2"
165
+ },
166
+ "children": null
167
+ },
168
+ {
169
+ "type": "text",
170
+ "attributes": {
171
+ "style": {
172
+ "flex": 1,
173
+ "color": "#FFFFFF",
174
+ "fontWeight": "700"
175
+ },
176
+ "description": "Text item.",
177
+ "title": "text 2"
178
+ },
179
+ "children": "@benefit2 — 7-day free trial"
180
+ }
181
+ ]
182
+ },
183
+ {
184
+ "type": "View",
185
+ "attributes": {
186
+ "style": {
187
+ "flexDirection": "row",
188
+ "alignItems": "center",
189
+ "gap": 8,
190
+ "paddingVertical": 8,
191
+ "paddingHorizontal": 12
192
+ },
193
+ "description": "Benefit container #3.",
194
+ "title": "Benefit #3"
195
+ },
196
+ "children": [
197
+ {
198
+ "type": "BIcon",
199
+ "attributes": {
200
+ "iconType": "check",
201
+ "strokeWidth": 3,
202
+ "style": {
203
+ "color": "#22c55e",
204
+ "fontSize": "16",
205
+ "flex": 0
206
+ },
207
+ "description": "Icon item.",
208
+ "title": "BIcon 3"
209
+ },
210
+ "children": null
211
+ },
212
+ {
213
+ "type": "text",
214
+ "attributes": {
215
+ "style": {
216
+ "flex": 1,
217
+ "color": "#FFFFFF",
218
+ "fontWeight": "700"
219
+ },
220
+ "description": "Text item.",
221
+ "title": "text 3"
222
+ },
223
+ "children": "@benefit3 — Cancel anytime"
224
+ }
225
+ ]
226
+ }
227
+ ]
228
+ },
229
+ {
230
+ "type": "PaywallOptions",
231
+ "attributes": {
232
+ "style": {
233
+ "borderRadius": 12,
234
+ "backgroundColor": "#FFFFFF"
235
+ },
236
+ "description": "Subscription options area.",
237
+ "title": "Option(s)"
238
+ },
239
+ "children": [
240
+ {
241
+ "type": "RadioButton",
242
+ "attributes": {
243
+ "style": {
244
+ "flex": 1
245
+ },
246
+ "description": "Radio item.",
247
+ "title": "Product Radio(s)"
248
+ },
249
+ "children": null
250
+ },
251
+ {
252
+ "type": "text",
253
+ "attributes": {
254
+ "style": {
255
+ "flex": 4,
256
+ "color": "#000"
257
+ },
258
+ "description": "Product description.",
259
+ "title": "Product Desc(s)"
260
+ },
261
+ "children": "@productDescription — Unlock all premium features for a month."
262
+ },
263
+ {
264
+ "type": "text",
265
+ "attributes": {
266
+ "style": {
267
+ "flex": 1,
268
+ "textAlign": "right",
269
+ "color": "#000"
270
+ },
271
+ "description": "Product price.",
272
+ "title": "Product Price(s)"
273
+ },
274
+ "children": "@localizedPrice"
275
+ },
276
+ {
277
+ "type": "BIcon",
278
+ "attributes": {
279
+ "iconType": "chevron-right",
280
+ "size": 16,
281
+ "style": {
282
+ "marginRight": 4,
283
+ "flex": 0,
284
+ "width": 32,
285
+ "color": "#000"
286
+ },
287
+ "description": "Chevron icon.",
288
+ "title": "Product BIcon(s)"
289
+ },
290
+ "children": null
291
+ }
292
+ ]
293
+ },
294
+ {
295
+ "type": "CountDown",
296
+ "attributes": {
297
+ "count": 10000,
298
+ "style": {
299
+ "color": "#FF0000",
300
+ "fontWeight": "700",
301
+ "fontSize": 40,
302
+ "textAlign": "center"
303
+ },
304
+ "description": "Countdown timer (10 seconds).",
305
+ "title": "Countdown"
306
+ },
307
+ "children": null
308
+ },
309
+ {
310
+ "type": "View",
311
+ "attributes": {
312
+ "style": {
313
+ "flex": 1,
314
+ "flexDirection": "column",
315
+ "justifyContent": "flex-end",
316
+ "alignItems": "stretch",
317
+ "paddingBottom": "50px"
318
+ },
319
+ "description": "Subscribe button container.",
320
+ "title": "Subs Container"
321
+ },
322
+ "children": [
323
+ {
324
+ "type": "PaywallSubscribeButton",
325
+ "children": "Subscribe Now",
326
+ "attributes": {
327
+ "description": "Subscription confirm button.",
328
+ "title": "Subscribe"
329
+ }
330
+ }
331
+ ]
332
+ }
333
+ ]
334
+ }
335
+ ]
336
+ }
337
+ ]
338
+ }
339
+ }
@@ -28,7 +28,9 @@
28
28
  "padding": 16,
29
29
  "backgroundColor": "#F5F7FA"
30
30
  },
31
- "scrollable": true
31
+ "scrollable": true,
32
+ "description": "View element 1 in sample.",
33
+ "title": "View 1"
32
34
  },
33
35
  "children": [
34
36
  {
@@ -39,7 +41,9 @@
39
41
  "color": "#111827",
40
42
  "fontSize": 24,
41
43
  "fontWeight": "600"
42
- }
44
+ },
45
+ "description": "Text element 1 in sample.",
46
+ "title": "Text 1"
43
47
  }
44
48
  },
45
49
  {
@@ -50,7 +54,9 @@
50
54
  "color": "#6B7280",
51
55
  "fontSize": 14,
52
56
  "fontWeight": "400"
53
- }
57
+ },
58
+ "description": "Text element 2 in sample.",
59
+ "title": "Text 2"
54
60
  }
55
61
  }
56
62
  ]