create-next-imagicma 0.0.4 → 0.0.6

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 (106) hide show
  1. package/README.md +30 -13
  2. package/bin/create-next-imagicma.mjs +138 -22
  3. package/package.json +2 -1
  4. package/template/app/globals.css +331 -0
  5. package/template/app/layout.tsx +4 -6
  6. package/template/app/page.tsx +18 -40
  7. package/template/package.json +1 -1
  8. package/template/public/imagicma-picker-bridge.js +374 -0
  9. package/template-hono/.env.example +8 -0
  10. package/template-hono/.imagicma/AGENTS.md +7 -0
  11. package/template-hono/.imagicma/port.json +5 -0
  12. package/template-hono/AGENTS.md +39 -0
  13. package/template-hono/README.md +48 -0
  14. package/template-hono/client/src/App.tsx +13 -0
  15. package/template-hono/client/src/components/ErrorBoundary.tsx +74 -0
  16. package/template-hono/client/src/components/HelloClient.tsx +69 -0
  17. package/template-hono/client/src/globals.css +767 -0
  18. package/template-hono/client/src/main.tsx +24 -0
  19. package/template-hono/client/src/pages/HelloPage.tsx +22 -0
  20. package/template-hono/client/src/pages/HomePage.tsx +30 -0
  21. package/template-hono/client/src/providers.tsx +21 -0
  22. package/template-hono/components/ui/accordion.tsx +58 -0
  23. package/template-hono/components/ui/alert-dialog.tsx +141 -0
  24. package/template-hono/components/ui/alert.tsx +61 -0
  25. package/template-hono/components/ui/aspect-ratio.tsx +7 -0
  26. package/template-hono/components/ui/avatar.tsx +51 -0
  27. package/template-hono/components/ui/badge.tsx +40 -0
  28. package/template-hono/components/ui/breadcrumb.tsx +117 -0
  29. package/template-hono/components/ui/button.tsx +64 -0
  30. package/template-hono/components/ui/calendar.tsx +72 -0
  31. package/template-hono/components/ui/card.tsx +87 -0
  32. package/template-hono/components/ui/carousel.tsx +262 -0
  33. package/template-hono/components/ui/chart.tsx +365 -0
  34. package/template-hono/components/ui/checkbox.tsx +30 -0
  35. package/template-hono/components/ui/collapsible.tsx +11 -0
  36. package/template-hono/components/ui/command.tsx +153 -0
  37. package/template-hono/components/ui/context-menu.tsx +200 -0
  38. package/template-hono/components/ui/dialog.tsx +122 -0
  39. package/template-hono/components/ui/drawer.tsx +118 -0
  40. package/template-hono/components/ui/dropdown-menu.tsx +200 -0
  41. package/template-hono/components/ui/form.tsx +178 -0
  42. package/template-hono/components/ui/hover-card.tsx +29 -0
  43. package/template-hono/components/ui/input-otp.tsx +71 -0
  44. package/template-hono/components/ui/input.tsx +25 -0
  45. package/template-hono/components/ui/label.tsx +26 -0
  46. package/template-hono/components/ui/menubar.tsx +256 -0
  47. package/template-hono/components/ui/navigation-menu.tsx +130 -0
  48. package/template-hono/components/ui/pagination.tsx +119 -0
  49. package/template-hono/components/ui/popover.tsx +31 -0
  50. package/template-hono/components/ui/progress.tsx +28 -0
  51. package/template-hono/components/ui/radio-group.tsx +44 -0
  52. package/template-hono/components/ui/resizable.tsx +45 -0
  53. package/template-hono/components/ui/scroll-area.tsx +48 -0
  54. package/template-hono/components/ui/select.tsx +160 -0
  55. package/template-hono/components/ui/separator.tsx +31 -0
  56. package/template-hono/components/ui/sheet.tsx +140 -0
  57. package/template-hono/components/ui/sidebar.tsx +732 -0
  58. package/template-hono/components/ui/skeleton.tsx +17 -0
  59. package/template-hono/components/ui/slider.tsx +28 -0
  60. package/template-hono/components/ui/switch.tsx +29 -0
  61. package/template-hono/components/ui/table.tsx +119 -0
  62. package/template-hono/components/ui/tabs.tsx +55 -0
  63. package/template-hono/components/ui/textarea.tsx +24 -0
  64. package/template-hono/components/ui/toast.tsx +129 -0
  65. package/template-hono/components/ui/toaster.tsx +35 -0
  66. package/template-hono/components/ui/toggle-group.tsx +61 -0
  67. package/template-hono/components/ui/toggle.tsx +45 -0
  68. package/template-hono/components/ui/tooltip.tsx +30 -0
  69. package/template-hono/drizzle.config.ts +50 -0
  70. package/template-hono/eslint.config.mjs +13 -0
  71. package/template-hono/gitignore +40 -0
  72. package/template-hono/hooks/use-greeting.ts +15 -0
  73. package/template-hono/hooks/use-mobile.ts +21 -0
  74. package/template-hono/hooks/use-toast.ts +194 -0
  75. package/template-hono/index.html +13 -0
  76. package/template-hono/lib/queryClient.ts +59 -0
  77. package/template-hono/lib/theme/default-theme.ts +11 -0
  78. package/template-hono/lib/utils.ts +6 -0
  79. package/template-hono/package.json +82 -0
  80. package/template-hono/pnpm-lock.yaml +5162 -0
  81. package/template-hono/postcss.config.mjs +7 -0
  82. package/template-hono/process-compose.yaml +13 -0
  83. package/template-hono/public/favicon.ico +0 -0
  84. package/template-hono/public/file.svg +1 -0
  85. package/template-hono/public/globe.svg +1 -0
  86. package/template-hono/public/imagicma-picker-bridge.js +374 -0
  87. package/template-hono/public/next.svg +1 -0
  88. package/template-hono/public/vercel.svg +1 -0
  89. package/template-hono/public/window.svg +1 -0
  90. package/template-hono/scripts/imagicma-common.mjs +118 -0
  91. package/template-hono/scripts/imagicma-dev.mjs +29 -0
  92. package/template-hono/scripts/imagicma-guard.mjs +17 -0
  93. package/template-hono/scripts/imagicma-start.mjs +24 -0
  94. package/template-hono/server/app.ts +40 -0
  95. package/template-hono/server/db.ts +22 -0
  96. package/template-hono/server/dev-app.ts +5 -0
  97. package/template-hono/server/index.ts +94 -0
  98. package/template-hono/server/routes/greeting.ts +25 -0
  99. package/template-hono/server/storage.ts +39 -0
  100. package/template-hono/shared/routes.ts +13 -0
  101. package/template-hono/shared/schema.ts +17 -0
  102. package/template-hono/tailwind.config.mjs +97 -0
  103. package/template-hono/tsconfig.json +39 -0
  104. package/template-hono/tsconfig.server.json +15 -0
  105. package/template-hono/types/pg.d.ts +19 -0
  106. package/template-hono/vite.config.ts +125 -0
