@dailyautomations/ui 1.2.0 → 1.4.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 (129) hide show
  1. package/dist/components/common/button.js +6 -6
  2. package/dist/components/common/button.js.map +1 -1
  3. package/dist/components/dev/theme-tester.d.ts +2 -0
  4. package/dist/components/dev/theme-tester.d.ts.map +1 -0
  5. package/dist/components/dev/theme-tester.js +105 -0
  6. package/dist/components/dev/theme-tester.js.map +1 -0
  7. package/dist/components/layout/app-shell.d.ts +14 -0
  8. package/dist/components/layout/app-shell.d.ts.map +1 -0
  9. package/dist/components/layout/app-shell.js +25 -0
  10. package/dist/components/layout/app-shell.js.map +1 -0
  11. package/dist/components/ui/alert-dialog.d.ts +15 -0
  12. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  13. package/dist/components/ui/alert-dialog.js +40 -0
  14. package/dist/components/ui/alert-dialog.js.map +1 -0
  15. package/dist/components/ui/avatar.d.ts +7 -0
  16. package/dist/components/ui/avatar.d.ts.map +1 -0
  17. package/dist/components/ui/avatar.js +15 -0
  18. package/dist/components/ui/avatar.js.map +1 -0
  19. package/dist/components/ui/calendar.d.ts +9 -0
  20. package/dist/components/ui/calendar.d.ts.map +1 -0
  21. package/dist/components/ui/calendar.js +37 -0
  22. package/dist/components/ui/calendar.js.map +1 -0
  23. package/dist/components/ui/collapsible.d.ts +7 -0
  24. package/dist/components/ui/collapsible.d.ts.map +1 -0
  25. package/dist/components/ui/collapsible.js +15 -0
  26. package/dist/components/ui/collapsible.js.map +1 -0
  27. package/dist/components/ui/combobox.d.ts +20 -0
  28. package/dist/components/ui/combobox.d.ts.map +1 -0
  29. package/dist/components/ui/combobox.js +21 -0
  30. package/dist/components/ui/combobox.js.map +1 -0
  31. package/dist/components/ui/command.d.ts +81 -0
  32. package/dist/components/ui/command.d.ts.map +1 -0
  33. package/dist/components/ui/command.js +30 -0
  34. package/dist/components/ui/command.js.map +1 -0
  35. package/dist/components/ui/confirm-dialog.d.ts +16 -0
  36. package/dist/components/ui/confirm-dialog.d.ts.map +1 -0
  37. package/dist/components/ui/confirm-dialog.js +31 -0
  38. package/dist/components/ui/confirm-dialog.js.map +1 -0
  39. package/dist/components/ui/date-picker.d.ts +13 -0
  40. package/dist/components/ui/date-picker.d.ts.map +1 -0
  41. package/dist/components/ui/date-picker.js +19 -0
  42. package/dist/components/ui/date-picker.js.map +1 -0
  43. package/dist/components/ui/dropdown-menu.d.ts +25 -0
  44. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  45. package/dist/components/ui/dropdown-menu.js +51 -0
  46. package/dist/components/ui/dropdown-menu.js.map +1 -0
  47. package/dist/components/ui/empty-state.d.ts +14 -0
  48. package/dist/components/ui/empty-state.d.ts.map +1 -0
  49. package/dist/components/ui/empty-state.js +20 -0
  50. package/dist/components/ui/empty-state.js.map +1 -0
  51. package/dist/components/ui/filter-bar.d.ts +29 -0
  52. package/dist/components/ui/filter-bar.d.ts.map +1 -0
  53. package/dist/components/ui/filter-bar.js +19 -0
  54. package/dist/components/ui/filter-bar.js.map +1 -0
  55. package/dist/components/ui/form.d.ts +25 -0
  56. package/dist/components/ui/form.d.ts.map +1 -0
  57. package/dist/components/ui/form.js +62 -0
  58. package/dist/components/ui/form.js.map +1 -0
  59. package/dist/components/ui/input-otp.d.ts +15 -0
  60. package/dist/components/ui/input-otp.d.ts.map +1 -0
  61. package/dist/components/ui/input-otp.js +50 -0
  62. package/dist/components/ui/input-otp.js.map +1 -0
  63. package/dist/components/ui/loading-spinner.d.ts +19 -0
  64. package/dist/components/ui/loading-spinner.d.ts.map +1 -0
  65. package/dist/components/ui/loading-spinner.js +28 -0
  66. package/dist/components/ui/loading-spinner.js.map +1 -0
  67. package/dist/components/ui/popover.d.ts +8 -0
  68. package/dist/components/ui/popover.d.ts.map +1 -0
  69. package/dist/components/ui/popover.js +18 -0
  70. package/dist/components/ui/popover.js.map +1 -0
  71. package/dist/components/ui/progress.d.ts +8 -0
  72. package/dist/components/ui/progress.d.ts.map +1 -0
  73. package/dist/components/ui/progress.js +9 -0
  74. package/dist/components/ui/progress.js.map +1 -0
  75. package/dist/components/ui/radio-group.d.ts +6 -0
  76. package/dist/components/ui/radio-group.d.ts.map +1 -0
  77. package/dist/components/ui/radio-group.js +12 -0
  78. package/dist/components/ui/radio-group.js.map +1 -0
  79. package/dist/components/ui/scroll-area.d.ts +6 -0
  80. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  81. package/dist/components/ui/scroll-area.js +14 -0
  82. package/dist/components/ui/scroll-area.js.map +1 -0
  83. package/dist/components/ui/separator.d.ts +7 -0
  84. package/dist/components/ui/separator.d.ts.map +1 -0
  85. package/dist/components/ui/separator.js +9 -0
  86. package/dist/components/ui/separator.js.map +1 -0
  87. package/dist/components/ui/sheet.d.ts +21 -0
  88. package/dist/components/ui/sheet.d.ts.map +1 -0
  89. package/dist/components/ui/sheet.js +50 -0
  90. package/dist/components/ui/sheet.js.map +1 -0
  91. package/dist/components/ui/slider.d.ts +7 -0
  92. package/dist/components/ui/slider.d.ts.map +1 -0
  93. package/dist/components/ui/slider.js +9 -0
  94. package/dist/components/ui/slider.js.map +1 -0
  95. package/dist/components/ui/stat-card.d.ts +23 -0
  96. package/dist/components/ui/stat-card.d.ts.map +1 -0
  97. package/dist/components/ui/stat-card.js +46 -0
  98. package/dist/components/ui/stat-card.js.map +1 -0
  99. package/dist/components/ui/switch.d.ts +7 -0
  100. package/dist/components/ui/switch.d.ts.map +1 -0
  101. package/dist/components/ui/switch.js +9 -0
  102. package/dist/components/ui/switch.js.map +1 -0
  103. package/dist/components/ui/table.d.ts +11 -0
  104. package/dist/components/ui/table.d.ts.map +1 -0
  105. package/dist/components/ui/table.js +28 -0
  106. package/dist/components/ui/table.js.map +1 -0
  107. package/dist/components/ui/textarea-autosize.d.ts +12 -0
  108. package/dist/components/ui/textarea-autosize.d.ts.map +1 -0
  109. package/dist/components/ui/textarea-autosize.js +44 -0
  110. package/dist/components/ui/textarea-autosize.js.map +1 -0
  111. package/dist/components/ui/tooltip.d.ts +8 -0
  112. package/dist/components/ui/tooltip.d.ts.map +1 -0
  113. package/dist/components/ui/tooltip.js +18 -0
  114. package/dist/components/ui/tooltip.js.map +1 -0
  115. package/dist/config/themes.d.ts +18 -0
  116. package/dist/config/themes.d.ts.map +1 -0
  117. package/dist/config/themes.js +267 -0
  118. package/dist/config/themes.js.map +1 -0
  119. package/dist/index.d.ts +45 -0
  120. package/dist/index.d.ts.map +1 -1
  121. package/dist/index.js +29 -0
  122. package/dist/index.js.map +1 -1
  123. package/examples/home-page.tsx +81 -81
  124. package/examples/main.tsx +24 -9
  125. package/examples/pages/ComponentsPage.tsx +726 -0
  126. package/examples/pages/LandingPage.tsx +860 -0
  127. package/examples/pages/index.ts +2 -0
  128. package/examples/styles.css +61 -0
  129. package/package.json +34 -1
