@rubixscript/react-native-onboarding 1.0.1 → 1.1.1

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 (37) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +383 -383
  3. package/dist/components/NavigationButtons.js +17 -17
  4. package/dist/components/Onboarding.js +16 -16
  5. package/dist/components/Pagination.js +30 -30
  6. package/dist/components/SimpleOnboardingScreen.d.ts +54 -0
  7. package/dist/components/SimpleOnboardingScreen.d.ts.map +1 -0
  8. package/dist/components/SimpleOnboardingScreen.js +184 -0
  9. package/dist/components/index.d.ts +2 -0
  10. package/dist/components/index.d.ts.map +1 -1
  11. package/dist/components/index.js +1 -0
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +2 -0
  15. package/dist/presets/index.d.ts.map +1 -1
  16. package/dist/presets/index.js +24 -27
  17. package/dist/slides/FormSlide.js +37 -37
  18. package/dist/slides/IconSlide.js +24 -24
  19. package/dist/slides/ImageSlide.js +20 -20
  20. package/dist/slides/VideoSlide.js +20 -20
  21. package/dist/themes/index.d.ts.map +1 -1
  22. package/dist/themes/index.js +9 -7
  23. package/package.json +71 -66
  24. package/src/components/NavigationButtons.tsx +198 -198
  25. package/src/components/Onboarding.tsx +337 -337
  26. package/src/components/Pagination.tsx +337 -337
  27. package/src/components/SimpleOnboardingScreen.tsx +266 -0
  28. package/src/components/index.ts +7 -5
  29. package/src/index.ts +69 -65
  30. package/src/presets/index.ts +391 -394
  31. package/src/slides/FormSlide.tsx +314 -314
  32. package/src/slides/IconSlide.tsx +166 -166
  33. package/src/slides/ImageSlide.tsx +132 -132
  34. package/src/slides/VideoSlide.tsx +146 -146
  35. package/src/slides/index.tsx +37 -37
  36. package/src/themes/index.ts +576 -574
  37. package/src/types/index.ts +247 -247
