@symbo.ls/scratch 3.14.780 → 3.14.782
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/cjs/src/system/color.js +1 -1
- package/dist/cjs/src/system/spacing.js +1 -1
- package/dist/cjs/src/system/theme.js +1 -1
- package/dist/cjs/src/transforms/index.js +1 -1
- package/dist/cjs/src/utils/sequence.js +1 -1
- package/dist/esm/src/system/color.js +1 -1
- package/dist/esm/src/system/spacing.js +1 -1
- package/dist/esm/src/system/theme.js +1 -1
- package/dist/esm/src/transforms/index.js +1 -1
- package/dist/esm/src/utils/sequence.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var M=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var z=Object.prototype.hasOwnProperty;var B=(e,r)=>{for(var t in r)M(e,t,{get:r[t],enumerable:!0})},K=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of Q(r))!z.call(e,o)&&o!==t&&M(e,o,{get:()=>r[o],enumerable:!(n=H(r,o))||n.enumerable});return e};var U=e=>K(M({},"__esModule",{value:!0}),e);var I={};B(I,{STANDARD_SCHEME_QUERIES:()=>P,getColor:()=>S,getMediaColor:()=>N,quietColorProbe:()=>X,resolveColorRgb:()=>v,schemeGuardSelector:()=>j,schemeMediaQuery:()=>O,setAdaptiveSchemeVar:()=>L,setColor:()=>E,setGradient:()=>W});module.exports=U(I);var d=require("@symbo.ls/utils"),R=require("../factory.js"),g=require("../utils/index.js");const P={light:"(prefers-color-scheme: light)",dark:"(prefers-color-scheme: dark)"},O=(e,r)=>{const t=r.media&&r.media[e]||P[e];return t?"@media "+(t==="print"?`${t}`:`screen and ${t}`):null},j=e=>{const r=e.scopeSelector||":root";return`${r===":root"?":root:not([data-theme])":`:root:not([data-theme]) ${r}:not([data-theme])`} &`},y=new Set,J=new Set(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"]),C=new Set,T=e=>{if(!e)return!1;const{color:r,gradient:t}=e;return!!((0,d.isObject)(r)&&Object.keys(r).length||(0,d.isObject)(t)&&Object.keys(t).length)},_=new Set;let D=0;const X=e=>{D++;try{return e()}finally{D--}},Y=(e,r)=>{if(!(0,d.isString)(e)||e.indexOf(" ")===-1)return null;const t=e.replace(/\s+/g,""),n=(0,g.parseColorToken)(t);if(!n||n.passthrough||n.cssVar)return null;const{color:o,gradient:c}=r;return!o[n.name]&&!c[n.name]?null:t},x=(e,r,t)=>{const n=Y(e,t);if(n){if(!_.has(e)){_.add(e);const a=t&&t.name?` (design system \`${t.name}\`)`:"";console.warn(`[scratch] color token \`${e}\` has a space before its alpha/tone modifier${a} \u2014 did you mean \`${n}\`? The space form never resolves, so the atomic class it mints carries no CSS value and paints invisibly. Dropped rather than shipped invisible.`)}return}const o=(0,g.parseColorToken)(e);if(o&&o.name&&!o.passthrough&&!o.cssVar&&(o.alpha!==void 0||o.tone!==void 0)&&T(t)&&!t.color[o.name]&&!t.gradient[o.name]){if(!D&&!C.has(e)){C.add(e);const a=t&&t.name?` (design system \`${t.name}\`)`:"";console.warn(`[scratch] color token \`${e}\` does not resolve${a} \u2014 \`${o.name}\` is not in the palette. Dropped rather than emitted as a raw value, which is invalid CSS the browser discards silently. Define it in designSystem/color.js or use a palette token.`)}return}const c=(0,d.isString)(r)?r.toLowerCase():"";if(!J.has(c)||!T(t))return e;if(!C.has(c)){C.add(c);const a=t&&t.name?` (design system \`${t.name}\`)`:"";console.warn(`[scratch] color \`${e}\` is a CSS named colour that is not in the palette${a}. Dropped rather than emitted as a raw browser colour, which renders theme-blind and can be unreadable ("looks designed", so it ships unnoticed). Define it in designSystem/color.js or use a palette token.`)}},S=(e,r,t)=>{const n=t||(0,R.getActiveConfig)();if(!(0,d.isString)(e)){n.verbose&&console.warn(e,"- type for color is not valid");return}if((0,g.isCSSVar)(e))return`var(${e})`;r&&e[r]&&(e=e[r]);let o,c,a;if((0,d.isArray)(e))[o,c,a]=e;else{const i=(0,g.parseColorToken)(e);if(!i){const{color:h,gradient:V}=n;let b=V[e]||h[e];return b?(r&&b[r]&&(b=b[r]),n.useVariable?`var(${b.var})`:b.value):x(e,e,n)}if(i.passthrough)return i.passthrough;if(i.cssVar)return`var(${i.cssVar})`;o=i.name,c=i.alpha,a=i.tone}const{color:m,gradient:u}=n;let s=m[o]||u[o];if(!s)return x(e,o,n);if(r)if(s[r]!==void 0)s=s[r];else if((0,d.isArray)(s)){const i=r.charCodeAt(0)===64?r.slice(1):r;i==="dark"?s=s[1]!==void 0?s[1]:s[0]:(i!=="light"&&n.verbose&&console.warn(e," - array-form color tokens only support light/dark; falling back to the light slot for scheme",r),s=s[0])}else n.verbose&&console.warn(e," - does not have ",r);if((0,d.isString)(s)){if(y.has(o))return s;y.add(o);try{return S(s,null,t)}finally{y.delete(o)}}let p=s.rgb;if(!p){const i=n.useVariable?`var(${s.var})`:s.value;if((c||a)&&i){const h=c!==void 0?c:1;if(!a)return`rgb(from ${i} r g b / ${h})`;if(a.charCodeAt(0)===43||a.charCodeAt(0)===45){const b=parseFloat(a),f=b<0?"-":"+",l=Math.abs(b);return`rgb(from ${i} calc(r ${f} ${l}) calc(g ${f} ${l}) calc(b ${f} ${l}) / ${h})`}return`hsl(from ${i} h s ${a}% / ${h})`}return i}return a&&!s[a]&&(p=(0,g.getRgbTone)(p,a),s[a]={rgb:p,var:`${s.var}-${a}`}),s[a]&&(p=s[a].rgb),c?`rgba(${p}, ${c})`:a?`rgba(${p}, ${s.alpha!==void 0?s.alpha:1})`:n.useVariable?`var(${s.var})`:s.value!==void 0?s.value:`rgb(${p})`},q=e=>{const r=(0,g.colorStringToRgbaArray)(e);return!r||r.length<3||r[0]===0&&r[1]===0&&r[2]===0&&r[3]===0&&e.toLowerCase()!=="transparent"?null:{rgb:[r[0],r[1],r[2]],alpha:r[3]!==void 0?r[3]:1}},Z=(e,r)=>{if(!r)return e;let t=e.rgb;if(r.tone){const o=(0,g.getRgbTone)(t,r.tone);t=(0,d.isString)(o)?o.split(",").map(c=>parseFloat(c.trim())):o}const n=r.alpha!==void 0?parseFloat(r.alpha):e.alpha;return{rgb:t,alpha:n}},v=(e,r,t)=>{const n=r||(0,R.getActiveConfig)();if(!(0,d.isString)(e))return null;const o=(0,g.parseColorToken)(e);if(o){if(o.passthrough){const h=(0,g.colorStringToRgbaArray)(o.passthrough);return h&&h.length>=3?{rgb:[h[0],h[1],h[2]],alpha:h[3]!==void 0?h[3]:1}:null}if(o.cssVar)return null}const c=o?o.name:e,{color:a,gradient:m}=n;let u=a[c]||m[c];if(!u)return q(e);if((0,d.isString)(u)){let h;if(y.has(c))h=q(u);else{y.add(c);try{h=v(u,n,t)}finally{y.delete(c)}}return h?Z(h,o):null}if(u.rgb===void 0&&(0,d.isObject)(u)){const h=`@${t||"light"}`;u=u[h]!==void 0?u[h]:u["@light"]}if(!u||u.rgb===void 0)return null;let s=u.rgb;o&&o.tone&&(s=(0,g.getRgbTone)(s,o.tone));const p=(0,d.isString)(s)?s.split(",").map(h=>parseFloat(h.trim())):s,i=o&&o.alpha!==void 0?parseFloat(o.alpha):u.alpha!==void 0?u.alpha:1;return{rgb:p,alpha:i}},N=(e,r,t)=>{const n=t||(0,R.getActiveConfig)();if(r||(r=n.globalTheme==="auto"?null:n.globalTheme),!(0,d.isString)(e)){n.verbose&&console.warn(e,"- type for color is not valid");return}if((0,g.isCSSVar)(e))return`var(${e})`;let o,c,a;if((0,d.isArray)(e))o=e[0];else{const i=(0,g.parseColorToken)(e);if(i){if(i.passthrough)return i.passthrough;if(i.cssVar)return`var(${i.cssVar})`;o=i.name,c=i.alpha,a=i.tone}else o=e}const{color:m,gradient:u}=n,s=m[o]||u[o],p=(0,d.isObject)(s);if(p&&s.value)return S(e,`@${r}`,t);if(p){if(n.useVariable&&s.var)return c||a?S(e,null,t):`var(${s.var})`;if(r)return S(e,`@${r}`,t);{const i={},h=j(n);for(const V in s){if(V.charCodeAt(0)!==64)continue;const b=V.slice(1),f=S(e,V,t);if(f!==void 0&&(i[`[data-theme="${b}"] &`]=f,b==="light"||b==="dark")){const l=O(b,n);if(!l)continue;i[l]={[h]:f}}}return i}}else return x(e,o,n)},L=(e,r,t,n)=>{const c=`--${n.varPrefix?n.varPrefix+"-":""}${r}-${t}`;let a;const m={};for(const u in e){if(u.charCodeAt(0)!==64)continue;const s=u.slice(1),p=e[u],i=p&&(p.value||p);!i||typeof i!="string"||(m[s]=i,(s==="light"||a===void 0)&&(a=i))}if(a!==void 0){n.cssVars[c]=a,n.cssMediaVars||(n.cssMediaVars={});for(const u in m){const s=`[data-theme="${u}"]`;if(n.cssMediaVars[s]||(n.cssMediaVars[s]={}),n.cssMediaVars[s][c]=m[u],u==="light"||u==="dark"){const p=`@media (prefers-color-scheme: ${u})`;n.cssMediaVars[p]||(n.cssMediaVars[p]={}),n.cssMediaVars[p][c]=m[u]}}return e.var=c,c}},E=(e,r,t)=>{const n=(0,R.getActiveConfig)();if((0,d.isObject)(e)&&e.value!==void 0&&(e.rgb!==void 0||e.var!==void 0))return n.useVariable&&e.var&&(n.cssVars[e.var]=e.value),e;if((0,d.isString)(e)&&(0,g.isCSSVar)(e)){const f=e.slice(2);if(e=S(f),!(e.includes("rgb")||e.includes("var")||e.includes("#"))){const l=f.split(" ");let $=n.color[l[0]];if($&&!$.value&&!$.rgb&&((0,d.isString)($)||(0,d.isArray)($)||(0,d.isObject)($))&&!y.has(l[0])){y.add(l[0]);try{n.color[l[0]]=E($,l[0])}finally{y.delete(l[0])}$=n.color[l[0]]}if($&&$.value){let w=$.rgb;const A=l[1]!==void 0?l[1]:"1",k=l[2];k&&(w=(0,g.getRgbTone)(w,k)),e=`rgba(${w}, ${A})`}else{const w=l[2],A=l[1]!==void 0?l[1]:"1";if(w)try{const k=(0,g.colorStringToRgbaArray)(l[0]);k&&k.length>=3?e=`rgba(${(0,g.getRgbTone)(k.slice(0,3).join(", "),w)}, ${A})`:e=l[0]}catch{e=l[0]}else e=l[0]}}}if((0,d.isArray)(e)&&(e={"@light":e[0],"@dark":e[1]!==void 0?e[1]:e[0]}),(0,d.isObject)(e)){const f={};for(const l in e)l!=="var"&&(f[l]=E(e[l],r,l.slice(0,1)==="@"?l.slice(1):l));return n.useVariable&&L(f,"color",r,n),f}const c=`--${n.varPrefix?n.varPrefix+"-":""}color-${r}`+(t?`-${t}`:"");let a=e.value||e;if((0,d.isString)(a)&&!a.includes("(")&&!a.startsWith("#")){const f=(0,g.parseColorToken)(a);if(f&&f.name&&!f.passthrough&&!f.cssVar){const l=n.color[f.name];if(l&&!l.value&&!l.rgb&&((0,d.isString)(l)||(0,d.isArray)(l)||(0,d.isObject)(l))&&!y.has(f.name)){y.add(f.name);try{n.color[f.name]=E(l,f.name)}finally{y.delete(f.name)}}const $=n.color[f.name];if($&&$.rgb){let w=$.rgb;f.tone&&(w=(0,g.getRgbTone)(w,f.tone));const A=f.alpha!==void 0?parseFloat(f.alpha):$.alpha!==void 0?$.alpha:1;a=`rgba(${w}, ${A})`}}}const m=(0,g.colorStringToRgbaArray)(a),[u,s,p,i=1]=m,h=parseFloat(i.toFixed(2)),V=`${u}, ${s}, ${p}`,b=`rgba(${V}, ${h})`;return n.useVariable&&(n.cssVars[c]=b),{var:c,rgb:V,alpha:h,value:b}},W=(e,r,t)=>{const n=(0,R.getActiveConfig)();if((0,d.isObject)(e)&&e.value!==void 0&&e.var!==void 0)return n.useVariable&&(n.cssVars[e.var]=e.value),e;if((0,d.isString)(e)&&(0,g.isCSSVar)(e)&&(e=S(e.slice(2))),(0,d.isArray)(e)&&(e={"@light":e[0],"@dark":e[1]!==void 0?e[1]:e[0]}),(0,d.isObject)(e)){const a={};for(const m in e)m!=="var"&&(a[m]=W(e[m],r,m.slice(0,1)==="@"?m.slice(1):m));return n.useVariable&&L(a,"gradient",r,n),a}const c=`--${n.varPrefix?n.varPrefix+"-":""}gradient-${r}`+(t?`-${t}`:"");return n.useVariable&&(n.cssVars[c]=e.value||e),{var:c,value:e.value||e}};
|
|
1
|
+
"use strict";var D=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var Y=Object.prototype.hasOwnProperty;var J=(e,r)=>{for(var t in r)D(e,t,{get:r[t],enumerable:!0})},X=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of N(r))!Y.call(e,s)&&s!==t&&D(e,s,{get:()=>r[s],enumerable:!(n=B(r,s))||n.enumerable});return e};var Z=e=>X(D({},"__esModule",{value:!0}),e);var ie={};J(ie,{STANDARD_SCHEME_QUERIES:()=>H,getColor:()=>V,getMediaColor:()=>oe,isPlainColor:()=>O,quietColorProbe:()=>ee,resolveColorRgb:()=>U,schemeGuardSelector:()=>Q,schemeMediaQuery:()=>K,setAdaptiveSchemeVar:()=>_,setColor:()=>E,setGradient:()=>z});module.exports=Z(ie);var c=require("@symbo.ls/utils"),R=require("../factory.js"),p=require("../utils/index.js");const H={light:"(prefers-color-scheme: light)",dark:"(prefers-color-scheme: dark)"},K=(e,r)=>{const t=r.media&&r.media[e]||H[e];return t?"@media "+(t==="print"?`${t}`:`screen and ${t}`):null},Q=e=>{const r=e.scopeSelector||":root";return`${r===":root"?":root:not([data-theme])":`:root:not([data-theme]) ${r}:not([data-theme])`} &`},w=new Set,x=new Set(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"]),I=/^(?:#[0-9a-f]{3,8}$|(?:rgba?|hsla?|hwb|lab|lch|oklab|oklch|color|color-mix)\()/i,F=/gradient\(|url\(|image-set\(|var\(/i,G=new Set(["transparent","currentColor","currentcolor"]),O=e=>{if(!(0,c.isString)(e))return!1;const r=e.trim();return F.test(r)?!1:I.test(r)?!0:x.has(r)||G.has(r)},C=new Set,P=e=>{if(!e)return!1;const{color:r,gradient:t}=e;return!!((0,c.isObject)(r)&&Object.keys(r).length||(0,c.isObject)(t)&&Object.keys(t).length)},T=new Set;let L=0;const ee=e=>{L++;try{return e()}finally{L--}},re=(e,r)=>{if(!(0,c.isString)(e)||e.indexOf(" ")===-1)return null;const t=e.replace(/\s+/g,""),n=(0,p.parseColorToken)(t);if(!n||n.passthrough||n.cssVar)return null;const{color:s,gradient:a}=r;return!s[n.name]&&!a[n.name]?null:t},M=(e,r,t)=>{const n=re(e,t);if(n){if(!T.has(e)){T.add(e);const i=t&&t.name?` (design system \`${t.name}\`)`:"";console.warn(`[scratch] color token \`${e}\` has a space before its alpha/tone modifier${i} \u2014 did you mean \`${n}\`? The space form never resolves, so the atomic class it mints carries no CSS value and paints invisibly. Dropped rather than shipped invisible.`)}return}const s=(0,p.parseColorToken)(e);if(s&&s.name&&!s.passthrough&&!s.cssVar&&(s.alpha!==void 0||s.tone!==void 0)&&P(t)&&!t.color[s.name]&&!t.gradient[s.name]){if(!L&&!C.has(e)){C.add(e);const i=t&&t.name?` (design system \`${t.name}\`)`:"";console.warn(`[scratch] color token \`${e}\` does not resolve${i} \u2014 \`${s.name}\` is not in the palette. Dropped rather than emitted as a raw value, which is invalid CSS the browser discards silently. Define it in designSystem/color.js or use a palette token.`)}return}const a=(0,c.isString)(r)?r.toLowerCase():"";if(!x.has(a)||!P(t))return e;if(!C.has(a)){C.add(a);const i=t&&t.name?` (design system \`${t.name}\`)`:"";console.warn(`[scratch] color \`${e}\` is a CSS named colour that is not in the palette${i}. Dropped rather than emitted as a raw browser colour, which renders theme-blind and can be unreadable ("looks designed", so it ships unnoticed). Define it in designSystem/color.js or use a palette token.`)}},q=(e,r,t)=>{const n=r!==void 0?r:1;if(!t)return`rgb(from ${e} r g b / ${n})`;if(t.charCodeAt(0)===43||t.charCodeAt(0)===45){const a=parseFloat(t),i=a<0?"-":"+",f=Math.abs(a);return`rgb(from ${e} calc(r ${i} ${f}) calc(g ${i} ${f}) calc(b ${i} ${f}) / ${n})`}return`hsl(from ${e} h s ${t}% / ${n})`},V=(e,r,t)=>{const n=t||(0,R.getActiveConfig)();if(!(0,c.isString)(e)){n.verbose&&console.warn(e,"- type for color is not valid");return}if((0,p.isCSSVar)(e))return`var(${e})`;r&&e[r]&&(e=e[r]);let s,a,i;if((0,c.isArray)(e))[s,a,i]=e;else{const l=(0,p.parseColorToken)(e);if(!l){const{color:g,gradient:k}=n;let $=k[e]||g[e];return $?(r&&$[r]&&($=$[r]),n.useVariable?`var(${$.var})`:$.value):M(e,e,n)}if(l.passthrough)return l.passthrough;if(l.cssVar)return`var(${l.cssVar})`;s=l.name,a=l.alpha,i=l.tone}const{color:f,gradient:d}=n;let o=f[s]||d[s];if(!o)return M(e,s,n);if(r)if(o[r]!==void 0)o=o[r];else if((0,c.isArray)(o)){const l=r.charCodeAt(0)===64?r.slice(1):r;l==="dark"?o=o[1]!==void 0?o[1]:o[0]:(l!=="light"&&n.verbose&&console.warn(e," - array-form color tokens only support light/dark; falling back to the light slot for scheme",r),o=o[0])}else n.verbose&&console.warn(e," - does not have ",r);if((0,c.isString)(o)){if(w.has(s))return o;w.add(s);try{return V(o,null,t)}finally{w.delete(s)}}let m=o.rgb;if(!m){const l=n.useVariable?`var(${o.var})`:o.value;return(a||i)&&l?q(l,a,i):l}return i&&!o[i]&&(m=(0,p.getRgbTone)(m,i),o[i]={rgb:m,var:`${o.var}-${i}`}),o[i]&&(m=o[i].rgb),a?`rgba(${m}, ${a})`:i?`rgba(${m}, ${o.alpha!==void 0?o.alpha:1})`:n.useVariable?`var(${o.var})`:o.value!==void 0?o.value:`rgb(${m})`},j=e=>{const r=(0,p.colorStringToRgbaArray)(e);return!r||r.length<3||r[0]===0&&r[1]===0&&r[2]===0&&r[3]===0&&e.toLowerCase()!=="transparent"?null:{rgb:[r[0],r[1],r[2]],alpha:r[3]!==void 0?r[3]:1}},ne=(e,r)=>{if(!r)return e;let t=e.rgb;if(r.tone){const s=(0,p.getRgbTone)(t,r.tone);t=(0,c.isString)(s)?s.split(",").map(a=>parseFloat(a.trim())):s}const n=r.alpha!==void 0?parseFloat(r.alpha):e.alpha;return{rgb:t,alpha:n}},U=(e,r,t)=>{const n=r||(0,R.getActiveConfig)();if(!(0,c.isString)(e))return null;const s=(0,p.parseColorToken)(e);if(s){if(s.passthrough){const g=(0,p.colorStringToRgbaArray)(s.passthrough);return g&&g.length>=3?{rgb:[g[0],g[1],g[2]],alpha:g[3]!==void 0?g[3]:1}:null}if(s.cssVar)return null}const a=s?s.name:e,{color:i,gradient:f}=n;let d=i[a]||f[a];if(!d)return j(e);if((0,c.isString)(d)){let g;if(w.has(a))g=j(d);else{w.add(a);try{g=U(d,n,t)}finally{w.delete(a)}}return g?ne(g,s):null}if(d.rgb===void 0&&(0,c.isObject)(d)){const g=`@${t||"light"}`;d=d[g]!==void 0?d[g]:d["@light"]}if(!d||d.rgb===void 0)return null;let o=d.rgb;s&&s.tone&&(o=(0,p.getRgbTone)(o,s.tone));const m=(0,c.isString)(o)?o.split(",").map(g=>parseFloat(g.trim())):o,l=s&&s.alpha!==void 0?parseFloat(s.alpha):d.alpha!==void 0?d.alpha:1;return{rgb:m,alpha:l}},W=e=>(0,c.isObject)(e)&&e.value!==void 0&&(e.rgb!==void 0||e.var!==void 0),v=e=>{if(!(0,c.isObject)(e)||e.value!==void 0)return null;const r=[];for(const t in e)if(t!=="var"){if(t.charCodeAt(0)!==64||!W(e[t]))return null;r.push(t.slice(1))}return r.length?r:null},te=e=>(0,c.isString)(e&&e.var)&&v(e)!==null,se=(e,r,t,n,s)=>{const a=v(r);if(!a)return;if((0,c.isString)(r.var)){const d=`var(${r.var})`;return t||n?q(d,t,n):d}if(a.length!==2||!a.includes("light")||!a.includes("dark"))return;const i=V(e,"@light",s),f=V(e,"@dark",s);if(!(!O(i)||!O(f)))return i===f?i:`light-dark(${i}, ${f})`},oe=(e,r,t)=>{const n=t||(0,R.getActiveConfig)();if(r||(r=n.globalTheme==="auto"?null:n.globalTheme),!(0,c.isString)(e)){n.verbose&&console.warn(e,"- type for color is not valid");return}if((0,p.isCSSVar)(e))return`var(${e})`;let s,a,i;if((0,c.isArray)(e))s=e[0];else{const l=(0,p.parseColorToken)(e);if(l){if(l.passthrough)return l.passthrough;if(l.cssVar)return`var(${l.cssVar})`;s=l.name,a=l.alpha,i=l.tone}else s=e}const{color:f,gradient:d}=n,o=f[s]||d[s],m=(0,c.isObject)(o);if(m&&o.value)return V(e,`@${r}`,t);if(m){if(n.useVariable&&o.var)return a||i?V(e,null,t):`var(${o.var})`;if(r){if(!n.useVariable&&f[s]===o){const l=se(e,o,a,i,t);if(l!==void 0)return l}return V(e,`@${r}`,t)}else{const l={},g=Q(n);for(const k in o){if(k.charCodeAt(0)!==64)continue;const $=k.slice(1),h=V(e,k,t);if(h!==void 0&&(l[`[data-theme="${$}"] &`]=h,$==="light"||$==="dark")){const u=K($,n);if(!u)continue;l[u]={[g]:h}}}return l}}else return M(e,s,n)},_=(e,r,t,n)=>{const a=`--${n.varPrefix?n.varPrefix+"-":""}${r}-${t}`;let i;const f={};for(const d in e){if(d.charCodeAt(0)!==64)continue;const o=d.slice(1),m=e[d],l=m&&(m.value||m);!l||typeof l!="string"||(f[o]=l,(o==="light"||i===void 0)&&(i=l))}if(i!==void 0){n.cssVars[a]=i,n.cssMediaVars||(n.cssMediaVars={});for(const d in f){const o=`[data-theme="${d}"]`;if(n.cssMediaVars[o]||(n.cssMediaVars[o]={}),n.cssMediaVars[o][a]=f[d],d==="light"||d==="dark"){const m=`@media (prefers-color-scheme: ${d})`;n.cssMediaVars[m]||(n.cssMediaVars[m]={}),n.cssMediaVars[m][a]=f[d]}}return e.var=a,a}},E=(e,r,t)=>{const n=(0,R.getActiveConfig)();if(W(e))return n.useVariable&&e.var&&(n.cssVars[e.var]=e.value),e;if(!n.useVariable&&te(e))return e;if((0,c.isString)(e)&&(0,p.isCSSVar)(e)){const h=e.slice(2);if(e=V(h),!(e.includes("rgb")||e.includes("var")||e.includes("#"))){const u=h.split(" ");let b=n.color[u[0]];if(b&&!b.value&&!b.rgb&&((0,c.isString)(b)||(0,c.isArray)(b)||(0,c.isObject)(b))&&!w.has(u[0])){w.add(u[0]);try{n.color[u[0]]=E(b,u[0])}finally{w.delete(u[0])}b=n.color[u[0]]}if(b&&b.value){let y=b.rgb;const A=u[1]!==void 0?u[1]:"1",S=u[2];S&&(y=(0,p.getRgbTone)(y,S)),e=`rgba(${y}, ${A})`}else{const y=u[2],A=u[1]!==void 0?u[1]:"1";if(y)try{const S=(0,p.colorStringToRgbaArray)(u[0]);S&&S.length>=3?e=`rgba(${(0,p.getRgbTone)(S.slice(0,3).join(", "),y)}, ${A})`:e=u[0]}catch{e=u[0]}else e=u[0]}}}if((0,c.isArray)(e)&&(e={"@light":e[0],"@dark":e[1]!==void 0?e[1]:e[0]}),(0,c.isObject)(e)){const h={};for(const u in e)u!=="var"&&(h[u]=E(e[u],r,u.slice(0,1)==="@"?u.slice(1):u));return n.useVariable&&_(h,"color",r,n),h}const a=`--${n.varPrefix?n.varPrefix+"-":""}color-${r}`+(t?`-${t}`:"");let i=e.value||e;if((0,c.isString)(i)&&!i.includes("(")&&!i.startsWith("#")){const h=(0,p.parseColorToken)(i);if(h&&h.name&&!h.passthrough&&!h.cssVar){const u=n.color[h.name];if(u&&!u.value&&!u.rgb&&((0,c.isString)(u)||(0,c.isArray)(u)||(0,c.isObject)(u))&&!w.has(h.name)){w.add(h.name);try{n.color[h.name]=E(u,h.name)}finally{w.delete(h.name)}}const b=n.color[h.name];if(b&&b.rgb){let y=b.rgb;h.tone&&(y=(0,p.getRgbTone)(y,h.tone));const A=h.alpha!==void 0?parseFloat(h.alpha):b.alpha!==void 0?b.alpha:1;i=`rgba(${y}, ${A})`}}}const f=(0,p.colorStringToRgbaArray)(i),[d,o,m,l=1]=f,g=parseFloat(l.toFixed(2)),k=`${d}, ${o}, ${m}`,$=`rgba(${k}, ${g})`;return n.useVariable&&(n.cssVars[a]=$),{var:a,rgb:k,alpha:g,value:$}},z=(e,r,t)=>{const n=(0,R.getActiveConfig)();if((0,c.isObject)(e)&&e.value!==void 0&&e.var!==void 0)return n.useVariable&&(n.cssVars[e.var]=e.value),e;if((0,c.isString)(e)&&(0,p.isCSSVar)(e)&&(e=V(e.slice(2))),(0,c.isArray)(e)&&(e={"@light":e[0],"@dark":e[1]!==void 0?e[1]:e[0]}),(0,c.isObject)(e)){const i={};for(const f in e)f!=="var"&&(i[f]=z(e[f],r,f.slice(0,1)==="@"?f.slice(1):f));return n.useVariable&&_(i,"gradient",r,n),i}const a=`--${n.varPrefix?n.varPrefix+"-":""}gradient-${r}`+(t?`-${t}`:"");return n.useVariable&&(n.cssVars[a]=e.value||e),{var:a,value:e.value||e}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var p=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var G=Object.prototype.hasOwnProperty;var B=(t,e)=>{for(var n in e)p(t,n,{get:e[n],enumerable:!0})},C=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let
|
|
1
|
+
"use strict";var p=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var G=Object.prototype.hasOwnProperty;var B=(t,e)=>{for(var n in e)p(t,n,{get:e[n],enumerable:!0})},C=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of q(e))!G.call(t,o)&&o!==n&&p(t,o,{get:()=>e[o],enumerable:!(s=I(e,o))||s.enumerable});return t};var f=t=>C(p({},"__esModule",{value:!0}),t);var M={};B(M,{applySpacingSequence:()=>A,checkIfBoxSize:()=>y,getSpacingBasedOnRatio:()=>N,getSpacingByKey:()=>h,splitSpacedValue:()=>F});module.exports=f(M);var m=require("@symbo.ls/utils"),a=require("@symbo.ls/utils"),g=require("../factory.js"),i=require("../utils/index.js");const b=t=>{const n=(0,g.getActiveConfig)().spacing||{},s=parseFloat(t.spacingRatio),o={...n,ratio:Number.isFinite(s)?s:n.ratio,sequence:{},scales:{}};return(0,i.generateSequence)(o),o},k=t=>{for(const e in t){const n=t[e];if(!(e.slice(0,1)==="@"))continue;const{type:o,base:r,ratio:c,range:u,subSequence:S,h1Matches:l,unit:d}=t;(0,a.merge)(n,{type:o,base:r,ratio:c,range:u,subSequence:S,h1Matches:l,unit:d,sequence:{},scales:{},templates:{},vars:{}}),(0,i.generateSequence)(n),(0,i.applyMediaSequenceVars)(t,e)}},y=t=>{const e=t.toLowerCase(),n=e.includes("width")||e.includes("height"),s=e.includes("border")||e.includes("outline");return n&&!s},A=()=>{const t=(0,g.getActiveConfig)(),{spacing:e}=t;(0,i.generateSequence)(e),(0,i.applySequenceVars)(e),k(e)},V=t=>{const e=(0,g.getActiveConfig)(),{spacing:n}=e;return!t||!t.sequence?n:Object.keys(t.sequence).length>0?t:(0,i.generateSequence)(t)},h=(t,e="padding",n,s)=>{const o=V(n);if((0,a.isString)(t)){if(!s&&/^(?:env|var)\(/.test(t.trim()))return{[e]:t};if(!s&&t.includes("(")){const c=(0,i.getFnPrefixAndValue)(t);s=c[0],t=c[1]}}const r=s?[t]:(0,a.isString)(t)&&t.includes("(")?(0,i.splitTopLevelSpaces)(t):(0,m.arrayzeValue)(t);if((0,a.isArray)(r)){if(r.length>1){let c="";e==="borderWidth"&&(e="border",c="Width");const u={2:["Block","Inline"],3:["BlockStart","Inline","BlockEnd"],4:["BlockStart","InlineEnd","BlockEnd","InlineStart"]},S=(l,d)=>(0,i.getSequenceValuePropertyPair)(r[d],e+l+c,o,s);return u[r.length].map((l,d)=>S(l,d))}return(0,i.getSequenceValuePropertyPair)(t,e,o,s)}},N=(t,e,n,s)=>{const o=(0,g.getActiveConfig)(),{spacing:r}=o;let c=n||t[e];if(!s&&(0,a.isString)(c)&&/^(?:env|var)\(/.test(c.trim()))return{[e]:c};if(!s&&(0,a.isString)(c)&&c.includes("(")){const u=(0,i.getFnPrefixAndValue)(c);s=u[0],c=u[1]}if(t.spacingRatio){const u=b(t);return h(c,e,u,s)}return h(c,e,r,s)},F=t=>{const e=n=>{const s=["+","-","*","/"].includes(n),o=i.CSS_UNITS.some(c=>t.includes(c));return s||o?n:n.length<3&&/[A-Z]/.test(n)?n+"_default":n};return t.split(",").map(n=>n.trim()).map(e).join(",").split(" ").map(e).join(" ")};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var x=Object.defineProperty;var J=Object.getOwnPropertyDescriptor;var X=Object.getOwnPropertyNames;var Y=Object.prototype.hasOwnProperty;var K=(e,n)=>{for(var o in n)x(e,o,{get:n[o],enumerable:!0})},N=(e,n,o,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of X(n))!Y.call(e,i)&&i!==o&&x(e,i,{get:()=>n[i],enumerable:!(r=J(n,i))||r.enumerable});return e};var F=e=>N(x({},"__esModule",{value:!0}),e);var le={};K(le,{getMediaTheme:()=>M,getTheme:()=>oe,setMediaTheme:()=>A,setTheme:()=>ie});module.exports=F(le);var $=require("./color.js"),B=require("./shadow.js"),T=require("./border.js"),O=require("../factory.js"),V=require("../utils/color.js"),a=require("@symbo.ls/utils");const G=new Set(["black","white","red","green","blue","yellow","orange","purple","pink","brown","gray","grey","cyan","magenta","lime","olive","navy","teal","aqua","maroon","silver","fuchsia","transparent","currentColor","currentcolor","inherit","initial","unset","none","aliceblue","antiquewhite","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","gainsboro","ghostwhite","gold","goldenrod","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","oldlace","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","plum","powderblue","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","rebeccapurple"]),L=["color","Color","background","Background","fill","Fill","stroke","Stroke"],D=e=>{for(let n=0;n<L.length;n++)if(e.includes(L[n]))return!0;return!1},I={boxShadow:B.resolveShadowValue,textShadow:B.resolveShadowValue,border:T.resolveBorderValue,borderTop:T.resolveBorderValue,borderRight:T.resolveBorderValue,borderBottom:T.resolveBorderValue,borderLeft:T.resolveBorderValue,outline:T.resolveBorderValue,columnRule:T.resolveBorderValue},ee=e=>{if(!e)return!1;const n=(0,V.parseColorToken)(e);return!n||!n.name||n.passthrough||n.cssVar?!1:n.alpha!==void 0||n.tone!==void 0},W=new Set,ne=(e,n,o,r,i,l)=>{if(!(0,a.isLoudDevRuntime)())return;const c=`${e}::${n}::${o||""}::${r}`;W.has(c)||(W.add(c),console.warn(`[smbls/scratch] theme param "${n}" on "${e}"`+(o?` (${o})`:"")+` did not fully resolve: "${r}" -> "${i}" still contains the unresolved token "${l}". This is not valid CSS \u2014 the browser will drop the whole declaration. Register "${l}" as a design-system color token or fix the typo.`))},_=(e,n,o,r)=>{const i=I[n];if(!i)return(0,$.getColor)(o,r);let l=null;const c=i(o,r,b=>{!l&&ee(b)&&(l=b)});return l&&ne(e,n,r,o,c,l),c},oe=(e,n)=>M(e,n),re=e=>(0,a.isObject)(e)&&(0,a.isObjectLike)(e.value),te=e=>{for(const n in e){const o=e[n];if((0,a.isString)(o)&&o.startsWith("var(--"))return!0}return!1},ie=(e,n)=>{const o=(0,O.getActiveConfig)();return re(e)?!o.useVariable&&te(e)?e:A(e.value,n):A(e,n)},z=(e,n)=>{const o=new Set;for(const r of n){const i=r.slice(0,1);if(!(i==="@"||i==="."||i===":")&&D(r))for(const l in e){if(o.has(l))continue;const c=e[l]?.[r];if(c===void 0)continue;const b=(0,$.getColor)(c,`@${l}`);b!==void 0&&(0,a.isString)(b)&&/^[a-z][a-zA-Z]+$/.test(b)&&!G.has(b)&&o.add(l)}}return o},se=e=>e.startsWith("[data-theme=")||e.startsWith("@media"),R=(e,n)=>{for(const o in n){const r=n[o];(0,a.isObject)(r)?R(e[o]||(e[o]={}),r):e[o]=r}return e},H=(e,n,o,r)=>{if(R(e,{[`[data-theme="${n}"] &`]:o}),n!=="light"&&n!=="dark")return;const i=(0,$.schemeMediaQuery)(n,r);i&&R(e,{[i]:{[(0,$.schemeGuardSelector)(r)]:o}})},U=(e,n,o,r)=>{const i=o.globalTheme!==void 0?o.globalTheme:"auto",l=i&&i!=="auto"?String(i).replace(/^'|'$/g,""):null,c=new Set(r?Object.keys(r):[]);for(const u in e)if(e[u])for(const s of Object.keys(e[u]))c.add(s);const b=z(e,c),f={};for(const u of c){const s=u.slice(0,1);if(s==="@")continue;if(s==="."||s===":"){const d={};for(const S in e)(0,a.isObjectLike)(e[S]?.[u])&&(d[S]=e[S][u]);const h=r&&(0,a.isObjectLike)(r[u])?r[u]:void 0;if(!Object.keys(d).length&&!h)continue;const y=s==="."?u.slice(1):u.replace(/^:+/,"");f[u]=U(d,`${n}-${y}`,o,h);continue}const t=r&&!(0,a.isObjectLike)(r[u])?r[u]:void 0,g=new Set(Object.keys(e));t!==void 0&&(g.add("light"),g.add("dark"),l&&g.add(l));const p={};let k;for(const d of g){if(b.has(d))continue;let h=e[d]?.[u];if((h===void 0||(0,a.isObjectLike)(h))&&(h=t),h===void 0)continue;const y=_(n,u,h,`@${d}`);y!==void 0&&(p[d]=y,(l&&d===l||!l&&(d==="light"||k===void 0))&&(k=y))}const m={},w=Object.keys(p).filter(d=>p[d]!==k);if(w.length){const d=p.light!==void 0?p.light:k,h=p.dark!==void 0?p.dark:k;if(D(u)&&(0,$.isPlainColor)(d)&&(0,$.isPlainColor)(h)){m[u]=d===h?d:`light-dark(${d}, ${h})`;for(const y in p)y==="light"||y==="dark"||H(m,y,{[u]:p[y]},o)}else{k!==void 0&&(m[u]=k);for(const y of w)H(m,y,{[u]:p[y]},o)}}else{if(k===void 0)continue;m[u]=k}R(f,m),f[`.${u}`]=m}return(f.background||f.color||f.backgroundColor)&&(f[".inversed"]={color:f.background||f.backgroundColor,background:f.color}),f},E=(e,n,o,r)=>{const{cssVars:i}=o;o.cssMediaVars||(o.cssMediaVars={});const l=o.cssMediaVars,c=o.globalTheme!==void 0?o.globalTheme:"auto",b=c&&c!=="auto"?String(c).replace(/^'|'$/g,""):null,f={},u=new Set(r?Object.keys(r):[]);for(const t in e)if(e[t])for(const g of Object.keys(e[t]))u.add(g);const s=z(e,u);for(const t of u){const g=t.slice(0,1),p=(0,a.isObjectLike)(r?.[t])||Object.values(e).some(k=>(0,a.isObjectLike)(k?.[t]));if(g==="."&&p){const k=t.slice(1),m={};for(const d in e)(0,a.isObjectLike)(e[d]?.[t])&&(m[d]=e[d][t]);const w=(0,a.isObjectLike)(r?.[t])?r[t]:void 0;f[t]=E(m,`${n}-${k}`,o,w)}else if(g===":"&&p){const k=t.replace(/^:+/,""),m={};for(const d in e)(0,a.isObjectLike)(e[d]?.[t])&&(m[d]=e[d][t]);const w=(0,a.isObjectLike)(r?.[t])?r[t]:void 0;f[t]=E(m,`${n}-${k}`,o,w)}else if(g!=="@"&&g!=="."&&g!==":"){const m=`--${o.varPrefix?o.varPrefix+"-":""}theme-${n}-${t}`,w=r&&!(0,a.isObjectLike)(r[t])?r[t]:void 0,d=new Set(Object.keys(e));w!==void 0&&(d.add("light"),d.add("dark"),b&&d.add(b));let h,y=!1;for(const S of d){if(s.has(S))continue;let j=e[S]?.[t];if((j===void 0||(0,a.isObjectLike)(j))&&(j=w),j===void 0)continue;const v=_(n,t,j,`@${S}`);if(v===void 0)continue;y=!0,(b&&S===b||!b&&(S==="light"||h===void 0))&&(h=v);const C=`[data-theme="${S}"]`;if(l[C]||(l[C]={}),l[C][m]=v,S==="dark"||S==="light"){const q=`@media (prefers-color-scheme: ${S})`;l[q]||(l[q]={}),l[q][m]=v}}if(h!==void 0&&(i[m]=h),!y)continue;f[t]=`var(${m})`,f[`.${t}`]={[t]:f[t]}}}return(f.background||f.color||f.backgroundColor)&&(f[".inversed"]={color:f.background||f.backgroundColor,background:f.color}),f},A=(e,n,o,r)=>{const i=(0,O.getActiveConfig)(),{cssVars:l}=i,c={value:e},b=!o&&!r;let f,u;if((0,a.isObjectLike)(e)){if(b&&i.useVariable){const s={},t={};for(const g in e)g.startsWith("@")?(0,a.isObjectLike)(e[g])&&(s[g.slice(1)]=e[g]):t[g]=e[g];(Object.keys(s).length||Object.keys(t).length)&&(u=E(s,n,i,t),Object.assign(c,u))}else if(b){const s={},t={};for(const g in e)g.startsWith("@")?(0,a.isObjectLike)(e[g])&&(s[g.slice(1)]=e[g]):t[g]=e[g];f=U(s,n,i,t),Object.assign(c,f)}for(const s in e){const t=s.slice(0,1),g=e[s];if(t==="@"||t===":"||t==="."){const p=t==="@"&&s;c[s]=A(g,n,s,r||p)}else if(!b){const p=_(n,s,g,r),k=[...new Set([r,o].filter(h=>h).map(h=>h.slice(1)))],m=k.length?"-"+k.join("-"):"",d=`--${i.varPrefix?i.varPrefix+"-":""}theme-${n}${m}-${s}`;i.useVariable?(i.useThemeSuffixedVars&&(l[d]=p),c[s]=`var(${d})`):c[s]=p,c[`.${s}`]={[s]:c[s]}}}if(f)for(const s in f){const t=s.slice(0,1);(t==="."||t===":")&&(0,a.isObjectLike)(e[s])&&(c[s]=f[s])}if(u)for(const s in u){const t=s.slice(0,1);(t==="."||t===":")&&(0,a.isObjectLike)(e[s])&&(c[s]=u[s])}!c[".inversed"]&&(c.background||c.color||c.backgroundColor)&&(c[".inversed"]={color:c.background||c.backgroundColor,background:c.color})}if((0,a.isString)(e)&&(0,V.isCSSVar)(e)){const t=i.theme[e.slice(2)];return M(t,r)}return c},P=(e,n)=>{const o={};for(const r in e){const i=r.slice(0,1);if((0,a.isObjectLike)(e[r]))if(n&&se(r))o[r]=R({},e[r]);else{if(i==="@")continue;i===":"?o[`&${r}`]=P(e[r],n):i==="."&&(o[`&${r}`]=P(e[r],n))}else o[r]=e[r]}return o},Q=(e,n)=>{const o=n.shift();return e[o]?Q(e[o],n):e},Z=(e,n)=>(0,a.isArray)(n)?Q(e,n):(0,a.isString)(n)&&e[n]?e[n]:e,ce=(e,n)=>(0,a.isString)(e)&&(0,V.isCSSVar)(e)?M(e.slice(2)):e,ae=e=>ce(e,ae),M=(e,n)=>{const o=(0,O.getActiveConfig)();if((0,a.isString)(e)&&(0,V.isCSSVar)(e)&&(e=M(e.slice(2))),!e||!(0,a.isString)(e)){o.verbose&&console.warn(`${e} - Theme is not a string`);return}const[r,...i]=(0,a.isArray)(e)?e:e.split(" ");let l=o.theme[r];return l&&i.length?l=Z(l,i):l&&n&&(l=Z(l,n)),P(l,!o.useVariable)};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var m=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var R=(r,t)=>{for(var e in t)m(r,e,{get:t[e],enumerable:!0})},T=(r,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of C(t))!E.call(r,n)&&n!==e&&m(r,n,{get:()=>t[n],enumerable:!(i=B(t,n))||i.enumerable});return r};var O=r=>T(m({},"__esModule",{value:!0}),r);var b={};R(b,{resolveColorsInGradient:()=>g,splitTransition:()=>L,transformBackgroundImage:()=>V,transformBorder:()=>G,transformBorderRadius:()=>D,transformBoxShadow:()=>z,transformDuration:()=>K,transformGridTemplate:()=>F,transformShadow:()=>_,transformSize:()=>h,transformSizeRatio:()=>W,transformTextStroke:()=>I,transformTransition:()=>j,transfromGap:()=>$});module.exports=O(b);var f=require("@symbo.ls/utils"),d=require("../factory.js"),s=require("../system/index.js"),o=require("../utils/index.js");const A=new Set(["to","top","bottom","left","right","center","at","circle","ellipse","closest-side","farthest-side","closest-corner","farthest-corner"]),S=/^-?[A-Z][0-9]?$/,G=r=>(0,s.resolveBorderValue)(r),I=r=>{if((0,f.isString)(r))return o.CSS_NATIVE_COLOR_REGEX.test(r)?r:r.split(/\s+/).map(t=>{if(t=t.trim(),!t)return"";if((0,o.isCSSVar)(t))return`var(${t})`;if(/^\d/.test(t)||t.includes("px")||t==="0")return t;const e=(0,s.getColor)(t);return(0,o.isResolvedColor)(e)?e:t}).join(" ")},_=(r,t)=>(0,s.getShadow)(r,t),z=(r,t)=>{if((0,f.isString)(r))return o.CSS_NATIVE_COLOR_REGEX.test(r)?r:(0,o.splitTopLevelCommas)(r).map(e=>(e=e.trim(),e?e.split(/\s+/).map(i=>{if(i=i.trim(),!i)return"";if((0,o.isCSSVar)(i))return`var(${i})`;if(i==="inset"||i==="none")return i;const n=(0,s.getColor)(i);if((0,o.isResolvedColor)(n)){const l=(0,s.getMediaColor)(i,t);return(0,f.isObject)(l)?Object.values(l).filter(p=>p.includes(": "+t))[0]:l}if(/^\d/.test(i)||i==="0"||i.includes("px")||i.slice(-2)==="em")return i;const u=(0,s.getSpacingByKey)(i,"shadow");return u&&u.shadow?u.shadow:i}).join(" "):"")).join(", ")},g=(r,t)=>{const e=r.indexOf("(");if(e===-1)return r;const i=r.slice(0,e+1),n=r.slice(e+1,r.lastIndexOf(")")),u=")",p=(0,o.splitTopLevelCommas)(n).map(a=>(a=a.trim(),a.split(/\s+/).map(c=>{if(!c||/^\d/.test(c)||c==="0"||A.has(c)||c==="transparent"||o.CSS_NATIVE_COLOR_REGEX.test(c))return c;const x=(0,s.getColor)(c);return(0,o.isResolvedColor)(x)?x:c}).join(" ")));return i+p.join(", ")+u},V=(r,t)=>{if(!(0,f.isString)(r))return;const e=(0,d.getActiveConfig)();return(0,o.splitTopLevelCommas)(r).map(i=>{const n=i.trim();if((0,o.isCSSVar)(n))return`var(${n})`;if(/^var\(/.test(n)||n.includes("url"))return n;if(e.gradient?.[n]){const u=(0,s.getMediaColor)(n,t);if((0,f.isString)(u))return u;if((0,f.isObject)(u)){for(const l in u)if((0,f.isString)(u[l]))return u[l]}return n}return n.includes("gradient")?g(n,t):n.includes("/")||n.startsWith("http")||n.includes(".")&&!(0,o.parseColorToken)(n)?`url(${n})`:n}).join(", ")},$=r=>(0,f.isString)(r)&&
|
|
1
|
+
"use strict";var m=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var R=(r,t)=>{for(var e in t)m(r,e,{get:t[e],enumerable:!0})},T=(r,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of C(t))!E.call(r,n)&&n!==e&&m(r,n,{get:()=>t[n],enumerable:!(i=B(t,n))||i.enumerable});return r};var O=r=>T(m({},"__esModule",{value:!0}),r);var b={};R(b,{resolveColorsInGradient:()=>g,splitTransition:()=>L,transformBackgroundImage:()=>V,transformBorder:()=>G,transformBorderRadius:()=>D,transformBoxShadow:()=>z,transformDuration:()=>K,transformGridTemplate:()=>F,transformShadow:()=>_,transformSize:()=>h,transformSizeRatio:()=>W,transformTextStroke:()=>I,transformTransition:()=>j,transfromGap:()=>$});module.exports=O(b);var f=require("@symbo.ls/utils"),d=require("../factory.js"),s=require("../system/index.js"),o=require("../utils/index.js");const A=new Set(["to","top","bottom","left","right","center","at","circle","ellipse","closest-side","farthest-side","closest-corner","farthest-corner"]),S=/^-?[A-Z][0-9]?$/,G=r=>(0,s.resolveBorderValue)(r),I=r=>{if((0,f.isString)(r))return o.CSS_NATIVE_COLOR_REGEX.test(r)?r:r.split(/\s+/).map(t=>{if(t=t.trim(),!t)return"";if((0,o.isCSSVar)(t))return`var(${t})`;if(/^\d/.test(t)||t.includes("px")||t==="0")return t;const e=(0,s.getColor)(t);return(0,o.isResolvedColor)(e)?e:t}).join(" ")},_=(r,t)=>(0,s.getShadow)(r,t),z=(r,t)=>{if((0,f.isString)(r))return o.CSS_NATIVE_COLOR_REGEX.test(r)?r:(0,o.splitTopLevelCommas)(r).map(e=>(e=e.trim(),e?e.split(/\s+/).map(i=>{if(i=i.trim(),!i)return"";if((0,o.isCSSVar)(i))return`var(${i})`;if(i==="inset"||i==="none")return i;const n=(0,s.getColor)(i);if((0,o.isResolvedColor)(n)){const l=(0,s.getMediaColor)(i,t);return(0,f.isObject)(l)?Object.values(l).filter(p=>p.includes(": "+t))[0]:l}if(/^\d/.test(i)||i==="0"||i.includes("px")||i.slice(-2)==="em")return i;const u=(0,s.getSpacingByKey)(i,"shadow");return u&&u.shadow?u.shadow:i}).join(" "):"")).join(", ")},g=(r,t)=>{const e=r.indexOf("(");if(e===-1)return r;const i=r.slice(0,e+1),n=r.slice(e+1,r.lastIndexOf(")")),u=")",p=(0,o.splitTopLevelCommas)(n).map(a=>(a=a.trim(),a.split(/\s+/).map(c=>{if(!c||/^\d/.test(c)||c==="0"||A.has(c)||c==="transparent"||o.CSS_NATIVE_COLOR_REGEX.test(c))return c;const x=(0,s.getColor)(c);return(0,o.isResolvedColor)(x)?x:c}).join(" ")));return i+p.join(", ")+u},V=(r,t)=>{if(!(0,f.isString)(r))return;const e=(0,d.getActiveConfig)();return(0,o.splitTopLevelCommas)(r).map(i=>{const n=i.trim();if((0,o.isCSSVar)(n))return`var(${n})`;if(/^var\(/.test(n)||n.includes("url"))return n;if(e.gradient?.[n]){const u=(0,s.getMediaColor)(n,t);if((0,f.isString)(u))return u;if((0,f.isObject)(u)){for(const l in u)if((0,f.isString)(u[l]))return u[l]}return n}return n.includes("gradient")?g(n,t):n.includes("/")||n.startsWith("http")||n.includes(".")&&!(0,o.parseColorToken)(n)?`url(${n})`:n}).join(", ")},$=r=>(0,f.isString)(r)&&(0,o.splitTopLevelSpaces)(r).map(t=>(0,s.getSpacingByKey)(t,"gap").gap).join(" "),F=r=>{if(!(0,f.isString)(r))return r;const t=(0,d.getActiveConfig)();return(0,o.splitTopLevelSpaces)(r).map(e=>S.test(e)?(0,o.getSequenceValue)(e,t.spacing):e).join(" ")},j=r=>{if(!(0,f.isString)(r))return;const t=r.split(" ");return t.length?t.map(e=>(0,o.isCSSVar)(e)?`var(${e})`:e.length<3||e.includes("ms")?(0,s.getTimingByKey)(e).timing||e:(0,s.getTimingFunction)(e)?(0,s.getTimingFunction)(e):e).join(" "):r},K=(r,t,e)=>{if((0,f.isString)(r))return r.split(",").map(i=>(0,s.getTimingByKey)(i).timing||i).join(",")},L=r=>{if(!(0,f.isString)(r))return;const t=r.split(",");if(t.length)return t.map(j).join(",")};function h(r,t,e={},i={}){let n=f.exec.call(this,t||e[r]);if(n==null)return;let u;if((0,f.isString)(n)){if(/^(?:env|var)\(/.test(n.trim()))return{[r]:n};if(n.includes("(")){const a=(0,o.getFnPrefixAndValue)(n);u=a[0],n=a[1]}const l=e.scaleBoxSize,p=(0,s.checkIfBoxSize)(r);!l&&p&&!i.ratio&&(n=(0,s.splitSpacedValue)(n))}return i.ratio?(0,s.getSpacingBasedOnRatio)(e,r,n,u):(0,s.getSpacingByKey)(n,r,void 0,u)}const W=(r,t=null,e)=>h(r,t,e,{ratio:!0}),q=(r,t,e)=>(0,f.isString)(r)?(0,o.splitTopLevelSpaces)(r).map(i=>S.test(i)?(0,s.getSpacingBasedOnRatio)(t,e,i)[e]:i).join(" "):r,D=(r,t,e,i="borderRadius")=>{if((0,f.isString)(r))return{[i]:(0,o.splitTopLevelSpaces)(r).map(n=>{const u=(0,s.getShapeByKey)(n);return u!==void 0?q(u,t,e):(0,s.getSpacingBasedOnRatio)(t,e,n)[e]}).join(" ")}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var M=Object.defineProperty;var
|
|
1
|
+
"use strict";var M=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var H=Object.prototype.hasOwnProperty;var W=(t,n)=>{for(var e in n)M(t,e,{get:n[e],enumerable:!0})},B=(t,n,e,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of k(n))!H.call(t,r)&&r!==e&&M(t,r,{get:()=>n[r],enumerable:!(s=G(n,r))||s.enumerable});return t};var Z=t=>B(M({},"__esModule",{value:!0}),t);var st={};W(st,{findHeadingLetter:()=>F,findHeadings:()=>rt,generateSequence:()=>tt,generateSequencePosition:()=>nt,generateSubSequence:()=>I,getFnPrefixAndValue:()=>z,getSequenceValue:()=>U,getSequenceValueBySymbols:()=>K,getSequenceValuePropertyPair:()=>et,getSubratio:()=>P,getSubratioDifference:()=>R,numToLetterMap:()=>S,setScalingVar:()=>O,setSubScalingVar:()=>D});module.exports=Z(st);var w=require("@symbo.ls/utils"),N=require("@symbo.ls/utils"),E=require("@symbo.ls/utils"),C=require("../factory.js"),y=require("./unit.js"),j=require("./color.js");const S={"-6":"U","-5":"V","-4":"W","-3":"X","-2":"Y","-1":"Z",0:"A",1:"B",2:"C",3:"D",4:"E",5:"F",6:"G",7:"H",8:"I",9:"J",10:"K",11:"L",12:"M",13:"N",14:"O",15:"P",16:"Q",17:"R",18:"S",19:"T"},A=(t,n)=>{const{key:e,variable:s,value:r,scaling:i,index:o,scalingVariable:l}=t;n.sequence[e]={key:e,decimal:~~(r*100)/100,val:~~r,scaling:i,index:o,scalingVariable:l,variable:s},n.scales[e]=i;const a=T.has(n.unit)?"rem":n.unit;n.vars[s]=i+a},z=t=>{if(!t.includes("("))return t;const n=t.trim(),e=n.indexOf("("),s=n.slice(0,e);let r=0,i=-1;for(let o=e;o<n.length;o++){const l=n[o];if(l==="(")r++;else if(l===")"&&(r--,r===0)){i=o;break}}return i===-1||/\s/.test(s)||n.slice(i+1).trim()!==""?[void 0,t]:[s,n.slice(e+1,i)]},L="\0",J=(t,n)=>{let e="",s=0,r="";for(const i of t){if(s===0&&i!=="("){e+=i;continue}r+=i,i==="("?s++:i===")"&&(s--,s===0&&(e+=L+n.length+L,n.push(r),r=""))}return e+r},Q=(t,n)=>t.indexOf(L)===-1?t:t.replace(/\u0000(\d+)\u0000/g,(e,s)=>n[Number(s)]),X=/^(calc|min|max|clamp)\((.*)\)$/,Y=(t,n)=>{const e=X.exec(t);return e?`${e[1]}(${K(e[2],n)})`:t.indexOf("(")!==-1?t:U(t,n)},T=new Set(["vw","vh","vmin","vmax","svw","svh","lvw","lvh","dvw","dvh"]),O=(t,n)=>{const{base:e,type:s,unit:r}=n,i=T.has(r)?"rem":r,o=((0,y.isScalingUnit)(i)?1:e)+i;if(t===0)return o;const a="--"+(n.varPrefix?n.varPrefix+"-":"")+(s&&s.replace(".","-")),d=`${a}-ratio`;if(t>0){const u=S[t-1];return`calc(var(${a}-${u}) * var(${d}))`}if(t<0){const u=S[t+1],g=Math.abs(t),h=Math.pow(_,2*g),m=S[g];return m?`max(calc(var(${a}-${u}) / var(${d})), calc(var(${a}-${m}) / ${h.toFixed(4)}))`:`calc(var(${a}-${u}) / var(${d}))`}},D=(t,n,e,s)=>{const{type:r}=s,o=t===2&&n.length===2?t+1:t,d=`${"--"+(s.varPrefix?s.varPrefix+"-":"")+(r&&r.replace(".","-"))}-sub-ratio-`;return`calc(var(${e}) * var(${d+o}))`},R=(t,n)=>{const s=(t*n-t)/1.618,r=t*n-s,i=t+s,o=(r+i)/2;return[r,o,i]},P=(t,n)=>R(t,n).map(e=>e/t),I=(t,n)=>{const{key:e,base:s,value:r,ratio:i,variable:o,index:l}=t,d=~~(r*i)-~~r;let u;const[g,h,m]=R(r,i);d>16?u=[g,h,m]:u=[g,m],u.forEach((p,c)=>{const $=~~(p/s*1e3)/1e3,b=o+(c+1),V=l+(c+1)/10,f=D(c+1,u,o,n),x={key:e+(c+1),variable:b,value:p,scaling:$,scalingVariable:f,index:V};A(x,n)})},_=1.618,q=(t,n,e)=>{if(t>=0)return n*Math.pow(e,t);const s=Math.abs(t),r=n*Math.pow(e,t),i=n*Math.pow(e,s)/Math.pow(_,2*s);return Math.max(r,i)},tt=t=>{const{type:n,base:e,ratio:s,range:r,subSequence:i}=t,o=Math.abs(r[0])+Math.abs(r[1]),a="--"+(t.varPrefix?t.varPrefix+"-":"")+(n&&n.replace(".","-"))+"-";for(let d=0;d<=o;d++){const u=r[1]-d,g=S[u],h=q(u,e,s),m=~~(h/e*100)/100,p=a+g,c=O(u,t),$={key:g,variable:p,value:h,base:e,scaling:m,scalingVariable:c,ratio:s,index:u};A($,t),i&&I($,t)}return t},nt=(t,n=0)=>{const{type:e,base:s,ratio:r,subSequence:i}=t,o=(0,w.isString)(n)?n:S[n],l=(0,w.isString)(n)?Object.entries(S).find(([,$])=>$===n)?.[0]:n;if(!o)return console.warn(`Position ${n} is out of range in numToLetterMap`),null;const a={sequence:{},scales:{},vars:{},...t},d=s*Math.pow(r,l),u=~~(d/s*100)/100,m="--"+(t.varPrefix?t.varPrefix+"-":"")+(e&&e.replace(".","-"))+"-"+o,p=O(l,t),c={key:o,variable:m,value:d,base:s,scaling:u,scalingVariable:p,ratio:r,index:l};return A(c,a),i&&I(c,a),a},U=(t="A",n)=>{const e=(0,C.getActiveConfig)(),{unit:s}=e;if((0,w.isString)(t)&&(0,j.isCSSVar)(t))return`var(${t})`;if((0,w.isString)(t)&&/^(?:env|var|calc|min|max|clamp)\(/.test(t.trim()))return t;if((0,w.isString)(t)){const f=e.sizes;if(f){const x=f[t]||f[t.toLowerCase()];if(x!==void 0)return t.slice(0,1)==="-"?`calc(${x} * -1)`:x}}const{sequence:r,unit:i=s.default,useVariable:o}=n,l=/^-?[a-zA-Z]/i,a=l.test(t);if((0,y.isRawUnitValue)(t)||!a||["none","auto","max-content","min-content","fit-content","inherit","initial","unset","revert","revert-layer"].includes(t))return t;const h=`--${n.varPrefix?n.varPrefix+"-":""}${(0,N.toDashCase)(n.type.replace(".","-"))}-`,m=t.toUpperCase(),p=m.slice(0,1)==="-"?"-":"";let c=p?m.slice(1):m,$="";c.includes("_")&&($="_"+c.split("_")[1].toLowerCase(),c=c.split("_")[0]);const b=f=>l.test(f)?`var(${h}${f}${$})`:f;if(c.includes("+")){const[f,x]=c.split("+"),v=`${b(f)} + ${b(x)}`;return p?`calc((${v}) * -1)`:`calc(${v})`}else if(c.includes("*")){const[f,x]=c.split("*"),v=`${b(f)} * ${b(x)}`;return p?`calc((${v}) * -1)`:`calc(${v})`}else if(c.includes("-")){const[f,x]=c.split("-"),v=`${b(f)} - ${b(x)}`;return p?`calc((${v}) * -1)`:`calc(${v})`}if(!r[c]&&c.length===2&&(e.verbose&&console.warn(c,"- value is not found because `subSequence` is set to false"),c=c.slice(0,1)),o||e.useVariable){const f=`var(${h}${c}${$})`;return p?`calc(${f} * -1)`:f}const V=r?r[c]:null;if(!V){if(console.warn("can't find",r,c),(0,E.isLoudDevRuntime)())throw new Error(`[smbls] Unresolvable design-system token "${t}"`+(n.type?` for sequence "${n.type}"`:"")+" \u2014 not a registered `sizes` name and not a valid spacing/typography/timing sequence letter. The CSS property using it would silently be dropped in production. Register the token in `designSystem/sizes.js` (or the relevant sequence family) or fix the typo.");return}return i==="ms"||i==="s"?p+V.val+i:p+V.scaling+i},K=(t,n)=>{if(!["+","-","*","/",","].filter(o=>t.includes(o+" ")).length)return t;const s=/(\s+-\s+|\s*[+*/,]\s*)/,r=[];return J(t,r).split(s).map(o=>{const l=Q(o,r),a=l.trim();return!a||["+","-","*","/",","].includes(a)?l:Y(a,n)}).join("")},et=(t,n,e,s)=>{if(typeof t!="string")return(0,C.getActiveConfig)().verbose&&console.warn(n,t,"is not a string"),{[n]:t};if(t==="-"||t==="")return{};if(!s&&t.includes("(")){if(/^(?:env|var)\(/.test(t.trim()))return{[n]:t};const i=z(t);s=i[0],t=i[1]}return["+","-","*","/",","].filter(i=>t.includes(i+" ")).length?t=K(t,e):t=U(t,e),{[n]:s?`${s}(${t})`:t}},F=(t,n)=>S[t-n],rt=t=>{const{h1Matches:n,sequence:e}=t;return new Array(6).fill(null).map((s,r)=>{const i=F(n,r);return e[i]})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isObject as w,isArray as k,isString as b}from"@symbo.ls/utils";import{getActiveConfig as M}from"../factory.js";import{colorStringToRgbaArray as D,getRgbTone as A,isCSSVar as x,parseColorToken as C}from"../utils/index.js";const W={light:"(prefers-color-scheme: light)",dark:"(prefers-color-scheme: dark)"},H=(e,n)=>{const t=n.media&&n.media[e]||W[e];return t?"@media "+(t==="print"?`${t}`:`screen and ${t}`):null},Q=e=>{const n=e.scopeSelector||":root";return`${n===":root"?":root:not([data-theme])":`:root:not([data-theme]) ${n}:not([data-theme])`} &`},$=new Set,z=new Set(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"]),L=new Set,P=e=>{if(!e)return!1;const{color:n,gradient:t}=e;return!!(w(n)&&Object.keys(n).length||w(t)&&Object.keys(t).length)},O=new Set;let T=0;const I=e=>{T++;try{return e()}finally{T--}},B=(e,n)=>{if(!b(e)||e.indexOf(" ")===-1)return null;const t=e.replace(/\s+/g,""),r=C(t);if(!r||r.passthrough||r.cssVar)return null;const{color:o,gradient:c}=n;return!o[r.name]&&!c[r.name]?null:t},_=(e,n,t)=>{const r=B(e,t);if(r){if(!O.has(e)){O.add(e);const a=t&&t.name?` (design system \`${t.name}\`)`:"";console.warn(`[scratch] color token \`${e}\` has a space before its alpha/tone modifier${a} \u2014 did you mean \`${r}\`? The space form never resolves, so the atomic class it mints carries no CSS value and paints invisibly. Dropped rather than shipped invisible.`)}return}const o=C(e);if(o&&o.name&&!o.passthrough&&!o.cssVar&&(o.alpha!==void 0||o.tone!==void 0)&&P(t)&&!t.color[o.name]&&!t.gradient[o.name]){if(!T&&!L.has(e)){L.add(e);const a=t&&t.name?` (design system \`${t.name}\`)`:"";console.warn(`[scratch] color token \`${e}\` does not resolve${a} \u2014 \`${o.name}\` is not in the palette. Dropped rather than emitted as a raw value, which is invalid CSS the browser discards silently. Define it in designSystem/color.js or use a palette token.`)}return}const c=b(n)?n.toLowerCase():"";if(!z.has(c)||!P(t))return e;if(!L.has(c)){L.add(c);const a=t&&t.name?` (design system \`${t.name}\`)`:"";console.warn(`[scratch] color \`${e}\` is a CSS named colour that is not in the palette${a}. Dropped rather than emitted as a raw browser colour, which renders theme-blind and can be unreadable ("looks designed", so it ships unnoticed). Define it in designSystem/color.js or use a palette token.`)}},R=(e,n,t)=>{const r=t||M();if(!b(e)){r.verbose&&console.warn(e,"- type for color is not valid");return}if(x(e))return`var(${e})`;n&&e[n]&&(e=e[n]);let o,c,a;if(k(e))[o,c,a]=e;else{const i=C(e);if(!i){const{color:f,gradient:V}=r;let p=V[e]||f[e];return p?(n&&p[n]&&(p=p[n]),r.useVariable?`var(${p.var})`:p.value):_(e,e,r)}if(i.passthrough)return i.passthrough;if(i.cssVar)return`var(${i.cssVar})`;o=i.name,c=i.alpha,a=i.tone}const{color:g,gradient:d}=r;let s=g[o]||d[o];if(!s)return _(e,o,r);if(n)if(s[n]!==void 0)s=s[n];else if(k(s)){const i=n.charCodeAt(0)===64?n.slice(1):n;i==="dark"?s=s[1]!==void 0?s[1]:s[0]:(i!=="light"&&r.verbose&&console.warn(e," - array-form color tokens only support light/dark; falling back to the light slot for scheme",n),s=s[0])}else r.verbose&&console.warn(e," - does not have ",n);if(b(s)){if($.has(o))return s;$.add(o);try{return R(s,null,t)}finally{$.delete(o)}}let h=s.rgb;if(!h){const i=r.useVariable?`var(${s.var})`:s.value;if((c||a)&&i){const f=c!==void 0?c:1;if(!a)return`rgb(from ${i} r g b / ${f})`;if(a.charCodeAt(0)===43||a.charCodeAt(0)===45){const p=parseFloat(a),u=p<0?"-":"+",l=Math.abs(p);return`rgb(from ${i} calc(r ${u} ${l}) calc(g ${u} ${l}) calc(b ${u} ${l}) / ${f})`}return`hsl(from ${i} h s ${a}% / ${f})`}return i}return a&&!s[a]&&(h=A(h,a),s[a]={rgb:h,var:`${s.var}-${a}`}),s[a]&&(h=s[a].rgb),c?`rgba(${h}, ${c})`:a?`rgba(${h}, ${s.alpha!==void 0?s.alpha:1})`:r.useVariable?`var(${s.var})`:s.value!==void 0?s.value:`rgb(${h})`},j=e=>{const n=D(e);return!n||n.length<3||n[0]===0&&n[1]===0&&n[2]===0&&n[3]===0&&e.toLowerCase()!=="transparent"?null:{rgb:[n[0],n[1],n[2]],alpha:n[3]!==void 0?n[3]:1}},K=(e,n)=>{if(!n)return e;let t=e.rgb;if(n.tone){const o=A(t,n.tone);t=b(o)?o.split(",").map(c=>parseFloat(c.trim())):o}const r=n.alpha!==void 0?parseFloat(n.alpha):e.alpha;return{rgb:t,alpha:r}},U=(e,n,t)=>{const r=n||M();if(!b(e))return null;const o=C(e);if(o){if(o.passthrough){const f=D(o.passthrough);return f&&f.length>=3?{rgb:[f[0],f[1],f[2]],alpha:f[3]!==void 0?f[3]:1}:null}if(o.cssVar)return null}const c=o?o.name:e,{color:a,gradient:g}=r;let d=a[c]||g[c];if(!d)return j(e);if(b(d)){let f;if($.has(c))f=j(d);else{$.add(c);try{f=U(d,r,t)}finally{$.delete(c)}}return f?K(f,o):null}if(d.rgb===void 0&&w(d)){const f=`@${t||"light"}`;d=d[f]!==void 0?d[f]:d["@light"]}if(!d||d.rgb===void 0)return null;let s=d.rgb;o&&o.tone&&(s=A(s,o.tone));const h=b(s)?s.split(",").map(f=>parseFloat(f.trim())):s,i=o&&o.alpha!==void 0?parseFloat(o.alpha):d.alpha!==void 0?d.alpha:1;return{rgb:h,alpha:i}},F=(e,n,t)=>{const r=t||M();if(n||(n=r.globalTheme==="auto"?null:r.globalTheme),!b(e)){r.verbose&&console.warn(e,"- type for color is not valid");return}if(x(e))return`var(${e})`;let o,c,a;if(k(e))o=e[0];else{const i=C(e);if(i){if(i.passthrough)return i.passthrough;if(i.cssVar)return`var(${i.cssVar})`;o=i.name,c=i.alpha,a=i.tone}else o=e}const{color:g,gradient:d}=r,s=g[o]||d[o],h=w(s);if(h&&s.value)return R(e,`@${n}`,t);if(h){if(r.useVariable&&s.var)return c||a?R(e,null,t):`var(${s.var})`;if(n)return R(e,`@${n}`,t);{const i={},f=Q(r);for(const V in s){if(V.charCodeAt(0)!==64)continue;const p=V.slice(1),u=R(e,V,t);if(u!==void 0&&(i[`[data-theme="${p}"] &`]=u,p==="light"||p==="dark")){const l=H(p,r);if(!l)continue;i[l]={[f]:u}}}return i}}else return _(e,o,r)},v=(e,n,t,r)=>{const c=`--${r.varPrefix?r.varPrefix+"-":""}${n}-${t}`;let a;const g={};for(const d in e){if(d.charCodeAt(0)!==64)continue;const s=d.slice(1),h=e[d],i=h&&(h.value||h);!i||typeof i!="string"||(g[s]=i,(s==="light"||a===void 0)&&(a=i))}if(a!==void 0){r.cssVars[c]=a,r.cssMediaVars||(r.cssMediaVars={});for(const d in g){const s=`[data-theme="${d}"]`;if(r.cssMediaVars[s]||(r.cssMediaVars[s]={}),r.cssMediaVars[s][c]=g[d],d==="light"||d==="dark"){const h=`@media (prefers-color-scheme: ${d})`;r.cssMediaVars[h]||(r.cssMediaVars[h]={}),r.cssMediaVars[h][c]=g[d]}}return e.var=c,c}},q=(e,n,t)=>{const r=M();if(w(e)&&e.value!==void 0&&(e.rgb!==void 0||e.var!==void 0))return r.useVariable&&e.var&&(r.cssVars[e.var]=e.value),e;if(b(e)&&x(e)){const u=e.slice(2);if(e=R(u),!(e.includes("rgb")||e.includes("var")||e.includes("#"))){const l=u.split(" ");let m=r.color[l[0]];if(m&&!m.value&&!m.rgb&&(b(m)||k(m)||w(m))&&!$.has(l[0])){$.add(l[0]);try{r.color[l[0]]=q(m,l[0])}finally{$.delete(l[0])}m=r.color[l[0]]}if(m&&m.value){let y=m.rgb;const E=l[1]!==void 0?l[1]:"1",S=l[2];S&&(y=A(y,S)),e=`rgba(${y}, ${E})`}else{const y=l[2],E=l[1]!==void 0?l[1]:"1";if(y)try{const S=D(l[0]);S&&S.length>=3?e=`rgba(${A(S.slice(0,3).join(", "),y)}, ${E})`:e=l[0]}catch{e=l[0]}else e=l[0]}}}if(k(e)&&(e={"@light":e[0],"@dark":e[1]!==void 0?e[1]:e[0]}),w(e)){const u={};for(const l in e)l!=="var"&&(u[l]=q(e[l],n,l.slice(0,1)==="@"?l.slice(1):l));return r.useVariable&&v(u,"color",n,r),u}const c=`--${r.varPrefix?r.varPrefix+"-":""}color-${n}`+(t?`-${t}`:"");let a=e.value||e;if(b(a)&&!a.includes("(")&&!a.startsWith("#")){const u=C(a);if(u&&u.name&&!u.passthrough&&!u.cssVar){const l=r.color[u.name];if(l&&!l.value&&!l.rgb&&(b(l)||k(l)||w(l))&&!$.has(u.name)){$.add(u.name);try{r.color[u.name]=q(l,u.name)}finally{$.delete(u.name)}}const m=r.color[u.name];if(m&&m.rgb){let y=m.rgb;u.tone&&(y=A(y,u.tone));const E=u.alpha!==void 0?parseFloat(u.alpha):m.alpha!==void 0?m.alpha:1;a=`rgba(${y}, ${E})`}}}const g=D(a),[d,s,h,i=1]=g,f=parseFloat(i.toFixed(2)),V=`${d}, ${s}, ${h}`,p=`rgba(${V}, ${f})`;return r.useVariable&&(r.cssVars[c]=p),{var:c,rgb:V,alpha:f,value:p}},J=(e,n,t)=>{const r=M();if(w(e)&&e.value!==void 0&&e.var!==void 0)return r.useVariable&&(r.cssVars[e.var]=e.value),e;if(b(e)&&x(e)&&(e=R(e.slice(2))),k(e)&&(e={"@light":e[0],"@dark":e[1]!==void 0?e[1]:e[0]}),w(e)){const a={};for(const g in e)g!=="var"&&(a[g]=J(e[g],n,g.slice(0,1)==="@"?g.slice(1):g));return r.useVariable&&v(a,"gradient",n,r),a}const c=`--${r.varPrefix?r.varPrefix+"-":""}gradient-${n}`+(t?`-${t}`:"");return r.useVariable&&(r.cssVars[c]=e.value||e),{var:c,value:e.value||e}};export{W as STANDARD_SCHEME_QUERIES,R as getColor,F as getMediaColor,I as quietColorProbe,U as resolveColorRgb,Q as schemeGuardSelector,H as schemeMediaQuery,v as setAdaptiveSchemeVar,q as setColor,J as setGradient};
|
|
1
|
+
import{isObject as w,isArray as R,isString as m}from"@symbo.ls/utils";import{getActiveConfig as D}from"../factory.js";import{colorStringToRgbaArray as L,getRgbTone as A,isCSSVar as M,parseColorToken as C}from"../utils/index.js";const z={light:"(prefers-color-scheme: light)",dark:"(prefers-color-scheme: dark)"},B=(e,r)=>{const t=r.media&&r.media[e]||z[e];return t?"@media "+(t==="print"?`${t}`:`screen and ${t}`):null},N=e=>{const r=e.scopeSelector||":root";return`${r===":root"?":root:not([data-theme])":`:root:not([data-theme]) ${r}:not([data-theme])`} &`},$=new Set,T=new Set(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"]),Y=/^(?:#[0-9a-f]{3,8}$|(?:rgba?|hsla?|hwb|lab|lch|oklab|oklch|color|color-mix)\()/i,J=/gradient\(|url\(|image-set\(|var\(/i,X=new Set(["transparent","currentColor","currentcolor"]),q=e=>{if(!m(e))return!1;const r=e.trim();return J.test(r)?!1:Y.test(r)?!0:T.has(r)||X.has(r)},O=new Set,j=e=>{if(!e)return!1;const{color:r,gradient:t}=e;return!!(w(r)&&Object.keys(r).length||w(t)&&Object.keys(t).length)},W=new Set;let _=0;const ie=e=>{_++;try{return e()}finally{_--}},Z=(e,r)=>{if(!m(e)||e.indexOf(" ")===-1)return null;const t=e.replace(/\s+/g,""),n=C(t);if(!n||n.passthrough||n.cssVar)return null;const{color:s,gradient:a}=r;return!s[n.name]&&!a[n.name]?null:t},x=(e,r,t)=>{const n=Z(e,t);if(n){if(!W.has(e)){W.add(e);const i=t&&t.name?` (design system \`${t.name}\`)`:"";console.warn(`[scratch] color token \`${e}\` has a space before its alpha/tone modifier${i} \u2014 did you mean \`${n}\`? The space form never resolves, so the atomic class it mints carries no CSS value and paints invisibly. Dropped rather than shipped invisible.`)}return}const s=C(e);if(s&&s.name&&!s.passthrough&&!s.cssVar&&(s.alpha!==void 0||s.tone!==void 0)&&j(t)&&!t.color[s.name]&&!t.gradient[s.name]){if(!_&&!O.has(e)){O.add(e);const i=t&&t.name?` (design system \`${t.name}\`)`:"";console.warn(`[scratch] color token \`${e}\` does not resolve${i} \u2014 \`${s.name}\` is not in the palette. Dropped rather than emitted as a raw value, which is invalid CSS the browser discards silently. Define it in designSystem/color.js or use a palette token.`)}return}const a=m(r)?r.toLowerCase():"";if(!T.has(a)||!j(t))return e;if(!O.has(a)){O.add(a);const i=t&&t.name?` (design system \`${t.name}\`)`:"";console.warn(`[scratch] color \`${e}\` is a CSS named colour that is not in the palette${i}. Dropped rather than emitted as a raw browser colour, which renders theme-blind and can be unreadable ("looks designed", so it ships unnoticed). Define it in designSystem/color.js or use a palette token.`)}},v=(e,r,t)=>{const n=r!==void 0?r:1;if(!t)return`rgb(from ${e} r g b / ${n})`;if(t.charCodeAt(0)===43||t.charCodeAt(0)===45){const a=parseFloat(t),i=a<0?"-":"+",u=Math.abs(a);return`rgb(from ${e} calc(r ${i} ${u}) calc(g ${i} ${u}) calc(b ${i} ${u}) / ${n})`}return`hsl(from ${e} h s ${t}% / ${n})`},V=(e,r,t)=>{const n=t||D();if(!m(e)){n.verbose&&console.warn(e,"- type for color is not valid");return}if(M(e))return`var(${e})`;r&&e[r]&&(e=e[r]);let s,a,i;if(R(e))[s,a,i]=e;else{const l=C(e);if(!l){const{color:h,gradient:k}=n;let b=k[e]||h[e];return b?(r&&b[r]&&(b=b[r]),n.useVariable?`var(${b.var})`:b.value):x(e,e,n)}if(l.passthrough)return l.passthrough;if(l.cssVar)return`var(${l.cssVar})`;s=l.name,a=l.alpha,i=l.tone}const{color:u,gradient:c}=n;let o=u[s]||c[s];if(!o)return x(e,s,n);if(r)if(o[r]!==void 0)o=o[r];else if(R(o)){const l=r.charCodeAt(0)===64?r.slice(1):r;l==="dark"?o=o[1]!==void 0?o[1]:o[0]:(l!=="light"&&n.verbose&&console.warn(e," - array-form color tokens only support light/dark; falling back to the light slot for scheme",r),o=o[0])}else n.verbose&&console.warn(e," - does not have ",r);if(m(o)){if($.has(s))return o;$.add(s);try{return V(o,null,t)}finally{$.delete(s)}}let g=o.rgb;if(!g){const l=n.useVariable?`var(${o.var})`:o.value;return(a||i)&&l?v(l,a,i):l}return i&&!o[i]&&(g=A(g,i),o[i]={rgb:g,var:`${o.var}-${i}`}),o[i]&&(g=o[i].rgb),a?`rgba(${g}, ${a})`:i?`rgba(${g}, ${o.alpha!==void 0?o.alpha:1})`:n.useVariable?`var(${o.var})`:o.value!==void 0?o.value:`rgb(${g})`},H=e=>{const r=L(e);return!r||r.length<3||r[0]===0&&r[1]===0&&r[2]===0&&r[3]===0&&e.toLowerCase()!=="transparent"?null:{rgb:[r[0],r[1],r[2]],alpha:r[3]!==void 0?r[3]:1}},I=(e,r)=>{if(!r)return e;let t=e.rgb;if(r.tone){const s=A(t,r.tone);t=m(s)?s.split(",").map(a=>parseFloat(a.trim())):s}const n=r.alpha!==void 0?parseFloat(r.alpha):e.alpha;return{rgb:t,alpha:n}},F=(e,r,t)=>{const n=r||D();if(!m(e))return null;const s=C(e);if(s){if(s.passthrough){const h=L(s.passthrough);return h&&h.length>=3?{rgb:[h[0],h[1],h[2]],alpha:h[3]!==void 0?h[3]:1}:null}if(s.cssVar)return null}const a=s?s.name:e,{color:i,gradient:u}=n;let c=i[a]||u[a];if(!c)return H(e);if(m(c)){let h;if($.has(a))h=H(c);else{$.add(a);try{h=F(c,n,t)}finally{$.delete(a)}}return h?I(h,s):null}if(c.rgb===void 0&&w(c)){const h=`@${t||"light"}`;c=c[h]!==void 0?c[h]:c["@light"]}if(!c||c.rgb===void 0)return null;let o=c.rgb;s&&s.tone&&(o=A(o,s.tone));const g=m(o)?o.split(",").map(h=>parseFloat(h.trim())):o,l=s&&s.alpha!==void 0?parseFloat(s.alpha):c.alpha!==void 0?c.alpha:1;return{rgb:g,alpha:l}},K=e=>w(e)&&e.value!==void 0&&(e.rgb!==void 0||e.var!==void 0),Q=e=>{if(!w(e)||e.value!==void 0)return null;const r=[];for(const t in e)if(t!=="var"){if(t.charCodeAt(0)!==64||!K(e[t]))return null;r.push(t.slice(1))}return r.length?r:null},G=e=>m(e&&e.var)&&Q(e)!==null,ee=(e,r,t,n,s)=>{const a=Q(r);if(!a)return;if(m(r.var)){const c=`var(${r.var})`;return t||n?v(c,t,n):c}if(a.length!==2||!a.includes("light")||!a.includes("dark"))return;const i=V(e,"@light",s),u=V(e,"@dark",s);if(!(!q(i)||!q(u)))return i===u?i:`light-dark(${i}, ${u})`},ae=(e,r,t)=>{const n=t||D();if(r||(r=n.globalTheme==="auto"?null:n.globalTheme),!m(e)){n.verbose&&console.warn(e,"- type for color is not valid");return}if(M(e))return`var(${e})`;let s,a,i;if(R(e))s=e[0];else{const l=C(e);if(l){if(l.passthrough)return l.passthrough;if(l.cssVar)return`var(${l.cssVar})`;s=l.name,a=l.alpha,i=l.tone}else s=e}const{color:u,gradient:c}=n,o=u[s]||c[s],g=w(o);if(g&&o.value)return V(e,`@${r}`,t);if(g){if(n.useVariable&&o.var)return a||i?V(e,null,t):`var(${o.var})`;if(r){if(!n.useVariable&&u[s]===o){const l=ee(e,o,a,i,t);if(l!==void 0)return l}return V(e,`@${r}`,t)}else{const l={},h=N(n);for(const k in o){if(k.charCodeAt(0)!==64)continue;const b=k.slice(1),f=V(e,k,t);if(f!==void 0&&(l[`[data-theme="${b}"] &`]=f,b==="light"||b==="dark")){const d=B(b,n);if(!d)continue;l[d]={[h]:f}}}return l}}else return x(e,s,n)},U=(e,r,t,n)=>{const a=`--${n.varPrefix?n.varPrefix+"-":""}${r}-${t}`;let i;const u={};for(const c in e){if(c.charCodeAt(0)!==64)continue;const o=c.slice(1),g=e[c],l=g&&(g.value||g);!l||typeof l!="string"||(u[o]=l,(o==="light"||i===void 0)&&(i=l))}if(i!==void 0){n.cssVars[a]=i,n.cssMediaVars||(n.cssMediaVars={});for(const c in u){const o=`[data-theme="${c}"]`;if(n.cssMediaVars[o]||(n.cssMediaVars[o]={}),n.cssMediaVars[o][a]=u[c],c==="light"||c==="dark"){const g=`@media (prefers-color-scheme: ${c})`;n.cssMediaVars[g]||(n.cssMediaVars[g]={}),n.cssMediaVars[g][a]=u[c]}}return e.var=a,a}},P=(e,r,t)=>{const n=D();if(K(e))return n.useVariable&&e.var&&(n.cssVars[e.var]=e.value),e;if(!n.useVariable&&G(e))return e;if(m(e)&&M(e)){const f=e.slice(2);if(e=V(f),!(e.includes("rgb")||e.includes("var")||e.includes("#"))){const d=f.split(" ");let p=n.color[d[0]];if(p&&!p.value&&!p.rgb&&(m(p)||R(p)||w(p))&&!$.has(d[0])){$.add(d[0]);try{n.color[d[0]]=P(p,d[0])}finally{$.delete(d[0])}p=n.color[d[0]]}if(p&&p.value){let y=p.rgb;const E=d[1]!==void 0?d[1]:"1",S=d[2];S&&(y=A(y,S)),e=`rgba(${y}, ${E})`}else{const y=d[2],E=d[1]!==void 0?d[1]:"1";if(y)try{const S=L(d[0]);S&&S.length>=3?e=`rgba(${A(S.slice(0,3).join(", "),y)}, ${E})`:e=d[0]}catch{e=d[0]}else e=d[0]}}}if(R(e)&&(e={"@light":e[0],"@dark":e[1]!==void 0?e[1]:e[0]}),w(e)){const f={};for(const d in e)d!=="var"&&(f[d]=P(e[d],r,d.slice(0,1)==="@"?d.slice(1):d));return n.useVariable&&U(f,"color",r,n),f}const a=`--${n.varPrefix?n.varPrefix+"-":""}color-${r}`+(t?`-${t}`:"");let i=e.value||e;if(m(i)&&!i.includes("(")&&!i.startsWith("#")){const f=C(i);if(f&&f.name&&!f.passthrough&&!f.cssVar){const d=n.color[f.name];if(d&&!d.value&&!d.rgb&&(m(d)||R(d)||w(d))&&!$.has(f.name)){$.add(f.name);try{n.color[f.name]=P(d,f.name)}finally{$.delete(f.name)}}const p=n.color[f.name];if(p&&p.rgb){let y=p.rgb;f.tone&&(y=A(y,f.tone));const E=f.alpha!==void 0?parseFloat(f.alpha):p.alpha!==void 0?p.alpha:1;i=`rgba(${y}, ${E})`}}}const u=L(i),[c,o,g,l=1]=u,h=parseFloat(l.toFixed(2)),k=`${c}, ${o}, ${g}`,b=`rgba(${k}, ${h})`;return n.useVariable&&(n.cssVars[a]=b),{var:a,rgb:k,alpha:h,value:b}},re=(e,r,t)=>{const n=D();if(w(e)&&e.value!==void 0&&e.var!==void 0)return n.useVariable&&(n.cssVars[e.var]=e.value),e;if(m(e)&&M(e)&&(e=V(e.slice(2))),R(e)&&(e={"@light":e[0],"@dark":e[1]!==void 0?e[1]:e[0]}),w(e)){const i={};for(const u in e)u!=="var"&&(i[u]=re(e[u],r,u.slice(0,1)==="@"?u.slice(1):u));return n.useVariable&&U(i,"gradient",r,n),i}const a=`--${n.varPrefix?n.varPrefix+"-":""}gradient-${r}`+(t?`-${t}`:"");return n.useVariable&&(n.cssVars[a]=e.value||e),{var:a,value:e.value||e}};export{z as STANDARD_SCHEME_QUERIES,V as getColor,ae as getMediaColor,q as isPlainColor,ie as quietColorProbe,F as resolveColorRgb,N as schemeGuardSelector,B as schemeMediaQuery,U as setAdaptiveSchemeVar,P as setColor,re as setGradient};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{arrayzeValue as I}from"@symbo.ls/utils";import{isArray as q,isString as
|
|
1
|
+
import{arrayzeValue as I}from"@symbo.ls/utils";import{isArray as q,isString as l,merge as G}from"@symbo.ls/utils";import{getActiveConfig as d}from"../factory.js";import{CSS_UNITS as B,applyMediaSequenceVars as C,applySequenceVars as f,generateSequence as g,getFnPrefixAndValue as p,getSequenceValuePropertyPair as h,splitTopLevelSpaces as b}from"../utils/index.js";const k=t=>{const n=d().spacing||{},s=parseFloat(t.spacingRatio),i={...n,ratio:Number.isFinite(s)?s:n.ratio,sequence:{},scales:{}};return g(i),i},y=t=>{for(const e in t){const n=t[e];if(!(e.slice(0,1)==="@"))continue;const{type:i,base:o,ratio:c,range:r,subSequence:S,h1Matches:a,unit:u}=t;G(n,{type:i,base:o,ratio:c,range:r,subSequence:S,h1Matches:a,unit:u,sequence:{},scales:{},templates:{},vars:{}}),g(n),C(t,e)}},L=t=>{const e=t.toLowerCase(),n=e.includes("width")||e.includes("height"),s=e.includes("border")||e.includes("outline");return n&&!s},O=()=>{const t=d(),{spacing:e}=t;g(e),f(e),y(e)},A=t=>{const e=d(),{spacing:n}=e;return!t||!t.sequence?n:Object.keys(t.sequence).length>0?t:g(t)},m=(t,e="padding",n,s)=>{const i=A(n);if(l(t)){if(!s&&/^(?:env|var)\(/.test(t.trim()))return{[e]:t};if(!s&&t.includes("(")){const c=p(t);s=c[0],t=c[1]}}const o=s?[t]:l(t)&&t.includes("(")?b(t):I(t);if(q(o)){if(o.length>1){let c="";e==="borderWidth"&&(e="border",c="Width");const r={2:["Block","Inline"],3:["BlockStart","Inline","BlockEnd"],4:["BlockStart","InlineEnd","BlockEnd","InlineStart"]},S=(a,u)=>h(o[u],e+a+c,i,s);return r[o.length].map((a,u)=>S(a,u))}return h(t,e,i,s)}},j=(t,e,n,s)=>{const i=d(),{spacing:o}=i;let c=n||t[e];if(!s&&l(c)&&/^(?:env|var)\(/.test(c.trim()))return{[e]:c};if(!s&&l(c)&&c.includes("(")){const r=p(c);s=r[0],c=r[1]}if(t.spacingRatio){const r=k(t);return m(c,e,r,s)}return m(c,e,o,s)},w=t=>{const e=n=>{const s=["+","-","*","/"].includes(n),i=B.some(c=>t.includes(c));return s||i?n:n.length<3&&/[A-Z]/.test(n)?n+"_default":n};return t.split(",").map(n=>n.trim()).map(e).join(",").split(" ").map(e).join(" ")};export{O as applySpacingSequence,L as checkIfBoxSize,j as getSpacingBasedOnRatio,m as getSpacingByKey,w as splitSpacedValue};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getColor as
|
|
1
|
+
import{getColor as P,isPlainColor as B,schemeMediaQuery as K,schemeGuardSelector as N}from"./color.js";import{resolveShadowValue as L}from"./shadow.js";import{resolveBorderValue as $}from"./border.js";import{getActiveConfig as A}from"../factory.js";import{isCSSVar as C,parseColorToken as F}from"../utils/color.js";import{isObject as D,isString as T,isObjectLike as k,isArray as W,isLoudDevRuntime as G}from"@symbo.ls/utils";const I=new Set(["black","white","red","green","blue","yellow","orange","purple","pink","brown","gray","grey","cyan","magenta","lime","olive","navy","teal","aqua","maroon","silver","fuchsia","transparent","currentColor","currentcolor","inherit","initial","unset","none","aliceblue","antiquewhite","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","gainsboro","ghostwhite","gold","goldenrod","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","oldlace","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","plum","powderblue","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","rebeccapurple"]),z=["color","Color","background","Background","fill","Fill","stroke","Stroke"],H=e=>{for(let n=0;n<z.length;n++)if(e.includes(z[n]))return!0;return!1},ee={boxShadow:L,textShadow:L,border:$,borderTop:$,borderRight:$,borderBottom:$,borderLeft:$,outline:$,columnRule:$},ne=e=>{if(!e)return!1;const n=F(e);return!n||!n.name||n.passthrough||n.cssVar?!1:n.alpha!==void 0||n.tone!==void 0},U=new Set,oe=(e,n,o,r,a,c)=>{if(!G())return;const s=`${e}::${n}::${o||""}::${r}`;U.has(s)||(U.add(s),console.warn(`[smbls/scratch] theme param "${n}" on "${e}"`+(o?` (${o})`:"")+` did not fully resolve: "${r}" -> "${a}" still contains the unresolved token "${c}". This is not valid CSS \u2014 the browser will drop the whole declaration. Register "${c}" as a design-system color token or fix the typo.`))},q=(e,n,o,r)=>{const a=ee[n];if(!a)return P(o,r);let c=null;const s=a(o,r,m=>{!c&&ne(m)&&(c=m)});return c&&oe(e,n,r,o,s,c),s},he=(e,n)=>M(e,n),re=e=>D(e)&&k(e.value),te=e=>{for(const n in e){const o=e[n];if(T(o)&&o.startsWith("var(--"))return!0}return!1},me=(e,n)=>{const o=A();return re(e)?!o.useVariable&&te(e)?e:_(e.value,n):_(e,n)},Q=(e,n)=>{const o=new Set;for(const r of n){const a=r.slice(0,1);if(!(a==="@"||a==="."||a===":")&&H(r))for(const c in e){if(o.has(c))continue;const s=e[c]?.[r];if(s===void 0)continue;const m=P(s,`@${c}`);m!==void 0&&T(m)&&/^[a-z][a-zA-Z]+$/.test(m)&&!I.has(m)&&o.add(c)}}return o},ie=e=>e.startsWith("[data-theme=")||e.startsWith("@media"),j=(e,n)=>{for(const o in n){const r=n[o];D(r)?j(e[o]||(e[o]={}),r):e[o]=r}return e},Z=(e,n,o,r)=>{if(j(e,{[`[data-theme="${n}"] &`]:o}),n!=="light"&&n!=="dark")return;const a=K(n,r);a&&j(e,{[a]:{[N(r)]:o}})},J=(e,n,o,r)=>{const a=o.globalTheme!==void 0?o.globalTheme:"auto",c=a&&a!=="auto"?String(a).replace(/^'|'$/g,""):null,s=new Set(r?Object.keys(r):[]);for(const d in e)if(e[d])for(const i of Object.keys(e[d]))s.add(i);const m=Q(e,s),u={};for(const d of s){const i=d.slice(0,1);if(i==="@")continue;if(i==="."||i===":"){const l={};for(const S in e)k(e[S]?.[d])&&(l[S]=e[S][d]);const g=r&&k(r[d])?r[d]:void 0;if(!Object.keys(l).length&&!g)continue;const y=i==="."?d.slice(1):d.replace(/^:+/,"");u[d]=J(l,`${n}-${y}`,o,g);continue}const t=r&&!k(r[d])?r[d]:void 0,f=new Set(Object.keys(e));t!==void 0&&(f.add("light"),f.add("dark"),c&&f.add(c));const p={};let b;for(const l of f){if(m.has(l))continue;let g=e[l]?.[d];if((g===void 0||k(g))&&(g=t),g===void 0)continue;const y=q(n,d,g,`@${l}`);y!==void 0&&(p[l]=y,(c&&l===c||!c&&(l==="light"||b===void 0))&&(b=y))}const h={},w=Object.keys(p).filter(l=>p[l]!==b);if(w.length){const l=p.light!==void 0?p.light:b,g=p.dark!==void 0?p.dark:b;if(H(d)&&B(l)&&B(g)){h[d]=l===g?l:`light-dark(${l}, ${g})`;for(const y in p)y==="light"||y==="dark"||Z(h,y,{[d]:p[y]},o)}else{b!==void 0&&(h[d]=b);for(const y of w)Z(h,y,{[d]:p[y]},o)}}else{if(b===void 0)continue;h[d]=b}j(u,h),u[`.${d}`]=h}return(u.background||u.color||u.backgroundColor)&&(u[".inversed"]={color:u.background||u.backgroundColor,background:u.color}),u},x=(e,n,o,r)=>{const{cssVars:a}=o;o.cssMediaVars||(o.cssMediaVars={});const c=o.cssMediaVars,s=o.globalTheme!==void 0?o.globalTheme:"auto",m=s&&s!=="auto"?String(s).replace(/^'|'$/g,""):null,u={},d=new Set(r?Object.keys(r):[]);for(const t in e)if(e[t])for(const f of Object.keys(e[t]))d.add(f);const i=Q(e,d);for(const t of d){const f=t.slice(0,1),p=k(r?.[t])||Object.values(e).some(b=>k(b?.[t]));if(f==="."&&p){const b=t.slice(1),h={};for(const l in e)k(e[l]?.[t])&&(h[l]=e[l][t]);const w=k(r?.[t])?r[t]:void 0;u[t]=x(h,`${n}-${b}`,o,w)}else if(f===":"&&p){const b=t.replace(/^:+/,""),h={};for(const l in e)k(e[l]?.[t])&&(h[l]=e[l][t]);const w=k(r?.[t])?r[t]:void 0;u[t]=x(h,`${n}-${b}`,o,w)}else if(f!=="@"&&f!=="."&&f!==":"){const h=`--${o.varPrefix?o.varPrefix+"-":""}theme-${n}-${t}`,w=r&&!k(r[t])?r[t]:void 0,l=new Set(Object.keys(e));w!==void 0&&(l.add("light"),l.add("dark"),m&&l.add(m));let g,y=!1;for(const S of l){if(i.has(S))continue;let V=e[S]?.[t];if((V===void 0||k(V))&&(V=w),V===void 0)continue;const R=q(n,t,V,`@${S}`);if(R===void 0)continue;y=!0,(m&&S===m||!m&&(S==="light"||g===void 0))&&(g=R);const v=`[data-theme="${S}"]`;if(c[v]||(c[v]={}),c[v][h]=R,S==="dark"||S==="light"){const O=`@media (prefers-color-scheme: ${S})`;c[O]||(c[O]={}),c[O][h]=R}}if(g!==void 0&&(a[h]=g),!y)continue;u[t]=`var(${h})`,u[`.${t}`]={[t]:u[t]}}}return(u.background||u.color||u.backgroundColor)&&(u[".inversed"]={color:u.background||u.backgroundColor,background:u.color}),u},_=(e,n,o,r)=>{const a=A(),{cssVars:c}=a,s={value:e},m=!o&&!r;let u,d;if(k(e)){if(m&&a.useVariable){const i={},t={};for(const f in e)f.startsWith("@")?k(e[f])&&(i[f.slice(1)]=e[f]):t[f]=e[f];(Object.keys(i).length||Object.keys(t).length)&&(d=x(i,n,a,t),Object.assign(s,d))}else if(m){const i={},t={};for(const f in e)f.startsWith("@")?k(e[f])&&(i[f.slice(1)]=e[f]):t[f]=e[f];u=J(i,n,a,t),Object.assign(s,u)}for(const i in e){const t=i.slice(0,1),f=e[i];if(t==="@"||t===":"||t==="."){const p=t==="@"&&i;s[i]=_(f,n,i,r||p)}else if(!m){const p=q(n,i,f,r),b=[...new Set([r,o].filter(g=>g).map(g=>g.slice(1)))],h=b.length?"-"+b.join("-"):"",l=`--${a.varPrefix?a.varPrefix+"-":""}theme-${n}${h}-${i}`;a.useVariable?(a.useThemeSuffixedVars&&(c[l]=p),s[i]=`var(${l})`):s[i]=p,s[`.${i}`]={[i]:s[i]}}}if(u)for(const i in u){const t=i.slice(0,1);(t==="."||t===":")&&k(e[i])&&(s[i]=u[i])}if(d)for(const i in d){const t=i.slice(0,1);(t==="."||t===":")&&k(e[i])&&(s[i]=d[i])}!s[".inversed"]&&(s.background||s.color||s.backgroundColor)&&(s[".inversed"]={color:s.background||s.backgroundColor,background:s.color})}if(T(e)&&C(e)){const t=a.theme[e.slice(2)];return M(t,r)}return s},E=(e,n)=>{const o={};for(const r in e){const a=r.slice(0,1);if(k(e[r]))if(n&&ie(r))o[r]=j({},e[r]);else{if(a==="@")continue;a===":"?o[`&${r}`]=E(e[r],n):a==="."&&(o[`&${r}`]=E(e[r],n))}else o[r]=e[r]}return o},X=(e,n)=>{const o=n.shift();return e[o]?X(e[o],n):e},Y=(e,n)=>W(n)?X(e,n):T(n)&&e[n]?e[n]:e,se=(e,n)=>T(e)&&C(e)?M(e.slice(2)):e,ce=e=>se(e,ce),M=(e,n)=>{const o=A();if(T(e)&&C(e)&&(e=M(e.slice(2))),!e||!T(e)){o.verbose&&console.warn(`${e} - Theme is not a string`);return}const[r,...a]=W(e)?e:e.split(" ");let c=o.theme[r];return c&&a.length?c=Y(c,a):c&&n&&(c=Y(c,n)),E(c,!o.useVariable)};export{M as getMediaTheme,he as getTheme,_ as setMediaTheme,me as setTheme};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isString as u,isObject as
|
|
1
|
+
import{isString as u,isObject as B,exec as A}from"@symbo.ls/utils";import{getActiveConfig as C}from"../factory.js";import{getSpacingByKey as m,getColor as d,getShadow as G,getShapeByKey as I,getMediaColor as E,getTimingByKey as R,getTimingFunction as T,getSpacingBasedOnRatio as x,checkIfBoxSize as _,splitSpacedValue as z,resolveBorderValue as V}from"../system/index.js";import{getFnPrefixAndValue as $,isResolvedColor as S,isCSSVar as a,CSS_NATIVE_COLOR_REGEX as g,splitTopLevelCommas as j,splitTopLevelSpaces as p,parseColorToken as F,getSequenceValue as K}from"../utils/index.js";const L=new Set(["to","top","bottom","left","right","center","at","circle","ellipse","closest-side","farthest-side","closest-corner","farthest-corner"]),O=/^-?[A-Z][0-9]?$/,X=r=>V(r),Y=r=>{if(u(r))return g.test(r)?r:r.split(/\s+/).map(e=>{if(e=e.trim(),!e)return"";if(a(e))return`var(${e})`;if(/^\d/.test(e)||e.includes("px")||e==="0")return e;const t=d(e);return S(t)?t:e}).join(" ")},Z=(r,e)=>G(r,e),y=(r,e)=>{if(u(r))return g.test(r)?r:j(r).map(t=>(t=t.trim(),t?t.split(/\s+/).map(i=>{if(i=i.trim(),!i)return"";if(a(i))return`var(${i})`;if(i==="inset"||i==="none")return i;const n=d(i);if(S(n)){const f=E(i,e);return B(f)?Object.values(f).filter(l=>l.includes(": "+e))[0]:f}if(/^\d/.test(i)||i==="0"||i.includes("px")||i.slice(-2)==="em")return i;const s=m(i,"shadow");return s&&s.shadow?s.shadow:i}).join(" "):"")).join(", ")},W=(r,e)=>{const t=r.indexOf("(");if(t===-1)return r;const i=r.slice(0,t+1),n=r.slice(t+1,r.lastIndexOf(")")),s=")",l=j(n).map(c=>(c=c.trim(),c.split(/\s+/).map(o=>{if(!o||/^\d/.test(o)||o==="0"||L.has(o)||o==="transparent"||g.test(o))return o;const h=d(o);return S(h)?h:o}).join(" ")));return i+l.join(", ")+s},H=(r,e)=>{if(!u(r))return;const t=C();return j(r).map(i=>{const n=i.trim();if(a(n))return`var(${n})`;if(/^var\(/.test(n)||n.includes("url"))return n;if(t.gradient?.[n]){const s=E(n,e);if(u(s))return s;if(B(s)){for(const f in s)if(u(s[f]))return s[f]}return n}return n.includes("gradient")?W(n,e):n.includes("/")||n.startsWith("http")||n.includes(".")&&!F(n)?`url(${n})`:n}).join(", ")},J=r=>u(r)&&p(r).map(e=>m(e,"gap").gap).join(" "),N=r=>{if(!u(r))return r;const e=C();return p(r).map(t=>O.test(t)?K(t,e.spacing):t).join(" ")},q=r=>{if(!u(r))return;const e=r.split(" ");return e.length?e.map(t=>a(t)?`var(${t})`:t.length<3||t.includes("ms")?R(t).timing||t:T(t)?T(t):t).join(" "):r},k=(r,e,t)=>{if(u(r))return r.split(",").map(i=>R(i).timing||i).join(",")},v=r=>{if(!u(r))return;const e=r.split(",");if(e.length)return e.map(q).join(",")};function D(r,e,t={},i={}){let n=A.call(this,e||t[r]);if(n==null)return;let s;if(u(n)){if(/^(?:env|var)\(/.test(n.trim()))return{[r]:n};if(n.includes("(")){const c=$(n);s=c[0],n=c[1]}const f=t.scaleBoxSize,l=_(r);!f&&l&&!i.ratio&&(n=z(n))}return i.ratio?x(t,r,n,s):m(n,r,void 0,s)}const rr=(r,e=null,t)=>D(r,e,t,{ratio:!0}),b=(r,e,t)=>u(r)?p(r).map(i=>O.test(i)?x(e,t,i)[t]:i).join(" "):r,tr=(r,e,t,i="borderRadius")=>{if(u(r))return{[i]:p(r).map(n=>{const s=I(n);return s!==void 0?b(s,e,t):x(e,t,n)[t]}).join(" ")}};export{W as resolveColorsInGradient,v as splitTransition,H as transformBackgroundImage,X as transformBorder,tr as transformBorderRadius,y as transformBoxShadow,k as transformDuration,N as transformGridTemplate,Z as transformShadow,D as transformSize,rr as transformSizeRatio,Y as transformTextStroke,q as transformTransition,J as transfromGap};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isString as V}from"@symbo.ls/utils";import{toDashCase as
|
|
1
|
+
import{isString as V}from"@symbo.ls/utils";import{toDashCase as T}from"@symbo.ls/utils";import{isLoudDevRuntime as _}from"@symbo.ls/utils";import{getActiveConfig as A}from"../factory.js";import{isRawUnitValue as N,isScalingUnit as E}from"./unit.js";import{isCSSVar as j}from"./color.js";const S={"-6":"U","-5":"V","-4":"W","-3":"X","-2":"Y","-1":"Z",0:"A",1:"B",2:"C",3:"D",4:"E",5:"F",6:"G",7:"H",8:"I",9:"J",10:"K",11:"L",12:"M",13:"N",14:"O",15:"P",16:"Q",17:"R",18:"S",19:"T"},y=(t,n)=>{const{key:e,variable:r,value:s,scaling:i,index:o,scalingVariable:l}=t;n.sequence[e]={key:e,decimal:~~(s*100)/100,val:~~s,scaling:i,index:o,scalingVariable:l,variable:r},n.scales[e]=i;const a=L.has(n.unit)?"rem":n.unit;n.vars[r]=i+a},z=t=>{if(!t.includes("("))return t;const n=t.trim(),e=n.indexOf("("),r=n.slice(0,e);let s=0,i=-1;for(let o=e;o<n.length;o++){const l=n[o];if(l==="(")s++;else if(l===")"&&(s--,s===0)){i=o;break}}return i===-1||/\s/.test(r)||n.slice(i+1).trim()!==""?[void 0,t]:[r,n.slice(e+1,i)]},M="\0",D=(t,n)=>{let e="",r=0,s="";for(const i of t){if(r===0&&i!=="("){e+=i;continue}s+=i,i==="("?r++:i===")"&&(r--,r===0&&(e+=M+n.length+M,n.push(s),s=""))}return e+s},F=(t,n)=>t.indexOf(M)===-1?t:t.replace(/\u0000(\d+)\u0000/g,(e,r)=>n[Number(r)]),G=/^(calc|min|max|clamp)\((.*)\)$/,k=(t,n)=>{const e=G.exec(t);return e?`${e[1]}(${K(e[2],n)})`:t.indexOf("(")!==-1?t:U(t,n)},L=new Set(["vw","vh","vmin","vmax","svw","svh","lvw","lvh","dvw","dvh"]),C=(t,n)=>{const{base:e,type:r,unit:s}=n,i=L.has(s)?"rem":s,o=(E(i)?1:e)+i;if(t===0)return o;const a="--"+(n.varPrefix?n.varPrefix+"-":"")+(r&&r.replace(".","-")),d=`${a}-ratio`;if(t>0){const u=S[t-1];return`calc(var(${a}-${u}) * var(${d}))`}if(t<0){const u=S[t+1],g=Math.abs(t),h=Math.pow(I,2*g),m=S[g];return m?`max(calc(var(${a}-${u}) / var(${d})), calc(var(${a}-${m}) / ${h.toFixed(4)}))`:`calc(var(${a}-${u}) / var(${d}))`}},H=(t,n,e,r)=>{const{type:s}=r,o=t===2&&n.length===2?t+1:t,d=`${"--"+(r.varPrefix?r.varPrefix+"-":"")+(s&&s.replace(".","-"))}-sub-ratio-`;return`calc(var(${e}) * var(${d+o}))`},O=(t,n)=>{const r=(t*n-t)/1.618,s=t*n-r,i=t+r,o=(s+i)/2;return[s,o,i]},q=(t,n)=>O(t,n).map(e=>e/t),R=(t,n)=>{const{key:e,base:r,value:s,ratio:i,variable:o,index:l}=t,d=~~(s*i)-~~s;let u;const[g,h,m]=O(s,i);d>16?u=[g,h,m]:u=[g,m],u.forEach((p,c)=>{const $=~~(p/r*1e3)/1e3,b=o+(c+1),w=l+(c+1)/10,f=H(c+1,u,o,n),x={key:e+(c+1),variable:b,value:p,scaling:$,scalingVariable:f,index:w};y(x,n)})},I=1.618,W=(t,n,e)=>{if(t>=0)return n*Math.pow(e,t);const r=Math.abs(t),s=n*Math.pow(e,t),i=n*Math.pow(e,r)/Math.pow(I,2*r);return Math.max(s,i)},tt=t=>{const{type:n,base:e,ratio:r,range:s,subSequence:i}=t,o=Math.abs(s[0])+Math.abs(s[1]),a="--"+(t.varPrefix?t.varPrefix+"-":"")+(n&&n.replace(".","-"))+"-";for(let d=0;d<=o;d++){const u=s[1]-d,g=S[u],h=W(u,e,r),m=~~(h/e*100)/100,p=a+g,c=C(u,t),$={key:g,variable:p,value:h,base:e,scaling:m,scalingVariable:c,ratio:r,index:u};y($,t),i&&R($,t)}return t},nt=(t,n=0)=>{const{type:e,base:r,ratio:s,subSequence:i}=t,o=V(n)?n:S[n],l=V(n)?Object.entries(S).find(([,$])=>$===n)?.[0]:n;if(!o)return console.warn(`Position ${n} is out of range in numToLetterMap`),null;const a={sequence:{},scales:{},vars:{},...t},d=r*Math.pow(s,l),u=~~(d/r*100)/100,m="--"+(t.varPrefix?t.varPrefix+"-":"")+(e&&e.replace(".","-"))+"-"+o,p=C(l,t),c={key:o,variable:m,value:d,base:r,scaling:u,scalingVariable:p,ratio:s,index:l};return y(c,a),i&&R(c,a),a},U=(t="A",n)=>{const e=A(),{unit:r}=e;if(V(t)&&j(t))return`var(${t})`;if(V(t)&&/^(?:env|var|calc|min|max|clamp)\(/.test(t.trim()))return t;if(V(t)){const f=e.sizes;if(f){const x=f[t]||f[t.toLowerCase()];if(x!==void 0)return t.slice(0,1)==="-"?`calc(${x} * -1)`:x}}const{sequence:s,unit:i=r.default,useVariable:o}=n,l=/^-?[a-zA-Z]/i,a=l.test(t);if(N(t)||!a||["none","auto","max-content","min-content","fit-content","inherit","initial","unset","revert","revert-layer"].includes(t))return t;const h=`--${n.varPrefix?n.varPrefix+"-":""}${T(n.type.replace(".","-"))}-`,m=t.toUpperCase(),p=m.slice(0,1)==="-"?"-":"";let c=p?m.slice(1):m,$="";c.includes("_")&&($="_"+c.split("_")[1].toLowerCase(),c=c.split("_")[0]);const b=f=>l.test(f)?`var(${h}${f}${$})`:f;if(c.includes("+")){const[f,x]=c.split("+"),v=`${b(f)} + ${b(x)}`;return p?`calc((${v}) * -1)`:`calc(${v})`}else if(c.includes("*")){const[f,x]=c.split("*"),v=`${b(f)} * ${b(x)}`;return p?`calc((${v}) * -1)`:`calc(${v})`}else if(c.includes("-")){const[f,x]=c.split("-"),v=`${b(f)} - ${b(x)}`;return p?`calc((${v}) * -1)`:`calc(${v})`}if(!s[c]&&c.length===2&&(e.verbose&&console.warn(c,"- value is not found because `subSequence` is set to false"),c=c.slice(0,1)),o||e.useVariable){const f=`var(${h}${c}${$})`;return p?`calc(${f} * -1)`:f}const w=s?s[c]:null;if(!w){if(console.warn("can't find",s,c),_())throw new Error(`[smbls] Unresolvable design-system token "${t}"`+(n.type?` for sequence "${n.type}"`:"")+" \u2014 not a registered `sizes` name and not a valid spacing/typography/timing sequence letter. The CSS property using it would silently be dropped in production. Register the token in `designSystem/sizes.js` (or the relevant sequence family) or fix the typo.");return}return i==="ms"||i==="s"?p+w.val+i:p+w.scaling+i},K=(t,n)=>{if(!["+","-","*","/",","].filter(o=>t.includes(o+" ")).length)return t;const r=/(\s+-\s+|\s*[+*/,]\s*)/,s=[];return D(t,s).split(r).map(o=>{const l=F(o,s),a=l.trim();return!a||["+","-","*","/",","].includes(a)?l:k(a,n)}).join("")},et=(t,n,e,r)=>{if(typeof t!="string")return A().verbose&&console.warn(n,t,"is not a string"),{[n]:t};if(t==="-"||t==="")return{};if(!r&&t.includes("(")){if(/^(?:env|var)\(/.test(t.trim()))return{[n]:t};const i=z(t);r=i[0],t=i[1]}return["+","-","*","/",","].filter(i=>t.includes(i+" ")).length?t=K(t,e):t=U(t,e),{[n]:r?`${r}(${t})`:t}},B=(t,n)=>S[t-n],rt=t=>{const{h1Matches:n,sequence:e}=t;return new Array(6).fill(null).map((r,s)=>{const i=B(n,s);return e[i]})};export{B as findHeadingLetter,rt as findHeadings,tt as generateSequence,nt as generateSequencePosition,R as generateSubSequence,z as getFnPrefixAndValue,U as getSequenceValue,K as getSequenceValueBySymbols,et as getSequenceValuePropertyPair,q as getSubratio,O as getSubratioDifference,S as numToLetterMap,C as setScalingVar,H as setSubScalingVar};
|