@maz-ui/themes 4.4.0 → 4.7.0-beta.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 (81) hide show
  1. package/dist/build/index.d.ts.map +1 -0
  2. package/dist/composables/index.js +1 -1
  3. package/dist/composables/useTheme.d.ts.map +1 -0
  4. package/dist/composables/useTheme.js +14 -6
  5. package/dist/define-preset.d.ts.map +1 -0
  6. package/dist/index.d.ts +12 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +5 -0
  9. package/dist/plugin.d.ts.map +1 -0
  10. package/dist/plugin.js +4 -128
  11. package/dist/presets/index.d.ts.map +1 -0
  12. package/dist/presets/mazUi.d.ts.map +1 -0
  13. package/dist/presets/obsidian.d.ts.map +1 -0
  14. package/dist/presets/ocean.d.ts.map +1 -0
  15. package/dist/presets/pristine.d.ts.map +1 -0
  16. package/dist/types/index.d.ts +190 -9
  17. package/dist/types/index.d.ts.map +1 -1
  18. package/dist/utils/color-utils.d.ts.map +1 -0
  19. package/dist/utils/cookie-storage.d.ts.map +1 -0
  20. package/dist/utils/cookie-storage.js +1 -1
  21. package/dist/utils/css-generator.d.ts.map +1 -0
  22. package/dist/utils/css-generator.js +1 -1
  23. package/dist/utils/get-color-mode.d.ts.map +1 -0
  24. package/dist/utils/get-color-mode.js +1 -1
  25. package/dist/utils/get-preset.d.ts.map +1 -0
  26. package/dist/{types/utils → utils}/index.d.ts +3 -0
  27. package/dist/utils/index.d.ts.map +1 -0
  28. package/dist/utils/index.js +7 -0
  29. package/dist/utils/inject-theme-css.d.ts +4 -0
  30. package/dist/utils/inject-theme-css.d.ts.map +1 -0
  31. package/dist/utils/inject-theme-css.js +29 -0
  32. package/dist/utils/inject.d.ts +7 -0
  33. package/dist/utils/inject.d.ts.map +1 -0
  34. package/dist/utils/inject.js +11 -0
  35. package/dist/utils/no-transition.d.ts.map +1 -0
  36. package/dist/utils/no-transition.js +1 -1
  37. package/dist/utils/preset-merger.d.ts.map +1 -0
  38. package/dist/utils/setup-theme.d.ts +30 -0
  39. package/dist/utils/setup-theme.d.ts.map +1 -0
  40. package/dist/utils/setup-theme.js +135 -0
  41. package/dist/utils/update-document-class.d.ts.map +1 -0
  42. package/package.json +15 -20
  43. package/dist/chunks/isServer.BAlEcRRr.js +0 -6
  44. package/dist/plugin/index.js +0 -11
  45. package/dist/types/build/index.d.ts.map +0 -1
  46. package/dist/types/composables/useTheme.d.ts.map +0 -1
  47. package/dist/types/define-preset.d.ts.map +0 -1
  48. package/dist/types/plugin.d.ts.map +0 -1
  49. package/dist/types/presets/index.d.ts.map +0 -1
  50. package/dist/types/presets/mazUi.d.ts.map +0 -1
  51. package/dist/types/presets/obsidian.d.ts.map +0 -1
  52. package/dist/types/presets/ocean.d.ts.map +0 -1
  53. package/dist/types/presets/pristine.d.ts.map +0 -1
  54. package/dist/types/types/index.d.ts +0 -191
  55. package/dist/types/types/index.d.ts.map +0 -1
  56. package/dist/types/utils/color-utils.d.ts.map +0 -1
  57. package/dist/types/utils/cookie-storage.d.ts.map +0 -1
  58. package/dist/types/utils/css-generator.d.ts.map +0 -1
  59. package/dist/types/utils/get-color-mode.d.ts.map +0 -1
  60. package/dist/types/utils/get-preset.d.ts.map +0 -1
  61. package/dist/types/utils/index.d.ts.map +0 -1
  62. package/dist/types/utils/no-transition.d.ts.map +0 -1
  63. package/dist/types/utils/preset-merger.d.ts.map +0 -1
  64. package/dist/types/utils/update-document-class.d.ts.map +0 -1
  65. /package/dist/{types/build → build}/index.d.ts +0 -0
  66. /package/dist/{types/composables → composables}/useTheme.d.ts +0 -0
  67. /package/dist/{types/define-preset.d.ts → define-preset.d.ts} +0 -0
  68. /package/dist/{types/plugin.d.ts → plugin.d.ts} +0 -0
  69. /package/dist/{types/presets → presets}/index.d.ts +0 -0
  70. /package/dist/{types/presets → presets}/mazUi.d.ts +0 -0
  71. /package/dist/{types/presets → presets}/obsidian.d.ts +0 -0
  72. /package/dist/{types/presets → presets}/ocean.d.ts +0 -0
  73. /package/dist/{types/presets → presets}/pristine.d.ts +0 -0
  74. /package/dist/{types/utils → utils}/color-utils.d.ts +0 -0
  75. /package/dist/{types/utils → utils}/cookie-storage.d.ts +0 -0
  76. /package/dist/{types/utils → utils}/css-generator.d.ts +0 -0
  77. /package/dist/{types/utils → utils}/get-color-mode.d.ts +0 -0
  78. /package/dist/{types/utils → utils}/get-preset.d.ts +0 -0
  79. /package/dist/{types/utils → utils}/no-transition.d.ts +0 -0
  80. /package/dist/{types/utils → utils}/preset-merger.d.ts +0 -0
  81. /package/dist/{types/utils → utils}/update-document-class.d.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { i as isServer } from "../chunks/isServer.BAlEcRRr.js";