@@ -1,394 +1,391 @@
1
- import { SlideData, OnboardingConfig } from '../types';
2
-
3
- // ============================================================================
4
- // ONEPAGE PRESET SLIDES
5
- // ============================================================================
6
-
7
- export const onepageSlides: SlideData[] = [
8
- {
9
- id: 'welcome',
10
- type: 'image',
11
- title: 'Welcome to 1Page',
12
- description: 'Your personal reading companion for tracking and discovering amazing books.',
13
- image: require('../../assets/images/onboarding/welcome.png'),
14
- gradientColors: ['#667EEA', '#764BA2'],
15
- },
16
- {
17
- id: 'library',
18
- type: 'image',
19
- title: 'Smart Library',
20
- description: 'Organize your books effortlessly and discover insights about your reading habits.',
21
- image: require('../../assets/images/onboarding/library.png'),
22
- gradientColors: ['#667EEA', '#06D6A0'],
23
- },
24
- {
25
- id: 'progress',
26
- type: 'image',
27
- title: 'Track Progress',
28
- description: 'Monitor your reading journey with beautiful statistics and achievements.',
29
- image: require('../../assets/images/onboarding/progress.png'),
30
- gradientColors: ['#06D6A0', '#764BA2'],
31
- },
32
- {
33
- id: 'profile',
34
- type: 'form',
35
- title: 'Let\'s Get Started',
36
- description: 'Tell us a bit about yourself to personalize your experience.',
37
- fields: [
38
- {
39
- key: 'name',
40
- label: 'What should we call you?',
41
- placeholder: 'Enter your name',
42
- type: 'text',
43
- required: true,
44
- },
45
- {
46
- key: 'readerLevel',
47
- label: 'Reader Level',
48
- placeholder: 'Select your level',
49
- type: 'select',
50
- required: true,
51
- options: [
52
- { value: 'novice', label: 'Novice', icon: 'book-outline' },
53
- { value: 'reader', label: 'Reader', icon: 'book' },
54
- { value: 'bookworm', label: 'Bookworm', icon: 'library' },
55
- { value: 'scholar', label: 'Scholar', icon: 'school' },
56
- { value: 'sage', label: 'Sage', icon: 'sparkles' },
57
- { value: 'master', label: 'Master', icon: 'trophy' },
58
- ],
59
- },
60
- {
61
- key: 'yearlyPages',
62
- label: 'Yearly Reading Goal',
63
- placeholder: 'Select your goal',
64
- type: 'select',
65
- required: true,
66
- options: [
67
- { value: '0-500', label: '0-500 pages' },
68
- { value: '500-1500', label: '500-1500 pages' },
69
- { value: '1500-3000', label: '1500-3000 pages' },
70
- { value: '3000-5000', label: '3000-5000 pages' },
71
- { value: '5000+', label: '5000+ pages' },
72
- ],
73
- },
74
- ],
75
- submitLabel: 'Start Reading',
76
- gradientColors: ['#667EEA', '#764BA2'],
77
- },
78
- ];
79
-
80
- // ============================================================================
81
- // ZAPRECIPE PRESET SLIDES
82
- // ============================================================================
83
-
84
- export const zaprecipeSlides: SlideData[] = [
85
- {
86
- id: 'discover',
87
- type: 'image',
88
- title: 'Find Perfect Recipes',
89
- description: 'Discover thousands of recipes tailored to your taste and dietary preferences.',
90
- image: require('../../assets/images/onboarding/recipes.jpg'),
91
- overlayIcon: { name: 'search', size: 40 },
92
- gradientColors: ['#667eea', '#764ba2', '#6B4EFF'],
93
- },
94
- {
95
- id: 'save',
96
- type: 'image',
97
- title: 'Save Your Favorites',
98
- description: 'Build your personal cookbook with recipes you love and want to try.',
99
- image: require('../../assets/images/onboarding/favorites.jpg'),
100
- overlayIcon: { name: 'heart', size: 40 },
101
- gradientColors: ['#667eea', '#764ba2', '#6B4EFF'],
102
- },
103
- {
104
- id: 'cook',
105
- type: 'image',
106
- title: 'Cook with Confidence',
107
- description: 'Step-by-step instructions make cooking easy and enjoyable for everyone.',
108
- image: require('../../assets/images/onboarding/cooking.jpg'),
109
- overlayIcon: { name: 'restaurant', size: 40 },
110
- gradientColors: ['#667eea', '#764ba2', '#6B4EFF'],
111
- },
112
- {
113
- id: 'profile',
114
- type: 'form',
115
- title: 'Tell Us About Yourself',
116
- description: 'Help us personalize your cooking experience.',
117
- fields: [
118
- {
119
- key: 'name',
120
- label: 'Your Name',
121
- placeholder: 'Enter your name',
122
- type: 'text',
123
- required: true,
124
- },
125
- {
126
- key: 'cookingLevel',
127
- label: 'Cooking Level',
128
- placeholder: 'Select your level',
129
- type: 'select',
130
- required: true,
131
- options: [
132
- { value: 'beginner', label: 'Beginner', icon: 'leaf' },
133
- { value: 'intermediate', label: 'Intermediate', icon: 'flame' },
134
- { value: 'advanced', label: 'Advanced', icon: 'star' },
135
- ],
136
- },
137
- {
138
- key: 'improveHabits',
139
- label: 'What cooking habits do you want to improve?',
140
- placeholder: 'e.g., Faster prep, Better seasoning',
141
- type: 'text',
142
- },
143
- {
144
- key: 'masterSkill',
145
- label: 'What culinary skill do you want to master?',
146
- placeholder: 'e.g., Knife skills, Baking',
147
- type: 'text',
148
- },
149
- ],
150
- submitLabel: "Let's Start Cooking!",
151
- gradientColors: ['#667eea', '#764ba2', '#6B4EFF'],
152
- },
153
- ];
154
-
155
- // ============================================================================
156
- // POMODO PRESET SLIDES
157
- // ============================================================================
158
-
159
- export const pomodoSlides: SlideData[] = [
160
- {
161
- id: 'focus',
162
- type: 'icon',
163
- title: 'Stay Focused',
164
- subtitle: 'Pomodoro Timer',
165
- description: 'Boost your productivity with our customizable Pomodoro timer. Work in focused intervals and take meaningful breaks.',
166
- icon: {
167
- name: 'timer',
168
- type: 'ionicons',
169
- size: 64,
170
- color: '#FFFFFF',
171
- backgroundColor: '#FF6B6B',
172
- backgroundSize: 160,
173
- },
174
- backgroundColor: '#F6F6F6',
175
- },
176
- {
177
- id: 'tasks',
178
- type: 'icon',
179
- title: 'Organize Tasks',
180
- subtitle: 'Task Management',
181
- description: 'Keep track of all your tasks with priorities, tags, and subtasks. Never lose track of what needs to be done.',
182
- icon: {
183
- name: 'checkmark-circle',
184
- type: 'ionicons',
185
- size: 64,
186
- color: '#FFFFFF',
187
- backgroundColor: '#667EEA',
188
- backgroundSize: 160,
189
- },
190
- backgroundColor: '#F6F6F6',
191
- },
192
- {
193
- id: 'stats',
194
- type: 'icon',
195
- title: 'Track Progress',
196
- subtitle: 'Insights & Analytics',
197
- description: 'Monitor your productivity with detailed statistics. See your focus time, completed tasks, and patterns.',
198
- icon: {
199
- name: 'stats-chart',
200
- type: 'ionicons',
201
- size: 64,
202
- color: '#FFFFFF',
203
- backgroundColor: '#06D6A0',
204
- backgroundSize: 160,
205
- },
206
- backgroundColor: '#F6F6F6',
207
- },
208
- ];
209
-
210
- // ============================================================================
211
- // MODERN PRESET SLIDES
212
- // ============================================================================
213
-
214
- export const modernSlides: SlideData[] = [
215
- {
216
- id: 'welcome',
217
- type: 'icon',
218
- title: 'Welcome Aboard',
219
- description: 'Get started with an amazing experience tailored just for you.',
220
- icon: {
221
- name: 'rocket',
222
- type: 'ionicons',
223
- size: 72,
224
- color: '#FFFFFF',
225
- backgroundColor: '#8B5CF6',
226
- backgroundSize: 180,
227
- },
228
- },
229
- {
230
- id: 'features',
231
- type: 'icon',
232
- title: 'Powerful Features',
233
- description: 'Discover tools and features designed to help you achieve more.',
234
- icon: {
235
- name: 'apps',
236
- type: 'ionicons',
237
- size: 72,
238
- color: '#FFFFFF',
239
- backgroundColor: '#EC4899',
240
- backgroundSize: 180,
241
- },
242
- },
243
- {
244
- id: 'ready',
245
- type: 'icon',
246
- title: 'Ready to Go?',
247
- description: 'Let\'s set up your account and get started on your journey.',
248
- icon: {
249
- name: 'checkmark-done',
250
- type: 'ionicons',
251
- size: 72,
252
- color: '#FFFFFF',
253
- backgroundColor: '#10B981',
254
- backgroundSize: 180,
255
- },
256
- },
257
- ];
258
-
259
- // ============================================================================
260
- // MINIMAL PRESET SLIDES
261
- // ============================================================================
262
-
263
- export const minimalSlides: SlideData[] = [
264
- {
265
- id: 'one',
266
- type: 'icon',
267
- title: 'Simple',
268
- description: 'Clean and intuitive interface that\'s easy to use.',
269
- icon: {
270
- name: 'remove',
271
- type: 'ionicons',
272
- size: 48,
273
- color: '#111827',
274
- backgroundColor: '#F3F4F6',
275
- backgroundSize: 120,
276
- },
277
- },
278
- {
279
- id: 'two',
280
- type: 'icon',
281
- title: 'Fast',
282
- description: 'Lightning quick performance for a smooth experience.',
283
- icon: {
284
- name: 'flash',
285
- type: 'ionicons',
286
- size: 48,
287
- color: '#111827',
288
- backgroundColor: '#F3F4F6',
289
- backgroundSize: 120,
290
- },
291
- },
292
- {
293
- id: 'three',
294
- type: 'icon',
295
- title: 'Yours',
296
- description: 'Personalized to fit your needs perfectly.',
297
- icon: {
298
- name: 'person',
299
- type: 'ionicons',
300
- size: 48,
301
- color: '#111827',
302
- backgroundColor: '#F3F4F6',
303
- backgroundSize: 120,
304
- },
305
- },
306
- ];
307
-
308
- // ============================================================================
309
- // GRADIENT PRESET SLIDES
310
- // ============================================================================
311
-
312
- export const gradientSlides: SlideData[] = [
313
- {
314
- id: 'discover',
315
- type: 'image',
316
- title: 'Discover',
317
- description: 'Explore new possibilities and unlock your potential.',
318
- image: require('../../assets/images/onboarding/gradient1.jpg'),
319
- gradientColors: ['#667EEA', '#764BA2'],
320
- },
321
- {
322
- id: 'create',
323
- type: 'image',
324
- title: 'Create',
325
- description: 'Build something amazing with powerful tools at your fingertips.',
326
- image: require('../../assets/images/onboarding/gradient2.jpg'),
327
- gradientColors: ['#f093fb', '#f5576c'],
328
- },
329
- {
330
- id: 'share',
331
- type: 'image',
332
- title: 'Share',
333
- description: 'Connect with others and share your journey.',
334
- image: require('../../assets/images/onboarding/gradient3.jpg'),
335
- gradientColors: ['#4facfe', '#00f2fe'],
336
- },
337
- ];
338
-
339
- // ============================================================================
340
- // PRESET CONFIGURATIONS
341
- // ============================================================================
342
-
343
- export const getPresetSlides = (preset: string): SlideData[] => {
344
- const slidesMap: Record<string, SlideData[]> = {
345
- onepage: onepageSlides,
346
- zaprecipe: zaprecipeSlides,
347
- pomodo: pomodoSlides,
348
- modern: modernSlides,
349
- minimal: minimalSlides,
350
- gradient: gradientSlides,
351
- };
352
- return slidesMap[preset] || modernSlides;
353
- };
354
-
355
- export const getPresetConfig = (preset: string): Partial<OnboardingConfig> => {
356
- return {
357
- slides: getPresetSlides(preset),
358
- // Theme and navigation presets are applied via theme prop
359
- };
360
- };
361
-
362
- // ============================================================================
363
- // QUICK START CONFIGS
364
- // ============================================================================
365
-
366
- export const onepageConfig: OnboardingConfig = {
367
- slides: onepageSlides,
368
- storage: { key: '@1page:onboarding_complete', enabled: true },
369
- };
370
-
371
- export const zaprecipeConfig: OnboardingConfig = {
372
- slides: zaprecipeSlides,
373
- storage: { key: '@zaprecipe:onboarding_complete', enabled: true },
374
- };
375
-
376
- export const pomodoConfig: OnboardingConfig = {
377
- slides: pomodoSlides,
378
- storage: { key: '@pomodo:onboarding_complete', enabled: true },
379
- navigation: { showSkip: false },
380
- };
381
-
382
- export default {
383
- onepageSlides,
384
- zaprecipeSlides,
385
- pomodoSlides,
386
- modernSlides,
387
- minimalSlides,
388
- gradientSlides,
389
- getPresetSlides,
390
- getPresetConfig,
391
- onepageConfig,
392
- zaprecipeConfig,
393
- pomodoConfig,
394
- };
1
+ import { SlideData, OnboardingConfig } from '../types';
2
+
3
+ // ============================================================================
4
+ // ONEPAGE PRESET SLIDES
5
+ // ============================================================================
6
+
7
+ export const onepageSlides: SlideData[] = [
8
+ {
9
+ id: 'welcome',
10
+ type: 'image',
11
+ title: 'Welcome to 1Page',
12
+ description: 'Your personal reading companion for tracking and discovering amazing books.',
13
+ image: require('../../assets/images/onboarding/welcome.png'),
14
+ gradientColors: ['#667EEA', '#764BA2'],
15
+ },
16
+ {
17
+ id: 'library',
18
+ type: 'image',
19
+ title: 'Smart Library',
20
+ description: 'Organize your books effortlessly and discover insights about your reading habits.',
21
+ image: require('../../assets/images/onboarding/library.png'),
22
+ gradientColors: ['#667EEA', '#06D6A0'],
23
+ },
24
+ {
25
+ id: 'progress',
26
+ type: 'image',
27
+ title: 'Track Progress',
28
+ description: 'Monitor your reading journey with beautiful statistics and achievements.',
29
+ image: require('../../assets/images/onboarding/progress.png'),
30
+ gradientColors: ['#06D6A0', '#764BA2'],
31
+ },
32
+ {
33
+ id: 'profile',
34
+ type: 'form',
35
+ title: 'Let\'s Get Started',
36
+ description: 'Tell us a bit about yourself to personalize your experience.',
37
+ fields: [
38
+ {
39
+ key: 'name',
40
+ label: 'What should we call you?',
41
+ placeholder: 'Enter your name',
42
+ type: 'text',
43
+ required: true,
44
+ },
45
+ {
46
+ key: 'readerLevel',
47
+ label: 'Reader Level',
48
+ placeholder: 'Select your level',
49
+ type: 'select',
50
+ required: true,
51
+ options: [
52
+ { value: 'novice', label: 'Novice', icon: 'book-outline' },
53
+ { value: 'reader', label: 'Reader', icon: 'book' },
54
+ { value: 'bookworm', label: 'Bookworm', icon: 'library' },
55
+ { value: 'scholar', label: 'Scholar', icon: 'school' },
56
+ { value: 'sage', label: 'Sage', icon: 'sparkles' },
57
+ { value: 'master', label: 'Master', icon: 'trophy' },
58
+ ],
59
+ },
60
+ {
61
+ key: 'yearlyPages',
62
+ label: 'Yearly Reading Goal',
63
+ placeholder: 'Select your goal',
64
+ type: 'select',
65
+ required: true,
66
+ options: [
67
+ { value: '0-500', label: '0-500 pages' },
68
+ { value: '500-1500', label: '500-1500 pages' },
69
+ { value: '1500-3000', label: '1500-3000 pages' },
70
+ { value: '3000-5000', label: '3000-5000 pages' },
71
+ { value: '5000+', label: '5000+ pages' },
72
+ ],
73
+ },
74
+ ],
75
+ submitLabel: 'Start Reading',
76
+ gradientColors: ['#667EEA', '#764BA2'],
77
+ },
78
+ ];
79
+
80
+ // ============================================================================
81
+ // ZAPRECIPE PRESET SLIDES
82
+ // ============================================================================
83
+
84
+ export const zaprecipeSlides: SlideData[] = [
85
+ {
86
+ id: 'discover',
87
+ type: 'image',
88
+ title: 'Find Perfect Recipes',
89
+ description: 'Discover thousands of recipes tailored to your taste and dietary preferences.',
90
+ image: require('../../assets/images/onboarding/recipes.jpg'),
91
+ overlayIcon: { name: 'search', size: 40 },
92
+ gradientColors: ['#667eea', '#764ba2', '#6B4EFF'],
93
+ },
94
+ {
95
+ id: 'save',
96
+ type: 'image',
97
+ title: 'Save Your Favorites',
98
+ description: 'Build your personal cookbook with recipes you love and want to try.',
99
+ image: require('../../assets/images/onboarding/favorites.jpg'),
100
+ overlayIcon: { name: 'heart', size: 40 },
101
+ gradientColors: ['#667eea', '#764ba2', '#6B4EFF'],
102
+ },
103
+ {
104
+ id: 'cook',
105
+ type: 'image',
106
+ title: 'Cook with Confidence',
107
+ description: 'Step-by-step instructions make cooking easy and enjoyable for everyone.',
108
+ image: require('../../assets/images/onboarding/cooking.jpg'),
109
+ overlayIcon: { name: 'restaurant', size: 40 },
110
+ gradientColors: ['#667eea', '#764ba2', '#6B4EFF'],
111
+ },
112
+ {
113
+ id: 'profile',
114
+ type: 'form',
115
+ title: 'Tell Us About Yourself',
116
+ description: 'Help us personalize your cooking experience.',
117
+ fields: [
118
+ {
119
+ key: 'name',
120
+ label: 'Your Name',
121
+ placeholder: 'Enter your name',
122
+ type: 'text',
123
+ required: true,
124
+ },
125
+ {
126
+ key: 'cookingLevel',
127
+ label: 'Cooking Level',
128
+ placeholder: 'Select your level',
129
+ type: 'select',
130
+ required: true,
131
+ options: [
132
+ { value: 'beginner', label: 'Beginner', icon: 'leaf' },
133
+ { value: 'intermediate', label: 'Intermediate', icon: 'flame' },
134
+ { value: 'advanced', label: 'Advanced', icon: 'star' },
135
+ ],
136
+ },
137
+ {
138
+ key: 'improveHabits',
139
+ label: 'What cooking habits do you want to improve?',
140
+ placeholder: 'e.g., Faster prep, Better seasoning',
141
+ type: 'text',
142
+ },
143
+ {
144
+ key: 'masterSkill',
145
+ label: 'What culinary skill do you want to master?',
146
+ placeholder: 'e.g., Knife skills, Baking',
147
+ type: 'text',
148
+ },
149
+ ],
150
+ submitLabel: "Let's Start Cooking!",
151
+ gradientColors: ['#667eea', '#764ba2', '#6B4EFF'],
152
+ },
153
+ ];
154
+
155
+ // ============================================================================
156
+ // POMODO PRESET SLIDES
157
+ // ============================================================================
158
+
159
+ export const pomodoSlides: SlideData[] = [
160
+ {
161
+ id: '1',
162
+ type: 'icon',
163
+ title: 'Focus Timer',
164
+ description: 'Stay productive with our Pomodoro timer. Work in focused intervals for better results.',
165
+ icon: {
166
+ name: 'timer-outline',
167
+ type: 'material-community',
168
+ size: 80,
169
+ color: '#000000',
170
+ backgroundColor: 'rgba(255, 107, 107, 0.1)',
171
+ backgroundSize: 160,
172
+ },
173
+ backgroundColor: '#F6F6F6',
174
+ },
175
+ {
176
+ id: '2',
177
+ type: 'icon',
178
+ title: 'Task Management',
179
+ description: 'Organize your tasks efficiently. Track progress and set priorities with ease.',
180
+ icon: {
181
+ name: 'checkbox-marked-circle-outline',
182
+ type: 'material-community',
183
+ size: 80,
184
+ color: '#000000',
185
+ backgroundColor: 'rgba(255, 107, 107, 0.1)',
186
+ backgroundSize: 160,
187
+ },
188
+ backgroundColor: '#F6F6F6',
189
+ },
190
+ {
191
+ id: '3',
192
+ type: 'icon',
193
+ title: 'Statistics',
194
+ description: 'Monitor your productivity with detailed statistics and insights.',
195
+ icon: {
196
+ name: 'chart-line',
197
+ type: 'material-community',
198
+ size: 80,
199
+ color: '#000000',
200
+ backgroundColor: 'rgba(255, 107, 107, 0.1)',
201
+ backgroundSize: 160,
202
+ },
203
+ backgroundColor: '#F6F6F6',
204
+ },
205
+ ];
206
+
207
+ // ============================================================================
208
+ // MODERN PRESET SLIDES
209
+ // ============================================================================
210
+
211
+ export const modernSlides: SlideData[] = [
212
+ {
213
+ id: 'welcome',
214
+ type: 'icon',
215
+ title: 'Welcome Aboard',
216
+ description: 'Get started with an amazing experience tailored just for you.',
217
+ icon: {
218
+ name: 'rocket',
219
+ type: 'ionicons',
220
+ size: 72,
221
+ color: '#FFFFFF',
222
+ backgroundColor: '#8B5CF6',
223
+ backgroundSize: 180,
224
+ },
225
+ },
226
+ {
227
+ id: 'features',
228
+ type: 'icon',
229
+ title: 'Powerful Features',
230
+ description: 'Discover tools and features designed to help you achieve more.',
231
+ icon: {
232
+ name: 'apps',
233
+ type: 'ionicons',
234
+ size: 72,
235
+ color: '#FFFFFF',
236
+ backgroundColor: '#EC4899',
237
+ backgroundSize: 180,
238
+ },
239
+ },
240
+ {
241
+ id: 'ready',
242
+ type: 'icon',
243
+ title: 'Ready to Go?',
244
+ description: 'Let\'s set up your account and get started on your journey.',
245
+ icon: {
246
+ name: 'checkmark-done',
247
+ type: 'ionicons',
248
+ size: 72,
249
+ color: '#FFFFFF',
250
+ backgroundColor: '#10B981',
251
+ backgroundSize: 180,
252
+ },
253
+ },
254
+ ];
255
+
256
+ // ============================================================================
257
+ // MINIMAL PRESET SLIDES
258
+ // ============================================================================
259
+
260
+ export const minimalSlides: SlideData[] = [
261
+ {
262
+ id: 'one',
263
+ type: 'icon',
264
+ title: 'Simple',
265
+ description: 'Clean and intuitive interface that\'s easy to use.',
266
+ icon: {
267
+ name: 'remove',
268
+ type: 'ionicons',
269
+ size: 48,
270
+ color: '#111827',
271
+ backgroundColor: '#F3F4F6',
272
+ backgroundSize: 120,
273
+ },
274
+ },
275
+ {
276
+ id: 'two',
277
+ type: 'icon',
278
+ title: 'Fast',
279
+ description: 'Lightning quick performance for a smooth experience.',
280
+ icon: {
281
+ name: 'flash',
282
+ type: 'ionicons',
283
+ size: 48,
284
+ color: '#111827',
285
+ backgroundColor: '#F3F4F6',
286
+ backgroundSize: 120,
287
+ },
288
+ },
289
+ {
290
+ id: 'three',
291
+ type: 'icon',
292
+ title: 'Yours',
293
+ description: 'Personalized to fit your needs perfectly.',
294
+ icon: {
295
+ name: 'person',
296
+ type: 'ionicons',
297
+ size: 48,
298
+ color: '#111827',
299
+ backgroundColor: '#F3F4F6',
300
+ backgroundSize: 120,
301
+ },
302
+ },
303
+ ];
304
+
305
+ // ============================================================================
306
+ // GRADIENT PRESET SLIDES
307
+ // ============================================================================
308
+
309
+ export const gradientSlides: SlideData[] = [
310
+ {
311
+ id: 'discover',
312
+ type: 'image',
313
+ title: 'Discover',
314
+ description: 'Explore new possibilities and unlock your potential.',
315
+ image: require('../../assets/images/onboarding/gradient1.jpg'),
316
+ gradientColors: ['#667EEA', '#764BA2'],
317
+ },
318
+ {
319
+ id: 'create',
320
+ type: 'image',
321
+ title: 'Create',
322
+ description: 'Build something amazing with powerful tools at your fingertips.',
323
+ image: require('../../assets/images/onboarding/gradient2.jpg'),
324
+ gradientColors: ['#f093fb', '#f5576c'],
325
+ },
326
+ {
327
+ id: 'share',
328
+ type: 'image',
329
+ title: 'Share',
330
+ description: 'Connect with others and share your journey.',
331
+ image: require('../../assets/images/onboarding/gradient3.jpg'),
332
+ gradientColors: ['#4facfe', '#00f2fe'],
333
+ },
334
+ ];
335
+
336
+ // ============================================================================
337
+ // PRESET CONFIGURATIONS
338
+ // ============================================================================
339
+
340
+ export const getPresetSlides = (preset: string): SlideData[] => {
341
+ const slidesMap: Record<string, SlideData[]> = {
342
+ onepage: onepageSlides,
343
+ zaprecipe: zaprecipeSlides,
344
+ pomodo: pomodoSlides,
345
+ modern: modernSlides,
346
+ minimal: minimalSlides,
347
+ gradient: gradientSlides,
348
+ };
349
+ return slidesMap[preset] || modernSlides;
350
+ };
351
+
352
+ export const getPresetConfig = (preset: string): Partial<OnboardingConfig> => {
353
+ return {
354
+ slides: getPresetSlides(preset),
355
+ // Theme and navigation presets are applied via theme prop
356
+ };
357
+ };
358
+
359
+ // ============================================================================
360
+ // QUICK START CONFIGS
361
+ // ============================================================================
362
+
363
+ export const onepageConfig: OnboardingConfig = {
364
+ slides: onepageSlides,
365
+ storage: { key: '@1page:onboarding_complete', enabled: true },
366
+ };
367
+
368
+ export const zaprecipeConfig: OnboardingConfig = {
369
+ slides: zaprecipeSlides,
370
+ storage: { key: '@zaprecipe:onboarding_complete', enabled: true },
371
+ };
372
+
373
+ export const pomodoConfig: OnboardingConfig = {
374
+ slides: pomodoSlides,
375
+ storage: { key: '@pomodo:onboarding_complete', enabled: true },
376
+ navigation: { showSkip: false },
377
+ };
378
+
379
+ export default {
380
+ onepageSlides,
381
+ zaprecipeSlides,
382
+ pomodoSlides,
383
+ modernSlides,
384
+ minimalSlides,
385
+ gradientSlides,
386
+ getPresetSlides,
387
+ getPresetConfig,
388
+ onepageConfig,
389
+ zaprecipeConfig,
390
+ pomodoConfig,
391
+ };