@coze-arch/cli 0.0.1-alpha.f9be02 → 0.0.1-alpha.fd3d56

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 (84) hide show
  1. package/lib/__templates__/expo/.coze +1 -1
  2. package/lib/__templates__/expo/.cozeproj/scripts/dev_build.sh +19 -82
  3. package/lib/__templates__/expo/.cozeproj/scripts/dev_run.sh +75 -86
  4. package/lib/__templates__/expo/.cozeproj/scripts/prod_build.sh +2 -2
  5. package/lib/__templates__/expo/.cozeproj/scripts/prod_run.sh +2 -2
  6. package/lib/__templates__/expo/.cozeproj/scripts/server_dev_run.sh +45 -0
  7. package/lib/__templates__/expo/README.md +68 -7
  8. package/lib/__templates__/expo/client/app/+not-found.tsx +30 -0
  9. package/lib/__templates__/expo/client/{src/app → app}/_layout.tsx +15 -12
  10. package/lib/__templates__/expo/client/app/index.tsx +1 -0
  11. package/lib/__templates__/expo/client/app.config.ts +65 -60
  12. package/lib/__templates__/expo/client/{src/components → components}/Screen.tsx +1 -17
  13. package/lib/__templates__/expo/client/{src/components → components}/ThemedView.tsx +1 -2
  14. package/lib/__templates__/expo/client/constants/theme.ts +177 -0
  15. package/lib/__templates__/expo/client/declarations.d.ts +5 -0
  16. package/lib/__templates__/expo/client/eslint.config.mjs +30 -10
  17. package/lib/__templates__/expo/client/hooks/useColorScheme.tsx +48 -0
  18. package/lib/__templates__/expo/client/hooks/useSafeRouter.ts +152 -0
  19. package/lib/__templates__/expo/client/hooks/useTheme.ts +33 -0
  20. package/lib/__templates__/expo/client/package.json +6 -3
  21. package/lib/__templates__/expo/client/screens/demo/index.tsx +25 -0
  22. package/lib/__templates__/expo/client/screens/demo/styles.ts +28 -0
  23. package/lib/__templates__/expo/client/scripts/install-missing-deps.js +1 -0
  24. package/lib/__templates__/expo/client/tsconfig.json +1 -1
  25. package/lib/__templates__/expo/client/{src/utils → utils}/index.ts +22 -0
  26. package/lib/__templates__/expo/eslint-plugins/fontawesome6/index.js +9 -0
  27. package/lib/__templates__/expo/eslint-plugins/fontawesome6/names.js +1889 -0
  28. package/lib/__templates__/expo/eslint-plugins/fontawesome6/rule.js +174 -0
  29. package/lib/__templates__/expo/eslint-plugins/fontawesome6/v5-only-names.js +388 -0
  30. package/lib/__templates__/expo/eslint-plugins/reanimated/index.js +9 -0
  31. package/lib/__templates__/expo/eslint-plugins/reanimated/rule.js +88 -0
  32. package/lib/__templates__/expo/package.json +7 -98
  33. package/lib/__templates__/expo/patches/expo@54.0.32.patch +44 -0
  34. package/lib/__templates__/expo/pnpm-lock.yaml +2001 -2124
  35. package/lib/__templates__/expo/server/build.js +21 -0
  36. package/lib/__templates__/expo/server/package.json +19 -4
  37. package/lib/__templates__/expo/server/src/index.ts +9 -2
  38. package/lib/__templates__/expo/server/tsconfig.json +24 -0
  39. package/lib/__templates__/expo/template.config.js +1 -0
  40. package/lib/__templates__/nextjs/.babelrc +15 -0
  41. package/lib/__templates__/nextjs/.coze +1 -0
  42. package/lib/__templates__/nextjs/_npmrc +1 -0
  43. package/lib/__templates__/nextjs/next.config.ts +12 -0
  44. package/lib/__templates__/nextjs/package.json +10 -11
  45. package/lib/__templates__/nextjs/pnpm-lock.yaml +2543 -1747
  46. package/lib/__templates__/nextjs/scripts/prepare.sh +9 -0
  47. package/lib/__templates__/nextjs/src/app/globals.css +10 -2
  48. package/lib/__templates__/nextjs/src/app/layout.tsx +5 -14
  49. package/lib/__templates__/nextjs/src/app/page.tsx +35 -23
  50. package/lib/__templates__/nextjs/src/components/ui/resizable.tsx +29 -22
  51. package/lib/__templates__/nextjs/src/components/ui/sidebar.tsx +228 -230
  52. package/lib/__templates__/nextjs/template.config.js +30 -0
  53. package/lib/__templates__/templates.json +61 -43
  54. package/lib/__templates__/vite/.coze +1 -0
  55. package/lib/__templates__/vite/_npmrc +1 -0
  56. package/lib/__templates__/vite/eslint.config.mjs +9 -0
  57. package/lib/__templates__/vite/package.json +10 -1
  58. package/lib/__templates__/vite/pnpm-lock.yaml +3115 -126
  59. package/lib/__templates__/vite/scripts/prepare.sh +9 -0
  60. package/lib/__templates__/vite/src/main.ts +1 -2
  61. package/lib/__templates__/vite/template.config.js +30 -4
  62. package/lib/cli.js +691 -130
  63. package/package.json +5 -3
  64. package/lib/__templates__/expo/client/src/app/index.ts +0 -1
  65. package/lib/__templates__/expo/client/src/constants/theme.ts +0 -850
  66. package/lib/__templates__/expo/client/src/hooks/useColorScheme.ts +0 -1
  67. package/lib/__templates__/expo/client/src/hooks/useTheme.ts +0 -13
  68. package/lib/__templates__/expo/client/src/screens/home/index.tsx +0 -50
  69. package/lib/__templates__/expo/client/src/screens/home/styles.ts +0 -60
  70. package/lib/__templates__/nextjs/.vscode/settings.json +0 -121
  71. package/lib/__templates__/vite/.vscode/settings.json +0 -7
  72. /package/lib/__templates__/expo/client/{src/assets → assets}/fonts/SpaceMono-Regular.ttf +0 -0
  73. /package/lib/__templates__/expo/client/{src/assets → assets}/images/adaptive-icon.png +0 -0
  74. /package/lib/__templates__/expo/client/{src/assets → assets}/images/default-avatar.png +0 -0
  75. /package/lib/__templates__/expo/client/{src/assets → assets}/images/favicon.png +0 -0
  76. /package/lib/__templates__/expo/client/{src/assets → assets}/images/icon.png +0 -0
  77. /package/lib/__templates__/expo/client/{src/assets → assets}/images/partial-react-logo.png +0 -0
  78. /package/lib/__templates__/expo/client/{src/assets → assets}/images/react-logo.png +0 -0
  79. /package/lib/__templates__/expo/client/{src/assets → assets}/images/react-logo@2x.png +0 -0
  80. /package/lib/__templates__/expo/client/{src/assets → assets}/images/react-logo@3x.png +0 -0
  81. /package/lib/__templates__/expo/client/{src/assets → assets}/images/splash-icon.png +0 -0
  82. /package/lib/__templates__/expo/client/{src/components → components}/SmartDateInput.tsx +0 -0
  83. /package/lib/__templates__/expo/client/{src/components → components}/ThemedText.tsx +0 -0
  84. /package/lib/__templates__/expo/client/{src/contexts → contexts}/AuthContext.tsx +0 -0
