lithent 1.18.1 → 1.18.3

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 CHANGED
@@ -90,14 +90,14 @@ pnpm add lithent
90
90
 
91
91
  #### Or Use CDN
92
92
 
93
- * UMD : https://cdn.jsdelivr.net/npm/lithent@1.18.1/dist/lithent.umd.js
94
- * UMD-HELPER: https://cdn.jsdelivr.net/npm/lithent@1.18.1/helper/dist/lithentHelper.umd.js
95
- * UMD-FTAGS: https://cdn.jsdelivr.net/npm/lithent@1.18.1/ftags/dist/lithentFTags.umd.js
96
- * UMD-TAG: https://cdn.jsdelivr.net/npm/lithent@1.18.1/tag/dist/lithentTag.umd.js
97
- * ESM : https://cdn.jsdelivr.net/npm/lithent@1.18.1/dist/lithent.mjs
98
- * ESM-HELPER: https://cdn.jsdelivr.net/npm/lithent@1.18.1/helper/dist/lithentHelper.mjs
99
- * ESM-FTAGS: https://cdn.jsdelivr.net/npm/lithent@1.18.1/ftags/dist/lithentFTags.mjs
100
- * ESM-TAG: https://cdn.jsdelivr.net/npm/lithent@1.18.1/tag/dist/lithentTag.mjs
93
+ * UMD : https://cdn.jsdelivr.net/npm/lithent@1.18.3/dist/lithent.umd.js
94
+ * UMD-HELPER: https://cdn.jsdelivr.net/npm/lithent@1.18.3/helper/dist/lithentHelper.umd.js
95
+ * UMD-FTAGS: https://cdn.jsdelivr.net/npm/lithent@1.18.3/ftags/dist/lithentFTags.umd.js
96
+ * UMD-TAG: https://cdn.jsdelivr.net/npm/lithent@1.18.3/tag/dist/lithentTag.umd.js
97
+ * ESM : https://cdn.jsdelivr.net/npm/lithent@1.18.3/dist/lithent.mjs
98
+ * ESM-HELPER: https://cdn.jsdelivr.net/npm/lithent@1.18.3/helper/dist/lithentHelper.mjs
99
+ * ESM-FTAGS: https://cdn.jsdelivr.net/npm/lithent@1.18.3/ftags/dist/lithentFTags.mjs
100
+ * ESM-TAG: https://cdn.jsdelivr.net/npm/lithent@1.18.3/tag/dist/lithentTag.mjs
101
101
 
102
102
 
103
103
  It's easier to use lithent with JSX or HTM.
@@ -122,9 +122,9 @@ import { fTags, fFragment, fMount } from 'lithent/ftags';
122
122
  const { section, div, p, br, strong } = fTags;
123
123
 
