@developer_tribe/react-builder 1.2.20 → 1.2.22

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 (151) hide show
  1. package/dist/attribute-analyser/style/web/useExtractTextStyle.d.ts +1 -1
  2. package/dist/build-components/BIcon/BIconProps.generated.d.ts +2 -0
  3. package/dist/build-components/BackgroundImage/BackgroundImageProps.generated.d.ts +2 -0
  4. package/dist/build-components/Button/ButtonProps.generated.d.ts +2 -0
  5. package/dist/build-components/Carousel/CarouselProps.generated.d.ts +2 -0
  6. package/dist/build-components/CarouselButtons/CarouselButtonsProps.generated.d.ts +2 -0
  7. package/dist/build-components/CarouselDots/CarouselDotsProps.generated.d.ts +2 -0
  8. package/dist/build-components/CarouselItem/CarouselItemProps.generated.d.ts +2 -0
  9. package/dist/build-components/CarouselProvider/CarouselProviderProps.generated.d.ts +2 -0
  10. package/dist/build-components/CountDown/CountDownProps.generated.d.ts +2 -0
  11. package/dist/build-components/Counter/CounterProps.generated.d.ts +2 -0
  12. package/dist/build-components/Image/ImageProps.generated.d.ts +2 -0
  13. package/dist/build-components/Main/MainProps.generated.d.ts +2 -0
  14. package/dist/build-components/Onboard/OnboardProps.generated.d.ts +2 -0
  15. package/dist/build-components/OnboardButton/OnboardButtonProps.generated.d.ts +2 -0
  16. package/dist/build-components/OnboardButtons/OnboardButtonsProps.generated.d.ts +2 -0
  17. package/dist/build-components/OnboardDot/OnboardDotProps.generated.d.ts +2 -0
  18. package/dist/build-components/OnboardFooter/OnboardFooterProps.generated.d.ts +2 -0
  19. package/dist/build-components/OnboardImage/OnboardImageProps.generated.d.ts +2 -0
  20. package/dist/build-components/OnboardItem/OnboardItemProps.generated.d.ts +2 -0
  21. package/dist/build-components/OnboardProvider/OnboardProviderProps.generated.d.ts +2 -0
  22. package/dist/build-components/OnboardSubtitle/OnboardSubtitleProps.generated.d.ts +2 -0
  23. package/dist/build-components/OnboardTitle/OnboardTitleProps.generated.d.ts +2 -0
  24. package/dist/build-components/PaywallBackground/PaywallBackgroundProps.generated.d.ts +2 -0
  25. package/dist/build-components/PaywallCloseButton/PaywallCloseButtonProps.generated.d.ts +2 -0
  26. package/dist/build-components/PaywallCounter/PaywallCounterProps.generated.d.ts +2 -0
  27. package/dist/build-components/PaywallOptions/PaywallOptionsProps.generated.d.ts +2 -0
  28. package/dist/build-components/PaywallProvider/PaywallProviderProps.generated.d.ts +2 -0
  29. package/dist/build-components/PaywallSubscribeButton/PaywallSubscribeButtonProps.generated.d.ts +2 -0
  30. package/dist/build-components/RadioButton/RadioButtonProps.generated.d.ts +2 -0
  31. package/dist/build-components/Text/TextProps.generated.d.ts +2 -0
  32. package/dist/build-components/View/View.d.ts +1 -1
  33. package/dist/build-components/View/ViewProps.generated.d.ts +2 -0
  34. package/dist/build-components/patterns.generated.d.ts +287 -2
  35. package/dist/components/BuilderButton.d.ts +3 -1
  36. package/dist/index.cjs.js +3 -3
  37. package/dist/index.cjs.js.map +1 -1
  38. package/dist/index.esm.js +4 -4
  39. package/dist/index.esm.js.map +1 -1
  40. package/dist/index.web.cjs.js +4 -4
  41. package/dist/index.web.cjs.js.map +1 -1
  42. package/dist/index.web.esm.js +4 -4
  43. package/dist/index.web.esm.js.map +1 -1
  44. package/dist/store.d.ts +2 -0
  45. package/dist/styles.css +1 -1
  46. package/dist/utils/extractTextStyle/extractTextStyle.d.ts +1 -0
  47. package/package.json +1 -1
  48. package/scripts/migrate-patterns-to-v2.mjs +13 -8
  49. package/scripts/prebuild/icon-generator.js +34 -37
  50. package/src/assets/loading_animation.json +2587 -1
  51. package/src/assets/meta.json +1 -1
  52. package/src/assets/samples/carousel-sample.json +279 -197
  53. package/src/assets/samples/getSamples.ts +16 -1
  54. package/src/assets/samples/paywall-1.json +16 -0
  55. package/src/assets/samples/paywall-2.json +2 -2
  56. package/src/assets/samples/paywall-app-delete-offer.json +353 -0
  57. package/src/assets/samples/paywall-app-open-offer.json +353 -0
  58. package/src/assets/samples/paywall-back-offer.json +353 -0
  59. package/src/assets/samples/paywall-notification-offer.json +353 -0
  60. package/src/assets/samples/vpn-onboard-1.json +23 -12
  61. package/src/assets/samples/vpn-onboard-2.json +23 -12
  62. package/src/assets/samples/vpn-onboard-3.json +23 -12
  63. package/src/assets/samples/vpn-onboard-4.json +23 -12
  64. package/src/assets/samples/vpn-onboard-5.json +23 -12
  65. package/src/assets/samples/vpn-onboard-6.json +23 -12
  66. package/src/attribute-analyser/style/web/useExtractTextStyle.ts +9 -2
  67. package/src/build-components/BIcon/BIconProps.generated.ts +2 -0
  68. package/src/build-components/BackgroundImage/BackgroundImageProps.generated.ts +2 -0
  69. package/src/build-components/Button/ButtonProps.generated.ts +2 -0
  70. package/src/build-components/Carousel/CarouselProps.generated.ts +2 -0
  71. package/src/build-components/Carousel/pattern.json +2 -8
  72. package/src/build-components/CarouselButtons/CarouselButtonsProps.generated.ts +2 -0
  73. package/src/build-components/CarouselButtons/pattern.json +2 -9
  74. package/src/build-components/CarouselDots/CarouselDotsProps.generated.ts +2 -0
  75. package/src/build-components/CarouselDots/pattern.json +1 -3
  76. package/src/build-components/CarouselItem/CarouselItemProps.generated.ts +2 -0
  77. package/src/build-components/CarouselItem/pattern.json +1 -3
  78. package/src/build-components/CarouselProvider/CarouselProvider.tsx +5 -44
  79. package/src/build-components/CarouselProvider/CarouselProviderProps.generated.ts +2 -0
  80. package/src/build-components/CarouselProvider/pattern.json +6 -0
  81. package/src/build-components/CountDown/CountDownProps.generated.ts +2 -0
  82. package/src/build-components/CountDown/pattern.json +0 -1
  83. package/src/build-components/Counter/CounterProps.generated.ts +2 -0
  84. package/src/build-components/Counter/pattern.json +0 -1
  85. package/src/build-components/Image/Image.tsx +1 -1
  86. package/src/build-components/Image/ImageProps.generated.ts +2 -0
  87. package/src/build-components/Main/MainProps.generated.ts +2 -0
  88. package/src/build-components/Main/pattern.json +1 -3
  89. package/src/build-components/Onboard/OnboardProps.generated.ts +2 -0
  90. package/src/build-components/Onboard/pattern.json +2 -6
  91. package/src/build-components/OnboardButton/OnboardButton.tsx +0 -4
  92. package/src/build-components/OnboardButton/OnboardButtonProps.generated.ts +2 -0
  93. package/src/build-components/OnboardButton/pattern.json +9 -14
  94. package/src/build-components/OnboardButtons/OnboardButtons.tsx +17 -20
  95. package/src/build-components/OnboardButtons/OnboardButtonsProps.generated.ts +2 -0
  96. package/src/build-components/OnboardButtons/pattern.json +15 -15
  97. package/src/build-components/OnboardDot/OnboardDot.tsx +0 -3
  98. package/src/build-components/OnboardDot/OnboardDotProps.generated.ts +2 -0
  99. package/src/build-components/OnboardFooter/OnboardFooter.tsx +63 -51
  100. package/src/build-components/OnboardFooter/OnboardFooterProps.generated.ts +2 -0
  101. package/src/build-components/OnboardFooter/pattern.json +6 -3
  102. package/src/build-components/OnboardImage/OnboardImageProps.generated.ts +2 -0
  103. package/src/build-components/OnboardImage/pattern.json +1 -5
  104. package/src/build-components/OnboardItem/OnboardItemProps.generated.ts +2 -0
  105. package/src/build-components/OnboardItem/pattern.json +3 -11
  106. package/src/build-components/OnboardProvider/OnboardProviderProps.generated.ts +2 -0
  107. package/src/build-components/OnboardProvider/pattern.json +2 -8
  108. package/src/build-components/OnboardSubtitle/OnboardSubtitleProps.generated.ts +2 -0
  109. package/src/build-components/OnboardSubtitle/pattern.json +1 -4
  110. package/src/build-components/OnboardTitle/OnboardTitleProps.generated.ts +2 -0
  111. package/src/build-components/OnboardTitle/pattern.json +1 -4
  112. package/src/build-components/PaywallBackground/PaywallBackgroundProps.generated.ts +2 -0
  113. package/src/build-components/PaywallCloseButton/PaywallCloseButtonProps.generated.ts +2 -0
  114. package/src/build-components/PaywallCloseButton/pattern.json +1 -3
  115. package/src/build-components/PaywallCounter/PaywallCounterProps.generated.ts +2 -0
  116. package/src/build-components/PaywallCounter/pattern.json +0 -1
  117. package/src/build-components/PaywallOptions/PaywallOptions.tsx +1 -1
  118. package/src/build-components/PaywallOptions/PaywallOptionsProps.generated.ts +2 -0
  119. package/src/build-components/PaywallOptions/pattern.json +1 -3
  120. package/src/build-components/PaywallProvider/PaywallProviderProps.generated.ts +2 -0
  121. package/src/build-components/PaywallProvider/pattern.json +1 -3
  122. package/src/build-components/PaywallSubscribeButton/PaywallSubscribeButtonProps.generated.ts +2 -0
  123. package/src/build-components/PaywallSubscribeButton/pattern.json +1 -3
  124. package/src/build-components/RadioButton/RadioButtonProps.generated.ts +2 -0
  125. package/src/build-components/RadioButton/pattern.json +1 -3
  126. package/src/build-components/RenderNode.generated.tsx +1 -1
  127. package/src/build-components/Text/TextProps.generated.ts +2 -0
  128. package/src/build-components/View/View.tsx +11 -7
  129. package/src/build-components/View/ViewProps.generated.ts +2 -0
  130. package/src/build-components/View/pattern.json +8 -0
  131. package/src/build-components/patterns.generated.ts +277 -2
  132. package/src/build-components/useNode.ts +2 -2
  133. package/src/components/Builder.tsx +98 -8
  134. package/src/components/BuilderButton.tsx +39 -7
  135. package/src/components/DeviceButton.tsx +5 -1
  136. package/src/pages/DebugJsonPage.tsx +30 -1
  137. package/src/pages/ProjectDebug.tsx +0 -1
  138. package/src/pages/ProjectPage.tsx +2 -2
  139. package/src/store.ts +8 -0
  140. package/src/styles/base/_global.scss +0 -5
  141. package/src/styles/components/_editor-shell.scss +18 -3
  142. package/src/styles/components/_onboard.scss +0 -17
  143. package/src/styles/foundation/_colors.scss +1 -4
  144. package/src/styles/foundation/_typography.scss +0 -1
  145. package/src/styles/layout/_builder.scss +20 -0
  146. package/src/styles/modals/_product-presets-modal.scss +0 -2
  147. package/src/utils/extractTextStyle/extractTextStyle.ts +47 -13
  148. package/src/utils/extractViewStyle/extractViewStyle.ts +118 -39
  149. package/src/utils/logRenderStore.ts +7 -9
  150. package/src/utils/logger.ts +1 -5
  151. package/src/utils/repairNodeKeys.ts +1 -4
