@papack/csr 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +39 -2
- package/dist/index.d.mts +32 -28
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=[];function t(){return e.length>0}function n(){e.push({mounts:[],unmounts:[]})}function r(t){let n=e.pop();if(!n)throw Error(`endMountSession called without active mount session`);for(let e of n.mounts)try{let n=e(t);n instanceof Promise&&n.catch(e=>console.error(`async mount callback failed`,e))}catch(e){console.error(`mount callback failed`,e)}if(n.unmounts.length>0){let e=t.__unmountCbs;e?e.push(...n.unmounts):t.__unmountCbs=[...n.unmounts]}}function i(t){let n=e[e.length-1];if(!n)throw Error(`mount(cb) called outside of a render session`);n.mounts.push(t)}function a(t){let n=e[e.length-1];if(!n)throw Error(`unmount(cb) called outside of a render session`);n.unmounts.push(t)}function o(e){let t=e.__unmountCbs;if(!(!t||t.length===0)){for(let e=t.length-1;e>=0;e--)try{let n=t[e]();n instanceof Promise&&n.catch(e=>console.error(`async unmount callback failed`,e))}catch(e){console.error(`unmount callback failed`,e)}e.__unmountCbs=void 0}}function s(e){let t=e,n=crypto.randomUUID();l.addTopic(n);let r=e=>(e&&(l.registerClbk(n,e),e(t)),t);return r.type=`signal`,[r,async e=>{let r=e(t);t=r instanceof Promise?await r:r,l.update(n,t)}]}var c=class{topics=new Map;callbackMap=new Map;addTopic(e){this.topics.set(e,new Set)}removeTopic(e){let t=this.topics.get(e);if(t)for(let e of t)this.callbackMap.delete(e);this.topics.delete(e)}registerClbk(e,t){let n=this.topics.get(e);if(!n)throw Error(`Connector: unknown topic ${e}`);let r=this.callbackMap.get(t);if(r){r.refCount++;return}n.add(t),this.callbackMap.set(t,{uuid:e,refCount:1})}removeClbk(e,t){let n=this.callbackMap.get(t);n&&(n.refCount--,!(n.refCount>0)&&(this.topics.get(n.uuid)?.delete(t),this.callbackMap.delete(t)))}update(e,t){let n=this.topics.get(e);if(n)for(let e of n)e(t)}getUuidByClbk(e){let t=this.callbackMap.get(e);if(!t)throw Error(`Connector: no UUID for callback`);return t.uuid}};const l=new c;function u(e,n){let r=!1,i=e=>{if(!r){r=!0;return}try{let t=n(e);t instanceof Promise&&t.catch(e=>{console.error(`effect async callback failed`,e)})}catch(e){console.error(`effect callback failed`,e)}};e(i),t()&&a(()=>{let e=l.getUuidByClbk(i);l.removeClbk(e,i)})}function d(e,t){if(e==null)return{el:t.parent};if(Array.isArray(e)){let n=t.parent;for(let r of e)n=d(r,t).el;return{el:n}}if(e.kind===`text`)return{el:f(e,t)};if(e.kind===`signal`)return{el:p(e,t)};if(typeof e.tag==`function`){let i=e,a=i.tag;n();let o=d(a({...i.props,ctx:t},i.children),t);if(!(o.el instanceof Element))throw Error(`Component root must be a DOM Element`);return r(o.el),t.self=o.el,o}let i=ne(e,t),a={...t,parent:i,self:t.self};for(let t of e.children)d(t,a);return{el:i}}const ee=`http://www.w3.org/2000/svg`,te=new Set([`svg`,`path`,`circle`,`rect`,`line`,`polyline`,`polygon`,`g`,`defs`,`linearGradient`,`radialGradient`,`stop`,`mask`,`clipPath`,`pattern`,`text`,`tspan`,`use`,`symbol`,`view`,`ellipse`,`foreignObject`]);function ne(e,t){if(typeof e.tag!=`string`)throw Error(`Host renderer expects string tag`);let n=e.tag,r=te.has(n),i=r?document.createElementNS(`http://www.w3.org/2000/svg`,n):document.createElement(n),a=e.props??{};for(let[e,t]of Object.entries(a))if(!(e===`ctx`||e===`children`)){if(e.startsWith(`on`)&&typeof t==`function`){let n=e.slice(2).toLowerCase();i.addEventListener(n,t);continue}if(e===`style`&&t&&typeof t==`object`){for(let[e,n]of Object.entries(t))if(n!==void 0)if(typeof n==`function`&&n.type===`signal`){let t=n();i.style[e]=String(t),n(t=>{i.style[e]=String(t)})}else i.style[e]=String(n);continue}if(typeof t==`function`&&t.type===`signal`){let n=t=>{r?i.setAttribute(e,String(t)):i[e]=t};n(t()),m(t,n);continue}r?i.setAttribute(e,String(t)):e in i?i[e]=t:i.setAttribute(e,String(t))}return t.parent.appendChild(i),i}function f(e,t){let n=document.createTextNode(e.value);return t.parent.appendChild(n),n}function p(e,n){let r=document.createTextNode(``);n.parent.appendChild(r);let i=e=>{r.nodeValue=String(e)};return r.nodeValue=String(e.read()),e.read(i),t()&&a(()=>{let e=l.getUuidByClbk(i);l.removeClbk(e,i)}),r}function m(e,n){let r=e=>n(e);e(r),t()&&a(()=>{let e=l.getUuidByClbk(r);l.removeClbk(e,r)})}function h(e){let t=Array.from(e.childNodes);for(let e of t)g(e);o(e),e.parentNode?e.parentNode.removeChild(e):e.remove()}function g(e){if(e instanceof Element){let t=Array.from(e.childNodes);for(let e of t)g(e);o(e),e.parentNode?e.parentNode.removeChild(e):e.remove();return}e.parentNode&&e.parentNode.removeChild(e)}function _(e,t,...n){return{kind:`element`,tag:e,props:t??{},children:n.flatMap(v)}}function v(e){return e==null||e===!1||e===!0?[]:typeof e==`function`&&e?.type===`signal`?{kind:`signal`,read:e}:typeof e==`string`||typeof e==`number`?{kind:`text`,value:String(e)}:Array.isArray(e)?e.flatMap(v):e}function y(e,[t]){let n=_(`csr-for-host`,{style:{display:`contents`}});return i(r=>{let{el:i}=d(n,{parent:r}),a=i,o=new Map,s=[];function c(n){let r=[];for(let i of n){if(!i||i.uuid==null)continue;let n=i.uuid;if(r.push(n),!o.has(n)){let{el:r}=d(t(i),{...e.ctx,parent:a});if(!(r instanceof Element))throw Error(`For: child root must be an Element`);o.set(n,r)}}for(let e of s)if(!r.includes(e)){let t=o.get(e);t&&h(t),o.delete(e)}let i=null;for(let e=r.length-1;e>=0;e--){let t=o.get(r[e]);a.insertBefore(t,i),i=t}s=r}c(e.each()),u(e.each,c)}),null}function b(e,...t){return t}function x(e,t){let n=_(`csr-show-host`,{style:{display:`contents`}}),r=_(`csr-show-content`,{style:{display:`contents`}},...t),a=null,o=null,s=!1;return i(t=>{let{el:i}=d(n,{parent:t});a=i,e.when(t=>{if(t===s)return;if(s=t,!s){o&&=(h(o),null);return}let{el:n}=d(r,{...e.ctx,parent:a});if(!(n instanceof Element))throw Error(`Show: content root must be an Element`);o=n})}),null}function S(e,t){if(typeof e.n==`number`){let n=[];for(let r=0;r<e.n;r++)n.push(t);return n}let n=e.n,[r,i]=s([]);return n(e=>{let t=[];for(let n=0;n<e;n++)t.push({uuid:String(n)});i(()=>t)}),_(y,{each:r},()=>t)}const C={mobile:0,tablet:601,laptop:1025,desktop:1441,large:1921};function w(e){return e>=C.large?`large`:e>=C.desktop?`desktop`:e>=C.laptop?`laptop`:e>=C.tablet?`tablet`:`mobile`}const[T,re]=s(w(window.innerWidth));let E=T();window.addEventListener(`resize`,()=>{let e=w(window.innerWidth);e!==E&&(E=e,re(()=>e))});function ie(){return T}function ae(e,t){if(t){let n=e=>{t(e.detail)};window.addEventListener(e,n),a(()=>{window.removeEventListener(e,n)})}return function(t){window.dispatchEvent(new CustomEvent(e,{detail:t}))}}function oe(e,t){let n=t;try{let t=localStorage.getItem(e);t!==null&&(n=JSON.parse(t))}catch(t){console.error(`[useLocalStorage] Failed to read key "${e}"`,t)}let[r,i]=s(n);function a(t){i(n=>{let r;try{r=t(n)}catch(t){return console.error(`[useLocalStorage] Updater failed for key "${e}"`,t),n}try{localStorage.setItem(e,JSON.stringify(r))}catch(t){console.error(`[useLocalStorage] Failed to write key "${e}"`,t)}return r})}function o(){try{localStorage.removeItem(e)}catch(t){console.error(`[useLocalStorage] Failed to remove key "${e}"`,t)}i(()=>t)}return[r,a,o]}const[se,ce]=s(`en-US`);function le(){return{locale:se,setLocale(e){ce(()=>e)}}}function ue(e){return e.includes(`://`)}function de(){window.dispatchEvent(new PopStateEvent(`popstate`)),window.dispatchEvent(new HashChangeEvent(`hashchange`))}function D(){return{navigate:e=>{let t=window.location.pathname+window.location.search+window.location.hash,n=typeof e==`function`?e(t):e;if(ue(n)){window.location.href=n;return}window.history.pushState(null,``,n),de()}}}function O(e,t){let n=t;try{let t=sessionStorage.getItem(e);t!==null&&(n=JSON.parse(t))}catch(t){console.error(`[useSessionStorage] Failed to read key "${e}"`,t)}let[r,i]=s(n);function a(t){i(n=>{let r;try{r=t(n)}catch(t){return console.error(`[useSessionStorage] Updater failed for key "${e}"`,t),n}try{sessionStorage.setItem(e,JSON.stringify(r))}catch(t){console.error(`[useSessionStorage] Failed to write key "${e}"`,t)}return r})}function o(){try{sessionStorage.removeItem(e)}catch(t){console.error(`[useSessionStorage] Failed to remove key "${e}"`,t)}i(()=>t)}return[r,a,o]}function k(e,t){return function(n,r){let i=()=>A(n,e(),t,r),[a,o]=s(i());if(u(e,()=>{o(()=>i())}),r)for(let e of Object.values(r))typeof e==`function`&&e.type===`signal`&&u(e,()=>{o(()=>i())});return a}}function A(e,t,n,r){let i=n[e];return i&&i[t]?j(i[t],r):j(e,r)}function j(e,t){if(!t)return e;let n=e;for(let[e,r]of Object.entries(t)){let t=typeof r==`function`?r():r;n=n.split(`{${e}}`).join(String(t))}return n}function M(){return window.location.hash||``}const[N,P]=s(M());function F(){P(()=>M())}window.addEventListener(`hashchange`,F),window.addEventListener(`popstate`,F);function I(e){let t=typeof e==`function`?e(N()):e,n=t===``?``:t.startsWith(`#`)?t:`#${t}`;if(n!==window.location.hash){let e=window.location.pathname+window.location.search+n;window.history.pushState(null,``,e),F()}}function L(){return[N,I]}function R(){return new URLSearchParams(window.location.search)}const[z,B]=s(R());window.addEventListener(`popstate`,()=>{B(()=>R())});function V(e){return z().get(e)??``}function H(e,t){let n=R(),r=n.get(e)??``,i=typeof t==`function`?t(r):t;i===``?n.delete(e):n.set(e,i);let a=window.location.pathname+(n.toString()?`?${n}`:``)+window.location.hash;window.history.pushState(null,``,a),B(()=>new URLSearchParams(n))}function U(e){let[t,n]=s(V(e));return window.addEventListener(`popstate`,()=>{n(()=>V(e))}),[t,t=>{H(e,t),n(()=>V(e))}]}function W(){return window.location.pathname||`/`}const[G,K]=s(W());window.addEventListener(`popstate`,()=>{K(()=>W())});function fe(e){let t=window.location,n=typeof e==`function`?e(G()):e,r=n.startsWith(`/`)?n:`/${n}`;if(r!==t.pathname){let e=r+t.search+t.hash;window.history.pushState(null,``,e),K(()=>W())}}function pe(){return[G,fe]}function q(e,t){return _(`div`,{...e,style:{marginBottom:e.mb??e.my??e.m,marginLeft:e.ml??e.mx??e.m,marginRight:e.mr??e.mx??e.m,marginTop:e.mt??e.my??e.m,paddingBottom:e.pb??e.py??e.p,paddingLeft:e.pl??e.px??e.p,paddingRight:e.pr??e.px??e.p,paddingTop:e.pt??e.py??e.p,background:e.bg,opacity:e.o,boxShadow:e.sh,borderTop:e.bt??e.by??e.b,borderRight:e.br??e.bx??e.b,borderBottom:e.bb??e.by??e.b,borderLeft:e.bl??e.bx??e.b,borderTopRightRadius:e.rtr??e.rt??e.rr??e.r,borderTopLeftRadius:e.rtl??e.rt??e.rl??e.r,borderBottomRightRadius:e.rbr??e.rb??e.rr??e.r,borderBottomLeftRadius:e.rbl??e.rb??e.rl??e.r,width:e.w??e.s,height:e.h??e.s,maxWidth:e.maxW,maxHeight:e.maxH,minWidth:e.minW,minHeight:e.minH,...e.style}},t)}function J(e,t){return _(q,{...e,style:{position:`absolute`,top:e.top,right:e.right,bottom:e.bottom,left:e.left,...e.style}},t)}function Y(e,t){return _(q,{...e,style:{flex:e.flx,alignSelf:e.as,flexGrow:e.flxGrow,flexShrink:e.flxShrink,flexBasis:e.flxBasis,...e.style}},t)}function X(e,t){return _(Y,{...e,style:{display:`flex`,justifyContent:e.jc,alignItems:e.ai,alignContent:e.ac,gap:e.g,flexDirection:e.flxDirection,flexWrap:e.flxWrap,flexFlow:e.flxFlow,...e.style}},t)}function me(e,t){return _(X,{...e,ai:e.ai??`center`,jc:e.jc??`center`},t)}function he(e,t){return _(q,{...e,style:{position:`fixed`,top:e.top,right:e.right,bottom:e.bottom,left:e.left,zIndex:e.zIndex,...e.style}},t)}function Z(e,t){return _(q,{...e,style:{gridArea:e.grdArea,gridColumn:e.grdColumn,gridRow:e.grdRow,...e.style}},t)}function ge(e,t){return _(Z,{...e,style:{display:`grid`,gap:e.g,alignItems:e.ai,justifyItems:e.ji,alignSelf:e.as,gridTemplateColumns:e.grdTemplateColumns,gridTemplateRows:e.grdTemplateRows,gridTemplateAreas:e.grdTemplateAreas,gridTemplate:e.grdTemplate,gridAutoColumns:e.grdAutoColumns,gridAutoRows:e.grdAutoRows,gridAutoFlow:e.grdAutoFlow,gridArea:e.grd,gridRowStart:e.grdRowStart,gridColumnStart:e.grdColumnStart,gridRowEnd:e.grdRowEnd,gridColumnEnd:e.grdColumnEnd,gridRow:e.grdRow,gridColumn:e.grdColumn,rowGap:e.grdRowGap,columnGap:e.grdColumnGap,...e.style}},t)}function Q(e,t){return _(q,{...e,style:{position:`relative`,zIndex:e.zIndex,...e.style}},t)}function _e(e,t){return _(Q,{s:`100%`},_(J,{top:`0`,right:`0`,bottom:`0`,left:`0`,...e,style:{overflow:`auto`,...e.style}},t))}function ve(e,t){return _(X,{...e,flxDirection:e.flxDirection??`column`},t)}function ye(e,t){return _(q,{...e,style:{position:`sticky`,top:e.top,right:e.right,bottom:e.bottom,left:e.left,zIndex:e.zIndex,...e.style}},t)}function be(e,t){return _(e.tag??`p`,{...e,style:{textAlign:e.a,fontFamily:e.ff,fontWeight:e.fw,fontSize:e.fs,lineHeight:e.lh,letterSpacing:e.ls,fontStyle:e.s,color:e.c,margin:e.m,marginBottom:e.mb??e.my??e.m,marginLeft:e.ml??e.mx??e.m,marginRight:e.mr??e.mx??e.m,marginTop:e.mt??e.my??e.m,padding:e.p,paddingBottom:e.pb??e.py??e.p,paddingLeft:e.pl??e.px??e.p,paddingRight:e.pr??e.px??e.p,paddingTop:e.pt??e.py??e.p,background:e.bg}},...t)}const xe={brand:`#000`,onBrand:`#fff`,gray0:`#f8f9fa`,gray100:`#f1f3f5`,gray200:`#e9ecef`,gray300:`#dee2e6`,gray400:`#ced4da`,gray500:`#adb5bd`,gray600:`#868e96`,gray700:`#495057`,gray800:`#343a40`,gray900:`#212529`,red0:`#fff5f5`,red100:`#ffe3e3`,red200:`#ffc9c9`,red300:`#ffa8a8`,red400:`#ff8787`,red500:`#ff6b6b`,red600:`#fa5252`,red700:`#f03e3e`,red800:`#e03131`,red900:`#c92a2a`,pink0:`#fff0f6`,pink100:`#ffdeeb`,pink200:`#fcc2d7`,pink300:`#faa2c1`,pink400:`#f783ac`,pink500:`#f06595`,pink600:`#e64980`,pink700:`#d6336c`,pink800:`#c2255c`,pink900:`#a61e4d`,grape0:`#f8f0fc`,grape100:`#f3d9fa`,grape200:`#eebefa`,grape300:`#e599f7`,grape400:`#da77f2`,grape500:`#cc5de8`,grape600:`#be4bdb`,grape700:`#ae3ec9`,grape800:`#9c36b5`,grape900:`#862e9c`,violet0:`#f3f0ff`,violet100:`#e5dbff`,violet200:`#d0bfff`,violet300:`#b197fc`,violet400:`#9775fa`,violet500:`#845ef7`,violet600:`#7950f2`,violet700:`#7048e8`,violet800:`#6741d9`,violet900:`#5f3dc4`,indigo0:`#edf2ff`,indigo100:`#dbe4ff`,indigo200:`#bac8ff`,indigo300:`#91a7ff`,indigo400:`#748ffc`,indigo500:`#5c7cfa`,indigo600:`#4c6ef5`,indigo700:`#4263eb`,indigo800:`#3b5bdb`,indigo900:`#364fc7`,blue0:`#e7f5ff`,blue100:`#d0ebff`,blue200:`#a5d8ff`,blue300:`#74c0fc`,blue400:`#4dabf7`,blue500:`#339af0`,blue600:`#228be6`,blue700:`#1c7ed6`,blue800:`#1971c2`,blue900:`#1864ab`,cyan0:`#e3fafc`,cyan100:`#c5f6fa`,cyan200:`#99e9f2`,cyan300:`#66d9e8`,cyan400:`#3bc9db`,cyan500:`#22b8cf`,cyan600:`#15aabf`,cyan700:`#1098ad`,cyan800:`#0c8599`,cyan900:`#0b7285`,teal0:`#e6fcf5`,teal100:`#c3fae8`,teal200:`#96f2d7`,teal300:`#63e6be`,teal400:`#38d9a9`,teal500:`#20c997`,teal600:`#12b886`,teal700:`#0ca678`,teal800:`#099268`,teal900:`#087f5b`,green0:`#ebfbee`,green100:`#d3f9d8`,green200:`#b2f2bb`,green300:`#8ce99a`,green400:`#69db7c`,green500:`#51cf66`,green600:`#40c057`,green700:`#37b24d`,green800:`#2f9e44`,green900:`#2b8a3e`,lime0:`#f4fce3`,lime100:`#e9fac8`,lime200:`#d8f5a2`,lime300:`#c0eb75`,lime400:`#a9e34b`,lime500:`#94d82d`,lime600:`#82c91e`,lime700:`#74b816`,lime800:`#66a80f`,lime900:`#5c940d`,yellow0:`#fff9db`,yellow100:`#fff3bf`,yellow200:`#ffec99`,yellow300:`#ffe066`,yellow400:`#ffd43b`,yellow500:`#fcc419`,yellow600:`#fab005`,yellow700:`#f59f00`,yellow800:`#f08c00`,yellow900:`#e67700`,orange0:`#fff4e6`,orange100:`#ffe8cc`,orange200:`#ffd8a8`,orange300:`#ffc078`,orange400:`#ffa94d`,orange500:`#ff922b`,orange600:`#fd7e14`,orange700:`#f76707`,orange800:`#e8590c`,orange900:`#d9480f`},Se={sans:`sans-serif`,serif:`serif`,mono:`monospace`},Ce={xs:`-0.05em`,sm:`-0.025em`,md:`0em`,lg:`0.025em`,xl:`0.05em`,"2xl":`0.1em`,"3xl":`0.15em`,"4xl":`0.2em`,"5xl":`0.25em`,"6xl":`0.3em`,"7xl":`0.35em`,"8xl":`0.4em`,"9xl":`0.45em`},we={xs:`1rem`,sm:`1.25rem`,md:`1.5rem`,lg:`1.75rem`,xl:`2rem`,"2xl":`2.25rem`,"3xl":`2.5rem`,"4xl":`2.75rem`,"5xl":`3rem`,"6xl":`3.25rem`,"7xl":`3.5rem`,"8xl":`3.75rem`,"9xl":`4rem`},Te={xs:`0.75rem`,sm:`0.875rem`,md:`1rem`,lg:`1.125rem`,xl:`1.25rem`,"2xl":`1.5rem`,"3xl":`1.875rem`,"4xl":`2.25rem`,"5xl":`3rem`,"6xl":`3.75rem`,"7xl":`4.5rem`,"8xl":`6rem`,"9xl":`8rem`},Ee={normal:`normal`,italic:`italic`},De={thin:100,extralight:200,light:300,normal:400,medium:500,semibold:600,bold:700,extrabold:800,black:900},$={family:Se,size:Te,weight:De,style:Ee,lineHeight:we,letterSpacing:Ce},Oe={sm:`0.125rem`,md:`0.375rem`,lg:`0.5rem`,xl:`0.75rem`,"2xl":`1rem`,"3xl":`1.5rem`,full:`9999px`},ke={sm:`0 1px 2px 0 rgb(0 0 0 / 0.05)`,md:`0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`,lg:`0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)`,xl:`0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)`,"2xl":`0 25px 50px -12px rgb(0 0 0 / 0.25)`,inner:`inset 0 2px 4px 0 rgb(0 0 0 / 0.05)`},Ae={xs:`0.75rem`,sm:`0.875rem`,md:`1rem`,lg:`1.125rem`,xl:`1.25rem`,"2xl":`1.5rem`,"3xl":`1.875rem`,"4xl":`2.25rem`,"5xl":`3rem`,"6xl":`3.75rem`,"7xl":`4.5rem`,"8xl":`6rem`,"9xl":`8rem`,"1/12":`8.333333%`,"2/12":`16.666667%`,"3/12":`25%`,"4/12":`33.333333%`,"5/12":`41.666667%`,"6/12":`50%`,"7/12":`58.333333%`,"8/12":`66.666667%`,"9/12":`75%`,"10/12":`83.333333%`,"11/12":`91.666667%`,"1/5":`20%`,"2/5":`40%`,"3/5":`60%`,"4/5":`80%`,"1/4":`25%`,"3/4":`75%`,"1/3":`33.333333%`,"2/3":`66.666667%`,"1/2":`50%`,full:`100%`},je={xs:`0.125rem`,sm:`0.25rem`,md:`0.5rem`,lg:`0.75rem`,xl:`1rem`,xxl:`1.5rem`,"3xl":`2rem`,"4xl":`2.5rem`,"5xl":`3rem`,"6xl":`3.5rem`,"7xl":`4rem`,"8xl":`4.5rem`},Me={normal:`normal`,italic:`italic`},Ne={base:`100`,background:`200`,menu:`300`};exports.Absolute=J,exports.Box=q,exports.Center=me,exports.Fixed=he,exports.Flex=X,exports.FlexItem=Y,exports.For=y,exports.Grid=ge,exports.GridItem=Z,exports.Relative=Q,exports.Repeat=S,exports.Scroll=_e,exports.Show=x,exports.Stack=ve,exports.Sticky=ye,exports.Text=be,exports.beginMountSession=n,exports.breakpoint=C,exports.color=xe,exports.connector=l,exports.effect=u,exports.endMountSession=r,exports.font=$,exports.fragment=b,exports.hasActiveMountSession=t,exports.jsx=_,exports.mount=i,exports.radius=Oe,exports.render=d,exports.runUnmountsForElement=o,exports.shadow=ke,exports.signal=s,exports.size=Ae,exports.space=je,exports.style=Me,exports.unmount=a,exports.useBreakpoint=ie,exports.useCustomEvent=ae,exports.useLocalStorage=oe,exports.useLocale=le,exports.useNavigate=D,exports.useSessionStorage=O,exports.useText=k,exports.useUrlHash=L,exports.useUrlParam=U,exports.useUrlPath=pe,exports.zIndex=Ne;
|
|
1
|
+
const e=[];function t(){return e.length>0}function n(){e.push({mounts:[],unmounts:[]})}function r(t){let n=e.pop();if(!n)throw Error(`endMountSession called without active mount session`);for(let e of n.mounts)try{let n=e(t);n instanceof Promise&&n.catch(e=>console.error(`async mount callback failed`,e))}catch(e){console.error(`mount callback failed`,e)}if(n.unmounts.length>0){let e=t.__unmountCbs;e?e.push(...n.unmounts):t.__unmountCbs=[...n.unmounts]}}function i(t){let n=e[e.length-1];if(!n)throw Error(`mount(cb) called outside of a render session`);n.mounts.push(t)}function a(t){let n=e[e.length-1];if(!n)throw Error(`unmount(cb) called outside of a render session`);n.unmounts.push(t)}function o(e){let t=e.__unmountCbs;if(!(!t||t.length===0)){for(let e=t.length-1;e>=0;e--)try{let n=t[e]();n instanceof Promise&&n.catch(e=>console.error(`async unmount callback failed`,e))}catch(e){console.error(`unmount callback failed`,e)}e.__unmountCbs=void 0}}function s(e){let t=e,n=crypto.randomUUID();l.addTopic(n);let r=e=>(e&&(l.registerClbk(n,e),e(t)),t);return r.type=`signal`,[r,async e=>{let r=e(t);t=r instanceof Promise?await r:r,l.update(n,t)}]}var c=class{topics=new Map;callbackMap=new Map;addTopic(e){this.topics.set(e,new Set)}removeTopic(e){let t=this.topics.get(e);if(t)for(let e of t)this.callbackMap.delete(e);this.topics.delete(e)}registerClbk(e,t){let n=this.topics.get(e);if(!n)throw Error(`Connector: unknown topic ${e}`);let r=this.callbackMap.get(t);if(r){r.refCount++;return}n.add(t),this.callbackMap.set(t,{uuid:e,refCount:1})}removeClbk(e,t){let n=this.callbackMap.get(t);n&&(n.refCount--,!(n.refCount>0)&&(this.topics.get(n.uuid)?.delete(t),this.callbackMap.delete(t)))}update(e,t){let n=this.topics.get(e);if(n)for(let e of n)e(t)}getUuidByClbk(e){let t=this.callbackMap.get(e);if(!t)throw Error(`Connector: no UUID for callback`);return t.uuid}};const l=new c;function u(e,n){let r=!1,i=e=>{if(!r){r=!0;return}try{let t=n(e);t instanceof Promise&&t.catch(e=>{console.error(`effect async callback failed`,e)})}catch(e){console.error(`effect callback failed`,e)}};e(i),t()&&a(()=>{let e=l.getUuidByClbk(i);l.removeClbk(e,i)})}function d(e,t){if(e==null)return{el:t.parent};if(Array.isArray(e)){let n=t.parent;for(let r of e)n=d(r,t).el;return{el:n}}if(e.kind===`text`)return{el:p(e,t)};if(e.kind===`signal`)return{el:ne(e,t)};if(typeof e.tag==`function`){let i=e,a=i.tag;n();let o=d(a({...i.props,ctx:t},i.children),t);if(!(o.el instanceof Element))throw Error(`Component root must be a DOM Element`);return r(o.el),t.self=o.el,o}let i=te(e,t),a={...t,parent:i,self:t.self};for(let t of e.children)d(t,a);return{el:i}}const ee=`http://www.w3.org/2000/svg`,f=new Set([`svg`,`path`,`circle`,`rect`,`line`,`polyline`,`polygon`,`g`,`defs`,`linearGradient`,`radialGradient`,`stop`,`mask`,`clipPath`,`pattern`,`text`,`tspan`,`use`,`symbol`,`view`,`ellipse`,`foreignObject`]);function te(e,t){if(typeof e.tag!=`string`)throw Error(`Host renderer expects string tag`);let n=e.tag,r=f.has(n),i=r?document.createElementNS(`http://www.w3.org/2000/svg`,n):document.createElement(n),a=e.props??{};for(let[e,t]of Object.entries(a))if(!(e===`ctx`||e===`children`)){if(e.startsWith(`on`)&&typeof t==`function`){let n=e.slice(2).toLowerCase();i.addEventListener(n,t);continue}if(e===`style`&&t&&typeof t==`object`){for(let[e,n]of Object.entries(t))if(n!==void 0)if(typeof n==`function`&&n.type===`signal`){let t=n();i.style[e]=String(t),n(t=>{i.style[e]=String(t)})}else i.style[e]=String(n);continue}if(typeof t==`function`&&t.type===`signal`){let n=t=>{r?i.setAttribute(e,String(t)):i[e]=t};n(t()),m(t,n);continue}r?i.setAttribute(e,String(t)):e in i?i[e]=t:i.setAttribute(e,String(t))}return t.parent.appendChild(i),i}function p(e,t){let n=document.createTextNode(e.value);return t.parent.appendChild(n),n}function ne(e,n){let r=document.createTextNode(``);n.parent.appendChild(r);let i=e=>{r.nodeValue=String(e)};return r.nodeValue=String(e.read()),e.read(i),t()&&a(()=>{let e=l.getUuidByClbk(i);l.removeClbk(e,i)}),r}function m(e,n){let r=e=>n(e);e(r),t()&&a(()=>{let e=l.getUuidByClbk(r);l.removeClbk(e,r)})}function h(e){let t=Array.from(e.childNodes);for(let e of t)g(e);o(e),e.parentNode?e.parentNode.removeChild(e):e.remove()}function g(e){if(e instanceof Element){let t=Array.from(e.childNodes);for(let e of t)g(e);o(e),e.parentNode?e.parentNode.removeChild(e):e.remove();return}e.parentNode&&e.parentNode.removeChild(e)}function _(e,t,...n){return{kind:`element`,tag:e,props:t??{},children:n.flatMap(v)}}function v(e){return e==null||e===!1||e===!0?[]:typeof e==`function`&&e?.type===`signal`?{kind:`signal`,read:e}:typeof e==`string`||typeof e==`number`?{kind:`text`,value:String(e)}:Array.isArray(e)?e.flatMap(v):e}function y(e,[t]){let n=_(`csr-for-host`,{style:{display:`contents`}});return i(r=>{let{el:i}=d(n,{parent:r}),a=i,o=new Map,s=[];function c(n){let r=[];for(let i of n){if(!i||i.uuid==null)continue;let n=i.uuid;if(r.push(n),!o.has(n)){let{el:r}=d(t(i),{...e.ctx,parent:a});if(!(r instanceof Element))throw Error(`For: child root must be an Element`);o.set(n,r)}}for(let e of s)if(!r.includes(e)){let t=o.get(e);t&&h(t),o.delete(e)}let i=null;for(let e=r.length-1;e>=0;e--){let t=o.get(r[e]);a.insertBefore(t,i),i=t}s=r}c(e.each()),u(e.each,c)}),null}function re(e,...t){return t}function b(e,t){let n=_(`csr-show-host`,{style:{display:`contents`}}),r=_(`csr-show-content`,{style:{display:`contents`}},...t),a=null,o=null,s=!1;return i(t=>{let{el:i}=d(n,{parent:t});a=i,e.when(t=>{if(t===s)return;if(s=t,!s){o&&=(h(o),null);return}let{el:n}=d(r,{...e.ctx,parent:a});if(!(n instanceof Element))throw Error(`Show: content root must be an Element`);o=n})}),null}function x(e,t){if(typeof e.n==`number`){let n=[];for(let r=0;r<e.n;r++)n.push(t);return n}let n=e.n,[r,i]=s([]);return n(e=>{let t=[];for(let n=0;n<e;n++)t.push({uuid:String(n)});i(()=>t)}),_(y,{each:r},()=>t)}function ie(e,t){let n=document.createElement(`csr-portal`);i(()=>{document.body.appendChild(n);for(let e of t)d(e,{parent:n})}),a(()=>{h(n)})}const S={mobile:0,tablet:601,laptop:1025,desktop:1441,large:1921};function C(e){return e>=S.large?`large`:e>=S.desktop?`desktop`:e>=S.laptop?`laptop`:e>=S.tablet?`tablet`:`mobile`}const[w,T]=s(C(window.innerWidth));let E=w();window.addEventListener(`resize`,()=>{let e=C(window.innerWidth);e!==E&&(E=e,T(()=>e))});function ae(){return w}function oe(e,t){if(t){let n=e=>{t(e.detail)};window.addEventListener(e,n),a(()=>{window.removeEventListener(e,n)})}return function(t){window.dispatchEvent(new CustomEvent(e,{detail:t}))}}function se(e,t){let n=t;try{let t=localStorage.getItem(e);t!==null&&(n=JSON.parse(t))}catch(t){console.error(`[useLocalStorage] Failed to read key "${e}"`,t)}let[r,i]=s(n);function a(t){i(n=>{let r;try{r=t(n)}catch(t){return console.error(`[useLocalStorage] Updater failed for key "${e}"`,t),n}try{localStorage.setItem(e,JSON.stringify(r))}catch(t){console.error(`[useLocalStorage] Failed to write key "${e}"`,t)}return r})}function o(){try{localStorage.removeItem(e)}catch(t){console.error(`[useLocalStorage] Failed to remove key "${e}"`,t)}i(()=>t)}return[r,a,o]}const[ce,le]=s(`en-US`);function ue(){return{locale:ce,setLocale(e){le(()=>e)}}}function de(e){return e.includes(`://`)}function D(){window.dispatchEvent(new PopStateEvent(`popstate`)),window.dispatchEvent(new HashChangeEvent(`hashchange`))}function O(){return{navigate:e=>{let t=window.location.pathname+window.location.search+window.location.hash,n=typeof e==`function`?e(t):e;if(de(n)){window.location.href=n;return}window.history.pushState(null,``,n),D()}}}function k(e,t){let n=t;try{let t=sessionStorage.getItem(e);t!==null&&(n=JSON.parse(t))}catch(t){console.error(`[useSessionStorage] Failed to read key "${e}"`,t)}let[r,i]=s(n);function a(t){i(n=>{let r;try{r=t(n)}catch(t){return console.error(`[useSessionStorage] Updater failed for key "${e}"`,t),n}try{sessionStorage.setItem(e,JSON.stringify(r))}catch(t){console.error(`[useSessionStorage] Failed to write key "${e}"`,t)}return r})}function o(){try{sessionStorage.removeItem(e)}catch(t){console.error(`[useSessionStorage] Failed to remove key "${e}"`,t)}i(()=>t)}return[r,a,o]}function A(e,t){return function(n,r){let i=()=>j(n,e(),t,r),[a,o]=s(i());if(u(e,()=>{o(()=>i())}),r)for(let e of Object.values(r))typeof e==`function`&&e.type===`signal`&&u(e,()=>{o(()=>i())});return a}}function j(e,t,n,r){let i=n[e];return i&&i[t]?M(i[t],r):M(e,r)}function M(e,t){if(!t)return e;let n=e;for(let[e,r]of Object.entries(t)){let t=typeof r==`function`?r():r;n=n.split(`{${e}}`).join(String(t))}return n}function N(){return window.location.hash||``}const[P,F]=s(N());function I(){F(()=>N())}window.addEventListener(`hashchange`,I),window.addEventListener(`popstate`,I);function L(e){let t=typeof e==`function`?e(P()):e,n=t===``?``:t.startsWith(`#`)?t:`#${t}`;if(n!==window.location.hash){let e=window.location.pathname+window.location.search+n;window.history.pushState(null,``,e),I()}}function R(){return[P,L]}function z(){return new URLSearchParams(window.location.search)}const[B,V]=s(z());window.addEventListener(`popstate`,()=>{V(()=>z())});function H(e){return B().get(e)??``}function U(e,t){let n=z(),r=n.get(e)??``,i=typeof t==`function`?t(r):t;i===``?n.delete(e):n.set(e,i);let a=window.location.pathname+(n.toString()?`?${n}`:``)+window.location.hash;window.history.pushState(null,``,a),V(()=>new URLSearchParams(n))}function fe(e){let[t,n]=s(H(e));return window.addEventListener(`popstate`,()=>{n(()=>H(e))}),[t,t=>{U(e,t),n(()=>H(e))}]}function W(){return window.location.pathname||`/`}const[G,K]=s(W());window.addEventListener(`popstate`,()=>{K(()=>W())});function pe(e){let t=window.location,n=typeof e==`function`?e(G()):e,r=n.startsWith(`/`)?n:`/${n}`;if(r!==t.pathname){let e=r+t.search+t.hash;window.history.pushState(null,``,e),K(()=>W())}}function q(){return[G,pe]}function J(e,t){return _(`div`,{...e,style:{marginBottom:e.mb??e.my??e.m,marginLeft:e.ml??e.mx??e.m,marginRight:e.mr??e.mx??e.m,marginTop:e.mt??e.my??e.m,paddingBottom:e.pb??e.py??e.p,paddingLeft:e.pl??e.px??e.p,paddingRight:e.pr??e.px??e.p,paddingTop:e.pt??e.py??e.p,background:e.bg,opacity:e.o,boxShadow:e.sh,borderTop:e.bt??e.by??e.b,borderRight:e.br??e.bx??e.b,borderBottom:e.bb??e.by??e.b,borderLeft:e.bl??e.bx??e.b,borderTopRightRadius:e.rtr??e.rt??e.rr??e.r,borderTopLeftRadius:e.rtl??e.rt??e.rl??e.r,borderBottomRightRadius:e.rbr??e.rb??e.rr??e.r,borderBottomLeftRadius:e.rbl??e.rb??e.rl??e.r,width:e.w??e.s,height:e.h??e.s,maxWidth:e.maxW,maxHeight:e.maxH,minWidth:e.minW,minHeight:e.minH,...e.style}},t)}function Y(e,t){return _(J,{...e,style:{position:`absolute`,top:e.top,right:e.right,bottom:e.bottom,left:e.left,...e.style}},t)}function X(e,t){return _(J,{...e,style:{flex:e.flx,alignSelf:e.as,flexGrow:e.flxGrow,flexShrink:e.flxShrink,flexBasis:e.flxBasis,...e.style}},t)}function Z(e,t){return _(X,{...e,style:{display:`flex`,justifyContent:e.jc,alignItems:e.ai,alignContent:e.ac,gap:e.g,flexDirection:e.flxDirection,flexWrap:e.flxWrap,flexFlow:e.flxFlow,...e.style}},t)}function me(e,t){return _(Z,{...e,ai:e.ai??`center`,jc:e.jc??`center`},t)}function he(e,t){return _(J,{...e,style:{position:`fixed`,top:e.top,right:e.right,bottom:e.bottom,left:e.left,zIndex:e.zIndex,...e.style}},t)}function Q(e,t){return _(J,{...e,style:{gridArea:e.grdArea,gridColumn:e.grdColumn,gridRow:e.grdRow,...e.style}},t)}function ge(e,t){return _(Q,{...e,style:{display:`grid`,gap:e.g,alignItems:e.ai,justifyItems:e.ji,alignSelf:e.as,gridTemplateColumns:e.grdTemplateColumns,gridTemplateRows:e.grdTemplateRows,gridTemplateAreas:e.grdTemplateAreas,gridTemplate:e.grdTemplate,gridAutoColumns:e.grdAutoColumns,gridAutoRows:e.grdAutoRows,gridAutoFlow:e.grdAutoFlow,gridArea:e.grd,gridRowStart:e.grdRowStart,gridColumnStart:e.grdColumnStart,gridRowEnd:e.grdRowEnd,gridColumnEnd:e.grdColumnEnd,gridRow:e.grdRow,gridColumn:e.grdColumn,rowGap:e.grdRowGap,columnGap:e.grdColumnGap,...e.style}},t)}function $(e,t){return _(J,{...e,style:{position:`relative`,zIndex:e.zIndex,...e.style}},t)}function _e(e,t){return _($,{s:`100%`},_(Y,{top:`0`,right:`0`,bottom:`0`,left:`0`,...e,style:{overflow:`auto`,...e.style}},t))}function ve(e,t){return _(Z,{...e,flxDirection:e.flxDirection??`column`},t)}function ye(e,t){return _(J,{...e,style:{position:`sticky`,top:e.top,right:e.right,bottom:e.bottom,left:e.left,zIndex:e.zIndex,...e.style}},t)}function be(e,t){return _(e.tag??`p`,{...e,style:{textAlign:e.a,fontFamily:e.ff,fontWeight:e.fw,fontSize:e.fs,lineHeight:e.lh,letterSpacing:e.ls,fontStyle:e.s,color:e.c,margin:e.m,marginBottom:e.mb??e.my??e.m,marginLeft:e.ml??e.mx??e.m,marginRight:e.mr??e.mx??e.m,marginTop:e.mt??e.my??e.m,padding:e.p,paddingBottom:e.pb??e.py??e.p,paddingLeft:e.pl??e.px??e.p,paddingRight:e.pr??e.px??e.p,paddingTop:e.pt??e.py??e.p,background:e.bg}},...t)}const xe={brand:`#000`,onBrand:`#fff`,gray0:`#f8f9fa`,gray100:`#f1f3f5`,gray200:`#e9ecef`,gray300:`#dee2e6`,gray400:`#ced4da`,gray500:`#adb5bd`,gray600:`#868e96`,gray700:`#495057`,gray800:`#343a40`,gray900:`#212529`,red0:`#fff5f5`,red100:`#ffe3e3`,red200:`#ffc9c9`,red300:`#ffa8a8`,red400:`#ff8787`,red500:`#ff6b6b`,red600:`#fa5252`,red700:`#f03e3e`,red800:`#e03131`,red900:`#c92a2a`,pink0:`#fff0f6`,pink100:`#ffdeeb`,pink200:`#fcc2d7`,pink300:`#faa2c1`,pink400:`#f783ac`,pink500:`#f06595`,pink600:`#e64980`,pink700:`#d6336c`,pink800:`#c2255c`,pink900:`#a61e4d`,grape0:`#f8f0fc`,grape100:`#f3d9fa`,grape200:`#eebefa`,grape300:`#e599f7`,grape400:`#da77f2`,grape500:`#cc5de8`,grape600:`#be4bdb`,grape700:`#ae3ec9`,grape800:`#9c36b5`,grape900:`#862e9c`,violet0:`#f3f0ff`,violet100:`#e5dbff`,violet200:`#d0bfff`,violet300:`#b197fc`,violet400:`#9775fa`,violet500:`#845ef7`,violet600:`#7950f2`,violet700:`#7048e8`,violet800:`#6741d9`,violet900:`#5f3dc4`,indigo0:`#edf2ff`,indigo100:`#dbe4ff`,indigo200:`#bac8ff`,indigo300:`#91a7ff`,indigo400:`#748ffc`,indigo500:`#5c7cfa`,indigo600:`#4c6ef5`,indigo700:`#4263eb`,indigo800:`#3b5bdb`,indigo900:`#364fc7`,blue0:`#e7f5ff`,blue100:`#d0ebff`,blue200:`#a5d8ff`,blue300:`#74c0fc`,blue400:`#4dabf7`,blue500:`#339af0`,blue600:`#228be6`,blue700:`#1c7ed6`,blue800:`#1971c2`,blue900:`#1864ab`,cyan0:`#e3fafc`,cyan100:`#c5f6fa`,cyan200:`#99e9f2`,cyan300:`#66d9e8`,cyan400:`#3bc9db`,cyan500:`#22b8cf`,cyan600:`#15aabf`,cyan700:`#1098ad`,cyan800:`#0c8599`,cyan900:`#0b7285`,teal0:`#e6fcf5`,teal100:`#c3fae8`,teal200:`#96f2d7`,teal300:`#63e6be`,teal400:`#38d9a9`,teal500:`#20c997`,teal600:`#12b886`,teal700:`#0ca678`,teal800:`#099268`,teal900:`#087f5b`,green0:`#ebfbee`,green100:`#d3f9d8`,green200:`#b2f2bb`,green300:`#8ce99a`,green400:`#69db7c`,green500:`#51cf66`,green600:`#40c057`,green700:`#37b24d`,green800:`#2f9e44`,green900:`#2b8a3e`,lime0:`#f4fce3`,lime100:`#e9fac8`,lime200:`#d8f5a2`,lime300:`#c0eb75`,lime400:`#a9e34b`,lime500:`#94d82d`,lime600:`#82c91e`,lime700:`#74b816`,lime800:`#66a80f`,lime900:`#5c940d`,yellow0:`#fff9db`,yellow100:`#fff3bf`,yellow200:`#ffec99`,yellow300:`#ffe066`,yellow400:`#ffd43b`,yellow500:`#fcc419`,yellow600:`#fab005`,yellow700:`#f59f00`,yellow800:`#f08c00`,yellow900:`#e67700`,orange0:`#fff4e6`,orange100:`#ffe8cc`,orange200:`#ffd8a8`,orange300:`#ffc078`,orange400:`#ffa94d`,orange500:`#ff922b`,orange600:`#fd7e14`,orange700:`#f76707`,orange800:`#e8590c`,orange900:`#d9480f`},Se={sans:`sans-serif`,serif:`serif`,mono:`monospace`},Ce={xs:`-0.05em`,sm:`-0.025em`,md:`0em`,lg:`0.025em`,xl:`0.05em`,"2xl":`0.1em`,"3xl":`0.15em`,"4xl":`0.2em`,"5xl":`0.25em`,"6xl":`0.3em`,"7xl":`0.35em`,"8xl":`0.4em`,"9xl":`0.45em`},we={xs:`1rem`,sm:`1.25rem`,md:`1.5rem`,lg:`1.75rem`,xl:`2rem`,"2xl":`2.25rem`,"3xl":`2.5rem`,"4xl":`2.75rem`,"5xl":`3rem`,"6xl":`3.25rem`,"7xl":`3.5rem`,"8xl":`3.75rem`,"9xl":`4rem`},Te={xs:`0.75rem`,sm:`0.875rem`,md:`1rem`,lg:`1.125rem`,xl:`1.25rem`,"2xl":`1.5rem`,"3xl":`1.875rem`,"4xl":`2.25rem`,"5xl":`3rem`,"6xl":`3.75rem`,"7xl":`4.5rem`,"8xl":`6rem`,"9xl":`8rem`},Ee={normal:`normal`,italic:`italic`},De={thin:100,extralight:200,light:300,normal:400,medium:500,semibold:600,bold:700,extrabold:800,black:900},Oe={family:Se,size:Te,weight:De,style:Ee,lineHeight:we,letterSpacing:Ce},ke={sm:`0.125rem`,md:`0.375rem`,lg:`0.5rem`,xl:`0.75rem`,"2xl":`1rem`,"3xl":`1.5rem`,full:`9999px`},Ae={sm:`0 1px 2px 0 rgb(0 0 0 / 0.05)`,md:`0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`,lg:`0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)`,xl:`0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)`,"2xl":`0 25px 50px -12px rgb(0 0 0 / 0.25)`,inner:`inset 0 2px 4px 0 rgb(0 0 0 / 0.05)`},je={xs:`0.75rem`,sm:`0.875rem`,md:`1rem`,lg:`1.125rem`,xl:`1.25rem`,"2xl":`1.5rem`,"3xl":`1.875rem`,"4xl":`2.25rem`,"5xl":`3rem`,"6xl":`3.75rem`,"7xl":`4.5rem`,"8xl":`6rem`,"9xl":`8rem`,"1/12":`8.333333%`,"2/12":`16.666667%`,"3/12":`25%`,"4/12":`33.333333%`,"5/12":`41.666667%`,"6/12":`50%`,"7/12":`58.333333%`,"8/12":`66.666667%`,"9/12":`75%`,"10/12":`83.333333%`,"11/12":`91.666667%`,"1/5":`20%`,"2/5":`40%`,"3/5":`60%`,"4/5":`80%`,"1/4":`25%`,"3/4":`75%`,"1/3":`33.333333%`,"2/3":`66.666667%`,"1/2":`50%`,full:`100%`},Me={xs:`0.125rem`,sm:`0.25rem`,md:`0.5rem`,lg:`0.75rem`,xl:`1rem`,xxl:`1.5rem`,"3xl":`2rem`,"4xl":`2.5rem`,"5xl":`3rem`,"6xl":`3.5rem`,"7xl":`4rem`,"8xl":`4.5rem`},Ne={normal:`normal`,italic:`italic`},Pe={base:`100`,background:`200`,menu:`300`};exports.Absolute=Y,exports.Box=J,exports.Center=me,exports.Fixed=he,exports.Flex=Z,exports.FlexItem=X,exports.For=y,exports.Grid=ge,exports.GridItem=Q,exports.Portal=ie,exports.Relative=$,exports.Repeat=x,exports.Scroll=_e,exports.Show=b,exports.Stack=ve,exports.Sticky=ye,exports.Text=be,exports.beginMountSession=n,exports.breakpoint=S,exports.color=xe,exports.connector=l,exports.effect=u,exports.endMountSession=r,exports.font=Oe,exports.fragment=re,exports.hasActiveMountSession=t,exports.jsx=_,exports.mount=i,exports.radius=ke,exports.render=d,exports.runUnmountsForElement=o,exports.shadow=Ae,exports.signal=s,exports.size=je,exports.space=Me,exports.style=Ne,exports.unmount=a,exports.useBreakpoint=ae,exports.useCustomEvent=oe,exports.useLocalStorage=se,exports.useLocale=ue,exports.useNavigate=O,exports.useSessionStorage=k,exports.useText=A,exports.useUrlHash=R,exports.useUrlParam=fe,exports.useUrlPath=q,exports.zIndex=Pe;
|
package/dist/index.d.cts
CHANGED
|
@@ -104,6 +104,9 @@ interface RepeatPropsInterface {
|
|
|
104
104
|
}
|
|
105
105
|
declare function Repeat(p: RepeatPropsInterface, children: any[]): any;
|
|
106
106
|
//#endregion
|
|
107
|
+
//#region helper/portal.d.ts
|
|
108
|
+
declare function Portal(_: any, children: any): void;
|
|
109
|
+
//#endregion
|
|
107
110
|
//#region style/breakpoint.d.ts
|
|
108
111
|
declare const breakpoint: {
|
|
109
112
|
mobile: number;
|
|
@@ -538,6 +541,40 @@ interface StickyPropertiesInterface extends BoxProps {
|
|
|
538
541
|
}
|
|
539
542
|
declare function Sticky(p: StickyPropertiesInterface, children: any[]): any;
|
|
540
543
|
//#endregion
|
|
544
|
+
//#region dist/index.d.mts
|
|
545
|
+
type ReadFn$1<T> = ((cb?: (value: T) => void) => T) & {
|
|
546
|
+
type: "signal";
|
|
547
|
+
};
|
|
548
|
+
//#endregion
|
|
549
|
+
//#region core/jsx.d.ts
|
|
550
|
+
type JsxNode$1 = VElement$1 | VText$1 | VSignal$1;
|
|
551
|
+
declare global {
|
|
552
|
+
namespace JSX {
|
|
553
|
+
type Element = any;
|
|
554
|
+
interface IntrinsicElements {
|
|
555
|
+
[key: string]: any;
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
interface VElement$1 {
|
|
560
|
+
kind: "element";
|
|
561
|
+
tag: string | ComponentFn$1;
|
|
562
|
+
props: Record<string, any>;
|
|
563
|
+
children: JsxNode$1[];
|
|
564
|
+
}
|
|
565
|
+
interface VText$1 {
|
|
566
|
+
kind: "text";
|
|
567
|
+
value: string;
|
|
568
|
+
}
|
|
569
|
+
interface VSignal$1 {
|
|
570
|
+
kind: "signal";
|
|
571
|
+
read: ReadFn$1<any>;
|
|
572
|
+
}
|
|
573
|
+
interface PropsInterface$1 {
|
|
574
|
+
ctx?: any;
|
|
575
|
+
}
|
|
576
|
+
type ComponentFn$1 = (props: PropsInterface$1, children: JsxNode$1[]) => JsxNode$1 | null;
|
|
577
|
+
//#endregion
|
|
541
578
|
//#region layout/text.d.ts
|
|
542
579
|
/**
|
|
543
580
|
* Text component
|
|
@@ -584,7 +621,7 @@ interface TextPropertiesInterface extends DOMAttrs, DOMEvents {
|
|
|
584
621
|
/** Background */
|
|
585
622
|
bg?: string;
|
|
586
623
|
}
|
|
587
|
-
declare function Text(p: TextPropertiesInterface, children: any[]):
|
|
624
|
+
declare function Text(p: TextPropertiesInterface, children: any[]): VElement$1;
|
|
588
625
|
//#endregion
|
|
589
626
|
//#region style/color.d.ts
|
|
590
627
|
declare const color: {
|
|
@@ -879,4 +916,4 @@ declare const zIndex: {
|
|
|
879
916
|
menu: string;
|
|
880
917
|
};
|
|
881
918
|
//#endregion
|
|
882
|
-
export { Absolute, AbsolutePropertiesInterface, Box, BoxProps, BreakpointName, Center, CenterPropertiesInterface, ComponentFn, ConnectorInterface, Data, Fixed, FixedPropertiesInterface, Flex, FlexItem, FlexItemPropertiesInterface, FlexPropertiesInterface, For, Grid, GridItem, GridItemPropertiesInterface, GridPropertiesInterface, JsxNode, LocalStorageHook, LocaleController, MountCallback, PropsInterface, ReadFn, Relative, RelativePropertiesInterface, RenderCtx, RenderResult, Repeat, Scroll, ScrollPropertiesInterface, SessionStorageHook, Show, Stack, StackPropertiesInterface, Sticky, StickyPropertiesInterface, Text, TextPropertiesInterface, Translations, UnmountCallback, VElement, VSignal, VText, beginMountSession, breakpoint, color, connector, effect, endMountSession, font, fragment, hasActiveMountSession, jsx, mount, radius, render, runUnmountsForElement, shadow, signal, size, space, style, unmount, useBreakpoint, useCustomEvent, useLocalStorage, useLocale, useNavigate, useSessionStorage, useText, useUrlHash, useUrlParam, useUrlPath, zIndex };
|
|
919
|
+
export { Absolute, AbsolutePropertiesInterface, Box, BoxProps, BreakpointName, Center, CenterPropertiesInterface, ComponentFn, ConnectorInterface, Data, Fixed, FixedPropertiesInterface, Flex, FlexItem, FlexItemPropertiesInterface, FlexPropertiesInterface, For, Grid, GridItem, GridItemPropertiesInterface, GridPropertiesInterface, JsxNode, LocalStorageHook, LocaleController, MountCallback, Portal, PropsInterface, ReadFn, Relative, RelativePropertiesInterface, RenderCtx, RenderResult, Repeat, Scroll, ScrollPropertiesInterface, SessionStorageHook, Show, Stack, StackPropertiesInterface, Sticky, StickyPropertiesInterface, Text, TextPropertiesInterface, Translations, UnmountCallback, VElement, VSignal, VText, beginMountSession, breakpoint, color, connector, effect, endMountSession, font, fragment, hasActiveMountSession, jsx, mount, radius, render, runUnmountsForElement, shadow, signal, size, space, style, unmount, useBreakpoint, useCustomEvent, useLocalStorage, useLocale, useNavigate, useSessionStorage, useText, useUrlHash, useUrlParam, useUrlPath, zIndex };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,42 +1,41 @@
|
|
|
1
|
-
//#endregion
|
|
2
1
|
//#region core/signal.d.ts
|
|
3
2
|
type UUID = string;
|
|
4
|
-
type ReadFn<T
|
|
3
|
+
type ReadFn<T> = ((cb?: (value: T) => void) => T) & {
|
|
5
4
|
type: "signal";
|
|
6
5
|
};
|
|
7
|
-
declare function signal<T
|
|
6
|
+
declare function signal<T>(initialValue: T): readonly [ReadFn<T>, (fn: (prev: T) => T | Promise<T>) => Promise<void>];
|
|
8
7
|
interface ConnectorInterface {
|
|
9
8
|
addTopic(uuid: UUID): void;
|
|
10
9
|
removeTopic(uuid: UUID): void;
|
|
11
|
-
registerClbk<T
|
|
12
|
-
removeClbk<T
|
|
13
|
-
update<T
|
|
14
|
-
getUuidByClbk<T
|
|
10
|
+
registerClbk<T>(uuid: UUID, cb: (value: T) => void): void;
|
|
11
|
+
removeClbk<T>(uuid: UUID, cb: (value: T) => void): void;
|
|
12
|
+
update<T>(uuid: UUID, value: T): void;
|
|
13
|
+
getUuidByClbk<T>(cb: (value: T) => void): UUID;
|
|
15
14
|
}
|
|
16
15
|
declare class Connector implements ConnectorInterface {
|
|
17
16
|
private topics;
|
|
18
17
|
private callbackMap;
|
|
19
18
|
addTopic(uuid: UUID): void;
|
|
20
19
|
removeTopic(uuid: UUID): void;
|
|
21
|
-
registerClbk<T
|
|
22
|
-
removeClbk<T
|
|
23
|
-
update<T
|
|
24
|
-
getUuidByClbk<T
|
|
20
|
+
registerClbk<T>(uuid: UUID, cb: (value: T) => void): void;
|
|
21
|
+
removeClbk<T>(uuid: UUID, cb: (value: T) => void): void;
|
|
22
|
+
update<T>(uuid: UUID, value: T): void;
|
|
23
|
+
getUuidByClbk<T>(cb: (value: T) => void): UUID;
|
|
25
24
|
}
|
|
26
25
|
declare const connector: Connector;
|
|
27
26
|
//#endregion
|
|
28
27
|
//#region core/effect.d.ts
|
|
29
|
-
declare function effect<T
|
|
28
|
+
declare function effect<T>(readFn: ReadFn<T>, fn: (value: T) => void | Promise<void>): void;
|
|
30
29
|
//#endregion
|
|
31
30
|
//#region core/for.d.ts
|
|
32
31
|
type Uuid = string;
|
|
33
32
|
interface Keyed {
|
|
34
33
|
uuid: Uuid;
|
|
35
34
|
}
|
|
36
|
-
interface ForProps<T
|
|
37
|
-
each: ReadFn<T
|
|
35
|
+
interface ForProps<T extends Keyed> {
|
|
36
|
+
each: ReadFn<T[]>;
|
|
38
37
|
}
|
|
39
|
-
declare function For<T
|
|
38
|
+
declare function For<T extends Keyed>(p: ForProps<T>, [child]: any): null;
|
|
40
39
|
//#endregion
|
|
41
40
|
//#region core/fragment.d.ts
|
|
42
41
|
declare function fragment(p: null, ...childs: any): any;
|
|
@@ -99,12 +98,15 @@ interface ShowPropsInterface {
|
|
|
99
98
|
declare function Show(p: ShowPropsInterface, children: any): null;
|
|
100
99
|
//#endregion
|
|
101
100
|
//#region helper/repeat.d.ts
|
|
102
|
-
type MaybeSignal$1<T
|
|
101
|
+
type MaybeSignal$1<T> = T | ReadFn<T>;
|
|
103
102
|
interface RepeatPropsInterface {
|
|
104
103
|
n: MaybeSignal$1<number>;
|
|
105
104
|
}
|
|
106
105
|
declare function Repeat(p: RepeatPropsInterface, children: any[]): any;
|
|
107
106
|
//#endregion
|
|
107
|
+
//#region helper/portal.d.ts
|
|
108
|
+
declare function Portal(_: any, children: any): void;
|
|
109
|
+
//#endregion
|
|
108
110
|
//#region style/breakpoint.d.ts
|
|
109
111
|
declare const breakpoint: {
|
|
110
112
|
mobile: number;
|
|
@@ -119,17 +121,17 @@ type BreakpointName = keyof typeof breakpoint;
|
|
|
119
121
|
declare function useBreakpoint(): ReadFn<BreakpointName>;
|
|
120
122
|
//#endregion
|
|
121
123
|
//#region hooks/use-custom-event.d.ts
|
|
122
|
-
type Handler<T
|
|
124
|
+
type Handler<T> = (data: T) => void;
|
|
123
125
|
/**
|
|
124
126
|
* Creates a custom browser event emitter.
|
|
125
127
|
* If a handler is provided, it is automatically
|
|
126
128
|
* cleaned up on component unmount.
|
|
127
129
|
*/
|
|
128
|
-
declare function useCustomEvent<T
|
|
130
|
+
declare function useCustomEvent<T = any>(topic: string, handler?: Handler<T>): (data: T) => void;
|
|
129
131
|
//#endregion
|
|
130
132
|
//#region hooks/use-local-storage.d.ts
|
|
131
|
-
type LocalStorageHook<T
|
|
132
|
-
declare function useLocalStorage<T
|
|
133
|
+
type LocalStorageHook<T> = [value: ReadFn<T>, setValue: (updater: (prev: T) => T) => void, remove: () => void];
|
|
134
|
+
declare function useLocalStorage<T>(key: string, initial: T): LocalStorageHook<T>;
|
|
133
135
|
//#endregion
|
|
134
136
|
//#region hooks/use-locale.d.ts
|
|
135
137
|
interface LocaleController {
|
|
@@ -144,8 +146,8 @@ declare function useNavigate(): {
|
|
|
144
146
|
};
|
|
145
147
|
//#endregion
|
|
146
148
|
//#region hooks/use-session-storage.d.ts
|
|
147
|
-
type SessionStorageHook<T
|
|
148
|
-
declare function useSessionStorage<T
|
|
149
|
+
type SessionStorageHook<T> = [value: ReadFn<T>, setValue: (updater: (prev: T) => T) => void, remove: () => void];
|
|
150
|
+
declare function useSessionStorage<T>(key: string, initial: T): SessionStorageHook<T>;
|
|
149
151
|
//#endregion
|
|
150
152
|
//#region hooks/use-text.d.ts
|
|
151
153
|
type Translations = {
|
|
@@ -163,20 +165,20 @@ type Data = {
|
|
|
163
165
|
declare function useText(locale: ReadFn<string>, text: Translations): (key: string, data?: Data) => ReadFn<string>;
|
|
164
166
|
//#endregion
|
|
165
167
|
//#region hooks/use-url-hash.d.ts
|
|
166
|
-
type WriteFn$2<T
|
|
168
|
+
type WriteFn$2<T> = (value: T | ((prev: T) => T)) => void;
|
|
167
169
|
declare function useUrlHash(): [ReadFn<string>, WriteFn$2<string>];
|
|
168
170
|
//#endregion
|
|
169
171
|
//#region hooks/use-url-param.d.ts
|
|
170
|
-
type WriteFn$1<T
|
|
172
|
+
type WriteFn$1<T> = (value: T | ((prev: T) => T)) => void;
|
|
171
173
|
declare function useUrlParam(key: string): [ReadFn<string>, WriteFn$1<string>];
|
|
172
174
|
//#endregion
|
|
173
175
|
//#region hooks/use-url-path.d.ts
|
|
174
|
-
type WriteFn<T
|
|
176
|
+
type WriteFn<T> = (value: T | ((prev: T) => T)) => void;
|
|
175
177
|
declare function useUrlPath(): [ReadFn<string>, WriteFn<string>];
|
|
176
178
|
//#endregion
|
|
177
179
|
//#region core/dom.d.ts
|
|
178
180
|
type CSSValue = string | number;
|
|
179
|
-
type MaybeSignal<T
|
|
181
|
+
type MaybeSignal<T> = T | ReadFn<T>;
|
|
180
182
|
interface DOMEvents {
|
|
181
183
|
onClick?: (e: MouseEvent) => void;
|
|
182
184
|
onDblClick?: (e: MouseEvent) => void;
|
|
@@ -538,6 +540,8 @@ interface StickyPropertiesInterface extends BoxProps {
|
|
|
538
540
|
zIndex?: string;
|
|
539
541
|
}
|
|
540
542
|
declare function Sticky(p: StickyPropertiesInterface, children: any[]): any;
|
|
543
|
+
//#endregion
|
|
544
|
+
//#region layout/text.d.ts
|
|
541
545
|
/**
|
|
542
546
|
* Text component
|
|
543
547
|
* Typographic primitive for rendering text elements
|
|
@@ -583,7 +587,7 @@ interface TextPropertiesInterface extends DOMAttrs, DOMEvents {
|
|
|
583
587
|
/** Background */
|
|
584
588
|
bg?: string;
|
|
585
589
|
}
|
|
586
|
-
declare function Text(p: TextPropertiesInterface, children: any[]):
|
|
590
|
+
declare function Text(p: TextPropertiesInterface, children: any[]): VElement;
|
|
587
591
|
//#endregion
|
|
588
592
|
//#region style/color.d.ts
|
|
589
593
|
declare const color: {
|
|
@@ -878,5 +882,5 @@ declare const zIndex: {
|
|
|
878
882
|
menu: string;
|
|
879
883
|
};
|
|
880
884
|
//#endregion
|
|
881
|
-
export { Absolute, AbsolutePropertiesInterface, Box, BoxProps, BreakpointName, Center, CenterPropertiesInterface, ComponentFn, ConnectorInterface, Data, Fixed, FixedPropertiesInterface, Flex, FlexItem, FlexItemPropertiesInterface, FlexPropertiesInterface, For, Grid, GridItem, GridItemPropertiesInterface, GridPropertiesInterface, JsxNode, LocalStorageHook, LocaleController, MountCallback, PropsInterface, ReadFn, Relative, RelativePropertiesInterface, RenderCtx, RenderResult, Repeat, Scroll, ScrollPropertiesInterface, SessionStorageHook, Show, Stack, StackPropertiesInterface, Sticky, StickyPropertiesInterface, Text, TextPropertiesInterface, Translations, UnmountCallback, VElement, VSignal, VText, beginMountSession, breakpoint, color, connector, effect, endMountSession, font, fragment, hasActiveMountSession, jsx, mount, radius, render, runUnmountsForElement, shadow, signal, size, space, style, unmount, useBreakpoint, useCustomEvent, useLocalStorage, useLocale, useNavigate, useSessionStorage, useText, useUrlHash, useUrlParam, useUrlPath, zIndex };
|
|
885
|
+
export { Absolute, AbsolutePropertiesInterface, Box, BoxProps, BreakpointName, Center, CenterPropertiesInterface, ComponentFn, ConnectorInterface, Data, Fixed, FixedPropertiesInterface, Flex, FlexItem, FlexItemPropertiesInterface, FlexPropertiesInterface, For, Grid, GridItem, GridItemPropertiesInterface, GridPropertiesInterface, JsxNode, LocalStorageHook, LocaleController, MountCallback, Portal, PropsInterface, ReadFn, Relative, RelativePropertiesInterface, RenderCtx, RenderResult, Repeat, Scroll, ScrollPropertiesInterface, SessionStorageHook, Show, Stack, StackPropertiesInterface, Sticky, StickyPropertiesInterface, Text, TextPropertiesInterface, Translations, UnmountCallback, VElement, VSignal, VText, beginMountSession, breakpoint, color, connector, effect, endMountSession, font, fragment, hasActiveMountSession, jsx, mount, radius, render, runUnmountsForElement, shadow, signal, size, space, style, unmount, useBreakpoint, useCustomEvent, useLocalStorage, useLocale, useNavigate, useSessionStorage, useText, useUrlHash, useUrlParam, useUrlPath, zIndex };
|
|
882
886
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":["n","e","t","r","i","a","o","s","c"],"sources":["../core/signal.ts","../core/effect.ts","../core/for.ts","../core/fragment.ts","../core/jsx.ts","../core/lifecycle.ts","../core/render.ts","../core/show.ts","../helper/repeat.tsx","../style/breakpoint.ts","../hooks/use-breakpoint.ts","../hooks/use-custom-event.ts","../hooks/use-local-storage.ts","../hooks/use-locale.ts","../hooks/use-navigate.ts","../hooks/use-session-storage.ts","../hooks/use-text.ts","../hooks/use-url-hash.ts","../hooks/use-url-param.ts","../hooks/use-url-path.ts","../core/dom.ts","../layout/box.tsx","../layout/absolute.tsx","../layout/flex-item.tsx","../layout/flex.tsx","../layout/center.tsx","../layout/fixed.tsx","../layout/grid-item.tsx","../layout/grid.tsx","../layout/relative.tsx","../layout/scroll.tsx","../layout/stack.tsx","../layout/sticky.tsx","index.cjs","../layout/text.tsx","../style/color.ts","../style/font.ts","../style/radius.ts","../style/shadow.ts","../style/size.ts","../style/space.ts","../style/style.ts","../style/z-index.ts"],"sourcesContent":["const e=[];function t(){return e.length>0}function n(){e.push({mounts:[],unmounts:[]})}function r(t){let n=e.pop();if(!n)throw Error(`endMountSession called without active mount session`);for(let e of n.mounts)try{let n=e(t);n instanceof Promise&&n.catch(e=>console.error(`async mount callback failed`,e))}catch(e){console.error(`mount callback failed`,e)}if(n.unmounts.length>0){let e=t.__unmountCbs;e?e.push(...n.unmounts):t.__unmountCbs=[...n.unmounts]}}function i(t){let n=e[e.length-1];if(!n)throw Error(`mount(cb) called outside of a render session`);n.mounts.push(t)}function a(t){let n=e[e.length-1];if(!n)throw Error(`unmount(cb) called outside of a render session`);n.unmounts.push(t)}function o(e){let t=e.__unmountCbs;if(!(!t||t.length===0)){for(let e=t.length-1;e>=0;e--)try{let n=t[e]();n instanceof Promise&&n.catch(e=>console.error(`async unmount callback failed`,e))}catch(e){console.error(`unmount callback failed`,e)}e.__unmountCbs=void 0}}function s(e){let t=e,n=crypto.randomUUID();l.addTopic(n);let r=e=>(e&&(l.registerClbk(n,e),e(t)),t);return r.type=`signal`,[r,async e=>{let r=e(t);t=r instanceof Promise?await r:r,l.update(n,t)}]}var c=class{topics=new Map;callbackMap=new Map;addTopic(e){this.topics.set(e,new Set)}removeTopic(e){let t=this.topics.get(e);if(t)for(let e of t)this.callbackMap.delete(e);this.topics.delete(e)}registerClbk(e,t){let n=this.topics.get(e);if(!n)throw Error(`Connector: unknown topic ${e}`);let r=this.callbackMap.get(t);if(r){r.refCount++;return}n.add(t),this.callbackMap.set(t,{uuid:e,refCount:1})}removeClbk(e,t){let n=this.callbackMap.get(t);n&&(n.refCount--,!(n.refCount>0)&&(this.topics.get(n.uuid)?.delete(t),this.callbackMap.delete(t)))}update(e,t){let n=this.topics.get(e);if(n)for(let e of n)e(t)}getUuidByClbk(e){let t=this.callbackMap.get(e);if(!t)throw Error(`Connector: no UUID for callback`);return t.uuid}};const l=new c;function u(e,n){let r=!1,i=e=>{if(!r){r=!0;return}try{let t=n(e);t instanceof Promise&&t.catch(e=>{console.error(`effect async callback failed`,e)})}catch(e){console.error(`effect callback failed`,e)}};e(i),t()&&a(()=>{let e=l.getUuidByClbk(i);l.removeClbk(e,i)})}function d(e,t){if(e==null)return{el:t.parent};if(Array.isArray(e)){let n=t.parent;for(let r of e)n=d(r,t).el;return{el:n}}if(e.kind===`text`)return{el:f(e,t)};if(e.kind===`signal`)return{el:p(e,t)};if(typeof e.tag==`function`){let i=e,a=i.tag;n();let o=d(a({...i.props,ctx:t},i.children),t);if(!(o.el instanceof Element))throw Error(`Component root must be a DOM Element`);return r(o.el),t.self=o.el,o}let i=ne(e,t),a={...t,parent:i,self:t.self};for(let t of e.children)d(t,a);return{el:i}}const ee=`http://www.w3.org/2000/svg`,te=new Set([`svg`,`path`,`circle`,`rect`,`line`,`polyline`,`polygon`,`g`,`defs`,`linearGradient`,`radialGradient`,`stop`,`mask`,`clipPath`,`pattern`,`text`,`tspan`,`use`,`symbol`,`view`,`ellipse`,`foreignObject`]);function ne(e,t){if(typeof e.tag!=`string`)throw Error(`Host renderer expects string tag`);let n=e.tag,r=te.has(n),i=r?document.createElementNS(`http://www.w3.org/2000/svg`,n):document.createElement(n),a=e.props??{};for(let[e,t]of Object.entries(a))if(!(e===`ctx`||e===`children`)){if(e.startsWith(`on`)&&typeof t==`function`){let n=e.slice(2).toLowerCase();i.addEventListener(n,t);continue}if(e===`style`&&t&&typeof t==`object`){for(let[e,n]of Object.entries(t))if(n!==void 0)if(typeof n==`function`&&n.type===`signal`){let t=n();i.style[e]=String(t),n(t=>{i.style[e]=String(t)})}else i.style[e]=String(n);continue}if(typeof t==`function`&&t.type===`signal`){let n=t=>{r?i.setAttribute(e,String(t)):i[e]=t};n(t()),m(t,n);continue}r?i.setAttribute(e,String(t)):e in i?i[e]=t:i.setAttribute(e,String(t))}return t.parent.appendChild(i),i}function f(e,t){let n=document.createTextNode(e.value);return t.parent.appendChild(n),n}function p(e,n){let r=document.createTextNode(``);n.parent.appendChild(r);let i=e=>{r.nodeValue=String(e)};return r.nodeValue=String(e.read()),e.read(i),t()&&a(()=>{let e=l.getUuidByClbk(i);l.removeClbk(e,i)}),r}function m(e,n){let r=e=>n(e);e(r),t()&&a(()=>{let e=l.getUuidByClbk(r);l.removeClbk(e,r)})}function h(e){let t=Array.from(e.childNodes);for(let e of t)g(e);o(e),e.parentNode?e.parentNode.removeChild(e):e.remove()}function g(e){if(e instanceof Element){let t=Array.from(e.childNodes);for(let e of t)g(e);o(e),e.parentNode?e.parentNode.removeChild(e):e.remove();return}e.parentNode&&e.parentNode.removeChild(e)}function _(e,t,...n){return{kind:`element`,tag:e,props:t??{},children:n.flatMap(v)}}function v(e){return e==null||e===!1||e===!0?[]:typeof e==`function`&&e?.type===`signal`?{kind:`signal`,read:e}:typeof e==`string`||typeof e==`number`?{kind:`text`,value:String(e)}:Array.isArray(e)?e.flatMap(v):e}function y(e,[t]){let n=_(`csr-for-host`,{style:{display:`contents`}});return i(r=>{let{el:i}=d(n,{parent:r}),a=i,o=new Map,s=[];function c(n){let r=[];for(let i of n){if(!i||i.uuid==null)continue;let n=i.uuid;if(r.push(n),!o.has(n)){let{el:r}=d(t(i),{...e.ctx,parent:a});if(!(r instanceof Element))throw Error(`For: child root must be an Element`);o.set(n,r)}}for(let e of s)if(!r.includes(e)){let t=o.get(e);t&&h(t),o.delete(e)}let i=null;for(let e=r.length-1;e>=0;e--){let t=o.get(r[e]);a.insertBefore(t,i),i=t}s=r}c(e.each()),u(e.each,c)}),null}function b(e,...t){return t}function x(e,t){let n=_(`csr-show-host`,{style:{display:`contents`}}),r=_(`csr-show-content`,{style:{display:`contents`}},...t),a=null,o=null,s=!1;return i(t=>{let{el:i}=d(n,{parent:t});a=i,e.when(t=>{if(t===s)return;if(s=t,!s){o&&=(h(o),null);return}let{el:n}=d(r,{...e.ctx,parent:a});if(!(n instanceof Element))throw Error(`Show: content root must be an Element`);o=n})}),null}function S(e,t){if(typeof e.n==`number`){let n=[];for(let r=0;r<e.n;r++)n.push(t);return n}let n=e.n,[r,i]=s([]);return n(e=>{let t=[];for(let n=0;n<e;n++)t.push({uuid:String(n)});i(()=>t)}),_(y,{each:r},()=>t)}const C={mobile:0,tablet:601,laptop:1025,desktop:1441,large:1921};function w(e){return e>=C.large?`large`:e>=C.desktop?`desktop`:e>=C.laptop?`laptop`:e>=C.tablet?`tablet`:`mobile`}const[T,re]=s(w(window.innerWidth));let E=T();window.addEventListener(`resize`,()=>{let e=w(window.innerWidth);e!==E&&(E=e,re(()=>e))});function ie(){return T}function ae(e,t){if(t){let n=e=>{t(e.detail)};window.addEventListener(e,n),a(()=>{window.removeEventListener(e,n)})}return function(t){window.dispatchEvent(new CustomEvent(e,{detail:t}))}}function oe(e,t){let n=t;try{let t=localStorage.getItem(e);t!==null&&(n=JSON.parse(t))}catch(t){console.error(`[useLocalStorage] Failed to read key \"${e}\"`,t)}let[r,i]=s(n);function a(t){i(n=>{let r;try{r=t(n)}catch(t){return console.error(`[useLocalStorage] Updater failed for key \"${e}\"`,t),n}try{localStorage.setItem(e,JSON.stringify(r))}catch(t){console.error(`[useLocalStorage] Failed to write key \"${e}\"`,t)}return r})}function o(){try{localStorage.removeItem(e)}catch(t){console.error(`[useLocalStorage] Failed to remove key \"${e}\"`,t)}i(()=>t)}return[r,a,o]}const[se,ce]=s(`en-US`);function le(){return{locale:se,setLocale(e){ce(()=>e)}}}function ue(e){return e.includes(`://`)}function de(){window.dispatchEvent(new PopStateEvent(`popstate`)),window.dispatchEvent(new HashChangeEvent(`hashchange`))}function D(){return{navigate:e=>{let t=window.location.pathname+window.location.search+window.location.hash,n=typeof e==`function`?e(t):e;if(ue(n)){window.location.href=n;return}window.history.pushState(null,``,n),de()}}}function O(e,t){let n=t;try{let t=sessionStorage.getItem(e);t!==null&&(n=JSON.parse(t))}catch(t){console.error(`[useSessionStorage] Failed to read key \"${e}\"`,t)}let[r,i]=s(n);function a(t){i(n=>{let r;try{r=t(n)}catch(t){return console.error(`[useSessionStorage] Updater failed for key \"${e}\"`,t),n}try{sessionStorage.setItem(e,JSON.stringify(r))}catch(t){console.error(`[useSessionStorage] Failed to write key \"${e}\"`,t)}return r})}function o(){try{sessionStorage.removeItem(e)}catch(t){console.error(`[useSessionStorage] Failed to remove key \"${e}\"`,t)}i(()=>t)}return[r,a,o]}function k(e,t){return function(n,r){let i=()=>A(n,e(),t,r),[a,o]=s(i());if(u(e,()=>{o(()=>i())}),r)for(let e of Object.values(r))typeof e==`function`&&e.type===`signal`&&u(e,()=>{o(()=>i())});return a}}function A(e,t,n,r){let i=n[e];return i&&i[t]?j(i[t],r):j(e,r)}function j(e,t){if(!t)return e;let n=e;for(let[e,r]of Object.entries(t)){let t=typeof r==`function`?r():r;n=n.split(`{${e}}`).join(String(t))}return n}function M(){return window.location.hash||``}const[N,P]=s(M());function F(){P(()=>M())}window.addEventListener(`hashchange`,F),window.addEventListener(`popstate`,F);function I(e){let t=typeof e==`function`?e(N()):e,n=t===``?``:t.startsWith(`#`)?t:`#${t}`;if(n!==window.location.hash){let e=window.location.pathname+window.location.search+n;window.history.pushState(null,``,e),F()}}function L(){return[N,I]}function R(){return new URLSearchParams(window.location.search)}const[z,B]=s(R());window.addEventListener(`popstate`,()=>{B(()=>R())});function V(e){return z().get(e)??``}function H(e,t){let n=R(),r=n.get(e)??``,i=typeof t==`function`?t(r):t;i===``?n.delete(e):n.set(e,i);let a=window.location.pathname+(n.toString()?`?${n}`:``)+window.location.hash;window.history.pushState(null,``,a),B(()=>new URLSearchParams(n))}function U(e){let[t,n]=s(V(e));return window.addEventListener(`popstate`,()=>{n(()=>V(e))}),[t,t=>{H(e,t),n(()=>V(e))}]}function W(){return window.location.pathname||`/`}const[G,K]=s(W());window.addEventListener(`popstate`,()=>{K(()=>W())});function fe(e){let t=window.location,n=typeof e==`function`?e(G()):e,r=n.startsWith(`/`)?n:`/${n}`;if(r!==t.pathname){let e=r+t.search+t.hash;window.history.pushState(null,``,e),K(()=>W())}}function pe(){return[G,fe]}function q(e,t){return _(`div`,{...e,style:{marginBottom:e.mb??e.my??e.m,marginLeft:e.ml??e.mx??e.m,marginRight:e.mr??e.mx??e.m,marginTop:e.mt??e.my??e.m,paddingBottom:e.pb??e.py??e.p,paddingLeft:e.pl??e.px??e.p,paddingRight:e.pr??e.px??e.p,paddingTop:e.pt??e.py??e.p,background:e.bg,opacity:e.o,boxShadow:e.sh,borderTop:e.bt??e.by??e.b,borderRight:e.br??e.bx??e.b,borderBottom:e.bb??e.by??e.b,borderLeft:e.bl??e.bx??e.b,borderTopRightRadius:e.rtr??e.rt??e.rr??e.r,borderTopLeftRadius:e.rtl??e.rt??e.rl??e.r,borderBottomRightRadius:e.rbr??e.rb??e.rr??e.r,borderBottomLeftRadius:e.rbl??e.rb??e.rl??e.r,width:e.w??e.s,height:e.h??e.s,maxWidth:e.maxW,maxHeight:e.maxH,minWidth:e.minW,minHeight:e.minH,...e.style}},t)}function J(e,t){return _(q,{...e,style:{position:`absolute`,top:e.top,right:e.right,bottom:e.bottom,left:e.left,...e.style}},t)}function Y(e,t){return _(q,{...e,style:{flex:e.flx,alignSelf:e.as,flexGrow:e.flxGrow,flexShrink:e.flxShrink,flexBasis:e.flxBasis,...e.style}},t)}function X(e,t){return _(Y,{...e,style:{display:`flex`,justifyContent:e.jc,alignItems:e.ai,alignContent:e.ac,gap:e.g,flexDirection:e.flxDirection,flexWrap:e.flxWrap,flexFlow:e.flxFlow,...e.style}},t)}function me(e,t){return _(X,{...e,ai:e.ai??`center`,jc:e.jc??`center`},t)}function he(e,t){return _(q,{...e,style:{position:`fixed`,top:e.top,right:e.right,bottom:e.bottom,left:e.left,zIndex:e.zIndex,...e.style}},t)}function Z(e,t){return _(q,{...e,style:{gridArea:e.grdArea,gridColumn:e.grdColumn,gridRow:e.grdRow,...e.style}},t)}function ge(e,t){return _(Z,{...e,style:{display:`grid`,gap:e.g,alignItems:e.ai,justifyItems:e.ji,alignSelf:e.as,gridTemplateColumns:e.grdTemplateColumns,gridTemplateRows:e.grdTemplateRows,gridTemplateAreas:e.grdTemplateAreas,gridTemplate:e.grdTemplate,gridAutoColumns:e.grdAutoColumns,gridAutoRows:e.grdAutoRows,gridAutoFlow:e.grdAutoFlow,gridArea:e.grd,gridRowStart:e.grdRowStart,gridColumnStart:e.grdColumnStart,gridRowEnd:e.grdRowEnd,gridColumnEnd:e.grdColumnEnd,gridRow:e.grdRow,gridColumn:e.grdColumn,rowGap:e.grdRowGap,columnGap:e.grdColumnGap,...e.style}},t)}function Q(e,t){return _(q,{...e,style:{position:`relative`,zIndex:e.zIndex,...e.style}},t)}function _e(e,t){return _(Q,{s:`100%`},_(J,{top:`0`,right:`0`,bottom:`0`,left:`0`,...e,style:{overflow:`auto`,...e.style}},t))}function ve(e,t){return _(X,{...e,flxDirection:e.flxDirection??`column`},t)}function ye(e,t){return _(q,{...e,style:{position:`sticky`,top:e.top,right:e.right,bottom:e.bottom,left:e.left,zIndex:e.zIndex,...e.style}},t)}function be(e,t){return _(e.tag??`p`,{...e,style:{textAlign:e.a,fontFamily:e.ff,fontWeight:e.fw,fontSize:e.fs,lineHeight:e.lh,letterSpacing:e.ls,fontStyle:e.s,color:e.c,margin:e.m,marginBottom:e.mb??e.my??e.m,marginLeft:e.ml??e.mx??e.m,marginRight:e.mr??e.mx??e.m,marginTop:e.mt??e.my??e.m,padding:e.p,paddingBottom:e.pb??e.py??e.p,paddingLeft:e.pl??e.px??e.p,paddingRight:e.pr??e.px??e.p,paddingTop:e.pt??e.py??e.p,background:e.bg}},...t)}const xe={brand:`#000`,onBrand:`#fff`,gray0:`#f8f9fa`,gray100:`#f1f3f5`,gray200:`#e9ecef`,gray300:`#dee2e6`,gray400:`#ced4da`,gray500:`#adb5bd`,gray600:`#868e96`,gray700:`#495057`,gray800:`#343a40`,gray900:`#212529`,red0:`#fff5f5`,red100:`#ffe3e3`,red200:`#ffc9c9`,red300:`#ffa8a8`,red400:`#ff8787`,red500:`#ff6b6b`,red600:`#fa5252`,red700:`#f03e3e`,red800:`#e03131`,red900:`#c92a2a`,pink0:`#fff0f6`,pink100:`#ffdeeb`,pink200:`#fcc2d7`,pink300:`#faa2c1`,pink400:`#f783ac`,pink500:`#f06595`,pink600:`#e64980`,pink700:`#d6336c`,pink800:`#c2255c`,pink900:`#a61e4d`,grape0:`#f8f0fc`,grape100:`#f3d9fa`,grape200:`#eebefa`,grape300:`#e599f7`,grape400:`#da77f2`,grape500:`#cc5de8`,grape600:`#be4bdb`,grape700:`#ae3ec9`,grape800:`#9c36b5`,grape900:`#862e9c`,violet0:`#f3f0ff`,violet100:`#e5dbff`,violet200:`#d0bfff`,violet300:`#b197fc`,violet400:`#9775fa`,violet500:`#845ef7`,violet600:`#7950f2`,violet700:`#7048e8`,violet800:`#6741d9`,violet900:`#5f3dc4`,indigo0:`#edf2ff`,indigo100:`#dbe4ff`,indigo200:`#bac8ff`,indigo300:`#91a7ff`,indigo400:`#748ffc`,indigo500:`#5c7cfa`,indigo600:`#4c6ef5`,indigo700:`#4263eb`,indigo800:`#3b5bdb`,indigo900:`#364fc7`,blue0:`#e7f5ff`,blue100:`#d0ebff`,blue200:`#a5d8ff`,blue300:`#74c0fc`,blue400:`#4dabf7`,blue500:`#339af0`,blue600:`#228be6`,blue700:`#1c7ed6`,blue800:`#1971c2`,blue900:`#1864ab`,cyan0:`#e3fafc`,cyan100:`#c5f6fa`,cyan200:`#99e9f2`,cyan300:`#66d9e8`,cyan400:`#3bc9db`,cyan500:`#22b8cf`,cyan600:`#15aabf`,cyan700:`#1098ad`,cyan800:`#0c8599`,cyan900:`#0b7285`,teal0:`#e6fcf5`,teal100:`#c3fae8`,teal200:`#96f2d7`,teal300:`#63e6be`,teal400:`#38d9a9`,teal500:`#20c997`,teal600:`#12b886`,teal700:`#0ca678`,teal800:`#099268`,teal900:`#087f5b`,green0:`#ebfbee`,green100:`#d3f9d8`,green200:`#b2f2bb`,green300:`#8ce99a`,green400:`#69db7c`,green500:`#51cf66`,green600:`#40c057`,green700:`#37b24d`,green800:`#2f9e44`,green900:`#2b8a3e`,lime0:`#f4fce3`,lime100:`#e9fac8`,lime200:`#d8f5a2`,lime300:`#c0eb75`,lime400:`#a9e34b`,lime500:`#94d82d`,lime600:`#82c91e`,lime700:`#74b816`,lime800:`#66a80f`,lime900:`#5c940d`,yellow0:`#fff9db`,yellow100:`#fff3bf`,yellow200:`#ffec99`,yellow300:`#ffe066`,yellow400:`#ffd43b`,yellow500:`#fcc419`,yellow600:`#fab005`,yellow700:`#f59f00`,yellow800:`#f08c00`,yellow900:`#e67700`,orange0:`#fff4e6`,orange100:`#ffe8cc`,orange200:`#ffd8a8`,orange300:`#ffc078`,orange400:`#ffa94d`,orange500:`#ff922b`,orange600:`#fd7e14`,orange700:`#f76707`,orange800:`#e8590c`,orange900:`#d9480f`},Se={sans:`sans-serif`,serif:`serif`,mono:`monospace`},Ce={xs:`-0.05em`,sm:`-0.025em`,md:`0em`,lg:`0.025em`,xl:`0.05em`,\"2xl\":`0.1em`,\"3xl\":`0.15em`,\"4xl\":`0.2em`,\"5xl\":`0.25em`,\"6xl\":`0.3em`,\"7xl\":`0.35em`,\"8xl\":`0.4em`,\"9xl\":`0.45em`},we={xs:`1rem`,sm:`1.25rem`,md:`1.5rem`,lg:`1.75rem`,xl:`2rem`,\"2xl\":`2.25rem`,\"3xl\":`2.5rem`,\"4xl\":`2.75rem`,\"5xl\":`3rem`,\"6xl\":`3.25rem`,\"7xl\":`3.5rem`,\"8xl\":`3.75rem`,\"9xl\":`4rem`},Te={xs:`0.75rem`,sm:`0.875rem`,md:`1rem`,lg:`1.125rem`,xl:`1.25rem`,\"2xl\":`1.5rem`,\"3xl\":`1.875rem`,\"4xl\":`2.25rem`,\"5xl\":`3rem`,\"6xl\":`3.75rem`,\"7xl\":`4.5rem`,\"8xl\":`6rem`,\"9xl\":`8rem`},Ee={normal:`normal`,italic:`italic`},De={thin:100,extralight:200,light:300,normal:400,medium:500,semibold:600,bold:700,extrabold:800,black:900},$={family:Se,size:Te,weight:De,style:Ee,lineHeight:we,letterSpacing:Ce},Oe={sm:`0.125rem`,md:`0.375rem`,lg:`0.5rem`,xl:`0.75rem`,\"2xl\":`1rem`,\"3xl\":`1.5rem`,full:`9999px`},ke={sm:`0 1px 2px 0 rgb(0 0 0 / 0.05)`,md:`0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`,lg:`0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)`,xl:`0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)`,\"2xl\":`0 25px 50px -12px rgb(0 0 0 / 0.25)`,inner:`inset 0 2px 4px 0 rgb(0 0 0 / 0.05)`},Ae={xs:`0.75rem`,sm:`0.875rem`,md:`1rem`,lg:`1.125rem`,xl:`1.25rem`,\"2xl\":`1.5rem`,\"3xl\":`1.875rem`,\"4xl\":`2.25rem`,\"5xl\":`3rem`,\"6xl\":`3.75rem`,\"7xl\":`4.5rem`,\"8xl\":`6rem`,\"9xl\":`8rem`,\"1/12\":`8.333333%`,\"2/12\":`16.666667%`,\"3/12\":`25%`,\"4/12\":`33.333333%`,\"5/12\":`41.666667%`,\"6/12\":`50%`,\"7/12\":`58.333333%`,\"8/12\":`66.666667%`,\"9/12\":`75%`,\"10/12\":`83.333333%`,\"11/12\":`91.666667%`,\"1/5\":`20%`,\"2/5\":`40%`,\"3/5\":`60%`,\"4/5\":`80%`,\"1/4\":`25%`,\"3/4\":`75%`,\"1/3\":`33.333333%`,\"2/3\":`66.666667%`,\"1/2\":`50%`,full:`100%`},je={xs:`0.125rem`,sm:`0.25rem`,md:`0.5rem`,lg:`0.75rem`,xl:`1rem`,xxl:`1.5rem`,\"3xl\":`2rem`,\"4xl\":`2.5rem`,\"5xl\":`3rem`,\"6xl\":`3.5rem`,\"7xl\":`4rem`,\"8xl\":`4.5rem`},Me={normal:`normal`,italic:`italic`},Ne={base:`100`,background:`200`,menu:`300`};exports.Absolute=J,exports.Box=q,exports.Center=me,exports.Fixed=he,exports.Flex=X,exports.FlexItem=Y,exports.For=y,exports.Grid=ge,exports.GridItem=Z,exports.Relative=Q,exports.Repeat=S,exports.Scroll=_e,exports.Show=x,exports.Stack=ve,exports.Sticky=ye,exports.Text=be,exports.beginMountSession=n,exports.breakpoint=C,exports.color=xe,exports.connector=l,exports.effect=u,exports.endMountSession=r,exports.font=$,exports.fragment=b,exports.hasActiveMountSession=t,exports.jsx=_,exports.mount=i,exports.radius=Oe,exports.render=d,exports.runUnmountsForElement=o,exports.shadow=ke,exports.signal=s,exports.size=Ae,exports.space=je,exports.style=Me,exports.unmount=a,exports.useBreakpoint=ie,exports.useCustomEvent=ae,exports.useLocalStorage=oe,exports.useLocale=le,exports.useNavigate=D,exports.useSessionStorage=O,exports.useText=k,exports.useUrlHash=L,exports.useUrlParam=U,exports.useUrlPath=pe,exports.zIndex=Ne;"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../core/signal.ts","../core/effect.ts","../core/for.ts","../core/fragment.ts","../core/jsx.ts","../core/lifecycle.ts","../core/render.ts","../core/show.ts","../helper/repeat.tsx","../helper/portal.tsx","../style/breakpoint.ts","../hooks/use-breakpoint.ts","../hooks/use-custom-event.ts","../hooks/use-local-storage.ts","../hooks/use-locale.ts","../hooks/use-navigate.ts","../hooks/use-session-storage.ts","../hooks/use-text.ts","../hooks/use-url-hash.ts","../hooks/use-url-param.ts","../hooks/use-url-path.ts","../core/dom.ts","../layout/box.tsx","../layout/absolute.tsx","../layout/flex-item.tsx","../layout/flex.tsx","../layout/center.tsx","../layout/fixed.tsx","../layout/grid-item.tsx","../layout/grid.tsx","../layout/relative.tsx","../layout/scroll.tsx","../layout/stack.tsx","../layout/sticky.tsx","../layout/text.tsx","../style/color.ts","../style/font.ts","../style/radius.ts","../style/shadow.ts","../style/size.ts","../style/space.ts","../style/style.ts","../style/z-index.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=[];function t(){return e.length>0}function n(){e.push({mounts:[],unmounts:[]})}function r(t){let n=e.pop();if(!n)throw Error(`endMountSession called without active mount session`);for(let e of n.mounts)try{let n=e(t);n instanceof Promise&&n.catch(e=>console.error(`async mount callback failed`,e))}catch(e){console.error(`mount callback failed`,e)}if(n.unmounts.length>0){let e=t.__unmountCbs;e?e.push(...n.unmounts):t.__unmountCbs=[...n.unmounts]}}function i(t){let n=e[e.length-1];if(!n)throw Error(`mount(cb) called outside of a render session`);n.mounts.push(t)}function a(t){let n=e[e.length-1];if(!n)throw Error(`unmount(cb) called outside of a render session`);n.unmounts.push(t)}function o(e){let t=e.__unmountCbs;if(!(!t||t.length===0)){for(let e=t.length-1;e>=0;e--)try{let n=t[e]();n instanceof Promise&&n.catch(e=>console.error(`async unmount callback failed`,e))}catch(e){console.error(`unmount callback failed`,e)}e.__unmountCbs=void 0}}function s(e){let t=e,n=crypto.randomUUID();c.addTopic(n);let r=e=>(e&&(c.registerClbk(n,e),e(t)),t);return r.type=`signal`,[r,async e=>{let r=e(t);t=r instanceof Promise?await r:r,c.update(n,t)}]}const c=new class{topics=new Map;callbackMap=new Map;addTopic(e){this.topics.set(e,new Set)}removeTopic(e){let t=this.topics.get(e);if(t)for(let e of t)this.callbackMap.delete(e);this.topics.delete(e)}registerClbk(e,t){let n=this.topics.get(e);if(!n)throw Error(`Connector: unknown topic ${e}`);let r=this.callbackMap.get(t);if(r){r.refCount++;return}n.add(t),this.callbackMap.set(t,{uuid:e,refCount:1})}removeClbk(e,t){let n=this.callbackMap.get(t);n&&(n.refCount--,!(n.refCount>0)&&(this.topics.get(n.uuid)?.delete(t),this.callbackMap.delete(t)))}update(e,t){let n=this.topics.get(e);if(n)for(let e of n)e(t)}getUuidByClbk(e){let t=this.callbackMap.get(e);if(!t)throw Error(`Connector: no UUID for callback`);return t.uuid}};function l(e,n){let r=!1,i=e=>{if(!r){r=!0;return}try{let t=n(e);t instanceof Promise&&t.catch(e=>{console.error(`effect async callback failed`,e)})}catch(e){console.error(`effect callback failed`,e)}};e(i),t()&&a(()=>{let e=c.getUuidByClbk(i);c.removeClbk(e,i)})}function u(e,t){if(e==null)return{el:t.parent};if(Array.isArray(e)){let n=t.parent;for(let r of e)n=u(r,t).el;return{el:n}}if(e.kind===`text`)return{el:p(e,t)};if(e.kind===`signal`)return{el:ee(e,t)};if(typeof e.tag==`function`){let i=e,a=i.tag;n();let o=u(a({...i.props,ctx:t},i.children),t);if(!(o.el instanceof Element))throw Error(`Component root must be a DOM Element`);return r(o.el),t.self=o.el,o}let i=f(e,t),a={...t,parent:i,self:t.self};for(let t of e.children)u(t,a);return{el:i}}const d=new Set([`svg`,`path`,`circle`,`rect`,`line`,`polyline`,`polygon`,`g`,`defs`,`linearGradient`,`radialGradient`,`stop`,`mask`,`clipPath`,`pattern`,`text`,`tspan`,`use`,`symbol`,`view`,`ellipse`,`foreignObject`]);function f(e,t){if(typeof e.tag!=`string`)throw Error(`Host renderer expects string tag`);let n=e.tag,r=d.has(n),i=r?document.createElementNS(`http://www.w3.org/2000/svg`,n):document.createElement(n),a=e.props??{};for(let[e,t]of Object.entries(a))if(!(e===`ctx`||e===`children`)){if(e.startsWith(`on`)&&typeof t==`function`){let n=e.slice(2).toLowerCase();i.addEventListener(n,t);continue}if(e===`style`&&t&&typeof t==`object`){for(let[e,n]of Object.entries(t))if(n!==void 0)if(typeof n==`function`&&n.type===`signal`){let t=n();i.style[e]=String(t),n(t=>{i.style[e]=String(t)})}else i.style[e]=String(n);continue}if(typeof t==`function`&&t.type===`signal`){let n=t=>{r?i.setAttribute(e,String(t)):i[e]=t};n(t()),m(t,n);continue}r?i.setAttribute(e,String(t)):e in i?i[e]=t:i.setAttribute(e,String(t))}return t.parent.appendChild(i),i}function p(e,t){let n=document.createTextNode(e.value);return t.parent.appendChild(n),n}function ee(e,n){let r=document.createTextNode(``);n.parent.appendChild(r);let i=e=>{r.nodeValue=String(e)};return r.nodeValue=String(e.read()),e.read(i),t()&&a(()=>{let e=c.getUuidByClbk(i);c.removeClbk(e,i)}),r}function m(e,n){let r=e=>n(e);e(r),t()&&a(()=>{let e=c.getUuidByClbk(r);c.removeClbk(e,r)})}function h(e){let t=Array.from(e.childNodes);for(let e of t)g(e);o(e),e.parentNode?e.parentNode.removeChild(e):e.remove()}function g(e){if(e instanceof Element){let t=Array.from(e.childNodes);for(let e of t)g(e);o(e),e.parentNode?e.parentNode.removeChild(e):e.remove();return}e.parentNode&&e.parentNode.removeChild(e)}function _(e,t,...n){return{kind:`element`,tag:e,props:t??{},children:n.flatMap(v)}}function v(e){return e==null||e===!1||e===!0?[]:typeof e==`function`&&e?.type===`signal`?{kind:`signal`,read:e}:typeof e==`string`||typeof e==`number`?{kind:`text`,value:String(e)}:Array.isArray(e)?e.flatMap(v):e}function y(e,[t]){let n=_(`csr-for-host`,{style:{display:`contents`}});return i(r=>{let{el:i}=u(n,{parent:r}),a=i,o=new Map,s=[];function c(n){let r=[];for(let i of n){if(!i||i.uuid==null)continue;let n=i.uuid;if(r.push(n),!o.has(n)){let{el:r}=u(t(i),{...e.ctx,parent:a});if(!(r instanceof Element))throw Error(`For: child root must be an Element`);o.set(n,r)}}for(let e of s)if(!r.includes(e)){let t=o.get(e);t&&h(t),o.delete(e)}let i=null;for(let e=r.length-1;e>=0;e--){let t=o.get(r[e]);a.insertBefore(t,i),i=t}s=r}c(e.each()),l(e.each,c)}),null}function b(e,...t){return t}function x(e,t){let n=_(`csr-show-host`,{style:{display:`contents`}}),r=_(`csr-show-content`,{style:{display:`contents`}},...t),a=null,o=null,s=!1;return i(t=>{let{el:i}=u(n,{parent:t});a=i,e.when(t=>{if(t===s)return;if(s=t,!s){o&&=(h(o),null);return}let{el:n}=u(r,{...e.ctx,parent:a});if(!(n instanceof Element))throw Error(`Show: content root must be an Element`);o=n})}),null}function S(e,t){if(typeof e.n==`number`){let n=[];for(let r=0;r<e.n;r++)n.push(t);return n}let n=e.n,[r,i]=s([]);return n(e=>{let t=[];for(let n=0;n<e;n++)t.push({uuid:String(n)});i(()=>t)}),_(y,{each:r},()=>t)}const C={mobile:0,tablet:601,laptop:1025,desktop:1441,large:1921};function w(e){return e>=C.large?`large`:e>=C.desktop?`desktop`:e>=C.laptop?`laptop`:e>=C.tablet?`tablet`:`mobile`}const[T,E]=s(w(window.innerWidth));let D=T();window.addEventListener(`resize`,()=>{let e=w(window.innerWidth);e!==D&&(D=e,E(()=>e))});function te(){return T}function ne(e,t){if(t){let n=e=>{t(e.detail)};window.addEventListener(e,n),a(()=>{window.removeEventListener(e,n)})}return function(t){window.dispatchEvent(new CustomEvent(e,{detail:t}))}}function re(e,t){let n=t;try{let t=localStorage.getItem(e);t!==null&&(n=JSON.parse(t))}catch(t){console.error(`[useLocalStorage] Failed to read key "${e}"`,t)}let[r,i]=s(n);function a(t){i(n=>{let r;try{r=t(n)}catch(t){return console.error(`[useLocalStorage] Updater failed for key "${e}"`,t),n}try{localStorage.setItem(e,JSON.stringify(r))}catch(t){console.error(`[useLocalStorage] Failed to write key "${e}"`,t)}return r})}function o(){try{localStorage.removeItem(e)}catch(t){console.error(`[useLocalStorage] Failed to remove key "${e}"`,t)}i(()=>t)}return[r,a,o]}const[ie,ae]=s(`en-US`);function oe(){return{locale:ie,setLocale(e){ae(()=>e)}}}function se(e){return e.includes(`://`)}function ce(){window.dispatchEvent(new PopStateEvent(`popstate`)),window.dispatchEvent(new HashChangeEvent(`hashchange`))}function le(){return{navigate:e=>{let t=window.location.pathname+window.location.search+window.location.hash,n=typeof e==`function`?e(t):e;if(se(n)){window.location.href=n;return}window.history.pushState(null,``,n),ce()}}}function O(e,t){let n=t;try{let t=sessionStorage.getItem(e);t!==null&&(n=JSON.parse(t))}catch(t){console.error(`[useSessionStorage] Failed to read key "${e}"`,t)}let[r,i]=s(n);function a(t){i(n=>{let r;try{r=t(n)}catch(t){return console.error(`[useSessionStorage] Updater failed for key "${e}"`,t),n}try{sessionStorage.setItem(e,JSON.stringify(r))}catch(t){console.error(`[useSessionStorage] Failed to write key "${e}"`,t)}return r})}function o(){try{sessionStorage.removeItem(e)}catch(t){console.error(`[useSessionStorage] Failed to remove key "${e}"`,t)}i(()=>t)}return[r,a,o]}function k(e,t){return function(n,r){let i=()=>A(n,e(),t,r),[a,o]=s(i());if(l(e,()=>{o(()=>i())}),r)for(let e of Object.values(r))typeof e==`function`&&e.type===`signal`&&l(e,()=>{o(()=>i())});return a}}function A(e,t,n,r){let i=n[e];return i&&i[t]?j(i[t],r):j(e,r)}function j(e,t){if(!t)return e;let n=e;for(let[e,r]of Object.entries(t)){let t=typeof r==`function`?r():r;n=n.split(`{${e}}`).join(String(t))}return n}function M(){return window.location.hash||``}const[N,P]=s(M());function F(){P(()=>M())}window.addEventListener(`hashchange`,F),window.addEventListener(`popstate`,F);function I(e){let t=typeof e==`function`?e(N()):e,n=t===``?``:t.startsWith(`#`)?t:`#${t}`;if(n!==window.location.hash){let e=window.location.pathname+window.location.search+n;window.history.pushState(null,``,e),F()}}function L(){return[N,I]}function R(){return new URLSearchParams(window.location.search)}const[z,B]=s(R());window.addEventListener(`popstate`,()=>{B(()=>R())});function V(e){return z().get(e)??``}function H(e,t){let n=R(),r=n.get(e)??``,i=typeof t==`function`?t(r):t;i===``?n.delete(e):n.set(e,i);let a=window.location.pathname+(n.toString()?`?${n}`:``)+window.location.hash;window.history.pushState(null,``,a),B(()=>new URLSearchParams(n))}function U(e){let[t,n]=s(V(e));return window.addEventListener(`popstate`,()=>{n(()=>V(e))}),[t,t=>{H(e,t),n(()=>V(e))}]}function W(){return window.location.pathname||`/`}const[G,K]=s(W());window.addEventListener(`popstate`,()=>{K(()=>W())});function ue(e){let t=window.location,n=typeof e==`function`?e(G()):e,r=n.startsWith(`/`)?n:`/${n}`;if(r!==t.pathname){let e=r+t.search+t.hash;window.history.pushState(null,``,e),K(()=>W())}}function de(){return[G,ue]}function q(e,t){return _(`div`,{...e,style:{marginBottom:e.mb??e.my??e.m,marginLeft:e.ml??e.mx??e.m,marginRight:e.mr??e.mx??e.m,marginTop:e.mt??e.my??e.m,paddingBottom:e.pb??e.py??e.p,paddingLeft:e.pl??e.px??e.p,paddingRight:e.pr??e.px??e.p,paddingTop:e.pt??e.py??e.p,background:e.bg,opacity:e.o,boxShadow:e.sh,borderTop:e.bt??e.by??e.b,borderRight:e.br??e.bx??e.b,borderBottom:e.bb??e.by??e.b,borderLeft:e.bl??e.bx??e.b,borderTopRightRadius:e.rtr??e.rt??e.rr??e.r,borderTopLeftRadius:e.rtl??e.rt??e.rl??e.r,borderBottomRightRadius:e.rbr??e.rb??e.rr??e.r,borderBottomLeftRadius:e.rbl??e.rb??e.rl??e.r,width:e.w??e.s,height:e.h??e.s,maxWidth:e.maxW,maxHeight:e.maxH,minWidth:e.minW,minHeight:e.minH,...e.style}},t)}function J(e,t){return _(q,{...e,style:{position:`absolute`,top:e.top,right:e.right,bottom:e.bottom,left:e.left,...e.style}},t)}function Y(e,t){return _(q,{...e,style:{flex:e.flx,alignSelf:e.as,flexGrow:e.flxGrow,flexShrink:e.flxShrink,flexBasis:e.flxBasis,...e.style}},t)}function X(e,t){return _(Y,{...e,style:{display:`flex`,justifyContent:e.jc,alignItems:e.ai,alignContent:e.ac,gap:e.g,flexDirection:e.flxDirection,flexWrap:e.flxWrap,flexFlow:e.flxFlow,...e.style}},t)}function fe(e,t){return _(X,{...e,ai:e.ai??`center`,jc:e.jc??`center`},t)}function pe(e,t){return _(q,{...e,style:{position:`fixed`,top:e.top,right:e.right,bottom:e.bottom,left:e.left,zIndex:e.zIndex,...e.style}},t)}function Z(e,t){return _(q,{...e,style:{gridArea:e.grdArea,gridColumn:e.grdColumn,gridRow:e.grdRow,...e.style}},t)}function me(e,t){return _(Z,{...e,style:{display:`grid`,gap:e.g,alignItems:e.ai,justifyItems:e.ji,alignSelf:e.as,gridTemplateColumns:e.grdTemplateColumns,gridTemplateRows:e.grdTemplateRows,gridTemplateAreas:e.grdTemplateAreas,gridTemplate:e.grdTemplate,gridAutoColumns:e.grdAutoColumns,gridAutoRows:e.grdAutoRows,gridAutoFlow:e.grdAutoFlow,gridArea:e.grd,gridRowStart:e.grdRowStart,gridColumnStart:e.grdColumnStart,gridRowEnd:e.grdRowEnd,gridColumnEnd:e.grdColumnEnd,gridRow:e.grdRow,gridColumn:e.grdColumn,rowGap:e.grdRowGap,columnGap:e.grdColumnGap,...e.style}},t)}function Q(e,t){return _(q,{...e,style:{position:`relative`,zIndex:e.zIndex,...e.style}},t)}function he(e,t){return _(Q,{s:`100%`},_(J,{top:`0`,right:`0`,bottom:`0`,left:`0`,...e,style:{overflow:`auto`,...e.style}},t))}function ge(e,t){return _(X,{...e,flxDirection:e.flxDirection??`column`},t)}function _e(e,t){return _(q,{...e,style:{position:`sticky`,top:e.top,right:e.right,bottom:e.bottom,left:e.left,zIndex:e.zIndex,...e.style}},t)}function ve(e,t){return _(e.tag??`p`,{...e,style:{textAlign:e.a,fontFamily:e.ff,fontWeight:e.fw,fontSize:e.fs,lineHeight:e.lh,letterSpacing:e.ls,fontStyle:e.s,color:e.c,margin:e.m,marginBottom:e.mb??e.my??e.m,marginLeft:e.ml??e.mx??e.m,marginRight:e.mr??e.mx??e.m,marginTop:e.mt??e.my??e.m,padding:e.p,paddingBottom:e.pb??e.py??e.p,paddingLeft:e.pl??e.px??e.p,paddingRight:e.pr??e.px??e.p,paddingTop:e.pt??e.py??e.p,background:e.bg}},...t)}const ye={brand:`#000`,onBrand:`#fff`,gray0:`#f8f9fa`,gray100:`#f1f3f5`,gray200:`#e9ecef`,gray300:`#dee2e6`,gray400:`#ced4da`,gray500:`#adb5bd`,gray600:`#868e96`,gray700:`#495057`,gray800:`#343a40`,gray900:`#212529`,red0:`#fff5f5`,red100:`#ffe3e3`,red200:`#ffc9c9`,red300:`#ffa8a8`,red400:`#ff8787`,red500:`#ff6b6b`,red600:`#fa5252`,red700:`#f03e3e`,red800:`#e03131`,red900:`#c92a2a`,pink0:`#fff0f6`,pink100:`#ffdeeb`,pink200:`#fcc2d7`,pink300:`#faa2c1`,pink400:`#f783ac`,pink500:`#f06595`,pink600:`#e64980`,pink700:`#d6336c`,pink800:`#c2255c`,pink900:`#a61e4d`,grape0:`#f8f0fc`,grape100:`#f3d9fa`,grape200:`#eebefa`,grape300:`#e599f7`,grape400:`#da77f2`,grape500:`#cc5de8`,grape600:`#be4bdb`,grape700:`#ae3ec9`,grape800:`#9c36b5`,grape900:`#862e9c`,violet0:`#f3f0ff`,violet100:`#e5dbff`,violet200:`#d0bfff`,violet300:`#b197fc`,violet400:`#9775fa`,violet500:`#845ef7`,violet600:`#7950f2`,violet700:`#7048e8`,violet800:`#6741d9`,violet900:`#5f3dc4`,indigo0:`#edf2ff`,indigo100:`#dbe4ff`,indigo200:`#bac8ff`,indigo300:`#91a7ff`,indigo400:`#748ffc`,indigo500:`#5c7cfa`,indigo600:`#4c6ef5`,indigo700:`#4263eb`,indigo800:`#3b5bdb`,indigo900:`#364fc7`,blue0:`#e7f5ff`,blue100:`#d0ebff`,blue200:`#a5d8ff`,blue300:`#74c0fc`,blue400:`#4dabf7`,blue500:`#339af0`,blue600:`#228be6`,blue700:`#1c7ed6`,blue800:`#1971c2`,blue900:`#1864ab`,cyan0:`#e3fafc`,cyan100:`#c5f6fa`,cyan200:`#99e9f2`,cyan300:`#66d9e8`,cyan400:`#3bc9db`,cyan500:`#22b8cf`,cyan600:`#15aabf`,cyan700:`#1098ad`,cyan800:`#0c8599`,cyan900:`#0b7285`,teal0:`#e6fcf5`,teal100:`#c3fae8`,teal200:`#96f2d7`,teal300:`#63e6be`,teal400:`#38d9a9`,teal500:`#20c997`,teal600:`#12b886`,teal700:`#0ca678`,teal800:`#099268`,teal900:`#087f5b`,green0:`#ebfbee`,green100:`#d3f9d8`,green200:`#b2f2bb`,green300:`#8ce99a`,green400:`#69db7c`,green500:`#51cf66`,green600:`#40c057`,green700:`#37b24d`,green800:`#2f9e44`,green900:`#2b8a3e`,lime0:`#f4fce3`,lime100:`#e9fac8`,lime200:`#d8f5a2`,lime300:`#c0eb75`,lime400:`#a9e34b`,lime500:`#94d82d`,lime600:`#82c91e`,lime700:`#74b816`,lime800:`#66a80f`,lime900:`#5c940d`,yellow0:`#fff9db`,yellow100:`#fff3bf`,yellow200:`#ffec99`,yellow300:`#ffe066`,yellow400:`#ffd43b`,yellow500:`#fcc419`,yellow600:`#fab005`,yellow700:`#f59f00`,yellow800:`#f08c00`,yellow900:`#e67700`,orange0:`#fff4e6`,orange100:`#ffe8cc`,orange200:`#ffd8a8`,orange300:`#ffc078`,orange400:`#ffa94d`,orange500:`#ff922b`,orange600:`#fd7e14`,orange700:`#f76707`,orange800:`#e8590c`,orange900:`#d9480f`},be={sans:`sans-serif`,serif:`serif`,mono:`monospace`},$={xs:`-0.05em`,sm:`-0.025em`,md:`0em`,lg:`0.025em`,xl:`0.05em`,"2xl":`0.1em`,"3xl":`0.15em`,"4xl":`0.2em`,"5xl":`0.25em`,"6xl":`0.3em`,"7xl":`0.35em`,"8xl":`0.4em`,"9xl":`0.45em`},xe={xs:`1rem`,sm:`1.25rem`,md:`1.5rem`,lg:`1.75rem`,xl:`2rem`,"2xl":`2.25rem`,"3xl":`2.5rem`,"4xl":`2.75rem`,"5xl":`3rem`,"6xl":`3.25rem`,"7xl":`3.5rem`,"8xl":`3.75rem`,"9xl":`4rem`},Se={family:be,size:{xs:`0.75rem`,sm:`0.875rem`,md:`1rem`,lg:`1.125rem`,xl:`1.25rem`,"2xl":`1.5rem`,"3xl":`1.875rem`,"4xl":`2.25rem`,"5xl":`3rem`,"6xl":`3.75rem`,"7xl":`4.5rem`,"8xl":`6rem`,"9xl":`8rem`},weight:{thin:100,extralight:200,light:300,normal:400,medium:500,semibold:600,bold:700,extrabold:800,black:900},style:{normal:`normal`,italic:`italic`},lineHeight:xe,letterSpacing:$},Ce={sm:`0.125rem`,md:`0.375rem`,lg:`0.5rem`,xl:`0.75rem`,"2xl":`1rem`,"3xl":`1.5rem`,full:`9999px`},we={sm:`0 1px 2px 0 rgb(0 0 0 / 0.05)`,md:`0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`,lg:`0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)`,xl:`0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)`,"2xl":`0 25px 50px -12px rgb(0 0 0 / 0.25)`,inner:`inset 0 2px 4px 0 rgb(0 0 0 / 0.05)`},Te={xs:`0.75rem`,sm:`0.875rem`,md:`1rem`,lg:`1.125rem`,xl:`1.25rem`,"2xl":`1.5rem`,"3xl":`1.875rem`,"4xl":`2.25rem`,"5xl":`3rem`,"6xl":`3.75rem`,"7xl":`4.5rem`,"8xl":`6rem`,"9xl":`8rem`,"1/12":`8.333333%`,"2/12":`16.666667%`,"3/12":`25%`,"4/12":`33.333333%`,"5/12":`41.666667%`,"6/12":`50%`,"7/12":`58.333333%`,"8/12":`66.666667%`,"9/12":`75%`,"10/12":`83.333333%`,"11/12":`91.666667%`,"1/5":`20%`,"2/5":`40%`,"3/5":`60%`,"4/5":`80%`,"1/4":`25%`,"3/4":`75%`,"1/3":`33.333333%`,"2/3":`66.666667%`,"1/2":`50%`,full:`100%`},Ee={xs:`0.125rem`,sm:`0.25rem`,md:`0.5rem`,lg:`0.75rem`,xl:`1rem`,xxl:`1.5rem`,"3xl":`2rem`,"4xl":`2.5rem`,"5xl":`3rem`,"6xl":`3.5rem`,"7xl":`4rem`,"8xl":`4.5rem`},De={normal:`normal`,italic:`italic`},Oe={base:`100`,background:`200`,menu:`300`};export{J as Absolute,q as Box,fe as Center,pe as Fixed,X as Flex,Y as FlexItem,y as For,me as Grid,Z as GridItem,Q as Relative,S as Repeat,he as Scroll,x as Show,ge as Stack,_e as Sticky,ve as Text,n as beginMountSession,C as breakpoint,ye as color,c as connector,l as effect,r as endMountSession,Se as font,b as fragment,t as hasActiveMountSession,_ as jsx,i as mount,Ce as radius,u as render,o as runUnmountsForElement,we as shadow,s as signal,Te as size,Ee as space,De as style,a as unmount,te as useBreakpoint,ne as useCustomEvent,re as useLocalStorage,oe as useLocale,le as useNavigate,O as useSessionStorage,k as useText,L as useUrlHash,U as useUrlParam,de as useUrlPath,Oe as zIndex};
|
|
1
|
+
const e=[];function t(){return e.length>0}function n(){e.push({mounts:[],unmounts:[]})}function r(t){let n=e.pop();if(!n)throw Error(`endMountSession called without active mount session`);for(let e of n.mounts)try{let n=e(t);n instanceof Promise&&n.catch(e=>console.error(`async mount callback failed`,e))}catch(e){console.error(`mount callback failed`,e)}if(n.unmounts.length>0){let e=t.__unmountCbs;e?e.push(...n.unmounts):t.__unmountCbs=[...n.unmounts]}}function i(t){let n=e[e.length-1];if(!n)throw Error(`mount(cb) called outside of a render session`);n.mounts.push(t)}function a(t){let n=e[e.length-1];if(!n)throw Error(`unmount(cb) called outside of a render session`);n.unmounts.push(t)}function o(e){let t=e.__unmountCbs;if(!(!t||t.length===0)){for(let e=t.length-1;e>=0;e--)try{let n=t[e]();n instanceof Promise&&n.catch(e=>console.error(`async unmount callback failed`,e))}catch(e){console.error(`unmount callback failed`,e)}e.__unmountCbs=void 0}}function s(e){let t=e,n=crypto.randomUUID();c.addTopic(n);let r=e=>(e&&(c.registerClbk(n,e),e(t)),t);return r.type=`signal`,[r,async e=>{let r=e(t);t=r instanceof Promise?await r:r,c.update(n,t)}]}const c=new class{topics=new Map;callbackMap=new Map;addTopic(e){this.topics.set(e,new Set)}removeTopic(e){let t=this.topics.get(e);if(t)for(let e of t)this.callbackMap.delete(e);this.topics.delete(e)}registerClbk(e,t){let n=this.topics.get(e);if(!n)throw Error(`Connector: unknown topic ${e}`);let r=this.callbackMap.get(t);if(r){r.refCount++;return}n.add(t),this.callbackMap.set(t,{uuid:e,refCount:1})}removeClbk(e,t){let n=this.callbackMap.get(t);n&&(n.refCount--,!(n.refCount>0)&&(this.topics.get(n.uuid)?.delete(t),this.callbackMap.delete(t)))}update(e,t){let n=this.topics.get(e);if(n)for(let e of n)e(t)}getUuidByClbk(e){let t=this.callbackMap.get(e);if(!t)throw Error(`Connector: no UUID for callback`);return t.uuid}};function l(e,n){let r=!1,i=e=>{if(!r){r=!0;return}try{let t=n(e);t instanceof Promise&&t.catch(e=>{console.error(`effect async callback failed`,e)})}catch(e){console.error(`effect callback failed`,e)}};e(i),t()&&a(()=>{let e=c.getUuidByClbk(i);c.removeClbk(e,i)})}function u(e,t){if(e==null)return{el:t.parent};if(Array.isArray(e)){let n=t.parent;for(let r of e)n=u(r,t).el;return{el:n}}if(e.kind===`text`)return{el:ee(e,t)};if(e.kind===`signal`)return{el:te(e,t)};if(typeof e.tag==`function`){let i=e,a=i.tag;n();let o=u(a({...i.props,ctx:t},i.children),t);if(!(o.el instanceof Element))throw Error(`Component root must be a DOM Element`);return r(o.el),t.self=o.el,o}let i=f(e,t),a={...t,parent:i,self:t.self};for(let t of e.children)u(t,a);return{el:i}}const d=new Set([`svg`,`path`,`circle`,`rect`,`line`,`polyline`,`polygon`,`g`,`defs`,`linearGradient`,`radialGradient`,`stop`,`mask`,`clipPath`,`pattern`,`text`,`tspan`,`use`,`symbol`,`view`,`ellipse`,`foreignObject`]);function f(e,t){if(typeof e.tag!=`string`)throw Error(`Host renderer expects string tag`);let n=e.tag,r=d.has(n),i=r?document.createElementNS(`http://www.w3.org/2000/svg`,n):document.createElement(n),a=e.props??{};for(let[e,t]of Object.entries(a))if(!(e===`ctx`||e===`children`)){if(e.startsWith(`on`)&&typeof t==`function`){let n=e.slice(2).toLowerCase();i.addEventListener(n,t);continue}if(e===`style`&&t&&typeof t==`object`){for(let[e,n]of Object.entries(t))if(n!==void 0)if(typeof n==`function`&&n.type===`signal`){let t=n();i.style[e]=String(t),n(t=>{i.style[e]=String(t)})}else i.style[e]=String(n);continue}if(typeof t==`function`&&t.type===`signal`){let n=t=>{r?i.setAttribute(e,String(t)):i[e]=t};n(t()),p(t,n);continue}r?i.setAttribute(e,String(t)):e in i?i[e]=t:i.setAttribute(e,String(t))}return t.parent.appendChild(i),i}function ee(e,t){let n=document.createTextNode(e.value);return t.parent.appendChild(n),n}function te(e,n){let r=document.createTextNode(``);n.parent.appendChild(r);let i=e=>{r.nodeValue=String(e)};return r.nodeValue=String(e.read()),e.read(i),t()&&a(()=>{let e=c.getUuidByClbk(i);c.removeClbk(e,i)}),r}function p(e,n){let r=e=>n(e);e(r),t()&&a(()=>{let e=c.getUuidByClbk(r);c.removeClbk(e,r)})}function m(e){let t=Array.from(e.childNodes);for(let e of t)h(e);o(e),e.parentNode?e.parentNode.removeChild(e):e.remove()}function h(e){if(e instanceof Element){let t=Array.from(e.childNodes);for(let e of t)h(e);o(e),e.parentNode?e.parentNode.removeChild(e):e.remove();return}e.parentNode&&e.parentNode.removeChild(e)}function g(e,t,...n){return{kind:`element`,tag:e,props:t??{},children:n.flatMap(_)}}function _(e){return e==null||e===!1||e===!0?[]:typeof e==`function`&&e?.type===`signal`?{kind:`signal`,read:e}:typeof e==`string`||typeof e==`number`?{kind:`text`,value:String(e)}:Array.isArray(e)?e.flatMap(_):e}function v(e,[t]){let n=g(`csr-for-host`,{style:{display:`contents`}});return i(r=>{let{el:i}=u(n,{parent:r}),a=i,o=new Map,s=[];function c(n){let r=[];for(let i of n){if(!i||i.uuid==null)continue;let n=i.uuid;if(r.push(n),!o.has(n)){let{el:r}=u(t(i),{...e.ctx,parent:a});if(!(r instanceof Element))throw Error(`For: child root must be an Element`);o.set(n,r)}}for(let e of s)if(!r.includes(e)){let t=o.get(e);t&&m(t),o.delete(e)}let i=null;for(let e=r.length-1;e>=0;e--){let t=o.get(r[e]);a.insertBefore(t,i),i=t}s=r}c(e.each()),l(e.each,c)}),null}function y(e,...t){return t}function b(e,t){let n=g(`csr-show-host`,{style:{display:`contents`}}),r=g(`csr-show-content`,{style:{display:`contents`}},...t),a=null,o=null,s=!1;return i(t=>{let{el:i}=u(n,{parent:t});a=i,e.when(t=>{if(t===s)return;if(s=t,!s){o&&=(m(o),null);return}let{el:n}=u(r,{...e.ctx,parent:a});if(!(n instanceof Element))throw Error(`Show: content root must be an Element`);o=n})}),null}function x(e,t){if(typeof e.n==`number`){let n=[];for(let r=0;r<e.n;r++)n.push(t);return n}let n=e.n,[r,i]=s([]);return n(e=>{let t=[];for(let n=0;n<e;n++)t.push({uuid:String(n)});i(()=>t)}),g(v,{each:r},()=>t)}function S(e,t){let n=document.createElement(`csr-portal`);i(()=>{document.body.appendChild(n);for(let e of t)u(e,{parent:n})}),a(()=>{m(n)})}const C={mobile:0,tablet:601,laptop:1025,desktop:1441,large:1921};function w(e){return e>=C.large?`large`:e>=C.desktop?`desktop`:e>=C.laptop?`laptop`:e>=C.tablet?`tablet`:`mobile`}const[T,ne]=s(w(window.innerWidth));let E=T();window.addEventListener(`resize`,()=>{let e=w(window.innerWidth);e!==E&&(E=e,ne(()=>e))});function re(){return T}function ie(e,t){if(t){let n=e=>{t(e.detail)};window.addEventListener(e,n),a(()=>{window.removeEventListener(e,n)})}return function(t){window.dispatchEvent(new CustomEvent(e,{detail:t}))}}function ae(e,t){let n=t;try{let t=localStorage.getItem(e);t!==null&&(n=JSON.parse(t))}catch(t){console.error(`[useLocalStorage] Failed to read key "${e}"`,t)}let[r,i]=s(n);function a(t){i(n=>{let r;try{r=t(n)}catch(t){return console.error(`[useLocalStorage] Updater failed for key "${e}"`,t),n}try{localStorage.setItem(e,JSON.stringify(r))}catch(t){console.error(`[useLocalStorage] Failed to write key "${e}"`,t)}return r})}function o(){try{localStorage.removeItem(e)}catch(t){console.error(`[useLocalStorage] Failed to remove key "${e}"`,t)}i(()=>t)}return[r,a,o]}const[oe,se]=s(`en-US`);function ce(){return{locale:oe,setLocale(e){se(()=>e)}}}function le(e){return e.includes(`://`)}function ue(){window.dispatchEvent(new PopStateEvent(`popstate`)),window.dispatchEvent(new HashChangeEvent(`hashchange`))}function D(){return{navigate:e=>{let t=window.location.pathname+window.location.search+window.location.hash,n=typeof e==`function`?e(t):e;if(le(n)){window.location.href=n;return}window.history.pushState(null,``,n),ue()}}}function O(e,t){let n=t;try{let t=sessionStorage.getItem(e);t!==null&&(n=JSON.parse(t))}catch(t){console.error(`[useSessionStorage] Failed to read key "${e}"`,t)}let[r,i]=s(n);function a(t){i(n=>{let r;try{r=t(n)}catch(t){return console.error(`[useSessionStorage] Updater failed for key "${e}"`,t),n}try{sessionStorage.setItem(e,JSON.stringify(r))}catch(t){console.error(`[useSessionStorage] Failed to write key "${e}"`,t)}return r})}function o(){try{sessionStorage.removeItem(e)}catch(t){console.error(`[useSessionStorage] Failed to remove key "${e}"`,t)}i(()=>t)}return[r,a,o]}function k(e,t){return function(n,r){let i=()=>A(n,e(),t,r),[a,o]=s(i());if(l(e,()=>{o(()=>i())}),r)for(let e of Object.values(r))typeof e==`function`&&e.type===`signal`&&l(e,()=>{o(()=>i())});return a}}function A(e,t,n,r){let i=n[e];return i&&i[t]?j(i[t],r):j(e,r)}function j(e,t){if(!t)return e;let n=e;for(let[e,r]of Object.entries(t)){let t=typeof r==`function`?r():r;n=n.split(`{${e}}`).join(String(t))}return n}function M(){return window.location.hash||``}const[N,P]=s(M());function F(){P(()=>M())}window.addEventListener(`hashchange`,F),window.addEventListener(`popstate`,F);function I(e){let t=typeof e==`function`?e(N()):e,n=t===``?``:t.startsWith(`#`)?t:`#${t}`;if(n!==window.location.hash){let e=window.location.pathname+window.location.search+n;window.history.pushState(null,``,e),F()}}function L(){return[N,I]}function R(){return new URLSearchParams(window.location.search)}const[z,B]=s(R());window.addEventListener(`popstate`,()=>{B(()=>R())});function V(e){return z().get(e)??``}function H(e,t){let n=R(),r=n.get(e)??``,i=typeof t==`function`?t(r):t;i===``?n.delete(e):n.set(e,i);let a=window.location.pathname+(n.toString()?`?${n}`:``)+window.location.hash;window.history.pushState(null,``,a),B(()=>new URLSearchParams(n))}function U(e){let[t,n]=s(V(e));return window.addEventListener(`popstate`,()=>{n(()=>V(e))}),[t,t=>{H(e,t),n(()=>V(e))}]}function W(){return window.location.pathname||`/`}const[G,K]=s(W());window.addEventListener(`popstate`,()=>{K(()=>W())});function de(e){let t=window.location,n=typeof e==`function`?e(G()):e,r=n.startsWith(`/`)?n:`/${n}`;if(r!==t.pathname){let e=r+t.search+t.hash;window.history.pushState(null,``,e),K(()=>W())}}function fe(){return[G,de]}function q(e,t){return g(`div`,{...e,style:{marginBottom:e.mb??e.my??e.m,marginLeft:e.ml??e.mx??e.m,marginRight:e.mr??e.mx??e.m,marginTop:e.mt??e.my??e.m,paddingBottom:e.pb??e.py??e.p,paddingLeft:e.pl??e.px??e.p,paddingRight:e.pr??e.px??e.p,paddingTop:e.pt??e.py??e.p,background:e.bg,opacity:e.o,boxShadow:e.sh,borderTop:e.bt??e.by??e.b,borderRight:e.br??e.bx??e.b,borderBottom:e.bb??e.by??e.b,borderLeft:e.bl??e.bx??e.b,borderTopRightRadius:e.rtr??e.rt??e.rr??e.r,borderTopLeftRadius:e.rtl??e.rt??e.rl??e.r,borderBottomRightRadius:e.rbr??e.rb??e.rr??e.r,borderBottomLeftRadius:e.rbl??e.rb??e.rl??e.r,width:e.w??e.s,height:e.h??e.s,maxWidth:e.maxW,maxHeight:e.maxH,minWidth:e.minW,minHeight:e.minH,...e.style}},t)}function J(e,t){return g(q,{...e,style:{position:`absolute`,top:e.top,right:e.right,bottom:e.bottom,left:e.left,...e.style}},t)}function Y(e,t){return g(q,{...e,style:{flex:e.flx,alignSelf:e.as,flexGrow:e.flxGrow,flexShrink:e.flxShrink,flexBasis:e.flxBasis,...e.style}},t)}function X(e,t){return g(Y,{...e,style:{display:`flex`,justifyContent:e.jc,alignItems:e.ai,alignContent:e.ac,gap:e.g,flexDirection:e.flxDirection,flexWrap:e.flxWrap,flexFlow:e.flxFlow,...e.style}},t)}function pe(e,t){return g(X,{...e,ai:e.ai??`center`,jc:e.jc??`center`},t)}function me(e,t){return g(q,{...e,style:{position:`fixed`,top:e.top,right:e.right,bottom:e.bottom,left:e.left,zIndex:e.zIndex,...e.style}},t)}function Z(e,t){return g(q,{...e,style:{gridArea:e.grdArea,gridColumn:e.grdColumn,gridRow:e.grdRow,...e.style}},t)}function he(e,t){return g(Z,{...e,style:{display:`grid`,gap:e.g,alignItems:e.ai,justifyItems:e.ji,alignSelf:e.as,gridTemplateColumns:e.grdTemplateColumns,gridTemplateRows:e.grdTemplateRows,gridTemplateAreas:e.grdTemplateAreas,gridTemplate:e.grdTemplate,gridAutoColumns:e.grdAutoColumns,gridAutoRows:e.grdAutoRows,gridAutoFlow:e.grdAutoFlow,gridArea:e.grd,gridRowStart:e.grdRowStart,gridColumnStart:e.grdColumnStart,gridRowEnd:e.grdRowEnd,gridColumnEnd:e.grdColumnEnd,gridRow:e.grdRow,gridColumn:e.grdColumn,rowGap:e.grdRowGap,columnGap:e.grdColumnGap,...e.style}},t)}function Q(e,t){return g(q,{...e,style:{position:`relative`,zIndex:e.zIndex,...e.style}},t)}function ge(e,t){return g(Q,{s:`100%`},g(J,{top:`0`,right:`0`,bottom:`0`,left:`0`,...e,style:{overflow:`auto`,...e.style}},t))}function _e(e,t){return g(X,{...e,flxDirection:e.flxDirection??`column`},t)}function ve(e,t){return g(q,{...e,style:{position:`sticky`,top:e.top,right:e.right,bottom:e.bottom,left:e.left,zIndex:e.zIndex,...e.style}},t)}function ye(e,t){return g(e.tag??`p`,{...e,style:{textAlign:e.a,fontFamily:e.ff,fontWeight:e.fw,fontSize:e.fs,lineHeight:e.lh,letterSpacing:e.ls,fontStyle:e.s,color:e.c,margin:e.m,marginBottom:e.mb??e.my??e.m,marginLeft:e.ml??e.mx??e.m,marginRight:e.mr??e.mx??e.m,marginTop:e.mt??e.my??e.m,padding:e.p,paddingBottom:e.pb??e.py??e.p,paddingLeft:e.pl??e.px??e.p,paddingRight:e.pr??e.px??e.p,paddingTop:e.pt??e.py??e.p,background:e.bg}},...t)}const be={brand:`#000`,onBrand:`#fff`,gray0:`#f8f9fa`,gray100:`#f1f3f5`,gray200:`#e9ecef`,gray300:`#dee2e6`,gray400:`#ced4da`,gray500:`#adb5bd`,gray600:`#868e96`,gray700:`#495057`,gray800:`#343a40`,gray900:`#212529`,red0:`#fff5f5`,red100:`#ffe3e3`,red200:`#ffc9c9`,red300:`#ffa8a8`,red400:`#ff8787`,red500:`#ff6b6b`,red600:`#fa5252`,red700:`#f03e3e`,red800:`#e03131`,red900:`#c92a2a`,pink0:`#fff0f6`,pink100:`#ffdeeb`,pink200:`#fcc2d7`,pink300:`#faa2c1`,pink400:`#f783ac`,pink500:`#f06595`,pink600:`#e64980`,pink700:`#d6336c`,pink800:`#c2255c`,pink900:`#a61e4d`,grape0:`#f8f0fc`,grape100:`#f3d9fa`,grape200:`#eebefa`,grape300:`#e599f7`,grape400:`#da77f2`,grape500:`#cc5de8`,grape600:`#be4bdb`,grape700:`#ae3ec9`,grape800:`#9c36b5`,grape900:`#862e9c`,violet0:`#f3f0ff`,violet100:`#e5dbff`,violet200:`#d0bfff`,violet300:`#b197fc`,violet400:`#9775fa`,violet500:`#845ef7`,violet600:`#7950f2`,violet700:`#7048e8`,violet800:`#6741d9`,violet900:`#5f3dc4`,indigo0:`#edf2ff`,indigo100:`#dbe4ff`,indigo200:`#bac8ff`,indigo300:`#91a7ff`,indigo400:`#748ffc`,indigo500:`#5c7cfa`,indigo600:`#4c6ef5`,indigo700:`#4263eb`,indigo800:`#3b5bdb`,indigo900:`#364fc7`,blue0:`#e7f5ff`,blue100:`#d0ebff`,blue200:`#a5d8ff`,blue300:`#74c0fc`,blue400:`#4dabf7`,blue500:`#339af0`,blue600:`#228be6`,blue700:`#1c7ed6`,blue800:`#1971c2`,blue900:`#1864ab`,cyan0:`#e3fafc`,cyan100:`#c5f6fa`,cyan200:`#99e9f2`,cyan300:`#66d9e8`,cyan400:`#3bc9db`,cyan500:`#22b8cf`,cyan600:`#15aabf`,cyan700:`#1098ad`,cyan800:`#0c8599`,cyan900:`#0b7285`,teal0:`#e6fcf5`,teal100:`#c3fae8`,teal200:`#96f2d7`,teal300:`#63e6be`,teal400:`#38d9a9`,teal500:`#20c997`,teal600:`#12b886`,teal700:`#0ca678`,teal800:`#099268`,teal900:`#087f5b`,green0:`#ebfbee`,green100:`#d3f9d8`,green200:`#b2f2bb`,green300:`#8ce99a`,green400:`#69db7c`,green500:`#51cf66`,green600:`#40c057`,green700:`#37b24d`,green800:`#2f9e44`,green900:`#2b8a3e`,lime0:`#f4fce3`,lime100:`#e9fac8`,lime200:`#d8f5a2`,lime300:`#c0eb75`,lime400:`#a9e34b`,lime500:`#94d82d`,lime600:`#82c91e`,lime700:`#74b816`,lime800:`#66a80f`,lime900:`#5c940d`,yellow0:`#fff9db`,yellow100:`#fff3bf`,yellow200:`#ffec99`,yellow300:`#ffe066`,yellow400:`#ffd43b`,yellow500:`#fcc419`,yellow600:`#fab005`,yellow700:`#f59f00`,yellow800:`#f08c00`,yellow900:`#e67700`,orange0:`#fff4e6`,orange100:`#ffe8cc`,orange200:`#ffd8a8`,orange300:`#ffc078`,orange400:`#ffa94d`,orange500:`#ff922b`,orange600:`#fd7e14`,orange700:`#f76707`,orange800:`#e8590c`,orange900:`#d9480f`},$={sans:`sans-serif`,serif:`serif`,mono:`monospace`},xe={xs:`-0.05em`,sm:`-0.025em`,md:`0em`,lg:`0.025em`,xl:`0.05em`,"2xl":`0.1em`,"3xl":`0.15em`,"4xl":`0.2em`,"5xl":`0.25em`,"6xl":`0.3em`,"7xl":`0.35em`,"8xl":`0.4em`,"9xl":`0.45em`},Se={xs:`1rem`,sm:`1.25rem`,md:`1.5rem`,lg:`1.75rem`,xl:`2rem`,"2xl":`2.25rem`,"3xl":`2.5rem`,"4xl":`2.75rem`,"5xl":`3rem`,"6xl":`3.25rem`,"7xl":`3.5rem`,"8xl":`3.75rem`,"9xl":`4rem`},Ce={family:$,size:{xs:`0.75rem`,sm:`0.875rem`,md:`1rem`,lg:`1.125rem`,xl:`1.25rem`,"2xl":`1.5rem`,"3xl":`1.875rem`,"4xl":`2.25rem`,"5xl":`3rem`,"6xl":`3.75rem`,"7xl":`4.5rem`,"8xl":`6rem`,"9xl":`8rem`},weight:{thin:100,extralight:200,light:300,normal:400,medium:500,semibold:600,bold:700,extrabold:800,black:900},style:{normal:`normal`,italic:`italic`},lineHeight:Se,letterSpacing:xe},we={sm:`0.125rem`,md:`0.375rem`,lg:`0.5rem`,xl:`0.75rem`,"2xl":`1rem`,"3xl":`1.5rem`,full:`9999px`},Te={sm:`0 1px 2px 0 rgb(0 0 0 / 0.05)`,md:`0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`,lg:`0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)`,xl:`0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)`,"2xl":`0 25px 50px -12px rgb(0 0 0 / 0.25)`,inner:`inset 0 2px 4px 0 rgb(0 0 0 / 0.05)`},Ee={xs:`0.75rem`,sm:`0.875rem`,md:`1rem`,lg:`1.125rem`,xl:`1.25rem`,"2xl":`1.5rem`,"3xl":`1.875rem`,"4xl":`2.25rem`,"5xl":`3rem`,"6xl":`3.75rem`,"7xl":`4.5rem`,"8xl":`6rem`,"9xl":`8rem`,"1/12":`8.333333%`,"2/12":`16.666667%`,"3/12":`25%`,"4/12":`33.333333%`,"5/12":`41.666667%`,"6/12":`50%`,"7/12":`58.333333%`,"8/12":`66.666667%`,"9/12":`75%`,"10/12":`83.333333%`,"11/12":`91.666667%`,"1/5":`20%`,"2/5":`40%`,"3/5":`60%`,"4/5":`80%`,"1/4":`25%`,"3/4":`75%`,"1/3":`33.333333%`,"2/3":`66.666667%`,"1/2":`50%`,full:`100%`},De={xs:`0.125rem`,sm:`0.25rem`,md:`0.5rem`,lg:`0.75rem`,xl:`1rem`,xxl:`1.5rem`,"3xl":`2rem`,"4xl":`2.5rem`,"5xl":`3rem`,"6xl":`3.5rem`,"7xl":`4rem`,"8xl":`4.5rem`},Oe={normal:`normal`,italic:`italic`},ke={base:`100`,background:`200`,menu:`300`};export{J as Absolute,q as Box,pe as Center,me as Fixed,X as Flex,Y as FlexItem,v as For,he as Grid,Z as GridItem,S as Portal,Q as Relative,x as Repeat,ge as Scroll,b as Show,_e as Stack,ve as Sticky,ye as Text,n as beginMountSession,C as breakpoint,be as color,c as connector,l as effect,r as endMountSession,Ce as font,y as fragment,t as hasActiveMountSession,g as jsx,i as mount,we as radius,u as render,o as runUnmountsForElement,Te as shadow,s as signal,Ee as size,De as space,Oe as style,a as unmount,re as useBreakpoint,ie as useCustomEvent,ae as useLocalStorage,ce as useLocale,D as useNavigate,O as useSessionStorage,k as useText,L as useUrlHash,U as useUrlParam,fe as useUrlPath,ke as zIndex};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["sessionStack: Session[]","read: ReadFn<T>","write","last: Node","last","childCtx: RenderCtx","order: Uuid[]","nextOrder: Uuid[]","el","anchor: ChildNode | null","hostEl: Element | null","contentEl: Element | null","out: any[]","next: { uuid: string }[]","write","write","next: T","write","write","next: T","locale","write","write","write","sync","writeValue: WriteFn<string>","size","style"],"sources":["../core/lifecycle.ts","../core/signal.ts","../core/effect.ts","../core/render.ts","../core/destroy.ts","../core/jsx.ts","../core/for.ts","../core/fragment.ts","../core/show.ts","../helper/repeat.tsx","../style/breakpoint.ts","../hooks/use-breakpoint.ts","../hooks/use-custom-event.ts","../hooks/use-local-storage.ts","../hooks/use-locale.ts","../hooks/use-navigate.ts","../hooks/use-session-storage.ts","../hooks/use-text.ts","../hooks/use-url-hash.ts","../hooks/use-url-param.ts","../hooks/use-url-path.ts","../layout/box.tsx","../layout/absolute.tsx","../layout/flex-item.tsx","../layout/flex.tsx","../layout/center.tsx","../layout/fixed.tsx","../layout/grid-item.tsx","../layout/grid.tsx","../layout/relative.tsx","../layout/scroll.tsx","../layout/stack.tsx","../layout/sticky.tsx","../layout/text.tsx","../style/color.ts","../style/font.ts","../style/radius.ts","../style/shadow.ts","../style/size.ts","../style/space.ts","../style/style.ts","../style/z-index.ts"],"sourcesContent":["// lifecycle.ts\n// Synchronous render lifecycle with async-tolerant mount/unmount callbacks\n\nexport type MountCallback = (el: Element) => void | Promise<void>;\nexport type UnmountCallback = () => void | Promise<void>;\n\ninterface Session {\n mounts: MountCallback[];\n unmounts: UnmountCallback[];\n}\n\nconst sessionStack: Session[] = [];\n\nexport function hasActiveMountSession(): boolean {\n return sessionStack.length > 0;\n}\n\nexport function beginMountSession(): void {\n sessionStack.push({\n mounts: [],\n unmounts: [],\n });\n}\n\nexport function endMountSession(root: Element): void {\n const session = sessionStack.pop();\n if (!session) {\n throw new Error(\"endMountSession called without active mount session\");\n }\n\n // fire-and-forget mount callbacks\n for (const cb of session.mounts) {\n try {\n const r = cb(root);\n if (r instanceof Promise) {\n r.catch((err) => console.error(\"async mount callback failed\", err));\n }\n } catch (err) {\n console.error(\"mount callback failed\", err);\n }\n }\n\n if (session.unmounts.length > 0) {\n const store = (root as any).__unmountCbs as UnmountCallback[] | undefined;\n if (store) {\n store.push(...session.unmounts);\n } else {\n (root as any).__unmountCbs = [...session.unmounts];\n }\n }\n}\n\nexport function mount(cb: MountCallback): void {\n const session = sessionStack[sessionStack.length - 1];\n if (!session) {\n throw new Error(\"mount(cb) called outside of a render session\");\n }\n session.mounts.push(cb);\n}\n\nexport function unmount(cb: UnmountCallback): void {\n const session = sessionStack[sessionStack.length - 1];\n if (!session) {\n throw new Error(\"unmount(cb) called outside of a render session\");\n }\n session.unmounts.push(cb);\n}\n\nexport function runUnmountsForElement(el: Element): void {\n const list = (el as any).__unmountCbs as UnmountCallback[] | undefined;\n if (!list || list.length === 0) return;\n\n for (let i = list.length - 1; i >= 0; i--) {\n try {\n const r = list[i]!();\n if (r instanceof Promise) {\n r.catch((err) => console.error(\"async unmount callback failed\", err));\n }\n } catch (err) {\n console.error(\"unmount callback failed\", err);\n }\n }\n\n (el as any).__unmountCbs = undefined;\n}\n","// signal.ts\n// Synchronous signal with ref-counted subscriptions (prop-safe, leak-safe)\n\ntype UUID = string;\n\nexport type ReadFn<T> = ((cb?: (value: T) => void) => T) & {\n type: \"signal\";\n};\n\nexport function signal<T>(initialValue: T) {\n let value = initialValue;\n const uuid = crypto.randomUUID();\n\n connector.addTopic(uuid);\n\n const read: ReadFn<T> = (cb?: (v: T) => void): T => {\n if (cb) {\n connector.registerClbk(uuid, cb);\n cb(value);\n }\n return value;\n };\n\n read.type = \"signal\";\n\n const write = async (fn: (prev: T) => T | Promise<T>): Promise<void> => {\n const next = fn(value);\n value = next instanceof Promise ? await next : next;\n connector.update(uuid, value);\n };\n\n return [read, write] as const;\n}\n\n/* ============================================================\n * Connector\n * ============================================================ */\n\ninterface CallbackEntry {\n uuid: UUID;\n refCount: number;\n}\n\nexport interface ConnectorInterface {\n addTopic(uuid: UUID): void;\n removeTopic(uuid: UUID): void;\n\n registerClbk<T>(uuid: UUID, cb: (value: T) => void): void;\n removeClbk<T>(uuid: UUID, cb: (value: T) => void): void;\n\n update<T>(uuid: UUID, value: T): void;\n getUuidByClbk<T>(cb: (value: T) => void): UUID;\n}\n\nclass Connector implements ConnectorInterface {\n // uuid → listeners\n private topics = new Map<UUID, Set<(value: any) => void>>();\n\n // callback → { uuid, refCount }\n private callbackMap = new Map<(value: any) => void, CallbackEntry>();\n\n public addTopic(uuid: UUID): void {\n this.topics.set(uuid, new Set());\n }\n\n public removeTopic(uuid: UUID): void {\n const listeners = this.topics.get(uuid);\n if (listeners) {\n for (const cb of listeners) {\n this.callbackMap.delete(cb);\n }\n }\n this.topics.delete(uuid);\n }\n\n public registerClbk<T>(uuid: UUID, cb: (value: T) => void): void {\n const listeners = this.topics.get(uuid);\n if (!listeners) {\n throw new Error(`Connector: unknown topic ${uuid}`);\n }\n\n const existing = this.callbackMap.get(cb as any);\n if (existing) {\n existing.refCount++;\n return;\n }\n\n listeners.add(cb as any);\n this.callbackMap.set(cb as any, {\n uuid,\n refCount: 1,\n });\n }\n\n public removeClbk<T>(uuid: UUID, cb: (value: T) => void): void {\n const entry = this.callbackMap.get(cb as any);\n if (!entry) return;\n\n entry.refCount--;\n if (entry.refCount > 0) return;\n\n const listeners = this.topics.get(entry.uuid);\n listeners?.delete(cb as any);\n\n this.callbackMap.delete(cb as any);\n }\n\n public update<T>(uuid: UUID, value: T): void {\n const listeners = this.topics.get(uuid);\n if (!listeners) return;\n\n for (const listener of listeners) {\n listener(value);\n }\n }\n\n public getUuidByClbk<T>(cb: (value: T) => void): UUID {\n const entry = this.callbackMap.get(cb as any);\n if (!entry) {\n throw new Error(\"Connector: no UUID for callback\");\n }\n return entry.uuid;\n }\n}\n\nexport const connector = new Connector();\n","// effect.ts\nimport type { ReadFn } from \"./signal\";\nimport { unmount, hasActiveMountSession } from \"./lifecycle\";\nimport { connector } from \"./signal\";\n\nexport function effect<T>(\n readFn: ReadFn<T>,\n fn: (value: T) => void | Promise<void>\n): void {\n let initialized = false;\n\n const cb = (val: T) => {\n if (!initialized) {\n initialized = true;\n return;\n }\n\n try {\n const r = fn(val);\n if (r instanceof Promise) {\n r.catch((err) => {\n console.error(\"effect async callback failed\", err);\n });\n }\n } catch (err) {\n console.error(\"effect callback failed\", err);\n }\n };\n\n // subscribe (initial call is ignored)\n readFn(cb);\n\n // cleanup\n if (hasActiveMountSession()) {\n unmount(() => {\n const uuid = connector.getUuidByClbk(cb);\n connector.removeClbk(uuid, cb);\n });\n }\n}\n","// render.ts\n// Fully synchronous renderer.\n// Signal subscriptions are ref-counted and cleaned up via lifecycle unmount.\n\nimport type { JsxNode, VElement, VText, VSignal, ComponentFn } from \"./jsx\";\nimport {\n beginMountSession,\n endMountSession,\n unmount,\n hasActiveMountSession,\n} from \"./lifecycle\";\nimport { connector } from \"./signal\";\n\nexport interface RenderCtx {\n parent: Node & ParentNode;\n self?: Node;\n [k: string]: any;\n}\n\nexport interface RenderResult {\n el: Node;\n}\n\nexport function render(node: JsxNode | null, ctx: RenderCtx): RenderResult {\n if (node == null) {\n return { el: ctx.parent };\n }\n\n // FRAGMENT\n if (Array.isArray(node)) {\n let last: Node = ctx.parent;\n\n for (const child of node) {\n const r = render(child, ctx);\n last = r.el;\n }\n\n return { el: last };\n }\n\n // TEXT\n if (node.kind === \"text\") {\n const el = renderText(node as VText, ctx);\n return { el };\n }\n\n // SIGNAL (text binding)\n if (node.kind === \"signal\") {\n const el = renderSignal(node as VSignal, ctx);\n return { el };\n }\n\n // COMPONENT\n if (typeof (node as VElement).tag === \"function\") {\n const vnode = node as VElement;\n const fn = vnode.tag as ComponentFn;\n\n beginMountSession();\n\n const resolved = fn({ ...vnode.props, ctx }, vnode.children);\n const result = render(resolved, ctx);\n\n if (!(result.el instanceof Element)) {\n throw new Error(\"Component root must be a DOM Element\");\n }\n\n endMountSession(result.el);\n ctx.self = result.el;\n return result;\n }\n\n // HOST\n const el = renderHost(node as VElement, ctx);\n\n const childCtx: RenderCtx = {\n ...ctx,\n parent: el,\n self: ctx.self,\n };\n\n for (const child of (node as VElement).children) {\n render(child, childCtx);\n }\n\n return { el };\n}\n\n/* ------------------------------------------------------------\n * Host rendering\n * ------------------------------------------------------------ */\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\nconst SVG_TAGS = new Set([\n \"svg\",\n \"path\",\n \"circle\",\n \"rect\",\n \"line\",\n \"polyline\",\n \"polygon\",\n \"g\",\n \"defs\",\n \"linearGradient\",\n \"radialGradient\",\n \"stop\",\n \"mask\",\n \"clipPath\",\n \"pattern\",\n \"text\",\n \"tspan\",\n \"use\",\n \"symbol\",\n \"view\",\n \"ellipse\",\n \"foreignObject\",\n]);\n\nfunction renderHost(node: VElement, ctx: RenderCtx): Element {\n if (typeof node.tag !== \"string\") {\n throw new Error(\"Host renderer expects string tag\");\n }\n\n const tag = node.tag;\n const isSvg = SVG_TAGS.has(tag);\n\n const el = isSvg\n ? document.createElementNS(SVG_NS, tag)\n : document.createElement(tag);\n\n const props = node.props ?? {};\n\n for (const [key, value] of Object.entries(props)) {\n if (key === \"ctx\" || key === \"children\") continue;\n\n // EVENTS\n if (key.startsWith(\"on\") && typeof value === \"function\") {\n const evt = key.slice(2).toLowerCase();\n el.addEventListener(evt, value as EventListener);\n continue;\n }\n\n // STYLE (supports signals)\n if (key === \"style\" && value && typeof value === \"object\") {\n for (const [k, v] of Object.entries(value as Record<string, any>)) {\n if (v === undefined) continue;\n\n if (typeof v === \"function\" && v.type === \"signal\") {\n const initial = v();\n (el.style as any)[k] = String(initial);\n\n v((nv: any) => {\n (el.style as any)[k] = String(nv);\n });\n } else {\n (el.style as any)[k] = String(v);\n }\n }\n continue;\n }\n\n // SIGNAL PROPS\n if (typeof value === \"function\" && value.type === \"signal\") {\n const apply = (nv: any) => {\n if (isSvg) {\n el.setAttribute(key, String(nv));\n } else {\n // @ts-ignore\n el[key] = nv;\n }\n };\n\n apply(value());\n bindSignal(value, apply);\n continue;\n }\n\n // NORMAL PROPS\n if (isSvg) {\n el.setAttribute(key, String(value));\n } else if (key in el) {\n // @ts-ignore\n el[key] = value;\n } else {\n el.setAttribute(key, String(value));\n }\n }\n\n ctx.parent.appendChild(el);\n return el;\n}\n\n/* ------------------------------------------------------------\n * Text & Signal rendering\n * ------------------------------------------------------------ */\n\nfunction renderText(node: VText, ctx: RenderCtx): Text {\n const t = document.createTextNode(node.value);\n ctx.parent.appendChild(t);\n return t;\n}\n\nfunction renderSignal(node: VSignal, ctx: RenderCtx): Text {\n const t = document.createTextNode(\"\");\n ctx.parent.appendChild(t);\n\n const cb = (v: any) => {\n t.nodeValue = String(v);\n };\n\n // initial\n t.nodeValue = String(node.read());\n\n // subscribe\n node.read(cb);\n\n // cleanup via lifecycle (ref-count aware)\n if (hasActiveMountSession()) {\n unmount(() => {\n const uuid = connector.getUuidByClbk(cb);\n connector.removeClbk(uuid, cb);\n });\n }\n\n return t;\n}\n\n/* ------------------------------------------------------------\n * Shared signal binding helper\n * ------------------------------------------------------------ */\n\nfunction bindSignal<T>(\n read: (cb?: (value: T) => void) => T,\n apply: (value: T) => void,\n): void {\n const cb = (v: any) => apply(v as T);\n\n read(cb);\n\n if (hasActiveMountSession()) {\n unmount(() => {\n const uuid = connector.getUuidByClbk(cb);\n connector.removeClbk(uuid, cb);\n });\n }\n}\n","// destroy.ts\n\nimport { runUnmountsForElement } from \"./lifecycle\";\n\nexport function destroy(root: Element): void {\n const children = Array.from(root.childNodes);\n\n for (const child of children) {\n destroyChild(child);\n }\n\n runUnmountsForElement(root);\n\n if (root.parentNode) {\n root.parentNode.removeChild(root);\n } else {\n root.remove();\n }\n}\n\nfunction destroyChild(node: Node): void {\n if (node instanceof Element) {\n const children = Array.from(node.childNodes);\n\n for (const child of children) {\n destroyChild(child);\n }\n\n runUnmountsForElement(node);\n\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n } else {\n node.remove();\n }\n\n return;\n }\n\n // Text, Comment, etc.\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\n","// jsx.ts\nimport type { ReadFn } from \"./signal\";\n\nexport type JsxNode = VElement | VText | VSignal;\n\ndeclare global {\n namespace JSX {\n type Element = any;\n\n interface IntrinsicElements {\n [key: string]: any;\n }\n }\n}\n\nexport interface VElement {\n kind: \"element\";\n tag: string | ComponentFn;\n props: Record<string, any>;\n children: JsxNode[];\n}\n\nexport interface VText {\n kind: \"text\";\n value: string;\n}\n\nexport interface VSignal {\n kind: \"signal\";\n read: ReadFn<any>;\n}\n\nexport interface PropsInterface {\n ctx?: any;\n}\n\nexport type ComponentFn = (\n props: PropsInterface,\n children: JsxNode[]\n) => JsxNode | null;\n\nexport function jsx(\n tag: string | ComponentFn,\n props: any,\n ...rawChildren: any[]\n): VElement {\n return {\n kind: \"element\",\n tag,\n props: props ?? {},\n children: rawChildren.flatMap(normalizeChild),\n };\n}\n\nfunction normalizeChild(input: any): JsxNode | JsxNode[] {\n if (input == null || input === false || input === true) return [];\n\n if (typeof input === \"function\" && input?.type === \"signal\") {\n return {\n kind: \"signal\",\n read: input,\n };\n }\n\n if (typeof input === \"string\" || typeof input === \"number\") {\n return {\n kind: \"text\",\n value: String(input),\n };\n }\n\n if (Array.isArray(input)) {\n return input.flatMap(normalizeChild);\n }\n\n return input;\n}\n","// for.ts\nimport { effect } from \"./effect\";\nimport { mount } from \"./lifecycle\";\nimport { render } from \"./render\";\nimport { destroy } from \"./destroy\";\nimport type { ReadFn } from \"./signal\";\nimport { jsx } from \"./jsx\";\n\ntype Uuid = string;\n\ninterface Keyed {\n uuid: Uuid;\n}\n\ninterface ForProps<T extends Keyed> {\n each: ReadFn<T[]>;\n}\n\nexport function For<T extends Keyed>(p: ForProps<T>, [child]: any) {\n const container = jsx(\"csr-for-host\", { style: { display: \"contents\" } });\n\n mount((parent) => {\n const { el } = render(container, { parent });\n const host = el as Element;\n\n const nodes = new Map<Uuid, Element>();\n let order: Uuid[] = [];\n\n function reconcile(values: T[]) {\n const nextOrder: Uuid[] = [];\n\n for (const v of values) {\n if (!v || v.uuid == null) continue;\n\n const id = v.uuid;\n nextOrder.push(id);\n\n if (!nodes.has(id)) {\n const { el } = render(child(v), {\n ...(p as any).ctx,\n parent: host,\n });\n\n if (!(el instanceof Element)) {\n throw new Error(\"For: child root must be an Element\");\n }\n\n nodes.set(id, el);\n }\n }\n\n // remove\n for (const id of order) {\n if (!nextOrder.includes(id)) {\n const el = nodes.get(id);\n if (el) destroy(el);\n nodes.delete(id);\n }\n }\n\n // reorder\n let anchor: ChildNode | null = null;\n for (let i = nextOrder.length - 1; i >= 0; i--) {\n const el = nodes.get(nextOrder[i]!)!;\n host.insertBefore(el, anchor);\n anchor = el;\n }\n\n order = nextOrder;\n }\n\n // initial render (sync, explicit)\n reconcile(p.each());\n\n // reactive updates\n effect(p.each, reconcile);\n });\n\n return null;\n}\n","//fragment.ts\nexport function fragment(p: null, ...childs: any) {\n return childs;\n}\n","// show.ts\nimport { jsx } from \"./jsx\";\nimport { destroy } from \"./destroy\";\nimport { render } from \"./render\";\nimport type { ReadFn } from \"./signal\";\nimport { mount } from \"./lifecycle\";\n\ninterface ShowPropsInterface {\n when: ReadFn<boolean>;\n}\n\nexport function Show(p: ShowPropsInterface, children: any) {\n const host = jsx(\"csr-show-host\", { style: { display: \"contents\" } });\n const content = jsx(\n \"csr-show-content\",\n { style: { display: \"contents\" } },\n ...children\n );\n\n let hostEl: Element | null = null;\n let contentEl: Element | null = null;\n let visible = false;\n\n mount((parent) => {\n // render host once\n const { el: h } = render(host, { parent });\n hostEl = h as Element;\n\n // subscribe to condition signal\n p.when((b) => {\n if (b === visible) return;\n visible = b;\n\n // hide\n if (!visible) {\n if (contentEl) {\n destroy(contentEl);\n contentEl = null;\n }\n return;\n }\n\n // show\n const { el: c } = render(content, {\n ...(p as any).ctx,\n parent: hostEl!,\n });\n\n if (!(c instanceof Element)) {\n throw new Error(\"Show: content root must be an Element\");\n }\n\n contentEl = c;\n });\n });\n\n return null;\n}\n","// repeat.ts\nimport type { ReadFn } from \"../core/signal\";\nimport { signal } from \"../core/signal\";\nimport { For } from \"../core/for\";\nimport { jsx } from \"../core/jsx\";\n\ntype MaybeSignal<T> = T | ReadFn<T>;\n\ninterface RepeatPropsInterface {\n n: MaybeSignal<number>;\n}\n\nexport function Repeat(p: RepeatPropsInterface, children: any[]) {\n // static case\n if (typeof p.n === \"number\") {\n const out: any[] = [];\n for (let i = 0; i < p.n; i++) {\n out.push(children);\n }\n return out;\n }\n\n // reactive case -> delegate to For\n const count = p.n;\n\n const [items, setItems] = signal<{ uuid: string }[]>([]);\n\n // derive structure from n\n count((n) => {\n const next: { uuid: string }[] = [];\n for (let i = 0; i < n; i++) {\n next.push({ uuid: String(i) });\n }\n setItems(() => next);\n });\n\n return <For each={items}>{() => children}</For>;\n}\n","export const breakpoint = {\n mobile: 0, // 0–599 px\n tablet: 601, // 600–1024 px\n laptop: 1025, // 1024–1440 px\n desktop: 1441, // 1440–1920 px\n large: 1921, // >1920 px\n};\n","// use-breakpoint.ts\nimport { signal, type ReadFn } from \"../core/signal\";\nimport { breakpoint } from \"../style/breakpoint\";\n\nexport type BreakpointName = keyof typeof breakpoint;\n\nfunction detectBreakpoint(width: number): BreakpointName {\n if (width >= breakpoint.large) return \"large\";\n if (width >= breakpoint.desktop) return \"desktop\";\n if (width >= breakpoint.laptop) return \"laptop\";\n if (width >= breakpoint.tablet) return \"tablet\";\n return \"mobile\";\n}\n\n// initial value from real window\nconst [breakepoint, write] = signal<BreakpointName>(\n detectBreakpoint(window.innerWidth)\n);\n\n// attach resize listener once\nlet last = breakepoint();\n\nwindow.addEventListener(\"resize\", () => {\n const next = detectBreakpoint(window.innerWidth);\n if (next !== last) {\n last = next;\n write(() => next);\n }\n});\n\nexport function useBreakpoint(): ReadFn<BreakpointName> {\n return breakepoint;\n}\n","// use-custom-event.ts\nimport { unmount } from \"../core/lifecycle\";\n\ntype Handler<T> = (data: T) => void;\n\n/**\n * Creates a custom browser event emitter.\n * If a handler is provided, it is automatically\n * cleaned up on component unmount.\n */\nexport function useCustomEvent<T = any>(topic: string, handler?: Handler<T>) {\n // register listener if handler exists\n if (handler) {\n const listener = (e: Event) => {\n const ce = e as CustomEvent<T>;\n handler(ce.detail);\n };\n\n window.addEventListener(topic, listener);\n\n // automatic cleanup on unmount\n unmount(() => {\n window.removeEventListener(topic, listener);\n });\n }\n\n // emitter (always returned)\n return function emit(data: T) {\n window.dispatchEvent(new CustomEvent(topic, { detail: data }));\n };\n}\n","// use-local-storage.ts\nimport { signal } from \"../core/signal\";\nimport type { ReadFn } from \"../core/signal\";\n\nexport type LocalStorageHook<T> = [\n value: ReadFn<T>,\n setValue: (updater: (prev: T) => T) => void,\n remove: () => void,\n];\n\nexport function useLocalStorage<T>(\n key: string,\n initial: T,\n): LocalStorageHook<T> {\n // Resolve initial value\n let start = initial;\n\n try {\n const raw = localStorage.getItem(key);\n if (raw !== null) {\n start = JSON.parse(raw);\n }\n } catch (err) {\n console.error(`[useLocalStorage] Failed to read key \"${key}\"`, err);\n }\n\n const [value, write] = signal<T>(start);\n\n function setValue(updater: (prev: T) => T) {\n write((prev) => {\n let next: T;\n\n try {\n next = updater(prev);\n } catch (err) {\n console.error(`[useLocalStorage] Updater failed for key \"${key}\"`, err);\n return prev;\n }\n\n try {\n localStorage.setItem(key, JSON.stringify(next));\n } catch (err) {\n console.error(`[useLocalStorage] Failed to write key \"${key}\"`, err);\n }\n\n return next;\n });\n }\n\n function remove() {\n try {\n localStorage.removeItem(key);\n } catch (err) {\n console.error(`[useLocalStorage] Failed to remove key \"${key}\"`, err);\n }\n\n write(() => initial);\n }\n\n return [value, setValue, remove];\n}\n","// use-locale.ts\nimport { signal } from \"../core/signal\";\nimport type { ReadFn } from \"../core/signal\";\n\nexport interface LocaleController {\n locale: ReadFn<string>;\n setLocale: (next: string) => void;\n}\nconst [locale, write] = signal(\"en-US\");\n\nexport function useLocale(): LocaleController {\n return {\n locale,\n setLocale(next: string) {\n write(() => next);\n },\n };\n}\n","// use-navigate.ts\nfunction isExternalUrl(url: string): boolean {\n return url.includes(\"://\");\n}\n\nfunction notifyLocationChange() {\n window.dispatchEvent(new PopStateEvent(\"popstate\"));\n\n window.dispatchEvent(new HashChangeEvent(\"hashchange\"));\n}\n\nexport function useNavigate() {\n const navigate = (to: string | ((prev: string) => string)) => {\n const current =\n window.location.pathname + window.location.search + window.location.hash;\n\n const next = typeof to === \"function\" ? to(current) : to;\n\n // external\n if (isExternalUrl(next)) {\n window.location.href = next;\n return;\n }\n\n // internal\n window.history.pushState(null, \"\", next);\n\n // sync hooks\n notifyLocationChange();\n };\n\n return {\n navigate,\n };\n}\n","// use-session-storage.ts\nimport { signal } from \"../core/signal\";\nimport type { ReadFn } from \"../core/signal\";\n\nexport type SessionStorageHook<T> = [\n value: ReadFn<T>,\n setValue: (updater: (prev: T) => T) => void,\n remove: () => void,\n];\n\nexport function useSessionStorage<T>(\n key: string,\n initial: T,\n): SessionStorageHook<T> {\n let start = initial;\n\n try {\n const raw = sessionStorage.getItem(key);\n if (raw !== null) {\n start = JSON.parse(raw);\n }\n } catch (err) {\n console.error(`[useSessionStorage] Failed to read key \"${key}\"`, err);\n }\n\n const [value, write] = signal<T>(start);\n\n function setValue(updater: (prev: T) => T) {\n write((prev) => {\n let next: T;\n\n try {\n next = updater(prev);\n } catch (err) {\n console.error(\n `[useSessionStorage] Updater failed for key \"${key}\"`,\n err,\n );\n return prev;\n }\n\n try {\n sessionStorage.setItem(key, JSON.stringify(next));\n } catch (err) {\n console.error(`[useSessionStorage] Failed to write key \"${key}\"`, err);\n }\n\n return next;\n });\n }\n\n function remove() {\n try {\n sessionStorage.removeItem(key);\n } catch (err) {\n console.error(`[useSessionStorage] Failed to remove key \"${key}\"`, err);\n }\n\n write(() => initial);\n }\n\n return [value, setValue, remove];\n}\n","// use-translation.ts\nimport { signal, type ReadFn } from \"../core/signal\";\nimport { effect } from \"../core/effect\";\n\nexport type Translations = {\n [key: string]: {\n [locale: string]: string;\n };\n};\n\nexport type Data = {\n [key: string]: string | number | ReadFn<string | number>;\n};\n\n/**\n * Creates a translation function `t`\n * that returns a reactive signal per key.\n */\nexport function useText(locale: ReadFn<string>, text: Translations) {\n return function t(key: string, data?: Data): ReadFn<string> {\n const compute = () => resolve(key, locale(), text, data);\n\n const [read, write] = signal(compute());\n\n // react to locale changes\n effect(locale, () => {\n write(() => compute());\n });\n\n // react to data signal changes\n if (data) {\n for (const value of Object.values(data)) {\n if (typeof value === \"function\" && value.type === \"signal\") {\n effect(value, () => {\n write(() => compute());\n });\n }\n }\n }\n\n return read;\n };\n}\n\nfunction resolve(\n key: string,\n locale: string,\n text: Translations,\n data?: Data,\n): string {\n const entry = text[key];\n if (!entry) return replacePlaceholders(key, data);\n\n // exact match\n if (entry[locale]) {\n return replacePlaceholders(entry[locale], data);\n }\n\n // final fallback\n return replacePlaceholders(key, data);\n}\n\nfunction replacePlaceholders(input: string, data?: Data): string {\n if (!data) return input;\n\n let out = input;\n for (const [key, value] of Object.entries(data)) {\n const v = typeof value === \"function\" ? value() : value;\n out = out.split(`{${key}}`).join(String(v));\n }\n\n return out;\n}\n","// use-url-hash.ts\nimport { signal, type ReadFn } from \"../core/signal\";\n\ntype WriteFn<T> = (value: T | ((prev: T) => T)) => void;\n\nfunction getHash(): string {\n return window.location.hash || \"\";\n}\n\nconst [hash, write] = signal<string>(getHash());\n\nfunction sync() {\n write(() => getHash());\n}\n\nwindow.addEventListener(\"hashchange\", sync);\nwindow.addEventListener(\"popstate\", sync);\n\nfunction setHash(value: string | ((prev: string) => string)) {\n const next = typeof value === \"function\" ? value(hash()) : value;\n\n const normalized =\n next === \"\" ? \"\" : next.startsWith(\"#\") ? next : `#${next}`;\n\n if (normalized !== window.location.hash) {\n const url = window.location.pathname + window.location.search + normalized;\n\n window.history.pushState(null, \"\", url);\n\n sync();\n }\n}\n\nexport function useUrlHash(): [ReadFn<string>, WriteFn<string>] {\n return [hash, setHash];\n}\n","// use-url-param.ts\nimport { signal, type ReadFn } from \"../core/signal\";\n\ntype WriteFn<T> = (value: T | ((prev: T) => T)) => void;\n\nfunction getParams() {\n return new URLSearchParams(window.location.search);\n}\n\nconst [params, write] = signal(getParams());\n\nwindow.addEventListener(\"popstate\", () => {\n write(() => getParams());\n});\n\nfunction getValue(key: string): string {\n return params().get(key) ?? \"\";\n}\n\nfunction setParam(key: string, value: string | ((prev: string) => string)) {\n const current = getParams();\n\n const prev = current.get(key) ?? \"\";\n\n const next = typeof value === \"function\" ? value(prev) : value;\n\n if (next === \"\") {\n current.delete(key);\n } else {\n current.set(key, next);\n }\n\n const url =\n window.location.pathname +\n (current.toString() ? `?${current}` : \"\") +\n window.location.hash;\n\n window.history.pushState(null, \"\", url);\n\n write(() => new URLSearchParams(current));\n}\n\nexport function useUrlParam(key: string): [ReadFn<string>, WriteFn<string>] {\n const [value, setValue] = signal<string>(getValue(key));\n\n const sync = () => {\n setValue(() => getValue(key));\n };\n\n window.addEventListener(\"popstate\", sync);\n\n const writeValue: WriteFn<string> = (next) => {\n setParam(key, next);\n setValue(() => getValue(key));\n };\n\n return [value, writeValue];\n}\n","// use-url-path.ts\nimport { signal, type ReadFn } from \"../core/signal\";\n\ntype WriteFn<T> = (value: T | ((prev: T) => T)) => void;\n\nfunction getPath(): string {\n return window.location.pathname || \"/\";\n}\n\nconst [path, write] = signal<string>(getPath());\n\nwindow.addEventListener(\"popstate\", () => {\n write(() => getPath());\n});\n\nfunction setPath(value: string | ((prev: string) => string)) {\n const current = window.location;\n\n const next = typeof value === \"function\" ? value(path()) : value;\n\n const pathname = next.startsWith(\"/\") ? next : `/${next}`;\n\n if (pathname !== current.pathname) {\n const url = pathname + current.search + current.hash;\n\n window.history.pushState(null, \"\", url);\n\n write(() => getPath());\n }\n}\n\nexport function useUrlPath(): [ReadFn<string>, WriteFn<string>] {\n return [path, setPath];\n}\n","// box.ts\nimport type { ReadFn } from \"../core/signal\";\nimport { jsx } from \"../core/jsx\";\nimport type { DOMEvents, DOMAttrs, MaybeSignal, CSSValue } from \"../core/dom\";\n\nexport interface BoxProps extends DOMEvents, DOMAttrs {\n /**\n * Child nodes rendered inside the box\n */\n children?: any;\n\n // ─────────────────────────────\n // Spacing – Margin\n // ─────────────────────────────\n\n /** Margin (all sides) */\n m?: MaybeSignal<CSSValue>;\n\n /** Margin-bottom */\n mb?: MaybeSignal<CSSValue>;\n\n /** Margin-left */\n ml?: MaybeSignal<CSSValue>;\n\n /** Margin-right */\n mr?: MaybeSignal<CSSValue>;\n\n /** Margin-top */\n mt?: MaybeSignal<CSSValue>;\n\n /** Margin horizontal (left + right) */\n mx?: MaybeSignal<CSSValue>;\n\n /** Margin vertical (top + bottom) */\n my?: MaybeSignal<CSSValue>;\n\n // ─────────────────────────────\n // Spacing – Padding\n // ─────────────────────────────\n\n /** Padding (all sides) */\n p?: MaybeSignal<CSSValue>;\n\n /** Padding-bottom */\n pb?: MaybeSignal<CSSValue>;\n\n /** Padding-left */\n pl?: MaybeSignal<CSSValue>;\n\n /** Padding-right */\n pr?: MaybeSignal<CSSValue>;\n\n /** Padding-top */\n pt?: MaybeSignal<CSSValue>;\n\n /** Padding horizontal (left + right) */\n px?: MaybeSignal<CSSValue>;\n\n /** Padding vertical (top + bottom) */\n py?: MaybeSignal<CSSValue>;\n\n // ─────────────────────────────\n // Borders\n // ─────────────────────────────\n\n /** Border (all sides) */\n b?: MaybeSignal<CSSValue>;\n\n /** Border-top */\n bt?: MaybeSignal<CSSValue>;\n\n /** Border-right */\n br?: MaybeSignal<CSSValue>;\n\n /** Border-bottom */\n bb?: MaybeSignal<CSSValue>;\n\n /** Border-left */\n bl?: MaybeSignal<CSSValue>;\n\n /** Border horizontal (left + right) */\n bx?: MaybeSignal<CSSValue>;\n\n /** Border vertical (top + bottom) */\n by?: MaybeSignal<CSSValue>;\n\n // ─────────────────────────────\n // Border Radius\n // ─────────────────────────────\n\n /** Border radius (all corners) */\n r?: MaybeSignal<CSSValue>;\n\n /** Border-top radius */\n rt?: MaybeSignal<CSSValue>;\n\n /** Border-right radius */\n rr?: MaybeSignal<CSSValue>;\n\n /** Border-bottom radius */\n rb?: MaybeSignal<CSSValue>;\n\n /** Border-left radius */\n rl?: MaybeSignal<CSSValue>;\n\n /** Border-top-right radius */\n rtr?: MaybeSignal<CSSValue>;\n\n /** Border-top-left radius */\n rtl?: MaybeSignal<CSSValue>;\n\n /** Border-bottom-right radius */\n rbr?: MaybeSignal<CSSValue>;\n\n /** Border-bottom-left radius */\n rbl?: MaybeSignal<CSSValue>;\n\n // ─────────────────────────────\n // Sizing\n // ─────────────────────────────\n\n /** Size shortcut (width + height) */\n s?: MaybeSignal<CSSValue>;\n\n /** Height */\n h?: MaybeSignal<CSSValue>;\n\n /** Width */\n w?: MaybeSignal<CSSValue>;\n\n /** Max height */\n maxH?: MaybeSignal<CSSValue>;\n\n /** Max width */\n maxW?: MaybeSignal<CSSValue>;\n\n /** Min height */\n minH?: MaybeSignal<CSSValue>;\n\n /** Min width */\n minW?: MaybeSignal<CSSValue>;\n\n // ─────────────────────────────\n // Appearance\n // ─────────────────────────────\n\n /** Opacity (0–1) */\n o?: MaybeSignal<CSSValue>;\n\n /** Box shadow */\n sh?: MaybeSignal<CSSValue>;\n\n /** Background */\n bg?: MaybeSignal<CSSValue>;\n\n /**\n * Additional inline styles (merged last)\n * Values support signals\n */\n style?: Record<string, MaybeSignal<CSSValue> | undefined>;\n}\n\nexport function Box(p: BoxProps, children: any[]) {\n return (\n <div\n {...p}\n style={{\n marginBottom: p.mb ?? p.my ?? p.m,\n marginLeft: p.ml ?? p.mx ?? p.m,\n marginRight: p.mr ?? p.mx ?? p.m,\n marginTop: p.mt ?? p.my ?? p.m,\n\n paddingBottom: p.pb ?? p.py ?? p.p,\n paddingLeft: p.pl ?? p.px ?? p.p,\n paddingRight: p.pr ?? p.px ?? p.p,\n paddingTop: p.pt ?? p.py ?? p.p,\n\n background: p.bg,\n opacity: p.o,\n boxShadow: p.sh,\n\n borderTop: p.bt ?? p.by ?? p.b,\n borderRight: p.br ?? p.bx ?? p.b,\n borderBottom: p.bb ?? p.by ?? p.b,\n borderLeft: p.bl ?? p.bx ?? p.b,\n\n borderTopRightRadius: p.rtr ?? p.rt ?? p.rr ?? p.r,\n borderTopLeftRadius: p.rtl ?? p.rt ?? p.rl ?? p.r,\n borderBottomRightRadius: p.rbr ?? p.rb ?? p.rr ?? p.r,\n borderBottomLeftRadius: p.rbl ?? p.rb ?? p.rl ?? p.r,\n\n width: p.w ?? p.s,\n height: p.h ?? p.s,\n maxWidth: p.maxW,\n maxHeight: p.maxH,\n minWidth: p.minW,\n minHeight: p.minH,\n\n ...p.style,\n }}\n >\n {children}\n </div>\n );\n}\n","import { Box } from \"./box\";\nimport { jsx } from \"../core/jsx\";\nimport type { BoxProps } from \"./box\";\n\n/**\n * Absolute positioned component\n * Positions element absolutely within the nearest positioned ancestor\n */\nexport interface AbsolutePropertiesInterface extends BoxProps {\n /**\n * Distance from top edge of containing block\n * (e.g. \"10px\", \"1rem\", \"5%\")\n */\n top?: string;\n\n /**\n * Distance from right edge of containing block\n * (e.g. \"10px\", \"1rem\", \"5%\")\n */\n right?: string;\n\n /**\n * Distance from bottom edge of containing block\n * (e.g. \"10px\", \"1rem\", \"5%\")\n */\n bottom?: string;\n\n /**\n * Distance from left edge of containing block\n * (e.g. \"10px\", \"1rem\", \"5%\")\n */\n left?: string;\n}\n\nexport function Absolute(p: AbsolutePropertiesInterface, children: any[]) {\n return (\n <Box\n {...p}\n style={{\n position: \"absolute\",\n\n top: p.top,\n right: p.right,\n bottom: p.bottom,\n left: p.left,\n\n ...p.style,\n }}\n >\n {children}\n </Box>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport { Box } from \"./box\";\nimport type { BoxProps } from \"./box\";\n\n/**\n * Flex item component\n * Controls individual item behavior in flex containers\n */\nexport interface FlexItemPropertiesInterface extends BoxProps {\n /**\n * Flex shorthand (grow, shrink, basis)\n * e.g. \"1\", \"none\", \"0 1 auto\"\n */\n flx?: string;\n\n /**\n * Align-self (cross-axis alignment)\n */\n as?: \"auto\" | \"flex-start\" | \"flex-end\" | \"center\" | \"baseline\" | \"stretch\";\n\n /**\n * Flex grow factor\n */\n flxGrow?: string;\n\n /**\n * Flex shrink factor\n */\n flxShrink?: string;\n\n /**\n * Flex basis\n */\n flxBasis?: string;\n}\n\nexport function FlexItem(p: FlexItemPropertiesInterface, children: any[]) {\n return (\n <Box\n {...p}\n style={{\n flex: p.flx,\n alignSelf: p.as,\n flexGrow: p.flxGrow,\n flexShrink: p.flxShrink,\n flexBasis: p.flxBasis,\n\n ...p.style,\n }}\n >\n {children}\n </Box>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport { FlexItem } from \"./flex-item\";\nimport type { FlexItemPropertiesInterface } from \"./flex-item\";\n\n/**\n * Flex container component\n * Core flexbox layout primitive\n */\nexport interface FlexPropertiesInterface extends FlexItemPropertiesInterface {\n /**\n * Justify-content (main axis alignment)\n */\n jc?:\n | \"flex-start\"\n | \"flex-end\"\n | \"center\"\n | \"space-between\"\n | \"space-around\"\n | \"space-evenly\";\n\n /**\n * Align-items (cross axis alignment)\n */\n ai?: \"stretch\" | \"flex-start\" | \"flex-end\" | \"center\" | \"baseline\";\n\n /**\n * Align-content (multi-line alignment)\n */\n ac?:\n | \"flex-start\"\n | \"flex-end\"\n | \"center\"\n | \"space-between\"\n | \"space-around\"\n | \"stretch\";\n\n /**\n * Gap between items\n */\n g?: string;\n\n /**\n * Flex direction\n */\n flxDirection?: \"row\" | \"row-reverse\" | \"column\" | \"column-reverse\";\n\n /**\n * Flex wrap\n */\n flxWrap?: \"nowrap\" | \"wrap\" | \"wrap-reverse\";\n\n /**\n * Flex-flow shorthand\n */\n flxFlow?: `${\"row\" | \"row-reverse\" | \"column\" | \"column-reverse\"} ${\n | \"nowrap\"\n | \"wrap\"\n | \"wrap-reverse\"}`;\n}\n\nexport function Flex(p: FlexPropertiesInterface, children: any[]) {\n return (\n <FlexItem\n {...p}\n style={{\n display: \"flex\",\n\n justifyContent: p.jc,\n alignItems: p.ai,\n alignContent: p.ac,\n\n gap: p.g,\n\n flexDirection: p.flxDirection,\n flexWrap: p.flxWrap,\n flexFlow: p.flxFlow,\n\n ...p.style,\n }}\n >\n {children}\n </FlexItem>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport { Flex } from \"./flex\";\nimport type { FlexPropertiesInterface } from \"./flex\";\n\n/**\n * Center component\n * Centers children horizontally and vertically using flexbox\n */\nexport interface CenterPropertiesInterface extends FlexPropertiesInterface {}\n\nexport function Center(p: CenterPropertiesInterface, children: any[]) {\n return (\n <Flex {...p} ai={p.ai ?? \"center\"} jc={p.jc ?? \"center\"}>\n {children}\n </Flex>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport { Box } from \"./box\";\nimport type { BoxProps } from \"./box\";\n\n/**\n * Fixed positioned component\n * Positions element relative to the viewport\n */\nexport interface FixedPropertiesInterface extends BoxProps {\n /** Top offset (e.g. \"10px\") */\n top?: string;\n\n /** Right offset */\n right?: string;\n\n /** Bottom offset */\n bottom?: string;\n\n /** Left offset */\n left?: string;\n\n /** Stacking order (z-index) */\n zIndex?: string;\n}\n\nexport function Fixed(p: FixedPropertiesInterface, children: any[]) {\n return (\n <Box\n {...p}\n style={{\n position: \"fixed\",\n\n top: p.top,\n right: p.right,\n bottom: p.bottom,\n left: p.left,\n zIndex: p.zIndex,\n\n ...p.style,\n }}\n >\n {children}\n </Box>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport { Box } from \"./box\";\nimport type { BoxProps } from \"./box\";\n\n/**\n * Grid item component\n * Controls individual item placement inside CSS Grid containers\n */\nexport interface GridItemPropertiesInterface extends BoxProps {\n /**\n * Grid area name or shorthand\n * (e.g. \"header\", \"1 / 1 / 3 / 2\")\n */\n grdArea?: string;\n\n /**\n * Grid column placement\n * (e.g. \"1 / span 2\", \"sidebar\")\n */\n grdColumn?: string;\n\n /**\n * Grid row placement\n * (e.g. \"1 / span 3\", \"content\")\n */\n grdRow?: string;\n}\n\nexport function GridItem(p: GridItemPropertiesInterface, children: any[]) {\n return (\n <Box\n {...p}\n style={{\n gridArea: p.grdArea,\n gridColumn: p.grdColumn,\n gridRow: p.grdRow,\n\n ...p.style,\n }}\n >\n {children}\n </Box>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport { GridItem } from \"./grid-item\";\nimport type { GridItemPropertiesInterface } from \"./grid-item\";\n\n/**\n * Grid container component\n * Core CSS Grid layout primitive\n */\nexport interface GridPropertiesInterface extends GridItemPropertiesInterface {\n /** Gap between grid items */\n g?: string;\n\n /** Align-items (block axis) */\n ai?: \"stretch\" | \"start\" | \"end\" | \"center\" | \"baseline\";\n\n /** Justify-items (inline axis) */\n ji?: \"stretch\" | \"start\" | \"end\" | \"center\" | \"baseline\";\n\n /** Align-self (container as grid item) */\n as?:\n | \"auto\"\n | \"normal\"\n | \"stretch\"\n | \"center\"\n | \"start\"\n | \"end\"\n | \"self-start\"\n | \"self-end\"\n | \"flex-start\"\n | \"flex-end\"\n | \"left\"\n | \"right\";\n\n // Grid templates\n grdTemplateColumns?: string;\n grdTemplateRows?: string;\n grdTemplateAreas?: string;\n grdTemplate?: string;\n\n // Auto grid\n grdAutoColumns?: string;\n grdAutoRows?: string;\n grdAutoFlow?: \"row\" | \"column\" | \"row dense\" | \"column dense\";\n\n // Placement\n grd?: string;\n grdRowStart?: string;\n grdColumnStart?: string;\n grdRowEnd?: string;\n grdColumnEnd?: string;\n grdRow?: string;\n grdColumn?: string;\n\n // Gaps\n grdRowGap?: string;\n grdColumnGap?: string;\n}\n\nexport function Grid(p: GridPropertiesInterface, children: any[]) {\n return (\n <GridItem\n {...p}\n style={{\n display: \"grid\",\n\n gap: p.g,\n\n alignItems: p.ai,\n justifyItems: p.ji,\n alignSelf: p.as,\n\n gridTemplateColumns: p.grdTemplateColumns,\n gridTemplateRows: p.grdTemplateRows,\n gridTemplateAreas: p.grdTemplateAreas,\n gridTemplate: p.grdTemplate,\n\n gridAutoColumns: p.grdAutoColumns,\n gridAutoRows: p.grdAutoRows,\n gridAutoFlow: p.grdAutoFlow,\n\n gridArea: p.grd,\n gridRowStart: p.grdRowStart,\n gridColumnStart: p.grdColumnStart,\n gridRowEnd: p.grdRowEnd,\n gridColumnEnd: p.grdColumnEnd,\n gridRow: p.grdRow,\n gridColumn: p.grdColumn,\n\n rowGap: p.grdRowGap,\n columnGap: p.grdColumnGap,\n\n ...p.style,\n }}\n >\n {children}\n </GridItem>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport { Box } from \"./box\";\nimport type { BoxProps } from \"./box\";\n\n/**\n * Relative positioned component\n * Establishes a positioning context for absolute children\n */\nexport interface RelativePropertiesInterface extends BoxProps {\n /**\n * Stacking order (z-index)\n * (e.g. \"1\", \"auto\", \"var(--z-index-modal)\")\n */\n zIndex?: string;\n}\n\nexport function Relative(p: RelativePropertiesInterface, children: any[]) {\n return (\n <Box\n {...p}\n style={{\n position: \"relative\",\n zIndex: p.zIndex,\n\n ...p.style,\n }}\n >\n {children}\n </Box>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport { Relative } from \"./relative\";\nimport { Absolute } from \"./absolute\";\nimport type { BoxProps } from \"./box\";\n\n/**\n * Scroll component\n * Creates a scrollable container filling its parent\n */\nexport interface ScrollPropertiesInterface extends BoxProps {}\n\nexport function Scroll(p: ScrollPropertiesInterface, children: any[]) {\n return (\n <Relative s=\"100%\">\n <Absolute\n top=\"0\"\n right=\"0\"\n bottom=\"0\"\n left=\"0\"\n {...p}\n style={{\n overflow: \"auto\",\n ...p.style,\n }}\n >\n {children}\n </Absolute>\n </Relative>\n );\n}\n","import { Flex } from \"./flex\";\nimport { jsx } from \"../core\";\nimport type { FlexPropertiesInterface } from \"./flex\";\n\n/**\n * Stack component\n * Vertical layout primitive (flex-direction: column by default)\n */\nexport interface StackPropertiesInterface extends FlexPropertiesInterface {}\n\nexport function Stack(p: StackPropertiesInterface, children: any[]) {\n return (\n <Flex {...p} flxDirection={p.flxDirection ?? \"column\"}>\n {children}\n </Flex>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport { Box } from \"./box\";\nimport type { BoxProps } from \"./box\";\n\n/**\n * Sticky positioned component\n * Sticks to a position within its scroll container\n */\nexport interface StickyPropertiesInterface extends BoxProps {\n /** Top offset (e.g. \"10px\") */\n top?: string;\n\n /** Right offset */\n right?: string;\n\n /** Bottom offset */\n bottom?: string;\n\n /** Left offset */\n left?: string;\n\n /** Stacking order (z-index) */\n zIndex?: string;\n}\n\nexport function Sticky(p: StickyPropertiesInterface, children: any[]) {\n return (\n <Box\n {...p}\n style={{\n position: \"sticky\",\n\n top: p.top,\n right: p.right,\n bottom: p.bottom,\n left: p.left,\n zIndex: p.zIndex,\n\n ...p.style,\n }}\n >\n {children}\n </Box>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport type { DOMAttrs, DOMEvents } from \"../core/dom\";\n\n/**\n * Text component\n * Typographic primitive for rendering text elements\n */\nexport interface TextPropertiesInterface extends DOMAttrs, DOMEvents {\n /** Text content */\n children?: any;\n\n /**\n * HTML tag to render\n * @default \"p\"\n */\n tag?: \"span\" | \"p\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n\n // ─────────────────────────────\n // Text styling\n // ─────────────────────────────\n\n /** Text alignment */\n a?: \"left\" | \"right\" | \"center\" | \"justify\";\n\n /** Font family */\n ff?: string;\n\n /** Font weight */\n fw?: number;\n\n /** Font size */\n fs?: string;\n\n /** Line height */\n lh?: string;\n\n /** Letter spacing */\n ls?: string;\n\n /** Font style */\n s?: \"normal\" | \"italic\";\n\n /** Text color */\n c?: string;\n\n // ─────────────────────────────\n // Spacing – Margin\n // ─────────────────────────────\n\n m?: string;\n mb?: string;\n ml?: string;\n mr?: string;\n mt?: string;\n mx?: string;\n my?: string;\n\n // ─────────────────────────────\n // Spacing – Padding\n // ─────────────────────────────\n\n p?: string;\n pb?: string;\n pl?: string;\n pr?: string;\n pt?: string;\n px?: string;\n py?: string;\n\n /** Background */\n bg?: string;\n}\n\nexport function Text(p: TextPropertiesInterface, children: any[]) {\n const Tag = p.tag ?? \"p\";\n\n return jsx(\n Tag,\n {\n ...p,\n style: {\n textAlign: p.a,\n fontFamily: p.ff,\n fontWeight: p.fw,\n fontSize: p.fs,\n lineHeight: p.lh,\n letterSpacing: p.ls,\n fontStyle: p.s,\n color: p.c,\n\n margin: p.m,\n marginBottom: p.mb ?? p.my ?? p.m,\n marginLeft: p.ml ?? p.mx ?? p.m,\n marginRight: p.mr ?? p.mx ?? p.m,\n marginTop: p.mt ?? p.my ?? p.m,\n\n padding: p.p,\n paddingBottom: p.pb ?? p.py ?? p.p,\n paddingLeft: p.pl ?? p.px ?? p.p,\n paddingRight: p.pr ?? p.px ?? p.p,\n paddingTop: p.pt ?? p.py ?? p.p,\n\n background: p.bg,\n },\n },\n ...children\n );\n}\n","export const color = {\n brand: \"#000\",\n onBrand: \"#fff\",\n\n gray0: \"#f8f9fa\",\n gray100: \"#f1f3f5\",\n gray200: \"#e9ecef\",\n gray300: \"#dee2e6\",\n gray400: \"#ced4da\",\n gray500: \"#adb5bd\",\n gray600: \"#868e96\",\n gray700: \"#495057\",\n gray800: \"#343a40\",\n gray900: \"#212529\",\n\n red0: \"#fff5f5\",\n red100: \"#ffe3e3\",\n red200: \"#ffc9c9\",\n red300: \"#ffa8a8\",\n red400: \"#ff8787\",\n red500: \"#ff6b6b\",\n red600: \"#fa5252\",\n red700: \"#f03e3e\",\n red800: \"#e03131\",\n red900: \"#c92a2a\",\n\n pink0: \"#fff0f6\",\n pink100: \"#ffdeeb\",\n pink200: \"#fcc2d7\",\n pink300: \"#faa2c1\",\n pink400: \"#f783ac\",\n pink500: \"#f06595\",\n pink600: \"#e64980\",\n pink700: \"#d6336c\",\n pink800: \"#c2255c\",\n pink900: \"#a61e4d\",\n\n grape0: \"#f8f0fc\",\n grape100: \"#f3d9fa\",\n grape200: \"#eebefa\",\n grape300: \"#e599f7\",\n grape400: \"#da77f2\",\n grape500: \"#cc5de8\",\n grape600: \"#be4bdb\",\n grape700: \"#ae3ec9\",\n grape800: \"#9c36b5\",\n grape900: \"#862e9c\",\n\n violet0: \"#f3f0ff\",\n violet100: \"#e5dbff\",\n violet200: \"#d0bfff\",\n violet300: \"#b197fc\",\n violet400: \"#9775fa\",\n violet500: \"#845ef7\",\n violet600: \"#7950f2\",\n violet700: \"#7048e8\",\n violet800: \"#6741d9\",\n violet900: \"#5f3dc4\",\n\n indigo0: \"#edf2ff\",\n indigo100: \"#dbe4ff\",\n indigo200: \"#bac8ff\",\n indigo300: \"#91a7ff\",\n indigo400: \"#748ffc\",\n indigo500: \"#5c7cfa\",\n indigo600: \"#4c6ef5\",\n indigo700: \"#4263eb\",\n indigo800: \"#3b5bdb\",\n indigo900: \"#364fc7\",\n\n blue0: \"#e7f5ff\",\n blue100: \"#d0ebff\",\n blue200: \"#a5d8ff\",\n blue300: \"#74c0fc\",\n blue400: \"#4dabf7\",\n blue500: \"#339af0\",\n blue600: \"#228be6\",\n blue700: \"#1c7ed6\",\n blue800: \"#1971c2\",\n blue900: \"#1864ab\",\n\n cyan0: \"#e3fafc\",\n cyan100: \"#c5f6fa\",\n cyan200: \"#99e9f2\",\n cyan300: \"#66d9e8\",\n cyan400: \"#3bc9db\",\n cyan500: \"#22b8cf\",\n cyan600: \"#15aabf\",\n cyan700: \"#1098ad\",\n cyan800: \"#0c8599\",\n cyan900: \"#0b7285\",\n\n teal0: \"#e6fcf5\",\n teal100: \"#c3fae8\",\n teal200: \"#96f2d7\",\n teal300: \"#63e6be\",\n teal400: \"#38d9a9\",\n teal500: \"#20c997\",\n teal600: \"#12b886\",\n teal700: \"#0ca678\",\n teal800: \"#099268\",\n teal900: \"#087f5b\",\n\n green0: \"#ebfbee\",\n green100: \"#d3f9d8\",\n green200: \"#b2f2bb\",\n green300: \"#8ce99a\",\n green400: \"#69db7c\",\n green500: \"#51cf66\",\n green600: \"#40c057\",\n green700: \"#37b24d\",\n green800: \"#2f9e44\",\n green900: \"#2b8a3e\",\n\n lime0: \"#f4fce3\",\n lime100: \"#e9fac8\",\n lime200: \"#d8f5a2\",\n lime300: \"#c0eb75\",\n lime400: \"#a9e34b\",\n lime500: \"#94d82d\",\n lime600: \"#82c91e\",\n lime700: \"#74b816\",\n lime800: \"#66a80f\",\n lime900: \"#5c940d\",\n\n yellow0: \"#fff9db\",\n yellow100: \"#fff3bf\",\n yellow200: \"#ffec99\",\n yellow300: \"#ffe066\",\n yellow400: \"#ffd43b\",\n yellow500: \"#fcc419\",\n yellow600: \"#fab005\",\n yellow700: \"#f59f00\",\n yellow800: \"#f08c00\",\n yellow900: \"#e67700\",\n\n orange0: \"#fff4e6\",\n orange100: \"#ffe8cc\",\n orange200: \"#ffd8a8\",\n orange300: \"#ffc078\",\n orange400: \"#ffa94d\",\n orange500: \"#ff922b\",\n orange600: \"#fd7e14\",\n orange700: \"#f76707\",\n orange800: \"#e8590c\",\n orange900: \"#d9480f\",\n};\n","const family = {\n sans: \"sans-serif\",\n serif: \"serif\",\n mono: \"monospace\",\n};\n\nconst letterSpacing = {\n xs: \"-0.05em\", // Extra small\n sm: \"-0.025em\", // Small\n md: \"0em\", // Medium\n lg: \"0.025em\", // Large\n xl: \"0.05em\", // Extra large\n \"2xl\": \"0.1em\", // 2 times extra large\n \"3xl\": \"0.15em\", // 3 times extra large\n \"4xl\": \"0.2em\", // 4 times extra large\n \"5xl\": \"0.25em\", // 5 times extra large\n \"6xl\": \"0.3em\", // 6 times extra large\n \"7xl\": \"0.35em\", // 7 times extra large\n \"8xl\": \"0.4em\", // 8 times extra large\n \"9xl\": \"0.45em\", // 9 times extra large\n};\n\nconst lineHeight = {\n xs: \"1rem\", // Extra small\n sm: \"1.25rem\", // Small\n md: \"1.5rem\", // Medium\n lg: \"1.75rem\", // Large\n xl: \"2rem\", // Extra large\n \"2xl\": \"2.25rem\", // 2 times extra large\n \"3xl\": \"2.5rem\", // 3 times extra large\n \"4xl\": \"2.75rem\", // 4 times extra large\n \"5xl\": \"3rem\", // 5 times extra large\n \"6xl\": \"3.25rem\", // 6 times extra large\n \"7xl\": \"3.5rem\", // 7 times extra large\n \"8xl\": \"3.75rem\", // 8 times extra large\n \"9xl\": \"4rem\", // 9 times extra large\n};\n\nconst size = {\n xs: \"0.75rem\", // Extra small\n sm: \"0.875rem\", // Small\n md: \"1rem\", // Medium\n lg: \"1.125rem\", // Large\n xl: \"1.25rem\", // Extra large\n \"2xl\": \"1.5rem\", // 2 times extra large\n \"3xl\": \"1.875rem\", // 3 times extra large\n \"4xl\": \"2.25rem\", // 4 times extra large\n \"5xl\": \"3rem\", // 5 times extra large\n \"6xl\": \"3.75rem\", // 6 times extra large\n \"7xl\": \"4.5rem\", // 7 times extra large\n \"8xl\": \"6rem\", // 8 times extra large\n \"9xl\": \"8rem\", // 9 times extra large\n};\n\nconst style = {\n normal: \"normal\",\n italic: \"italic\",\n};\nconst weight = {\n thin: 100, // Thin\n extralight: 200, // Extra Light\n light: 300, // Light\n normal: 400, // Normal\n medium: 500, // Medium\n semibold: 600, // Semi-bold\n bold: 700, // Bold\n extrabold: 800, // Extra Bold\n black: 900, // Black\n};\n\nexport const font = {\n family,\n size,\n weight,\n style,\n lineHeight,\n letterSpacing,\n};\n","export const radius = {\n sm: \"0.125rem\", // 2px\n md: \"0.375rem\", // 6px\n lg: \"0.5rem\", // 8px\n xl: \"0.75rem\", // 12px\n \"2xl\": \"1rem\", // 16px\n \"3xl\": \"1.5rem\", // 24px\n full: \"9999px\", // full circle\n}\n","export const shadow = {\n sm: \"0 1px 2px 0 rgb(0 0 0 / 0.05)\",\n md: \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",\n lg: \"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)\",\n xl: \"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)\",\n \"2xl\": \"0 25px 50px -12px rgb(0 0 0 / 0.25)\",\n inner: \"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)\",\n}\n","export const size = {\n xs: \"0.75rem\", // Extra small\n sm: \"0.875rem\", // Small\n md: \"1rem\", // Medium\n lg: \"1.125rem\", // Large\n xl: \"1.25rem\", // Extra large\n \"2xl\": \"1.5rem\", // 2 times extra large\n \"3xl\": \"1.875rem\", // 3 times extra large\n \"4xl\": \"2.25rem\", // 4 times extra large\n \"5xl\": \"3rem\", // 5 times extra large\n \"6xl\": \"3.75rem\", // 6 times extra large\n \"7xl\": \"4.5rem\", // 7 times extra large\n \"8xl\": \"6rem\", // 8 times extra large\n \"9xl\": \"8rem\", // 9 times extra large\n\n // Fractional sizes\n \"1/12\": \"8.333333%\",\n \"2/12\": \"16.666667%\", // = 1/6\n \"3/12\": \"25%\", // = 1/4\n \"4/12\": \"33.333333%\", // = 1/3\n \"5/12\": \"41.666667%\",\n \"6/12\": \"50%\", // = 1/2\n \"7/12\": \"58.333333%\",\n \"8/12\": \"66.666667%\", // = 2/3\n \"9/12\": \"75%\", // = 3/4\n \"10/12\": \"83.333333%\", // = 5/6\n \"11/12\": \"91.666667%\",\n \"1/5\": \"20%\",\n \"2/5\": \"40%\",\n \"3/5\": \"60%\",\n \"4/5\": \"80%\",\n \"1/4\": \"25%\",\n \"3/4\": \"75%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/2\": \"50%\",\n full: \"100%\",\n};\n","export const space = {\n xs: \"0.125rem\", // Extra Small (2px)\n sm: \"0.25rem\", // Small (4px)\n md: \"0.5rem\", // Medium (8px)\n lg: \"0.75rem\", // Large (12px)\n xl: \"1rem\", // Extra Large (16px)\n xxl: \"1.5rem\", // 2 Extra Large (24px)\n \"3xl\": \"2rem\", // 3 Extra Large (32px)\n \"4xl\": \"2.5rem\", // 4 Extra Large (40px)\n \"5xl\": \"3rem\", // 5 Extra Large (48px)\n \"6xl\": \"3.5rem\", // 6 Extra Large (56px)\n \"7xl\": \"4rem\", // 7 Extra Large (64px)\n \"8xl\": \"4.5rem\", // 8 Extra Large (72px)\n}\n","export const style = {\n normal: \"normal\",\n italic: \"italic\",\n}\n","export const zIndex = {\n base: \"100\",\n background: \"200\",\n menu: \"300\",\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["sessionStack: Session[]","read: ReadFn<T>","write","last: Node","last","childCtx: RenderCtx","order: Uuid[]","nextOrder: Uuid[]","el","anchor: ChildNode | null","hostEl: Element | null","contentEl: Element | null","out: any[]","next: { uuid: string }[]","write","write","next: T","write","write","next: T","locale","write","write","write","sync","writeValue: WriteFn<string>","size","style"],"sources":["../core/lifecycle.ts","../core/signal.ts","../core/effect.ts","../core/render.ts","../core/destroy.ts","../core/jsx.ts","../core/for.ts","../core/fragment.ts","../core/show.ts","../helper/repeat.tsx","../helper/portal.tsx","../style/breakpoint.ts","../hooks/use-breakpoint.ts","../hooks/use-custom-event.ts","../hooks/use-local-storage.ts","../hooks/use-locale.ts","../hooks/use-navigate.ts","../hooks/use-session-storage.ts","../hooks/use-text.ts","../hooks/use-url-hash.ts","../hooks/use-url-param.ts","../hooks/use-url-path.ts","../layout/box.tsx","../layout/absolute.tsx","../layout/flex-item.tsx","../layout/flex.tsx","../layout/center.tsx","../layout/fixed.tsx","../layout/grid-item.tsx","../layout/grid.tsx","../layout/relative.tsx","../layout/scroll.tsx","../layout/stack.tsx","../layout/sticky.tsx","../layout/text.tsx","../style/color.ts","../style/font.ts","../style/radius.ts","../style/shadow.ts","../style/size.ts","../style/space.ts","../style/style.ts","../style/z-index.ts"],"sourcesContent":["// lifecycle.ts\n// Synchronous render lifecycle with async-tolerant mount/unmount callbacks\n\nexport type MountCallback = (el: Element) => void | Promise<void>;\nexport type UnmountCallback = () => void | Promise<void>;\n\ninterface Session {\n mounts: MountCallback[];\n unmounts: UnmountCallback[];\n}\n\nconst sessionStack: Session[] = [];\n\nexport function hasActiveMountSession(): boolean {\n return sessionStack.length > 0;\n}\n\nexport function beginMountSession(): void {\n sessionStack.push({\n mounts: [],\n unmounts: [],\n });\n}\n\nexport function endMountSession(root: Element): void {\n const session = sessionStack.pop();\n if (!session) {\n throw new Error(\"endMountSession called without active mount session\");\n }\n\n // fire-and-forget mount callbacks\n for (const cb of session.mounts) {\n try {\n const r = cb(root);\n if (r instanceof Promise) {\n r.catch((err) => console.error(\"async mount callback failed\", err));\n }\n } catch (err) {\n console.error(\"mount callback failed\", err);\n }\n }\n\n if (session.unmounts.length > 0) {\n const store = (root as any).__unmountCbs as UnmountCallback[] | undefined;\n if (store) {\n store.push(...session.unmounts);\n } else {\n (root as any).__unmountCbs = [...session.unmounts];\n }\n }\n}\n\nexport function mount(cb: MountCallback): void {\n const session = sessionStack[sessionStack.length - 1];\n if (!session) {\n throw new Error(\"mount(cb) called outside of a render session\");\n }\n session.mounts.push(cb);\n}\n\nexport function unmount(cb: UnmountCallback): void {\n const session = sessionStack[sessionStack.length - 1];\n if (!session) {\n throw new Error(\"unmount(cb) called outside of a render session\");\n }\n session.unmounts.push(cb);\n}\n\nexport function runUnmountsForElement(el: Element): void {\n const list = (el as any).__unmountCbs as UnmountCallback[] | undefined;\n if (!list || list.length === 0) return;\n\n for (let i = list.length - 1; i >= 0; i--) {\n try {\n const r = list[i]!();\n if (r instanceof Promise) {\n r.catch((err) => console.error(\"async unmount callback failed\", err));\n }\n } catch (err) {\n console.error(\"unmount callback failed\", err);\n }\n }\n\n (el as any).__unmountCbs = undefined;\n}\n","// signal.ts\n// Synchronous signal with ref-counted subscriptions (prop-safe, leak-safe)\n\ntype UUID = string;\n\nexport type ReadFn<T> = ((cb?: (value: T) => void) => T) & {\n type: \"signal\";\n};\n\nexport function signal<T>(initialValue: T) {\n let value = initialValue;\n const uuid = crypto.randomUUID();\n\n connector.addTopic(uuid);\n\n const read: ReadFn<T> = (cb?: (v: T) => void): T => {\n if (cb) {\n connector.registerClbk(uuid, cb);\n cb(value);\n }\n return value;\n };\n\n read.type = \"signal\";\n\n const write = async (fn: (prev: T) => T | Promise<T>): Promise<void> => {\n const next = fn(value);\n value = next instanceof Promise ? await next : next;\n connector.update(uuid, value);\n };\n\n return [read, write] as const;\n}\n\n/* ============================================================\n * Connector\n * ============================================================ */\n\ninterface CallbackEntry {\n uuid: UUID;\n refCount: number;\n}\n\nexport interface ConnectorInterface {\n addTopic(uuid: UUID): void;\n removeTopic(uuid: UUID): void;\n\n registerClbk<T>(uuid: UUID, cb: (value: T) => void): void;\n removeClbk<T>(uuid: UUID, cb: (value: T) => void): void;\n\n update<T>(uuid: UUID, value: T): void;\n getUuidByClbk<T>(cb: (value: T) => void): UUID;\n}\n\nclass Connector implements ConnectorInterface {\n // uuid → listeners\n private topics = new Map<UUID, Set<(value: any) => void>>();\n\n // callback → { uuid, refCount }\n private callbackMap = new Map<(value: any) => void, CallbackEntry>();\n\n public addTopic(uuid: UUID): void {\n this.topics.set(uuid, new Set());\n }\n\n public removeTopic(uuid: UUID): void {\n const listeners = this.topics.get(uuid);\n if (listeners) {\n for (const cb of listeners) {\n this.callbackMap.delete(cb);\n }\n }\n this.topics.delete(uuid);\n }\n\n public registerClbk<T>(uuid: UUID, cb: (value: T) => void): void {\n const listeners = this.topics.get(uuid);\n if (!listeners) {\n throw new Error(`Connector: unknown topic ${uuid}`);\n }\n\n const existing = this.callbackMap.get(cb as any);\n if (existing) {\n existing.refCount++;\n return;\n }\n\n listeners.add(cb as any);\n this.callbackMap.set(cb as any, {\n uuid,\n refCount: 1,\n });\n }\n\n public removeClbk<T>(uuid: UUID, cb: (value: T) => void): void {\n const entry = this.callbackMap.get(cb as any);\n if (!entry) return;\n\n entry.refCount--;\n if (entry.refCount > 0) return;\n\n const listeners = this.topics.get(entry.uuid);\n listeners?.delete(cb as any);\n\n this.callbackMap.delete(cb as any);\n }\n\n public update<T>(uuid: UUID, value: T): void {\n const listeners = this.topics.get(uuid);\n if (!listeners) return;\n\n for (const listener of listeners) {\n listener(value);\n }\n }\n\n public getUuidByClbk<T>(cb: (value: T) => void): UUID {\n const entry = this.callbackMap.get(cb as any);\n if (!entry) {\n throw new Error(\"Connector: no UUID for callback\");\n }\n return entry.uuid;\n }\n}\n\nexport const connector = new Connector();\n","// effect.ts\nimport type { ReadFn } from \"./signal\";\nimport { unmount, hasActiveMountSession } from \"./lifecycle\";\nimport { connector } from \"./signal\";\n\nexport function effect<T>(\n readFn: ReadFn<T>,\n fn: (value: T) => void | Promise<void>\n): void {\n let initialized = false;\n\n const cb = (val: T) => {\n if (!initialized) {\n initialized = true;\n return;\n }\n\n try {\n const r = fn(val);\n if (r instanceof Promise) {\n r.catch((err) => {\n console.error(\"effect async callback failed\", err);\n });\n }\n } catch (err) {\n console.error(\"effect callback failed\", err);\n }\n };\n\n // subscribe (initial call is ignored)\n readFn(cb);\n\n // cleanup\n if (hasActiveMountSession()) {\n unmount(() => {\n const uuid = connector.getUuidByClbk(cb);\n connector.removeClbk(uuid, cb);\n });\n }\n}\n","// render.ts\n// Fully synchronous renderer.\n// Signal subscriptions are ref-counted and cleaned up via lifecycle unmount.\n\nimport type { JsxNode, VElement, VText, VSignal, ComponentFn } from \"./jsx\";\nimport {\n beginMountSession,\n endMountSession,\n unmount,\n hasActiveMountSession,\n} from \"./lifecycle\";\nimport { connector } from \"./signal\";\n\nexport interface RenderCtx {\n parent: Node & ParentNode;\n self?: Node;\n [k: string]: any;\n}\n\nexport interface RenderResult {\n el: Node;\n}\n\nexport function render(node: JsxNode | null, ctx: RenderCtx): RenderResult {\n if (node == null) {\n return { el: ctx.parent };\n }\n\n // FRAGMENT\n if (Array.isArray(node)) {\n let last: Node = ctx.parent;\n\n for (const child of node) {\n const r = render(child, ctx);\n last = r.el;\n }\n\n return { el: last };\n }\n\n // TEXT\n if (node.kind === \"text\") {\n const el = renderText(node as VText, ctx);\n return { el };\n }\n\n // SIGNAL (text binding)\n if (node.kind === \"signal\") {\n const el = renderSignal(node as VSignal, ctx);\n return { el };\n }\n\n // COMPONENT\n if (typeof (node as VElement).tag === \"function\") {\n const vnode = node as VElement;\n const fn = vnode.tag as ComponentFn;\n\n beginMountSession();\n\n const resolved = fn({ ...vnode.props, ctx }, vnode.children);\n const result = render(resolved, ctx);\n\n if (!(result.el instanceof Element)) {\n throw new Error(\"Component root must be a DOM Element\");\n }\n\n endMountSession(result.el);\n ctx.self = result.el;\n return result;\n }\n\n // HOST\n const el = renderHost(node as VElement, ctx);\n\n const childCtx: RenderCtx = {\n ...ctx,\n parent: el,\n self: ctx.self,\n };\n\n for (const child of (node as VElement).children) {\n render(child, childCtx);\n }\n\n return { el };\n}\n\n/* ------------------------------------------------------------\n * Host rendering\n * ------------------------------------------------------------ */\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\nconst SVG_TAGS = new Set([\n \"svg\",\n \"path\",\n \"circle\",\n \"rect\",\n \"line\",\n \"polyline\",\n \"polygon\",\n \"g\",\n \"defs\",\n \"linearGradient\",\n \"radialGradient\",\n \"stop\",\n \"mask\",\n \"clipPath\",\n \"pattern\",\n \"text\",\n \"tspan\",\n \"use\",\n \"symbol\",\n \"view\",\n \"ellipse\",\n \"foreignObject\",\n]);\n\nfunction renderHost(node: VElement, ctx: RenderCtx): Element {\n if (typeof node.tag !== \"string\") {\n throw new Error(\"Host renderer expects string tag\");\n }\n\n const tag = node.tag;\n const isSvg = SVG_TAGS.has(tag);\n\n const el = isSvg\n ? document.createElementNS(SVG_NS, tag)\n : document.createElement(tag);\n\n const props = node.props ?? {};\n\n for (const [key, value] of Object.entries(props)) {\n if (key === \"ctx\" || key === \"children\") continue;\n\n // EVENTS\n if (key.startsWith(\"on\") && typeof value === \"function\") {\n const evt = key.slice(2).toLowerCase();\n el.addEventListener(evt, value as EventListener);\n continue;\n }\n\n // STYLE (supports signals)\n if (key === \"style\" && value && typeof value === \"object\") {\n for (const [k, v] of Object.entries(value as Record<string, any>)) {\n if (v === undefined) continue;\n\n if (typeof v === \"function\" && v.type === \"signal\") {\n const initial = v();\n (el.style as any)[k] = String(initial);\n\n v((nv: any) => {\n (el.style as any)[k] = String(nv);\n });\n } else {\n (el.style as any)[k] = String(v);\n }\n }\n continue;\n }\n\n // SIGNAL PROPS\n if (typeof value === \"function\" && value.type === \"signal\") {\n const apply = (nv: any) => {\n if (isSvg) {\n el.setAttribute(key, String(nv));\n } else {\n // @ts-ignore\n el[key] = nv;\n }\n };\n\n apply(value());\n bindSignal(value, apply);\n continue;\n }\n\n // NORMAL PROPS\n if (isSvg) {\n el.setAttribute(key, String(value));\n } else if (key in el) {\n // @ts-ignore\n el[key] = value;\n } else {\n el.setAttribute(key, String(value));\n }\n }\n\n ctx.parent.appendChild(el);\n return el;\n}\n\n/* ------------------------------------------------------------\n * Text & Signal rendering\n * ------------------------------------------------------------ */\n\nfunction renderText(node: VText, ctx: RenderCtx): Text {\n const t = document.createTextNode(node.value);\n ctx.parent.appendChild(t);\n return t;\n}\n\nfunction renderSignal(node: VSignal, ctx: RenderCtx): Text {\n const t = document.createTextNode(\"\");\n ctx.parent.appendChild(t);\n\n const cb = (v: any) => {\n t.nodeValue = String(v);\n };\n\n // initial\n t.nodeValue = String(node.read());\n\n // subscribe\n node.read(cb);\n\n // cleanup via lifecycle (ref-count aware)\n if (hasActiveMountSession()) {\n unmount(() => {\n const uuid = connector.getUuidByClbk(cb);\n connector.removeClbk(uuid, cb);\n });\n }\n\n return t;\n}\n\n/* ------------------------------------------------------------\n * Shared signal binding helper\n * ------------------------------------------------------------ */\n\nfunction bindSignal<T>(\n read: (cb?: (value: T) => void) => T,\n apply: (value: T) => void,\n): void {\n const cb = (v: any) => apply(v as T);\n\n read(cb);\n\n if (hasActiveMountSession()) {\n unmount(() => {\n const uuid = connector.getUuidByClbk(cb);\n connector.removeClbk(uuid, cb);\n });\n }\n}\n","// destroy.ts\n\nimport { runUnmountsForElement } from \"./lifecycle\";\n\nexport function destroy(root: Element): void {\n const children = Array.from(root.childNodes);\n\n for (const child of children) {\n destroyChild(child);\n }\n\n runUnmountsForElement(root);\n\n if (root.parentNode) {\n root.parentNode.removeChild(root);\n } else {\n root.remove();\n }\n}\n\nfunction destroyChild(node: Node): void {\n if (node instanceof Element) {\n const children = Array.from(node.childNodes);\n\n for (const child of children) {\n destroyChild(child);\n }\n\n runUnmountsForElement(node);\n\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n } else {\n node.remove();\n }\n\n return;\n }\n\n // Text, Comment, etc.\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\n","// jsx.ts\nimport type { ReadFn } from \"./signal\";\n\nexport type JsxNode = VElement | VText | VSignal;\n\ndeclare global {\n namespace JSX {\n type Element = any;\n\n interface IntrinsicElements {\n [key: string]: any;\n }\n }\n}\n\nexport interface VElement {\n kind: \"element\";\n tag: string | ComponentFn;\n props: Record<string, any>;\n children: JsxNode[];\n}\n\nexport interface VText {\n kind: \"text\";\n value: string;\n}\n\nexport interface VSignal {\n kind: \"signal\";\n read: ReadFn<any>;\n}\n\nexport interface PropsInterface {\n ctx?: any;\n}\n\nexport type ComponentFn = (\n props: PropsInterface,\n children: JsxNode[]\n) => JsxNode | null;\n\nexport function jsx(\n tag: string | ComponentFn,\n props: any,\n ...rawChildren: any[]\n): VElement {\n return {\n kind: \"element\",\n tag,\n props: props ?? {},\n children: rawChildren.flatMap(normalizeChild),\n };\n}\n\nfunction normalizeChild(input: any): JsxNode | JsxNode[] {\n if (input == null || input === false || input === true) return [];\n\n if (typeof input === \"function\" && input?.type === \"signal\") {\n return {\n kind: \"signal\",\n read: input,\n };\n }\n\n if (typeof input === \"string\" || typeof input === \"number\") {\n return {\n kind: \"text\",\n value: String(input),\n };\n }\n\n if (Array.isArray(input)) {\n return input.flatMap(normalizeChild);\n }\n\n return input;\n}\n","// for.ts\nimport { effect } from \"./effect\";\nimport { mount } from \"./lifecycle\";\nimport { render } from \"./render\";\nimport { destroy } from \"./destroy\";\nimport type { ReadFn } from \"./signal\";\nimport { jsx } from \"./jsx\";\n\ntype Uuid = string;\n\ninterface Keyed {\n uuid: Uuid;\n}\n\ninterface ForProps<T extends Keyed> {\n each: ReadFn<T[]>;\n}\n\nexport function For<T extends Keyed>(p: ForProps<T>, [child]: any) {\n const container = jsx(\"csr-for-host\", { style: { display: \"contents\" } });\n\n mount((parent) => {\n const { el } = render(container, { parent });\n const host = el as Element;\n\n const nodes = new Map<Uuid, Element>();\n let order: Uuid[] = [];\n\n function reconcile(values: T[]) {\n const nextOrder: Uuid[] = [];\n\n for (const v of values) {\n if (!v || v.uuid == null) continue;\n\n const id = v.uuid;\n nextOrder.push(id);\n\n if (!nodes.has(id)) {\n const { el } = render(child(v), {\n ...(p as any).ctx,\n parent: host,\n });\n\n if (!(el instanceof Element)) {\n throw new Error(\"For: child root must be an Element\");\n }\n\n nodes.set(id, el);\n }\n }\n\n // remove\n for (const id of order) {\n if (!nextOrder.includes(id)) {\n const el = nodes.get(id);\n if (el) destroy(el);\n nodes.delete(id);\n }\n }\n\n // reorder\n let anchor: ChildNode | null = null;\n for (let i = nextOrder.length - 1; i >= 0; i--) {\n const el = nodes.get(nextOrder[i]!)!;\n host.insertBefore(el, anchor);\n anchor = el;\n }\n\n order = nextOrder;\n }\n\n // initial render (sync, explicit)\n reconcile(p.each());\n\n // reactive updates\n effect(p.each, reconcile);\n });\n\n return null;\n}\n","//fragment.ts\nexport function fragment(p: null, ...childs: any) {\n return childs;\n}\n","// show.ts\nimport { jsx } from \"./jsx\";\nimport { destroy } from \"./destroy\";\nimport { render } from \"./render\";\nimport type { ReadFn } from \"./signal\";\nimport { mount } from \"./lifecycle\";\n\ninterface ShowPropsInterface {\n when: ReadFn<boolean>;\n}\n\nexport function Show(p: ShowPropsInterface, children: any) {\n const host = jsx(\"csr-show-host\", { style: { display: \"contents\" } });\n const content = jsx(\n \"csr-show-content\",\n { style: { display: \"contents\" } },\n ...children\n );\n\n let hostEl: Element | null = null;\n let contentEl: Element | null = null;\n let visible = false;\n\n mount((parent) => {\n // render host once\n const { el: h } = render(host, { parent });\n hostEl = h as Element;\n\n // subscribe to condition signal\n p.when((b) => {\n if (b === visible) return;\n visible = b;\n\n // hide\n if (!visible) {\n if (contentEl) {\n destroy(contentEl);\n contentEl = null;\n }\n return;\n }\n\n // show\n const { el: c } = render(content, {\n ...(p as any).ctx,\n parent: hostEl!,\n });\n\n if (!(c instanceof Element)) {\n throw new Error(\"Show: content root must be an Element\");\n }\n\n contentEl = c;\n });\n });\n\n return null;\n}\n","// repeat.ts\nimport type { ReadFn } from \"../core/signal\";\nimport { signal } from \"../core/signal\";\nimport { For } from \"../core/for\";\nimport { jsx } from \"../core/jsx\";\n\ntype MaybeSignal<T> = T | ReadFn<T>;\n\ninterface RepeatPropsInterface {\n n: MaybeSignal<number>;\n}\n\nexport function Repeat(p: RepeatPropsInterface, children: any[]) {\n // static case\n if (typeof p.n === \"number\") {\n const out: any[] = [];\n for (let i = 0; i < p.n; i++) {\n out.push(children);\n }\n return out;\n }\n\n // reactive case -> delegate to For\n const count = p.n;\n\n const [items, setItems] = signal<{ uuid: string }[]>([]);\n\n // derive structure from n\n count((n) => {\n const next: { uuid: string }[] = [];\n for (let i = 0; i < n; i++) {\n next.push({ uuid: String(i) });\n }\n setItems(() => next);\n });\n\n return <For each={items}>{() => children}</For>;\n}\n","import { jsx, mount, render, unmount } from \"../core\";\nimport { destroy } from \"../core/destroy\";\n\nexport function Portal(_: any, children: any) {\n const host = document.createElement(\"csr-portal\");\n mount(() => {\n document.body.appendChild(host);\n\n for (const child of children) {\n render(child, {\n parent: host,\n });\n }\n });\n\n unmount(() => {\n destroy(host);\n });\n}\n","export const breakpoint = {\n mobile: 0, // 0–599 px\n tablet: 601, // 600–1024 px\n laptop: 1025, // 1024–1440 px\n desktop: 1441, // 1440–1920 px\n large: 1921, // >1920 px\n};\n","// use-breakpoint.ts\nimport { signal, type ReadFn } from \"../core/signal\";\nimport { breakpoint } from \"../style/breakpoint\";\n\nexport type BreakpointName = keyof typeof breakpoint;\n\nfunction detectBreakpoint(width: number): BreakpointName {\n if (width >= breakpoint.large) return \"large\";\n if (width >= breakpoint.desktop) return \"desktop\";\n if (width >= breakpoint.laptop) return \"laptop\";\n if (width >= breakpoint.tablet) return \"tablet\";\n return \"mobile\";\n}\n\n// initial value from real window\nconst [breakepoint, write] = signal<BreakpointName>(\n detectBreakpoint(window.innerWidth)\n);\n\n// attach resize listener once\nlet last = breakepoint();\n\nwindow.addEventListener(\"resize\", () => {\n const next = detectBreakpoint(window.innerWidth);\n if (next !== last) {\n last = next;\n write(() => next);\n }\n});\n\nexport function useBreakpoint(): ReadFn<BreakpointName> {\n return breakepoint;\n}\n","// use-custom-event.ts\nimport { unmount } from \"../core/lifecycle\";\n\ntype Handler<T> = (data: T) => void;\n\n/**\n * Creates a custom browser event emitter.\n * If a handler is provided, it is automatically\n * cleaned up on component unmount.\n */\nexport function useCustomEvent<T = any>(topic: string, handler?: Handler<T>) {\n // register listener if handler exists\n if (handler) {\n const listener = (e: Event) => {\n const ce = e as CustomEvent<T>;\n handler(ce.detail);\n };\n\n window.addEventListener(topic, listener);\n\n // automatic cleanup on unmount\n unmount(() => {\n window.removeEventListener(topic, listener);\n });\n }\n\n // emitter (always returned)\n return function emit(data: T) {\n window.dispatchEvent(new CustomEvent(topic, { detail: data }));\n };\n}\n","// use-local-storage.ts\nimport { signal } from \"../core/signal\";\nimport type { ReadFn } from \"../core/signal\";\n\nexport type LocalStorageHook<T> = [\n value: ReadFn<T>,\n setValue: (updater: (prev: T) => T) => void,\n remove: () => void,\n];\n\nexport function useLocalStorage<T>(\n key: string,\n initial: T,\n): LocalStorageHook<T> {\n // Resolve initial value\n let start = initial;\n\n try {\n const raw = localStorage.getItem(key);\n if (raw !== null) {\n start = JSON.parse(raw);\n }\n } catch (err) {\n console.error(`[useLocalStorage] Failed to read key \"${key}\"`, err);\n }\n\n const [value, write] = signal<T>(start);\n\n function setValue(updater: (prev: T) => T) {\n write((prev) => {\n let next: T;\n\n try {\n next = updater(prev);\n } catch (err) {\n console.error(`[useLocalStorage] Updater failed for key \"${key}\"`, err);\n return prev;\n }\n\n try {\n localStorage.setItem(key, JSON.stringify(next));\n } catch (err) {\n console.error(`[useLocalStorage] Failed to write key \"${key}\"`, err);\n }\n\n return next;\n });\n }\n\n function remove() {\n try {\n localStorage.removeItem(key);\n } catch (err) {\n console.error(`[useLocalStorage] Failed to remove key \"${key}\"`, err);\n }\n\n write(() => initial);\n }\n\n return [value, setValue, remove];\n}\n","// use-locale.ts\nimport { signal } from \"../core/signal\";\nimport type { ReadFn } from \"../core/signal\";\n\nexport interface LocaleController {\n locale: ReadFn<string>;\n setLocale: (next: string) => void;\n}\nconst [locale, write] = signal(\"en-US\");\n\nexport function useLocale(): LocaleController {\n return {\n locale,\n setLocale(next: string) {\n write(() => next);\n },\n };\n}\n","// use-navigate.ts\nfunction isExternalUrl(url: string): boolean {\n return url.includes(\"://\");\n}\n\nfunction notifyLocationChange() {\n window.dispatchEvent(new PopStateEvent(\"popstate\"));\n\n window.dispatchEvent(new HashChangeEvent(\"hashchange\"));\n}\n\nexport function useNavigate() {\n const navigate = (to: string | ((prev: string) => string)) => {\n const current =\n window.location.pathname + window.location.search + window.location.hash;\n\n const next = typeof to === \"function\" ? to(current) : to;\n\n // external\n if (isExternalUrl(next)) {\n window.location.href = next;\n return;\n }\n\n // internal\n window.history.pushState(null, \"\", next);\n\n // sync hooks\n notifyLocationChange();\n };\n\n return {\n navigate,\n };\n}\n","// use-session-storage.ts\nimport { signal } from \"../core/signal\";\nimport type { ReadFn } from \"../core/signal\";\n\nexport type SessionStorageHook<T> = [\n value: ReadFn<T>,\n setValue: (updater: (prev: T) => T) => void,\n remove: () => void,\n];\n\nexport function useSessionStorage<T>(\n key: string,\n initial: T,\n): SessionStorageHook<T> {\n let start = initial;\n\n try {\n const raw = sessionStorage.getItem(key);\n if (raw !== null) {\n start = JSON.parse(raw);\n }\n } catch (err) {\n console.error(`[useSessionStorage] Failed to read key \"${key}\"`, err);\n }\n\n const [value, write] = signal<T>(start);\n\n function setValue(updater: (prev: T) => T) {\n write((prev) => {\n let next: T;\n\n try {\n next = updater(prev);\n } catch (err) {\n console.error(\n `[useSessionStorage] Updater failed for key \"${key}\"`,\n err,\n );\n return prev;\n }\n\n try {\n sessionStorage.setItem(key, JSON.stringify(next));\n } catch (err) {\n console.error(`[useSessionStorage] Failed to write key \"${key}\"`, err);\n }\n\n return next;\n });\n }\n\n function remove() {\n try {\n sessionStorage.removeItem(key);\n } catch (err) {\n console.error(`[useSessionStorage] Failed to remove key \"${key}\"`, err);\n }\n\n write(() => initial);\n }\n\n return [value, setValue, remove];\n}\n","// use-translation.ts\nimport { signal, type ReadFn } from \"../core/signal\";\nimport { effect } from \"../core/effect\";\n\nexport type Translations = {\n [key: string]: {\n [locale: string]: string;\n };\n};\n\nexport type Data = {\n [key: string]: string | number | ReadFn<string | number>;\n};\n\n/**\n * Creates a translation function `t`\n * that returns a reactive signal per key.\n */\nexport function useText(locale: ReadFn<string>, text: Translations) {\n return function t(key: string, data?: Data): ReadFn<string> {\n const compute = () => resolve(key, locale(), text, data);\n\n const [read, write] = signal(compute());\n\n // react to locale changes\n effect(locale, () => {\n write(() => compute());\n });\n\n // react to data signal changes\n if (data) {\n for (const value of Object.values(data)) {\n if (typeof value === \"function\" && value.type === \"signal\") {\n effect(value, () => {\n write(() => compute());\n });\n }\n }\n }\n\n return read;\n };\n}\n\nfunction resolve(\n key: string,\n locale: string,\n text: Translations,\n data?: Data,\n): string {\n const entry = text[key];\n if (!entry) return replacePlaceholders(key, data);\n\n // exact match\n if (entry[locale]) {\n return replacePlaceholders(entry[locale], data);\n }\n\n // final fallback\n return replacePlaceholders(key, data);\n}\n\nfunction replacePlaceholders(input: string, data?: Data): string {\n if (!data) return input;\n\n let out = input;\n for (const [key, value] of Object.entries(data)) {\n const v = typeof value === \"function\" ? value() : value;\n out = out.split(`{${key}}`).join(String(v));\n }\n\n return out;\n}\n","// use-url-hash.ts\nimport { signal, type ReadFn } from \"../core/signal\";\n\ntype WriteFn<T> = (value: T | ((prev: T) => T)) => void;\n\nfunction getHash(): string {\n return window.location.hash || \"\";\n}\n\nconst [hash, write] = signal<string>(getHash());\n\nfunction sync() {\n write(() => getHash());\n}\n\nwindow.addEventListener(\"hashchange\", sync);\nwindow.addEventListener(\"popstate\", sync);\n\nfunction setHash(value: string | ((prev: string) => string)) {\n const next = typeof value === \"function\" ? value(hash()) : value;\n\n const normalized =\n next === \"\" ? \"\" : next.startsWith(\"#\") ? next : `#${next}`;\n\n if (normalized !== window.location.hash) {\n const url = window.location.pathname + window.location.search + normalized;\n\n window.history.pushState(null, \"\", url);\n\n sync();\n }\n}\n\nexport function useUrlHash(): [ReadFn<string>, WriteFn<string>] {\n return [hash, setHash];\n}\n","// use-url-param.ts\nimport { signal, type ReadFn } from \"../core/signal\";\n\ntype WriteFn<T> = (value: T | ((prev: T) => T)) => void;\n\nfunction getParams() {\n return new URLSearchParams(window.location.search);\n}\n\nconst [params, write] = signal(getParams());\n\nwindow.addEventListener(\"popstate\", () => {\n write(() => getParams());\n});\n\nfunction getValue(key: string): string {\n return params().get(key) ?? \"\";\n}\n\nfunction setParam(key: string, value: string | ((prev: string) => string)) {\n const current = getParams();\n\n const prev = current.get(key) ?? \"\";\n\n const next = typeof value === \"function\" ? value(prev) : value;\n\n if (next === \"\") {\n current.delete(key);\n } else {\n current.set(key, next);\n }\n\n const url =\n window.location.pathname +\n (current.toString() ? `?${current}` : \"\") +\n window.location.hash;\n\n window.history.pushState(null, \"\", url);\n\n write(() => new URLSearchParams(current));\n}\n\nexport function useUrlParam(key: string): [ReadFn<string>, WriteFn<string>] {\n const [value, setValue] = signal<string>(getValue(key));\n\n const sync = () => {\n setValue(() => getValue(key));\n };\n\n window.addEventListener(\"popstate\", sync);\n\n const writeValue: WriteFn<string> = (next) => {\n setParam(key, next);\n setValue(() => getValue(key));\n };\n\n return [value, writeValue];\n}\n","// use-url-path.ts\nimport { signal, type ReadFn } from \"../core/signal\";\n\ntype WriteFn<T> = (value: T | ((prev: T) => T)) => void;\n\nfunction getPath(): string {\n return window.location.pathname || \"/\";\n}\n\nconst [path, write] = signal<string>(getPath());\n\nwindow.addEventListener(\"popstate\", () => {\n write(() => getPath());\n});\n\nfunction setPath(value: string | ((prev: string) => string)) {\n const current = window.location;\n\n const next = typeof value === \"function\" ? value(path()) : value;\n\n const pathname = next.startsWith(\"/\") ? next : `/${next}`;\n\n if (pathname !== current.pathname) {\n const url = pathname + current.search + current.hash;\n\n window.history.pushState(null, \"\", url);\n\n write(() => getPath());\n }\n}\n\nexport function useUrlPath(): [ReadFn<string>, WriteFn<string>] {\n return [path, setPath];\n}\n","// box.ts\nimport type { ReadFn } from \"../core/signal\";\nimport { jsx } from \"../core/jsx\";\nimport type { DOMEvents, DOMAttrs, MaybeSignal, CSSValue } from \"../core/dom\";\n\nexport interface BoxProps extends DOMEvents, DOMAttrs {\n /**\n * Child nodes rendered inside the box\n */\n children?: any;\n\n // ─────────────────────────────\n // Spacing – Margin\n // ─────────────────────────────\n\n /** Margin (all sides) */\n m?: MaybeSignal<CSSValue>;\n\n /** Margin-bottom */\n mb?: MaybeSignal<CSSValue>;\n\n /** Margin-left */\n ml?: MaybeSignal<CSSValue>;\n\n /** Margin-right */\n mr?: MaybeSignal<CSSValue>;\n\n /** Margin-top */\n mt?: MaybeSignal<CSSValue>;\n\n /** Margin horizontal (left + right) */\n mx?: MaybeSignal<CSSValue>;\n\n /** Margin vertical (top + bottom) */\n my?: MaybeSignal<CSSValue>;\n\n // ─────────────────────────────\n // Spacing – Padding\n // ─────────────────────────────\n\n /** Padding (all sides) */\n p?: MaybeSignal<CSSValue>;\n\n /** Padding-bottom */\n pb?: MaybeSignal<CSSValue>;\n\n /** Padding-left */\n pl?: MaybeSignal<CSSValue>;\n\n /** Padding-right */\n pr?: MaybeSignal<CSSValue>;\n\n /** Padding-top */\n pt?: MaybeSignal<CSSValue>;\n\n /** Padding horizontal (left + right) */\n px?: MaybeSignal<CSSValue>;\n\n /** Padding vertical (top + bottom) */\n py?: MaybeSignal<CSSValue>;\n\n // ─────────────────────────────\n // Borders\n // ─────────────────────────────\n\n /** Border (all sides) */\n b?: MaybeSignal<CSSValue>;\n\n /** Border-top */\n bt?: MaybeSignal<CSSValue>;\n\n /** Border-right */\n br?: MaybeSignal<CSSValue>;\n\n /** Border-bottom */\n bb?: MaybeSignal<CSSValue>;\n\n /** Border-left */\n bl?: MaybeSignal<CSSValue>;\n\n /** Border horizontal (left + right) */\n bx?: MaybeSignal<CSSValue>;\n\n /** Border vertical (top + bottom) */\n by?: MaybeSignal<CSSValue>;\n\n // ─────────────────────────────\n // Border Radius\n // ─────────────────────────────\n\n /** Border radius (all corners) */\n r?: MaybeSignal<CSSValue>;\n\n /** Border-top radius */\n rt?: MaybeSignal<CSSValue>;\n\n /** Border-right radius */\n rr?: MaybeSignal<CSSValue>;\n\n /** Border-bottom radius */\n rb?: MaybeSignal<CSSValue>;\n\n /** Border-left radius */\n rl?: MaybeSignal<CSSValue>;\n\n /** Border-top-right radius */\n rtr?: MaybeSignal<CSSValue>;\n\n /** Border-top-left radius */\n rtl?: MaybeSignal<CSSValue>;\n\n /** Border-bottom-right radius */\n rbr?: MaybeSignal<CSSValue>;\n\n /** Border-bottom-left radius */\n rbl?: MaybeSignal<CSSValue>;\n\n // ─────────────────────────────\n // Sizing\n // ─────────────────────────────\n\n /** Size shortcut (width + height) */\n s?: MaybeSignal<CSSValue>;\n\n /** Height */\n h?: MaybeSignal<CSSValue>;\n\n /** Width */\n w?: MaybeSignal<CSSValue>;\n\n /** Max height */\n maxH?: MaybeSignal<CSSValue>;\n\n /** Max width */\n maxW?: MaybeSignal<CSSValue>;\n\n /** Min height */\n minH?: MaybeSignal<CSSValue>;\n\n /** Min width */\n minW?: MaybeSignal<CSSValue>;\n\n // ─────────────────────────────\n // Appearance\n // ─────────────────────────────\n\n /** Opacity (0–1) */\n o?: MaybeSignal<CSSValue>;\n\n /** Box shadow */\n sh?: MaybeSignal<CSSValue>;\n\n /** Background */\n bg?: MaybeSignal<CSSValue>;\n\n /**\n * Additional inline styles (merged last)\n * Values support signals\n */\n style?: Record<string, MaybeSignal<CSSValue> | undefined>;\n}\n\nexport function Box(p: BoxProps, children: any[]) {\n return (\n <div\n {...p}\n style={{\n marginBottom: p.mb ?? p.my ?? p.m,\n marginLeft: p.ml ?? p.mx ?? p.m,\n marginRight: p.mr ?? p.mx ?? p.m,\n marginTop: p.mt ?? p.my ?? p.m,\n\n paddingBottom: p.pb ?? p.py ?? p.p,\n paddingLeft: p.pl ?? p.px ?? p.p,\n paddingRight: p.pr ?? p.px ?? p.p,\n paddingTop: p.pt ?? p.py ?? p.p,\n\n background: p.bg,\n opacity: p.o,\n boxShadow: p.sh,\n\n borderTop: p.bt ?? p.by ?? p.b,\n borderRight: p.br ?? p.bx ?? p.b,\n borderBottom: p.bb ?? p.by ?? p.b,\n borderLeft: p.bl ?? p.bx ?? p.b,\n\n borderTopRightRadius: p.rtr ?? p.rt ?? p.rr ?? p.r,\n borderTopLeftRadius: p.rtl ?? p.rt ?? p.rl ?? p.r,\n borderBottomRightRadius: p.rbr ?? p.rb ?? p.rr ?? p.r,\n borderBottomLeftRadius: p.rbl ?? p.rb ?? p.rl ?? p.r,\n\n width: p.w ?? p.s,\n height: p.h ?? p.s,\n maxWidth: p.maxW,\n maxHeight: p.maxH,\n minWidth: p.minW,\n minHeight: p.minH,\n\n ...p.style,\n }}\n >\n {children}\n </div>\n );\n}\n","import { Box } from \"./box\";\nimport { jsx } from \"../core/jsx\";\nimport type { BoxProps } from \"./box\";\n\n/**\n * Absolute positioned component\n * Positions element absolutely within the nearest positioned ancestor\n */\nexport interface AbsolutePropertiesInterface extends BoxProps {\n /**\n * Distance from top edge of containing block\n * (e.g. \"10px\", \"1rem\", \"5%\")\n */\n top?: string;\n\n /**\n * Distance from right edge of containing block\n * (e.g. \"10px\", \"1rem\", \"5%\")\n */\n right?: string;\n\n /**\n * Distance from bottom edge of containing block\n * (e.g. \"10px\", \"1rem\", \"5%\")\n */\n bottom?: string;\n\n /**\n * Distance from left edge of containing block\n * (e.g. \"10px\", \"1rem\", \"5%\")\n */\n left?: string;\n}\n\nexport function Absolute(p: AbsolutePropertiesInterface, children: any[]) {\n return (\n <Box\n {...p}\n style={{\n position: \"absolute\",\n\n top: p.top,\n right: p.right,\n bottom: p.bottom,\n left: p.left,\n\n ...p.style,\n }}\n >\n {children}\n </Box>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport { Box } from \"./box\";\nimport type { BoxProps } from \"./box\";\n\n/**\n * Flex item component\n * Controls individual item behavior in flex containers\n */\nexport interface FlexItemPropertiesInterface extends BoxProps {\n /**\n * Flex shorthand (grow, shrink, basis)\n * e.g. \"1\", \"none\", \"0 1 auto\"\n */\n flx?: string;\n\n /**\n * Align-self (cross-axis alignment)\n */\n as?: \"auto\" | \"flex-start\" | \"flex-end\" | \"center\" | \"baseline\" | \"stretch\";\n\n /**\n * Flex grow factor\n */\n flxGrow?: string;\n\n /**\n * Flex shrink factor\n */\n flxShrink?: string;\n\n /**\n * Flex basis\n */\n flxBasis?: string;\n}\n\nexport function FlexItem(p: FlexItemPropertiesInterface, children: any[]) {\n return (\n <Box\n {...p}\n style={{\n flex: p.flx,\n alignSelf: p.as,\n flexGrow: p.flxGrow,\n flexShrink: p.flxShrink,\n flexBasis: p.flxBasis,\n\n ...p.style,\n }}\n >\n {children}\n </Box>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport { FlexItem } from \"./flex-item\";\nimport type { FlexItemPropertiesInterface } from \"./flex-item\";\n\n/**\n * Flex container component\n * Core flexbox layout primitive\n */\nexport interface FlexPropertiesInterface extends FlexItemPropertiesInterface {\n /**\n * Justify-content (main axis alignment)\n */\n jc?:\n | \"flex-start\"\n | \"flex-end\"\n | \"center\"\n | \"space-between\"\n | \"space-around\"\n | \"space-evenly\";\n\n /**\n * Align-items (cross axis alignment)\n */\n ai?: \"stretch\" | \"flex-start\" | \"flex-end\" | \"center\" | \"baseline\";\n\n /**\n * Align-content (multi-line alignment)\n */\n ac?:\n | \"flex-start\"\n | \"flex-end\"\n | \"center\"\n | \"space-between\"\n | \"space-around\"\n | \"stretch\";\n\n /**\n * Gap between items\n */\n g?: string;\n\n /**\n * Flex direction\n */\n flxDirection?: \"row\" | \"row-reverse\" | \"column\" | \"column-reverse\";\n\n /**\n * Flex wrap\n */\n flxWrap?: \"nowrap\" | \"wrap\" | \"wrap-reverse\";\n\n /**\n * Flex-flow shorthand\n */\n flxFlow?: `${\"row\" | \"row-reverse\" | \"column\" | \"column-reverse\"} ${\n | \"nowrap\"\n | \"wrap\"\n | \"wrap-reverse\"}`;\n}\n\nexport function Flex(p: FlexPropertiesInterface, children: any[]) {\n return (\n <FlexItem\n {...p}\n style={{\n display: \"flex\",\n\n justifyContent: p.jc,\n alignItems: p.ai,\n alignContent: p.ac,\n\n gap: p.g,\n\n flexDirection: p.flxDirection,\n flexWrap: p.flxWrap,\n flexFlow: p.flxFlow,\n\n ...p.style,\n }}\n >\n {children}\n </FlexItem>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport { Flex } from \"./flex\";\nimport type { FlexPropertiesInterface } from \"./flex\";\n\n/**\n * Center component\n * Centers children horizontally and vertically using flexbox\n */\nexport interface CenterPropertiesInterface extends FlexPropertiesInterface {}\n\nexport function Center(p: CenterPropertiesInterface, children: any[]) {\n return (\n <Flex {...p} ai={p.ai ?? \"center\"} jc={p.jc ?? \"center\"}>\n {children}\n </Flex>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport { Box } from \"./box\";\nimport type { BoxProps } from \"./box\";\n\n/**\n * Fixed positioned component\n * Positions element relative to the viewport\n */\nexport interface FixedPropertiesInterface extends BoxProps {\n /** Top offset (e.g. \"10px\") */\n top?: string;\n\n /** Right offset */\n right?: string;\n\n /** Bottom offset */\n bottom?: string;\n\n /** Left offset */\n left?: string;\n\n /** Stacking order (z-index) */\n zIndex?: string;\n}\n\nexport function Fixed(p: FixedPropertiesInterface, children: any[]) {\n return (\n <Box\n {...p}\n style={{\n position: \"fixed\",\n\n top: p.top,\n right: p.right,\n bottom: p.bottom,\n left: p.left,\n zIndex: p.zIndex,\n\n ...p.style,\n }}\n >\n {children}\n </Box>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport { Box } from \"./box\";\nimport type { BoxProps } from \"./box\";\n\n/**\n * Grid item component\n * Controls individual item placement inside CSS Grid containers\n */\nexport interface GridItemPropertiesInterface extends BoxProps {\n /**\n * Grid area name or shorthand\n * (e.g. \"header\", \"1 / 1 / 3 / 2\")\n */\n grdArea?: string;\n\n /**\n * Grid column placement\n * (e.g. \"1 / span 2\", \"sidebar\")\n */\n grdColumn?: string;\n\n /**\n * Grid row placement\n * (e.g. \"1 / span 3\", \"content\")\n */\n grdRow?: string;\n}\n\nexport function GridItem(p: GridItemPropertiesInterface, children: any[]) {\n return (\n <Box\n {...p}\n style={{\n gridArea: p.grdArea,\n gridColumn: p.grdColumn,\n gridRow: p.grdRow,\n\n ...p.style,\n }}\n >\n {children}\n </Box>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport { GridItem } from \"./grid-item\";\nimport type { GridItemPropertiesInterface } from \"./grid-item\";\n\n/**\n * Grid container component\n * Core CSS Grid layout primitive\n */\nexport interface GridPropertiesInterface extends GridItemPropertiesInterface {\n /** Gap between grid items */\n g?: string;\n\n /** Align-items (block axis) */\n ai?: \"stretch\" | \"start\" | \"end\" | \"center\" | \"baseline\";\n\n /** Justify-items (inline axis) */\n ji?: \"stretch\" | \"start\" | \"end\" | \"center\" | \"baseline\";\n\n /** Align-self (container as grid item) */\n as?:\n | \"auto\"\n | \"normal\"\n | \"stretch\"\n | \"center\"\n | \"start\"\n | \"end\"\n | \"self-start\"\n | \"self-end\"\n | \"flex-start\"\n | \"flex-end\"\n | \"left\"\n | \"right\";\n\n // Grid templates\n grdTemplateColumns?: string;\n grdTemplateRows?: string;\n grdTemplateAreas?: string;\n grdTemplate?: string;\n\n // Auto grid\n grdAutoColumns?: string;\n grdAutoRows?: string;\n grdAutoFlow?: \"row\" | \"column\" | \"row dense\" | \"column dense\";\n\n // Placement\n grd?: string;\n grdRowStart?: string;\n grdColumnStart?: string;\n grdRowEnd?: string;\n grdColumnEnd?: string;\n grdRow?: string;\n grdColumn?: string;\n\n // Gaps\n grdRowGap?: string;\n grdColumnGap?: string;\n}\n\nexport function Grid(p: GridPropertiesInterface, children: any[]) {\n return (\n <GridItem\n {...p}\n style={{\n display: \"grid\",\n\n gap: p.g,\n\n alignItems: p.ai,\n justifyItems: p.ji,\n alignSelf: p.as,\n\n gridTemplateColumns: p.grdTemplateColumns,\n gridTemplateRows: p.grdTemplateRows,\n gridTemplateAreas: p.grdTemplateAreas,\n gridTemplate: p.grdTemplate,\n\n gridAutoColumns: p.grdAutoColumns,\n gridAutoRows: p.grdAutoRows,\n gridAutoFlow: p.grdAutoFlow,\n\n gridArea: p.grd,\n gridRowStart: p.grdRowStart,\n gridColumnStart: p.grdColumnStart,\n gridRowEnd: p.grdRowEnd,\n gridColumnEnd: p.grdColumnEnd,\n gridRow: p.grdRow,\n gridColumn: p.grdColumn,\n\n rowGap: p.grdRowGap,\n columnGap: p.grdColumnGap,\n\n ...p.style,\n }}\n >\n {children}\n </GridItem>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport { Box } from \"./box\";\nimport type { BoxProps } from \"./box\";\n\n/**\n * Relative positioned component\n * Establishes a positioning context for absolute children\n */\nexport interface RelativePropertiesInterface extends BoxProps {\n /**\n * Stacking order (z-index)\n * (e.g. \"1\", \"auto\", \"var(--z-index-modal)\")\n */\n zIndex?: string;\n}\n\nexport function Relative(p: RelativePropertiesInterface, children: any[]) {\n return (\n <Box\n {...p}\n style={{\n position: \"relative\",\n zIndex: p.zIndex,\n\n ...p.style,\n }}\n >\n {children}\n </Box>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport { Relative } from \"./relative\";\nimport { Absolute } from \"./absolute\";\nimport type { BoxProps } from \"./box\";\n\n/**\n * Scroll component\n * Creates a scrollable container filling its parent\n */\nexport interface ScrollPropertiesInterface extends BoxProps {}\n\nexport function Scroll(p: ScrollPropertiesInterface, children: any[]) {\n return (\n <Relative s=\"100%\">\n <Absolute\n top=\"0\"\n right=\"0\"\n bottom=\"0\"\n left=\"0\"\n {...p}\n style={{\n overflow: \"auto\",\n ...p.style,\n }}\n >\n {children}\n </Absolute>\n </Relative>\n );\n}\n","import { Flex } from \"./flex\";\nimport { jsx } from \"../core\";\nimport type { FlexPropertiesInterface } from \"./flex\";\n\n/**\n * Stack component\n * Vertical layout primitive (flex-direction: column by default)\n */\nexport interface StackPropertiesInterface extends FlexPropertiesInterface {}\n\nexport function Stack(p: StackPropertiesInterface, children: any[]) {\n return (\n <Flex {...p} flxDirection={p.flxDirection ?? \"column\"}>\n {children}\n </Flex>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport { Box } from \"./box\";\nimport type { BoxProps } from \"./box\";\n\n/**\n * Sticky positioned component\n * Sticks to a position within its scroll container\n */\nexport interface StickyPropertiesInterface extends BoxProps {\n /** Top offset (e.g. \"10px\") */\n top?: string;\n\n /** Right offset */\n right?: string;\n\n /** Bottom offset */\n bottom?: string;\n\n /** Left offset */\n left?: string;\n\n /** Stacking order (z-index) */\n zIndex?: string;\n}\n\nexport function Sticky(p: StickyPropertiesInterface, children: any[]) {\n return (\n <Box\n {...p}\n style={{\n position: \"sticky\",\n\n top: p.top,\n right: p.right,\n bottom: p.bottom,\n left: p.left,\n zIndex: p.zIndex,\n\n ...p.style,\n }}\n >\n {children}\n </Box>\n );\n}\n","import { jsx } from \"../core/jsx\";\nimport type { DOMAttrs, DOMEvents } from \"../core/dom\";\n\n/**\n * Text component\n * Typographic primitive for rendering text elements\n */\nexport interface TextPropertiesInterface extends DOMAttrs, DOMEvents {\n /** Text content */\n children?: any;\n\n /**\n * HTML tag to render\n * @default \"p\"\n */\n tag?: \"span\" | \"p\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n\n // ─────────────────────────────\n // Text styling\n // ─────────────────────────────\n\n /** Text alignment */\n a?: \"left\" | \"right\" | \"center\" | \"justify\";\n\n /** Font family */\n ff?: string;\n\n /** Font weight */\n fw?: number;\n\n /** Font size */\n fs?: string;\n\n /** Line height */\n lh?: string;\n\n /** Letter spacing */\n ls?: string;\n\n /** Font style */\n s?: \"normal\" | \"italic\";\n\n /** Text color */\n c?: string;\n\n // ─────────────────────────────\n // Spacing – Margin\n // ─────────────────────────────\n\n m?: string;\n mb?: string;\n ml?: string;\n mr?: string;\n mt?: string;\n mx?: string;\n my?: string;\n\n // ─────────────────────────────\n // Spacing – Padding\n // ─────────────────────────────\n\n p?: string;\n pb?: string;\n pl?: string;\n pr?: string;\n pt?: string;\n px?: string;\n py?: string;\n\n /** Background */\n bg?: string;\n}\n\nexport function Text(p: TextPropertiesInterface, children: any[]) {\n const Tag = p.tag ?? \"p\";\n\n return jsx(\n Tag,\n {\n ...p,\n style: {\n textAlign: p.a,\n fontFamily: p.ff,\n fontWeight: p.fw,\n fontSize: p.fs,\n lineHeight: p.lh,\n letterSpacing: p.ls,\n fontStyle: p.s,\n color: p.c,\n\n margin: p.m,\n marginBottom: p.mb ?? p.my ?? p.m,\n marginLeft: p.ml ?? p.mx ?? p.m,\n marginRight: p.mr ?? p.mx ?? p.m,\n marginTop: p.mt ?? p.my ?? p.m,\n\n padding: p.p,\n paddingBottom: p.pb ?? p.py ?? p.p,\n paddingLeft: p.pl ?? p.px ?? p.p,\n paddingRight: p.pr ?? p.px ?? p.p,\n paddingTop: p.pt ?? p.py ?? p.p,\n\n background: p.bg,\n },\n },\n ...children\n );\n}\n","export const color = {\n brand: \"#000\",\n onBrand: \"#fff\",\n\n gray0: \"#f8f9fa\",\n gray100: \"#f1f3f5\",\n gray200: \"#e9ecef\",\n gray300: \"#dee2e6\",\n gray400: \"#ced4da\",\n gray500: \"#adb5bd\",\n gray600: \"#868e96\",\n gray700: \"#495057\",\n gray800: \"#343a40\",\n gray900: \"#212529\",\n\n red0: \"#fff5f5\",\n red100: \"#ffe3e3\",\n red200: \"#ffc9c9\",\n red300: \"#ffa8a8\",\n red400: \"#ff8787\",\n red500: \"#ff6b6b\",\n red600: \"#fa5252\",\n red700: \"#f03e3e\",\n red800: \"#e03131\",\n red900: \"#c92a2a\",\n\n pink0: \"#fff0f6\",\n pink100: \"#ffdeeb\",\n pink200: \"#fcc2d7\",\n pink300: \"#faa2c1\",\n pink400: \"#f783ac\",\n pink500: \"#f06595\",\n pink600: \"#e64980\",\n pink700: \"#d6336c\",\n pink800: \"#c2255c\",\n pink900: \"#a61e4d\",\n\n grape0: \"#f8f0fc\",\n grape100: \"#f3d9fa\",\n grape200: \"#eebefa\",\n grape300: \"#e599f7\",\n grape400: \"#da77f2\",\n grape500: \"#cc5de8\",\n grape600: \"#be4bdb\",\n grape700: \"#ae3ec9\",\n grape800: \"#9c36b5\",\n grape900: \"#862e9c\",\n\n violet0: \"#f3f0ff\",\n violet100: \"#e5dbff\",\n violet200: \"#d0bfff\",\n violet300: \"#b197fc\",\n violet400: \"#9775fa\",\n violet500: \"#845ef7\",\n violet600: \"#7950f2\",\n violet700: \"#7048e8\",\n violet800: \"#6741d9\",\n violet900: \"#5f3dc4\",\n\n indigo0: \"#edf2ff\",\n indigo100: \"#dbe4ff\",\n indigo200: \"#bac8ff\",\n indigo300: \"#91a7ff\",\n indigo400: \"#748ffc\",\n indigo500: \"#5c7cfa\",\n indigo600: \"#4c6ef5\",\n indigo700: \"#4263eb\",\n indigo800: \"#3b5bdb\",\n indigo900: \"#364fc7\",\n\n blue0: \"#e7f5ff\",\n blue100: \"#d0ebff\",\n blue200: \"#a5d8ff\",\n blue300: \"#74c0fc\",\n blue400: \"#4dabf7\",\n blue500: \"#339af0\",\n blue600: \"#228be6\",\n blue700: \"#1c7ed6\",\n blue800: \"#1971c2\",\n blue900: \"#1864ab\",\n\n cyan0: \"#e3fafc\",\n cyan100: \"#c5f6fa\",\n cyan200: \"#99e9f2\",\n cyan300: \"#66d9e8\",\n cyan400: \"#3bc9db\",\n cyan500: \"#22b8cf\",\n cyan600: \"#15aabf\",\n cyan700: \"#1098ad\",\n cyan800: \"#0c8599\",\n cyan900: \"#0b7285\",\n\n teal0: \"#e6fcf5\",\n teal100: \"#c3fae8\",\n teal200: \"#96f2d7\",\n teal300: \"#63e6be\",\n teal400: \"#38d9a9\",\n teal500: \"#20c997\",\n teal600: \"#12b886\",\n teal700: \"#0ca678\",\n teal800: \"#099268\",\n teal900: \"#087f5b\",\n\n green0: \"#ebfbee\",\n green100: \"#d3f9d8\",\n green200: \"#b2f2bb\",\n green300: \"#8ce99a\",\n green400: \"#69db7c\",\n green500: \"#51cf66\",\n green600: \"#40c057\",\n green700: \"#37b24d\",\n green800: \"#2f9e44\",\n green900: \"#2b8a3e\",\n\n lime0: \"#f4fce3\",\n lime100: \"#e9fac8\",\n lime200: \"#d8f5a2\",\n lime300: \"#c0eb75\",\n lime400: \"#a9e34b\",\n lime500: \"#94d82d\",\n lime600: \"#82c91e\",\n lime700: \"#74b816\",\n lime800: \"#66a80f\",\n lime900: \"#5c940d\",\n\n yellow0: \"#fff9db\",\n yellow100: \"#fff3bf\",\n yellow200: \"#ffec99\",\n yellow300: \"#ffe066\",\n yellow400: \"#ffd43b\",\n yellow500: \"#fcc419\",\n yellow600: \"#fab005\",\n yellow700: \"#f59f00\",\n yellow800: \"#f08c00\",\n yellow900: \"#e67700\",\n\n orange0: \"#fff4e6\",\n orange100: \"#ffe8cc\",\n orange200: \"#ffd8a8\",\n orange300: \"#ffc078\",\n orange400: \"#ffa94d\",\n orange500: \"#ff922b\",\n orange600: \"#fd7e14\",\n orange700: \"#f76707\",\n orange800: \"#e8590c\",\n orange900: \"#d9480f\",\n};\n","const family = {\n sans: \"sans-serif\",\n serif: \"serif\",\n mono: \"monospace\",\n};\n\nconst letterSpacing = {\n xs: \"-0.05em\", // Extra small\n sm: \"-0.025em\", // Small\n md: \"0em\", // Medium\n lg: \"0.025em\", // Large\n xl: \"0.05em\", // Extra large\n \"2xl\": \"0.1em\", // 2 times extra large\n \"3xl\": \"0.15em\", // 3 times extra large\n \"4xl\": \"0.2em\", // 4 times extra large\n \"5xl\": \"0.25em\", // 5 times extra large\n \"6xl\": \"0.3em\", // 6 times extra large\n \"7xl\": \"0.35em\", // 7 times extra large\n \"8xl\": \"0.4em\", // 8 times extra large\n \"9xl\": \"0.45em\", // 9 times extra large\n};\n\nconst lineHeight = {\n xs: \"1rem\", // Extra small\n sm: \"1.25rem\", // Small\n md: \"1.5rem\", // Medium\n lg: \"1.75rem\", // Large\n xl: \"2rem\", // Extra large\n \"2xl\": \"2.25rem\", // 2 times extra large\n \"3xl\": \"2.5rem\", // 3 times extra large\n \"4xl\": \"2.75rem\", // 4 times extra large\n \"5xl\": \"3rem\", // 5 times extra large\n \"6xl\": \"3.25rem\", // 6 times extra large\n \"7xl\": \"3.5rem\", // 7 times extra large\n \"8xl\": \"3.75rem\", // 8 times extra large\n \"9xl\": \"4rem\", // 9 times extra large\n};\n\nconst size = {\n xs: \"0.75rem\", // Extra small\n sm: \"0.875rem\", // Small\n md: \"1rem\", // Medium\n lg: \"1.125rem\", // Large\n xl: \"1.25rem\", // Extra large\n \"2xl\": \"1.5rem\", // 2 times extra large\n \"3xl\": \"1.875rem\", // 3 times extra large\n \"4xl\": \"2.25rem\", // 4 times extra large\n \"5xl\": \"3rem\", // 5 times extra large\n \"6xl\": \"3.75rem\", // 6 times extra large\n \"7xl\": \"4.5rem\", // 7 times extra large\n \"8xl\": \"6rem\", // 8 times extra large\n \"9xl\": \"8rem\", // 9 times extra large\n};\n\nconst style = {\n normal: \"normal\",\n italic: \"italic\",\n};\nconst weight = {\n thin: 100, // Thin\n extralight: 200, // Extra Light\n light: 300, // Light\n normal: 400, // Normal\n medium: 500, // Medium\n semibold: 600, // Semi-bold\n bold: 700, // Bold\n extrabold: 800, // Extra Bold\n black: 900, // Black\n};\n\nexport const font = {\n family,\n size,\n weight,\n style,\n lineHeight,\n letterSpacing,\n};\n","export const radius = {\n sm: \"0.125rem\", // 2px\n md: \"0.375rem\", // 6px\n lg: \"0.5rem\", // 8px\n xl: \"0.75rem\", // 12px\n \"2xl\": \"1rem\", // 16px\n \"3xl\": \"1.5rem\", // 24px\n full: \"9999px\", // full circle\n}\n","export const shadow = {\n sm: \"0 1px 2px 0 rgb(0 0 0 / 0.05)\",\n md: \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",\n lg: \"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)\",\n xl: \"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)\",\n \"2xl\": \"0 25px 50px -12px rgb(0 0 0 / 0.25)\",\n inner: \"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)\",\n}\n","export const size = {\n xs: \"0.75rem\", // Extra small\n sm: \"0.875rem\", // Small\n md: \"1rem\", // Medium\n lg: \"1.125rem\", // Large\n xl: \"1.25rem\", // Extra large\n \"2xl\": \"1.5rem\", // 2 times extra large\n \"3xl\": \"1.875rem\", // 3 times extra large\n \"4xl\": \"2.25rem\", // 4 times extra large\n \"5xl\": \"3rem\", // 5 times extra large\n \"6xl\": \"3.75rem\", // 6 times extra large\n \"7xl\": \"4.5rem\", // 7 times extra large\n \"8xl\": \"6rem\", // 8 times extra large\n \"9xl\": \"8rem\", // 9 times extra large\n\n // Fractional sizes\n \"1/12\": \"8.333333%\",\n \"2/12\": \"16.666667%\", // = 1/6\n \"3/12\": \"25%\", // = 1/4\n \"4/12\": \"33.333333%\", // = 1/3\n \"5/12\": \"41.666667%\",\n \"6/12\": \"50%\", // = 1/2\n \"7/12\": \"58.333333%\",\n \"8/12\": \"66.666667%\", // = 2/3\n \"9/12\": \"75%\", // = 3/4\n \"10/12\": \"83.333333%\", // = 5/6\n \"11/12\": \"91.666667%\",\n \"1/5\": \"20%\",\n \"2/5\": \"40%\",\n \"3/5\": \"60%\",\n \"4/5\": \"80%\",\n \"1/4\": \"25%\",\n \"3/4\": \"75%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/2\": \"50%\",\n full: \"100%\",\n};\n","export const space = {\n xs: \"0.125rem\", // Extra Small (2px)\n sm: \"0.25rem\", // Small (4px)\n md: \"0.5rem\", // Medium (8px)\n lg: \"0.75rem\", // Large (12px)\n xl: \"1rem\", // Extra Large (16px)\n xxl: \"1.5rem\", // 2 Extra Large (24px)\n \"3xl\": \"2rem\", // 3 Extra Large (32px)\n \"4xl\": \"2.5rem\", // 4 Extra Large (40px)\n \"5xl\": \"3rem\", // 5 Extra Large (48px)\n \"6xl\": \"3.5rem\", // 6 Extra Large (56px)\n \"7xl\": \"4rem\", // 7 Extra Large (64px)\n \"8xl\": \"4.5rem\", // 8 Extra Large (72px)\n}\n","export const style = {\n normal: \"normal\",\n italic: \"italic\",\n}\n","export const zIndex = {\n base: \"100\",\n background: \"200\",\n menu: \"300\",\n}\n"],"mappings":"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"}
|