@aurora-ds/theme 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.dev.md +424 -0
- package/README.md +102 -587
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +59 -585
- package/dist/index.d.ts +59 -585
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var react=require('react'),jsxRuntime=require('react/jsx-runtime');var V=typeof document>"u",y=null,p=null,b=[],H=new Map([["backgroundColor","background-color"],["borderRadius","border-radius"],["fontSize","font-size"],["fontWeight","font-weight"],["lineHeight","line-height"],["marginTop","margin-top"],["marginBottom","margin-bottom"],["marginLeft","margin-left"],["marginRight","margin-right"],["paddingTop","padding-top"],["paddingBottom","padding-bottom"],["paddingLeft","padding-left"],["paddingRight","padding-right"],["textAlign","text-align"],["justifyContent","justify-content"],["alignItems","align-items"],["flexDirection","flex-direction"],["flexWrap","flex-wrap"],["boxShadow","box-shadow"],["zIndex","z-index"]]),S=new Map,d=new Set,T=new Set,C=new Set,j=0,$e=new Set(["animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","fontWeight","lineHeight","opacity","order","orphans","widows","zIndex","zoom"]),N=100;if(!V){let e=document.getElementById("aurora-styles");if(e)p=e.sheet;else {let t=document.createElement("style");t.id="aurora-styles",document.head.appendChild(t),p=t.sheet;}}var x=e=>{let t=y;return y=e,t},R=()=>y?.(),l=e=>{if(V)b.push(e);else if(p)try{p.insertRule(e,p.cssRules.length);}catch{}},m=e=>{let t=H.get(e);return t||(t=e.replace(/([A-Z])/g,"-$1").toLowerCase(),H.set(e,t)),t},g=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").toLowerCase(),we=/expression\s*\(|javascript\s*:|data\s*:\s*text\/html|behavior\s*:|@import|<\s*\/?\s*style/i,O=e=>{let t=e.replace(/\0/g,"");return we.test(t)?"unset":t},L=(e,t)=>typeof t=="number"&&!$e.has(e)?`${t}px`:O(String(t)),u=e=>{let t="";for(let r in e){let o=e[r];o!=null&&typeof o!="object"&&(t+=`${m(r)}:${L(r,o)};`);}return t};var Z=e=>{let t=e.length;if(t===0)return "";if(t===1){let r=e[0];if(r===void 0)return "u";if(r===null)return "n";if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")return String(r)}if(t<=4){let r="";for(let o=0;o<t;o++){let n=e[o],s=typeof n;if(n===void 0)r+=o?"|u":"u";else if(n===null)r+=o?"|n":"n";else if(s==="string"||s==="number"||s==="boolean")r+=o?"|"+n:String(n);else return JSON.stringify(e)}return r}return JSON.stringify(e)},_=e=>{let t=e.charCodeAt(0);if(e.length<20){if(t>=97&&t<=122||t>=65&&t<=90){let n=true;for(let s=1;s<e.length;s++){let a=e.charCodeAt(s);if(!(a>=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57)){n=false;break}}if(n)return g(e)}else if(t===45||t>=48&&t<=57){let n=true;for(let s=1;s<e.length;s++)if(e.charCodeAt(s)<48||e.charCodeAt(s)>57){n=false;break}if(n)return e}}let r=5381,o=e.length;for(let n=0;n<o;n++)r=(r<<5)+r^e.charCodeAt(n);return (r>>>0).toString(36)},M=e=>{let t=new Map;return {getOrSet(r,o){let n=t.get(r);if(n!==void 0)return t.delete(r),t.set(r,n),n;let s=o();if(t.size>=e){let a=t.keys().next().value;a!==void 0&&t.delete(a);}return t.set(r,s),s}}},E=e=>{let t=JSON.stringify(e),r=5381,o=t.length;for(let n=0;n<o;n++)r=(r<<5)+r^t.charCodeAt(n);return (r>>>0).toString(36)},G=e=>{let t=5381,r=e.length;for(let o=0;o<r;o++)t=(t<<5)+t^e.charCodeAt(o);return (t>>>0).toString(36)},ke=e=>{if(!d.has(e))return d.add(e),e;let t=2;for(;d.has(`${e}-${t}`);)t++;let r=`${e}-${t}`;return d.add(r),r},$=(e,t,r=false)=>{if(r){let s=E(e),a=S.get(s);if(a)return a}let o=ke(t),n="";for(let s in e){let a=e[s],f=s[0];if(f==="@"){let c=u(a);c&&l(`${s}{.${o}{${c}}}`);}else if(f==="&"){let c=u(a);c&&l(`${s.replace(/&/g,`.${o}`)}{${c}}`);}else if(f===":"){let c=u(a);c&&l(`.${o}${s}{${c}}`);}else a!=null&&typeof a!="object"&&(n+=`${m(s)}:${L(s,a)};`);}return n&&l(`.${o}{${n}}`),r&&S.set(E(e),o),o},D=e=>T.has(e),J=e=>{T.add(e);},U=()=>(++j).toString(36),q=e=>C.has(e),X=e=>{C.add(e);},w=()=>b,Q=()=>{b=[],S.clear(),d.clear(),T.clear(),C.clear(),j=0;};var Y=react.createContext(void 0),Ae=({theme:e,children:t})=>{let r=x(()=>e);return react.useLayoutEffect(()=>()=>{x(r);},[r]),jsxRuntime.jsx(Y.Provider,{value:e,children:t})},ze=()=>{let e=react.useContext(Y);if(!e)throw new Error("useTheme must be used within a ThemeProvider");return e};var k={none:"0","2xs":"0.125rem",xs:"0.25rem",sm:"0.5rem",md:"1rem",lg:"1.5rem",xl:"2rem","2xl":"3rem","3xl":"4rem","4xl":"6rem","5xl":"8rem"},v={none:"0",xs:"0.125rem",sm:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem",full:"9999px"},P={none:"none",xs:"0 1px 2px 0 rgb(0 0 0 / 0.05)",sm:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",focus:"0 0 0 3px rgb(99 102 241 / 0.4)"},F={"2xs":"0.625rem",xs:"0.75rem",sm:"0.875rem",md:"1rem",lg:"1.25rem",xl:"1.5rem","2xl":"2rem","3xl":"2.5rem","4xl":"3rem","5xl":"4rem"},A={light:300,regular:400,medium:500,semibold:600,bold:700},z={none:1,tight:1.25,normal:1.5,relaxed:1.75,loose:2},K={behind:-1,base:0,dropdown:1e3,sticky:1100,overlay:1300,modal:1400,popover:1500,tooltip:1600,toast:1700},I={fast:"150ms ease-out",normal:"250ms ease-out",slow:"350ms ease-out"},W={none:0,lowest:.05,low:.1,medium:.25,high:.5,higher:.75,full:1},B={xs:"480px",sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"};var ee={25:"#fffdfb",50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"};var te={25:"#f5f8ff",50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"};var re={25:"#f3fefe",50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"};var oe={25:"#f5fefc",50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"};var ne={25:"#fef5ff",50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"};var se={25:"#fcfcfc",50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"};var ie={25:"#f6fef9",50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"};var ae={25:"#f5f7ff",50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"};var fe={25:"#fbfef8",50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"};var ce={25:"#fffcfa",50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"};var le={25:"#fef5f9",50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"};var de={25:"#faf5ff",50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"};var pe={25:"#fffbfb",50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"};var ue={25:"#fff5f6",50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"};var me={25:"#fcfcfd",50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"};var ge={25:"#fcfcfb",50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"};var xe={25:"#f4fefe",50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"};var he={25:"#f8f5ff",50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"};var ye={25:"#fefef9",50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"};var i={gray:se,slate:me,stone:ge,red:pe,orange:ce,amber:ee,yellow:ye,lime:fe,green:ie,emerald:oe,teal:xe,cyan:re,blue:te,indigo:ae,violet:he,purple:de,fuchsia:ne,pink:le,rose:ue,white:"#ffffff",black:"#000000",transparent:"transparent",current:"currentColor"};var h={background:i.slate[25],surface:i.white,surfaceHover:i.slate[100],surfaceActive:i.slate[200],text:i.slate[800],textSecondary:i.slate[500],textTertiary:i.slate[400],primary:i.indigo[600],primaryHover:i.indigo[700],primaryActive:i.indigo[800],primarySubtle:i.indigo[50],primaryDisabled:i.indigo[300],onPrimary:i.white,secondary:i.slate[100],secondaryHover:i.slate[200],secondaryActive:i.slate[300],secondarySubtle:i.slate[50],secondaryDisabled:i.slate[200],onSecondary:i.slate[700],border:i.slate[200],disabledText:i.slate[400],disabled:i.slate[300],success:i.emerald[600],successSubtle:i.emerald[50],warning:i.amber[500],warningSubtle:i.amber[50],error:i.red[600],errorHover:i.red[700],errorSubtle:i.red[50],onError:i.white,info:i.blue[600],infoSubtle:i.blue[50],link:i.indigo[600],linkHover:i.indigo[700],linkActive:i.indigo[800],linkDisabled:i.indigo[300]};var Ie=e=>({colors:e?.colors??h,spacing:e?.spacing??k,radius:e?.radius??v,shadows:e?.shadows??P,fontSize:e?.fontSize??F,fontWeight:e?.fontWeight??A,lineHeight:e?.lineHeight??z,zIndex:e?.zIndex??K,transition:e?.transition??I,opacity:e?.opacity??W,breakpoints:e?.breakpoints??B});var We=()=>{let e=new Error().stack||"",t=e.match(/([A-Za-z0-9_]+)\.styles\.[tj]s/);if(t?.[1])return g(t[1]);let r=e.match(/\/([A-Za-z0-9_]+)\.[tj]sx?[:\d]*\)?$/m);return r?.[1]&&r[1]!=="createStyles"?g(r[1]):"style"},Se=(e,t)=>{let r={};for(let o in e){let n=e[o];if(n){let s=`${t}-${g(o)}`;if(typeof n=="function"){let a=M(N);r[o]=(...f)=>{let c=Z(f);return a.getOrSet(c,()=>{let Re=n(...f);return $(Re,`${s}-${_(c)}`)})};}else r[o]=$(n,s,true);}}return r},be=e=>{let t=We();if(typeof e=="function"){let r=null,o;return new Proxy({},{get(n,s){let a=R();if(!a)throw new Error("createStyles: Theme context not found. Make sure you are using this inside a ThemeProvider.");return (a!==o||!r)&&(r=Se(e(a),t),o=a),r[s]}})}return Se(e,t)},Be=()=>e=>be(e);var He=e=>{let t="";for(let o in e)t+=`${o}{${u(e[o])}}`;if(D(t))return `aurora-kf-${G(t)}`;let r=`aurora-kf-${U()}`;return l(`@keyframes ${r}{${t}}`),J(t),r};var Ee=e=>{let{fontFamily:t,src:r,fontStyle:o="normal",fontWeight:n=400,fontDisplay:s="swap",unicodeRange:a}=e,f=`font-family:"${t}";`;return f+=`src:${r};`,f+=`font-style:${o};`,f+=`font-weight:${n};`,f+=`font-display:${s};`,a&&(f+=`unicode-range:${a};`),q(f)||(l(`@font-face{${f}}`),X(f)),t};var Te=(e,t)=>{let r="";for(let o in e){let n=e[o],s=m(o);n&&typeof n=="object"?r+=Te(n,`${t}-${s}`):n!=null&&(r+=`--${t}-${s}:${n};`);}return r},Ve=(e,t="theme")=>{let r=Te(e,t);l(`:root{${r}}`);},je=(e,t)=>{let r=`--theme-${e.replace(/\./g,"-")}`;return t?`var(${r}, ${t})`:`var(${r})`},Ne=(e,t={})=>{let{prefix:r="",inject:o=false}=t,n={},s="";for(let a in e){let f=m(a),c=r?`--${r}-${f}`:`--${f}`;n[a]=`var(${c})`,o&&(s+=`${c}:${e[a]};`);}return o&&s&&l(`:root{${s}}`),n};var Ce=()=>w().join(""),Oe=()=>{let e=Ce();return e?`<style id="aurora-styles">${e}</style>`:""},Le=()=>{Q();},Ze=()=>[...w()];exports.ThemeProvider=Ae;exports.clearSSRRules=Le;exports.colors=i;exports.createStyles=be;exports.createTheme=Ie;exports.createTypedStyles=Be;exports.cssVar=je;exports.cssVariables=Ne;exports.defaultBreakpoints=B;exports.defaultFontSize=F;exports.defaultFontWeight=A;exports.defaultLineHeight=z;exports.defaultOpacity=W;exports.defaultPalette=h;exports.defaultRadius=v;exports.defaultShadows=P;exports.defaultSpacing=k;exports.defaultTransition=I;exports.defaultZIndex=K;exports.fontFace=Ee;exports.getSSRRulesArray=Ze;exports.getSSRStyleTag=Oe;exports.getSSRStyles=Ce;exports.getTheme=R;exports.injectCssVariables=Ve;exports.insertRule=l;exports.keyframes=He;exports.sanitizeCssValue=O;exports.setThemeContextGetter=x;exports.useTheme=ze;//# sourceMappingURL=index.cjs.map
|
|
1
|
+
'use strict';var react=require('react'),jsxRuntime=require('react/jsx-runtime');var $=e=>e;var R={25:"#fffdfb",50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"};var w={25:"#f5f8ff",50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"};var v={25:"#f3fefe",50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"};var k={25:"#f5fefc",50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"};var P={25:"#fef5ff",50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"};var A={25:"#fcfcfc",50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"};var K={25:"#f6fef9",50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"};var F={25:"#f5f7ff",50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"};var E={25:"#fbfef8",50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"};var I={25:"#fffcfa",50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"};var N={25:"#fef5f9",50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"};var V={25:"#faf5ff",50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"};var j={25:"#fffbfb",50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"};var W={25:"#fff5f6",50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"};var z={25:"#fcfcfd",50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"};var _={25:"#fcfcfb",50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"};var O={25:"#f4fefe",50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"};var L={25:"#f8f5ff",50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"};var M={25:"#fefef9",50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"};var de={gray:A,slate:z,stone:_,red:j,orange:I,amber:R,yellow:M,lime:E,green:K,emerald:k,teal:O,cyan:v,blue:w,indigo:F,violet:L,purple:V,fuchsia:P,pink:N,rose:W,white:"#ffffff",black:"#000000",transparent:"transparent",current:"currentColor"};var H=typeof document>"u",g=null,d=null,S=[],Z=new Map([["backgroundColor","background-color"],["borderRadius","border-radius"],["fontSize","font-size"],["fontWeight","font-weight"],["lineHeight","line-height"],["marginTop","margin-top"],["marginBottom","margin-bottom"],["marginLeft","margin-left"],["marginRight","margin-right"],["paddingTop","padding-top"],["paddingBottom","padding-bottom"],["paddingLeft","padding-left"],["paddingRight","padding-right"],["textAlign","text-align"],["justifyContent","justify-content"],["alignItems","align-items"],["flexDirection","flex-direction"],["flexWrap","flex-wrap"],["boxShadow","box-shadow"],["zIndex","z-index"]]),h=new Map,l=new Set,y=new Set,x=new Set,J=0,me=new Set(["animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","fontWeight","lineHeight","opacity","order","orphans","widows","zIndex","zoom"]),U=100;if(!H){let e=document.getElementById("aurora-styles");if(e)d=e.sheet;else {let t=document.createElement("style");t.id="aurora-styles",document.head.appendChild(t),d=t.sheet;}}var b=e=>{let t=g;return g=e,t},B=()=>g?.(),c=e=>{if(H)S.push(e);else if(d)try{d.insertRule(e,d.cssRules.length);}catch{}},p=e=>{let t=Z.get(e);return t||(t=e.replace(/([A-Z])/g,"-$1").toLowerCase(),Z.set(e,t)),t},u=e=>e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").toLowerCase(),pe=/expression\s*\(|javascript\s*:|data\s*:\s*text\/html|behavior\s*:|@import|<\s*\/?\s*style/i,ue=e=>{let t=e.replace(/\0/g,"");return pe.test(t)?"unset":t},q=(e,t)=>typeof t=="number"&&!me.has(e)?`${t}px`:ue(String(t)),m=e=>{let t="";for(let r in e){let o=e[r];o!=null&&typeof o!="object"&&(t+=`${p(r)}:${q(r,o)};`);}return t};var D=e=>{let t=e.length;if(t===0)return "";if(t===1){let r=e[0];if(r===void 0)return "u";if(r===null)return "n";if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")return String(r)}if(t<=4){let r="";for(let o=0;o<t;o++){let n=e[o],s=typeof n;if(n===void 0)r+=o?"|u":"u";else if(n===null)r+=o?"|n":"n";else if(s==="string"||s==="number"||s==="boolean")r+=o?"|"+n:String(n);else return JSON.stringify(e)}return r}return JSON.stringify(e)},X=e=>{let t=e.charCodeAt(0);if(e.length<20){if(t>=97&&t<=122||t>=65&&t<=90){let n=true;for(let s=1;s<e.length;s++){let f=e.charCodeAt(s);if(!(f>=97&&f<=122||f>=65&&f<=90||f>=48&&f<=57)){n=false;break}}if(n)return u(e)}else if(t===45||t>=48&&t<=57){let n=true;for(let s=1;s<e.length;s++)if(e.charCodeAt(s)<48||e.charCodeAt(s)>57){n=false;break}if(n)return e}}let r=5381,o=e.length;for(let n=0;n<o;n++)r=(r<<5)+r^e.charCodeAt(n);return (r>>>0).toString(36)},Q=e=>{let t=new Map;return {getOrSet(r,o){let n=t.get(r);if(n!==void 0)return t.delete(r),t.set(r,n),n;let s=o();if(t.size>=e){let f=t.keys().next().value;f!==void 0&&t.delete(f);}return t.set(r,s),s}}},G=e=>{let t=JSON.stringify(e),r=5381,o=t.length;for(let n=0;n<o;n++)r=(r<<5)+r^t.charCodeAt(n);return (r>>>0).toString(36)},Y=e=>{let t=5381,r=e.length;for(let o=0;o<r;o++)t=(t<<5)+t^e.charCodeAt(o);return (t>>>0).toString(36)},ge=e=>{if(!l.has(e))return l.add(e),e;let t=2;for(;l.has(`${e}-${t}`);)t++;let r=`${e}-${t}`;return l.add(r),r},C=(e,t,r=false)=>{if(r){let s=G(e),f=h.get(s);if(f)return f}let o=ge(t),n="";for(let s in e){let f=e[s],i=s[0];if(i==="@"){let a=m(f);a&&c(`${s}{.${o}{${a}}}`);}else if(i==="&"){let a=m(f);a&&c(`${s.replace(/&/g,`.${o}`)}{${a}}`);}else if(i===":"){let a=m(f);a&&c(`.${o}${s}{${a}}`);}else f!=null&&typeof f!="object"&&(n+=`${p(s)}:${q(s,f)};`);}return n&&c(`.${o}{${n}}`),r&&h.set(G(e),o),o},ee=e=>y.has(e),te=e=>{y.add(e);},re=()=>(++J).toString(36),oe=e=>x.has(e),ne=e=>{x.add(e);},T=()=>S,se=()=>{S=[],h.clear(),l.clear(),y.clear(),x.clear(),J=0;};var fe=react.createContext(void 0),xe=({theme:e,children:t})=>{let r=b(()=>e);return react.useLayoutEffect(()=>()=>{b(r);},[r]),jsxRuntime.jsx(fe.Provider,{value:e,children:t})},be=()=>{let e=react.useContext(fe);if(!e)throw new Error("useTheme must be used within a ThemeProvider");return e};var Te=()=>{let e=new Error().stack||"",t=e.match(/([A-Za-z0-9_]+)\.styles\.[tj]s/);if(t?.[1])return u(t[1]);let r=e.match(/\/([A-Za-z0-9_]+)\.[tj]sx?[:\d]*\)?$/m);return r?.[1]&&r[1]!=="createStyles"?u(r[1]):"style"},ie=(e,t)=>{let r={};for(let o in e){let n=e[o];if(n){let s=`${t}-${u(o)}`;if(typeof n=="function"){let f=Q(U);r[o]=(...i)=>{let a=D(i);return f.getOrSet(a,()=>{let le=n(...i);return C(le,`${s}-${X(a)}`)})};}else r[o]=C(n,s,true);}}return r},$e=e=>{let t=Te();if(typeof e=="function"){let r=null,o;return new Proxy({},{get(n,s){let f=B();if(!f)throw new Error("createStyles: Theme context not found. Make sure you are using this inside a ThemeProvider.");return (f!==o||!r)&&(r=ie(e(f),t),o=f),r[s]}})}return ie(e,t)};var Re=e=>{let t="";for(let o in e)t+=`${o}{${m(e[o])}}`;if(ee(t))return `aurora-kf-${Y(t)}`;let r=`aurora-kf-${re()}`;return c(`@keyframes ${r}{${t}}`),te(t),r};var we=e=>{let{fontFamily:t,src:r,fontStyle:o="normal",fontWeight:n=400,fontDisplay:s="swap",unicodeRange:f}=e,i=`font-family:"${t}";`;return i+=`src:${r};`,i+=`font-style:${o};`,i+=`font-weight:${n};`,i+=`font-display:${s};`,f&&(i+=`unicode-range:${f};`),oe(i)||(c(`@font-face{${i}}`),ne(i)),t};var ae=(e,t)=>{let r="";for(let o in e){let n=e[o],s=p(o);n&&typeof n=="object"?r+=ae(n,`${t}-${s}`):n!=null&&(r+=`--${t}-${s}:${n};`);}return r},ve=(e,t="theme")=>{let r=ae(e,t);c(`:root{${r}}`);},ke=(e,t)=>{let r=`--theme-${e.replace(/\./g,"-")}`;return t?`var(${r}, ${t})`:`var(${r})`},Pe=(e,t={})=>{let{prefix:r="",inject:o=false}=t,n={},s="";for(let f in e){let i=p(f),a=r?`--${r}-${i}`:`--${i}`;n[f]=`var(${a})`,o&&(s+=`${a}:${e[f]};`);}return o&&s&&c(`:root{${s}}`),n};var ce=()=>T().join(""),Ae=()=>{let e=ce();return e?`<style id="aurora-styles">${e}</style>`:""},Ke=()=>{se();},Fe=()=>[...T()];exports.ThemeProvider=xe;exports.clearSSRRules=Ke;exports.colors=de;exports.createStyles=$e;exports.createTheme=$;exports.cssVar=ke;exports.cssVariables=Pe;exports.fontFace=we;exports.getSSRRulesArray=Fe;exports.getSSRStyleTag=Ae;exports.getSSRStyles=ce;exports.injectCssVariables=ve;exports.keyframes=Re;exports.useTheme=be;//# sourceMappingURL=index.cjs.map
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/styles/styleEngine.ts","../src/providers/ThemeProvider.tsx","../src/utils/theme/defaultTheme.ts","../src/utils/theme/colors/amber.ts","../src/utils/theme/colors/blue.ts","../src/utils/theme/colors/cyan.ts","../src/utils/theme/colors/emerald.ts","../src/utils/theme/colors/fuchsia.ts","../src/utils/theme/colors/gray.ts","../src/utils/theme/colors/green.ts","../src/utils/theme/colors/indigo.ts","../src/utils/theme/colors/lime.ts","../src/utils/theme/colors/orange.ts","../src/utils/theme/colors/pink.ts","../src/utils/theme/colors/purple.ts","../src/utils/theme/colors/red.ts","../src/utils/theme/colors/rose.ts","../src/utils/theme/colors/slate.ts","../src/utils/theme/colors/stone.ts","../src/utils/theme/colors/teal.ts","../src/utils/theme/colors/violet.ts","../src/utils/theme/colors/yellow.ts","../src/utils/theme/colors/index.ts","../src/utils/theme/palettes/defaultPalette.ts","../src/utils/theme/createTheme.ts","../src/utils/styles/createStyles.ts","../src/utils/styles/keyframes.ts","../src/utils/styles/fontFace.ts","../src/utils/styles/cssVariables.ts","../src/utils/styles/ssr.ts"],"names":["IS_SERVER","themeContextGetter","styleSheet","ssrRules","cssKeyCache","staticStyleCache","usedClassNames","injectedKeyframes","injectedFontFaces","keyframeCounter","UNITLESS_PROPERTIES","MAX_CACHE_SIZE","existingStyle","style","setThemeContextGetter","getter","previous","getTheme","insertRule","rule","toKebabCase","key","cached","toKebabCaseClassName","name","CSS_INJECTION_PATTERNS","sanitizeCssValue","value","cleaned","toCssValue","objectToCss","obj","result","createCacheKey","args","len","arg","i","t","cacheKeyToSuffix","firstChar","valid","c","hash","createLRUCache","maxSize","cache","factory","existing","firstKey","hashStyles","styles","str","hashString","getUniqueClassName","baseName","counter","generateCssClass","className","useCache","uniqueName","baseCss","innerCss","hasKeyframes","css","addKeyframes","getNextKeyframeId","hasFontFace","addFontFace","getSSRRulesInternal","resetState","ThemeContext","createContext","ThemeProvider","theme","children","previousGetter","useLayoutEffect","jsx","useTheme","useContext","defaultSpacing","defaultRadius","defaultShadows","defaultFontSize","defaultFontWeight","defaultLineHeight","defaultZIndex","defaultTransition","defaultOpacity","defaultBreakpoints","amber","blue","cyan","emerald","fuchsia","gray","green","indigo","lime","orange","pink","purple","red","rose","slate","stone","teal","violet","yellow","colors","defaultPalette","createTheme","config","getComponentNameFromStack","stack","match","fileMatch","processStyles","componentName","classes","lru","cacheKey","resolved","createStyles","stylesOrCreator","lastTheme","_","prop","createTypedStyles","keyframes","frames","fontFace","options","fontFamily","src","fontStyle","fontWeight","fontDisplay","unicodeRange","generateCssVariables","prefix","kebabKey","injectCssVariables","variables","cssVar","path","fallback","varName","cssVariables","inject","cssToInject","getSSRStyles","getSSRStyleTag","clearSSRRules","getSSRRulesArray"],"mappings":"gFAIA,IAAMA,CAAAA,CAAY,OAAO,QAAA,CAAa,GAAA,CAGlCC,CAAAA,CAAgE,IAAA,CAGhEC,EAAmC,IAAA,CAGnCC,CAAAA,CAAqB,EAAC,CAGpBC,EAAc,IAAI,GAAA,CAAoB,CACxC,CAAC,kBAAmB,kBAAkB,CAAA,CACtC,CAAC,cAAA,CAAgB,eAAe,CAAA,CAChC,CAAC,UAAA,CAAY,WAAW,EACxB,CAAC,YAAA,CAAc,aAAa,CAAA,CAC5B,CAAC,YAAA,CAAc,aAAa,CAAA,CAC5B,CAAC,WAAA,CAAa,YAAY,CAAA,CAC1B,CAAC,eAAgB,eAAe,CAAA,CAChC,CAAC,YAAA,CAAc,aAAa,CAAA,CAC5B,CAAC,aAAA,CAAe,cAAc,EAC9B,CAAC,YAAA,CAAc,aAAa,CAAA,CAC5B,CAAC,eAAA,CAAiB,gBAAgB,CAAA,CAClC,CAAC,cAAe,cAAc,CAAA,CAC9B,CAAC,cAAA,CAAgB,eAAe,CAAA,CAChC,CAAC,WAAA,CAAa,YAAY,CAAA,CAC1B,CAAC,gBAAA,CAAkB,iBAAiB,EACpC,CAAC,YAAA,CAAc,aAAa,CAAA,CAC5B,CAAC,eAAA,CAAiB,gBAAgB,CAAA,CAClC,CAAC,WAAY,WAAW,CAAA,CACxB,CAAC,WAAA,CAAa,YAAY,CAAA,CAC1B,CAAC,QAAA,CAAU,SAAS,CACxB,CAAC,CAAA,CAGKC,CAAAA,CAAmB,IAAI,IAGvBC,CAAAA,CAAiB,IAAI,GAAA,CAGrBC,CAAAA,CAAoB,IAAI,GAAA,CAGxBC,CAAAA,CAAoB,IAAI,GAAA,CAG1BC,EAAkB,CAAA,CAGhBC,EAAAA,CAAsB,IAAI,GAAA,CAAI,CAChC,yBAAA,CAA2B,aAAA,CAAe,aAAA,CAAe,UAAA,CAAY,aACrE,YAAA,CAAc,YAAA,CAAc,SAAA,CAAW,OAAA,CAAS,UAAW,QAAA,CAAU,QAAA,CAAU,MACnF,CAAC,EAGYC,CAAAA,CAAiB,GAAA,CAG9B,GAAI,CAACX,EAAW,CACZ,IAAMY,CAAAA,CAAgB,QAAA,CAAS,eAAe,eAAe,CAAA,CAC7D,GAAIA,CAAAA,CACAV,EAAaU,CAAAA,CAAc,KAAA,CAAA,KACxB,CACH,IAAMC,CAAAA,CAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,EAC5CA,CAAAA,CAAM,EAAA,CAAK,eAAA,CACX,QAAA,CAAS,KAAK,WAAA,CAAYA,CAAK,CAAA,CAC/BX,CAAAA,CAAaW,EAAM,MACvB,CACJ,CAKO,IAAMC,EACTC,CAAAA,EAC4C,CAC5C,IAAMC,CAAAA,CAAWf,EACjB,OAAAA,CAAAA,CAAqBc,CAAAA,CACdC,CACX,EAKaC,CAAAA,CAAW,IACbhB,CAAAA,IAAqB,CAMnBiB,EAAcC,CAAAA,EAAuB,CAC9C,GAAInB,CAAAA,CACAG,CAAAA,CAAS,IAAA,CAAKgB,CAAI,CAAA,CAAA,KAAA,GACXjB,EACP,GAAI,CACAA,CAAAA,CAAW,UAAA,CAAWiB,EAAMjB,CAAAA,CAAW,QAAA,CAAS,MAAM,EAC1D,MAAQ,CAER,CAER,CAAA,CAKakB,CAAAA,CAAeC,GAAwB,CAChD,IAAIC,CAAAA,CAASlB,CAAAA,CAAY,IAAIiB,CAAG,CAAA,CAChC,OAAKC,CAAAA,GACDA,EAASD,CAAAA,CAAI,OAAA,CAAQ,UAAA,CAAY,KAAK,EAAE,WAAA,EAAY,CACpDjB,CAAAA,CAAY,GAAA,CAAIiB,CAAAA,CAAKC,CAAM,CAAA,CAAA,CAExBA,CACX,EAKaC,CAAAA,CAAwBC,CAAAA,EAC1BA,CAAAA,CACF,OAAA,CAAQ,kBAAmB,OAAO,CAAA,CAClC,OAAA,CAAQ,uBAAA,CAAyB,OAAO,CAAA,CACxC,WAAA,EAAY,CAYfC,EAAAA,CAAyB,6FAMlBC,CAAAA,CAAoBC,CAAAA,EAA0B,CAEvD,IAAMC,EAAUD,CAAAA,CAAM,OAAA,CAAQ,KAAA,CAAO,EAAE,EAGvC,OAAIF,EAAAA,CAAuB,IAAA,CAAKG,CAAO,EAC5B,OAAA,CAGJA,CACX,CAAA,CAMaC,CAAAA,CAAa,CAACR,CAAAA,CAAaM,CAAAA,GAChC,OAAOA,CAAAA,EAAU,UAAY,CAACjB,EAAAA,CAAoB,GAAA,CAAIW,CAAG,EAClD,CAAA,EAAGM,CAAK,CAAA,EAAA,CAAA,CAEZD,CAAAA,CAAiB,OAAOC,CAAK,CAAC,CAAA,CAO5BG,CAAAA,CAAeC,GAAyC,CACjE,IAAIC,CAAAA,CAAS,EAAA,CACb,QAAWX,CAAAA,IAAOU,CAAAA,CAAK,CACnB,IAAMJ,EAAQI,CAAAA,CAAIV,CAAG,CAAA,CACjBM,CAAAA,EAAS,MAAQ,OAAOA,CAAAA,EAAU,QAAA,GAClCK,CAAAA,EAAU,CAAA,EAAGZ,CAAAA,CAAYC,CAAG,CAAC,IAAIQ,CAAAA,CAAWR,CAAAA,CAAKM,CAAK,CAAC,KAE/D,CACA,OAAOK,CACX,EAYO,IAAMC,CAAAA,CAAkBC,CAAAA,EAA4B,CACvD,IAAMC,EAAMD,CAAAA,CAAK,MAAA,CACjB,GAAIC,CAAAA,GAAQ,EAAI,OAAO,EAAA,CACvB,GAAIA,CAAAA,GAAQ,EAAG,CACX,IAAMC,CAAAA,CAAMF,CAAAA,CAAK,CAAC,CAAA,CAClB,GAAIE,CAAAA,GAAQ,MAAA,CAAY,OAAO,GAAA,CAC/B,GAAIA,CAAAA,GAAQ,KAAO,OAAO,GAAA,CAC1B,GAAI,OAAOA,GAAQ,QAAA,EAAY,OAAOA,CAAAA,EAAQ,QAAA,EAAY,OAAOA,CAAAA,EAAQ,SAAA,CACrE,OAAO,MAAA,CAAOA,CAAG,CAEzB,CACA,GAAID,CAAAA,EAAO,EAAG,CACV,IAAIH,CAAAA,CAAS,EAAA,CACb,QAASK,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIF,CAAAA,CAAKE,IAAK,CAC1B,IAAMD,CAAAA,CAAMF,CAAAA,CAAKG,CAAC,CAAA,CACZC,CAAAA,CAAI,OAAOF,EACjB,GAAIA,CAAAA,GAAQ,MAAA,CACRJ,CAAAA,EAAUK,EAAI,IAAA,CAAO,GAAA,CAAA,KAAA,GACdD,CAAAA,GAAQ,IAAA,CACfJ,GAAUK,CAAAA,CAAI,IAAA,CAAO,GAAA,CAAA,KAAA,GACdC,CAAAA,GAAM,UAAYA,CAAAA,GAAM,QAAA,EAAYA,CAAAA,GAAM,SAAA,CACjDN,GAAUK,CAAAA,CAAI,GAAA,CAAMD,CAAAA,CAAM,MAAA,CAAOA,CAAG,CAAA,CAAA,KAEpC,OAAO,IAAA,CAAK,SAAA,CAAUF,CAAI,CAElC,CACA,OAAOF,CACX,CACA,OAAO,IAAA,CAAK,SAAA,CAAUE,CAAI,CAC9B,CAAA,CAKaK,CAAAA,CAAoBlB,CAAAA,EAAwB,CAErD,IAAMmB,CAAAA,CAAYnB,CAAAA,CAAI,UAAA,CAAW,CAAC,EAClC,GAAIA,CAAAA,CAAI,MAAA,CAAS,EAAA,CAAA,CACb,GAAKmB,CAAAA,EAAa,EAAA,EAAMA,CAAAA,EAAa,GAAA,EAASA,GAAa,EAAA,EAAMA,CAAAA,EAAa,EAAA,CAAK,CAE/E,IAAIC,CAAAA,CAAQ,IAAA,CACZ,IAAA,IAASJ,CAAAA,CAAI,EAAGA,CAAAA,CAAIhB,CAAAA,CAAI,MAAA,CAAQgB,CAAAA,EAAAA,CAAK,CACjC,IAAMK,CAAAA,CAAIrB,CAAAA,CAAI,WAAWgB,CAAC,CAAA,CAC1B,GAAI,EAAGK,GAAK,EAAA,EAAMA,CAAAA,EAAK,GAAA,EAASA,CAAAA,EAAK,IAAMA,CAAAA,EAAK,EAAA,EAAQA,CAAAA,EAAK,EAAA,EAAMA,GAAK,EAAA,CAAA,CAAM,CAC1ED,CAAAA,CAAQ,KAAA,CACR,KACJ,CACJ,CACA,GAAIA,CAAAA,CAAQ,OAAOlB,CAAAA,CAAqBF,CAAG,CAC/C,CAAA,KAAA,GAAWmB,IAAc,EAAA,EAAOA,CAAAA,EAAa,EAAA,EAAMA,CAAAA,EAAa,EAAA,CAAK,CAEjE,IAAIC,CAAAA,CAAQ,KACZ,IAAA,IAASJ,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIhB,EAAI,MAAA,CAAQgB,CAAAA,EAAAA,CAC5B,GAAIhB,CAAAA,CAAI,WAAWgB,CAAC,CAAA,CAAI,EAAA,EAAMhB,CAAAA,CAAI,WAAWgB,CAAC,CAAA,CAAI,EAAA,CAAI,CAClDI,EAAQ,KAAA,CACR,KACJ,CAEJ,GAAIA,EAAQ,OAAOpB,CACvB,CAAA,CAGJ,IAAIsB,EAAO,IAAA,CACLR,CAAAA,CAAMd,CAAAA,CAAI,MAAA,CAChB,IAAA,IAASgB,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIF,EAAKE,CAAAA,EAAAA,CACrBM,CAAAA,CAAAA,CAASA,CAAAA,EAAQ,CAAA,EAAKA,EAAQtB,CAAAA,CAAI,UAAA,CAAWgB,CAAC,CAAA,CAElD,QAAQM,CAAAA,GAAS,CAAA,EAAG,QAAA,CAAS,EAAE,CACnC,CAAA,CAKaC,CAAAA,CAAqBC,CAAAA,EAAwE,CACtG,IAAMC,CAAAA,CAAQ,IAAI,GAAA,CAClB,OAAO,CACH,QAAA,CAASzB,CAAAA,CAAa0B,CAAAA,CAAqB,CACvC,IAAMC,CAAAA,CAAWF,CAAAA,CAAM,GAAA,CAAIzB,CAAG,EAC9B,GAAI2B,CAAAA,GAAa,MAAA,CAEb,OAAAF,EAAM,MAAA,CAAOzB,CAAG,CAAA,CAChByB,CAAAA,CAAM,IAAIzB,CAAAA,CAAK2B,CAAQ,CAAA,CAChBA,CAAAA,CAEX,IAAMrB,CAAAA,CAAQoB,CAAAA,EAAQ,CACtB,GAAID,EAAM,IAAA,EAAQD,CAAAA,CAAS,CAEvB,IAAMI,EAAWH,CAAAA,CAAM,IAAA,EAAK,CAAE,IAAA,GAAO,KAAA,CACjCG,CAAAA,GAAa,MAAA,EAAaH,CAAAA,CAAM,OAAOG,CAAQ,EACvD,CACA,OAAAH,CAAAA,CAAM,GAAA,CAAIzB,CAAAA,CAAKM,CAAK,EACbA,CACX,CACJ,CACJ,CAAA,CAKauB,EAAcC,CAAAA,EAAqC,CAC5D,IAAMC,CAAAA,CAAM,KAAK,SAAA,CAAUD,CAAM,CAAA,CAC7BR,CAAAA,CAAO,KACLR,CAAAA,CAAMiB,CAAAA,CAAI,MAAA,CAChB,IAAA,IAASf,EAAI,CAAA,CAAGA,CAAAA,CAAIF,CAAAA,CAAKE,CAAAA,EAAAA,CACrBM,GAASA,CAAAA,EAAQ,CAAA,EAAKA,CAAAA,CAAQS,CAAAA,CAAI,WAAWf,CAAC,CAAA,CAElD,OAAA,CAAQM,CAAAA,GAAS,CAAA,EAAG,QAAA,CAAS,EAAE,CACnC,EAKaU,CAAAA,CAAcD,CAAAA,EAAwB,CAC/C,IAAIT,EAAO,IAAA,CACLR,CAAAA,CAAMiB,CAAAA,CAAI,MAAA,CAChB,QAASf,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIF,CAAAA,CAAKE,IACrBM,CAAAA,CAAAA,CAASA,CAAAA,EAAQ,CAAA,EAAKA,CAAAA,CAAQS,EAAI,UAAA,CAAWf,CAAC,CAAA,CAElD,OAAA,CAAQM,IAAS,CAAA,EAAG,QAAA,CAAS,EAAE,CACnC,EAKaW,EAAAA,CAAsBC,CAAAA,EAA6B,CAC5D,GAAI,CAACjD,CAAAA,CAAe,GAAA,CAAIiD,CAAQ,EAC5B,OAAAjD,CAAAA,CAAe,GAAA,CAAIiD,CAAQ,EACpBA,CAAAA,CAEX,IAAIC,CAAAA,CAAU,CAAA,CACd,KAAOlD,CAAAA,CAAe,GAAA,CAAI,CAAA,EAAGiD,CAAQ,IAAIC,CAAO,CAAA,CAAE,CAAA,EAC9CA,CAAAA,EAAAA,CAEJ,IAAMhC,CAAAA,CAAO,CAAA,EAAG+B,CAAQ,CAAA,CAAA,EAAIC,CAAO,CAAA,CAAA,CACnC,OAAAlD,CAAAA,CAAe,GAAA,CAAIkB,CAAI,CAAA,CAChBA,CACX,CAAA,CAMaiC,CAAAA,CAAmB,CAACN,CAAAA,CAA0BO,CAAAA,CAAmBC,CAAAA,CAAW,KAAA,GAAkB,CACvG,GAAIA,CAAAA,CAAU,CACV,IAAMhB,EAAOO,CAAAA,CAAWC,CAAM,CAAA,CACxB7B,CAAAA,CAASjB,EAAiB,GAAA,CAAIsC,CAAI,CAAA,CACxC,GAAIrB,EAAU,OAAOA,CACzB,CAEA,IAAMsC,EAAaN,EAAAA,CAAmBI,CAAS,CAAA,CAC3CG,CAAAA,CAAU,GAEd,IAAA,IAAWxC,CAAAA,IAAO8B,CAAAA,CAAQ,CACtB,IAAMxB,CAAAA,CAASwB,CAAAA,CAAmC9B,CAAG,CAAA,CAC/CmB,CAAAA,CAAYnB,CAAAA,CAAI,CAAC,CAAA,CAEvB,GAAImB,CAAAA,GAAc,GAAA,CAAK,CAEnB,IAAMsB,EAAWhC,CAAAA,CAAYH,CAAgC,CAAA,CACzDmC,CAAAA,EACA5C,EAAW,CAAA,EAAGG,CAAG,CAAA,EAAA,EAAKuC,CAAU,IAAIE,CAAQ,CAAA,EAAA,CAAI,EAExD,CAAA,KAAA,GAAWtB,IAAc,GAAA,CAAK,CAE1B,IAAMsB,CAAAA,CAAWhC,EAAYH,CAAgC,CAAA,CACzDmC,CAAAA,EACA5C,CAAAA,CAAW,GAAGG,CAAAA,CAAI,OAAA,CAAQ,IAAA,CAAM,CAAA,CAAA,EAAIuC,CAAU,CAAA,CAAE,CAAC,CAAA,CAAA,EAAIE,CAAQ,CAAA,CAAA,CAAG,EAExE,CAAA,KAAA,GAAWtB,CAAAA,GAAc,IAAK,CAE1B,IAAMsB,CAAAA,CAAWhC,CAAAA,CAAYH,CAAgC,CAAA,CACzDmC,CAAAA,EACA5C,CAAAA,CAAW,CAAA,CAAA,EAAI0C,CAAU,CAAA,EAAGvC,CAAG,CAAA,CAAA,EAAIyC,CAAQ,GAAG,EAEtD,CAAA,KAAWnC,CAAAA,EAAS,IAAA,EAAQ,OAAOA,CAAAA,EAAU,QAAA,GAEzCkC,CAAAA,EAAW,CAAA,EAAGzC,EAAYC,CAAG,CAAC,CAAA,CAAA,EAAIQ,CAAAA,CAAWR,CAAAA,CAAKM,CAAK,CAAC,CAAA,CAAA,CAAA,EAEhE,CAGA,OAAIkC,CAAAA,EACA3C,CAAAA,CAAW,CAAA,CAAA,EAAI0C,CAAU,CAAA,CAAA,EAAIC,CAAO,CAAA,CAAA,CAAG,CAAA,CAGvCF,GACAtD,CAAAA,CAAiB,GAAA,CAAI6C,CAAAA,CAAWC,CAAM,EAAGS,CAAU,CAAA,CAGhDA,CACX,CAAA,CAKaG,EAAgBC,CAAAA,EAClBzD,CAAAA,CAAkB,GAAA,CAAIyD,CAAG,EAMvBC,CAAAA,CAAgBD,CAAAA,EAAsB,CAC/CzD,CAAAA,CAAkB,IAAIyD,CAAG,EAC7B,CAAA,CAKaE,CAAAA,CAAoB,KACrB,EAAEzD,CAAAA,EAAiB,QAAA,CAAS,EAAE,EAM7B0D,CAAAA,CAAeH,CAAAA,EACjBxD,CAAAA,CAAkB,GAAA,CAAIwD,CAAG,CAAA,CAMvBI,CAAAA,CAAeJ,CAAAA,EAAsB,CAC9CxD,EAAkB,GAAA,CAAIwD,CAAG,EAC7B,CAAA,CAKaK,EAAsB,IACxBlE,CAAAA,CAMEmE,CAAAA,CAAa,IAAY,CAClCnE,CAAAA,CAAW,EAAC,CACZE,CAAAA,CAAiB,OAAM,CACvBC,CAAAA,CAAe,KAAA,EAAM,CACrBC,EAAkB,KAAA,EAAM,CACxBC,CAAAA,CAAkB,KAAA,EAAM,CACxBC,CAAAA,CAAkB,EACtB,CAAA,CC/aA,IAAM8D,CAAAA,CAAeC,oBAA0C,MAAS,CAAA,CAuB3DC,EAAAA,CAAgB,CAAgC,CACzD,KAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CACJ,IAAkC,CAC9B,IAAMC,CAAAA,CAAiB9D,CAAAA,CAAsB,IAAM4D,CAAK,CAAA,CAExD,OAAAG,qBAAAA,CAAgB,IACL,IAAM,CACT/D,CAAAA,CAAsB8D,CAAc,EACxC,CAAA,CACD,CAACA,CAAc,CAAC,CAAA,CAGfE,cAAAA,CAACP,CAAAA,CAAa,QAAA,CAAb,CAAsB,KAAA,CAAOG,CAAAA,CACzB,QAAA,CAAAC,CAAAA,CACL,CAER,CAAA,CAiBaI,EAAAA,CAAW,IAA8D,CAClF,IAAML,CAAAA,CAAQM,gBAAAA,CAAWT,CAAY,CAAA,CAErC,GAAI,CAACG,CAAAA,CACD,MAAM,IAAI,MAAM,8CAA8C,CAAA,CAGlE,OAAOA,CACX,EC/DO,IAAMO,CAAAA,CAAiB,CAC1B,IAAA,CAAM,IACN,KAAA,CAAO,UAAA,CACP,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,QAAA,CACJ,EAAA,CAAI,MAAA,CACJ,GAAI,QAAA,CACJ,EAAA,CAAI,MAAA,CACJ,KAAA,CAAO,OACP,KAAA,CAAO,MAAA,CACP,KAAA,CAAO,MAAA,CACP,MAAO,MACX,CAAA,CAKaC,CAAAA,CAAgB,CACzB,KAAM,GAAA,CACN,EAAA,CAAI,UAAA,CACJ,EAAA,CAAI,UACJ,EAAA,CAAI,UAAA,CACJ,EAAA,CAAI,QAAA,CACJ,GAAI,SAAA,CACJ,KAAA,CAAO,MAAA,CACP,IAAA,CAAM,QACV,CAAA,CAKaC,CAAAA,CAAiB,CAC1B,IAAA,CAAM,OACN,EAAA,CAAI,+BAAA,CACJ,EAAA,CAAI,+DAAA,CACJ,GAAI,kEAAA,CACJ,EAAA,CAAI,oEAAA,CACJ,EAAA,CAAI,sEACJ,KAAA,CAAO,qCAAA,CACP,KAAA,CAAO,qCAAA,CACP,MAAO,iCACX,CAAA,CAKaC,CAAAA,CAAkB,CAC3B,MAAO,UAAA,CACP,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,WACJ,EAAA,CAAI,MAAA,CACJ,EAAA,CAAI,SAAA,CACJ,GAAI,QAAA,CACJ,KAAA,CAAO,MAAA,CACP,KAAA,CAAO,SACP,KAAA,CAAO,MAAA,CACP,KAAA,CAAO,MACX,CAAA,CAKaC,CAAAA,CAAoB,CAC7B,KAAA,CAAO,IACP,OAAA,CAAS,GAAA,CACT,MAAA,CAAQ,GAAA,CACR,SAAU,GAAA,CACV,IAAA,CAAM,GACV,CAAA,CAKaC,EAAoB,CAC7B,IAAA,CAAM,CAAA,CACN,KAAA,CAAO,KACP,MAAA,CAAQ,GAAA,CACR,OAAA,CAAS,IAAA,CACT,MAAO,CACX,CAAA,CAKaC,CAAAA,CAAgB,CACzB,OAAQ,EAAA,CACR,IAAA,CAAM,CAAA,CACN,QAAA,CAAU,IACV,MAAA,CAAQ,IAAA,CACR,OAAA,CAAS,IAAA,CACT,KAAA,CAAO,IAAA,CACP,OAAA,CAAS,IAAA,CACT,QAAS,IAAA,CACT,KAAA,CAAO,IACX,CAAA,CAKaC,EAAoB,CAC7B,IAAA,CAAM,gBAAA,CACN,MAAA,CAAQ,iBACR,IAAA,CAAM,gBACV,CAAA,CAKaC,CAAAA,CAAiB,CAC1B,IAAA,CAAM,CAAA,CACN,MAAA,CAAQ,GAAA,CACR,IAAK,EAAA,CACL,MAAA,CAAQ,GAAA,CACR,IAAA,CAAM,GACN,MAAA,CAAQ,GAAA,CACR,IAAA,CAAM,CACV,EAKaC,CAAAA,CAAqB,CAC9B,EAAA,CAAI,OAAA,CACJ,EAAA,CAAI,OAAA,CACJ,EAAA,CAAI,OAAA,CACJ,GAAI,QAAA,CACJ,EAAA,CAAI,QAAA,CACJ,KAAA,CAAO,QACX,ECvIO,IAAMC,EAAAA,CAAoB,CAC7B,GAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SACT,CAAA,CCbO,IAAMC,EAAAA,CAAmB,CAC5B,EAAA,CAAI,SAAA,CACJ,GAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SACT,CAAA,CCbO,IAAMC,EAAAA,CAAmB,CAC5B,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SACT,CAAA,CCbO,IAAMC,EAAAA,CAAsB,CAC/B,GAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SACT,ECbO,IAAMC,EAAAA,CAAsB,CAC/B,EAAA,CAAI,UACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SACT,CAAA,CCbO,IAAMC,GAAmB,CAC5B,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SACT,CAAA,CCbO,IAAMC,EAAAA,CAAoB,CAC7B,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SACT,ECbO,IAAMC,EAAAA,CAAqB,CAC9B,EAAA,CAAI,UACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SACT,CAAA,CCbO,IAAMC,EAAAA,CAAmB,CAC5B,EAAA,CAAI,SAAA,CACJ,GAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SACT,CAAA,CCbO,IAAMC,EAAAA,CAAqB,CAC9B,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SACT,CAAA,CCbO,IAAMC,EAAAA,CAAmB,CAC5B,GAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SACT,ECbO,IAAMC,EAAAA,CAAqB,CAC9B,EAAA,CAAI,UACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SACT,CAAA,CCbO,IAAMC,GAAkB,CAC3B,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,UACJ,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SACT,CAAA,CCbO,IAAMC,EAAAA,CAAmB,CAC5B,GAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SACT,ECbO,IAAMC,EAAAA,CAAoB,CAC7B,EAAA,CAAI,UACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SACT,CAAA,CCbO,IAAMC,EAAAA,CAAoB,CAC7B,EAAA,CAAI,SAAA,CACJ,GAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SACT,CAAA,CCbO,IAAMC,EAAAA,CAAmB,CAC5B,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SACT,CAAA,CCbO,IAAMC,EAAAA,CAAqB,CAC9B,GAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SACT,CAAA,CCbO,IAAMC,EAAAA,CAAqB,CAC9B,EAAA,CAAI,SAAA,CACJ,GAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SACT,CAAA,CCyBO,IAAMC,CAAAA,CAAS,CAElB,IAAA,CAAAd,EAAAA,CACA,KAAA,CAAAS,EAAAA,CACA,KAAA,CAAAC,EAAAA,CAEA,GAAA,CAAAH,EAAAA,CACA,OAAAH,EAAAA,CACA,KAAA,CAAAT,EAAAA,CACA,MAAA,CAAAkB,GACA,IAAA,CAAAV,EAAAA,CACA,KAAA,CAAAF,EAAAA,CACA,QAAAH,EAAAA,CACA,IAAA,CAAAa,EAAAA,CACA,IAAA,CAAAd,GACA,IAAA,CAAAD,EAAAA,CACA,MAAA,CAAAM,EAAAA,CACA,OAAAU,EAAAA,CACA,MAAA,CAAAN,EAAAA,CACA,OAAA,CAAAP,GACA,IAAA,CAAAM,EAAAA,CACA,IAAA,CAAAG,EAAAA,CAEA,MAAO,SAAA,CACP,KAAA,CAAO,SAAA,CACP,WAAA,CAAa,aAAA,CACb,OAAA,CAAS,cACb,MCrCaO,CAAAA,CAA6B,CAEtC,UAAA,CAAYD,CAAAA,CAAO,MAAM,EAAE,CAAA,CAC3B,OAAA,CAASA,CAAAA,CAAO,MAChB,YAAA,CAAcA,CAAAA,CAAO,KAAA,CAAM,GAAG,EAC9B,aAAA,CAAeA,CAAAA,CAAO,KAAA,CAAM,GAAG,EAG/B,IAAA,CAAMA,CAAAA,CAAO,KAAA,CAAM,GAAG,EACtB,aAAA,CAAeA,CAAAA,CAAO,KAAA,CAAM,GAAG,EAC/B,YAAA,CAAcA,CAAAA,CAAO,KAAA,CAAM,GAAG,CAAA,CAG9B,OAAA,CAASA,CAAAA,CAAO,MAAA,CAAO,GAAG,CAAA,CAC1B,YAAA,CAAcA,CAAAA,CAAO,MAAA,CAAO,GAAG,CAAA,CAC/B,aAAA,CAAeA,CAAAA,CAAO,MAAA,CAAO,GAAG,CAAA,CAChC,aAAA,CAAeA,CAAAA,CAAO,MAAA,CAAO,EAAE,CAAA,CAC/B,eAAA,CAAiBA,CAAAA,CAAO,MAAA,CAAO,GAAG,CAAA,CAClC,SAAA,CAAWA,CAAAA,CAAO,KAAA,CAGlB,UAAWA,CAAAA,CAAO,KAAA,CAAM,GAAG,CAAA,CAC3B,eAAgBA,CAAAA,CAAO,KAAA,CAAM,GAAG,CAAA,CAChC,gBAAiBA,CAAAA,CAAO,KAAA,CAAM,GAAG,CAAA,CACjC,gBAAiBA,CAAAA,CAAO,KAAA,CAAM,EAAE,CAAA,CAChC,kBAAmBA,CAAAA,CAAO,KAAA,CAAM,GAAG,CAAA,CACnC,YAAaA,CAAAA,CAAO,KAAA,CAAM,GAAG,CAAA,CAG7B,OAAQA,CAAAA,CAAO,KAAA,CAAM,GAAG,CAAA,CAGxB,aAAcA,CAAAA,CAAO,KAAA,CAAM,GAAG,CAAA,CAC9B,SAAUA,CAAAA,CAAO,KAAA,CAAM,GAAG,CAAA,CAG1B,QAASA,CAAAA,CAAO,OAAA,CAAQ,GAAG,CAAA,CAC3B,aAAA,CAAeA,CAAAA,CAAO,OAAA,CAAQ,EAAE,EAGhC,OAAA,CAASA,CAAAA,CAAO,KAAA,CAAM,GAAG,EACzB,aAAA,CAAeA,CAAAA,CAAO,KAAA,CAAM,EAAE,EAG9B,KAAA,CAAOA,CAAAA,CAAO,GAAA,CAAI,GAAG,EACrB,UAAA,CAAYA,CAAAA,CAAO,GAAA,CAAI,GAAG,EAC1B,WAAA,CAAaA,CAAAA,CAAO,GAAA,CAAI,EAAE,EAC1B,OAAA,CAASA,CAAAA,CAAO,KAAA,CAGhB,IAAA,CAAMA,EAAO,IAAA,CAAK,GAAG,CAAA,CACrB,UAAA,CAAYA,CAAAA,CAAO,IAAA,CAAK,EAAE,CAAA,CAG1B,KAAMA,CAAAA,CAAO,MAAA,CAAO,GAAG,CAAA,CACvB,UAAWA,CAAAA,CAAO,MAAA,CAAO,GAAG,CAAA,CAC5B,WAAYA,CAAAA,CAAO,MAAA,CAAO,GAAG,CAAA,CAC7B,aAAcA,CAAAA,CAAO,MAAA,CAAO,GAAG,CACnC,EC5CO,IAAME,EAAAA,CAcXC,CAAAA,GACS,CACH,OAASA,CAAAA,EAAQ,MAAA,EAAUF,CAAAA,CAC3B,OAAA,CAAUE,GAAQ,OAAA,EAAWhC,CAAAA,CAC7B,MAAA,CAASgC,CAAAA,EAAQ,MAAA,EAAU/B,CAAAA,CAC3B,OAAA,CAAU+B,CAAAA,EAAQ,SAAW9B,CAAAA,CAC7B,QAAA,CAAW8B,CAAAA,EAAQ,QAAA,EAAY7B,EAC/B,UAAA,CAAa6B,CAAAA,EAAQ,UAAA,EAAc5B,CAAAA,CACnC,WAAa4B,CAAAA,EAAQ,UAAA,EAAc3B,CAAAA,CACnC,MAAA,CAAS2B,GAAQ,MAAA,EAAU1B,CAAAA,CAC3B,UAAA,CAAa0B,CAAAA,EAAQ,YAAczB,CAAAA,CACnC,OAAA,CAAUyB,CAAAA,EAAQ,OAAA,EAAWxB,EAC7B,WAAA,CAAcwB,CAAAA,EAAQ,WAAA,EAAevB,CACzC,GCtDJ,IAAMwB,EAAAA,CAA4B,IAAc,CAC5C,IAAMC,CAAAA,CAAQ,IAAI,KAAA,EAAM,CAAE,OAAS,EAAA,CAC7BC,CAAAA,CAAQD,CAAAA,CAAM,KAAA,CAAM,gCAAgC,CAAA,CAC1D,GAAIC,CAAAA,GAAQ,CAAC,EACT,OAAO7F,CAAAA,CAAqB6F,CAAAA,CAAM,CAAC,CAAC,CAAA,CAExC,IAAMC,CAAAA,CAAYF,CAAAA,CAAM,MAAM,uCAAuC,CAAA,CACrE,OAAIE,CAAAA,GAAY,CAAC,CAAA,EAAKA,CAAAA,CAAU,CAAC,CAAA,GAAM,eAC5B9F,CAAAA,CAAqB8F,CAAAA,CAAU,CAAC,CAAC,CAAA,CAErC,OACX,CAAA,CAKMC,EAAAA,CAAgB,CAClBnE,CAAAA,CACAoE,CAAAA,GAC4D,CAC5D,IAAMC,EAAU,EAAC,CAEjB,IAAA,IAAWnG,CAAAA,IAAO8B,EAAQ,CACtB,IAAMtC,CAAAA,CAAQsC,CAAAA,CAAO9B,CAAG,CAAA,CACxB,GAAIR,CAAAA,CAAO,CACP,IAAM0C,CAAAA,CAAW,CAAA,EAAGgE,CAAa,CAAA,CAAA,EAAIhG,EAAqBF,CAAG,CAAC,CAAA,CAAA,CAC9D,GAAI,OAAOR,CAAAA,EAAU,UAAA,CAAY,CAC7B,IAAM4G,CAAAA,CAAM7E,CAAAA,CAAuBjC,CAAc,CAAA,CACjD6G,EAAQnG,CAAG,CAAA,CAAI,CAAA,GAAIa,CAAAA,GAAoB,CACnC,IAAMwF,CAAAA,CAAWzF,CAAAA,CAAeC,CAAI,EACpC,OAAOuF,CAAAA,CAAI,QAAA,CAASC,CAAAA,CAAU,IAAM,CAChC,IAAMC,EAAAA,CAAY9G,CAAAA,CAAgD,GAAGqB,CAAI,CAAA,CACzE,OAAOuB,CAAAA,CAAiBkE,GAAU,CAAA,EAAGpE,CAAQ,CAAA,CAAA,EAAIhB,CAAAA,CAAiBmF,CAAQ,CAAC,CAAA,CAAE,CACjF,CAAC,CACL,EACJ,CAAA,KACIF,CAAAA,CAAQnG,CAAG,CAAA,CAAIoC,CAAAA,CAAiB5C,CAAAA,CAAO0C,CAAAA,CAAU,IAAI,EAE7D,CACJ,CAEA,OAAOiE,CACX,CAAA,CA4BaI,EAAAA,CAGLC,CAAAA,EACoH,CAExH,IAAMN,CAAAA,CAAgBL,EAAAA,EAA0B,CAGhD,GAAI,OAAOW,CAAAA,EAAoB,UAAA,CAAY,CACvC,IAAIvG,EAAwB,IAAA,CACxBwG,CAAAA,CAEJ,OAAO,IAAI,MAAM,EAAC,CAAa,CAC3B,GAAA,CAAIC,EAAGC,CAAAA,CAAuB,CAC1B,IAAMtD,CAAAA,CAAQzD,GAAS,CACvB,GAAI,CAACyD,CAAAA,CACD,MAAM,IAAI,KAAA,CAAM,6FAA6F,CAAA,CAEjH,QAAIA,CAAAA,GAAUoD,CAAAA,EAAa,CAACxG,CAAAA,IACxBA,EAASgG,EAAAA,CAAcO,CAAAA,CAAgBnD,CAAK,CAAA,CAAG6C,CAAa,CAAA,CAC5DO,CAAAA,CAAYpD,CAAAA,CAAAA,CAETpD,CAAAA,CAAO0G,CAAe,CACjC,CACJ,CAAC,CACL,CAGA,OAAOV,EAAAA,CAAcO,CAAAA,CAAiBN,CAAa,CACvD,CAAA,CA2BaU,EAAAA,CAAoB,IAEzBJ,GAEOD,EAAAA,CAAgBC,CAAqD,ECzH7E,IAAMK,GAAaC,CAAAA,EAAkD,CAExE,IAAInE,CAAAA,CAAM,GACV,IAAA,IAAW3C,CAAAA,IAAO8G,CAAAA,CACdnE,CAAAA,EAAO,GAAG3C,CAAG,CAAA,CAAA,EAAIS,CAAAA,CAAYqG,CAAAA,CAAO9G,CAAG,CAA4B,CAAC,CAAA,CAAA,CAAA,CAIxE,GAAI0C,EAAaC,CAAG,CAAA,CAEhB,OAAO,CAAA,UAAA,EADMX,EAAWW,CAAG,CACH,CAAA,CAAA,CAI5B,IAAMxC,CAAAA,CAAO,CAAA,UAAA,EAAa0C,CAAAA,EAAmB,GAG7C,OAAAhD,CAAAA,CAAW,CAAA,WAAA,EAAcM,CAAI,IAAIwC,CAAG,CAAA,CAAA,CAAG,CAAA,CACvCC,CAAAA,CAAaD,CAAG,CAAA,CAETxC,CACX,EC9BO,IAAM4G,GAAYC,CAAAA,EAAqC,CAC1D,GAAM,CACF,WAAAC,CAAAA,CACA,GAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,EAAY,QAAA,CACZ,UAAA,CAAAC,CAAAA,CAAa,GAAA,CACb,YAAAC,CAAAA,CAAc,MAAA,CACd,YAAA,CAAAC,CACJ,CAAA,CAAIN,CAAAA,CAGArE,CAAAA,CAAM,CAAA,aAAA,EAAgBsE,CAAU,CAAA,EAAA,CAAA,CACpC,OAAAtE,CAAAA,EAAO,CAAA,IAAA,EAAOuE,CAAG,CAAA,CAAA,CAAA,CACjBvE,CAAAA,EAAO,CAAA,WAAA,EAAcwE,CAAS,IAC9BxE,CAAAA,EAAO,CAAA,YAAA,EAAeyE,CAAU,CAAA,CAAA,CAAA,CAChCzE,GAAO,CAAA,aAAA,EAAgB0E,CAAW,CAAA,CAAA,CAAA,CAC9BC,CAAAA,GACA3E,GAAO,CAAA,cAAA,EAAiB2E,CAAY,CAAA,CAAA,CAAA,CAAA,CAInCxE,CAAAA,CAAYH,CAAG,CAAA,GAChB9C,CAAAA,CAAW,CAAA,WAAA,EAAc8C,CAAG,GAAG,CAAA,CAC/BI,CAAAA,CAAYJ,CAAG,CAAA,CAAA,CAGZsE,CACX,ECrCA,IAAMM,EAAAA,CAAuB,CAAC7G,EAA8B8G,CAAAA,GAA2B,CACnF,IAAI7E,CAAAA,CAAM,GAEV,IAAA,IAAW3C,CAAAA,IAAOU,CAAAA,CAAK,CACnB,IAAMJ,CAAAA,CAAQI,CAAAA,CAAIV,CAAG,CAAA,CACfyH,EAAW1H,CAAAA,CAAYC,CAAG,CAAA,CAE5BM,CAAAA,EAAS,OAAOA,CAAAA,EAAU,QAAA,CAC1BqC,CAAAA,EAAO4E,EAAAA,CAAqBjH,EAAkC,CAAA,EAAGkH,CAAM,CAAA,CAAA,EAAIC,CAAQ,EAAE,CAAA,CAC9EnH,CAAAA,EAAS,IAAA,GAChBqC,CAAAA,EAAO,CAAA,EAAA,EAAK6E,CAAM,CAAA,CAAA,EAAIC,CAAQ,IAAInH,CAAK,CAAA,CAAA,CAAA,EAE/C,CAEA,OAAOqC,CACX,CAAA,CAaa+E,EAAAA,CAAqB,CAC9BrE,CAAAA,CACAmE,EAAS,OAAA,GACF,CACP,IAAMG,CAAAA,CAAYJ,GAAqBlE,CAAAA,CAAOmE,CAAM,CAAA,CACpD3H,CAAAA,CAAW,SAAS8H,CAAS,CAAA,CAAA,CAAG,EACpC,CAAA,CAaaC,GAAS,CAACC,CAAAA,CAAcC,CAAAA,GAA8B,CAC/D,IAAMC,CAAAA,CAAU,CAAA,QAAA,EAAWF,CAAAA,CAAK,OAAA,CAAQ,MAAO,GAAG,CAAC,CAAA,CAAA,CACnD,OAAOC,EAAW,CAAA,IAAA,EAAOC,CAAO,CAAA,EAAA,EAAKD,CAAQ,IAAM,CAAA,IAAA,EAAOC,CAAO,CAAA,CAAA,CACrE,CAAA,CAeaC,GAAe,CACxBL,CAAAA,CACAX,CAAAA,CAAiD,KACpB,CAC7B,GAAM,CAAE,MAAA,CAAAQ,EAAS,EAAA,CAAI,MAAA,CAAAS,CAAAA,CAAS,KAAM,EAAIjB,CAAAA,CAClCrG,CAAAA,CAAS,EAAC,CACZuH,EAAc,EAAA,CAElB,IAAA,IAAWlI,CAAAA,IAAO2H,CAAAA,CAAW,CACzB,IAAMF,CAAAA,CAAW1H,CAAAA,CAAYC,CAAG,CAAA,CAC1B+H,CAAAA,CAAUP,CAAAA,CAAS,CAAA,EAAA,EAAKA,CAAM,CAAA,CAAA,EAAIC,CAAQ,CAAA,CAAA,CAAK,CAAA,EAAA,EAAKA,CAAQ,CAAA,CAAA,CAClE9G,CAAAA,CAAOX,CAAG,CAAA,CAAI,OAAO+H,CAAO,CAAA,CAAA,CAAA,CAExBE,CAAAA,GACAC,CAAAA,EAAe,GAAGH,CAAO,CAAA,CAAA,EAAIJ,CAAAA,CAAU3H,CAAG,CAAC,CAAA,CAAA,CAAA,EAEnD,CAEA,OAAIiI,CAAAA,EAAUC,GACVrI,CAAAA,CAAW,CAAA,MAAA,EAASqI,CAAW,CAAA,CAAA,CAAG,EAG/BvH,CACX,EC1FO,IAAMwH,EAAAA,CAAe,IACjBnF,CAAAA,EAAoB,CAAE,IAAA,CAAK,EAAE,EAO3BoF,EAAAA,CAAiB,IAAc,CACxC,IAAMzF,EAAMwF,EAAAA,EAAa,CACzB,OAAKxF,CAAAA,CACE,6BAA6BA,CAAG,CAAA,QAAA,CAAA,CADpB,EAEvB,CAAA,CAMa0F,GAAgB,IAAY,CACrCpF,CAAAA,GACJ,EAMaqF,EAAAA,CAAmB,IACrB,CAAC,GAAGtF,GAAqB","file":"index.cjs","sourcesContent":["import type { StyleWithPseudos } from './types'\r\nimport type { ThemeStructure } from '@/types'\r\n\r\n// Environment detection (constant since it never changes)\r\nconst IS_SERVER = typeof document === 'undefined'\r\n\r\n// Global theme getter - accepts any theme structure\r\nlet themeContextGetter: (() => ThemeStructure | undefined) | null = null\r\n\r\n// Stylesheet for client-side injection\r\nlet styleSheet: CSSStyleSheet | null = null\r\n\r\n// SSR buffer to collect server-side rules\r\nlet ssrRules: string[] = []\r\n\r\n// Cache for camelCase → kebab-case conversion (pre-allocated for common keys)\r\nconst cssKeyCache = new Map<string, string>([\r\n ['backgroundColor', 'background-color'],\r\n ['borderRadius', 'border-radius'],\r\n ['fontSize', 'font-size'],\r\n ['fontWeight', 'font-weight'],\r\n ['lineHeight', 'line-height'],\r\n ['marginTop', 'margin-top'],\r\n ['marginBottom', 'margin-bottom'],\r\n ['marginLeft', 'margin-left'],\r\n ['marginRight', 'margin-right'],\r\n ['paddingTop', 'padding-top'],\r\n ['paddingBottom', 'padding-bottom'],\r\n ['paddingLeft', 'padding-left'],\r\n ['paddingRight', 'padding-right'],\r\n ['textAlign', 'text-align'],\r\n ['justifyContent', 'justify-content'],\r\n ['alignItems', 'align-items'],\r\n ['flexDirection', 'flex-direction'],\r\n ['flexWrap', 'flex-wrap'],\r\n ['boxShadow', 'box-shadow'],\r\n ['zIndex', 'z-index'],\r\n])\r\n\r\n// Global cache for static styles (avoids regenerating the same styles)\r\nconst staticStyleCache = new Map<string, string>()\r\n\r\n// Set to track already used class names\r\nconst usedClassNames = new Set<string>()\r\n\r\n// Set to track already injected keyframes\r\nconst injectedKeyframes = new Set<string>()\r\n\r\n// Set to track already injected font-faces\r\nconst injectedFontFaces = new Set<string>()\r\n\r\n// Counter for unique keyframe names generation\r\nlet keyframeCounter = 0\r\n\r\n// Properties that accept unitless numbers (optimized Set)\r\nconst UNITLESS_PROPERTIES = new Set([\r\n 'animationIterationCount', 'columnCount', 'fillOpacity', 'flexGrow', 'flexShrink',\r\n 'fontWeight', 'lineHeight', 'opacity', 'order', 'orphans', 'widows', 'zIndex', 'zoom'\r\n])\r\n\r\n// Max LRU cache size for dynamic styles\r\nexport const MAX_CACHE_SIZE = 100\r\n\r\n// Initialize stylesheet (client-side only)\r\nif (!IS_SERVER) {\r\n const existingStyle = document.getElementById('aurora-styles') as HTMLStyleElement | null\r\n if (existingStyle) {\r\n styleSheet = existingStyle.sheet as CSSStyleSheet\r\n } else {\r\n const style = document.createElement('style')\r\n style.id = 'aurora-styles'\r\n document.head.appendChild(style)\r\n styleSheet = style.sheet as CSSStyleSheet\r\n }\r\n}\r\n\r\n/**\r\n * Set the theme getter\r\n */\r\nexport const setThemeContextGetter = (\r\n getter: (() => ThemeStructure | undefined) | null\r\n): (() => ThemeStructure | undefined) | null => {\r\n const previous = themeContextGetter\r\n themeContextGetter = getter\r\n return previous\r\n}\r\n\r\n/**\r\n * Get the current theme\r\n */\r\nexport const getTheme = (): ThemeStructure | undefined => {\r\n return themeContextGetter?.()\r\n}\r\n\r\n/**\r\n * Insert a CSS rule\r\n */\r\nexport const insertRule = (rule: string): void => {\r\n if (IS_SERVER) {\r\n ssrRules.push(rule)\r\n } else if (styleSheet) {\r\n try {\r\n styleSheet.insertRule(rule, styleSheet.cssRules.length)\r\n } catch {\r\n // Ignore errors (invalid rules)\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Convert camelCase to kebab-case with caching\r\n */\r\nexport const toKebabCase = (key: string): string => {\r\n let cached = cssKeyCache.get(key)\r\n if (!cached) {\r\n cached = key.replace(/([A-Z])/g, '-$1').toLowerCase()\r\n cssKeyCache.set(key, cached)\r\n }\r\n return cached\r\n}\r\n\r\n/**\r\n * Convert PascalCase/camelCase to kebab-case for class names\r\n */\r\nexport const toKebabCaseClassName = (name: string): string => {\r\n return name\r\n .replace(/([a-z])([A-Z])/g, '$1-$2')\r\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')\r\n .toLowerCase()\r\n}\r\n\r\n/**\r\n * Dangerous patterns that could be used for CSS injection attacks\r\n * - expression(): IE-specific, allows JavaScript execution\r\n * - url() with javascript:/data:: can execute scripts or embed malicious content\r\n * - behavior: IE-specific, loads external HTC files\r\n * - -moz-binding: Firefox-specific, loads XBL files\r\n * - @import: could load external malicious stylesheets\r\n * - </style>: could break out of style context\r\n */\r\nconst CSS_INJECTION_PATTERNS = /expression\\s*\\(|javascript\\s*:|data\\s*:\\s*text\\/html|behavior\\s*:|@import|<\\s*\\/?\\s*style/i\r\n\r\n/**\r\n * Sanitize a CSS value to prevent injection attacks\r\n * Returns the sanitized value or 'unset' if the value is dangerous\r\n */\r\nexport const sanitizeCssValue = (value: string): string => {\r\n // Remove any null bytes\r\n const cleaned = value.replace(/\\0/g, '')\r\n\r\n // Check for dangerous patterns\r\n if (CSS_INJECTION_PATTERNS.test(cleaned)) {\r\n return 'unset'\r\n }\r\n\r\n return cleaned\r\n}\r\n\r\n\r\n/**\r\n * Convert values to valid CSS with sanitization\r\n */\r\nexport const toCssValue = (key: string, value: unknown): string => {\r\n if (typeof value === 'number' && !UNITLESS_PROPERTIES.has(key)) {\r\n return `${value}px`\r\n }\r\n return sanitizeCssValue(String(value))\r\n}\r\n\r\n/**\r\n * Convert a styles object to CSS (simple properties only)\r\n * Optimized to avoid unnecessary allocations\r\n */\r\nexport const objectToCss = (obj: Record<string, unknown>): string => {\r\n let result = ''\r\n for (const key in obj) {\r\n const value = obj[key]\r\n if (value != null && typeof value !== 'object') {\r\n result += `${toKebabCase(key)}:${toCssValue(key, value)};`\r\n }\r\n }\r\n return result\r\n}\r\n\r\n/**\r\n * Convert an & selector to a valid CSS selector\r\n */\r\nexport const resolveAmpersandSelector = (selector: string, className: string): string => {\r\n return selector.includes('&') ? selector.replace(/&/g, `.${className}`) : `.${className}${selector}`\r\n}\r\n\r\n/**\r\n * Create a cache key from arguments\r\n */\r\nexport const createCacheKey = (args: unknown[]): string => {\r\n const len = args.length\r\n if (len === 0) {return ''}\r\n if (len === 1) {\r\n const arg = args[0]\r\n if (arg === undefined) {return 'u'}\r\n if (arg === null) {return 'n'}\r\n if (typeof arg === 'string' || typeof arg === 'number' || typeof arg === 'boolean') {\r\n return String(arg)\r\n }\r\n }\r\n if (len <= 4) {\r\n let result = ''\r\n for (let i = 0; i < len; i++) {\r\n const arg = args[i]\r\n const t = typeof arg\r\n if (arg === undefined) {\r\n result += i ? '|u' : 'u'\r\n } else if (arg === null) {\r\n result += i ? '|n' : 'n'\r\n } else if (t === 'string' || t === 'number' || t === 'boolean') {\r\n result += i ? '|' + arg : String(arg)\r\n } else {\r\n return JSON.stringify(args)\r\n }\r\n }\r\n return result\r\n }\r\n return JSON.stringify(args)\r\n}\r\n\r\n/**\r\n * Convert cacheKey to a valid CSS suffix\r\n */\r\nexport const cacheKeyToSuffix = (key: string): string => {\r\n // Fast path for simple keys\r\n const firstChar = key.charCodeAt(0)\r\n if (key.length < 20) {\r\n if ((firstChar >= 97 && firstChar <= 122) || (firstChar >= 65 && firstChar <= 90)) {\r\n // Starts with letter, check if alphanumeric\r\n let valid = true\r\n for (let i = 1; i < key.length; i++) {\r\n const c = key.charCodeAt(i)\r\n if (!((c >= 97 && c <= 122) || (c >= 65 && c <= 90) || (c >= 48 && c <= 57))) {\r\n valid = false\r\n break\r\n }\r\n }\r\n if (valid) {return toKebabCaseClassName(key)}\r\n } else if (firstChar === 45 || (firstChar >= 48 && firstChar <= 57)) {\r\n // Number or negative number\r\n let valid = true\r\n for (let i = 1; i < key.length; i++) {\r\n if (key.charCodeAt(i) < 48 || key.charCodeAt(i) > 57) {\r\n valid = false\r\n break\r\n }\r\n }\r\n if (valid) {return key}\r\n }\r\n }\r\n // Hash for complex keys\r\n let hash = 5381\r\n const len = key.length\r\n for (let i = 0; i < len; i++) {\r\n hash = ((hash << 5) + hash) ^ key.charCodeAt(i)\r\n }\r\n return (hash >>> 0).toString(36)\r\n}\r\n\r\n/**\r\n * Optimized LRU cache with O(1) deletion\r\n */\r\nexport const createLRUCache = <V>(maxSize: number): { getOrSet: (key: string, factory: () => V) => V } => {\r\n const cache = new Map<string, V>()\r\n return {\r\n getOrSet(key: string, factory: () => V): V {\r\n const existing = cache.get(key)\r\n if (existing !== undefined) {\r\n // Move to end (most recent) - O(1) with Map\r\n cache.delete(key)\r\n cache.set(key, existing)\r\n return existing\r\n }\r\n const value = factory()\r\n if (cache.size >= maxSize) {\r\n // Remove oldest (first element)\r\n const firstKey = cache.keys().next().value\r\n if (firstKey !== undefined) { cache.delete(firstKey) }\r\n }\r\n cache.set(key, value)\r\n return value\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Hash for static styles cache\r\n */\r\nexport const hashStyles = (styles: StyleWithPseudos): string => {\r\n const str = JSON.stringify(styles)\r\n let hash = 5381\r\n const len = str.length\r\n for (let i = 0; i < len; i++) {\r\n hash = ((hash << 5) + hash) ^ str.charCodeAt(i)\r\n }\r\n return (hash >>> 0).toString(36)\r\n}\r\n\r\n/**\r\n * Generic hash for a string\r\n */\r\nexport const hashString = (str: string): string => {\r\n let hash = 5381\r\n const len = str.length\r\n for (let i = 0; i < len; i++) {\r\n hash = ((hash << 5) + hash) ^ str.charCodeAt(i)\r\n }\r\n return (hash >>> 0).toString(36)\r\n}\r\n\r\n/**\r\n * Get a unique class name\r\n */\r\nexport const getUniqueClassName = (baseName: string): string => {\r\n if (!usedClassNames.has(baseName)) {\r\n usedClassNames.add(baseName)\r\n return baseName\r\n }\r\n let counter = 2\r\n while (usedClassNames.has(`${baseName}-${counter}`)) {\r\n counter++\r\n }\r\n const name = `${baseName}-${counter}`\r\n usedClassNames.add(name)\r\n return name\r\n}\r\n\r\n/**\r\n * Generate a CSS class with support for complex selectors\r\n * Optimized to minimize allocations and iterations\r\n */\r\nexport const generateCssClass = (styles: StyleWithPseudos, className: string, useCache = false): string => {\r\n if (useCache) {\r\n const hash = hashStyles(styles)\r\n const cached = staticStyleCache.get(hash)\r\n if (cached) { return cached }\r\n }\r\n\r\n const uniqueName = getUniqueClassName(className)\r\n let baseCss = ''\r\n\r\n for (const key in styles) {\r\n const value = (styles as Record<string, unknown>)[key]\r\n const firstChar = key[0]\r\n\r\n if (firstChar === '@') {\r\n // @media, @container, @supports\r\n const innerCss = objectToCss(value as Record<string, unknown>)\r\n if (innerCss) {\r\n insertRule(`${key}{.${uniqueName}{${innerCss}}}`)\r\n }\r\n } else if (firstChar === '&') {\r\n // Complex selectors (& > div, &:nth-child, etc.)\r\n const innerCss = objectToCss(value as Record<string, unknown>)\r\n if (innerCss) {\r\n insertRule(`${key.replace(/&/g, `.${uniqueName}`)}{${innerCss}}`)\r\n }\r\n } else if (firstChar === ':') {\r\n // Pseudo-classes (:hover, :focus, etc.)\r\n const innerCss = objectToCss(value as Record<string, unknown>)\r\n if (innerCss) {\r\n insertRule(`.${uniqueName}${key}{${innerCss}}`)\r\n }\r\n } else if (value != null && typeof value !== 'object') {\r\n // Simple CSS properties\r\n baseCss += `${toKebabCase(key)}:${toCssValue(key, value)};`\r\n }\r\n }\r\n\r\n // Inject base rule\r\n if (baseCss) {\r\n insertRule(`.${uniqueName}{${baseCss}}`)\r\n }\r\n\r\n if (useCache) {\r\n staticStyleCache.set(hashStyles(styles), uniqueName)\r\n }\r\n\r\n return uniqueName\r\n}\r\n\r\n/**\r\n * Check if a keyframe already exists\r\n */\r\nexport const hasKeyframes = (css: string): boolean => {\r\n return injectedKeyframes.has(css)\r\n}\r\n\r\n/**\r\n * Add a keyframe to the registry\r\n */\r\nexport const addKeyframes = (css: string): void => {\r\n injectedKeyframes.add(css)\r\n}\r\n\r\n/**\r\n * Get the next keyframe ID\r\n */\r\nexport const getNextKeyframeId = (): string => {\r\n return (++keyframeCounter).toString(36)\r\n}\r\n\r\n/**\r\n * Check if a font-face already exists\r\n */\r\nexport const hasFontFace = (css: string): boolean => {\r\n return injectedFontFaces.has(css)\r\n}\r\n\r\n/**\r\n * Add a font-face to the registry\r\n */\r\nexport const addFontFace = (css: string): void => {\r\n injectedFontFaces.add(css)\r\n}\r\n\r\n/**\r\n * Get SSR rules\r\n */\r\nexport const getSSRRulesInternal = (): string[] => {\r\n return ssrRules\r\n}\r\n\r\n/**\r\n * Reset SSR state\r\n */\r\nexport const resetState = (): void => {\r\n ssrRules = []\r\n staticStyleCache.clear()\r\n usedClassNames.clear()\r\n injectedKeyframes.clear()\r\n injectedFontFaces.clear()\r\n keyframeCounter = 0\r\n}\r\n\r\n","import { createContext, useContext, useLayoutEffect, type ReactNode } from 'react'\r\n\r\nimport { setThemeContextGetter } from '@/utils/styles/styleEngine'\r\n\r\nimport type { ThemeStructure } from '@/types'\r\n\r\n// Context accepts any theme structure\r\nconst ThemeContext = createContext<ThemeStructure | undefined>(undefined)\r\n\r\nexport type ThemeProviderProps<TTheme extends ThemeStructure = ThemeStructure> = {\r\n theme: TTheme\r\n children?: ReactNode\r\n}\r\n\r\n/**\r\n * Theme provider component\r\n * Provides theme context to all child components\r\n * Accepts any theme structure created with createTheme()\r\n *\r\n * @example\r\n * ```tsx\r\n * const myTheme = createTheme({\r\n * colors: { primary: '#007bff', background: '#fff' }\r\n * })\r\n *\r\n * <ThemeProvider theme={myTheme}>\r\n * <App />\r\n * </ThemeProvider>\r\n * ```\r\n */\r\nexport const ThemeProvider = <TTheme extends ThemeStructure>({\r\n theme,\r\n children\r\n}: ThemeProviderProps<TTheme>) => {\r\n const previousGetter = setThemeContextGetter(() => theme)\r\n\r\n useLayoutEffect(() => {\r\n return () => {\r\n setThemeContextGetter(previousGetter)\r\n }\r\n }, [previousGetter])\r\n\r\n return (\r\n <ThemeContext.Provider value={theme}>\r\n {children}\r\n </ThemeContext.Provider>\r\n )\r\n}\r\n\r\n/**\r\n * Hook to access the current theme\r\n * Returns the theme provided by ThemeProvider with exact inferred types\r\n *\r\n * @example\r\n * ```tsx\r\n * const myTheme = createTheme({ colors: { brand: '#000' } })\r\n *\r\n * function MyComponent() {\r\n * const theme = useTheme() // theme.colors.brand is accessible!\r\n * }\r\n * ```\r\n *\r\n * @throws {Error} If used outside a ThemeProvider\r\n */\r\nexport const useTheme = <TTheme extends ThemeStructure = ThemeStructure>(): TTheme => {\r\n const theme = useContext(ThemeContext)\r\n\r\n if (!theme) {\r\n throw new Error('useTheme must be used within a ThemeProvider')\r\n }\r\n\r\n return theme as TTheme\r\n}\r\n\r\n","/**\r\n * Default token values for theme creation - V3\r\n * TypeScript infers the types automatically from the values using `as const`\r\n * Note: No default colors/palette - colors must be defined by the user\r\n */\r\n\r\n/**\r\n * Default spacing scale\r\n */\r\nexport const defaultSpacing = {\r\n none: '0',\r\n '2xs': '0.125rem', // 2px\r\n xs: '0.25rem', // 4px\r\n sm: '0.5rem', // 8px\r\n md: '1rem', // 16px\r\n lg: '1.5rem', // 24px\r\n xl: '2rem', // 32px\r\n '2xl': '3rem', // 48px\r\n '3xl': '4rem', // 64px\r\n '4xl': '6rem', // 96px\r\n '5xl': '8rem', // 128px\r\n} as const\r\n\r\n/**\r\n * Default border radius scale\r\n */\r\nexport const defaultRadius = {\r\n none: '0',\r\n xs: '0.125rem', // 2px\r\n sm: '0.25rem', // 4px\r\n md: '0.375rem', // 6px\r\n lg: '0.5rem', // 8px\r\n xl: '0.75rem', // 12px\r\n '2xl': '1rem', // 16px\r\n full: '9999px',\r\n} as const\r\n\r\n/**\r\n * Default shadow scale\r\n */\r\nexport const defaultShadows = {\r\n none: 'none',\r\n xs: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\r\n sm: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\r\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\r\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\r\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\r\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\r\n inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\r\n focus: '0 0 0 3px rgb(99 102 241 / 0.4)',\r\n} as const\r\n\r\n/**\r\n * Default font size scale\r\n */\r\nexport const defaultFontSize = {\r\n '2xs': '0.625rem', // 10px\r\n xs: '0.75rem', // 12px\r\n sm: '0.875rem', // 14px\r\n md: '1rem', // 16px\r\n lg: '1.25rem', // 20px\r\n xl: '1.5rem', // 24px\r\n '2xl': '2rem', // 32px\r\n '3xl': '2.5rem', // 40px\r\n '4xl': '3rem', // 48px\r\n '5xl': '4rem', // 64px\r\n} as const\r\n\r\n/**\r\n * Default font weight scale\r\n */\r\nexport const defaultFontWeight = {\r\n light: 300,\r\n regular: 400,\r\n medium: 500,\r\n semibold: 600,\r\n bold: 700,\r\n} as const\r\n\r\n/**\r\n * Default line height scale\r\n */\r\nexport const defaultLineHeight = {\r\n none: 1,\r\n tight: 1.25,\r\n normal: 1.5,\r\n relaxed: 1.75,\r\n loose: 2,\r\n} as const\r\n\r\n/**\r\n * Default z-index scale\r\n */\r\nexport const defaultZIndex = {\r\n behind: -1,\r\n base: 0,\r\n dropdown: 1000,\r\n sticky: 1100,\r\n overlay: 1300,\r\n modal: 1400,\r\n popover: 1500,\r\n tooltip: 1600,\r\n toast: 1700,\r\n} as const\r\n\r\n/**\r\n * Default transition scale\r\n */\r\nexport const defaultTransition = {\r\n fast: '150ms ease-out',\r\n normal: '250ms ease-out',\r\n slow: '350ms ease-out',\r\n} as const\r\n\r\n/**\r\n * Default opacity scale\r\n */\r\nexport const defaultOpacity = {\r\n none: 0,\r\n lowest: 0.05,\r\n low: 0.1,\r\n medium: 0.25,\r\n high: 0.5,\r\n higher: 0.75,\r\n full: 1,\r\n} as const\r\n\r\n/**\r\n * Default responsive breakpoints\r\n */\r\nexport const defaultBreakpoints = {\r\n xs: '480px', // Extra small devices (phones in landscape)\r\n sm: '640px', // Small devices (large phones, small tablets)\r\n md: '768px', // Medium devices (tablets)\r\n lg: '1024px', // Large devices (desktops)\r\n xl: '1280px', // Extra large devices (large desktops)\r\n '2xl': '1536px', // Extra extra large devices (wide screens)\r\n} as const\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const amber: ColorScale = {\r\n 25: '#fffdfb',\r\n 50: '#fffbeb',\r\n 100: '#fef3c7',\r\n 200: '#fde68a',\r\n 300: '#fcd34d',\r\n 400: '#fbbf24',\r\n 500: '#f59e0b',\r\n 600: '#d97706',\r\n 700: '#b45309',\r\n 800: '#92400e',\r\n 900: '#78350f',\r\n 950: '#451a03',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const blue: ColorScale = {\r\n 25: '#f5f8ff',\r\n 50: '#eff6ff',\r\n 100: '#dbeafe',\r\n 200: '#bfdbfe',\r\n 300: '#93c5fd',\r\n 400: '#60a5fa',\r\n 500: '#3b82f6',\r\n 600: '#2563eb',\r\n 700: '#1d4ed8',\r\n 800: '#1e40af',\r\n 900: '#1e3a8a',\r\n 950: '#172554',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const cyan: ColorScale = {\r\n 25: '#f3fefe',\r\n 50: '#ecfeff',\r\n 100: '#cffafe',\r\n 200: '#a5f3fc',\r\n 300: '#67e8f9',\r\n 400: '#22d3ee',\r\n 500: '#06b6d4',\r\n 600: '#0891b2',\r\n 700: '#0e7490',\r\n 800: '#155e75',\r\n 900: '#164e63',\r\n 950: '#083344',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const emerald: ColorScale = {\r\n 25: '#f5fefc',\r\n 50: '#ecfdf5',\r\n 100: '#d1fae5',\r\n 200: '#a7f3d0',\r\n 300: '#6ee7b7',\r\n 400: '#34d399',\r\n 500: '#10b981',\r\n 600: '#059669',\r\n 700: '#047857',\r\n 800: '#065f46',\r\n 900: '#064e3b',\r\n 950: '#022c22',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const fuchsia: ColorScale = {\r\n 25: '#fef5ff',\r\n 50: '#fdf4ff',\r\n 100: '#fae8ff',\r\n 200: '#f5d0fe',\r\n 300: '#f0abfc',\r\n 400: '#e879f9',\r\n 500: '#d946ef',\r\n 600: '#c026d3',\r\n 700: '#a21caf',\r\n 800: '#86198f',\r\n 900: '#701a75',\r\n 950: '#4a044e',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const gray: ColorScale = {\r\n 25: '#fcfcfc',\r\n 50: '#fafafa',\r\n 100: '#f4f4f5',\r\n 200: '#e4e4e7',\r\n 300: '#d4d4d8',\r\n 400: '#a1a1aa',\r\n 500: '#71717a',\r\n 600: '#52525b',\r\n 700: '#3f3f46',\r\n 800: '#27272a',\r\n 900: '#18181b',\r\n 950: '#09090b',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const green: ColorScale = {\r\n 25: '#f6fef9',\r\n 50: '#f0fdf4',\r\n 100: '#dcfce7',\r\n 200: '#bbf7d0',\r\n 300: '#86efac',\r\n 400: '#4ade80',\r\n 500: '#22c55e',\r\n 600: '#16a34a',\r\n 700: '#15803d',\r\n 800: '#166534',\r\n 900: '#14532d',\r\n 950: '#052e16',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const indigo: ColorScale = {\r\n 25: '#f5f7ff',\r\n 50: '#eef2ff',\r\n 100: '#e0e7ff',\r\n 200: '#c7d2fe',\r\n 300: '#a5b4fc',\r\n 400: '#818cf8',\r\n 500: '#6366f1',\r\n 600: '#4f46e5',\r\n 700: '#4338ca',\r\n 800: '#3730a3',\r\n 900: '#312e81',\r\n 950: '#1e1b4b',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const lime: ColorScale = {\r\n 25: '#fbfef8',\r\n 50: '#f7fee7',\r\n 100: '#ecfccb',\r\n 200: '#d9f99d',\r\n 300: '#bef264',\r\n 400: '#a3e635',\r\n 500: '#84cc16',\r\n 600: '#65a30d',\r\n 700: '#4d7c0f',\r\n 800: '#3f6212',\r\n 900: '#365314',\r\n 950: '#1a2e05',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const orange: ColorScale = {\r\n 25: '#fffcfa',\r\n 50: '#fff7ed',\r\n 100: '#ffedd5',\r\n 200: '#fed7aa',\r\n 300: '#fdba74',\r\n 400: '#fb923c',\r\n 500: '#f97316',\r\n 600: '#ea580c',\r\n 700: '#c2410c',\r\n 800: '#9a3412',\r\n 900: '#7c2d12',\r\n 950: '#431407',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const pink: ColorScale = {\r\n 25: '#fef5f9',\r\n 50: '#fdf2f8',\r\n 100: '#fce7f3',\r\n 200: '#fbcfe8',\r\n 300: '#f9a8d4',\r\n 400: '#f472b6',\r\n 500: '#ec4899',\r\n 600: '#db2777',\r\n 700: '#be185d',\r\n 800: '#9d174d',\r\n 900: '#831843',\r\n 950: '#500724',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const purple: ColorScale = {\r\n 25: '#faf5ff',\r\n 50: '#faf5ff',\r\n 100: '#f3e8ff',\r\n 200: '#e9d5ff',\r\n 300: '#d8b4fe',\r\n 400: '#c084fc',\r\n 500: '#a855f7',\r\n 600: '#9333ea',\r\n 700: '#7e22ce',\r\n 800: '#6b21a8',\r\n 900: '#581c87',\r\n 950: '#3b0764',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const red: ColorScale = {\r\n 25: '#fffbfb',\r\n 50: '#fef2f2',\r\n 100: '#fee2e2',\r\n 200: '#fecaca',\r\n 300: '#fca5a5',\r\n 400: '#f87171',\r\n 500: '#ef4444',\r\n 600: '#dc2626',\r\n 700: '#b91c1c',\r\n 800: '#991b1b',\r\n 900: '#7f1d1d',\r\n 950: '#450a0a',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const rose: ColorScale = {\r\n 25: '#fff5f6',\r\n 50: '#fff1f2',\r\n 100: '#ffe4e6',\r\n 200: '#fecdd3',\r\n 300: '#fda4af',\r\n 400: '#fb7185',\r\n 500: '#f43f5e',\r\n 600: '#e11d48',\r\n 700: '#be123c',\r\n 800: '#9f1239',\r\n 900: '#881337',\r\n 950: '#4c0519',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const slate: ColorScale = {\r\n 25: '#fcfcfd',\r\n 50: '#f8fafc',\r\n 100: '#f1f5f9',\r\n 200: '#e2e8f0',\r\n 300: '#cbd5e1',\r\n 400: '#94a3b8',\r\n 500: '#64748b',\r\n 600: '#475569',\r\n 700: '#334155',\r\n 800: '#1e293b',\r\n 900: '#0f172a',\r\n 950: '#020617',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const stone: ColorScale = {\r\n 25: '#fcfcfb',\r\n 50: '#fafaf9',\r\n 100: '#f5f5f4',\r\n 200: '#e7e5e4',\r\n 300: '#d6d3d1',\r\n 400: '#a8a29e',\r\n 500: '#78716c',\r\n 600: '#57534e',\r\n 700: '#44403c',\r\n 800: '#292524',\r\n 900: '#1c1917',\r\n 950: '#0c0a09',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const teal: ColorScale = {\r\n 25: '#f4fefe',\r\n 50: '#f0fdfa',\r\n 100: '#ccfbf1',\r\n 200: '#99f6e4',\r\n 300: '#5eead4',\r\n 400: '#2dd4bf',\r\n 500: '#14b8a6',\r\n 600: '#0d9488',\r\n 700: '#0f766e',\r\n 800: '#115e59',\r\n 900: '#134e4a',\r\n 950: '#042f2e',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const violet: ColorScale = {\r\n 25: '#f8f5ff',\r\n 50: '#f5f3ff',\r\n 100: '#ede9fe',\r\n 200: '#ddd6fe',\r\n 300: '#c4b5fd',\r\n 400: '#a78bfa',\r\n 500: '#8b5cf6',\r\n 600: '#7c3aed',\r\n 700: '#6d28d9',\r\n 800: '#5b21b6',\r\n 900: '#4c1d95',\r\n 950: '#2e1065',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const yellow: ColorScale = {\r\n 25: '#fefef9',\r\n 50: '#fefce8',\r\n 100: '#fef9c3',\r\n 200: '#fef08a',\r\n 300: '#fde047',\r\n 400: '#facc15',\r\n 500: '#eab308',\r\n 600: '#ca8a04',\r\n 700: '#a16207',\r\n 800: '#854d0e',\r\n 900: '#713f12',\r\n 950: '#422006',\r\n}\r\n\r\n","/**\r\n * Color Scales - Modern color palettes with shades from 25 to 950\r\n *\r\n * Scales are only accessible via the colors object to maintain consistency\r\n *\r\n * @example\r\n * ```ts\r\n * import { colors } from '@aurora-ui/theme'\r\n *\r\n * colors.indigo[500] // '#6366f1'\r\n * colors.emerald[400] // '#34d399'\r\n * colors.gray[900] // '#18181b'\r\n * ```\r\n */\r\n\r\n// Import all scales for the colors object\r\nimport { amber } from './amber'\r\nimport { blue } from './blue'\r\nimport { cyan } from './cyan'\r\nimport { emerald } from './emerald'\r\nimport { fuchsia } from './fuchsia'\r\nimport { gray } from './gray'\r\nimport { green } from './green'\r\nimport { indigo } from './indigo'\r\nimport { lime } from './lime'\r\nimport { orange } from './orange'\r\nimport { pink } from './pink'\r\nimport { purple } from './purple'\r\nimport { red } from './red'\r\nimport { rose } from './rose'\r\nimport { slate } from './slate'\r\nimport { stone } from './stone'\r\nimport { teal } from './teal'\r\nimport { violet } from './violet'\r\nimport { yellow } from './yellow'\r\n\r\n/**\r\n * All color scales organized by name\r\n * All scales and special values are only accessible via this object\r\n */\r\nexport const colors = {\r\n // Neutrals\r\n gray,\r\n slate,\r\n stone,\r\n // Colors\r\n red,\r\n orange,\r\n amber,\r\n yellow,\r\n lime,\r\n green,\r\n emerald,\r\n teal,\r\n cyan,\r\n blue,\r\n indigo,\r\n violet,\r\n purple,\r\n fuchsia,\r\n pink,\r\n rose,\r\n // Special\r\n white: '#ffffff',\r\n black: '#000000',\r\n transparent: 'transparent',\r\n current: 'currentColor',\r\n} as const\r\n\r\n","import { colors } from '../colors'\r\n\r\nimport type { BaseColors } from '@/types'\r\n\r\n/**\r\n * Default palette - V3\r\n * A clean, modern palette using Indigo as primary and Slate as neutral\r\n *\r\n * This palette is optional and serves as a reference/starting point.\r\n * You can use it directly, customize it, or create your own from scratch.\r\n *\r\n * @example\r\n * ```ts\r\n * // Use as-is\r\n * const theme = createTheme({ colors: defaultPalette })\r\n *\r\n * // Customize specific colors\r\n * const theme = createTheme({\r\n * colors: {\r\n * ...defaultPalette,\r\n * primary: '#custom-color',\r\n * }\r\n * })\r\n *\r\n * // Or create your own from scratch\r\n * const theme = createTheme({\r\n * colors: { primary: '#...', background: '#...' }\r\n * })\r\n * ```\r\n */\r\nexport const defaultPalette: BaseColors = {\r\n // Surface colors\r\n background: colors.slate[25],\r\n surface: colors.white,\r\n surfaceHover: colors.slate[100],\r\n surfaceActive: colors.slate[200],\r\n\r\n // Text colors\r\n text: colors.slate[800],\r\n textSecondary: colors.slate[500],\r\n textTertiary: colors.slate[400],\r\n\r\n // Primary colors\r\n primary: colors.indigo[600],\r\n primaryHover: colors.indigo[700],\r\n primaryActive: colors.indigo[800],\r\n primarySubtle: colors.indigo[50],\r\n primaryDisabled: colors.indigo[300],\r\n onPrimary: colors.white,\r\n\r\n // Secondary colors\r\n secondary: colors.slate[100],\r\n secondaryHover: colors.slate[200],\r\n secondaryActive: colors.slate[300],\r\n secondarySubtle: colors.slate[50],\r\n secondaryDisabled: colors.slate[200],\r\n onSecondary: colors.slate[700],\r\n\r\n // Border colors\r\n border: colors.slate[200],\r\n\r\n // Disabled state\r\n disabledText: colors.slate[400],\r\n disabled: colors.slate[300],\r\n\r\n // Semantic colors - Success\r\n success: colors.emerald[600],\r\n successSubtle: colors.emerald[50],\r\n\r\n // Semantic colors - Warning\r\n warning: colors.amber[500],\r\n warningSubtle: colors.amber[50],\r\n\r\n // Semantic colors - Error\r\n error: colors.red[600],\r\n errorHover: colors.red[700],\r\n errorSubtle: colors.red[50],\r\n onError: colors.white,\r\n\r\n // Semantic colors - Info\r\n info: colors.blue[600],\r\n infoSubtle: colors.blue[50],\r\n\r\n // Link colors\r\n link: colors.indigo[600],\r\n linkHover: colors.indigo[700],\r\n linkActive: colors.indigo[800],\r\n linkDisabled: colors.indigo[300],\r\n}\r\n","import {\r\n defaultSpacing,\r\n defaultRadius,\r\n defaultShadows,\r\n defaultFontSize,\r\n defaultFontWeight,\r\n defaultLineHeight,\r\n defaultZIndex,\r\n defaultTransition,\r\n defaultOpacity,\r\n defaultBreakpoints,\r\n} from './defaultTheme'\r\nimport { defaultPalette } from './palettes'\r\n\r\n/**\r\n * Create a theme with custom color tokens - V3\r\n * Colors are optional - if not provided, defaultPalette is used\r\n * All other tokens use defaults and can be optionally overridden\r\n *\r\n * @param config - Theme configuration (all optional)\r\n *\r\n * @example\r\n * ```ts\r\n * // Use defaultPalette (quickest way to start)\r\n * const theme = createTheme()\r\n *\r\n * // Customize defaultPalette\r\n * const theme = createTheme({\r\n * colors: {\r\n * ...defaultPalette,\r\n * primary: '#custom'\r\n * }\r\n * })\r\n *\r\n * // Or create your own colors from scratch\r\n * const theme = createTheme({\r\n * colors: {\r\n * brand: '#007bff',\r\n * surface: '#ffffff',\r\n * text: '#212529',\r\n * }\r\n * })\r\n * ```\r\n */\r\nexport const createTheme = <\r\n const TConfig extends {\r\n colors?: Record<string, string>\r\n spacing?: Record<string, string>\r\n radius?: Record<string, string>\r\n shadows?: Record<string, string>\r\n fontSize?: Record<string, string>\r\n fontWeight?: Record<string, number>\r\n lineHeight?: Record<string, number>\r\n zIndex?: Record<string, number>\r\n transition?: Record<string, string>\r\n opacity?: Record<string, number>\r\n breakpoints?: Record<string, string>\r\n } = object\r\n>(config?: TConfig) => {\r\n return {\r\n colors: (config?.colors ?? defaultPalette) as TConfig['colors'] extends Record<string, string> ? TConfig['colors'] : typeof defaultPalette,\r\n spacing: (config?.spacing ?? defaultSpacing) as TConfig['spacing'] extends Record<string, string> ? TConfig['spacing'] : typeof defaultSpacing,\r\n radius: (config?.radius ?? defaultRadius) as TConfig['radius'] extends Record<string, string> ? TConfig['radius'] : typeof defaultRadius,\r\n shadows: (config?.shadows ?? defaultShadows) as TConfig['shadows'] extends Record<string, string> ? TConfig['shadows'] : typeof defaultShadows,\r\n fontSize: (config?.fontSize ?? defaultFontSize) as TConfig['fontSize'] extends Record<string, string> ? TConfig['fontSize'] : typeof defaultFontSize,\r\n fontWeight: (config?.fontWeight ?? defaultFontWeight) as TConfig['fontWeight'] extends Record<string, number> ? TConfig['fontWeight'] : typeof defaultFontWeight,\r\n lineHeight: (config?.lineHeight ?? defaultLineHeight) as TConfig['lineHeight'] extends Record<string, number> ? TConfig['lineHeight'] : typeof defaultLineHeight,\r\n zIndex: (config?.zIndex ?? defaultZIndex) as TConfig['zIndex'] extends Record<string, number> ? TConfig['zIndex'] : typeof defaultZIndex,\r\n transition: (config?.transition ?? defaultTransition) as TConfig['transition'] extends Record<string, string> ? TConfig['transition'] : typeof defaultTransition,\r\n opacity: (config?.opacity ?? defaultOpacity) as TConfig['opacity'] extends Record<string, number> ? TConfig['opacity'] : typeof defaultOpacity,\r\n breakpoints: (config?.breakpoints ?? defaultBreakpoints) as TConfig['breakpoints'] extends Record<string, string> ? TConfig['breakpoints'] : typeof defaultBreakpoints,\r\n } as const\r\n}\r\n\r\n","\r\nimport {\r\n cacheKeyToSuffix,\r\n createCacheKey,\r\n createLRUCache,\r\n generateCssClass,\r\n getTheme,\r\n MAX_CACHE_SIZE,\r\n toKebabCaseClassName\r\n} from './styleEngine'\r\n\r\nimport type { StyleFunction, StyleWithPseudos } from './types'\r\nimport type { ThemeStructure } from '@/types'\r\n\r\n/**\r\n * Extract component name from stack trace\r\n */\r\nconst getComponentNameFromStack = (): string => {\r\n const stack = new Error().stack || ''\r\n const match = stack.match(/([A-Za-z0-9_]+)\\.styles\\.[tj]s/)\r\n if (match?.[1]) {\r\n return toKebabCaseClassName(match[1])\r\n }\r\n const fileMatch = stack.match(/\\/([A-Za-z0-9_]+)\\.[tj]sx?[:\\d]*\\)?$/m)\r\n if (fileMatch?.[1] && fileMatch[1] !== 'createStyles') {\r\n return toKebabCaseClassName(fileMatch[1])\r\n }\r\n return 'style'\r\n}\r\n\r\n/**\r\n * Process styles and generate CSS classes\r\n */\r\nconst processStyles = <T extends Record<string, StyleWithPseudos | StyleFunction>>(\r\n styles: T,\r\n componentName: string\r\n): Record<string, string | ((...args: unknown[]) => string)> => {\r\n const classes = {} as Record<string, string | ((...args: unknown[]) => string)>\r\n\r\n for (const key in styles) {\r\n const style = styles[key]\r\n if (style) {\r\n const baseName = `${componentName}-${toKebabCaseClassName(key)}`\r\n if (typeof style === 'function') {\r\n const lru = createLRUCache<string>(MAX_CACHE_SIZE)\r\n classes[key] = (...args: unknown[]) => {\r\n const cacheKey = createCacheKey(args)\r\n return lru.getOrSet(cacheKey, () => {\r\n const resolved = (style as (...a: unknown[]) => StyleWithPseudos)(...args)\r\n return generateCssClass(resolved, `${baseName}-${cacheKeyToSuffix(cacheKey)}`)\r\n })\r\n }\r\n } else {\r\n classes[key] = generateCssClass(style, baseName, true)\r\n }\r\n }\r\n }\r\n\r\n return classes\r\n}\r\n\r\n/**\r\n * Create typed styles with support for pseudo-classes, media queries, container queries, feature queries and complex selectors\r\n *\r\n * Supports custom themes via generic parameter.\r\n *\r\n * @example\r\n * ```ts\r\n * // Basic usage\r\n * const STYLES = createStyles((theme) => ({\r\n * root: {\r\n * display: 'flex',\r\n * padding: theme.spacing.md,\r\n * ':hover': { backgroundColor: theme.colors.primary },\r\n * }\r\n * }))\r\n *\r\n * // With explicit theme type\r\n * const myTheme = createTheme({ colors: { brand: '#007bff' } })\r\n *\r\n * const STYLES = createStyles((theme) => ({\r\n * root: {\r\n * backgroundColor: theme.colors.primary, // TypeScript knows the structure!\r\n * }\r\n * }))\r\n * ```\r\n */\r\nexport const createStyles = <\r\n T extends Record<string, StyleWithPseudos | StyleFunction> = Record<string, StyleWithPseudos | StyleFunction>\r\n>(\r\n stylesOrCreator: T | ((theme: ThemeStructure) => T)\r\n ): { [K in keyof T]: T[K] extends (...args: infer TArgs) => StyleWithPseudos ? (...args: TArgs) => string : string } => {\r\n type Result = { [K in keyof T]: T[K] extends (...args: infer TArgs) => StyleWithPseudos ? (...args: TArgs) => string : string }\r\n const componentName = getComponentNameFromStack()\r\n\r\n // Styles with theme (function)\r\n if (typeof stylesOrCreator === 'function') {\r\n let cached: Result | null = null\r\n let lastTheme: ThemeStructure | undefined\r\n\r\n return new Proxy({} as Result, {\r\n get(_, prop: string | symbol) {\r\n const theme = getTheme()\r\n if (!theme) {\r\n throw new Error('createStyles: Theme context not found. Make sure you are using this inside a ThemeProvider.')\r\n }\r\n if (theme !== lastTheme || !cached) {\r\n cached = processStyles(stylesOrCreator(theme), componentName) as Result\r\n lastTheme = theme\r\n }\r\n return cached[prop as keyof T]\r\n }\r\n })\r\n }\r\n\r\n // Styles without theme (direct object)\r\n return processStyles(stylesOrCreator, componentName) as Result\r\n}\r\n\r\n/**\r\n * Create a typed createStyles function pre-configured with your custom theme type.\r\n * This eliminates the need to specify the theme type on every createStyles call.\r\n *\r\n * @example\r\n * ```ts\r\n * // 1. Define your theme\r\n * const myTheme = createTheme({\r\n * colors: {\r\n * brand: '#007bff',\r\n * surface: '#ffffff',\r\n * }\r\n * })\r\n *\r\n * // 2. Create a pre-typed createStyles function (do this once)\r\n * export const createStyles = createTypedStyles<typeof myTheme>()\r\n *\r\n * // 3. Use it everywhere without specifying the type!\r\n * const STYLES = createStyles((theme) => ({\r\n * button: {\r\n * backgroundColor: theme.colors.primary, // ✅ TypeScript knows!\r\n * },\r\n * }))\r\n * ```\r\n */\r\nexport const createTypedStyles = <TTheme extends ThemeStructure = ThemeStructure>() => {\r\n return <T extends Record<string, StyleWithPseudos | StyleFunction>>(\r\n stylesOrCreator: T | ((theme: TTheme) => T)\r\n ): { [K in keyof T]: T[K] extends (...args: infer TArgs) => StyleWithPseudos ? (...args: TArgs) => string : string } => {\r\n return createStyles<T>(stylesOrCreator as T | ((theme: ThemeStructure) => T))\r\n }\r\n}\r\n\r\n","import {\r\n addKeyframes,\r\n getNextKeyframeId,\r\n hashString,\r\n hasKeyframes,\r\n insertRule,\r\n objectToCss\r\n} from './styleEngine'\r\n\r\nimport type { CSSProperties } from 'react'\r\n\r\n\r\n/**\r\n * Create and inject keyframes\r\n *\r\n * @example\r\n * ```ts\r\n * const fadeIn = keyframes({\r\n * from: { opacity: 0 },\r\n * to: { opacity: 1 }\r\n * })\r\n *\r\n * const STYLES = createStyles({\r\n * animated: { animation: `${fadeIn} 0.3s ease-in-out` }\r\n * })\r\n * ```\r\n */\r\nexport const keyframes = (frames: Record<string, CSSProperties>): string => {\r\n // Generate keyframes CSS\r\n let css = ''\r\n for (const key in frames) {\r\n css += `${key}{${objectToCss(frames[key] as Record<string, unknown>)}}`\r\n }\r\n\r\n // Check if these keyframes already exist\r\n if (hasKeyframes(css)) {\r\n const hash = hashString(css)\r\n return `aurora-kf-${hash}`\r\n }\r\n\r\n // Generate a unique name\r\n const name = `aurora-kf-${getNextKeyframeId()}`\r\n\r\n // Inject @keyframes rule\r\n insertRule(`@keyframes ${name}{${css}}`)\r\n addKeyframes(css)\r\n\r\n return name\r\n}\r\n\r\n","import { addFontFace, hasFontFace, insertRule } from './styleEngine'\r\n\r\nimport type { FontFaceOptions } from './types'\r\n\r\n/**\r\n * Inject a @font-face rule\r\n *\r\n * @example\r\n * ```ts\r\n * fontFace({\r\n * fontFamily: 'MyFont',\r\n * src: \"url('/fonts/myfont.woff2') format('woff2')\",\r\n * fontWeight: 400,\r\n * fontStyle: 'normal',\r\n * fontDisplay: 'swap'\r\n * })\r\n * ```\r\n */\r\nexport const fontFace = (options: FontFaceOptions): string => {\r\n const {\r\n fontFamily,\r\n src,\r\n fontStyle = 'normal',\r\n fontWeight = 400,\r\n fontDisplay = 'swap',\r\n unicodeRange\r\n } = options\r\n\r\n // Generate CSS\r\n let css = `font-family:\"${fontFamily}\";`\r\n css += `src:${src};`\r\n css += `font-style:${fontStyle};`\r\n css += `font-weight:${fontWeight};`\r\n css += `font-display:${fontDisplay};`\r\n if (unicodeRange) {\r\n css += `unicode-range:${unicodeRange};`\r\n }\r\n\r\n // Check if already injected\r\n if (!hasFontFace(css)) {\r\n insertRule(`@font-face{${css}}`)\r\n addFontFace(css)\r\n }\r\n\r\n return fontFamily\r\n}\r\n\r\n","import { insertRule, toKebabCase } from './styleEngine'\r\n\r\nimport type { ThemeStructure } from '@/types'\r\n\r\n\r\n/**\r\n * Generate CSS variables from a theme object\r\n */\r\nconst generateCssVariables = (obj: Record<string, unknown>, prefix: string): string => {\r\n let css = ''\r\n\r\n for (const key in obj) {\r\n const value = obj[key]\r\n const kebabKey = toKebabCase(key)\r\n\r\n if (value && typeof value === 'object') {\r\n css += generateCssVariables(value as Record<string, unknown>, `${prefix}-${kebabKey}`)\r\n } else if (value != null) {\r\n css += `--${prefix}-${kebabKey}:${value};`\r\n }\r\n }\r\n\r\n return css\r\n}\r\n\r\n/**\r\n * Create CSS variables from the theme\r\n * Injects variables into :root\r\n *\r\n * @example\r\n * ```ts\r\n * // In ThemeProvider\r\n * injectCssVariables(theme, 'aurora')\r\n * // Generates: :root { --aurora-colors-primary: #2563EB; ... }\r\n * ```\r\n */\r\nexport const injectCssVariables = (\r\n theme: ThemeStructure,\r\n prefix = 'theme'\r\n): void => {\r\n const variables = generateCssVariables(theme, prefix)\r\n insertRule(`:root{${variables}}`)\r\n}\r\n\r\n/**\r\n * Helper to use a CSS variable from the theme\r\n *\r\n * @example\r\n * ```ts\r\n * const STYLES = createStyles({\r\n * root: { color: cssVar('colors-primary') }\r\n * })\r\n * // Generates: color: var(--theme-colors-primary)\r\n * ```\r\n */\r\nexport const cssVar = (path: string, fallback?: string): string => {\r\n const varName = `--theme-${path.replace(/\\./g, '-')}`\r\n return fallback ? `var(${varName}, ${fallback})` : `var(${varName})`\r\n}\r\n\r\n/**\r\n * Create CSS variable references from a typed object\r\n * Returns an object with the same structure where values are var() references\r\n *\r\n * @example\r\n * ```ts\r\n * const vars = cssVariables({\r\n * primaryColor: '#007bff',\r\n * spacing: '1rem',\r\n * })\r\n * // vars.primaryColor === 'var(--primary-color)'\r\n * ```\r\n */\r\nexport const cssVariables = <T extends Record<string, string | number>>(\r\n variables: T,\r\n options: { prefix?: string; inject?: boolean } = {}\r\n): { [K in keyof T]: string } => {\r\n const { prefix = '', inject = false } = options\r\n const result = {} as { [K in keyof T]: string }\r\n let cssToInject = ''\r\n\r\n for (const key in variables) {\r\n const kebabKey = toKebabCase(key)\r\n const varName = prefix ? `--${prefix}-${kebabKey}` : `--${kebabKey}`\r\n result[key] = `var(${varName})`\r\n\r\n if (inject) {\r\n cssToInject += `${varName}:${variables[key]};`\r\n }\r\n }\r\n\r\n if (inject && cssToInject) {\r\n insertRule(`:root{${cssToInject}}`)\r\n }\r\n\r\n return result\r\n}\r\n\r\n","import { getSSRRulesInternal, resetState } from './styleEngine'\r\n\r\n/**\r\n * SSR: Get all collected CSS rules as a single string\r\n * @returns The CSS content to inject into HTML\r\n */\r\nexport const getSSRStyles = (): string => {\r\n return getSSRRulesInternal().join('')\r\n}\r\n\r\n/**\r\n * SSR: Get styles as a <style> tag ready to inject\r\n * @returns The complete style tag to inject into <head>\r\n */\r\nexport const getSSRStyleTag = (): string => {\r\n const css = getSSRStyles()\r\n if (!css) { return '' }\r\n return `<style id=\"aurora-styles\">${css}</style>`\r\n}\r\n\r\n/**\r\n * SSR: Clear the collected rules buffer\r\n * Call at the beginning of each SSR request to ensure clean state\r\n */\r\nexport const clearSSRRules = (): void => {\r\n resetState()\r\n}\r\n\r\n/**\r\n * SSR: Get raw CSS rules as an array\r\n * @returns Array of CSS rules\r\n */\r\nexport const getSSRRulesArray = (): string[] => {\r\n return [...getSSRRulesInternal()]\r\n}\r\n\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/theme/createTheme.ts","../src/utils/theme/colors/amber.ts","../src/utils/theme/colors/blue.ts","../src/utils/theme/colors/cyan.ts","../src/utils/theme/colors/emerald.ts","../src/utils/theme/colors/fuchsia.ts","../src/utils/theme/colors/gray.ts","../src/utils/theme/colors/green.ts","../src/utils/theme/colors/indigo.ts","../src/utils/theme/colors/lime.ts","../src/utils/theme/colors/orange.ts","../src/utils/theme/colors/pink.ts","../src/utils/theme/colors/purple.ts","../src/utils/theme/colors/red.ts","../src/utils/theme/colors/rose.ts","../src/utils/theme/colors/slate.ts","../src/utils/theme/colors/stone.ts","../src/utils/theme/colors/teal.ts","../src/utils/theme/colors/violet.ts","../src/utils/theme/colors/yellow.ts","../src/utils/theme/colors/index.ts","../src/utils/styles/styleEngine.ts","../src/providers/ThemeProvider.tsx","../src/utils/styles/createStyles.ts","../src/utils/styles/keyframes.ts","../src/utils/styles/fontFace.ts","../src/utils/styles/cssVariables.ts","../src/utils/styles/ssr.ts"],"names":["createTheme","values","amber","blue","cyan","emerald","fuchsia","gray","green","indigo","lime","orange","pink","purple","red","rose","slate","stone","teal","violet","yellow","colors","IS_SERVER","themeContextGetter","styleSheet","ssrRules","cssKeyCache","staticStyleCache","usedClassNames","injectedKeyframes","injectedFontFaces","keyframeCounter","UNITLESS_PROPERTIES","MAX_CACHE_SIZE","existingStyle","style","setThemeContextGetter","getter","previous","getTheme","insertRule","rule","toKebabCase","key","cached","toKebabCaseClassName","name","CSS_INJECTION_PATTERNS","sanitizeCssValue","value","cleaned","toCssValue","objectToCss","obj","result","createCacheKey","args","len","arg","i","t","cacheKeyToSuffix","firstChar","valid","c","hash","createLRUCache","maxSize","cache","factory","existing","firstKey","hashStyles","styles","str","hashString","getUniqueClassName","baseName","counter","generateCssClass","className","useCache","uniqueName","baseCss","innerCss","hasKeyframes","css","addKeyframes","getNextKeyframeId","hasFontFace","addFontFace","getSSRRulesInternal","resetState","ThemeContext","createContext","ThemeProvider","theme","children","previousGetter","useLayoutEffect","jsx","useTheme","useContext","getComponentNameFromStack","stack","match","fileMatch","processStyles","componentName","classes","lru","cacheKey","resolved","createStyles","stylesOrCreator","lastTheme","_","prop","keyframes","frames","fontFace","options","fontFamily","src","fontStyle","fontWeight","fontDisplay","unicodeRange","generateCssVariables","prefix","kebabKey","injectCssVariables","variables","cssVar","path","fallback","varName","cssVariables","inject","cssToInject","getSSRStyles","getSSRStyleTag","clearSSRRules","getSSRRulesArray"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { Theme } from '@/types/theme/Theme'\r\n\r\n/**\r\n * Creates a typed theme. Type is inferred from ThemeRegistry.\r\n */\r\nexport const createTheme = <T extends Record<string, unknown>>(\r\n values: T\r\n): Theme<T> => {\r\n return values as Theme<T>\r\n}\r\n","import { ColorScale } from '@/types/colors'\r\n\r\nexport const amber: ColorScale = {\r\n 25: '#fffdfb',\r\n 50: '#fffbeb',\r\n 100: '#fef3c7',\r\n 200: '#fde68a',\r\n 300: '#fcd34d',\r\n 400: '#fbbf24',\r\n 500: '#f59e0b',\r\n 600: '#d97706',\r\n 700: '#b45309',\r\n 800: '#92400e',\r\n 900: '#78350f',\r\n 950: '#451a03',\r\n}\r\n\r\n","import { ColorScale } from '@/types/colors'\r\n\r\nexport const blue: ColorScale = {\r\n 25: '#f5f8ff',\r\n 50: '#eff6ff',\r\n 100: '#dbeafe',\r\n 200: '#bfdbfe',\r\n 300: '#93c5fd',\r\n 400: '#60a5fa',\r\n 500: '#3b82f6',\r\n 600: '#2563eb',\r\n 700: '#1d4ed8',\r\n 800: '#1e40af',\r\n 900: '#1e3a8a',\r\n 950: '#172554',\r\n}\r\n\r\n","import { ColorScale } from '@/types/colors'\r\n\r\nexport const cyan: ColorScale = {\r\n 25: '#f3fefe',\r\n 50: '#ecfeff',\r\n 100: '#cffafe',\r\n 200: '#a5f3fc',\r\n 300: '#67e8f9',\r\n 400: '#22d3ee',\r\n 500: '#06b6d4',\r\n 600: '#0891b2',\r\n 700: '#0e7490',\r\n 800: '#155e75',\r\n 900: '#164e63',\r\n 950: '#083344',\r\n}\r\n\r\n","import { ColorScale } from '@/types/colors'\r\n\r\nexport const emerald: ColorScale = {\r\n 25: '#f5fefc',\r\n 50: '#ecfdf5',\r\n 100: '#d1fae5',\r\n 200: '#a7f3d0',\r\n 300: '#6ee7b7',\r\n 400: '#34d399',\r\n 500: '#10b981',\r\n 600: '#059669',\r\n 700: '#047857',\r\n 800: '#065f46',\r\n 900: '#064e3b',\r\n 950: '#022c22',\r\n}\r\n\r\n","import { ColorScale } from '@/types/colors'\r\n\r\nexport const fuchsia: ColorScale = {\r\n 25: '#fef5ff',\r\n 50: '#fdf4ff',\r\n 100: '#fae8ff',\r\n 200: '#f5d0fe',\r\n 300: '#f0abfc',\r\n 400: '#e879f9',\r\n 500: '#d946ef',\r\n 600: '#c026d3',\r\n 700: '#a21caf',\r\n 800: '#86198f',\r\n 900: '#701a75',\r\n 950: '#4a044e',\r\n}\r\n\r\n","import { ColorScale } from '@/types/colors'\r\n\r\nexport const gray: ColorScale = {\r\n 25: '#fcfcfc',\r\n 50: '#fafafa',\r\n 100: '#f4f4f5',\r\n 200: '#e4e4e7',\r\n 300: '#d4d4d8',\r\n 400: '#a1a1aa',\r\n 500: '#71717a',\r\n 600: '#52525b',\r\n 700: '#3f3f46',\r\n 800: '#27272a',\r\n 900: '#18181b',\r\n 950: '#09090b',\r\n}\r\n\r\n","import { ColorScale } from '@/types/colors'\r\n\r\nexport const green: ColorScale = {\r\n 25: '#f6fef9',\r\n 50: '#f0fdf4',\r\n 100: '#dcfce7',\r\n 200: '#bbf7d0',\r\n 300: '#86efac',\r\n 400: '#4ade80',\r\n 500: '#22c55e',\r\n 600: '#16a34a',\r\n 700: '#15803d',\r\n 800: '#166534',\r\n 900: '#14532d',\r\n 950: '#052e16',\r\n}\r\n\r\n","import { ColorScale } from '@/types/colors'\r\n\r\nexport const indigo: ColorScale = {\r\n 25: '#f5f7ff',\r\n 50: '#eef2ff',\r\n 100: '#e0e7ff',\r\n 200: '#c7d2fe',\r\n 300: '#a5b4fc',\r\n 400: '#818cf8',\r\n 500: '#6366f1',\r\n 600: '#4f46e5',\r\n 700: '#4338ca',\r\n 800: '#3730a3',\r\n 900: '#312e81',\r\n 950: '#1e1b4b',\r\n}\r\n\r\n","import { ColorScale } from '@/types/colors'\r\n\r\nexport const lime: ColorScale = {\r\n 25: '#fbfef8',\r\n 50: '#f7fee7',\r\n 100: '#ecfccb',\r\n 200: '#d9f99d',\r\n 300: '#bef264',\r\n 400: '#a3e635',\r\n 500: '#84cc16',\r\n 600: '#65a30d',\r\n 700: '#4d7c0f',\r\n 800: '#3f6212',\r\n 900: '#365314',\r\n 950: '#1a2e05',\r\n}\r\n\r\n","import { ColorScale } from '@/types/colors'\r\n\r\nexport const orange: ColorScale = {\r\n 25: '#fffcfa',\r\n 50: '#fff7ed',\r\n 100: '#ffedd5',\r\n 200: '#fed7aa',\r\n 300: '#fdba74',\r\n 400: '#fb923c',\r\n 500: '#f97316',\r\n 600: '#ea580c',\r\n 700: '#c2410c',\r\n 800: '#9a3412',\r\n 900: '#7c2d12',\r\n 950: '#431407',\r\n}\r\n\r\n","import { ColorScale } from '@/types/colors'\r\n\r\nexport const pink: ColorScale = {\r\n 25: '#fef5f9',\r\n 50: '#fdf2f8',\r\n 100: '#fce7f3',\r\n 200: '#fbcfe8',\r\n 300: '#f9a8d4',\r\n 400: '#f472b6',\r\n 500: '#ec4899',\r\n 600: '#db2777',\r\n 700: '#be185d',\r\n 800: '#9d174d',\r\n 900: '#831843',\r\n 950: '#500724',\r\n}\r\n\r\n","import { ColorScale } from '@/types/colors'\r\n\r\nexport const purple: ColorScale = {\r\n 25: '#faf5ff',\r\n 50: '#faf5ff',\r\n 100: '#f3e8ff',\r\n 200: '#e9d5ff',\r\n 300: '#d8b4fe',\r\n 400: '#c084fc',\r\n 500: '#a855f7',\r\n 600: '#9333ea',\r\n 700: '#7e22ce',\r\n 800: '#6b21a8',\r\n 900: '#581c87',\r\n 950: '#3b0764',\r\n}\r\n\r\n","import { ColorScale } from '@/types/colors'\r\n\r\nexport const red: ColorScale = {\r\n 25: '#fffbfb',\r\n 50: '#fef2f2',\r\n 100: '#fee2e2',\r\n 200: '#fecaca',\r\n 300: '#fca5a5',\r\n 400: '#f87171',\r\n 500: '#ef4444',\r\n 600: '#dc2626',\r\n 700: '#b91c1c',\r\n 800: '#991b1b',\r\n 900: '#7f1d1d',\r\n 950: '#450a0a',\r\n}\r\n\r\n","import { ColorScale } from '@/types/colors'\r\n\r\nexport const rose: ColorScale = {\r\n 25: '#fff5f6',\r\n 50: '#fff1f2',\r\n 100: '#ffe4e6',\r\n 200: '#fecdd3',\r\n 300: '#fda4af',\r\n 400: '#fb7185',\r\n 500: '#f43f5e',\r\n 600: '#e11d48',\r\n 700: '#be123c',\r\n 800: '#9f1239',\r\n 900: '#881337',\r\n 950: '#4c0519',\r\n}\r\n\r\n","import { ColorScale } from '@/types/colors'\r\n\r\nexport const slate: ColorScale = {\r\n 25: '#fcfcfd',\r\n 50: '#f8fafc',\r\n 100: '#f1f5f9',\r\n 200: '#e2e8f0',\r\n 300: '#cbd5e1',\r\n 400: '#94a3b8',\r\n 500: '#64748b',\r\n 600: '#475569',\r\n 700: '#334155',\r\n 800: '#1e293b',\r\n 900: '#0f172a',\r\n 950: '#020617',\r\n}\r\n\r\n","import { ColorScale } from '@/types/colors'\r\n\r\nexport const stone: ColorScale = {\r\n 25: '#fcfcfb',\r\n 50: '#fafaf9',\r\n 100: '#f5f5f4',\r\n 200: '#e7e5e4',\r\n 300: '#d6d3d1',\r\n 400: '#a8a29e',\r\n 500: '#78716c',\r\n 600: '#57534e',\r\n 700: '#44403c',\r\n 800: '#292524',\r\n 900: '#1c1917',\r\n 950: '#0c0a09',\r\n}\r\n\r\n","import { ColorScale } from '@/types/colors'\r\n\r\nexport const teal: ColorScale = {\r\n 25: '#f4fefe',\r\n 50: '#f0fdfa',\r\n 100: '#ccfbf1',\r\n 200: '#99f6e4',\r\n 300: '#5eead4',\r\n 400: '#2dd4bf',\r\n 500: '#14b8a6',\r\n 600: '#0d9488',\r\n 700: '#0f766e',\r\n 800: '#115e59',\r\n 900: '#134e4a',\r\n 950: '#042f2e',\r\n}\r\n\r\n","import { ColorScale } from '@/types/colors'\r\n\r\nexport const violet: ColorScale = {\r\n 25: '#f8f5ff',\r\n 50: '#f5f3ff',\r\n 100: '#ede9fe',\r\n 200: '#ddd6fe',\r\n 300: '#c4b5fd',\r\n 400: '#a78bfa',\r\n 500: '#8b5cf6',\r\n 600: '#7c3aed',\r\n 700: '#6d28d9',\r\n 800: '#5b21b6',\r\n 900: '#4c1d95',\r\n 950: '#2e1065',\r\n}\r\n\r\n","import { ColorScale } from '@/types/colors'\r\n\r\n\r\nexport const yellow: ColorScale = {\r\n 25: '#fefef9',\r\n 50: '#fefce8',\r\n 100: '#fef9c3',\r\n 200: '#fef08a',\r\n 300: '#fde047',\r\n 400: '#facc15',\r\n 500: '#eab308',\r\n 600: '#ca8a04',\r\n 700: '#a16207',\r\n 800: '#854d0e',\r\n 900: '#713f12',\r\n 950: '#422006',\r\n}\r\n\r\n","import { amber } from './amber'\r\nimport { blue } from './blue'\r\nimport { cyan } from './cyan'\r\nimport { emerald } from './emerald'\r\nimport { fuchsia } from './fuchsia'\r\nimport { gray } from './gray'\r\nimport { green } from './green'\r\nimport { indigo } from './indigo'\r\nimport { lime } from './lime'\r\nimport { orange } from './orange'\r\nimport { pink } from './pink'\r\nimport { purple } from './purple'\r\nimport { red } from './red'\r\nimport { rose } from './rose'\r\nimport { slate } from './slate'\r\nimport { stone } from './stone'\r\nimport { teal } from './teal'\r\nimport { violet } from './violet'\r\nimport { yellow } from './yellow'\r\n\r\n/** All color scales (19 scales with 12 shades each) */\r\nexport const colors = {\r\n gray,\r\n slate,\r\n stone,\r\n red,\r\n orange,\r\n amber,\r\n yellow,\r\n lime,\r\n green,\r\n emerald,\r\n teal,\r\n cyan,\r\n blue,\r\n indigo,\r\n violet,\r\n purple,\r\n fuchsia,\r\n pink,\r\n rose,\r\n white: '#ffffff',\r\n black: '#000000',\r\n transparent: 'transparent',\r\n current: 'currentColor',\r\n} as const\r\n","import type { StyleWithPseudos } from './types'\r\nimport type { Theme } from '@/types'\r\n\r\nconst IS_SERVER = typeof document === 'undefined'\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nlet themeContextGetter: (() => any) | null = null\r\nlet styleSheet: CSSStyleSheet | null = null\r\nlet ssrRules: string[] = []\r\n\r\nconst cssKeyCache = new Map<string, string>([\r\n ['backgroundColor', 'background-color'],\r\n ['borderRadius', 'border-radius'],\r\n ['fontSize', 'font-size'],\r\n ['fontWeight', 'font-weight'],\r\n ['lineHeight', 'line-height'],\r\n ['marginTop', 'margin-top'],\r\n ['marginBottom', 'margin-bottom'],\r\n ['marginLeft', 'margin-left'],\r\n ['marginRight', 'margin-right'],\r\n ['paddingTop', 'padding-top'],\r\n ['paddingBottom', 'padding-bottom'],\r\n ['paddingLeft', 'padding-left'],\r\n ['paddingRight', 'padding-right'],\r\n ['textAlign', 'text-align'],\r\n ['justifyContent', 'justify-content'],\r\n ['alignItems', 'align-items'],\r\n ['flexDirection', 'flex-direction'],\r\n ['flexWrap', 'flex-wrap'],\r\n ['boxShadow', 'box-shadow'],\r\n ['zIndex', 'z-index'],\r\n])\r\n\r\nconst staticStyleCache = new Map<string, string>()\r\nconst usedClassNames = new Set<string>()\r\nconst injectedKeyframes = new Set<string>()\r\nconst injectedFontFaces = new Set<string>()\r\nlet keyframeCounter = 0\r\n\r\nconst UNITLESS_PROPERTIES = new Set([\r\n 'animationIterationCount', 'columnCount', 'fillOpacity', 'flexGrow', 'flexShrink',\r\n 'fontWeight', 'lineHeight', 'opacity', 'order', 'orphans', 'widows', 'zIndex', 'zoom'\r\n])\r\n\r\n/**\r\n * Max LRU cache size for dynamic styles.\r\n * @internal\r\n */\r\nexport const MAX_CACHE_SIZE = 100\r\n\r\nif (!IS_SERVER) {\r\n const existingStyle = document.getElementById('aurora-styles') as HTMLStyleElement | null\r\n if (existingStyle) {\r\n styleSheet = existingStyle.sheet as CSSStyleSheet\r\n } else {\r\n const style = document.createElement('style')\r\n style.id = 'aurora-styles'\r\n document.head.appendChild(style)\r\n styleSheet = style.sheet as CSSStyleSheet\r\n }\r\n}\r\n\r\n/**\r\n * Sets the theme getter function used by createStyles.\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const setThemeContextGetter = <T extends Theme>(getter: (() => T | undefined) | null): (() => any) | null => {\r\n const previous = themeContextGetter\r\n themeContextGetter = getter\r\n return previous\r\n}\r\n\r\n/**\r\n * Returns the current theme from the context.\r\n * @internal\r\n */\r\nexport const getTheme = (): Theme | undefined => {\r\n return themeContextGetter?.()\r\n}\r\n\r\n/**\r\n * Inserts a CSS rule into the stylesheet (or SSR buffer).\r\n * @internal\r\n */\r\nexport const insertRule = (rule: string): void => {\r\n if (IS_SERVER) {\r\n ssrRules.push(rule)\r\n } else if (styleSheet) {\r\n try {\r\n styleSheet.insertRule(rule, styleSheet.cssRules.length)\r\n } catch {\r\n // Ignore errors (invalid rules)\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Converts camelCase to kebab-case with caching.\r\n * @internal\r\n */\r\nexport const toKebabCase = (key: string): string => {\r\n let cached = cssKeyCache.get(key)\r\n if (!cached) {\r\n cached = key.replace(/([A-Z])/g, '-$1').toLowerCase()\r\n cssKeyCache.set(key, cached)\r\n }\r\n return cached\r\n}\r\n\r\n/**\r\n * Converts PascalCase/camelCase to kebab-case for class names.\r\n * @internal\r\n */\r\nexport const toKebabCaseClassName = (name: string): string => {\r\n return name\r\n .replace(/([a-z])([A-Z])/g, '$1-$2')\r\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')\r\n .toLowerCase()\r\n}\r\n\r\nconst CSS_INJECTION_PATTERNS = /expression\\s*\\(|javascript\\s*:|data\\s*:\\s*text\\/html|behavior\\s*:|@import|<\\s*\\/?\\s*style/i\r\n\r\n/**\r\n * Sanitizes CSS value to prevent injection attacks.\r\n * @internal\r\n */\r\nexport const sanitizeCssValue = (value: string): string => {\r\n const cleaned = value.replace(/\\0/g, '')\r\n if (CSS_INJECTION_PATTERNS.test(cleaned)) {\r\n return 'unset'\r\n }\r\n return cleaned\r\n}\r\n\r\n/**\r\n * Converts a value to valid CSS (adds px for numbers).\r\n * @internal\r\n */\r\nexport const toCssValue = (key: string, value: unknown): string => {\r\n if (typeof value === 'number' && !UNITLESS_PROPERTIES.has(key)) {\r\n return `${value}px`\r\n }\r\n return sanitizeCssValue(String(value))\r\n}\r\n\r\n/**\r\n * Converts a styles object to a CSS string.\r\n * @internal\r\n */\r\nexport const objectToCss = (obj: Record<string, unknown>): string => {\r\n let result = ''\r\n for (const key in obj) {\r\n const value = obj[key]\r\n if (value != null && typeof value !== 'object') {\r\n result += `${toKebabCase(key)}:${toCssValue(key, value)};`\r\n }\r\n }\r\n return result\r\n}\r\n\r\n/**\r\n * Resolves & selectors to actual class selectors.\r\n * @internal\r\n */\r\nexport const resolveAmpersandSelector = (selector: string, className: string): string => {\r\n return selector.includes('&') ? selector.replace(/&/g, `.${className}`) : `.${className}${selector}`\r\n}\r\n\r\n/**\r\n * Creates a cache key from function arguments.\r\n * @internal\r\n */\r\nexport const createCacheKey = (args: unknown[]): string => {\r\n const len = args.length\r\n if (len === 0) {return ''}\r\n if (len === 1) {\r\n const arg = args[0]\r\n if (arg === undefined) {return 'u'}\r\n if (arg === null) {return 'n'}\r\n if (typeof arg === 'string' || typeof arg === 'number' || typeof arg === 'boolean') {\r\n return String(arg)\r\n }\r\n }\r\n if (len <= 4) {\r\n let result = ''\r\n for (let i = 0; i < len; i++) {\r\n const arg = args[i]\r\n const t = typeof arg\r\n if (arg === undefined) {\r\n result += i ? '|u' : 'u'\r\n } else if (arg === null) {\r\n result += i ? '|n' : 'n'\r\n } else if (t === 'string' || t === 'number' || t === 'boolean') {\r\n result += i ? '|' + arg : String(arg)\r\n } else {\r\n return JSON.stringify(args)\r\n }\r\n }\r\n return result\r\n }\r\n return JSON.stringify(args)\r\n}\r\n\r\n/**\r\n * Converts a cache key to a valid CSS class suffix.\r\n * @internal\r\n */\r\nexport const cacheKeyToSuffix = (key: string): string => {\r\n const firstChar = key.charCodeAt(0)\r\n if (key.length < 20) {\r\n if ((firstChar >= 97 && firstChar <= 122) || (firstChar >= 65 && firstChar <= 90)) {\r\n let valid = true\r\n for (let i = 1; i < key.length; i++) {\r\n const c = key.charCodeAt(i)\r\n if (!((c >= 97 && c <= 122) || (c >= 65 && c <= 90) || (c >= 48 && c <= 57))) {\r\n valid = false\r\n break\r\n }\r\n }\r\n if (valid) {return toKebabCaseClassName(key)}\r\n } else if (firstChar === 45 || (firstChar >= 48 && firstChar <= 57)) {\r\n let valid = true\r\n for (let i = 1; i < key.length; i++) {\r\n if (key.charCodeAt(i) < 48 || key.charCodeAt(i) > 57) {\r\n valid = false\r\n break\r\n }\r\n }\r\n if (valid) {return key}\r\n }\r\n }\r\n let hash = 5381\r\n const len = key.length\r\n for (let i = 0; i < len; i++) {\r\n hash = ((hash << 5) + hash) ^ key.charCodeAt(i)\r\n }\r\n return (hash >>> 0).toString(36)\r\n}\r\n\r\n/**\r\n * Creates an LRU cache with O(1) operations.\r\n * @internal\r\n */\r\nexport const createLRUCache = <V>(maxSize: number): { getOrSet: (key: string, factory: () => V) => V } => {\r\n const cache = new Map<string, V>()\r\n return {\r\n getOrSet(key: string, factory: () => V): V {\r\n const existing = cache.get(key)\r\n if (existing !== undefined) {\r\n cache.delete(key)\r\n cache.set(key, existing)\r\n return existing\r\n }\r\n const value = factory()\r\n if (cache.size >= maxSize) {\r\n const firstKey = cache.keys().next().value\r\n if (firstKey !== undefined) { cache.delete(firstKey) }\r\n }\r\n cache.set(key, value)\r\n return value\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Generates a hash from a styles object.\r\n * @internal\r\n */\r\nexport const hashStyles = (styles: StyleWithPseudos): string => {\r\n const str = JSON.stringify(styles)\r\n let hash = 5381\r\n const len = str.length\r\n for (let i = 0; i < len; i++) {\r\n hash = ((hash << 5) + hash) ^ str.charCodeAt(i)\r\n }\r\n return (hash >>> 0).toString(36)\r\n}\r\n\r\n/**\r\n * Generates a hash from a string.\r\n * @internal\r\n */\r\nexport const hashString = (str: string): string => {\r\n let hash = 5381\r\n const len = str.length\r\n for (let i = 0; i < len; i++) {\r\n hash = ((hash << 5) + hash) ^ str.charCodeAt(i)\r\n }\r\n return (hash >>> 0).toString(36)\r\n}\r\n\r\n/**\r\n * Returns a unique class name, adding suffix if needed.\r\n * @internal\r\n */\r\nexport const getUniqueClassName = (baseName: string): string => {\r\n if (!usedClassNames.has(baseName)) {\r\n usedClassNames.add(baseName)\r\n return baseName\r\n }\r\n let counter = 2\r\n while (usedClassNames.has(`${baseName}-${counter}`)) {\r\n counter++\r\n }\r\n const name = `${baseName}-${counter}`\r\n usedClassNames.add(name)\r\n return name\r\n}\r\n\r\n/**\r\n * Generates CSS class with support for pseudo-classes, media queries, etc.\r\n * @internal\r\n */\r\nexport const generateCssClass = (styles: StyleWithPseudos, className: string, useCache = false): string => {\r\n if (useCache) {\r\n const hash = hashStyles(styles)\r\n const cached = staticStyleCache.get(hash)\r\n if (cached) { return cached }\r\n }\r\n\r\n const uniqueName = getUniqueClassName(className)\r\n let baseCss = ''\r\n\r\n for (const key in styles) {\r\n const value = (styles as Record<string, unknown>)[key]\r\n const firstChar = key[0]\r\n\r\n if (firstChar === '@') {\r\n const innerCss = objectToCss(value as Record<string, unknown>)\r\n if (innerCss) {\r\n insertRule(`${key}{.${uniqueName}{${innerCss}}}`)\r\n }\r\n } else if (firstChar === '&') {\r\n const innerCss = objectToCss(value as Record<string, unknown>)\r\n if (innerCss) {\r\n insertRule(`${key.replace(/&/g, `.${uniqueName}`)}{${innerCss}}`)\r\n }\r\n } else if (firstChar === ':') {\r\n const innerCss = objectToCss(value as Record<string, unknown>)\r\n if (innerCss) {\r\n insertRule(`.${uniqueName}${key}{${innerCss}}`)\r\n }\r\n } else if (value != null && typeof value !== 'object') {\r\n baseCss += `${toKebabCase(key)}:${toCssValue(key, value)};`\r\n }\r\n }\r\n\r\n if (baseCss) {\r\n insertRule(`.${uniqueName}{${baseCss}}`)\r\n }\r\n\r\n if (useCache) {\r\n staticStyleCache.set(hashStyles(styles), uniqueName)\r\n }\r\n\r\n return uniqueName\r\n}\r\n\r\n/**\r\n * Checks if keyframes CSS has already been injected.\r\n * @internal\r\n */\r\nexport const hasKeyframes = (css: string): boolean => {\r\n return injectedKeyframes.has(css)\r\n}\r\n\r\n/**\r\n * Registers keyframes CSS as injected.\r\n * @internal\r\n */\r\nexport const addKeyframes = (css: string): void => {\r\n injectedKeyframes.add(css)\r\n}\r\n\r\n/**\r\n * Returns next unique keyframe ID.\r\n * @internal\r\n */\r\nexport const getNextKeyframeId = (): string => {\r\n return (++keyframeCounter).toString(36)\r\n}\r\n\r\n/**\r\n * Checks if font-face CSS has already been injected.\r\n * @internal\r\n */\r\nexport const hasFontFace = (css: string): boolean => {\r\n return injectedFontFaces.has(css)\r\n}\r\n\r\n/**\r\n * Registers font-face CSS as injected.\r\n * @internal\r\n */\r\nexport const addFontFace = (css: string): void => {\r\n injectedFontFaces.add(css)\r\n}\r\n\r\n/**\r\n * Returns SSR rules array.\r\n * @internal\r\n */\r\nexport const getSSRRulesInternal = (): string[] => {\r\n return ssrRules\r\n}\r\n\r\n/**\r\n * Resets all internal state (for SSR).\r\n * @internal\r\n */\r\nexport const resetState = (): void => {\r\n ssrRules = []\r\n staticStyleCache.clear()\r\n usedClassNames.clear()\r\n injectedKeyframes.clear()\r\n injectedFontFaces.clear()\r\n keyframeCounter = 0\r\n}\r\n","import { createContext, useContext, useLayoutEffect, type ReactNode } from 'react'\r\n\r\nimport { setThemeContextGetter } from '@/utils/styles/styleEngine'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\n\r\nconst ThemeContext = createContext<Theme | undefined>(undefined)\r\n\r\nexport type ThemeProviderProps = {\r\n theme: Theme\r\n children?: ReactNode\r\n}\r\n\r\n/**\r\n * Provides the theme to all child components.\r\n *\r\n * @example\r\n * ```tsx\r\n * <ThemeProvider theme={lightTheme}>\r\n * <App />\r\n * </ThemeProvider>\r\n * ```\r\n */\r\nexport const ThemeProvider = ({\r\n theme,\r\n children\r\n}: ThemeProviderProps) => {\r\n const previousGetter = setThemeContextGetter(() => theme)\r\n\r\n useLayoutEffect(() => {\r\n return () => {\r\n setThemeContextGetter(previousGetter)\r\n }\r\n }, [previousGetter])\r\n\r\n return (\r\n <ThemeContext.Provider value={theme}>\r\n {children}\r\n </ThemeContext.Provider>\r\n )\r\n}\r\n\r\n/**\r\n * Hook to access the current theme.\r\n *\r\n * Type is automatically inferred from ThemeRegistry (module augmentation).\r\n *\r\n * @example\r\n * ```tsx\r\n * function MyComponent() {\r\n * const theme = useTheme()\r\n * return <div style={{ color: theme.colors.primary }} />\r\n * }\r\n * ```\r\n *\r\n * @throws {Error} If used outside a ThemeProvider\r\n */\r\nexport const useTheme = (): Theme => {\r\n const theme = useContext(ThemeContext)\r\n\r\n if (!theme) {\r\n throw new Error('useTheme must be used within a ThemeProvider')\r\n }\r\n\r\n return theme\r\n}\r\n\r\n","import {\r\n cacheKeyToSuffix,\r\n createCacheKey,\r\n createLRUCache,\r\n generateCssClass,\r\n getTheme,\r\n MAX_CACHE_SIZE,\r\n toKebabCaseClassName\r\n} from './styleEngine'\r\n\r\nimport type { StyleFunction, StyleWithPseudos } from './types'\r\nimport type { Theme } from '@/types'\r\n\r\n/**\r\n * Extracts component name from stack trace for class naming.\r\n * @internal\r\n */\r\nconst getComponentNameFromStack = (): string => {\r\n const stack = new Error().stack || ''\r\n const match = stack.match(/([A-Za-z0-9_]+)\\.styles\\.[tj]s/)\r\n if (match?.[1]) {\r\n return toKebabCaseClassName(match[1])\r\n }\r\n const fileMatch = stack.match(/\\/([A-Za-z0-9_]+)\\.[tj]sx?[:\\d]*\\)?$/m)\r\n if (fileMatch?.[1] && fileMatch[1] !== 'createStyles') {\r\n return toKebabCaseClassName(fileMatch[1])\r\n }\r\n return 'style'\r\n}\r\n\r\n/**\r\n * Processes styles object and generates CSS classes.\r\n * @internal\r\n */\r\nconst processStyles = <T extends Record<string, StyleWithPseudos | StyleFunction>>(\r\n styles: T,\r\n componentName: string\r\n): Record<string, string | ((...args: unknown[]) => string)> => {\r\n const classes = {} as Record<string, string | ((...args: unknown[]) => string)>\r\n\r\n for (const key in styles) {\r\n const style = styles[key]\r\n if (style) {\r\n const baseName = `${componentName}-${toKebabCaseClassName(key)}`\r\n if (typeof style === 'function') {\r\n const lru = createLRUCache<string>(MAX_CACHE_SIZE)\r\n classes[key] = (...args: unknown[]) => {\r\n const cacheKey = createCacheKey(args)\r\n return lru.getOrSet(cacheKey, () => {\r\n const resolved = (style as (...a: unknown[]) => StyleWithPseudos)(...args)\r\n return generateCssClass(resolved, `${baseName}-${cacheKeyToSuffix(cacheKey)}`)\r\n })\r\n }\r\n } else {\r\n classes[key] = generateCssClass(style, baseName, true)\r\n }\r\n }\r\n }\r\n\r\n return classes\r\n}\r\n\r\n/**\r\n * Creates styles with theme support. Type is inferred from ThemeRegistry.\r\n * Supports pseudo-classes, media queries, and complex selectors.\r\n */\r\nexport const createStyles = <\r\n T extends Record<string, StyleWithPseudos | StyleFunction> = Record<string, StyleWithPseudos | StyleFunction>\r\n>(\r\n stylesOrCreator: T | ((theme: Theme) => T)\r\n ): { [K in keyof T]: T[K] extends (...args: infer TArgs) => StyleWithPseudos ? (...args: TArgs) => string : string } => {\r\n type Result = { [K in keyof T]: T[K] extends (...args: infer TArgs) => StyleWithPseudos ? (...args: TArgs) => string : string }\r\n const componentName = getComponentNameFromStack()\r\n\r\n // Styles with theme (function)\r\n if (typeof stylesOrCreator === 'function') {\r\n let cached: Result | null = null\r\n let lastTheme: Theme | undefined\r\n\r\n return new Proxy({} as Result, {\r\n get(_, prop: string | symbol) {\r\n const theme = getTheme() as Theme | undefined\r\n if (!theme) {\r\n throw new Error('createStyles: Theme context not found. Make sure you are using this inside a ThemeProvider.')\r\n }\r\n if (theme !== lastTheme || !cached) {\r\n cached = processStyles(stylesOrCreator(theme), componentName) as Result\r\n lastTheme = theme\r\n }\r\n return cached[prop as keyof T]\r\n }\r\n })\r\n }\r\n\r\n // Styles without theme (direct object)\r\n return processStyles(stylesOrCreator, componentName) as Result\r\n}\r\n","import {\r\n addKeyframes,\r\n getNextKeyframeId,\r\n hashString,\r\n hasKeyframes,\r\n insertRule,\r\n objectToCss\r\n} from './styleEngine'\r\n\r\nimport type { CSSProperties } from 'react'\r\n\r\n/** Creates and injects a @keyframes rule, returns the animation name */\r\nexport const keyframes = (frames: Record<string, CSSProperties>): string => {\r\n let css = ''\r\n for (const key in frames) {\r\n css += `${key}{${objectToCss(frames[key] as Record<string, unknown>)}}`\r\n }\r\n\r\n if (hasKeyframes(css)) {\r\n const hash = hashString(css)\r\n return `aurora-kf-${hash}`\r\n }\r\n\r\n const name = `aurora-kf-${getNextKeyframeId()}`\r\n insertRule(`@keyframes ${name}{${css}}`)\r\n addKeyframes(css)\r\n\r\n return name\r\n}\r\n","import { addFontFace, hasFontFace, insertRule } from './styleEngine'\r\n\r\nimport type { FontFaceOptions } from './types'\r\n\r\n/** Injects a @font-face rule and returns the font family name */\r\nexport const fontFace = (options: FontFaceOptions): string => {\r\n const {\r\n fontFamily,\r\n src,\r\n fontStyle = 'normal',\r\n fontWeight = 400,\r\n fontDisplay = 'swap',\r\n unicodeRange\r\n } = options\r\n\r\n // Generate CSS\r\n let css = `font-family:\"${fontFamily}\";`\r\n css += `src:${src};`\r\n css += `font-style:${fontStyle};`\r\n css += `font-weight:${fontWeight};`\r\n css += `font-display:${fontDisplay};`\r\n if (unicodeRange) {\r\n css += `unicode-range:${unicodeRange};`\r\n }\r\n\r\n // Check if already injected\r\n if (!hasFontFace(css)) {\r\n insertRule(`@font-face{${css}}`)\r\n addFontFace(css)\r\n }\r\n\r\n return fontFamily\r\n}\r\n\r\n","import { insertRule, toKebabCase } from './styleEngine'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\n\r\n/** Generate CSS variables from a theme object */\r\nconst generateCssVariables = (obj: Record<string, unknown>, prefix: string): string => {\r\n let css = ''\r\n\r\n for (const key in obj) {\r\n const value = obj[key]\r\n const kebabKey = toKebabCase(key)\r\n\r\n if (value && typeof value === 'object') {\r\n css += generateCssVariables(value as Record<string, unknown>, `${prefix}-${kebabKey}`)\r\n } else if (value != null) {\r\n css += `--${prefix}-${kebabKey}:${value};`\r\n }\r\n }\r\n\r\n return css\r\n}\r\n\r\n/** Injects CSS variables from theme into :root */\r\nexport const injectCssVariables = (theme: Theme, prefix = 'theme'): void => {\r\n const variables = generateCssVariables(theme, prefix)\r\n insertRule(`:root{${variables}}`)\r\n}\r\n\r\n/** Returns a CSS var() reference for a theme path */\r\nexport const cssVar = (path: string, fallback?: string): string => {\r\n const varName = `--theme-${path.replace(/\\./g, '-')}`\r\n return fallback ? `var(${varName}, ${fallback})` : `var(${varName})`\r\n}\r\n\r\n/** Creates CSS variable references from an object */\r\nexport const cssVariables = <T extends Record<string, string | number>>(\r\n variables: T,\r\n options: { prefix?: string; inject?: boolean } = {}\r\n): { [K in keyof T]: string } => {\r\n const { prefix = '', inject = false } = options\r\n const result = {} as { [K in keyof T]: string }\r\n let cssToInject = ''\r\n\r\n for (const key in variables) {\r\n const kebabKey = toKebabCase(key)\r\n const varName = prefix ? `--${prefix}-${kebabKey}` : `--${kebabKey}`\r\n result[key] = `var(${varName})`\r\n\r\n if (inject) {\r\n cssToInject += `${varName}:${variables[key]};`\r\n }\r\n }\r\n\r\n if (inject && cssToInject) {\r\n insertRule(`:root{${cssToInject}}`)\r\n }\r\n\r\n return result\r\n}\r\n","import { getSSRRulesInternal, resetState } from './styleEngine'\r\n\r\n/** SSR: Returns all collected CSS rules as a single string */\r\nexport const getSSRStyles = (): string => {\r\n return getSSRRulesInternal().join('')\r\n}\r\n\r\n/** SSR: Returns styles wrapped in a style tag */\r\nexport const getSSRStyleTag = (): string => {\r\n const css = getSSRStyles()\r\n if (!css) { return '' }\r\n return `<style id=\"aurora-styles\">${css}</style>`\r\n}\r\n\r\n/** SSR: Clears the collected rules buffer */\r\nexport const clearSSRRules = (): void => {\r\n resetState()\r\n}\r\n\r\n/** SSR: Returns raw CSS rules as an array */\r\nexport const getSSRRulesArray = (): string[] => {\r\n return [...getSSRRulesInternal()]\r\n}\r\n"]}
|