fluxel
Version:
An ultra-lightweight, high-performance library for efficient DOM building and dynamic web UIs
13 lines (12 loc) • 11.3 kB
JavaScript
/**
* fluxel-jsx-runtime v0.6.3
*
* Copyright (c) 2025 mtripg6666tdr
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @see https://github.com/mtripg6666tdr/fluxel
* @license MIT
*/
;var FluxelJSXRuntime=(()=>{var I=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var X=Object.getOwnPropertyNames;var Y=Object.prototype.hasOwnProperty;var Z=(e,t)=>{for(var r in t)I(e,r,{get:t[r],enumerable:!0})},k=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of X(t))!Y.call(e,o)&&o!==r&&I(e,o,{get:()=>t[o],enumerable:!(n=Q(t,o))||n.enumerable});return e};var ee=e=>k(I({},"__esModule",{value:!0}),e);var fe={};Z(fe,{Fragment:()=>K,jsx:()=>ue,jsxDEV:()=>ue,jsxs:()=>ue});var C=new WeakMap;function T(e){var t;(t=C.get(e))===null||t===void 0||t.forEach(r=>r()),C.delete(e),e.childNodes.forEach(r=>T(r))}function z(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var v=class H{get value(){return this._accessor.get()}set value(t){this._accessor.set(t)}derive(t){let r={get:()=>t(this.value),set:n=>{throw new TypeError("Cannot set value of derived dependency")}};return new H(r,this.addDependency)}constructor(t,r){z(this,"_accessor",void 0),z(this,"addDependency",void 0),this._accessor=t,this.addDependency=r}};var te=["object","a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","script","search","section","select","slot","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"],_=te;function P(){return typeof window<"u"&&"fluxelH"in window?window.fluxelH:null}function b(e,t){if(typeof e!="string")throw new TypeError("Expected string for tagName, got ".concat(typeof e));let r=P(),n=r?r.getElementByEid("".concat(r.count++)):document.createElement(e);return q(n,t)}function q(e,t){let r=!!P(),n=null,o=null,a=null,h=!1,l=null;if(t)if(typeof t=="string"||Array.isArray(t)||t instanceof Node||t instanceof v){o=t;let s=O(t);a=s.children,h=s.variableChildrenLength,l=s.reactiveIndex}else{if(n=Object.assign(Object.create(null),t),"textContent"in n)throw new TypeError("textContent is not allowed");if("children"in n&&n.children!==null&&n.children!==void 0){o=n.children;let s=O(n.children);a=s.children,h=s.variableChildrenLength,l=s.reactiveIndex,delete n.children}}n=n||{},a=a||null;let p=new Map;for(let s in n)if(s.startsWith("on")&&n[s]){let i=s.slice(2).toLowerCase(),d=p.get(i)||[];p.set(i,d);let c=n[s];if(Array.isArray(c))c.forEach(f=>{if(typeof f=="function")d.push(f);else throw new TypeError("Expected function for event handler ".concat(s,", got ").concat(typeof f))});else if(typeof c=="function")d.push(c);else throw new TypeError("Expected function for event handler ".concat(s,", got ").concat(typeof c));delete n[s]}let u=Object.assign(Object.create(null),"style"in n?n.style:null);if(u&&typeof u=="object"&&!Array.isArray(u)){for(let s in u)if(u[s]instanceof v){let i=u[s];i.addDependency(e,()=>{s.startsWith("--")?e.style.setProperty(s,i.value):e.style[s]=i.value}),u[s]=i.value}}delete n.style;let g=new Set,x=s=>{if(!s)return;let i=s.trim();i&&g.add(i)};if(e.classList.forEach(s=>x(s)),n.classList){let s=c=>{if(typeof c=="string")x(c);else if("forEach"in c)c.forEach(f=>x(f));else if(c instanceof v){let f=c;f.addDependency(e,()=>{e.className="",g.clear(),s(f.value),g.forEach(m=>e.classList.add(m))}),s(f.value)}else throw new TypeError("Expected string or iterable for 'classList', got ".concat(typeof n.classList))},i=n.classList,d=Array.isArray(i)&&i.some(c=>c instanceof v)?new v({get:()=>i.map(c=>c instanceof v?c.value:c),set:()=>{throw new TypeError("Cannot set value of classList directly")}},(c,f)=>{i.forEach(m=>m instanceof v&&m.addDependency(c,f))}):n.classList;s(d),delete n.classList}"className"in n&&delete n.className;let w=n.dataset||null;if(w&&typeof w=="object"&&!Array.isArray(w)){for(let s in w)if(w[s]instanceof v){let i=w[s];i.addDependency(e,()=>{e.dataset[s]=i.value}),w[s]=i.value}}delete n.dataset;for(let s in n)if(n[s]instanceof v){let i=n[s];i.addDependency(e,()=>{e[s]=i.value}),r||(e[s]=i.value),delete n[s]}if(r||(Object.assign(e,n),e.style&&u&&(Object.assign(e.style,u),Object.keys(u).forEach(s=>{s.startsWith("--")&&e.style.setProperty(s,u[s])})),e.dataset&&w&&Object.assign(e.dataset,w),g.size>0&&g.forEach(s=>e.classList.add(s))),h&&o)o.addDependency(e,()=>{let s=se(e.childNodes),i=O(o).children,d=W(s),c=W(i);if(s.length===i.length&&s.every((y,E)=>y.isSameNode(i[E])))return;let f=s.reduce((y,E,V)=>{var j;let R=(j=c.get(E))!==null&&j!==void 0?j:-1;if(R<0)return y;let M=new Set([V]),$=V;for(let N=R+1;N<i.length;N++){var S;let A=(S=d.get(i[N]))!==null&&S!==void 0?S:-1;A<$||(M.add(A),$=A)}return M.size>y.size?M:y},new Set),m=new Set;if(f.size!==s.length){for(let y=s.length-1;y>=0;y--)if(!f.has(y)){let E=s[y];e.removeChild(E),m.add(E)}}e.childNodes.length!==i.length&&(i.forEach((y,E)=>{m.delete(y),e.childNodes[E]?e.childNodes[E]!==y&&e.insertBefore(y,e.childNodes[E]):e.appendChild(y)}),m.forEach(y=>T(y)))});else if(l&&l.length>0&&o)for(let s of l){let i=o instanceof v?o:o[s];i instanceof v&&(i.addDependency(e,()=>{let d=O(i.value).children[0],c=e.childNodes[s];c!==d&&(e.replaceChild(d,c),T(c))}),a[s]=i.value)}return a&&(r?a.forEach((s,i)=>{s instanceof Text&&e.replaceChild(s,e.childNodes[i])}):e.append(...a)),p.forEach((s,i)=>{s.forEach(d=>{e.addEventListener(i,d)})}),e}function O(e){let t=!1,r=[],n=(o,a=0,h=-1)=>{if(a>1)throw new TypeError("Children cannot be nested more than one level deep");if(typeof o=="string")return[document.createTextNode(o)];if(Array.isArray(o)){o=o.flat(1/0);let l=o.length;return o.flatMap((u,g)=>n(u,a+(l===1?0:1),g))}else{if(o instanceof Node)return[o];if(o instanceof v){let l=o.value;if(Array.isArray(l))return a===0&&(t=!0),l.flat(1/0).flatMap((p,u)=>n(p,a+1,u));if(l instanceof Node)return a===0&&(t=!0),r.push(h),[l];{let p=document.createTextNode(l);return o.addDependency(p,()=>{p.textContent=String(o.value)}),[p]}}else return[]}};return{children:n(e),variableChildrenLength:t,reactiveIndex:r}}b.fragment=function(e,t){let r=O(e),n=r.children,o=r.variableChildrenLength,a=r.reactiveIndex,h=n;if(h.forEach(l=>{l instanceof HTMLElement&&q(l,t)}),o)return e.derive(()=>n);if(a.length>0)for(let l of a)h[l]=e[l].derive(()=>n[l]);return h};function ne(){let e=document.querySelector("style[data-fluxel]");if(e)return e;let t=document.createElement("style");return t.dataset.fluxel="true",document.head.appendChild(t),t}b.forwardStyle=function(e){P()||b.forwardStyleCache.includes(e)||(b.forwardStyleCache.push(e),typeof window<"u"&&(ne().textContent+=e))};b.forwardStyleCache=[];function re(){return"".concat(Date.now().toString(36)).concat(Math.random().toString(36).substring(2))}function se(e){if(typeof Array.from=="function")return Array.from(e);let t=[];for(let r=0;r<e.length;r++)t.push(e[r]);return t}function W(e){let t=new Map;return e.forEach((r,n)=>{t.set(r,n)}),t}b.useUniqueString=function(e){let t=re();return e(t)};b.createComponent=function(e){return(t={})=>e(t)};b.createElement=b;var B=b;_.forEach(e=>{B[e]=t=>b(e,t)});var L=B;function ie(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function oe(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{},n=Object.keys(r);typeof Object.getOwnPropertySymbols=="function"&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(o){return Object.getOwnPropertyDescriptor(r,o).enumerable}))),n.forEach(function(o){ie(e,o,r[o])})}return e}function ae(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function le(e,t){return t=t!=null?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ae(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}var D=L,ce=["render","use","useWithMemo","listenTarget"];D.reactive=function(e,t){let r=Object.create(null),n=le(oe({},e),{render:(a,h=!1)=>{if(!h&&a&&n.listenTarget.dispatchEvent(new CustomEvent(a,{detail:{newValue:n[a]}})),a){var l;(l=r[a])===null||l===void 0||l.listeners.forEach(p=>p.call(null))}else for(let p in r)r[p].listeners.forEach(u=>u.call(null))},use:(a,h)=>{let l=-1,p=-1,u=[],g=new Map,x=new Map,w=(i,d,c=!1)=>{if(c){let f=JSON.stringify(d);if(x.has(f)){let y=x.get(f);return g.set(f,y),y}let m=i();return g.set(f,m),m}if(u[l]){if(u[l].deps.every((m,y)=>m===d[y]))return u[l++].memoValue;u[l].deps=d;let f=u[l].memoValue=i();return l++,f}else return u.push({deps:d,memoValue:i()}),u[l++].memoValue},s=h?i=>{l===-1&&p!==-1&&(p=l),l=0,g=new Map;let d=h(i,w);if(p!==-1&&p!==l)throw new TypeError("Memoization count mismatch");return x=g,d}:void 0;if(Array.isArray(a)){let i=a.map(d=>[d,n.use(d)]);return new v({get:()=>Object.fromEntries(i.map(d=>[d[0],d[1].value])),set:d=>{throw new TypeError("Invalid")}},(d,c)=>{let f=U(c);i.forEach(m=>m[1].addDependency(d,f))}).derive(s)}else{let i;return r[a]?i=r[a].dep:n[a]instanceof v?i=n[a]:(i=new v({get:()=>n[a],set:d=>{n[a]=d}},function(c,f){if(!r[a].listeners.includes(f)){r[a].listeners.push(f);let m=()=>{r[a].listeners=r[a].listeners.filter(y=>y!==f)};C.has(c)?C.get(c).add(m):C.set(c,new Set([m]))}}),r[a]={dep:i,listeners:[]}),s?i.derive(s):i}},useWithMemo:a=>{let h=null,l=n.use(a,(p,u)=>(h=u,p));return l.value,[l,h]},listenTarget:new EventTarget}),o=new Proxy(n,{set(a,h,l){if(ce.includes(h))throw new TypeError("Cannot set the specified property: ".concat(String(h)));let p=a[h];return p===l||(a[h]=l,a.listenTarget.dispatchEvent(new CustomEvent(h,{detail:{oldValue:p,newValue:l}})),a.render(h)),!0}});return t(o)};D.schedule=function(e){typeof window<"u"&&setTimeout(e,0)};D.mergeDependencies=function(...e){return new v({get:()=>e.map(t=>t.value),set:t=>{throw new TypeError("Invalid operation")}},(t,r)=>{let n=U(r);e.forEach(o=>o.addDependency(t,n))})};function U(e){let t=!1;return()=>{t||(t=!0,window.setTimeout(()=>{t=!1,e()},0))}}var J=D;var F=J;F.createStatefulComponent=function(e,t){return(r={})=>F.reactive(typeof t=="function"?t(r):t||{},n=>e(r,n))};var G=F;var de=L.createComponent(e=>{let t=Object.assign({},e),r=t.children;return delete t.children,L.fragment(r,t)}),K=de;function ue(e,t,r){if(t!=null&&t.className){var n,o;(o=(n=t).classList)!==null&&o!==void 0||(n.classList=[]),t.classList.push(t.className.split(" ").filter(Boolean)),delete t.className}return typeof e=="string"?G.createElement(e,t):e(t)}return ee(fe);})();