@developer_tribe/react-builder 1.2.45 → 1.2.47

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 (83) hide show
  1. package/dist/attributes-editor/Field.d.ts +3 -1
  2. package/dist/attributes-editor/attributesEditorModelTypes.d.ts +3 -0
  3. package/dist/attributes-editor/useAttributesEditorModel.d.ts +1 -1
  4. package/dist/build-components/FormSubmitButton/FormSubmitButtonProps.generated.d.ts +8 -3
  5. package/dist/build-components/GlobalProvider/GlobalContext.d.ts +28 -0
  6. package/dist/build-components/GlobalProvider/GlobalProvider.d.ts +5 -0
  7. package/dist/build-components/GlobalProvider/GlobalProviderProps.generated.d.ts +60 -0
  8. package/dist/build-components/GlobalProvider/globalProviderUtils.d.ts +28 -0
  9. package/dist/build-components/GlobalProvider/useGlobalNavigation.d.ts +19 -0
  10. package/dist/build-components/GlobalProvider/useGlobalProviderLogic.d.ts +15 -0
  11. package/dist/build-components/OnboardButton/OnboardButtonProps.generated.d.ts +8 -3
  12. package/dist/build-components/OnboardProvider/OnboardProviderProps.generated.d.ts +2 -0
  13. package/dist/build-components/PaywallProvider/PaywallProviderProps.generated.d.ts +2 -0
  14. package/dist/build-components/SystemButton/SystemButtonProps.generated.d.ts +8 -3
  15. package/dist/build-components/SystemButton/usePlacementButtonEvents.d.ts +15 -2
  16. package/dist/build-components/TermsProvider/TermsProvider.d.ts +5 -0
  17. package/dist/build-components/TermsProvider/TermsProviderProps.generated.d.ts +55 -0
  18. package/dist/build-components/index.d.ts +3 -1
  19. package/dist/build-components/patterns.generated.d.ts +2128 -1333
  20. package/dist/index.cjs.js +3 -3
  21. package/dist/index.cjs.js.map +1 -1
  22. package/dist/index.esm.js +3 -3
  23. package/dist/index.esm.js.map +1 -1
  24. package/dist/index.web.cjs.js +3 -3
  25. package/dist/index.web.cjs.js.map +1 -1
  26. package/dist/index.web.esm.js +3 -3
  27. package/dist/index.web.esm.js.map +1 -1
  28. package/dist/styles.css +1 -1
  29. package/dist/utils/nodeTree.d.ts +18 -0
  30. package/package.json +1 -1
  31. package/scripts/prebuild/utils/validateAllComponentsOrThrow.js +68 -4
  32. package/src/assets/meta.json +1 -1
  33. package/src/assets/prompt-scheme-onboard.generated.ts +1 -1
  34. package/src/assets/prompt-scheme-paywall.generated.ts +1 -1
  35. package/src/assets/samples/getSamples.ts +2 -0
  36. package/src/assets/samples/global-onboard-flow.json +735 -0
  37. package/src/assets/samples/terms-and-privacy-no-form.json +1 -1
  38. package/src/assets/samples/terms-and-privacy.json +1 -1
  39. package/src/attributes-editor/AttributesEditorView.tsx +3 -0
  40. package/src/attributes-editor/Field.tsx +91 -2
  41. package/src/attributes-editor/attributesEditorModelTypes.ts +3 -0
  42. package/src/attributes-editor/useAttributesEditorModel.ts +8 -0
  43. package/src/build-components/FormCheckbox/FormCheckbox.tsx +3 -3
  44. package/src/build-components/FormSubmitButton/FormSubmitButton.tsx +6 -0
  45. package/src/build-components/FormSubmitButton/FormSubmitButtonProps.generated.ts +26 -3
  46. package/src/build-components/GlobalProvider/GlobalContext.ts +48 -0
  47. package/src/build-components/GlobalProvider/GlobalProvider.tsx +51 -0
  48. package/src/build-components/GlobalProvider/GlobalProviderProps.generated.ts +78 -0
  49. package/src/build-components/GlobalProvider/globalProviderUtils.ts +204 -0
  50. package/src/build-components/GlobalProvider/pattern.json +55 -0
  51. package/src/build-components/GlobalProvider/useGlobalNavigation.ts +65 -0
  52. package/src/build-components/GlobalProvider/useGlobalProviderLogic.ts +172 -0
  53. package/src/build-components/OnboardButton/OnboardButton.tsx +8 -1
  54. package/src/build-components/OnboardButton/OnboardButtonProps.generated.ts +26 -3
  55. package/src/build-components/OnboardButton/pattern.json +5 -3
  56. package/src/build-components/OnboardProvider/OnboardProviderProps.generated.ts +12 -0
  57. package/src/build-components/OnboardProvider/pattern.json +9 -1
  58. package/src/build-components/PaywallProvider/PaywallProviderProps.generated.ts +12 -0
  59. package/src/build-components/PaywallProvider/pattern.json +9 -1
  60. package/src/build-components/RenderNode.generated.tsx +10 -0
  61. package/src/build-components/SystemButton/SystemButton.tsx +6 -0
  62. package/src/build-components/SystemButton/SystemButtonProps.generated.ts +26 -3
  63. package/src/build-components/SystemButton/pattern.json +5 -3
  64. package/src/build-components/SystemButton/usePlacementButtonEvents.ts +51 -27
  65. package/src/build-components/TermsProvider/TermsProvider.tsx +45 -0
  66. package/src/build-components/TermsProvider/TermsProviderProps.generated.ts +82 -0
  67. package/src/build-components/TermsProvider/pattern.json +35 -0
  68. package/src/build-components/index.ts +10 -0
  69. package/src/build-components/patterns.generated.ts +2290 -1399
  70. package/src/components/AttributesEditorPanel.tsx +1 -0
  71. package/src/modals/CreateDeviceModal.tsx +12 -2
  72. package/src/modals/DeviceSelectorModal.tsx +1 -1
  73. package/src/patterns/event-constants.json +19 -0
  74. package/src/product-base/calculations.ts +30 -1
  75. package/src/product-base/extractAndroidParams.ts +2 -3
  76. package/src/product-base/extractIOSParams.ts +4 -4
  77. package/src/product-base/mockProducts.json +102 -0
  78. package/src/styles/components/_global-provider.scss +131 -0
  79. package/src/styles/index.scss +1 -0
  80. package/src/utils/analyseNodeByPatterns.ts +5 -2
  81. package/src/utils/nodeTree.ts +115 -0
  82. package/src/.DS_Store +0 -0
  83. package/src/assets/.DS_Store +0 -0
