@tenerife.music/ui 1.0.0 → 1.0.2

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 (143) hide show
  1. package/dist/ThemeProvider-CaUX_Jam.cjs +2 -0
  2. package/dist/ThemeProvider-ltuW-773.js +1227 -0
  3. package/dist/animation/index.d.ts +9 -0
  4. package/dist/animation/index.d.ts.map +1 -0
  5. package/dist/animation/presets.d.ts +304 -0
  6. package/dist/animation/presets.d.ts.map +1 -0
  7. package/dist/animation/tas.d.ts +80 -0
  8. package/dist/animation/tas.d.ts.map +1 -0
  9. package/dist/animation/types.d.ts +106 -0
  10. package/dist/animation/types.d.ts.map +1 -0
  11. package/dist/animation/utils.d.ts +7 -0
  12. package/dist/animation/utils.d.ts.map +1 -0
  13. package/dist/components/SectionBuilder.d.ts +37 -0
  14. package/dist/components/SectionBuilder.d.ts.map +1 -0
  15. package/dist/components/SectionBuilder.presets.d.ts +229 -0
  16. package/dist/components/SectionBuilder.presets.d.ts.map +1 -0
  17. package/dist/components/SectionBuilder.types.d.ts +327 -0
  18. package/dist/components/SectionBuilder.types.d.ts.map +1 -0
  19. package/dist/components/auth/ProfileCard.d.ts.map +1 -1
  20. package/dist/components/cards/EventCard.d.ts +32 -31
  21. package/dist/components/cards/EventCard.d.ts.map +1 -1
  22. package/dist/components/cards/VenueCard.d.ts +32 -33
  23. package/dist/components/cards/VenueCard.d.ts.map +1 -1
  24. package/dist/components/data/List.d.ts.map +1 -1
  25. package/dist/components/data/Table.d.ts.map +1 -1
  26. package/dist/components/data/Timeline.d.ts.map +1 -1
  27. package/dist/components/feedback/Alert.d.ts +1 -1
  28. package/dist/components/feedback/Alert.d.ts.map +1 -1
  29. package/dist/components/feedback/Progress.d.ts.map +1 -1
  30. package/dist/components/filters/FilterSelect.d.ts.map +1 -1
  31. package/dist/components/image/Image.d.ts.map +1 -1
  32. package/dist/components/layout/Box.d.ts +82 -0
  33. package/dist/components/layout/Box.d.ts.map +1 -0
  34. package/dist/components/layout/Container.d.ts.map +1 -1
  35. package/dist/components/layout/Flex.d.ts +27 -6
  36. package/dist/components/layout/Flex.d.ts.map +1 -1
  37. package/dist/components/layout/Grid.d.ts +42 -3
  38. package/dist/components/layout/Grid.d.ts.map +1 -1
  39. package/dist/components/layout/Navbar.d.ts +2 -2
  40. package/dist/components/layout/Navbar.d.ts.map +1 -1
  41. package/dist/components/layout/Section.d.ts.map +1 -1
  42. package/dist/components/layout/Stack.d.ts +21 -4
  43. package/dist/components/layout/Stack.d.ts.map +1 -1
  44. package/dist/components/layout/index.d.ts +15 -0
  45. package/dist/components/layout/index.d.ts.map +1 -0
  46. package/dist/components/layout/layout.types.d.ts +92 -0
  47. package/dist/components/layout/layout.types.d.ts.map +1 -0
  48. package/dist/components/menus/DropdownMenu.d.ts.map +1 -1
  49. package/dist/components/menus/NavigationMenu.d.ts.map +1 -1
  50. package/dist/components/menus/Tabs.d.ts.map +1 -1
  51. package/dist/components/modals/ConfirmDialog.d.ts +2 -2
  52. package/dist/components/modals/ConfirmDialog.d.ts.map +1 -1
  53. package/dist/components/modals/Modal.d.ts.map +1 -1
  54. package/dist/components/modals/SimpleModal.d.ts +3 -1
  55. package/dist/components/modals/SimpleModal.d.ts.map +1 -1
  56. package/dist/components/navigation/Breadcrumbs.d.ts +1 -0
  57. package/dist/components/navigation/Breadcrumbs.d.ts.map +1 -1
  58. package/dist/components/navigation/Pagination.d.ts +1 -0
  59. package/dist/components/navigation/Pagination.d.ts.map +1 -1
  60. package/dist/components/overlays/OverlayPortal.d.ts.map +1 -1
  61. package/dist/components/overlays/Popover.d.ts +4 -4
  62. package/dist/components/overlays/Popover.d.ts.map +1 -1
  63. package/dist/components/overlays/Tooltip.d.ts +2 -2
  64. package/dist/components/overlays/Tooltip.d.ts.map +1 -1
  65. package/dist/components/primitives/Badge.d.ts +1 -1
  66. package/dist/components/primitives/Badge.d.ts.map +1 -1
  67. package/dist/components/primitives/Card.d.ts.map +1 -1
  68. package/dist/components/primitives/Divider.d.ts.map +1 -1
  69. package/dist/components/primitives/Label.d.ts.map +1 -1
  70. package/dist/components/primitives/Link.d.ts +4 -2
  71. package/dist/components/primitives/Link.d.ts.map +1 -1
  72. package/dist/components/primitives/ThemeSwitch.d.ts +2 -2
  73. package/dist/components/primitives/ThemeSwitch.d.ts.map +1 -1
  74. package/dist/components/primitives/Typography.d.ts +2 -2
  75. package/dist/components/primitives/Typography.d.ts.map +1 -1
  76. package/dist/components/search/SearchBar.d.ts.map +1 -1
  77. package/dist/components/sections/ArticlesSection.d.ts +14 -4
  78. package/dist/components/sections/ArticlesSection.d.ts.map +1 -1
  79. package/dist/components/sections/CTASection.d.ts +38 -0
  80. package/dist/components/sections/CTASection.d.ts.map +1 -0
  81. package/dist/components/sections/FeatureSection.d.ts +34 -0
  82. package/dist/components/sections/FeatureSection.d.ts.map +1 -0
  83. package/dist/components/sections/HeroSection.d.ts +28 -0
  84. package/dist/components/sections/HeroSection.d.ts.map +1 -0
  85. package/dist/components/sections/TrendingSection.d.ts +15 -3
  86. package/dist/components/sections/TrendingSection.d.ts.map +1 -1
  87. package/dist/components/toasts/Toast.d.ts +1 -1
  88. package/dist/components/toasts/Toast.d.ts.map +1 -1
  89. package/dist/components/toasts/ToastProvider.d.ts.map +1 -1
  90. package/dist/components/ui/button.d.ts +4 -2
  91. package/dist/components/ui/button.d.ts.map +1 -1
  92. package/dist/components/ui/card.d.ts.map +1 -1
  93. package/dist/components/ui/dialog.d.ts.map +1 -1
  94. package/dist/components/ui/input.d.ts.map +1 -1
  95. package/dist/components/ui/label.d.ts.map +1 -1
  96. package/dist/components/ui/tooltip.d.ts.map +1 -1
  97. package/dist/index.cjs +1 -1
  98. package/dist/index.d.ts +27 -18
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.mjs +3897 -2372
  101. package/dist/lib/a11y.d.ts +16 -0
  102. package/dist/lib/a11y.d.ts.map +1 -0
  103. package/dist/lib/responsive-props.d.ts +64 -0
  104. package/dist/lib/responsive-props.d.ts.map +1 -0
  105. package/dist/motion-4SRNkZlz.cjs +2 -0
  106. package/dist/motion-CuHacXY1.js +722 -0
  107. package/dist/test/animation-utils.d.ts +60 -0
  108. package/dist/test/animation-utils.d.ts.map +1 -0
  109. package/dist/theme/ThemeProvider.d.ts +19 -8
  110. package/dist/theme/ThemeProvider.d.ts.map +1 -1
  111. package/dist/theme/applyMode.d.ts +11 -2
  112. package/dist/theme/applyMode.d.ts.map +1 -1
  113. package/dist/theme/index.cjs +1 -1
  114. package/dist/theme/index.d.ts +3 -0
  115. package/dist/theme/index.d.ts.map +1 -1
  116. package/dist/theme/index.mjs +236 -101
  117. package/dist/theme/loader.d.ts +64 -0
  118. package/dist/theme/loader.d.ts.map +1 -0
  119. package/dist/theme/registry.d.ts +71 -0
  120. package/dist/theme/registry.d.ts.map +1 -0
  121. package/dist/theme/schema.d.ts +125 -0
  122. package/dist/theme/schema.d.ts.map +1 -0
  123. package/dist/themes/brand_engine.d.ts +102 -0
  124. package/dist/themes/brand_engine.d.ts.map +1 -0
  125. package/dist/themes/index.d.ts +3 -0
  126. package/dist/themes/index.d.ts.map +1 -1
  127. package/dist/themes/minimal.d.ts +7 -0
  128. package/dist/themes/minimal.d.ts.map +1 -0
  129. package/dist/themes/neon.d.ts +7 -0
  130. package/dist/themes/neon.d.ts.map +1 -0
  131. package/dist/themes/types.d.ts +220 -5
  132. package/dist/themes/types.d.ts.map +1 -1
  133. package/dist/tokens/css-variables.d.ts +21 -0
  134. package/dist/tokens/css-variables.d.ts.map +1 -1
  135. package/dist/tokens/index.cjs +3 -3
  136. package/dist/tokens/index.mjs +295 -551
  137. package/dist/tokens/motion.d.ts +77 -0
  138. package/dist/tokens/motion.d.ts.map +1 -1
  139. package/package.json +20 -7
  140. package/dist/applyMode-Bh7sEqT6.js +0 -144
  141. package/dist/applyMode-DCenL-Bg.cjs +0 -2
  142. package/dist/colors-BGRiFoSZ.cjs +0 -2
  143. package/dist/colors-ClemXPPi.js +0 -377