@@ -0,0 +1,353 @@
1
+ {
2
+ "name": "Paywall Notification Offer",
3
+ "version": "1.1.2",
4
+ "type": "paywall",
5
+ "appConfig": {
6
+ "theme": "light",
7
+ "isRtl": false,
8
+ "screenStyle": {
9
+ "light": {
10
+ "backgroundColor": "#F9FBF4",
11
+ "color": "#141A12"
12
+ },
13
+ "dark": {
14
+ "backgroundColor": "#0F140F",
15
+ "color": "#E8F2E4"
16
+ }
17
+ },
18
+ "defaultLanguage": "en"
19
+ },
20
+ "data": {
21
+ "type": "Main",
22
+ "isMain": true,
23
+ "attributes": {
24
+ "useSafeAreaView": true,
25
+ "description": "Main container for Notification Offer.",
26
+ "title": "Main"
27
+ },
28
+ "children": [
29
+ {
30
+ "type": "PaywallProvider",
31
+ "attributes": {
32
+ "scrollable": true,
33
+ "delay": 5000,
34
+ "description": "Paywall provider container.",
35
+ "title": "Main Paywall",
36
+ "styles": {
37
+ "flexDirection": "column",
38
+ "alignItems": "stretch",
39
+ "justifyContent": "flex-start",
40
+ "position": "relative",
41
+ "backgroundColor": "#EAF7E5"
42
+ }
43
+ },
44
+ "children": [
45
+ {
46
+ "type": "PaywallBackground",
47
+ "attributes": {
48
+ "src": "https://images.unsplash.com/photo-1469474968028-56623f02e42e?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
+ "styles": {
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
+ "styles": {
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": "text",
85
+ "attributes": {
86
+ "description": "Title text.",
87
+ "title": "Paywall Title",
88
+ "styles": {
89
+ "color": "#FFFFFF",
90
+ "fontWeight": "700",
91
+ "fontSize": 28,
92
+ "textAlign": "center"
93
+ }
94
+ },
95
+ "children": "Notification Offer"
96
+ },
97
+ {
98
+ "type": "View",
99
+ "attributes": {
100
+ "description": "Benefits container.",
101
+ "title": "Benefits",
102
+ "styles": {
103
+ "flexDirection": "column",
104
+ "gap": 4,
105
+ "marginTop": "12%"
106
+ }
107
+ },
108
+ "children": [
109
+ {
110
+ "type": "View",
111
+ "attributes": {
112
+ "description": "Benefit container #1.",
113
+ "title": "Benefit #1",
114
+ "styles": {
115
+ "flexDirection": "row",
116
+ "alignItems": "center",
117
+ "gap": 8,
118
+ "paddingVertical": 8,
119
+ "paddingHorizontal": 12
120
+ }
121
+ },
122
+ "children": [
123
+ {
124
+ "type": "BIcon",
125
+ "attributes": {
126
+ "iconType": "check",
127
+ "strokeWidth": 3,
128
+ "description": "Icon item.",
129
+ "title": "BIcon 1",
130
+ "styles": {
131
+ "color": "#22c55e",
132
+ "fontSize": "16",
133
+ "flex": 0
134
+ }
135
+ },
136
+ "children": null
137
+ },
138
+ {
139
+ "type": "text",
140
+ "attributes": {
141
+ "description": "Text item.",
142
+ "title": "text 1",
143
+ "styles": {
144
+ "flex": 1,
145
+ "color": "#FFFFFF",
146
+ "fontWeight": "700"
147
+ }
148
+ },
149
+ "children": "@benefit1 — Unlimited access"
150
+ }
151
+ ]
152
+ },
153
+ {
154
+ "type": "View",
155
+ "attributes": {
156
+ "description": "Benefit container #2.",
157
+ "title": "Benefit #2",
158
+ "styles": {
159
+ "flexDirection": "row",
160
+ "alignItems": "center",
161
+ "gap": 8,
162
+ "paddingVertical": 8,
163
+ "paddingHorizontal": 12
164
+ }
165
+ },
166
+ "children": [
167
+ {
168
+ "type": "BIcon",
169
+ "attributes": {
170
+ "iconType": "check",
171
+ "strokeWidth": 3,
172
+ "description": "Icon item.",
173
+ "title": "BIcon 2",
174
+ "styles": {
175
+ "color": "#22c55e",
176
+ "fontSize": "16",
177
+ "flex": 0
178
+ }
179
+ },
180
+ "children": null
181
+ },
182
+ {
183
+ "type": "text",
184
+ "attributes": {
185
+ "description": "Text item.",
186
+ "title": "text 2",
187
+ "styles": {
188
+ "flex": 1,
189
+ "color": "#FFFFFF",
190
+ "fontWeight": "700"
191
+ }
192
+ },
193
+ "children": "@benefit2 — 7-day free trial"
194
+ }
195
+ ]
196
+ },
197
+ {
198
+ "type": "View",
199
+ "attributes": {
200
+ "description": "Benefit container #3.",
201
+ "title": "Benefit #3",
202
+ "styles": {
203
+ "flexDirection": "row",
204
+ "alignItems": "center",
205
+ "gap": 8,
206
+ "paddingVertical": 8,
207
+ "paddingHorizontal": 12
208
+ }
209
+ },
210
+ "children": [
211
+ {
212
+ "type": "BIcon",
213
+ "attributes": {
214
+ "iconType": "check",
215
+ "strokeWidth": 3,
216
+ "description": "Icon item.",
217
+ "title": "BIcon 3",
218
+ "styles": {
219
+ "color": "#22c55e",
220
+ "fontSize": "16",
221
+ "flex": 0
222
+ }
223
+ },
224
+ "children": null
225
+ },
226
+ {
227
+ "type": "text",
228
+ "attributes": {
229
+ "description": "Text item.",
230
+ "title": "text 3",
231
+ "styles": {
232
+ "flex": 1,
233
+ "color": "#FFFFFF",
234
+ "fontWeight": "700"
235
+ }
236
+ },
237
+ "children": "@benefit3 — Cancel anytime"
238
+ }
239
+ ]
240
+ }
241
+ ]
242
+ },
243
+ {
244
+ "type": "PaywallOptions",
245
+ "attributes": {
246
+ "description": "Subscription options area.",
247
+ "title": "Option(s)",
248
+ "styles": {
249
+ "borderRadius": 12,
250
+ "backgroundColor": "#FFFFFF"
251
+ }
252
+ },
253
+ "children": [
254
+ {
255
+ "type": "RadioButton",
256
+ "attributes": {
257
+ "description": "Radio item.",
258
+ "title": "Product Radio(s)",
259
+ "styles": {
260
+ "flex": 1
261
+ }
262
+ },
263
+ "children": null
264
+ },
265
+ {
266
+ "type": "text",
267
+ "attributes": {
268
+ "description": "Product description.",
269
+ "title": "Product Desc(s)",
270
+ "styles": {
271
+ "flex": 4,
272
+ "color": "#000"
273
+ }
274
+ },
275
+ "children": "@productDescription — Unlock all premium features for a month."
276
+ },
277
+ {
278
+ "type": "text",
279
+ "attributes": {
280
+ "description": "Product price.",
281
+ "title": "Product Price(s)",
282
+ "styles": {
283
+ "flex": 1,
284
+ "textAlign": "right",
285
+ "color": "#000"
286
+ }
287
+ },
288
+ "children": "@localizedPrice"
289
+ },
290
+ {
291
+ "type": "BIcon",
292
+ "attributes": {
293
+ "iconType": "chevron-right",
294
+ "size": 16,
295
+ "description": "Chevron icon.",
296
+ "title": "Product BIcon(s)",
297
+ "styles": {
298
+ "marginRight": 4,
299
+ "flex": 0,
300
+ "width": 32,
301
+ "color": "#000"
302
+ }
303
+ },
304
+ "children": null
305
+ }
306
+ ]
307
+ },
308
+ {
309
+ "type": "CountDown",
310
+ "attributes": {
311
+ "count": 5000,
312
+ "description": "Countdown timer (5 seconds).",
313
+ "title": "Countdown",
314
+ "styles": {
315
+ "color": "#FF0000",
316
+ "fontWeight": "700",
317
+ "fontSize": 40,
318
+ "textAlign": "center"
319
+ }
320
+ },
321
+ "children": null
322
+ },
323
+ {
324
+ "type": "View",
325
+ "attributes": {
326
+ "description": "Subscribe button container.",
327
+ "title": "Subs Container",
328
+ "styles": {
329
+ "flex": 1,
330
+ "flexDirection": "column",
331
+ "justifyContent": "flex-end",
332
+ "alignItems": "stretch",
333
+ "paddingBottom": "50px"
334
+ }
335
+ },
336
+ "children": [
337
+ {
338
+ "type": "PaywallSubscribeButton",
339
+ "children": "Subscribe Now",
340
+ "attributes": {
341
+ "description": "Subscription confirm button.",
342
+ "title": "Subscribe"
343
+ }
344
+ }
345
+ ]
346
+ }
347
+ ]
348
+ }
349
+ ]
350
+ }
351
+ ]
352
+ }
353
+ }
@@ -484,21 +484,32 @@
484
484
  ]