@@ -0,0 +1,735 @@
1
+ {
2
+ "name": "Global Onboard Flow",
3
+ "version": "1.1.2",
4
+ "type": "other",
5
+ "data": {
6
+ "type": "Main",
7
+ "isMain": true,
8
+ "attributes": {
9
+ "useSafeAreaView": true,
10
+ "description": "GlobalProvider flow: Terms → Onboard → Paywall",
11
+ "title": "Main",
12
+ "styles": {
13
+ "flex": 1,
14
+ "backgroundColor": "THEME_COLORS.BACKGROUND"
15
+ },
16
+ "testID": "GlobalFlow-Main"
17
+ },
18
+ "children": {
19
+ "type": "GlobalProvider",
20
+ "key": "main-global-onboard-flow",
21
+ "attributes": {
22
+ "initialPage": "terms",
23
+ "persistProgress": true,
24
+ "skipConditions": [
25
+ { "pageKey": "terms", "conditionKey": "termsAccepted" }
26
+ ],
27
+ "testID": "GlobalFlow-Provider"
28
+ },
29
+ "children": [
30
+ {
31
+ "type": "TermsProvider",
32
+ "key": "terms",
33
+ "attributes": {
34
+ "description": "Terms and Privacy page",
35
+ "title": "TermsProvider",
36
+ "styles": {
37
+ "flex": 1,
38
+ "backgroundColor": "THEME_COLORS.BACKGROUND"
39
+ },
40
+ "testID": "GlobalFlow-Terms"
41
+ },
42
+ "children": [
43
+ {
44
+ "type": "View",
45
+ "attributes": {
46
+ "description": "Header",
47
+ "styles": {
48
+ "padding": 16,
49
+ "alignItems": "stretch",
50
+ "borderBottomWidth": 1,
51
+ "borderBottomColor": "THEME_COLORS.LINE",
52
+ "backgroundColor": "THEME_COLORS.BACKGROUND"
53
+ }
54
+ },
55
+ "children": [
56
+ {
57
+ "type": "Text",
58
+ "children": "view.terms.header.title",
59
+ "attributes": {
60
+ "styles": {
61
+ "fontSize": 20,
62
+ "fontWeight": "700",
63
+ "color": "THEME_COLORS.TEXT"
64
+ }
65
+ }
66
+ }
67
+ ]
68
+ },
69
+ {
70
+ "type": "WebView",
71
+ "attributes": {
72
+ "iosUrl": "https://stage.vpn111.net/page/ios/privacy",
73
+ "androidUrl": "https://stage.vpn111.net/page/android/privacy",
74
+ "styles": {
75
+ "flex": 1,
76
+ "backgroundColor": "THEME_COLORS.BACKGROUND"
77
+ },
78
+ "testID": "GlobalFlow-Terms-WebView"
79
+ }
80
+ },
81
+ {
82
+ "type": "View",
83
+ "attributes": {
84
+ "description": "Footer",
85
+ "styles": {
86
+ "padding": 20,
87
+ "backgroundColor": "THEME_COLORS.BACKGROUND",
88
+ "borderTopWidth": 1,
89
+ "borderTopColor": "THEME_COLORS.LINE",
90
+ "gap": 16
91
+ }
92
+ },
93
+ "children": [
94
+ {
95
+ "type": "FormProvider",
96
+ "attributes": {
97
+ "defaultValues": "{\"termsAccepted\": false}",
98
+ "validationErrorMessageKey": "view.terms.error.must_accept"
99
+ },
100
+ "children": [
101
+ {
102
+ "type": "FormCheckbox",
103
+ "attributes": {
104
+ "name": "termsAccepted",
105
+ "validation": ["required"],
106
+ "checked": false,
107
+ "label": "view.terms.checkbox.label",
108
+ "checkedColor": "THEME_COLORS.CHECKBOX_ACTIVE_COLOR",
109
+ "styles": {
110
+ "marginBottom": 8
111
+ },
112
+ "testID": "GlobalFlow-Terms-Checkbox"
113
+ }
114
+ },
115
+ {
116
+ "type": "FormErrorText",
117
+ "attributes": {
118
+ "styles": {
119
+ "marginBottom": 8
120
+ },
121
+ "testID": "GlobalFlow-Terms-FormErrorText"
122
+ }
123
+ },
124
+ {
125
+ "type": "FormSubmitButton",
126
+ "attributes": {
127
+ "labelKey": "view.terms.accept.button",
128
+ "validationRequired": true,
129
+ "disableIfUnvalidated": true,
130
+ "events": [
131
+ {
132
+ "type": "SetCondition",
133
+ "conditionKey": "termsAccepted",
134
+ "value": true
135
+ },
136
+ {
137
+ "type": "Navigate",
138
+ "placementKey": "onboard"
139
+ }
140
+ ],
141
+ "styles": {
142
+ "backgroundColor": "STATIC_COLORS.ONBOARD_BUTTON_PRIMARY_BACKGROUND",
143
+ "color": "#FFFFFF",
144
+ "height": 48,
145
+ "borderRadius": 8,
146
+ "alignItems": "center",
147
+ "justifyContent": "center",
148
+ "fontWeight": "600"
149
+ },
150
+ "testID": "GlobalFlow-Terms-AcceptButton"
151
+ }
152
+ }
153
+ ]
154
+ }
155
+ ]
156
+ }
157
+ ]
158
+ },
159
+ {
160
+ "type": "OnboardProvider",
161
+ "key": "onboard",
162
+ "attributes": {
163
+ "theme": "dark",
164
+ "description": "Onboard page",
165
+ "title": "OnboardProvider",
166
+ "animation": "slide_from_bottom",
167
+ "testID": "GlobalFlow-OnboardProvider"
168
+ },
169
+ "children": [
170
+ {
171
+ "type": "Onboard",
172
+ "attributes": {
173
+ "description": "Onboard slides",
174
+ "title": "Onboard",
175
+ "styles": {
176
+ "flex": 1
177
+ },
178
+ "testID": "GlobalFlow-Onboard"
179
+ },
180
+ "children": [
181
+ {
182
+ "type": "OnboardItem",
183
+ "key": "global-onboard-page1",
184
+ "attributes": {
185
+ "description": "Slide 1",
186
+ "title": "OnboardItem 1",
187
+ "testID": "GlobalFlow-OnboardItem-1"
188
+ },
189
+ "children": [
190
+ {
191
+ "type": "OnboardTitle",
192
+ "attributes": {
193
+ "styles": {
194
+ "color": "THEME_COLORS.ONBOARD_TITLE",
195
+ "textAlign": "center",
196
+ "marginTop": 40
197
+ },
198
+ "testID": "GlobalFlow-OnboardTitle-1"
199
+ },
200
+ "children": "base.onboard.title.one-page"
201
+ },
202
+ {
203
+ "type": "OnboardSubtitle",
204
+ "attributes": {
205
+ "styles": {
206
+ "color": "THEME_COLORS.ONBOARD_SUBTITLE",
207
+ "fontSize": 16,
208
+ "textAlign": "center"
209
+ },
210
+ "testID": "GlobalFlow-OnboardSubtitle-1"
211
+ },
212
+ "children": "base.onboard.subtitle.one-page"
213
+ }
214
+ ]
215
+ },
216
+ {
217
+ "type": "OnboardItem",
218
+ "key": "global-onboard-page2",
219
+ "attributes": {
220
+ "description": "Slide 2",
221
+ "title": "OnboardItem 2",
222
+ "testID": "GlobalFlow-OnboardItem-2"
223
+ },
224
+ "children": [
225
+ {
226
+ "type": "OnboardTitle",
227
+ "attributes": {
228
+ "styles": {
229
+ "color": "THEME_COLORS.ONBOARD_TITLE",
230
+ "textAlign": "center",
231
+ "marginTop": 40
232
+ },
233
+ "testID": "GlobalFlow-OnboardTitle-2"
234
+ },
235
+ "children": "base.onboard.title.two-page"
236
+ },
237
+ {
238
+ "type": "OnboardSubtitle",
239
+ "attributes": {
240
+ "styles": {
241
+ "color": "THEME_COLORS.ONBOARD_SUBTITLE",
242
+ "fontSize": 16,
243
+ "textAlign": "center"
244
+ },
245
+ "testID": "GlobalFlow-OnboardSubtitle-2"
246
+ },
247
+ "children": "base.onboard.subtitle.two-page"
248
+ }
249
+ ]
250
+ }
251
+ ]
252
+ },
253
+ {
254
+ "type": "OnboardDot",
255
+ "attributes": {
256
+ "dotType": "expanding_dot",
257
+ "dot_thickness": 20,
258
+ "inactive_dot_opacity": 0.3,
259
+ "inactive_dot_color": "STATIC_COLORS.ONBOARD_DOT_INACTIVE",
260
+ "active_dot_color": "STATIC_COLORS.ONBOARD_DOT_ACTIVE",
261
+ "styles": {
262
+ "paddingVertical": 12
263
+ },
264
+ "testID": "GlobalFlow-OnboardDot"
265
+ }
266
+ },
267
+ {
268
+ "type": "OnboardButtons",
269
+ "attributes": {
270
+ "buttons_direction": "row",
271
+ "condition": "carousel-index",
272
+ "conditionVariable": 0,
273
+ "description": "Slide 1 buttons",
274
+ "title": "OnboardButtons 1",
275
+ "styles": {
276
+ "height": 40,
277
+ "marginVertical": 12,
278
+ "flexShrink": 0
279
+ },
280
+ "testID": "GlobalFlow-OnboardButtons-1"
281
+ },
282
+ "children": [
283
+ {
284
+ "type": "OnboardButton",
285
+ "attributes": {
286
+ "labelKey": "base.onboard.skip.one-page",
287
+ "events": [
288
+ {
289
+ "type": "Navigate",
290
+ "navigate_to": null,
291
+ "targetIndex": 1
292
+ }
293
+ ],
294
+ "styles": {
295
+ "flex": 1,
296
+ "color": "THEME_COLORS.ONBOARD_BUTTON_SECONDARY_TEXT",
297
+ "backgroundColor": "STATIC_COLORS.TRANSPARENT"
298
+ },
299
+ "testID": "onboardSkip"
300
+ }
301
+ },
302
+ {
303
+ "type": "OnboardButton",
304
+ "attributes": {
305
+ "labelKey": "base.onboard.next.one-page",
306
+ "events": [
307
+ {
308
+ "type": "Navigate",
309
+ "navigate_to": null,
310
+ "targetIndex": 1
311
+ }
312
+ ],
313
+ "styles": {
314
+ "flex": 1,
315
+ "color": "STATIC_COLORS.WHITE",
316
+ "backgroundColor": "STATIC_COLORS.ONBOARD_BUTTON_PRIMARY_BACKGROUND"
317
+ },
318
+ "testID": "onboardNext"
319
+ }
320
+ }
321
+ ]
322
+ },
323
+ {
324
+ "type": "OnboardButtons",
325
+ "attributes": {
326
+ "buttons_direction": "row",
327
+ "condition": "carousel-index",
328
+ "conditionVariable": 1,
329
+ "description": "Slide 2 buttons (last) — navigate to paywall",
330
+ "title": "OnboardButtons 2",
331
+ "styles": {
332
+ "height": 40,
333
+ "marginVertical": 12,
334
+ "flexShrink": 0
335
+ },
336
+ "testID": "GlobalFlow-OnboardButtons-2"
337
+ },
338
+ "children": [
339
+ {
340
+ "type": "OnboardButton",
341
+ "attributes": {
342
+ "labelKey": "base.onboard.allow.four-page",
343
+ "events": [
344
+ {
345
+ "type": "Permission",
346
+ "permission": "notification"
347
+ },
348
+ {
349
+ "type": "Navigate",
350
+ "placementKey": "paywall"
351
+ }
352
+ ],
353
+ "styles": {
354
+ "flex": 1,
355
+ "color": "STATIC_COLORS.WHITE",
356
+ "backgroundColor": "STATIC_COLORS.ONBOARD_BUTTON_PRIMARY_BACKGROUND"
357
+ },
358
+ "testID": "onboardNext"
359
+ }
360
+ }
361
+ ]
362
+ }
363
+ ]
364
+ },
365
+ {
366
+ "type": "PaywallProvider",
367
+ "key": "paywall",
368
+ "attributes": {
369
+ "scrollable": true,
370
+ "description": "Paywall page",
371
+ "title": "PaywallProvider",
372
+ "animation": "none",
373
+ "styles": {
374
+ "flexDirection": "column",
375
+ "alignItems": "stretch",
376
+ "justifyContent": "flex-start",
377
+ "position": "relative",
378
+ "backgroundColor": "THEME_COLORS.BACKGROUND"
379
+ },
380
+ "testID": "GlobalFlow-PaywallProvider"
381
+ },
382
+ "children": [
383
+ {
384
+ "type": "PaywallBackground",
385
+ "attributes": {
386
+ "src": "https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=1200&q=80",
387
+ "resizeMode": "cover",
388
+ "description": "Paywall arka planı",
389
+ "testID": "GlobalFlow-PaywallBackground"
390
+ },
391
+ "children": null
392
+ },
393
+ {
394
+ "type": "View",
395
+ "attributes": {
396
+ "title": "Paywall Inner",
397
+ "styles": {
398
+ "paddingTop": 56,
399
+ "paddingHorizontal": 16,
400
+ "paddingBottom": 16,
401
+ "gap": 12,
402
+ "flex": 1
403
+ },
404
+ "testID": "GlobalFlow-Paywall-Inner"
405
+ },
406
+ "children": [
407
+ {
408
+ "type": "PaywallCloseButton",
409
+ "attributes": {
410
+ "styles": {
411
+ "width": 32,
412
+ "height": 32,
413
+ "borderRadius": 16,
414
+ "backgroundColor": "STATIC_COLORS.WHITE",
415
+ "color": "STATIC_COLORS.BLACK",
416
+ "zIndex": 10,
417
+ "alignItems": "center",
418
+ "justifyContent": "center"
419
+ },
420
+ "testID": "GlobalFlow-PaywallCloseButton"
421
+ },
422
+ "children": null
423
+ },
424
+ {
425
+ "type": "View",
426
+ "attributes": {
427
+ "description": "Benefits",
428
+ "title": "Benefits",
429
+ "styles": {
430
+ "flexDirection": "column",
431
+ "gap": 0,
432
+ "marginTop": "4%"
433
+ },
434
+ "testID": "GlobalFlow-Paywall-Benefits"
435
+ },
436
+ "children": [
437
+ {
438
+ "type": "View",
439
+ "attributes": {
440
+ "title": "Benefit #1",
441
+ "styles": {
442
+ "flexDirection": "row",
443
+ "alignItems": "center",
444
+ "gap": 8,
445
+ "paddingVertical": 8,
446
+ "paddingHorizontal": 12
447
+ },
448
+ "testID": "GlobalFlow-Benefit-1"
449
+ },
450
+ "children": [
451
+ {
452
+ "type": "BIcon",
453
+ "attributes": {
454
+ "iconType": "check",
455
+ "strokeWidth": 3,
456
+ "styles": {
457
+ "color": "THEME_COLORS.ICON",
458
+ "fontSize": "16",
459
+ "flex": 0
460
+ },
461
+ "testID": "GlobalFlow-BIcon-1"
462
+ },
463
+ "children": null
464
+ },
465
+ {
466
+ "type": "Text",
467
+ "attributes": {
468
+ "styles": {
469
+ "flex": 1,
470
+ "color": "STATIC_COLORS.WHITE",
471
+ "fontWeight": "700"
472
+ },
473
+ "testID": "GlobalFlow-BenefitText-1"
474
+ },
475
+ "children": "@benefit1 — Unlimited access"
476
+ }
477
+ ]
478
+ },
479
+ {
480
+ "type": "View",
481
+ "attributes": {
482
+ "title": "Benefit #2",
483
+ "styles": {
484
+ "flexDirection": "row",
485
+ "alignItems": "center",
486
+ "gap": 8,
487
+ "paddingVertical": 8,
488
+ "paddingHorizontal": 12
489
+ },
490
+ "testID": "GlobalFlow-Benefit-2"
491
+ },
492
+ "children": [
493
+ {
494
+ "type": "BIcon",
495
+ "attributes": {
496
+ "iconType": "check",
497
+ "strokeWidth": 3,
498
+ "styles": {
499
+ "color": "THEME_COLORS.ICON",
500
+ "fontSize": "16",
501
+ "flex": 0
502
+ },
503
+ "testID": "GlobalFlow-BIcon-2"
504
+ },
505
+ "children": null
506
+ },
507
+ {
508
+ "type": "Text",
509
+ "attributes": {
510
+ "styles": {
511
+ "flex": 1,
512
+ "color": "STATIC_COLORS.WHITE",
513
+ "fontWeight": "700"
514
+ },
515
+ "testID": "GlobalFlow-BenefitText-2"
516
+ },
517
+ "children": "@benefit2 — 7-day free trial"
518
+ }
519
+ ]
520
+ },
521
+ {
522
+ "type": "View",
523
+ "attributes": {
524
+ "title": "Benefit #3",
525
+ "styles": {
526
+ "flexDirection": "row",
527
+ "alignItems": "center",
528
+ "gap": 8,
529
+ "paddingVertical": 8,
530
+ "paddingHorizontal": 12
531
+ },
532
+ "testID": "GlobalFlow-Benefit-3"
533
+ },
534
+ "children": [
535
+ {
536
+ "type": "BIcon",
537
+ "attributes": {
538
+ "iconType": "check",
539
+ "strokeWidth": 3,
540
+ "styles": {
541
+ "color": "THEME_COLORS.ICON",
542
+ "fontSize": "16",
543
+ "flex": 0
544
+ },
545
+ "testID": "GlobalFlow-BIcon-3"
546
+ },
547
+ "children": null
548
+ },
549
+ {
550
+ "type": "Text",
551
+ "attributes": {
552
+ "styles": {
553
+ "flex": 1,
554
+ "color": "STATIC_COLORS.WHITE",
555
+ "fontWeight": "700"
556
+ },
557
+ "testID": "GlobalFlow-BenefitText-3"
558
+ },
559
+ "children": "@benefit3 — Cancel anytime"
560
+ }
561
+ ]
562
+ }
563
+ ]
564
+ },
565
+ {
566
+ "type": "PaywallOptions",
567
+ "attributes": {
568
+ "description": "Abonelik seçenekleri",
569
+ "styles": {
570
+ "borderRadius": 12,
571
+ "backgroundColor": "THEME_COLORS.BACKGROUND"
572
+ },
573
+ "testID": "GlobalFlow-PaywallOptions"
574
+ },
575
+ "children": [
576
+ {
577
+ "type": "RadioButton",
578
+ "attributes": {
579
+ "title": "Product Radio(s)",
580
+ "styles": { "flex": 1 },
581
+ "testID": "GlobalFlow-RadioButton"
582
+ },
583
+ "children": null
584
+ },
585
+ {
586
+ "type": "Text",
587
+ "attributes": {
588
+ "title": "Product Desc(s)",
589
+ "styles": { "flex": 6 },
590
+ "testID": "GlobalFlow-ProductDesc"
591
+ },
592
+ "children": "@productDescription"
593
+ },
594
+ {
595
+ "type": "View",
596
+ "attributes": {
597
+ "title": "Price Column",
598
+ "styles": {
599
+ "flexDirection": "column",
600
+ "flex": 2,
601
+ "alignItems": "flex-end"
602
+ },
603
+ "testID": "GlobalFlow-PriceColumn"
604
+ },
605
+ "children": [
606
+ {
607
+ "type": "PriceTag",
608
+ "attributes": {
609
+ "title": "Promo Price",
610
+ "styles": {
611
+ "textAlign": "right",
612
+ "fontWeight": "700"
613
+ },
614
+ "testID": "GlobalFlow-PriceTag-Promo"
615
+ },
616
+ "children": "@localizedCalculatedPrice"
617
+ },
618
+ {
619
+ "type": "PriceTag",
620
+ "attributes": {
621
+ "title": "Original Price",
622
+ "hideIfItsNotDiscount": true,
623
+ "styles": {
624
+ "textAlign": "right",
625
+ "textDecorationLine": "line-through",
626
+ "fontSize": "12@fs",
627
+ "fontWeight": "400",
628
+ "color": "#999999"
629
+ },
630
+ "testID": "GlobalFlow-PriceTag-Original"
631
+ },
632
+ "children": "@localizedPrice"
633
+ }
634
+ ]
635
+ },
636
+ {
637
+ "type": "BIcon",
638
+ "attributes": {
639
+ "iconType": "chevron-right",
640
+ "size": 16,
641
+ "title": "Product BIcon(s)",
642
+ "styles": {
643
+ "marginRight": 4,
644
+ "flex": 0,
645
+ "width": 32,
646
+ "color": "STATIC_COLORS.BLACK"
647
+ },
648
+ "testID": "GlobalFlow-Chevron"
649
+ },
650
+ "children": null
651
+ }
652
+ ]
653
+ },
654
+ {
655
+ "type": "View",
656
+ "attributes": {
657
+ "description": "Subscription button container",
658
+ "title": "Subs Container",
659
+ "styles": {
660
+ "flex": 1,
661
+ "flexDirection": "column",
662
+ "justifyContent": "flex-end",
663
+ "alignItems": "stretch",
664
+ "gap": 8,
665
+ "paddingBottom": "50px"
666
+ },
667
+ "testID": "GlobalFlow-SubsContainer"
668
+ },
669
+ "children": [
670
+ {
671
+ "type": "Pricing",
672
+ "attributes": {
673
+ "description": "Pricing breakdown",
674
+ "title": "Pricing Detail",
675
+ "testID": "GlobalFlow-Pricing"
676
+ },
677
+ "children": "@baseLocalizedPricingText"
678
+ },
679
+ {
680
+ "type": "Text",
681
+ "attributes": {
682
+ "title": "Trial Full",
683
+ "styles": {
684
+ "textAlign": "center",
685
+ "fontSize": 12,
686
+ "color": "rgba(255,255,255,0.6)"
687
+ },
688
+ "testID": "GlobalFlow-TrialText"
689
+ },
690
+ "children": "@trialPeriod days free, then @price/@period"
691
+ },
692
+ {
693
+ "type": "PaywallSubscribeButton",
694
+ "children": "@subscribe",
695
+ "attributes": {
696
+ "title": "Subscribe",
697
+ "testID": "GlobalFlow-SubscribeButton"
698
+ }
699
+ },
700
+ {
701
+ "type": "Promo",
702
+ "attributes": {
703
+ "description": "Discount badge",
704
+ "title": "Promo Badge",
705
+ "testID": "GlobalFlow-Promo"
706
+ },
707
+ "children": "@baseLocalizedPromoText"
708
+ },
709
+ {
710
+ "type": "PaywallFooter",
711
+ "attributes": {
712
+ "textLocalizationKey": "base.builder.paywall.footer.description",
713
+ "linkedWordFirstLocalizationKey": "base.builder.paywall.btnPrivacy",
714
+ "linkedWordFirstColor": "STATIC_COLORS.ONBOARD_LINK_COLOR",
715
+ "linkedWordFirstPage": "privacy",
716
+ "linkedWordSecondLocalizationKey": "base.builder.paywall.btnTerms",
717
+ "linkedWordSecondColor": "STATIC_COLORS.ONBOARD_LINK_COLOR",
718
+ "linkedWordSecondPage": "terms",
719
+ "styles": {
720
+ "gap": 8,
721
+ "color": "THEME_COLORS.ONBOARD_FOOTER_TEXT"
722
+ },
723
+ "testID": "GlobalFlow-PaywallFooter"
724
+ }
725
+ }
726
+ ]
727
+ }
728
+ ]
729
+ }
730
+ ]
731
+ }
732
+ ]
733
+ }
734
+ }
735
+ }