@lytjs/plugin-theme 4.0.5
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.cjs +1 -0
- package/dist/index.mjs +1 -0
- package/package.json +44 -0
package/dist/index.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var p=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames;var Q=Object.prototype.hasOwnProperty;var z=(i,n)=>{for(var l in n)p(i,l,{get:n[l],enumerable:!0})},B=(i,n,l,f)=>{if(n&&typeof n=="object"||typeof n=="function")for(let g of K(n))!Q.call(i,g)&&g!==l&&p(i,g,{get:()=>n[g],enumerable:!(f=H(n,g))||f.enumerable});return i};var R=i=>B(p({},"__esModule",{value:!0}),i);var G={};z(G,{BUILT_IN_THEMES:()=>$,createTheme:()=>q});module.exports=R(G);var $={light:{"--bg":"#ffffff","--bg-secondary":"#f5f5f5","--text":"#333333","--text-secondary":"#666666","--text-muted":"#999999","--primary":"#42b883","--primary-hover":"#3aa876","--secondary":"#35495e","--success":"#10b981","--warning":"#f59e0b","--error":"#ef4444","--info":"#3b82f6","--border":"#e5e7eb","--shadow":"rgba(0, 0, 0, 0.1)"},dark:{"--bg":"#1a1a1a","--bg-secondary":"#2d2d2d","--text":"#e5e5e5","--text-secondary":"#a3a3a3","--text-muted":"#737373","--primary":"#42b883","--primary-hover":"#3aa876","--secondary":"#94a3b8","--success":"#10b981","--warning":"#f59e0b","--error":"#ef4444","--info":"#3b82f6","--border":"#404040","--shadow":"rgba(0, 0, 0, 0.3)"}};function y(){return document.documentElement}function U(i){return(...n)=>{}}function q(i={}){let{default:n="light",storageKey:l="lyt_theme",themes:f={},onChange:g,autoDetect:w=!0,useDataAttribute:C=!0,cssPrefix:h="--lyt-",debug:x=!1}=i,o=U(x),s={...$,...f},a=n,d={};function k(){try{let e=localStorage.getItem(l);if(e&&s[e])return e}catch(e){}return null}function E(e){try{localStorage.setItem(l,e)}catch(t){}}function P(){var e;return typeof window=="undefined"?"light":(e=window.matchMedia)!=null&&e.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light"}function V(e){if(typeof window=="undefined"||!window.matchMedia)return()=>{};let t=window.matchMedia("(prefers-color-scheme: dark)");function r(c){e(c.matches?"dark":"light")}return t.addEventListener("change",r),()=>t.removeEventListener("change",r)}function u(e){let t=y(),r=s[e];if(!r){o(`theme '${e}' not found`);return}o(`applying theme '${e}'`,r),Object.entries(r).forEach(([c,v])=>{let T=c.startsWith("--")?c:`${h}${c}`;t.style.setProperty(T,v)}),Object.entries(d).forEach(([c,v])=>{let T=c.startsWith("--")?c:`${h}${c}`;t.style.setProperty(T,v)}),C&&t.setAttribute("data-theme",e),t.style.setProperty("color-scheme",e==="dark"?"dark":"light")}function m(e){if(!s[e]){o(`theme '${e}' not found, available:`,Object.keys(s));return}let t=a;t!==e&&(a=e,u(e),E(e),g&&g(e,t),o(`theme changed from '${t}' to '${e}'`))}function O(){let e=Object.keys(s),r=(e.indexOf(a)+1)%e.length;m(e[r])}function S(){m(n)}function j(){return Object.keys(s)}function I(e,t){s[e]=t,o(`added/updated theme '${e}'`,t),a===e&&u(e)}function L(e){if(e===n){o("cannot remove default theme");return}delete s[e],a===e&&m(n),o(`removed theme '${e}'`)}function M(){return s[a]||null}function D(e){return s[e]||null}function W(e,t){let r=e.startsWith("--")?e:`${h}${e}`;d[r]=t,y().style.setProperty(r,t),o(`set variable '${r}' = '${t}'`)}function _(e){let t=e.startsWith("--")?e:`${h}${e}`;delete d[t],y().style.removeProperty(t),o(`cleared variable '${t}'`)}function A(){Object.keys(d).forEach(e=>{y().style.removeProperty(e)}),Object.keys(d).forEach(e=>delete d[e]),u(a),o("cleared all dynamic variables")}function F(){let e=k();if(!e&&w){let t=P();e=s[t]?t:n}e||(e=n),o(`initializing with theme '${e}'`),a=e,u(e)}F();let b={install(e,t){e.config=e.config||{},e.config.globalProperties=e.config.globalProperties||{},e.config.globalProperties.$theme=b,typeof e.provide=="function"&&e.provide("theme",b)},get current(){return a},set:m,toggle:O,reset:S,list:j,addTheme:I,removeTheme:L,getConfig:M,getConfigFor:D,setVariable:W,clearVariable:_,clearVariables:A,getSystemPreference:P,watchSystemPreference:V};return b}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var A={light:{"--bg":"#ffffff","--bg-secondary":"#f5f5f5","--text":"#333333","--text-secondary":"#666666","--text-muted":"#999999","--primary":"#42b883","--primary-hover":"#3aa876","--secondary":"#35495e","--success":"#10b981","--warning":"#f59e0b","--error":"#ef4444","--info":"#3b82f6","--border":"#e5e7eb","--shadow":"rgba(0, 0, 0, 0.1)"},dark:{"--bg":"#1a1a1a","--bg-secondary":"#2d2d2d","--text":"#e5e5e5","--text-secondary":"#a3a3a3","--text-muted":"#737373","--primary":"#42b883","--primary-hover":"#3aa876","--secondary":"#94a3b8","--success":"#10b981","--warning":"#f59e0b","--error":"#ef4444","--info":"#3b82f6","--border":"#404040","--shadow":"rgba(0, 0, 0, 0.3)"}};function f(){return document.documentElement}function F(h){return(...a)=>{}}function H(h={}){let{default:a="light",storageKey:b="lyt_theme",themes:p={},onChange:v,autoDetect:P=!0,useDataAttribute:$=!0,cssPrefix:g="--lyt-",debug:w=!1}=h,r=F(w),i={...A,...p},o=a,c={};function C(){try{let e=localStorage.getItem(b);if(e&&i[e])return e}catch(e){}return null}function x(e){try{localStorage.setItem(b,e)}catch(t){}}function T(){var e;return typeof window=="undefined"?"light":(e=window.matchMedia)!=null&&e.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light"}function k(e){if(typeof window=="undefined"||!window.matchMedia)return()=>{};let t=window.matchMedia("(prefers-color-scheme: dark)");function n(s){e(s.matches?"dark":"light")}return t.addEventListener("change",n),()=>t.removeEventListener("change",n)}function l(e){let t=f(),n=i[e];if(!n){r(`theme '${e}' not found`);return}r(`applying theme '${e}'`,n),Object.entries(n).forEach(([s,m])=>{let y=s.startsWith("--")?s:`${g}${s}`;t.style.setProperty(y,m)}),Object.entries(c).forEach(([s,m])=>{let y=s.startsWith("--")?s:`${g}${s}`;t.style.setProperty(y,m)}),$&&t.setAttribute("data-theme",e),t.style.setProperty("color-scheme",e==="dark"?"dark":"light")}function d(e){if(!i[e]){r(`theme '${e}' not found, available:`,Object.keys(i));return}let t=o;t!==e&&(o=e,l(e),x(e),v&&v(e,t),r(`theme changed from '${t}' to '${e}'`))}function E(){let e=Object.keys(i),n=(e.indexOf(o)+1)%e.length;d(e[n])}function V(){d(a)}function O(){return Object.keys(i)}function S(e,t){i[e]=t,r(`added/updated theme '${e}'`,t),o===e&&l(e)}function j(e){if(e===a){r("cannot remove default theme");return}delete i[e],o===e&&d(a),r(`removed theme '${e}'`)}function I(){return i[o]||null}function L(e){return i[e]||null}function M(e,t){let n=e.startsWith("--")?e:`${g}${e}`;c[n]=t,f().style.setProperty(n,t),r(`set variable '${n}' = '${t}'`)}function D(e){let t=e.startsWith("--")?e:`${g}${e}`;delete c[t],f().style.removeProperty(t),r(`cleared variable '${t}'`)}function W(){Object.keys(c).forEach(e=>{f().style.removeProperty(e)}),Object.keys(c).forEach(e=>delete c[e]),l(o),r("cleared all dynamic variables")}function _(){let e=C();if(!e&&P){let t=T();e=i[t]?t:a}e||(e=a),r(`initializing with theme '${e}'`),o=e,l(e)}_();let u={install(e,t){e.config=e.config||{},e.config.globalProperties=e.config.globalProperties||{},e.config.globalProperties.$theme=u,typeof e.provide=="function"&&e.provide("theme",u)},get current(){return o},set:d,toggle:E,reset:V,list:O,addTheme:S,removeTheme:j,getConfig:I,getConfigFor:L,setVariable:M,clearVariable:D,clearVariables:W,getSystemPreference:T,watchSystemPreference:k};return u}export{A as BUILT_IN_THEMES,H as createTheme};
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lytjs/plugin-theme",
|
|
3
|
+
"version": "4.0.5",
|
|
4
|
+
"description": "Lyt.js 主题切换插件 - 支持亮色/暗色主题和自定义主题",
|
|
5
|
+
"main": "./src/index.ts",
|
|
6
|
+
"module": "./src/index.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"import": "./src/index.ts",
|
|
10
|
+
"require": "./src/index.ts",
|
|
11
|
+
"default": "./src/index.ts"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"sideEffects": false,
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"license": "MIT",
|
|
19
|
+
"author": "lytjs",
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "https://gitee.com/lytjs/lytjs"
|
|
23
|
+
},
|
|
24
|
+
"homepage": "https://gitee.com/lytjs/lytjs",
|
|
25
|
+
"keywords": [
|
|
26
|
+
"lyt",
|
|
27
|
+
"lytjs",
|
|
28
|
+
"javascript",
|
|
29
|
+
"framework",
|
|
30
|
+
"frontend",
|
|
31
|
+
"vue-like",
|
|
32
|
+
"lightweight",
|
|
33
|
+
"zero-dependency",
|
|
34
|
+
"theme",
|
|
35
|
+
"dark-mode",
|
|
36
|
+
"color-scheme"
|
|
37
|
+
],
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=18.0.0"
|
|
40
|
+
},
|
|
41
|
+
"publishConfig": {
|
|
42
|
+
"access": "public"
|
|
43
|
+
}
|
|
44
|
+
}
|