@@ -0,0 +1,1227 @@
1
+ "use client";
2
+ import { jsx as ce } from "react/jsx-runtime";
3
+ import d from "react";
4
+ import "./radius-CAu4qr9R.js";
5
+ import { m as me, p as le, a as de, s as pe, b as N, c as L, d as W, t as q } from "./motion-CuHacXY1.js";
6
+ const ye = {
7
+ id: "minimal",
8
+ name: "Minimal",
9
+ description: "Clean, minimal brand theme with muted colors, light typography, and compact spacing",
10
+ namespace: "minimal",
11
+ version: "1.0.0",
12
+ author: "Tenerife UI",
13
+ themes: [
14
+ {
15
+ id: "minimal-day",
16
+ name: "Minimal Day",
17
+ description: "Light minimal theme with grayscale colors and subtle accents",
18
+ mode: "day",
19
+ overrides: {
20
+ name: "minimal-day",
21
+ description: "Light minimal theme for day mode",
22
+ // Muted, low-saturation color overrides
23
+ primaryColors: {
24
+ 400: "0 0% 60%",
25
+ // Muted gray
26
+ 500: "0 0% 50%",
27
+ // Neutral gray (#808080)
28
+ 600: "0 0% 40%",
29
+ 700: "0 0% 30%"
30
+ },
31
+ accentColors: {
32
+ 400: "210 20% 70%",
33
+ // Muted blue-gray
34
+ 500: "210 20% 60%",
35
+ // Subtle blue-gray
36
+ 600: "210 20% 50%",
37
+ 700: "210 20% 40%"
38
+ },
39
+ secondaryColors: {
40
+ 400: "0 0% 70%",
41
+ // Light gray
42
+ 500: "0 0% 65%",
43
+ // Neutral light gray
44
+ 600: "0 0% 55%",
45
+ 700: "0 0% 45%"
46
+ },
47
+ // Muted base colors for day mode
48
+ baseColorsDay: {
49
+ primary: "0 0% 50%",
50
+ // Neutral gray
51
+ primaryForeground: "0 0% 100%",
52
+ secondary: "0 0% 96%",
53
+ // Very light gray
54
+ secondaryForeground: "0 0% 20%",
55
+ accent: "210 20% 60%",
56
+ // Subtle blue-gray
57
+ accentForeground: "0 0% 100%"
58
+ },
59
+ // Subtle semantic colors
60
+ semanticColorsDay: {
61
+ success: "140 30% 45%",
62
+ // Muted green
63
+ info: "210 30% 50%",
64
+ // Muted blue
65
+ warning: "40 30% 50%",
66
+ // Muted orange
67
+ error: "0 40% 55%"
68
+ // Muted red
69
+ },
70
+ // Typography overrides - lighter and smaller
71
+ typography: {
72
+ fontWeight: {
73
+ normal: "400",
74
+ // Normal weight
75
+ medium: "500",
76
+ semibold: "600",
77
+ // Lighter than default
78
+ bold: "700"
79
+ // Standard bold
80
+ },
81
+ fontSize: {
82
+ xs: [
83
+ "clamp(0.6875rem, 0.65rem + 0.125vw, 0.75rem)",
84
+ { lineHeight: "1rem", letterSpacing: "0.05em" }
85
+ ],
86
+ // Smaller
87
+ sm: [
88
+ "clamp(0.8125rem, 0.75rem + 0.25vw, 0.875rem)",
89
+ { lineHeight: "1.25rem", letterSpacing: "0.025em" }
90
+ ],
91
+ // Smaller
92
+ base: [
93
+ "clamp(0.9375rem, 0.875rem + 0.25vw, 1rem)",
94
+ { lineHeight: "1.5rem", letterSpacing: "0em" }
95
+ ],
96
+ // Smaller
97
+ lg: [
98
+ "clamp(1.0625rem, 0.95rem + 0.5vw, 1.125rem)",
99
+ { lineHeight: "1.75rem", letterSpacing: "-0.025em" }
100
+ ],
101
+ // Smaller
102
+ xl: [
103
+ "clamp(1.1875rem, 1rem + 0.75vw, 1.375rem)",
104
+ { lineHeight: "1.75rem", letterSpacing: "-0.025em" }
105
+ ]
106
+ // Smaller
107
+ }
108
+ },
109
+ // Spacing overrides - compact spacing for tight layout
110
+ spacing: {
111
+ semanticSpacing: {
112
+ xs: "0.125rem",
113
+ // 2px (was 4px)
114
+ sm: "0.25rem",
115
+ // 4px (was 8px)
116
+ md: "0.5rem",
117
+ // 8px (was 16px)
118
+ lg: "0.75rem",
119
+ // 12px (was 24px)
120
+ xl: "1rem",
121
+ // 16px (was 32px)
122
+ "2xl": "1.5rem"
123
+ // 24px (was 48px)
124
+ }
125
+ },
126
+ // Shadow overrides - subtle and minimal
127
+ shadows: {
128
+ elevationShadows: {
129
+ xs: "0 1px 1px 0 rgb(0 0 0 / 0.03)",
130
+ sm: "0 1px 2px 0 rgb(0 0 0 / 0.05), 0 1px 1px -1px rgb(0 0 0 / 0.05)",
131
+ md: "0 2px 4px -1px rgb(0 0 0 / 0.05), 0 1px 2px -2px rgb(0 0 0 / 0.05)",
132
+ lg: "0 4px 8px -2px rgb(0 0 0 / 0.05), 0 2px 4px -3px rgb(0 0 0 / 0.05)",
133
+ xl: "0 8px 12px -3px rgb(0 0 0 / 0.05), 0 4px 6px -4px rgb(0 0 0 / 0.05)"
134
+ },
135
+ glowEffects: {
136
+ "glow-primary": "0 0 8px 0 hsl(0 0% 50% / 0.2)",
137
+ "glow-primary-subtle": "0 0 4px 0 hsl(0 0% 50% / 0.15)",
138
+ "glow-primary-medium": "0 0 8px 0 hsl(0 0% 50% / 0.25)",
139
+ "glow-primary-strong": "0 0 12px 0 hsl(0 0% 50% / 0.3)"
140
+ }
141
+ },
142
+ // Radius overrides - smaller, sharper corners
143
+ radius: {
144
+ borderRadius: {
145
+ xs: "0.0625rem",
146
+ // 1px
147
+ sm: "0.125rem",
148
+ // 2px (was 4px)
149
+ md: "0.1875rem",
150
+ // 3px (was 6px)
151
+ lg: "0.25rem",
152
+ // 4px (was 8px)
153
+ xl: "0.375rem",
154
+ // 6px (was 12px)
155
+ "2xl": "0.5rem"
156
+ // 8px (was 16px)
157
+ },
158
+ componentRadius: {
159
+ button: {
160
+ sm: "0.125rem",
161
+ // 2px
162
+ md: "0.1875rem",
163
+ // 3px
164
+ lg: "0.25rem"
165
+ // 4px
166
+ },
167
+ card: {
168
+ sm: "0.1875rem",
169
+ // 3px
170
+ md: "0.25rem",
171
+ // 4px
172
+ lg: "0.375rem",
173
+ // 6px
174
+ xl: "0.5rem"
175
+ // 8px
176
+ },
177
+ input: {
178
+ sm: "0.125rem",
179
+ // 2px
180
+ md: "0.1875rem",
181
+ // 3px
182
+ lg: "0.25rem"
183
+ // 4px
184
+ },
185
+ badge: {
186
+ sm: "0.0625rem",
187
+ // 1px
188
+ md: "0.125rem",
189
+ // 2px
190
+ lg: "0.1875rem"
191
+ // 3px
192
+ }
193
+ }
194
+ }
195
+ }
196
+ },
197
+ {
198
+ id: "minimal-night",
199
+ name: "Minimal Night",
200
+ description: "Dark minimal theme with muted grayscale colors",
201
+ mode: "night",
202
+ overrides: {
203
+ name: "minimal-night",
204
+ description: "Dark minimal theme for night mode",
205
+ // Muted colors for night mode (slightly lighter than day for contrast)
206
+ primaryColors: {
207
+ 400: "0 0% 65%",
208
+ // Lighter gray for night
209
+ 500: "0 0% 55%",
210
+ // Neutral gray
211
+ 600: "0 0% 45%",
212
+ 700: "0 0% 35%"
213
+ },
214
+ accentColors: {
215
+ 400: "210 20% 75%",
216
+ // Lighter blue-gray
217
+ 500: "210 20% 65%",
218
+ // Subtle blue-gray
219
+ 600: "210 20% 55%",
220
+ 700: "210 20% 45%"
221
+ },
222
+ secondaryColors: {
223
+ 400: "0 0% 75%",
224
+ // Light gray
225
+ 500: "0 0% 70%",
226
+ // Neutral light gray
227
+ 600: "0 0% 60%",
228
+ 700: "0 0% 50%"
229
+ },
230
+ // Darker base colors for night mode
231
+ baseColorsNight: {
232
+ background: "240 10% 8%",
233
+ // Dark gray background
234
+ foreground: "0 0% 95%",
235
+ card: "240 10% 10%",
236
+ cardForeground: "0 0% 95%"
237
+ },
238
+ surfaceColorsNight: {
239
+ base: "240 10% 8%",
240
+ elevated1: "240 10% 10%",
241
+ elevated2: "240 10% 12%",
242
+ elevated3: "240 10% 14%"
243
+ },
244
+ // Subtle semantic colors for night
245
+ semanticColorsNight: {
246
+ success: "140 30% 50%",
247
+ // Muted green
248
+ info: "210 30% 55%",
249
+ // Muted blue
250
+ warning: "40 30% 55%",
251
+ // Muted orange
252
+ error: "0 40% 60%"
253
+ // Muted red
254
+ },
255
+ // Typography overrides - same as day
256
+ typography: {
257
+ fontWeight: {
258
+ normal: "400",
259
+ medium: "500",
260
+ semibold: "600",
261
+ bold: "700"
262
+ },
263
+ fontSize: {
264
+ xs: [
265
+ "clamp(0.6875rem, 0.65rem + 0.125vw, 0.75rem)",
266
+ { lineHeight: "1rem", letterSpacing: "0.05em" }
267
+ ],
268
+ sm: [
269
+ "clamp(0.8125rem, 0.75rem + 0.25vw, 0.875rem)",
270
+ { lineHeight: "1.25rem", letterSpacing: "0.025em" }
271
+ ],
272
+ base: [
273
+ "clamp(0.9375rem, 0.875rem + 0.25vw, 1rem)",
274
+ { lineHeight: "1.5rem", letterSpacing: "0em" }
275
+ ],
276
+ lg: [
277
+ "clamp(1.0625rem, 0.95rem + 0.5vw, 1.125rem)",
278
+ { lineHeight: "1.75rem", letterSpacing: "-0.025em" }
279
+ ],
280
+ xl: [
281
+ "clamp(1.1875rem, 1rem + 0.75vw, 1.375rem)",
282
+ { lineHeight: "1.75rem", letterSpacing: "-0.025em" }
283
+ ]
284
+ }
285
+ },
286
+ // Spacing overrides - same as day
287
+ spacing: {
288
+ semanticSpacing: {
289
+ xs: "0.125rem",
290
+ sm: "0.25rem",
291
+ md: "0.5rem",
292
+ lg: "0.75rem",
293
+ xl: "1rem",
294
+ "2xl": "1.5rem"
295
+ }
296
+ },
297
+ // Shadow overrides - subtle for night
298
+ shadows: {
299
+ elevationShadows: {
300
+ xs: "0 1px 2px 0 rgb(0 0 0 / 0.15)",
301
+ sm: "0 1px 3px 0 rgb(0 0 0 / 0.2), 0 1px 2px -1px rgb(0 0 0 / 0.2)",
302
+ md: "0 2px 5px -1px rgb(0 0 0 / 0.2), 0 1px 3px -2px rgb(0 0 0 / 0.2)",
303
+ lg: "0 4px 10px -2px rgb(0 0 0 / 0.2), 0 2px 5px -3px rgb(0 0 0 / 0.2)",
304
+ xl: "0 8px 15px -3px rgb(0 0 0 / 0.2), 0 4px 8px -4px rgb(0 0 0 / 0.2)"
305
+ },
306
+ glowEffects: {
307
+ "glow-primary": "0 0 8px 0 hsl(0 0% 55% / 0.25)",
308
+ "glow-primary-subtle": "0 0 4px 0 hsl(0 0% 55% / 0.2)",
309
+ "glow-primary-medium": "0 0 8px 0 hsl(0 0% 55% / 0.3)",
310
+ "glow-primary-strong": "0 0 12px 0 hsl(0 0% 55% / 0.35)"
311
+ }
312
+ },
313
+ // Radius overrides - same as day
314
+ radius: {
315
+ borderRadius: {
316
+ xs: "0.0625rem",
317
+ sm: "0.125rem",
318
+ md: "0.1875rem",
319
+ lg: "0.25rem",
320
+ xl: "0.375rem",
321
+ "2xl": "0.5rem"
322
+ },
323
+ componentRadius: {
324
+ button: {
325
+ sm: "0.125rem",
326
+ md: "0.1875rem",
327
+ lg: "0.25rem"
328
+ },
329
+ card: {
330
+ sm: "0.1875rem",
331
+ md: "0.25rem",
332
+ lg: "0.375rem",
333
+ xl: "0.5rem"
334
+ },
335
+ input: {
336
+ sm: "0.125rem",
337
+ md: "0.1875rem",
338
+ lg: "0.25rem"
339
+ },
340
+ badge: {
341
+ sm: "0.0625rem",
342
+ md: "0.125rem",
343
+ lg: "0.1875rem"
344
+ }
345
+ }
346
+ }
347
+ }
348
+ }
349
+ ]
350
+ }, ge = {
351
+ id: "neon",
352
+ name: "Neon",
353
+ description: "Vibrant brand theme with high-saturation neon colors, bold typography, and enhanced visual effects",
354
+ namespace: "neon",
355
+ version: "1.0.0",
356
+ author: "Tenerife UI",
357
+ themes: [
358
+ {
359
+ id: "neon-day",
360
+ name: "Neon Day",
361
+ description: "Bright neon theme for day mode with vibrant cyan, magenta, and yellow accents",
362
+ mode: "day",
363
+ overrides: {
364
+ name: "neon-day",
365
+ description: "Bright neon theme for day mode",
366
+ // Vibrant neon color overrides
367
+ primaryColors: {
368
+ 400: "180 100% 50%",
369
+ // Bright cyan
370
+ 500: "180 100% 45%",
371
+ // Vibrant cyan (#00e6ff)
372
+ 600: "180 95% 40%",
373
+ 700: "180 90% 35%"
374
+ },
375
+ accentColors: {
376
+ 400: "320 100% 60%",
377
+ // Bright magenta
378
+ 500: "320 100% 55%",
379
+ // Vibrant magenta (#ff00cc)
380
+ 600: "320 95% 50%",
381
+ 700: "320 90% 45%"
382
+ },
383
+ secondaryColors: {
384
+ 400: "60 100% 60%",
385
+ // Bright yellow
386
+ 500: "60 100% 55%",
387
+ // Vibrant yellow (#ffff00)
388
+ 600: "60 95% 50%",
389
+ 700: "60 90% 45%"
390
+ },
391
+ // Enhanced base colors for day mode
392
+ baseColorsDay: {
393
+ primary: "180 100% 45%",
394
+ // Neon cyan
395
+ primaryForeground: "0 0% 100%",
396
+ accent: "320 100% 55%",
397
+ // Neon magenta
398
+ accentForeground: "0 0% 100%"
399
+ },
400
+ // Semantic colors with neon accents
401
+ semanticColorsDay: {
402
+ success: "145 80% 45%",
403
+ // Neon green
404
+ info: "180 100% 45%",
405
+ // Neon cyan
406
+ warning: "60 100% 55%",
407
+ // Neon yellow
408
+ error: "0 100% 60%"
409
+ // Bright red
410
+ },
411
+ // Typography overrides - bolder and larger
412
+ typography: {
413
+ fontWeight: {
414
+ normal: "500",
415
+ // Heavier than default (400)
416
+ medium: "600",
417
+ // Heavier
418
+ semibold: "700",
419
+ // Bold
420
+ bold: "800"
421
+ // Extra bold
422
+ },
423
+ fontSize: {
424
+ xs: [
425
+ "clamp(0.875rem, 0.8rem + 0.25vw, 1rem)",
426
+ { lineHeight: "1.25rem", letterSpacing: "0.025em" }
427
+ ],
428
+ // Larger than default
429
+ sm: [
430
+ "clamp(1rem, 0.95rem + 0.25vw, 1.125rem)",
431
+ { lineHeight: "1.5rem", letterSpacing: "0em" }
432
+ ],
433
+ // Larger
434
+ base: [
435
+ "clamp(1.125rem, 1rem + 0.5vw, 1.25rem)",
436
+ { lineHeight: "1.75rem", letterSpacing: "-0.025em" }
437
+ ],
438
+ // Larger
439
+ lg: [
440
+ "clamp(1.25rem, 1.1rem + 0.75vw, 1.5rem)",
441
+ { lineHeight: "1.75rem", letterSpacing: "-0.025em" }
442
+ ],
443
+ // Larger
444
+ xl: [
445
+ "clamp(1.5rem, 1.25rem + 1.25vw, 2rem)",
446
+ { lineHeight: "2rem", letterSpacing: "-0.05em" }
447
+ ]
448
+ // Larger
449
+ }
450
+ },
451
+ // Spacing overrides - larger spacing for breathing room
452
+ spacing: {
453
+ semanticSpacing: {
454
+ xs: "0.5rem",
455
+ // 8px (was 4px)
456
+ sm: "1rem",
457
+ // 16px (was 8px)
458
+ md: "1.5rem",
459
+ // 24px (was 16px)
460
+ lg: "2rem",
461
+ // 32px (was 24px)
462
+ xl: "3rem",
463
+ // 48px (was 32px)
464
+ "2xl": "4rem"
465
+ // 64px (was 48px)
466
+ }
467
+ },
468
+ // Shadow overrides - stronger and more prominent
469
+ shadows: {
470
+ elevationShadows: {
471
+ xs: "0 2px 4px 0 rgb(0 0 0 / 0.1)",
472
+ sm: "0 2px 6px 0 rgb(0 0 0 / 0.15), 0 2px 4px -1px rgb(0 0 0 / 0.15)",
473
+ md: "0 6px 10px -1px rgb(0 0 0 / 0.15), 0 4px 6px -2px rgb(0 0 0 / 0.15)",
474
+ lg: "0 12px 20px -3px rgb(0 0 0 / 0.15), 0 6px 10px -4px rgb(0 0 0 / 0.15)",
475
+ xl: "0 24px 32px -5px rgb(0 0 0 / 0.15), 0 10px 14px -6px rgb(0 0 0 / 0.15)"
476
+ },
477
+ glowEffects: {
478
+ "glow-primary": "0 0 30px 0 hsl(180 100% 45% / 0.7), 0 0 60px 0 hsl(180 100% 45% / 0.4)",
479
+ "glow-primary-subtle": "0 0 12px 0 hsl(180 100% 45% / 0.5)",
480
+ "glow-primary-medium": "0 0 24px 0 hsl(180 100% 45% / 0.7)",
481
+ "glow-primary-strong": "0 0 36px 0 hsl(180 100% 45% / 0.8)",
482
+ "glow-accent": "0 0 30px 0 hsl(320 100% 55% / 0.7), 0 0 60px 0 hsl(320 100% 55% / 0.4)",
483
+ "glow-accent-subtle": "0 0 12px 0 hsl(320 100% 55% / 0.5)",
484
+ "glow-accent-medium": "0 0 24px 0 hsl(320 100% 55% / 0.7)",
485
+ "glow-accent-strong": "0 0 36px 0 hsl(320 100% 55% / 0.8)"
486
+ }
487
+ },
488
+ // Radius overrides - more rounded corners
489
+ radius: {
490
+ borderRadius: {
491
+ sm: "0.375rem",
492
+ // 6px (was 4px)
493
+ md: "0.5rem",
494
+ // 8px (was 6px)
495
+ lg: "0.75rem",
496
+ // 12px (was 8px)
497
+ xl: "1rem",
498
+ // 16px (was 12px)
499
+ "2xl": "1.5rem",
500
+ // 24px (was 16px)
501
+ "3xl": "2rem"
502
+ // 32px (was 24px)
503
+ },
504
+ componentRadius: {
505
+ button: {
506
+ sm: "0.5rem",
507
+ // 8px
508
+ md: "0.75rem",
509
+ // 12px
510
+ lg: "1rem"
511
+ // 16px
512
+ },
513
+ card: {
514
+ sm: "0.75rem",
515
+ // 12px
516
+ md: "1rem",
517
+ // 16px
518
+ lg: "1.25rem",
519
+ // 20px
520
+ xl: "1.5rem"
521
+ // 24px
522
+ },
523
+ input: {
524
+ sm: "0.5rem",
525
+ // 8px
526
+ md: "0.75rem",
527
+ // 12px
528
+ lg: "1rem"
529
+ // 16px
530
+ },
531
+ badge: {
532
+ sm: "0.375rem",
533
+ // 6px
534
+ md: "0.5rem",
535
+ // 8px
536
+ lg: "0.75rem"
537
+ // 12px
538
+ }
539
+ }
540
+ }
541
+ }
542
+ },
543
+ {
544
+ id: "neon-night",
545
+ name: "Neon Night",
546
+ description: "Dark neon theme for night mode with glowing neon accents on dark backgrounds",
547
+ mode: "night",
548
+ overrides: {
549
+ name: "neon-night",
550
+ description: "Dark neon theme for night mode",
551
+ // Vibrant neon color overrides (same as day but with different base)
552
+ primaryColors: {
553
+ 400: "180 100% 55%",
554
+ // Brighter cyan for night
555
+ 500: "180 100% 50%",
556
+ // Vibrant cyan
557
+ 600: "180 95% 45%",
558
+ 700: "180 90% 40%"
559
+ },
560
+ accentColors: {
561
+ 400: "320 100% 65%",
562
+ // Brighter magenta for night
563
+ 500: "320 100% 60%",
564
+ // Vibrant magenta
565
+ 600: "320 95% 55%",
566
+ 700: "320 90% 50%"
567
+ },
568
+ secondaryColors: {
569
+ 400: "60 100% 65%",
570
+ // Brighter yellow for night
571
+ 500: "60 100% 60%",
572
+ // Vibrant yellow
573
+ 600: "60 95% 55%",
574
+ 700: "60 90% 50%"
575
+ },
576
+ // Darker base colors for night mode
577
+ baseColorsNight: {
578
+ background: "240 10% 5%",
579
+ // Very dark background
580
+ foreground: "0 0% 98%",
581
+ card: "240 10% 6%",
582
+ cardForeground: "0 0% 98%"
583
+ },
584
+ surfaceColorsNight: {
585
+ base: "240 10% 5%",
586
+ // Very dark
587
+ elevated1: "240 10% 7%",
588
+ elevated2: "240 10% 9%",
589
+ elevated3: "240 10% 11%"
590
+ },
591
+ // Semantic colors with neon accents for night
592
+ semanticColorsNight: {
593
+ success: "145 75% 50%",
594
+ // Neon green
595
+ info: "180 100% 50%",
596
+ // Neon cyan
597
+ warning: "60 100% 60%",
598
+ // Neon yellow
599
+ error: "0 100% 65%"
600
+ // Bright red
601
+ },
602
+ // Typography overrides - same as day
603
+ typography: {
604
+ fontWeight: {
605
+ normal: "500",
606
+ medium: "600",
607
+ semibold: "700",
608
+ bold: "800"
609
+ },
610
+ fontSize: {
611
+ xs: [
612
+ "clamp(0.875rem, 0.8rem + 0.25vw, 1rem)",
613
+ { lineHeight: "1.25rem", letterSpacing: "0.025em" }
614
+ ],
615
+ sm: [
616
+ "clamp(1rem, 0.95rem + 0.25vw, 1.125rem)",
617
+ { lineHeight: "1.5rem", letterSpacing: "0em" }
618
+ ],
619
+ base: [
620
+ "clamp(1.125rem, 1rem + 0.5vw, 1.25rem)",
621
+ { lineHeight: "1.75rem", letterSpacing: "-0.025em" }
622
+ ],
623
+ lg: [
624
+ "clamp(1.25rem, 1.1rem + 0.75vw, 1.5rem)",
625
+ { lineHeight: "1.75rem", letterSpacing: "-0.025em" }
626
+ ],
627
+ xl: [
628
+ "clamp(1.5rem, 1.25rem + 1.25vw, 2rem)",
629
+ { lineHeight: "2rem", letterSpacing: "-0.05em" }
630
+ ]
631
+ }
632
+ },
633
+ // Spacing overrides - same as day
634
+ spacing: {
635
+ semanticSpacing: {
636
+ xs: "0.5rem",
637
+ sm: "1rem",
638
+ md: "1.5rem",
639
+ lg: "2rem",
640
+ xl: "3rem",
641
+ "2xl": "4rem"
642
+ }
643
+ },
644
+ // Shadow overrides - even stronger glow for night
645
+ shadows: {
646
+ elevationShadows: {
647
+ xs: "0 2px 4px 0 rgb(0 0 0 / 0.2)",
648
+ sm: "0 2px 6px 0 rgb(0 0 0 / 0.25), 0 2px 4px -1px rgb(0 0 0 / 0.25)",
649
+ md: "0 6px 10px -1px rgb(0 0 0 / 0.25), 0 4px 6px -2px rgb(0 0 0 / 0.25)",
650
+ lg: "0 12px 20px -3px rgb(0 0 0 / 0.25), 0 6px 10px -4px rgb(0 0 0 / 0.25)",
651
+ xl: "0 24px 32px -5px rgb(0 0 0 / 0.25), 0 10px 14px -6px rgb(0 0 0 / 0.25)"
652
+ },
653
+ glowEffects: {
654
+ "glow-primary": "0 0 40px 0 hsl(180 100% 50% / 0.8), 0 0 80px 0 hsl(180 100% 50% / 0.5)",
655
+ "glow-primary-subtle": "0 0 16px 0 hsl(180 100% 50% / 0.6)",
656
+ "glow-primary-medium": "0 0 32px 0 hsl(180 100% 50% / 0.8)",
657
+ "glow-primary-strong": "0 0 48px 0 hsl(180 100% 50% / 0.9)",
658
+ "glow-accent": "0 0 40px 0 hsl(320 100% 60% / 0.8), 0 0 80px 0 hsl(320 100% 60% / 0.5)",
659
+ "glow-accent-subtle": "0 0 16px 0 hsl(320 100% 60% / 0.6)",
660
+ "glow-accent-medium": "0 0 32px 0 hsl(320 100% 60% / 0.8)",
661
+ "glow-accent-strong": "0 0 48px 0 hsl(320 100% 60% / 0.9)"
662
+ }
663
+ },
664
+ // Radius overrides - same as day
665
+ radius: {
666
+ borderRadius: {
667
+ sm: "0.375rem",
668
+ md: "0.5rem",
669
+ lg: "0.75rem",
670
+ xl: "1rem",
671
+ "2xl": "1.5rem",
672
+ "3xl": "2rem"
673
+ },
674
+ componentRadius: {
675
+ button: {
676
+ sm: "0.5rem",
677
+ md: "0.75rem",
678
+ lg: "1rem"
679
+ },
680
+ card: {
681
+ sm: "0.75rem",
682
+ md: "1rem",
683
+ lg: "1.25rem",
684
+ xl: "1.5rem"
685
+ },
686
+ input: {
687
+ sm: "0.5rem",
688
+ md: "0.75rem",
689
+ lg: "1rem"
690
+ },
691
+ badge: {
692
+ sm: "0.375rem",
693
+ md: "0.5rem",
694
+ lg: "0.75rem"
695
+ }
696
+ }
697
+ }
698
+ }
699
+ }
700
+ ]
701
+ }, v = /* @__PURE__ */ new Map();
702
+ let T = null, B = null;
703
+ const $ = /* @__PURE__ */ new Map();
704
+ function Z(t) {
705
+ const e = [], i = [];
706
+ if (!t || typeof t != "object")
707
+ return {
708
+ valid: !1,
709
+ errors: ["Brand must be an object"],
710
+ warnings: []
711
+ };
712
+ const r = t, s = ["id", "name", "namespace"];
713
+ for (const o of s)
714
+ (!(o in r) || !r[o]) && e.push(`Missing required field: ${o}`);
715
+ if (r.id && typeof r.id == "string" && (/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(r.id) || e.push(
716
+ `Invalid brand ID format: "${r.id}". Must be kebab-case (e.g., "neon-brand")`
717
+ )), r.namespace && typeof r.namespace == "string" && (/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(r.namespace) || e.push(
718
+ `Invalid namespace format: "${r.namespace}". Must be kebab-case (e.g., "neon")`
719
+ )), r.themes)
720
+ if (!Array.isArray(r.themes))
721
+ e.push("Brand themes must be an array");
722
+ else {
723
+ const o = r.themes;
724
+ o.length === 0 && i.push("Brand has no themes defined"), o.forEach((l, a) => {
725
+ if (!l || typeof l != "object") {
726
+ e.push(`Theme at index ${a} must be an object`);
727
+ return;
728
+ }
729
+ const n = l;
730
+ (!n.id || typeof n.id != "string") && e.push(`Theme at index ${a} is missing required field: id`), (!n.name || typeof n.name != "string") && e.push(`Theme at index ${a} is missing required field: name`), (!n.mode || !["day", "night"].includes(n.mode)) && e.push(`Theme at index ${a} must have mode set to "day" or "night"`), (!n.overrides || typeof n.overrides != "object") && e.push(`Theme at index ${a} is missing required field: overrides`);
731
+ });
732
+ }
733
+ else
734
+ e.push("Brand must have at least one theme");
735
+ if (r.version && typeof r.version == "string" && (/^\d+\.\d+\.\d+$/.test(r.version) || i.push(
736
+ `Invalid version format: "${r.version}". Should be semver (e.g., "1.0.0")`
737
+ )), r.themes && Array.isArray(r.themes)) {
738
+ const o = r.themes.map(
739
+ (a) => a == null ? void 0 : a.id
740
+ ), l = new Set(o);
741
+ o.length !== l.size && e.push("Brand contains duplicate theme IDs");
742
+ }
743
+ return {
744
+ valid: e.length === 0,
745
+ errors: e,
746
+ warnings: i
747
+ };
748
+ }
749
+ function U(t, e) {
750
+ const i = Z(t);
751
+ if (!i.valid)
752
+ throw new Error(`Invalid brand "${t.id}": ${i.errors.join(", ")}`);
753
+ if (i.warnings.length > 0 && console.warn(`Brand "${t.id}" validation warnings:`, i.warnings.join(", ")), v.has(t.id))
754
+ throw new Error(`Brand "${t.id}" is already registered`);
755
+ const r = Array.from(v.values()).find(
756
+ (s) => s.brand.namespace === t.namespace
757
+ );
758
+ if (r)
759
+ throw new Error(
760
+ `Brand namespace "${t.namespace}" is already used by brand "${r.brand.id}"`
761
+ );
762
+ v.set(t.id, {
763
+ brand: t,
764
+ enabled: (e == null ? void 0 : e.enabled) !== !1,
765
+ loader: e == null ? void 0 : e.loader
766
+ });
767
+ }
768
+ async function K(t) {
769
+ if ($.has(t))
770
+ return $.get(t);
771
+ const e = v.get(t);
772
+ if (!e)
773
+ throw new Error(`Brand "${t}" not found in registry`);
774
+ if (e.enabled === !1)
775
+ throw new Error(`Brand "${t}" is disabled`);
776
+ if (e.loader)
777
+ try {
778
+ const r = (await e.loader()).default, s = Z(r);
779
+ if (!s.valid)
780
+ throw new Error(`Invalid loaded brand "${t}": ${s.errors.join(", ")}`);
781
+ return $.set(t, r), r;
782
+ } catch (i) {
783
+ throw new Error(
784
+ `Failed to load brand "${t}": ${i instanceof Error ? i.message : String(i)}`
785
+ );
786
+ }
787
+ return $.set(t, e.brand), e.brand;
788
+ }
789
+ function ee() {
790
+ return T;
791
+ }
792
+ function j(t) {
793
+ T = t, B = (t == null ? void 0 : t.namespace) || null;
794
+ }
795
+ function ue() {
796
+ T = null, B = null;
797
+ }
798
+ function fe(t, e) {
799
+ return t.themes.find((i) => i.mode === e);
800
+ }
801
+ function te(t, e) {
802
+ if (typeof document > "u") return;
803
+ const i = fe(t, e);
804
+ if (!i) {
805
+ console.warn(`Brand "${t.id}" has no theme for mode "${e}"`);
806
+ return;
807
+ }
808
+ const r = document.documentElement, { namespace: s } = t, { overrides: o } = i;
809
+ o.primaryColors && Object.entries(o.primaryColors).forEach(([a, n]) => {
810
+ r.style.setProperty(`--brand-${s}-primary-${a}`, n);
811
+ }), o.accentColors && Object.entries(o.accentColors).forEach(([a, n]) => {
812
+ r.style.setProperty(`--brand-${s}-accent-${a}`, n);
813
+ }), o.secondaryColors && Object.entries(o.secondaryColors).forEach(([a, n]) => {
814
+ r.style.setProperty(`--brand-${s}-secondary-${a}`, n);
815
+ });
816
+ const l = e === "day" ? o.baseColorsDay : o.baseColorsNight;
817
+ if (l && Object.entries(l).forEach(([a, n]) => {
818
+ r.style.setProperty(`--brand-${s}-${a}`, n);
819
+ }), o.typography && (o.typography.fontFamily && Object.entries(o.typography.fontFamily).forEach(([a, n]) => {
820
+ r.style.setProperty(
821
+ `--brand-${s}-font-${a}`,
822
+ Array.isArray(n) ? n.join(", ") : n
823
+ );
824
+ }), o.typography.fontSize && Object.entries(o.typography.fontSize).forEach(([a, n]) => {
825
+ const m = typeof n == "string" ? n : n[0];
826
+ r.style.setProperty(`--brand-${s}-font-size-${a}`, m);
827
+ }), o.typography.fontWeight && Object.entries(o.typography.fontWeight).forEach(([a, n]) => {
828
+ r.style.setProperty(`--brand-${s}-font-weight-${a}`, n);
829
+ }), o.typography.lineHeight && Object.entries(o.typography.lineHeight).forEach(([a, n]) => {
830
+ r.style.setProperty(`--brand-${s}-line-height-${a}`, n);
831
+ }), o.typography.letterSpacing && Object.entries(o.typography.letterSpacing).forEach(([a, n]) => {
832
+ r.style.setProperty(`--brand-${s}-letter-spacing-${a}`, n);
833
+ })), o.spacing && (o.spacing.semanticSpacing && Object.entries(o.spacing.semanticSpacing).forEach(([a, n]) => {
834
+ r.style.setProperty(`--brand-${s}-spacing-${a}`, n);
835
+ }), o.spacing.layoutSpacing)) {
836
+ const a = o.spacing.layoutSpacing;
837
+ a.section && Object.entries(a.section).forEach(([n, m]) => {
838
+ typeof m == "string" && r.style.setProperty(`--brand-${s}-layout-section-${n}`, m);
839
+ }), a.container && Object.entries(a.container).forEach(([n, m]) => {
840
+ typeof m == "string" && r.style.setProperty(`--brand-${s}-layout-container-${n}`, m);
841
+ }), a.grid && Object.entries(a.grid).forEach(([n, m]) => {
842
+ typeof m == "string" && r.style.setProperty(`--brand-${s}-layout-grid-${n}`, m);
843
+ }), a.stack && Object.entries(a.stack).forEach(([n, m]) => {
844
+ typeof m == "string" && r.style.setProperty(`--brand-${s}-layout-stack-${n}`, m);
845
+ }), a.component && Object.entries(a.component).forEach(([n, m]) => {
846
+ typeof m == "string" && r.style.setProperty(`--brand-${s}-layout-component-${n}`, m);
847
+ });
848
+ }
849
+ if (o.shadows && (o.shadows.elevationShadows && Object.entries(o.shadows.elevationShadows).forEach(([a, n]) => {
850
+ r.style.setProperty(`--brand-${s}-shadow-${a}`, n);
851
+ }), o.shadows.primaryColoredShadows && Object.entries(o.shadows.primaryColoredShadows).forEach(([a, n]) => {
852
+ r.style.setProperty(`--brand-${s}-shadow-primary-${a}`, n);
853
+ }), o.shadows.accentColoredShadows && Object.entries(o.shadows.accentColoredShadows).forEach(([a, n]) => {
854
+ r.style.setProperty(`--brand-${s}-shadow-accent-${a}`, n);
855
+ }), o.shadows.glowEffects && Object.entries(o.shadows.glowEffects).forEach(([a, n]) => {
856
+ r.style.setProperty(`--brand-${s}-glow-${a}`, n);
857
+ }), o.shadows.focusRings && Object.entries(o.shadows.focusRings).forEach(([a, n]) => {
858
+ r.style.setProperty(`--brand-${s}-focus-ring-${a}`, n);
859
+ })), o.radius && (o.radius.borderRadius && Object.entries(o.radius.borderRadius).forEach(([a, n]) => {
860
+ r.style.setProperty(`--brand-${s}-radius-${a}`, n);
861
+ }), o.radius.componentRadius)) {
862
+ const { componentRadius: a } = o.radius;
863
+ a.button && Object.entries(a.button).forEach(([n, m]) => {
864
+ r.style.setProperty(`--brand-${s}-radius-button-${n}`, m);
865
+ }), a.card && Object.entries(a.card).forEach(([n, m]) => {
866
+ r.style.setProperty(`--brand-${s}-radius-card-${n}`, m);
867
+ }), a.input && Object.entries(a.input).forEach(([n, m]) => {
868
+ r.style.setProperty(`--brand-${s}-radius-input-${n}`, m);
869
+ });
870
+ }
871
+ j(t), r.setAttribute("data-brand", t.id), r.setAttribute("data-brand-namespace", s);
872
+ }
873
+ function re(t) {
874
+ if (typeof document > "u") return;
875
+ const e = document.documentElement, { style: i } = e, r = [];
876
+ for (let s = 0; s < i.length; s++) {
877
+ const o = i.item(s);
878
+ o && o.startsWith(`--brand-${t}-`) && r.push(o);
879
+ }
880
+ r.forEach((s) => {
881
+ i.removeProperty(s);
882
+ }), e.removeAttribute("data-brand"), e.removeAttribute("data-brand-namespace"), B === t && ue();
883
+ }
884
+ const he = {
885
+ default: () => import("./default-BKgH1D9-.js").then((t) => t.defaultTheme),
886
+ dark: () => import("./dark-Cvoy1uFT.js").then((t) => t.darkTheme),
887
+ brand: () => import("./brand-C5R2semX.js").then((t) => t.brandTheme)
888
+ };
889
+ async function xe(t) {
890
+ const e = he[t];
891
+ if (!e)
892
+ throw new Error(`Theme "${t}" not found`);
893
+ return await e();
894
+ }
895
+ const oe = "data-mode", A = "data-theme-name", se = "data-theme", V = "dark";
896
+ function be(t = "day", e = "tm_mode", i = !0) {
897
+ if (typeof window > "u") return t;
898
+ const r = document.documentElement, s = r.getAttribute(oe);
899
+ if (s === "day" || s === "night")
900
+ return s;
901
+ const o = r.getAttribute(se);
902
+ if (o === "day" || o === "night")
903
+ return o;
904
+ try {
905
+ const l = localStorage.getItem(e);
906
+ if (l === "day" || l === "night")
907
+ return l;
908
+ const a = localStorage.getItem("theme");
909
+ if (a === "dark") return "night";
910
+ if (a === "light") return "day";
911
+ } catch {
912
+ }
913
+ return i && typeof window < "u" ? window.matchMedia("(prefers-color-scheme: dark)").matches ? "night" : "day" : t;
914
+ }
915
+ let E = null;
916
+ async function we(t) {
917
+ if (t === "default")
918
+ return E = null, null;
919
+ try {
920
+ const e = await xe(t);
921
+ return E = e, e;
922
+ } catch (e) {
923
+ return console.warn(`Failed to load theme "${t}":`, e), E = null, null;
924
+ }
925
+ }
926
+ function k(t, e) {
927
+ return e ? { ...t, ...e } : t;
928
+ }
929
+ function b(t, e) {
930
+ return e ? { ...t, ...e } : t;
931
+ }
932
+ function ne(t) {
933
+ const e = E, i = k(le, e == null ? void 0 : e.primaryColors), r = k(de, e == null ? void 0 : e.accentColors), s = k(pe, e == null ? void 0 : e.secondaryColors), o = {
934
+ day: b(N.day, e == null ? void 0 : e.baseColorsDay),
935
+ night: b(N.night, e == null ? void 0 : e.baseColorsNight)
936
+ }, l = {
937
+ day: b(L.day, e == null ? void 0 : e.surfaceColorsDay),
938
+ night: b(L.night, e == null ? void 0 : e.surfaceColorsNight)
939
+ }, a = {
940
+ day: b(W.day, e == null ? void 0 : e.semanticColorsDay),
941
+ night: b(W.night, e == null ? void 0 : e.semanticColorsNight)
942
+ }, n = {
943
+ day: b(q.day, e == null ? void 0 : e.textColorsDay),
944
+ night: b(q.night, e == null ? void 0 : e.textColorsNight)
945
+ };
946
+ return {
947
+ primaryColors: i,
948
+ accentColors: r,
949
+ secondaryColors: s,
950
+ baseColors: o,
951
+ surfaceColors: l,
952
+ semanticColors: a,
953
+ textColors: n
954
+ };
955
+ }
956
+ function Pe(t) {
957
+ if (typeof document > "u") return;
958
+ const e = document.documentElement, i = ne(), {
959
+ primaryColors: r,
960
+ accentColors: s,
961
+ secondaryColors: o,
962
+ baseColors: l,
963
+ surfaceColors: a,
964
+ semanticColors: n,
965
+ textColors: m
966
+ } = i, p = l[t];
967
+ e.style.setProperty("--background", p.background), e.style.setProperty("--foreground", p.foreground), e.style.setProperty("--card", p.card), e.style.setProperty("--card-foreground", p.cardForeground), e.style.setProperty("--popover", p.popover), e.style.setProperty("--popover-foreground", p.popoverForeground), e.style.setProperty("--border", p.border), e.style.setProperty("--input", p.input), e.style.setProperty("--ring", p.ring);
968
+ const y = a[t];
969
+ e.style.setProperty("--surface-base", y.base), e.style.setProperty("--surface-elevated1", y.elevated1), e.style.setProperty("--surface-elevated2", y.elevated2), e.style.setProperty("--surface-elevated3", y.elevated3), e.style.setProperty("--surface-overlay", y.overlay), e.style.setProperty("--surface-glass", y.glass);
970
+ const h = n[t];
971
+ e.style.setProperty("--semantic-success", h.success), e.style.setProperty("--semantic-success-foreground", h.successForeground), e.style.setProperty("--semantic-error", h.error), e.style.setProperty("--semantic-error-foreground", h.errorForeground), e.style.setProperty("--semantic-warning", h.warning), e.style.setProperty("--semantic-warning-foreground", h.warningForeground), e.style.setProperty("--semantic-info", h.info), e.style.setProperty("--semantic-info-foreground", h.infoForeground);
972
+ const f = m[t];
973
+ e.style.setProperty("--text-primary", f.primary), e.style.setProperty("--text-secondary", f.secondary), e.style.setProperty("--text-tertiary", f.tertiary), e.style.setProperty("--text-muted", f.muted), e.style.setProperty("--text-inverse", f.inverse), e.style.setProperty("--primary-50", r[50]), e.style.setProperty("--primary-100", r[100]), e.style.setProperty("--primary-200", r[200]), e.style.setProperty("--primary-300", r[300]), e.style.setProperty("--primary-400", r[400]), e.style.setProperty("--primary-500", r[500]), e.style.setProperty("--primary-600", r[600]), e.style.setProperty("--primary-700", r[700]), e.style.setProperty("--primary-800", r[800]), e.style.setProperty("--primary-900", r[900]), e.style.setProperty("--primary-950", r[950]), e.style.setProperty("--accent-50", s[50]), e.style.setProperty("--accent-100", s[100]), e.style.setProperty("--accent-200", s[200]), e.style.setProperty("--accent-300", s[300]), e.style.setProperty("--accent-400", s[400]), e.style.setProperty("--accent-500", s[500]), e.style.setProperty("--accent-600", s[600]), e.style.setProperty("--accent-700", s[700]), e.style.setProperty("--accent-800", s[800]), e.style.setProperty("--accent-900", s[900]), e.style.setProperty("--accent-950", s[950]), e.style.setProperty("--secondary-50", o[50]), e.style.setProperty("--secondary-100", o[100]), e.style.setProperty("--secondary-200", o[200]), e.style.setProperty("--secondary-300", o[300]), e.style.setProperty("--secondary-400", o[400]), e.style.setProperty("--secondary-500", o[500]), e.style.setProperty("--secondary-600", o[600]), e.style.setProperty("--secondary-700", o[700]), e.style.setProperty("--secondary-800", o[800]), e.style.setProperty("--secondary-900", o[900]), e.style.setProperty("--secondary-950", o[950]), t === "day" ? (e.style.setProperty("--tm-primary", o[500]), e.style.setProperty("--tm-primary-foreground", "0 0% 100%"), e.style.setProperty("--tm-secondary", "0 0% 95.7%"), e.style.setProperty("--tm-secondary-foreground", "0 0% 6.7%"), e.style.setProperty("--tm-accent", "0 0% 89.8%"), e.style.setProperty("--tm-accent-foreground", "0 0% 6.7%")) : (e.style.setProperty("--tm-primary", s[500]), e.style.setProperty("--tm-primary-foreground", "0 0% 100%"), e.style.setProperty("--tm-secondary", "240 10% 7%"), e.style.setProperty("--tm-secondary-foreground", "0 0% 89.8%"), e.style.setProperty("--tm-accent", "240 10% 10%"), e.style.setProperty("--tm-accent-foreground", "0 0% 89.8%")), e.style.setProperty("--muted", p.card), e.style.setProperty("--muted-foreground", p.cardForeground), e.style.setProperty("--destructive", h.error), e.style.setProperty("--destructive-foreground", h.errorForeground), Object.entries(me).forEach(([C, x]) => {
974
+ e.style.setProperty(C, x);
975
+ });
976
+ }
977
+ async function w(t, e = "default", i = null) {
978
+ if (typeof document > "u") return;
979
+ await we(e);
980
+ const r = ee();
981
+ if (r && (!i || r.id !== i) && re(r.namespace), i)
982
+ try {
983
+ const m = await K(i);
984
+ te(m, t);
985
+ } catch (m) {
986
+ console.warn(`Failed to apply brand "${i}":`, m);
987
+ }
988
+ const { documentElement: s, body: o } = document;
989
+ s.setAttribute(oe, t), s.setAttribute(se, t), s.setAttribute(A, e), t === "night" ? s.classList.add(V) : s.classList.remove(V), Pe(t);
990
+ const l = ne(), { background: a, foreground: n } = l.baseColors[t];
991
+ o && (o.dataset.mode = t, o.dataset.theme = e, i ? o.dataset.brand = i : o.removeAttribute("data-brand"), o.style.backgroundColor = `hsl(${a})`, o.style.color = `hsl(${n})`);
992
+ }
993
+ async function je(t) {
994
+ if (typeof document < "u") {
995
+ const e = document.documentElement, i = e.getAttribute(A) || "default", r = e.getAttribute("data-brand") || null;
996
+ await w(t, i, r);
997
+ } else
998
+ await w(t, "default", null);
999
+ }
1000
+ function Q(t = "default", e = "tm_theme") {
1001
+ if (typeof window > "u") return t;
1002
+ const r = document.documentElement.getAttribute(A);
1003
+ if (r === "default" || r === "dark" || r === "brand")
1004
+ return r;
1005
+ try {
1006
+ const s = localStorage.getItem(e);
1007
+ if (s === "default" || s === "dark" || s === "brand")
1008
+ return s;
1009
+ } catch {
1010
+ }
1011
+ return t;
1012
+ }
1013
+ function G(t, e = "tm_mode") {
1014
+ if (!(typeof window > "u"))
1015
+ try {
1016
+ localStorage.setItem(e, t), localStorage.setItem("theme", t === "night" ? "dark" : "light");
1017
+ } catch {
1018
+ }
1019
+ }
1020
+ function J(t, e = "tm_theme") {
1021
+ if (!(typeof window > "u"))
1022
+ try {
1023
+ localStorage.setItem(e, t);
1024
+ } catch {
1025
+ }
1026
+ }
1027
+ function X(t = null, e = "tm_brand") {
1028
+ if (typeof window > "u") return t;
1029
+ const r = document.documentElement.getAttribute("data-brand");
1030
+ if (r)
1031
+ return r;
1032
+ try {
1033
+ const s = localStorage.getItem(e);
1034
+ if (s)
1035
+ return s;
1036
+ } catch {
1037
+ }
1038
+ return t;
1039
+ }
1040
+ function Y(t, e = "tm_brand") {
1041
+ if (!(typeof window > "u"))
1042
+ try {
1043
+ t ? localStorage.setItem(e, t) : localStorage.removeItem(e);
1044
+ } catch {
1045
+ }
1046
+ }
1047
+ const ae = d.createContext(void 0);
1048
+ function Ce(t) {
1049
+ if (t !== void 0) return t;
1050
+ if (typeof window > "u") return !1;
1051
+ try {
1052
+ return window.matchMedia("(prefers-reduced-motion: reduce)").matches;
1053
+ } catch {
1054
+ return !1;
1055
+ }
1056
+ }
1057
+ function Te({
1058
+ children: t,
1059
+ defaultMode: e = "day",
1060
+ defaultTheme: i = "default",
1061
+ defaultBrand: r = null,
1062
+ storageKey: s = "tm_mode",
1063
+ themeStorageKey: o = "tm_theme",
1064
+ brandStorageKey: l = "tm_brand",
1065
+ attribute: a = "data-mode",
1066
+ enableSystem: n = !0,
1067
+ reduceMotion: m,
1068
+ enableAnimations: p = !0
1069
+ }) {
1070
+ d.useEffect(() => {
1071
+ try {
1072
+ U(ge);
1073
+ } catch (c) {
1074
+ console.warn("Failed to register neon brand:", c);
1075
+ }
1076
+ try {
1077
+ U(ye);
1078
+ } catch (c) {
1079
+ console.warn("Failed to register minimal brand:", c);
1080
+ }
1081
+ }, []);
1082
+ const [y, h] = d.useState(() => {
1083
+ if (typeof window > "u") return e;
1084
+ const g = document.documentElement.getAttribute(a);
1085
+ if (g === "day" || g === "night")
1086
+ return g;
1087
+ try {
1088
+ const u = localStorage.getItem(s);
1089
+ if (u === "day" || u === "night")
1090
+ return u;
1091
+ } catch {
1092
+ }
1093
+ return n && typeof window < "u" ? window.matchMedia("(prefers-color-scheme: dark)").matches ? "night" : "day" : e;
1094
+ }), [f, C] = d.useState(() => typeof window > "u" ? i : Q(i, o)), [x, R] = d.useState(() => typeof window > "u" ? r : X(r, l)), [D, S] = d.useState(() => Ce(m)), [F, _] = d.useState(() => p), P = d.useCallback(
1095
+ (c) => {
1096
+ h(c), w(c, f, x), G(c, s);
1097
+ },
1098
+ [f, x, s]
1099
+ ), H = d.useCallback(
1100
+ async (c) => {
1101
+ C(c), await w(y, c, x), J(c, o);
1102
+ },
1103
+ [y, x, o]
1104
+ ), O = d.useCallback(
1105
+ async (c) => {
1106
+ const g = ee();
1107
+ if (g && re(g.namespace), R(c), Y(c, l), c)
1108
+ try {
1109
+ const u = await K(c);
1110
+ te(u, y);
1111
+ } catch (u) {
1112
+ console.error(`Failed to load brand "${c}":`, u), j(null);
1113
+ }
1114
+ else
1115
+ j(null);
1116
+ await w(y, f, c);
1117
+ },
1118
+ [y, f, l]
1119
+ ), M = d.useCallback(() => {
1120
+ P(y === "night" ? "day" : "night");
1121
+ }, [y, P]), z = d.useCallback((c) => {
1122
+ S(c);
1123
+ try {
1124
+ localStorage.setItem("tm_reduce_motion", c ? "true" : "false");
1125
+ } catch {
1126
+ }
1127
+ }, []), I = d.useCallback((c) => {
1128
+ _(c);
1129
+ try {
1130
+ localStorage.setItem("tm_enable_animations", c ? "true" : "false");
1131
+ } catch {
1132
+ }
1133
+ }, []);
1134
+ d.useEffect(() => {
1135
+ if (m !== void 0) return;
1136
+ const c = window.matchMedia("(prefers-reduced-motion: reduce)"), g = (u) => {
1137
+ S(u.matches);
1138
+ };
1139
+ return c.addEventListener("change", g), () => c.removeEventListener("change", g);
1140
+ }, [m]), d.useEffect(() => {
1141
+ if (m === void 0)
1142
+ try {
1143
+ const c = localStorage.getItem("tm_reduce_motion");
1144
+ (c === "true" || c === "false") && S(c === "true");
1145
+ } catch {
1146
+ }
1147
+ if (p === void 0)
1148
+ try {
1149
+ const c = localStorage.getItem("tm_enable_animations");
1150
+ (c === "true" || c === "false") && _(c === "true");
1151
+ } catch {
1152
+ }
1153
+ }, [m, p]), d.useEffect(() => {
1154
+ const c = be(e, s, n), g = Q(i, o), u = X(r, l);
1155
+ h(c), C(g), R(u), w(c, g, u), G(c, s), J(g, o), Y(u, l);
1156
+ }, [
1157
+ e,
1158
+ i,
1159
+ r,
1160
+ s,
1161
+ o,
1162
+ l,
1163
+ n
1164
+ ]), d.useEffect(() => {
1165
+ if (!n) return;
1166
+ const c = window.matchMedia("(prefers-color-scheme: dark)"), g = (u) => {
1167
+ try {
1168
+ localStorage.getItem(s) || P(u.matches ? "night" : "day");
1169
+ } catch {
1170
+ }
1171
+ };
1172
+ return c.addEventListener("change", g), () => c.removeEventListener("change", g);
1173
+ }, [n, s, P]), d.useEffect(() => {
1174
+ w(y, f, x);
1175
+ }, [y, f, x]);
1176
+ const ie = d.useMemo(
1177
+ () => ({
1178
+ mode: y,
1179
+ theme: f,
1180
+ brand: x,
1181
+ reduceMotion: m !== void 0 ? m : D,
1182
+ enableAnimations: p !== void 0 ? p : F,
1183
+ setMode: P,
1184
+ setTheme: H,
1185
+ setBrand: O,
1186
+ toggleMode: M,
1187
+ setReduceMotion: z,
1188
+ setEnableAnimations: I
1189
+ }),
1190
+ [
1191
+ y,
1192
+ f,
1193
+ x,
1194
+ D,
1195
+ F,
1196
+ m,
1197
+ p,
1198
+ P,
1199
+ H,
1200
+ O,
1201
+ M,
1202
+ z,
1203
+ I
1204
+ ]
1205
+ );
1206
+ return /* @__PURE__ */ ce(ae.Provider, { value: ie, children: t });
1207
+ }
1208
+ function Be() {
1209
+ const t = d.useContext(ae);
1210
+ if (t === void 0)
1211
+ throw new Error("useTheme must be used within a ThemeProvider");
1212
+ return t;
1213
+ }
1214
+ export {
1215
+ Te as T,
1216
+ w as a,
1217
+ je as b,
1218
+ Q as c,
1219
+ J as d,
1220
+ X as e,
1221
+ Y as f,
1222
+ be as g,
1223
+ ae as h,
1224
+ we as l,
1225
+ G as p,
1226
+ Be as u
1227
+ };