485
485
  },
486
486
  {
487
- "type": "OnboardFooter",
487
+ "type": "View",
488
488
  "attributes": {
489
- "textLocalizationKey": "view.onboarding.footer.description",
490
- "linkedWordFirstLocalizationKey": "view.onboarding.btnPrivacy",
491
- "linkedWordFirstColor": "#1778F2",
492
- "linkedWordFirstPage": "privacy",
493
- "linkedWordSecondLocalizationKey": "view.onboarding.btnTerms",
494
- "linkedWordSecondColor": "#1778F2",
495
- "linkedWordSecondPage": "terms",
489
+ "title": "Onboard Footer Wrap",
490
+ "description": "Wrapper for OnboardFooter component",
496
491
  "styles": {
497
- "flex": 2,
498
- "gap": 8,
499
- "color": "#A2A4B1"
492
+ "flex": 2
500
493
  }
501
- }
494
+ },
495
+ "children": [
496
+ {
497
+ "type": "OnboardFooter",
498
+ "attributes": {
499
+ "textLocalizationKey": "view.onboarding.footer.description",
500
+ "linkedWordFirstLocalizationKey": "view.onboarding.btnPrivacy",
501
+ "linkedWordFirstColor": "#1778F2",
502
+ "linkedWordFirstPage": "privacy",
503
+ "linkedWordSecondLocalizationKey": "view.onboarding.btnTerms",
504
+ "linkedWordSecondColor": "#1778F2",
505
+ "linkedWordSecondPage": "terms",
506
+ "styles": {
507
+ "gap": 8,
508
+ "color": "#A2A4B1"
509
+ }
510
+ }
511
+ }
512
+ ]
502
513
  }