@@ -1,850 +0,0 @@
1
- import { Platform, StyleSheet } from "react-native";
2
-
3
- export const Colors = {
4
- light: {
5
- text: "#111827",
6
- textPrimary: "#111827",
7
- textSecondary: "#374151",
8
- textMuted: "#9CA3AF",
9
- textDisabled: "#D1D5DB",
10
- placeholder: "#9CA3AF",
11
- buttonText: "#FFFFFF",
12
- tabIconDefault: "#9CA3AF",
13
- tabIconSelected: "#111827",
14
- primary: "#111827",
15
- accent: "#000000",
16
- link: "#111827",
17
- success: "#16A34A",
18
- warning: "#F59E0B",
19
- error: "#DC2626",
20
- info: "#2563EB",
21
- backgroundRoot: "#FFFFFF",
22
- backgroundDefault: "#F9FAFB",
23
- backgroundSecondary: "#F3F4F6",
24
- backgroundTertiary: "#E5E7EB",
25
- border: "#E5E7EB",
26
- borderLight: "#F3F4F6",
27
- divider: "#F3F4F6",
28
- overlay: "rgba(0, 0, 0, 0.4)",
29
- chartBackground: "rgba(249, 250, 251, 0.5)",
30
- },
31
- dark: {
32
- text: "#ECEDEE",
33
- textPrimary: "#ECEDEE",
34
- textSecondary: "#9BA1A6",
35
- textMuted: "#6F767E",
36
- textDisabled: "#4A4D50",
37
- placeholder: "#6F767E",
38
- buttonText: "#FFFFFF",
39
- tabIconDefault: "#6F767E",
40
- tabIconSelected: "#ECEDEE",
41
- primary: "#ECEDEE",
42
- accent: "#FFFFFF",
43
- link: "#ECEDEE",
44
- success: "#30D158",
45
- warning: "#FF9F0A",
46
- error: "#FF453A",
47
- info: "#64D2FF",
48
- backgroundRoot: "#000000",
49
- backgroundDefault: "#1C1C1E",
50
- backgroundSecondary: "#2C2C2E",
51
- backgroundTertiary: "#3A3A3C",
52
- border: "#3A3A3C",
53
- borderLight: "#2C2C2E",
54
- divider: "#2C2C2E",
55
- overlay: "rgba(0, 0, 0, 0.6)",
56
- chartBackground: "rgba(28, 28, 30, 0.5)",
57
- },
58
- };
59
-
60
- export const Spacing = {
61
- xs: 4,
62
- sm: 8,
63
- md: 12,
64
- lg: 16,
65
- xl: 20,
66
- "2xl": 24,
67
- "3xl": 32,
68
- "4xl": 40,
69
- "5xl": 48,
70
- "6xl": 64,
71
- inputHeight: 48,
72
- buttonHeight: 48,
73
- avatarSize: 40,
74
- iconButtonSize: 32,
75
- contentPaddingHorizontal: 32,
76
- sectionGap: 40,
77
- sectionGapLarge: 48,
78
- itemGap: 8,
79
- detailGap: 48,
80
- chartHeight: 128,
81
- };
82
-
83
- export const BorderRadius = {
84
- xs: 4,
85
- sm: 8,
86
- md: 12,
87
- lg: 16,
88
- xl: 20,
89
- "2xl": 24,
90
- "3xl": 40,
91
- full: 9999,
92
- };
93
-
94
- export const Typography = {
95
- display: {
96
- fontSize: 112,
97
- lineHeight: 112,
98
- fontWeight: "200" as const,
99
- letterSpacing: -4,
100
- },
101
- displayLarge: {
102
- fontSize: 112,
103
- lineHeight: 112,
104
- fontWeight: "200" as const,
105
- letterSpacing: -2,
106
- },
107
- displayMedium: {
108
- fontSize: 48,
109
- lineHeight: 56,
110
- fontWeight: "200" as const,
111
- },
112
- h1: {
113
- fontSize: 32,
114
- lineHeight: 40,
115
- fontWeight: "700" as const,
116
- },
117
- h2: {
118
- fontSize: 28,
119
- lineHeight: 36,
120
- fontWeight: "700" as const,
121
- },
122
- h3: {
123
- fontSize: 24,
124
- lineHeight: 32,
125
- fontWeight: "300" as const,
126
- },
127
- h4: {
128
- fontSize: 20,
129
- lineHeight: 28,
130
- fontWeight: "600" as const,
131
- },
132
- title: {
133
- fontSize: 18,
134
- lineHeight: 24,
135
- fontWeight: "700" as const,
136
- },
137
- body: {
138
- fontSize: 16,
139
- lineHeight: 24,
140
- fontWeight: "400" as const,
141
- },
142
- bodyMedium: {
143
- fontSize: 16,
144
- lineHeight: 24,
145
- fontWeight: "500" as const,
146
- },
147
- small: {
148
- fontSize: 14,
149
- lineHeight: 20,
150
- fontWeight: "400" as const,
151
- },
152
- smallMedium: {
153
- fontSize: 14,
154
- lineHeight: 20,
155
- fontWeight: "500" as const,
156
- },
157
- caption: {
158
- fontSize: 12,
159
- lineHeight: 16,
160
- fontWeight: "400" as const,
161
- },
162
- captionMedium: {
163
- fontSize: 12,
164
- lineHeight: 16,
165
- fontWeight: "500" as const,
166
- },
167
- label: {
168
- fontSize: 14,
169
- lineHeight: 20,
170
- fontWeight: "500" as const,
171
- letterSpacing: 2,
172
- textTransform: "uppercase" as const,
173
- },
174
- labelSmall: {
175
- fontSize: 12,
176
- lineHeight: 16,
177
- fontWeight: "500" as const,
178
- letterSpacing: 1,
179
- textTransform: "uppercase" as const,
180
- },
181
- labelTitle: {
182
- fontSize: 14,
183
- lineHeight: 20,
184
- fontWeight: "700" as const,
185
- letterSpacing: 2,
186
- textTransform: "uppercase" as const,
187
- },
188
- link: {
189
- fontSize: 16,
190
- lineHeight: 24,
191
- fontWeight: "400" as const,
192
- },
193
- stat: {
194
- fontSize: 30,
195
- lineHeight: 36,
196
- fontWeight: "300" as const,
197
- },
198
- tiny: {
199
- fontSize: 10,
200
- lineHeight: 14,
201
- fontWeight: "400" as const,
202
- },
203
- navLabel: {
204
- fontSize: 10,
205
- lineHeight: 14,
206
- fontWeight: "500" as const,
207
- },
208
- };
209
-
210
- export const Fonts = Platform.select({
211
- ios: {
212
- sans: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif",
213
- },
214
- android: {
215
- sans: "Roboto, 'Segoe UI', Helvetica, Arial, sans-serif",
216
- },
217
- default: {
218
- sans: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif",
219
- },
220
- });
221
-
222
- export const Shadow = {
223
- none: {},
224
- minimal: Platform.select({
225
- ios: { shadowColor: "#000", shadowOffset: { width: 0, height: 1 }, shadowOpacity: 0.05, shadowRadius: 2 },
226
- android: { elevation: 1 },
227
- default: {},
228
- }),
229
- sm: Platform.select({
230
- ios: { shadowColor: "#000", shadowOffset: { width: 0, height: 1 }, shadowOpacity: 0.05, shadowRadius: 2 },
231
- android: { elevation: 1 },
232
- default: {},
233
- }),
234
- md: Platform.select({
235
- ios: { shadowColor: "#000", shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.1, shadowRadius: 4 },
236
- android: { elevation: 3 },
237
- default: {},
238
- }),
239
- lg: Platform.select({
240
- ios: { shadowColor: "#000", shadowOffset: { width: 0, height: 4 }, shadowOpacity: 0.15, shadowRadius: 8 },
241
- android: { elevation: 6 },
242
- default: {},
243
- }),
244
- island: Platform.select({
245
- ios: { shadowColor: "#000", shadowOffset: { width: 0, height: 4 }, shadowOpacity: 0.1, shadowRadius: 20 },
246
- android: { elevation: 8 },
247
- default: {},
248
- }),
249
- };
250
-
251
- export const Duration = {
252
- fast: 150,
253
- normal: 250,
254
- slow: 400,
255
- };
256
-
257
- export const ZIndex = {
258
- base: 0,
259
- dropdown: 100,
260
- sticky: 200,
261
- modal: 300,
262
- toast: 400,
263
- overlay: 500,
264
- };
265
-
266
- export type Theme = typeof Colors.light;
267
-
268
- export const CommonStyles = StyleSheet.create({
269
- container: {
270
- flex: 1,
271
- },
272
- scrollContent: {
273
- paddingHorizontal: Spacing.contentPaddingHorizontal,
274
- },
275
- centerContent: {
276
- justifyContent: "center",
277
- alignItems: "center",
278
- },
279
- row: {
280
- flexDirection: "row",
281
- alignItems: "center",
282
- },
283
- rowGap: {
284
- flexDirection: "row",
285
- alignItems: "center",
286
- gap: Spacing.sm,
287
- },
288
- rowBetween: {
289
- flexDirection: "row",
290
- justifyContent: "space-between",
291
- alignItems: "center",
292
- },
293
- rowBetweenEnd: {
294
- flexDirection: "row",
295
- justifyContent: "space-between",
296
- alignItems: "flex-end",
297
- },
298
- rowBetweenStart: {
299
- flexDirection: "row",
300
- justifyContent: "space-between",
301
- alignItems: "flex-start",
302
- },
303
- rowCenter: {
304
- flexDirection: "row",
305
- justifyContent: "center",
306
- alignItems: "center",
307
- },
308
- rowCenterGap: {
309
- flexDirection: "row",
310
- justifyContent: "center",
311
- alignItems: "center",
312
- gap: Spacing.detailGap,
313
- },
314
- column: {
315
- flexDirection: "column",
316
- },
317
- columnCenter: {
318
- flexDirection: "column",
319
- alignItems: "center",
320
- },
321
- flex1: {
322
- flex: 1,
323
- },
324
- textCenter: {
325
- textAlign: "center",
326
- },
327
- avatar: {
328
- width: Spacing.avatarSize,
329
- height: Spacing.avatarSize,
330
- borderRadius: Spacing.avatarSize / 2,
331
- borderWidth: 1,
332
- justifyContent: "center",
333
- alignItems: "center",
334
- },
335
- iconButton: {
336
- width: Spacing.iconButtonSize,
337
- height: Spacing.iconButtonSize,
338
- borderRadius: Spacing.iconButtonSize / 2,
339
- justifyContent: "center",
340
- alignItems: "center",
341
- },
342
- button: {
343
- flexDirection: "row",
344
- alignItems: "center",
345
- justifyContent: "center",
346
- gap: Spacing.sm,
347
- paddingHorizontal: Spacing.contentPaddingHorizontal,
348
- paddingVertical: Spacing.md,
349
- borderWidth: 1,
350
- borderRadius: BorderRadius.full,
351
- },
352
- buttonSmall: {
353
- flexDirection: "row",
354
- alignItems: "center",
355
- justifyContent: "center",
356
- gap: Spacing.sm,
357
- paddingHorizontal: Spacing.lg,
358
- paddingVertical: Spacing.sm,
359
- borderRadius: BorderRadius.sm,
360
- },
361
- card: {
362
- borderRadius: BorderRadius.xl,
363
- padding: Spacing.sm,
364
- },
365
- chartContainer: {
366
- height: Spacing.chartHeight,
367
- borderRadius: BorderRadius.xl,
368
- padding: Spacing.sm,
369
- borderWidth: 1,
370
- position: "relative",
371
- },
372
- chartGrid: {
373
- position: "absolute",
374
- top: 0,
375
- left: 0,
376
- right: 0,
377
- bottom: 0,
378
- padding: Spacing.lg,
379
- justifyContent: "space-between",
380
- },
381
- chartEmpty: {
382
- flex: 1,
383
- justifyContent: "center",
384
- alignItems: "center",
385
- },
386
- progressBar: {
387
- width: "100%",
388
- height: 2,
389
- borderRadius: 1,
390
- overflow: "hidden",
391
- marginTop: Spacing.sm,
392
- },
393
- progressFill: {
394
- height: "100%",
395
- borderRadius: 1,
396
- },
397
- divider: {
398
- height: 1,
399
- width: "100%",
400
- },
401
- dividerVertical: {
402
- width: 1,
403
- height: "100%",
404
- },
405
- dot: {
406
- width: 4,
407
- height: 4,
408
- borderRadius: 2,
409
- },
410
- absoluteFill: {
411
- position: "absolute",
412
- top: 0,
413
- left: 0,
414
- right: 0,
415
- bottom: 0,
416
- },
417
- tooltip: {
418
- paddingHorizontal: Spacing.sm,
419
- paddingVertical: Spacing.xs,
420
- borderRadius: BorderRadius.xs,
421
- },
422
- emptyState: {
423
- alignItems: "center",
424
- paddingVertical: Spacing["2xl"],
425
- },
426
- section: {
427
- marginBottom: Spacing.sectionGap,
428
- },
429
- sectionLarge: {
430
- marginBottom: Spacing.sectionGapLarge,
431
- },
432
- sectionHeader: {
433
- flexDirection: "row",
434
- justifyContent: "space-between",
435
- alignItems: "flex-end",
436
- marginBottom: Spacing["2xl"],
437
- },
438
- gridLine: {
439
- width: "100%",
440
- height: 1,
441
- borderTopWidth: 1,
442
- borderStyle: "dashed",
443
- },
444
- statsGrid: {
445
- flexDirection: "row",
446
- },
447
- statsColumn: {
448
- flex: 1,
449
- },
450
- statsColumnLeft: {
451
- paddingRight: Spacing.lg,
452
- },
453
- statsColumnRight: {
454
- paddingLeft: Spacing.contentPaddingHorizontal,
455
- borderLeftWidth: 1,
456
- },
457
- statsHeader: {
458
- flexDirection: "row",
459
- justifyContent: "space-between",
460
- alignItems: "flex-start",
461
- marginBottom: Spacing.lg,
462
- },
463
- detailItem: {
464
- alignItems: "center",
465
- },
466
- header: {
467
- flexDirection: "row",
468
- justifyContent: "space-between",
469
- alignItems: "flex-end",
470
- paddingBottom: Spacing.lg,
471
- },
472
- loadingContainer: {
473
- flex: 1,
474
- justifyContent: "center",
475
- alignItems: "center",
476
- },
477
- glucoseSection: {
478
- marginTop: Spacing["2xl"],
479
- marginBottom: Spacing.sectionGap,
480
- alignItems: "center",
481
- },
482
- glucoseHeader: {
483
- flexDirection: "row",
484
- alignItems: "center",
485
- gap: Spacing.sm,
486
- marginBottom: Spacing.sm,
487
- },
488
- glucoseUnit: {
489
- flexDirection: "row",
490
- alignItems: "center",
491
- gap: Spacing.sm,
492
- marginTop: Spacing.sm,
493
- },
494
- glucoseDetails: {
495
- flexDirection: "row",
496
- justifyContent: "center",
497
- gap: Spacing.detailGap,
498
- marginTop: Spacing["2xl"],
499
- },
500
- });
501
-
502
- export const createThemedStyles = (theme: Theme) => {
503
- return StyleSheet.create({
504
- container: {
505
- ...CommonStyles.container,
506
- backgroundColor: theme.backgroundRoot,
507
- },
508
- scrollContent: {
509
- ...CommonStyles.scrollContent,
510
- },
511
- text: {
512
- color: theme.text,
513
- },
514
- textPrimary: {
515
- color: theme.textPrimary,
516
- },
517
- textSecondary: {
518
- color: theme.textSecondary,
519
- },
520
- textMuted: {
521
- color: theme.textMuted,
522
- },
523
- textDisabled: {
524
- color: theme.textDisabled,
525
- },
526
- textSuccess: {
527
- color: theme.success,
528
- },
529
- textError: {
530
- color: theme.error,
531
- },
532
- textInfo: {
533
- color: theme.info,
534
- },
535
- textButton: {
536
- color: theme.buttonText,
537
- },
538
- avatar: {
539
- ...CommonStyles.avatar,
540
- borderColor: theme.border,
541
- backgroundColor: theme.backgroundRoot,
542
- },
543
- avatarText: {
544
- ...Typography.small,
545
- fontFamily: "serif",
546
- color: theme.textPrimary,
547
- },
548
- iconButton: {
549
- ...CommonStyles.iconButton,
550
- backgroundColor: theme.backgroundSecondary,
551
- },
552
- iconButtonText: {
553
- ...Typography.caption,
554
- color: theme.textMuted,
555
- },
556
- button: {
557
- ...CommonStyles.button,
558
- borderColor: theme.border,
559
- backgroundColor: theme.backgroundRoot,
560
- ...Shadow.minimal,
561
- },
562
- buttonText: {
563
- ...Typography.smallMedium,
564
- letterSpacing: 0.5,
565
- color: theme.textPrimary,
566
- },
567
- buttonOutline: {
568
- ...CommonStyles.buttonSmall,
569
- backgroundColor: theme.backgroundSecondary,
570
- },
571
- buttonOutlineText: {
572
- ...Typography.small,
573
- color: theme.textSecondary,
574
- },
575
- buttonSmall: {
576
- ...CommonStyles.buttonSmall,
577
- backgroundColor: theme.backgroundSecondary,
578
- },
579
- buttonSmallText: {
580
- ...Typography.small,
581
- color: theme.textSecondary,
582
- },
583
- card: {
584
- ...CommonStyles.card,
585
- backgroundColor: theme.backgroundRoot,
586
- },
587
- chartContainer: {
588
- ...CommonStyles.chartContainer,
589
- backgroundColor: theme.chartBackground,
590
- borderColor: theme.backgroundSecondary,
591
- },
592
- chartGrid: {
593
- ...CommonStyles.chartGrid,
594
- },
595
- chartEmpty: {
596
- ...CommonStyles.chartEmpty,
597
- },
598
- chartEmptyText: {
599
- ...Typography.small,
600
- color: theme.textMuted,
601
- },
602
- chartTooltip: {
603
- position: "absolute",
604
- right: 0,
605
- top: "55%",
606
- backgroundColor: theme.accent,
607
- paddingHorizontal: Spacing.sm,
608
- paddingVertical: Spacing.xs,
609
- borderRadius: BorderRadius.xs,
610
- ...Shadow.lg,
611
- },
612
- chartTooltipText: {
613
- ...Typography.tiny,
614
- color: theme.backgroundRoot,
615
- },
616
- progressBar: {
617
- ...CommonStyles.progressBar,
618
- backgroundColor: theme.backgroundSecondary,
619
- },
620
- progressFill: {
621
- ...CommonStyles.progressFill,
622
- backgroundColor: theme.accent,
623
- },
624
- progressFillMuted: {
625
- ...CommonStyles.progressFill,
626
- backgroundColor: theme.textMuted,
627
- },
628
- divider: {
629
- ...CommonStyles.divider,
630
- backgroundColor: theme.divider,
631
- },
632
- dividerVertical: {
633
- ...CommonStyles.dividerVertical,
634
- backgroundColor: theme.borderLight,
635
- },
636
- dot: {
637
- ...CommonStyles.dot,
638
- backgroundColor: theme.textDisabled,
639
- },
640
- tooltip: {
641
- ...CommonStyles.tooltip,
642
- backgroundColor: theme.accent,
643
- ...Shadow.lg,
644
- },
645
- tooltipText: {
646
- color: theme.backgroundRoot,
647
- },
648
- gridLine: {
649
- ...CommonStyles.gridLine,
650
- borderTopColor: theme.border,
651
- },
652
- emptyState: {
653
- ...CommonStyles.emptyState,
654
- },
655
- emptyText: {
656
- ...Typography.small,
657
- color: theme.textMuted,
658
- marginBottom: Spacing.lg,
659
- },
660
- section: {
661
- ...CommonStyles.section,
662
- },
663
- sectionLarge: {
664
- ...CommonStyles.sectionLarge,
665
- },
666
- sectionHeader: {
667
- ...CommonStyles.sectionHeader,
668
- },
669
- statsGrid: {
670
- ...CommonStyles.statsGrid,
671
- marginBottom: Spacing.sectionGap,
672
- },
673
- statsColumn: {
674
- ...CommonStyles.statsColumn,
675
- },
676
- statsColumnLeft: {
677
- ...CommonStyles.statsColumnLeft,
678
- },
679
- statsColumnRight: {
680
- ...CommonStyles.statsColumnRight,
681
- borderLeftColor: theme.borderLight,
682
- },
683
- statsHeader: {
684
- ...CommonStyles.statsHeader,
685
- },
686
- statsTitle: {
687
- ...Typography.title,
688
- color: theme.textPrimary,
689
- },
690
- statsValue: {
691
- ...Typography.stat,
692
- color: theme.textPrimary,
693
- },
694
- statsUnit: {
695
- ...Typography.caption,
696
- color: theme.textMuted,
697
- },
698
- statsSubtext: {
699
- ...Typography.caption,
700
- color: theme.textMuted,
701
- marginTop: Spacing.sm,
702
- },
703
- detailItem: {
704
- ...CommonStyles.detailItem,
705
- },
706
- detailLabel: {
707
- ...Typography.caption,
708
- color: theme.textMuted,
709
- marginBottom: Spacing.xs,
710
- },
711
- detailValue: {
712
- ...Typography.bodyMedium,
713
- color: theme.textPrimary,
714
- },
715
- header: {
716
- ...CommonStyles.header,
717
- },
718
- dateText: {
719
- ...Typography.captionMedium,
720
- color: theme.textMuted,
721
- letterSpacing: 1,
722
- textTransform: "uppercase",
723
- marginBottom: Spacing.xs,
724
- },
725
- greetingText: {
726
- ...Typography.h3,
727
- color: theme.textPrimary,
728
- },
729
- greetingName: {
730
- fontWeight: "700",
731
- },
732
- label: {
733
- ...Typography.label,
734
- color: theme.textMuted,
735
- },
736
- labelSmall: {
737
- ...Typography.labelSmall,
738
- color: theme.textMuted,
739
- },
740
- labelTitle: {
741
- ...Typography.labelTitle,
742
- color: theme.textPrimary,
743
- },
744
- loadingContainer: {
745
- ...CommonStyles.loadingContainer,
746
- backgroundColor: theme.backgroundRoot,
747
- },
748
- statusNormal: {
749
- ...Typography.smallMedium,
750
- color: theme.success,
751
- },
752
- statusHigh: {
753
- ...Typography.smallMedium,
754
- color: theme.error,
755
- },
756
- statusLow: {
757
- ...Typography.smallMedium,
758
- color: theme.info,
759
- },
760
- unitText: {
761
- ...Typography.smallMedium,
762
- color: theme.textMuted,
763
- },
764
- glucoseSection: {
765
- ...CommonStyles.glucoseSection,
766
- },
767
- glucoseHeader: {
768
- ...CommonStyles.glucoseHeader,
769
- },
770
- glucoseLabel: {
771
- ...Typography.label,
772
- color: theme.textMuted,
773
- },
774
- glucoseValue: {
775
- ...Typography.displayLarge,
776
- color: theme.textPrimary,
777
- },
778
- glucoseEmptyValue: {
779
- ...Typography.displayMedium,
780
- color: theme.textMuted,
781
- },
782
- glucoseUnit: {
783
- ...CommonStyles.glucoseUnit,
784
- },
785
- glucoseDetails: {
786
- ...CommonStyles.glucoseDetails,
787
- },
788
- trendLink: {
789
- flexDirection: "row",
790
- alignItems: "center",
791
- gap: Spacing.xs,
792
- },
793
- trendLinkText: {
794
- ...Typography.caption,
795
- color: theme.textMuted,
796
- },
797
- refreshButton: {
798
- ...CommonStyles.buttonSmall,
799
- backgroundColor: theme.backgroundSecondary,
800
- },
801
- refreshButtonText: {
802
- ...Typography.small,
803
- color: theme.textSecondary,
804
- },
805
- input: {
806
- height: Spacing.inputHeight,
807
- backgroundColor: theme.backgroundRoot,
808
- borderRadius: BorderRadius.sm,
809
- borderWidth: 1,
810
- borderColor: theme.border,
811
- paddingHorizontal: Spacing.lg,
812
- ...Typography.body,
813
- color: theme.textPrimary,
814
- },
815
- inputPlaceholder: {
816
- color: theme.placeholder,
817
- },
818
- link: {
819
- ...Typography.link,
820
- color: theme.link,
821
- },
822
- navItem: {
823
- flex: 1,
824
- alignItems: "center",
825
- justifyContent: "center",
826
- paddingVertical: Spacing.sm,
827
- },
828
- navIcon: {
829
- fontSize: 20,
830
- marginBottom: Spacing.xs,
831
- },
832
- navLabel: {
833
- ...Typography.navLabel,
834
- },
835
- navActive: {
836
- color: theme.textPrimary,
837
- },
838
- navInactive: {
839
- color: theme.textMuted,
840
- },
841
- navIndicator: {
842
- width: 4,
843
- height: 4,
844
- borderRadius: 2,
845
- backgroundColor: theme.textPrimary,
846
- position: "absolute",
847
- bottom: -8,
848
- },
849
- });
850
- };