124
124
  /* UMD
125
- <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.1/dist/lithent.umd.js"></script>
126
- <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.1/helper/dist/lithentHelper.umd.js"></script>
127
- <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.1/ftags/dist/lithentFTags.umd.js"></script>
125
+ <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.3/dist/lithent.umd.js"></script>
126
+ <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.3/helper/dist/lithentHelper.umd.js"></script>
127
+ <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.3/ftags/dist/lithentFTags.umd.js"></script>
128
128
 
129
129
  const { render } = lithent;
130
130
  const { fTags, fMount, fFragment } = lithentFTags;
@@ -197,10 +197,10 @@ const destroy = render(lTag`<${Component} />`, document.getElementById('root'),
197
197
  #### With UMD
198
198
 
199
199
  ```html
200
- <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.1/dist/lithent.umd.js"></script>
201
- <!--script src="https://cdn.jsdelivr.net/npm/lithent@1.18.1/helper/dist/lithentHelper.umd.js"></script-->
202
- <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.1/tag/dist/lithentTag.umd.js"></script>
203
- <!--script src="https://cdn.jsdelivr.net/npm/lithent@1.18.1/ftags/dist/lithentFTags.umd.js"></script-->
200
+ <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.3/dist/lithent.umd.js"></script>
201
+ <!--script src="https://cdn.jsdelivr.net/npm/lithent@1.18.3/helper/dist/lithentHelper.umd.js"></script-->
202
+ <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.3/tag/dist/lithentTag.umd.js"></script>
203
+ <!--script src="https://cdn.jsdelivr.net/npm/lithent@1.18.3/ftags/dist/lithentFTags.umd.js"></script-->
204
204
 
205
205
  <div id="root"></div>
206
206
 
@@ -1,2 +1,2 @@
1
- (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const o of l)if(o.type==="childList")for(const c of o.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&r(c)}).observe(document,{childList:!0,subtree:!0});function n(l){const o={};return l.integrity&&(o.integrity=l.integrity),l.referrerPolicy&&(o.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?o.credentials="include":l.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(l){if(l.ep)return;l.ep=!0;const o=n(l);fetch(l.href,o)}})();const E=e=>typeof e=="object"&&!("resolve"in e),N=(e,t)=>E(e)&&e.type===t,Ce=(e,t)=>"ctor"in e?e.ctor===(t==null?void 0:t.ctor):e===(t==null?void 0:t.ctor),Re=(e,t)=>{var n,r;return E(e)&&(t==null?void 0:t.type)==="fragment"&&((n=t==null?void 0:t.children)==null?void 0:n.length)===((r=e==null?void 0:e.children)==null?void 0:r.length)},we=(e,t)=>{var n,r;return E(e)&&(t==null?void 0:t.type)==="element"&&(t==null?void 0:t.tag)===e.tag&&((n=t==null?void 0:t.children)==null?void 0:n.length)===((r=e==null?void 0:e.children)==null?void 0:r.length)},J=(e,t)=>E(e)&&(t==null?void 0:t.type)===e.type,xe=(e,t)=>{var n,r;return E(e)&&(t==null?void 0:t.type)===e.type&&(S(h((e.children||[])[0]))&&S(h(((t==null?void 0:t.children)||[])[0]))||((n=t==null?void 0:t.children)==null?void 0:n.length)===((r=e==null?void 0:e.children)==null?void 0:r.length))},h=e=>{var t,n;return((t=e==null?void 0:e.compProps)==null?void 0:t.key)??((n=e==null?void 0:e.props)==null?void 0:n.key)},y=e=>e&&["fragment","loop"].includes(e),U=e=>typeof e=="function"&&!ne(e)||typeof e=="object"&&"resolve"in e,ne=e=>typeof e=="function"&&e===x,re=e=>E(e)&&!e.type,S=e=>e!=null,_=(e,t)=>e==="style"&&typeof t=="object",Ne=(e,t)=>e==="ref"&&typeof t=="object",Ue=(e,t)=>{const n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);return n&&n.get&&n.set},Le=e=>{let t="et";return U(e)?t="c":N(e,"fragment")?t="f":N(e,"element")?t="e":N(e,"loop")?t="l":N(e,"text")?t="t":re(e)&&(t="et"),t},Oe={c:Ce,l:xe,t:J,e:we,f:Re,et:J},P=Symbol.for("lithentWDomSymbol"),b={value:""},R={value:{}},j={value:!1},p=new WeakMap,Ve=e=>{p.set(e,{vd:{value:null},up:()=>{},upR:[],upS:{value:0},upD:[],upCB:[],mts:[],umts:[]})},w=()=>R.value,z=(e,t)=>p.get(e)?p.get(e)[t]:null,Ae=e=>R.value=e,Te=e=>{R.value=e,Ve(e)},m=e=>e.getParent&&e.getParent(),C=Object.entries,le=Object.keys,L=Object.assign,De=e=>{p.get(w()).umts.push(e)},O=e=>{const{compKey:t}=e;t&&Me(t),oe(e)},oe=e=>{(e.children||[]).forEach(t=>{t.compKey?O(t):oe(t)})},Me=e=>{const t=p.get(e);t&&(t.umts.forEach(n=>n()),t.umts=[],p.delete(e))};let k=[];const H=()=>{k.forEach(e=>ke(e)),k=[]},je=e=>{e.compKey&&k.push(e)},ce=e=>{var t;return(((t=p.get(w()))==null?void 0:t.mts)||[]).push(e)},ke=e=>{const{compKey:t}=e;if(t){const n=p.get(t),r=n==null?void 0:n.mts,l=n==null?void 0:n.upS;R.value=t,l&&(l.value=0),r&&(n.mts=[],r.forEach(o=>{const c=o();c&&De(c)}))}},G=(e,t=()=>[])=>{const n=p.get(w()),{upD:r,upS:l}=n,o=r[l.value];if(o&&Fe(o,t())){const c=e();c&&n.upCB.push(c)}r[l.value]=t(),l.value+=1},$e=e=>{const{compKey:t}=e;if(t){const n=p.get(t),r=n==null?void 0:n.upCB,l=n==null?void 0:n.upS;R.value=t,l&&(l.value=0),e.ctor&&r&&(n.upCB=[],r.forEach(o=>o()))}},Fe=(e,t)=>e.length?e.some((n,r)=>n!==t[r]):!0,Ie=e=>e==="className"?"class":e,ue=e=>e.replace(/^on(.*)/,(t,n)=>n.toLowerCase()),W=()=>new DocumentFragment,Q=e=>document.createElement(e),Ke=(e,t,n,r)=>{e.isRoot=!0,t??(t=document.body),e.wrapElement=t;const l=A(e,r);return t.tagName==="HTML"?t.replaceWith(l):t.appendChild(l),H(),()=>{var o;const c=(o=p.get(e.compProps||{}))==null?void 0:o.vd.value;c&&O(c),V(c||e),Be(c||e)}},ie=e=>{const{needRerender:t}=e;t&&t!=="N"&&({A:Y,D:q,R:We,U:F,CNSU:F,SR:se,SU:He}[t](e),delete e.needRerender,delete e.oldChildren,delete e.oldProps)},V=e=>{e.props&&e.el&&he(e.props,e.el),(e.children||[]).forEach(t=>{V(t)})},Be=e=>{de(e,e.wrapElement)},q=e=>{e.oldProps&&e.el&&he(e.oldProps,e.el),de(e,T(m(e)))},de=(e,t)=>{var n,r;t&&e.el&&([1,3].includes((n=e.el)==null?void 0:n.nodeType)?t.removeChild(e.el):((r=e.el)==null?void 0:r.nodeType)===11&&ae(e),delete e.el)},ae=(e,t)=>{((e==null?void 0:e.oldChildren)||(e==null?void 0:e.children)||[]).forEach(n=>{var r;const l=(r=n.el)==null?void 0:r.nodeType;l&&([1,3].includes(l)?n.el.tagName==="HTML"?n.el.innerHTML="":n.el.remove():l===11&&ae(n))})},se=e=>{q(e),Y(e)},He=e=>{if(F(e),m(e).needRerender!=="CNSU"){const t=pe(e);Y(e,t)}},Y=(e,t)=>{t||(t=A(e));const n=m(e);if(n.type){const r=T(n),l=n.type==="loop"&&n.needRerender&&n.needRerender!=="CNSU"?$(n,m(n)):$(e,n);t&&r&&(e.tag!=="portal"&&(l?r.insertBefore(t,l):r.appendChild(t)),H())}},pe=e=>y(e.type)?((e==null?void 0:e.children)||[]).reduce((t,n)=>{const r=pe(n);return r&&t.appendChild(r),t},W()):e.el,$=(e,t)=>{const n=t.children||[],r=n.indexOf(e)+1,l=n.slice(r),o=ve(l),c=t.type||"";if(o)return o;if(!t.isRoot&&y(c))return $(t,m(t));if(t.isRoot&&y(c)&&t.afterElement)return t.afterElement},ve=e=>e.reduce((t,n)=>{const r=n.type,l=n.el,o=r&&y(r);return t||(o?ve(n.children||[]):l&&l.nodeType!==11?l:t)},void 0),We=e=>{const t=m(e),n=e.el;if(t.type&&n)if(n.nodeType===11)se(e);else{const r=T(t),l=A(e);r&&e.tag!=="portal"&&r.replaceChild(l,n),H()}},he=(e,t)=>{C(e||{}).forEach(([n,r])=>{n.match(/^on/)&&t.removeEventListener(ue(n),r)})},F=e=>{var t;const n=e.el;if(e.type==="text"){qe(e);return}if(n){const{oldProps:r,props:l}=e;fe(l,n,r),delete e.oldProps,e.tag==="input"&&(n.value=String(((t=e==null?void 0:e.props)==null?void 0:t.value)||""))}(e.children||[]).forEach(r=>ie(r)),$e(e)},qe=e=>{const t=e.el;t&&(t.nodeValue=String(e.text))},fe=(e,t,n,r)=>{const l={...n};C(e||{}).forEach(([o,c])=>{o==="key"||c===l[o]||o==="portal"&&typeof c=="object"||(o==="innerHTML"&&typeof c=="string"?t.innerHTML=c:_(o,c)?ze(c,_(o,l.style)?l.style:{},t):Ne(o,c)?c.value=t:o.match(/^on/)?_e(t,o,c,l[o]):o&&(o!=="type"&&Ue(t,o)?t[o]=c:Ye(Ie(o),t,c))),delete l[o]}),le(l).forEach(o=>t.removeAttribute(o))},Ye=(e,t,n)=>{b.value&&e!=="xmlns"?t.setAttributeNS(null,e,n):t.setAttribute(e,n)},A=(e,t)=>{let n;const{type:r,tag:l,text:o,props:c,children:i=[]}=e,u=y(r);return l==="svg"&&(b.value=String(c==null?void 0:c.xmlns)),u?n=W():r==="element"&&l?l==="portal"&&c!=null&&c.portal?n=c.portal:n=b.value?document.createElementNS(b.value,l):Q(l):r==="text"&&S(o)?n=document.createTextNode(String(o)):n=Q("e"),e.el=n,Je(i,n,t),fe(c,n,null),je(e),l==="svg"&&(b.value=""),n},Je=(e,t,n)=>{const r=e.reduce((l,o)=>{if(o.type){const c=A(o,n);o.tag!=="portal"&&!n&&l.appendChild(c)}return l},W());t&&r.hasChildNodes()&&t.appendChild(r)},_e=(e,t,n,r)=>{const l=ue(t);r!==n&&(r&&e.removeEventListener(l,r),n&&e.addEventListener(l,n))},ze=(e,t,n)=>{const r={...t},l=n==null?void 0:n.style;l&&(C(e).forEach(([o,c])=>{l[o]=c,delete r[o]}),C(r).forEach(([o])=>l[o]=""))},T=e=>{const t=y(e.type);return e.isRoot&&t?e.wrapElement:t?T(m(e)):e.el},D=(e,t)=>Ge(e,Oe[Le(e)](e,t),t),Ge=(e,t,n)=>{const r=rt(e,t,n),l=[r,t,n],o=Xe(...l),c=o==="N";return c||(r.children=lt(...l)),r.needRerender=o,Qe(r,n,o),!c&&n&&(n.isLegacy=!0,delete n.children),r},Qe=(e,t,n)=>{n!=="A"&&t&&(e.el=t.el),n&&["D","R","SR"].includes(n)&&(t&&(O(t),V(t)),e.oldChildren=t==null?void 0:t.children),e.oldProps=t==null?void 0:t.props},Xe=(e,t,n)=>{const r=n&&n.type,l=re(e),o=e.isRoot,c=n&&m(n),i=!o&&(c==null?void 0:c.type),u=h(e),s=i==="loop"&&S(u),v=e.type==="text"&&t&&e.text===(n==null?void 0:n.text),f=e===n;let a;return l?a="D":v||f?a="N":r?t?a=s?"SU":"U":a=s?"SR":"R":a="A",e.type==="loop"&&a==="U"&&n&&Ze(e,n)&&(a="CNSU"),a},Ze=(e,t)=>{const n=[...(t==null?void 0:t.children)||[]],r=[...(e==null?void 0:e.children)||[]].filter(c=>n.find(i=>h(c)===h(i))),l=n.filter(c=>r.find(i=>h(c)===h(i)));let o=l.length===r.length;return o&&(o=l.every((c,i)=>h(c)===h(r[i]))),o},et=(e,t)=>{e&&t!==e&&(le(e).forEach(n=>delete e[n]),C(t||{}).forEach(([n,r])=>e[n]=r))},tt=(e,t)=>{e&&t!==e&&(e.splice(0,e.length),t&&t.forEach(n=>e.push(n)))},nt=(e,t)=>{const{compProps:n,compChild:r}=e,{props:l,children:o}=t;return n&&et(n,l),r&&tt(r,o),e.reRender&&e.reRender()},rt=(e,t,n)=>U(e)?t&&n?nt(n,e):e.resolve():e,lt=(e,t,n)=>t&&n?ct(e,n):ot(e),ot=e=>(e.children||[]).map(t=>L(D(t),{getParent:()=>e})),ct=(e,t)=>e.type==="loop"&&S(h((e.children||[])[0]))?ut(e,t):(e.children||[]).map((n,r)=>L(D(n,(t.children||[])[r]),{getParent:()=>e})),ut=(e,t)=>{const[n,r]=it(e,t);return r.forEach(l=>{O(l),V(l),q(l)}),n},it=(e,t)=>{const n=[...e.children||[]],r=[...t.children||[]];return[n.map(l=>{const o=dt(l,r),c=D(l,o);return o&&r.splice(r.indexOf(o),1),c.getParent=()=>e,c}),r]},dt=(e,t)=>t.find(n=>h(n)===h(e)),I=new Map;let K=!1;const at=(e,t)=>{p.get(e)&&(p.get(e).up=()=>{I.set(e,t),K||(K=!0,queueMicrotask(pt))})},st=e=>()=>{var t;const n=(t=p.get(e))==null?void 0:t.up;let r=!1;return n&&(n(),r=!0),r},pt=()=>{I.forEach(e=>{e()}),I.clear(),K=!1},me=(e,t=()=>[])=>{p.get(w()).upR.push(()=>G(e,t)),G(e,t)},vt=()=>{var e;const t=(e=p.get(w()))==null?void 0:e.upR;t!=null&&t.length&&t.forEach(n=>n())},x=(e,...t)=>({type:"fragment",[P]:!0,children:t}),X=(e,t,...n)=>{const r={value:void 0},l=t||{},o=be(r,n),c=yt(e,l,o);return U(c)||(r.value=c),c},ge=e=>(t,n)=>e,ht=(e,t,n,r)=>{var l;if(r.isLegacy)return;j.value=!0;const o=ye(e,t,n),c=D(o,r),{isRoot:i,getParent:u,wrapElement:s,afterElement:v}=r;if(c.getParent=u,!i&&u){const f=((l=u())==null?void 0:l.children)||[],a=f.indexOf(r);f.splice(a,1,c)}else c.isRoot=!0,c.wrapElement=s,c.afterElement=v;j.value=!1,ie(c)},ye=(e,t,n)=>({tagName:e.name,ctor:e,props:t,children:n,resolve:(r=t)=>{Te(r);const l=e(t,n),o=(typeof l=="function"?l:()=>()=>l)(st(r),t,n);return ft(o,r,e,t,n)}}),ft=(e,t,n,r,l)=>{let o=e,c=e(r);c.reRender&&(o=u=>{const s=e(u),v=x({},s);return s.getParent=()=>v,v},c=o(r));const i=mt(o,t,n,r,l);return Ee(c,t,n,r,l,i),c},mt=(e,t,n,r,l)=>{const o=()=>gt(e,t,n,r,l,o);return o},gt=(e,t,n,r,l,o)=>{Ae(t),vt();const c=e(r);return Ee(c,t,n,r,l,o),c},Ee=(e,t,n,r,l,o)=>{L(e,{compProps:r,compChild:l,ctor:n,tagName:n.name,compKey:t,reRender:o}),at(t,()=>ht(n,r,l,e)),z(t,"vd")&&(z(t,"vd").value=e)},yt=(e,t,n)=>{if(ne(e))return x(t,...n);if(U(e)){const r=ye(e,t,n);return j.value?r:r.resolve()}return{type:"element",[P]:!0,tag:e,props:t,children:n}},be=(e,t)=>t.map(n=>L(Et(n),{getParent:()=>e.value})),Et=e=>{if(e==null||e===!1)return{type:null,[P]:!0};if(Array.isArray(e)){const t={value:void 0},n=be(t,e),r={type:"loop",[P]:!0,children:n};return t.value=r,r}else if(typeof e=="string"||typeof e=="number")return{type:"text",[P]:!0,text:e};return e},bt=e=>({value:e});function d(e,t,n,r,l,o){const{children:c,...i}=t;if(c){const u=Array.isArray(c)?c:[c];return X(e,{...i,key:n},...u)}return X(e,{...i,key:n})}const B=(e,t)=>{let n=e;return{get value(){return n},get v(){return n},set value(r){n=r,t()},set v(r){n=r,t()}}},Pt=e=>{let t=e;return{get value(){return t()},get v(){return t()},set value(n){throw new Error("You can't change 'computed'")},set v(n){throw new Error("You can't change 'computed'")}}},St=(e,t=()=>{},n=()=>[])=>{ce(()=>(e(),t)),me(()=>(t&&t(),e),n)},Ct={cache:!0};function Rt(e){const t={value:!1},n=!Array.isArray(e)&&typeof e=="object"&&e!==null?e:{value:e},r=new Set,l=[],o=new WeakMap;return(c,i,u)=>{const{cache:s}=Object.assign({},Ct,u||{});if(s&&c&&o.has(c))return o.get(c);const v={},f=new Set;let a={value:null},g=()=>{};return l.push(v),c&&i&&(g=()=>c(a.value),a.value=Z(n,t,r,f,l,g,v),t.value=!0,i(a.value),t.value=!1),a.value||(a.value=Z(n,t,r,f,l),c&&(g=()=>c(a.value),r.add(g))),c&&(xt(g,r,v,f),o.set(c,a.value)),a.value}}function Z(e,t,n,r,l,o,c){return new Proxy(e,{get(i,u){return o&&c&&t.value&&(c[u]??(c[u]=new Set),c[u].has(o)||(c[u].add(o),r.add(u))),i[u]},set(i,u,s){return i[u]===s||(i[u]=s,wt(n,l,u)),!0}})}function wt(e,t=[],n){const r=new Set;te(e).forEach(l=>r.add(l)),(t||[]).forEach(l=>{const o=l[n]||new Set;te(o).forEach(c=>r.add(c)),ee(r,o)}),ee(r,e)}function ee(e,t){e.forEach(n=>{t.delete(n)})}function te(e){const t=[];return e.forEach(n=>{n()===!1&&t.push(n)}),t}function xt(e,t,n,r){const l=e();l instanceof AbortSignal&&l.addEventListener("abort",()=>{const o=n||{};t.delete(e),Object.entries(o).forEach(([c,i])=>{i.delete(e),r.delete(c)})})}const Nt=ge((e,t,n)=>{const r=B(1,e),l=B('"destructuring" the "props" value directly from the mount function will cause referencing issues, so if you want to use it, you need to "destructuring" it from the internal function (updater).',e),o=()=>t.parentValue,c=t.parentValue,i=Pt(()=>r.v+s+t.parentValue),u=Rt({text:"s",count:0})(e);let s=t.parentValue;const v=bt(null),f=()=>{r.v=r.v+1,s+=1},a=M=>{l.v=M.target.value},g=()=>{u.count+=1,u.text+="1"},Pe=()=>(console.log("MOUNTED",v),()=>console.log("UNMOUNT")),Se=()=>(console.log("UPDATE - parentValue"),()=>console.log("UPDATED"));return ce(Pe),me(Se,()=>[t.parentValue]),St(()=>console.log("INJECT"),()=>console.log("CLEAN_UP"),()=>[r.v]),({parentValue:M})=>d(x,{children:[d("div",{children:d("textarea",{value:l.v,onInput:a,style:{width:"300px",height:"100px"}})}),d("div",{children:l.v}),d("div",{children:[d("div",{style:{color:"blue"},children:["parentValueFromRef: ",t.parentValue," (working)"]}),d("div",{style:{color:"blue"},children:["parentValueFromFunction: ",o()," (working)"]}),d("div",{style:{color:"blue"},children:["parentValueFromUpdaterDestructuring: ",M," (working)"]}),d("div",{style:{color:"red"},children:["parentValueFromMounterDestructuring: ",c," (not working)"]})]}),d("div",{children:[d("div",{ref:v,children:["count: ",r.v]}),d("div",{children:["sum: ",r.v+s+t.parentValue]}),d("div",{children:["sum(computed): ",i.v]}),d("div",{children:["notRefValue: ",s]}),d("div",{children:["localStore(text): ",u.text]}),d("div",{children:["localStore(count): ",u.count]})]}),d("button",{onClick:f,children:"Increase"}),d("button",{onClick:g,children:"localStoreUpdate"}),n]})}),Ut=ge(e=>{const t=B(7,e),n=()=>{t.v=t.v+1},r=()=>{t.v=t.v-1};return()=>d(x,{children:[d(Nt,{parentValue:t.v,children:d("button",{onClick:n,children:"Increase - Parent"})}),d("button",{onClick:r,children:"Decrease - Parent"})]})}),Lt=d(Ut,{});Ke(Lt,document.getElementById("root"));
2
- //# sourceMappingURL=index-C-802KiP.js.map
1
+ (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const o of l)if(o.type==="childList")for(const c of o.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&r(c)}).observe(document,{childList:!0,subtree:!0});function n(l){const o={};return l.integrity&&(o.integrity=l.integrity),l.referrerPolicy&&(o.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?o.credentials="include":l.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(l){if(l.ep)return;l.ep=!0;const o=n(l);fetch(l.href,o)}})();const E=e=>typeof e=="object"&&!("resolve"in e),N=(e,t)=>E(e)&&e.type===t,Ce=(e,t)=>"ctor"in e?e.ctor===(t==null?void 0:t.ctor):e===(t==null?void 0:t.ctor),Re=(e,t)=>{var n,r;return E(e)&&(t==null?void 0:t.type)==="fragment"&&((n=t==null?void 0:t.children)==null?void 0:n.length)===((r=e==null?void 0:e.children)==null?void 0:r.length)},we=(e,t)=>{var n,r;return E(e)&&(t==null?void 0:t.type)==="element"&&(t==null?void 0:t.tag)===e.tag&&((n=t==null?void 0:t.children)==null?void 0:n.length)===((r=e==null?void 0:e.children)==null?void 0:r.length)},J=(e,t)=>E(e)&&(t==null?void 0:t.type)===e.type,xe=(e,t)=>{var n,r;return E(e)&&(t==null?void 0:t.type)===e.type&&(S(h((e.children||[])[0]))&&S(h(((t==null?void 0:t.children)||[])[0]))||((n=t==null?void 0:t.children)==null?void 0:n.length)===((r=e==null?void 0:e.children)==null?void 0:r.length))},h=e=>{var t,n;return((t=e==null?void 0:e.compProps)==null?void 0:t.key)??((n=e==null?void 0:e.props)==null?void 0:n.key)},y=e=>e&&["fragment","loop"].includes(e),U=e=>typeof e=="function"&&!ne(e)||typeof e=="object"&&"resolve"in e,ne=e=>typeof e=="function"&&e===x,re=e=>E(e)&&!e.type,S=e=>e!=null,_=(e,t)=>e==="style"&&typeof t=="object",Ne=(e,t)=>e==="ref"&&typeof t=="object",Ue=(e,t)=>{const n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);return n&&n.get&&n.set},Le=e=>{let t="et";return U(e)?t="c":N(e,"fragment")?t="f":N(e,"element")?t="e":N(e,"loop")?t="l":N(e,"text")?t="t":re(e)&&(t="et"),t},Oe={c:Ce,l:xe,t:J,e:we,f:Re,et:J},P=Symbol.for("lithentWDomSymbol"),b={value:""},R={value:{}},j={value:!1},p=new WeakMap,Ve=e=>{p.set(e,{vd:{value:null},up:()=>{},upR:[],upS:{value:0},upD:[],upCB:[],mts:[],umts:[]})},w=()=>R.value,z=(e,t)=>p.get(e)?p.get(e)[t]:null,Ae=e=>R.value=e,Te=e=>{R.value=e,Ve(e)},m=e=>e.getParent&&e.getParent(),C=Object.entries,le=Object.keys,L=Object.assign,De=e=>{p.get(w()).umts.push(e)},O=e=>{const{compKey:t}=e;t&&Me(t),oe(e)},oe=e=>{(e.children||[]).forEach(t=>{t.compKey?O(t):oe(t)})},Me=e=>{const t=p.get(e);t&&(t.umts.forEach(n=>n()),t.umts=[],p.delete(e))};let k=[];const H=()=>{k.forEach(e=>ke(e)),k=[]},je=e=>{e.compKey&&k.push(e)},ce=e=>{var t;return(((t=p.get(w()))==null?void 0:t.mts)||[]).push(e)},ke=e=>{const{compKey:t}=e;if(t){const n=p.get(t),r=n==null?void 0:n.mts,l=n==null?void 0:n.upS;R.value=t,l&&(l.value=0),r&&(n.mts=[],r.forEach(o=>{const c=o();c&&De(c)}))}},G=(e,t=()=>[])=>{const n=p.get(w()),{upD:r,upS:l}=n,o=r[l.value];if(o&&Fe(o,t())){const c=e();c&&n.upCB.push(c)}r[l.value]=t(),l.value+=1},$e=e=>{const{compKey:t}=e;if(t){const n=p.get(t),r=n==null?void 0:n.upCB,l=n==null?void 0:n.upS;R.value=t,l&&(l.value=0),e.ctor&&r&&(n.upCB=[],r.forEach(o=>o()))}},Fe=(e,t)=>e.length?e.some((n,r)=>n!==t[r]):!0,Ie=e=>e==="className"?"class":e,ue=e=>e.replace(/^on(.*)/,(t,n)=>n.toLowerCase()),W=()=>new DocumentFragment,Q=e=>document.createElement(e),Ke=(e,t,n,r)=>{e.isRoot=!0,t??(t=document.body),e.wrapElement=t;const l=A(e,r);return t.tagName==="HTML"?t.replaceWith(l):t.appendChild(l),H(),()=>{var o;const c=(o=p.get(e.compProps||{}))==null?void 0:o.vd.value;c&&O(c),V(c||e),Be(c||e)}},ie=e=>{const{needRerender:t}=e;t&&t!=="N"&&({A:Y,D:q,R:We,U:F,CNSU:F,SR:se,SU:He}[t](e),delete e.needRerender,delete e.oldChildren,delete e.oldProps)},V=e=>{e.props&&e.el&&he(e.props,e.el),(e.children||[]).forEach(t=>{V(t)})},Be=e=>{ae(e,e.wrapElement)},q=e=>{e.oldProps&&e.el&&he(e.oldProps,e.el),ae(e,T(m(e)))},ae=(e,t)=>{var n,r;t&&e.el&&([1,3].includes((n=e.el)==null?void 0:n.nodeType)?t.removeChild(e.el):((r=e.el)==null?void 0:r.nodeType)===11&&de(e),delete e.el)},de=(e,t)=>{((e==null?void 0:e.oldChildren)||(e==null?void 0:e.children)||[]).forEach(n=>{var r;const l=(r=n.el)==null?void 0:r.nodeType;l&&([1,3].includes(l)?n.el.tagName==="HTML"?n.el.innerHTML="":n.el.remove():l===11&&de(n))})},se=e=>{q(e),Y(e)},He=e=>{if(F(e),m(e).needRerender!=="CNSU"){const t=pe(e);Y(e,t)}},Y=(e,t)=>{t||(t=A(e));const n=m(e);if(n.type){const r=T(n),l=n.type==="loop"&&n.needRerender&&n.needRerender!=="CNSU"?$(n,m(n)):$(e,n);t&&r&&(e.tag!=="portal"&&(l?r.insertBefore(t,l):r.appendChild(t)),H())}},pe=e=>y(e.type)?((e==null?void 0:e.children)||[]).reduce((t,n)=>{const r=pe(n);return r&&t.appendChild(r),t},W()):e.el,$=(e,t)=>{const n=t.children||[],r=n.indexOf(e)+1,l=n.slice(r),o=ve(l),c=t.type||"";if(o)return o;if(!t.isRoot&&y(c))return $(t,m(t));if(t.isRoot&&y(c)&&t.afterElement)return t.afterElement},ve=e=>e.reduce((t,n)=>{const r=n.type,l=n.el,o=r&&y(r);return t||(o?ve(n.children||[]):l&&l.nodeType!==11?l:t)},void 0),We=e=>{const t=m(e),n=e.el;if(t.type&&n)if(n.nodeType===11)se(e);else{const r=T(t),l=A(e);r&&e.tag!=="portal"&&r.replaceChild(l,n),H()}},he=(e,t)=>{C(e||{}).forEach(([n,r])=>{n.match(/^on/)&&t.removeEventListener(ue(n),r)})},F=e=>{var t;const n=e.el;if(e.type==="text"){qe(e);return}if(n){const{oldProps:r,props:l}=e;fe(l,n,r),delete e.oldProps,e.tag==="input"&&(n.value=String(((t=e==null?void 0:e.props)==null?void 0:t.value)||""))}(e.children||[]).forEach(r=>ie(r)),$e(e)},qe=e=>{const t=e.el;t&&(t.nodeValue=String(e.text))},fe=(e,t,n,r)=>{const l={...n};C(e||{}).forEach(([o,c])=>{o==="key"||c===l[o]||o==="portal"&&typeof c=="object"||(o==="innerHTML"&&typeof c=="string"?t.innerHTML=c:_(o,c)?ze(c,_(o,l.style)?l.style:{},t):Ne(o,c)?c.value=t:o.match(/^on/)?_e(t,o,c,l[o]):o&&(o!=="type"&&Ue(t,o)?t[o]=c:Ye(Ie(o),t,c))),delete l[o]}),le(l).forEach(o=>t.removeAttribute(o))},Ye=(e,t,n)=>{b.value&&e!=="xmlns"?t.setAttributeNS(null,e,n):t.setAttribute(e,n)},A=(e,t)=>{let n;const{type:r,tag:l,text:o,props:c,children:i=[]}=e,u=y(r);return l==="svg"&&(b.value=String(c==null?void 0:c.xmlns)),u?n=W():r==="element"&&l?l==="portal"&&c!=null&&c.portal?n=c.portal:n=b.value?document.createElementNS(b.value,l):Q(l):r==="text"&&S(o)?n=document.createTextNode(String(o)):n=Q("e"),e.el=n,Je(i,n,t),fe(c,n,null),je(e),l==="svg"&&(b.value=""),n},Je=(e,t,n)=>{const r=e.reduce((l,o)=>{if(o.type){const c=A(o,n);o.tag!=="portal"&&!n&&l.appendChild(c)}return l},W());t&&r.hasChildNodes()&&t.appendChild(r)},_e=(e,t,n,r)=>{const l=ue(t);r!==n&&(r&&e.removeEventListener(l,r),n&&e.addEventListener(l,n))},ze=(e,t,n)=>{const r={...t},l=n==null?void 0:n.style;l&&(C(e).forEach(([o,c])=>{l[o]=c,delete r[o]}),C(r).forEach(([o])=>l[o]=""))},T=e=>{const t=y(e.type);return e.isRoot&&t?e.wrapElement:t?T(m(e)):e.el},D=(e,t)=>Ge(e,Oe[Le(e)](e,t),t),Ge=(e,t,n)=>{const r=rt(e,t,n),l=[r,t,n],o=Xe(...l),c=o==="N";return c||(r.children=lt(...l)),r.needRerender=o,Qe(r,n,o),!c&&n&&(n.isLegacy=!0,delete n.children),r},Qe=(e,t,n)=>{n!=="A"&&t&&(e.el=t.el),n&&["D","R","SR"].includes(n)&&(t&&(O(t),V(t)),e.oldChildren=t==null?void 0:t.children),e.oldProps=t==null?void 0:t.props},Xe=(e,t,n)=>{const r=n&&n.type,l=re(e),o=e.isRoot,c=n&&m(n),i=!o&&(c==null?void 0:c.type),u=h(e),s=i==="loop"&&S(u),v=e.type==="text"&&t&&e.text===(n==null?void 0:n.text),f=e===n;let d;return l?d="D":v||f?d="N":r?t?d=s?"SU":"U":d=s?"SR":"R":d="A",e.type==="loop"&&d==="U"&&n&&Ze(e,n)&&(d="CNSU"),d},Ze=(e,t)=>{const n=[...(t==null?void 0:t.children)||[]],r=[...(e==null?void 0:e.children)||[]].filter(c=>n.find(i=>h(c)===h(i))),l=n.filter(c=>r.find(i=>h(c)===h(i)));let o=l.length===r.length;return o&&(o=l.every((c,i)=>h(c)===h(r[i]))),o},et=(e,t)=>{e&&t!==e&&(le(e).forEach(n=>delete e[n]),C(t||{}).forEach(([n,r])=>e[n]=r))},tt=(e,t)=>{e&&t!==e&&(e.splice(0,e.length),t&&t.forEach(n=>e.push(n)))},nt=(e,t)=>{const{compProps:n,compChild:r}=e,{props:l,children:o}=t;return n&&et(n,l),r&&tt(r,o),e.reRender&&e.reRender()},rt=(e,t,n)=>U(e)?t&&n?nt(n,e):e.resolve():e,lt=(e,t,n)=>t&&n?ct(e,n):ot(e),ot=e=>(e.children||[]).map(t=>L(D(t),{getParent:()=>e})),ct=(e,t)=>e.type==="loop"&&S(h((e.children||[])[0]))?ut(e,t):(e.children||[]).map((n,r)=>L(D(n,(t.children||[])[r]),{getParent:()=>e})),ut=(e,t)=>{const[n,r]=it(e,t);return r.forEach(l=>{O(l),V(l),q(l)}),n},it=(e,t)=>{const n=[...e.children||[]],r=[...t.children||[]];return[n.map(l=>{const o=at(l,r),c=D(l,o);return o&&r.splice(r.indexOf(o),1),c.getParent=()=>e,c}),r]},at=(e,t)=>t.find(n=>h(n)===h(e)),I=new Map;let K=!1;const dt=(e,t)=>{p.get(e)&&(p.get(e).up=()=>{I.set(e,t),K||(K=!0,queueMicrotask(pt))})},st=e=>()=>{var t;const n=(t=p.get(e))==null?void 0:t.up;let r=!1;return n&&(n(),r=!0),r},pt=()=>{I.forEach(e=>{e()}),I.clear(),K=!1},me=(e,t=()=>[])=>{p.get(w()).upR.push(()=>G(e,t)),G(e,t)},vt=()=>{var e;const t=(e=p.get(w()))==null?void 0:e.upR;t!=null&&t.length&&t.forEach(n=>n())},x=(e,...t)=>({type:"fragment",[P]:!0,children:t}),X=(e,t,...n)=>{const r={value:void 0},l=t||{},o=be(r,n),c=yt(e,l,o);return U(c)||(r.value=c),c},ge=e=>(t,n)=>e,ht=(e,t,n,r)=>{var l;if(r.isLegacy)return;j.value=!0;const o=ye(e,t,n),c=D(o,r),{isRoot:i,getParent:u,wrapElement:s,afterElement:v}=r;if(c.getParent=u,!i&&u){const f=((l=u())==null?void 0:l.children)||[],d=f.indexOf(r);f.splice(d,1,c)}else c.isRoot=!0,c.wrapElement=s,c.afterElement=v;j.value=!1,ie(c)},ye=(e,t,n)=>({tagName:e.name,ctor:e,props:t,children:n,resolve:(r=t)=>{Te(r);const l=e(t,n),o=(typeof l=="function"?l:()=>()=>l)(st(r),t,n);return ft(o,r,e,t,n)}}),ft=(e,t,n,r,l)=>{let o=e,c=e(r);c.reRender&&(o=u=>{const s=e(u),v=x({},s);return s.getParent=()=>v,v},c=o(r));const i=mt(o,t,n,r,l);return Ee(c,t,n,r,l,i),c},mt=(e,t,n,r,l)=>{const o=()=>gt(e,t,n,r,l,o);return o},gt=(e,t,n,r,l,o)=>{Ae(t),vt();const c=e(r);return Ee(c,t,n,r,l,o),c},Ee=(e,t,n,r,l,o)=>{L(e,{compProps:r,compChild:l,ctor:n,tagName:n.name,compKey:t,reRender:o}),dt(t,()=>ht(n,r,l,e)),z(t,"vd")&&(z(t,"vd").value=e)},yt=(e,t,n)=>{if(ne(e))return x(t,...n);if(U(e)){const r=ye(e,t,n);return j.value?r:r.resolve()}return{type:"element",[P]:!0,tag:e,props:t,children:n}},be=(e,t)=>t.map(n=>L(Et(n),{getParent:()=>e.value})),Et=e=>{if(e==null||e===!1)return{type:null,[P]:!0};if(Array.isArray(e)){const t={value:void 0},n=be(t,e),r={type:"loop",[P]:!0,children:n};return t.value=r,r}else if(typeof e=="string"||typeof e=="number")return{type:"text",[P]:!0,text:e};return e},bt=e=>({value:e});function a(e,t,n,r,l,o){const{children:c,...i}=t;if(c!=null){const u=Array.isArray(c)?c:[c];return X(e,{...i,key:n},...u)}return X(e,{...i,key:n})}const B=(e,t)=>{let n=e;return{get value(){return n},get v(){return n},set value(r){n=r,t()},set v(r){n=r,t()}}},Pt=e=>{let t=e;return{get value(){return t()},get v(){return t()},set value(n){throw new Error("You can't change 'computed'")},set v(n){throw new Error("You can't change 'computed'")}}},St=(e,t=()=>{},n=()=>[])=>{ce(()=>(e(),t)),me(()=>(t&&t(),e),n)},Ct={cache:!0};function Rt(e){const t={value:!1},n=!Array.isArray(e)&&typeof e=="object"&&e!==null?e:{value:e},r=new Set,l=[],o=new WeakMap;return(c,i,u)=>{const{cache:s}=Object.assign({},Ct,u||{});if(s&&c&&o.has(c))return o.get(c);const v={},f=new Set;let d={value:null},g=()=>{};return l.push(v),c&&i&&(g=()=>c(d.value),d.value=Z(n,t,r,f,l,g,v),t.value=!0,i(d.value),t.value=!1),d.value||(d.value=Z(n,t,r,f,l),c&&(g=()=>c(d.value),r.add(g))),c&&(xt(g,r,v,f),o.set(c,d.value)),d.value}}function Z(e,t,n,r,l,o,c){return new Proxy(e,{get(i,u){return o&&c&&t.value&&(c[u]??(c[u]=new Set),c[u].has(o)||(c[u].add(o),r.add(u))),i[u]},set(i,u,s){return i[u]===s||(i[u]=s,wt(n,l,u)),!0}})}function wt(e,t=[],n){const r=new Set;te(e).forEach(l=>r.add(l)),(t||[]).forEach(l=>{const o=l[n]||new Set;te(o).forEach(c=>r.add(c)),ee(r,o)}),ee(r,e)}function ee(e,t){e.forEach(n=>{t.delete(n)})}function te(e){const t=[];return e.forEach(n=>{n()===!1&&t.push(n)}),t}function xt(e,t,n,r){const l=e();l instanceof AbortSignal&&l.addEventListener("abort",()=>{const o=n||{};t.delete(e),Object.entries(o).forEach(([c,i])=>{i.delete(e),r.delete(c)})})}const Nt=ge((e,t,n)=>{const r=B(1,e),l=B('"destructuring" the "props" value directly from the mount function will cause referencing issues, so if you want to use it, you need to "destructuring" it from the internal function (updater).',e),o=()=>t.parentValue,c=t.parentValue,i=Pt(()=>r.v+s+t.parentValue),u=Rt({text:"s",count:0})(e);let s=t.parentValue;const v=bt(null),f=()=>{r.v=r.v+1,s+=1},d=M=>{l.v=M.target.value},g=()=>{u.count+=1,u.text+="1"},Pe=()=>(console.log("MOUNTED",v),()=>console.log("UNMOUNT")),Se=()=>(console.log("UPDATE - parentValue"),()=>console.log("UPDATED"));return ce(Pe),me(Se,()=>[t.parentValue]),St(()=>console.log("INJECT"),()=>console.log("CLEAN_UP"),()=>[r.v]),({parentValue:M})=>a(x,{children:[a("div",{children:a("textarea",{value:l.v,onInput:d,style:{width:"300px",height:"100px"}})}),a("div",{children:l.v}),a("div",{children:[a("div",{style:{color:"blue"},children:["parentValueFromRef: ",t.parentValue," (working)"]}),a("div",{style:{color:"blue"},children:["parentValueFromFunction: ",o()," (working)"]}),a("div",{style:{color:"blue"},children:["parentValueFromUpdaterDestructuring: ",M," (working)"]}),a("div",{style:{color:"red"},children:["parentValueFromMounterDestructuring: ",c," (not working)"]})]}),a("div",{children:[a("div",{ref:v,children:["count: ",r.v]}),a("div",{children:["sum: ",r.v+s+t.parentValue]}),a("div",{children:["sum(computed): ",i.v]}),a("div",{children:["notRefValue: ",s]}),a("div",{children:["localStore(text): ",u.text]}),a("div",{children:["localStore(count): ",u.count]})]}),a("button",{onClick:f,children:"Increase"}),a("button",{onClick:g,children:"localStoreUpdate"}),n]})}),Ut=ge(e=>{const t=B(7,e),n=()=>{t.v=t.v+1},r=()=>{t.v=t.v-1};return()=>a(x,{children:[a(Nt,{parentValue:t.v,children:a("button",{onClick:n,children:"Increase - Parent"})}),a("button",{onClick:r,children:"Decrease - Parent"})]})}),Lt=a(Ut,{});Ke(Lt,document.getElementById("root"));
2
+ //# sourceMappingURL=index-CoLsHZbl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CoLsHZbl.js","sources":["../../../dist/lithent.mjs","../../../jsx-runtime/dist/jsxRuntime.mjs","../../../helper/dist/lithentHelper.mjs","../../src/index.tsx"],"sourcesContent":["const R = (e) => typeof e == \"object\" && !(\"resolve\" in e), N = (e, t) => R(e) && e.type === t, pe = (e, t) => \"ctor\" in e ? e.ctor === (t == null ? void 0 : t.ctor) : e === (t == null ? void 0 : t.ctor), he = (e, t) => {\n var s, c;\n return R(e) && (t == null ? void 0 : t.type) === \"fragment\" && ((s = t == null ? void 0 : t.children) == null ? void 0 : s.length) === ((c = e == null ? void 0 : e.children) == null ? void 0 : c.length);\n}, ie = (e, t) => {\n var s, c;\n return R(e) && (t == null ? void 0 : t.type) === \"element\" && (t == null ? void 0 : t.tag) === e.tag && ((s = t == null ? void 0 : t.children) == null ? void 0 : s.length) === ((c = e == null ? void 0 : e.children) == null ? void 0 : c.length);\n}, X = (e, t) => R(e) && (t == null ? void 0 : t.type) === e.type, ye = (e, t) => {\n var s, c;\n return R(e) && (t == null ? void 0 : t.type) === e.type && (E(o((e.children || [])[0])) && E(o(((t == null ? void 0 : t.children) || [])[0])) || ((s = t == null ? void 0 : t.children) == null ? void 0 : s.length) === ((c = e == null ? void 0 : e.children) == null ? void 0 : c.length));\n}, o = (e) => {\n var t, s;\n return ((t = e == null ? void 0 : e.compProps) == null ? void 0 : t.key) ?? ((s = e == null ? void 0 : e.props) == null ? void 0 : s.key);\n}, v = (e) => e && [\"fragment\", \"loop\"].includes(e), T = (e) => typeof e == \"function\" && !g(e) || typeof e == \"object\" && \"resolve\" in e, g = (e) => typeof e == \"function\" && e === J, m = (e) => R(e) && !e.type, E = (e) => e != null, Y = (e, t) => e === \"style\" && typeof t == \"object\", Ce = (e, t) => e === \"ref\" && typeof t == \"object\", ve = (e, t) => {\n const s = Object.getOwnPropertyDescriptor(\n e.constructor.prototype,\n t\n );\n return s && s.get && s.set;\n}, Re = (e) => {\n let t = \"et\";\n return T(e) ? t = \"c\" : N(e, \"fragment\") ? t = \"f\" : N(e, \"element\") ? t = \"e\" : N(e, \"loop\") ? t = \"l\" : N(e, \"text\") ? t = \"t\" : m(e) && (t = \"et\"), t;\n}, ke = {\n c: pe,\n l: ye,\n t: X,\n e: ie,\n f: he,\n et: X\n}, C = Symbol.for(\"lithentWDomSymbol\"), k = { value: \"\" }, S = { value: {} }, O = { value: !1 }, f = /* @__PURE__ */ new WeakMap(), Ee = (e) => {\n f.set(e, {\n vd: { value: null },\n up: () => {\n },\n upR: [],\n upS: { value: 0 },\n upD: [],\n upCB: [],\n mts: [],\n umts: []\n });\n}, a = () => S.value, Z = (e, t) => f.get(e) ? f.get(e)[t] : null, Pe = (e) => S.value = e, Se = (e) => {\n S.value = e, Ee(e);\n}, y = (e) => e.getParent && e.getParent(), P = Object.entries, w = Object.keys, b = Object.assign, lt = (e) => typeof e == \"object\" && !Array.isArray(e) && !Object.getOwnPropertySymbols(e).includes(C), ae = (e) => {\n f.get(a()).umts.push(e);\n}, U = (e) => {\n const { compKey: t } = e;\n t && xe(t), W(e);\n}, W = (e) => {\n (e.children || []).forEach((t) => {\n t.compKey ? U(t) : W(t);\n });\n}, xe = (e) => {\n const t = f.get(e);\n t && (t.umts.forEach((s) => s()), t.umts = [], f.delete(e));\n};\nlet Q = [];\nconst I = () => {\n Q.forEach((e) => Te(e)), Q = [];\n}, Ne = (e) => {\n e.compKey && Q.push(e);\n}, ft = (e) => {\n var t;\n return (((t = f.get(a())) == null ? void 0 : t.mts) || []).push(e);\n}, Te = (e) => {\n const { compKey: t } = e;\n if (t) {\n const s = f.get(t), c = s == null ? void 0 : s.mts, r = s == null ? void 0 : s.upS;\n S.value = t, r && (r.value = 0), c && (s.mts = [], c.forEach((n) => {\n const u = n();\n u && ae(u);\n }));\n }\n}, H = (e, t = () => []) => {\n const s = f.get(a()), { upD: c, upS: r } = s, n = c[r.value];\n if (n && Ue(n, t())) {\n const u = e();\n u && s.upCB.push(u);\n }\n c[r.value] = t(), r.value += 1;\n}, be = (e) => {\n const { compKey: t } = e;\n if (t) {\n const s = f.get(t), c = s == null ? void 0 : s.upCB, r = s == null ? void 0 : s.upS;\n S.value = t, r && (r.value = 0), e.ctor && c && (s.upCB = [], c.forEach((n) => n()));\n }\n}, Ue = (e, t) => e.length ? e.some((s, c) => s !== t[c]) : !0, Fe = (e) => e === \"className\" ? \"class\" : e, D = (e) => e.replace(/^on(.*)/, (t, s) => s.toLowerCase()), z = () => new DocumentFragment(), V = (e) => document.createElement(e), ot = (e, t, s, c) => {\n e.isRoot = !0, t ?? (t = document.body), e.wrapElement = t;\n const r = L(e, c);\n return s ? (e.afterElement = s, t.insertBefore(r, s)) : c || (t.tagName === \"HTML\" ? t.replaceWith(r) : t.appendChild(r)), I(), () => {\n var u;\n const n = (u = f.get(e.compProps || {})) == null ? void 0 : u.vd.value;\n n && U(n), F(n || e), Le(n || e);\n };\n}, ee = (e) => {\n const { needRerender: t } = e;\n t && t !== \"N\" && ({\n A: G,\n D: $,\n R: Me,\n U: B,\n CNSU: B,\n SR: ce,\n SU: Ae\n }[t](e), delete e.needRerender, delete e.oldChildren, delete e.oldProps);\n}, F = (e) => {\n e.props && e.el && ue(e.props, e.el), (e.children || []).forEach((t) => {\n F(t);\n });\n}, Le = (e) => {\n te(e, e.wrapElement);\n}, $ = (e) => {\n e.oldProps && e.el && ue(e.oldProps, e.el), te(\n e,\n A(y(e))\n );\n}, te = (e, t) => {\n var s, c;\n t && e.el && ([1, 3].includes((s = e.el) == null ? void 0 : s.nodeType) ? t.removeChild(e.el) : ((c = e.el) == null ? void 0 : c.nodeType) === 11 && se(e), delete e.el);\n}, se = (e, t) => {\n ((e == null ? void 0 : e.oldChildren) || (e == null ? void 0 : e.children) || []).forEach((s) => {\n var r;\n const c = (r = s.el) == null ? void 0 : r.nodeType;\n c && ([1, 3].includes(c) ? s.el.tagName === \"HTML\" ? s.el.innerHTML = \"\" : s.el.remove() : c === 11 && se(s));\n });\n}, ce = (e) => {\n $(e), G(e);\n}, Ae = (e) => {\n if (B(e), y(e).needRerender !== \"CNSU\") {\n const s = ne(e);\n G(e, s);\n }\n}, G = (e, t) => {\n t || (t = L(e));\n const s = y(e);\n if (s.type) {\n const c = A(s), n = s.type === \"loop\" && s.needRerender && s.needRerender !== \"CNSU\" ? j(s, y(s)) : j(e, s);\n t && c && (e.tag !== \"portal\" && (n ? c.insertBefore(t, n) : c.appendChild(t)), I());\n }\n}, ne = (e) => v(e.type) ? ((e == null ? void 0 : e.children) || []).reduce((t, s) => {\n const c = ne(s);\n return c && t.appendChild(c), t;\n}, z()) : e.el, j = (e, t) => {\n const s = t.children || [], r = s.indexOf(e) + 1, n = s.slice(r), u = re(n), l = t.type || \"\";\n if (u)\n return u;\n if (!t.isRoot && v(l))\n return j(t, y(t));\n if (t.isRoot && v(l) && t.afterElement)\n return t.afterElement;\n}, re = (e) => e.reduce(\n (t, s) => {\n const c = s.type, r = s.el, n = c && v(c);\n return t || (n ? re(s.children || []) : r && r.nodeType !== 11 ? r : t);\n },\n void 0\n), Me = (e) => {\n const t = y(e), s = e.el;\n if (t.type && s)\n if (s.nodeType === 11)\n ce(e);\n else {\n const c = A(t), r = L(e);\n c && e.tag !== \"portal\" && c.replaceChild(r, s), I();\n }\n}, ue = (e, t) => {\n P(e || {}).forEach(([s, c]) => {\n s.match(/^on/) && t.removeEventListener(\n D(s),\n c\n );\n });\n}, B = (e) => {\n var s;\n const t = e.el;\n if (e.type === \"text\") {\n Oe(e);\n return;\n }\n if (t) {\n const { oldProps: c, props: r } = e;\n le(r, t, c), delete e.oldProps, e.tag === \"input\" && (t.value = String(((s = e == null ? void 0 : e.props) == null ? void 0 : s.value) || \"\"));\n }\n (e.children || []).forEach((c) => ee(c)), be(e);\n}, Oe = (e) => {\n const t = e.el;\n t && (t.nodeValue = String(e.text));\n}, le = (e, t, s, c) => {\n const r = { ...s };\n P(e || {}).forEach(([n, u]) => {\n c && n.match(/^on/) ? K(\n t,\n n,\n u,\n r[n]\n ) : (n === \"key\" || u === r[n] || n === \"portal\" && typeof u == \"object\" || (n === \"innerHTML\" && typeof u == \"string\" ? t.innerHTML = u : Y(n, u) ? Be(\n u,\n Y(n, r.style) ? r.style : {},\n t\n ) : Ce(n, u) ? u.value = t : n.match(/^on/) ? K(\n t,\n n,\n u,\n r[n]\n ) : n && (n !== \"type\" && ve(t, n) ? t[n] = u : Qe(\n Fe(n),\n t,\n u\n ))), delete r[n]);\n }), w(r).forEach(\n (n) => t.removeAttribute(n)\n );\n}, Qe = (e, t, s) => {\n k.value && e !== \"xmlns\" ? t.setAttributeNS(null, e, s) : t.setAttribute(e, s);\n}, L = (e, t) => {\n let s;\n const { type: c, tag: r, text: n, props: u, children: l = [] } = e, h = v(c);\n return r === \"svg\" && (k.value = String(u == null ? void 0 : u.xmlns)), t ? s = e.el : (h ? s = z() : c === \"element\" && r ? r === \"portal\" && (u != null && u.portal) ? s = u.portal : s = k.value ? document.createElementNS(k.value, r) : V(r) : c === \"text\" && E(n) ? s = document.createTextNode(String(n)) : s = V(\"e\"), e.el = s), je(l, s, t), le(u, s, null, t), Ne(e), r === \"svg\" && (k.value = \"\"), s;\n}, je = (e, t, s) => {\n const c = e.reduce(\n (r, n) => {\n if (n.type) {\n const u = L(n, s);\n n.tag !== \"portal\" && !s && r.appendChild(u);\n }\n return r;\n },\n z()\n );\n !s && t && c.hasChildNodes() && t.appendChild(c);\n}, K = (e, t, s, c) => {\n const r = D(t);\n c !== s && (c && e.removeEventListener(r, c), s && e.addEventListener(r, s));\n}, Be = (e, t, s) => {\n const c = { ...t }, r = s == null ? void 0 : s.style;\n r && (P(e).forEach(([n, u]) => {\n r[n] = u, delete c[n];\n }), P(c).forEach(\n ([n]) => r[n] = \"\"\n ));\n}, A = (e) => {\n const t = v(e.type);\n return e.isRoot && t ? e.wrapElement : t ? A(y(e)) : e.el;\n}, M = (e, t) => qe(\n e,\n ke[Re(e)](e, t),\n t\n), qe = (e, t, s) => {\n const c = Xe(e, t, s), r = [\n c,\n t,\n s\n ], n = Ie(...r), u = n === \"N\";\n return u || (c.children = Ye(...r)), c.needRerender = n, _e(c, s, n), !u && s && (s.isLegacy = !0, delete s.children), c;\n}, _e = (e, t, s) => {\n s !== \"A\" && t && (e.el = t.el), s && [\"D\", \"R\", \"SR\"].includes(s) && (t && (U(t), F(t)), e.oldChildren = t == null ? void 0 : t.children), e.oldProps = t == null ? void 0 : t.props;\n}, Ie = (e, t, s) => {\n const c = s && s.type, r = m(e), n = e.isRoot, u = s && y(s), l = !n && (u == null ? void 0 : u.type), h = o(e), p = l === \"loop\" && E(h), i = e.type === \"text\" && t && e.text === (s == null ? void 0 : s.text), x = e === s;\n let d;\n return r ? d = \"D\" : i || x ? d = \"N\" : c ? t ? d = p ? \"SU\" : \"U\" : d = p ? \"SR\" : \"R\" : d = \"A\", e.type === \"loop\" && d === \"U\" && s && ze(e, s) && (d = \"CNSU\"), d;\n}, ze = (e, t) => {\n const s = [...(t == null ? void 0 : t.children) || []], c = [...(e == null ? void 0 : e.children) || []].filter(\n (u) => s.find((l) => o(u) === o(l))\n ), r = s.filter(\n (u) => c.find((l) => o(u) === o(l))\n );\n let n = r.length === c.length;\n return n && (n = r.every(\n (u, l) => o(u) === o(c[l])\n )), n;\n}, $e = (e, t) => {\n e && t !== e && (w(e).forEach((s) => delete e[s]), P(t || {}).forEach(([s, c]) => e[s] = c));\n}, Ge = (e, t) => {\n e && t !== e && (e.splice(0, e.length), t && t.forEach((s) => e.push(s)));\n}, Je = (e, t) => {\n const { compProps: s, compChild: c } = e, { props: r, children: n } = t;\n return s && $e(s, r), c && Ge(c, n), e.reRender && e.reRender();\n}, Xe = (e, t, s) => T(e) ? t && s ? Je(s, e) : e.resolve() : e, Ye = (e, t, s) => t && s ? He(e, s) : Ze(e), Ze = (e) => (e.children || []).map(\n (t) => b(M(t), { getParent: () => e })\n), He = (e, t) => e.type === \"loop\" && E(o((e.children || [])[0])) ? Ve(e, t) : (e.children || []).map(\n (s, c) => b(M(s, (t.children || [])[c]), {\n getParent: () => e\n })\n), Ve = (e, t) => {\n const [s, c] = Ke(\n e,\n t\n );\n return c.forEach((r) => {\n U(r), F(r), $(r);\n }), s;\n}, Ke = (e, t) => {\n const s = [...e.children || []], c = [...t.children || []];\n return [s.map((n) => {\n const u = ge(n, c), l = M(n, u);\n return u && c.splice(c.indexOf(u), 1), l.getParent = () => e, l;\n }), c];\n}, ge = (e, t) => t.find(\n (s) => o(s) === o(e)\n), q = /* @__PURE__ */ new Map();\nlet _ = !1;\nconst me = (e, t) => {\n f.get(e) && (f.get(e).up = () => {\n q.set(e, t), _ || (_ = !0, queueMicrotask(We));\n });\n}, we = (e) => () => {\n var c;\n const t = (c = f.get(e)) == null ? void 0 : c.up;\n let s = !1;\n return t && (t(), s = !0), s;\n}, We = () => {\n q.forEach((e) => {\n e();\n }), q.clear(), _ = !1;\n}, dt = (e, t = () => []) => {\n f.get(a()).upR.push(() => H(e, t)), H(e, t);\n}, De = () => {\n var t;\n const e = (t = f.get(a())) == null ? void 0 : t.upR;\n e != null && e.length && e.forEach((s) => s());\n}, J = (e, ...t) => ({\n type: \"fragment\",\n [C]: !0,\n children: t\n}), et = (e, t, ...s) => {\n const c = { value: void 0 }, r = t || {}, n = de(c, s), u = rt(e, r, n);\n return T(u) || (c.value = u), u;\n}, pt = (e, t) => et(\"portal\", { portal: t }, e), ht = (e) => (t, s) => e, tt = (e, t, s, c) => {\n var i;\n if (c.isLegacy)\n return;\n O.value = !0;\n const r = fe(e, t, s), n = M(r, c), { isRoot: u, getParent: l, wrapElement: h, afterElement: p } = c;\n if (n.getParent = l, !u && l) {\n const x = ((i = l()) == null ? void 0 : i.children) || [], d = x.indexOf(c);\n x.splice(d, 1, n);\n } else\n n.isRoot = !0, n.wrapElement = h, n.afterElement = p;\n O.value = !1, ee(n);\n}, fe = (e, t, s) => ({ tagName: e.name, ctor: e, props: t, children: s, resolve: (u = t) => {\n Se(u);\n const l = e(t, s), p = (typeof l == \"function\" ? l : () => () => l)(we(u), t, s);\n return st(\n p,\n u,\n e,\n t,\n s\n );\n} }), st = (e, t, s, c, r) => {\n let n = e, u = e(c);\n u.reRender && (n = (h) => {\n const p = e(h), i = J({}, p);\n return p.getParent = () => i, i;\n }, u = n(c));\n const l = ct(\n n,\n t,\n s,\n c,\n r\n );\n return oe(u, t, s, c, r, l), u;\n}, ct = (e, t, s, c, r) => {\n const n = () => nt(e, t, s, c, r, n);\n return n;\n}, nt = (e, t, s, c, r, n) => {\n Pe(t), De();\n const u = e(c);\n return oe(u, t, s, c, r, n), u;\n}, oe = (e, t, s, c, r, n) => {\n b(e, {\n compProps: c,\n compChild: r,\n ctor: s,\n tagName: s.name,\n compKey: t,\n reRender: n\n }), me(\n t,\n () => tt(s, c, r, e)\n ), Z(t, \"vd\") && (Z(t, \"vd\").value = e);\n}, rt = (e, t, s) => {\n if (g(e))\n return J(t, ...s);\n if (T(e)) {\n const c = fe(e, t, s);\n return O.value ? c : c.resolve();\n }\n return {\n type: \"element\",\n [C]: !0,\n tag: e,\n props: t,\n children: s\n };\n}, de = (e, t) => t.map(\n (s) => b(ut(s), { getParent: () => e.value })\n), ut = (e) => {\n if (e == null || e === !1)\n return { type: null, [C]: !0 };\n if (Array.isArray(e)) {\n const t = { value: void 0 }, s = de(t, e), c = {\n type: \"loop\",\n [C]: !0,\n children: s\n };\n return t.value = c, c;\n } else if (typeof e == \"string\" || typeof e == \"number\")\n return { type: \"text\", [C]: !0, text: e };\n return e;\n}, it = (e) => ({ value: e }), yt = () => Promise.resolve();\nexport {\n J as Fragment,\n we as componentUpdate,\n et as h,\n lt as isPropType,\n ht as mount,\n ft as mountCallback,\n yt as nextTick,\n pt as portal,\n it as ref,\n ot as render,\n dt as updateCallback\n};\n//# sourceMappingURL=lithent.mjs.map\n","import { h as o } from \"lithent\";\nimport { Fragment as h } from \"lithent\";\nfunction f(s, t, e, a, c, l) {\n const { children: r, ...n } = t;\n if (r != null) {\n const i = Array.isArray(r) ? r : [r];\n return o(s, { ...n, key: e }, ...i);\n }\n return o(s, { ...n, key: e });\n}\nexport {\n h as Fragment,\n f as jsx,\n f as jsxDEV,\n f as jsxs\n};\n//# sourceMappingURL=jsxRuntime.mjs.map\n","import { mountCallback as y, updateCallback as S, nextTick as T, render as w } from \"lithent\";\nconst L = (t, e) => {\n let n = t;\n return {\n get value() {\n return n;\n },\n get v() {\n return n;\n },\n set value(c) {\n n = c, e();\n },\n set v(c) {\n n = c, e();\n }\n };\n}, U = (t) => {\n let e = t;\n return {\n get value() {\n return e();\n },\n get v() {\n return e();\n },\n set value(n) {\n throw new Error(\"You can't change 'computed'\");\n },\n set v(n) {\n throw new Error(\"You can't change 'computed'\");\n }\n };\n}, b = (t, e = () => {\n}, n = () => []) => {\n y(() => (t(), e)), S(() => (e && e(), t), n);\n}, x = { cache: !0 };\nfunction k(t) {\n const e = { value: !1 }, c = !Array.isArray(t) && typeof t == \"object\" && t !== null ? t : { value: t }, s = /* @__PURE__ */ new Set(), l = [], u = /* @__PURE__ */ new WeakMap();\n return (a, o, r) => {\n const { cache: d } = Object.assign({}, x, r || {});\n if (d && a && u.has(a))\n return u.get(a);\n const h = {}, v = /* @__PURE__ */ new Set();\n let f = { value: null }, i = () => {\n };\n return l.push(h), a && o && (i = () => a(f.value), f.value = g(\n c,\n e,\n s,\n v,\n l,\n i,\n h\n ), e.value = !0, o(f.value), e.value = !1), f.value || (f.value = g(\n c,\n e,\n s,\n v,\n l\n ), a && (i = () => a(f.value), s.add(i))), a && (j(\n i,\n s,\n h,\n v\n ), u.set(a, f.value)), f.value;\n };\n}\nfunction g(t, e, n, c, s, l, u) {\n return new Proxy(t, {\n get(o, r) {\n return l && u && e.value && (u[r] ?? (u[r] = /* @__PURE__ */ new Set()), u[r].has(l) || (u[r].add(l), c.add(r))), o[r];\n },\n set(o, r, d) {\n return o[r] === d || (o[r] = d, C(n, s, r)), !0;\n }\n });\n}\nfunction C(t, e = [], n) {\n const c = /* @__PURE__ */ new Set();\n m(t).forEach(\n (s) => c.add(s)\n ), (e || []).forEach((s) => {\n const l = s[n] || /* @__PURE__ */ new Set();\n m(l).forEach(\n (u) => c.add(u)\n ), E(c, l);\n }), E(c, t);\n}\nfunction E(t, e) {\n t.forEach((n) => {\n e.delete(n);\n });\n}\nfunction m(t) {\n const e = [];\n return t.forEach((n) => {\n n() === !1 && e.push(n);\n }), e;\n}\nfunction j(t, e, n, c) {\n const s = t();\n s instanceof AbortSignal && s.addEventListener(\"abort\", () => {\n const l = n || {};\n e.delete(t), Object.entries(l).forEach(([u, a]) => {\n a.delete(t), c.delete(u);\n });\n });\n}\nconst D = (t, e) => {\n let n = [], c = null;\n return (s) => {\n const l = t(), u = n.every((o, r) => o === l[r]);\n if (n = l, u && c)\n return c;\n const a = e(s);\n return c = a, a;\n };\n}, P = (t, e, n) => {\n let c = () => {\n };\n return T().then(() => {\n c = w(t(), e, n);\n }), () => c();\n};\nexport {\n D as cacheUpdate,\n U as computed,\n b as effect,\n P as nextTickRender,\n L as state,\n k as store\n};\n//# sourceMappingURL=lithentHelper.mjs.map\n","// example.jsx\nimport {\n Fragment,\n render,\n ref,\n mountCallback,\n updateCallback,\n mount,\n} from 'lithent';\nimport { state, computed, effect, store } from 'lithent/helper';\n\n// This is the \"mount\" function.\n// This function is only executed on mount, and on update, only updates `props` and then executes the internal return function.\n// childen is passed as the second argument.\nconst ChildComponent = mount<{ parentValue: number }>(\n (renew, props, children) => {\n // The value is used as a \"getter\" to make it easy to get and write to in the higher-order functions it returns\n const count = state<number>(1, renew);\n const text = state<string>(\n '\"destructuring\" the \"props\" value directly from the mount function will cause referencing issues, so if you want to use it, you need to \"destructuring\" it from the internal function (updater).',\n renew\n );\n const getParentValue = () => props.parentValue;\n const parentValueFromMount = props.parentValue;\n const summ = computed<number>(\n () => count.v + notRefValue + props.parentValue\n );\n\n const localStore = store<{ text: string; count: number }>({\n text: 's',\n count: 0,\n })(renew);\n /*\n // To share a store, make it externally and use `asign`.\n const asignStore = store<{ text: string; count: number }>({ text: 's', count: 0 });\n\n const sharedStore = asignStore(nenew);\n */\n\n // Even if you don't use a ref, the private value is always maintained as a regular variable.\n let notRefValue = props.parentValue;\n\n // Ref is only used to reference the DOM.\n const domRef = ref(null);\n\n const increase = () => {\n count.v = count.v + 1;\n notRefValue += 1;\n };\n\n const handleInputChane = (event: InputEvent) => {\n text.v = (event.target as HTMLInputElement).value;\n };\n\n const localStoreUpdate = () => {\n localStore.count += 1;\n localStore.text += '1';\n };\n\n const handleMounted = () => {\n console.log('MOUNTED', domRef);\n\n return () => console.log('UNMOUNT');\n };\n const handleUpdated = () => {\n console.log('UPDATE - parentValue');\n\n return () => console.log('UPDATED');\n };\n\n mountCallback(handleMounted);\n updateCallback(handleUpdated, () => [props.parentValue]); // Only Defs Updated (using a closure to update a value)\n\n // Behaves like `react`'s `useEffect`\n effect(\n () => console.log('INJECT'),\n () => console.log('CLEAN_UP'),\n () => [count.v]\n );\n\n // Wrap in a function and return (using a closure to hold the value)\n // This is the \"update\" function.\n return ({ parentValue }) => (\n <Fragment>\n {/* Note that the event is onInput (we use the native event name to avoid confusion). */}\n <div>\n <textarea\n value={text.v}\n onInput={handleInputChane}\n style={{ width: '300px', height: '100px' }}\n />\n </div>\n <div>{text.v}</div>\n <div>\n <div style={{ color: 'blue' }}>\n parentValueFromRef: {props.parentValue} (working)\n </div>\n <div style={{ color: 'blue' }}>\n parentValueFromFunction: {getParentValue()} (working)\n </div>\n <div style={{ color: 'blue' }}>\n parentValueFromUpdaterDestructuring: {parentValue} (working)\n </div>\n <div style={{ color: 'red' }}>\n parentValueFromMounterDestructuring: {parentValueFromMount} (not\n working)\n </div>\n </div>\n <div>\n <div ref={domRef}>count: {count.v}</div>\n <div>sum: {count.v + notRefValue + props.parentValue}</div>\n <div>sum(computed): {summ.v}</div>\n {/* It doesn't pull it out from under the reference, it uses the value directly, so you can just use it. */}\n <div>notRefValue: {notRefValue}</div>\n <div>localStore(text): {localStore.text}</div>\n <div>localStore(count): {localStore.count}</div>\n </div>\n <button onClick={increase}>Increase</button>\n <button onClick={localStoreUpdate}>localStoreUpdate</button>\n {children}\n </Fragment>\n );\n }\n);\n\nconst Root = mount(renew => {\n const parentNumber = state<number>(7, renew);\n\n const increaseParent = () => {\n parentNumber.v = parentNumber.v + 1;\n };\n\n const decreaseParent = () => {\n parentNumber.v = parentNumber.v - 1;\n };\n\n return () => (\n <Fragment>\n <ChildComponent parentValue={parentNumber.v}>\n <button onClick={increaseParent}>Increase - Parent</button>\n </ChildComponent>\n <button onClick={decreaseParent}>Decrease - Parent</button>\n </Fragment>\n );\n});\nconst root = <Root />;\n\nrender(root, document.getElementById('root'));\n"],"names":["R","pe","he","s","c","ie","X","ye","E","o","v","T","g","J","m","Y","Ce","ve","Re","ke","C","k","S","O","f","Ee","a","Z","Pe","Se","y","P","w","b","ae","U","xe","W","Q","I","Te","Ne","ft","r","n","u","H","Ue","be","Fe","D","z","V","ot","L","F","Le","ee","G","$","Me","B","ce","Ae","ue","te","A","se","ne","j","re","l","t","Oe","le","Be","K","Qe","h","je","M","qe","Xe","Ie","Ye","_e","p","i","x","ze","$e","Ge","Je","He","Ze","Ve","Ke","ge","q","_","me","We","we","dt","De","e","et","de","rt","ht","tt","fe","st","ct","oe","nt","ut","it","d","ChildComponent","mount","renew","props","children","count","state","text","getParentValue","parentValueFromMount","summ","computed","notRefValue","localStore","store","domRef","ref","increase","handleInputChane","event","localStoreUpdate","handleMounted","handleUpdated","mountCallback","updateCallback","effect","parentValue","Fragment","jsx","jsxs","Root","parentNumber","increaseParent","decreaseParent","root","render"],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>lithent</title>
7
- <script type="module" crossorigin src="/assets/index-C-802KiP.js"></script>
7
+ <script type="module" crossorigin src="/assets/index-CoLsHZbl.js"></script>
8
8
  </head>