503
514
  ],
504
515
  "attributes": {
@@ -487,21 +487,32 @@
487
487
  ]
488
488
  },
489
489
  {
490
- "type": "OnboardFooter",
490
+ "type": "View",
491
491
  "attributes": {
492
- "textLocalizationKey": "view.onboarding.footer.description",
493
- "linkedWordFirstLocalizationKey": "view.onboarding.btnPrivacy",
494
- "linkedWordFirstColor": "#1778F2",
495
- "linkedWordFirstPage": "privacy",
496
- "linkedWordSecondLocalizationKey": "view.onboarding.btnTerms",
497
- "linkedWordSecondColor": "#1778F2",
498
- "linkedWordSecondPage": "terms",
492
+ "title": "Onboard Footer Wrap",
493
+ "description": "Wrapper for OnboardFooter component",
499
494
  "styles": {
500
- "flex": 2,
501
- "gap": 8,
502
- "color": "#A2A4B1"
495
+ "flex": 2
503
496
  }
504
- }
497
+ },
498
+ "children": [
499
+ {
500
+ "type": "OnboardFooter",
501
+ "attributes": {
502
+ "textLocalizationKey": "view.onboarding.footer.description",
503
+ "linkedWordFirstLocalizationKey": "view.onboarding.btnPrivacy",
504
+ "linkedWordFirstColor": "#1778F2",
505
+ "linkedWordFirstPage": "privacy",
506
+ "linkedWordSecondLocalizationKey": "view.onboarding.btnTerms",
507
+ "linkedWordSecondColor": "#1778F2",
508
+ "linkedWordSecondPage": "terms",
509
+ "styles": {
510
+ "gap": 8,
511
+ "color": "#A2A4B1"
512
+ }
513
+ }
514
+ }
515
+ ]
505
516
  }
506
517
  ],
507
518
  "attributes": {
@@ -470,21 +470,32 @@
470
470
  ]
471
471
  },
472
472
  {
473
- "type": "OnboardFooter",
473
+ "type": "View",
474
474
  "attributes": {
475
- "textLocalizationKey": "view.onboarding.footer.description",
476
- "linkedWordFirstLocalizationKey": "view.onboarding.btnPrivacy",
477
- "linkedWordFirstColor": "#81838F",
478
- "linkedWordFirstPage": "privacy",
479
- "linkedWordSecondLocalizationKey": "view.onboarding.btnTerms",
480
- "linkedWordSecondColor": "#81838F",
481
- "linkedWordSecondPage": "terms",
475
+ "title": "Onboard Footer Wrap",
476
+ "description": "Wrapper for OnboardFooter component",
482
477
  "styles": {
483
- "flex": 2,
484
- "gap": 8,
485
- "color": "#81838F"
478
+ "flex": 2
486
479
  }
487
- }
480
+ },
481
+ "children": [
482
+ {
483
+ "type": "OnboardFooter",
484
+ "attributes": {
485
+ "textLocalizationKey": "view.onboarding.footer.description",
486
+ "linkedWordFirstLocalizationKey": "view.onboarding.btnPrivacy",
487
+ "linkedWordFirstColor": "#81838F",
488
+ "linkedWordFirstPage": "privacy",
489
+ "linkedWordSecondLocalizationKey": "view.onboarding.btnTerms",
490
+ "linkedWordSecondColor": "#81838F",
491
+ "linkedWordSecondPage": "terms",
492
+ "styles": {
493
+ "gap": 8,
494
+ "color": "#81838F"
495
+ }
496
+ }
497
+ }
498
+ ]
488
499
  }
