@ekkolyth/ui 0.1.17 → 0.1.18
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.
- package/LICENSE +21 -0
- package/README.md +153 -97
- package/dist/base.css +263 -0
- package/dist/blocks.d.ts +4 -0
- package/dist/blocks.js +4 -0
- package/dist/container-BBg21poC.js +10 -0
- package/dist/convex.d.ts +2 -0
- package/dist/convex.js +2 -0
- package/dist/hooks.d.ts +2 -0
- package/dist/hooks.js +2 -0
- package/dist/icon-picker-ByfHyJ7i.js +4078 -0
- package/dist/index-Bwp0YMmG.d.ts +5 -0
- package/dist/index-BxcqwZNT.d.ts +30 -0
- package/dist/index-DHF8OR1R.d.ts +60 -0
- package/dist/index-DsLGf2HX.d.ts +9 -0
- package/dist/index-qji4ohJZ.d.ts +24 -0
- package/dist/index.d.ts +793 -533
- package/dist/index.js +3236 -5578
- package/dist/layout.d.ts +2 -0
- package/dist/layout.js +2 -0
- package/dist/loading-screen-DB3youyT.js +63 -0
- package/dist/shiki-code-Bg__Vnt1.js +29 -0
- package/dist/text.d.ts +17 -0
- package/dist/text.js +177 -0
- package/dist/themes/catpuccin/frappe.css +33 -33
- package/dist/themes/catpuccin/latte.css +33 -33
- package/dist/themes/catpuccin/macchiato.css +33 -33
- package/dist/themes/catpuccin/mocha.css +33 -33
- package/dist/themes/ekko-os.css +92 -37
- package/dist/themes/ekkolyth.css +2 -2
- package/dist/themes/index.css +7 -66
- package/dist/themes/provider.d.ts +62 -0
- package/dist/themes/provider.js +271 -0
- package/dist/themes/tokyo-night.css +33 -33
- package/dist/themes.css +7 -66
- package/dist/toggle-B2PFPImC.js +182 -0
- package/dist/use-mobile-BVGje-2e.d.ts +4 -0
- package/dist/use-mobile-CqHXB_Nc.js +18 -0
- package/dist/utils-C_uf36nf.js +8 -0
- package/dist/widget-C2vjxQms.js +94 -0
- package/dist/widget.d.ts +6 -0
- package/dist/widget.js +19 -0
- package/package.json +125 -170
- package/dist/catpuccin/frappe.css +0 -35
- package/dist/catpuccin/latte.css +0 -35
- package/dist/catpuccin/macchiato.css +0 -35
- package/dist/catpuccin/mocha.css +0 -35
- package/dist/ekko-os.css +0 -71
- package/dist/ekko-playlist.css +0 -71
- package/dist/ekkolyth.css +0 -70
- package/dist/index-C3ceanPz.d.ts +0 -18
- package/dist/index-C7t_lwpi.d.ts +0 -13
- package/dist/next.d.ts +0 -13
- package/dist/next.js +0 -271
- package/dist/providers/next.d.ts +0 -25
- package/dist/providers/next.js +0 -216
- package/dist/providers/tanstack.d.ts +0 -24
- package/dist/providers/tanstack.js +0 -120
- package/dist/tanstack.d.ts +0 -12
- package/dist/tanstack.js +0 -203
- package/dist/themes/ekko-playlist.css +0 -71
- package/dist/themes/theme-select.d.ts +0 -12
- package/dist/themes/theme-select.js +0 -357
- package/dist/themes/theme-toggle.d.ts +0 -15
- package/dist/themes/theme-toggle.js +0 -179
- package/dist/tokyo-night.css +0 -35
- package/dist/types-fUfvw1Mz.d.ts +0 -8
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { createContext, useState, useMemo, useEffect, use } from 'react';
|
|
2
|
-
import { jsx } from 'react/jsx-runtime';
|
|
3
|
-
|
|
4
|
-
var initialState = {
|
|
5
|
-
systemTheme: "system",
|
|
6
|
-
resolvedTheme: "ekkolyth-light",
|
|
7
|
-
availableThemes: {
|
|
8
|
-
light: ["ekkolyth-light"],
|
|
9
|
-
dark: ["ekkolyth-dark"]
|
|
10
|
-
},
|
|
11
|
-
setSystemTheme: () => null,
|
|
12
|
-
setSpecificTheme: () => null
|
|
13
|
-
};
|
|
14
|
-
var TanstackThemeProviderContext = createContext(initialState);
|
|
15
|
-
var resolveSystemTheme = (systemTheme) => {
|
|
16
|
-
if (systemTheme === "system" || systemTheme === "normal") {
|
|
17
|
-
if (typeof window !== "undefined") {
|
|
18
|
-
return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
19
|
-
}
|
|
20
|
-
return "light";
|
|
21
|
-
}
|
|
22
|
-
return systemTheme;
|
|
23
|
-
};
|
|
24
|
-
function TanstackThemeProvider({
|
|
25
|
-
children,
|
|
26
|
-
defaultTheme = "system",
|
|
27
|
-
lightTheme = ["ekkolyth-light"],
|
|
28
|
-
darkTheme = ["ekkolyth-dark"],
|
|
29
|
-
storageKey = "ekko-ui"
|
|
30
|
-
}) {
|
|
31
|
-
const lightThemes = Array.isArray(lightTheme) ? lightTheme : [lightTheme];
|
|
32
|
-
const darkThemes = Array.isArray(darkTheme) ? darkTheme : [darkTheme];
|
|
33
|
-
const [systemTheme, setSystemThemeState] = useState(() => {
|
|
34
|
-
if (typeof window !== "undefined") {
|
|
35
|
-
const stored = localStorage.getItem(
|
|
36
|
-
`${storageKey}.theme-mode`
|
|
37
|
-
);
|
|
38
|
-
return stored || defaultTheme;
|
|
39
|
-
}
|
|
40
|
-
return defaultTheme;
|
|
41
|
-
});
|
|
42
|
-
const [selectedLightTheme, setSelectedLightThemeState] = useState(() => {
|
|
43
|
-
if (typeof window !== "undefined") {
|
|
44
|
-
const stored = localStorage.getItem(
|
|
45
|
-
`${storageKey}.theme-light`
|
|
46
|
-
);
|
|
47
|
-
return stored && lightThemes.includes(stored) ? stored : lightThemes[0];
|
|
48
|
-
}
|
|
49
|
-
return lightThemes[0];
|
|
50
|
-
});
|
|
51
|
-
const [selectedDarkTheme, setSelectedDarkThemeState] = useState(
|
|
52
|
-
() => {
|
|
53
|
-
if (typeof window !== "undefined") {
|
|
54
|
-
const stored = localStorage.getItem(
|
|
55
|
-
`${storageKey}.theme-dark`
|
|
56
|
-
);
|
|
57
|
-
return stored && darkThemes.includes(stored) ? stored : darkThemes[0];
|
|
58
|
-
}
|
|
59
|
-
return darkThemes[0];
|
|
60
|
-
}
|
|
61
|
-
);
|
|
62
|
-
const resolvedTheme = useMemo(() => {
|
|
63
|
-
const resolvedSystem = resolveSystemTheme(systemTheme);
|
|
64
|
-
return resolvedSystem === "light" ? selectedLightTheme : selectedDarkTheme;
|
|
65
|
-
}, [systemTheme, selectedLightTheme, selectedDarkTheme]);
|
|
66
|
-
useEffect(() => {
|
|
67
|
-
const root = document.documentElement;
|
|
68
|
-
const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
|
|
69
|
-
const updateTheme = () => {
|
|
70
|
-
const resolvedSystem = resolveSystemTheme(systemTheme);
|
|
71
|
-
const themeToApply = resolvedSystem === "light" ? selectedLightTheme : selectedDarkTheme;
|
|
72
|
-
root.setAttribute("data-theme", themeToApply);
|
|
73
|
-
};
|
|
74
|
-
updateTheme();
|
|
75
|
-
if (systemTheme === "system" || systemTheme === "normal") {
|
|
76
|
-
mediaQuery.addEventListener("change", updateTheme);
|
|
77
|
-
return () => mediaQuery.removeEventListener("change", updateTheme);
|
|
78
|
-
}
|
|
79
|
-
}, [systemTheme, selectedLightTheme, selectedDarkTheme]);
|
|
80
|
-
const value = useMemo(
|
|
81
|
-
() => ({
|
|
82
|
-
systemTheme,
|
|
83
|
-
resolvedTheme,
|
|
84
|
-
availableThemes: {
|
|
85
|
-
light: lightThemes,
|
|
86
|
-
dark: darkThemes
|
|
87
|
-
},
|
|
88
|
-
setSystemTheme: (newTheme) => {
|
|
89
|
-
if (typeof window !== "undefined") {
|
|
90
|
-
localStorage.setItem(`${storageKey}.theme-mode`, newTheme);
|
|
91
|
-
}
|
|
92
|
-
setSystemThemeState(newTheme);
|
|
93
|
-
},
|
|
94
|
-
setSpecificTheme: (mode, theme) => {
|
|
95
|
-
if (typeof window !== "undefined") {
|
|
96
|
-
const key = mode === "light" ? `${storageKey}.theme-light` : `${storageKey}.theme-dark`;
|
|
97
|
-
localStorage.setItem(key, theme);
|
|
98
|
-
}
|
|
99
|
-
if (mode === "light" && lightThemes.includes(theme)) {
|
|
100
|
-
setSelectedLightThemeState(theme);
|
|
101
|
-
} else if (mode === "dark" && darkThemes.includes(theme)) {
|
|
102
|
-
setSelectedDarkThemeState(theme);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}),
|
|
106
|
-
[systemTheme, resolvedTheme, lightThemes, darkThemes, storageKey]
|
|
107
|
-
);
|
|
108
|
-
return /* @__PURE__ */ jsx(TanstackThemeProviderContext.Provider, { value, children });
|
|
109
|
-
}
|
|
110
|
-
function useTanstackTheme() {
|
|
111
|
-
const context = use(TanstackThemeProviderContext);
|
|
112
|
-
if (context === void 0) {
|
|
113
|
-
throw new Error(
|
|
114
|
-
"useTanstackTheme must be used within a TanstackThemeProvider"
|
|
115
|
-
);
|
|
116
|
-
}
|
|
117
|
-
return context;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
export { TanstackThemeProvider, useTanstackTheme };
|
package/dist/tanstack.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export { TanstackThemeProvider as ThemeProvider, useTanstackTheme as useTheme } from './providers/tanstack.js';
|
|
2
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
-
import { ToasterProps } from 'sonner';
|
|
4
|
-
export { S as SystemTheme, T as ThemeName } from './types-fUfvw1Mz.js';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Theme-aware Toaster for TanStack Router apps
|
|
8
|
-
* Automatically syncs with TanstackThemeProvider
|
|
9
|
-
*/
|
|
10
|
-
declare function TanstackToaster(props: ToasterProps): react_jsx_runtime.JSX.Element;
|
|
11
|
-
|
|
12
|
-
export { TanstackToaster as Toaster };
|
package/dist/tanstack.js
DELETED
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
import { createContext, useState, useMemo, useEffect, use } from 'react';
|
|
2
|
-
import { jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { Toaster as Toaster$1 } from 'sonner';
|
|
4
|
-
import { Loader2Icon, OctagonXIcon, TriangleAlertIcon, InfoIcon, CircleCheckIcon } from 'lucide-react';
|
|
5
|
-
|
|
6
|
-
var __defProp = Object.defineProperty;
|
|
7
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
10
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
11
|
-
var __spreadValues = (a, b) => {
|
|
12
|
-
for (var prop in b || (b = {}))
|
|
13
|
-
if (__hasOwnProp.call(b, prop))
|
|
14
|
-
__defNormalProp(a, prop, b[prop]);
|
|
15
|
-
if (__getOwnPropSymbols)
|
|
16
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
17
|
-
if (__propIsEnum.call(b, prop))
|
|
18
|
-
__defNormalProp(a, prop, b[prop]);
|
|
19
|
-
}
|
|
20
|
-
return a;
|
|
21
|
-
};
|
|
22
|
-
var __objRest = (source, exclude) => {
|
|
23
|
-
var target = {};
|
|
24
|
-
for (var prop in source)
|
|
25
|
-
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
26
|
-
target[prop] = source[prop];
|
|
27
|
-
if (source != null && __getOwnPropSymbols)
|
|
28
|
-
for (var prop of __getOwnPropSymbols(source)) {
|
|
29
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
30
|
-
target[prop] = source[prop];
|
|
31
|
-
}
|
|
32
|
-
return target;
|
|
33
|
-
};
|
|
34
|
-
var initialState = {
|
|
35
|
-
systemTheme: "system",
|
|
36
|
-
resolvedTheme: "ekkolyth-light",
|
|
37
|
-
availableThemes: {
|
|
38
|
-
light: ["ekkolyth-light"],
|
|
39
|
-
dark: ["ekkolyth-dark"]
|
|
40
|
-
},
|
|
41
|
-
setSystemTheme: () => null,
|
|
42
|
-
setSpecificTheme: () => null
|
|
43
|
-
};
|
|
44
|
-
var TanstackThemeProviderContext = createContext(initialState);
|
|
45
|
-
var resolveSystemTheme = (systemTheme) => {
|
|
46
|
-
if (systemTheme === "system" || systemTheme === "normal") {
|
|
47
|
-
if (typeof window !== "undefined") {
|
|
48
|
-
return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
49
|
-
}
|
|
50
|
-
return "light";
|
|
51
|
-
}
|
|
52
|
-
return systemTheme;
|
|
53
|
-
};
|
|
54
|
-
function TanstackThemeProvider({
|
|
55
|
-
children,
|
|
56
|
-
defaultTheme = "system",
|
|
57
|
-
lightTheme = ["ekkolyth-light"],
|
|
58
|
-
darkTheme = ["ekkolyth-dark"],
|
|
59
|
-
storageKey = "ekko-ui"
|
|
60
|
-
}) {
|
|
61
|
-
const lightThemes = Array.isArray(lightTheme) ? lightTheme : [lightTheme];
|
|
62
|
-
const darkThemes = Array.isArray(darkTheme) ? darkTheme : [darkTheme];
|
|
63
|
-
const [systemTheme, setSystemThemeState] = useState(() => {
|
|
64
|
-
if (typeof window !== "undefined") {
|
|
65
|
-
const stored = localStorage.getItem(
|
|
66
|
-
`${storageKey}.theme-mode`
|
|
67
|
-
);
|
|
68
|
-
return stored || defaultTheme;
|
|
69
|
-
}
|
|
70
|
-
return defaultTheme;
|
|
71
|
-
});
|
|
72
|
-
const [selectedLightTheme, setSelectedLightThemeState] = useState(() => {
|
|
73
|
-
if (typeof window !== "undefined") {
|
|
74
|
-
const stored = localStorage.getItem(
|
|
75
|
-
`${storageKey}.theme-light`
|
|
76
|
-
);
|
|
77
|
-
return stored && lightThemes.includes(stored) ? stored : lightThemes[0];
|
|
78
|
-
}
|
|
79
|
-
return lightThemes[0];
|
|
80
|
-
});
|
|
81
|
-
const [selectedDarkTheme, setSelectedDarkThemeState] = useState(
|
|
82
|
-
() => {
|
|
83
|
-
if (typeof window !== "undefined") {
|
|
84
|
-
const stored = localStorage.getItem(
|
|
85
|
-
`${storageKey}.theme-dark`
|
|
86
|
-
);
|
|
87
|
-
return stored && darkThemes.includes(stored) ? stored : darkThemes[0];
|
|
88
|
-
}
|
|
89
|
-
return darkThemes[0];
|
|
90
|
-
}
|
|
91
|
-
);
|
|
92
|
-
const resolvedTheme = useMemo(() => {
|
|
93
|
-
const resolvedSystem = resolveSystemTheme(systemTheme);
|
|
94
|
-
return resolvedSystem === "light" ? selectedLightTheme : selectedDarkTheme;
|
|
95
|
-
}, [systemTheme, selectedLightTheme, selectedDarkTheme]);
|
|
96
|
-
useEffect(() => {
|
|
97
|
-
const root = document.documentElement;
|
|
98
|
-
const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
|
|
99
|
-
const updateTheme = () => {
|
|
100
|
-
const resolvedSystem = resolveSystemTheme(systemTheme);
|
|
101
|
-
const themeToApply = resolvedSystem === "light" ? selectedLightTheme : selectedDarkTheme;
|
|
102
|
-
root.setAttribute("data-theme", themeToApply);
|
|
103
|
-
};
|
|
104
|
-
updateTheme();
|
|
105
|
-
if (systemTheme === "system" || systemTheme === "normal") {
|
|
106
|
-
mediaQuery.addEventListener("change", updateTheme);
|
|
107
|
-
return () => mediaQuery.removeEventListener("change", updateTheme);
|
|
108
|
-
}
|
|
109
|
-
}, [systemTheme, selectedLightTheme, selectedDarkTheme]);
|
|
110
|
-
const value = useMemo(
|
|
111
|
-
() => ({
|
|
112
|
-
systemTheme,
|
|
113
|
-
resolvedTheme,
|
|
114
|
-
availableThemes: {
|
|
115
|
-
light: lightThemes,
|
|
116
|
-
dark: darkThemes
|
|
117
|
-
},
|
|
118
|
-
setSystemTheme: (newTheme) => {
|
|
119
|
-
if (typeof window !== "undefined") {
|
|
120
|
-
localStorage.setItem(`${storageKey}.theme-mode`, newTheme);
|
|
121
|
-
}
|
|
122
|
-
setSystemThemeState(newTheme);
|
|
123
|
-
},
|
|
124
|
-
setSpecificTheme: (mode, theme) => {
|
|
125
|
-
if (typeof window !== "undefined") {
|
|
126
|
-
const key = mode === "light" ? `${storageKey}.theme-light` : `${storageKey}.theme-dark`;
|
|
127
|
-
localStorage.setItem(key, theme);
|
|
128
|
-
}
|
|
129
|
-
if (mode === "light" && lightThemes.includes(theme)) {
|
|
130
|
-
setSelectedLightThemeState(theme);
|
|
131
|
-
} else if (mode === "dark" && darkThemes.includes(theme)) {
|
|
132
|
-
setSelectedDarkThemeState(theme);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}),
|
|
136
|
-
[systemTheme, resolvedTheme, lightThemes, darkThemes, storageKey]
|
|
137
|
-
);
|
|
138
|
-
return /* @__PURE__ */ jsx(TanstackThemeProviderContext.Provider, { value, children });
|
|
139
|
-
}
|
|
140
|
-
function useTanstackTheme() {
|
|
141
|
-
const context = use(TanstackThemeProviderContext);
|
|
142
|
-
if (context === void 0) {
|
|
143
|
-
throw new Error(
|
|
144
|
-
"useTanstackTheme must be used within a TanstackThemeProvider"
|
|
145
|
-
);
|
|
146
|
-
}
|
|
147
|
-
return context;
|
|
148
|
-
}
|
|
149
|
-
var Toaster = (_a) => {
|
|
150
|
-
var _b = _a, { theme = "system" } = _b, props = __objRest(_b, ["theme"]);
|
|
151
|
-
return /* @__PURE__ */ jsx(
|
|
152
|
-
Toaster$1,
|
|
153
|
-
__spreadValues({
|
|
154
|
-
theme,
|
|
155
|
-
className: "toaster group",
|
|
156
|
-
icons: {
|
|
157
|
-
success: /* @__PURE__ */ jsx(CircleCheckIcon, { className: "size-4" }),
|
|
158
|
-
info: /* @__PURE__ */ jsx(InfoIcon, { className: "size-4" }),
|
|
159
|
-
warning: /* @__PURE__ */ jsx(TriangleAlertIcon, { className: "size-4" }),
|
|
160
|
-
error: /* @__PURE__ */ jsx(OctagonXIcon, { className: "size-4" }),
|
|
161
|
-
loading: /* @__PURE__ */ jsx(Loader2Icon, { className: "size-4 animate-spin" })
|
|
162
|
-
},
|
|
163
|
-
style: {
|
|
164
|
-
"--normal-bg": "var(--popover)",
|
|
165
|
-
"--normal-text": "var(--popover-foreground)",
|
|
166
|
-
"--normal-border": "var(--border)",
|
|
167
|
-
"--border-radius": "var(--radius)"
|
|
168
|
-
},
|
|
169
|
-
toastOptions: {
|
|
170
|
-
classNames: {
|
|
171
|
-
toast: "cn-toast"
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}, props)
|
|
175
|
-
);
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
// src/lib/types.ts
|
|
179
|
-
var DARK_THEMES = [
|
|
180
|
-
"mocha",
|
|
181
|
-
"frappe",
|
|
182
|
-
"macchiato",
|
|
183
|
-
"tokyo-night",
|
|
184
|
-
"ekkoos-dark",
|
|
185
|
-
"ekkolyth-dark",
|
|
186
|
-
"ekko-playlist-dark"
|
|
187
|
-
];
|
|
188
|
-
|
|
189
|
-
// src/lib/theme.ts
|
|
190
|
-
function isDarkTheme(theme) {
|
|
191
|
-
return DARK_THEMES.includes(theme);
|
|
192
|
-
}
|
|
193
|
-
function TanstackToaster(props) {
|
|
194
|
-
try {
|
|
195
|
-
const { resolvedTheme } = useTanstackTheme();
|
|
196
|
-
const theme = isDarkTheme(resolvedTheme) ? "dark" : "light";
|
|
197
|
-
return /* @__PURE__ */ jsx(Toaster, __spreadValues({ theme }, props));
|
|
198
|
-
} catch (e) {
|
|
199
|
-
return /* @__PURE__ */ jsx(Toaster, __spreadValues({ theme: "system" }, props));
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
export { TanstackThemeProvider as ThemeProvider, TanstackToaster as Toaster, useTanstackTheme as useTheme };
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/* Ekko Playlist - Light */
|
|
2
|
-
html[data-theme="ekko-playlist-light"] {
|
|
3
|
-
--background: oklch(1 0 0);
|
|
4
|
-
--foreground: oklch(0.145 0 0);
|
|
5
|
-
--card: oklch(1 0 0);
|
|
6
|
-
--card-foreground: oklch(0.145 0 0);
|
|
7
|
-
--popover: oklch(1 0 0);
|
|
8
|
-
--popover-foreground: oklch(0.145 0 0);
|
|
9
|
-
--primary: oklch(0.586 0.253 17.585);
|
|
10
|
-
--primary-foreground: oklch(0.969 0.015 12.422);
|
|
11
|
-
--secondary: oklch(0.967 0.001 286.375);
|
|
12
|
-
--secondary-foreground: oklch(0.21 0.006 285.885);
|
|
13
|
-
--muted: oklch(0.97 0 0);
|
|
14
|
-
--muted-foreground: oklch(0.556 0 0);
|
|
15
|
-
--accent: oklch(0.97 0 0);
|
|
16
|
-
--accent-foreground: oklch(0.205 0 0);
|
|
17
|
-
--destructive: oklch(0.58 0.22 27);
|
|
18
|
-
--border: oklch(0.922 0 0);
|
|
19
|
-
--input: oklch(0.922 0 0);
|
|
20
|
-
--ring: oklch(0.708 0 0);
|
|
21
|
-
--radius: 0.625rem;
|
|
22
|
-
--chart-1: oklch(0.81 0.117 11.638);
|
|
23
|
-
--chart-2: oklch(0.645 0.246 16.439);
|
|
24
|
-
--chart-3: oklch(0.586 0.253 17.585);
|
|
25
|
-
--chart-4: oklch(0.514 0.222 16.935);
|
|
26
|
-
--chart-5: oklch(0.455 0.188 13.697);
|
|
27
|
-
--sidebar: oklch(0.985 0 0);
|
|
28
|
-
--sidebar-foreground: oklch(0.145 0 0);
|
|
29
|
-
--sidebar-primary: oklch(0.586 0.253 17.585);
|
|
30
|
-
--sidebar-primary-foreground: oklch(0.969 0.015 12.422);
|
|
31
|
-
--sidebar-accent: oklch(0.97 0 0);
|
|
32
|
-
--sidebar-accent-foreground: oklch(0.205 0 0);
|
|
33
|
-
--sidebar-border: oklch(0.922 0 0);
|
|
34
|
-
--sidebar-ring: oklch(0.708 0 0);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/* Ekko Playlist - Dark */
|
|
38
|
-
html[data-theme="ekko-playlist-dark"] {
|
|
39
|
-
--background: oklch(0.145 0 0);
|
|
40
|
-
--foreground: oklch(0.985 0 0);
|
|
41
|
-
--card: oklch(0.205 0 0);
|
|
42
|
-
--card-foreground: oklch(0.985 0 0);
|
|
43
|
-
--popover: oklch(0.205 0 0);
|
|
44
|
-
--popover-foreground: oklch(0.985 0 0);
|
|
45
|
-
--primary: oklch(0.645 0.246 16.439);
|
|
46
|
-
--primary-foreground: oklch(0.969 0.015 12.422);
|
|
47
|
-
--secondary: oklch(0.274 0.006 286.033);
|
|
48
|
-
--secondary-foreground: oklch(0.985 0 0);
|
|
49
|
-
--muted: oklch(0.269 0 0);
|
|
50
|
-
--muted-foreground: oklch(0.708 0 0);
|
|
51
|
-
--accent: oklch(0.371 0 0);
|
|
52
|
-
--accent-foreground: oklch(0.985 0 0);
|
|
53
|
-
--destructive: oklch(0.704 0.191 22.216);
|
|
54
|
-
--border: oklch(1 0 0 / 10%);
|
|
55
|
-
--input: oklch(1 0 0 / 15%);
|
|
56
|
-
--ring: oklch(0.556 0 0);
|
|
57
|
-
--radius: 0.625rem;
|
|
58
|
-
--chart-1: oklch(0.81 0.117 11.638);
|
|
59
|
-
--chart-2: oklch(0.645 0.246 16.439);
|
|
60
|
-
--chart-3: oklch(0.586 0.253 17.585);
|
|
61
|
-
--chart-4: oklch(0.514 0.222 16.935);
|
|
62
|
-
--chart-5: oklch(0.455 0.188 13.697);
|
|
63
|
-
--sidebar: oklch(0.21 0.006 285.885);
|
|
64
|
-
--sidebar-foreground: oklch(0.985 0 0);
|
|
65
|
-
--sidebar-primary: oklch(0.645 0.246 16.439);
|
|
66
|
-
--sidebar-primary-foreground: oklch(0.969 0.015 12.422);
|
|
67
|
-
--sidebar-accent: oklch(0.269 0 0);
|
|
68
|
-
--sidebar-accent-foreground: oklch(0.985 0 0);
|
|
69
|
-
--sidebar-border: oklch(1 0 0 / 10%);
|
|
70
|
-
--sidebar-ring: oklch(0.556 0 0);
|
|
71
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { S as Select } from '../index-C3ceanPz.js';
|
|
4
|
-
import 'radix-ui';
|
|
5
|
-
|
|
6
|
-
interface ThemeSelectProps extends React.ComponentProps<typeof Select> {
|
|
7
|
-
size?: 'sm' | 'default';
|
|
8
|
-
className?: string;
|
|
9
|
-
}
|
|
10
|
-
declare function ThemeSelect({ size, className, ...props }: ThemeSelectProps): react_jsx_runtime.JSX.Element;
|
|
11
|
-
|
|
12
|
-
export { ThemeSelect, type ThemeSelectProps };
|