@directus/themes 0.0.2 → 0.1.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.
package/dist/index.d.ts CHANGED
@@ -1,106 +1,4 @@
1
- import * as _sinclair_typebox from '@sinclair/typebox';
2
- import { Static } from '@sinclair/typebox';
3
- import * as pinia from 'pinia';
4
- import * as vue from 'vue';
5
-
6
- /** CSS size, f.e. px, em, % */
7
- /** CSS font weight, f.e. 700, bold */
8
- /** CSS font family, f.e. 'Comic Sans, MS', 'Roboto' */
9
- declare const ThemeSchema: _sinclair_typebox.TObject<{
10
- name: _sinclair_typebox.TString;
11
- appearance: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"light">, _sinclair_typebox.TLiteral<"dark">]>;
12
- rules: _sinclair_typebox.TObject<{
13
- foreground: _sinclair_typebox.TString;
14
- }>;
15
- }>;
16
- type Theme = Static<typeof ThemeSchema>;
17
-
18
- declare const defineTheme: (theme: Theme) => {
19
- name: string;
20
- appearance: "light" | "dark";
21
- rules: {
22
- foreground: string;
23
- };
24
- };
25
-
26
- declare const useThemeStore: pinia.StoreDefinition<"themes", pinia._UnwrapAll<Pick<{
27
- themes: {
28
- dark: {
29
- name: string;
30
- appearance: "light" | "dark";
31
- rules: {
32
- foreground: string;
33
- };
34
- }[];
35
- light: {
36
- name: string;
37
- appearance: "light" | "dark";
38
- rules: {
39
- foreground: string;
40
- };
41
- }[];
42
- };
43
- registerTheme: (theme: Theme) => void;
44
- currentTheme: {
45
- dark: string;
46
- light: string;
47
- };
48
- currentAppearance: vue.Ref<"light" | "dark">;
49
- rules: vue.ComputedRef<{
50
- foreground: string;
51
- }>;
52
- }, "themes" | "currentTheme" | "currentAppearance">>, Pick<{
53
- themes: {
54
- dark: {
55
- name: string;
56
- appearance: "light" | "dark";
57
- rules: {
58
- foreground: string;
59
- };
60
- }[];
61
- light: {
62
- name: string;
63
- appearance: "light" | "dark";
64
- rules: {
65
- foreground: string;
66
- };
67
- }[];
68
- };
69
- registerTheme: (theme: Theme) => void;
70
- currentTheme: {
71
- dark: string;
72
- light: string;
73
- };
74
- currentAppearance: vue.Ref<"light" | "dark">;
75
- rules: vue.ComputedRef<{
76
- foreground: string;
77
- }>;
78
- }, "rules">, Pick<{
79
- themes: {
80
- dark: {
81
- name: string;
82
- appearance: "light" | "dark";
83
- rules: {
84
- foreground: string;
85
- };
86
- }[];
87
- light: {
88
- name: string;
89
- appearance: "light" | "dark";
90
- rules: {
91
- foreground: string;
92
- };
93
- }[];
94
- };
95
- registerTheme: (theme: Theme) => void;
96
- currentTheme: {
97
- dark: string;
98
- light: string;
99
- };
100
- currentAppearance: vue.Ref<"light" | "dark">;
101
- rules: vue.ComputedRef<{
102
- foreground: string;
103
- }>;
104
- }, "registerTheme">>;
105
-
106
- export { Theme, ThemeSchema, defineTheme, useThemeStore };
1
+ export { Definitions, ThemeSchema, TypeId, type Theme } from './schema.js';
2
+ export { useThemeStore } from './store.js';
3
+ export { default as ThemeProvider } from './theme-provider.vue';
4
+ export { useTheme } from './use-theme.js';
package/dist/index.js CHANGED
@@ -1,72 +1,423 @@
1
- // src/define-theme.ts
2
- var defineTheme = (theme) => theme;
3
-
4
- // src/schema.ts
5
- import { Type } from "@sinclair/typebox";
6
- var Color = Type.String();
7
- var ThemeSchema = Type.Object({
8
- name: Type.String(),
9
- appearance: Type.Union([Type.Literal("light"), Type.Literal("dark")]),
10
- rules: Type.Object({
11
- foreground: Color
1
+ import { Type as r } from "@sinclair/typebox";
2
+ import { defineStore as x, storeToRefs as j } from "pinia";
3
+ import { reactive as H, computed as v, unref as d, defineComponent as O, toRefs as w, openBlock as B, createBlock as T, Teleport as $, createTextVNode as D, toDisplayString as L } from "vue";
4
+ import { useHead as M } from "@unhead/vue";
5
+ import _ from "decamelize";
6
+ import { flatten as C } from "flat";
7
+ import { get as R, merge as p, mapKeys as I } from "lodash-es";
8
+ const y = {
9
+ Color: "Color",
10
+ FontFamily: "FontFamily"
11
+ }, e = r.Ref(r.String({ $id: y.Color })), c = r.Ref(r.String({ $id: y.FontFamily })), W = r.Object({
12
+ foreground: e,
13
+ foregroundSubdued: e,
14
+ foregroundAccent: e,
15
+ background: e,
16
+ primary: e,
17
+ primaryBackground: e,
18
+ primarySubdued: e,
19
+ primaryAccent: e,
20
+ secondary: e,
21
+ secondaryBackground: e,
22
+ secondarySubdued: e,
23
+ secondaryAccent: e,
24
+ success: e,
25
+ successBackground: e,
26
+ successSubdued: e,
27
+ successAccent: e,
28
+ warning: e,
29
+ warningBackground: e,
30
+ warningSubdued: e,
31
+ warningAccent: e,
32
+ danger: e,
33
+ dangerBackground: e,
34
+ dangerSubdued: e,
35
+ dangerAccent: e,
36
+ fontFamilyDisplay: c,
37
+ fontFamilySansSerif: c,
38
+ fontFamilySerif: c,
39
+ fontFamilyMonospace: c,
40
+ navigation: r.Object({
41
+ background: e,
42
+ project: r.Object({
43
+ background: e,
44
+ foreground: e,
45
+ fontFamily: c
46
+ }),
47
+ modules: r.Object({
48
+ background: e,
49
+ button: r.Object({
50
+ foreground: e,
51
+ foregroundHover: e,
52
+ foregroundActive: e,
53
+ background: e,
54
+ backgroundHover: e,
55
+ backgroundActive: e
56
+ })
57
+ }),
58
+ list: r.Object({
59
+ icon: r.Object({
60
+ foreground: e,
61
+ foregroundHover: e,
62
+ foregroundActive: e
63
+ }),
64
+ foreground: e,
65
+ foregroundHover: e,
66
+ foregroundActive: e,
67
+ background: e,
68
+ backgroundHover: e,
69
+ backgroundActive: e,
70
+ fontFamily: c
71
+ })
72
+ }),
73
+ header: r.Object({
74
+ background: e,
75
+ headline: r.Object({
76
+ foreground: e,
77
+ fontFamily: c
78
+ }),
79
+ title: r.Object({
80
+ foreground: e,
81
+ fontFamily: c
82
+ })
83
+ }),
84
+ form: r.Object({
85
+ field: r.Object({
86
+ label: r.Object({
87
+ foreground: e,
88
+ fontFamily: c
89
+ }),
90
+ input: r.Object({
91
+ background: e,
92
+ foreground: e,
93
+ foregroundSubdued: e
94
+ })
95
+ })
96
+ }),
97
+ sidebar: r.Object({
98
+ background: e,
99
+ foreground: e,
100
+ fontFamily: c,
101
+ section: r.Object({
102
+ toggle: r.Object({
103
+ icon: r.Object({
104
+ foreground: e,
105
+ foregroundHover: e,
106
+ foregroundActive: e
107
+ }),
108
+ foreground: e,
109
+ foregroundHover: e,
110
+ foregroundActive: e,
111
+ background: e,
112
+ backgroundHover: e,
113
+ backgroundActive: e,
114
+ fontFamily: c
115
+ })
116
+ })
12
117
  })
13
- });
14
-
15
- // src/store.ts
16
- import { defu } from "defu";
17
- import { defineStore } from "pinia";
18
- import { computed, reactive, ref, unref } from "vue";
19
-
20
- // src/themes/dark/default.ts
21
- var default_default = defineTheme({
22
- name: "Directus Default (Dark)",
118
+ }), N = r.Object({
119
+ name: r.String(),
120
+ appearance: r.Union([r.Literal("light"), r.Literal("dark")]),
121
+ rules: W
122
+ }), Z = { $defs: { [y.Color]: e, [y.FontFamily]: c } }, F = {
123
+ name: "Dark (Directus)",
23
124
  appearance: "dark",
24
125
  rules: {
25
- foreground: "#fff"
126
+ foreground: "#c9d1d9",
127
+ foregroundAccent: "#f0f6fc",
128
+ foregroundSubdued: "#666672",
129
+ background: "#0d1117",
130
+ primary: "var(--project-color)",
131
+ primaryBackground: "color-mix(in srgb, var(--theme--background), var(--theme--primary) 10%)",
132
+ primarySubdued: "color-mix(in srgb, var(--theme--background), var(--theme--primary) 50%)",
133
+ primaryAccent: "color-mix(in srgb, var(--theme--primary), #16151a 25%)",
134
+ secondary: "#ff99dd",
135
+ secondaryBackground: "color-mix(in srgb, var(--theme--background), var(--theme--secondary) 10%)",
136
+ secondarySubdued: "color-mix(in srgb, var(--theme--background), var(--theme--secondary) 50%)",
137
+ secondaryAccent: "color-mix(in srgb, var(--theme--secondary), #16151a 25%)",
138
+ success: "#2ecda7",
139
+ successBackground: "color-mix(in srgb, var(--theme--background), var(--theme--success) 10%)",
140
+ successSubdued: "color-mix(in srgb, var(--theme--background), var(--theme--success) 50%)",
141
+ successAccent: "color-mix(in srgb, var(--theme--success), #16151a 25%)",
142
+ warning: "#ffa439",
143
+ warningBackground: "color-mix(in srgb, var(--theme--background), var(--theme--warning) 10%)",
144
+ warningSubdued: "color-mix(in srgb, var(--theme--background), var(--theme--warning) 50%)",
145
+ warningAccent: "color-mix(in srgb, var(--theme--warning), #16151a 25%)",
146
+ danger: "#e35169",
147
+ dangerBackground: "color-mix(in srgb, var(--theme--background), var(--theme--danger) 10%)",
148
+ dangerSubdued: "color-mix(in srgb, var(--theme--background), var(--theme--danger) 50%)",
149
+ dangerAccent: "color-mix(in srgb, var(--theme--danger), #16151a 25%)",
150
+ fontFamilyDisplay: "var(--theme--font-family-sans-serif)",
151
+ fontFamilySansSerif: '"Inter", system-ui',
152
+ fontFamilySerif: '"Merriweather", serif',
153
+ fontFamilyMonospace: '"Fira Mono", monospace',
154
+ navigation: {
155
+ background: "#21262e",
156
+ project: {
157
+ background: "#30363d",
158
+ foreground: "var(--theme--foreground-accent)",
159
+ fontFamily: "var(--theme--font-family-sans-serif)"
160
+ },
161
+ modules: {
162
+ background: "var(--theme--background)",
163
+ button: {
164
+ foreground: "var(--theme--foreground-subdued)",
165
+ foregroundHover: "#fff",
166
+ foregroundActive: "var(--theme--foreground-accent)",
167
+ background: "transparent",
168
+ backgroundHover: "transparent",
169
+ backgroundActive: "#21262e"
170
+ }
171
+ },
172
+ list: {
173
+ icon: {
174
+ foreground: "var(--theme--primary)",
175
+ foregroundHover: "var(--theme--navigation--list--icon--foreground)",
176
+ foregroundActive: "var(--theme--navigation--list--icon--foreground)"
177
+ },
178
+ foreground: "var(--theme--foreground-accent)",
179
+ foregroundHover: "var(--theme--navigation--list--foreground)",
180
+ foregroundActive: "var(--theme--navigation--list--foreground)",
181
+ background: "transparent",
182
+ backgroundHover: "#30363d",
183
+ backgroundActive: "#30363d",
184
+ fontFamily: "var(--theme--font-family-sans-serif)"
185
+ }
186
+ },
187
+ header: {
188
+ background: "var(--theme--background)",
189
+ headline: {
190
+ foreground: "var(--theme--foreground-subdued)",
191
+ fontFamily: "var(--theme--font-family-sans-serif)"
192
+ },
193
+ title: {
194
+ foreground: "var(--theme--foreground-accent)",
195
+ fontFamily: "var(--theme--font-family-display)"
196
+ }
197
+ },
198
+ form: {
199
+ field: {
200
+ label: {
201
+ foreground: "var(--theme--foreground-accent)",
202
+ fontFamily: "var(--theme--font-family-sans-serif)"
203
+ },
204
+ input: {
205
+ background: "var(--theme--background)",
206
+ foreground: "var(--theme--foreground)",
207
+ foregroundSubdued: "var(--theme--foreground-subdued)"
208
+ }
209
+ }
210
+ },
211
+ sidebar: {
212
+ background: "#21262e",
213
+ foreground: "var(--theme--foreground-subdued)",
214
+ fontFamily: "var(--theme--font-family-sans-serif)",
215
+ section: {
216
+ toggle: {
217
+ icon: {
218
+ foreground: "var(--theme--foreground-accent)",
219
+ foregroundHover: "var(--theme--sidebar--section--toggle--icon--foreground)",
220
+ foregroundActive: "var(--theme--sidebar--section--toggle--icon--foreground)"
221
+ },
222
+ foreground: "var(--theme--foreground-accent)",
223
+ foregroundHover: "var(--theme--sidebar--section--toggle--foreground)",
224
+ foregroundActive: "var(--theme--sidebar--section--toggle--foreground)",
225
+ background: "#30363d",
226
+ backgroundHover: "var(--theme--sidebar--section--toggle--background)",
227
+ backgroundActive: "var(--theme--sidebar--section--toggle--background)",
228
+ fontFamily: "var(--theme--font-family-sans-serif)"
229
+ }
230
+ }
231
+ }
26
232
  }
27
- });
28
-
29
- // src/themes/light/default.ts
30
- var default_default2 = defineTheme({
31
- name: "Directus Default (Light)",
233
+ }, A = {
234
+ name: "Light (Directus)",
32
235
  appearance: "light",
33
236
  rules: {
34
- foreground: "#000"
237
+ foreground: "#4f5464",
238
+ foregroundAccent: "#172940",
239
+ foregroundSubdued: "#a2b5cd",
240
+ background: "#fff",
241
+ primary: "var(--project-color)",
242
+ primaryBackground: "color-mix(in srgb, var(--theme--background), var(--theme--primary) 10%)",
243
+ primarySubdued: "color-mix(in srgb, var(--theme--background), var(--theme--primary) 50%)",
244
+ primaryAccent: "color-mix(in srgb, var(--theme--primary), #2e3c43 25%)",
245
+ secondary: "#ff99dd",
246
+ secondaryBackground: "color-mix(in srgb, var(--theme--background), var(--theme--secondary) 10%)",
247
+ secondarySubdued: "color-mix(in srgb, var(--theme--background), var(--theme--secondary) 50%)",
248
+ secondaryAccent: "color-mix(in srgb, var(--theme--secondary), #2e3c43 25%)",
249
+ success: "#2ecda7",
250
+ successBackground: "color-mix(in srgb, var(--theme--background), var(--theme--success) 10%)",
251
+ successSubdued: "color-mix(in srgb, var(--theme--background), var(--theme--success) 50%)",
252
+ successAccent: "color-mix(in srgb, var(--theme--success), #2e3c43 25%)",
253
+ warning: "#ffa439",
254
+ warningBackground: "color-mix(in srgb, var(--theme--background), var(--theme--warning) 10%)",
255
+ warningSubdued: "color-mix(in srgb, var(--theme--background), var(--theme--warning) 50%)",
256
+ warningAccent: "color-mix(in srgb, var(--theme--warning), #2e3c43 25%)",
257
+ danger: "#e35169",
258
+ dangerBackground: "color-mix(in srgb, var(--theme--background), var(--theme--danger) 10%)",
259
+ dangerSubdued: "color-mix(in srgb, var(--theme--background), var(--theme--danger) 50%)",
260
+ dangerAccent: "color-mix(in srgb, var(--theme--danger), #2e3c43 25%)",
261
+ fontFamilyDisplay: "var(--theme--font-family-sans-serif)",
262
+ fontFamilySansSerif: '"Inter", system-ui',
263
+ fontFamilySerif: '"Merriweather", serif',
264
+ fontFamilyMonospace: '"Fira Mono", monospace',
265
+ navigation: {
266
+ background: "#f0f4f9",
267
+ project: {
268
+ background: "#e4eaf1",
269
+ foreground: "var(--theme--foreground-accent)",
270
+ fontFamily: "var(--theme--font-family-sans-serif)"
271
+ },
272
+ modules: {
273
+ background: "#18222f",
274
+ button: {
275
+ foreground: "#8196b1",
276
+ foregroundHover: "#fff",
277
+ foregroundActive: "var(--theme--foreground-accent)",
278
+ background: "transparent",
279
+ backgroundHover: "transparent",
280
+ backgroundActive: "#f0f4f9"
281
+ }
282
+ },
283
+ list: {
284
+ icon: {
285
+ foreground: "var(--theme--primary)",
286
+ foregroundHover: "var(--theme--navigation--list--icon--foreground)",
287
+ foregroundActive: "var(--theme--navigation--list--icon--foreground)"
288
+ },
289
+ foreground: "var(--theme--foreground-accent)",
290
+ foregroundHover: "var(--theme--navigation--list--foreground)",
291
+ foregroundActive: "var(--theme--navigation--list--foreground)",
292
+ background: "transparent",
293
+ backgroundHover: "#e4eaf1",
294
+ backgroundActive: "#e4eaf1",
295
+ fontFamily: "var(--theme--font-family-sans-serif)"
296
+ }
297
+ },
298
+ header: {
299
+ background: "var(--theme--background)",
300
+ headline: {
301
+ foreground: "var(--theme--foreground-subdued)",
302
+ fontFamily: "var(--theme--font-family-sans-serif)"
303
+ },
304
+ title: {
305
+ foreground: "var(--theme--foreground-accent)",
306
+ fontFamily: "var(--theme--font-family-display)"
307
+ }
308
+ },
309
+ form: {
310
+ field: {
311
+ label: {
312
+ foreground: "var(--theme--foreground-accent)",
313
+ fontFamily: "var(--theme--font-family-sans-serif)"
314
+ },
315
+ input: {
316
+ background: "var(--theme--background)",
317
+ foreground: "var(--theme--foreground)",
318
+ foregroundSubdued: "var(--theme--foreground-subdued)"
319
+ }
320
+ }
321
+ },
322
+ sidebar: {
323
+ background: "#f0f4f9",
324
+ foreground: "var(--theme--foreground-subdued)",
325
+ fontFamily: "var(--theme--font-family-sans-serif)",
326
+ section: {
327
+ toggle: {
328
+ icon: {
329
+ foreground: "var(--theme--foreground-accent)",
330
+ foregroundHover: "var(--theme--sidebar--section--toggle--icon--foreground)",
331
+ foregroundActive: "var(--theme--sidebar--section--toggle--icon--foreground)"
332
+ },
333
+ foreground: "var(--theme--foreground-accent)",
334
+ foregroundHover: "var(--theme--sidebar--section--toggle--foreground)",
335
+ foregroundActive: "var(--theme--sidebar--section--toggle--foreground)",
336
+ background: "#e4eaf1",
337
+ backgroundHover: "var(--theme--sidebar--section--toggle--background)",
338
+ backgroundActive: "var(--theme--sidebar--section--toggle--background)",
339
+ fontFamily: "var(--theme--font-family-sans-serif)"
340
+ }
341
+ }
342
+ }
35
343
  }
36
- });
37
-
38
- // src/store.ts
39
- var useThemeStore = defineStore("themes", () => {
40
- const currentAppearance = ref("light");
41
- const currentTheme = reactive({
42
- dark: default_default.name,
43
- light: default_default2.name
44
- });
45
- const themes = reactive({
46
- dark: [default_default],
47
- light: [default_default2]
344
+ }, V = [A], z = [F], E = x("🎨 Themes", () => {
345
+ const t = H({
346
+ light: V,
347
+ dark: z
48
348
  });
49
- const registerTheme = (theme) => {
50
- if (theme.appearance === "dark") {
51
- themes.dark.push(theme);
52
- } else {
53
- themes.light.push(theme);
54
- }
349
+ return { themes: t, registerTheme: (s) => {
350
+ s.appearance === "light" ? t.light.push(s) : t.dark.push(s);
351
+ } };
352
+ }), K = (t) => {
353
+ const m = [], s = (o, i = []) => {
354
+ for (const [a, n] of Object.entries(o))
355
+ typeof n == "object" && n !== null && ("type" in n && n.type === "object" && "properties" in n && s(n.properties, [...i, a]), "$ref" in n && n.$ref === y.FontFamily && m.push([...i, a]));
55
356
  };
56
- const defaultTheme = computed(() => {
57
- if (unref(currentAppearance) === "dark")
58
- return default_default;
59
- return default_default2;
60
- });
61
- const rules = computed(() => {
62
- const appearance = unref(currentAppearance);
63
- const theme = themes[appearance].find(({ name }) => name === currentTheme[unref(currentAppearance)]);
64
- return defu(theme?.rules, unref(defaultTheme).rules);
65
- });
66
- return { themes, registerTheme, currentTheme, currentAppearance, rules };
357
+ s(N.properties.rules.properties);
358
+ const f = v(() => {
359
+ const o = [];
360
+ for (const a of m)
361
+ o.push(R(d(t).rules, a).trim());
362
+ const i = /* @__PURE__ */ new Set();
363
+ for (const a of o)
364
+ a.split(",").forEach((g) => i.add(g));
365
+ return Array.from(i);
366
+ }), b = v(() => f.value.filter((o) => {
367
+ if (o.startsWith('"') && o.endsWith('"') && o.includes("var(") === !1) {
368
+ const i = ["Inter", "Merriweather", "Fira Mono"];
369
+ return !(i.includes(o) || i.map((a) => `"${a}"`).includes(o));
370
+ }
371
+ return !1;
372
+ }).map((o) => (o.startsWith('"') && o.endsWith('"') && (o = o.slice(1, -1)), o.replace(" ", "+"))));
373
+ return { fonts: f, googleFonts: b };
374
+ }, P = (t, m, s, f, b) => {
375
+ const { themes: o } = j(E());
376
+ return { theme: v(() => {
377
+ const a = d(t) ? d(s) : d(m), n = d(t) ? F : A, g = d(t) ? d(b) : d(f), h = d(o)[t ? "dark" : "light"].find((u) => u.name === a);
378
+ return h ? g ? p({}, n, h, { rules: g }) : p(n, h) : (a && a !== n.name && console.warn(`Theme "${a}" doesn't exist.`), g ? p({}, n, { rules: g }) : n);
379
+ }) };
380
+ }, ee = /* @__PURE__ */ O({
381
+ __name: "theme-provider",
382
+ props: {
383
+ darkMode: { type: Boolean },
384
+ themeLight: { default: A.name },
385
+ themeLightOverrides: { default: () => ({}) },
386
+ themeDark: { default: F.name },
387
+ themeDarkOverrides: { default: () => ({}) }
388
+ },
389
+ setup(t) {
390
+ const m = t, { darkMode: s, themeLight: f, themeDark: b, themeLightOverrides: o, themeDarkOverrides: i } = w(m), { theme: a } = P(s, f, b, o, i), n = v(() => {
391
+ const u = C(d(a).rules, { delimiter: "--" }), l = (k) => `--theme--${_(k, { separator: "-" })}`;
392
+ return I(u, (k, S) => l(S));
393
+ }), { googleFonts: g } = K(a);
394
+ M({
395
+ link: v(() => {
396
+ let u = "";
397
+ if (g.value.length > 0) {
398
+ const l = g.value.join("&family=");
399
+ u += `https://fonts.googleapis.com/css2?family=${l}`, u += `
400
+ `;
401
+ }
402
+ return u ? [
403
+ {
404
+ rel: "stylesheet",
405
+ href: u
406
+ }
407
+ ] : [];
408
+ })
409
+ });
410
+ const h = v(() => `:root {${Object.entries(d(n)).map(([l, k]) => `${l}: ${k};`).join(" ")}}`);
411
+ return (u, l) => (B(), T($, { to: "#theme" }, [
412
+ D(L(h.value), 1)
413
+ ]));
414
+ }
67
415
  });
68
416
  export {
69
- ThemeSchema,
70
- defineTheme,
71
- useThemeStore
417
+ Z as Definitions,
418
+ ee as ThemeProvider,
419
+ N as ThemeSchema,
420
+ y as TypeId,
421
+ P as useTheme,
422
+ E as useThemeStore
72
423
  };