489
500
  ],
490
501
  "attributes": {
@@ -470,21 +470,32 @@
470
470
  ]
471
471
  },
472
472
  {
473
- "type": "OnboardFooter",
473
+ "type": "View",
474
474
  "attributes": {
475
- "textLocalizationKey": "view.onboarding.footer.description",
476
- "linkedWordFirstLocalizationKey": "view.onboarding.btnPrivacy",
477
- "linkedWordFirstColor": "#81838F",
478
- "linkedWordFirstPage": "privacy",
479
- "linkedWordSecondLocalizationKey": "view.onboarding.btnTerms",
480
- "linkedWordSecondColor": "#81838F",
481
- "linkedWordSecondPage": "terms",
475
+ "title": "Onboard Footer Wrap",
476
+ "description": "Wrapper for OnboardFooter component",
482
477
  "styles": {
483
- "flex": 2,
484
- "gap": 8,
485
- "color": "#81838F"
478
+ "flex": 2
486
479
  }
487
- }
480
+ },
481
+ "children": [
482
+ {
483
+ "type": "OnboardFooter",
484
+ "attributes": {
485
+ "textLocalizationKey": "view.onboarding.footer.description",
486
+ "linkedWordFirstLocalizationKey": "view.onboarding.btnPrivacy",
487
+ "linkedWordFirstColor": "#81838F",
488
+ "linkedWordFirstPage": "privacy",
489
+ "linkedWordSecondLocalizationKey": "view.onboarding.btnTerms",
490
+ "linkedWordSecondColor": "#81838F",
491
+ "linkedWordSecondPage": "terms",
492
+ "styles": {
493
+ "gap": 8,
494
+ "color": "#81838F"
495
+ }
496
+ }
497
+ }
498
+ ]
488
499
  }