@@ -6,26 +6,26 @@ import { Badge } from '../src/components/common/badge';
6
6
 
7
7
  /**
8
8
  * Daily X Homepage Template
9
- * Dark theme with purple (#8B5CF6) and orange (#F97316) accents
10
- * Per handoff document specifications
9
+ * Dark theme with purple primary and configurable accent colors
10
+ * Uses CSS variables for theme switching support
11
11
  */
12
12
  export default function HomePage() {
13
13
  return (
14
- <div className="min-h-screen bg-[#0F0F14] text-white font-['Inter',sans-serif]">
14
+ <div className="min-h-screen bg-background text-foreground font-['Inter',sans-serif]">
15
15
  {/* Navigation */}
16
- <nav className="border-b border-zinc-800 bg-[#0F0F14]/90 backdrop-blur-md sticky top-0 z-50">
16
+ <nav className="border-b border-border bg-background/90 backdrop-blur-md sticky top-0 z-50">
17
17
  <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
18
18
  <div className="flex justify-between items-center h-16">
19
19
  <div className="flex items-center gap-3">
20
- <div className="w-9 h-9 bg-gradient-to-br from-purple-500 to-orange-500 rounded-lg flex items-center justify-center">
20
+ <div className="w-9 h-9 bg-gradient-to-br from-primary to-accent rounded-lg flex items-center justify-center">
21
21
  <span className="text-white font-extrabold text-sm">dX</span>
22
22
  </div>
23
- <span className="font-bold text-white text-lg tracking-tight">daily x</span>
23
+ <span className="font-bold text-foreground text-lg tracking-tight">daily x</span>
24
24
  </div>
25
25
  <div className="hidden md:flex items-center gap-8">
26
- <a href="#products" className="text-sm text-zinc-400 hover:text-white transition-colors">Products</a>
27
- <a href="#features" className="text-sm text-zinc-400 hover:text-white transition-colors">Features</a>
28
- <a href="#pricing" className="text-sm text-zinc-400 hover:text-white transition-colors">Pricing</a>
26
+ <a href="#products" className="text-sm text-muted-foreground hover:text-foreground transition-colors">Products</a>
27
+ <a href="#features" className="text-sm text-muted-foreground hover:text-foreground transition-colors">Features</a>
28
+ <a href="#pricing" className="text-sm text-muted-foreground hover:text-foreground transition-colors">Pricing</a>
29
29
  <Button variant="ghost" size="sm">Sign In</Button>
30
30
  <Button size="sm">Get Started</Button>
31
31
  </div>
@@ -36,21 +36,21 @@ export default function HomePage() {
36
36
  {/* Hero Section */}
37
37
  <section className="pt-24 pb-32 px-4 sm:px-6 lg:px-8 relative overflow-hidden">
38
38
  {/* Background gradient orbs */}
39
- <div className="absolute top-0 left-1/4 w-96 h-96 bg-purple-500/20 rounded-full blur-3xl" />
40
- <div className="absolute bottom-0 right-1/4 w-96 h-96 bg-orange-500/10 rounded-full blur-3xl" />
39
+ <div className="absolute top-0 left-1/4 w-96 h-96 bg-primary/20 rounded-full blur-3xl" />
40
+ <div className="absolute bottom-0 right-1/4 w-96 h-96 bg-accent/10 rounded-full blur-3xl" />
41
41
 
42
42
  <div className="max-w-7xl mx-auto relative">
43
43
  <div className="text-center max-w-4xl mx-auto">
44
- <Badge className="mb-8 bg-purple-500/10 text-purple-400 border-purple-500/30 hover:bg-purple-500/20">
44
+ <Badge className="mb-8 bg-primary/10 text-primary border-primary/30 hover:bg-primary/20">
45
45
  AI-Powered Automation Suite
46
46
  </Badge>
47
47
  <h1 className="text-5xl md:text-6xl lg:text-7xl font-extrabold tracking-tight mb-8 leading-[1.1]">
48
48
  Automate Your
49
- <span className="block bg-gradient-to-r from-purple-400 via-purple-500 to-orange-500 bg-clip-text text-transparent">
49
+ <span className="block bg-gradient-to-r from-primary via-primary to-accent bg-clip-text text-transparent">
50
50
  Daily Workflows
51
51
  </span>
52
52
  </h1>
53
- <p className="text-xl md:text-2xl text-zinc-400 mb-12 leading-relaxed max-w-2xl mx-auto">
53
+ <p className="text-xl md:text-2xl text-muted-foreground mb-12 leading-relaxed max-w-2xl mx-auto">
54
54
  Five intelligent tools that transform how teams work. From LinkedIn coordination to SEO automation—powered by AI that learns your patterns.
55
55
  </p>
56
56
  <div className="flex flex-col sm:flex-row gap-4 justify-center">
@@ -74,10 +74,10 @@ export default function HomePage() {
74
74
  ].map((product) => (
75
75
  <div
76
76
  key={product.name}
77
- className="px-4 py-2 bg-zinc-900 border border-zinc-800 rounded-full text-sm hover:border-purple-500/50 hover:bg-zinc-800 transition-all cursor-pointer group"
77
+ className="px-4 py-2 bg-card border border-border rounded-full text-sm hover:border-primary/50 hover:bg-muted transition-all cursor-pointer group"
78
78
  >
79
- <span className="text-purple-400 font-semibold group-hover:text-purple-300">{product.name}</span>
80
- <span className="text-zinc-500 ml-2">{product.desc}</span>
79
+ <span className="text-accent font-semibold group-hover:text-accent">{product.name}</span>
80
+ <span className="text-muted-foreground ml-2">{product.desc}</span>
81
81
  </div>
82
82
  ))}
83
83
  </div>
@@ -85,55 +85,55 @@ export default function HomePage() {
85
85
  </section>
86
86
 
87
87
  {/* Features Grid */}
88
- <section id="features" className="py-24 px-4 sm:px-6 lg:px-8 bg-zinc-900/50">
88
+ <section id="features" className="py-24 px-4 sm:px-6 lg:px-8 bg-card/50">
89
89
  <div className="max-w-7xl mx-auto">
90
90
  <div className="text-center mb-16">
91
91
  <h2 className="text-3xl md:text-4xl font-extrabold mb-4">
92
92
  Built for Modern Teams
93
93
  </h2>
94
- <p className="text-lg text-zinc-400 max-w-2xl mx-auto">
94
+ <p className="text-lg text-muted-foreground max-w-2xl mx-auto">
95
95
  AI-driven tools designed to eliminate repetitive work and amplify your impact
96
96
  </p>
97
97
  </div>
98
98
 
99
99
  <div className="grid md:grid-cols-3 gap-6">
100
- <Card className="bg-zinc-900 border-zinc-800 hover:border-purple-500/30 transition-colors group">
100
+ <Card className="bg-card border-border hover:border-primary/30 transition-colors group">
101
101
  <CardHeader>
102
- <div className="w-12 h-12 bg-purple-500/10 rounded-xl flex items-center justify-center mb-4 group-hover:bg-purple-500/20 transition-colors">
103
- <svg className="w-6 h-6 text-purple-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
102
+ <div className="w-12 h-12 bg-primary/10 rounded-xl flex items-center justify-center mb-4 group-hover:bg-primary/20 transition-colors">
103
+ <svg className="w-6 h-6 text-primary" fill="none" viewBox="0 0 24 24" stroke="currentColor">
104
104
  <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" />
105
105
  </svg>
106
106
  </div>
107
- <CardTitle className="text-xl text-white">Intelligent Memory</CardTitle>
108
- <CardDescription className="text-base text-zinc-400">
107
+ <CardTitle className="text-xl text-foreground">Intelligent Memory</CardTitle>
108
+ <CardDescription className="text-base text-muted-foreground">
109
109
  AI that learns from your work patterns and surfaces the right information exactly when you need it.
110
110
  </CardDescription>
111
111
  </CardHeader>
112
112
  </Card>
113
113
 
114
- <Card className="bg-zinc-900 border-zinc-800 hover:border-orange-500/30 transition-colors group">
114
+ <Card className="bg-card border-border hover:border-accent/30 transition-colors group">
115
115
  <CardHeader>
116
- <div className="w-12 h-12 bg-orange-500/10 rounded-xl flex items-center justify-center mb-4 group-hover:bg-orange-500/20 transition-colors">
117
- <svg className="w-6 h-6 text-orange-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
116
+ <div className="w-12 h-12 bg-accent/10 rounded-xl flex items-center justify-center mb-4 group-hover:bg-accent/20 transition-colors">
117
+ <svg className="w-6 h-6 text-accent" fill="none" viewBox="0 0 24 24" stroke="currentColor">
118
118
  <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M13 10V3L4 14h7v7l9-11h-7z" />
119
119
  </svg>
120
120
  </div>
121
- <CardTitle className="text-xl text-white">Lightning Fast</CardTitle>
122
- <CardDescription className="text-base text-zinc-400">
121
+ <CardTitle className="text-xl text-foreground">Lightning Fast</CardTitle>
122
+ <CardDescription className="text-base text-muted-foreground">
123
123
  Sub-2-second load times. Lighthouse scores above 90. Optimized for speed at every layer.
124
124
  </CardDescription>
125
125
  </CardHeader>
126
126
  </Card>
127
127
 
128
- <Card className="bg-zinc-900 border-zinc-800 hover:border-purple-500/30 transition-colors group">
128
+ <Card className="bg-card border-border hover:border-primary/30 transition-colors group">
129
129
  <CardHeader>
130
- <div className="w-12 h-12 bg-purple-500/10 rounded-xl flex items-center justify-center mb-4 group-hover:bg-purple-500/20 transition-colors">
131
- <svg className="w-6 h-6 text-purple-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
130
+ <div className="w-12 h-12 bg-primary/10 rounded-xl flex items-center justify-center mb-4 group-hover:bg-primary/20 transition-colors">
131
+ <svg className="w-6 h-6 text-primary" fill="none" viewBox="0 0 24 24" stroke="currentColor">
132
132
  <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" />
133
133
  </svg>
134
134
  </div>
135
- <CardTitle className="text-xl text-white">Real-time Sync</CardTitle>
136
- <CardDescription className="text-base text-zinc-400">
135
+ <CardTitle className="text-xl text-foreground">Real-time Sync</CardTitle>
136
+ <CardDescription className="text-base text-muted-foreground">
137
137
  Changes propagate instantly across all devices. Conflict-free collaboration built in.
138
138
  </CardDescription>
139
139
  </CardHeader>
@@ -147,13 +147,13 @@ export default function HomePage() {
147
147
  <div className="max-w-7xl mx-auto">
148
148
  <div className="grid lg:grid-cols-2 gap-12 items-center">
149
149
  <div>
150
- <Badge className="mb-6 bg-orange-500/10 text-orange-400 border-orange-500/30">
150
+ <Badge className="mb-6 bg-accent/10 text-accent border-accent/30">
151
151
  Featured Product
152
152
  </Badge>
153
153
  <h2 className="text-4xl md:text-5xl font-extrabold mb-6">
154
154
  dailyreach.ai
155
155
  </h2>
156
- <p className="text-xl text-zinc-400 mb-8 leading-relaxed">
156
+ <p className="text-xl text-muted-foreground mb-8 leading-relaxed">
157
157
  Coordinate your team's LinkedIn presence with AI-powered content recommendations, optimal posting times, and engagement analytics.
158
158
  </p>
159
159
  <ul className="space-y-4 mb-8">
@@ -163,9 +163,9 @@ export default function HomePage() {
163
163
  'Automated scheduling',
164
164
  'Engagement analytics',
165
165
  ].map((feature) => (
166
- <li key={feature} className="flex items-center gap-3 text-zinc-300">
167
- <div className="w-5 h-5 bg-purple-500/20 rounded-full flex items-center justify-center">
168
- <svg className="w-3 h-3 text-purple-400" fill="currentColor" viewBox="0 0 20 20">
166
+ <li key={feature} className="flex items-center gap-3 text-foreground/80">
167
+ <div className="w-5 h-5 bg-primary/20 rounded-full flex items-center justify-center">
168
+ <svg className="w-3 h-3 text-primary" fill="currentColor" viewBox="0 0 20 20">
169
169
  <path fillRule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clipRule="evenodd" />
170
170
  </svg>
171
171
  </div>
@@ -178,31 +178,31 @@ export default function HomePage() {
178
178
  </Button>
179
179
  </div>
180
180
  <div className="relative">
181
- <div className="rounded-2xl border border-zinc-800 bg-zinc-900 overflow-hidden shadow-2xl">
182
- <div className="aspect-[4/3] bg-gradient-to-br from-purple-500/5 to-orange-500/5 flex items-center justify-center">
181
+ <div className="rounded-2xl border border-border bg-card overflow-hidden shadow-2xl">
182
+ <div className="aspect-[4/3] bg-gradient-to-br from-primary/5 to-accent/5 flex items-center justify-center">
183
183
  <div className="text-center">
184
- <div className="w-20 h-20 bg-gradient-to-br from-purple-500/20 to-orange-500/20 rounded-2xl mx-auto mb-4 flex items-center justify-center">
185
- <svg className="w-10 h-10 text-purple-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
184
+ <div className="w-20 h-20 bg-gradient-to-br from-primary/20 to-accent/20 rounded-2xl mx-auto mb-4 flex items-center justify-center">
185
+ <svg className="w-10 h-10 text-primary" fill="none" viewBox="0 0 24 24" stroke="currentColor">
186
186
  <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={1.5} d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" />
187
187
  </svg>
188
188
  </div>
189
- <p className="text-zinc-500 text-sm">Product Screenshot</p>
189
+ <p className="text-muted-foreground text-sm">Product Screenshot</p>
190
190
  </div>
191
191
  </div>
192
192
  </div>
193
193
  {/* Floating accent */}
194
- <div className="absolute -bottom-6 -right-6 w-32 h-32 bg-orange-500/10 rounded-full blur-2xl" />
194
+ <div className="absolute -bottom-6 -right-6 w-32 h-32 bg-accent/10 rounded-full blur-2xl" />
195
195
  </div>
196
196
  </div>
197
197
  </div>
198
198
  </section>
199
199
 
200
200
  {/* Social Proof */}
201
- <section className="py-24 px-4 sm:px-6 lg:px-8 bg-zinc-900/50">
201
+ <section className="py-24 px-4 sm:px-6 lg:px-8 bg-card/50">
202
202
  <div className="max-w-4xl mx-auto text-center">
203
203
  <div className="inline-flex items-center gap-1 mb-8">
204
204
  {[...Array(5)].map((_, i) => (
205
- <svg key={i} className="w-5 h-5 text-orange-400" fill="currentColor" viewBox="0 0 20 20">
205
+ <svg key={i} className="w-5 h-5 text-accent" fill="currentColor" viewBox="0 0 20 20">
206
206
  <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z" />
207
207
  </svg>
208
208
  ))}
@@ -211,12 +211,12 @@ export default function HomePage() {
211
211
  "Daily X cut our context switching by 60%. It's like having a second brain for the entire team."
212
212
  </blockquote>
213
213
  <div className="flex items-center justify-center gap-4">
214
- <div className="w-12 h-12 bg-gradient-to-br from-purple-500 to-orange-500 rounded-full flex items-center justify-center">
214
+ <div className="w-12 h-12 bg-gradient-to-br from-primary to-accent rounded-full flex items-center justify-center">
215
215
  <span className="text-white font-semibold">SJ</span>
216
216
  </div>
217
217
  <div className="text-left">
218
- <p className="font-semibold text-white">Sarah Johnson</p>
219
- <p className="text-sm text-zinc-500">Head of Engineering, TechCorp</p>
218
+ <p className="font-semibold text-foreground">Sarah Johnson</p>
219
+ <p className="text-sm text-muted-foreground">Head of Engineering, TechCorp</p>
220
220
  </div>
221
221
  </div>
222
222
  </div>
@@ -224,89 +224,89 @@ export default function HomePage() {
224
224
 
225
225
  {/* CTA Section */}
226
226
  <section className="py-24 px-4 sm:px-6 lg:px-8 relative overflow-hidden">
227
- <div className="absolute inset-0 bg-gradient-to-r from-purple-500/10 via-transparent to-orange-500/10" />
227
+ <div className="absolute inset-0 bg-gradient-to-r from-primary/10 via-transparent to-accent/10" />
228
228
  <div className="max-w-4xl mx-auto text-center relative">
229
229
  <h2 className="text-3xl md:text-4xl lg:text-5xl font-extrabold mb-6">
230
230
  Ready to transform your workflow?
231
231
  </h2>
232
- <p className="text-xl text-zinc-400 mb-10">
232
+ <p className="text-xl text-muted-foreground mb-10">
233
233
  Join teams who've automated their daily work with AI.
234
234
  </p>
235
235
  <div className="flex flex-col sm:flex-row gap-3 max-w-md mx-auto">
236
236
  <Input
237
237
  type="email"
238
238
  placeholder="Enter your email"
239
- className="bg-zinc-900 border-zinc-700 text-white placeholder:text-zinc-500 h-12"
239
+ className="bg-card border-border text-foreground placeholder:text-muted-foreground h-12"
240
240
  />
241
241
  <Button size="lg" className="whitespace-nowrap h-12">
242
242
  Get Started
243
243
  </Button>
244
244
  </div>
245
- <p className="text-sm text-zinc-500 mt-4">
245
+ <p className="text-sm text-muted-foreground mt-4">
246
246
  No credit card required • 14-day free trial
247
247
  </p>
248
248
  </div>
249
249
  </section>
250
250
 
251
251
  {/* Footer */}
252
- <footer className="bg-zinc-950 border-t border-zinc-800 py-12 px-4 sm:px-6 lg:px-8">
252
+ <footer className="bg-background border-t border-border py-12 px-4 sm:px-6 lg:px-8">
253
253
  <div className="max-w-7xl mx-auto">
254
254
  <div className="grid md:grid-cols-5 gap-8 mb-12">
255
255
  <div className="md:col-span-2">
256
256
  <div className="flex items-center gap-3 mb-4">
257
- <div className="w-8 h-8 bg-gradient-to-br from-purple-500 to-orange-500 rounded-lg flex items-center justify-center">
257
+ <div className="w-8 h-8 bg-gradient-to-br from-primary to-accent rounded-lg flex items-center justify-center">
258
258
  <span className="text-white font-extrabold text-xs">dX</span>
259
259
  </div>
260
- <span className="font-bold text-white">daily x</span>
260
+ <span className="font-bold text-foreground">daily x</span>
261
261
  </div>
262
- <p className="text-sm text-zinc-500 max-w-xs">
262
+ <p className="text-sm text-muted-foreground max-w-xs">
263
263
  AI-powered automation suite for modern teams. Transform how you work, one daily task at a time.
264
264
  </p>
265
265
  </div>
266
266
  <div>
267
- <h3 className="font-semibold text-white mb-4">Products</h3>
268
- <ul className="space-y-2 text-sm text-zinc-500">
269
- <li><a href="#" className="hover:text-purple-400 transition-colors">dailyreach.ai</a></li>
270
- <li><a href="#" className="hover:text-purple-400 transition-colors">dailyseo.ai</a></li>
271
- <li><a href="#" className="hover:text-purple-400 transition-colors">dailydashboards.ai</a></li>
272
- <li><a href="#" className="hover:text-purple-400 transition-colors">dailyscrape.ai</a></li>
273
- <li><a href="#" className="hover:text-purple-400 transition-colors">dailycoverage.ai</a></li>
267
+ <h3 className="font-semibold text-foreground mb-4">Products</h3>
268
+ <ul className="space-y-2 text-sm text-muted-foreground">
269
+ <li><a href="#" className="hover:text-primary transition-colors">dailyreach.ai</a></li>
270
+ <li><a href="#" className="hover:text-primary transition-colors">dailyseo.ai</a></li>
271
+ <li><a href="#" className="hover:text-primary transition-colors">dailydashboards.ai</a></li>
272
+ <li><a href="#" className="hover:text-primary transition-colors">dailyscrape.ai</a></li>
273
+ <li><a href="#" className="hover:text-primary transition-colors">dailycoverage.ai</a></li>
274
274
  </ul>
275
275
  </div>
276
276
  <div>
277
- <h3 className="font-semibold text-white mb-4">Company</h3>
278
- <ul className="space-y-2 text-sm text-zinc-500">
279
- <li><a href="#" className="hover:text-purple-400 transition-colors">About</a></li>
280
- <li><a href="#" className="hover:text-purple-400 transition-colors">Blog</a></li>
281
- <li><a href="#" className="hover:text-purple-400 transition-colors">Careers</a></li>
282
- <li><a href="#" className="hover:text-purple-400 transition-colors">Contact</a></li>
277
+ <h3 className="font-semibold text-foreground mb-4">Company</h3>
278
+ <ul className="space-y-2 text-sm text-muted-foreground">
279
+ <li><a href="#" className="hover:text-primary transition-colors">About</a></li>
280
+ <li><a href="#" className="hover:text-primary transition-colors">Blog</a></li>
281
+ <li><a href="#" className="hover:text-primary transition-colors">Careers</a></li>
282
+ <li><a href="#" className="hover:text-primary transition-colors">Contact</a></li>
283
283
  </ul>
284
284
  </div>
285
285
  <div>
286
- <h3 className="font-semibold text-white mb-4">Legal</h3>
287
- <ul className="space-y-2 text-sm text-zinc-500">
288
- <li><a href="#" className="hover:text-purple-400 transition-colors">Privacy</a></li>
289
- <li><a href="#" className="hover:text-purple-400 transition-colors">Terms</a></li>
290
- <li><a href="#" className="hover:text-purple-400 transition-colors">Security</a></li>
286
+ <h3 className="font-semibold text-foreground mb-4">Legal</h3>
287
+ <ul className="space-y-2 text-sm text-muted-foreground">
288
+ <li><a href="#" className="hover:text-primary transition-colors">Privacy</a></li>
289
+ <li><a href="#" className="hover:text-primary transition-colors">Terms</a></li>
290
+ <li><a href="#" className="hover:text-primary transition-colors">Security</a></li>
291
291
  </ul>
292
292
  </div>
293
293
  </div>
294
- <div className="border-t border-zinc-800 pt-8 flex flex-col md:flex-row justify-between items-center gap-4">
295
- <p className="text-sm text-zinc-600">© 2026 Daily X. All rights reserved.</p>
294
+ <div className="border-t border-border pt-8 flex flex-col md:flex-row justify-between items-center gap-4">
295
+ <p className="text-sm text-muted-foreground">© 2026 Daily X. All rights reserved.</p>
296
296
  <div className="flex gap-6">
297
- <a href="#" className="text-zinc-600 hover:text-purple-400 transition-colors">
297
+ <a href="#" className="text-muted-foreground hover:text-primary transition-colors">
298
298
  <span className="sr-only">Twitter</span>
299
299
  <svg className="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
300
300
  <path d="M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84" />
301
301
  </svg>
302
302
  </a>
303
- <a href="#" className="text-zinc-600 hover:text-purple-400 transition-colors">
303
+ <a href="#" className="text-muted-foreground hover:text-primary transition-colors">
304
304
  <span className="sr-only">GitHub</span>
305
305
  <svg className="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
306
306
  <path fillRule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clipRule="evenodd" />
307
307
  </svg>
308
308
  </a>
309
- <a href="#" className="text-zinc-600 hover:text-purple-400 transition-colors">
309
+ <a href="#" className="text-muted-foreground hover:text-primary transition-colors">
310
310
  <span className="sr-only">LinkedIn</span>
311
311
  <svg className="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
312
312
  <path fillRule="evenodd" d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z" clipRule="evenodd" />
package/examples/main.tsx CHANGED
@@ -1,7 +1,10 @@
1
- import React, { useState } from 'react'
1
+ import React, { useState, useEffect } from 'react'
2
2
  import ReactDOM from 'react-dom/client'
3
3
  import './styles.css'
4
4
 
5
+ // Import theme system
6
+ import { ThemeTester, initializeTheme } from '../src'
7
+
5
8
  // Import example pages
6
9
  import { DashboardPage } from './pages/DashboardPage'
7
10
  import { ListPage, ListPageEmpty } from './pages/ListPage'
@@ -13,12 +16,16 @@ import { BlogPage } from './pages/BlogPage'
13
16
  import { ContactPage } from './pages/ContactPage'
14
17
  import { AboutPage } from './pages/AboutPage'
15
18
  import { PricingPage } from './pages/PricingPage'
19
+ import { LandingPage } from './pages/LandingPage'
20
+ import { ComponentsPage } from './pages/ComponentsPage'
16
21
  import HomePage from './home-page'
17
22
 
18
- type PageKey = 'home' | 'about' | 'pricing' | 'blog' | 'contact' | 'dashboard' | 'list' | 'list-empty' | 'login' | 'signup' | 'settings' | 'onboarding'
23
+ type PageKey = 'components' | 'home' | 'landing' | 'about' | 'pricing' | 'blog' | 'contact' | 'dashboard' | 'list' | 'list-empty' | 'login' | 'signup' | 'settings' | 'onboarding'
19
24
 
20
25
  const pages: Record<PageKey, { label: string; component: React.ComponentType }> = {
26
+ components: { label: 'Components', component: ComponentsPage },
21
27
  home: { label: 'Home (Marketing)', component: HomePage },
28
+ landing: { label: 'Landing (Conversion)', component: LandingPage },
22
29
  about: { label: 'About Us', component: AboutPage },
23
30
  pricing: { label: 'Pricing', component: PricingPage },
24
31
  blog: { label: 'Blog', component: BlogPage },
@@ -33,19 +40,24 @@ const pages: Record<PageKey, { label: string; component: React.ComponentType }>
33
40
  }
34
41
 
35
42
  function App() {
36
- const [currentPage, setCurrentPage] = useState<PageKey>('home')
43
+ const [currentPage, setCurrentPage] = useState<PageKey>('components')
37
44
  const [navOpen, setNavOpen] = useState(true)
38
45
 
46
+ // Initialize theme on mount
47
+ useEffect(() => {
48
+ initializeTheme()
49
+ }, [])
50
+
39
51
  const CurrentComponent = pages[currentPage].component
40
52
 
41
53
  return (
42
- <div className="min-h-screen bg-[#0F0F14]">
54
+ <div className="min-h-screen bg-background text-foreground">
43
55
  {/* Floating Nav */}
44
56
  <div className={`fixed top-4 left-4 z-50 transition-all ${navOpen ? 'w-56' : 'w-auto'}`}>
45
- <div className="bg-zinc-900 border border-zinc-800 rounded-lg shadow-xl overflow-hidden">
57
+ <div className="bg-card border border-border rounded-lg shadow-xl overflow-hidden">
46
58
  <button
47
59
  onClick={() => setNavOpen(!navOpen)}
48
- className="w-full px-4 py-3 flex items-center justify-between text-white hover:bg-zinc-800 transition-colors"
60
+ className="w-full px-4 py-3 flex items-center justify-between text-foreground hover:bg-muted transition-colors"
49
61
  >
50
62
  <span className="font-semibold text-sm">
51
63
  {navOpen ? 'Page Examples' : '☰'}
@@ -58,15 +70,15 @@ function App() {
58
70
  </button>
59
71
 
60
72
  {navOpen && (
61
- <nav className="border-t border-zinc-800">
73
+ <nav className="border-t border-border">
62
74
  {(Object.keys(pages) as PageKey[]).map((key) => (
63
75
  <button
64
76
  key={key}
65
77
  onClick={() => setCurrentPage(key)}
66
78
  className={`w-full px-4 py-2.5 text-left text-sm transition-colors ${
67
79
  currentPage === key
68
- ? 'bg-purple-500/20 text-purple-400 border-l-2 border-purple-500'
69
- : 'text-zinc-400 hover:bg-zinc-800 hover:text-white border-l-2 border-transparent'
80
+ ? 'bg-accent/20 text-accent border-l-2 border-accent'
81
+ : 'text-muted-foreground hover:bg-muted hover:text-foreground border-l-2 border-transparent'
70
82
  }`}
71
83
  >
72
84
  {pages[key].label}
@@ -79,6 +91,9 @@ function App() {
79
91
 
80
92
  {/* Page Content */}
81
93
  <CurrentComponent />
94
+
95
+ {/* Theme Tester - Floating button in bottom-right */}
96
+ <ThemeTester />
82
97
  </div>
83
98
  )
84
99
  }