@sykoramaros/marosh-components 0.1.15 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/cli/index.cjs +3 -3
  2. package/dist/index.d.ts +1006 -6
  3. package/dist/index.js +26 -25
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +2662 -3614
  6. package/dist/index.mjs.map +1 -1
  7. package/package.json +22 -7
  8. package/src/components/basicComponents/CustomButton.stories.tsx +60 -0
  9. package/src/components/basicComponents/Footer.stories.tsx +47 -0
  10. package/src/components/basicComponents/Footer.tsx +25 -14
  11. package/src/components/basicComponents/MainNav.stories.tsx +34 -0
  12. package/src/components/basicComponents/MainNav.tsx +24 -6
  13. package/src/components/basicComponents/MainSidebarLayout.stories.tsx +77 -0
  14. package/src/components/basicComponents/MainSidebarLayout.tsx +32 -27
  15. package/src/components/basicComponents/Switcher.stories.tsx +42 -0
  16. package/src/components/basicComponents/Switcher.tsx +2 -0
  17. package/src/index.ts +26 -1
  18. package/src/providers/BaseUrlProvider.tsx +24 -0
  19. package/src/providers/ThemeContextProvider.tsx +272 -0
  20. package/src/themes/bubblegum.json +134 -0
  21. package/src/themes/default.json +134 -0
  22. package/src/themes/index.ts +17 -0
  23. package/src/themes/marosh-theme.json +135 -0
  24. package/src/themes/nature.json +134 -0
  25. package/src/themes/new-theme.json +139 -0
  26. package/src/themes/retro-arcade.json +134 -0
  27. package/src/themes/tangerine.json +134 -0
  28. package/src/themes/themes/bubblegum.json +134 -0
  29. package/src/themes/themes/default.json +134 -0
  30. package/src/themes/themes/marosh-theme.json +135 -0
  31. package/src/themes/themes/nature.json +134 -0
  32. package/src/themes/themes/new-theme.json +139 -0
  33. package/src/themes/themes/retro-arcade.json +134 -0
  34. package/src/themes/themes/tangerine.json +134 -0
  35. package/src/vite-env.d.ts +1 -0
@@ -0,0 +1,272 @@
1
+ // src/providers/ThemeContextProvider.tsx
2
+ import React, { createContext, useContext, useEffect, useRef, useState } from "react"
3
+
4
+ // Typy - EXPORTUJ JE!
5
+ export type ThemeMode = "light" | "dark"
6
+
7
+ export interface ThemeConfig {
8
+ name: string
9
+ cssVars: {
10
+ theme: Record<string, string>
11
+ light: Record<string, string>
12
+ dark: Record<string, string>
13
+ }
14
+ css?: {
15
+ "@layer base"?: Record<string, any>
16
+ }
17
+ }
18
+
19
+ export type ThemeRegistry = Record<string, ThemeConfig>
20
+
21
+ // Context
22
+ interface ThemeContextType {
23
+ isDarkMode: boolean
24
+ setIsDarkMode: (value: boolean) => void
25
+ themeName: string
26
+ setThemeName: (value: string) => void
27
+ availableThemes: string[]
28
+ }
29
+
30
+ const ThemeContext = createContext<ThemeContextType | undefined>(undefined)
31
+
32
+ export const useThemeContext = () => {
33
+ const context = useContext(ThemeContext)
34
+ if (!context) {
35
+ throw new Error("useThemeContext must be used within ThemeContextProvider")
36
+ }
37
+ return context
38
+ }
39
+
40
+ // Provider Props
41
+ export interface ThemeContextProviderProps {
42
+ children: React.ReactNode
43
+ themes: ThemeRegistry // <- Uživatel předá své themes!
44
+ defaultTheme?: string
45
+ defaultMode?: ThemeMode
46
+ }
47
+
48
+ // Provider
49
+ export const ThemeContextProvider = ({
50
+ children,
51
+ themes,
52
+ defaultTheme,
53
+ defaultMode = "light",
54
+ }: ThemeContextProviderProps) => {
55
+ // Určit default theme
56
+ const initialTheme = defaultTheme || Object.keys(themes)[0] || "default"
57
+
58
+ const [isDarkMode, setIsDarkMode] = useState(defaultMode === "dark")
59
+ const [themeName, setThemeName] = useState<string>(initialTheme)
60
+ const appliedVarsRef = useRef<string[]>([])
61
+
62
+ const mode: ThemeMode = isDarkMode ? "dark" : "light"
63
+
64
+ useEffect(() => {
65
+ const theme = themes[themeName] || Object.values(themes)[0]
66
+
67
+ if (!theme) {
68
+ console.warn(`Theme "${themeName}" not found`)
69
+ return
70
+ }
71
+
72
+ // Smazat CSS proměnné předchozího tématu
73
+ appliedVarsRef.current.forEach((key) => {
74
+ document.documentElement.style.removeProperty(key)
75
+ })
76
+
77
+ const newKeys: string[] = []
78
+
79
+ // Aplikovat CSS proměnné pro mode (light/dark)
80
+ Object.entries(theme.cssVars[mode] || {}).forEach(([key, value]) => {
81
+ document.documentElement.style.setProperty(`--${key}`, value)
82
+ newKeys.push(`--${key}`)
83
+ })
84
+
85
+ // Aplikovat CSS proměnné z theme (včetně fontů)
86
+ Object.entries(theme.cssVars.theme || {}).forEach(([key, value]) => {
87
+ document.documentElement.style.setProperty(`--${key}`, value)
88
+ newKeys.push(`--${key}`)
89
+ })
90
+
91
+ appliedVarsRef.current = newKeys
92
+
93
+ // Vytvořit a přidat @layer base styly
94
+ const styleId = "theme-base-styles"
95
+ let styleElement = document.getElementById(styleId) as HTMLStyleElement
96
+
97
+ if (!styleElement) {
98
+ styleElement = document.createElement("style")
99
+ styleElement.id = styleId
100
+ document.head.appendChild(styleElement)
101
+ }
102
+
103
+ // Převést objekt @layer base na CSS řetězec
104
+ const baseStyles = theme.css?.["@layer base"]
105
+ if (baseStyles) {
106
+ const cssString = Object.entries(baseStyles)
107
+ .map(([selector, styles]) => {
108
+ const styleString = Object.entries(styles as Record<string, string>)
109
+ .map(([prop, val]) => `${prop}: ${val};`)
110
+ .join(" ")
111
+ return `${selector} { ${styleString} }`
112
+ })
113
+ .join("\n")
114
+
115
+ styleElement.textContent = `@layer base { ${cssString} }`
116
+ } else {
117
+ styleElement.textContent = ""
118
+ }
119
+
120
+ // Nastavit data atributy
121
+ document.documentElement.setAttribute("data-theme", themeName)
122
+ document.documentElement.setAttribute("data-mode", mode)
123
+ }, [themeName, mode, themes])
124
+
125
+ const availableThemes = Object.keys(themes)
126
+
127
+ return (
128
+ <ThemeContext.Provider
129
+ value={{
130
+ isDarkMode,
131
+ setIsDarkMode,
132
+ themeName,
133
+ setThemeName,
134
+ availableThemes,
135
+ }}
136
+ >
137
+ {children}
138
+ </ThemeContext.Provider>
139
+ )
140
+ }
141
+
142
+ // // src/providers/ThemeContextProvider.tsx
143
+ // import React, { createContext, useContext, useEffect, useState } from "react"
144
+
145
+ // // Přímý import JSON
146
+ // import defaultJson from "@/themes/default.json"
147
+ // import maroshThemeJson from "@/themes/marosh-theme.json"
148
+ // import newThemeJson from "@/themes/new-theme.json"
149
+ // import natureJson from "@/themes/nature.json"
150
+ // import retroArcadeJson from "@/themes/retro-arcade.json"
151
+ // import tangerineJson from "@/themes/tangerine.json"
152
+ // import bubblegumJson from "@/themes/bubblegum.json"
153
+
154
+ // // Typy
155
+ // type ThemeMode = "light" | "dark"
156
+ // type ThemeName =
157
+ // | "default"
158
+ // | "marosh"
159
+ // | "newTheme"
160
+ // | "nature"
161
+ // | "retro-arcade"
162
+ // | "tangerine"
163
+ // | "bubblegum"
164
+
165
+ // interface ThemeConfig {
166
+ // name: string
167
+ // cssVars: {
168
+ // theme: Record<string, string>
169
+ // light: Record<string, string>
170
+ // dark: Record<string, string>
171
+ // }
172
+ // css: {
173
+ // "@layer base": Record<string, any>
174
+ // }
175
+ // }
176
+
177
+ // // Data
178
+ // const themeData = {
179
+ // default: defaultJson as ThemeConfig,
180
+ // marosh: maroshThemeJson as ThemeConfig,
181
+ // newTheme: newThemeJson as ThemeConfig,
182
+ // nature: natureJson as ThemeConfig,
183
+ // "retro-arcade": retroArcadeJson as ThemeConfig,
184
+ // tangerine: tangerineJson as ThemeConfig,
185
+ // bubblegum: bubblegumJson as ThemeConfig,
186
+ // }
187
+
188
+ // // Context
189
+ // interface ThemeContextType {
190
+ // isDarkMode: boolean
191
+ // setIsDarkMode: (value: boolean) => void
192
+ // themeName: ThemeName
193
+ // setThemeName: (value: ThemeName) => void
194
+ // }
195
+
196
+ // const ThemeContext = createContext<ThemeContextType>({
197
+ // isDarkMode: false,
198
+ // setIsDarkMode: () => {},
199
+ // themeName: "marosh",
200
+ // setThemeName: () => {},
201
+ // })
202
+
203
+ // export const useThemeContext = () => useContext(ThemeContext)
204
+
205
+ // // Provider
206
+ // export const ThemeContextProvider = ({
207
+ // children,
208
+ // defaultTheme = "marosh",
209
+ // }: {
210
+ // children: React.ReactNode
211
+ // defaultTheme?: ThemeName
212
+ // }) => {
213
+ // const [isDarkMode, setIsDarkMode] = useState(false)
214
+ // const [themeName, setThemeName] = useState<ThemeName>(defaultTheme)
215
+
216
+ // const mode: ThemeMode = isDarkMode ? "dark" : "light"
217
+
218
+ // console.log("ThemeContextProvider - isDarkMode:", isDarkMode, "mode:", mode)
219
+
220
+ // useEffect(() => {
221
+ // const theme = themeData[themeName] || themeData.default
222
+
223
+ // // Aplikovat CSS proměnné
224
+ // Object.entries(theme.cssVars[mode]).forEach(([key, value]) => {
225
+ // document.documentElement.style.setProperty(`--${key}`, value)
226
+ // })
227
+
228
+ // // Aplikovat CSS proměnné z theme (včetně fontů)
229
+ // Object.entries(theme.cssVars.theme).forEach(([key, value]) => {
230
+ // document.documentElement.style.setProperty(`--${key}`, value)
231
+ // })
232
+
233
+ // // Vytvořit a přidat @layer base styly
234
+ // const styleId = "theme-base-styles"
235
+ // let styleElement = document.getElementById(styleId) as HTMLStyleElement
236
+
237
+ // if (!styleElement) {
238
+ // styleElement = document.createElement("style")
239
+ // styleElement.id = styleId
240
+ // document.head.appendChild(styleElement)
241
+ // }
242
+
243
+ // // Převést objekt @layer base na CSS řetězec
244
+ // const baseStyles = theme.css?.["@layer base"]
245
+ // if (baseStyles) {
246
+ // const cssString = Object.entries(baseStyles)
247
+ // .map(([selector, styles]) => {
248
+ // const styleString = Object.entries(styles as Record<string, string>)
249
+ // .map(([prop, val]) => `${prop}: ${val};`)
250
+ // .join(" ")
251
+ // return `${selector} { ${styleString} }`
252
+ // })
253
+ // .join("\n")
254
+
255
+ // styleElement.textContent = `@layer base { ${cssString} }`
256
+ // } else {
257
+ // styleElement.textContent = ""
258
+ // }
259
+
260
+ // // Nastavit data atributy
261
+ // document.documentElement.setAttribute("data-theme", themeName)
262
+ // document.documentElement.setAttribute("data-mode", mode)
263
+ // }, [themeName, mode])
264
+
265
+ // return (
266
+ // <ThemeContext.Provider
267
+ // value={{ isDarkMode, setIsDarkMode, themeName, setThemeName }}
268
+ // >
269
+ // {children}
270
+ // </ThemeContext.Provider>
271
+ // )
272
+ // }
@@ -0,0 +1,134 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "bubblegum",
4
+ "type": "registry:style",
5
+ "css": {
6
+ "@layer base": {
7
+ "body": {
8
+ "letter-spacing": "var(--tracking-normal)"
9
+ }
10
+ }
11
+ },
12
+ "cssVars": {
13
+ "theme": {
14
+ "font-sans": "Poppins, sans-serif",
15
+ "font-mono": "Fira Code, monospace",
16
+ "font-serif": "Lora, serif",
17
+ "radius": "0.4rem",
18
+ "tracking-tighter": "calc(var(--tracking-normal) - 0.05em)",
19
+ "tracking-tight": "calc(var(--tracking-normal) - 0.025em)",
20
+ "tracking-wide": "calc(var(--tracking-normal) + 0.025em)",
21
+ "tracking-wider": "calc(var(--tracking-normal) + 0.05em)",
22
+ "tracking-widest": "calc(var(--tracking-normal) + 0.1em)"
23
+ },
24
+ "light": {
25
+ "background": "oklch(0.9399 0.0203 345.6985)",
26
+ "foreground": "oklch(0.4712 0 0)",
27
+ "card": "oklch(0.9498 0.0500 86.8891)",
28
+ "card-foreground": "oklch(0.4712 0 0)",
29
+ "popover": "oklch(1.0000 0 0)",
30
+ "popover-foreground": "oklch(0.4712 0 0)",
31
+ "primary": "oklch(0.6209 0.1801 348.1385)",
32
+ "primary-foreground": "oklch(1.0000 0 0)",
33
+ "secondary": "oklch(0.8095 0.0694 198.1863)",
34
+ "secondary-foreground": "oklch(0.3211 0 0)",
35
+ "muted": "oklch(0.8800 0.0504 212.0952)",
36
+ "muted-foreground": "oklch(0.5795 0 0)",
37
+ "accent": "oklch(0.9195 0.0801 87.6670)",
38
+ "accent-foreground": "oklch(0.3211 0 0)",
39
+ "destructive": "oklch(0.7091 0.1697 21.9551)",
40
+ "destructive-foreground": "oklch(1.0000 0 0)",
41
+ "border": "oklch(0.6209 0.1801 348.1385)",
42
+ "input": "oklch(0.9189 0 0)",
43
+ "ring": "oklch(0.7002 0.1597 350.7532)",
44
+ "chart-1": "oklch(0.7002 0.1597 350.7532)",
45
+ "chart-2": "oklch(0.8189 0.0799 212.0892)",
46
+ "chart-3": "oklch(0.9195 0.0801 87.6670)",
47
+ "chart-4": "oklch(0.7998 0.1110 348.1791)",
48
+ "chart-5": "oklch(0.6197 0.1899 353.9091)",
49
+ "radius": "0.4rem",
50
+ "sidebar": "oklch(0.9140 0.0424 343.0913)",
51
+ "sidebar-foreground": "oklch(0.3211 0 0)",
52
+ "sidebar-primary": "oklch(0.6559 0.2118 354.3084)",
53
+ "sidebar-primary-foreground": "oklch(1.0000 0 0)",
54
+ "sidebar-accent": "oklch(0.8228 0.1095 346.0184)",
55
+ "sidebar-accent-foreground": "oklch(0.3211 0 0)",
56
+ "sidebar-border": "oklch(0.9464 0.0327 307.1745)",
57
+ "sidebar-ring": "oklch(0.6559 0.2118 354.3084)",
58
+ "font-sans": "Poppins, sans-serif",
59
+ "font-serif": "Lora, serif",
60
+ "font-mono": "Fira Code, monospace",
61
+ "shadow-color": "hsl(325.78 58.18% 56.86% / 0.5)",
62
+ "shadow-opacity": "1.0",
63
+ "shadow-blur": "0px",
64
+ "shadow-spread": "0px",
65
+ "shadow-offset-x": "3px",
66
+ "shadow-offset-y": "3px",
67
+ "letter-spacing": "0em",
68
+ "spacing": "0.25rem",
69
+ "shadow-2xs": "3px 3px 0px 0px hsl(325.7800 58.1800% 56.8600% / 0.50)",
70
+ "shadow-xs": "3px 3px 0px 0px hsl(325.7800 58.1800% 56.8600% / 0.50)",
71
+ "shadow-sm": "3px 3px 0px 0px hsl(325.7800 58.1800% 56.8600% / 1.00), 3px 1px 2px -1px hsl(325.7800 58.1800% 56.8600% / 1.00)",
72
+ "shadow": "3px 3px 0px 0px hsl(325.7800 58.1800% 56.8600% / 1.00), 3px 1px 2px -1px hsl(325.7800 58.1800% 56.8600% / 1.00)",
73
+ "shadow-md": "3px 3px 0px 0px hsl(325.7800 58.1800% 56.8600% / 1.00), 3px 2px 4px -1px hsl(325.7800 58.1800% 56.8600% / 1.00)",
74
+ "shadow-lg": "3px 3px 0px 0px hsl(325.7800 58.1800% 56.8600% / 1.00), 3px 4px 6px -1px hsl(325.7800 58.1800% 56.8600% / 1.00)",
75
+ "shadow-xl": "3px 3px 0px 0px hsl(325.7800 58.1800% 56.8600% / 1.00), 3px 8px 10px -1px hsl(325.7800 58.1800% 56.8600% / 1.00)",
76
+ "shadow-2xl": "3px 3px 0px 0px hsl(325.7800 58.1800% 56.8600% / 2.50)",
77
+ "tracking-normal": "0em"
78
+ },
79
+ "dark": {
80
+ "background": "oklch(0.2497 0.0305 234.1628)",
81
+ "foreground": "oklch(0.9306 0.0197 349.0785)",
82
+ "card": "oklch(0.2902 0.0299 233.5352)",
83
+ "card-foreground": "oklch(0.9306 0.0197 349.0785)",
84
+ "popover": "oklch(0.2902 0.0299 233.5352)",
85
+ "popover-foreground": "oklch(0.9306 0.0197 349.0785)",
86
+ "primary": "oklch(0.9195 0.0801 87.6670)",
87
+ "primary-foreground": "oklch(0.2497 0.0305 234.1628)",
88
+ "secondary": "oklch(0.7794 0.0803 4.1330)",
89
+ "secondary-foreground": "oklch(0.2497 0.0305 234.1628)",
90
+ "muted": "oklch(0.2713 0.0086 255.5780)",
91
+ "muted-foreground": "oklch(0.7794 0.0803 4.1330)",
92
+ "accent": "oklch(0.6699 0.0988 356.9762)",
93
+ "accent-foreground": "oklch(0.9306 0.0197 349.0785)",
94
+ "destructive": "oklch(0.6702 0.1806 350.3599)",
95
+ "destructive-foreground": "oklch(0.2497 0.0305 234.1628)",
96
+ "border": "oklch(0.3907 0.0399 242.2181)",
97
+ "input": "oklch(0.3093 0.0305 232.0027)",
98
+ "ring": "oklch(0.6998 0.0896 201.8672)",
99
+ "chart-1": "oklch(0.6998 0.0896 201.8672)",
100
+ "chart-2": "oklch(0.7794 0.0803 4.1330)",
101
+ "chart-3": "oklch(0.6699 0.0988 356.9762)",
102
+ "chart-4": "oklch(0.4408 0.0702 217.0848)",
103
+ "chart-5": "oklch(0.2713 0.0086 255.5780)",
104
+ "radius": "0.4rem",
105
+ "sidebar": "oklch(0.2303 0.0270 235.9743)",
106
+ "sidebar-foreground": "oklch(0.9670 0.0029 264.5419)",
107
+ "sidebar-primary": "oklch(0.6559 0.2118 354.3084)",
108
+ "sidebar-primary-foreground": "oklch(1.0000 0 0)",
109
+ "sidebar-accent": "oklch(0.8228 0.1095 346.0184)",
110
+ "sidebar-accent-foreground": "oklch(0.2781 0.0296 256.8480)",
111
+ "sidebar-border": "oklch(0.3729 0.0306 259.7328)",
112
+ "sidebar-ring": "oklch(0.6559 0.2118 354.3084)",
113
+ "font-sans": "Poppins, sans-serif",
114
+ "font-serif": "Lora, serif",
115
+ "font-mono": "Fira Code, monospace",
116
+ "shadow-color": "#324859",
117
+ "shadow-opacity": "1.0",
118
+ "shadow-blur": "0px",
119
+ "shadow-spread": "0px",
120
+ "shadow-offset-x": "3px",
121
+ "shadow-offset-y": "3px",
122
+ "letter-spacing": "0em",
123
+ "spacing": "0.25rem",
124
+ "shadow-2xs": "3px 3px 0px 0px hsl(206.1538 28.0576% 27.2549% / 0.50)",
125
+ "shadow-xs": "3px 3px 0px 0px hsl(206.1538 28.0576% 27.2549% / 0.50)",
126
+ "shadow-sm": "3px 3px 0px 0px hsl(206.1538 28.0576% 27.2549% / 1.00), 3px 1px 2px -1px hsl(206.1538 28.0576% 27.2549% / 1.00)",
127
+ "shadow": "3px 3px 0px 0px hsl(206.1538 28.0576% 27.2549% / 1.00), 3px 1px 2px -1px hsl(206.1538 28.0576% 27.2549% / 1.00)",
128
+ "shadow-md": "3px 3px 0px 0px hsl(206.1538 28.0576% 27.2549% / 1.00), 3px 2px 4px -1px hsl(206.1538 28.0576% 27.2549% / 1.00)",
129
+ "shadow-lg": "3px 3px 0px 0px hsl(206.1538 28.0576% 27.2549% / 1.00), 3px 4px 6px -1px hsl(206.1538 28.0576% 27.2549% / 1.00)",
130
+ "shadow-xl": "3px 3px 0px 0px hsl(206.1538 28.0576% 27.2549% / 1.00), 3px 8px 10px -1px hsl(206.1538 28.0576% 27.2549% / 1.00)",
131
+ "shadow-2xl": "3px 3px 0px 0px hsl(206.1538 28.0576% 27.2549% / 2.50)"
132
+ }
133
+ }
134
+ }
@@ -0,0 +1,134 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "default",
4
+ "type": "registry:style",
5
+ "css": {
6
+ "@layer base": {
7
+ "body": {
8
+ "letter-spacing": "var(--tracking-normal)"
9
+ }
10
+ }
11
+ },
12
+ "cssVars": {
13
+ "theme": {
14
+ "font-sans": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif",
15
+ "font-mono": "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",
16
+ "font-serif": "ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif",
17
+ "radius": "0.5rem",
18
+ "tracking-tighter": "calc(var(--tracking-normal) - 0.05em)",
19
+ "tracking-tight": "calc(var(--tracking-normal) - 0.025em)",
20
+ "tracking-wide": "calc(var(--tracking-normal) + 0.025em)",
21
+ "tracking-wider": "calc(var(--tracking-normal) + 0.05em)",
22
+ "tracking-widest": "calc(var(--tracking-normal) + 0.1em)"
23
+ },
24
+ "light": {
25
+ "background": "oklch(1 0 0)",
26
+ "foreground": "oklch(0.147 0.004 265.731)",
27
+ "card": "oklch(1 0 0)",
28
+ "card-foreground": "oklch(0.147 0.004 265.731)",
29
+ "popover": "oklch(1 0 0)",
30
+ "popover-foreground": "oklch(0.147 0.004 265.731)",
31
+ "primary": "oklch(0.216 0.006 265.755)",
32
+ "primary-foreground": "oklch(0.984 0.003 247.858)",
33
+ "secondary": "oklch(0.968 0.007 247.896)",
34
+ "secondary-foreground": "oklch(0.216 0.006 265.755)",
35
+ "muted": "oklch(0.968 0.007 247.896)",
36
+ "muted-foreground": "oklch(0.553 0.013 256.802)",
37
+ "accent": "oklch(0.968 0.007 247.896)",
38
+ "accent-foreground": "oklch(0.216 0.006 265.755)",
39
+ "destructive": "oklch(0.577 0.245 27.325)",
40
+ "destructive-foreground": "oklch(0.984 0.003 247.858)",
41
+ "border": "oklch(0.928 0.006 264.531)",
42
+ "input": "oklch(0.928 0.006 264.531)",
43
+ "ring": "oklch(0.147 0.004 265.731)",
44
+ "chart-1": "oklch(0.646 0.222 16.439)",
45
+ "chart-2": "oklch(0.6 0.118 184.704)",
46
+ "chart-3": "oklch(0.398 0.07 227.392)",
47
+ "chart-4": "oklch(0.828 0.189 84.429)",
48
+ "chart-5": "oklch(0.769 0.188 55.934)",
49
+ "radius": "0.5rem",
50
+ "sidebar": "oklch(0.984 0.003 247.858)",
51
+ "sidebar-foreground": "oklch(0.147 0.004 265.731)",
52
+ "sidebar-primary": "oklch(0.216 0.006 265.755)",
53
+ "sidebar-primary-foreground": "oklch(0.984 0.003 247.858)",
54
+ "sidebar-accent": "oklch(0.968 0.007 247.896)",
55
+ "sidebar-accent-foreground": "oklch(0.216 0.006 265.755)",
56
+ "sidebar-border": "oklch(0.928 0.006 264.531)",
57
+ "sidebar-ring": "oklch(0.147 0.004 265.731)",
58
+ "font-sans": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif",
59
+ "font-serif": "ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif",
60
+ "font-mono": "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",
61
+ "shadow-color": "oklch(0 0 0)",
62
+ "shadow-opacity": "0.1",
63
+ "shadow-blur": "3px",
64
+ "shadow-spread": "0px",
65
+ "shadow-offset-x": "0px",
66
+ "shadow-offset-y": "1px",
67
+ "letter-spacing": "0em",
68
+ "spacing": "0.25rem",
69
+ "shadow-2xs": "0px 1px 3px 0px oklch(0 0 0 / 0.05)",
70
+ "shadow-xs": "0px 1px 3px 0px oklch(0 0 0 / 0.05)",
71
+ "shadow-sm": "0px 1px 3px 0px oklch(0 0 0 / 0.10), 0px 1px 2px -1px oklch(0 0 0 / 0.10)",
72
+ "shadow": "0px 1px 3px 0px oklch(0 0 0 / 0.10), 0px 1px 2px -1px oklch(0 0 0 / 0.10)",
73
+ "shadow-md": "0px 1px 3px 0px oklch(0 0 0 / 0.10), 0px 2px 4px -1px oklch(0 0 0 / 0.10)",
74
+ "shadow-lg": "0px 1px 3px 0px oklch(0 0 0 / 0.10), 0px 4px 6px -1px oklch(0 0 0 / 0.10)",
75
+ "shadow-xl": "0px 1px 3px 0px oklch(0 0 0 / 0.10), 0px 8px 10px -1px oklch(0 0 0 / 0.10)",
76
+ "shadow-2xl": "0px 1px 3px 0px oklch(0 0 0 / 0.25)",
77
+ "tracking-normal": "0em"
78
+ },
79
+ "dark": {
80
+ "background": "oklch(0.147 0.004 265.731)",
81
+ "foreground": "oklch(0.984 0.003 247.858)",
82
+ "card": "oklch(0.147 0.004 265.731)",
83
+ "card-foreground": "oklch(0.984 0.003 247.858)",
84
+ "popover": "oklch(0.147 0.004 265.731)",
85
+ "popover-foreground": "oklch(0.984 0.003 247.858)",
86
+ "primary": "oklch(0.984 0.003 247.858)",
87
+ "primary-foreground": "oklch(0.216 0.006 265.755)",
88
+ "secondary": "oklch(0.268 0.007 260.031)",
89
+ "secondary-foreground": "oklch(0.984 0.003 247.858)",
90
+ "muted": "oklch(0.268 0.007 260.031)",
91
+ "muted-foreground": "oklch(0.707 0.022 261.325)",
92
+ "accent": "oklch(0.268 0.007 260.031)",
93
+ "accent-foreground": "oklch(0.984 0.003 247.858)",
94
+ "destructive": "oklch(0.396 0.141 25.723)",
95
+ "destructive-foreground": "oklch(0.984 0.003 247.858)",
96
+ "border": "oklch(0.268 0.007 260.031)",
97
+ "input": "oklch(0.268 0.007 260.031)",
98
+ "ring": "oklch(0.84 0.042 260.03)",
99
+ "chart-1": "oklch(0.488 0.243 264.376)",
100
+ "chart-2": "oklch(0.696 0.17 162.48)",
101
+ "chart-3": "oklch(0.769 0.188 55.934)",
102
+ "chart-4": "oklch(0.627 0.265 303.9)",
103
+ "chart-5": "oklch(0.645 0.246 16.439)",
104
+ "radius": "0.5rem",
105
+ "sidebar": "oklch(0.147 0.004 265.731)",
106
+ "sidebar-foreground": "oklch(0.984 0.003 247.858)",
107
+ "sidebar-primary": "oklch(0.984 0.003 247.858)",
108
+ "sidebar-primary-foreground": "oklch(0.216 0.006 265.755)",
109
+ "sidebar-accent": "oklch(0.268 0.007 260.031)",
110
+ "sidebar-accent-foreground": "oklch(0.984 0.003 247.858)",
111
+ "sidebar-border": "oklch(0.268 0.007 260.031)",
112
+ "sidebar-ring": "oklch(0.84 0.042 260.03)",
113
+ "font-sans": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif",
114
+ "font-serif": "ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif",
115
+ "font-mono": "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",
116
+ "shadow-color": "oklch(0 0 0)",
117
+ "shadow-opacity": "0.1",
118
+ "shadow-blur": "3px",
119
+ "shadow-spread": "0px",
120
+ "shadow-offset-x": "0px",
121
+ "shadow-offset-y": "1px",
122
+ "letter-spacing": "0em",
123
+ "spacing": "0.25rem",
124
+ "shadow-2xs": "0px 1px 3px 0px oklch(0 0 0 / 0.05)",
125
+ "shadow-xs": "0px 1px 3px 0px oklch(0 0 0 / 0.05)",
126
+ "shadow-sm": "0px 1px 3px 0px oklch(0 0 0 / 0.10), 0px 1px 2px -1px oklch(0 0 0 / 0.10)",
127
+ "shadow": "0px 1px 3px 0px oklch(0 0 0 / 0.10), 0px 1px 2px -1px oklch(0 0 0 / 0.10)",
128
+ "shadow-md": "0px 1px 3px 0px oklch(0 0 0 / 0.10), 0px 2px 4px -1px oklch(0 0 0 / 0.10)",
129
+ "shadow-lg": "0px 1px 3px 0px oklch(0 0 0 / 0.10), 0px 4px 6px -1px oklch(0 0 0 / 0.10)",
130
+ "shadow-xl": "0px 1px 3px 0px oklch(0 0 0 / 0.10), 0px 8px 10px -1px oklch(0 0 0 / 0.10)",
131
+ "shadow-2xl": "0px 1px 3px 0px oklch(0 0 0 / 0.25)"
132
+ }
133
+ }
134
+ }
@@ -0,0 +1,17 @@
1
+ import maroshTheme from "./marosh-theme.json"
2
+ import defaultTheme from "./default.json"
3
+ import bubblegumTheme from "./bubblegum.json"
4
+ import natureTheme from "./nature.json"
5
+ import retroArcadeTheme from "./retro-arcade.json"
6
+ import tangerineTheme from "./tangerine.json"
7
+ import newTheme from "./new-theme.json"
8
+
9
+ export const themeData = {
10
+ default: defaultTheme,
11
+ marosh: maroshTheme,
12
+ bubblegum: bubblegumTheme,
13
+ nature: natureTheme,
14
+ "retro-arcade": retroArcadeTheme,
15
+ tangerine: tangerineTheme,
16
+ "new-theme": newTheme,
17
+ }