489
500
  ],
490
501
  "attributes": {
@@ -670,21 +670,32 @@
670
670
  ]
671
671
  },
672
672
  {
673
- "type": "OnboardFooter",
673
+ "type": "View",
674
674
  "attributes": {
675
- "textLocalizationKey": "view.onboarding.footer.description",
676
- "linkedWordFirstLocalizationKey": "view.onboarding.btnPrivacy",
677
- "linkedWordFirstColor": "#0450E2",
678
- "linkedWordFirstPage": "privacy",
679
- "linkedWordSecondLocalizationKey": "view.onboarding.btnTerms",
680
- "linkedWordSecondColor": "#0450E2",
681
- "linkedWordSecondPage": "terms",
675
+ "title": "Onboard Footer Wrap",
676
+ "description": "Wrapper for OnboardFooter component",
682
677
  "styles": {
683
- "flex": 2,
684
- "gap": 8,
685
- "color": "#A2A4B1"
678
+ "flex": 2
686
679
  }
687
- }
680
+ },
681
+ "children": [
682
+ {
683
+ "type": "OnboardFooter",
684
+ "attributes": {
685
+ "textLocalizationKey": "view.onboarding.footer.description",
686
+ "linkedWordFirstLocalizationKey": "view.onboarding.btnPrivacy",
687
+ "linkedWordFirstColor": "#0450E2",
688
+ "linkedWordFirstPage": "privacy",
689
+ "linkedWordSecondLocalizationKey": "view.onboarding.btnTerms",
690
+ "linkedWordSecondColor": "#0450E2",
691
+ "linkedWordSecondPage": "terms",
692
+ "styles": {
693
+ "gap": 8,
694
+ "color": "#A2A4B1"
695
+ }
696
+ }
697
+ }
698
+ ]
688
699
  }
