@developer_tribe/react-builder 1.2.19 → 1.2.21

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 (162) 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 +4 -1
  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 +310 -10
  35. package/dist/components/BuilderButton.d.ts +3 -1
  36. package/dist/index.cjs.js +4 -4
  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 +6 -6
  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 +281 -199
  53. package/src/assets/samples/getSamples.ts +16 -1
  54. package/src/assets/samples/paywall-1.json +93 -77
  55. package/src/assets/samples/paywall-2.json +77 -77
  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/simple-1.json +13 -13
  61. package/src/assets/samples/simple-2.json +97 -97
  62. package/src/assets/samples/unmigrated-builder-1.1.1.json +25 -25
  63. package/src/assets/samples/unmigrated-builder1.json +1 -1
  64. package/src/assets/samples/unvalidated-builder1.json +15 -15
  65. package/src/assets/samples/unvalidated-crash1.json +4 -4
  66. package/src/assets/samples/vpn-onboard-1.json +122 -89
  67. package/src/assets/samples/vpn-onboard-2.json +119 -86
  68. package/src/assets/samples/vpn-onboard-3.json +125 -90
  69. package/src/assets/samples/vpn-onboard-4.json +125 -90
  70. package/src/assets/samples/vpn-onboard-5.json +161 -119
  71. package/src/assets/samples/vpn-onboard-6.json +122 -92
  72. package/src/attribute-analyser/style/web/useExtractTextStyle.ts +9 -2
  73. package/src/build-components/BIcon/BIconProps.generated.ts +2 -0
  74. package/src/build-components/BackgroundImage/BackgroundImageProps.generated.ts +2 -0
  75. package/src/build-components/Button/ButtonProps.generated.ts +2 -0
  76. package/src/build-components/Carousel/CarouselProps.generated.ts +2 -0
  77. package/src/build-components/Carousel/pattern.json +2 -8
  78. package/src/build-components/CarouselButtons/CarouselButtonsProps.generated.ts +2 -0
  79. package/src/build-components/CarouselButtons/pattern.json +2 -9
  80. package/src/build-components/CarouselDots/CarouselDots.tsx +112 -12
  81. package/src/build-components/CarouselDots/CarouselDotsProps.generated.ts +2 -0
  82. package/src/build-components/CarouselDots/pattern.json +1 -3
  83. package/src/build-components/CarouselItem/CarouselItemProps.generated.ts +2 -0
  84. package/src/build-components/CarouselItem/pattern.json +1 -3
  85. package/src/build-components/CarouselProvider/CarouselProvider.tsx +5 -44
  86. package/src/build-components/CarouselProvider/CarouselProviderProps.generated.ts +2 -0
  87. package/src/build-components/CarouselProvider/pattern.json +6 -0
  88. package/src/build-components/CountDown/CountDownProps.generated.ts +2 -0
  89. package/src/build-components/CountDown/pattern.json +0 -1
  90. package/src/build-components/Counter/CounterProps.generated.ts +2 -0
  91. package/src/build-components/Counter/pattern.json +0 -1
  92. package/src/build-components/Image/Image.tsx +1 -1
  93. package/src/build-components/Image/ImageProps.generated.ts +2 -0
  94. package/src/build-components/Main/MainProps.generated.ts +2 -0
  95. package/src/build-components/Main/pattern.json +1 -3
  96. package/src/build-components/Onboard/OnboardProps.generated.ts +2 -0
  97. package/src/build-components/Onboard/pattern.json +2 -6
  98. package/src/build-components/OnboardButton/OnboardButton.tsx +0 -4
  99. package/src/build-components/OnboardButton/OnboardButtonProps.generated.ts +2 -0
  100. package/src/build-components/OnboardButton/pattern.json +9 -14
  101. package/src/build-components/OnboardButtons/OnboardButtons.tsx +17 -20
  102. package/src/build-components/OnboardButtons/OnboardButtonsProps.generated.ts +2 -0
  103. package/src/build-components/OnboardButtons/pattern.json +15 -15
  104. package/src/build-components/OnboardDot/OnboardDot.tsx +73 -42
  105. package/src/build-components/OnboardDot/OnboardDotProps.generated.ts +4 -1
  106. package/src/build-components/OnboardDot/pattern.json +28 -10
  107. package/src/build-components/OnboardFooter/OnboardFooter.tsx +63 -51
  108. package/src/build-components/OnboardFooter/OnboardFooterProps.generated.ts +2 -0
  109. package/src/build-components/OnboardFooter/pattern.json +6 -3
  110. package/src/build-components/OnboardImage/OnboardImageProps.generated.ts +2 -0
  111. package/src/build-components/OnboardImage/pattern.json +1 -5
  112. package/src/build-components/OnboardItem/OnboardItemProps.generated.ts +2 -0
  113. package/src/build-components/OnboardItem/pattern.json +3 -11
  114. package/src/build-components/OnboardProvider/OnboardProviderProps.generated.ts +2 -0
  115. package/src/build-components/OnboardProvider/pattern.json +2 -8
  116. package/src/build-components/OnboardSubtitle/OnboardSubtitleProps.generated.ts +2 -0
  117. package/src/build-components/OnboardSubtitle/pattern.json +1 -4
  118. package/src/build-components/OnboardTitle/OnboardTitleProps.generated.ts +2 -0
  119. package/src/build-components/OnboardTitle/pattern.json +1 -4
  120. package/src/build-components/PaywallBackground/PaywallBackgroundProps.generated.ts +2 -0
  121. package/src/build-components/PaywallCloseButton/PaywallCloseButtonProps.generated.ts +2 -0
  122. package/src/build-components/PaywallCloseButton/pattern.json +1 -3
  123. package/src/build-components/PaywallCounter/PaywallCounterProps.generated.ts +2 -0
  124. package/src/build-components/PaywallCounter/pattern.json +0 -1
  125. package/src/build-components/PaywallOptions/PaywallOptions.tsx +1 -1
  126. package/src/build-components/PaywallOptions/PaywallOptionsProps.generated.ts +2 -0
  127. package/src/build-components/PaywallOptions/pattern.json +1 -3
  128. package/src/build-components/PaywallProvider/PaywallProviderProps.generated.ts +2 -0
  129. package/src/build-components/PaywallProvider/pattern.json +1 -3
  130. package/src/build-components/PaywallSubscribeButton/PaywallSubscribeButtonProps.generated.ts +2 -0
  131. package/src/build-components/PaywallSubscribeButton/pattern.json +1 -3
  132. package/src/build-components/RadioButton/RadioButtonProps.generated.ts +2 -0
  133. package/src/build-components/RadioButton/pattern.json +1 -3
  134. package/src/build-components/RenderNode.generated.tsx +1 -1
  135. package/src/build-components/Text/TextProps.generated.ts +2 -0
  136. package/src/build-components/View/View.tsx +11 -7
  137. package/src/build-components/View/ViewProps.generated.ts +2 -0
  138. package/src/build-components/View/pattern.json +8 -0
  139. package/src/build-components/patterns.generated.ts +300 -10
  140. package/src/build-components/useNode.ts +20 -4
  141. package/src/components/Builder.tsx +98 -8
  142. package/src/components/BuilderButton.tsx +39 -7
  143. package/src/components/DeviceButton.tsx +5 -1
  144. package/src/pages/DebugJsonPage.tsx +109 -1
  145. package/src/pages/ProjectDebug.tsx +0 -1
  146. package/src/pages/ProjectPage.tsx +2 -2
  147. package/src/store.ts +8 -0
  148. package/src/styles/base/_global.scss +0 -5
  149. package/src/styles/components/_editor-shell.scss +18 -3
  150. package/src/styles/components/_onboard.scss +0 -17
  151. package/src/styles/foundation/_colors.scss +1 -4
  152. package/src/styles/foundation/_typography.scss +0 -1
  153. package/src/styles/layout/_builder.scss +20 -0
  154. package/src/styles/modals/_product-presets-modal.scss +0 -2
  155. package/src/styles/utilities/_carousel.scss +0 -32
  156. package/src/utils/analyseNodeByPatterns.ts +16 -6
  157. package/src/utils/extractTextStyle/extractTextStyle.ts +47 -13
  158. package/src/utils/extractViewStyle/extractViewStyle.ts +118 -39
  159. package/src/utils/logRenderStore.ts +7 -9
  160. package/src/utils/logger.ts +1 -5
  161. package/src/utils/novaToJson.ts +7 -3
  162. package/src/utils/repairNodeKeys.ts +1 -4
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "supportedProjectVersion": "1.1.2",
3
- "reactBuilderVersion": "1.2.18"
3
+ "reactBuilderVersion": "1.2.20"
4
4
  }