1
+ import { isServer } from "@maz-ui/utils";
2
2
  function noTransition(fn) {
3
3
  if (isServer()) {
4
4
  fn();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset-merger.d.ts","sourceRoot":"","sources":["../../src/utils/preset-merger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE9E,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,oBAAoB,GAAG,WAAW,CAY5F;AAYD,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAkBzF"}
@@ -0,0 +1,30 @@
1
+ import { Ref } from 'vue';
2
+ import { MazUiThemeOptions } from '../plugin';
3
+ import { ThemePreset, ThemeState } from '../types';
4
+ export declare const defaultOptions: {
5
+ strategy: "hybrid";
6
+ overrides: {};
7
+ darkModeStrategy: "class";
8
+ preset: undefined;
9
+ injectCriticalCSS: true;
10
+ injectFullCSS: true;
11
+ mode: "both";
12
+ darkClass: string;
13
+ colorMode: "auto";
14
+ };
15
+ export interface SetupThemeReturn {
16
+ themeState: Ref<ThemeState>;
17
+ cleanup: () => void;
18
+ }
19
+ /**
20
+ * Sets up the theme state, CSS injection, and watchers without binding to a Vue app.
21
+ * The caller is responsible for calling `app.provide()` and setting `app.config.globalProperties`.
22
+ *
23
+ * Synchronous when a preset object is provided directly.
24
+ * Asynchronous when a preset name (string) needs to be resolved.
25
+ */
26
+ export declare function setupTheme(options: MazUiThemeOptions & {
27
+ preset: ThemePreset;
28
+ }): SetupThemeReturn;
29
+ export declare function setupTheme(options: MazUiThemeOptions): Promise<SetupThemeReturn>;
30
+ //# sourceMappingURL=setup-theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-theme.d.ts","sourceRoot":"","sources":["../../src/utils/setup-theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAqEvD,eAAO,MAAM,cAAc;;;;;;;;;;CAUgE,CAAA;AAE3F,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAkED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GAAG,gBAAgB,CAAA;AAClG,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA"}
@@ -0,0 +1,135 @@
1
+ import { isServer } from "@maz-ui/utils";
2
+ import { ref, onMounted, computed, toValue, watch } from "vue";
3
+ import { isClient } from "@maz-ui/utils/helpers/isClient";
4
+ import { truthyFilter } from "@maz-ui/utils/helpers/truthyFilter";
5
+ import { getSavedColorMode, getSystemColorMode, getColorMode } from "./get-color-mode.js";
6
+ import { getPreset } from "./get-preset.js";
7
+ import { injectThemeCSS } from "./inject-theme-css.js";
8
+ import { mergePresets } from "./preset-merger.js";
9
+ import { updateDocumentClass } from "./update-document-class.js";
10
+ function useMutationObserver(target, callback, options = {}) {
11
+ const {
12
+ internalWindow = isClient() ? globalThis : void 0,
13
+ ...mutationOptions
14
+ } = options;
15
+ let observer;
16
+ const isSupported = ref((internalWindow && "MutationObserver" in internalWindow) ?? !1);
17
+ isSupported.value || onMounted(() => {
18
+ isSupported.value = (internalWindow && "MutationObserver" in internalWindow) ?? !1;
19
+ });
20
+ const cleanup = () => {
21
+ observer && (observer.disconnect(), observer = void 0);
22
+ }, targets = computed(() => {
23
+ const value = toValue(target);
24
+ let element;
25
+ return value && "$el" in value ? element = value.$el : value && (element = value), new Set([element].filter(truthyFilter));
26
+ }), stopWatch = watch(
27
+ [targets, isSupported],
28
+ ([newTargets, isSupported2]) => {
29
+ cleanup(), isSupported2 && newTargets.size && (observer = new MutationObserver(callback), newTargets.forEach((el) => observer?.observe(el, mutationOptions)));
30
+ },
31
+ { immediate: !0, flush: "post" }
32
+ );
33
+ return {
34
+ isSupported,
35
+ stop: () => {
36
+ stopWatch(), cleanup();
37
+ },
38
+ takeRecords: () => observer?.takeRecords()
39
+ };
40
+ }
41
+ function watchColorSchemeFromMedia(themeState) {
42
+ if (isServer())
43
+ return () => {
44
+ };
45
+ let mediaCleanup;
46
+ if (themeState.value && themeState.value.colorMode === "auto") {
47
+ const mediaQuery = globalThis.matchMedia("(prefers-color-scheme: dark)"), updateFromMedia = () => {
48
+ if (themeState.value.colorMode === "auto") {
49
+ const newColorMode = mediaQuery.matches ? "dark" : "light";
50
+ updateDocumentClass(newColorMode === "dark", themeState.value), themeState.value.isDark = newColorMode === "dark";
51
+ }
52
+ };
53
+ mediaQuery.addEventListener("change", updateFromMedia), mediaCleanup = () => mediaQuery.removeEventListener("change", updateFromMedia);
54
+ }
55
+ const stopWatch = watch(() => themeState.value.colorMode, (colorMode) => {
56
+ updateDocumentClass(
57
+ colorMode === "auto" ? getSystemColorMode() === "dark" : colorMode === "dark",
58
+ themeState.value
59
+ );
60
+ });
61
+ return () => {
62
+ mediaCleanup?.(), stopWatch();
63
+ };
64
+ }
65
+ function watchMutationClassOnHtmlElement(themeState) {
66
+ if (isServer())
67
+ return () => {
68
+ };
69
+ const { stop } = useMutationObserver(
70
+ document.documentElement,
71
+ () => {
72
+ if (isServer() || !themeState.value)
73
+ return;
74
+ const activeColorMode = document.documentElement.classList.contains(themeState.value.darkClass) ? "dark" : "light";
75
+ themeState.value.isDark = activeColorMode === "dark", themeState.value.colorMode !== activeColorMode && themeState.value.colorMode !== "auto" && (themeState.value.colorMode = activeColorMode);
76
+ },
77
+ {
78
+ attributes: !0
79
+ }
80
+ );
81
+ return stop;
82
+ }
83
+ const defaultOptions = {
84
+ strategy: "hybrid",
85
+ overrides: {},
86
+ darkModeStrategy: "class",
87
+ preset: void 0,
88
+ injectCriticalCSS: !0,
89
+ injectFullCSS: !0,
90
+ mode: "both",
91
+ darkClass: "dark",
92
+ colorMode: "auto"
93
+ };
94
+ function resolveConfig(options) {
95
+ return {
96
+ ...defaultOptions,
97
+ ...options,
98
+ colorMode: getSavedColorMode() ?? options.colorMode ?? (options.mode === "dark" ? "dark" : "auto")
99
+ };
100
+ }
101
+ function createThemeState(options, config) {
102
+ const isDark = config.colorMode === "auto" && config.mode === "both" ? getSystemColorMode() === "dark" || getColorMode(config.colorMode) === "dark" : getColorMode(config.colorMode) === "dark" || config.mode === "dark", themeState = ref({
103
+ strategy: config.strategy,
104
+ darkClass: config.darkClass,
105
+ darkModeStrategy: config.darkModeStrategy,
106
+ colorMode: config.colorMode,
107
+ mode: config.mode,
108
+ preset: void 0,
109
+ // @ts-expect-error _isDark is a private property
110
+ isDark: options._isDark || isDark
111
+ });
112
+ return updateDocumentClass(themeState.value.isDark, themeState.value), themeState;
113
+ }
114
+ function finalizeTheme(themeState, preset, config) {
115
+ const finalPreset = Object.keys(config.overrides).length > 0 && preset ? mergePresets(preset, config.overrides) : preset;
116
+ if (finalPreset && (themeState.value.preset = finalPreset), config.strategy === "buildtime" || !finalPreset)
117
+ return { themeState, cleanup: () => {
118
+ } };
119
+ injectThemeCSS(finalPreset, config);
120
+ const cleanupColorScheme = watchColorSchemeFromMedia(themeState), cleanupMutation = watchMutationClassOnHtmlElement(themeState);
121
+ return {
122
+ themeState,
123
+ cleanup: () => {
124
+ cleanupColorScheme(), cleanupMutation();
125
+ }
126
+ };
127
+ }
128
+ function setupTheme(options) {
129
+ const config = resolveConfig(options), themeState = createThemeState(options, config);
130
+ return typeof config.preset == "object" || config.strategy === "buildtime" ? finalizeTheme(themeState, config.preset, config) : getPreset(config.preset).then((preset) => finalizeTheme(themeState, preset, config));
131
+ }
132
+ export {
133
+ defaultOptions,
134
+ setupTheme
135
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-document-class.d.ts","sourceRoot":"","sources":["../../src/utils/update-document-class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAG1C,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,UAAU,QAatE"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@maz-ui/themes",
3
3
  "type": "module",
4
- "version": "4.4.0",
4
+ "version": "4.7.0-beta.0",
5
5
  "description": "Theme system for Maz-UI with TypeScript support and CSS variables",
6
6
  "author": "Louis Mazel <me@loicmazuel.com>",
7
7
  "license": "MIT",
@@ -24,49 +24,49 @@
24
24
  },
25
25
  "exports": {
26
26
  ".": {
27
- "types": "./dist/types/index.d.ts",
27
+ "types": "./dist/index.d.ts",
28
28
  "import": "./dist/index.js"
29
29
  },
30
30
  "./presets": {
31
- "types": "./dist/types/presets/index.d.ts",
31
+ "types": "./dist/presets/index.d.ts",
32
32
  "import": "./dist/presets/index.js"
33
33
  },
34
34
  "./presets/*": {
35
- "types": "./dist/types/presets/*.d.ts",
35
+ "types": "./dist/presets/*.d.ts",
36
36
  "import": "./dist/presets/*.js"
37
37
  },
38
38
  "./composables": {
39
- "types": "./dist/types/composables/index.d.ts",
39
+ "types": "./dist/composables/index.d.ts",
40
40
  "import": "./dist/composables/index.js"
41
41
  },
42
42
  "./composables/*": {
43
- "types": "./dist/types/composables/*.d.ts",
43
+ "types": "./dist/composables/*.d.ts",
44
44
  "import": "./dist/composables/*.js"
45
45
  },
46
46
  "./utils": {
47
- "types": "./dist/types/utils/index.d.ts",
47
+ "types": "./dist/utils/index.d.ts",
48
48
  "import": "./dist/utils/index.js"
49
49
  },
50
50
  "./utils/*": {
51
- "types": "./dist/types/utils/*.d.ts",
51
+ "types": "./dist/utils/*.d.ts",
52
52
  "import": "./dist/utils/*.js"
53
53
  },
54
54
  "./build": {
55
- "types": "./dist/types/build/index.d.ts",
55
+ "types": "./dist/build/index.d.ts",
56
56
  "import": "./dist/build/index.js"
57
57
  },
58
58
  "./build/*": {
59
- "types": "./dist/types/build/*.d.ts",
59
+ "types": "./dist/build/*.d.ts",
60
60
  "import": "./dist/build/*.js"
61
61
  },
62
62
  "./plugin": {
63
- "types": "./dist/types/plugin.d.ts",
64
- "import": "./dist/plugin/index.js"
63
+ "types": "./dist/plugin.d.ts",
64
+ "import": "./dist/plugin.js"
65
65
  }
66
66
  },
67
67
  "main": "./dist/index.js",
68
68
  "module": "./dist/index.js",
69
- "types": "./dist/types/index.d.ts",
69
+ "types": "./dist/index.d.ts",
70
70
  "files": [
71
71
  "LICENSE",
72
72
  "dist"
@@ -75,15 +75,10 @@
75
75
  "node": ">=18.0.0"
76
76
  },
77
77
  "peerDependencies": {
78
- "vue": "^3.5.0"
78
+ "vue": ">=3.5.0 <4.0.0"
79
79
  },
80
80
  "dependencies": {
81
- "@maz-ui/utils": "4.3.0"
82
- },
83
- "devDependencies": {
84
- "glob": "^13.0.0",
85
- "vue": "^3.5.27",
86
- "vue-tsc": "^3.2.1"
81
+ "@maz-ui/utils": "4.7.0-beta.0"
87
82
  },
88
83
  "lint-staged": {
89
84
  "*.{js,ts,vue,mjs,mts,cjs,md,yml,json}": "cross-env NODE_ENV=production eslint --fix"
@@ -1,6 +0,0 @@
1
- function isServer() {
2
- return typeof document > "u" || typeof globalThis.window > "u";
3
- }
4
- export {
5
- isServer as i
6
- };
@@ -1,11 +0,0 @@
1
- import "../chunks/isServer.BAlEcRRr.js";
2
- import "vue";
3
- import { MazUiTheme } from "../plugin.js";
4
- import "../utils/css-generator.js";
5
- import "../utils/get-color-mode.js";
6
- import "../utils/update-document-class.js";
7
- import "../utils/get-preset.js";
8
- import "../utils/preset-merger.js";
9
- export {
10
- MazUiTheme
11
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/build/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAG3C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,WAAW,CAAA;IACnB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;IAChC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;IAChC,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iCAAiC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,sBAAsB;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA0BhE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,GAAE;IACnE,8BAA8B;IAC9B,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;IAChC,oCAAoC;IACpC,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;IAChC,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wCAAwC;IACxC,YAAY,CAAC,EAAE,OAAO,CAAA;CAClB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkB9B;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE;IAC1D,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACV,GAAG,MAAM,CAYd;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;CACd,GAAG;IACP,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAWA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../../src/composables/useTheme.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAc,MAAM,UAAU,CAAA;AAwBzG,iBAAe,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,oBAAoB,GAAG,eAAe,iBA4BtF;AAED,iBAAS,YAAY,CAAC,SAAS,EAAE,SAAS,QAOzC;AAED,iBAAS,cAAc,SAEtB;AAqBD,wBAAgB,QAAQ;IAcpB;;OAEG;;IAEH;;OAEG;;IAEH;;;OAGG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAEH;;;OAGG;;IAEH;;;OAGG;;IAEH;;;OAGG;;IAEH;;OAEG;;EAGN"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"define-preset.d.ts","sourceRoot":"","sources":["../../src/define-preset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAIjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,wBAAgB,YAAY,CAAC,OAAO,EAAE;IACpC,IAAI,EAAE,WAAW,CAAA;IACjB,SAAS,EAAE,oBAAoB,CAAA;CAChC,GAAG,WAAW,CAAA;AAEf,wBAAgB,YAAY,CAAC,OAAO,EAAE;IACpC,IAAI,EAAE,eAAe,CAAA;IACrB,SAAS,EAAE,oBAAoB,CAAA;CAChC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAO,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAe,UAAU,EAAE,MAAM,SAAS,CAAA;AAcnE,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;IACpE;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAiGD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAqDlD,CAAA;AAED,OAAO,QAAQ,KAAK,CAAC;IACnB,UAAU,yBAAyB;QACjC;;;;;;;;;;;;;;WAcG;QACH,cAAc,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;KAChC;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/presets/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mazUi.d.ts","sourceRoot":"","sources":["../../../src/presets/mazUi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,eAAO,MAAM,KAAK,EAAE,WA0DnB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"obsidian.d.ts","sourceRoot":"","sources":["../../../src/presets/obsidian.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,eAAO,MAAM,QAAQ,EAAE,WA2DtB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ocean.d.ts","sourceRoot":"","sources":["../../../src/presets/ocean.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,eAAO,MAAM,KAAK,EAAE,WA0DnB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pristine.d.ts","sourceRoot":"","sources":["../../../src/presets/pristine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,eAAO,MAAM,QAAQ,EAAE,WA0DtB,CAAA"}
@@ -1,191 +0,0 @@
1
- export type HSL = `${number} ${number}% ${number}%`;
2
- export type SizeUnit = `${number}${'rem' | 'px' | 'em' | 'vw' | 'vh' | 'vmin' | 'vmax' | '%'}`;
3
- export interface ThemeColors {
4
- 'background': HSL;
5
- 'foreground': HSL;
6
- 'primary': HSL;
7
- 'primary-foreground': HSL;
8
- 'secondary': HSL;
9
- 'secondary-foreground': HSL;
10
- 'accent': HSL;
11
- 'accent-foreground': HSL;
12
- 'info': HSL;
13
- 'info-foreground': HSL;
14
- 'contrast': HSL;
15
- 'contrast-foreground': HSL;
16
- 'destructive': HSL;
17
- 'destructive-foreground': HSL;
18
- 'success': HSL;
19
- 'success-foreground': HSL;
20
- 'warning': HSL;
21
- 'warning-foreground': HSL;
22
- 'overlay': HSL;
23
- 'muted': HSL;
24
- 'border': HSL;
25
- 'shadow': HSL;
26
- }
27
- export interface ThemeFoundation {
28
- 'base-font-size'?: SizeUnit;
29
- 'radius': SizeUnit;
30
- 'border-width': SizeUnit;
31
- 'font-family'?: string;
32
- }
33
- export interface ThemePresetOverrides {
34
- /**
35
- * Theme name
36
- * @default undefined
37
- */
38
- name?: string;
39
- /**
40
- * Theme colors
41
- * @default undefined
42
- */
43
- colors?: {
44
- light?: Partial<ThemeColors>;
45
- dark?: Partial<ThemeColors>;
46
- };
47
- /**
48
- * Theme foundation
49
- * @default undefined
50
- */
51
- foundation?: Partial<ThemeFoundation>;
52
- }
53
- export interface ThemePreset {
54
- /**
55
- * Theme name
56
- */
57
- name: string;
58
- colors: {
59
- light: ThemeColors;
60
- dark: ThemeColors;
61
- };
62
- foundation: ThemeFoundation;
63
- }
64
- export type ThemePresetName = 'mazUi' | 'ocean' | 'pristine' | 'obsidian' | 'maz-ui';
65
- export type ColorMode = 'light' | 'dark' | 'auto';
66
- export type ThemeMode = 'light' | 'dark' | 'both';
67
- export type DarkModeStrategy = 'class' | 'media';
68
- export type Strategy = 'runtime' | 'buildtime' | 'hybrid';
69
- interface BaseThemeConfig {
70
- /**
71
- * CSS variables prefix
72
- * @description Prefix for CSS variables
73
- * @default 'maz'
74
- * @private
75
- */
76
- prefix?: string;
77
- /**
78
- * Theme preset to use - Optional if you use buildtime strategy
79
- * @description Can be a predefined preset name or a custom preset object
80
- * @default undefined
81
- */
82
- preset?: ThemePreset;
83
- /**
84
- * Custom preset overrides
85
- * @description Allows customizing specific parts of the preset without redefining it entirely
86
- * @default undefined
87
- */
88
- overrides?: ThemePresetOverrides;
89
- /**
90
- * CSS generation strategy
91
- * @description
92
- * - `runtime`: CSS generated (critical and full) injected immediately
93
- * - `buildtime`: CSS generated at build time and included in bundle
94
- * - `hybrid`: Critical CSS injected inline, full CSS loaded asynchronously (recommended)
95
- * @default 'hybrid'
96
- */
97
- strategy?: Strategy;
98
- /**
99
- * Dark mode class
100
- * @description Class added to the document root when dark mode is active
101
- * @default 'dark'
102
- */
103
- darkClass?: string;
104
- /**
105
- * Dark mode handling
106
- * @description
107
- * - `class`: Dark mode activated with `.dark` class
108
- * - `media`: Dark mode based on `prefers-color-scheme` (automatic detection of system preferences)
109
- * @default 'class'
110
- */
111
- darkModeStrategy?: DarkModeStrategy;
112
- /**
113
- * Initial color mode to use
114
- * @description
115
- * - `light`: Light mode
116
- * - `dark`: Dark mode
117
- * - `auto`: Automatic detection of system preferences
118
- * @default 'auto'
119
- */
120
- colorMode?: ColorMode;
121
- /**
122
- * Supported color modes to use
123
- * @description
124
- * - `light`: Will inject only light CSS variables
125
- * - `dark`: Will inject only dark CSS variables
126
- * - `both`: Will inject both light and dark CSS variables
127
- * @default 'both'
128
- */
129
- mode?: ThemeMode;
130
- }
131
- export type ThemeConfig = (BaseThemeConfig & {
132
- strategy?: Exclude<Strategy, 'buildtime'>;
133
- }) | (Omit<BaseThemeConfig, 'preset'> & {
134
- preset?: ThemePreset;
135
- strategy: 'buildtime';
136
- });
137
- export interface ColorScale {
138
- 50: string;
139
- 100: string;
140
- 200: string;
141
- 300: string;
142
- 400: string;
143
- 500: string;
144
- 600: string;
145
- 700: string;
146
- 800: string;
147
- 900: string;
148
- 950: string;
149
- }
150
- export interface ThemeState {
151
- /**
152
- * Current preset
153
- * @description The preset used
154
- */
155
- preset?: ThemePreset;
156
- /**
157
- * Color mode
158
- * @description The color mode chosen
159
- * @values 'light', 'dark', 'auto'
160
- */
161
- colorMode: ColorMode;
162
- /**
163
- * Whether the current color mode is dark
164
- */
165
- isDark: boolean;
166
- /**
167
- * Theme mode
168
- * @description The theme mode chosen
169
- * @values 'light', 'dark', 'both'
170
- */
171
- mode: ThemeMode;
172
- /**
173
- * CSS generation strategy
174
- * @description The strategy used to generate CSS
175
- * @values 'runtime', 'buildtime', 'hybrid'
176
- */
177
- strategy: Strategy;
178
- /**
179
- * Dark mode strategy
180
- * @description The strategy used to handle dark mode
181
- * @values 'class', 'media'
182
- */
183
- darkModeStrategy: DarkModeStrategy;
184
- /**
185
- * Dark class
186
- * @description The class added to the document root when dark mode is active
187
- */
188
- darkClass: string;
189
- }
190
- export {};
191
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"color-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/color-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1C,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAUzE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAKjE;AAkCD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAyChE;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAIlF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cookie-storage.d.ts","sourceRoot":"","sources":["../../../src/utils/cookie-storage.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUpD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAK1D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"css-generator.d.ts","sourceRoot":"","sources":["../../../src/utils/css-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAItG,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,gFAAgF;IAChF,cAAc,CAAC,EAAE,CAAC,MAAM,WAAW,CAAC,EAAE,CAAA;IACtC,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,CAAC,MAAM,eAAe,CAAC,EAAE,CAAA;IAC9C,6BAA6B;IAC7B,IAAI,EAAE,SAAS,CAAA;IACf,6DAA6D;IAC7D,oBAAoB,EAAE,gBAAgB,CAAA;IACtC,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB;AAmCD,wBAAgB,WAAW,CACzB,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,UAKR,GACA,MAAM,CAwCR;AA0KD,eAAO,MAAM,MAAM,kBAAkB,CAAA;AAErC,wBAAgB,SAAS,CAAC,EAAE,oBAAS,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CA2BxD;AAED,wBAAgB,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAS3C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-color-mode.d.ts","sourceRoot":"","sources":["../../../src/utils/get-color-mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAIzC,wBAAgB,iBAAiB,IAAI,SAAS,GAAG,SAAS,CAOzD;AAED,wBAAgB,YAAY,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAW7D;AAED,wBAAgB,kBAAkB,qBAMjC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-preset.d.ts","sourceRoot":"","sources":["../../../src/utils/get-preset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAElF,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,WAAW,GAAG,oBAAoB,GAAG,MAAM,IAAI,WAAW,CAEnH;AAED,wBAAsB,SAAS,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,WAAW,wBA0BrE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-transition.d.ts","sourceRoot":"","sources":["../../../src/utils/no-transition.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,IAAI,QAmB1C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"preset-merger.d.ts","sourceRoot":"","sources":["../../../src/utils/preset-merger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE9E,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,oBAAoB,GAAG,WAAW,CAY5F;AAYD,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAkBzF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-document-class.d.ts","sourceRoot":"","sources":["../../../src/utils/update-document-class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAG1C,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,UAAU,QAatE"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes