stoop 0.5.3 → 0.5.4
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/create-stoop-ssr.js +9 -9
- package/dist/create-stoop.js +11 -10
- package/package.json +1 -1
package/dist/create-stoop-ssr.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
var Q0=Object.freeze({}),C=1e4,FJ=5000,HJ=10,UJ=500,
|
|
2
|
-
`)}var y=new Map;var VJ=new Map;function
|
|
3
|
-
`+X).trim()}else break;Y=$.indexOf("[data-theme=")}return $.trim()}function
|
|
1
|
+
var Q0=Object.freeze({}),C=1e4,FJ=5000,HJ=10,UJ=500,x=1000;var l=["colors","opacities","space","radii","sizes","fonts","fontWeights","fontSizes","lineHeights","letterSpacings","shadows","zIndices","transitions"],T={accentColor:"colors",animation:"transitions",animationDelay:"transitions",animationDuration:"transitions",animationTimingFunction:"transitions",backdropFilter:"shadows",background:"colors",backgroundColor:"colors",blockSize:"sizes",border:"colors",borderBlockColor:"colors",borderBlockEndColor:"colors",borderBlockStartColor:"colors",borderBottomColor:"colors",borderBottomLeftRadius:"radii",borderBottomRightRadius:"radii",borderColor:"colors",borderEndEndRadius:"radii",borderEndStartRadius:"radii",borderInlineColor:"colors",borderInlineEndColor:"colors",borderInlineStartColor:"colors",borderLeftColor:"colors",borderRadius:"radii",borderRightColor:"colors",borderStartEndRadius:"radii",borderStartStartRadius:"radii",borderTopColor:"colors",borderTopLeftRadius:"radii",borderTopRightRadius:"radii",bottom:"space",boxShadow:"shadows",caretColor:"colors",color:"colors",columnGap:"space",columnRuleColor:"colors",fill:"colors",filter:"shadows",flexBasis:"sizes",floodColor:"colors",font:"fontSizes",fontFamily:"fonts",fontSize:"fontSizes",fontWeight:"fontWeights",gap:"space",gridColumnGap:"space",gridGap:"space",gridRowGap:"space",height:"sizes",inlineSize:"sizes",inset:"space",insetBlock:"space",insetBlockEnd:"space",insetBlockStart:"space",insetInline:"space",insetInlineEnd:"space",insetInlineStart:"space",left:"space",letterSpacing:"letterSpacings",lightingColor:"colors",lineHeight:"lineHeights",margin:"space",marginBlock:"space",marginBlockEnd:"space",marginBlockStart:"space",marginBottom:"space",marginInline:"space",marginInlineEnd:"space",marginInlineStart:"space",marginLeft:"space",marginRight:"space",marginTop:"space",maxBlockSize:"sizes",maxHeight:"sizes",maxInlineSize:"sizes",maxWidth:"sizes",minBlockSize:"sizes",minHeight:"sizes",minInlineSize:"sizes",minWidth:"sizes",opacity:"opacities",outline:"colors",outlineColor:"colors",padding:"space",paddingBlock:"space",paddingBlockEnd:"space",paddingBlockStart:"space",paddingBottom:"space",paddingInline:"space",paddingInlineEnd:"space",paddingInlineStart:"space",paddingLeft:"space",paddingRight:"space",paddingTop:"space",right:"space",rowGap:"space",size:"sizes",stopColor:"colors",stroke:"colors",textDecorationColor:"colors",textEmphasisColor:"colors",textShadow:"shadows",top:"space",transition:"transitions",transitionDelay:"transitions",transitionDuration:"transitions",transitionProperty:"transitions",transitionTimingFunction:"transitions",width:"sizes",zIndex:"zIndices"},BJ=Symbol.for("stoop.component");class R extends Map{maxSize;constructor(J){super();this.maxSize=J}get(J){let $=super.get(J);if($!==void 0)super.delete(J),super.set(J,$);return $}set(J,$){if(super.has(J))super.delete(J);else if(this.size>=this.maxSize){let q=this.keys().next().value;if(q!==void 0)super.delete(q)}return super.set(J,$),this}}var LJ=new R(FJ),r=new R(C);function P(){return typeof window!=="undefined"&&typeof document!=="undefined"&&typeof window.document==="object"&&typeof document.createElement==="function"}function k(){return typeof process!=="undefined"&&process.env?.NODE_ENV==="production"}function S(J){return typeof J==="object"&&J!==null}function s(J){return typeof J==="object"&&J!==null&&"__isStoopStyled"in J&&"__stoopClassName"in J&&J.__isStoopStyled===!0}function d(J){return S(J)&&!s(J)}function a(J){return typeof J==="object"&&J!==null&&!Array.isArray(J)}function u(J){if(!J||typeof J!=="object"||Array.isArray(J))throw new Error("[Stoop] Theme must be a non-null object");if(k())return J;let $=J,q=[];for(let Y in $){if(Y==="media")continue;if(!l.includes(Y))q.push(Y)}if(q.length>0){let Y=`[Stoop] Theme contains invalid scales: ${q.join(", ")}. Only these scales are allowed: ${l.join(", ")}`;throw new Error(Y)}return J}function v(J,$){if(!$||!J||typeof J!=="object")return J;let q=Object.keys($),Y=!1;for(let w in J)if(q.includes(w)){Y=!0;break}if(!Y)return J;let G={};for(let w in J){let Q=J[w];if(q.includes(w)&&$[w])try{let W=$[w](Q);if(W&&typeof W==="object")for(let X in W)G[X]=W[X]}catch{G[w]=Q}else if(S(Q))G[w]=v(Q,$);else G[w]=Q}return G}var t=null,_J=new R(x),B0=new R(x),AJ=new R(x);function f(J){if(J.length===0)return"0";let $=2166136261,q=16777619,Y=$;for(let G=0;G<J.length;G++)Y^=J.charCodeAt(G),Y=Math.imul(Y,q);return Y^=J.length,(Y>>>0).toString(36)}function e(J){try{return f(JSON.stringify(J))}catch{return f(String(J))}}function OJ(J,$=!1){let Y=String(J).replace(/\\/g,"\\\\").replace(/"/g,"\\\"").replace(/'/g,"\\'").replace(/;/g,"\\;").replace(/\n/g,"\\A ").replace(/\r/g,"").replace(/\f/g,"\\C ");if($)Y=Y.replace(/\{/g,"\\7B ").replace(/\}/g,"\\7D ");return Y}function JJ(J){return OJ(J,!1)}function V(J){let $=_J.get(J);if($!==void 0)return $;let q=J.replace(/[^a-zA-Z0-9\s\-_>+~:.#[\]&@(),]/g,""),Y=!q.trim()||/^[>+~:.#[\]&@()\s]+$/.test(q)?"":q;return _J.set(J,Y),Y}function E(J){let $=AJ.get(J);if($!==void 0)return $;let G=J.replace(/[^a-zA-Z0-9-_]/g,"-").replace(/^[\d-]+/,"").replace(/^-+/,"")||"invalid";return AJ.set(J,G),G}function KJ(J){return OJ(J,!0)}function O(J){if(!J)return"stoop";return J.replace(/[^a-zA-Z0-9-_]/g,"").replace(/^[\d-]+/,"").replace(/^-+/,"")||"stoop"}function RJ(J){if(!J||typeof J!=="string")return"";let $=J.replace(/[^a-zA-Z0-9\s():,<>=\-@]/g,"");if(!$.trim()||!/[a-zA-Z]/.test($))return"";return $}function IJ(J){if(!J||typeof J!=="string")return!1;if(J==="from"||J==="to")return!0;if(/^\d+(\.\d+)?%$/.test(J)){let q=parseFloat(J);return q>=0&&q<=100}return!1}function MJ(J=""){if(!t){let q=":root".replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=new RegExp(`${q}\\s*\\{[\\s\\S]*\\}`)}return t}function oJ(J){if(J.includes("Color")||J==="fill"||J==="stroke"||J==="accentColor"||J==="caretColor"||J==="border"||J==="outline"||J.includes("background")&&!J.includes("Size")&&!J.includes("Image"))return"colors";if(/^(margin|padding|gap|inset|top|right|bottom|left|rowGap|columnGap|gridGap|gridRowGap|gridColumnGap)/.test(J)||J.includes("Block")||J.includes("Inline"))return"space";if(/(width|height|size|basis)$/i.test(J)||J.includes("BlockSize")||J.includes("InlineSize"))return"sizes";if(J==="fontSize"||J==="font"&&!J.includes("Family"))return"fontSizes";if(J==="fontFamily"||J.includes("FontFamily"))return"fonts";if(J==="fontWeight"||J.includes("FontWeight"))return"fontWeights";if(J==="letterSpacing"||J.includes("LetterSpacing"))return"letterSpacings";if(J.includes("Radius")||J.includes("radius"))return"radii";if(J.includes("Shadow")||J.includes("shadow")||J==="filter"||J==="backdropFilter")return"shadows";if(J==="zIndex"||J.includes("ZIndex")||J.includes("z-index"))return"zIndices";if(J==="opacity"||J.includes("Opacity"))return"opacities";if(J.startsWith("transition")||J.startsWith("animation")||J.includes("Transition")||J.includes("Animation"))return"transitions";return}function EJ(J,$){if($&&J in $)return $[J];if(J in T)return T[J];return oJ(J)}var qJ=new Map;function h(J){return qJ.has(J)}function n(J,$){qJ.set(J,$)}var $J=new R(C);function gJ(J){if(!$J.has(J))$J.set(J,!0)}function PJ(){return Array.from($J.keys()).join(`
|
|
2
|
+
`)}var y=new Map;var VJ=new Map;function xJ(J="stoop"){if(!P())throw new Error("Cannot access document in SSR context");let $=O(J),q=y.get($);if(!q||!q.parentNode){let Y=document.getElementById("stoop-ssr");if(Y){let G=Y.getAttribute("data-stoop");if(!G||G===$)return q=Y,q.setAttribute("data-stoop",$),y.set($,q),q}q=document.createElement("style"),q.setAttribute("data-stoop",$),q.setAttribute("id",`stoop-${$}`),document.head.appendChild(q),y.set($,q)}return q}function YJ(J){let $=J,q=MJ("");$=$.replace(q,"").trim();let Y=$.indexOf("[data-theme=");while(Y!==-1){let G=$.indexOf("{",Y);if(G===-1)break;let w=1,Q=G+1;while(Q<$.length&&w>0){if($[Q]==="{")w++;else if($[Q]==="}")w--;Q++}if(w===0){let W=$.substring(0,Y).trim(),X=$.substring(Q).trim();$=(W+`
|
|
3
|
+
`+X).trim()}else break;Y=$.indexOf("[data-theme=")}return $.trim()}function zJ(J,$="stoop"){if(!J)return;let q=O($),Y=`__all_theme_vars_${q}`;if((VJ.get(Y)??null)===J)return;if(VJ.set(Y,J),!P()){gJ(J);return}let w=xJ(q),Q=w.textContent||"",W=Q.includes(":root")||Q.includes("[data-theme=");if(h(Y)||W){let X=YJ(Q);w.textContent=J+(X?`
|
|
4
4
|
|
|
5
5
|
`+X:""),n(Y,J)}else w.textContent=J+(Q?`
|
|
6
6
|
|
|
7
|
-
`+Q:""),n(Y,J)}function pJ(J,$,q="stoop"){if(!P())return;let Y=
|
|
8
|
-
`:"")+J,n($,J)}function iJ(J,$,q="stoop"){if(h($))return;let Y=
|
|
7
|
+
`+Q:""),n(Y,J)}function pJ(J,$,q="stoop"){if(!P())return;let Y=O(q);if(h($))return;let G=xJ(Y),w=G.textContent||"";G.textContent=w+(w?`
|
|
8
|
+
`:"")+J,n($,J)}function iJ(J,$,q="stoop"){if(h($))return;let Y=O(q);pJ(J,$,Y)}function lJ(J="stoop"){let $=O(J);return y.get($)||null}function rJ(){return new Map(qJ)}function z(J,$="stoop",q){let Y=q||J;if(!P()){if(!h(Y))n(Y,J);gJ(J);return}iJ(J,Y,$)}function jJ(J="stoop"){if(P()){let $=O(J),q=lJ($);if(q&&q.parentNode){let Y=q.textContent||"";if(!Y&&rJ().size>0)return PJ();return Y}}return PJ()}var sJ=/(-?\$[a-zA-Z][a-zA-Z0-9]*(?:\$[a-zA-Z][a-zA-Z0-9]*)?(?:\.[a-zA-Z][a-zA-Z0-9]*)?)/g,NJ=new WeakMap;function GJ(J){let $=NJ.get(J);if($)return $;let q=new Map;function Y(G,w=[]){let Q=Object.keys(G);for(let W of Q){let X=G[W],Z=[...w,W];if(a(X))Y(X,Z);else{let D=q.get(W);if(D)D.push(Z);else q.set(W,[Z])}}}Y(J);for(let[,G]of q.entries())if(G.length>1)G.sort((w,Q)=>{let W=w.length-Q.length;if(W!==0)return W;let X=w.join("."),Z=Q.join(".");return X.localeCompare(Z)});return NJ.set(J,q),q}function aJ(J,$){let q=Object.keys(J).filter((G)=>G!=="media"),Y=Object.keys($).filter((G)=>G!=="media");if(q.length!==Y.length)return!1;for(let G of q)if(!(G in $))return!1;return!0}function TJ(J,$){if(J===$)return!0;if(!J||!$)return!1;if(!aJ(J,$))return!1;let q={...J},Y={...$};return delete q.media,delete Y.media,JSON.stringify(q)===JSON.stringify(Y)}function tJ(J,$,q){if(q&&q in J){let w=J[q];if(w&&typeof w==="object"&&!Array.isArray(w)&&$ in w)return[q,$]}let G=GJ(J).get($);if(!G||G.length===0)return null;return G[0]}function c(J,$,q,Y){if(!J.startsWith("$"))return J;let G=J.slice(1);if(G.includes("$")||G.includes("."))return`var(${`--${(G.includes("$")?G.split("$"):G.split(".")).map((D)=>E(D)).join("-")}`})`;if($&&q){let W=EJ(q,Y);if(W){let D=tJ($,G,W);if(D)return`var(${`--${D.map((U)=>E(U)).join("-")}`})`}let Z=GJ($).get(G);if(Z&&Z.length>1){if(!k()){let D=W?`Property "${q}" maps to "${W}" scale, but token not found there. `:`No scale mapping found for property "${q}". `;console.warn(`[Stoop] Ambiguous token "$${G}" found in multiple categories: ${Z.map((H)=>H.join(".")).join(", ")}. ${D}Using "${Z[0].join(".")}" (deterministic: shorter paths first, then alphabetical). Use full path "$${Z[0].join(".")}" to be explicit.`)}}if(Z&&Z.length>0){let[D]=Z;return`var(${`--${D.map((U)=>E(U)).join("-")}`})`}}else if($){let X=GJ($).get(G);if(X&&X.length>1){if(!k())console.warn(`[Stoop] Ambiguous token "$${G}" found in multiple categories: ${X.map((Z)=>Z.join(".")).join(", ")}. Using "${X[0].join(".")}" (deterministic: shorter paths first, then alphabetical). Use full path "$${X[0].join(".")}" to be explicit, or use with a CSS property for automatic resolution.`)}if(X&&X.length>0){let[Z]=X;return`var(${`--${Z.map((F)=>E(F)).join("-")}`})`}}return`var(${`--${E(G)}`})`}function XJ(J,$="stoop",q){let Y=q||":root",G=[];function w(Q,W=[]){let X=Object.keys(Q).sort();for(let Z of X){if(Z==="media")continue;let D=Q[Z],H=[...W,Z];if(a(D))w(D,H);else{let U=`--${H.map((B)=>E(B)).join("-")}`,_=typeof D==="string"||typeof D==="number"?KJ(D):String(D);G.push(` ${U}: ${_};`)}}}if(w(J),G.length===0)return"";return`${Y} {
|
|
9
9
|
${G.join(`
|
|
10
10
|
`)}
|
|
11
11
|
}`}function m(J,$="stoop",q="data-theme"){let Y=[];for(let[G,w]of Object.entries(J)){let Q=`[${q}="${G}"]`,W=XJ(w,$,Q);if(W)Y.push(W)}return Y.join(`
|
|
12
12
|
|
|
13
|
-
`)}function j(J,$,q,Y){if(!J||typeof J!=="object")return J;let G=Object.keys(J),w=!1;for(let X of G){let Z=J[X];if(typeof Z==="string"&&Z.includes("$")){w=!0;break}}if(!w&&!$)return J;let Q={},W=!1;for(let X of G){let Z=J[X];if(S(Z)){let D=j(Z,$,q,void 0);if(Q[X]=D,D!==Z)W=!0}else if(typeof Z==="string"&&Z.includes("$")){W=!0;let D=Y||X;if(Z.startsWith("$")&&!Z.includes(" ")&&!Z.includes("calc(")&&Z===Z.trim())if(Z.startsWith("-$")){let F=Z.slice(1);if(F.includes(".")||F.includes("$")){let U=F.includes("$")?F.split("$"):F.split("."),_=!1;for(let B=0;B<U.length;B++){let
|
|
14
|
-
`}else{let N=XJ(X,W);if(N)
|
|
15
|
-
`}let i=jJ(),wJ=YJ(i).trim();if(wJ)
|
|
16
|
-
`:"")+wJ;return
|
|
13
|
+
`)}function j(J,$,q,Y){if(!J||typeof J!=="object")return J;let G=Object.keys(J),w=!1;for(let X of G){let Z=J[X];if(typeof Z==="string"&&Z.includes("$")){w=!0;break}}if(!w&&!$)return J;let Q={},W=!1;for(let X of G){let Z=J[X];if(S(Z)){let D=j(Z,$,q,void 0);if(Q[X]=D,D!==Z)W=!0}else if(typeof Z==="string"&&Z.includes("$")){W=!0;let D=Y||X;if(Z.startsWith("$")&&!Z.includes(" ")&&!Z.includes("calc(")&&Z===Z.trim())if(Z.startsWith("-$")){let F=Z.slice(1);if(F.includes(".")||F.includes("$")){let U=F.includes("$")?F.split("$"):F.split("."),_=!1;for(let B=0;B<U.length;B++){let A=U[B];for(let K=0;K<A.length;K++){let L=A.charCodeAt(K);if(!(L>=48&&L<=57||L>=65&&L<=90||L>=97&&L<=122||L===45||L===95)){_=!0;break}}if(_)break}if(_){let A=`--${U.map((K)=>E(K)).join("-")}`;Q[X]=`calc(-1 * var(${A}))`}else{let B=`--${U.join("-")}`;Q[X]=`calc(-1 * var(${B}))`}}else{let U=c(F,$,D,q);Q[X]=`calc(-1 * ${U})`}}else{let F=Z.slice(1);if(F.includes(".")||F.includes("$")){let U=F.includes("$")?F.split("$"):F.split("."),_=!1;for(let B=0;B<U.length;B++){let A=U[B];for(let K=0;K<A.length;K++){let L=A.charCodeAt(K);if(!(L>=48&&L<=57||L>=65&&L<=90||L>=97&&L<=122||L===45||L===95)){_=!0;break}}if(_)break}if(_){let A=`--${U.map((K)=>E(K)).join("-")}`;Q[X]=`var(${A})`}else{let B=`--${U.join("-")}`;Q[X]=`var(${B})`}}else Q[X]=c(Z,$,D,q)}else Q[X]=Z.replace(sJ,(F)=>{if(F.startsWith("-$")){let U=F.slice(1);return`calc(-1 * ${c(U,$,D,q)})`}return c(F,$,D,q)})}else Q[X]=Z}if(!W)return J;return Q}var M=new R(x);function eJ(J){return J.replace(/([A-Z])/g,"-$1").toLowerCase()}function J0(J){if(J===J.toUpperCase()&&J.length>1)return J.charAt(0)+J.slice(1).toLowerCase();return J}function o(J){if(!J)return"";return J.charAt(0).toLowerCase()+J.slice(1).replace(/([A-Z])/g,"-$1").toLowerCase()}function b(J){if(!J||typeof J!=="string")return"";let $=M.get(J);if($!==void 0)return $;if(/^-[a-z]+-/.test(J))return M.set(J,J),J;let q=J0(J);if(/^[Mm]oz/i.test(q)){if(q.length===3||q.toLowerCase()==="moz")return M.set(J,"-moz"),"-moz";let Q=q.match(/^[Mm]oz(.+)$/i);if(Q&&Q[1]){let[,W]=Q,X=o(W);if(X){let Z=`-moz-${X}`;return M.set(J,Z),Z}}}if(/^[Ww]ebkit/i.test(q)){if(q.length===6||q.toLowerCase()==="webkit")return M.set(J,"-webkit"),"-webkit";let Q=q.match(/^[Ww]ebkit(.+)$/i);if(Q&&Q[1]){let[,W]=Q,X=o(W);if(X){let Z=`-webkit-${X}`;return M.set(J,Z),Z}}}if(/^[Mm]s/i.test(q)){if(q.length===2||q.toLowerCase()==="ms")return M.set(J,"-ms"),"-ms";let Q=q.match(/^[Mm]s(.+)$/i);if(Q&&Q[1]){let[,W]=Q,X=o(W);if(X){let Z=`-ms-${X}`;return M.set(J,Z),Z}}}if(/^O/i.test(q)){if(q.length===1||q.toLowerCase()==="o")return M.set(J,"-o"),"-o";if(/^O[A-Z]/.test(q)){let Q=q.substring(1),W=o(Q);if(W){let X=`-o-${W}`;return M.set(J,X),X}}}let w=eJ(q).replace(/[^a-zA-Z0-9-]/g,"").replace(/^-+|-+$/g,"").replace(/^\d+/,"")||"";return M.set(J,w),w}var $0=new Set(["width","height","min-width","min-height","max-width","max-height","top","right","bottom","left","margin","margin-top","margin-right","margin-bottom","margin-left","padding","padding-top","padding-right","padding-bottom","padding-left","border-width","border-top-width","border-right-width","border-bottom-width","border-left-width","border-radius","border-top-left-radius","border-top-right-radius","border-bottom-left-radius","border-bottom-right-radius","font-size","letter-spacing","word-spacing","text-indent","flex-basis","gap","row-gap","column-gap","grid-template-rows","grid-template-columns","grid-auto-rows","grid-auto-columns","perspective","outline-width","outline-offset","clip","vertical-align","object-position","background-position","background-size","mask-position","mask-size","scroll-margin","scroll-padding","shape-margin"]);function vJ(J){return $0.has(J)}function fJ(J,$){if(typeof $==="string"){if(vJ(J)&&/^-?\d+\.?\d*$/.test($.trim()))return`${$}px`;return $}if(typeof $==="number"&&vJ(J))return`${$}px`;return String($)}function bJ(J,$){if(typeof J==="symbol"&&J===BJ)return!0;if(s($))return!0;if(typeof J==="string"&&J.startsWith("__STOOP_COMPONENT_"))return!0;return!1}function q0(J,$){if(typeof $==="object"&&$!==null&&"__stoopClassName"in $&&typeof $.__stoopClassName==="string")return $.__stoopClassName;if(typeof J==="string"&&J.startsWith("__STOOP_COMPONENT_"))return J.replace("__STOOP_COMPONENT_","");return""}function I(J,$="",q=0,Y){if(!J||typeof J!=="object")return"";if(q>HJ)return"";let G=[],w=[],Q=$===""?Object.keys(J).sort():Object.keys(J);for(let X of Q){let Z=J[X];if(bJ(X,Z)){let D=q0(X,Z);if(!D)continue;let H=V(D);if(!H)continue;let F=$?`${$} .${H}`:`.${H}`,U=d(Z)?I(Z,F,q+1,Y):"";if(U)w.push(U);continue}if(d(Z))if(Y&&X in Y){let D=RJ(Y[X]);if(D){let H=I(Z,$,q+1,Y);if(H)w.push(`${D} { ${H} }`)}}else if(X.startsWith("@")){let D=V(X);if(D){let H=I(Z,$,q+1,Y);if(H)w.push(`${D} { ${H} }`)}}else if(X.includes("&")){let D=V(X);if(D){let H=D.split("&");if($.includes(",")){let _=$.split(",").map((A)=>A.trim()).map((A)=>H.join(A)).join(", "),B=I(Z,_,q+1,Y);if(B)w.push(B)}else{let F=H.join($),U=I(Z,F,q+1,Y);if(U)w.push(U)}}}else if(X.startsWith(":")){let D=V(X);if(D){let H=`${$}${D}`,F=I(Z,H,q+1,Y);if(F)w.push(F)}}else if(X.includes(",")){let H=X.split(",").map((F)=>F.trim()).map((F)=>V(F)).filter((F)=>F);if(H.length>0){let F=H.join(", "),U=I(Z,F,q+1,Y);if(U)w.push(U)}}else if(X.includes(" ")||X.includes(">")||X.includes("+")||X.includes("~")){let D=V(X);if(D){let F=/^[\s>+~]/.test(D.trim())?`${$}${D}`:`${$} ${D}`,U=I(Z,F,q+1,Y);if(U)w.push(U)}}else{let D=V(X);if(D){let H=$?`${$} ${D}`:D,F=I(Z,H,q+1,Y);if(F)w.push(F)}}else if(Z!==void 0){let D=b(X);if(D&&(typeof Z==="string"||typeof Z==="number")){let H=fJ(D,Z);if(D==="content"&&H==="")G.push(`${D}: "";`);else{let F=JJ(H);G.push(`${D}: ${F};`)}}}}let W=[];if(G.length>0)W.push(`${$} { ${G.join(" ")} }`);return W.push(...w),W.join("")}function Y0(J,$){if(!J||typeof J!=="object")return"";let q=[],Y=Object.keys(J).sort();for(let G of Y){let w=J[G];if(d(w))return"";if($&&G in $)return"";if(G.startsWith("@")||G.includes("&")||G.startsWith(":")||G.includes(" ")||G.includes(">")||G.includes("+")||G.includes("~"))return"";if(w!==void 0&&!bJ(G,w)){let Q=b(G);if(Q&&(typeof w==="string"||typeof w==="number")){let W=fJ(Q,w);if(Q==="content"&&W==="")q.push(`${Q}: "";`);else{let X=JJ(W);q.push(`${Q}: ${X};`)}}}}return q.join(" ")}function p(J,$,q="stoop",Y,G,w){let Q=O(q),W=v(J,G),X=j(W,$,w),Z=Y0(X,Y),D,H;if(Z)D=Z,H=f(D);else D=I(X,"",0,Y),H=f(D);let F=Q?`${Q}-${H}`:`css-${H}`,U=`${Q}:${F}`,_=r.get(U);if(_)return z(_,Q,U),F;let B;if(Z)B=`.${F} { ${Z} }`;else B=I(X,`.${F}`,0,Y);return r.set(U,B),LJ.set(U,F),z(B,Q,U),F}var CJ=new Map;function kJ(J,$="stoop"){let q=$||"";CJ.set(q,J)}function G0(J="stoop"){let $=J||"";return CJ.get($)||null}function QJ(J,$){let q={...J},Y=Object.keys($);for(let G of Y){if(G==="media")continue;let w=$[G],Q=J[G];if(w&&typeof w==="object"&&!Array.isArray(w)&&Q&&typeof Q==="object"&&!Array.isArray(Q))q[G]={...Q,...w};else if(w!==void 0)q[G]=w}return q}function ZJ(J,$="stoop"){let q=G0($);if(!q)return J;if(TJ(J,q))return J;return QJ(q,J)}function SJ(J,$="stoop",q="data-theme"){if(!P())return;let Y={};for(let[w,Q]of Object.entries(J))Y[w]=ZJ(Q,$);let G=m(Y,$,q);zJ(G,$)}function dJ(J){return function $(q={}){let Y=u(q);return QJ(J,Y)}}function uJ(J,$="stoop",q,Y,G){return function w(Q){return p(Q,J,$,q,Y,G)}}function X0(J,$,q,Y){let G=`@keyframes ${$} {`,w=Object.keys(J).sort((Q,W)=>{let X=parseFloat(Q.replace("%","")),Z=parseFloat(W.replace("%",""));if(Q==="from")return-1;if(W==="from")return 1;if(Q==="to")return 1;if(W==="to")return-1;return X-Z});for(let Q of w){if(!IJ(Q))continue;let W=J[Q];if(!W||typeof W!=="object")continue;G+=` ${Q} {`;let X=j(W,q,Y),Z=Object.keys(X).sort();for(let D of Z){let H=X[D];if(H!==void 0&&(typeof H==="string"||typeof H==="number")){let F=b(D);if(F){let U=String(H);G+=` ${F}: ${U};`}}}G+=" }"}return G+=" }",G}function yJ(J="stoop",$,q){let Y=O(J),G=new R(UJ);return function w(Q){let W=e(Q),X=G.get(W);if(X)return X;let Z=W.slice(0,8),D=Y?`${Y}-${Z}`:`stoop-${Z}`,H=X0(Q,D,$,q),F=`__keyframes_${D}`;return z(H,Y,F),G.set(W,D),D}}var WJ=new Set;function nJ(J,$="stoop",q,Y,G){return function w(Q){let W=e(Q);if(WJ.has(W))return()=>{};WJ.add(W);let X=O($),Z=v(Q,Y),D=j(Z,J,G),H=I(D,"",0,q);return z(H,X,`__global_${W}`),()=>{WJ.delete(W)}}}function hJ(J){let{globalCss:$,media:q,prefix:Y="stoop",theme:G,themeMap:w,utils:Q}=J,W=O(Y),X=u(G),Z=X.media||q,D={...T,...w};kJ(X,W);let H=uJ(X,W,Z,Q,D),F=dJ(X),U=nJ(X,W,Z,Q,D),_=yJ(W,X,D),B=Object.freeze({...X});function A(g){for(let i of g)try{p(i,X,W,Z,Q,D)}catch{}}function K(){if(!J.themes||Object.keys(J.themes).length===0)return;SJ(J.themes,W)}function L(){let g="";if(J.themes&&Object.keys(J.themes).length>0){let N={};for(let[cJ,mJ]of Object.entries(J.themes))N[cJ]=ZJ(mJ,W);let DJ=m(N,W,"data-theme");if(DJ)g+=DJ+`
|
|
14
|
+
`}else{let N=XJ(X,W);if(N)g+=N+`
|
|
15
|
+
`}let i=jJ(),wJ=YJ(i).trim();if(wJ)g+=(g?`
|
|
16
|
+
`:"")+wJ;return g}return{config:{...J,prefix:W},createTheme:F,css:H,getCssText:L,globalCss:U,globalCssConfig:$,keyframes:_,media:Z,mergedThemeMap:D,preloadTheme:K,sanitizedPrefix:W,theme:B,utils:Q,validatedTheme:X,warmCache:A}}function Q1(J){let $=hJ(J);return{config:{...$.config,prefix:$.sanitizedPrefix},createTheme:$.createTheme,css:$.css,getCssText:$.getCssText,globalCss:$.globalCss,keyframes:$.keyframes,preloadTheme:$.preloadTheme,theme:$.theme,warmCache:$.warmCache}}export{Q1 as createStoop};
|
package/dist/create-stoop.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
var s=Object.freeze({}),a=1e4,kJ=5000,SJ=10,dJ=500,
|
|
2
|
-
`)}var qJ=new Map;var eJ=new Map;function $0(J="stoop"){if(!O())throw new Error("Cannot access document in SSR context");let $=
|
|
3
|
-
`+Q).trim()}else break;X=$.indexOf("[data-theme=")}return $.trim()}function q0(J,$="stoop"){if(!J)return;let q=
|
|
1
|
+
var s=Object.freeze({}),a=1e4,kJ=5000,SJ=10,dJ=500,y=1000,uJ=31536000,yJ="/",HJ=["colors","opacities","space","radii","sizes","fonts","fontWeights","fontSizes","lineHeights","letterSpacings","shadows","zIndices","transitions"],m={accentColor:"colors",animation:"transitions",animationDelay:"transitions",animationDuration:"transitions",animationTimingFunction:"transitions",backdropFilter:"shadows",background:"colors",backgroundColor:"colors",blockSize:"sizes",border:"colors",borderBlockColor:"colors",borderBlockEndColor:"colors",borderBlockStartColor:"colors",borderBottomColor:"colors",borderBottomLeftRadius:"radii",borderBottomRightRadius:"radii",borderColor:"colors",borderEndEndRadius:"radii",borderEndStartRadius:"radii",borderInlineColor:"colors",borderInlineEndColor:"colors",borderInlineStartColor:"colors",borderLeftColor:"colors",borderRadius:"radii",borderRightColor:"colors",borderStartEndRadius:"radii",borderStartStartRadius:"radii",borderTopColor:"colors",borderTopLeftRadius:"radii",borderTopRightRadius:"radii",bottom:"space",boxShadow:"shadows",caretColor:"colors",color:"colors",columnGap:"space",columnRuleColor:"colors",fill:"colors",filter:"shadows",flexBasis:"sizes",floodColor:"colors",font:"fontSizes",fontFamily:"fonts",fontSize:"fontSizes",fontWeight:"fontWeights",gap:"space",gridColumnGap:"space",gridGap:"space",gridRowGap:"space",height:"sizes",inlineSize:"sizes",inset:"space",insetBlock:"space",insetBlockEnd:"space",insetBlockStart:"space",insetInline:"space",insetInlineEnd:"space",insetInlineStart:"space",left:"space",letterSpacing:"letterSpacings",lightingColor:"colors",lineHeight:"lineHeights",margin:"space",marginBlock:"space",marginBlockEnd:"space",marginBlockStart:"space",marginBottom:"space",marginInline:"space",marginInlineEnd:"space",marginInlineStart:"space",marginLeft:"space",marginRight:"space",marginTop:"space",maxBlockSize:"sizes",maxHeight:"sizes",maxInlineSize:"sizes",maxWidth:"sizes",minBlockSize:"sizes",minHeight:"sizes",minInlineSize:"sizes",minWidth:"sizes",opacity:"opacities",outline:"colors",outlineColor:"colors",padding:"space",paddingBlock:"space",paddingBlockEnd:"space",paddingBlockStart:"space",paddingBottom:"space",paddingInline:"space",paddingInlineEnd:"space",paddingInlineStart:"space",paddingLeft:"space",paddingRight:"space",paddingTop:"space",right:"space",rowGap:"space",size:"sizes",stopColor:"colors",stroke:"colors",textDecorationColor:"colors",textEmphasisColor:"colors",textShadow:"shadows",top:"space",transition:"transitions",transitionDelay:"transitions",transitionDuration:"transitions",transitionProperty:"transitions",transitionTimingFunction:"transitions",width:"sizes",zIndex:"zIndices"},t=Symbol.for("stoop.component");class j extends Map{maxSize;constructor(J){super();this.maxSize=J}get(J){let $=super.get(J);if($!==void 0)super.delete(J),super.set(J,$);return $}set(J,$){if(super.has(J))super.delete(J);else if(this.size>=this.maxSize){let q=this.keys().next().value;if(q!==void 0)super.delete(q)}return super.set(J,$),this}}var hJ=new j(kJ),UJ=new j(a);function O(){return typeof window!=="undefined"&&typeof document!=="undefined"&&typeof window.document==="object"&&typeof document.createElement==="function"}function h(){return typeof process!=="undefined"&&process.env?.NODE_ENV==="production"}function e(J){return typeof J==="object"&&J!==null}function o(J){return typeof J==="object"&&J!==null&&"__isStoopStyled"in J&&"__stoopClassName"in J&&J.__isStoopStyled===!0}function JJ(J){return e(J)&&!o(J)}function FJ(J){return typeof J==="object"&&J!==null&&!Array.isArray(J)}function $J(J){if(!J||typeof J!=="object"||Array.isArray(J))throw new Error("[Stoop] Theme must be a non-null object");if(h())return J;let $=J,q=[];for(let X in $){if(X==="media")continue;if(!HJ.includes(X))q.push(X)}if(q.length>0){let X=`[Stoop] Theme contains invalid scales: ${q.join(", ")}. Only these scales are allowed: ${HJ.join(", ")}`;throw new Error(X)}return J}function S(J,$){if(!$||!J||typeof J!=="object")return J;let q=Object.keys($),X=!1;for(let Z in J)if(q.includes(Z)){X=!0;break}if(!X)return J;let Y={};for(let Z in J){let G=J[Z];if(q.includes(Z)&&$[Z])try{let D=$[Z](G);if(D&&typeof D==="object")for(let Q in D)Y[Q]=D[Q]}catch{Y[Z]=G}else if(e(G))Y[Z]=S(G,$);else Y[Z]=G}return Y}var LJ=null,cJ=new j(y),nJ=new j(y),pJ=new j(y);function d(J){if(J.length===0)return"0";let $=2166136261,q=16777619,X=$;for(let Y=0;Y<J.length;Y++)X^=J.charCodeAt(Y),X=Math.imul(X,q);return X^=J.length,(X>>>0).toString(36)}function wJ(J){try{return d(JSON.stringify(J))}catch{return d(String(J))}}function mJ(J,$=!1){let X=String(J).replace(/\\/g,"\\\\").replace(/"/g,"\\\"").replace(/'/g,"\\'").replace(/;/g,"\\;").replace(/\n/g,"\\A ").replace(/\r/g,"").replace(/\f/g,"\\C ");if($)X=X.replace(/\{/g,"\\7B ").replace(/\}/g,"\\7D ");return X}function BJ(J){return mJ(J,!1)}function b(J){let $=cJ.get(J);if($!==void 0)return $;let q=J.replace(/[^a-zA-Z0-9\s\-_>+~:.#[\]&@(),]/g,""),X=!q.trim()||/^[>+~:.#[\]&@()\s]+$/.test(q)?"":q;return cJ.set(J,X),X}function T(J){let $=pJ.get(J);if($!==void 0)return $;let Y=J.replace(/[^a-zA-Z0-9-_]/g,"-").replace(/^[\d-]+/,"").replace(/^-+/,"")||"invalid";return pJ.set(J,Y),Y}function oJ(J){return mJ(J,!0)}function z(J){if(!J)return"stoop";return J.replace(/[^a-zA-Z0-9-_]/g,"").replace(/^[\d-]+/,"").replace(/^-+/,"")||"stoop"}function iJ(J){if(!J||typeof J!=="string")return"";let $=J.replace(/[^a-zA-Z0-9\s():,<>=\-@]/g,"");if(!$.trim()||!/[a-zA-Z]/.test($))return"";return $}function lJ(J){if(!J||typeof J!=="string")return"";let $=nJ.get(J);if($!==void 0)return $;let q=J.trim().split(/\s+/),X=[];for(let Z of q){if(!Z)continue;let D=Z.replace(/[^a-zA-Z0-9-_]/g,"").replace(/^\d+/,"");if(D&&/^[a-zA-Z-_]/.test(D))X.push(D)}let Y=X.join(" ");return nJ.set(J,Y),Y}function rJ(J){if(!J||typeof J!=="string")return!1;if(J==="from"||J==="to")return!0;if(/^\d+(\.\d+)?%$/.test(J)){let q=parseFloat(J);return q>=0&&q<=100}return!1}function sJ(J=""){if(!LJ){let q=":root".replace(/[.*+?^${}()|[\]\\]/g,"\\$&");LJ=new RegExp(`${q}\\s*\\{[\\s\\S]*\\}`)}return LJ}function K0(J){if(J.includes("Color")||J==="fill"||J==="stroke"||J==="accentColor"||J==="caretColor"||J==="border"||J==="outline"||J.includes("background")&&!J.includes("Size")&&!J.includes("Image"))return"colors";if(/^(margin|padding|gap|inset|top|right|bottom|left|rowGap|columnGap|gridGap|gridRowGap|gridColumnGap)/.test(J)||J.includes("Block")||J.includes("Inline"))return"space";if(/(width|height|size|basis)$/i.test(J)||J.includes("BlockSize")||J.includes("InlineSize"))return"sizes";if(J==="fontSize"||J==="font"&&!J.includes("Family"))return"fontSizes";if(J==="fontFamily"||J.includes("FontFamily"))return"fonts";if(J==="fontWeight"||J.includes("FontWeight"))return"fontWeights";if(J==="letterSpacing"||J.includes("LetterSpacing"))return"letterSpacings";if(J.includes("Radius")||J.includes("radius"))return"radii";if(J.includes("Shadow")||J.includes("shadow")||J==="filter"||J==="backdropFilter")return"shadows";if(J==="zIndex"||J.includes("ZIndex")||J.includes("z-index"))return"zIndices";if(J==="opacity"||J.includes("Opacity"))return"opacities";if(J.startsWith("transition")||J.startsWith("animation")||J.includes("Transition")||J.includes("Animation"))return"transitions";return}function aJ(J,$){if($&&J in $)return $[J];if(J in m)return m[J];return K0(J)}var _J=new Map;function YJ(J){return _J.has(J)}function XJ(J,$){_J.set(J,$)}var AJ=new j(a);function J0(J){if(!AJ.has(J))AJ.set(J,!0)}function tJ(){return Array.from(AJ.keys()).join(`
|
|
2
|
+
`)}var qJ=new Map;var eJ=new Map;function $0(J="stoop"){if(!O())throw new Error("Cannot access document in SSR context");let $=z(J),q=qJ.get($);if(!q||!q.parentNode){let X=document.getElementById("stoop-ssr");if(X){let Y=X.getAttribute("data-stoop");if(!Y||Y===$)return q=X,q.setAttribute("data-stoop",$),qJ.set($,q),q}q=document.createElement("style"),q.setAttribute("data-stoop",$),q.setAttribute("id",`stoop-${$}`),document.head.appendChild(q),qJ.set($,q)}return q}function OJ(J){let $=J,q=sJ("");$=$.replace(q,"").trim();let X=$.indexOf("[data-theme=");while(X!==-1){let Y=$.indexOf("{",X);if(Y===-1)break;let Z=1,G=Y+1;while(G<$.length&&Z>0){if($[G]==="{")Z++;else if($[G]==="}")Z--;G++}if(Z===0){let D=$.substring(0,X).trim(),Q=$.substring(G).trim();$=(D+`
|
|
3
|
+
`+Q).trim()}else break;X=$.indexOf("[data-theme=")}return $.trim()}function q0(J,$="stoop"){if(!J)return;let q=z($),X=`__all_theme_vars_${q}`;if((eJ.get(X)??null)===J)return;if(eJ.set(X,J),!O()){J0(J);return}let Z=$0(q),G=Z.textContent||"",D=G.includes(":root")||G.includes("[data-theme=");if(YJ(X)||D){let Q=OJ(G);Z.textContent=J+(Q?`
|
|
4
4
|
|
|
5
5
|
`+Q:""),XJ(X,J)}else Z.textContent=J+(G?`
|
|
6
6
|
|
|
7
|
-
`+G:""),XJ(X,J)}function
|
|
8
|
-
`:"")+J,XJ($,J)}function
|
|
7
|
+
`+G:""),XJ(X,J)}function V0(J,$,q="stoop"){if(!O())return;let X=z(q);if(YJ($))return;let Y=$0(X),Z=Y.textContent||"";Y.textContent=Z+(Z?`
|
|
8
|
+
`:"")+J,XJ($,J)}function z0(J,$,q="stoop"){if(YJ($))return;let X=z(q);V0(J,$,X)}function P0(J="stoop"){let $=z(J);return qJ.get($)||null}function j0(){return new Map(_J)}function c(J,$="stoop",q){let X=q||J;if(!O()){if(!YJ(X))XJ(X,J);J0(J);return}z0(J,X,$)}function X0(J="stoop"){if(O()){let $=z(J),q=P0($);if(q&&q.parentNode){let X=q.textContent||"";if(!X&&j0().size>0)return tJ();return X}}return tJ()}var x0=/(-?\$[a-zA-Z][a-zA-Z0-9]*(?:\$[a-zA-Z][a-zA-Z0-9]*)?(?:\.[a-zA-Z][a-zA-Z0-9]*)?)/g,Y0=new WeakMap;function IJ(J){let $=Y0.get(J);if($)return $;let q=new Map;function X(Y,Z=[]){let G=Object.keys(Y);for(let D of G){let Q=Y[D],W=[...Z,D];if(FJ(Q))X(Q,W);else{let H=q.get(D);if(H)H.push(W);else q.set(D,[W])}}}X(J);for(let[,Y]of q.entries())if(Y.length>1)Y.sort((Z,G)=>{let D=Z.length-G.length;if(D!==0)return D;let Q=Z.join("."),W=G.join(".");return Q.localeCompare(W)});return Y0.set(J,q),q}function N0(J,$){let q=Object.keys(J).filter((Y)=>Y!=="media"),X=Object.keys($).filter((Y)=>Y!=="media");if(q.length!==X.length)return!1;for(let Y of q)if(!(Y in $))return!1;return!0}function G0(J,$){if(J===$)return!0;if(!J||!$)return!1;if(!N0(J,$))return!1;let q={...J},X={...$};return delete q.media,delete X.media,JSON.stringify(q)===JSON.stringify(X)}function g0(J,$,q){if(q&&q in J){let Z=J[q];if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&$ in Z)return[q,$]}let Y=IJ(J).get($);if(!Y||Y.length===0)return null;return Y[0]}function GJ(J,$,q,X){if(!J.startsWith("$"))return J;let Y=J.slice(1);if(Y.includes("$")||Y.includes("."))return`var(${`--${(Y.includes("$")?Y.split("$"):Y.split(".")).map((H)=>T(H)).join("-")}`})`;if($&&q){let D=aJ(q,X);if(D){let H=g0($,Y,D);if(H)return`var(${`--${H.map((L)=>T(L)).join("-")}`})`}let W=IJ($).get(Y);if(W&&W.length>1){if(!h()){let H=D?`Property "${q}" maps to "${D}" scale, but token not found there. `:`No scale mapping found for property "${q}". `;console.warn(`[Stoop] Ambiguous token "$${Y}" found in multiple categories: ${W.map((F)=>F.join(".")).join(", ")}. ${H}Using "${W[0].join(".")}" (deterministic: shorter paths first, then alphabetical). Use full path "$${W[0].join(".")}" to be explicit.`)}}if(W&&W.length>0){let[H]=W;return`var(${`--${H.map((L)=>T(L)).join("-")}`})`}}else if($){let Q=IJ($).get(Y);if(Q&&Q.length>1){if(!h())console.warn(`[Stoop] Ambiguous token "$${Y}" found in multiple categories: ${Q.map((W)=>W.join(".")).join(", ")}. Using "${Q[0].join(".")}" (deterministic: shorter paths first, then alphabetical). Use full path "$${Q[0].join(".")}" to be explicit, or use with a CSS property for automatic resolution.`)}if(Q&&Q.length>0){let[W]=Q;return`var(${`--${W.map((U)=>T(U)).join("-")}`})`}}return`var(${`--${T(Y)}`})`}function RJ(J,$="stoop",q){let X=q||":root",Y=[];function Z(G,D=[]){let Q=Object.keys(G).sort();for(let W of Q){if(W==="media")continue;let H=G[W],F=[...D,W];if(FJ(H))Z(H,F);else{let L=`--${F.map((w)=>T(w)).join("-")}`,_=typeof H==="string"||typeof H==="number"?oJ(H):String(H);Y.push(` ${L}: ${_};`)}}}if(Z(J),Y.length===0)return"";return`${X} {
|
|
9
9
|
${Y.join(`
|
|
10
10
|
`)}
|
|
11
|
-
}`}function QJ(J,$="stoop",q="data-theme"){let X=[];for(let[Y,Z]of Object.entries(J)){let G=`[${q}="${Y}"]`,
|
|
11
|
+
}`}function QJ(J,$="stoop",q="data-theme"){let X=[];for(let[Y,Z]of Object.entries(J)){let G=`[${q}="${Y}"]`,D=RJ(Z,$,G);if(D)X.push(D)}return X.join(`
|
|
12
12
|
|
|
13
|
-
`)}function h(J,$,q,X){if(!J||typeof J!=="object")return J;let Y=Object.keys(J),Z=!1;for(let Q of Y){let D=J[Q];if(typeof D==="string"&&D.includes("$")){Z=!0;break}}if(!Z&&!$)return J;let G={},W=!1;for(let Q of Y){let D=J[Q];if(e(D)){let U=h(D,$,q,void 0);if(G[Q]=U,U!==D)W=!0}else if(typeof D==="string"&&D.includes("$")){W=!0;let U=X||Q;if(D.startsWith("$")&&!D.includes(" ")&&!D.includes("calc(")&&D===D.trim())if(D.startsWith("-$")){let F=D.slice(1);if(F.includes(".")||F.includes("$")){let L=F.includes("$")?F.split("$"):F.split("."),_=!1;for(let w=0;w<L.length;w++){let B=L[w];for(let I=0;I<B.length;I++){let A=B.charCodeAt(I);if(!(A>=48&&A<=57||A>=65&&A<=90||A>=97&&A<=122||A===45||A===95)){_=!0;break}}if(_)break}if(_){let B=`--${L.map((I)=>v(I)).join("-")}`;G[Q]=`calc(-1 * var(${B}))`}else{let w=`--${L.join("-")}`;G[Q]=`calc(-1 * var(${w}))`}}else{let L=GJ(F,$,U,q);G[Q]=`calc(-1 * ${L})`}}else{let F=D.slice(1);if(F.includes(".")||F.includes("$")){let L=F.includes("$")?F.split("$"):F.split("."),_=!1;for(let w=0;w<L.length;w++){let B=L[w];for(let I=0;I<B.length;I++){let A=B.charCodeAt(I);if(!(A>=48&&A<=57||A>=65&&A<=90||A>=97&&A<=122||A===45||A===95)){_=!0;break}}if(_)break}if(_){let B=`--${L.map((I)=>v(I)).join("-")}`;G[Q]=`var(${B})`}else{let w=`--${L.join("-")}`;G[Q]=`var(${w})`}}else G[Q]=GJ(D,$,U,q)}else G[Q]=D.replace(x0,(F)=>{if(F.startsWith("-$")){let L=F.slice(1);return`calc(-1 * ${GJ(L,$,U,q)})`}return GJ(F,$,U,q)})}else G[Q]=D}if(!W)return J;return G}var g=new V(d);function v0(J){return J.replace(/([A-Z])/g,"-$1").toLowerCase()}function T0(J){if(J===J.toUpperCase()&&J.length>1)return J.charAt(0)+J.slice(1).toLowerCase();return J}function ZJ(J){if(!J)return"";return J.charAt(0).toLowerCase()+J.slice(1).replace(/([A-Z])/g,"-$1").toLowerCase()}function i(J){if(!J||typeof J!=="string")return"";let $=g.get(J);if($!==void 0)return $;if(/^-[a-z]+-/.test(J))return g.set(J,J),J;let q=T0(J);if(/^[Mm]oz/i.test(q)){if(q.length===3||q.toLowerCase()==="moz")return g.set(J,"-moz"),"-moz";let G=q.match(/^[Mm]oz(.+)$/i);if(G&&G[1]){let[,W]=G,Q=ZJ(W);if(Q){let D=`-moz-${Q}`;return g.set(J,D),D}}}if(/^[Ww]ebkit/i.test(q)){if(q.length===6||q.toLowerCase()==="webkit")return g.set(J,"-webkit"),"-webkit";let G=q.match(/^[Ww]ebkit(.+)$/i);if(G&&G[1]){let[,W]=G,Q=ZJ(W);if(Q){let D=`-webkit-${Q}`;return g.set(J,D),D}}}if(/^[Mm]s/i.test(q)){if(q.length===2||q.toLowerCase()==="ms")return g.set(J,"-ms"),"-ms";let G=q.match(/^[Mm]s(.+)$/i);if(G&&G[1]){let[,W]=G,Q=ZJ(W);if(Q){let D=`-ms-${Q}`;return g.set(J,D),D}}}if(/^O/i.test(q)){if(q.length===1||q.toLowerCase()==="o")return g.set(J,"-o"),"-o";if(/^O[A-Z]/.test(q)){let G=q.substring(1),W=ZJ(G);if(W){let Q=`-o-${W}`;return g.set(J,Q),Q}}}let Z=v0(q).replace(/[^a-zA-Z0-9-]/g,"").replace(/^-+|-+$/g,"").replace(/^\d+/,"")||"";return g.set(J,Z),Z}var f0=new Set(["width","height","min-width","min-height","max-width","max-height","top","right","bottom","left","margin","margin-top","margin-right","margin-bottom","margin-left","padding","padding-top","padding-right","padding-bottom","padding-left","border-width","border-top-width","border-right-width","border-bottom-width","border-left-width","border-radius","border-top-left-radius","border-top-right-radius","border-bottom-left-radius","border-bottom-right-radius","font-size","letter-spacing","word-spacing","text-indent","flex-basis","gap","row-gap","column-gap","grid-template-rows","grid-template-columns","grid-auto-rows","grid-auto-columns","perspective","outline-width","outline-offset","clip","vertical-align","object-position","background-position","background-size","mask-position","mask-size","scroll-margin","scroll-padding","shape-margin"]);function Q0(J){return f0.has(J)}function Z0(J,$){if(typeof $==="string"){if(Q0(J)&&/^-?\d+\.?\d*$/.test($.trim()))return`${$}px`;return $}if(typeof $==="number"&&Q0(J))return`${$}px`;return String($)}function W0(J,$){if(typeof J==="symbol"&&J===t)return!0;if(m($))return!0;if(typeof J==="string"&&J.startsWith("__STOOP_COMPONENT_"))return!0;return!1}function C0(J,$){if(typeof $==="object"&&$!==null&&"__stoopClassName"in $&&typeof $.__stoopClassName==="string")return $.__stoopClassName;if(typeof J==="string"&&J.startsWith("__STOOP_COMPONENT_"))return J.replace("__STOOP_COMPONENT_","");return""}function N(J,$="",q=0,X){if(!J||typeof J!=="object")return"";if(q>SJ)return"";let Y=[],Z=[],G=$===""?Object.keys(J).sort():Object.keys(J);for(let Q of G){let D=J[Q];if(W0(Q,D)){let U=C0(Q,D);if(!U)continue;let H=b(U);if(!H)continue;let F=$?`${$} .${H}`:`.${H}`,L=JJ(D)?N(D,F,q+1,X):"";if(L)Z.push(L);continue}if(JJ(D))if(X&&Q in X){let U=iJ(X[Q]);if(U){let H=N(D,$,q+1,X);if(H)Z.push(`${U} { ${H} }`)}}else if(Q.startsWith("@")){let U=b(Q);if(U){let H=N(D,$,q+1,X);if(H)Z.push(`${U} { ${H} }`)}}else if(Q.includes("&")){let U=b(Q);if(U){let F=U.split("&").join($),L=N(D,F,q+1,X);if(L)Z.push(L)}}else if(Q.startsWith(":")){let U=b(Q);if(U){let H=`${$}${U}`,F=N(D,H,q+1,X);if(F)Z.push(F)}}else if(Q.includes(" ")||Q.includes(">")||Q.includes("+")||Q.includes("~")){let U=b(Q);if(U){let F=/^[\s>+~]/.test(U.trim())?`${$}${U}`:`${$} ${U}`,L=N(D,F,q+1,X);if(L)Z.push(L)}}else{let U=b(Q);if(U){let H=$?`${$} ${U}`:U,F=N(D,H,q+1,X);if(F)Z.push(F)}}else if(D!==void 0){let U=i(Q);if(U&&(typeof D==="string"||typeof D==="number")){let H=Z0(U,D),F=BJ(H);Y.push(`${U}: ${F};`)}}}let W=[];if(Y.length>0)W.push(`${$} { ${Y.join(" ")} }`);return W.push(...Z),W.join("")}function b0(J,$){if(!J||typeof J!=="object")return"";let q=[],X=Object.keys(J).sort();for(let Y of X){let Z=J[Y];if(JJ(Z))return"";if($&&Y in $)return"";if(Y.startsWith("@")||Y.includes("&")||Y.startsWith(":")||Y.includes(" ")||Y.includes(">")||Y.includes("+")||Y.includes("~"))return"";if(Z!==void 0&&!W0(Y,Z)){let G=i(Y);if(G&&(typeof Z==="string"||typeof Z==="number")){let W=Z0(G,Z),Q=BJ(W);q.push(`${G}: ${Q};`)}}}return q.join(" ")}function c(J,$,q="stoop",X,Y,Z){let G=K(q),W=o(J,Y),Q=h(W,$,Z),D=b0(Q,X),U,H;if(D)U=D,H=C(U);else U=N(Q,"",0,X),H=C(U);let F=G?`${G}-${H}`:`css-${H}`,L=`${G}:${F}`,_=HJ.get(L);if(_)return y(_,G,L),F;let w;if(D)w=`.${F} { ${D} }`;else w=N(Q,`.${F}`,0,X);return HJ.set(L,w),hJ.set(L,F),y(w,G,L),F}var D0=new Map;function U0(J,$="stoop"){let q=$||"";D0.set(q,J)}function k0(J="stoop"){let $=J||"";return D0.get($)||null}function MJ(J,$){let q={...J},X=Object.keys($);for(let Y of X){if(Y==="media")continue;let Z=$[Y],G=J[Y];if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&G&&typeof G==="object"&&!Array.isArray(G))q[Y]={...G,...Z};else if(Z!==void 0)q[Y]=Z}return q}function EJ(J,$="stoop"){let q=k0($);if(!q)return J;if(G0(J,q))return J;return MJ(q,J)}function WJ(J,$="stoop",q="data-theme"){if(!O())return;let X={};for(let[Z,G]of Object.entries(J))X[Z]=EJ(G,$);let Y=QJ(X,$,q);q0(Y,$)}function H0(J){return function $(q={}){let X=$J(q);return MJ(J,X)}}function F0(J,$="stoop",q,X,Y){return function Z(G){return c(G,J,$,q,X,Y)}}function S0(J,$,q,X){let Y=`@keyframes ${$} {`,Z=Object.keys(J).sort((G,W)=>{let Q=parseFloat(G.replace("%","")),D=parseFloat(W.replace("%",""));if(G==="from")return-1;if(W==="from")return 1;if(G==="to")return 1;if(W==="to")return-1;return Q-D});for(let G of Z){if(!rJ(G))continue;let W=J[G];if(!W||typeof W!=="object")continue;Y+=` ${G} {`;let Q=h(W,q,X),D=Object.keys(Q).sort();for(let U of D){let H=Q[U];if(H!==void 0&&(typeof H==="string"||typeof H==="number")){let F=i(U);if(F){let L=String(H);Y+=` ${F}: ${L};`}}}Y+=" }"}return Y+=" }",Y}function L0(J="stoop",$,q){let X=K(J),Y=new V(dJ);return function Z(G){let W=wJ(G),Q=Y.get(W);if(Q)return Q;let D=W.slice(0,8),U=X?`${X}-${D}`:`stoop-${D}`,H=S0(G,U,$,q),F=`__keyframes_${U}`;return y(H,X,F),Y.set(W,U),U}}var KJ=new Set;function w0(J,$="stoop",q,X,Y){return function Z(G){let W=wJ(G);if(KJ.has(W))return()=>{};KJ.add(W);let Q=K($),D=o(G,X),U=h(D,J,Y),H=N(U,"",0,q);return y(H,Q,`__global_${W}`),()=>{KJ.delete(W)}}}import{useMemo as DJ,forwardRef as d0,createElement as u0,useContext as y0,createContext as h0}from"react";function c0(J,$,q){let X=[];for(let Z in J){let G=$[Z];if(G===void 0)continue;let W=J[Z],Q=G===!0?"true":G===!1?"false":String(G);if(W[Q])X.push(W[Q])}if(X.length===0)return q;if(X.length===1)return{...q,...X[0]};let Y={...X[0]};for(let Z=1;Z<X.length;Z++)Object.assign(Y,X[Z]);return{...q,...Y}}var zJ=null;function n0(){if(!zJ)zJ=h0(null);return zJ}function p0(J){return{__isStoopStyled:!0,__stoopClassName:J,[t]:J,toString:()=>`__STOOP_COMPONENT_${J}`}}function m0(J){return m(J)}var o0=new Set(["alignContent","alignItems","alignSelf","animation","animationDelay","animationDirection","animationDuration","animationFillMode","animationIterationCount","animationName","animationPlayState","animationTimingFunction","aspectRatio","backdropFilter","backfaceVisibility","background","backgroundAttachment","backgroundBlendMode","backgroundClip","backgroundColor","backgroundImage","backgroundOrigin","backgroundPosition","backgroundRepeat","backgroundSize","border","borderBottom","borderBottomColor","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStyle","borderBottomWidth","borderCollapse","borderColor","borderImage","borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth","borderLeft","borderLeftColor","borderLeftStyle","borderLeftWidth","borderRadius","borderRight","borderRightColor","borderRightStyle","borderRightWidth","borderSpacing","borderStyle","borderTop","borderTopColor","borderTopLeftRadius","borderTopRightRadius","borderTopStyle","borderTopWidth","borderWidth","bottom","boxShadow","boxSizing","captionSide","caretColor","clear","clip","clipPath","color","columnCount","columnFill","columnGap","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columnSpan","columnWidth","columns","content","counterIncrement","counterReset","cursor","direction","display","emptyCells","filter","flex","flexBasis","flexDirection","flexFlow","flexGrow","flexShrink","flexWrap","float","font","fontFamily","fontFeatureSettings","fontKerning","fontLanguageOverride","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontSynthesis","fontVariant","fontVariantAlternates","fontVariantCaps","fontVariantEastAsian","fontVariantLigatures","fontVariantNumeric","fontVariantPosition","fontWeight","gap","grid","gridArea","gridAutoColumns","gridAutoFlow","gridAutoRows","gridColumn","gridColumnEnd","gridColumnGap","gridColumnStart","gridGap","gridRow","gridRowEnd","gridRowGap","gridRowStart","gridTemplate","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","height","hyphens","imageOrientation","imageRendering","imageResolution","imeMode","inlineSize","isolation","justifyContent","justifyItems","justifySelf","left","letterSpacing","lineHeight","listStyle","listStyleImage","listStylePosition","listStyleType","margin","marginBottom","marginLeft","marginRight","marginTop","maxHeight","maxWidth","minHeight","minWidth","objectFit","objectPosition","opacity","order","orphans","outline","outlineColor","outlineOffset","outlineStyle","outlineWidth","overflow","overflowWrap","overflowX","overflowY","padding","paddingBottom","paddingLeft","paddingRight","paddingTop","pageBreakAfter","pageBreakBefore","pageBreakInside","perspective","perspectiveOrigin","placeContent","placeItems","placeSelf","pointerEvents","position","quotes","resize","right","rowGap","scrollBehavior","tabSize","tableLayout","textAlign","textAlignLast","textDecoration","textDecorationColor","textDecorationLine","textDecorationStyle","textIndent","textJustify","textOverflow","textShadow","textTransform","textUnderlinePosition","top","transform","transformOrigin","transformStyle","transition","transitionDelay","transitionDuration","transitionProperty","transitionTimingFunction","unicodeBidi","userSelect","verticalAlign","visibility","whiteSpace","width","wordBreak","wordSpacing","wordWrap","writingMode","zIndex"]);function i0(J){return o0.has(J)}function l0(J,$){let q=$?new Set(Object.keys($)):new Set,X={},Y={},Z={};for(let G in J)if(q.has(G))X[G]=J[G];else if(i0(G))Y[G]=J[G];else Z[G]=J[G];return{cssProps:Y,elementProps:Z,variantProps:X}}function B0(J,$="stoop",q,X,Y,Z){return function G(W,Q){let D=Q||s,U;if(Q&&"variants"in Q&&typeof Q.variants==="object"&&Q.variants!==null&&!Array.isArray(Q.variants)){let B=Q.variants;if(Object.keys(B).length>0&&Object.values(B).every((A)=>typeof A==="object"&&A!==null&&!Array.isArray(A))){U=Q.variants;let{variants:A,...R}=Q;D=R}}let H;if(typeof W!=="string"&&m0(W))H=W.__stoopClassName;let F=d0(function B(I,A){let{as:R,className:P,css:x,...j}=I,k=R||W,T=DJ(()=>x&&typeof x==="object"&&x!==null?x:s,[x]),{cssProps:f,elementProps:M,variantProps:z}=l0(j,U),r=y0(Z||n0())?.theme||J,TJ=r.media?{...q,...r.media}:q,fJ=DJ(()=>{if(!U)return"";let E=Object.entries(z);if(E.length===0)return"";return E.sort(([S],[n])=>S.localeCompare(n)).map(([S,n])=>`${S}:${String(n)}`).join("|")},[z]),CJ=DJ(()=>{let E=D;if(U&&fJ)E=c0(U,z,D);if(Object.keys(f).length>0)E=Object.assign({},E,f);if(T!==s)E=Object.assign({},E,T);return E},[fJ,T,f,D,U,z]),E0=DJ(()=>{let E=[];if(H)E.push(H);let S=c(CJ,r,$,TJ,X,Y);if(S)E.push(S);if(P){let n=typeof P==="string"?P:String(P),bJ=lJ(n);if(bJ)E.push(bJ)}return E.length>0?E.join(" "):void 0},[CJ,P,H,r,$,TJ,X,Y]);return u0(k,{...M,className:E0,ref:A})}),L=C(JSON.stringify(D)),_=`${$}-${L}`,w=F;return w.selector=p0(_),w}}import{createContext as _0,useCallback as O0,useContext as r0,useLayoutEffect as l,useMemo as xJ,useRef as gJ,useState as s0}from"react";function VJ(J){if(!O())return{error:"Not in browser environment",success:!1,value:null};try{return{source:"localStorage",success:!0,value:localStorage.getItem(J)}}catch($){return{error:$ instanceof Error?$.message:"localStorage access failed",success:!1,value:null}}}function PJ(J,$){if(!O())return{error:"Not in browser environment",success:!1,value:void 0};try{return localStorage.setItem(J,$),{success:!0,value:void 0}}catch(q){return{error:q instanceof Error?q.message:"localStorage write failed",success:!1,value:void 0}}}function jJ(J){if(!O())return null;let q=`; ${document.cookie}`.split(`; ${J}=`);if(q.length===2)return q.pop()?.split(";").shift()||null;return null}function A0(J,$,q={}){if(!O())return!1;let{maxAge:X=uJ,path:Y=yJ,secure:Z=!1}=q;try{return document.cookie=`${J}=${$}; path=${Y}; max-age=${X}${Z?"; secure":""}`,!0}catch{return!1}}import{jsx as I0}from"react/jsx-runtime";function NJ(J,$,q){if(!O())return;let X=$?jJ($):null,Y=VJ(q),Z=Y.success?Y.value:null;if(X===J&&Z!==J)PJ(q,J);if(Z===J&&$&&X!==J)A0($,J)}function a0(J,$,q){if(!O())return null;if(J!==void 0){let Z=jJ(J);if(Z&&q[Z])return Z}let X=VJ($),Y=X.success?X.value:null;if(Y&&q[Y])return Y;return null}function R0(J,$,q="stoop",X,Y){let Z=_0(null),G=_0(null),W=Object.keys(J),Q=W[0]||"default",D=X&&Y?Y(X):void 0;function U({attribute:H="data-theme",children:F,cookieKey:L,defaultTheme:_,storageKey:w="stoop-theme"}){let[B,I]=s0(_||Q),A=gJ(!1);l(()=>{if(!O()||A.current)return;let M=a0(L,w,J);if(M){if(NJ(M,L,w),M!==B)I(M)}A.current=!0},[L,w,J]),l(()=>{if(!O())return;let M=(z)=>{if(z.key===w&&z.newValue&&J[z.newValue]&&z.newValue!==B)I(z.newValue),NJ(z.newValue,L,w)};return window.addEventListener("storage",M),()=>{window.removeEventListener("storage",M)}},[w,L,B,J]);let R=xJ(()=>{return J[B]||J[_||Q]||$},[B,_,Q,J,$]),P=gJ(!1),x=gJ(!1);l(()=>{if(!O()||P.current)return;WJ(J,q,H),P.current=!0},[J,q,H]),l(()=>{if(!O()||x.current)return;if(D)D(),x.current=!0},[D]),l(()=>{if(!O())return;if(H)document.documentElement.setAttribute(H,B)},[B,H]);let j=O0((M)=>{if(J[M])I(M),PJ(w,M),NJ(M,L,w);else if(!u())console.warn(`[Stoop] Theme "${M}" not found. Available themes: ${W.join(", ")}`)},[w,L,J,W,B]),k=xJ(()=>({theme:R,themeName:B}),[R,B]),T=O0(()=>{let z=(W.indexOf(B)+1)%W.length,vJ=W[z];j(vJ)},[B,j,W]),f=xJ(()=>({availableThemes:W,setTheme:j,theme:R,themeName:B,toggleTheme:T}),[R,B,j,T]);return I0(Z.Provider,{value:k,children:I0(G.Provider,{value:f,children:F})})}return{Provider:U,ThemeContext:Z,ThemeManagementContext:G}}function M0(J){return function $(){let q=r0(J);if(!q)throw new Error("useTheme must be used within a Provider");return q}}function t0(J){let{globalCss:$,media:q,prefix:X="stoop",theme:Y,themeMap:Z,utils:G}=J,W=K(X),Q=$J(Y),D=Q.media||q,U={...p,...Z};U0(Q,W);let H=F0(Q,W,D,G,U),F=H0(Q),L=w0(Q,W,D,G,U),_=L0(W,Q,U),w=Object.freeze({...Q});function B(R){for(let P of R)try{c(P,Q,W,D,G,U)}catch{}}function I(){if(!J.themes||Object.keys(J.themes).length===0)return;WJ(J.themes,W)}function A(){let R="";if(J.themes&&Object.keys(J.themes).length>0){let j={};for(let[T,f]of Object.entries(J.themes))j[T]=EJ(f,W);let k=QJ(j,W,"data-theme");if(k)R+=k+`
|
|
14
|
-
`}else{let
|
|
15
|
-
`}let
|
|
16
|
-
`:"")+
|
|
13
|
+
`)}function C(J,$,q,X){if(!J||typeof J!=="object")return J;let Y=Object.keys(J),Z=!1;for(let Q of Y){let W=J[Q];if(typeof W==="string"&&W.includes("$")){Z=!0;break}}if(!Z&&!$)return J;let G={},D=!1;for(let Q of Y){let W=J[Q];if(e(W)){let H=C(W,$,q,void 0);if(G[Q]=H,H!==W)D=!0}else if(typeof W==="string"&&W.includes("$")){D=!0;let H=X||Q;if(W.startsWith("$")&&!W.includes(" ")&&!W.includes("calc(")&&W===W.trim())if(W.startsWith("-$")){let U=W.slice(1);if(U.includes(".")||U.includes("$")){let L=U.includes("$")?U.split("$"):U.split("."),_=!1;for(let w=0;w<L.length;w++){let B=L[w];for(let I=0;I<B.length;I++){let A=B.charCodeAt(I);if(!(A>=48&&A<=57||A>=65&&A<=90||A>=97&&A<=122||A===45||A===95)){_=!0;break}}if(_)break}if(_){let B=`--${L.map((I)=>T(I)).join("-")}`;G[Q]=`calc(-1 * var(${B}))`}else{let w=`--${L.join("-")}`;G[Q]=`calc(-1 * var(${w}))`}}else{let L=GJ(U,$,H,q);G[Q]=`calc(-1 * ${L})`}}else{let U=W.slice(1);if(U.includes(".")||U.includes("$")){let L=U.includes("$")?U.split("$"):U.split("."),_=!1;for(let w=0;w<L.length;w++){let B=L[w];for(let I=0;I<B.length;I++){let A=B.charCodeAt(I);if(!(A>=48&&A<=57||A>=65&&A<=90||A>=97&&A<=122||A===45||A===95)){_=!0;break}}if(_)break}if(_){let B=`--${L.map((I)=>T(I)).join("-")}`;G[Q]=`var(${B})`}else{let w=`--${L.join("-")}`;G[Q]=`var(${w})`}}else G[Q]=GJ(W,$,H,q)}else G[Q]=W.replace(x0,(U)=>{if(U.startsWith("-$")){let L=U.slice(1);return`calc(-1 * ${GJ(L,$,H,q)})`}return GJ(U,$,H,q)})}else G[Q]=W}if(!D)return J;return G}var v=new j(y);function v0(J){return J.replace(/([A-Z])/g,"-$1").toLowerCase()}function T0(J){if(J===J.toUpperCase()&&J.length>1)return J.charAt(0)+J.slice(1).toLowerCase();return J}function ZJ(J){if(!J)return"";return J.charAt(0).toLowerCase()+J.slice(1).replace(/([A-Z])/g,"-$1").toLowerCase()}function i(J){if(!J||typeof J!=="string")return"";let $=v.get(J);if($!==void 0)return $;if(/^-[a-z]+-/.test(J))return v.set(J,J),J;let q=T0(J);if(/^[Mm]oz/i.test(q)){if(q.length===3||q.toLowerCase()==="moz")return v.set(J,"-moz"),"-moz";let G=q.match(/^[Mm]oz(.+)$/i);if(G&&G[1]){let[,D]=G,Q=ZJ(D);if(Q){let W=`-moz-${Q}`;return v.set(J,W),W}}}if(/^[Ww]ebkit/i.test(q)){if(q.length===6||q.toLowerCase()==="webkit")return v.set(J,"-webkit"),"-webkit";let G=q.match(/^[Ww]ebkit(.+)$/i);if(G&&G[1]){let[,D]=G,Q=ZJ(D);if(Q){let W=`-webkit-${Q}`;return v.set(J,W),W}}}if(/^[Mm]s/i.test(q)){if(q.length===2||q.toLowerCase()==="ms")return v.set(J,"-ms"),"-ms";let G=q.match(/^[Mm]s(.+)$/i);if(G&&G[1]){let[,D]=G,Q=ZJ(D);if(Q){let W=`-ms-${Q}`;return v.set(J,W),W}}}if(/^O/i.test(q)){if(q.length===1||q.toLowerCase()==="o")return v.set(J,"-o"),"-o";if(/^O[A-Z]/.test(q)){let G=q.substring(1),D=ZJ(G);if(D){let Q=`-o-${D}`;return v.set(J,Q),Q}}}let Z=v0(q).replace(/[^a-zA-Z0-9-]/g,"").replace(/^-+|-+$/g,"").replace(/^\d+/,"")||"";return v.set(J,Z),Z}var f0=new Set(["width","height","min-width","min-height","max-width","max-height","top","right","bottom","left","margin","margin-top","margin-right","margin-bottom","margin-left","padding","padding-top","padding-right","padding-bottom","padding-left","border-width","border-top-width","border-right-width","border-bottom-width","border-left-width","border-radius","border-top-left-radius","border-top-right-radius","border-bottom-left-radius","border-bottom-right-radius","font-size","letter-spacing","word-spacing","text-indent","flex-basis","gap","row-gap","column-gap","grid-template-rows","grid-template-columns","grid-auto-rows","grid-auto-columns","perspective","outline-width","outline-offset","clip","vertical-align","object-position","background-position","background-size","mask-position","mask-size","scroll-margin","scroll-padding","shape-margin"]);function Q0(J){return f0.has(J)}function Z0(J,$){if(typeof $==="string"){if(Q0(J)&&/^-?\d+\.?\d*$/.test($.trim()))return`${$}px`;return $}if(typeof $==="number"&&Q0(J))return`${$}px`;return String($)}function D0(J,$){if(typeof J==="symbol"&&J===t)return!0;if(o($))return!0;if(typeof J==="string"&&J.startsWith("__STOOP_COMPONENT_"))return!0;return!1}function b0(J,$){if(typeof $==="object"&&$!==null&&"__stoopClassName"in $&&typeof $.__stoopClassName==="string")return $.__stoopClassName;if(typeof J==="string"&&J.startsWith("__STOOP_COMPONENT_"))return J.replace("__STOOP_COMPONENT_","");return""}function K(J,$="",q=0,X){if(!J||typeof J!=="object")return"";if(q>SJ)return"";let Y=[],Z=[],G=$===""?Object.keys(J).sort():Object.keys(J);for(let Q of G){let W=J[Q];if(D0(Q,W)){let H=b0(Q,W);if(!H)continue;let F=b(H);if(!F)continue;let U=$?`${$} .${F}`:`.${F}`,L=JJ(W)?K(W,U,q+1,X):"";if(L)Z.push(L);continue}if(JJ(W))if(X&&Q in X){let H=iJ(X[Q]);if(H){let F=K(W,$,q+1,X);if(F)Z.push(`${H} { ${F} }`)}}else if(Q.startsWith("@")){let H=b(Q);if(H){let F=K(W,$,q+1,X);if(F)Z.push(`${H} { ${F} }`)}}else if(Q.includes("&")){let H=b(Q);if(H){let F=H.split("&");if($.includes(",")){let _=$.split(",").map((B)=>B.trim()).map((B)=>F.join(B)).join(", "),w=K(W,_,q+1,X);if(w)Z.push(w)}else{let U=F.join($),L=K(W,U,q+1,X);if(L)Z.push(L)}}}else if(Q.startsWith(":")){let H=b(Q);if(H){let F=`${$}${H}`,U=K(W,F,q+1,X);if(U)Z.push(U)}}else if(Q.includes(",")){let F=Q.split(",").map((U)=>U.trim()).map((U)=>b(U)).filter((U)=>U);if(F.length>0){let U=F.join(", "),L=K(W,U,q+1,X);if(L)Z.push(L)}}else if(Q.includes(" ")||Q.includes(">")||Q.includes("+")||Q.includes("~")){let H=b(Q);if(H){let U=/^[\s>+~]/.test(H.trim())?`${$}${H}`:`${$} ${H}`,L=K(W,U,q+1,X);if(L)Z.push(L)}}else{let H=b(Q);if(H){let F=$?`${$} ${H}`:H,U=K(W,F,q+1,X);if(U)Z.push(U)}}else if(W!==void 0){let H=i(Q);if(H&&(typeof W==="string"||typeof W==="number")){let F=Z0(H,W);if(H==="content"&&F==="")Y.push(`${H}: "";`);else{let U=BJ(F);Y.push(`${H}: ${U};`)}}}}let D=[];if(Y.length>0)D.push(`${$} { ${Y.join(" ")} }`);return D.push(...Z),D.join("")}function C0(J,$){if(!J||typeof J!=="object")return"";let q=[],X=Object.keys(J).sort();for(let Y of X){let Z=J[Y];if(JJ(Z))return"";if($&&Y in $)return"";if(Y.startsWith("@")||Y.includes("&")||Y.startsWith(":")||Y.includes(" ")||Y.includes(">")||Y.includes("+")||Y.includes("~"))return"";if(Z!==void 0&&!D0(Y,Z)){let G=i(Y);if(G&&(typeof Z==="string"||typeof Z==="number")){let D=Z0(G,Z);if(G==="content"&&D==="")q.push(`${G}: "";`);else{let Q=BJ(D);q.push(`${G}: ${Q};`)}}}}return q.join(" ")}function n(J,$,q="stoop",X,Y,Z){let G=z(q),D=S(J,Y),Q=C(D,$,Z),W=C0(Q,X),H,F;if(W)H=W,F=d(H);else H=K(Q,"",0,X),F=d(H);let U=G?`${G}-${F}`:`css-${F}`,L=`${G}:${U}`,_=UJ.get(L);if(_)return c(_,G,L),U;let w;if(W)w=`.${U} { ${W} }`;else w=K(Q,`.${U}`,0,X);return UJ.set(L,w),hJ.set(L,U),c(w,G,L),U}var W0=new Map;function H0(J,$="stoop"){let q=$||"";W0.set(q,J)}function k0(J="stoop"){let $=J||"";return W0.get($)||null}function MJ(J,$){let q={...J},X=Object.keys($);for(let Y of X){if(Y==="media")continue;let Z=$[Y],G=J[Y];if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&G&&typeof G==="object"&&!Array.isArray(G))q[Y]={...G,...Z};else if(Z!==void 0)q[Y]=Z}return q}function EJ(J,$="stoop"){let q=k0($);if(!q)return J;if(G0(J,q))return J;return MJ(q,J)}function DJ(J,$="stoop",q="data-theme"){if(!O())return;let X={};for(let[Z,G]of Object.entries(J))X[Z]=EJ(G,$);let Y=QJ(X,$,q);q0(Y,$)}function U0(J){return function $(q={}){let X=$J(q);return MJ(J,X)}}function F0(J,$="stoop",q,X,Y){return function Z(G){return n(G,J,$,q,X,Y)}}function S0(J,$,q,X){let Y=`@keyframes ${$} {`,Z=Object.keys(J).sort((G,D)=>{let Q=parseFloat(G.replace("%","")),W=parseFloat(D.replace("%",""));if(G==="from")return-1;if(D==="from")return 1;if(G==="to")return 1;if(D==="to")return-1;return Q-W});for(let G of Z){if(!rJ(G))continue;let D=J[G];if(!D||typeof D!=="object")continue;Y+=` ${G} {`;let Q=C(D,q,X),W=Object.keys(Q).sort();for(let H of W){let F=Q[H];if(F!==void 0&&(typeof F==="string"||typeof F==="number")){let U=i(H);if(U){let L=String(F);Y+=` ${U}: ${L};`}}}Y+=" }"}return Y+=" }",Y}function L0(J="stoop",$,q){let X=z(J),Y=new j(dJ);return function Z(G){let D=wJ(G),Q=Y.get(D);if(Q)return Q;let W=D.slice(0,8),H=X?`${X}-${W}`:`stoop-${W}`,F=S0(G,H,$,q),U=`__keyframes_${H}`;return c(F,X,U),Y.set(D,H),H}}var KJ=new Set;function w0(J,$="stoop",q,X,Y){return function Z(G){let D=wJ(G);if(KJ.has(D))return()=>{};KJ.add(D);let Q=z($),W=S(G,X),H=C(W,J,Y),F=K(H,"",0,q);return c(F,Q,`__global_${D}`),()=>{KJ.delete(D)}}}import{useMemo as WJ,forwardRef as d0,createElement as u0,useContext as y0,createContext as h0}from"react";function c0(J,$,q){let X=[];for(let Z in J){let G=$[Z];if(G===void 0)continue;let D=J[Z],Q=G===!0?"true":G===!1?"false":String(G);if(D[Q])X.push(D[Q])}if(X.length===0)return q;if(X.length===1)return{...q,...X[0]};let Y={...X[0]};for(let Z=1;Z<X.length;Z++)Object.assign(Y,X[Z]);return{...q,...Y}}var VJ=null;function n0(){if(!VJ)VJ=h0(null);return VJ}function p0(J){return{__isStoopStyled:!0,__stoopClassName:J,[t]:J,toString:()=>`__STOOP_COMPONENT_${J}`}}function m0(J){return o(J)}var o0=new Set(["alignContent","alignItems","alignSelf","animation","animationDelay","animationDirection","animationDuration","animationFillMode","animationIterationCount","animationName","animationPlayState","animationTimingFunction","aspectRatio","backdropFilter","backfaceVisibility","background","backgroundAttachment","backgroundBlendMode","backgroundClip","backgroundColor","backgroundImage","backgroundOrigin","backgroundPosition","backgroundRepeat","backgroundSize","border","borderBottom","borderBottomColor","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStyle","borderBottomWidth","borderCollapse","borderColor","borderImage","borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth","borderLeft","borderLeftColor","borderLeftStyle","borderLeftWidth","borderRadius","borderRight","borderRightColor","borderRightStyle","borderRightWidth","borderSpacing","borderStyle","borderTop","borderTopColor","borderTopLeftRadius","borderTopRightRadius","borderTopStyle","borderTopWidth","borderWidth","bottom","boxShadow","boxSizing","captionSide","caretColor","clear","clip","clipPath","color","columnCount","columnFill","columnGap","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columnSpan","columnWidth","columns","content","counterIncrement","counterReset","cursor","direction","display","emptyCells","filter","flex","flexBasis","flexDirection","flexFlow","flexGrow","flexShrink","flexWrap","float","font","fontFamily","fontFeatureSettings","fontKerning","fontLanguageOverride","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontSynthesis","fontVariant","fontVariantAlternates","fontVariantCaps","fontVariantEastAsian","fontVariantLigatures","fontVariantNumeric","fontVariantPosition","fontWeight","gap","grid","gridArea","gridAutoColumns","gridAutoFlow","gridAutoRows","gridColumn","gridColumnEnd","gridColumnGap","gridColumnStart","gridGap","gridRow","gridRowEnd","gridRowGap","gridRowStart","gridTemplate","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","height","hyphens","imageOrientation","imageRendering","imageResolution","imeMode","inlineSize","isolation","justifyContent","justifyItems","justifySelf","left","letterSpacing","lineHeight","listStyle","listStyleImage","listStylePosition","listStyleType","margin","marginBottom","marginLeft","marginRight","marginTop","maxHeight","maxWidth","minHeight","minWidth","objectFit","objectPosition","opacity","order","orphans","outline","outlineColor","outlineOffset","outlineStyle","outlineWidth","overflow","overflowWrap","overflowX","overflowY","padding","paddingBottom","paddingLeft","paddingRight","paddingTop","pageBreakAfter","pageBreakBefore","pageBreakInside","perspective","perspectiveOrigin","placeContent","placeItems","placeSelf","pointerEvents","position","quotes","resize","right","rowGap","scrollBehavior","tabSize","tableLayout","textAlign","textAlignLast","textDecoration","textDecorationColor","textDecorationLine","textDecorationStyle","textIndent","textJustify","textOverflow","textShadow","textTransform","textUnderlinePosition","top","transform","transformOrigin","transformStyle","transition","transitionDelay","transitionDuration","transitionProperty","transitionTimingFunction","unicodeBidi","userSelect","verticalAlign","visibility","whiteSpace","width","wordBreak","wordSpacing","wordWrap","writingMode","zIndex"]);function i0(J){return o0.has(J)}function l0(J,$){let q=$?new Set(Object.keys($)):new Set,X={},Y={},Z={};for(let G in J)if(q.has(G))X[G]=J[G];else if(i0(G))Y[G]=J[G];else Z[G]=J[G];return{cssProps:Y,elementProps:Z,variantProps:X}}function B0(J,$="stoop",q,X,Y,Z){return function G(D,Q){let W=Q||s,H;if(Q&&"variants"in Q&&typeof Q.variants==="object"&&Q.variants!==null&&!Array.isArray(Q.variants)){let B=Q.variants;if(Object.keys(B).length>0&&Object.values(B).every((A)=>typeof A==="object"&&A!==null&&!Array.isArray(A))){H=Q.variants;let{variants:A,...R}=Q;W=R}}let F;if(typeof D!=="string"&&m0(D))F=D.__stoopClassName;let U=d0(function B(I,A){let{as:R,className:x,css:N,...V}=I,f=R||D,g=WJ(()=>N&&typeof N==="object"&&N!==null?N:s,[N]),{cssProps:k,elementProps:M,variantProps:P}=l0(V,H),r=y0(Z||n0())?.theme||J,TJ=r.media?{...q,...r.media}:q,fJ=WJ(()=>{if(!H)return"";let E=Object.entries(P);if(E.length===0)return"";return E.sort(([u],[p])=>u.localeCompare(p)).map(([u,p])=>`${u}:${String(p)}`).join("|")},[P]),bJ=WJ(()=>{let E=W;if(H&&fJ)E=c0(H,P,W);if(Object.keys(k).length>0)E=Object.assign({},E,k);if(g!==s)E=Object.assign({},E,g);return E},[fJ,g,k,W,H,P]),E0=WJ(()=>{let E=[];if(F)E.push(F);let u=n(bJ,r,$,TJ,X,Y);if(u)E.push(u);if(x){let p=typeof x==="string"?x:String(x),CJ=lJ(p);if(CJ)E.push(CJ)}return E.length>0?E.join(" "):void 0},[bJ,x,F,r,$,TJ,X,Y]);return u0(f,{...M,className:E0,ref:A})}),L=d(JSON.stringify(W)),_=`${$}-${L}`,w=U;return w.selector=p0(_),w}}import{createContext as _0,useCallback as O0,useContext as r0,useLayoutEffect as l,useMemo as xJ,useRef as NJ,useState as s0}from"react";function zJ(J){if(!O())return{error:"Not in browser environment",success:!1,value:null};try{return{source:"localStorage",success:!0,value:localStorage.getItem(J)}}catch($){return{error:$ instanceof Error?$.message:"localStorage access failed",success:!1,value:null}}}function PJ(J,$){if(!O())return{error:"Not in browser environment",success:!1,value:void 0};try{return localStorage.setItem(J,$),{success:!0,value:void 0}}catch(q){return{error:q instanceof Error?q.message:"localStorage write failed",success:!1,value:void 0}}}function jJ(J){if(!O())return null;let q=`; ${document.cookie}`.split(`; ${J}=`);if(q.length===2)return q.pop()?.split(";").shift()||null;return null}function A0(J,$,q={}){if(!O())return!1;let{maxAge:X=uJ,path:Y=yJ,secure:Z=!1}=q;try{return document.cookie=`${J}=${$}; path=${Y}; max-age=${X}${Z?"; secure":""}`,!0}catch{return!1}}import{jsx as I0}from"react/jsx-runtime";function gJ(J,$,q){if(!O())return;let X=$?jJ($):null,Y=zJ(q),Z=Y.success?Y.value:null;if(X===J&&Z!==J)PJ(q,J);if(Z===J&&$&&X!==J)A0($,J)}function a0(J,$,q){if(!O())return null;if(J!==void 0){let Z=jJ(J);if(Z&&q[Z])return Z}let X=zJ($),Y=X.success?X.value:null;if(Y&&q[Y])return Y;return null}function R0(J,$,q="stoop",X,Y){let Z=_0(null),G=_0(null),D=Object.keys(J),Q=D[0]||"default",W=X&&Y?Y(X):void 0;function H({attribute:F="data-theme",children:U,cookieKey:L,defaultTheme:_,storageKey:w="stoop-theme"}){let[B,I]=s0(_||Q),A=NJ(!1);l(()=>{if(!O()||A.current)return;let M=a0(L,w,J);if(M){if(gJ(M,L,w),M!==B)I(M)}A.current=!0},[L,w,J]),l(()=>{if(!O())return;let M=(P)=>{if(P.key===w&&P.newValue&&J[P.newValue]&&P.newValue!==B)I(P.newValue),gJ(P.newValue,L,w)};return window.addEventListener("storage",M),()=>{window.removeEventListener("storage",M)}},[w,L,B,J]);let R=xJ(()=>{return J[B]||J[_||Q]||$},[B,_,Q,J,$]),x=NJ(!1),N=NJ(!1);l(()=>{if(!O()||x.current)return;DJ(J,q,F),x.current=!0},[J,q,F]),l(()=>{if(!O()||N.current)return;if(W)W(),N.current=!0},[W]),l(()=>{if(!O())return;if(F)document.documentElement.setAttribute(F,B)},[B,F]);let V=O0((M)=>{if(J[M])I(M),PJ(w,M),gJ(M,L,w);else if(!h())console.warn(`[Stoop] Theme "${M}" not found. Available themes: ${D.join(", ")}`)},[w,L,J,D,B]),f=xJ(()=>({theme:R,themeName:B}),[R,B]),g=O0(()=>{let P=(D.indexOf(B)+1)%D.length,vJ=D[P];V(vJ)},[B,V,D]),k=xJ(()=>({availableThemes:D,setTheme:V,theme:R,themeName:B,toggleTheme:g}),[R,B,V,g]);return I0(Z.Provider,{value:f,children:I0(G.Provider,{value:k,children:U})})}return{Provider:H,ThemeContext:Z,ThemeManagementContext:G}}function M0(J){return function $(){let q=r0(J);if(!q)throw new Error("useTheme must be used within a Provider");return q}}function t0(J){let{globalCss:$,media:q,prefix:X="stoop",theme:Y,themeMap:Z,utils:G}=J,D=z(X),Q=$J(Y),W=Q.media||q,H={...m,...Z};H0(Q,D);let F=F0(Q,D,W,G,H),U=U0(Q),L=w0(Q,D,W,G,H),_=L0(D,Q,H),w=Object.freeze({...Q});function B(R){for(let x of R)try{n(x,Q,D,W,G,H)}catch{}}function I(){if(!J.themes||Object.keys(J.themes).length===0)return;DJ(J.themes,D)}function A(){let R="";if(J.themes&&Object.keys(J.themes).length>0){let V={};for(let[g,k]of Object.entries(J.themes))V[g]=EJ(k,D);let f=QJ(V,D,"data-theme");if(f)R+=f+`
|
|
14
|
+
`}else{let V=RJ(Q,D);if(V)R+=V+`
|
|
15
|
+
`}if($){let V=S($,G),f=C(V,Q,H),g=K(f,"",0,W);if(g)R+=(R?`
|
|
16
|
+
`:"")+g}let x=X0(),N=OJ(x).trim();if(N)R+=(R?`
|
|
17
|
+
`:"")+N;return R}return{config:{...J,prefix:D},createTheme:U,css:F,getCssText:A,globalCss:L,globalCssConfig:$,keyframes:_,media:W,mergedThemeMap:H,preloadTheme:I,sanitizedPrefix:D,theme:w,utils:G,validatedTheme:Q,warmCache:B}}function F4(J){let $=t0(J),q,X,Y;if(J.themes){let G={};for(let[H,F]of Object.entries(J.themes))G[H]=$.createTheme(F);let{Provider:D,ThemeContext:Q,ThemeManagementContext:W}=R0(G,$.validatedTheme,$.sanitizedPrefix,$.globalCssConfig,$.globalCss);Y=Q,q=D,X=M0(W)}let Z=B0($.validatedTheme,$.sanitizedPrefix,$.media,$.utils,$.mergedThemeMap,Y);return{config:$.config,createTheme:$.createTheme,css:$.css,getCssText:$.getCssText,globalCss:$.globalCss,keyframes:$.keyframes,preloadTheme:$.preloadTheme,Provider:q,styled:Z,theme:$.theme,useTheme:X,warmCache:$.warmCache}}export{t0 as createStoopBase,F4 as createStoop};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stoop",
|
|
3
3
|
"description": "CSS-in-JS library with type inference, theme creation, and variants support.",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.4",
|
|
5
5
|
"author": "Jackson Dolman <mail@dolmios.com>",
|
|
6
6
|
"main": "./dist/create-stoop.js",
|
|
7
7
|
"types": "./dist/create-stoop.d.ts",
|