689
700
  ],
690
701
  "attributes": {
@@ -472,21 +472,32 @@
472
472
  ]
473
473
  },
474
474
  {
475
- "type": "OnboardFooter",
475
+ "type": "View",
476
476
  "attributes": {
477
- "textLocalizationKey": "view.onboarding.footer.description",
478
- "linkedWordFirstLocalizationKey": "view.onboarding.btnPrivacy",
479
- "linkedWordFirstColor": "#0450E2",
480
- "linkedWordFirstPage": "privacy",
481
- "linkedWordSecondLocalizationKey": "view.onboarding.btnTerms",
482
- "linkedWordSecondColor": "#0450E2",
483
- "linkedWordSecondPage": "terms",
477
+ "title": "Onboard Footer Wrap",
478
+ "description": "Wrapper for OnboardFooter component",
484
479
  "styles": {
485
- "flex": 2,
486
- "gap": 8,
487
- "color": "#81838F"
480
+ "flex": 2
488
481
  }
489
- }
482
+ },
483
+ "children": [
484
+ {
485
+ "type": "OnboardFooter",
486
+ "attributes": {
487
+ "textLocalizationKey": "view.onboarding.footer.description",
488
+ "linkedWordFirstLocalizationKey": "view.onboarding.btnPrivacy",
489
+ "linkedWordFirstColor": "#0450E2",
490
+ "linkedWordFirstPage": "privacy",
491
+ "linkedWordSecondLocalizationKey": "view.onboarding.btnTerms",
492
+ "linkedWordSecondColor": "#0450E2",
493
+ "linkedWordSecondPage": "terms",
494
+ "styles": {
495
+ "gap": 8,
496
+ "color": "#81838F"
497
+ }
498
+ }
499
+ }
500
+ ]
490
501
  }
491
502
  ],
492
503
  "attributes": {
@@ -8,6 +8,7 @@ import { extractTextStyle } from '../../../utils/extractTextStyle';
8
8
 
9
9
  export function useExtractTextStyle<T extends TextPropsGenerated['attributes']>(
10
10
  node: NodeData<T>,
11
+ directlyTextStyle = false,
11
12
  ): CSSProperties {
12
13
  const {
13
14
  appConfig: builderAppConfig,
@@ -20,8 +21,14 @@ export function useExtractTextStyle<T extends TextPropsGenerated['attributes']>(
20
21
  const fonts = builderFonts;
21
22
 
22
23
  return useMemo(
23
- () => extractTextStyle(node, { appConfig, projectColors, fonts }),
24
+ () =>
25
+ extractTextStyle(node, {
26
+ appConfig,
27
+ projectColors,
28
+ fonts,
29
+ directlyTextStyle,
30
+ }),
24
31
  // fonts is intentionally included: extractTextStyle resolves weights via font definitions.
25
- [node, appConfig, projectColors, fonts],
32
+ [node, appConfig, projectColors, fonts, directlyTextStyle],
26
33
  );
27
34
  }
@@ -4,6 +4,7 @@ import type { NodeData } from '../../types/Node';
4
4
 
5
5
  export type TextAlignOptionType = 'left' | 'center' | 'right' | 'justify';
6
6
  export type FlexDirectionOptionType = 'row' | 'column';
7
+ export type FlexWrapOptionType = 'nowrap' | 'wrap' | 'wrap-reverse';
7
8
  export type AlignItemsOptionType =
8
9
  | 'flex-start'
9
10
  | 'center'
@@ -26,6 +27,7 @@ export interface BIconStyleGenerated {
26
27
  fontWeight?: string;
27
28
  textAlign?: TextAlignOptionType;
28
29
  flexDirection?: FlexDirectionOptionType;
30
+ flexWrap?: FlexWrapOptionType;
29
31
  alignItems?: AlignItemsOptionType;
30
32
  justifyContent?: JustifyContentOptionType;
31
33
  gap?: string;