@@ -0,0 +1,767 @@
1
+ @import "tailwindcss";
2
+ @config "../../tailwind.config.mjs";
3
+
4
+ :root {
5
+ /* Fonts */
6
+ --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
7
+ "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei",
8
+ "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji",
9
+ "Segoe UI Symbol", sans-serif;
10
+ --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
11
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
12
+ "Liberation Mono", "Courier New", monospace;
13
+
14
+ /* Core theme tokens (HSL triples) */
15
+ --background: 0 0% 100%;
16
+ --foreground: 240 10% 3.9%;
17
+
18
+ --card: 0 0% 100%;
19
+ --card-foreground: 240 10% 3.9%;
20
+
21
+ --popover: 0 0% 100%;
22
+ --popover-foreground: 240 10% 3.9%;
23
+
24
+ --primary: 240 5.9% 10%;
25
+ --primary-foreground: 0 0% 98%;
26
+
27
+ --secondary: 240 4.8% 95.9%;
28
+ --secondary-foreground: 240 5.9% 10%;
29
+
30
+ --muted: 240 4.8% 95.9%;
31
+ --muted-foreground: 240 3.8% 46.1%;
32
+
33
+ --accent: 240 4.8% 95.9%;
34
+ --accent-foreground: 240 5.9% 10%;
35
+
36
+ --destructive: 0 84.2% 60.2%;
37
+ --destructive-foreground: 0 0% 98%;
38
+
39
+ --border: 240 5.9% 90%;
40
+ --input: 240 5.9% 90%;
41
+ --ring: 240 5.9% 10%;
42
+
43
+ --radius: 0.5rem;
44
+
45
+ /* Extra tokens used by the migrated shadcn components */
46
+ --card-border: var(--border);
47
+ --popover-border: var(--border);
48
+ --sidebar: var(--background);
49
+ --sidebar-foreground: var(--foreground);
50
+ --sidebar-border: var(--border);
51
+ --sidebar-ring: var(--ring);
52
+
53
+ --chart-1: 220 70% 50%;
54
+ --chart-2: 160 60% 45%;
55
+ --chart-3: 30 80% 55%;
56
+ --chart-4: 280 65% 60%;
57
+ --chart-5: 340 75% 55%;
58
+
59
+ /* Border colors expected by template classnames */
60
+ --primary-border: hsl(var(--primary) / 0.18);
61
+ --secondary-border: hsl(var(--border));
62
+ --muted-border: hsl(var(--border));
63
+ --accent-border: hsl(var(--border));
64
+ --destructive-border: hsl(var(--destructive) / 0.25);
65
+
66
+ --button-outline: hsl(var(--border));
67
+ --badge-outline: hsl(var(--border));
68
+ }
69
+
70
+ .dark {
71
+ --background: 240 10% 3.9%;
72
+ --foreground: 0 0% 98%;
73
+
74
+ --card: 240 10% 3.9%;
75
+ --card-foreground: 0 0% 98%;
76
+
77
+ --popover: 240 10% 3.9%;
78
+ --popover-foreground: 0 0% 98%;
79
+
80
+ --primary: 0 0% 98%;
81
+ --primary-foreground: 240 5.9% 10%;
82
+
83
+ --secondary: 240 3.7% 15.9%;
84
+ --secondary-foreground: 0 0% 98%;
85
+
86
+ --muted: 240 3.7% 15.9%;
87
+ --muted-foreground: 240 5% 64.9%;
88
+
89
+ --accent: 240 3.7% 15.9%;
90
+ --accent-foreground: 0 0% 98%;
91
+
92
+ --destructive: 0 62.8% 30.6%;
93
+ --destructive-foreground: 0 0% 98%;
94
+
95
+ --border: 240 3.7% 15.9%;
96
+ --input: 240 3.7% 15.9%;
97
+ --ring: 240 4.9% 83.9%;
98
+
99
+ --card-border: var(--border);
100
+ --popover-border: var(--border);
101
+ --sidebar: var(--background);
102
+ --sidebar-foreground: var(--foreground);
103
+ --sidebar-border: var(--border);
104
+ --sidebar-ring: var(--ring);
105
+
106
+ --primary-border: hsl(var(--primary) / 0.15);
107
+ --secondary-border: hsl(var(--border));
108
+ --muted-border: hsl(var(--border));
109
+ --accent-border: hsl(var(--border));
110
+ --destructive-border: hsl(var(--destructive) / 0.35);
111
+
112
+ --button-outline: hsl(var(--border));
113
+ --badge-outline: hsl(var(--border));
114
+ }
115
+
116
+ /* Theme style presets (used by html[data-theme-style="<preset>"]) */
117
+ :root[data-theme-style="quadratic"] {
118
+ --background: 240 8.3% 95.3%;
119
+ --foreground: 225 14.3% 5.5%;
120
+
121
+ --card: 0 0% 100%;
122
+ --card-foreground: 225 14.3% 5.5%;
123
+ --popover: 0 0% 100%;
124
+ --popover-foreground: 225 14.3% 5.5%;
125
+
126
+ --primary: 240 8.6% 93.1%;
127
+ --primary-foreground: 225 14.3% 5.5%;
128
+ --secondary: 240 7% 86.1%;
129
+ --secondary-foreground: 225 14.3% 5.5%;
130
+ --muted: 240 8.6% 93.1%;
131
+ --muted-foreground: 225 7% 35%;
132
+ --accent: 240 7% 86.1%;
133
+ --accent-foreground: 225 14.3% 5.5%;
134
+
135
+ --border: 240 7% 82%;
136
+ --input: 240 7% 82%;
137
+ --ring: 225 14.3% 5.5%;
138
+
139
+ --chart-1: 225 14.3% 35%;
140
+ --chart-2: 240 8% 55%;
141
+ --chart-3: 220 40% 55%;
142
+ --chart-4: 270 20% 62%;
143
+ --chart-5: 190 30% 52%;
144
+ }
145
+
146
+ .dark[data-theme-style="quadratic"] {
147
+ --background: 225 14.3% 5.5%;
148
+ --foreground: 240 8.3% 95.3%;
149
+
150
+ --card: 225 12% 9%;
151
+ --card-foreground: 240 8.3% 95.3%;
152
+ --popover: 225 12% 9%;
153
+ --popover-foreground: 240 8.3% 95.3%;
154
+
155
+ --primary: 240 8.6% 93.1%;
156
+ --primary-foreground: 225 14.3% 5.5%;
157
+ --secondary: 225 8% 15%;
158
+ --secondary-foreground: 240 8.3% 95.3%;
159
+ --muted: 225 8% 12%;
160
+ --muted-foreground: 240 7% 70%;
161
+ --accent: 225 8% 12%;
162
+ --accent-foreground: 240 8.3% 95.3%;
163
+
164
+ --border: 225 8% 22%;
165
+ --input: 225 8% 22%;
166
+ --ring: 240 8.6% 93.1%;
167
+
168
+ --chart-1: 240 8.6% 70%;
169
+ --chart-2: 220 30% 65%;
170
+ --chart-3: 190 30% 60%;
171
+ --chart-4: 270 20% 65%;
172
+ --chart-5: 45 20% 62%;
173
+ }
174
+
175
+ :root[data-theme-style="nomad"] {
176
+ --background: 240 9.1% 95.7%;
177
+ --foreground: 220 12.5% 9.4%;
178
+
179
+ --card: 240 12% 98%;
180
+ --card-foreground: 220 12.5% 9.4%;
181
+ --popover: 240 12% 98%;
182
+ --popover-foreground: 220 12.5% 9.4%;
183
+
184
+ --primary: 339 89.8% 53.9%;
185
+ --primary-foreground: 220 12.5% 9.4%;
186
+ --secondary: 231 10.4% 86.9%;
187
+ --secondary-foreground: 220 12.5% 9.4%;
188
+ --muted: 240 9% 92%;
189
+ --muted-foreground: 220 8% 35%;
190
+ --accent: 231 10.4% 86.9%;
191
+ --accent-foreground: 220 12.5% 9.4%;
192
+
193
+ --border: 231 10% 82%;
194
+ --input: 231 10% 82%;
195
+ --ring: 339 89.8% 53.9%;
196
+
197
+ --chart-1: 339 89.8% 53.9%;
198
+ --chart-2: 220 28% 40%;
199
+ --chart-3: 40 72% 60%;
200
+ --chart-4: 173 25% 45%;
201
+ --chart-5: 280 45% 60%;
202
+ }
203
+
204
+ .dark[data-theme-style="nomad"] {
205
+ --background: 220 12.5% 9.4%;
206
+ --foreground: 240 9.1% 95.7%;
207
+
208
+ --card: 220 12% 12%;
209
+ --card-foreground: 240 9.1% 95.7%;
210
+ --popover: 220 12% 12%;
211
+ --popover-foreground: 240 9.1% 95.7%;
212
+
213
+ --primary: 339 90% 62%;
214
+ --primary-foreground: 220 12.5% 9.4%;
215
+ --secondary: 220 10% 17%;
216
+ --secondary-foreground: 240 9.1% 95.7%;
217
+ --muted: 220 9% 14%;
218
+ --muted-foreground: 240 7% 70%;
219
+ --accent: 220 9% 14%;
220
+ --accent-foreground: 240 9.1% 95.7%;
221
+
222
+ --border: 220 8% 22%;
223
+ --input: 220 8% 22%;
224
+ --ring: 339 90% 62%;
225
+
226
+ --chart-1: 339 90% 66%;
227
+ --chart-2: 40 72% 65%;
228
+ --chart-3: 173 30% 58%;
229
+ --chart-4: 280 50% 72%;
230
+ --chart-5: 220 18% 72%;
231
+ }
232
+
233
+ :root[data-theme-style="honey"] {
234
+ --background: 49 38.1% 91.8%;
235
+ --foreground: 40 52.9% 27.5%;
236
+
237
+ --card: 49 42% 95%;
238
+ --card-foreground: 40 52.9% 27.5%;
239
+ --popover: 49 42% 95%;
240
+ --popover-foreground: 40 52.9% 27.5%;
241
+
242
+ --primary: 40 72.8% 68.2%;
243
+ --primary-foreground: 40 52.9% 18%;
244
+ --secondary: 63 20.8% 79.2%;
245
+ --secondary-foreground: 40 52.9% 27.5%;
246
+ --muted: 49 30% 88%;
247
+ --muted-foreground: 40 24% 38%;
248
+ --accent: 63 20.8% 79.2%;
249
+ --accent-foreground: 40 52.9% 27.5%;
250
+
251
+ --border: 52 22% 74%;
252
+ --input: 52 22% 74%;
253
+ --ring: 40 72.8% 68.2%;
254
+
255
+ --chart-1: 40 72.8% 55%;
256
+ --chart-2: 63 30% 45%;
257
+ --chart-3: 173 25% 42%;
258
+ --chart-4: 18 56% 50%;
259
+ --chart-5: 240 16% 52%;
260
+ }
261
+
262
+ .dark[data-theme-style="honey"] {
263
+ --background: 36 38% 10%;
264
+ --foreground: 49 30% 88%;
265
+
266
+ --card: 34 30% 14%;
267
+ --card-foreground: 49 30% 88%;
268
+ --popover: 34 30% 14%;
269
+ --popover-foreground: 49 30% 88%;
270
+
271
+ --primary: 40 72.8% 68.2%;
272
+ --primary-foreground: 36 38% 10%;
273
+ --secondary: 38 20% 20%;
274
+ --secondary-foreground: 49 30% 88%;
275
+ --muted: 38 18% 18%;
276
+ --muted-foreground: 49 18% 70%;
277
+ --accent: 38 18% 18%;
278
+ --accent-foreground: 49 30% 88%;
279
+
280
+ --border: 38 18% 26%;
281
+ --input: 38 18% 26%;
282
+ --ring: 40 72.8% 68.2%;
283
+
284
+ --chart-1: 40 72.8% 68.2%;
285
+ --chart-2: 63 35% 58%;
286
+ --chart-3: 173 30% 56%;
287
+ --chart-4: 20 56% 64%;
288
+ --chart-5: 240 22% 70%;
289
+ }
290
+
291
+ :root[data-theme-style="zen-garden"] {
292
+ --background: 84 9.8% 90%;
293
+ --foreground: 225 18.2% 8.6%;
294
+
295
+ --card: 84 12% 94%;
296
+ --card-foreground: 225 18.2% 8.6%;
297
+ --popover: 84 12% 94%;
298
+ --popover-foreground: 225 18.2% 8.6%;
299
+
300
+ --primary: 173 24.7% 62%;
301
+ --primary-foreground: 225 18.2% 8.6%;
302
+ --secondary: 289 32.9% 72%;
303
+ --secondary-foreground: 225 18.2% 8.6%;
304
+ --muted: 84 10% 86%;
305
+ --muted-foreground: 225 10% 36%;
306
+ --accent: 289 32.9% 72%;
307
+ --accent-foreground: 225 18.2% 8.6%;
308
+
309
+ --border: 84 8% 78%;
310
+ --input: 84 8% 78%;
311
+ --ring: 173 24.7% 62%;
312
+
313
+ --chart-1: 173 24.7% 48%;
314
+ --chart-2: 289 32.9% 58%;
315
+ --chart-3: 40 68% 56%;
316
+ --chart-4: 220 26% 50%;
317
+ --chart-5: 0 55% 58%;
318
+ }
319
+
320
+ .dark[data-theme-style="zen-garden"] {
321
+ --background: 225 18.2% 8.6%;
322
+ --foreground: 84 9.8% 90%;
323
+
324
+ --card: 225 16% 12%;
325
+ --card-foreground: 84 9.8% 90%;
326
+ --popover: 225 16% 12%;
327
+ --popover-foreground: 84 9.8% 90%;
328
+
329
+ --primary: 173 30% 66%;
330
+ --primary-foreground: 225 18.2% 8.6%;
331
+ --secondary: 225 12% 18%;
332
+ --secondary-foreground: 84 9.8% 90%;
333
+ --muted: 225 10% 15%;
334
+ --muted-foreground: 84 8% 72%;
335
+ --accent: 225 10% 15%;
336
+ --accent-foreground: 84 9.8% 90%;
337
+
338
+ --border: 225 10% 24%;
339
+ --input: 225 10% 24%;
340
+ --ring: 173 30% 66%;
341
+
342
+ --chart-1: 173 30% 66%;
343
+ --chart-2: 289 36% 70%;
344
+ --chart-3: 40 68% 64%;
345
+ --chart-4: 220 30% 70%;
346
+ --chart-5: 355 65% 68%;
347
+ }
348
+
349
+ :root[data-theme-style="highlighter"] {
350
+ --background: 228 23.8% 95.9%;
351
+ --foreground: 223 18.9% 7.3%;
352
+
353
+ --card: 228 24% 98%;
354
+ --card-foreground: 223 18.9% 7.3%;
355
+ --popover: 228 24% 98%;
356
+ --popover-foreground: 223 18.9% 7.3%;
357
+
358
+ --primary: 97 70.5% 64.1%;
359
+ --primary-foreground: 223 18.9% 7.3%;
360
+ --secondary: 249 35.6% 88.4%;
361
+ --secondary-foreground: 223 18.9% 7.3%;
362
+ --muted: 228 20% 92%;
363
+ --muted-foreground: 223 10% 35%;
364
+ --accent: 249 35.6% 88.4%;
365
+ --accent-foreground: 223 18.9% 7.3%;
366
+
367
+ --border: 238 20% 84%;
368
+ --input: 238 20% 84%;
369
+ --ring: 97 70.5% 64.1%;
370
+
371
+ --chart-1: 97 70.5% 48%;
372
+ --chart-2: 249 45% 56%;
373
+ --chart-3: 202 72% 54%;
374
+ --chart-4: 339 78% 58%;
375
+ --chart-5: 40 78% 58%;
376
+ }
377
+
378
+ .dark[data-theme-style="highlighter"] {
379
+ --background: 223 18.9% 7.3%;
380
+ --foreground: 228 23.8% 95.9%;
381
+
382
+ --card: 223 16% 11%;
383
+ --card-foreground: 228 23.8% 95.9%;
384
+ --popover: 223 16% 11%;
385
+ --popover-foreground: 228 23.8% 95.9%;
386
+
387
+ --primary: 97 74% 66%;
388
+ --primary-foreground: 223 18.9% 7.3%;
389
+ --secondary: 223 12% 18%;
390
+ --secondary-foreground: 228 23.8% 95.9%;
391
+ --muted: 223 10% 15%;
392
+ --muted-foreground: 228 14% 72%;
393
+ --accent: 223 10% 15%;
394
+ --accent-foreground: 228 23.8% 95.9%;
395
+
396
+ --border: 223 10% 24%;
397
+ --input: 223 10% 24%;
398
+ --ring: 97 74% 66%;
399
+
400
+ --chart-1: 97 74% 66%;
401
+ --chart-2: 249 50% 72%;
402
+ --chart-3: 202 78% 70%;
403
+ --chart-4: 339 80% 70%;
404
+ --chart-5: 40 78% 68%;
405
+ }
406
+
407
+ @layer base {
408
+ * {
409
+ border-color: hsl(var(--border));
410
+ }
411
+
412
+ body {
413
+ @apply bg-background text-foreground antialiased;
414
+ font-family: var(--font-sans);
415
+ }
416
+ }
417
+
418
+ @layer utilities {
419
+ .hover-elevate {
420
+ transition: transform 150ms ease, box-shadow 150ms ease;
421
+ }
422
+ .hover-elevate:hover {
423
+ transform: translateY(-1px);
424
+ box-shadow: 0 12px 30px rgb(0 0 0 / 0.08);
425
+ }
426
+
427
+ .active-elevate-2:active {
428
+ transform: translateY(0px);
429
+ box-shadow: 0 6px 18px rgb(0 0 0 / 0.08);
430
+ }
431
+
432
+ @keyframes aurora-shift-x {
433
+ from {
434
+ background-position: 0% 50%;
435
+ }
436
+ to {
437
+ background-position: 200% 50%;
438
+ }
439
+ }
440
+
441
+ @keyframes aurora-shift-y {
442
+ from {
443
+ background-position: 50% 0%;
444
+ }
445
+ to {
446
+ background-position: 50% 200%;
447
+ }
448
+ }
449
+
450
+ @keyframes aurora-breathe {
451
+ 0%,
452
+ 100% {
453
+ opacity: 0.55;
454
+ }
455
+ 50% {
456
+ opacity: 0.95;
457
+ }
458
+ }
459
+
460
+ @keyframes nebula-float-a {
461
+ 0%,
462
+ 100% {
463
+ transform: translate3d(0, 0, 0) scale(1);
464
+ }
465
+ 50% {
466
+ transform: translate3d(8%, 5%, 0) scale(1.08);
467
+ }
468
+ }
469
+
470
+ @keyframes nebula-float-b {
471
+ 0%,
472
+ 100% {
473
+ transform: translate3d(0, 0, 0) scale(1);
474
+ }
475
+ 50% {
476
+ transform: translate3d(-7%, 6%, 0) scale(1.12);
477
+ }
478
+ }
479
+
480
+ @keyframes nebula-float-c {
481
+ 0%,
482
+ 100% {
483
+ transform: translate3d(0, 0, 0) scale(1);
484
+ }
485
+ 50% {
486
+ transform: translate3d(5%, -6%, 0) scale(1.06);
487
+ }
488
+ }
489
+
490
+ @keyframes grain-shift {
491
+ 0% {
492
+ transform: translate3d(0, 0, 0);
493
+ }
494
+ 25% {
495
+ transform: translate3d(1%, -1%, 0);
496
+ }
497
+ 50% {
498
+ transform: translate3d(-1%, 1%, 0);
499
+ }
500
+ 75% {
501
+ transform: translate3d(0.5%, 1%, 0);
502
+ }
503
+ 100% {
504
+ transform: translate3d(0, 0, 0);
505
+ }
506
+ }
507
+
508
+ @keyframes loader-spin {
509
+ from {
510
+ transform: rotate(0deg);
511
+ }
512
+ to {
513
+ transform: rotate(360deg);
514
+ }
515
+ }
516
+
517
+ @keyframes loader-spin-reverse {
518
+ from {
519
+ transform: rotate(360deg);
520
+ }
521
+ to {
522
+ transform: rotate(0deg);
523
+ }
524
+ }
525
+
526
+ @keyframes loader-core-breathe {
527
+ 0%,
528
+ 100% {
529
+ transform: scale(0.92);
530
+ opacity: 0.85;
531
+ }
532
+ 50% {
533
+ transform: scale(1.04);
534
+ opacity: 1;
535
+ }
536
+ }
537
+
538
+ .nebula-orb {
539
+ position: absolute;
540
+ border-radius: 9999px;
541
+ mix-blend-mode: screen;
542
+ opacity: 0.72;
543
+ filter: blur(72px);
544
+ will-change: transform;
545
+ }
546
+
547
+ .nebula-orb-a {
548
+ left: -11rem;
549
+ top: -8rem;
550
+ height: 34rem;
551
+ width: 34rem;
552
+ background: radial-gradient(
553
+ circle,
554
+ rgba(56, 189, 248, 0.36) 0%,
555
+ rgba(99, 102, 241, 0.2) 45%,
556
+ rgba(255, 255, 255, 0) 72%
557
+ );
558
+ animation: nebula-float-a 16s ease-in-out infinite;
559
+ }
560
+
561
+ .nebula-orb-b {
562
+ right: -13rem;
563
+ top: 14%;
564
+ height: 38rem;
565
+ width: 38rem;
566
+ background: radial-gradient(
567
+ circle,
568
+ rgba(20, 184, 166, 0.33) 0%,
569
+ rgba(59, 130, 246, 0.16) 46%,
570
+ rgba(255, 255, 255, 0) 75%
571
+ );
572
+ animation: nebula-float-b 18s ease-in-out infinite;
573
+ }
574
+
575
+ .nebula-orb-c {
576
+ bottom: -16rem;
577
+ left: 26%;
578
+ height: 36rem;
579
+ width: 36rem;
580
+ background: radial-gradient(
581
+ circle,
582
+ rgba(167, 139, 250, 0.24) 0%,
583
+ rgba(56, 189, 248, 0.12) 45%,
584
+ rgba(255, 255, 255, 0) 74%
585
+ );
586
+ animation: nebula-float-c 15s ease-in-out infinite;
587
+ }
588
+
589
+ .nebula-grain {
590
+ position: absolute;
591
+ inset: -20%;
592
+ background-image: radial-gradient(rgba(15, 23, 42, 0.08) 0.7px, transparent 0.7px);
593
+ background-size: 3px 3px;
594
+ opacity: 0.08;
595
+ animation: grain-shift 8s steps(10) infinite;
596
+ }
597
+
598
+ .luxe-loader {
599
+ position: relative;
600
+ height: 96px;
601
+ width: 96px;
602
+ }
603
+
604
+ .luxe-loader__ring {
605
+ position: absolute;
606
+ border-radius: 9999px;
607
+ border: 2px solid transparent;
608
+ }
609
+
610
+ .luxe-loader__ring--outer {
611
+ inset: 0;
612
+ border-top-color: rgba(56, 189, 248, 0.98);
613
+ border-right-color: rgba(99, 102, 241, 0.94);
614
+ box-shadow:
615
+ 0 0 18px rgba(56, 189, 248, 0.6),
616
+ inset 0 0 12px rgba(59, 130, 246, 0.15);
617
+ animation: loader-spin 1.35s linear infinite;
618
+ }
619
+
620
+ .luxe-loader__ring--inner {
621
+ inset: 13px;
622
+ border-left-color: rgba(20, 184, 166, 0.96);
623
+ border-bottom-color: rgba(56, 189, 248, 0.88);
624
+ box-shadow: 0 0 14px rgba(20, 184, 166, 0.45);
625
+ animation: loader-spin-reverse 1.05s linear infinite;
626
+ }
627
+
628
+ .luxe-loader__core {
629
+ position: absolute;
630
+ inset: 34px;
631
+ border-radius: 9999px;
632
+ background: radial-gradient(
633
+ circle at 35% 30%,
634
+ rgba(255, 255, 255, 1) 0%,
635
+ rgba(210, 237, 255, 0.95) 42%,
636
+ rgba(107, 172, 255, 0.78) 100%
637
+ );
638
+ box-shadow:
639
+ 0 0 24px rgba(56, 189, 248, 0.48),
640
+ 0 0 34px rgba(99, 102, 241, 0.24);
641
+ animation: loader-core-breathe 2.1s ease-in-out infinite;
642
+ }
643
+
644
+ .luxe-loader__orbit {
645
+ position: absolute;
646
+ inset: 0;
647
+ animation: loader-spin 2.5s linear infinite;
648
+ }
649
+
650
+ .luxe-loader__dot {
651
+ position: absolute;
652
+ left: 50%;
653
+ top: 3px;
654
+ height: 9px;
655
+ width: 9px;
656
+ border-radius: 9999px;
657
+ transform: translateX(-50%);
658
+ background: radial-gradient(
659
+ circle at 30% 30%,
660
+ rgba(255, 255, 255, 1) 0%,
661
+ rgba(167, 243, 255, 0.95) 35%,
662
+ rgba(34, 211, 238, 0.95) 100%
663
+ );
664
+ box-shadow:
665
+ 0 0 10px rgba(34, 211, 238, 0.8),
666
+ 0 0 18px rgba(56, 189, 248, 0.5);
667
+ }
668
+
669
+ .aurora-frame {
670
+ pointer-events: none;
671
+ position: absolute;
672
+ inset: 0;
673
+ z-index: 20;
674
+ }
675
+
676
+ .aurora-edge {
677
+ position: absolute;
678
+ opacity: 0.95;
679
+ will-change: background-position, opacity;
680
+ }
681
+
682
+ .aurora-edge.is-glow {
683
+ filter: blur(16px);
684
+ opacity: 0.75;
685
+ }
686
+
687
+ .aurora-edge.top,
688
+ .aurora-edge.bottom {
689
+ left: 0;
690
+ right: 0;
691
+ height: 4px;
692
+ background-image: linear-gradient(
693
+ 90deg,
694
+ rgba(16, 185, 129, 0.2),
695
+ rgba(34, 211, 238, 1),
696
+ rgba(59, 130, 246, 1),
697
+ rgba(16, 185, 129, 0.2)
698
+ );
699
+ background-size: 320% 100%;
700
+ box-shadow:
701
+ 0 0 8px rgba(34, 211, 238, 0.9),
702
+ 0 0 22px rgba(59, 130, 246, 0.65);
703
+ animation:
704
+ aurora-shift-x 5.2s linear infinite,
705
+ aurora-breathe 2.6s ease-in-out infinite;
706
+ }
707
+
708
+ .aurora-edge.top {
709
+ top: 0;
710
+ }
711
+
712
+ .aurora-edge.bottom {
713
+ bottom: 0;
714
+ animation-direction: reverse, normal;
715
+ }
716
+
717
+ .aurora-edge.left,
718
+ .aurora-edge.right {
719
+ top: 0;
720
+ bottom: 0;
721
+ width: 4px;
722
+ background-image: linear-gradient(
723
+ 180deg,
724
+ rgba(16, 185, 129, 0.2),
725
+ rgba(34, 211, 238, 1),
726
+ rgba(59, 130, 246, 1),
727
+ rgba(16, 185, 129, 0.2)
728
+ );
729
+ background-size: 100% 320%;
730
+ box-shadow:
731
+ 0 0 8px rgba(34, 211, 238, 0.85),
732
+ 0 0 20px rgba(59, 130, 246, 0.6);
733
+ animation:
734
+ aurora-shift-y 5.8s linear infinite,
735
+ aurora-breathe 3s ease-in-out infinite;
736
+ }
737
+
738
+ .aurora-edge.left {
739
+ left: 0;
740
+ }
741
+
742
+ .aurora-edge.right {
743
+ right: 0;
744
+ animation-direction: reverse, normal;
745
+ }
746
+
747
+ @media (prefers-reduced-motion: reduce) {
748
+ .nebula-orb,
749
+ .nebula-grain,
750
+ .luxe-loader__ring--outer,
751
+ .luxe-loader__ring--inner,
752
+ .luxe-loader__core,
753
+ .luxe-loader__orbit {
754
+ animation: none;
755
+ }
756
+
757
+ .aurora-edge {
758
+ animation: none;
759
+ opacity: 0.75;
760
+ }
761
+ }
762
+ }
763
+
764
+ html[data-preview-shield="on"] nextjs-portal,
765
+ html[data-preview-shield="on"] script[data-nextjs-dev-overlay] {
766
+ display: none !important;
767
+ }