vibefast-cli 0.6.1 → 0.7.0
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.
- package/dist/core/recipes.d.ts.map +1 -1
- package/dist/core/recipes.js +1 -37
- package/dist/core/recipes.js.map +1 -1
- package/package.json +1 -1
- package/recipes/0/apps/native/src/components/advanced-ui/timeline/demo.tsx +444 -0
- package/recipes/0/apps/native/src/components/advanced-ui/timeline/timeline-view.tsx +355 -0
- package/recipes/0/apps/native/src/components/advanced-ui/timeline/types.ts +31 -0
- package/recipes/0/recipe.json +18 -0
- package/recipes/glowing-button/apps/native/src/components/advanced-ui/buttons/glowing-button.tsx +366 -0
- package/recipes/glowing-button/recipe.json +15 -0
- package/recipes/glowing-button@latest.zip +0 -0
- package/scripts/create-advanced-ui-recipes.sh +57 -0
- package/src/core/recipes.ts +1 -37
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/core/recipes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,CAAC;AAEvE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/core/recipes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,CAAC;AAEvE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,UAAU,EA4E/B,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,UAAU,EAAE,CAE3E;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,cAAc,EAAE,CAIhD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAElE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAS/D"}
|
package/dist/core/recipes.js
CHANGED
|
@@ -72,49 +72,13 @@ export const RECIPES = [
|
|
|
72
72
|
description: 'In-app purchases and subscriptions with RevenueCat',
|
|
73
73
|
icon: '💳',
|
|
74
74
|
},
|
|
75
|
-
// Advanced UI
|
|
75
|
+
// Advanced UI
|
|
76
76
|
{
|
|
77
77
|
name: 'glowing-button',
|
|
78
78
|
category: 'advanced-ui',
|
|
79
79
|
description: 'Animated glowing button with presets',
|
|
80
80
|
icon: '✨',
|
|
81
81
|
},
|
|
82
|
-
{
|
|
83
|
-
name: 'animated-chip',
|
|
84
|
-
category: 'advanced-ui',
|
|
85
|
-
description: 'Animated chip component',
|
|
86
|
-
icon: '🏷️',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
name: 'number-stepper',
|
|
90
|
-
category: 'advanced-ui',
|
|
91
|
-
description: 'Number stepper with animations',
|
|
92
|
-
icon: '🔢',
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
name: 'animated-switch',
|
|
96
|
-
category: 'advanced-ui',
|
|
97
|
-
description: 'Smooth animated switch',
|
|
98
|
-
icon: '🎚️',
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
name: 'progress-circle',
|
|
102
|
-
category: 'advanced-ui',
|
|
103
|
-
description: 'Circular progress indicator',
|
|
104
|
-
icon: '⭕',
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
name: 'swipe-slider',
|
|
108
|
-
category: 'advanced-ui',
|
|
109
|
-
description: 'Swipeable slider component',
|
|
110
|
-
icon: '👆',
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
name: 'timeline',
|
|
114
|
-
category: 'advanced-ui',
|
|
115
|
-
description: 'Timeline view component',
|
|
116
|
-
icon: '📅',
|
|
117
|
-
},
|
|
118
82
|
];
|
|
119
83
|
/**
|
|
120
84
|
* Get recipes by category
|
package/dist/core/recipes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../src/core/recipes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAiB;IACnC,WAAW;IACX;QACE,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,IAAI;KACX;IACD;QACE,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,0CAA0C;QACvD,IAAI,EAAE,IAAI;KACX;IACD;QACE,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,2BAA2B;QACxC,IAAI,EAAE,IAAI;KACX;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,gDAAgD;QAC7D,IAAI,EAAE,IAAI;KACX;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,6BAA6B;QAC1C,IAAI,EAAE,IAAI;KACX;IACD;QACE,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,0BAA0B;QACvC,IAAI,EAAE,IAAI;KACX;IACD;QACE,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,6BAA6B;QAC1C,IAAI,EAAE,IAAI;KACX;IACD;QACE,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,uCAAuC;QACpD,IAAI,EAAE,KAAK;KACZ;IACD;QACE,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,KAAK;KACZ;IACD;QACE,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,8CAA8C;QAC3D,IAAI,EAAE,IAAI;KACX;IACD;QACE,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,oDAAoD;QACjE,IAAI,EAAE,IAAI;KACX;IAED,
|
|
1
|
+
{"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../src/core/recipes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAiB;IACnC,WAAW;IACX;QACE,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,IAAI;KACX;IACD;QACE,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,0CAA0C;QACvD,IAAI,EAAE,IAAI;KACX;IACD;QACE,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,2BAA2B;QACxC,IAAI,EAAE,IAAI;KACX;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,gDAAgD;QAC7D,IAAI,EAAE,IAAI;KACX;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,6BAA6B;QAC1C,IAAI,EAAE,IAAI;KACX;IACD;QACE,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,0BAA0B;QACvC,IAAI,EAAE,IAAI;KACX;IACD;QACE,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,6BAA6B;QAC1C,IAAI,EAAE,IAAI;KACX;IACD;QACE,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,uCAAuC;QACpD,IAAI,EAAE,KAAK;KACZ;IACD;QACE,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,KAAK;KACZ;IACD;QACE,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,8CAA8C;QAC3D,IAAI,EAAE,IAAI;KACX;IACD;QACE,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,oDAAoD;QACjE,IAAI,EAAE,IAAI;KACX;IAED,cAAc;IACd;QACE,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,aAAa;QACvB,WAAW,EAAE,sCAAsC;QACnD,IAAI,EAAE,GAAG;KACV;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAwB;IAC3D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAwB;IACrD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,UAAU,CAAC;QACpB,KAAK,aAAa;YAChB,OAAO,aAAa,CAAC;QACvB,KAAK,aAAa;YAChB,OAAO,cAAc,CAAC;IAC1B,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
import { MaterialIcons } from '@expo/vector-icons';
|
|
2
|
+
import { ScrollView, StyleSheet, Text, View } from 'react-native';
|
|
3
|
+
import { SafeAreaView } from 'react-native-safe-area-context';
|
|
4
|
+
|
|
5
|
+
import { useThemeConfig } from '../../../lib/use-theme-config';
|
|
6
|
+
import { Timeline } from './timeline-view';
|
|
7
|
+
import type { TimelineItem } from './types';
|
|
8
|
+
|
|
9
|
+
const ShippingDetailsComponent = () => {
|
|
10
|
+
const { colors } = useThemeConfig();
|
|
11
|
+
const styles = createDemoStyles(colors);
|
|
12
|
+
return (
|
|
13
|
+
<View style={styles.detailsCard}>
|
|
14
|
+
<Text style={styles.detailsTitle}>📦 Shipping Information</Text>
|
|
15
|
+
<View style={styles.detailsRow}>
|
|
16
|
+
<Text style={styles.detailsLabel}>Carrier</Text>
|
|
17
|
+
<Text style={styles.detailsValue}>FedEx Express</Text>
|
|
18
|
+
</View>
|
|
19
|
+
<View style={styles.detailsRow}>
|
|
20
|
+
<Text style={styles.detailsLabel}>Tracking ID</Text>
|
|
21
|
+
<Text style={styles.detailsValue}>1Z999AA1234567890</Text>
|
|
22
|
+
</View>
|
|
23
|
+
<View style={styles.detailsRow}>
|
|
24
|
+
<Text style={styles.detailsLabel}>Est. Delivery</Text>
|
|
25
|
+
<Text style={styles.detailsValue}>May 10, 6:00 PM</Text>
|
|
26
|
+
</View>
|
|
27
|
+
</View>
|
|
28
|
+
);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const ProjectMilestoneComponent = () => {
|
|
32
|
+
const { colors } = useThemeConfig();
|
|
33
|
+
const styles = createDemoStyles(colors);
|
|
34
|
+
return (
|
|
35
|
+
<View style={styles.detailsCard}>
|
|
36
|
+
<Text style={styles.detailsTitle}>🎯 Milestone Details</Text>
|
|
37
|
+
<View style={styles.detailsRow}>
|
|
38
|
+
<Text style={styles.detailsLabel}>Deliverables</Text>
|
|
39
|
+
<Text style={styles.detailsValue}>Design v2</Text>
|
|
40
|
+
</View>
|
|
41
|
+
<View style={styles.detailsRow}>
|
|
42
|
+
<Text style={styles.detailsLabel}>Team Size</Text>
|
|
43
|
+
<Text style={styles.detailsValue}>5 Designers</Text>
|
|
44
|
+
</View>
|
|
45
|
+
<View style={styles.detailsRow}>
|
|
46
|
+
<Text style={styles.detailsLabel}>Budget</Text>
|
|
47
|
+
<Text style={styles.detailsValue}>$24,500</Text>
|
|
48
|
+
</View>
|
|
49
|
+
</View>
|
|
50
|
+
);
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const DevelopmentStatusComponent = () => {
|
|
54
|
+
const { colors } = useThemeConfig();
|
|
55
|
+
const styles = createDemoStyles(colors);
|
|
56
|
+
return (
|
|
57
|
+
<View style={styles.detailsCard}>
|
|
58
|
+
<Text style={styles.detailsTitle}>⚡ Development Progress</Text>
|
|
59
|
+
<View style={styles.progressRow}>
|
|
60
|
+
<Text style={styles.progressLabel}>Frontend</Text>
|
|
61
|
+
<View style={styles.progressBar}>
|
|
62
|
+
<View style={[styles.progressFill, { width: '85%' }]} />
|
|
63
|
+
</View>
|
|
64
|
+
<Text style={styles.progressValue}>85%</Text>
|
|
65
|
+
</View>
|
|
66
|
+
<View style={styles.progressRow}>
|
|
67
|
+
<Text style={styles.progressLabel}>Backend</Text>
|
|
68
|
+
<View style={styles.progressBar}>
|
|
69
|
+
<View
|
|
70
|
+
style={[
|
|
71
|
+
styles.progressFill,
|
|
72
|
+
{ width: '92%', backgroundColor: colors.success },
|
|
73
|
+
]}
|
|
74
|
+
/>
|
|
75
|
+
</View>
|
|
76
|
+
<Text style={styles.progressValue}>92%</Text>
|
|
77
|
+
</View>
|
|
78
|
+
</View>
|
|
79
|
+
);
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const TimelineDemo = () => {
|
|
83
|
+
const { colors } = useThemeConfig();
|
|
84
|
+
const styles = createDemoStyles(colors);
|
|
85
|
+
|
|
86
|
+
const orderTimelineItems: TimelineItem[] = [
|
|
87
|
+
{
|
|
88
|
+
id: 1,
|
|
89
|
+
title: 'Order Placed',
|
|
90
|
+
description: "We've received your order and will begin processing it.",
|
|
91
|
+
timestamp: 'May 7, 10:23 AM',
|
|
92
|
+
icon: 'shopping-bag',
|
|
93
|
+
status: 'complete',
|
|
94
|
+
meta: 'Order #38492',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
id: 2,
|
|
98
|
+
title: 'Order Confirmed',
|
|
99
|
+
description: 'Your order is confirmed and ready to ship.',
|
|
100
|
+
timestamp: 'May 7, 11:05 AM',
|
|
101
|
+
icon: 'check-circle',
|
|
102
|
+
status: 'complete',
|
|
103
|
+
meta: 'Ready for shipment',
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
id: 3,
|
|
107
|
+
title: 'Shipped',
|
|
108
|
+
description: 'The package has left our facility and is on its way.',
|
|
109
|
+
timestamp: 'May 8, 9:15 AM',
|
|
110
|
+
icon: 'package',
|
|
111
|
+
status: 'complete',
|
|
112
|
+
children: <ShippingDetailsComponent />,
|
|
113
|
+
childrenContainer: { marginTop: 0 },
|
|
114
|
+
meta: 'In Transit',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
id: 4,
|
|
118
|
+
title: 'Delivered',
|
|
119
|
+
timestamp: 'Est. May 10, by 6:00 PM',
|
|
120
|
+
icon: 'home',
|
|
121
|
+
status: 'upcoming',
|
|
122
|
+
meta: 'Pending delivery',
|
|
123
|
+
description: 'Your order will be delivered to your doorstep.',
|
|
124
|
+
},
|
|
125
|
+
];
|
|
126
|
+
|
|
127
|
+
const projectTimelineItems: TimelineItem[] = [
|
|
128
|
+
{
|
|
129
|
+
id: 1,
|
|
130
|
+
title: 'Project Kickoff',
|
|
131
|
+
description: 'Initial meeting with stakeholders and team formation.',
|
|
132
|
+
timestamp: 'Jan 15, 2024',
|
|
133
|
+
icon: 'play-circle',
|
|
134
|
+
status: 'complete',
|
|
135
|
+
meta: 'Team assembled',
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
id: 2,
|
|
139
|
+
title: 'Design Phase',
|
|
140
|
+
description: 'UI/UX design, prototyping, and design system creation.',
|
|
141
|
+
timestamp: 'Feb 12, 2024',
|
|
142
|
+
icon: 'edit-3',
|
|
143
|
+
status: 'complete',
|
|
144
|
+
children: <ProjectMilestoneComponent />,
|
|
145
|
+
childrenContainer: { marginTop: 0 },
|
|
146
|
+
meta: 'Design system v2.0',
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
id: 3,
|
|
150
|
+
title: 'Development Sprint',
|
|
151
|
+
description: 'Frontend and backend development in parallel tracks.',
|
|
152
|
+
timestamp: 'Mar 5, 2024',
|
|
153
|
+
icon: 'code',
|
|
154
|
+
status: 'current',
|
|
155
|
+
children: <DevelopmentStatusComponent />,
|
|
156
|
+
childrenContainer: { marginTop: 0 },
|
|
157
|
+
meta: 'In Progress',
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
id: 4,
|
|
161
|
+
title: 'Launch',
|
|
162
|
+
description: 'Production deployment and go-live celebration.',
|
|
163
|
+
timestamp: 'Apr 15, 2024',
|
|
164
|
+
icon: 'zap',
|
|
165
|
+
status: 'upcoming',
|
|
166
|
+
meta: 'Launch day',
|
|
167
|
+
},
|
|
168
|
+
];
|
|
169
|
+
|
|
170
|
+
const userJourneyItems: TimelineItem[] = [
|
|
171
|
+
{
|
|
172
|
+
id: 1,
|
|
173
|
+
title: 'Account Created',
|
|
174
|
+
description: 'User registered with email verification.',
|
|
175
|
+
timestamp: '2 hours ago',
|
|
176
|
+
icon: 'user-plus',
|
|
177
|
+
status: 'complete',
|
|
178
|
+
meta: 'sarah.johnson@email.com',
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
id: 2,
|
|
182
|
+
title: 'First Purchase',
|
|
183
|
+
description: 'Completed their first transaction successfully.',
|
|
184
|
+
timestamp: '45 minutes ago',
|
|
185
|
+
icon: 'shopping-cart',
|
|
186
|
+
status: 'complete',
|
|
187
|
+
meta: '$127.50',
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
id: 3,
|
|
191
|
+
title: 'App Downloaded',
|
|
192
|
+
description: 'Downloaded and logged into mobile application.',
|
|
193
|
+
timestamp: '12 minutes ago',
|
|
194
|
+
icon: 'smartphone',
|
|
195
|
+
status: 'current',
|
|
196
|
+
meta: 'iOS App',
|
|
197
|
+
},
|
|
198
|
+
];
|
|
199
|
+
|
|
200
|
+
const handleItemPress = (item: TimelineItem) => {
|
|
201
|
+
console.log('Timeline item pressed:', item.title);
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
return (
|
|
205
|
+
<SafeAreaView style={styles.container}>
|
|
206
|
+
<ScrollView
|
|
207
|
+
contentContainerStyle={styles.content}
|
|
208
|
+
showsVerticalScrollIndicator={false}
|
|
209
|
+
contentInsetAdjustmentBehavior="always"
|
|
210
|
+
scrollEnabled
|
|
211
|
+
>
|
|
212
|
+
<View style={styles.header}>
|
|
213
|
+
<View style={styles.iconContainer}>
|
|
214
|
+
<MaterialIcons name="timeline" size={32} color={colors.primary} />
|
|
215
|
+
</View>
|
|
216
|
+
<Text style={styles.headerTitle}>Timeline Component Demo</Text>
|
|
217
|
+
<Text style={styles.subtitle}>
|
|
218
|
+
Beautiful timelines with various styles and interactive features
|
|
219
|
+
</Text>
|
|
220
|
+
</View>
|
|
221
|
+
<View style={styles.section}>
|
|
222
|
+
<View style={styles.sectionHeader}>
|
|
223
|
+
<Text style={styles.sectionTitle}>🧾 Order Timeline</Text>
|
|
224
|
+
<Text style={styles.sectionSubtitle}>
|
|
225
|
+
Follow your delivery journey
|
|
226
|
+
</Text>
|
|
227
|
+
</View>
|
|
228
|
+
|
|
229
|
+
<View style={styles.timelineWrapper}>
|
|
230
|
+
<Timeline
|
|
231
|
+
metaContainerStyle={styles.metaContainer}
|
|
232
|
+
animationType="rotate"
|
|
233
|
+
items={orderTimelineItems}
|
|
234
|
+
onItemPress={handleItemPress}
|
|
235
|
+
activeColor={colors.primary}
|
|
236
|
+
animated
|
|
237
|
+
titleStyle={styles.timelineTitle}
|
|
238
|
+
descriptionStyle={styles.timelineDescription}
|
|
239
|
+
timestampStyle={styles.timelineTimestamp}
|
|
240
|
+
metaTextStyle={styles.timelineMeta}
|
|
241
|
+
/>
|
|
242
|
+
</View>
|
|
243
|
+
</View>
|
|
244
|
+
|
|
245
|
+
<View style={styles.section}>
|
|
246
|
+
<View style={styles.sectionHeader}>
|
|
247
|
+
<Text style={styles.sectionTitle}>🚀 Project Timeline</Text>
|
|
248
|
+
<Text style={styles.sectionSubtitle}>
|
|
249
|
+
Development milestones and progress
|
|
250
|
+
</Text>
|
|
251
|
+
</View>
|
|
252
|
+
|
|
253
|
+
<View style={styles.timelineWrapper}>
|
|
254
|
+
<Timeline
|
|
255
|
+
metaContainerStyle={[
|
|
256
|
+
styles.metaContainer,
|
|
257
|
+
{ backgroundColor: colors.card },
|
|
258
|
+
]}
|
|
259
|
+
animationType="fade"
|
|
260
|
+
items={projectTimelineItems}
|
|
261
|
+
onItemPress={handleItemPress}
|
|
262
|
+
activeColor={colors.success}
|
|
263
|
+
animated
|
|
264
|
+
titleStyle={styles.timelineTitle}
|
|
265
|
+
descriptionStyle={styles.timelineDescription}
|
|
266
|
+
timestampStyle={styles.timelineTimestamp}
|
|
267
|
+
metaTextStyle={styles.timelineMeta}
|
|
268
|
+
/>
|
|
269
|
+
</View>
|
|
270
|
+
</View>
|
|
271
|
+
|
|
272
|
+
<View style={styles.section}>
|
|
273
|
+
<View style={styles.sectionHeader}>
|
|
274
|
+
<Text style={styles.sectionTitle}>👤 User Journey</Text>
|
|
275
|
+
<Text style={styles.sectionSubtitle}>
|
|
276
|
+
Real-time user activity tracking
|
|
277
|
+
</Text>
|
|
278
|
+
</View>
|
|
279
|
+
|
|
280
|
+
<View style={styles.timelineWrapper}>
|
|
281
|
+
<Timeline
|
|
282
|
+
metaContainerStyle={[
|
|
283
|
+
styles.metaContainer,
|
|
284
|
+
{ backgroundColor: colors.background },
|
|
285
|
+
]}
|
|
286
|
+
animationType="scale"
|
|
287
|
+
items={userJourneyItems}
|
|
288
|
+
onItemPress={handleItemPress}
|
|
289
|
+
activeColor={colors.destructive}
|
|
290
|
+
animated
|
|
291
|
+
titleStyle={styles.timelineTitle}
|
|
292
|
+
descriptionStyle={styles.timelineDescription}
|
|
293
|
+
timestampStyle={styles.timelineTimestamp}
|
|
294
|
+
metaTextStyle={styles.timelineMeta}
|
|
295
|
+
/>
|
|
296
|
+
</View>
|
|
297
|
+
</View>
|
|
298
|
+
</ScrollView>
|
|
299
|
+
</SafeAreaView>
|
|
300
|
+
);
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
const createDemoStyles = (colors: any) =>
|
|
304
|
+
StyleSheet.create({
|
|
305
|
+
container: {
|
|
306
|
+
flex: 1,
|
|
307
|
+
backgroundColor: colors.background,
|
|
308
|
+
},
|
|
309
|
+
content: {
|
|
310
|
+
padding: 24,
|
|
311
|
+
paddingBottom: 48,
|
|
312
|
+
},
|
|
313
|
+
header: {
|
|
314
|
+
alignItems: 'center',
|
|
315
|
+
marginBottom: 32,
|
|
316
|
+
paddingTop: 20,
|
|
317
|
+
},
|
|
318
|
+
iconContainer: {
|
|
319
|
+
width: 64,
|
|
320
|
+
height: 64,
|
|
321
|
+
borderRadius: 32,
|
|
322
|
+
backgroundColor: colors.card,
|
|
323
|
+
alignItems: 'center',
|
|
324
|
+
justifyContent: 'center',
|
|
325
|
+
marginBottom: 16,
|
|
326
|
+
borderWidth: 1,
|
|
327
|
+
borderColor: colors.border,
|
|
328
|
+
},
|
|
329
|
+
headerTitle: {
|
|
330
|
+
fontSize: 28,
|
|
331
|
+
fontWeight: '700',
|
|
332
|
+
color: colors.foreground,
|
|
333
|
+
textAlign: 'center',
|
|
334
|
+
marginBottom: 8,
|
|
335
|
+
},
|
|
336
|
+
subtitle: {
|
|
337
|
+
fontSize: 16,
|
|
338
|
+
color: colors.mutedForeground,
|
|
339
|
+
textAlign: 'center',
|
|
340
|
+
lineHeight: 24,
|
|
341
|
+
maxWidth: 320,
|
|
342
|
+
},
|
|
343
|
+
section: {
|
|
344
|
+
marginBottom: 32,
|
|
345
|
+
},
|
|
346
|
+
sectionTitle: {
|
|
347
|
+
fontSize: 18,
|
|
348
|
+
fontWeight: '600',
|
|
349
|
+
color: colors.foreground,
|
|
350
|
+
marginBottom: 16,
|
|
351
|
+
marginLeft: 4,
|
|
352
|
+
},
|
|
353
|
+
sectionHeader: {
|
|
354
|
+
marginBottom: 16,
|
|
355
|
+
},
|
|
356
|
+
sectionSubtitle: {
|
|
357
|
+
fontSize: 14,
|
|
358
|
+
color: colors.mutedForeground,
|
|
359
|
+
marginTop: 4,
|
|
360
|
+
marginLeft: 4,
|
|
361
|
+
},
|
|
362
|
+
timelineWrapper: {
|
|
363
|
+
backgroundColor: colors.card,
|
|
364
|
+
borderWidth: 1,
|
|
365
|
+
borderColor: colors.border,
|
|
366
|
+
borderRadius: 12,
|
|
367
|
+
padding: 16,
|
|
368
|
+
},
|
|
369
|
+
metaContainer: {
|
|
370
|
+
backgroundColor: colors.background,
|
|
371
|
+
borderRadius: 8,
|
|
372
|
+
padding: 8,
|
|
373
|
+
},
|
|
374
|
+
timelineTitle: {
|
|
375
|
+
color: colors.foreground,
|
|
376
|
+
fontWeight: '600',
|
|
377
|
+
},
|
|
378
|
+
timelineDescription: {
|
|
379
|
+
color: colors.mutedForeground,
|
|
380
|
+
},
|
|
381
|
+
timelineTimestamp: {
|
|
382
|
+
color: colors.mutedForeground,
|
|
383
|
+
},
|
|
384
|
+
timelineMeta: {
|
|
385
|
+
color: colors.foreground,
|
|
386
|
+
},
|
|
387
|
+
detailsCard: {
|
|
388
|
+
backgroundColor: colors.background,
|
|
389
|
+
borderRadius: 12,
|
|
390
|
+
padding: 12,
|
|
391
|
+
marginTop: 8,
|
|
392
|
+
},
|
|
393
|
+
detailsTitle: {
|
|
394
|
+
fontSize: 14,
|
|
395
|
+
color: colors.foreground,
|
|
396
|
+
fontWeight: '500',
|
|
397
|
+
marginBottom: 8,
|
|
398
|
+
},
|
|
399
|
+
detailsRow: {
|
|
400
|
+
flexDirection: 'row',
|
|
401
|
+
justifyContent: 'space-between',
|
|
402
|
+
marginBottom: 6,
|
|
403
|
+
},
|
|
404
|
+
detailsLabel: {
|
|
405
|
+
fontSize: 13,
|
|
406
|
+
color: colors.mutedForeground,
|
|
407
|
+
},
|
|
408
|
+
detailsValue: {
|
|
409
|
+
fontSize: 13,
|
|
410
|
+
color: colors.foreground,
|
|
411
|
+
fontWeight: '500',
|
|
412
|
+
},
|
|
413
|
+
progressRow: {
|
|
414
|
+
flexDirection: 'row',
|
|
415
|
+
alignItems: 'center',
|
|
416
|
+
marginBottom: 8,
|
|
417
|
+
},
|
|
418
|
+
progressLabel: {
|
|
419
|
+
fontSize: 12,
|
|
420
|
+
color: colors.mutedForeground,
|
|
421
|
+
width: 60,
|
|
422
|
+
},
|
|
423
|
+
progressBar: {
|
|
424
|
+
flex: 1,
|
|
425
|
+
height: 6,
|
|
426
|
+
backgroundColor: colors.border,
|
|
427
|
+
borderRadius: 3,
|
|
428
|
+
marginHorizontal: 12,
|
|
429
|
+
},
|
|
430
|
+
progressFill: {
|
|
431
|
+
height: 6,
|
|
432
|
+
backgroundColor: colors.primary,
|
|
433
|
+
borderRadius: 3,
|
|
434
|
+
},
|
|
435
|
+
progressValue: {
|
|
436
|
+
fontSize: 12,
|
|
437
|
+
color: colors.foreground,
|
|
438
|
+
fontWeight: '500',
|
|
439
|
+
width: 35,
|
|
440
|
+
textAlign: 'right',
|
|
441
|
+
},
|
|
442
|
+
});
|
|
443
|
+
|
|
444
|
+
export default TimelineDemo;
|