9
9
  <body>
10
10
  <section id="root"></section>
@@ -1,17 +1,17 @@
1
1
  import { h as o } from "lithent";
2
- import { Fragment as m } from "lithent";
3
- function d(s, t, e, a, c, f) {
2
+ import { Fragment as h } from "lithent";
3
+ function f(s, t, e, a, c, l) {
4
4
  const { children: r, ...n } = t;
5
- if (r) {
5
+ if (r != null) {
6
6
  const i = Array.isArray(r) ? r : [r];
7
7
  return o(s, { ...n, key: e }, ...i);
8
8
  }
9
9
  return o(s, { ...n, key: e });
10
10
  }
11
11
  export {
12
- m as Fragment,
13
- d as jsx,
14
- d as jsxDEV,
15
- d as jsxs
12
+ h as Fragment,
13
+ f as jsx,
14
+ f as jsxDEV,
15
+ f as jsxs
16
16
  };
17
17
  //# sourceMappingURL=jsxRuntime.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsxRuntime.mjs","sources":["../src/index.ts"],"sourcesContent":["import { h, Fragment } from 'lithent';\nimport type {\n Props,\n TagFunction,\n FragmentFunction,\n MiddleStateWDomChildren,\n} from 'lithent';\n\nfunction createWNode(\n type: TagFunction | FragmentFunction | string,\n orgProps: Props,\n key: unknown,\n _isStaticChildren: boolean,\n _source: unknown,\n _self: unknown\n) {\n const { children, ...props } = orgProps;\n if (children) {\n const newChildren: MiddleStateWDomChildren = !Array.isArray(children)\n ? [children]\n : children;\n\n return h(type, { ...props, key } as Props, ...newChildren);\n }\n\n return h(type, { ...props, key } as Props);\n}\n\nexport {\n createWNode as jsx,\n createWNode as jsxs,\n createWNode as jsxDEV,\n Fragment,\n};\n"],"names":["createWNode","type","orgProps","key","_isStaticChildren","_source","_self","children","props","newChildren","h"],"mappings":";;AAQA,SAASA,EACPC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA;AACA,QAAM,EAAE,UAAAC,GAAU,GAAGC,EAAA,IAAUN;AAC/B,MAAIK,GAAU;AACN,UAAAE,IAAwC,MAAM,QAAQF,CAAQ,IAEhEA,IADA,CAACA,CAAQ;AAGN,WAAAG,EAAET,GAAM,EAAE,GAAGO,GAAO,KAAAL,EAAI,GAAY,GAAGM,CAAW;AAAA,EAC3D;AAEA,SAAOC,EAAET,GAAM,EAAE,GAAGO,GAAO,KAAAL,EAAc,CAAA;AAC3C;"}
1
+ {"version":3,"file":"jsxRuntime.mjs","sources":["../src/index.ts"],"sourcesContent":["import { h, Fragment } from 'lithent';\nimport type {\n Props,\n TagFunction,\n FragmentFunction,\n MiddleStateWDomChildren,\n} from 'lithent';\n\nfunction createWNode(\n type: TagFunction | FragmentFunction | string,\n orgProps: Props,\n key: unknown,\n _isStaticChildren: boolean,\n _source: unknown,\n _self: unknown\n) {\n const { children, ...props } = orgProps;\n if (children !== null && children !== undefined) {\n const newChildren: MiddleStateWDomChildren = !Array.isArray(children)\n ? [children]\n : children;\n\n return h(type, { ...props, key } as Props, ...newChildren);\n }\n\n return h(type, { ...props, key } as Props);\n}\n\nexport {\n createWNode as jsx,\n createWNode as jsxs,\n createWNode as jsxDEV,\n Fragment,\n};\n"],"names":["createWNode","type","orgProps","key","_isStaticChildren","_source","_self","children","props","newChildren","h"],"mappings":";;AAQA,SAASA,EACPC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA;AACA,QAAM,EAAE,UAAAC,GAAU,GAAGC,EAAA,IAAUN;AAC3B,MAAAK,KAAa,MAAgC;AACzC,UAAAE,IAAwC,MAAM,QAAQF,CAAQ,IAEhEA,IADA,CAACA,CAAQ;AAGN,WAAAG,EAAET,GAAM,EAAE,GAAGO,GAAO,KAAAL,EAAI,GAAY,GAAGM,CAAW;AAAA,EAC3D;AAEA,SAAOC,EAAET,GAAM,EAAE,GAAGO,GAAO,KAAAL,EAAc,CAAA;AAC3C;"}
@@ -1,2 +1,2 @@
1
- (function(e,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("lithent")):typeof define=="function"&&define.amd?define(["exports","lithent"],n):(e=typeof globalThis<"u"?globalThis:e||self,n(e.jsxRuntime={},e.lithent))})(this,function(e,n){"use strict";function i(r,d,s,o,c,h){const{children:t,...u}=d;if(t){const f=Array.isArray(t)?t:[t];return n.h(r,{...u,key:s},...f)}return n.h(r,{...u,key:s})}Object.defineProperty(e,"Fragment",{enumerable:!0,get:()=>n.Fragment}),e.jsx=i,e.jsxDEV=i,e.jsxs=i,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
1
+ (function(e,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("lithent")):typeof define=="function"&&define.amd?define(["exports","lithent"],n):(e=typeof globalThis<"u"?globalThis:e||self,n(e.jsxRuntime={},e.lithent))})(this,function(e,n){"use strict";function i(r,o,u,f,c,l){const{children:t,...d}=o;if(t!=null){const s=Array.isArray(t)?t:[t];return n.h(r,{...d,key:u},...s)}return n.h(r,{...d,key:u})}Object.defineProperty(e,"Fragment",{enumerable:!0,get:()=>n.Fragment}),e.jsx=i,e.jsxDEV=i,e.jsxs=i,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=jsxRuntime.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsxRuntime.umd.js","sources":["../src/index.ts"],"sourcesContent":["import { h, Fragment } from 'lithent';\nimport type {\n Props,\n TagFunction,\n FragmentFunction,\n MiddleStateWDomChildren,\n} from 'lithent';\n\nfunction createWNode(\n type: TagFunction | FragmentFunction | string,\n orgProps: Props,\n key: unknown,\n _isStaticChildren: boolean,\n _source: unknown,\n _self: unknown\n) {\n const { children, ...props } = orgProps;\n if (children) {\n const newChildren: MiddleStateWDomChildren = !Array.isArray(children)\n ? [children]\n : children;\n\n return h(type, { ...props, key } as Props, ...newChildren);\n }\n\n return h(type, { ...props, key } as Props);\n}\n\nexport {\n createWNode as jsx,\n createWNode as jsxs,\n createWNode as jsxDEV,\n Fragment,\n};\n"],"names":["createWNode","type","orgProps","key","_isStaticChildren","_source","_self","children","props","newChildren","h"],"mappings":"2QAQA,SAASA,EACPC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA,CACA,KAAM,CAAE,SAAAC,EAAU,GAAGC,CAAA,EAAUN,EAC/B,GAAIK,EAAU,CACN,MAAAE,EAAwC,MAAM,QAAQF,CAAQ,EAEhEA,EADA,CAACA,CAAQ,EAGN,OAAAG,EAAAA,EAAET,EAAM,CAAE,GAAGO,EAAO,IAAAL,CAAI,EAAY,GAAGM,CAAW,CAC3D,CAEA,OAAOC,EAAAA,EAAET,EAAM,CAAE,GAAGO,EAAO,IAAAL,CAAc,CAAA,CAC3C"}
1
+ {"version":3,"file":"jsxRuntime.umd.js","sources":["../src/index.ts"],"sourcesContent":["import { h, Fragment } from 'lithent';\nimport type {\n Props,\n TagFunction,\n FragmentFunction,\n MiddleStateWDomChildren,\n} from 'lithent';\n\nfunction createWNode(\n type: TagFunction | FragmentFunction | string,\n orgProps: Props,\n key: unknown,\n _isStaticChildren: boolean,\n _source: unknown,\n _self: unknown\n) {\n const { children, ...props } = orgProps;\n if (children !== null && children !== undefined) {\n const newChildren: MiddleStateWDomChildren = !Array.isArray(children)\n ? [children]\n : children;\n\n return h(type, { ...props, key } as Props, ...newChildren);\n }\n\n return h(type, { ...props, key } as Props);\n}\n\nexport {\n createWNode as jsx,\n createWNode as jsxs,\n createWNode as jsxDEV,\n Fragment,\n};\n"],"names":["createWNode","type","orgProps","key","_isStaticChildren","_source","_self","children","props","newChildren","h"],"mappings":"2QAQA,SAASA,EACPC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA,CACA,KAAM,CAAE,SAAAC,EAAU,GAAGC,CAAA,EAAUN,EAC3B,GAAAK,GAAa,KAAgC,CACzC,MAAAE,EAAwC,MAAM,QAAQF,CAAQ,EAEhEA,EADA,CAACA,CAAQ,EAGN,OAAAG,EAAAA,EAAET,EAAM,CAAE,GAAGO,EAAO,IAAAL,CAAI,EAAY,GAAGM,CAAW,CAC3D,CAEA,OAAOC,EAAAA,EAAET,EAAM,CAAE,GAAGO,EAAO,IAAAL,CAAc,CAAA,CAC3C"}
@@ -15,7 +15,7 @@ function createWNode(
15
15
  _self: unknown
16
16
  ) {
17
17
  const { children, ...props } = orgProps;
18
- if (children) {
18
+ if (children !== null && children !== undefined) {
19
19
  const newChildren: MiddleStateWDomChildren = !Array.isArray(children)
20
20
  ? [children]
21
21
  : children;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "lithent",
4
- "version": "1.18.1",
4
+ "version": "1.18.3",
5
5
  "description": "An extensible virtual DOM library for lightweight use in a variety of environments.",
6
6
  "packageManager": "pnpm@9.12.3",
7
7
  "main": "./dist/lithent.umd.js",
@@ -1,13 +1,47 @@
1
- import { mount as h, h as l, Fragment as $, render as x } from "lithent";
2
- const S = h((n) => {
3
- let e = 1, t = "s";
1
+ import { h as f, mount as h, Fragment as x, render as k } from "lithent";
2
+ function s(e, n, t, r, i, o) {
3
+ const { children: c, ...u } = n;
4
+ if (c != null) {
5
+ const l = Array.isArray(c) ? c : [c];
6
+ return f(e, { ...u, key: t }, ...l);
7
+ }
8
+ return f(e, { ...u, key: t });
9
+ }
10
+ const S = h((e) => () => /* @__PURE__ */ s(x, { children: [
11
+ /* @__PURE__ */ s("meta", { name: "twitter:card1", content: "summary_large_image" }),
12
+ " ",
13
+ /* @__PURE__ */ s("meta", { name: "twitter:site2", content: "@superlucky84" })
14
+ ] })), E = h((e) => {
15
+ let n = 1, t = "s";
4
16
  const r = () => {
5
- e += 1, t += "s", n();
17
+ n += 1, t += "s", e();
6
18
  };
7
- return () => /* @__PURE__ */ l("div", { style: { border: `${e}px solid red` } }, "asve", /* @__PURE__ */ l("br", null), /* @__PURE__ */ l("section", { innerHTML: "<article>ss</article>" }), /* @__PURE__ */ l("button", { disabled: !1, onClick: r }, e, " -== a1 - ", e, t), e, /* @__PURE__ */ l("span", { id: "aa11", "data-max-string": "va" }, " ", "123124"));
19
+ return () => /* @__PURE__ */ s("div", { style: { border: `${n}px solid red` }, children: [
20
+ "asve",
21
+ /* @__PURE__ */ s("br", {}),
22
+ /* @__PURE__ */ s("section", { innerHTML: "<article>ss</article>" }),
23
+ /* @__PURE__ */ s("button", { disabled: !1, onClick: r, children: [
24
+ n,
25
+ " -== a1 - ",
26
+ n,
27
+ t
28
+ ] }),
29
+ n,
30
+ /* @__PURE__ */ s("span", { id: "aa11", "data-max-string": "va", children: [
31
+ " ",
32
+ "123124"
33
+ ] })
34
+ ] });
8
35
  });
9
- h((n) => () => /* @__PURE__ */ l($, null, " ", "111", "222", " ", "45", /* @__PURE__ */ l(S, null), /* @__PURE__ */ l("div", null, "aaa")));
10
- const k = [
36
+ h((e) => () => /* @__PURE__ */ s("html", { lang: "en", children: [
37
+ /* @__PURE__ */ s("head", { children: [
38
+ /* @__PURE__ */ s("title", { children: "Express with Vite and JSX" }),
39
+ /* @__PURE__ */ s(S, {}),
40
+ /* @__PURE__ */ s("script", { src: "/dist/lithentSsr.umd.js" })
41
+ ] }),
42
+ /* @__PURE__ */ s("body", { children: /* @__PURE__ */ s("div", { id: "app", children: /* @__PURE__ */ s(E, {}) }) })
43
+ ] }));
44
+ const j = [
11
45
  "area",
12
46
  "base",
13
47
  "br",
@@ -24,128 +58,128 @@ const k = [
24
58
  "track",
25
59
  "wbr"
26
60
  ];
27
- function C(n) {
28
- return k.includes(n);
61
+ function m(e) {
62
+ return j.includes(e);
29
63
  }
30
- function E(n) {
31
- return n != null;
64
+ function C(e) {
65
+ return e != null;
32
66
  }
33
- function L(n) {
34
- return n && ["fragment", "loop"].includes(n);
67
+ function L(e) {
68
+ return e && ["fragment", "loop"].includes(e);
35
69
  }
36
- function j(n, e) {
37
- return n === "style" && typeof e == "object";
70
+ function A(e, n) {
71
+ return e === "style" && typeof n == "object";
38
72
  }
39
- function N(n, e) {
40
- return n === "ref" && typeof e == "object";
73
+ function N(e, n) {
74
+ return e === "ref" && typeof n == "object";
41
75
  }
42
- function v(n) {
43
- return Object.entries(n).map(([e, t]) => `${e.replace(/([A-Z])/g, "-$1").toLowerCase()}: ${t};`).join(" ");
76
+ function v(e) {
77
+ return Object.entries(e).map(([n, t]) => `${n.replace(/([A-Z])/g, "-$1").toLowerCase()}: ${t};`).join(" ");
44
78
  }
45
- function a(n) {
46
- return y(n);
79
+ function y(e) {
80
+ return g(e);
47
81
  }
48
- function y(n) {
49
- let e = "";
50
- const { type: t, tag: r, text: o, props: i, children: s = [] } = n;
82
+ function g(e) {
83
+ let n = "";
84
+ const { type: t, tag: r, text: i, props: o, children: c = [] } = e;
51
85
  if (L(t))
52
- e = f(s, e);
86
+ n = d(c, n);
53
87
  else if (t === "element" && r) {
54
- const c = i == null ? void 0 : i.innerHTML;
55
- c ? e = `<${r}${p(i)}>${c}</${r}>` : C(r) && !s.length ? e = `<${r}${p(i)} />` : (e = `<${r}${p(i)}>`, e = f(s, e), e = `${e}</${r}>`);
56
- } else if (t === "text" && E(o))
57
- e = String(o), e = f(s, e);
88
+ const l = o == null ? void 0 : o.innerHTML;
89
+ l ? n = `<${r}${p(o)}>${l}</${r}>` : m(r) && !c.length ? n = `<${r}${p(o)} />` : (n = `<${r}${p(o)}>`, n = d(c, n), n = `${n}</${r}>`);
90
+ } else if (t === "text" && C(i))
91
+ n = String(i), n = d(c, n);
58
92
  else
59
93
  throw new Error(
60
94
  "An attempt was made to render an abnormal virtual DOM object."
61
95
  );
62
- return e;
96
+ return n;
63
97
  }
64
- function f(n, e) {
65
- return n.reduce((r, o) => {
66
- if (o.type) {
67
- const i = y(o);
68
- r += i;
98
+ function d(e, n) {
99
+ return e.reduce((r, i) => {
100
+ if (i.type) {
101
+ const o = g(i);
102
+ r += o;
69
103
  }
70
104
  return r;
71
- }, e || "");
105
+ }, n || "");
72
106
  }
73
- function p(n) {
74
- let e = [];
75
- return Object.entries(n || {}).forEach(
107
+ function p(e) {
108
+ let n = [];
109
+ return Object.entries(e || {}).forEach(
76
110
  ([t, r]) => {
77
- const o = t === "key", i = t === "portal" && typeof r == "object", s = t === "innerHTML" && typeof r == "string", u = N(t, r), c = t.match(/^on/);
78
- if (!(o || i || s || u || c))
79
- if (j(t, r)) {
80
- const T = v(r);
81
- e.push(`style="${T}"`);
82
- } else t && r === !0 ? e.push(`${t}="${t}"`) : t && typeof r != "boolean" && e.push(`${t}="${String(r)}"`);
111
+ const i = t === "key", o = t === "portal" && typeof r == "object", c = t === "innerHTML" && typeof r == "string", u = N(t, r), l = t.match(/^on/);
112
+ if (!(i || o || c || u || l))
113
+ if (A(t, r)) {
114
+ const $ = v(r);
115
+ n.push(`style="${$}"`);
116
+ } else t && r === !0 ? n.push(`${t}="${t}"`) : t && typeof r != "boolean" && n.push(`${t}="${String(r)}"`);
83
117
  }
84
- ), e.length ? " " + e.join(" ") : "";
118
+ ), n.length ? " " + n.join(" ") : "";
85
119
  }
86
- function F(n, e) {
87
- return A(n, e), x(n, e, null, !0);
120
+ function F(e, n) {
121
+ return H(e, n), k(e, n, null, !0);
88
122
  }
89
- function A(n, e) {
90
- const t = n.type && ["fragment", "loop"].includes(n.type);
91
- t && (n.el = new DocumentFragment());
92
- const r = d(
93
- t ? [...n.children || []] : [n]
94
- ), o = e.tagName === "HTML" ? [e] : Array.from(e.childNodes);
95
- r && g(r, o);
123
+ function H(e, n) {
124
+ const t = e.type && ["fragment", "loop"].includes(e.type);
125
+ t && (e.el = new DocumentFragment());
126
+ const r = a(
127
+ t ? [...e.children || []] : [e]
128
+ ), i = n.tagName === "HTML" ? [n] : Array.from(n.childNodes);
129
+ r && b(r, i);
96
130
  }
97
- function g(n, e) {
131
+ function b(e, n) {
98
132
  let t = 0;
99
- e.filter((r) => H(r)).forEach((r) => {
100
- let o = n[t];
101
- const i = r.nodeType;
102
- let s = !1;
103
- if (((o == null ? void 0 : o.type) === null || (o == null ? void 0 : o.type) === "text" && (o == null ? void 0 : o.text) === `
104
- `) && (t += 1, o = n[t]), r && o && o.type && ["text", "element"].includes(o.type)) {
105
- if (o.type === "text" && i === 3) {
106
- const { tFragment: u, nIndex: c } = m(
107
- n,
133
+ n.filter((r) => M(r)).forEach((r) => {
134
+ let i = e[t];
135
+ const o = r.nodeType;
136
+ let c = !1;
137
+ if (((i == null ? void 0 : i.type) === null || (i == null ? void 0 : i.type) === "text" && (i == null ? void 0 : i.text) === `
138
+ ` || (i == null ? void 0 : i.type) === "text" && o === 1) && (t += 1, i = e[t]), r && i && i.type && ["text", "element"].includes(i.type)) {
139
+ if (i.type === "text" && o === 3) {
140
+ const { tFragment: u, nIndex: l } = _(
141
+ e,
108
142
  t
109
143
  );
110
- t = c, r.parentElement.replaceChild(u, r);
111
- } else o.type === "element" && i === 1 && ((r.tagName || "").toLowerCase() !== o.tag ? s = !0 : o.el = r);
112
- s || g(
113
- d(o.children || []),
144
+ t = l, r.parentElement.replaceChild(u, r);
145
+ } else i.type === "element" && o === 1 && ((r.tagName || "").toLowerCase() !== i.tag ? c = !0 : i.el = r);
146
+ c || b(
147
+ a(i.children || []),
114
148
  Array.from(r.childNodes)
115
149
  );
116
150
  }
117
- s || (t += 1);
151
+ c || (t += 1);
118
152
  });
119
153
  }
120
- function H(n) {
121
- return !(n.nodeType === 3 && !n.data.replace(/\s*/g, ""));
154
+ function M(e) {
155
+ return !(e.nodeType === 3 && !e.data.replace(/\s*/g, ""));
122
156
  }
123
- function d(n) {
124
- return n.reduce((e, t) => (t.type && ["fragment", "loop"].includes(t.type) ? (t.el = new DocumentFragment(), e.push(...d((t == null ? void 0 : t.children) || []))) : e.push(t), e), []);
157
+ function a(e) {
158
+ return e.reduce((n, t) => (t.type && ["fragment", "loop"].includes(t.type) ? (t.el = new DocumentFragment(), n.push(...a((t == null ? void 0 : t.children) || []))) : n.push(t), n), []);
125
159
  }
126
- function m(n, e) {
127
- const t = b(n, e, []), r = new DocumentFragment();
128
- return t.forEach((o) => {
129
- const i = document.createTextNode(String(o.text));
130
- o.el = i, r.appendChild(i);
160
+ function _(e, n) {
161
+ const t = T(e, n, []), r = new DocumentFragment();
162
+ return t.forEach((i) => {
163
+ const o = document.createTextNode(String(i.text));
164
+ i.el = o, r.appendChild(o);
131
165
  }), {
132
166
  tFragment: r,
133
- nIndex: e + (t.length - 1)
167
+ nIndex: n + (t.length - 1)
134
168
  };
135
169
  }
136
- function b(n, e, t) {
137
- return n[e] && n[e].type === "text" ? (t.push(n[e]), b(n, e + 1, [...t])) : t;
170
+ function T(e, n, t) {
171
+ return e[n] && e[n].type === "text" ? (t.push(e[n]), T(e, n + 1, [...t])) : t;
138
172
  }
139
- const W = a, M = F;
140
- function O(n) {
141
- return typeof window < "u" ? M(l(n, {}), document.documentElement) : a(l(n, {}));
173
+ const R = y, P = F;
174
+ function G(e) {
175
+ return typeof window < "u" ? P(f(e, {}), document.documentElement) : y(f(e, {}));
142
176
  }
143
- let _;
144
- const R = _;
177
+ let W;
178
+ const J = W;
145
179
  export {
146
- M as hydration,
147
- W as renderToString,
148
- O as renderWithHydration,
149
- R as run
180
+ P as hydration,
181
+ R as renderToString,
182
+ G as renderWithHydration,
183
+ J as run
150
184
  };
151
185
  //# sourceMappingURL=lithentSsr.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"lithentSsr.mjs","sources":["../src/tests/tostring.tsx","../src/helper/index.ts","../src/renderToString.ts","../src/hydration.ts","../src/index.ts"],"sourcesContent":["import { h, mount, Fragment } from 'lithent';\n\nconst Children = mount(r => {\n let v = 1;\n let k = 's';\n\n const increase = () => {\n v += 1;\n k += 's';\n r();\n };\n\n return () => (\n <div style={{ border: `${v}px solid red` }}>\n asve\n <br />\n <section innerHTML=\"<article>ss</article>\" />\n <button disabled={false} onClick={increase}>\n {v} -== a1 - {v}\n {k}\n </button>\n {v}\n <span id=\"aa11\" data-max-string=\"va\">\n {' '}123124\n </span>\n </div>\n );\n});\n\nconst Root = mount(_r => {\n return () => (\n <Fragment>\n {' '}\n 111{/* <!-- aa --> */}222{' '}45\n <Children />\n <div>aaa</div>\n </Fragment>\n );\n});\n\nexport default Root;\n","const SELF_CLOSE_ALLLOW = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n];\n\nexport function isAllowSelfClose(tagname: string) {\n return SELF_CLOSE_ALLLOW.includes(tagname);\n}\n\nexport function checkExisty(value: unknown) {\n return value !== null && value !== undefined;\n}\n\nexport function checkVirtualType(type?: string | null) {\n return type && ['fragment', 'loop'].includes(type);\n}\n\nexport function checkStyleData(\n dataKey: string,\n dataValue: unknown\n): dataValue is Record<string, string> {\n return dataKey === 'style' && typeof dataValue === 'object';\n}\n\nexport function checkRefData(\n dataKey: string,\n dataValue: unknown\n): dataValue is {\n value: HTMLElement | Element | DocumentFragment | Text | undefined;\n} {\n return dataKey === 'ref' && typeof dataValue === 'object';\n}\n\nexport function styleObjectToString(styleObj: Record<string, string>) {\n return Object.entries(styleObj)\n .map(([key, value]) => {\n // camelCase를 kebab-case로 변환 (예: borderTop -> border-top)\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n return `${kebabKey}: ${value};`;\n })\n .join(' ');\n}\n","import type { WDom, Props } from 'lithent';\nimport {\n isAllowSelfClose,\n checkExisty,\n checkVirtualType,\n checkStyleData,\n checkRefData,\n styleObjectToString,\n} from '@/helper';\n\n/**\n * Main function of renderToString\"\n */\nexport function renderToString(wDom: WDom) {\n return wDomToString(wDom);\n}\n\n/**\n * Converts a chunk of virtual DOM objects into string tags.\n */\nfunction wDomToString(wDom: WDom) {\n let element = '';\n const { type, tag, text, props, children = [] } = wDom;\n const isVirtualType = checkVirtualType(type);\n\n if (isVirtualType) {\n element = wDomChildrenToDom(children, element);\n } else if (type === 'element' && tag) {\n const innerHTML = props?.innerHTML;\n\n if (innerHTML) {\n element = `<${tag}${makeProp(props)}>${innerHTML}</${tag}>`;\n } else if (isAllowSelfClose(tag) && !children.length) {\n element = `<${tag}${makeProp(props)} />`;\n } else {\n element = `<${tag}${makeProp(props)}>`;\n element = wDomChildrenToDom(children, element);\n element = `${element}</${tag}>`;\n }\n } else if (type === 'text' && checkExisty(text)) {\n element = String(text);\n element = wDomChildrenToDom(children, element);\n } else {\n throw new Error(\n 'An attempt was made to render an abnormal virtual DOM object.'\n );\n }\n\n return element;\n}\n\n/**\n * Converts all child nodes of a virtual DOM object into string tags.\n */\nfunction wDomChildrenToDom(children: WDom[], parentElement?: string) {\n const newString = children.reduce((acc: string, childItem: WDom) => {\n if (childItem.type) {\n const childElement = wDomToString(childItem);\n\n acc += childElement;\n }\n\n return acc;\n }, parentElement || '');\n\n return newString;\n}\n\n/**\n * Creates and attaches a prop string to the tag.\n */\nfunction makeProp(props?: Props) {\n let attrGroup: string[] = [];\n\n Object.entries(props || {}).forEach(\n ([dataKey, dataValue]: [string, unknown]) => {\n const isKey = dataKey === 'key';\n const isPortal = dataKey === 'portal' && typeof dataValue === 'object';\n const isHtml = dataKey === 'innerHTML' && typeof dataValue === 'string';\n const isRef = checkRefData(dataKey, dataValue);\n const isEvent = dataKey.match(/^on/);\n\n if (!(isKey || isPortal || isHtml || isRef || isEvent)) {\n if (checkStyleData(dataKey, dataValue)) {\n const cssString = styleObjectToString(dataValue);\n attrGroup.push(`style=\"${cssString}\"`);\n } else if (dataKey && dataValue === true) {\n attrGroup.push(`${dataKey}=\"${dataKey}\"`);\n } else if (dataKey && typeof dataValue !== 'boolean') {\n attrGroup.push(`${dataKey}=\"${String(dataValue)}\"`);\n }\n }\n }\n );\n\n return attrGroup.length ? ' ' + attrGroup.join(' ') : '';\n}\n","import { render } from 'lithent';\nimport type { WDom } from 'lithent';\n\n/**\n * hydration\n */\nexport function hydration(wDom: WDom, wrapElement: HTMLElement) {\n /**\n * Attach the el property to wDom.\n */\n addElement(wDom, wrapElement);\n\n /**\n * Attach events to wDom.\n */\n return render(wDom, wrapElement, null, true);\n}\n\n/**\n * Attach the el property to wDom.\n */\nfunction addElement(wDomOrig: WDom, wrapElement: HTMLElement) {\n const isVirtualType =\n wDomOrig.type && ['fragment', 'loop'].includes(wDomOrig.type);\n\n if (isVirtualType) {\n wDomOrig.el = new DocumentFragment();\n }\n const wDomList = flatFlagmentFromList(\n isVirtualType ? [...(wDomOrig.children || [])] : [wDomOrig]\n );\n const realDomList =\n wrapElement.tagName === 'HTML'\n ? [wrapElement]\n : Array.from(wrapElement.childNodes);\n\n if (wDomList) {\n addElementProcessChildren(wDomList, realDomList);\n }\n}\n\n/**\n * Attach the el property to wDom recursively.\n */\nfunction addElementProcessChildren(wDomList: WDom[], realDomList: ChildNode[]) {\n let index = 0;\n realDomList\n .filter((item: any) => filteredEmptyTextNode(item))\n .forEach(realDomItem => {\n let wDomItem = wDomList[index];\n const nodeType = realDomItem.nodeType;\n let pass = false;\n\n if (\n wDomItem?.type === null ||\n (wDomItem?.type === 'text' && wDomItem?.text === '\\n')\n ) {\n index += 1;\n wDomItem = wDomList[index];\n }\n\n if (\n realDomItem &&\n wDomItem &&\n wDomItem.type &&\n ['text', 'element'].includes(wDomItem.type)\n ) {\n if (wDomItem.type === 'text' && nodeType === 3) {\n const { tFragment, nIndex } = processConsecutiveTextNodes(\n wDomList,\n index\n );\n index = nIndex;\n realDomItem!.parentElement!.replaceChild(tFragment, realDomItem);\n } else if (wDomItem.type === 'element' && nodeType === 1) {\n if (\n ((realDomItem as HTMLElement).tagName || '').toLowerCase() !==\n wDomItem.tag\n ) {\n // throw new Error('Hydration Error - not matched tagname');\n pass = true;\n } else {\n wDomItem.el = realDomItem as HTMLElement;\n }\n }\n\n if (!pass) {\n addElementProcessChildren(\n flatFlagmentFromList(wDomItem.children || []),\n Array.from(realDomItem.childNodes)\n );\n }\n }\n\n if (!pass) {\n index += 1;\n }\n });\n}\n\n/**\n * Whitespace or text nodes are ignored.\n */\nfunction filteredEmptyTextNode(item: HTMLElement | Text) {\n if (item.nodeType === 3 && !(item as Text).data.replace(/\\s*/g, '')) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Flattens nested fragment types.\n */\nfunction flatFlagmentFromList(wDomlist: WDom[]) {\n return wDomlist.reduce((acc: WDom[], item: WDom) => {\n if (item.type && ['fragment', 'loop'].includes(item.type)) {\n item.el = new DocumentFragment();\n acc.push(...flatFlagmentFromList(item?.children || []));\n } else {\n acc.push(item);\n }\n return acc;\n }, []);\n}\n\n/**\n * Hydration is applied to consecutively rendered text node objects.\n */\nfunction processConsecutiveTextNodes(wDomList: WDom[], cIndex: number) {\n const textWDomList: WDom[] = collectAdjacentTextNode(wDomList, cIndex, []);\n const tFragment = new DocumentFragment();\n textWDomList.forEach(item => {\n const textNode = document.createTextNode(String(item.text));\n item.el = textNode;\n tFragment.appendChild(textNode);\n });\n\n return {\n tFragment,\n nIndex: cIndex + (textWDomList.length - 1),\n };\n}\n\n/**\n * Collect consecutive text nodes.\n */\nfunction collectAdjacentTextNode(\n wDomList: WDom[],\n cIndex: number,\n acc: WDom[]\n): WDom[] {\n if (wDomList[cIndex] && wDomList[cIndex].type === 'text') {\n acc.push(wDomList[cIndex]);\n\n return collectAdjacentTextNode(wDomList, cIndex + 1, [...acc]);\n }\n return acc;\n}\n","import { h } from 'lithent';\nimport type { TagFunction } from 'lithent';\nimport Test from '@/tests/tostring';\nimport { renderToString as _renderToString } from '@/renderToString';\nimport { hydration as _hydration } from '@/hydration';\n\nexport const renderToString = _renderToString;\nexport const hydration = _hydration;\n\nexport function renderWithHydration(tagFunction: TagFunction) {\n if (typeof window !== 'undefined') {\n return hydration(h(tagFunction, {}), document.documentElement);\n }\n\n return _renderToString(h(tagFunction, {}));\n}\n\nlet _run: ((wrap: HTMLElement) => void) | undefined;\n\nif (import.meta.env.MODE === 'development') {\n _run = (wrap: HTMLElement) => {\n hydration(h(Test as TagFunction, {}), wrap);\n };\n}\n\nexport const run = _run;\n"],"names":["Children","mount","r","v","k","increase","h","_r","Fragment","SELF_CLOSE_ALLLOW","isAllowSelfClose","tagname","checkExisty","value","checkVirtualType","type","checkStyleData","dataKey","dataValue","checkRefData","styleObjectToString","styleObj","key","renderToString","wDom","wDomToString","element","tag","text","props","children","wDomChildrenToDom","innerHTML","makeProp","parentElement","acc","childItem","childElement","attrGroup","isKey","isPortal","isHtml","isRef","isEvent","cssString","hydration","wrapElement","addElement","render","wDomOrig","isVirtualType","wDomList","flatFlagmentFromList","realDomList","addElementProcessChildren","index","item","filteredEmptyTextNode","realDomItem","wDomItem","nodeType","pass","tFragment","nIndex","processConsecutiveTextNodes","wDomlist","cIndex","textWDomList","collectAdjacentTextNode","textNode","_renderToString","_hydration","renderWithHydration","tagFunction","_run","run"],"mappings":"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"}
1
+ {"version":3,"file":"lithentSsr.mjs","sources":["../../jsx-runtime/dist/jsxRuntime.mjs","../src/tests/tostring.tsx","../src/helper/index.ts","../src/renderToString.ts","../src/hydration.ts","../src/index.ts"],"sourcesContent":["import { h as o } from \"lithent\";\nimport { Fragment as h } from \"lithent\";\nfunction f(s, t, e, a, c, l) {\n const { children: r, ...n } = t;\n if (r != null) {\n const i = Array.isArray(r) ? r : [r];\n return o(s, { ...n, key: e }, ...i);\n }\n return o(s, { ...n, key: e });\n}\nexport {\n h as Fragment,\n f as jsx,\n f as jsxDEV,\n f as jsxs\n};\n//# sourceMappingURL=jsxRuntime.mjs.map\n","import { mount, Fragment } from 'lithent';\n\nconst Meta = mount(_r => {\n return () => (\n <Fragment>\n <meta name=\"twitter:card1\" content=\"summary_large_image\" />{' '}\n <meta name=\"twitter:site2\" content=\"@superlucky84\" />\n </Fragment>\n );\n});\n\nconst Children = mount(r => {\n let v = 1;\n let k = 's';\n\n const increase = () => {\n v += 1;\n k += 's';\n r();\n };\n\n return () => (\n <div style={{ border: `${v}px solid red` }}>\n asve\n <br />\n <section innerHTML=\"<article>ss</article>\" />\n <button disabled={false} onClick={increase}>\n {v} -== a1 - {v}\n {k}\n </button>\n {v}\n <span id=\"aa11\" data-max-string=\"va\">\n {' '}123124\n </span>\n </div>\n );\n});\n\nconst Root = mount(_r => {\n return () => (\n <html lang=\"en\">\n <head>\n <title>Express with Vite and JSX</title>\n <Meta />\n <script src=\"/dist/lithentSsr.umd.js\"></script>\n </head>\n <body>\n <div id=\"app\">\n <Children />\n </div>\n </body>\n </html>\n );\n});\n\nexport default Root;\n","const SELF_CLOSE_ALLLOW = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n];\n\nexport function isAllowSelfClose(tagname: string) {\n return SELF_CLOSE_ALLLOW.includes(tagname);\n}\n\nexport function checkExisty(value: unknown) {\n return value !== null && value !== undefined;\n}\n\nexport function checkVirtualType(type?: string | null) {\n return type && ['fragment', 'loop'].includes(type);\n}\n\nexport function checkStyleData(\n dataKey: string,\n dataValue: unknown\n): dataValue is Record<string, string> {\n return dataKey === 'style' && typeof dataValue === 'object';\n}\n\nexport function checkRefData(\n dataKey: string,\n dataValue: unknown\n): dataValue is {\n value: HTMLElement | Element | DocumentFragment | Text | undefined;\n} {\n return dataKey === 'ref' && typeof dataValue === 'object';\n}\n\nexport function styleObjectToString(styleObj: Record<string, string>) {\n return Object.entries(styleObj)\n .map(([key, value]) => {\n // camelCase를 kebab-case로 변환 (예: borderTop -> border-top)\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n return `${kebabKey}: ${value};`;\n })\n .join(' ');\n}\n","import type { WDom, Props } from 'lithent';\nimport {\n isAllowSelfClose,\n checkExisty,\n checkVirtualType,\n checkStyleData,\n checkRefData,\n styleObjectToString,\n} from '@/helper';\n\n/**\n * Main function of renderToString\"\n */\nexport function renderToString(wDom: WDom) {\n return wDomToString(wDom);\n}\n\n/**\n * Converts a chunk of virtual DOM objects into string tags.\n */\nfunction wDomToString(wDom: WDom) {\n let element = '';\n const { type, tag, text, props, children = [] } = wDom;\n const isVirtualType = checkVirtualType(type);\n\n if (isVirtualType) {\n element = wDomChildrenToDom(children, element);\n } else if (type === 'element' && tag) {\n const innerHTML = props?.innerHTML;\n\n if (innerHTML) {\n element = `<${tag}${makeProp(props)}>${innerHTML}</${tag}>`;\n } else if (isAllowSelfClose(tag) && !children.length) {\n element = `<${tag}${makeProp(props)} />`;\n } else {\n element = `<${tag}${makeProp(props)}>`;\n element = wDomChildrenToDom(children, element);\n element = `${element}</${tag}>`;\n }\n } else if (type === 'text' && checkExisty(text)) {\n element = String(text);\n element = wDomChildrenToDom(children, element);\n } else {\n throw new Error(\n 'An attempt was made to render an abnormal virtual DOM object.'\n );\n }\n\n return element;\n}\n\n/**\n * Converts all child nodes of a virtual DOM object into string tags.\n */\nfunction wDomChildrenToDom(children: WDom[], parentElement?: string) {\n const newString = children.reduce((acc: string, childItem: WDom) => {\n if (childItem.type) {\n const childElement = wDomToString(childItem);\n\n acc += childElement;\n }\n\n return acc;\n }, parentElement || '');\n\n return newString;\n}\n\n/**\n * Creates and attaches a prop string to the tag.\n */\nfunction makeProp(props?: Props) {\n let attrGroup: string[] = [];\n\n Object.entries(props || {}).forEach(\n ([dataKey, dataValue]: [string, unknown]) => {\n const isKey = dataKey === 'key';\n const isPortal = dataKey === 'portal' && typeof dataValue === 'object';\n const isHtml = dataKey === 'innerHTML' && typeof dataValue === 'string';\n const isRef = checkRefData(dataKey, dataValue);\n const isEvent = dataKey.match(/^on/);\n\n if (!(isKey || isPortal || isHtml || isRef || isEvent)) {\n if (checkStyleData(dataKey, dataValue)) {\n const cssString = styleObjectToString(dataValue);\n attrGroup.push(`style=\"${cssString}\"`);\n } else if (dataKey && dataValue === true) {\n attrGroup.push(`${dataKey}=\"${dataKey}\"`);\n } else if (dataKey && typeof dataValue !== 'boolean') {\n attrGroup.push(`${dataKey}=\"${String(dataValue)}\"`);\n }\n }\n }\n );\n\n return attrGroup.length ? ' ' + attrGroup.join(' ') : '';\n}\n","import { render } from 'lithent';\nimport type { WDom } from 'lithent';\n\n/**\n * hydration\n */\nexport function hydration(wDom: WDom, wrapElement: HTMLElement) {\n /**\n * Attach the el property to wDom.\n */\n addElement(wDom, wrapElement);\n\n /**\n * Attach events to wDom.\n */\n return render(wDom, wrapElement, null, true);\n}\n\n/**\n * Attach the el property to wDom.\n */\nfunction addElement(wDomOrig: WDom, wrapElement: HTMLElement) {\n const isVirtualType =\n wDomOrig.type && ['fragment', 'loop'].includes(wDomOrig.type);\n\n if (isVirtualType) {\n wDomOrig.el = new DocumentFragment();\n }\n const wDomList = flatFlagmentFromList(\n isVirtualType ? [...(wDomOrig.children || [])] : [wDomOrig]\n );\n\n const realDomList =\n wrapElement.tagName === 'HTML'\n ? [wrapElement]\n : Array.from(wrapElement.childNodes);\n\n if (wDomList) {\n addElementProcessChildren(wDomList, realDomList);\n }\n}\n\n/**\n * Attach the el property to wDom recursively.\n */\nfunction addElementProcessChildren(wDomList: WDom[], realDomList: ChildNode[]) {\n let index = 0;\n realDomList\n .filter((item: any) => filteredEmptyTextNode(item))\n .forEach(realDomItem => {\n let wDomItem = wDomList[index];\n const nodeType = realDomItem.nodeType;\n let pass = false;\n\n if (\n wDomItem?.type === null ||\n (wDomItem?.type === 'text' && wDomItem?.text === '\\n') ||\n (wDomItem?.type === 'text' && nodeType === 1)\n ) {\n index += 1;\n wDomItem = wDomList[index];\n }\n\n if (\n realDomItem &&\n wDomItem &&\n wDomItem.type &&\n ['text', 'element'].includes(wDomItem.type)\n ) {\n if (wDomItem.type === 'text' && nodeType === 3) {\n const { tFragment, nIndex } = processConsecutiveTextNodes(\n wDomList,\n index\n );\n index = nIndex;\n realDomItem!.parentElement!.replaceChild(tFragment, realDomItem);\n } else if (wDomItem.type === 'element' && nodeType === 1) {\n if (\n ((realDomItem as HTMLElement).tagName || '').toLowerCase() !==\n wDomItem.tag\n ) {\n // throw new Error('Hydration Error - not matched tagname');\n pass = true;\n } else {\n wDomItem.el = realDomItem as HTMLElement;\n }\n }\n\n if (!pass) {\n addElementProcessChildren(\n flatFlagmentFromList(wDomItem.children || []),\n Array.from(realDomItem.childNodes)\n );\n }\n }\n\n if (!pass) {\n index += 1;\n }\n });\n}\n\n/**\n * Whitespace or text nodes are ignored.\n */\nfunction filteredEmptyTextNode(item: HTMLElement | Text) {\n if (item.nodeType === 3 && !(item as Text).data.replace(/\\s*/g, '')) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Flattens nested fragment types.\n */\nfunction flatFlagmentFromList(wDomlist: WDom[]) {\n return wDomlist.reduce((acc: WDom[], item: WDom) => {\n if (item.type && ['fragment', 'loop'].includes(item.type)) {\n item.el = new DocumentFragment();\n acc.push(...flatFlagmentFromList(item?.children || []));\n } else {\n acc.push(item);\n }\n return acc;\n }, []);\n}\n\n/**\n * Hydration is applied to consecutively rendered text node objects.\n */\nfunction processConsecutiveTextNodes(wDomList: WDom[], cIndex: number) {\n const textWDomList: WDom[] = collectAdjacentTextNode(wDomList, cIndex, []);\n const tFragment = new DocumentFragment();\n textWDomList.forEach(item => {\n const textNode = document.createTextNode(String(item.text));\n item.el = textNode;\n tFragment.appendChild(textNode);\n });\n\n return {\n tFragment,\n nIndex: cIndex + (textWDomList.length - 1),\n };\n}\n\n/**\n * Collect consecutive text nodes.\n */\nfunction collectAdjacentTextNode(\n wDomList: WDom[],\n cIndex: number,\n acc: WDom[]\n): WDom[] {\n if (wDomList[cIndex] && wDomList[cIndex].type === 'text') {\n acc.push(wDomList[cIndex]);\n\n return collectAdjacentTextNode(wDomList, cIndex + 1, [...acc]);\n }\n return acc;\n}\n","import { h } from 'lithent';\nimport type { TagFunction } from 'lithent';\nimport Test from '@/tests/tostring';\nimport { renderToString as _renderToString } from '@/renderToString';\nimport { hydration as _hydration } from '@/hydration';\n\nexport const renderToString = _renderToString;\nexport const hydration = _hydration;\n\nexport function renderWithHydration(tagFunction: TagFunction) {\n if (typeof window !== 'undefined') {\n return hydration(h(tagFunction, {}), document.documentElement);\n }\n\n return _renderToString(h(tagFunction, {}));\n}\n\nlet _run: ((wrap: HTMLElement) => void) | undefined;\n\nif (import.meta.env.MODE === 'development') {\n _run = (wrap: HTMLElement) => {\n hydration(h(Test as TagFunction, {}), wrap);\n };\n}\n\nexport const run = _run;\n"],"names":["f","s","t","e","a","c","l","r","n","i","o","Meta","mount","_r","Fragment","jsx","Children","v","k","increase","jsxs","SELF_CLOSE_ALLLOW","isAllowSelfClose","tagname","checkExisty","value","checkVirtualType","type","checkStyleData","dataKey","dataValue","checkRefData","styleObjectToString","styleObj","key","renderToString","wDom","wDomToString","element","tag","text","props","children","wDomChildrenToDom","innerHTML","makeProp","parentElement","acc","childItem","childElement","attrGroup","isKey","isPortal","isHtml","isRef","isEvent","cssString","hydration","wrapElement","addElement","render","wDomOrig","isVirtualType","wDomList","flatFlagmentFromList","realDomList","addElementProcessChildren","index","item","filteredEmptyTextNode","realDomItem","wDomItem","nodeType","pass","tFragment","nIndex","processConsecutiveTextNodes","wDomlist","cIndex","textWDomList","collectAdjacentTextNode","textNode","_renderToString","_hydration","renderWithHydration","tagFunction","h","_run","run"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- (function(c,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("lithent")):typeof define=="function"&&define.amd?define(["exports","lithent"],i):(c=typeof globalThis<"u"?globalThis:c||self,i(c.lithentSsr={},c.lithent))})(this,function(c,i){"use strict";const $=i.mount(n=>{let e=1,t="s";const r=()=>{e+=1,t+="s",n()};return()=>i.h("div",{style:{border:`${e}px solid red`}},"asve",i.h("br",null),i.h("section",{innerHTML:"<article>ss</article>"}),i.h("button",{disabled:!1,onClick:r},e," -== a1 - ",e,t),e,i.h("span",{id:"aa11","data-max-string":"va"}," ","123124"))});i.mount(n=>()=>i.h(i.Fragment,null," ","111","222"," ","45",i.h($,null),i.h("div",null,"aaa")));const S=["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function x(n){return S.includes(n)}function k(n){return n!=null}function j(n){return n&&["fragment","loop"].includes(n)}function C(n,e){return n==="style"&&typeof e=="object"}function E(n,e){return n==="ref"&&typeof e=="object"}function L(n){return Object.entries(n).map(([e,t])=>`${e.replace(/([A-Z])/g,"-$1").toLowerCase()}: ${t};`).join(" ")}function y(n){return a(n)}function a(n){let e="";const{type:t,tag:r,text:o,props:s,children:u=[]}=n;if(j(t))e=d(u,e);else if(t==="element"&&r){const l=s==null?void 0:s.innerHTML;l?e=`<${r}${p(s)}>${l}</${r}>`:x(r)&&!u.length?e=`<${r}${p(s)} />`:(e=`<${r}${p(s)}>`,e=d(u,e),e=`${e}</${r}>`)}else if(t==="text"&&k(o))e=String(o),e=d(u,e);else throw new Error("An attempt was made to render an abnormal virtual DOM object.");return e}function d(n,e){return n.reduce((r,o)=>{if(o.type){const s=a(o);r+=s}return r},e||"")}function p(n){let e=[];return Object.entries(n||{}).forEach(([t,r])=>{const o=t==="key",s=t==="portal"&&typeof r=="object",u=t==="innerHTML"&&typeof r=="string",f=E(t,r),l=t.match(/^on/);if(!(o||s||u||f||l))if(C(t,r)){const _=L(r);e.push(`style="${_}"`)}else t&&r===!0?e.push(`${t}="${t}"`):t&&typeof r!="boolean"&&e.push(`${t}="${String(r)}"`)}),e.length?" "+e.join(" "):""}function v(n,e){return N(n,e),i.render(n,e,null,!0)}function N(n,e){const t=n.type&&["fragment","loop"].includes(n.type);t&&(n.el=new DocumentFragment);const r=h(t?[...n.children||[]]:[n]),o=e.tagName==="HTML"?[e]:Array.from(e.childNodes);r&&g(r,o)}function g(n,e){let t=0;e.filter(r=>m(r)).forEach(r=>{let o=n[t];const s=r.nodeType;let u=!1;if(((o==null?void 0:o.type)===null||(o==null?void 0:o.type)==="text"&&(o==null?void 0:o.text)===`
2
- `)&&(t+=1,o=n[t]),r&&o&&o.type&&["text","element"].includes(o.type)){if(o.type==="text"&&s===3){const{tFragment:f,nIndex:l}=F(n,t);t=l,r.parentElement.replaceChild(f,r)}else o.type==="element"&&s===1&&((r.tagName||"").toLowerCase()!==o.tag?u=!0:o.el=r);u||g(h(o.children||[]),Array.from(r.childNodes))}u||(t+=1)})}function m(n){return!(n.nodeType===3&&!n.data.replace(/\s*/g,""))}function h(n){return n.reduce((e,t)=>(t.type&&["fragment","loop"].includes(t.type)?(t.el=new DocumentFragment,e.push(...h((t==null?void 0:t.children)||[]))):e.push(t),e),[])}function F(n,e){const t=T(n,e,[]),r=new DocumentFragment;return t.forEach(o=>{const s=document.createTextNode(String(o.text));o.el=s,r.appendChild(s)}),{tFragment:r,nIndex:e+(t.length-1)}}function T(n,e,t){return n[e]&&n[e].type==="text"?(t.push(n[e]),T(n,e+1,[...t])):t}const H=y,b=v;function A(n){return typeof window<"u"?b(i.h(n,{}),document.documentElement):y(i.h(n,{}))}const M=void 0;c.hydration=b,c.renderToString=H,c.renderWithHydration=A,c.run=M,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
1
+ (function(u,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("lithent")):typeof define=="function"&&define.amd?define(["exports","lithent"],l):(u=typeof globalThis<"u"?globalThis:u||self,l(u.lithentSsr={},u.lithent))})(this,function(u,l){"use strict";function s(e,n,t,r,i,o){const{children:c,...d}=n;if(c!=null){const f=Array.isArray(c)?c:[c];return l.h(e,{...d,key:t},...f)}return l.h(e,{...d,key:t})}const S=l.mount(e=>()=>s(l.Fragment,{children:[s("meta",{name:"twitter:card1",content:"summary_large_image"})," ",s("meta",{name:"twitter:site2",content:"@superlucky84"})]})),x=l.mount(e=>{let n=1,t="s";const r=()=>{n+=1,t+="s",e()};return()=>s("div",{style:{border:`${n}px solid red`},children:["asve",s("br",{}),s("section",{innerHTML:"<article>ss</article>"}),s("button",{disabled:!1,onClick:r,children:[n," -== a1 - ",n,t]}),n,s("span",{id:"aa11","data-max-string":"va",children:[" ","123124"]})]})});l.mount(e=>()=>s("html",{lang:"en",children:[s("head",{children:[s("title",{children:"Express with Vite and JSX"}),s(S,{}),s("script",{src:"/dist/lithentSsr.umd.js"})]}),s("body",{children:s("div",{id:"app",children:s(x,{})})})]}));const k=["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function m(e){return k.includes(e)}function j(e){return e!=null}function E(e){return e&&["fragment","loop"].includes(e)}function C(e,n){return e==="style"&&typeof n=="object"}function L(e,n){return e==="ref"&&typeof n=="object"}function v(e){return Object.entries(e).map(([n,t])=>`${n.replace(/([A-Z])/g,"-$1").toLowerCase()}: ${t};`).join(" ")}function y(e){return g(e)}function g(e){let n="";const{type:t,tag:r,text:i,props:o,children:c=[]}=e;if(E(t))n=p(c,n);else if(t==="element"&&r){const f=o==null?void 0:o.innerHTML;f?n=`<${r}${h(o)}>${f}</${r}>`:m(r)&&!c.length?n=`<${r}${h(o)} />`:(n=`<${r}${h(o)}>`,n=p(c,n),n=`${n}</${r}>`)}else if(t==="text"&&j(i))n=String(i),n=p(c,n);else throw new Error("An attempt was made to render an abnormal virtual DOM object.");return n}function p(e,n){return e.reduce((r,i)=>{if(i.type){const o=g(i);r+=o}return r},n||"")}function h(e){let n=[];return Object.entries(e||{}).forEach(([t,r])=>{const i=t==="key",o=t==="portal"&&typeof r=="object",c=t==="innerHTML"&&typeof r=="string",d=L(t,r),f=t.match(/^on/);if(!(i||o||c||d||f))if(C(t,r)){const W=v(r);n.push(`style="${W}"`)}else t&&r===!0?n.push(`${t}="${t}"`):t&&typeof r!="boolean"&&n.push(`${t}="${String(r)}"`)}),n.length?" "+n.join(" "):""}function A(e,n){return N(e,n),l.render(e,n,null,!0)}function N(e,n){const t=e.type&&["fragment","loop"].includes(e.type);t&&(e.el=new DocumentFragment);const r=a(t?[...e.children||[]]:[e]),i=n.tagName==="HTML"?[n]:Array.from(n.childNodes);r&&T(r,i)}function T(e,n){let t=0;n.filter(r=>F(r)).forEach(r=>{let i=e[t];const o=r.nodeType;let c=!1;if(((i==null?void 0:i.type)===null||(i==null?void 0:i.type)==="text"&&(i==null?void 0:i.text)===`
2
+ `||(i==null?void 0:i.type)==="text"&&o===1)&&(t+=1,i=e[t]),r&&i&&i.type&&["text","element"].includes(i.type)){if(i.type==="text"&&o===3){const{tFragment:d,nIndex:f}=H(e,t);t=f,r.parentElement.replaceChild(d,r)}else i.type==="element"&&o===1&&((r.tagName||"").toLowerCase()!==i.tag?c=!0:i.el=r);c||T(a(i.children||[]),Array.from(r.childNodes))}c||(t+=1)})}function F(e){return!(e.nodeType===3&&!e.data.replace(/\s*/g,""))}function a(e){return e.reduce((n,t)=>(t.type&&["fragment","loop"].includes(t.type)?(t.el=new DocumentFragment,n.push(...a((t==null?void 0:t.children)||[]))):n.push(t),n),[])}function H(e,n){const t=b(e,n,[]),r=new DocumentFragment;return t.forEach(i=>{const o=document.createTextNode(String(i.text));i.el=o,r.appendChild(o)}),{tFragment:r,nIndex:n+(t.length-1)}}function b(e,n,t){return e[n]&&e[n].type==="text"?(t.push(e[n]),b(e,n+1,[...t])):t}const M=y,$=A;function _(e){return typeof window<"u"?$(l.h(e,{}),document.documentElement):y(l.h(e,{}))}const P=void 0;u.hydration=$,u.renderToString=M,u.renderWithHydration=_,u.run=P,Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})});
3
3
  //# sourceMappingURL=lithentSsr.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lithentSsr.umd.js","sources":["../src/tests/tostring.tsx","../src/helper/index.ts","../src/renderToString.ts","../src/hydration.ts","../src/index.ts"],"sourcesContent":["import { h, mount, Fragment } from 'lithent';\n\nconst Children = mount(r => {\n let v = 1;\n let k = 's';\n\n const increase = () => {\n v += 1;\n k += 's';\n r();\n };\n\n return () => (\n <div style={{ border: `${v}px solid red` }}>\n asve\n <br />\n <section innerHTML=\"<article>ss</article>\" />\n <button disabled={false} onClick={increase}>\n {v} -== a1 - {v}\n {k}\n </button>\n {v}\n <span id=\"aa11\" data-max-string=\"va\">\n {' '}123124\n </span>\n </div>\n );\n});\n\nconst Root = mount(_r => {\n return () => (\n <Fragment>\n {' '}\n 111{/* <!-- aa --> */}222{' '}45\n <Children />\n <div>aaa</div>\n </Fragment>\n );\n});\n\nexport default Root;\n","const SELF_CLOSE_ALLLOW = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n];\n\nexport function isAllowSelfClose(tagname: string) {\n return SELF_CLOSE_ALLLOW.includes(tagname);\n}\n\nexport function checkExisty(value: unknown) {\n return value !== null && value !== undefined;\n}\n\nexport function checkVirtualType(type?: string | null) {\n return type && ['fragment', 'loop'].includes(type);\n}\n\nexport function checkStyleData(\n dataKey: string,\n dataValue: unknown\n): dataValue is Record<string, string> {\n return dataKey === 'style' && typeof dataValue === 'object';\n}\n\nexport function checkRefData(\n dataKey: string,\n dataValue: unknown\n): dataValue is {\n value: HTMLElement | Element | DocumentFragment | Text | undefined;\n} {\n return dataKey === 'ref' && typeof dataValue === 'object';\n}\n\nexport function styleObjectToString(styleObj: Record<string, string>) {\n return Object.entries(styleObj)\n .map(([key, value]) => {\n // camelCase를 kebab-case로 변환 (예: borderTop -> border-top)\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n return `${kebabKey}: ${value};`;\n })\n .join(' ');\n}\n","import type { WDom, Props } from 'lithent';\nimport {\n isAllowSelfClose,\n checkExisty,\n checkVirtualType,\n checkStyleData,\n checkRefData,\n styleObjectToString,\n} from '@/helper';\n\n/**\n * Main function of renderToString\"\n */\nexport function renderToString(wDom: WDom) {\n return wDomToString(wDom);\n}\n\n/**\n * Converts a chunk of virtual DOM objects into string tags.\n */\nfunction wDomToString(wDom: WDom) {\n let element = '';\n const { type, tag, text, props, children = [] } = wDom;\n const isVirtualType = checkVirtualType(type);\n\n if (isVirtualType) {\n element = wDomChildrenToDom(children, element);\n } else if (type === 'element' && tag) {\n const innerHTML = props?.innerHTML;\n\n if (innerHTML) {\n element = `<${tag}${makeProp(props)}>${innerHTML}</${tag}>`;\n } else if (isAllowSelfClose(tag) && !children.length) {\n element = `<${tag}${makeProp(props)} />`;\n } else {\n element = `<${tag}${makeProp(props)}>`;\n element = wDomChildrenToDom(children, element);\n element = `${element}</${tag}>`;\n }\n } else if (type === 'text' && checkExisty(text)) {\n element = String(text);\n element = wDomChildrenToDom(children, element);\n } else {\n throw new Error(\n 'An attempt was made to render an abnormal virtual DOM object.'\n );\n }\n\n return element;\n}\n\n/**\n * Converts all child nodes of a virtual DOM object into string tags.\n */\nfunction wDomChildrenToDom(children: WDom[], parentElement?: string) {\n const newString = children.reduce((acc: string, childItem: WDom) => {\n if (childItem.type) {\n const childElement = wDomToString(childItem);\n\n acc += childElement;\n }\n\n return acc;\n }, parentElement || '');\n\n return newString;\n}\n\n/**\n * Creates and attaches a prop string to the tag.\n */\nfunction makeProp(props?: Props) {\n let attrGroup: string[] = [];\n\n Object.entries(props || {}).forEach(\n ([dataKey, dataValue]: [string, unknown]) => {\n const isKey = dataKey === 'key';\n const isPortal = dataKey === 'portal' && typeof dataValue === 'object';\n const isHtml = dataKey === 'innerHTML' && typeof dataValue === 'string';\n const isRef = checkRefData(dataKey, dataValue);\n const isEvent = dataKey.match(/^on/);\n\n if (!(isKey || isPortal || isHtml || isRef || isEvent)) {\n if (checkStyleData(dataKey, dataValue)) {\n const cssString = styleObjectToString(dataValue);\n attrGroup.push(`style=\"${cssString}\"`);\n } else if (dataKey && dataValue === true) {\n attrGroup.push(`${dataKey}=\"${dataKey}\"`);\n } else if (dataKey && typeof dataValue !== 'boolean') {\n attrGroup.push(`${dataKey}=\"${String(dataValue)}\"`);\n }\n }\n }\n );\n\n return attrGroup.length ? ' ' + attrGroup.join(' ') : '';\n}\n","import { render } from 'lithent';\nimport type { WDom } from 'lithent';\n\n/**\n * hydration\n */\nexport function hydration(wDom: WDom, wrapElement: HTMLElement) {\n /**\n * Attach the el property to wDom.\n */\n addElement(wDom, wrapElement);\n\n /**\n * Attach events to wDom.\n */\n return render(wDom, wrapElement, null, true);\n}\n\n/**\n * Attach the el property to wDom.\n */\nfunction addElement(wDomOrig: WDom, wrapElement: HTMLElement) {\n const isVirtualType =\n wDomOrig.type && ['fragment', 'loop'].includes(wDomOrig.type);\n\n if (isVirtualType) {\n wDomOrig.el = new DocumentFragment();\n }\n const wDomList = flatFlagmentFromList(\n isVirtualType ? [...(wDomOrig.children || [])] : [wDomOrig]\n );\n const realDomList =\n wrapElement.tagName === 'HTML'\n ? [wrapElement]\n : Array.from(wrapElement.childNodes);\n\n if (wDomList) {\n addElementProcessChildren(wDomList, realDomList);\n }\n}\n\n/**\n * Attach the el property to wDom recursively.\n */\nfunction addElementProcessChildren(wDomList: WDom[], realDomList: ChildNode[]) {\n let index = 0;\n realDomList\n .filter((item: any) => filteredEmptyTextNode(item))\n .forEach(realDomItem => {\n let wDomItem = wDomList[index];\n const nodeType = realDomItem.nodeType;\n let pass = false;\n\n if (\n wDomItem?.type === null ||\n (wDomItem?.type === 'text' && wDomItem?.text === '\\n')\n ) {\n index += 1;\n wDomItem = wDomList[index];\n }\n\n if (\n realDomItem &&\n wDomItem &&\n wDomItem.type &&\n ['text', 'element'].includes(wDomItem.type)\n ) {\n if (wDomItem.type === 'text' && nodeType === 3) {\n const { tFragment, nIndex } = processConsecutiveTextNodes(\n wDomList,\n index\n );\n index = nIndex;\n realDomItem!.parentElement!.replaceChild(tFragment, realDomItem);\n } else if (wDomItem.type === 'element' && nodeType === 1) {\n if (\n ((realDomItem as HTMLElement).tagName || '').toLowerCase() !==\n wDomItem.tag\n ) {\n // throw new Error('Hydration Error - not matched tagname');\n pass = true;\n } else {\n wDomItem.el = realDomItem as HTMLElement;\n }\n }\n\n if (!pass) {\n addElementProcessChildren(\n flatFlagmentFromList(wDomItem.children || []),\n Array.from(realDomItem.childNodes)\n );\n }\n }\n\n if (!pass) {\n index += 1;\n }\n });\n}\n\n/**\n * Whitespace or text nodes are ignored.\n */\nfunction filteredEmptyTextNode(item: HTMLElement | Text) {\n if (item.nodeType === 3 && !(item as Text).data.replace(/\\s*/g, '')) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Flattens nested fragment types.\n */\nfunction flatFlagmentFromList(wDomlist: WDom[]) {\n return wDomlist.reduce((acc: WDom[], item: WDom) => {\n if (item.type && ['fragment', 'loop'].includes(item.type)) {\n item.el = new DocumentFragment();\n acc.push(...flatFlagmentFromList(item?.children || []));\n } else {\n acc.push(item);\n }\n return acc;\n }, []);\n}\n\n/**\n * Hydration is applied to consecutively rendered text node objects.\n */\nfunction processConsecutiveTextNodes(wDomList: WDom[], cIndex: number) {\n const textWDomList: WDom[] = collectAdjacentTextNode(wDomList, cIndex, []);\n const tFragment = new DocumentFragment();\n textWDomList.forEach(item => {\n const textNode = document.createTextNode(String(item.text));\n item.el = textNode;\n tFragment.appendChild(textNode);\n });\n\n return {\n tFragment,\n nIndex: cIndex + (textWDomList.length - 1),\n };\n}\n\n/**\n * Collect consecutive text nodes.\n */\nfunction collectAdjacentTextNode(\n wDomList: WDom[],\n cIndex: number,\n acc: WDom[]\n): WDom[] {\n if (wDomList[cIndex] && wDomList[cIndex].type === 'text') {\n acc.push(wDomList[cIndex]);\n\n return collectAdjacentTextNode(wDomList, cIndex + 1, [...acc]);\n }\n return acc;\n}\n","import { h } from 'lithent';\nimport type { TagFunction } from 'lithent';\nimport Test from '@/tests/tostring';\nimport { renderToString as _renderToString } from '@/renderToString';\nimport { hydration as _hydration } from '@/hydration';\n\nexport const renderToString = _renderToString;\nexport const hydration = _hydration;\n\nexport function renderWithHydration(tagFunction: TagFunction) {\n if (typeof window !== 'undefined') {\n return hydration(h(tagFunction, {}), document.documentElement);\n }\n\n return _renderToString(h(tagFunction, {}));\n}\n\nlet _run: ((wrap: HTMLElement) => void) | undefined;\n\nif (import.meta.env.MODE === 'development') {\n _run = (wrap: HTMLElement) => {\n hydration(h(Test as TagFunction, {}), wrap);\n };\n}\n\nexport const run = _run;\n"],"names":["Children","mount","r","v","k","increase","h","_r","Fragment","SELF_CLOSE_ALLLOW","isAllowSelfClose","tagname","checkExisty","value","checkVirtualType","type","checkStyleData","dataKey","dataValue","checkRefData","styleObjectToString","styleObj","key","renderToString","wDom","wDomToString","element","tag","text","props","children","wDomChildrenToDom","innerHTML","makeProp","parentElement","acc","childItem","childElement","attrGroup","isKey","isPortal","isHtml","isRef","isEvent","cssString","hydration","wrapElement","addElement","render","wDomOrig","isVirtualType","wDomList","flatFlagmentFromList","realDomList","addElementProcessChildren","index","item","filteredEmptyTextNode","realDomItem","wDomItem","nodeType","pass","tFragment","nIndex","processConsecutiveTextNodes","wDomlist","cIndex","textWDomList","collectAdjacentTextNode","textNode","_renderToString","_hydration","renderWithHydration","tagFunction","run"],"mappings":"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"}
1
+ {"version":3,"file":"lithentSsr.umd.js","sources":["../../jsx-runtime/dist/jsxRuntime.mjs","../src/tests/tostring.tsx","../src/helper/index.ts","../src/renderToString.ts","../src/hydration.ts","../src/index.ts"],"sourcesContent":["import { h as o } from \"lithent\";\nimport { Fragment as h } from \"lithent\";\nfunction f(s, t, e, a, c, l) {\n const { children: r, ...n } = t;\n if (r != null) {\n const i = Array.isArray(r) ? r : [r];\n return o(s, { ...n, key: e }, ...i);\n }\n return o(s, { ...n, key: e });\n}\nexport {\n h as Fragment,\n f as jsx,\n f as jsxDEV,\n f as jsxs\n};\n//# sourceMappingURL=jsxRuntime.mjs.map\n","import { mount, Fragment } from 'lithent';\n\nconst Meta = mount(_r => {\n return () => (\n <Fragment>\n <meta name=\"twitter:card1\" content=\"summary_large_image\" />{' '}\n <meta name=\"twitter:site2\" content=\"@superlucky84\" />\n </Fragment>\n );\n});\n\nconst Children = mount(r => {\n let v = 1;\n let k = 's';\n\n const increase = () => {\n v += 1;\n k += 's';\n r();\n };\n\n return () => (\n <div style={{ border: `${v}px solid red` }}>\n asve\n <br />\n <section innerHTML=\"<article>ss</article>\" />\n <button disabled={false} onClick={increase}>\n {v} -== a1 - {v}\n {k}\n </button>\n {v}\n <span id=\"aa11\" data-max-string=\"va\">\n {' '}123124\n </span>\n </div>\n );\n});\n\nconst Root = mount(_r => {\n return () => (\n <html lang=\"en\">\n <head>\n <title>Express with Vite and JSX</title>\n <Meta />\n <script src=\"/dist/lithentSsr.umd.js\"></script>\n </head>\n <body>\n <div id=\"app\">\n <Children />\n </div>\n </body>\n </html>\n );\n});\n\nexport default Root;\n","const SELF_CLOSE_ALLLOW = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n];\n\nexport function isAllowSelfClose(tagname: string) {\n return SELF_CLOSE_ALLLOW.includes(tagname);\n}\n\nexport function checkExisty(value: unknown) {\n return value !== null && value !== undefined;\n}\n\nexport function checkVirtualType(type?: string | null) {\n return type && ['fragment', 'loop'].includes(type);\n}\n\nexport function checkStyleData(\n dataKey: string,\n dataValue: unknown\n): dataValue is Record<string, string> {\n return dataKey === 'style' && typeof dataValue === 'object';\n}\n\nexport function checkRefData(\n dataKey: string,\n dataValue: unknown\n): dataValue is {\n value: HTMLElement | Element | DocumentFragment | Text | undefined;\n} {\n return dataKey === 'ref' && typeof dataValue === 'object';\n}\n\nexport function styleObjectToString(styleObj: Record<string, string>) {\n return Object.entries(styleObj)\n .map(([key, value]) => {\n // camelCase를 kebab-case로 변환 (예: borderTop -> border-top)\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n return `${kebabKey}: ${value};`;\n })\n .join(' ');\n}\n","import type { WDom, Props } from 'lithent';\nimport {\n isAllowSelfClose,\n checkExisty,\n checkVirtualType,\n checkStyleData,\n checkRefData,\n styleObjectToString,\n} from '@/helper';\n\n/**\n * Main function of renderToString\"\n */\nexport function renderToString(wDom: WDom) {\n return wDomToString(wDom);\n}\n\n/**\n * Converts a chunk of virtual DOM objects into string tags.\n */\nfunction wDomToString(wDom: WDom) {\n let element = '';\n const { type, tag, text, props, children = [] } = wDom;\n const isVirtualType = checkVirtualType(type);\n\n if (isVirtualType) {\n element = wDomChildrenToDom(children, element);\n } else if (type === 'element' && tag) {\n const innerHTML = props?.innerHTML;\n\n if (innerHTML) {\n element = `<${tag}${makeProp(props)}>${innerHTML}</${tag}>`;\n } else if (isAllowSelfClose(tag) && !children.length) {\n element = `<${tag}${makeProp(props)} />`;\n } else {\n element = `<${tag}${makeProp(props)}>`;\n element = wDomChildrenToDom(children, element);\n element = `${element}</${tag}>`;\n }\n } else if (type === 'text' && checkExisty(text)) {\n element = String(text);\n element = wDomChildrenToDom(children, element);\n } else {\n throw new Error(\n 'An attempt was made to render an abnormal virtual DOM object.'\n );\n }\n\n return element;\n}\n\n/**\n * Converts all child nodes of a virtual DOM object into string tags.\n */\nfunction wDomChildrenToDom(children: WDom[], parentElement?: string) {\n const newString = children.reduce((acc: string, childItem: WDom) => {\n if (childItem.type) {\n const childElement = wDomToString(childItem);\n\n acc += childElement;\n }\n\n return acc;\n }, parentElement || '');\n\n return newString;\n}\n\n/**\n * Creates and attaches a prop string to the tag.\n */\nfunction makeProp(props?: Props) {\n let attrGroup: string[] = [];\n\n Object.entries(props || {}).forEach(\n ([dataKey, dataValue]: [string, unknown]) => {\n const isKey = dataKey === 'key';\n const isPortal = dataKey === 'portal' && typeof dataValue === 'object';\n const isHtml = dataKey === 'innerHTML' && typeof dataValue === 'string';\n const isRef = checkRefData(dataKey, dataValue);\n const isEvent = dataKey.match(/^on/);\n\n if (!(isKey || isPortal || isHtml || isRef || isEvent)) {\n if (checkStyleData(dataKey, dataValue)) {\n const cssString = styleObjectToString(dataValue);\n attrGroup.push(`style=\"${cssString}\"`);\n } else if (dataKey && dataValue === true) {\n attrGroup.push(`${dataKey}=\"${dataKey}\"`);\n } else if (dataKey && typeof dataValue !== 'boolean') {\n attrGroup.push(`${dataKey}=\"${String(dataValue)}\"`);\n }\n }\n }\n );\n\n return attrGroup.length ? ' ' + attrGroup.join(' ') : '';\n}\n","import { render } from 'lithent';\nimport type { WDom } from 'lithent';\n\n/**\n * hydration\n */\nexport function hydration(wDom: WDom, wrapElement: HTMLElement) {\n /**\n * Attach the el property to wDom.\n */\n addElement(wDom, wrapElement);\n\n /**\n * Attach events to wDom.\n */\n return render(wDom, wrapElement, null, true);\n}\n\n/**\n * Attach the el property to wDom.\n */\nfunction addElement(wDomOrig: WDom, wrapElement: HTMLElement) {\n const isVirtualType =\n wDomOrig.type && ['fragment', 'loop'].includes(wDomOrig.type);\n\n if (isVirtualType) {\n wDomOrig.el = new DocumentFragment();\n }\n const wDomList = flatFlagmentFromList(\n isVirtualType ? [...(wDomOrig.children || [])] : [wDomOrig]\n );\n\n const realDomList =\n wrapElement.tagName === 'HTML'\n ? [wrapElement]\n : Array.from(wrapElement.childNodes);\n\n if (wDomList) {\n addElementProcessChildren(wDomList, realDomList);\n }\n}\n\n/**\n * Attach the el property to wDom recursively.\n */\nfunction addElementProcessChildren(wDomList: WDom[], realDomList: ChildNode[]) {\n let index = 0;\n realDomList\n .filter((item: any) => filteredEmptyTextNode(item))\n .forEach(realDomItem => {\n let wDomItem = wDomList[index];\n const nodeType = realDomItem.nodeType;\n let pass = false;\n\n if (\n wDomItem?.type === null ||\n (wDomItem?.type === 'text' && wDomItem?.text === '\\n') ||\n (wDomItem?.type === 'text' && nodeType === 1)\n ) {\n index += 1;\n wDomItem = wDomList[index];\n }\n\n if (\n realDomItem &&\n wDomItem &&\n wDomItem.type &&\n ['text', 'element'].includes(wDomItem.type)\n ) {\n if (wDomItem.type === 'text' && nodeType === 3) {\n const { tFragment, nIndex } = processConsecutiveTextNodes(\n wDomList,\n index\n );\n index = nIndex;\n realDomItem!.parentElement!.replaceChild(tFragment, realDomItem);\n } else if (wDomItem.type === 'element' && nodeType === 1) {\n if (\n ((realDomItem as HTMLElement).tagName || '').toLowerCase() !==\n wDomItem.tag\n ) {\n // throw new Error('Hydration Error - not matched tagname');\n pass = true;\n } else {\n wDomItem.el = realDomItem as HTMLElement;\n }\n }\n\n if (!pass) {\n addElementProcessChildren(\n flatFlagmentFromList(wDomItem.children || []),\n Array.from(realDomItem.childNodes)\n );\n }\n }\n\n if (!pass) {\n index += 1;\n }\n });\n}\n\n/**\n * Whitespace or text nodes are ignored.\n */\nfunction filteredEmptyTextNode(item: HTMLElement | Text) {\n if (item.nodeType === 3 && !(item as Text).data.replace(/\\s*/g, '')) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Flattens nested fragment types.\n */\nfunction flatFlagmentFromList(wDomlist: WDom[]) {\n return wDomlist.reduce((acc: WDom[], item: WDom) => {\n if (item.type && ['fragment', 'loop'].includes(item.type)) {\n item.el = new DocumentFragment();\n acc.push(...flatFlagmentFromList(item?.children || []));\n } else {\n acc.push(item);\n }\n return acc;\n }, []);\n}\n\n/**\n * Hydration is applied to consecutively rendered text node objects.\n */\nfunction processConsecutiveTextNodes(wDomList: WDom[], cIndex: number) {\n const textWDomList: WDom[] = collectAdjacentTextNode(wDomList, cIndex, []);\n const tFragment = new DocumentFragment();\n textWDomList.forEach(item => {\n const textNode = document.createTextNode(String(item.text));\n item.el = textNode;\n tFragment.appendChild(textNode);\n });\n\n return {\n tFragment,\n nIndex: cIndex + (textWDomList.length - 1),\n };\n}\n\n/**\n * Collect consecutive text nodes.\n */\nfunction collectAdjacentTextNode(\n wDomList: WDom[],\n cIndex: number,\n acc: WDom[]\n): WDom[] {\n if (wDomList[cIndex] && wDomList[cIndex].type === 'text') {\n acc.push(wDomList[cIndex]);\n\n return collectAdjacentTextNode(wDomList, cIndex + 1, [...acc]);\n }\n return acc;\n}\n","import { h } from 'lithent';\nimport type { TagFunction } from 'lithent';\nimport Test from '@/tests/tostring';\nimport { renderToString as _renderToString } from '@/renderToString';\nimport { hydration as _hydration } from '@/hydration';\n\nexport const renderToString = _renderToString;\nexport const hydration = _hydration;\n\nexport function renderWithHydration(tagFunction: TagFunction) {\n if (typeof window !== 'undefined') {\n return hydration(h(tagFunction, {}), document.documentElement);\n }\n\n return _renderToString(h(tagFunction, {}));\n}\n\nlet _run: ((wrap: HTMLElement) => void) | undefined;\n\nif (import.meta.env.MODE === 'development') {\n _run = (wrap: HTMLElement) => {\n hydration(h(Test as TagFunction, {}), wrap);\n };\n}\n\nexport const run = _run;\n"],"names":["f","s","t","e","a","c","l","r","n","i","o","Meta","mount","_r","Fragment","jsx","Children","v","k","increase","jsxs","SELF_CLOSE_ALLLOW","isAllowSelfClose","tagname","checkExisty","value","checkVirtualType","type","checkStyleData","dataKey","dataValue","checkRefData","styleObjectToString","styleObj","key","renderToString","wDom","wDomToString","element","tag","text","props","children","wDomChildrenToDom","innerHTML","makeProp","parentElement","acc","childItem","childElement","attrGroup","isKey","isPortal","isHtml","isRef","isEvent","cssString","hydration","wrapElement","addElement","render","wDomOrig","isVirtualType","wDomList","flatFlagmentFromList","realDomList","addElementProcessChildren","index","item","filteredEmptyTextNode","realDomItem","wDomItem","nodeType","pass","tFragment","nIndex","processConsecutiveTextNodes","wDomlist","cIndex","textWDomList","collectAdjacentTextNode","textNode","_renderToString","_hydration","renderWithHydration","tagFunction","h","run"],"mappings":"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"}
@@ -29,6 +29,7 @@ function addElement(wDomOrig: WDom, wrapElement: HTMLElement) {
29
29
  const wDomList = flatFlagmentFromList(
30
30
  isVirtualType ? [...(wDomOrig.children || [])] : [wDomOrig]
31
31
  );
32
+
32
33
  const realDomList =
33
34
  wrapElement.tagName === 'HTML'
34
35
  ? [wrapElement]
@@ -53,7 +54,8 @@ function addElementProcessChildren(wDomList: WDom[], realDomList: ChildNode[]) {
53
54
 
54
55
  if (
55
56
  wDomItem?.type === null ||
56
- (wDomItem?.type === 'text' && wDomItem?.text === '\n')
57
+ (wDomItem?.type === 'text' && wDomItem?.text === '\n') ||
58
+ (wDomItem?.type === 'text' && nodeType === 1)
57
59
  ) {
58
60
  index += 1;
59
61
  wDomItem = wDomList[index];
@@ -1,4 +1,13 @@
1
- import { h, mount, Fragment } from 'lithent';
1
+ import { mount, Fragment } from 'lithent';
2
+
3
+ const Meta = mount(_r => {
4
+ return () => (
5
+ <Fragment>
6
+ <meta name="twitter:card1" content="summary_large_image" />{' '}
7
+ <meta name="twitter:site2" content="@superlucky84" />
8
+ </Fragment>
9
+ );
10
+ });
2
11
 
3
12
  const Children = mount(r => {
4
13
  let v = 1;
@@ -29,12 +38,18 @@ const Children = mount(r => {
29
38
 
30
39
  const Root = mount(_r => {
31
40
  return () => (
32
- <Fragment>
33
- {' '}
34
- 111{/* <!-- aa --> */}222{' '}45
35
- <Children />
36
- <div>aaa</div>
37
- </Fragment>
41
+ <html lang="en">
42
+ <head>
43
+ <title>Express with Vite and JSX</title>
44
+ <Meta />
45
+ <script src="/dist/lithentSsr.umd.js"></script>
46
+ </head>
47
+ <body>
48
+ <div id="app">
49
+ <Children />
50
+ </div>
51
+ </body>
52
+ </html>
38
53
  );
39
54
  });
40
55
 
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-C-802KiP.js","sources":["../../../dist/lithent.mjs","../../../jsx-runtime/dist/jsxRuntime.mjs","../../../helper/dist/lithentHelper.mjs","../../src/index.tsx"],"sourcesContent":["const R = (e) => typeof e == \"object\" && !(\"resolve\" in e), N = (e, t) => R(e) && e.type === t, pe = (e, t) => \"ctor\" in e ? e.ctor === (t == null ? void 0 : t.ctor) : e === (t == null ? void 0 : t.ctor), he = (e, t) => {\n var s, c;\n return R(e) && (t == null ? void 0 : t.type) === \"fragment\" && ((s = t == null ? void 0 : t.children) == null ? void 0 : s.length) === ((c = e == null ? void 0 : e.children) == null ? void 0 : c.length);\n}, ie = (e, t) => {\n var s, c;\n return R(e) && (t == null ? void 0 : t.type) === \"element\" && (t == null ? void 0 : t.tag) === e.tag && ((s = t == null ? void 0 : t.children) == null ? void 0 : s.length) === ((c = e == null ? void 0 : e.children) == null ? void 0 : c.length);\n}, X = (e, t) => R(e) && (t == null ? void 0 : t.type) === e.type, ye = (e, t) => {\n var s, c;\n return R(e) && (t == null ? void 0 : t.type) === e.type && (E(o((e.children || [])[0])) && E(o(((t == null ? void 0 : t.children) || [])[0])) || ((s = t == null ? void 0 : t.children) == null ? void 0 : s.length) === ((c = e == null ? void 0 : e.children) == null ? void 0 : c.length));\n}, o = (e) => {\n var t, s;\n return ((t = e == null ? void 0 : e.compProps) == null ? void 0 : t.key) ?? ((s = e == null ? void 0 : e.props) == null ? void 0 : s.key);\n}, v = (e) => e && [\"fragment\", \"loop\"].includes(e), T = (e) => typeof e == \"function\" && !g(e) || typeof e == \"object\" && \"resolve\" in e, g = (e) => typeof e == \"function\" && e === J, m = (e) => R(e) && !e.type, E = (e) => e != null, Y = (e, t) => e === \"style\" && typeof t == \"object\", Ce = (e, t) => e === \"ref\" && typeof t == \"object\", ve = (e, t) => {\n const s = Object.getOwnPropertyDescriptor(\n e.constructor.prototype,\n t\n );\n return s && s.get && s.set;\n}, Re = (e) => {\n let t = \"et\";\n return T(e) ? t = \"c\" : N(e, \"fragment\") ? t = \"f\" : N(e, \"element\") ? t = \"e\" : N(e, \"loop\") ? t = \"l\" : N(e, \"text\") ? t = \"t\" : m(e) && (t = \"et\"), t;\n}, ke = {\n c: pe,\n l: ye,\n t: X,\n e: ie,\n f: he,\n et: X\n}, C = Symbol.for(\"lithentWDomSymbol\"), k = { value: \"\" }, S = { value: {} }, O = { value: !1 }, f = /* @__PURE__ */ new WeakMap(), Ee = (e) => {\n f.set(e, {\n vd: { value: null },\n up: () => {\n },\n upR: [],\n upS: { value: 0 },\n upD: [],\n upCB: [],\n mts: [],\n umts: []\n });\n}, a = () => S.value, Z = (e, t) => f.get(e) ? f.get(e)[t] : null, Pe = (e) => S.value = e, Se = (e) => {\n S.value = e, Ee(e);\n}, y = (e) => e.getParent && e.getParent(), P = Object.entries, w = Object.keys, b = Object.assign, lt = (e) => typeof e == \"object\" && !Array.isArray(e) && !Object.getOwnPropertySymbols(e).includes(C), ae = (e) => {\n f.get(a()).umts.push(e);\n}, U = (e) => {\n const { compKey: t } = e;\n t && xe(t), W(e);\n}, W = (e) => {\n (e.children || []).forEach((t) => {\n t.compKey ? U(t) : W(t);\n });\n}, xe = (e) => {\n const t = f.get(e);\n t && (t.umts.forEach((s) => s()), t.umts = [], f.delete(e));\n};\nlet Q = [];\nconst I = () => {\n Q.forEach((e) => Te(e)), Q = [];\n}, Ne = (e) => {\n e.compKey && Q.push(e);\n}, ft = (e) => {\n var t;\n return (((t = f.get(a())) == null ? void 0 : t.mts) || []).push(e);\n}, Te = (e) => {\n const { compKey: t } = e;\n if (t) {\n const s = f.get(t), c = s == null ? void 0 : s.mts, r = s == null ? void 0 : s.upS;\n S.value = t, r && (r.value = 0), c && (s.mts = [], c.forEach((n) => {\n const u = n();\n u && ae(u);\n }));\n }\n}, H = (e, t = () => []) => {\n const s = f.get(a()), { upD: c, upS: r } = s, n = c[r.value];\n if (n && Ue(n, t())) {\n const u = e();\n u && s.upCB.push(u);\n }\n c[r.value] = t(), r.value += 1;\n}, be = (e) => {\n const { compKey: t } = e;\n if (t) {\n const s = f.get(t), c = s == null ? void 0 : s.upCB, r = s == null ? void 0 : s.upS;\n S.value = t, r && (r.value = 0), e.ctor && c && (s.upCB = [], c.forEach((n) => n()));\n }\n}, Ue = (e, t) => e.length ? e.some((s, c) => s !== t[c]) : !0, Fe = (e) => e === \"className\" ? \"class\" : e, D = (e) => e.replace(/^on(.*)/, (t, s) => s.toLowerCase()), z = () => new DocumentFragment(), V = (e) => document.createElement(e), ot = (e, t, s, c) => {\n e.isRoot = !0, t ?? (t = document.body), e.wrapElement = t;\n const r = L(e, c);\n return s ? (e.afterElement = s, t.insertBefore(r, s)) : c || (t.tagName === \"HTML\" ? t.replaceWith(r) : t.appendChild(r)), I(), () => {\n var u;\n const n = (u = f.get(e.compProps || {})) == null ? void 0 : u.vd.value;\n n && U(n), F(n || e), Le(n || e);\n };\n}, ee = (e) => {\n const { needRerender: t } = e;\n t && t !== \"N\" && ({\n A: G,\n D: $,\n R: Me,\n U: B,\n CNSU: B,\n SR: ce,\n SU: Ae\n }[t](e), delete e.needRerender, delete e.oldChildren, delete e.oldProps);\n}, F = (e) => {\n e.props && e.el && ue(e.props, e.el), (e.children || []).forEach((t) => {\n F(t);\n });\n}, Le = (e) => {\n te(e, e.wrapElement);\n}, $ = (e) => {\n e.oldProps && e.el && ue(e.oldProps, e.el), te(\n e,\n A(y(e))\n );\n}, te = (e, t) => {\n var s, c;\n t && e.el && ([1, 3].includes((s = e.el) == null ? void 0 : s.nodeType) ? t.removeChild(e.el) : ((c = e.el) == null ? void 0 : c.nodeType) === 11 && se(e), delete e.el);\n}, se = (e, t) => {\n ((e == null ? void 0 : e.oldChildren) || (e == null ? void 0 : e.children) || []).forEach((s) => {\n var r;\n const c = (r = s.el) == null ? void 0 : r.nodeType;\n c && ([1, 3].includes(c) ? s.el.tagName === \"HTML\" ? s.el.innerHTML = \"\" : s.el.remove() : c === 11 && se(s));\n });\n}, ce = (e) => {\n $(e), G(e);\n}, Ae = (e) => {\n if (B(e), y(e).needRerender !== \"CNSU\") {\n const s = ne(e);\n G(e, s);\n }\n}, G = (e, t) => {\n t || (t = L(e));\n const s = y(e);\n if (s.type) {\n const c = A(s), n = s.type === \"loop\" && s.needRerender && s.needRerender !== \"CNSU\" ? j(s, y(s)) : j(e, s);\n t && c && (e.tag !== \"portal\" && (n ? c.insertBefore(t, n) : c.appendChild(t)), I());\n }\n}, ne = (e) => v(e.type) ? ((e == null ? void 0 : e.children) || []).reduce((t, s) => {\n const c = ne(s);\n return c && t.appendChild(c), t;\n}, z()) : e.el, j = (e, t) => {\n const s = t.children || [], r = s.indexOf(e) + 1, n = s.slice(r), u = re(n), l = t.type || \"\";\n if (u)\n return u;\n if (!t.isRoot && v(l))\n return j(t, y(t));\n if (t.isRoot && v(l) && t.afterElement)\n return t.afterElement;\n}, re = (e) => e.reduce(\n (t, s) => {\n const c = s.type, r = s.el, n = c && v(c);\n return t || (n ? re(s.children || []) : r && r.nodeType !== 11 ? r : t);\n },\n void 0\n), Me = (e) => {\n const t = y(e), s = e.el;\n if (t.type && s)\n if (s.nodeType === 11)\n ce(e);\n else {\n const c = A(t), r = L(e);\n c && e.tag !== \"portal\" && c.replaceChild(r, s), I();\n }\n}, ue = (e, t) => {\n P(e || {}).forEach(([s, c]) => {\n s.match(/^on/) && t.removeEventListener(\n D(s),\n c\n );\n });\n}, B = (e) => {\n var s;\n const t = e.el;\n if (e.type === \"text\") {\n Oe(e);\n return;\n }\n if (t) {\n const { oldProps: c, props: r } = e;\n le(r, t, c), delete e.oldProps, e.tag === \"input\" && (t.value = String(((s = e == null ? void 0 : e.props) == null ? void 0 : s.value) || \"\"));\n }\n (e.children || []).forEach((c) => ee(c)), be(e);\n}, Oe = (e) => {\n const t = e.el;\n t && (t.nodeValue = String(e.text));\n}, le = (e, t, s, c) => {\n const r = { ...s };\n P(e || {}).forEach(([n, u]) => {\n c && n.match(/^on/) ? K(\n t,\n n,\n u,\n r[n]\n ) : (n === \"key\" || u === r[n] || n === \"portal\" && typeof u == \"object\" || (n === \"innerHTML\" && typeof u == \"string\" ? t.innerHTML = u : Y(n, u) ? Be(\n u,\n Y(n, r.style) ? r.style : {},\n t\n ) : Ce(n, u) ? u.value = t : n.match(/^on/) ? K(\n t,\n n,\n u,\n r[n]\n ) : n && (n !== \"type\" && ve(t, n) ? t[n] = u : Qe(\n Fe(n),\n t,\n u\n ))), delete r[n]);\n }), w(r).forEach(\n (n) => t.removeAttribute(n)\n );\n}, Qe = (e, t, s) => {\n k.value && e !== \"xmlns\" ? t.setAttributeNS(null, e, s) : t.setAttribute(e, s);\n}, L = (e, t) => {\n let s;\n const { type: c, tag: r, text: n, props: u, children: l = [] } = e, h = v(c);\n return r === \"svg\" && (k.value = String(u == null ? void 0 : u.xmlns)), t ? s = e.el : (h ? s = z() : c === \"element\" && r ? r === \"portal\" && (u != null && u.portal) ? s = u.portal : s = k.value ? document.createElementNS(k.value, r) : V(r) : c === \"text\" && E(n) ? s = document.createTextNode(String(n)) : s = V(\"e\"), e.el = s), je(l, s, t), le(u, s, null, t), Ne(e), r === \"svg\" && (k.value = \"\"), s;\n}, je = (e, t, s) => {\n const c = e.reduce(\n (r, n) => {\n if (n.type) {\n const u = L(n, s);\n n.tag !== \"portal\" && !s && r.appendChild(u);\n }\n return r;\n },\n z()\n );\n !s && t && c.hasChildNodes() && t.appendChild(c);\n}, K = (e, t, s, c) => {\n const r = D(t);\n c !== s && (c && e.removeEventListener(r, c), s && e.addEventListener(r, s));\n}, Be = (e, t, s) => {\n const c = { ...t }, r = s == null ? void 0 : s.style;\n r && (P(e).forEach(([n, u]) => {\n r[n] = u, delete c[n];\n }), P(c).forEach(\n ([n]) => r[n] = \"\"\n ));\n}, A = (e) => {\n const t = v(e.type);\n return e.isRoot && t ? e.wrapElement : t ? A(y(e)) : e.el;\n}, M = (e, t) => qe(\n e,\n ke[Re(e)](e, t),\n t\n), qe = (e, t, s) => {\n const c = Xe(e, t, s), r = [\n c,\n t,\n s\n ], n = Ie(...r), u = n === \"N\";\n return u || (c.children = Ye(...r)), c.needRerender = n, _e(c, s, n), !u && s && (s.isLegacy = !0, delete s.children), c;\n}, _e = (e, t, s) => {\n s !== \"A\" && t && (e.el = t.el), s && [\"D\", \"R\", \"SR\"].includes(s) && (t && (U(t), F(t)), e.oldChildren = t == null ? void 0 : t.children), e.oldProps = t == null ? void 0 : t.props;\n}, Ie = (e, t, s) => {\n const c = s && s.type, r = m(e), n = e.isRoot, u = s && y(s), l = !n && (u == null ? void 0 : u.type), h = o(e), p = l === \"loop\" && E(h), i = e.type === \"text\" && t && e.text === (s == null ? void 0 : s.text), x = e === s;\n let d;\n return r ? d = \"D\" : i || x ? d = \"N\" : c ? t ? d = p ? \"SU\" : \"U\" : d = p ? \"SR\" : \"R\" : d = \"A\", e.type === \"loop\" && d === \"U\" && s && ze(e, s) && (d = \"CNSU\"), d;\n}, ze = (e, t) => {\n const s = [...(t == null ? void 0 : t.children) || []], c = [...(e == null ? void 0 : e.children) || []].filter(\n (u) => s.find((l) => o(u) === o(l))\n ), r = s.filter(\n (u) => c.find((l) => o(u) === o(l))\n );\n let n = r.length === c.length;\n return n && (n = r.every(\n (u, l) => o(u) === o(c[l])\n )), n;\n}, $e = (e, t) => {\n e && t !== e && (w(e).forEach((s) => delete e[s]), P(t || {}).forEach(([s, c]) => e[s] = c));\n}, Ge = (e, t) => {\n e && t !== e && (e.splice(0, e.length), t && t.forEach((s) => e.push(s)));\n}, Je = (e, t) => {\n const { compProps: s, compChild: c } = e, { props: r, children: n } = t;\n return s && $e(s, r), c && Ge(c, n), e.reRender && e.reRender();\n}, Xe = (e, t, s) => T(e) ? t && s ? Je(s, e) : e.resolve() : e, Ye = (e, t, s) => t && s ? He(e, s) : Ze(e), Ze = (e) => (e.children || []).map(\n (t) => b(M(t), { getParent: () => e })\n), He = (e, t) => e.type === \"loop\" && E(o((e.children || [])[0])) ? Ve(e, t) : (e.children || []).map(\n (s, c) => b(M(s, (t.children || [])[c]), {\n getParent: () => e\n })\n), Ve = (e, t) => {\n const [s, c] = Ke(\n e,\n t\n );\n return c.forEach((r) => {\n U(r), F(r), $(r);\n }), s;\n}, Ke = (e, t) => {\n const s = [...e.children || []], c = [...t.children || []];\n return [s.map((n) => {\n const u = ge(n, c), l = M(n, u);\n return u && c.splice(c.indexOf(u), 1), l.getParent = () => e, l;\n }), c];\n}, ge = (e, t) => t.find(\n (s) => o(s) === o(e)\n), q = /* @__PURE__ */ new Map();\nlet _ = !1;\nconst me = (e, t) => {\n f.get(e) && (f.get(e).up = () => {\n q.set(e, t), _ || (_ = !0, queueMicrotask(We));\n });\n}, we = (e) => () => {\n var c;\n const t = (c = f.get(e)) == null ? void 0 : c.up;\n let s = !1;\n return t && (t(), s = !0), s;\n}, We = () => {\n q.forEach((e) => {\n e();\n }), q.clear(), _ = !1;\n}, dt = (e, t = () => []) => {\n f.get(a()).upR.push(() => H(e, t)), H(e, t);\n}, De = () => {\n var t;\n const e = (t = f.get(a())) == null ? void 0 : t.upR;\n e != null && e.length && e.forEach((s) => s());\n}, J = (e, ...t) => ({\n type: \"fragment\",\n [C]: !0,\n children: t\n}), et = (e, t, ...s) => {\n const c = { value: void 0 }, r = t || {}, n = de(c, s), u = rt(e, r, n);\n return T(u) || (c.value = u), u;\n}, pt = (e, t) => et(\"portal\", { portal: t }, e), ht = (e) => (t, s) => e, tt = (e, t, s, c) => {\n var i;\n if (c.isLegacy)\n return;\n O.value = !0;\n const r = fe(e, t, s), n = M(r, c), { isRoot: u, getParent: l, wrapElement: h, afterElement: p } = c;\n if (n.getParent = l, !u && l) {\n const x = ((i = l()) == null ? void 0 : i.children) || [], d = x.indexOf(c);\n x.splice(d, 1, n);\n } else\n n.isRoot = !0, n.wrapElement = h, n.afterElement = p;\n O.value = !1, ee(n);\n}, fe = (e, t, s) => ({ tagName: e.name, ctor: e, props: t, children: s, resolve: (u = t) => {\n Se(u);\n const l = e(t, s), p = (typeof l == \"function\" ? l : () => () => l)(we(u), t, s);\n return st(\n p,\n u,\n e,\n t,\n s\n );\n} }), st = (e, t, s, c, r) => {\n let n = e, u = e(c);\n u.reRender && (n = (h) => {\n const p = e(h), i = J({}, p);\n return p.getParent = () => i, i;\n }, u = n(c));\n const l = ct(\n n,\n t,\n s,\n c,\n r\n );\n return oe(u, t, s, c, r, l), u;\n}, ct = (e, t, s, c, r) => {\n const n = () => nt(e, t, s, c, r, n);\n return n;\n}, nt = (e, t, s, c, r, n) => {\n Pe(t), De();\n const u = e(c);\n return oe(u, t, s, c, r, n), u;\n}, oe = (e, t, s, c, r, n) => {\n b(e, {\n compProps: c,\n compChild: r,\n ctor: s,\n tagName: s.name,\n compKey: t,\n reRender: n\n }), me(\n t,\n () => tt(s, c, r, e)\n ), Z(t, \"vd\") && (Z(t, \"vd\").value = e);\n}, rt = (e, t, s) => {\n if (g(e))\n return J(t, ...s);\n if (T(e)) {\n const c = fe(e, t, s);\n return O.value ? c : c.resolve();\n }\n return {\n type: \"element\",\n [C]: !0,\n tag: e,\n props: t,\n children: s\n };\n}, de = (e, t) => t.map(\n (s) => b(ut(s), { getParent: () => e.value })\n), ut = (e) => {\n if (e == null || e === !1)\n return { type: null, [C]: !0 };\n if (Array.isArray(e)) {\n const t = { value: void 0 }, s = de(t, e), c = {\n type: \"loop\",\n [C]: !0,\n children: s\n };\n return t.value = c, c;\n } else if (typeof e == \"string\" || typeof e == \"number\")\n return { type: \"text\", [C]: !0, text: e };\n return e;\n}, it = (e) => ({ value: e }), yt = () => Promise.resolve();\nexport {\n J as Fragment,\n we as componentUpdate,\n et as h,\n lt as isPropType,\n ht as mount,\n ft as mountCallback,\n yt as nextTick,\n pt as portal,\n it as ref,\n ot as render,\n dt as updateCallback\n};\n//# sourceMappingURL=lithent.mjs.map\n","import { h as o } from \"lithent\";\nimport { Fragment as m } from \"lithent\";\nfunction d(s, t, e, a, c, f) {\n const { children: r, ...n } = t;\n if (r) {\n const i = Array.isArray(r) ? r : [r];\n return o(s, { ...n, key: e }, ...i);\n }\n return o(s, { ...n, key: e });\n}\nexport {\n m as Fragment,\n d as jsx,\n d as jsxDEV,\n d as jsxs\n};\n//# sourceMappingURL=jsxRuntime.mjs.map\n","import { mountCallback as y, updateCallback as S, nextTick as T, render as w } from \"lithent\";\nconst L = (t, e) => {\n let n = t;\n return {\n get value() {\n return n;\n },\n get v() {\n return n;\n },\n set value(c) {\n n = c, e();\n },\n set v(c) {\n n = c, e();\n }\n };\n}, U = (t) => {\n let e = t;\n return {\n get value() {\n return e();\n },\n get v() {\n return e();\n },\n set value(n) {\n throw new Error(\"You can't change 'computed'\");\n },\n set v(n) {\n throw new Error(\"You can't change 'computed'\");\n }\n };\n}, b = (t, e = () => {\n}, n = () => []) => {\n y(() => (t(), e)), S(() => (e && e(), t), n);\n}, x = { cache: !0 };\nfunction k(t) {\n const e = { value: !1 }, c = !Array.isArray(t) && typeof t == \"object\" && t !== null ? t : { value: t }, s = /* @__PURE__ */ new Set(), l = [], u = /* @__PURE__ */ new WeakMap();\n return (a, o, r) => {\n const { cache: d } = Object.assign({}, x, r || {});\n if (d && a && u.has(a))\n return u.get(a);\n const h = {}, v = /* @__PURE__ */ new Set();\n let f = { value: null }, i = () => {\n };\n return l.push(h), a && o && (i = () => a(f.value), f.value = g(\n c,\n e,\n s,\n v,\n l,\n i,\n h\n ), e.value = !0, o(f.value), e.value = !1), f.value || (f.value = g(\n c,\n e,\n s,\n v,\n l\n ), a && (i = () => a(f.value), s.add(i))), a && (j(\n i,\n s,\n h,\n v\n ), u.set(a, f.value)), f.value;\n };\n}\nfunction g(t, e, n, c, s, l, u) {\n return new Proxy(t, {\n get(o, r) {\n return l && u && e.value && (u[r] ?? (u[r] = /* @__PURE__ */ new Set()), u[r].has(l) || (u[r].add(l), c.add(r))), o[r];\n },\n set(o, r, d) {\n return o[r] === d || (o[r] = d, C(n, s, r)), !0;\n }\n });\n}\nfunction C(t, e = [], n) {\n const c = /* @__PURE__ */ new Set();\n m(t).forEach(\n (s) => c.add(s)\n ), (e || []).forEach((s) => {\n const l = s[n] || /* @__PURE__ */ new Set();\n m(l).forEach(\n (u) => c.add(u)\n ), E(c, l);\n }), E(c, t);\n}\nfunction E(t, e) {\n t.forEach((n) => {\n e.delete(n);\n });\n}\nfunction m(t) {\n const e = [];\n return t.forEach((n) => {\n n() === !1 && e.push(n);\n }), e;\n}\nfunction j(t, e, n, c) {\n const s = t();\n s instanceof AbortSignal && s.addEventListener(\"abort\", () => {\n const l = n || {};\n e.delete(t), Object.entries(l).forEach(([u, a]) => {\n a.delete(t), c.delete(u);\n });\n });\n}\nconst D = (t, e) => {\n let n = [], c = null;\n return (s) => {\n const l = t(), u = n.every((o, r) => o === l[r]);\n if (n = l, u && c)\n return c;\n const a = e(s);\n return c = a, a;\n };\n}, P = (t, e, n) => {\n let c = () => {\n };\n return T().then(() => {\n c = w(t(), e, n);\n }), () => c();\n};\nexport {\n D as cacheUpdate,\n U as computed,\n b as effect,\n P as nextTickRender,\n L as state,\n k as store\n};\n//# sourceMappingURL=lithentHelper.mjs.map\n","// example.jsx\nimport {\n Fragment,\n render,\n ref,\n mountCallback,\n updateCallback,\n mount,\n} from 'lithent';\nimport { state, computed, effect, store } from 'lithent/helper';\n\n// This is the \"mount\" function.\n// This function is only executed on mount, and on update, only updates `props` and then executes the internal return function.\n// childen is passed as the second argument.\nconst ChildComponent = mount<{ parentValue: number }>(\n (renew, props, children) => {\n // The value is used as a \"getter\" to make it easy to get and write to in the higher-order functions it returns\n const count = state<number>(1, renew);\n const text = state<string>(\n '\"destructuring\" the \"props\" value directly from the mount function will cause referencing issues, so if you want to use it, you need to \"destructuring\" it from the internal function (updater).',\n renew\n );\n const getParentValue = () => props.parentValue;\n const parentValueFromMount = props.parentValue;\n const summ = computed<number>(\n () => count.v + notRefValue + props.parentValue\n );\n\n const localStore = store<{ text: string; count: number }>({\n text: 's',\n count: 0,\n })(renew);\n /*\n // To share a store, make it externally and use `asign`.\n const asignStore = store<{ text: string; count: number }>({ text: 's', count: 0 });\n\n const sharedStore = asignStore(nenew);\n */\n\n // Even if you don't use a ref, the private value is always maintained as a regular variable.\n let notRefValue = props.parentValue;\n\n // Ref is only used to reference the DOM.\n const domRef = ref(null);\n\n const increase = () => {\n count.v = count.v + 1;\n notRefValue += 1;\n };\n\n const handleInputChane = (event: InputEvent) => {\n text.v = (event.target as HTMLInputElement).value;\n };\n\n const localStoreUpdate = () => {\n localStore.count += 1;\n localStore.text += '1';\n };\n\n const handleMounted = () => {\n console.log('MOUNTED', domRef);\n\n return () => console.log('UNMOUNT');\n };\n const handleUpdated = () => {\n console.log('UPDATE - parentValue');\n\n return () => console.log('UPDATED');\n };\n\n mountCallback(handleMounted);\n updateCallback(handleUpdated, () => [props.parentValue]); // Only Defs Updated (using a closure to update a value)\n\n // Behaves like `react`'s `useEffect`\n effect(\n () => console.log('INJECT'),\n () => console.log('CLEAN_UP'),\n () => [count.v]\n );\n\n // Wrap in a function and return (using a closure to hold the value)\n // This is the \"update\" function.\n return ({ parentValue }) => (\n <Fragment>\n {/* Note that the event is onInput (we use the native event name to avoid confusion). */}\n <div>\n <textarea\n value={text.v}\n onInput={handleInputChane}\n style={{ width: '300px', height: '100px' }}\n />\n </div>\n <div>{text.v}</div>\n <div>\n <div style={{ color: 'blue' }}>\n parentValueFromRef: {props.parentValue} (working)\n </div>\n <div style={{ color: 'blue' }}>\n parentValueFromFunction: {getParentValue()} (working)\n </div>\n <div style={{ color: 'blue' }}>\n parentValueFromUpdaterDestructuring: {parentValue} (working)\n </div>\n <div style={{ color: 'red' }}>\n parentValueFromMounterDestructuring: {parentValueFromMount} (not\n working)\n </div>\n </div>\n <div>\n <div ref={domRef}>count: {count.v}</div>\n <div>sum: {count.v + notRefValue + props.parentValue}</div>\n <div>sum(computed): {summ.v}</div>\n {/* It doesn't pull it out from under the reference, it uses the value directly, so you can just use it. */}\n <div>notRefValue: {notRefValue}</div>\n <div>localStore(text): {localStore.text}</div>\n <div>localStore(count): {localStore.count}</div>\n </div>\n <button onClick={increase}>Increase</button>\n <button onClick={localStoreUpdate}>localStoreUpdate</button>\n {children}\n </Fragment>\n );\n }\n);\n\nconst Root = mount(renew => {\n const parentNumber = state<number>(7, renew);\n\n const increaseParent = () => {\n parentNumber.v = parentNumber.v + 1;\n };\n\n const decreaseParent = () => {\n parentNumber.v = parentNumber.v - 1;\n };\n\n return () => (\n <Fragment>\n <ChildComponent parentValue={parentNumber.v}>\n <button onClick={increaseParent}>Increase - Parent</button>\n </ChildComponent>\n <button onClick={decreaseParent}>Decrease - Parent</button>\n </Fragment>\n );\n});\nconst root = <Root />;\n\nrender(root, document.getElementById('root'));\n"],"names":["R","pe","he","s","c","ie","X","ye","E","o","v","T","g","J","m","Y","Ce","ve","Re","ke","C","k","S","O","f","Ee","a","Z","Pe","Se","y","P","w","b","ae","U","xe","W","Q","I","Te","Ne","ft","r","n","u","H","Ue","be","Fe","D","z","V","ot","L","F","Le","ee","G","$","Me","B","ce","Ae","ue","te","A","se","ne","j","re","l","t","Oe","le","Be","K","Qe","h","je","M","qe","Xe","Ie","Ye","_e","p","i","x","d","ze","$e","Ge","Je","He","Ze","Ve","Ke","ge","q","_","me","We","we","dt","De","e","et","de","rt","ht","tt","fe","st","ct","oe","nt","ut","it","ChildComponent","mount","renew","props","children","count","state","text","getParentValue","parentValueFromMount","summ","computed","notRefValue","localStore","store","domRef","ref","increase","handleInputChane","event","localStoreUpdate","handleMounted","handleUpdated","mountCallback","updateCallback","effect","parentValue","Fragment","jsx","jsxs","Root","parentNumber","increaseParent","decreaseParent","root","render"],"mappings":"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"}