@developer_tribe/react-builder 1.2.14 → 1.2.15

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