@minejs/jsx 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/{jsx-dev-runtime-BVwpihrl.d.cts → jsx-dev-runtime-sMogz8rT.d.cts} +30 -3
- package/dist/{jsx-dev-runtime-BVwpihrl.d.ts → jsx-dev-runtime-sMogz8rT.d.ts} +30 -3
- package/dist/jsx-dev-runtime.cjs +2 -2
- package/dist/jsx-dev-runtime.cjs.map +1 -1
- package/dist/jsx-dev-runtime.d.cts +1 -1
- package/dist/jsx-dev-runtime.d.ts +1 -1
- package/dist/jsx-dev-runtime.js +2 -2
- package/dist/jsx-dev-runtime.js.map +1 -1
- package/dist/jsx-runtime.cjs +2 -2
- package/dist/jsx-runtime.cjs.map +1 -1
- package/dist/jsx-runtime.d.cts +1 -1
- package/dist/jsx-runtime.d.ts +1 -1
- package/dist/jsx-runtime.js +2 -2
- package/dist/jsx-runtime.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
</div>
|
|
9
9
|
|
|
10
10
|
<div align="center">
|
|
11
|
-
<img src="https://img.shields.io/badge/v-0.2.
|
|
11
|
+
<img src="https://img.shields.io/badge/v-0.2.6-black"/>
|
|
12
12
|
<img src="https://img.shields.io/badge/🔥-@minejs-black"/>
|
|
13
13
|
<br>
|
|
14
|
-
<img src="https://img.shields.io/badge/coverage-
|
|
14
|
+
<img src="https://img.shields.io/badge/coverage-98.06%25-brightgreen" alt="Test Coverage" />
|
|
15
15
|
<img src="https://img.shields.io/github/issues/minejs-org/jsx?style=flat" alt="Github Repo Issues" />
|
|
16
16
|
<img src="https://img.shields.io/github/stars/minejs-org/jsx?style=social" alt="GitHub Repo stars" />
|
|
17
17
|
</div>
|
package/dist/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';var signals=require('@minejs/signals');var w=[],S=false;function b(e,n,t={}){let o=typeof n=="string"?document.querySelector(n):n;if(!o)throw new Error(`Container not found: ${n}`);let r=typeof e=="function"?e():e;if(!r)throw new Error("Component returned null or undefined");switch(t.mode||"replace"){case "replace":o.innerHTML="",o.appendChild(r);break;case "append":o.appendChild(r);break;case "prepend":o.insertBefore(r,o.firstChild);break;default:o.innerHTML="",o.appendChild(r);}return t.onMount?.(),{element:r,unmount:()=>{if(r instanceof Element)r.remove();else if(r instanceof DocumentFragment)for(;r.firstChild;)r.removeChild(r.firstChild);t.onUnmount?.();},update:i=>{r instanceof Element&&i instanceof Element?r.replaceWith(i):i instanceof Element&&r instanceof DocumentFragment&&r.parentNode&&r.parentNode.replaceChild(i,r);}}}function Ve(e,n){return b(e,n,{mode:"replace"})}function ye(e,n){let t=typeof n=="string"?document.querySelector(n):n;if(!t)throw new Error(`Portal container not found: ${n}`);let o=document.createComment("portal");return e instanceof Node&&t.appendChild(e),o}function Ue(e,n){let t=typeof n=="string"?document.querySelector(n):n,o=t instanceof HTMLElement?t:null;if(!o)throw new Error(`Container not found: ${n}`);return b(e,o,{mode:"replace"})}function Qe(e,n){let t=null,o=false,r=null;return l=>{if(t)return t(l);if(r){let i=document.createElement("div");return i.className="crux-lazy-error",i.textContent=`Error loading component: ${r.message}`,i.style.color="red",i}return o||(o=true,e().then(i=>{t=i.default;}).catch(i=>{r=i instanceof Error?i:new Error(String(i));})),n||we()}}function we(){let e=document.createElement("div");return e.textContent="Loading...",e}function Ze(e){try{return e.children}catch(n){return e.fallback(n)}}function en(e){if(e.children instanceof Promise){let n=document.createElement("div");return n.style.display="contents",e.fallback instanceof Node&&n.appendChild(e.fallback),e.children.then(t=>{n.innerHTML="",t instanceof Node&&n.appendChild(t);}),n}else return e.children}function nn(e){return ye(e.children,e.to)}function tn(e){w.push(e),S||(S=true,queueMicrotask(Se));}function Se(){let e=w;w=[],S=false,e.forEach(n=>n());}function be(){return typeof window<"u"&&typeof document<"u"}function on(e){be()&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):e());}function rn(e){let n=typeof e=="string"?document.querySelector(e):e;if(!n||!(n instanceof HTMLElement))throw new Error(`Root container not found: ${e}`);let t=null;return {render(o){t&&t.unmount(),t=b(o,n);},unmount(){t&&(t.unmount(),t=null);}}}function ln(e){return e.replace(/\s+/g," ").replace(/>\s+</g,"><").trim()}function g(e){return e.replace(/\s+/g," ").trim()}var W=[/^display-(.+)$/,/^(block|inline-block|inline|flex|inline-flex|grid|inline-grid|table|table-row|table-cell|flow-root|contents|hidden)$/,/^(static|fixed|absolute|relative|sticky)$/,/^inset-(.+)$/,/^inset-x-(.+)$/,/^inset-y-(.+)$/,/^start-(.+)$/,/^end-(.+)$/,/^top-(.+)$/,/^bottom-(.+)$/,/^z-(.+)$/,/^flex-(row|col)(-reverse)?$/,/^flex-(wrap|nowrap)(-reverse)?$/,/^flex-(1|auto|initial|none)$/,/^basis-(.+)$/,/^grow(-0)?$/,/^shrink(-0)?$/,/^order-(.+)$/,/^gap-(\d+)$/,/^gap-x-(.+)$/,/^gap-y-(.+)$/,/^justify-items-(.+)$/,/^justify-self-(.+)$/,/^justify-(start|end|center|between|around|evenly|stretch)$/,/^content-(.+)$/,/^items-(.+)$/,/^self-(.+)$/,/^place-content-(.+)$/,/^place-items-(.+)$/,/^place-self-(.+)$/,/^grid-cols-(.+)$/,/^col-span-(.+)$/,/^col-start-(.+)$/,/^col-end-(.+)$/,/^grid-rows-(.+)$/,/^row-span-(.+)$/,/^row-start-(.+)$/,/^row-end-(.+)$/,/^grid-flow-(.+)$/,/^p-(.+)$/,/^px-(.+)$/,/^py-(.+)$/,/^pt-(.+)$/,/^pb-(.+)$/,/^ps-(.+)$/,/^pe-(.+)$/,/^m-(.+)$/,/^mx-(.+)$/,/^my-(.+)$/,/^mt-(.+)$/,/^mb-(.+)$/,/^ms-(.+)$/,/^me-(.+)$/,/^w-(.+)$/,/^min-w-(.+)$/,/^max-w-(.+)$/,/^h-(.+)$/,/^min-h-(.+)$/,/^max-h-(.+)$/,/^font-(sans|serif|mono)$/,/^font-(thin|extralight|light|normal|medium|semibold|bold|extrabold|black)$/,/^text-(xs|sm|base|md|lg|xl|\d+xl)$/,/^leading-(.+)$/,/^tracking-(.+)$/,/^text-(left|center|right|justify|start|end)$/,/^text-(wrap|nowrap|balance|pretty)$/,/^(truncate|text-ellipsis|text-clip)$/,/^(uppercase|lowercase|capitalize|normal-case)$/,/^(italic|not-italic)$/,/^(underline|overline|line-through|no-underline)$/,/^text-(?!left|center|right|justify|start|end|xs|sm|base|md|lg|xl|\d+xl|wrap|nowrap|balance|pretty|ellipsis|clip).+$/,/^bg-(?!blend).+$/,/^bg-blend-(.+)$/,/^mix-blend-(.+)$/,/^shadow(.*)$/,/^opacity-(.+)$/,/^blur(.*)$/,/^brightness-(.+)$/,/^contrast-(.+)$/,/^grayscale(.*)$/,/^invert(.*)$/,/^saturate-(.+)$/,/^sepia(.*)$/,/^hue-rotate-(.+)$/,/^backdrop-blur(.*)$/,/^transition(.*)$/];function I(e){let n=e.trim().split(/\s+/);if(n.length<=1&&n[0]==="")return "";if(n.length===1)return n[0];let t=new Set,o=[];for(let r=n.length-1;r>=0;r--){let l=n[r];if(!l)continue;let i=l;for(let s=0;s<W.length;s++)if(W[s].test(l)){i=s;break}t.has(i)||(t.add(i),o.push(l));}return o.reverse().join(" ")}var k={center:"justify-center items-center",top:"justify-center items-start",bottom:"justify-center items-end",left:"justify-start items-center",right:"justify-end items-center","top-left":"justify-start items-start","top-right":"justify-end items-start","bottom-left":"justify-start items-end","bottom-right":"justify-end items-end"},Ee={block:"block","inline-block":"inline-block",flex:"flex","inline-flex":"inline-flex",grid:"grid","inline-grid":"inline-grid"},$e={row:"flex-row","row-reverse":"flex-row-reverse",column:"flex-col","column-reverse":"flex-col-reverse"},Ce={start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch",baseline:"items-baseline"},Me={start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},Le={xs:"max-w-xs",sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl","2xl":"max-w-2xl","3xl":"max-w-3xl","4xl":"max-w-4xl","5xl":"max-w-5xl","6xl":"max-w-6xl","7xl":"max-w-7xl",full:"max-w-full",min:"max-w-min",max:"max-w-max",fit:"max-w-fit",none:"max-w-none",prose:"max-w-prose"},Te={0:"border-0",1:"border",2:"border-2",4:"border-4",8:"border-8"},He={none:"rounded-none",sm:"rounded-sm",base:"rounded",md:"rounded-md",lg:"rounded-lg",xl:"rounded-xl","2xl":"rounded-2xl","3xl":"rounded-3xl",full:"rounded-full"},ve={none:"shadow-none",xs:"shadow-xs",sm:"shadow-sm",md:"shadow-md",lg:"shadow-lg",xl:"shadow-xl",inner:"shadow-inner"};function m(e,n){if(n!==void 0)return `${e}-${n}`}function f(e,n){if(n!==void 0)return n==="auto"?`${e}-auto`:`${e}-${n}`}var z=new Set([0,1,2,3,4,5,6,7,8,9,10,12,14,16,20,24,28,32,36,40,48,56,64]),Ne=new Set(["1/2","1/3","2/3","1/4","2/4","3/4","1/5","2/5","3/5","4/5","1/6","5/6","1/12"]),Pe=new Set(["auto","full","screen","min","max","fit"]),Xe=new Set(["auto","full","screen","min","max","fit"]),Je=new Set(["0","full","min","max","fit"]),Re=new Set(["none","full","min","max","fit"]),je=new Set(["0","full","screen","min","max","fit"]),Ae=new Set(["none","full","screen","min","max","fit"]),u=(e,n,t)=>n===void 0?null:t&&n in t?{class:t[n]}:typeof n=="number"&&z.has(n)?{class:`${e}-${n}`}:(e==="w"||e==="h")&&Ne.has(n)?{class:`${e}-${n}`}:(e==="w"?Pe:e==="h"?Xe:e==="min-w"?Je:e==="min-h"?je:e==="max-w"?Re:Ae).has(n)?{class:`${e}-${n}`}:["min-w","max-w","min-h","max-h"].includes(e)&&typeof n=="number"&&z.has(n)?{class:`${e}-${n}`}:{style:{[e==="w"?"width":e==="h"?"height":e==="min-w"?"minWidth":e==="min-h"?"minHeight":e==="max-w"?"maxWidth":"maxHeight"]:n}},B=new Set(["display","direction","align","justify","wrap","gap","gapX","gapY","w","h","minW","minH","maxW","maxH","p","px","py","ps","pe","pt","pb","m","mx","my","ms","me","mt","mb","bg","color","border","borderColor","radius","shadow","position","overflow","zIndex","overlay","location","backdrop"]);function Y(e){let{display:n,direction:t,align:o,justify:r,wrap:l,gap:i,gapX:s,gapY:a,w:p,h:U,minW:Q,minH:Z,maxW:ee,maxH:ne,p:te,px:oe,py:re,ps:ie,pe:se,pt:le,pb:ae,m:ce,mx:de,my:me,ms:fe,me:ue,mt:pe,mb:he,bg:L,color:T,border:H,borderColor:v,radius:N,shadow:P,position:ge,overflow:X,zIndex:J,overlay:h,location:y,backdrop:xe}=e,R=u("w",p),j=u("h",U),A=u("min-w",Q),_=u("min-h",Z),O=u("max-w",ee,Le),D=u("max-h",ne),F={...R?.style,...j?.style,...A?.style,..._?.style,...O?.style,...D?.style,...h&&xe?{backgroundColor:"rgba(0, 0, 0, 0.5)"}:{}};return {className:[h&&"absolute inset-0 w-full h-full flex",h&&y&&k[y],h&&!y&&k.center,n&&Ee[n],t&&$e[t],o&&Ce[o],r&&Me[r],l&&"flex-wrap",i!==void 0&&`gap-${i}`,s!==void 0&&`gap-x-${s}`,a!==void 0&&`gap-y-${a}`,R?.class,j?.class,A?.class,_?.class,O?.class,D?.class,m("p",te),m("px",oe),m("py",re),m("ps",ie),m("pe",se),m("pt",le),m("pb",ae),f("m",ce),f("mx",de),f("my",me),f("ms",fe),f("me",ue),f("mt",pe),f("mb",he),L&&`bg-${L}`,T&&`text-${T}`,H!==void 0&&Te[H],v&&`border-${v}`,N&&He[N],P&&ve[P],ge,X&&`overflow-${X}`,J&&`z-${J}`].filter(Boolean).join(" "),style:Object.keys(F).length>0?F:void 0}}function M(e,n){return typeof e=="function"?e(n||{}):Fe(e,n||{})}var un=M;function K(e){let n=document.createDocumentFragment();return x(e.children).forEach(o=>{o instanceof Node&&n.appendChild(o);}),n}var G=false;function _e(){if(G||typeof window>"u"||typeof MutationObserver>"u")return;G=true;let e=new MutationObserver(n=>{n.forEach(t=>{t.addedNodes.forEach(o=>{o instanceof Element&&Oe(o);});});});document.body?e.observe(document.body,{childList:true,subtree:true}):document.addEventListener("DOMContentLoaded",()=>{document.body&&e.observe(document.body,{childList:true,subtree:true});});}function Oe(e){if(e.hasAttribute("data-mine-onload")){let t=e.__onload;typeof t=="function"&&t(e);}e.querySelectorAll("[data-mine-onload]").forEach(t=>{let o=t.__onload;typeof o=="function"&&o(t);});}var E=new Set(["svg","path","circle","rect","line","polyline","polygon","ellipse","g","text","tspan","defs","clipPath","linearGradient","radialGradient","stop","mask","pattern","image","use","symbol","marker","foreignObject","animate","animateTransform","animateMotion","set","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","title","desc","metadata"]),$=new Set(["math","maction","maligngroup","malignmark","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mlongdiv","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mscarries","mscarry","msgroup","msline","mspace","msqrt","msrow","mstack","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","semantics","annotation","annotation-xml"]),V="http://www.w3.org/2000/svg",De="http://www.w3.org/1998/Math/MathML";function Fe(e,n){n.as&&(e=n.as);let t;E.has(e)?t=document.createElementNS(V,e):$.has(e)?t=document.createElementNS(De,e):t=document.createElement(e);let o="dangerouslySetInnerHTML"in n&&n.dangerouslySetInnerHTML!=null&&typeof n.dangerouslySetInnerHTML=="object"&&"__html"in n.dangerouslySetInnerHTML&&typeof n.dangerouslySetInnerHTML.__html=="string",{className:r,style:l}=Y(n);l&&!E.has(e)&&!$.has(e)&&C(t,l);let i=false;for(let[s,a]of Object.entries(n))if(!B.has(s)&&s!=="as"){if(s==="children")o||We(t,a);else if(s==="dangerouslySetInnerHTML")Ge(t,a);else if(s==="onload")t.__onload=a,t.setAttribute("data-mine-onload",""),_e();else if(s==="ref")Ie(t,a);else if(s.startsWith("on"))ke(t,s,a);else if(s==="id")ze(t,a);else if(s==="htmlFor")Be(t,a);else if(s==="className"||s==="class")i=true,q(t,a,r);else if(s==="style")Ye(t,a);else if(signals.isSignal(a))qe(t,s,a);else if(typeof a=="boolean")a&&t.setAttribute(s,"");else if(a!=null)if(E.has(e)||$.has(e)){let p=typeof a=="string"?g(a):String(a);t.setAttribute(s,p);}else if(s in t)t[s]=a;else {let p=typeof a=="string"?g(a):String(a);t.setAttribute(s,p);}}return !i&&r&&q(t,r),t}function We(e,n){x(n).forEach(o=>{if(o instanceof Node)e.appendChild(o);else if(signals.isSignal(o)){let r=document.createTextNode("");signals.effect(()=>{r.textContent=String(o());}),e.appendChild(r);}else o!=null&&o!==false&&e.appendChild(document.createTextNode(String(o)));});}function x(e){return e==null||e===false?[]:Array.isArray(e)?e.flatMap(x):[e]}function Ie(e,n){signals.isSignal(n)?n.set(e):typeof n=="function"&&n(e);}function ke(e,n,t){if(typeof t!="function")return;let o=n.slice(2).toLowerCase();e.addEventListener(o,t);}function q(e,n,t=""){let o=r=>{let l=t?`${t} ${r}`:r,i=I(String(l));e.namespaceURI===V?e.setAttribute("class",i):e.className=i;};signals.isSignal(n)?signals.effect(()=>{let r=n();r!=null?o(String(r)):t&&o("");}):n!=null&&o(String(n));}function ze(e,n){signals.isSignal(n)?signals.effect(()=>{let t=n();t!=null?e.id=String(t):e.removeAttribute("id");}):n!=null&&(e.id=String(n));}function Be(e,n){signals.isSignal(n)?signals.effect(()=>{let t=n();t!=null?e.setAttribute("for",String(t)):e.removeAttribute("for");}):n!=null&&e.setAttribute("for",String(n));}function Ye(e,n){signals.isSignal(n)?signals.effect(()=>{let t=n();C(e,t);}):C(e,n);}function C(e,n){typeof n=="string"?e.style.cssText=n:typeof n=="object"&&n!=null&&Object.entries(n).forEach(([t,o])=>{if(o!=null){let r=t.replace(/[A-Z]/g,l=>`-${l.toLowerCase()}`);e.style.setProperty(r,String(o));}});}function Ge(e,n){if(n!=null&&typeof n=="object"&&"__html"in n){let t=n.__html;typeof t=="string"&&(e.innerHTML=t);}}function qe(e,n,t){signals.effect(()=>{let o=t();if(o!=null)if(n in e)e[n]=o;else {let r=typeof o=="string"?g(o):String(o);e.setAttribute(n,r);}else e.removeAttribute(n);});}function pn(e){return e}function hn(e){return n=>e(n)()}function gn(e){let n=document.createDocumentFragment();return e.forEach(t=>{t instanceof Node&&n.appendChild(t);}),n}function xn(e){if(signals.isSignal(e.when)){let n=document.createComment("show"),t=document.createDocumentFragment();t.appendChild(n);let o=null;return signals.effect(()=>{let r=e.when,l=r();l&&!o?(o=x(e.children)[0],o instanceof Node&&n.parentNode?.insertBefore(o,n)):!l&&o&&(o.remove(),o=null);}),t}else return e.when?M(K,{children:e.children}):null}function yn(e){for(let n of e.children)if(signals.isSignal(n.when)?n.when():n.when)return M(K,{children:n.children});return null}function wn(e){let n=document.createDocumentFragment();if(signals.isSignal(e.each)){let t=document.createElement("div");t.style.display="contents",signals.effect(()=>{let o=e.each,r=o();t.innerHTML="",r.forEach((l,i)=>{let s=e.children(l,i);s instanceof Node&&t.appendChild(s);});}),n.appendChild(t);}else e.each.forEach((o,r)=>{let l=e.children(o,r);l instanceof Node&&n.appendChild(l);});return n}
|
|
2
|
-
exports.ErrorBoundary=
|
|
1
|
+
'use strict';var signals=require('@minejs/signals');var w=[],E=false;function S(e,n,t={}){let r=typeof n=="string"?document.querySelector(n):n;if(!r)throw new Error(`Container not found: ${n}`);let o=typeof e=="function"?e():e;if(!o)throw new Error("Component returned null or undefined");switch(t.mode||"replace"){case "replace":r.innerHTML="",r.appendChild(o);break;case "append":r.appendChild(o);break;case "prepend":r.insertBefore(o,r.firstChild);break;default:r.innerHTML="",r.appendChild(o);}return t.onMount?.(),{element:o,unmount:()=>{if(o instanceof Element)o.remove();else if(o instanceof DocumentFragment)for(;o.firstChild;)o.removeChild(o.firstChild);t.onUnmount?.();},update:i=>{o instanceof Element&&i instanceof Element?o.replaceWith(i):i instanceof Element&&o instanceof DocumentFragment&&o.parentNode&&o.parentNode.replaceChild(i,o);}}}function $n(e,n){return S(e,n,{mode:"replace"})}function De(e,n){let t=typeof n=="string"?document.querySelector(n):n;if(!t)throw new Error(`Portal container not found: ${n}`);let r=document.createComment("portal");return e instanceof Node&&t.appendChild(e),r}function Mn(e,n){let t=typeof n=="string"?document.querySelector(n):n,r=t instanceof HTMLElement?t:null;if(!r)throw new Error(`Container not found: ${n}`);return S(e,r,{mode:"replace"})}function Ln(e,n){let t=null,r=false,o=null;return l=>{if(t)return t(l);if(o){let i=document.createElement("div");return i.className="crux-lazy-error",i.textContent=`Error loading component: ${o.message}`,i.style.color="red",i}return r||(r=true,e().then(i=>{t=i.default;}).catch(i=>{o=i instanceof Error?i:new Error(String(i));})),n||ze()}}function ze(){let e=document.createElement("div");return e.textContent="Loading...",e}function vn(e){try{return e.children}catch(n){return e.fallback(n)}}function Tn(e){if(e.children instanceof Promise){let n=document.createElement("div");return n.style.display="contents",e.fallback instanceof Node&&n.appendChild(e.fallback),e.children.then(t=>{n.innerHTML="",t instanceof Node&&n.appendChild(t);}),n}else return e.children}function Rn(e){return De(e.children,e.to)}function Hn(e){w.push(e),E||(E=true,queueMicrotask(_e));}function _e(){let e=w;w=[],E=false,e.forEach(n=>n());}function Fe(){return typeof window<"u"&&typeof document<"u"}function Pn(e){Fe()&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):e());}function Nn(e){let n=typeof e=="string"?document.querySelector(e):e;if(!n||!(n instanceof HTMLElement))throw new Error(`Root container not found: ${e}`);let t=null;return {render(r){t&&t.unmount(),t=S(r,n);},unmount(){t&&(t.unmount(),t=null);}}}function Xn(e){return e.replace(/\s+/g," ").replace(/>\s+</g,"><").trim()}function h(e){return e.replace(/\s+/g," ").trim()}var re=[/^display-(.+)$/,/^(block|inline-block|inline|flex|inline-flex|grid|inline-grid|table|table-row|table-cell|flow-root|contents|hidden)$/,/^(static|fixed|absolute|relative|sticky)$/,/^inset-(.+)$/,/^inset-x-(.+)$/,/^inset-y-(.+)$/,/^start-(.+)$/,/^end-(.+)$/,/^top-(.+)$/,/^bottom-(.+)$/,/^z-(.+)$/,/^flex-(row|col)(-reverse)?$/,/^flex-(wrap|nowrap)(-reverse)?$/,/^flex-(1|auto|initial|none)$/,/^basis-(.+)$/,/^grow(-0)?$/,/^shrink(-0)?$/,/^order-(.+)$/,/^gap-(\d+)$/,/^gap-x-(.+)$/,/^gap-y-(.+)$/,/^justify-items-(.+)$/,/^justify-self-(.+)$/,/^justify-(start|end|center|between|around|evenly|stretch)$/,/^content-(.+)$/,/^items-(.+)$/,/^self-(.+)$/,/^place-content-(.+)$/,/^place-items-(.+)$/,/^place-self-(.+)$/,/^grid-cols-(.+)$/,/^col-span-(.+)$/,/^col-start-(.+)$/,/^col-end-(.+)$/,/^grid-rows-(.+)$/,/^row-span-(.+)$/,/^row-start-(.+)$/,/^row-end-(.+)$/,/^grid-flow-(.+)$/,/^p-(.+)$/,/^px-(.+)$/,/^py-(.+)$/,/^pt-(.+)$/,/^pb-(.+)$/,/^ps-(.+)$/,/^pe-(.+)$/,/^m-(.+)$/,/^mx-(.+)$/,/^my-(.+)$/,/^mt-(.+)$/,/^mb-(.+)$/,/^ms-(.+)$/,/^me-(.+)$/,/^w-(.+)$/,/^min-w-(.+)$/,/^max-w-(.+)$/,/^h-(.+)$/,/^min-h-(.+)$/,/^max-h-(.+)$/,/^font-(sans|serif|mono)$/,/^font-(thin|extralight|light|normal|medium|semibold|bold|extrabold|black)$/,/^text-(xs|sm|base|md|lg|xl|\d+xl)$/,/^leading-(.+)$/,/^tracking-(.+)$/,/^text-(left|center|right|justify|start|end)$/,/^text-(wrap|nowrap|balance|pretty)$/,/^(truncate|text-ellipsis|text-clip)$/,/^(uppercase|lowercase|capitalize|normal-case)$/,/^(italic|not-italic)$/,/^(underline|overline|line-through|no-underline)$/,/^text-(?!left|center|right|justify|start|end|xs|sm|base|md|lg|xl|\d+xl|wrap|nowrap|balance|pretty|ellipsis|clip).+$/,/^bg-(?!blend).+$/,/^bg-blend-(.+)$/,/^mix-blend-(.+)$/,/^shadow(.*)$/,/^opacity-(.+)$/,/^blur(.*)$/,/^brightness-(.+)$/,/^contrast-(.+)$/,/^grayscale(.*)$/,/^invert(.*)$/,/^saturate-(.+)$/,/^sepia(.*)$/,/^hue-rotate-(.+)$/,/^backdrop-blur(.*)$/,/^transition(.*)$/];function oe(e){let n=e.trim().split(/\s+/);if(n.length<=1&&n[0]==="")return "";if(n.length===1)return n[0];let t=new Set,r=[];for(let o=n.length-1;o>=0;o--){let l=n[o];if(!l)continue;let i=l;for(let s=0;s<re.length;s++)if(re[s].test(l)){i=s;break}t.has(i)||(t.add(i),r.push(l));}return r.reverse().join(" ")}var ie={center:"justify-center items-center",top:"justify-center items-start",bottom:"justify-center items-end",left:"justify-start items-center",right:"justify-end items-center","top-left":"justify-start items-start","top-right":"justify-end items-start","bottom-left":"justify-start items-end","bottom-right":"justify-end items-end"},Oe={block:"block","inline-block":"inline-block",flex:"flex","inline-flex":"inline-flex",grid:"grid","inline-grid":"inline-grid"},We={row:"flex-row","row-reverse":"flex-row-reverse",column:"flex-col","column-reverse":"flex-col-reverse"},ke={start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch",baseline:"items-baseline"},Ie={start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},Be={xs:"max-w-xs",sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl","2xl":"max-w-2xl","3xl":"max-w-3xl","4xl":"max-w-4xl","5xl":"max-w-5xl","6xl":"max-w-6xl","7xl":"max-w-7xl",full:"max-w-full",min:"max-w-min",max:"max-w-max",fit:"max-w-fit",none:"max-w-none",prose:"max-w-prose"},Ge={0:"border-0",1:"border",2:"border-2",4:"border-4",8:"border-8"},Ye={none:"rounded-none",sm:"rounded-sm",base:"rounded",md:"rounded-md",lg:"rounded-lg",xl:"rounded-xl","2xl":"rounded-2xl","3xl":"rounded-3xl",full:"rounded-full"},qe={none:"shadow-none",xs:"shadow-xs",sm:"shadow-sm",md:"shadow-md",lg:"shadow-lg",xl:"shadow-xl","2xl":"shadow-2xl",inner:"shadow-inner"},Ke={solid:"border-solid",dashed:"border-dashed",dotted:"border-dotted",double:"border-double",groove:"border-groove",ridge:"border-ridge",inset:"border-inset",hidden:"border-hidden",none:"border-none"},Ue={auto:"cursor-auto",default:"cursor-default",pointer:"cursor-pointer",wait:"cursor-wait",text:"cursor-text",move:"cursor-move",help:"cursor-help","not-allowed":"cursor-not-allowed",none:"cursor-none",grab:"cursor-grab",grabbing:"cursor-grabbing"},Ve={none:"select-none",text:"select-text",all:"select-all",auto:"select-auto"},Qe={none:"pointer-events-none",auto:"pointer-events-auto"},Ze={none:"resize-none",both:"resize",y:"resize-y",x:"resize-x"},en={none:"animate-none",spin:"animate-spin",ping:"animate-ping",pulse:"animate-pulse",bounce:"animate-bounce","fade-in":"animate-fade-in","fade-out":"animate-fade-out","slide-in-up":"animate-slide-in-up","slide-in-down":"animate-slide-in-down","slide-in-left":"animate-slide-in-left","slide-in-right":"animate-slide-in-right","zoom-in":"animate-zoom-in","zoom-out":"animate-zoom-out"},nn={linear:"animate-ease-linear",in:"animate-ease-in",out:"animate-ease-out","in-out":"animate-ease-in-out"},tn={forwards:"animate-fill-forwards",backwards:"animate-fill-backwards",both:"animate-fill-both",none:"animate-fill-none"};function u(e,n){if(n!==void 0)return `${e}-${n}`}function f(e,n){if(n!==void 0)return n==="auto"?`${e}-auto`:`${e}-${n}`}var se=new Set([0,1,2,3,4,5,6,7,8,9,10,12,14,16,20,24,28,32,36,40,48,56,64]),rn=new Set(["1/2","1/3","2/3","1/4","2/4","3/4","1/5","2/5","3/5","4/5","1/6","5/6","1/12"]),on=new Set(["auto","full","screen","min","max","fit"]),sn=new Set(["auto","full","screen","min","max","fit"]),an=new Set(["0","full","min","max","fit"]),ln=new Set(["none","full","min","max","fit"]),dn=new Set(["0","full","screen","min","max","fit"]),cn=new Set(["none","full","screen","min","max","fit"]),c=(e,n,t)=>n===void 0?null:t&&n in t?{class:t[n]}:typeof n=="number"&&se.has(n)?{class:`${e}-${n}`}:(e==="w"||e==="h")&&rn.has(n)?{class:`${e}-${n}`}:(e==="w"?on:e==="h"?sn:e==="min-w"?an:e==="min-h"?dn:e==="max-w"?ln:cn).has(n)?{class:`${e}-${n}`}:["min-w","max-w","min-h","max-h"].includes(e)&&typeof n=="number"&&se.has(n)?{class:`${e}-${n}`}:{style:{[e==="w"?"width":e==="h"?"height":e==="min-w"?"minWidth":e==="min-h"?"minHeight":e==="max-w"?"maxWidth":"maxHeight"]:n}},ae=new Set(["display","direction","align","justify","wrap","grow","shrink","basis","order","gap","gapX","gapY","w","h","size","minW","minH","maxW","maxH","p","px","py","ps","pe","pt","pb","m","mx","my","ms","me","mt","mb","bg","color","border","borderStyle","borderColor","radius","shadow","opacity","position","overflow","zIndex","overlay","location","backdrop","divider","cursor","select","pointerEvents","resize","animate","animateDuration","animateDelay","animateEase","animateFill"]);function le(e){let{display:n,direction:t,align:r,justify:o,wrap:l,grow:i,shrink:s,basis:a,order:p,gap:v,gapX:T,gapY:R,w:fe,h:pe,size:H,minW:ge,minH:he,maxW:xe,maxH:ye,p:be,px:we,py:Ee,ps:Se,pe:Ce,pt:$e,pb:Me,m:Le,mx:ve,my:Te,ms:Re,me:He,mt:Pe,mb:Ne,bg:P,color:N,border:A,borderStyle:X,borderColor:J,radius:j,shadow:D,opacity:z,position:Ae,overflow:_,zIndex:F,overlay:g,location:y,backdrop:Xe,divider:b,cursor:O,select:W,pointerEvents:k,resize:I,animate:B,animateDuration:G,animateDelay:Y,animateEase:q,animateFill:K}=e,Je=c("w",H),je=c("h",H),U=c("w",fe)||Je,V=c("h",pe)||je,Q=c("min-w",ge),Z=c("min-h",he),ee=c("max-w",xe,Be),ne=c("max-h",ye),te={...U?.style,...V?.style,...Q?.style,...Z?.style,...ee?.style,...ne?.style,...a&&typeof a=="string"&&!["auto","full"].includes(a)?{flexBasis:a}:{},...p!==void 0?{order:p}:{},...i!==void 0&&typeof i=="number"?{flexGrow:i}:{},...s!==void 0&&typeof s=="number"?{flexShrink:s}:{},...g&&Xe?{backgroundColor:"rgba(0, 0, 0, 0.5)"}:{}};return {className:[g&&"absolute inset-0 w-full h-full flex",g&&y&&ie[y],g&&!y&&ie.center,n&&Oe[n],t&&We[t],r&&ke[r],o&&Ie[o],l&&"flex-wrap",i===true&&"grow",i===false&&"grow-0",s===true&&"shrink",s===false&&"shrink-0",a&&typeof a=="string"&&["auto","full"].includes(a)&&`basis-${a}`,v!==void 0&&`gap-${v}`,T!==void 0&&`gap-x-${T}`,R!==void 0&&`gap-y-${R}`,U?.class,V?.class,Q?.class,Z?.class,ee?.class,ne?.class,u("p",be),u("px",we),u("py",Ee),u("ps",Se),u("pe",Ce),u("pt",$e),u("pb",Me),f("m",Le),f("mx",ve),f("my",Te),f("ms",Re),f("me",He),f("mt",Pe),f("mb",Ne),P&&`bg-${P}`,N&&`text-${N}`,A!==void 0&&Ge[A],X&&Ke[X],J&&`border-${J}`,j&&Ye[j],D&&qe[D],z!==void 0&&`opacity-${z}`,Ae,_&&`overflow-${_}`,F&&`z-${F}`,O&&Ue[O],W&&Ve[W],k&&Qe[k],I&&Ze[I],B&&en[B],G&&`animate-duration-${G}`,Y&&`animate-delay-${Y}`,q&&nn[q],K&&tn[K],b===true&&"border-t",b==="horizontal"&&"border-t",b==="vertical"&&"border-s"].filter(Boolean).join(" "),style:Object.keys(te).length>0?te:void 0}}function L(e,n){return typeof e=="function"?e(n||{}):pn(e,n||{})}var Fn=L;function me(e){let n=document.createDocumentFragment();return x(e.children).forEach(r=>{r instanceof Node&&n.appendChild(r);}),n}var de=false;function mn(){if(de||typeof window>"u"||typeof MutationObserver>"u")return;de=true;let e=new MutationObserver(n=>{n.forEach(t=>{t.addedNodes.forEach(r=>{r instanceof Element&&un(r);});});});document.body?e.observe(document.body,{childList:true,subtree:true}):document.addEventListener("DOMContentLoaded",()=>{document.body&&e.observe(document.body,{childList:true,subtree:true});});}function un(e){if(e.hasAttribute("data-mine-onload")){let t=e.__onload;typeof t=="function"&&t(e);}e.querySelectorAll("[data-mine-onload]").forEach(t=>{let r=t.__onload;typeof r=="function"&&r(t);});}var C=new Set(["svg","path","circle","rect","line","polyline","polygon","ellipse","g","text","tspan","defs","clipPath","linearGradient","radialGradient","stop","mask","pattern","image","use","symbol","marker","foreignObject","animate","animateTransform","animateMotion","set","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","title","desc","metadata"]),$=new Set(["math","maction","maligngroup","malignmark","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mlongdiv","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mscarries","mscarry","msgroup","msline","mspace","msqrt","msrow","mstack","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","semantics","annotation","annotation-xml"]),ue="http://www.w3.org/2000/svg",fn="http://www.w3.org/1998/Math/MathML";function pn(e,n){n.as&&(e=n.as);let t;C.has(e)?t=document.createElementNS(ue,e):$.has(e)?t=document.createElementNS(fn,e):t=document.createElement(e);let r="dangerouslySetInnerHTML"in n&&n.dangerouslySetInnerHTML!=null&&typeof n.dangerouslySetInnerHTML=="object"&&"__html"in n.dangerouslySetInnerHTML&&typeof n.dangerouslySetInnerHTML.__html=="string",{className:o,style:l}=le(n);n.divider&&!n.role&&t.setAttribute("role","separator"),l&&!C.has(e)&&!$.has(e)&&M(t,l);let i=false;for(let[s,a]of Object.entries(n))if(!ae.has(s)&&s!=="as"){if(s==="children")r||gn(t,a);else if(s==="dangerouslySetInnerHTML")En(t,a);else if(s==="onload")t.__onload=a,t.setAttribute("data-mine-onload",""),mn();else if(s==="ref")hn(t,a);else if(s.startsWith("on"))xn(t,s,a);else if(s==="id")yn(t,a);else if(s==="htmlFor")bn(t,a);else if(s==="className"||s==="class")i=true,ce(t,a,o);else if(s==="style")wn(t,a);else if(signals.isSignal(a))Sn(t,s,a);else if(typeof a=="boolean")a&&t.setAttribute(s,"");else if(a!=null)if(C.has(e)||$.has(e)){let p=typeof a=="string"?h(a):String(a);t.setAttribute(s,p);}else if(s in t)t[s]=a;else {let p=typeof a=="string"?h(a):String(a);t.setAttribute(s,p);}}return !i&&o&&ce(t,o),t}function gn(e,n){x(n).forEach(r=>{if(r instanceof Node)e.appendChild(r);else if(signals.isSignal(r)){let o=document.createTextNode("");signals.effect(()=>{o.textContent=String(r());}),e.appendChild(o);}else r!=null&&r!==false&&e.appendChild(document.createTextNode(String(r)));});}function x(e){return e==null||e===false?[]:Array.isArray(e)?e.flatMap(x):[e]}function hn(e,n){signals.isSignal(n)?n.set(e):typeof n=="function"&&n(e);}function xn(e,n,t){if(typeof t!="function")return;let r=n.slice(2).toLowerCase();e.addEventListener(r,t);}function ce(e,n,t=""){let r=o=>{let l=t?`${t} ${o}`:o,i=oe(String(l));e.namespaceURI===ue?e.setAttribute("class",i):e.className=i;};signals.isSignal(n)?signals.effect(()=>{let o=n();o!=null?r(String(o)):t&&r("");}):n!=null&&r(String(n));}function yn(e,n){signals.isSignal(n)?signals.effect(()=>{let t=n();t!=null?e.id=String(t):e.removeAttribute("id");}):n!=null&&(e.id=String(n));}function bn(e,n){signals.isSignal(n)?signals.effect(()=>{let t=n();t!=null?e.setAttribute("for",String(t)):e.removeAttribute("for");}):n!=null&&e.setAttribute("for",String(n));}function wn(e,n){signals.isSignal(n)?signals.effect(()=>{let t=n();M(e,t);}):M(e,n);}function M(e,n){typeof n=="string"?e.style.cssText=n:typeof n=="object"&&n!=null&&Object.entries(n).forEach(([t,r])=>{if(r!=null){let o=t.replace(/[A-Z]/g,l=>`-${l.toLowerCase()}`);e.style.setProperty(o,String(r));}});}function En(e,n){if(n!=null&&typeof n=="object"&&"__html"in n){let t=n.__html;typeof t=="string"&&(e.innerHTML=t);}}function Sn(e,n,t){signals.effect(()=>{let r=t();if(r!=null)if(n in e)e[n]=r;else {let o=typeof r=="string"?h(r):String(r);e.setAttribute(n,o);}else e.removeAttribute(n);});}function On(e){return e}function Wn(e){return n=>e(n)()}function kn(e){let n=document.createDocumentFragment();return e.forEach(t=>{t instanceof Node&&n.appendChild(t);}),n}function In(e){if(signals.isSignal(e.when)){let n=document.createComment("show"),t=document.createDocumentFragment();t.appendChild(n);let r=null;return signals.effect(()=>{let o=e.when,l=o();l&&!r?(r=x(e.children)[0],r instanceof Node&&n.parentNode?.insertBefore(r,n)):!l&&r&&(r.remove(),r=null);}),t}else return e.when?L(me,{children:e.children}):null}function Bn(e){for(let n of e.children)if(signals.isSignal(n.when)?n.when():n.when)return L(me,{children:n.children});return null}function Gn(e){let n=document.createDocumentFragment();if(signals.isSignal(e.each)){let t=document.createElement("div");t.style.display="contents",signals.effect(()=>{let r=e.each,o=r();t.innerHTML="",o.forEach((l,i)=>{let s=e.children(l,i);s instanceof Node&&t.appendChild(s);});}),n.appendChild(t);}else e.each.forEach((r,o)=>{let l=e.children(r,o);l instanceof Node&&n.appendChild(l);});return n}
|
|
2
|
+
exports.ErrorBoundary=vn;exports.For=Gn;exports.Fragment=me;exports.Show=In;exports.Suspense=Tn;exports.Switch=Bn;exports.Teleport=Rn;exports.cleanClassName=oe;exports.component=On;exports.createElements=kn;exports.createPortal=De;exports.createRoot=Nn;exports.defineComponent=Wn;exports.hydrate=Mn;exports.isBrowser=Fe;exports.jsx=L;exports.jsxs=Fn;exports.lazy=Ln;exports.minifyHTML=Xn;exports.mount=$n;exports.normalizeString=h;exports.onDOMReady=Pn;exports.queueUpdate=Hn;exports.render=S;//# sourceMappingURL=index.cjs.map
|
|
3
3
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mod/render.ts","../src/mod/utils.ts","../src/mod/style.ts","../src/mod/runtime.ts"],"names":["updateQueue","isFlushPending","render","component","container","options","target","element","newElement","mount","createPortal","children","placeholder","hydrate","targetElement","lazy","loader","fallback","loadedComponent","loading","error","props","errorDiv","module","err","createLoadingElement","div","ErrorBoundary","Suspense","Teleport","queueUpdate","fn","flushUpdates","updates","isBrowser","onDOMReady","callback","createRoot","mounted","minifyHTML","html","normalizeString","value","CONFLICT_GROUPS","cleanClassName","tokens","seenGroups","result","i","token","matchedGroup","g","overlayPositionClassMap","displayClassMap","directionClassMap","alignClassMap","justifyClassMap","maxWidthClassMap","borderWidthClassMap","radiusClassMap","shadowClassMap","spacingClass","prefix","marginClass","SCALE","FRACTIONS","W_KEYWORDS","H_KEYWORDS","MIN_W_KEYWORDS","MAX_W_KEYWORDS","MIN_H_KEYWORDS","MAX_H_KEYWORDS","resolveSize","key","val","map","STYLE_PROPS","resolveStyleProps","display","direction","align","justify","wrap","gap","gapX","gapY","w","h","minW","minH","maxW","maxH","p","px","py","ps","pe","pt","pb","m","mx","my","ms","me","mt","mb","bg","color","border","borderColor","radius","shadow","position","overflow","zIndex","overlay","location","backdrop","wRes","hRes","minWRes","minHRes","maxWRes","maxHRes","computedStyle","jsx","type","createHTMLElement","jsxs","Fragment","fragment","normalizeChildren","child","observerInitialized","initOnLoadObserver","observer","mutations","mutation","node","checkOnLoad","handler","SVG_ELEMENTS","MATHML_ELEMENTS","SVG_NAMESPACE","MATHML_NAMESPACE","hasValidDangerouslySetInnerHTML","containerClass","containerStyle","applyStyles","handledClass","appendChildren","handleDangerouslySetInnerHTML","handleRef","handleEvent","handleId","handleHtmlFor","handleClassName","handleStyle","isSignal","handleReactiveProp","attrValue","parent","textNode","effect","ref","eventName","event","baseClass","setClass","fullClass","cleaned","className","id","styles","cssKey","signal","defineComponent","setup","createElements","elements","el","Show","currentElement","when","condition","Switch","caseItem","For","each","items","item","index"],"mappings":"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","file":"index.cjs","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\n// src/mod/render.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement, RenderOptions, MountedComponent } from '../types';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ INIT ════════════════════════════════════════╗\r\n\r\n let updateQueue: (() => void)[] = [];\r\n let isFlushPending = false;\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n /**\r\n * Render a component to the DOM\r\n * @param component - Component or JSX element to render\r\n * @param container - DOM element or selector to mount to\r\n * @param options - Rendering options (mode, callbacks)\r\n * @returns MountedComponent with unmount and update methods\r\n * @throws Error if container not found or component returns null\r\n * @example\r\n * const el = jsx('div', { children: 'Hello' });\r\n * render(el, document.body);\r\n */\r\n export function render(\r\n component: JSXElement | (() => JSXElement),\r\n container: HTMLElement | string,\r\n options: RenderOptions = {}\r\n ): MountedComponent {\r\n // Resolve container\r\n const target = typeof container === 'string'\r\n ? document.querySelector(container)\r\n : container;\r\n\r\n if (!target) {\r\n throw new Error(`Container not found: ${container}`);\r\n }\r\n\r\n // Get element from component\r\n const element = typeof component === 'function' ? component() : component;\r\n\r\n if (!element) {\r\n throw new Error('Component returned null or undefined');\r\n }\r\n\r\n // Mount to DOM based on mode\r\n const mode = options.mode || 'replace';\r\n\r\n switch (mode) {\r\n case 'replace':\r\n target.innerHTML = '';\r\n target.appendChild(element as Node);\r\n break;\r\n\r\n case 'append':\r\n target.appendChild(element as Node);\r\n break;\r\n\r\n case 'prepend':\r\n target.insertBefore(element as Node, target.firstChild);\r\n break;\r\n\r\n default:\r\n // Invalid mode, fall back to replace\r\n target.innerHTML = '';\r\n target.appendChild(element as Node);\r\n }\r\n\r\n // Call onMount callback\r\n options.onMount?.();\r\n\r\n // Return mounted component interface\r\n return {\r\n element: element as Element | DocumentFragment,\r\n\r\n unmount: () => {\r\n if (element instanceof Element) {\r\n element.remove();\r\n } else if (element instanceof DocumentFragment) {\r\n // DocumentFragment doesn't have remove method, remove all children\r\n while (element.firstChild) {\r\n element.removeChild(element.firstChild);\r\n }\r\n }\r\n options.onUnmount?.();\r\n },\r\n\r\n update: (newElement: JSXElement) => {\r\n if (element instanceof Element && newElement instanceof Element) {\r\n element.replaceWith(newElement);\r\n } else if (newElement instanceof Element) {\r\n // If current is DocumentFragment and new is Element\r\n if (element instanceof DocumentFragment && element.parentNode) {\r\n element.parentNode.replaceChild(newElement, element);\r\n }\r\n }\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Simple mount function (alias for render with replace mode)\r\n */\r\n export function mount(\r\n component: JSXElement | (() => JSXElement),\r\n container: HTMLElement | string\r\n ): MountedComponent {\r\n return render(component, container, { mode: 'replace' });\r\n }\r\n\r\n /**\r\n * Render component to a different location in the DOM\r\n */\r\n export function createPortal(\r\n children: JSXElement,\r\n container: HTMLElement | string\r\n ): JSXElement {\r\n const target = typeof container === 'string'\r\n ? document.querySelector(container)\r\n : container;\r\n\r\n if (!target) {\r\n throw new Error(`Portal container not found: ${container}`);\r\n }\r\n\r\n // Create a placeholder comment\r\n const placeholder = document.createComment('portal');\r\n\r\n // Mount children to target\r\n if (children instanceof Node) {\r\n target.appendChild(children);\r\n }\r\n\r\n return placeholder as any;\r\n }\r\n\r\n /**\r\n * Hydrate server-rendered HTML with client-side interactivity\r\n * @param component - Component to hydrate\r\n * @param container - Container with server-rendered HTML\r\n */\r\n export function hydrate(\r\n component: JSXElement | (() => JSXElement),\r\n container: HTMLElement | string\r\n ): MountedComponent {\r\n const targetElement = typeof container === 'string'\r\n ? document.querySelector(container)\r\n : container;\r\n\r\n const target = targetElement instanceof HTMLElement ? targetElement : null;\r\n\r\n if (!target) {\r\n throw new Error(`Container not found: ${container}`);\r\n }\r\n\r\n // For now, just replace (future: smart hydration)\r\n return render(component, target, { mode: 'replace' });\r\n }\r\n\r\n /**\r\n * Lazy load a component with dynamic imports\r\n * @param loader - Async function that returns a component module\r\n * @param fallback - Element to show while loading (optional)\r\n * @returns A component that renders loaded component or fallback/error state\r\n * @example\r\n * const LazyComponent = lazy(() => import('./Component'), <div>Loading...</div>);\r\n */\r\n export function lazy<P = any>(\r\n loader: () => Promise<{ default: (props: P) => JSXElement }>,\r\n fallback?: JSXElement\r\n ): (props: P) => JSXElement {\r\n let loadedComponent: ((props: P) => JSXElement) | null = null;\r\n let loading = false;\r\n let error: Error | null = null;\r\n\r\n return (props: P) => {\r\n // If already loaded, return component\r\n if (loadedComponent) {\r\n return loadedComponent(props);\r\n }\r\n\r\n // If error occurred, show error\r\n if (error) {\r\n const errorDiv = document.createElement('div');\r\n errorDiv.className = 'crux-lazy-error';\r\n errorDiv.textContent = `Error loading component: ${error.message}`;\r\n errorDiv.style.color = 'red';\r\n return errorDiv;\r\n }\r\n\r\n // If not loading yet, start loading\r\n if (!loading) {\r\n loading = true;\r\n\r\n loader()\r\n .then(module => {\r\n loadedComponent = module.default;\r\n // TODO: Trigger re-render when loaded\r\n })\r\n .catch(err => {\r\n error = err instanceof Error ? err : new Error(String(err));\r\n // TODO: Trigger re-render on error\r\n });\r\n }\r\n\r\n // Show fallback while loading\r\n return fallback || createLoadingElement();\r\n };\r\n }\r\n\r\n function createLoadingElement(): HTMLElement {\r\n const div = document.createElement('div');\r\n div.textContent = 'Loading...';\r\n return div;\r\n }\r\n\r\n /**\r\n * Error boundary component\r\n */\r\n export function ErrorBoundary(props: {\r\n fallback: (error: Error) => JSXElement\r\n children: JSXElement\r\n }): JSXElement {\r\n try {\r\n return props.children;\r\n } catch (error) {\r\n return props.fallback(error as Error);\r\n }\r\n }\r\n\r\n /**\r\n * Suspense component for handling loading states\r\n */\r\n export function Suspense(props: {\r\n fallback: JSXElement\r\n children: JSXElement | Promise<JSXElement>\r\n }): JSXElement {\r\n if (props.children instanceof Promise) {\r\n // Create container for async content\r\n const container = document.createElement('div');\r\n container.style.display = 'contents';\r\n\r\n // Show fallback first\r\n if (props.fallback instanceof Node) {\r\n container.appendChild(props.fallback);\r\n }\r\n\r\n // Load actual content\r\n props.children.then(element => {\r\n container.innerHTML = '';\r\n if (element instanceof Node) {\r\n container.appendChild(element);\r\n }\r\n });\r\n\r\n return container;\r\n } else {\r\n return props.children;\r\n }\r\n }\r\n\r\n /**\r\n * Teleport component (like Vue's Teleport)\r\n */\r\n export function Teleport(props: {\r\n to: string | HTMLElement\r\n children: JSXElement\r\n }): JSXElement {\r\n return createPortal(props.children, props.to);\r\n }\r\n\r\n /**\r\n * Queue a DOM update to be batched\r\n */\r\n export function queueUpdate(fn: () => void): void {\r\n updateQueue.push(fn);\r\n\r\n if (!isFlushPending) {\r\n isFlushPending = true;\r\n queueMicrotask(flushUpdates);\r\n }\r\n }\r\n\r\n /**\r\n * Flush all queued updates\r\n */\r\n function flushUpdates(): void {\r\n const updates = updateQueue;\r\n updateQueue = [];\r\n isFlushPending = false;\r\n\r\n updates.forEach(fn => fn());\r\n }\r\n\r\n // ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n // ╔════════════════════════════════════════ HELP ════════════════════════════════════════╗\r\n\r\n /**\r\n * Check if code is running in browser\r\n */\r\n export function isBrowser(): boolean {\r\n return typeof window !== 'undefined' && typeof document !== 'undefined';\r\n }\r\n\r\n /**\r\n * Wait for DOM to be ready\r\n */\r\n export function onDOMReady(callback: () => void): void {\r\n if (isBrowser()) {\r\n if (document.readyState === 'loading') {\r\n document.addEventListener('DOMContentLoaded', callback);\r\n } else {\r\n callback();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Create a root for rendering\r\n */\r\n export function createRoot(container: HTMLElement | string) {\r\n const target = typeof container === 'string'\r\n ? document.querySelector(container)\r\n : container;\r\n\r\n if (!target || !(target instanceof HTMLElement)) {\r\n throw new Error(`Root container not found: ${container}`);\r\n }\r\n\r\n let mounted: MountedComponent | null = null;\r\n\r\n return {\r\n render(component: JSXElement | (() => JSXElement)) {\r\n if (mounted) {\r\n mounted.unmount();\r\n }\r\n mounted = render(component, target);\r\n },\r\n\r\n unmount() {\r\n if (mounted) {\r\n mounted.unmount();\r\n mounted = null;\r\n }\r\n }\r\n };\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝","// src/mod/utils.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n /**\r\n * Minify HTML string by removing excess whitespace\r\n * Collapses multiple spaces, tabs, and newlines into single spaces\r\n * Removes leading/trailing whitespace from text nodes\r\n * @param html - HTML string to minify\r\n * @returns Minified HTML string\r\n */\r\n export function minifyHTML(html: string): string {\r\n // Collapse multiple whitespace characters (spaces, tabs, newlines) into single space\r\n return html\r\n .replace(/\\s+/g, ' ') // Replace multiple whitespace with single space\r\n .replace(/>\\s+</g, '><') // Remove spaces between closing and opening tags\r\n .trim(); // Remove leading/trailing whitespace\r\n }\r\n\r\n /**\r\n * Normalize a string value by removing excess whitespace\r\n * Useful for class names, ids, and other attributes with multi-line definitions\r\n * @param value - String value to normalize\r\n * @returns Normalized string with collapsed whitespace\r\n */\r\n export function normalizeString(value: string): string {\r\n return value\r\n .replace(/\\s+/g, ' ') // Collapse multiple whitespace into single space\r\n .trim(); // Remove leading/trailing whitespace\r\n }\r\n\r\n // Regex patterns for class groups that should be mutually exclusive\r\n // The order matters for partial matches, though we try to use strict patterns where possible.\r\n const CONFLICT_GROUPS = [\r\n // Layout\r\n /^display-(.+)$/, \r\n /^(block|inline-block|inline|flex|inline-flex|grid|inline-grid|table|table-row|table-cell|flow-root|contents|hidden)$/,\r\n /^(static|fixed|absolute|relative|sticky)$/,\r\n /^inset-(.+)$/,\r\n /^inset-x-(.+)$/,\r\n /^inset-y-(.+)$/,\r\n /^start-(.+)$/,\r\n /^end-(.+)$/,\r\n /^top-(.+)$/,\r\n /^bottom-(.+)$/,\r\n /^z-(.+)$/,\r\n\r\n // Flex/Grid\r\n /^flex-(row|col)(-reverse)?$/,\r\n /^flex-(wrap|nowrap)(-reverse)?$/,\r\n /^flex-(1|auto|initial|none)$/,\r\n /^basis-(.+)$/,\r\n /^grow(-0)?$/,\r\n /^shrink(-0)?$/,\r\n /^order-(.+)$/,\r\n /^gap-(\\d+)$/, // gap-4\r\n /^gap-x-(.+)$/,\r\n /^gap-y-(.+)$/,\r\n /^justify-items-(.+)$/,\r\n /^justify-self-(.+)$/,\r\n /^justify-(start|end|center|between|around|evenly|stretch)$/, // justify-content\r\n /^content-(.+)$/, // align-content\r\n /^items-(.+)$/, // align-items\r\n /^self-(.+)$/, // align-self\r\n /^place-content-(.+)$/,\r\n /^place-items-(.+)$/,\r\n /^place-self-(.+)$/,\r\n /^grid-cols-(.+)$/,\r\n /^col-span-(.+)$/,\r\n /^col-start-(.+)$/,\r\n /^col-end-(.+)$/,\r\n /^grid-rows-(.+)$/,\r\n /^row-span-(.+)$/,\r\n /^row-start-(.+)$/,\r\n /^row-end-(.+)$/,\r\n /^grid-flow-(.+)$/,\r\n\r\n // Spacing\r\n /^p-(.+)$/,\r\n /^px-(.+)$/,\r\n /^py-(.+)$/,\r\n /^pt-(.+)$/,\r\n /^pb-(.+)$/,\r\n /^ps-(.+)$/,\r\n /^pe-(.+)$/,\r\n /^m-(.+)$/,\r\n /^mx-(.+)$/,\r\n /^my-(.+)$/,\r\n /^mt-(.+)$/,\r\n /^mb-(.+)$/,\r\n /^ms-(.+)$/,\r\n /^me-(.+)$/,\r\n\r\n // Sizing\r\n /^w-(.+)$/,\r\n /^min-w-(.+)$/,\r\n /^max-w-(.+)$/,\r\n /^h-(.+)$/,\r\n /^min-h-(.+)$/,\r\n /^max-h-(.+)$/,\r\n\r\n // Typography\r\n /^font-(sans|serif|mono)$/,\r\n /^font-(thin|extralight|light|normal|medium|semibold|bold|extrabold|black)$/,\r\n /^text-(xs|sm|base|md|lg|xl|\\d+xl)$/, // Font size\r\n /^leading-(.+)$/,\r\n /^tracking-(.+)$/,\r\n /^text-(left|center|right|justify|start|end)$/, // Text align\r\n /^text-(wrap|nowrap|balance|pretty)$/,\r\n /^(truncate|text-ellipsis|text-clip)$/,\r\n /^(uppercase|lowercase|capitalize|normal-case)$/,\r\n /^(italic|not-italic)$/,\r\n /^(underline|overline|line-through|no-underline)$/,\r\n /^text-(?!left|center|right|justify|start|end|xs|sm|base|md|lg|xl|\\d+xl|wrap|nowrap|balance|pretty|ellipsis|clip).+$/, // Text color\r\n\r\n // Background & Effects\r\n /^bg-(?!blend).+$/, // Background color\r\n /^bg-blend-(.+)$/,\r\n /^mix-blend-(.+)$/,\r\n /^shadow(.*)$/,\r\n /^opacity-(.+)$/,\r\n /^blur(.*)$/,\r\n /^brightness-(.+)$/,\r\n /^contrast-(.+)$/,\r\n /^grayscale(.*)$/,\r\n /^invert(.*)$/,\r\n /^saturate-(.+)$/,\r\n /^sepia(.*)$/,\r\n /^hue-rotate-(.+)$/,\r\n /^backdrop-blur(.*)$/,\r\n /^transition(.*)$/\r\n ];\r\n\r\n /**\r\n * Clean up class names by removing duplicates and keeping the latest one.\r\n * Handles conflict groups (e.g., 'justify-start' overrides 'justify-center').\r\n * @param value - Class name string\r\n * @returns Cleaned class name string\r\n */\r\n export function cleanClassName(value: string): string {\r\n const tokens = value.trim().split(/\\s+/);\r\n // optimization: if 0 or 1 token, just return trimmed\r\n if (tokens.length <= 1 && tokens[0] === '') return '';\r\n if (tokens.length === 1) return tokens[0];\r\n\r\n const seenGroups = new Set<number | string>();\r\n const result: string[] = [];\r\n\r\n // Iterate backwards to keep latest\r\n for (let i = tokens.length - 1; i >= 0; i--) {\r\n const token = tokens[i];\r\n if (!token) continue;\r\n\r\n let matchedGroup: number | string = token; // Default to token itself (exact match dedupe)\r\n\r\n // Check if token belongs to a known conflict group\r\n for (let g = 0; g < CONFLICT_GROUPS.length; g++) {\r\n if (CONFLICT_GROUPS[g].test(token)) {\r\n matchedGroup = g;\r\n break;\r\n }\r\n }\r\n\r\n if (!seenGroups.has(matchedGroup)) {\r\n seenGroups.add(matchedGroup);\r\n result.push(token);\r\n }\r\n }\r\n\r\n return result.reverse().join(' ');\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","\r\nimport type {\r\n ContainerProps,\r\n ContainerDisplay,\r\n ContainerDirection,\r\n ContainerAlign,\r\n ContainerJustify,\r\n ContainerMaxWidth,\r\n ContainerBorderWidth,\r\n ContainerRadius,\r\n ContainerShadow,\r\n ContainerSpace,\r\n ContainerSpaceOrAuto,\r\n OverlayPosition\r\n} from '../types';\r\n\r\n// ╔════════════════════════════════════════ MAPS ════════════════════════════════════════╗\r\n\r\nconst overlayPositionClassMap: Record<OverlayPosition, string> = {\r\n 'center': 'justify-center items-center',\r\n 'top': 'justify-center items-start',\r\n 'bottom': 'justify-center items-end',\r\n 'left': 'justify-start items-center',\r\n 'right': 'justify-end items-center',\r\n 'top-left': 'justify-start items-start',\r\n 'top-right': 'justify-end items-start',\r\n 'bottom-left': 'justify-start items-end',\r\n 'bottom-right': 'justify-end items-end',\r\n};\r\n\r\nconst displayClassMap: Record<ContainerDisplay, string> = {\r\n block: 'block',\r\n 'inline-block': 'inline-block',\r\n flex: 'flex',\r\n 'inline-flex': 'inline-flex',\r\n grid: 'grid',\r\n 'inline-grid': 'inline-grid'\r\n};\r\n\r\nconst directionClassMap: Record<ContainerDirection, string> = {\r\n row: 'flex-row',\r\n 'row-reverse': 'flex-row-reverse',\r\n column: 'flex-col',\r\n 'column-reverse': 'flex-col-reverse'\r\n};\r\n\r\nconst alignClassMap: Record<ContainerAlign, string> = {\r\n start: 'items-start',\r\n center: 'items-center',\r\n end: 'items-end',\r\n stretch: 'items-stretch',\r\n baseline: 'items-baseline'\r\n};\r\n\r\nconst justifyClassMap: Record<ContainerJustify, string> = {\r\n start: 'justify-start',\r\n center: 'justify-center',\r\n end: 'justify-end',\r\n between: 'justify-between',\r\n around: 'justify-around',\r\n evenly: 'justify-evenly'\r\n};\r\n\r\nconst maxWidthClassMap: Record<ContainerMaxWidth, string> = {\r\n xs: 'max-w-xs',\r\n sm: 'max-w-sm',\r\n md: 'max-w-md',\r\n lg: 'max-w-lg',\r\n xl: 'max-w-xl',\r\n '2xl': 'max-w-2xl',\r\n '3xl': 'max-w-3xl',\r\n '4xl': 'max-w-4xl',\r\n '5xl': 'max-w-5xl',\r\n '6xl': 'max-w-6xl',\r\n '7xl': 'max-w-7xl',\r\n full: 'max-w-full',\r\n min: 'max-w-min',\r\n max: 'max-w-max',\r\n fit: 'max-w-fit',\r\n none: 'max-w-none',\r\n prose: 'max-w-prose'\r\n};\r\n\r\nconst borderWidthClassMap: Record<ContainerBorderWidth, string> = {\r\n 0: 'border-0',\r\n 1: 'border',\r\n 2: 'border-2',\r\n 4: 'border-4',\r\n 8: 'border-8'\r\n};\r\n\r\nconst radiusClassMap: Record<ContainerRadius, string> = {\r\n none: 'rounded-none',\r\n sm: 'rounded-sm',\r\n base: 'rounded',\r\n md: 'rounded-md',\r\n lg: 'rounded-lg',\r\n xl: 'rounded-xl',\r\n '2xl': 'rounded-2xl',\r\n '3xl': 'rounded-3xl',\r\n full: 'rounded-full'\r\n};\r\n\r\nconst shadowClassMap: Record<ContainerShadow, string> = {\r\n none: 'shadow-none',\r\n xs: 'shadow-xs',\r\n sm: 'shadow-sm',\r\n md: 'shadow-md',\r\n lg: 'shadow-lg',\r\n xl: 'shadow-xl',\r\n inner: 'shadow-inner'\r\n};\r\n\r\n// ╔════════════════════════════════════════ HELP ════════════════════════════════════════╗\r\n\r\nfunction spacingClass(prefix: string, value: ContainerSpace | undefined): string | undefined {\r\n if (value === undefined) return undefined;\r\n return `${prefix}-${value}`;\r\n}\r\n\r\nfunction marginClass(prefix: string, value: ContainerSpaceOrAuto | undefined): string | undefined {\r\n if (value === undefined) return undefined;\r\n if (value === 'auto') return `${prefix}-auto`;\r\n return `${prefix}-${value}`;\r\n}\r\n\r\nconst SCALE = new Set([\r\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 20, 24, 28, 32, 36, 40, 48, 56, 64\r\n]);\r\nconst FRACTIONS = new Set(['1/2', '1/3', '2/3', '1/4', '2/4', '3/4', '1/5', '2/5', '3/5', '4/5', '1/6', '5/6', '1/12']);\r\n\r\nconst W_KEYWORDS = new Set(['auto', 'full', 'screen', 'min', 'max', 'fit']);\r\nconst H_KEYWORDS = new Set(['auto', 'full', 'screen', 'min', 'max', 'fit']);\r\nconst MIN_W_KEYWORDS = new Set(['0', 'full', 'min', 'max', 'fit']);\r\nconst MAX_W_KEYWORDS = new Set(['none', 'full', 'min', 'max', 'fit']);\r\nconst MIN_H_KEYWORDS = new Set(['0', 'full', 'screen', 'min', 'max', 'fit']);\r\nconst MAX_H_KEYWORDS = new Set(['none', 'full', 'screen', 'min', 'max', 'fit']);\r\n\r\nconst resolveSize = (\r\n key: 'w' | 'h' | 'min-w' | 'min-h' | 'max-w' | 'max-h',\r\n val: string | number | undefined,\r\n map?: Record<string, string>\r\n) => {\r\n if (val === undefined) return null;\r\n\r\n // Check map first (e.g. max-w-xs)\r\n if (map && val in map) {\r\n return { class: map[val] };\r\n }\r\n\r\n // Check numeric scale\r\n if (typeof val === 'number' && SCALE.has(val)) {\r\n return { class: `${key}-${val}` };\r\n }\r\n\r\n // Check fractions (only for w, h)\r\n if ((key === 'w' || key === 'h') && FRACTIONS.has(val as string)) {\r\n return { class: `${key}-${val}` };\r\n }\r\n\r\n // Check keywords\r\n const keywords =\r\n key === 'w' ? W_KEYWORDS :\r\n key === 'h' ? H_KEYWORDS :\r\n key === 'min-w' ? MIN_W_KEYWORDS :\r\n key === 'min-h' ? MIN_H_KEYWORDS :\r\n key === 'max-w' ? MAX_W_KEYWORDS :\r\n MAX_H_KEYWORDS;\r\n\r\n if (keywords.has(val as string)) {\r\n return { class: `${key}-${val}` };\r\n }\r\n\r\n // Also check scale for min/max props (we added loops to SCSS)\r\n if (['min-w', 'max-w', 'min-h', 'max-h'].includes(key) && typeof val === 'number' && SCALE.has(val)) {\r\n return { class: `${key}-${val}` };\r\n }\r\n\r\n // Fallback to inline style\r\n const styleProp =\r\n key === 'w' ? 'width' :\r\n key === 'h' ? 'height' :\r\n key === 'min-w' ? 'minWidth' :\r\n key === 'min-h' ? 'minHeight' :\r\n key === 'max-w' ? 'maxWidth' :\r\n 'maxHeight';\r\n\r\n return { style: { [styleProp]: val } };\r\n};\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\nexport const STYLE_PROPS = new Set([\r\n 'display', 'direction', 'align', 'justify', 'wrap',\r\n 'gap', 'gapX', 'gapY',\r\n 'w', 'h', 'minW', 'minH', 'maxW', 'maxH',\r\n 'p', 'px', 'py', 'ps', 'pe', 'pt', 'pb',\r\n 'm', 'mx', 'my', 'ms', 'me', 'mt', 'mb',\r\n 'bg', 'color', 'border', 'borderColor', 'radius', 'shadow',\r\n 'position', 'overflow', 'zIndex',\r\n 'overlay', 'location', 'backdrop'\r\n]);\r\n\r\nexport function resolveStyleProps(props: ContainerProps): { className: string; style: any } {\r\n const {\r\n display,\r\n direction,\r\n align,\r\n justify,\r\n wrap,\r\n gap,\r\n gapX,\r\n gapY,\r\n w,\r\n h,\r\n minW,\r\n minH,\r\n maxW,\r\n maxH,\r\n p,\r\n px,\r\n py,\r\n ps,\r\n pe,\r\n pt,\r\n pb,\r\n m,\r\n mx,\r\n my,\r\n ms,\r\n me,\r\n mt,\r\n mb,\r\n bg,\r\n color,\r\n border,\r\n borderColor,\r\n radius,\r\n shadow,\r\n position,\r\n overflow,\r\n zIndex,\r\n overlay,\r\n location,\r\n backdrop,\r\n } = props;\r\n\r\n const wRes = resolveSize('w', w);\r\n const hRes = resolveSize('h', h);\r\n const minWRes = resolveSize('min-w', minW);\r\n const minHRes = resolveSize('min-h', minH);\r\n const maxWRes = resolveSize('max-w', maxW, maxWidthClassMap);\r\n const maxHRes = resolveSize('max-h', maxH);\r\n\r\n const computedStyle = {\r\n ...wRes?.style,\r\n ...hRes?.style,\r\n ...minWRes?.style,\r\n ...minHRes?.style,\r\n ...maxWRes?.style,\r\n ...maxHRes?.style,\r\n ...(overlay && backdrop ? { backgroundColor: 'rgba(0, 0, 0, 0.5)' } : {})\r\n };\r\n\r\n const classes = [\r\n overlay && 'absolute inset-0 w-full h-full flex',\r\n overlay && location && overlayPositionClassMap[location],\r\n // Default to center if overlay is true but no location provided?\r\n // The original kit defaulted to center.\r\n overlay && !location && overlayPositionClassMap['center'],\r\n \r\n display && displayClassMap[display],\r\n direction && directionClassMap[direction],\r\n align && alignClassMap[align],\r\n justify && justifyClassMap[justify],\r\n wrap && 'flex-wrap',\r\n gap !== undefined && `gap-${gap}`,\r\n gapX !== undefined && `gap-x-${gapX}`,\r\n gapY !== undefined && `gap-y-${gapY}`,\r\n wRes?.class,\r\n hRes?.class,\r\n minWRes?.class,\r\n minHRes?.class,\r\n maxWRes?.class,\r\n maxHRes?.class,\r\n spacingClass('p', p),\r\n spacingClass('px', px),\r\n spacingClass('py', py),\r\n spacingClass('ps', ps),\r\n spacingClass('pe', pe),\r\n spacingClass('pt', pt),\r\n spacingClass('pb', pb),\r\n marginClass('m', m),\r\n marginClass('mx', mx),\r\n marginClass('my', my),\r\n marginClass('ms', ms),\r\n marginClass('me', me),\r\n marginClass('mt', mt),\r\n marginClass('mb', mb),\r\n bg && `bg-${bg}`,\r\n color && `text-${color}`,\r\n border !== undefined && borderWidthClassMap[border],\r\n borderColor && `border-${borderColor}`,\r\n radius && radiusClassMap[radius],\r\n shadow && shadowClassMap[shadow],\r\n position,\r\n overflow && `overflow-${overflow}`,\r\n zIndex && `z-${zIndex}`,\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n\r\n return {\r\n className: classes,\r\n style: Object.keys(computedStyle).length > 0 ? computedStyle : undefined\r\n };\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n// src/mod/runtime.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import { effect, isSignal, type Signal } from '@minejs/signals';\r\n import type { JSXElement, JSXProps, ComponentFunction } from '../types';\r\n import { normalizeString, cleanClassName } from './utils';\r\n import { resolveStyleProps, STYLE_PROPS } from './style';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n /**\r\n * Creates a DOM element from JSX\r\n * This is called automatically by TypeScript when it sees JSX syntax\r\n */\r\n export function jsx(\r\n type: string | ComponentFunction,\r\n props: JSXProps | null\r\n ): JSXElement | null {\r\n // Handle component (function)\r\n if (typeof type === 'function') {\r\n return type(props || {});\r\n }\r\n\r\n // Handle HTML element (string)\r\n return createHTMLElement(type, props || {});\r\n }\r\n\r\n /**\r\n * Same as jsx() but for elements with multiple children\r\n * (Used by TypeScript JSX transform)\r\n */\r\n export const jsxs = jsx;\r\n\r\n /**\r\n * Fragment component (like React.Fragment)\r\n */\r\n export function Fragment(props: { children?: any }): DocumentFragment {\r\n const fragment = document.createDocumentFragment();\r\n const children = normalizeChildren(props.children);\r\n\r\n children.forEach(child => {\r\n if (child instanceof Node) {\r\n fragment.appendChild(child);\r\n }\r\n });\r\n\r\n return fragment;\r\n }\r\n\r\n // ============================================================================\r\n // DOM OBSERVER (onload support)\r\n // ============================================================================\r\n\r\n let observerInitialized = false;\r\n\r\n function initOnLoadObserver() {\r\n if (observerInitialized) return;\r\n if (typeof window === 'undefined' || typeof MutationObserver === 'undefined') return;\r\n\r\n observerInitialized = true;\r\n\r\n const observer = new MutationObserver((mutations) => {\r\n mutations.forEach((mutation) => {\r\n mutation.addedNodes.forEach((node) => {\r\n if (node instanceof Element) {\r\n checkOnLoad(node);\r\n }\r\n });\r\n });\r\n });\r\n\r\n if (document.body) {\r\n observer.observe(document.body, { childList: true, subtree: true });\r\n } else {\r\n document.addEventListener('DOMContentLoaded', () => {\r\n if (document.body) {\r\n observer.observe(document.body, { childList: true, subtree: true });\r\n }\r\n });\r\n }\r\n }\r\n\r\n function checkOnLoad(element: Element) {\r\n if (element.hasAttribute('data-mine-onload')) {\r\n const handler = (element as any)['__onload'];\r\n if (typeof handler === 'function') {\r\n handler(element);\r\n }\r\n }\r\n\r\n const children = element.querySelectorAll('[data-mine-onload]');\r\n children.forEach((child) => {\r\n const handler = (child as any)['__onload'];\r\n if (typeof handler === 'function') {\r\n handler(child);\r\n }\r\n });\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ ════ ════════════════════════════════════════╗\r\n\r\n // ============================================================================\r\n // HTML ELEMENT CREATION\r\n // ============================================================================\r\n\r\n // SVG elements that need to be created with createElementNS\r\n const SVG_ELEMENTS = new Set([\r\n 'svg', 'path', 'circle', 'rect', 'line', 'polyline', 'polygon',\r\n 'ellipse', 'g', 'text', 'tspan', 'defs', 'clipPath', 'linearGradient',\r\n 'radialGradient', 'stop', 'mask', 'pattern', 'image', 'use', 'symbol',\r\n 'marker', 'foreignObject', 'animate', 'animateTransform', 'animateMotion',\r\n 'set', 'filter', 'feBlend', 'feColorMatrix', 'feComponentTransfer',\r\n 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap',\r\n 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR',\r\n 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology',\r\n 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile',\r\n 'feTurbulence', 'title', 'desc', 'metadata'\r\n ]);\r\n\r\n // MathML elements that need to be created with createElementNS\r\n const MATHML_ELEMENTS = new Set([\r\n 'math', 'maction', 'maligngroup', 'malignmark', 'menclose', 'merror',\r\n 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mlongdiv',\r\n 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom',\r\n 'mroot', 'mrow', 'ms', 'mscarries', 'mscarry', 'msgroup', 'msline',\r\n 'mspace', 'msqrt', 'msrow', 'mstack', 'mstyle', 'msub', 'msup',\r\n 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover',\r\n 'semantics', 'annotation', 'annotation-xml'\r\n ]);\r\n\r\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\r\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\r\n\r\n function createHTMLElement(type: string, props: JSXProps): Element {\r\n // Handle 'as' prop to change the element type\r\n if (props.as) {\r\n type = props.as;\r\n }\r\n\r\n // Determine namespace and create element appropriately\r\n let element: Element;\r\n\r\n if (SVG_ELEMENTS.has(type)) {\r\n element = document.createElementNS(SVG_NAMESPACE, type);\r\n } else if (MATHML_ELEMENTS.has(type)) {\r\n element = document.createElementNS(MATHML_NAMESPACE, type);\r\n } else {\r\n element = document.createElement(type);\r\n }\r\n\r\n // Check if dangerouslySetInnerHTML is present and valid - it takes precedence over children\r\n const hasValidDangerouslySetInnerHTML = 'dangerouslySetInnerHTML' in props\r\n && props.dangerouslySetInnerHTML != null\r\n && typeof props.dangerouslySetInnerHTML === 'object'\r\n && '__html' in props.dangerouslySetInnerHTML\r\n && typeof props.dangerouslySetInnerHTML.__html === 'string';\r\n\r\n // Resolve container props (style props)\r\n const { className: containerClass, style: containerStyle } = resolveStyleProps(props);\r\n\r\n // Apply container styles immediately (as base)\r\n if (containerStyle && !SVG_ELEMENTS.has(type) && !MATHML_ELEMENTS.has(type)) {\r\n applyStyles(element as HTMLElement, containerStyle);\r\n }\r\n\r\n let handledClass = false;\r\n\r\n // Set properties and attributes\r\n for (const [key, value] of Object.entries(props)) {\r\n // Skip container style props as they are already handled\r\n if (STYLE_PROPS.has(key)) continue;\r\n\r\n // Skip 'as' prop as it's handled above\r\n if (key === 'as') continue;\r\n\r\n if (key === 'children') {\r\n // Skip children if dangerouslySetInnerHTML is present and valid\r\n if (!hasValidDangerouslySetInnerHTML) {\r\n appendChildren(element, value);\r\n }\r\n } else if (key === 'dangerouslySetInnerHTML') {\r\n // Handle dangerouslySetInnerHTML - inject raw HTML\r\n handleDangerouslySetInnerHTML(element as HTMLElement, value);\r\n } else if (key === 'onload') {\r\n // Handle onload lifecycle event\r\n (element as any)['__onload'] = value;\r\n element.setAttribute('data-mine-onload', '');\r\n initOnLoadObserver();\r\n } else if (key === 'ref') {\r\n // Handle ref\r\n handleRef(element as HTMLElement, value);\r\n } else if (key.startsWith('on')) {\r\n // Handle events (onClick, onInput, etc)\r\n handleEvent(element, key, value);\r\n } else if (key === 'id') {\r\n // Handle id\r\n handleId(element, value);\r\n } else if (key === 'htmlFor') {\r\n // Handle htmlFor -> for\r\n handleHtmlFor(element, value);\r\n } else if (key === 'className' || key === 'class') {\r\n // Handle className/class\r\n handledClass = true;\r\n handleClassName(element, value, containerClass);\r\n } else if (key === 'style') {\r\n // Handle inline styles\r\n handleStyle(element as HTMLElement, value);\r\n } else if (isSignal(value)) {\r\n // Handle reactive props\r\n handleReactiveProp(element, key, value);\r\n } else if (typeof value === 'boolean') {\r\n // Handle boolean attributes (disabled, checked, etc)\r\n if (value) {\r\n element.setAttribute(key, '');\r\n }\r\n } else if (value != null) {\r\n // Handle static props\r\n // For SVG/MathML elements, always use setAttribute to preserve case sensitivity\r\n if (SVG_ELEMENTS.has(type) || MATHML_ELEMENTS.has(type)) {\r\n const attrValue = typeof value === 'string' ? normalizeString(value) : String(value);\r\n element.setAttribute(key, attrValue);\r\n } else {\r\n // For HTML elements, prefer property assignment\r\n if (key in element) {\r\n (element as any)[key] = value;\r\n } else {\r\n const attrValue = typeof value === 'string' ? normalizeString(value) : String(value);\r\n element.setAttribute(key, attrValue);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // If no explicit className was provided but we have container classes, apply them\r\n if (!handledClass && containerClass) {\r\n handleClassName(element, containerClass);\r\n }\r\n\r\n return element;\r\n }\r\n\r\n // ============================================================================\r\n // CHILDREN HANDLING\r\n // ============================================================================\r\n\r\n function appendChildren(parent: Element, children: any): void {\r\n const normalized = normalizeChildren(children);\r\n\r\n normalized.forEach(child => {\r\n if (child instanceof Node) {\r\n parent.appendChild(child);\r\n } else if (isSignal(child)) {\r\n // Reactive text node\r\n const textNode = document.createTextNode('');\r\n effect(() => {\r\n textNode.textContent = String(child());\r\n });\r\n parent.appendChild(textNode);\r\n } else if (child != null && child !== false) {\r\n // Static text node\r\n parent.appendChild(document.createTextNode(String(child)));\r\n }\r\n });\r\n }\r\n\r\n function normalizeChildren(children: any): any[] {\r\n if (children == null || children === false) {\r\n return [];\r\n }\r\n\r\n if (Array.isArray(children)) {\r\n return children.flatMap(normalizeChildren);\r\n }\r\n\r\n return [children];\r\n }\r\n\r\n // ============================================================================\r\n // REF HANDLING\r\n // ============================================================================\r\n\r\n function handleRef(element: HTMLElement, ref: any): void {\r\n if (isSignal(ref)) {\r\n ref.set(element);\r\n } else if (typeof ref === 'function') {\r\n ref(element);\r\n }\r\n }\r\n\r\n // ============================================================================\r\n // EVENT HANDLING\r\n // ============================================================================\r\n\r\n function handleEvent(element: Element, eventName: string, handler: any): void {\r\n if (typeof handler !== 'function') return;\r\n\r\n // Convert onClick → click, onInput → input, etc\r\n const event = eventName.slice(2).toLowerCase();\r\n\r\n element.addEventListener(event, handler);\r\n }\r\n\r\n // ============================================================================\r\n // CLASS NAME HANDLING\r\n // ============================================================================\r\n\r\n function handleClassName(element: Element, value: any, baseClass: string = ''): void {\r\n const setClass = (val: string) => {\r\n const fullClass = baseClass ? `${baseClass} ${val}` : val;\r\n const cleaned = cleanClassName(String(fullClass));\r\n if (element.namespaceURI === SVG_NAMESPACE) {\r\n element.setAttribute('class', cleaned);\r\n } else {\r\n element.className = cleaned;\r\n }\r\n };\r\n\r\n if (isSignal(value)) {\r\n // Reactive className\r\n effect(() => {\r\n const className = value();\r\n if (className != null) {\r\n setClass(String(className));\r\n } else if (baseClass) {\r\n setClass('');\r\n }\r\n });\r\n } else if (value != null) {\r\n // Static className\r\n setClass(String(value));\r\n }\r\n }\r\n\r\n // ============================================================================\r\n // ID HANDLING\r\n // ============================================================================\r\n\r\n function handleId(element: Element, value: any): void {\r\n if (isSignal(value)) {\r\n // Reactive id\r\n effect(() => {\r\n const id = value();\r\n if (id != null) {\r\n element.id = String(id);\r\n } else {\r\n element.removeAttribute('id');\r\n }\r\n });\r\n } else if (value != null) {\r\n // Static id\r\n element.id = String(value);\r\n }\r\n }\r\n\r\n // ============================================================================\r\n // HTML FOR HANDLING\r\n // ============================================================================\r\n\r\n function handleHtmlFor(element: Element, value: any): void {\r\n if (isSignal(value)) {\r\n // Reactive htmlFor\r\n effect(() => {\r\n const val = value();\r\n if (val != null) {\r\n element.setAttribute('for', String(val));\r\n } else {\r\n element.removeAttribute('for');\r\n }\r\n });\r\n } else if (value != null) {\r\n // Static htmlFor\r\n element.setAttribute('for', String(value));\r\n }\r\n }\r\n\r\n // ============================================================================\r\n // STYLE HANDLING\r\n // ============================================================================\r\n\r\n function handleStyle(element: HTMLElement, value: any): void {\r\n if (isSignal(value)) {\r\n // Reactive style object\r\n effect(() => {\r\n const styles = value();\r\n applyStyles(element, styles);\r\n });\r\n } else {\r\n // Static style\r\n applyStyles(element, value);\r\n }\r\n }\r\n\r\n function applyStyles(element: HTMLElement, styles: any): void {\r\n if (typeof styles === 'string') {\r\n element.style.cssText = styles;\r\n } else if (typeof styles === 'object' && styles != null) {\r\n Object.entries(styles).forEach(([key, value]) => {\r\n if (value != null) {\r\n // Convert camelCase to kebab-case\r\n const cssKey = key.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`);\r\n element.style.setProperty(cssKey, String(value));\r\n }\r\n });\r\n }\r\n }\r\n\r\n // ============================================================================\r\n // DANGEROUSLY SET INNER HTML\r\n // ============================================================================\r\n\r\n function handleDangerouslySetInnerHTML(element: HTMLElement, value: any): void {\r\n if (value != null && typeof value === 'object' && '__html' in value) {\r\n // Extract __html property and inject as raw HTML\r\n const html = value.__html;\r\n if (typeof html === 'string') {\r\n element.innerHTML = html;\r\n }\r\n }\r\n }\r\n\r\n // ============================================================================\r\n // REACTIVE PROP HANDLING\r\n // ============================================================================\r\n\r\n function handleReactiveProp(element: Element, key: string, signal: Signal<any>): void {\r\n effect(() => {\r\n const value = signal();\r\n\r\n if (value != null) {\r\n if (key in element) {\r\n // Set as property (for input.value, etc)\r\n ; (element as any)[key] = value;\r\n } else {\r\n // Set as attribute, normalize if string\r\n const attrValue = typeof value === 'string' ? normalizeString(value) : String(value);\r\n element.setAttribute(key, attrValue);\r\n }\r\n } else {\r\n element.removeAttribute(key);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Create a component from a function\r\n * Provides a cleaner API than raw JSX\r\n */\r\n export function component<P = any>(\r\n fn: (props: P) => JSXElement | null\r\n ): ComponentFunction<P> {\r\n return fn;\r\n }\r\n\r\n /**\r\n * Create a component with setup function\r\n * Similar to Vue's Composition API\r\n */\r\n export function defineComponent<P = any>(\r\n setup: (props: P) => () => JSXElement | null\r\n ): ComponentFunction<P> {\r\n return (props: P) => {\r\n const render = setup(props);\r\n return render();\r\n };\r\n }\r\n\r\n // ============================================================================\r\n // UTILITY FUNCTIONS\r\n // ============================================================================\r\n\r\n /**\r\n * Create multiple elements at once\r\n */\r\n export function createElements(elements: any[]): DocumentFragment {\r\n const fragment = document.createDocumentFragment();\r\n\r\n elements.forEach(el => {\r\n if (el instanceof Node) {\r\n fragment.appendChild(el);\r\n }\r\n });\r\n\r\n return fragment;\r\n }\r\n\r\n /**\r\n * Show/hide element based on condition\r\n */\r\n export function Show(props: {\r\n when: boolean | Signal<boolean>\r\n children: any\r\n }): JSXElement | null {\r\n if (isSignal(props.when)) {\r\n const placeholder = document.createComment('show');\r\n const parent = document.createDocumentFragment();\r\n parent.appendChild(placeholder);\r\n\r\n let currentElement: Element | null = null;\r\n\r\n effect(() => {\r\n const when = props.when as Signal<boolean>;\r\n const condition = when();\r\n\r\n if (condition && !currentElement) {\r\n // Show: create and insert element\r\n const children = normalizeChildren(props.children);\r\n currentElement = children[0] as Element;\r\n\r\n if (currentElement instanceof Node) {\r\n placeholder.parentNode?.insertBefore(currentElement, placeholder);\r\n }\r\n } else if (!condition && currentElement) {\r\n // Hide: remove element\r\n currentElement.remove();\r\n currentElement = null;\r\n }\r\n });\r\n\r\n return parent as any;\r\n } else {\r\n // Static condition\r\n return (props.when as boolean) ? jsx(Fragment, { children: props.children }) : null;\r\n }\r\n }\r\n\r\n /**\r\n * Render different elements based on condition\r\n */\r\n export function Switch(props: {\r\n children: { when: boolean | Signal<boolean>; children: any }[]\r\n }): JSXElement | null {\r\n // Find first matching case\r\n for (const caseItem of props.children) {\r\n const condition = isSignal(caseItem.when) ? caseItem.when() : caseItem.when;\r\n\r\n if (condition) {\r\n return jsx(Fragment, { children: caseItem.children });\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Iterate over array and render elements\r\n */\r\n export function For<T>(props: {\r\n each: T[] | Signal<T[]>\r\n children: (item: T, index: number) => JSXElement\r\n }): JSXElement {\r\n const fragment = document.createDocumentFragment();\r\n\r\n if (isSignal(props.each)) {\r\n // Reactive list\r\n const container = document.createElement('div');\r\n container.style.display = 'contents'; // Don't affect layout\r\n\r\n effect(() => {\r\n const each = props.each as Signal<T[]>;\r\n const items = each();\r\n container.innerHTML = ''; // Clear\r\n\r\n items.forEach((item: any, index: any) => {\r\n const element = props.children(item, index);\r\n if (element instanceof Node) {\r\n container.appendChild(element);\r\n }\r\n });\r\n });\r\n\r\n fragment.appendChild(container);\r\n } else {\r\n // Static list\r\n const each = props.each as T[];\r\n each.forEach((item, index) => {\r\n const element = props.children(item, index);\r\n if (element instanceof Node) {\r\n fragment.appendChild(element);\r\n }\r\n });\r\n }\r\n\r\n return fragment as any;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/mod/render.ts","../src/mod/utils.ts","../src/mod/style.ts","../src/mod/runtime.ts"],"names":["updateQueue","isFlushPending","render","component","container","options","target","element","newElement","mount","createPortal","children","placeholder","hydrate","targetElement","lazy","loader","fallback","loadedComponent","loading","error","props","errorDiv","module","err","createLoadingElement","div","ErrorBoundary","Suspense","Teleport","queueUpdate","fn","flushUpdates","updates","isBrowser","onDOMReady","callback","createRoot","mounted","minifyHTML","html","normalizeString","value","CONFLICT_GROUPS","cleanClassName","tokens","seenGroups","result","i","token","matchedGroup","g","overlayPositionClassMap","displayClassMap","directionClassMap","alignClassMap","justifyClassMap","maxWidthClassMap","borderWidthClassMap","radiusClassMap","shadowClassMap","borderStyleClassMap","cursorClassMap","selectClassMap","pointerEventsClassMap","resizeClassMap","animateClassMap","animateEaseClassMap","animateFillClassMap","spacingClass","prefix","marginClass","SCALE","FRACTIONS","W_KEYWORDS","H_KEYWORDS","MIN_W_KEYWORDS","MAX_W_KEYWORDS","MIN_H_KEYWORDS","MAX_H_KEYWORDS","resolveSize","key","val","map","STYLE_PROPS","resolveStyleProps","display","direction","align","justify","wrap","grow","shrink","basis","order","gap","gapX","gapY","w","h","size","minW","minH","maxW","maxH","p","px","py","ps","pe","pt","pb","m","mx","my","ms","me","mt","mb","bg","color","border","borderStyle","borderColor","radius","shadow","opacity","position","overflow","zIndex","overlay","location","backdrop","divider","cursor","select","pointerEvents","resize","animate","animateDuration","animateDelay","animateEase","animateFill","sizeWRes","sizeHRes","wRes","hRes","minWRes","minHRes","maxWRes","maxHRes","computedStyle","jsx","type","createHTMLElement","jsxs","Fragment","fragment","normalizeChildren","child","observerInitialized","initOnLoadObserver","observer","mutations","mutation","node","checkOnLoad","handler","SVG_ELEMENTS","MATHML_ELEMENTS","SVG_NAMESPACE","MATHML_NAMESPACE","hasValidDangerouslySetInnerHTML","containerClass","containerStyle","applyStyles","handledClass","appendChildren","handleDangerouslySetInnerHTML","handleRef","handleEvent","handleId","handleHtmlFor","handleClassName","handleStyle","isSignal","handleReactiveProp","attrValue","parent","textNode","effect","ref","eventName","event","baseClass","setClass","fullClass","cleaned","className","id","styles","cssKey","signal","defineComponent","setup","createElements","elements","el","Show","currentElement","when","condition","Switch","caseItem","For","each","items","item","index"],"mappings":"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","file":"index.cjs","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\n// src/mod/render.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement, RenderOptions, MountedComponent } from '../types';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ INIT ════════════════════════════════════════╗\r\n\r\n let updateQueue: (() => void)[] = [];\r\n let isFlushPending = false;\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n /**\r\n * Render a component to the DOM\r\n * @param component - Component or JSX element to render\r\n * @param container - DOM element or selector to mount to\r\n * @param options - Rendering options (mode, callbacks)\r\n * @returns MountedComponent with unmount and update methods\r\n * @throws Error if container not found or component returns null\r\n * @example\r\n * const el = jsx('div', { children: 'Hello' });\r\n * render(el, document.body);\r\n */\r\n export function render(\r\n component: JSXElement | (() => JSXElement),\r\n container: HTMLElement | string,\r\n options: RenderOptions = {}\r\n ): MountedComponent {\r\n // Resolve container\r\n const target = typeof container === 'string'\r\n ? document.querySelector(container)\r\n : container;\r\n\r\n if (!target) {\r\n throw new Error(`Container not found: ${container}`);\r\n }\r\n\r\n // Get element from component\r\n const element = typeof component === 'function' ? component() : component;\r\n\r\n if (!element) {\r\n throw new Error('Component returned null or undefined');\r\n }\r\n\r\n // Mount to DOM based on mode\r\n const mode = options.mode || 'replace';\r\n\r\n switch (mode) {\r\n case 'replace':\r\n target.innerHTML = '';\r\n target.appendChild(element as Node);\r\n break;\r\n\r\n case 'append':\r\n target.appendChild(element as Node);\r\n break;\r\n\r\n case 'prepend':\r\n target.insertBefore(element as Node, target.firstChild);\r\n break;\r\n\r\n default:\r\n // Invalid mode, fall back to replace\r\n target.innerHTML = '';\r\n target.appendChild(element as Node);\r\n }\r\n\r\n // Call onMount callback\r\n options.onMount?.();\r\n\r\n // Return mounted component interface\r\n return {\r\n element: element as Element | DocumentFragment,\r\n\r\n unmount: () => {\r\n if (element instanceof Element) {\r\n element.remove();\r\n } else if (element instanceof DocumentFragment) {\r\n // DocumentFragment doesn't have remove method, remove all children\r\n while (element.firstChild) {\r\n element.removeChild(element.firstChild);\r\n }\r\n }\r\n options.onUnmount?.();\r\n },\r\n\r\n update: (newElement: JSXElement) => {\r\n if (element instanceof Element && newElement instanceof Element) {\r\n element.replaceWith(newElement);\r\n } else if (newElement instanceof Element) {\r\n // If current is DocumentFragment and new is Element\r\n if (element instanceof DocumentFragment && element.parentNode) {\r\n element.parentNode.replaceChild(newElement, element);\r\n }\r\n }\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Simple mount function (alias for render with replace mode)\r\n */\r\n export function mount(\r\n component: JSXElement | (() => JSXElement),\r\n container: HTMLElement | string\r\n ): MountedComponent {\r\n return render(component, container, { mode: 'replace' });\r\n }\r\n\r\n /**\r\n * Render component to a different location in the DOM\r\n */\r\n export function createPortal(\r\n children: JSXElement,\r\n container: HTMLElement | string\r\n ): JSXElement {\r\n const target = typeof container === 'string'\r\n ? document.querySelector(container)\r\n : container;\r\n\r\n if (!target) {\r\n throw new Error(`Portal container not found: ${container}`);\r\n }\r\n\r\n // Create a placeholder comment\r\n const placeholder = document.createComment('portal');\r\n\r\n // Mount children to target\r\n if (children instanceof Node) {\r\n target.appendChild(children);\r\n }\r\n\r\n return placeholder as any;\r\n }\r\n\r\n /**\r\n * Hydrate server-rendered HTML with client-side interactivity\r\n * @param component - Component to hydrate\r\n * @param container - Container with server-rendered HTML\r\n */\r\n export function hydrate(\r\n component: JSXElement | (() => JSXElement),\r\n container: HTMLElement | string\r\n ): MountedComponent {\r\n const targetElement = typeof container === 'string'\r\n ? document.querySelector(container)\r\n : container;\r\n\r\n const target = targetElement instanceof HTMLElement ? targetElement : null;\r\n\r\n if (!target) {\r\n throw new Error(`Container not found: ${container}`);\r\n }\r\n\r\n // For now, just replace (future: smart hydration)\r\n return render(component, target, { mode: 'replace' });\r\n }\r\n\r\n /**\r\n * Lazy load a component with dynamic imports\r\n * @param loader - Async function that returns a component module\r\n * @param fallback - Element to show while loading (optional)\r\n * @returns A component that renders loaded component or fallback/error state\r\n * @example\r\n * const LazyComponent = lazy(() => import('./Component'), <div>Loading...</div>);\r\n */\r\n export function lazy<P = any>(\r\n loader: () => Promise<{ default: (props: P) => JSXElement }>,\r\n fallback?: JSXElement\r\n ): (props: P) => JSXElement {\r\n let loadedComponent: ((props: P) => JSXElement) | null = null;\r\n let loading = false;\r\n let error: Error | null = null;\r\n\r\n return (props: P) => {\r\n // If already loaded, return component\r\n if (loadedComponent) {\r\n return loadedComponent(props);\r\n }\r\n\r\n // If error occurred, show error\r\n if (error) {\r\n const errorDiv = document.createElement('div');\r\n errorDiv.className = 'crux-lazy-error';\r\n errorDiv.textContent = `Error loading component: ${error.message}`;\r\n errorDiv.style.color = 'red';\r\n return errorDiv;\r\n }\r\n\r\n // If not loading yet, start loading\r\n if (!loading) {\r\n loading = true;\r\n\r\n loader()\r\n .then(module => {\r\n loadedComponent = module.default;\r\n // TODO: Trigger re-render when loaded\r\n })\r\n .catch(err => {\r\n error = err instanceof Error ? err : new Error(String(err));\r\n // TODO: Trigger re-render on error\r\n });\r\n }\r\n\r\n // Show fallback while loading\r\n return fallback || createLoadingElement();\r\n };\r\n }\r\n\r\n function createLoadingElement(): HTMLElement {\r\n const div = document.createElement('div');\r\n div.textContent = 'Loading...';\r\n return div;\r\n }\r\n\r\n /**\r\n * Error boundary component\r\n */\r\n export function ErrorBoundary(props: {\r\n fallback: (error: Error) => JSXElement\r\n children: JSXElement\r\n }): JSXElement {\r\n try {\r\n return props.children;\r\n } catch (error) {\r\n return props.fallback(error as Error);\r\n }\r\n }\r\n\r\n /**\r\n * Suspense component for handling loading states\r\n */\r\n export function Suspense(props: {\r\n fallback: JSXElement\r\n children: JSXElement | Promise<JSXElement>\r\n }): JSXElement {\r\n if (props.children instanceof Promise) {\r\n // Create container for async content\r\n const container = document.createElement('div');\r\n container.style.display = 'contents';\r\n\r\n // Show fallback first\r\n if (props.fallback instanceof Node) {\r\n container.appendChild(props.fallback);\r\n }\r\n\r\n // Load actual content\r\n props.children.then(element => {\r\n container.innerHTML = '';\r\n if (element instanceof Node) {\r\n container.appendChild(element);\r\n }\r\n });\r\n\r\n return container;\r\n } else {\r\n return props.children;\r\n }\r\n }\r\n\r\n /**\r\n * Teleport component (like Vue's Teleport)\r\n */\r\n export function Teleport(props: {\r\n to: string | HTMLElement\r\n children: JSXElement\r\n }): JSXElement {\r\n return createPortal(props.children, props.to);\r\n }\r\n\r\n /**\r\n * Queue a DOM update to be batched\r\n */\r\n export function queueUpdate(fn: () => void): void {\r\n updateQueue.push(fn);\r\n\r\n if (!isFlushPending) {\r\n isFlushPending = true;\r\n queueMicrotask(flushUpdates);\r\n }\r\n }\r\n\r\n /**\r\n * Flush all queued updates\r\n */\r\n function flushUpdates(): void {\r\n const updates = updateQueue;\r\n updateQueue = [];\r\n isFlushPending = false;\r\n\r\n updates.forEach(fn => fn());\r\n }\r\n\r\n // ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n // ╔════════════════════════════════════════ HELP ════════════════════════════════════════╗\r\n\r\n /**\r\n * Check if code is running in browser\r\n */\r\n export function isBrowser(): boolean {\r\n return typeof window !== 'undefined' && typeof document !== 'undefined';\r\n }\r\n\r\n /**\r\n * Wait for DOM to be ready\r\n */\r\n export function onDOMReady(callback: () => void): void {\r\n if (isBrowser()) {\r\n if (document.readyState === 'loading') {\r\n document.addEventListener('DOMContentLoaded', callback);\r\n } else {\r\n callback();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Create a root for rendering\r\n */\r\n export function createRoot(container: HTMLElement | string) {\r\n const target = typeof container === 'string'\r\n ? document.querySelector(container)\r\n : container;\r\n\r\n if (!target || !(target instanceof HTMLElement)) {\r\n throw new Error(`Root container not found: ${container}`);\r\n }\r\n\r\n let mounted: MountedComponent | null = null;\r\n\r\n return {\r\n render(component: JSXElement | (() => JSXElement)) {\r\n if (mounted) {\r\n mounted.unmount();\r\n }\r\n mounted = render(component, target);\r\n },\r\n\r\n unmount() {\r\n if (mounted) {\r\n mounted.unmount();\r\n mounted = null;\r\n }\r\n }\r\n };\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝","// src/mod/utils.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n /**\r\n * Minify HTML string by removing excess whitespace\r\n * Collapses multiple spaces, tabs, and newlines into single spaces\r\n * Removes leading/trailing whitespace from text nodes\r\n * @param html - HTML string to minify\r\n * @returns Minified HTML string\r\n */\r\n export function minifyHTML(html: string): string {\r\n // Collapse multiple whitespace characters (spaces, tabs, newlines) into single space\r\n return html\r\n .replace(/\\s+/g, ' ') // Replace multiple whitespace with single space\r\n .replace(/>\\s+</g, '><') // Remove spaces between closing and opening tags\r\n .trim(); // Remove leading/trailing whitespace\r\n }\r\n\r\n /**\r\n * Normalize a string value by removing excess whitespace\r\n * Useful for class names, ids, and other attributes with multi-line definitions\r\n * @param value - String value to normalize\r\n * @returns Normalized string with collapsed whitespace\r\n */\r\n export function normalizeString(value: string): string {\r\n return value\r\n .replace(/\\s+/g, ' ') // Collapse multiple whitespace into single space\r\n .trim(); // Remove leading/trailing whitespace\r\n }\r\n\r\n // Regex patterns for class groups that should be mutually exclusive\r\n // The order matters for partial matches, though we try to use strict patterns where possible.\r\n const CONFLICT_GROUPS = [\r\n // Layout\r\n /^display-(.+)$/, \r\n /^(block|inline-block|inline|flex|inline-flex|grid|inline-grid|table|table-row|table-cell|flow-root|contents|hidden)$/,\r\n /^(static|fixed|absolute|relative|sticky)$/,\r\n /^inset-(.+)$/,\r\n /^inset-x-(.+)$/,\r\n /^inset-y-(.+)$/,\r\n /^start-(.+)$/,\r\n /^end-(.+)$/,\r\n /^top-(.+)$/,\r\n /^bottom-(.+)$/,\r\n /^z-(.+)$/,\r\n\r\n // Flex/Grid\r\n /^flex-(row|col)(-reverse)?$/,\r\n /^flex-(wrap|nowrap)(-reverse)?$/,\r\n /^flex-(1|auto|initial|none)$/,\r\n /^basis-(.+)$/,\r\n /^grow(-0)?$/,\r\n /^shrink(-0)?$/,\r\n /^order-(.+)$/,\r\n /^gap-(\\d+)$/, // gap-4\r\n /^gap-x-(.+)$/,\r\n /^gap-y-(.+)$/,\r\n /^justify-items-(.+)$/,\r\n /^justify-self-(.+)$/,\r\n /^justify-(start|end|center|between|around|evenly|stretch)$/, // justify-content\r\n /^content-(.+)$/, // align-content\r\n /^items-(.+)$/, // align-items\r\n /^self-(.+)$/, // align-self\r\n /^place-content-(.+)$/,\r\n /^place-items-(.+)$/,\r\n /^place-self-(.+)$/,\r\n /^grid-cols-(.+)$/,\r\n /^col-span-(.+)$/,\r\n /^col-start-(.+)$/,\r\n /^col-end-(.+)$/,\r\n /^grid-rows-(.+)$/,\r\n /^row-span-(.+)$/,\r\n /^row-start-(.+)$/,\r\n /^row-end-(.+)$/,\r\n /^grid-flow-(.+)$/,\r\n\r\n // Spacing\r\n /^p-(.+)$/,\r\n /^px-(.+)$/,\r\n /^py-(.+)$/,\r\n /^pt-(.+)$/,\r\n /^pb-(.+)$/,\r\n /^ps-(.+)$/,\r\n /^pe-(.+)$/,\r\n /^m-(.+)$/,\r\n /^mx-(.+)$/,\r\n /^my-(.+)$/,\r\n /^mt-(.+)$/,\r\n /^mb-(.+)$/,\r\n /^ms-(.+)$/,\r\n /^me-(.+)$/,\r\n\r\n // Sizing\r\n /^w-(.+)$/,\r\n /^min-w-(.+)$/,\r\n /^max-w-(.+)$/,\r\n /^h-(.+)$/,\r\n /^min-h-(.+)$/,\r\n /^max-h-(.+)$/,\r\n\r\n // Typography\r\n /^font-(sans|serif|mono)$/,\r\n /^font-(thin|extralight|light|normal|medium|semibold|bold|extrabold|black)$/,\r\n /^text-(xs|sm|base|md|lg|xl|\\d+xl)$/, // Font size\r\n /^leading-(.+)$/,\r\n /^tracking-(.+)$/,\r\n /^text-(left|center|right|justify|start|end)$/, // Text align\r\n /^text-(wrap|nowrap|balance|pretty)$/,\r\n /^(truncate|text-ellipsis|text-clip)$/,\r\n /^(uppercase|lowercase|capitalize|normal-case)$/,\r\n /^(italic|not-italic)$/,\r\n /^(underline|overline|line-through|no-underline)$/,\r\n /^text-(?!left|center|right|justify|start|end|xs|sm|base|md|lg|xl|\\d+xl|wrap|nowrap|balance|pretty|ellipsis|clip).+$/, // Text color\r\n\r\n // Background & Effects\r\n /^bg-(?!blend).+$/, // Background color\r\n /^bg-blend-(.+)$/,\r\n /^mix-blend-(.+)$/,\r\n /^shadow(.*)$/,\r\n /^opacity-(.+)$/,\r\n /^blur(.*)$/,\r\n /^brightness-(.+)$/,\r\n /^contrast-(.+)$/,\r\n /^grayscale(.*)$/,\r\n /^invert(.*)$/,\r\n /^saturate-(.+)$/,\r\n /^sepia(.*)$/,\r\n /^hue-rotate-(.+)$/,\r\n /^backdrop-blur(.*)$/,\r\n /^transition(.*)$/\r\n ];\r\n\r\n /**\r\n * Clean up class names by removing duplicates and keeping the latest one.\r\n * Handles conflict groups (e.g., 'justify-start' overrides 'justify-center').\r\n * @param value - Class name string\r\n * @returns Cleaned class name string\r\n */\r\n export function cleanClassName(value: string): string {\r\n const tokens = value.trim().split(/\\s+/);\r\n // optimization: if 0 or 1 token, just return trimmed\r\n if (tokens.length <= 1 && tokens[0] === '') return '';\r\n if (tokens.length === 1) return tokens[0];\r\n\r\n const seenGroups = new Set<number | string>();\r\n const result: string[] = [];\r\n\r\n // Iterate backwards to keep latest\r\n for (let i = tokens.length - 1; i >= 0; i--) {\r\n const token = tokens[i];\r\n if (!token) continue;\r\n\r\n let matchedGroup: number | string = token; // Default to token itself (exact match dedupe)\r\n\r\n // Check if token belongs to a known conflict group\r\n for (let g = 0; g < CONFLICT_GROUPS.length; g++) {\r\n if (CONFLICT_GROUPS[g].test(token)) {\r\n matchedGroup = g;\r\n break;\r\n }\r\n }\r\n\r\n if (!seenGroups.has(matchedGroup)) {\r\n seenGroups.add(matchedGroup);\r\n result.push(token);\r\n }\r\n }\r\n\r\n return result.reverse().join(' ');\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","\r\nimport type {\r\n ContainerProps,\r\n ContainerDisplay,\r\n ContainerDirection,\r\n ContainerAlign,\r\n ContainerJustify,\r\n ContainerMaxWidth,\r\n ContainerBorderWidth,\r\n ContainerRadius,\r\n ContainerShadow,\r\n ContainerSpace,\r\n ContainerSpaceOrAuto,\r\n OverlayPosition,\r\n ContainerCursor,\r\n ContainerUserSelect,\r\n ContainerPointerEvents,\r\n ContainerResize,\r\n ContainerAnimation,\r\n ContainerAnimateDuration,\r\n ContainerAnimateDelay,\r\n ContainerAnimateEase,\r\n ContainerAnimateFill\r\n} from '../types';\r\n\r\n// ╔════════════════════════════════════════ MAPS ════════════════════════════════════════╗\r\n\r\nconst overlayPositionClassMap: Record<OverlayPosition, string> = {\r\n 'center': 'justify-center items-center',\r\n 'top': 'justify-center items-start',\r\n 'bottom': 'justify-center items-end',\r\n 'left': 'justify-start items-center',\r\n 'right': 'justify-end items-center',\r\n 'top-left': 'justify-start items-start',\r\n 'top-right': 'justify-end items-start',\r\n 'bottom-left': 'justify-start items-end',\r\n 'bottom-right': 'justify-end items-end',\r\n};\r\n\r\nconst displayClassMap: Record<ContainerDisplay, string> = {\r\n block: 'block',\r\n 'inline-block': 'inline-block',\r\n flex: 'flex',\r\n 'inline-flex': 'inline-flex',\r\n grid: 'grid',\r\n 'inline-grid': 'inline-grid'\r\n};\r\n\r\nconst directionClassMap: Record<ContainerDirection, string> = {\r\n row: 'flex-row',\r\n 'row-reverse': 'flex-row-reverse',\r\n column: 'flex-col',\r\n 'column-reverse': 'flex-col-reverse'\r\n};\r\n\r\nconst alignClassMap: Record<ContainerAlign, string> = {\r\n start: 'items-start',\r\n center: 'items-center',\r\n end: 'items-end',\r\n stretch: 'items-stretch',\r\n baseline: 'items-baseline'\r\n};\r\n\r\nconst justifyClassMap: Record<ContainerJustify, string> = {\r\n start: 'justify-start',\r\n center: 'justify-center',\r\n end: 'justify-end',\r\n between: 'justify-between',\r\n around: 'justify-around',\r\n evenly: 'justify-evenly'\r\n};\r\n\r\nconst maxWidthClassMap: Record<ContainerMaxWidth, string> = {\r\n xs: 'max-w-xs',\r\n sm: 'max-w-sm',\r\n md: 'max-w-md',\r\n lg: 'max-w-lg',\r\n xl: 'max-w-xl',\r\n '2xl': 'max-w-2xl',\r\n '3xl': 'max-w-3xl',\r\n '4xl': 'max-w-4xl',\r\n '5xl': 'max-w-5xl',\r\n '6xl': 'max-w-6xl',\r\n '7xl': 'max-w-7xl',\r\n full: 'max-w-full',\r\n min: 'max-w-min',\r\n max: 'max-w-max',\r\n fit: 'max-w-fit',\r\n none: 'max-w-none',\r\n prose: 'max-w-prose'\r\n};\r\n\r\nconst borderWidthClassMap: Record<ContainerBorderWidth, string> = {\r\n 0: 'border-0',\r\n 1: 'border',\r\n 2: 'border-2',\r\n 4: 'border-4',\r\n 8: 'border-8'\r\n};\r\n\r\nconst radiusClassMap: Record<ContainerRadius, string> = {\r\n none: 'rounded-none',\r\n sm: 'rounded-sm',\r\n base: 'rounded',\r\n md: 'rounded-md',\r\n lg: 'rounded-lg',\r\n xl: 'rounded-xl',\r\n '2xl': 'rounded-2xl',\r\n '3xl': 'rounded-3xl',\r\n full: 'rounded-full'\r\n};\r\n\r\nconst shadowClassMap: Record<ContainerShadow, string> = {\r\n none: 'shadow-none',\r\n xs: 'shadow-xs',\r\n sm: 'shadow-sm',\r\n md: 'shadow-md',\r\n lg: 'shadow-lg',\r\n xl: 'shadow-xl',\r\n '2xl': 'shadow-2xl',\r\n inner: 'shadow-inner'\r\n};\r\n\r\nconst borderStyleClassMap: Record<string, string> = {\r\n solid: 'border-solid',\r\n dashed: 'border-dashed',\r\n dotted: 'border-dotted',\r\n double: 'border-double',\r\n groove: 'border-groove',\r\n ridge: 'border-ridge',\r\n inset: 'border-inset',\r\n hidden: 'border-hidden',\r\n none: 'border-none'\r\n};\r\n\r\nconst cursorClassMap: Record<ContainerCursor, string> = {\r\n auto: 'cursor-auto',\r\n default: 'cursor-default',\r\n pointer: 'cursor-pointer',\r\n wait: 'cursor-wait',\r\n text: 'cursor-text',\r\n move: 'cursor-move',\r\n help: 'cursor-help',\r\n 'not-allowed': 'cursor-not-allowed',\r\n none: 'cursor-none',\r\n grab: 'cursor-grab',\r\n grabbing: 'cursor-grabbing'\r\n};\r\n\r\nconst selectClassMap: Record<ContainerUserSelect, string> = {\r\n none: 'select-none',\r\n text: 'select-text',\r\n all: 'select-all',\r\n auto: 'select-auto'\r\n};\r\n\r\nconst pointerEventsClassMap: Record<ContainerPointerEvents, string> = {\r\n none: 'pointer-events-none',\r\n auto: 'pointer-events-auto'\r\n};\r\n\r\nconst resizeClassMap: Record<ContainerResize, string> = {\r\n none: 'resize-none',\r\n both: 'resize',\r\n y: 'resize-y',\r\n x: 'resize-x'\r\n};\r\n\r\nconst animateClassMap: Record<ContainerAnimation, string> = {\r\n none: 'animate-none',\r\n spin: 'animate-spin',\r\n ping: 'animate-ping',\r\n pulse: 'animate-pulse',\r\n bounce: 'animate-bounce',\r\n 'fade-in': 'animate-fade-in',\r\n 'fade-out': 'animate-fade-out',\r\n 'slide-in-up': 'animate-slide-in-up',\r\n 'slide-in-down': 'animate-slide-in-down',\r\n 'slide-in-left': 'animate-slide-in-left',\r\n 'slide-in-right': 'animate-slide-in-right',\r\n 'zoom-in': 'animate-zoom-in',\r\n 'zoom-out': 'animate-zoom-out'\r\n};\r\n\r\nconst animateEaseClassMap: Record<ContainerAnimateEase, string> = {\r\n linear: 'animate-ease-linear',\r\n in: 'animate-ease-in',\r\n out: 'animate-ease-out',\r\n 'in-out': 'animate-ease-in-out'\r\n};\r\n\r\nconst animateFillClassMap: Record<ContainerAnimateFill, string> = {\r\n forwards: 'animate-fill-forwards',\r\n backwards: 'animate-fill-backwards',\r\n both: 'animate-fill-both',\r\n none: 'animate-fill-none'\r\n};\r\n\r\n// ╔════════════════════════════════════════ HELP ════════════════════════════════════════╗\r\n\r\nfunction spacingClass(prefix: string, value: ContainerSpace | undefined): string | undefined {\r\n if (value === undefined) return undefined;\r\n return `${prefix}-${value}`;\r\n}\r\n\r\nfunction marginClass(prefix: string, value: ContainerSpaceOrAuto | undefined): string | undefined {\r\n if (value === undefined) return undefined;\r\n if (value === 'auto') return `${prefix}-auto`;\r\n return `${prefix}-${value}`;\r\n}\r\n\r\nconst SCALE = new Set([\r\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 20, 24, 28, 32, 36, 40, 48, 56, 64\r\n]);\r\nconst FRACTIONS = new Set(['1/2', '1/3', '2/3', '1/4', '2/4', '3/4', '1/5', '2/5', '3/5', '4/5', '1/6', '5/6', '1/12']);\r\n\r\nconst W_KEYWORDS = new Set(['auto', 'full', 'screen', 'min', 'max', 'fit']);\r\nconst H_KEYWORDS = new Set(['auto', 'full', 'screen', 'min', 'max', 'fit']);\r\nconst MIN_W_KEYWORDS = new Set(['0', 'full', 'min', 'max', 'fit']);\r\nconst MAX_W_KEYWORDS = new Set(['none', 'full', 'min', 'max', 'fit']);\r\nconst MIN_H_KEYWORDS = new Set(['0', 'full', 'screen', 'min', 'max', 'fit']);\r\nconst MAX_H_KEYWORDS = new Set(['none', 'full', 'screen', 'min', 'max', 'fit']);\r\n\r\nconst resolveSize = (\r\n key: 'w' | 'h' | 'min-w' | 'min-h' | 'max-w' | 'max-h',\r\n val: string | number | undefined,\r\n map?: Record<string, string>\r\n) => {\r\n if (val === undefined) return null;\r\n\r\n // Check map first (e.g. max-w-xs)\r\n if (map && val in map) {\r\n return { class: map[val] };\r\n }\r\n\r\n // Check numeric scale\r\n if (typeof val === 'number' && SCALE.has(val)) {\r\n return { class: `${key}-${val}` };\r\n }\r\n\r\n // Check fractions (only for w, h)\r\n if ((key === 'w' || key === 'h') && FRACTIONS.has(val as string)) {\r\n return { class: `${key}-${val}` };\r\n }\r\n\r\n // Check keywords\r\n const keywords =\r\n key === 'w' ? W_KEYWORDS :\r\n key === 'h' ? H_KEYWORDS :\r\n key === 'min-w' ? MIN_W_KEYWORDS :\r\n key === 'min-h' ? MIN_H_KEYWORDS :\r\n key === 'max-w' ? MAX_W_KEYWORDS :\r\n MAX_H_KEYWORDS;\r\n\r\n if (keywords.has(val as string)) {\r\n return { class: `${key}-${val}` };\r\n }\r\n\r\n // Also check scale for min/max props (we added loops to SCSS)\r\n if (['min-w', 'max-w', 'min-h', 'max-h'].includes(key) && typeof val === 'number' && SCALE.has(val)) {\r\n return { class: `${key}-${val}` };\r\n }\r\n\r\n // Fallback to inline style\r\n const styleProp =\r\n key === 'w' ? 'width' :\r\n key === 'h' ? 'height' :\r\n key === 'min-w' ? 'minWidth' :\r\n key === 'min-h' ? 'minHeight' :\r\n key === 'max-w' ? 'maxWidth' :\r\n 'maxHeight';\r\n\r\n return { style: { [styleProp]: val } };\r\n};\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\nexport const STYLE_PROPS = new Set([\r\n 'display', 'direction', 'align', 'justify', 'wrap',\r\n 'grow', 'shrink', 'basis', 'order',\r\n 'gap', 'gapX', 'gapY',\r\n 'w', 'h', 'size', 'minW', 'minH', 'maxW', 'maxH',\r\n 'p', 'px', 'py', 'ps', 'pe', 'pt', 'pb',\r\n 'm', 'mx', 'my', 'ms', 'me', 'mt', 'mb',\r\n 'bg', 'color', 'border', 'borderStyle', 'borderColor', 'radius', 'shadow', 'opacity',\r\n 'position', 'overflow', 'zIndex',\r\n 'overlay', 'location', 'backdrop',\r\n 'divider',\r\n 'cursor', 'select', 'pointerEvents', 'resize',\r\n 'animate', 'animateDuration', 'animateDelay', 'animateEase', 'animateFill'\r\n]);\r\n\r\nexport function resolveStyleProps(props: ContainerProps): { className: string; style: any } {\r\n const {\r\n display,\r\n direction,\r\n align,\r\n justify,\r\n wrap,\r\n grow,\r\n shrink,\r\n basis,\r\n order,\r\n gap,\r\n gapX,\r\n gapY,\r\n w,\r\n h,\r\n size,\r\n minW,\r\n minH,\r\n maxW,\r\n maxH,\r\n p,\r\n px,\r\n py,\r\n ps,\r\n pe,\r\n pt,\r\n pb,\r\n m,\r\n mx,\r\n my,\r\n ms,\r\n me,\r\n mt,\r\n mb,\r\n bg,\r\n color,\r\n border,\r\n borderStyle,\r\n borderColor,\r\n radius,\r\n shadow,\r\n opacity,\r\n position,\r\n overflow,\r\n zIndex,\r\n overlay,\r\n location,\r\n backdrop,\r\n divider,\r\n cursor,\r\n select,\r\n pointerEvents,\r\n resize,\r\n animate,\r\n animateDuration,\r\n animateDelay,\r\n animateEase,\r\n animateFill\r\n } = props;\r\n\r\n const sizeWRes = resolveSize('w', size);\r\n const sizeHRes = resolveSize('h', size);\r\n const wRes = resolveSize('w', w) || sizeWRes;\r\n const hRes = resolveSize('h', h) || sizeHRes;\r\n const minWRes = resolveSize('min-w', minW);\r\n const minHRes = resolveSize('min-h', minH);\r\n const maxWRes = resolveSize('max-w', maxW, maxWidthClassMap);\r\n const maxHRes = resolveSize('max-h', maxH);\r\n\r\n const computedStyle = {\r\n ...wRes?.style,\r\n ...hRes?.style,\r\n ...minWRes?.style,\r\n ...minHRes?.style,\r\n ...maxWRes?.style,\r\n ...maxHRes?.style,\r\n ...(basis && typeof basis === 'string' && !['auto', 'full'].includes(basis) ? { flexBasis: basis } : {}),\r\n ...(order !== undefined ? { order } : {}),\r\n ...(grow !== undefined && typeof grow === 'number' ? { flexGrow: grow } : {}),\r\n ...(shrink !== undefined && typeof shrink === 'number' ? { flexShrink: shrink } : {}),\r\n ...(overlay && backdrop ? { backgroundColor: 'rgba(0, 0, 0, 0.5)' } : {})\r\n };\r\n\r\n const classes = [\r\n overlay && 'absolute inset-0 w-full h-full flex',\r\n overlay && location && overlayPositionClassMap[location],\r\n // Default to center if overlay is true but no location provided?\r\n // The original kit defaulted to center.\r\n overlay && !location && overlayPositionClassMap['center'],\r\n \r\n display && displayClassMap[display],\r\n direction && directionClassMap[direction],\r\n align && alignClassMap[align],\r\n justify && justifyClassMap[justify],\r\n wrap && 'flex-wrap',\r\n \r\n grow === true && 'grow',\r\n grow === false && 'grow-0',\r\n shrink === true && 'shrink',\r\n shrink === false && 'shrink-0',\r\n basis && typeof basis === 'string' && ['auto', 'full'].includes(basis) && `basis-${basis}`,\r\n\r\n gap !== undefined && `gap-${gap}`,\r\n gapX !== undefined && `gap-x-${gapX}`,\r\n gapY !== undefined && `gap-y-${gapY}`,\r\n wRes?.class,\r\n hRes?.class,\r\n minWRes?.class,\r\n minHRes?.class,\r\n maxWRes?.class,\r\n maxHRes?.class,\r\n spacingClass('p', p),\r\n spacingClass('px', px),\r\n spacingClass('py', py),\r\n spacingClass('ps', ps),\r\n spacingClass('pe', pe),\r\n spacingClass('pt', pt),\r\n spacingClass('pb', pb),\r\n marginClass('m', m),\r\n marginClass('mx', mx),\r\n marginClass('my', my),\r\n marginClass('ms', ms),\r\n marginClass('me', me),\r\n marginClass('mt', mt),\r\n marginClass('mb', mb),\r\n bg && `bg-${bg}`,\r\n color && `text-${color}`,\r\n border !== undefined && borderWidthClassMap[border],\r\n borderStyle && borderStyleClassMap[borderStyle],\r\n borderColor && `border-${borderColor}`,\r\n radius && radiusClassMap[radius],\r\n shadow && shadowClassMap[shadow],\r\n opacity !== undefined && `opacity-${opacity}`,\r\n position,\r\n overflow && `overflow-${overflow}`,\r\n zIndex && `z-${zIndex}`,\r\n\r\n // Interaction\r\n cursor && cursorClassMap[cursor],\r\n select && selectClassMap[select],\r\n pointerEvents && pointerEventsClassMap[pointerEvents],\r\n resize && resizeClassMap[resize],\r\n\r\n // Animation\r\n animate && animateClassMap[animate],\r\n animateDuration && `animate-duration-${animateDuration}`,\r\n animateDelay && `animate-delay-${animateDelay}`,\r\n animateEase && animateEaseClassMap[animateEase],\r\n animateFill && animateFillClassMap[animateFill],\r\n\r\n // Divider logic\r\n divider === true && 'border-t',\r\n divider === 'horizontal' && 'border-t',\r\n divider === 'vertical' && 'border-s', // border-start\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n\r\n return {\r\n className: classes,\r\n style: Object.keys(computedStyle).length > 0 ? computedStyle : undefined\r\n };\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n// src/mod/runtime.ts\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import { effect, isSignal, type Signal } from '@minejs/signals';\r\n import type { JSXElement, JSXProps, ComponentFunction } from '../types';\r\n import { normalizeString, cleanClassName } from './utils';\r\n import { resolveStyleProps, STYLE_PROPS } from './style';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n /**\r\n * Creates a DOM element from JSX\r\n * This is called automatically by TypeScript when it sees JSX syntax\r\n */\r\n export function jsx(\r\n type: string | ComponentFunction,\r\n props: JSXProps | null\r\n ): JSXElement | null {\r\n // Handle component (function)\r\n if (typeof type === 'function') {\r\n return type(props || {});\r\n }\r\n\r\n // Handle HTML element (string)\r\n return createHTMLElement(type, props || {});\r\n }\r\n\r\n /**\r\n * Same as jsx() but for elements with multiple children\r\n * (Used by TypeScript JSX transform)\r\n */\r\n export const jsxs = jsx;\r\n\r\n /**\r\n * Fragment component (like React.Fragment)\r\n */\r\n export function Fragment(props: { children?: any }): DocumentFragment {\r\n const fragment = document.createDocumentFragment();\r\n const children = normalizeChildren(props.children);\r\n\r\n children.forEach(child => {\r\n if (child instanceof Node) {\r\n fragment.appendChild(child);\r\n }\r\n });\r\n\r\n return fragment;\r\n }\r\n\r\n // ============================================================================\r\n // DOM OBSERVER (onload support)\r\n // ============================================================================\r\n\r\n let observerInitialized = false;\r\n\r\n function initOnLoadObserver() {\r\n if (observerInitialized) return;\r\n if (typeof window === 'undefined' || typeof MutationObserver === 'undefined') return;\r\n\r\n observerInitialized = true;\r\n\r\n const observer = new MutationObserver((mutations) => {\r\n mutations.forEach((mutation) => {\r\n mutation.addedNodes.forEach((node) => {\r\n if (node instanceof Element) {\r\n checkOnLoad(node);\r\n }\r\n });\r\n });\r\n });\r\n\r\n if (document.body) {\r\n observer.observe(document.body, { childList: true, subtree: true });\r\n } else {\r\n document.addEventListener('DOMContentLoaded', () => {\r\n if (document.body) {\r\n observer.observe(document.body, { childList: true, subtree: true });\r\n }\r\n });\r\n }\r\n }\r\n\r\n function checkOnLoad(element: Element) {\r\n if (element.hasAttribute('data-mine-onload')) {\r\n const handler = (element as any)['__onload'];\r\n if (typeof handler === 'function') {\r\n handler(element);\r\n }\r\n }\r\n\r\n const children = element.querySelectorAll('[data-mine-onload]');\r\n children.forEach((child) => {\r\n const handler = (child as any)['__onload'];\r\n if (typeof handler === 'function') {\r\n handler(child);\r\n }\r\n });\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ ════ ════════════════════════════════════════╗\r\n\r\n // ============================================================================\r\n // HTML ELEMENT CREATION\r\n // ============================================================================\r\n\r\n // SVG elements that need to be created with createElementNS\r\n const SVG_ELEMENTS = new Set([\r\n 'svg', 'path', 'circle', 'rect', 'line', 'polyline', 'polygon',\r\n 'ellipse', 'g', 'text', 'tspan', 'defs', 'clipPath', 'linearGradient',\r\n 'radialGradient', 'stop', 'mask', 'pattern', 'image', 'use', 'symbol',\r\n 'marker', 'foreignObject', 'animate', 'animateTransform', 'animateMotion',\r\n 'set', 'filter', 'feBlend', 'feColorMatrix', 'feComponentTransfer',\r\n 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap',\r\n 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR',\r\n 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology',\r\n 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile',\r\n 'feTurbulence', 'title', 'desc', 'metadata'\r\n ]);\r\n\r\n // MathML elements that need to be created with createElementNS\r\n const MATHML_ELEMENTS = new Set([\r\n 'math', 'maction', 'maligngroup', 'malignmark', 'menclose', 'merror',\r\n 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mlongdiv',\r\n 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom',\r\n 'mroot', 'mrow', 'ms', 'mscarries', 'mscarry', 'msgroup', 'msline',\r\n 'mspace', 'msqrt', 'msrow', 'mstack', 'mstyle', 'msub', 'msup',\r\n 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover',\r\n 'semantics', 'annotation', 'annotation-xml'\r\n ]);\r\n\r\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\r\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\r\n\r\n function createHTMLElement(type: string, props: JSXProps): Element {\r\n // Handle 'as' prop to change the element type\r\n if (props.as) {\r\n type = props.as;\r\n }\r\n\r\n // Determine namespace and create element appropriately\r\n let element: Element;\r\n\r\n if (SVG_ELEMENTS.has(type)) {\r\n element = document.createElementNS(SVG_NAMESPACE, type);\r\n } else if (MATHML_ELEMENTS.has(type)) {\r\n element = document.createElementNS(MATHML_NAMESPACE, type);\r\n } else {\r\n element = document.createElement(type);\r\n }\r\n\r\n // Check if dangerouslySetInnerHTML is present and valid - it takes precedence over children\r\n const hasValidDangerouslySetInnerHTML = 'dangerouslySetInnerHTML' in props\r\n && props.dangerouslySetInnerHTML != null\r\n && typeof props.dangerouslySetInnerHTML === 'object'\r\n && '__html' in props.dangerouslySetInnerHTML\r\n && typeof props.dangerouslySetInnerHTML.__html === 'string';\r\n\r\n // Resolve container props (style props)\r\n const { className: containerClass, style: containerStyle } = resolveStyleProps(props);\r\n\r\n // Auto-set role for divider\r\n if (props.divider && !props.role) {\r\n element.setAttribute('role', 'separator');\r\n }\r\n\r\n // Apply container styles immediately (as base)\r\n if (containerStyle && !SVG_ELEMENTS.has(type) && !MATHML_ELEMENTS.has(type)) {\r\n applyStyles(element as HTMLElement, containerStyle);\r\n }\r\n\r\n let handledClass = false;\r\n\r\n // Set properties and attributes\r\n for (const [key, value] of Object.entries(props)) {\r\n // Skip container style props as they are already handled\r\n if (STYLE_PROPS.has(key)) continue;\r\n\r\n // Skip 'as' prop as it's handled above\r\n if (key === 'as') continue;\r\n\r\n if (key === 'children') {\r\n // Skip children if dangerouslySetInnerHTML is present and valid\r\n if (!hasValidDangerouslySetInnerHTML) {\r\n appendChildren(element, value);\r\n }\r\n } else if (key === 'dangerouslySetInnerHTML') {\r\n // Handle dangerouslySetInnerHTML - inject raw HTML\r\n handleDangerouslySetInnerHTML(element as HTMLElement, value);\r\n } else if (key === 'onload') {\r\n // Handle onload lifecycle event\r\n (element as any)['__onload'] = value;\r\n element.setAttribute('data-mine-onload', '');\r\n initOnLoadObserver();\r\n } else if (key === 'ref') {\r\n // Handle ref\r\n handleRef(element as HTMLElement, value);\r\n } else if (key.startsWith('on')) {\r\n // Handle events (onClick, onInput, etc)\r\n handleEvent(element, key, value);\r\n } else if (key === 'id') {\r\n // Handle id\r\n handleId(element, value);\r\n } else if (key === 'htmlFor') {\r\n // Handle htmlFor -> for\r\n handleHtmlFor(element, value);\r\n } else if (key === 'className' || key === 'class') {\r\n // Handle className/class\r\n handledClass = true;\r\n handleClassName(element, value, containerClass);\r\n } else if (key === 'style') {\r\n // Handle inline styles\r\n handleStyle(element as HTMLElement, value);\r\n } else if (isSignal(value)) {\r\n // Handle reactive props\r\n handleReactiveProp(element, key, value);\r\n } else if (typeof value === 'boolean') {\r\n // Handle boolean attributes (disabled, checked, etc)\r\n if (value) {\r\n element.setAttribute(key, '');\r\n }\r\n } else if (value != null) {\r\n // Handle static props\r\n // For SVG/MathML elements, always use setAttribute to preserve case sensitivity\r\n if (SVG_ELEMENTS.has(type) || MATHML_ELEMENTS.has(type)) {\r\n const attrValue = typeof value === 'string' ? normalizeString(value) : String(value);\r\n element.setAttribute(key, attrValue);\r\n } else {\r\n // For HTML elements, prefer property assignment\r\n if (key in element) {\r\n (element as any)[key] = value;\r\n } else {\r\n const attrValue = typeof value === 'string' ? normalizeString(value) : String(value);\r\n element.setAttribute(key, attrValue);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // If no explicit className was provided but we have container classes, apply them\r\n if (!handledClass && containerClass) {\r\n handleClassName(element, containerClass);\r\n }\r\n\r\n return element;\r\n }\r\n\r\n // ============================================================================\r\n // CHILDREN HANDLING\r\n // ============================================================================\r\n\r\n function appendChildren(parent: Element, children: any): void {\r\n const normalized = normalizeChildren(children);\r\n\r\n normalized.forEach(child => {\r\n if (child instanceof Node) {\r\n parent.appendChild(child);\r\n } else if (isSignal(child)) {\r\n // Reactive text node\r\n const textNode = document.createTextNode('');\r\n effect(() => {\r\n textNode.textContent = String(child());\r\n });\r\n parent.appendChild(textNode);\r\n } else if (child != null && child !== false) {\r\n // Static text node\r\n parent.appendChild(document.createTextNode(String(child)));\r\n }\r\n });\r\n }\r\n\r\n function normalizeChildren(children: any): any[] {\r\n if (children == null || children === false) {\r\n return [];\r\n }\r\n\r\n if (Array.isArray(children)) {\r\n return children.flatMap(normalizeChildren);\r\n }\r\n\r\n return [children];\r\n }\r\n\r\n // ============================================================================\r\n // REF HANDLING\r\n // ============================================================================\r\n\r\n function handleRef(element: HTMLElement, ref: any): void {\r\n if (isSignal(ref)) {\r\n ref.set(element);\r\n } else if (typeof ref === 'function') {\r\n ref(element);\r\n }\r\n }\r\n\r\n // ============================================================================\r\n // EVENT HANDLING\r\n // ============================================================================\r\n\r\n function handleEvent(element: Element, eventName: string, handler: any): void {\r\n if (typeof handler !== 'function') return;\r\n\r\n // Convert onClick → click, onInput → input, etc\r\n const event = eventName.slice(2).toLowerCase();\r\n\r\n element.addEventListener(event, handler);\r\n }\r\n\r\n // ============================================================================\r\n // CLASS NAME HANDLING\r\n // ============================================================================\r\n\r\n function handleClassName(element: Element, value: any, baseClass: string = ''): void {\r\n const setClass = (val: string) => {\r\n const fullClass = baseClass ? `${baseClass} ${val}` : val;\r\n const cleaned = cleanClassName(String(fullClass));\r\n if (element.namespaceURI === SVG_NAMESPACE) {\r\n element.setAttribute('class', cleaned);\r\n } else {\r\n element.className = cleaned;\r\n }\r\n };\r\n\r\n if (isSignal(value)) {\r\n // Reactive className\r\n effect(() => {\r\n const className = value();\r\n if (className != null) {\r\n setClass(String(className));\r\n } else if (baseClass) {\r\n setClass('');\r\n }\r\n });\r\n } else if (value != null) {\r\n // Static className\r\n setClass(String(value));\r\n }\r\n }\r\n\r\n // ============================================================================\r\n // ID HANDLING\r\n // ============================================================================\r\n\r\n function handleId(element: Element, value: any): void {\r\n if (isSignal(value)) {\r\n // Reactive id\r\n effect(() => {\r\n const id = value();\r\n if (id != null) {\r\n element.id = String(id);\r\n } else {\r\n element.removeAttribute('id');\r\n }\r\n });\r\n } else if (value != null) {\r\n // Static id\r\n element.id = String(value);\r\n }\r\n }\r\n\r\n // ============================================================================\r\n // HTML FOR HANDLING\r\n // ============================================================================\r\n\r\n function handleHtmlFor(element: Element, value: any): void {\r\n if (isSignal(value)) {\r\n // Reactive htmlFor\r\n effect(() => {\r\n const val = value();\r\n if (val != null) {\r\n element.setAttribute('for', String(val));\r\n } else {\r\n element.removeAttribute('for');\r\n }\r\n });\r\n } else if (value != null) {\r\n // Static htmlFor\r\n element.setAttribute('for', String(value));\r\n }\r\n }\r\n\r\n // ============================================================================\r\n // STYLE HANDLING\r\n // ============================================================================\r\n\r\n function handleStyle(element: HTMLElement, value: any): void {\r\n if (isSignal(value)) {\r\n // Reactive style object\r\n effect(() => {\r\n const styles = value();\r\n applyStyles(element, styles);\r\n });\r\n } else {\r\n // Static style\r\n applyStyles(element, value);\r\n }\r\n }\r\n\r\n function applyStyles(element: HTMLElement, styles: any): void {\r\n if (typeof styles === 'string') {\r\n element.style.cssText = styles;\r\n } else if (typeof styles === 'object' && styles != null) {\r\n Object.entries(styles).forEach(([key, value]) => {\r\n if (value != null) {\r\n // Convert camelCase to kebab-case\r\n const cssKey = key.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`);\r\n element.style.setProperty(cssKey, String(value));\r\n }\r\n });\r\n }\r\n }\r\n\r\n // ============================================================================\r\n // DANGEROUSLY SET INNER HTML\r\n // ============================================================================\r\n\r\n function handleDangerouslySetInnerHTML(element: HTMLElement, value: any): void {\r\n if (value != null && typeof value === 'object' && '__html' in value) {\r\n // Extract __html property and inject as raw HTML\r\n const html = value.__html;\r\n if (typeof html === 'string') {\r\n element.innerHTML = html;\r\n }\r\n }\r\n }\r\n\r\n // ============================================================================\r\n // REACTIVE PROP HANDLING\r\n // ============================================================================\r\n\r\n function handleReactiveProp(element: Element, key: string, signal: Signal<any>): void {\r\n effect(() => {\r\n const value = signal();\r\n\r\n if (value != null) {\r\n if (key in element) {\r\n // Set as property (for input.value, etc)\r\n ; (element as any)[key] = value;\r\n } else {\r\n // Set as attribute, normalize if string\r\n const attrValue = typeof value === 'string' ? normalizeString(value) : String(value);\r\n element.setAttribute(key, attrValue);\r\n }\r\n } else {\r\n element.removeAttribute(key);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Create a component from a function\r\n * Provides a cleaner API than raw JSX\r\n */\r\n export function component<P = any>(\r\n fn: (props: P) => JSXElement | null\r\n ): ComponentFunction<P> {\r\n return fn;\r\n }\r\n\r\n /**\r\n * Create a component with setup function\r\n * Similar to Vue's Composition API\r\n */\r\n export function defineComponent<P = any>(\r\n setup: (props: P) => () => JSXElement | null\r\n ): ComponentFunction<P> {\r\n return (props: P) => {\r\n const render = setup(props);\r\n return render();\r\n };\r\n }\r\n\r\n // ============================================================================\r\n // UTILITY FUNCTIONS\r\n // ============================================================================\r\n\r\n /**\r\n * Create multiple elements at once\r\n */\r\n export function createElements(elements: any[]): DocumentFragment {\r\n const fragment = document.createDocumentFragment();\r\n\r\n elements.forEach(el => {\r\n if (el instanceof Node) {\r\n fragment.appendChild(el);\r\n }\r\n });\r\n\r\n return fragment;\r\n }\r\n\r\n /**\r\n * Show/hide element based on condition\r\n */\r\n export function Show(props: {\r\n when: boolean | Signal<boolean>\r\n children: any\r\n }): JSXElement | null {\r\n if (isSignal(props.when)) {\r\n const placeholder = document.createComment('show');\r\n const parent = document.createDocumentFragment();\r\n parent.appendChild(placeholder);\r\n\r\n let currentElement: Element | null = null;\r\n\r\n effect(() => {\r\n const when = props.when as Signal<boolean>;\r\n const condition = when();\r\n\r\n if (condition && !currentElement) {\r\n // Show: create and insert element\r\n const children = normalizeChildren(props.children);\r\n currentElement = children[0] as Element;\r\n\r\n if (currentElement instanceof Node) {\r\n placeholder.parentNode?.insertBefore(currentElement, placeholder);\r\n }\r\n } else if (!condition && currentElement) {\r\n // Hide: remove element\r\n currentElement.remove();\r\n currentElement = null;\r\n }\r\n });\r\n\r\n return parent as any;\r\n } else {\r\n // Static condition\r\n return (props.when as boolean) ? jsx(Fragment, { children: props.children }) : null;\r\n }\r\n }\r\n\r\n /**\r\n * Render different elements based on condition\r\n */\r\n export function Switch(props: {\r\n children: { when: boolean | Signal<boolean>; children: any }[]\r\n }): JSXElement | null {\r\n // Find first matching case\r\n for (const caseItem of props.children) {\r\n const condition = isSignal(caseItem.when) ? caseItem.when() : caseItem.when;\r\n\r\n if (condition) {\r\n return jsx(Fragment, { children: caseItem.children });\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Iterate over array and render elements\r\n */\r\n export function For<T>(props: {\r\n each: T[] | Signal<T[]>\r\n children: (item: T, index: number) => JSXElement\r\n }): JSXElement {\r\n const fragment = document.createDocumentFragment();\r\n\r\n if (isSignal(props.each)) {\r\n // Reactive list\r\n const container = document.createElement('div');\r\n container.style.display = 'contents'; // Don't affect layout\r\n\r\n effect(() => {\r\n const each = props.each as Signal<T[]>;\r\n const items = each();\r\n container.innerHTML = ''; // Clear\r\n\r\n items.forEach((item: any, index: any) => {\r\n const element = props.children(item, index);\r\n if (element instanceof Node) {\r\n container.appendChild(element);\r\n }\r\n });\r\n });\r\n\r\n fragment.appendChild(container);\r\n } else {\r\n // Static list\r\n const each = props.each as T[];\r\n each.forEach((item, index) => {\r\n const element = props.children(item, index);\r\n if (element instanceof Node) {\r\n fragment.appendChild(element);\r\n }\r\n });\r\n }\r\n\r\n return fragment as any;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { J as JSXElement, R as RenderOptions, M as MountedComponent } from './jsx-dev-runtime-
|
|
2
|
-
export { C as ComponentFunction, d as ContainerAlign, a as ContainerAs, q as ContainerBg, s as ContainerBorderColor, t as ContainerBorderWidth, c as ContainerDirection, b as ContainerDisplay, j as ContainerFraction, f as ContainerGap, n as ContainerHeight, e as ContainerJustify, p as ContainerMaxHeight, l as ContainerMaxWidth, o as ContainerMinHeight, m as ContainerMinWidth,
|
|
1
|
+
import { J as JSXElement, R as RenderOptions, M as MountedComponent } from './jsx-dev-runtime-sMogz8rT.cjs';
|
|
2
|
+
export { C as ComponentFunction, d as ContainerAlign, G as ContainerAnimateDelay, F as ContainerAnimateDuration, H as ContainerAnimateEase, I as ContainerAnimateFill, E as ContainerAnimation, a as ContainerAs, q as ContainerBg, s as ContainerBorderColor, t as ContainerBorderStyle, u as ContainerBorderWidth, z as ContainerCursor, c as ContainerDirection, b as ContainerDisplay, j as ContainerFraction, f as ContainerGap, n as ContainerHeight, e as ContainerJustify, p as ContainerMaxHeight, l as ContainerMaxWidth, o as ContainerMinHeight, m as ContainerMinWidth, y as ContainerOverflow, B as ContainerPointerEvents, x as ContainerPosition, K as ContainerProps, v as ContainerRadius, D as ContainerResize, i as ContainerScale, w as ContainerShadow, g as ContainerSpace, h as ContainerSpaceOrAuto, r as ContainerTextColor, A as ContainerUserSelect, k as ContainerWidth, X as For, Q as Fragment, L as JSXProps, O as OverlayPosition, V as Show, W as Switch, S as component, U as createElements, T as defineComponent, N as jsx, P as jsxs } from './jsx-dev-runtime-sMogz8rT.cjs';
|
|
3
3
|
import '@minejs/signals';
|
|
4
4
|
|
|
5
5
|
/**
|