@aurora-ds/theme 3.1.0 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
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
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 I={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 k={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 P={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 A={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 K={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 _={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 F={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 E={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 N={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 V={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 j={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 W={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 z={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:P,slate:W,stone:z,red:V,orange:F,amber:R,yellow:M,lime:_,green:A,emerald:I,teal:O,cyan:v,blue:w,indigo:K,violet:L,purple:N,fuchsia:k,pink:E,rose:j,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],a=s[0];if(a==="@"){let i=m(f);i&&c(`${s}{.${o}{${i}}}`);}else if(a==="&"){let i=m(f);i&&c(`${s.replace(/&/g,`.${o}`)}{${i}}`);}else if(a===":"){let i=m(f);i&&c(`.${o}${s}{${i}}`);}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"},ae=(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]=(...a)=>{let i=D(a);return f.getOrSet(i,()=>{let le=n(...a);return C(le,`${s}-${X(i)}`)})};}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=ae(e(f),t),o=f),r[s]}})}return ae(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,a=`font-family:"${t}";`;return a+=`src:${r};`,a+=`font-style:${o};`,a+=`font-weight:${n};`,a+=`font-display:${s};`,f&&(a+=`unicode-range:${f};`),oe(a)||(c(`@font-face{${a}}`),ne(a)),t};var ie=(e,t)=>{let r="";for(let o in e){let n=e[o],s=p(o);n&&typeof n=="object"?r+=ie(n,`${t}-${s}`):n!=null&&(r+=`--${t}-${s}:${n};`);}return r},ve=(e,t="theme")=>{let r=ie(e,t);c(`:root{${r}}`);},Ie=(e,t)=>{let r=`--theme-${e.replace(/\./g,"-")}`;return t?`var(${r}, ${t})`:`var(${r})`},ke=(e,t={})=>{let{prefix:r="",inject:o=false}=t,n={},s="";for(let f in e){let a=p(f),i=r?`--${r}-${a}`:`--${a}`;n[f]=`var(${i})`,o&&(s+=`${i}:${e[f]};`);}return o&&s&&c(`:root{${s}}`),n};var ce=()=>T().join(""),Pe=()=>{let e=ce();return e?`<style id="aurora-styles">${e}</style>`:""},Ae=()=>{se();},Ke=()=>[...T()];exports.ThemeProvider=xe;exports.clearSSRRules=Ae;exports.colors=de;exports.createStyles=$e;exports.createTheme=$;exports.cssVar=Ie;exports.cssVariables=ke;exports.fontFace=we;exports.getSSRRulesArray=Ke;exports.getSSRStyleTag=Pe;exports.getSSRStyles=ce;exports.injectCssVariables=ve;exports.keyframes=Re;exports.useTheme=be;//# sourceMappingURL=index.cjs.map
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
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"]}
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 { _InternalTheme } from '@/types/theme/Theme'\r\n\r\n/**\r\n * Creates a typed theme. Type is validated against ThemeRegistry.\r\n * The theme must match the structure defined in your module augmentation.\r\n */\r\nexport const createTheme = <T extends _InternalTheme>(\r\n values: T\r\n): T => {\r\n return values\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 { _InternalTheme } 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 _InternalTheme>(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 = (): _InternalTheme | 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 { _InternalTheme } from '@/types'\r\n\r\n\r\nconst ThemeContext = createContext<_InternalTheme | undefined>(undefined)\r\n\r\nexport type ThemeProviderProps = {\r\n theme: _InternalTheme\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 = (): _InternalTheme => {\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 { _InternalTheme } 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: _InternalTheme) => 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: _InternalTheme | undefined\r\n\r\n return new Proxy({} as Result, {\r\n get(_, prop: string | symbol) {\r\n const theme = getTheme() as _InternalTheme | 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\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 { _InternalTheme } 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: _InternalTheme, 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"]}
package/dist/index.d.cts CHANGED
@@ -1,21 +1,25 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { ReactNode, CSSProperties } from 'react';
3
- export { CSSProperties } from 'react';
4
3
 
5
4
  /** Registry for theme type via module augmentation */
6
5
  interface ThemeRegistry {
7
6
  }
8
7
  /** @internal */
9
- type InferredTheme = ThemeRegistry extends {
8
+ type _InferredTheme = ThemeRegistry extends {
10
9
  theme: infer T;
11
10
  } ? T : Record<string, any>;
12
- /** Theme type, inferred from ThemeRegistry */
13
- type Theme<T = InferredTheme> = T extends Record<string, any> ? T : Record<string, any>;
11
+ /**
12
+ * Internal theme type used by the library. DO NOT USE directly.
13
+ * Define your own theme type and register it via ThemeRegistry.
14
+ * @internal
15
+ */
16
+ type _InternalTheme<T = _InferredTheme> = T extends Record<string, any> ? T : Record<string, any>;
14
17
 
15
18
  /**
16
- * Creates a typed theme. Type is inferred from ThemeRegistry.
19
+ * Creates a typed theme. Type is validated against ThemeRegistry.
20
+ * The theme must match the structure defined in your module augmentation.
17
21
  */
18
- declare const createTheme: <T extends Record<string, unknown>>(values: T) => Theme<T>;
22
+ declare const createTheme: <T extends _InternalTheme>(values: T) => T;
19
23
 
20
24
  /**
21
25
  * Color scale type - 12 shades from 25 to 950
@@ -63,7 +67,7 @@ declare const colors: {
63
67
  };
64
68
 
65
69
  type ThemeProviderProps = {
66
- theme: Theme;
70
+ theme: _InternalTheme;
67
71
  children?: ReactNode;
68
72
  };
69
73
  /**
@@ -92,7 +96,7 @@ declare const ThemeProvider: ({ theme, children }: ThemeProviderProps) => react_
92
96
  *
93
97
  * @throws {Error} If used outside a ThemeProvider
94
98
  */
95
- declare const useTheme: () => Theme;
99
+ declare const useTheme: () => _InternalTheme;
96
100
 
97
101
  /** CSS properties with support for pseudo-classes, media/container queries, and complex selectors */
98
102
  type StyleWithPseudos = CSSProperties & {
@@ -118,7 +122,7 @@ type FontFaceOptions = {
118
122
  * Creates styles with theme support. Type is inferred from ThemeRegistry.
119
123
  * Supports pseudo-classes, media queries, and complex selectors.
120
124
  */
121
- declare const createStyles: <T extends Record<string, StyleWithPseudos | StyleFunction> = Record<string, StyleWithPseudos | StyleFunction>>(stylesOrCreator: T | ((theme: Theme) => T)) => { [K in keyof T]: T[K] extends (...args: infer TArgs) => StyleWithPseudos ? (...args: TArgs) => string : string; };
125
+ declare const createStyles: <T extends Record<string, StyleWithPseudos | StyleFunction> = Record<string, StyleWithPseudos | StyleFunction>>(stylesOrCreator: T | ((theme: _InternalTheme) => T)) => { [K in keyof T]: T[K] extends (...args: infer TArgs) => StyleWithPseudos ? (...args: TArgs) => string : string; };
122
126
 
123
127
  /** Creates and injects a @keyframes rule, returns the animation name */
124
128
  declare const keyframes: (frames: Record<string, CSSProperties>) => string;
@@ -127,7 +131,7 @@ declare const keyframes: (frames: Record<string, CSSProperties>) => string;
127
131
  declare const fontFace: (options: FontFaceOptions) => string;
128
132
 
129
133
  /** Injects CSS variables from theme into :root */
130
- declare const injectCssVariables: (theme: Theme, prefix?: string) => void;
134
+ declare const injectCssVariables: (theme: _InternalTheme, prefix?: string) => void;
131
135
  /** Returns a CSS var() reference for a theme path */
132
136
  declare const cssVar: (path: string, fallback?: string) => string;
133
137
  /** Creates CSS variable references from an object */
@@ -145,4 +149,4 @@ declare const clearSSRRules: () => void;
145
149
  /** SSR: Returns raw CSS rules as an array */
146
150
  declare const getSSRRulesArray: () => string[];
147
151
 
148
- export { type FontFaceOptions, type StyleFunction, type StyleWithPseudos, type Theme, ThemeProvider, type ThemeProviderProps, type ThemeRegistry, clearSSRRules, colors, createStyles, createTheme, cssVar, cssVariables, fontFace, getSSRRulesArray, getSSRStyleTag, getSSRStyles, injectCssVariables, keyframes, useTheme };
152
+ export { type FontFaceOptions, type StyleWithPseudos, ThemeProvider, type ThemeRegistry, clearSSRRules, colors, createStyles, createTheme, cssVar, cssVariables, fontFace, getSSRRulesArray, getSSRStyleTag, getSSRStyles, injectCssVariables, keyframes, useTheme };
package/dist/index.d.ts CHANGED
@@ -1,21 +1,25 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { ReactNode, CSSProperties } from 'react';
3
- export { CSSProperties } from 'react';
4
3
 
5
4
  /** Registry for theme type via module augmentation */
6
5
  interface ThemeRegistry {
7
6
  }
8
7
  /** @internal */
9
- type InferredTheme = ThemeRegistry extends {
8
+ type _InferredTheme = ThemeRegistry extends {
10
9
  theme: infer T;
11
10
  } ? T : Record<string, any>;
12
- /** Theme type, inferred from ThemeRegistry */
13
- type Theme<T = InferredTheme> = T extends Record<string, any> ? T : Record<string, any>;
11
+ /**
12
+ * Internal theme type used by the library. DO NOT USE directly.
13
+ * Define your own theme type and register it via ThemeRegistry.
14
+ * @internal
15
+ */
16
+ type _InternalTheme<T = _InferredTheme> = T extends Record<string, any> ? T : Record<string, any>;
14
17
 
15
18
  /**
16
- * Creates a typed theme. Type is inferred from ThemeRegistry.
19
+ * Creates a typed theme. Type is validated against ThemeRegistry.
20
+ * The theme must match the structure defined in your module augmentation.
17
21
  */
18
- declare const createTheme: <T extends Record<string, unknown>>(values: T) => Theme<T>;
22
+ declare const createTheme: <T extends _InternalTheme>(values: T) => T;
19
23
 
20
24
  /**
21
25
  * Color scale type - 12 shades from 25 to 950
@@ -63,7 +67,7 @@ declare const colors: {
63
67
  };
64
68
 
65
69
  type ThemeProviderProps = {
66
- theme: Theme;
70
+ theme: _InternalTheme;
67
71
  children?: ReactNode;
68
72
  };
69
73
  /**
@@ -92,7 +96,7 @@ declare const ThemeProvider: ({ theme, children }: ThemeProviderProps) => react_
92
96
  *
93
97
  * @throws {Error} If used outside a ThemeProvider
94
98
  */
95
- declare const useTheme: () => Theme;
99
+ declare const useTheme: () => _InternalTheme;
96
100
 
97
101
  /** CSS properties with support for pseudo-classes, media/container queries, and complex selectors */
98
102
  type StyleWithPseudos = CSSProperties & {
@@ -118,7 +122,7 @@ type FontFaceOptions = {
118
122
  * Creates styles with theme support. Type is inferred from ThemeRegistry.
119
123
  * Supports pseudo-classes, media queries, and complex selectors.
120
124
  */
121
- declare const createStyles: <T extends Record<string, StyleWithPseudos | StyleFunction> = Record<string, StyleWithPseudos | StyleFunction>>(stylesOrCreator: T | ((theme: Theme) => T)) => { [K in keyof T]: T[K] extends (...args: infer TArgs) => StyleWithPseudos ? (...args: TArgs) => string : string; };
125
+ declare const createStyles: <T extends Record<string, StyleWithPseudos | StyleFunction> = Record<string, StyleWithPseudos | StyleFunction>>(stylesOrCreator: T | ((theme: _InternalTheme) => T)) => { [K in keyof T]: T[K] extends (...args: infer TArgs) => StyleWithPseudos ? (...args: TArgs) => string : string; };
122
126
 
123
127
  /** Creates and injects a @keyframes rule, returns the animation name */
124
128
  declare const keyframes: (frames: Record<string, CSSProperties>) => string;
@@ -127,7 +131,7 @@ declare const keyframes: (frames: Record<string, CSSProperties>) => string;
127
131
  declare const fontFace: (options: FontFaceOptions) => string;
128
132
 
129
133
  /** Injects CSS variables from theme into :root */
130
- declare const injectCssVariables: (theme: Theme, prefix?: string) => void;
134
+ declare const injectCssVariables: (theme: _InternalTheme, prefix?: string) => void;
131
135
  /** Returns a CSS var() reference for a theme path */
132
136
  declare const cssVar: (path: string, fallback?: string) => string;
133
137
  /** Creates CSS variable references from an object */
@@ -145,4 +149,4 @@ declare const clearSSRRules: () => void;
145
149
  /** SSR: Returns raw CSS rules as an array */
146
150
  declare const getSSRRulesArray: () => string[];
147
151
 
148
- export { type FontFaceOptions, type StyleFunction, type StyleWithPseudos, type Theme, ThemeProvider, type ThemeProviderProps, type ThemeRegistry, clearSSRRules, colors, createStyles, createTheme, cssVar, cssVariables, fontFace, getSSRRulesArray, getSSRStyleTag, getSSRStyles, injectCssVariables, keyframes, useTheme };
152
+ export { type FontFaceOptions, type StyleWithPseudos, ThemeProvider, type ThemeRegistry, clearSSRRules, colors, createStyles, createTheme, cssVar, cssVariables, fontFace, getSSRRulesArray, getSSRStyleTag, getSSRStyles, injectCssVariables, keyframes, useTheme };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import {createContext,useLayoutEffect,useContext}from'react';import {jsx}from'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=createContext(void 0),xe=({theme:e,children:t})=>{let r=b(()=>e);return useLayoutEffect(()=>()=>{b(r);},[r]),jsx(fe.Provider,{value:e,children:t})},be=()=>{let e=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()];export{xe as ThemeProvider,Ke as clearSSRRules,de as colors,$e as createStyles,$ as createTheme,ke as cssVar,Pe as cssVariables,we as fontFace,Fe as getSSRRulesArray,Ae as getSSRStyleTag,ce as getSSRStyles,ve as injectCssVariables,Re as keyframes,be as useTheme};//# sourceMappingURL=index.js.map
1
+ import {createContext,useLayoutEffect,useContext}from'react';import {jsx}from'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 I={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 k={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 P={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 A={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 K={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 _={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 F={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 E={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 N={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 V={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 j={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 W={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 z={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:P,slate:W,stone:z,red:V,orange:F,amber:R,yellow:M,lime:_,green:A,emerald:I,teal:O,cyan:v,blue:w,indigo:K,violet:L,purple:N,fuchsia:k,pink:E,rose:j,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],a=s[0];if(a==="@"){let i=m(f);i&&c(`${s}{.${o}{${i}}}`);}else if(a==="&"){let i=m(f);i&&c(`${s.replace(/&/g,`.${o}`)}{${i}}`);}else if(a===":"){let i=m(f);i&&c(`.${o}${s}{${i}}`);}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=createContext(void 0),xe=({theme:e,children:t})=>{let r=b(()=>e);return useLayoutEffect(()=>()=>{b(r);},[r]),jsx(fe.Provider,{value:e,children:t})},be=()=>{let e=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"},ae=(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]=(...a)=>{let i=D(a);return f.getOrSet(i,()=>{let le=n(...a);return C(le,`${s}-${X(i)}`)})};}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=ae(e(f),t),o=f),r[s]}})}return ae(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,a=`font-family:"${t}";`;return a+=`src:${r};`,a+=`font-style:${o};`,a+=`font-weight:${n};`,a+=`font-display:${s};`,f&&(a+=`unicode-range:${f};`),oe(a)||(c(`@font-face{${a}}`),ne(a)),t};var ie=(e,t)=>{let r="";for(let o in e){let n=e[o],s=p(o);n&&typeof n=="object"?r+=ie(n,`${t}-${s}`):n!=null&&(r+=`--${t}-${s}:${n};`);}return r},ve=(e,t="theme")=>{let r=ie(e,t);c(`:root{${r}}`);},Ie=(e,t)=>{let r=`--theme-${e.replace(/\./g,"-")}`;return t?`var(${r}, ${t})`:`var(${r})`},ke=(e,t={})=>{let{prefix:r="",inject:o=false}=t,n={},s="";for(let f in e){let a=p(f),i=r?`--${r}-${a}`:`--${a}`;n[f]=`var(${i})`,o&&(s+=`${i}:${e[f]};`);}return o&&s&&c(`:root{${s}}`),n};var ce=()=>T().join(""),Pe=()=>{let e=ce();return e?`<style id="aurora-styles">${e}</style>`:""},Ae=()=>{se();},Ke=()=>[...T()];export{xe as ThemeProvider,Ae as clearSSRRules,de as colors,$e as createStyles,$ as createTheme,Ie as cssVar,ke as cssVariables,we as fontFace,Ke as getSSRRulesArray,Pe as getSSRStyleTag,ce as getSSRStyles,ve as injectCssVariables,Re as keyframes,be as useTheme};//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
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.js","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"]}
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.js","sourcesContent":["import type { _InternalTheme } from '@/types/theme/Theme'\r\n\r\n/**\r\n * Creates a typed theme. Type is validated against ThemeRegistry.\r\n * The theme must match the structure defined in your module augmentation.\r\n */\r\nexport const createTheme = <T extends _InternalTheme>(\r\n values: T\r\n): T => {\r\n return values\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 { _InternalTheme } 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 _InternalTheme>(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 = (): _InternalTheme | 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 { _InternalTheme } from '@/types'\r\n\r\n\r\nconst ThemeContext = createContext<_InternalTheme | undefined>(undefined)\r\n\r\nexport type ThemeProviderProps = {\r\n theme: _InternalTheme\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 = (): _InternalTheme => {\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 { _InternalTheme } 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: _InternalTheme) => 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: _InternalTheme | undefined\r\n\r\n return new Proxy({} as Result, {\r\n get(_, prop: string | symbol) {\r\n const theme = getTheme() as _InternalTheme | 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\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 { _InternalTheme } 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: _InternalTheme, 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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aurora-ds/theme",
3
- "version": "3.1.0",
3
+ "version": "3.1.2",
4
4
  "description": "A performant CSS-in-JS theme management library for React",
5
5
  "author": "Lilian MARZET <lilian.marzet@gmail.com>",
6
6
  "license": "MIT",