@@ -6,245 +6,327 @@
6
6
  "theme": "light"
7
7
  },
8
8
  "data": {
9
- "type": "carouselProvider",
10
- "children": [
11
- {
12
- "type": "carousel",
13
- "attributes": {
14
- "loop": true,
15
- "align": "center",
16
- "dragFree": true,
17
- "description": "carousel element 1 in sample.",
18
- "title": "carousel 1"
19
- },
20
- "children": [
21
- {
22
- "type": "carouselItem",
23
- "attributes": {
24
- "style": {
25
- "minWidth": 0
9
+ "type": "Main",
10
+ "isMain": true,
11
+ "attributes": {
12
+ "styles": {
13
+ "backgroundColor": "#f8fafc",
14
+ "minHeight": "100vh",
15
+ "padding": "24px"
16
+ }
17
+ },
18
+ "children": {
19
+ "type": "carouselProvider",
20
+ "children": [
21
+ {
22
+ "type": "carousel",
23
+ "attributes": {
24
+ "loop": true,
25
+ "align": "center",
26
+ "dragFree": true,
27
+ "description": "carousel element 1 in sample.",
28
+ "title": "carousel 1"
29
+ },
30
+ "children": [
31
+ {
32
+ "type": "carouselItem",
33
+ "attributes": {
34
+ "description": "carouselItem element 1 in sample.",
35
+ "title": "carouselItem 1",
36
+ "styles": {
37
+ "minWidth": 0
38
+ }
39
+ },
40
+ "children": {
41
+ "type": "view",
42
+ "attributes": {
43
+ "description": "view element 1 in sample.",
44
+ "title": "view 1",
45
+ "styles": {
46
+ "padding": "22px",
47
+ "borderRadius": 18,
48
+ "backgroundImage": "linear-gradient(135deg, #eef2ff 0%, #ffffff 55%, #ecfeff 100%)",
49
+ "boxShadow": "0 10px 30px rgba(15, 23, 42, 0.10)",
50
+ "gap": 14,
51
+ "height": "100%"
52
+ }
53
+ },
54
+ "children": [
55
+ {
56
+ "type": "image",
57
+ "attributes": {
58
+ "src": "https://images.unsplash.com/photo-1521737604893-d14cc237f11d?auto=format&fit=crop&w=1200&q=80",
59
+ "resizeMode": "cover",
60
+ "styles": {
61
+ "width": "auto",
62
+ "maxWidth": "100%",
63
+ "borderRadius": 14
64
+ }
65
+ },
66
+ "key": "image-49ojfyhl4d7"
67
+ },
68
+ {
69
+ "type": "text",
70
+ "attributes": {
71
+ "description": "text element 1 in sample.",
72
+ "title": "text 1",
73
+ "styles": {
74
+ "fontSize": 28,
75
+ "fontWeight": "700",
76
+ "textAlign": "center",
77
+ "color": "#0f172a"
78
+ }
79
+ },
80
+ "children": "Welcome aboard",
81
+ "key": "text-3ougfj4mxnh"
82
+ },
83
+ {
84
+ "type": "text",
85
+ "attributes": {
86
+ "description": "text element 2 in sample.",
87
+ "title": "text 2",
88
+ "styles": {
89
+ "fontSize": 16,
90
+ "textAlign": "center",
91
+ "color": "#334155",
92
+ "paddingHorizontal": 8
93
+ }
94
+ },
95
+ "children": "Swipe through a beautiful, validated carousel sample with images.",
96
+ "key": "text-2dol8grshke"
97
+ }
98
+ ],
99
+ "key": "view-a8hfkdvfy7"
26
100
  },
27
- "description": "carouselItem element 1 in sample.",
28
- "title": "carouselItem 1"
101
+ "key": "carouselItem-5bw9x33s7ie"
29
102
  },
30
- "children": {
31
- "type": "view",
103
+ {
104
+ "type": "carouselItem",
32
105
  "attributes": {
33
- "style": {
34
- "padding": "22px",
35
- "borderRadius": 18,
36
- "backgroundImage": "linear-gradient(135deg, #eef2ff 0%, #ffffff 55%, #ecfeff 100%)",
37
- "boxShadow": "0 10px 30px rgba(15, 23, 42, 0.10)",
38
- "gap": 14,
39
- "height": "100%",
40
- "justifyContent": "center"
41
- },
42
- "description": "view element 1 in sample.",
43
- "title": "view 1"
106
+ "description": "carouselItem element 2 in sample.",
107
+ "title": "carouselItem 2",
108
+ "styles": {
109
+ "minWidth": 0
110
+ }
44
111
  },
45
- "children": [
46
- {
47
- "type": "image",
48
- "attributes": {
49
- "src": "https://images.unsplash.com/photo-1521737604893-d14cc237f11d?auto=format&fit=crop&w=1200&q=80",
50
- "resizeMode": "cover",
51
- "style": {
52
- "width": "100%",
53
- "height": 230,
54
- "borderRadius": 14
55
- }
112
+ "children": {
113
+ "type": "view",
114
+ "attributes": {
115
+ "description": "view element 2 in sample.",
116
+ "title": "view 2",
117
+ "styles": {
118
+ "padding": "22px",
119
+ "borderRadius": 18,
120
+ "backgroundImage": "linear-gradient(135deg, #f0fdf4 0%, #ffffff 55%, #eff6ff 100%)",
121
+ "boxShadow": "0 10px 30px rgba(15, 23, 42, 0.10)",
122
+ "gap": 14,
123
+ "height": "100%"
56
124
  }
57
125
  },
58
- {
59
- "type": "text",
60
- "attributes": {
61
- "style": {
62
- "fontSize": 28,
63
- "fontWeight": "700",
64
- "textAlign": "center",
65
- "color": "#0f172a"
126
+ "children": [
127
+ {
128
+ "type": "image",
129
+ "attributes": {
130
+ "src": "https://images.unsplash.com/photo-1553877522-43269d4ea984?auto=format&fit=crop&w=1200&q=80",
131
+ "resizeMode": "cover",
132
+ "styles": {
133
+ "width": "auto",
134
+ "maxWidth": "100%",
135
+ "borderRadius": 14
136
+ }
66
137
  },
67
- "description": "text element 1 in sample.",
68
- "title": "text 1"
138
+ "key": "image-riwntk91k9"
69
139
  },
70
- "children": "Welcome aboard"
71
- },
72
- {
73
- "type": "text",
74
- "attributes": {
75
- "style": {
76
- "fontSize": 16,
77
- "textAlign": "center",
78
- "color": "#334155",
79
- "paddingHorizontal": 8
140
+ {
141
+ "type": "text",
142
+ "attributes": {
143
+ "description": "text element 3 in sample.",
144
+ "title": "text 3",
145
+ "styles": {
146
+ "fontSize": 28,
147
+ "fontWeight": "700",
148
+ "textAlign": "center",
149
+ "color": "#0f172a"
150
+ }
80
151
  },
81
- "description": "text element 2 in sample.",
82
- "title": "text 2"
152
+ "children": "Discover features",
153
+ "key": "text-hmuk6f7ml4v"
83
154
  },
84
- "children": "Swipe through a beautiful, validated carousel sample with images."
85
- }
86
- ]
87
- }
88
- },
89
- {
90
- "type": "carouselItem",
91
- "attributes": {
92
- "style": {
93
- "minWidth": 0
155
+ {
156
+ "type": "text",
157
+ "attributes": {
158
+ "description": "text element 4 in sample.",
159
+ "title": "text 4",
160
+ "styles": {
161
+ "fontSize": 16,
162
+ "textAlign": "center",
163
+ "color": "#334155",
164
+ "paddingHorizontal": 8
165
+ }
166
+ },
167
+ "children": "Dots + buttons are included, and slide sizing comes from the carousel CSS.",
168
+ "key": "text-dnhhoqiiri"
169
+ }
170
+ ],
171
+ "key": "view-9hyw3wys30w"
94
172
  },
95
- "description": "carouselItem element 2 in sample.",
96
- "title": "carouselItem 2"
173
+ "key": "carouselItem-lyq2hr0qh8h"
97
174
  },
98
- "children": {
99
- "type": "view",
175
+ {
176
+ "type": "carouselItem",
100
177
  "attributes": {
101
- "style": {
102
- "padding": "22px",
103
- "borderRadius": 18,
104
- "backgroundImage": "linear-gradient(135deg, #f0fdf4 0%, #ffffff 55%, #eff6ff 100%)",
105
- "boxShadow": "0 10px 30px rgba(15, 23, 42, 0.10)",
106
- "gap": 14,
107
- "height": "100%",
108
- "justifyContent": "center"
109
- },
110
- "description": "view element 2 in sample.",
111
- "title": "view 2"
178
+ "description": "carouselItem element 3 in sample.",
179
+ "title": "carouselItem 3",
180
+ "styles": {
181
+ "minWidth": 0
182
+ }
112
183
  },
113
- "children": [
114
- {
115
- "type": "image",
116
- "attributes": {
117
- "src": "https://images.unsplash.com/photo-1553877522-43269d4ea984?auto=format&fit=crop&w=1200&q=80",
118
- "resizeMode": "cover",
119
- "style": {
120
- "width": "100%",
121
- "height": 230,
122
- "borderRadius": 14
123
- }
184
+ "children": {
185
+ "type": "view",
186
+ "attributes": {
187
+ "description": "view element 3 in sample.",
188
+ "title": "view 3",
189
+ "styles": {
190
+ "padding": "22px",
191
+ "borderRadius": 18,
192
+ "backgroundImage": "linear-gradient(135deg, #fff7ed 0%, #ffffff 55%, #f5f3ff 100%)",
193
+ "boxShadow": "0 10px 30px rgba(15, 23, 42, 0.10)",
194
+ "gap": 14,
195
+ "height": "100%"
124
196
  }
125
197
  },
126
- {
127
- "type": "text",
128
- "attributes": {
129
- "style": {
130
- "fontSize": 28,
131
- "fontWeight": "700",
132
- "textAlign": "center",
133
- "color": "#0f172a"
198
+ "children": [
199
+ {
200
+ "type": "image",
201
+ "attributes": {
202
+ "src": "https://images.unsplash.com/photo-1551434678-e076c223a692?auto=format&fit=crop&w=1200&q=80",
203
+ "resizeMode": "cover",
204
+ "styles": {
205
+ "width": "auto",
206
+ "maxWidth": "100%",
207
+ "borderRadius": 14
208
+ }
134
209
  },
135
- "description": "text element 3 in sample.",
136
- "title": "text 3"
210
+ "key": "image-j9ru3r8g7km"
137
211
  },
138
- "children": "Discover features"
139
- },
140
- {
141
- "type": "text",
142
- "attributes": {
143
- "style": {
144
- "fontSize": 16,
145
- "textAlign": "center",
146
- "color": "#334155",
147
- "paddingHorizontal": 8
212
+ {
213
+ "type": "text",
214
+ "attributes": {
215
+ "description": "text element 5 in sample.",
216
+ "title": "text 5",
217
+ "styles": {
218
+ "fontSize": 28,
219
+ "fontWeight": "700",
220
+ "textAlign": "center",
221
+ "color": "#0f172a"
222
+ }
148
223
  },
149
- "description": "text element 4 in sample.",
150
- "title": "text 4"
224
+ "children": "Get started",
225
+ "key": "text-01u3fwwtkd8p"
151
226
  },
152
- "children": "Dots + buttons are included, and slide sizing comes from the carousel CSS."
153
- }
154
- ]
227
+ {
228
+ "type": "text",
229
+ "attributes": {
230
+ "description": "text element 6 in sample.",
231
+ "title": "text 6",
232
+ "styles": {
233
+ "fontSize": 16,
234
+ "textAlign": "center",
235
+ "color": "#334155",
236
+ "paddingHorizontal": 8
237
+ }
238
+ },
239
+ "children": "This sample stays within validation rules (no string flex shorthand).",
240
+ "key": "text-w8rwg9y1hj"
241
+ }
242
+ ],
243
+ "key": "view-tsjfbzn8kdj"
244
+ },
245
+ "key": "carouselItem-6r53yswjyee"
246
+ }
247
+ ],
248
+ "key": "carousel-2qa4gn0ms32"
249
+ },
250
+ {
251
+ "type": "view",
252
+ "attributes": {
253
+ "title": "Carousel Controls",
254
+ "description": "carousel controls view element in sample.",
255
+ "styles": {
256
+ "flex": 1,
257
+ "gap": 24,
258
+ "alignItems": "center",
259
+ "paddingTop": 32
155
260
  }
156
261
  },
157
- {
158
- "type": "carouselItem",
159
- "attributes": {
160
- "style": {
161
- "minWidth": 0
262
+ "children": [
263
+ {
264
+ "type": "carouselDots",
265
+ "attributes": {
266
+ "dotType": "expanding_dot"
162
267
  },
163
- "description": "carouselItem element 3 in sample.",
164
- "title": "carouselItem 3"
268
+ "key": "carouselDots-r5ji67uoxxg"
165
269
  },
166
- "children": {
270
+ {
167
271
  "type": "view",
168
272
  "attributes": {
169
- "style": {
170
- "padding": "22px",
171
- "borderRadius": 18,
172
- "backgroundImage": "linear-gradient(135deg, #fff7ed 0%, #ffffff 55%, #f5f3ff 100%)",
173
- "boxShadow": "0 10px 30px rgba(15, 23, 42, 0.10)",
174
- "gap": 14,
175
- "height": "100%",
273
+ "title": "Nav Buttons",
274
+ "description": "navigation buttons wrapper",
275
+ "styles": {
276
+ "flexDirection": "row",
277
+ "gap": 12,
278
+ "alignItems": "center",
176
279
  "justifyContent": "center"
177
- },
178
- "description": "view element 3 in sample.",
179
- "title": "view 3"
280
+ }
180
281
  },
181
282
  "children": [
182
283
  {
183
- "type": "image",
284
+ "type": "carouselButtons",
184
285
  "attributes": {
185
- "src": "https://images.unsplash.com/photo-1551434678-e076c223a692?auto=format&fit=crop&w=1200&q=80",
186
- "resizeMode": "cover",
187
- "style": {
188
- "width": "100%",
189
- "height": 230,
190
- "borderRadius": 14
286
+ "buttonType": ["previous_button"],
287
+ "styles": {
288
+ "backgroundColor": "#6366f1",
289
+ "borderRadius": 12,
290
+ "padding": "12px 24px",
291
+ "minWidth": 100
191
292
  }
192
- }
193
- },
194
- {
195
- "type": "text",
196
- "attributes": {
197
- "style": {
198
- "fontSize": 28,
199
- "fontWeight": "700",
200
- "textAlign": "center",
201
- "color": "#0f172a"
202
- },
203
- "description": "text element 5 in sample.",
204
- "title": "text 5"
205
293
  },
206
- "children": "Get started"
294
+ "key": "carouselButtons-prev"
207
295
  },
208
296
  {
209
- "type": "text",
297
+ "type": "carouselButtons",
210
298
  "attributes": {
211
- "style": {
212
- "fontSize": 16,
213
- "textAlign": "center",
214
- "color": "#334155",
215
- "paddingHorizontal": 8
216
- },
217
- "description": "text element 6 in sample.",
218
- "title": "text 6"
299
+ "buttonType": ["next_button"],
300
+ "styles": {
301
+ "backgroundColor": "#8b5cf6",
302
+ "borderRadius": 12,
303
+ "padding": "12px 24px",
304
+ "minWidth": 100
305
+ }
219
306
  },
220
- "children": "This sample stays within validation rules (no string flex shorthand)."
307
+ "key": "carouselButtons-next"
221
308
  }
222
- ]
309
+ ],
310
+ "key": "view-nav-buttons"
223
311
  }
224
- }
225
- ]
226
- },
227
- {
228
- "type": "carouselDots",
229
- "attributes": {
230
- "dotType": "expanding_dot"
231
- }
232
- },
233
- {
234
- "type": "carouselButtons",
235
- "attributes": {
236
- "buttonType": [
237
- "previous_button",
238
- "next_button",
239
- "skip_button"
240
312
  ],
241
- "skipNumber": 3
313
+ "key": "view-controls-wrapper"
242
314
  }
243
- }
244
- ],
245
- "attributes": {
246
- "description": "carouselProvider element 1 in sample.",
247
- "title": "carouselProvider 1"
248
- }
315
+ ],
316
+ "attributes": {
317
+ "description": "carouselProvider element 1 in sample.",
318
+ "title": "carouselProvider 1",
319
+ "styles": {
320
+ "backgroundColor": "#ffffff",
321
+ "borderRadius": 24,
322
+ "padding": "32px",
323
+ "boxShadow": "0 4px 20px rgba(0, 0, 0, 0.08)",
324
+ "maxWidth": "600px",
325
+ "margin": "0 auto"
326
+ }
327
+ },
328
+ "key": "carouselProvider-152n4dkqvam"
329
+ },
330
+ "key": "Main-u1cavjag9sr"
249
331
  }
250
332
  }
@@ -9,6 +9,10 @@ import unmigratedBuilder1 from './unmigrated-builder1.json';
9
9
  import unmigratedBuilder1_1_1 from './unmigrated-builder-1.1.1.json';
10
10
  import paywall1 from './paywall-1.json';
11
11
  import paywall2 from './paywall-2.json';
12
+ import paywallBackOffer from './paywall-back-offer.json';
13
+ import paywallNotificationOffer from './paywall-notification-offer.json';
14
+ import paywallAppOpenOffer from './paywall-app-open-offer.json';
15
+ import paywallAppDeleteOffer from './paywall-app-delete-offer.json';
12
16
  import vpnOnboard1 from './vpn-onboard-1.json';
13
17
  import vpnOnboard2 from './vpn-onboard-2.json';
14
18
  import vpnOnboard3 from './vpn-onboard-3.json';
@@ -45,6 +49,10 @@ export function getSamples(): Project[] {
45
49
  normalizeSample(unmigratedBuilder1_1_1),
46
50
  normalizeSample(paywall1),
47
51
  normalizeSample(paywall2),
52
+ normalizeSample(paywallBackOffer),
53
+ normalizeSample(paywallNotificationOffer),
54
+ normalizeSample(paywallAppOpenOffer),
55
+ normalizeSample(paywallAppDeleteOffer),
48
56
  ...onboardSamples,
49
57
  ];
50
58
  }
@@ -70,5 +78,12 @@ export function getOnboardSamples(): Project[] {
70
78
  }
71
79
 
72
80
  export function getPaywallSamples(): Project[] {
73
- return [normalizeSample(paywall1), normalizeSample(paywall2)];
81
+ return [
82
+ normalizeSample(paywall1),
83
+ normalizeSample(paywall2),
84
+ normalizeSample(paywallBackOffer),
85
+ normalizeSample(paywallNotificationOffer),
86
+ normalizeSample(paywallAppOpenOffer),
87
+ normalizeSample(paywallAppDeleteOffer),
88
+ ];
74
89
  }