tempest.games 0.2.104 → 0.2.105

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/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # tempest.games
2
2
 
3
+ ## 0.2.105
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [a0f4ee4]
8
+ - Updated dependencies [a0f4ee4]
9
+ - atom.io@0.46.13
10
+
3
11
  ## 0.2.104
4
12
 
5
13
  ### Patch Changes
Binary file
@@ -10,7 +10,7 @@ ${b.trace}`:`No previous disposal trace for ${n} was found.`);return}r.subject.n
10
10
  ${g.trace}`:`No previous disposal trace for ${o} was found.`),n}const f=zt(e),h=u.molecules.get(f);if(!h){const g=t.disposalTraces.buffer.find(b=>b?.key===f);return t.logger.error("❌","key",n,"claim failed:",`Could not allocate to ${f} in store "${t.config.name}".`,g?`
11
11
  ${f} was most recently disposed
12
12
  ${g.trace}`:`No previous disposal trace for ${f} was found.`),n}const m=t.moleculeGraph.getRelationEntries({downstreamMoleculeKey:c.stringKey}).filter(([,{source:g}])=>g!==o).map(([g])=>qr(g));r&&u.moleculeGraph.delete(o),u.moleculeGraph.set({upstreamMoleculeKey:h.stringKey,downstreamMoleculeKey:c.stringKey},{source:h.stringKey});const y={type:"molecule_transfer",key:c.key,exclusive:!!r,from:m,to:[h.key],timestamp:Date.now()};return Tn(u)&&u.transactionMeta.phase==="building"&&u.transactionMeta.update.subEvents.push(y),n}function ZC(t,e,n){switch(n){case"newValue":W1(t,e);break;case"oldValue":lf(t,e.token);break}}function QC(t,e,n){switch(n){case"newValue":lf(t,e.token);break;case"oldValue":W1(t,e),e.subType==="atom"&&t.valueMap.set(e.token.key,e.value);break}}function W1(t,e){const{token:n}=e;e.subType==="writable"&&e.value?Lt(t,n,e.value):An(t,n)}function WC(t,e,n){switch(n){case"newValue":Q1(t,e.provenance,e.key);break;case"oldValue":ty(t,e.key);break}}function eM(t,e,n){switch(n){case"newValue":ty(t,e.key);break;case"oldValue":Q1(t,e.provenance.map(qr),e.key);for(const[r,o]of e.values){const u=t.families.get(r);if(u){An(t,u,e.key);const c=`${r}(${zt(e.key)})`;t.valueMap.set(c,o)}}break}}function tM(t,e,n){switch(n){case"newValue":for(const r of e.to)NS(t,r,e.key,e.exclusive?"exclusive":void 0);break;case"oldValue":{let r="exclusive";for(const o of e.from)NS(t,o,e.key,r),r=void 0}break}}function xo(t,e,n){const r=n==="newValue"?e.subEvents:[...e.subEvents].reverse();for(const o of r)switch(o.type){case"atom_update":JC(t,o,n);break;case"state_creation":ZC(t,o,n);break;case"state_disposal":QC(t,o,n);break;case"molecule_creation":WC(t,o,n);break;case"molecule_disposal":eM(t,o,n);break;case"molecule_transfer":tM(t,o,n);break;case"transaction_outcome":xo(t,o,n);break}}function ll(t){return"epoch"in t.transactionMeta}function Tn(t){return"phase"in t.transactionMeta}function eT(t,e){return t.transactionMeta.actionContinuities.getRelatedKey(e)}function tT(t,e){return t.transactionMeta.epoch.get(e)}function nM(t,e){const n=eT(t,e);if(n!==void 0)return tT(t,n)}function ny(t,e,n){t.transactionMeta.epoch.set(e,n)}function iM(t,e,n){const r=eT(t,e);r!==void 0&&t.transactionMeta.epoch.set(r,n)}function rM(t,e){const n=Re(t),{parent:r}=n;n.transactionMeta.phase="applying",n.transactionMeta.update.output=e,r.child=null,r.on.transactionApplying.next(n.transactionMeta);const{subEvents:o}=n.transactionMeta.update;t.logger.info("🛄","transaction",n.transactionMeta.update.token.key,`applying ${o.length} subEvents:`,o),xo(r,n.transactionMeta.update,"newValue"),ll(r)?(iM(r,n.transactionMeta.update.token.key,n.transactionMeta.update.epoch),ct(t,{key:n.transactionMeta.update.token.key,type:"transaction"})?.subject.next(n.transactionMeta.update),t.logger.info("🛬","transaction",n.transactionMeta.update.token.key,"applied")):Tn(r)&&r.transactionMeta.update.subEvents.push(n.transactionMeta.update),r.on.transactionApplying.next(null)}function nT(t,e,n){const{epoch:r,actionContinuities:o}=t.transactionMeta;o.set(e,n),r.has(e)||r.set(e,-1)}function sM(t){return{store:t}}const oM=(t,e,n,r)=>{const o=Re(t),u={parent:o,child:null,on:o.on,loggers:o.loggers,logger:o.logger,config:o.config,atoms:new Jn(o.atoms),atomsThatAreDefault:new Set(o.atomsThatAreDefault),families:new Jn(o.families),joins:new Jn(o.joins),operation:{open:!1},readonlySelectors:new Jn(o.readonlySelectors),timelines:new Jn(o.timelines),timelineTopics:o.timelineTopics.overlay(),trackers:new Map,transactions:new Jn(o.transactions),selectorAtoms:o.selectorAtoms.overlay(),selectorGraph:o.selectorGraph.overlay(),writableSelectors:new Jn(o.writableSelectors),valueMap:new Jn(o.valueMap),defaults:o.defaults,disposalTraces:t.disposalTraces.copy(),molecules:new Jn(o.molecules),moleculeGraph:o.moleculeGraph.overlay(),moleculeData:o.moleculeData.overlay(),keyRefsInJoins:o.keyRefsInJoins.overlay(),miscResources:new Jn(o.miscResources)},c=nM(t,e.key),f={phase:"building",update:{type:"transaction_outcome",token:e,id:r,epoch:c===void 0?NaN:c+1,timestamp:Date.now(),subEvents:[],params:n,output:void 0},toolkit:{get:((...m)=>An(h,...m)),set:((...m)=>{Lt(h,...m)}),reset:((...m)=>{ay(h,...m)}),run:(m,y=af())=>ey(h,m,y),find:((...m)=>Pr(t,...m)),json:m=>ks(h,m),dispose:((...m)=>{lf(h,...m)}),env:()=>sM(h)}},h=Object.assign(u,{transactionMeta:f});return o.child=h,t.logger.info("🛫","transaction",e.key,"building with params:",n),h};function iT(t,e){const{key:n}=e,r=t.transactions.has(n),o={key:n,type:"transaction",run:(c,f)=>{const h=oM(t,zr(o),c,f);try{const{toolkit:m}=h.transactionMeta,y=e.do(m,...c);return rM(h,y),y}catch(m){throw YC(h),t.logger.warn("💥","transaction",n,"caught:",m),m}},install:c=>iT(c,e),subject:new We};Re(t).transactions.set(n,o);const u=zr(o);return r||t.on.transactionCreation.next(u),u}var aM=class{parent=null;child=null;valueMap=new Map;defaults=new Map;atoms=new Map;writableSelectors=new Map;readonlySelectors=new Map;atomsThatAreDefault=new Set;selectorAtoms=new Pi({between:["selectorKey","atomKey"],cardinality:"n:n"});selectorGraph=new Pi({between:["upstreamSelectorKey","downstreamSelectorKey"],cardinality:"n:n"},{makeContentKey:(...t)=>t.sort().join(":")});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new Pi({between:["continuity","action"],cardinality:"1:n"})};timelines=new Map;timelineTopics=new Pi({between:["timelineKey","topicKey"],cardinality:"1:n"});disposalTraces=new HC(100);molecules=new Map;moleculeGraph=new Pi({between:["upstreamMoleculeKey","downstreamMoleculeKey"],cardinality:"n:n"},{makeContentKey:(...t)=>t.sort().join(":")});moleculeData=new Pi({between:["moleculeKey","stateFamilyKey"],cardinality:"n:n"},{makeContentKey:(...t)=>t.sort().join(":")});keyRefsInJoins=new Pi({between:["moleculeKey","joinKey"],cardinality:"n:n"},{makeContentKey:(...t)=>t.sort().join(":")});miscResources=new Map;on={atomCreation:new We,atomDisposal:new We,selectorCreation:new We,selectorDisposal:new We,timelineCreation:new We,transactionCreation:new We,transactionApplying:new IC(null),operationClose:new We,moleculeCreation:new We,moleculeDisposal:new We};operation={open:!1};config={name:"IMPLICIT_STORE",lifespan:"ephemeral",isProduction:!0};loggers=[new BC("warn",(t,e,n)=>!GC(n))];logger={error:(...t)=>{for(const e of this.loggers)e.error(...t)},info:(...t)=>{for(const e of this.loggers)e.info(...t)},warn:(...t)=>{for(const e of this.loggers)e.warn(...t)}};constructor(t,e=null){if(this.config={...e?.config,...t},e!==null){this.operation={...e?.operation},ll(e)&&(this.transactionMeta={epoch:new Map(e?.transactionMeta.epoch),actionContinuities:new Pi(e?.transactionMeta.actionContinuities.toJSON())});for(const[,r]of e.families)r.internalRoles?.includes("mutable")||r.internalRoles?.includes("join")||r.install(this);const n=new Set;for(const[,r]of e.atoms)if(!n.has(r.key)&&(r.install(this),r.type==="mutable_atom")){const o=ks(e,r),u=mT(r);n.add(o.key),n.add(u.key)}for(const[,r]of e.readonlySelectors)r.install(this);for(const[,r]of e.writableSelectors)n.has(r.key)||r.install(this);for(const[,r]of e.transactions)r.install(this);for(const[,r]of e.timelines)r.install(this)}}};const Ft={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new aM({name:"IMPLICIT_STORE",lifespan:"ephemeral",isProduction:!0}),globalThis.ATOM_IO_IMPLICIT_STORE}};var lM=class extends Error{constructor(t,e){super(`${Kr[t.type]} ${zt(t.key)} not found in store "${e.config.name}".`)}};function ct(t,e){let n,r=t;for(;r!==null;){switch(e.type){case"atom":case"mutable_atom":n=r.atoms.get(e.key);break;case"writable_pure_selector":case"writable_held_selector":n=r.writableSelectors.get(e.key);break;case"readonly_pure_selector":case"readonly_held_selector":n=r.readonlySelectors.get(e.key);break;case"atom_family":case"mutable_atom_family":case"writable_pure_selector_family":case"readonly_pure_selector_family":case"writable_held_selector_family":case"readonly_held_selector_family":n=r.families.get(e.key);break;case"timeline":n=r.timelines.get(e.key);break;case"transaction":n=r.transactions.get(e.key);break}if(n)return n;r=r.child}throw new lM(e,t)}function rT(t,e,n,r){const o=t.disposalTraces.buffer.find(u=>u?.key===zt(r));switch(t.logger.error("❌",e.type,e.key,"gets a fallback value because key",r,"is not allocated",o?`This key was previously disposed:
13
- ${o.trace}`:"(no previous disposal trace found)"),n.type){case"mutable_atom_family":{if(t.defaults.has(n.key))return t.defaults.get(n.key);const u=new n.class;return t.defaults.set(n.key,u),u.READONLY_VIEW}case"atom_family":{if(t.defaults.has(n.key))return t.defaults.get(n.key);const u=n.default,c=u(r);return t.defaults.set(n.key,c),c}case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(t.defaults.has(n.key))return t.defaults.get(n.key);const u=n.default(r);return t.defaults.set(n.key,u),u}}}function Nc(t,e){const{type:n,key:r,catch:o}=e;switch(n){case"readonly_pure_selector":case"writable_pure_selector":{let u;t.logger.info("🧮",n,r,"computing value");try{u=e.getFrom(t),u instanceof Promise&&(u=u.catch(c=>{if(t.logger.error("💥",n,r,"rejected:",c),o){for(const f of o)if(c instanceof f)return c}throw c}))}catch(c){if(t.logger.error("💥",n,r,"rejected:",c),o){for(const f of o)if(c instanceof f)return di(t,e,c)}throw c}return di(t,e,u)}case"atom":{let u;if(Br(e.default))try{u=e.default(),u instanceof Promise&&(u=u.catch(c=>{if(t.logger.error("💥",n,r,"rejected:",c),o){for(const f of o)if(c instanceof f)return c}throw c}))}catch(c){if(t.logger.error("💥",n,r,"rejected:",c),o){for(const f of o)if(c instanceof f)return u=di(t,e,c),t.logger.info("✨",e.type,r,"computed default",u),u}throw c}else u=e.default,t.logger.info("✨",e.type,r,"using static default",u);return di(t,e,u)}}}function Rs(t,e,n){if(t.valueMap.has(e.key))return yT(t,e,n);t.logger.info("❔",e.type,e.key,"value not found in cache");const{key:r}=e;switch(e.type){case"readonly_held_selector":case"writable_held_selector":return t.logger.info("🧮",e.type,r,"computing value"),e.getFrom(t);case"writable_pure_selector":case"readonly_pure_selector":case"atom":return Nc(t,e);case"mutable_atom":{const o=new e.class;return t.logger.info("✨",e.type,r,"created new instance",o),di(t,e,o)}}}function iy(t,e){return ct(t,{key:e.family.key,type:`${e.type}_family`})}const $S={atom_family:"atom",molecule_family:"molecule",mutable_atom_family:"mutable_atom",readonly_held_selector_family:"readonly_held_selector",readonly_pure_selector_family:"readonly_pure_selector",writable_held_selector_family:"writable_held_selector",writable_pure_selector_family:"writable_pure_selector"},ul=Symbol("MUST_CREATE"),uM=Symbol("DO_NOT_CREATE");function cl(t,e,n,r){const o=zt(r),u=e.molecules.get(o);if(!u&&e.config.lifespan==="immortal"){const{type:f,key:h}=n;return e.logger.warn("💣","key",o,"was used to mint a counterfeit token for",f,`"${h}"`),{counterfeit:!0,key:`${h}(${o})`,type:$S[f],family:{key:h,subKey:o}}}let c;if(t===ul)e.logger.info("👪",n.type,n.key,"adds member",typeof r=="string"?`\`${r}\``:r),c=n.create(r),u&&e.moleculeData.set(o,n.key);else{const{type:f,key:h}=n;return{key:`${h}(${o})`,type:$S[f],family:{key:h,subKey:o}}}return c}function ry(t,...e){let n,r,o,u,c;if(e.length===1){if(c=e[0],"family"in c){const h=iy(t,c);if(o=ct(t,h),u=qr(c.family.subKey),n=fl(t,h,u),"counterfeit"in c)return{token:c,family:o,subKey:u,isNew:!1};n?c=n:(r=cl(ul,t,h,u),c=r)}}else o=ct(t,e[0]),u=e[1],n=fl(t,o,u),n?c=n:(r=cl(ul,t,o,u),c=r);const f="counterfeit"in c;if(r&&f===!1&&o){let h;switch(c.type){case"readonly_pure_selector":case"readonly_held_selector":h="readable";break;case"atom":case"mutable_atom":case"writable_pure_selector":case"writable_held_selector":h="writable";break}const m={type:"state_creation",subType:h,token:c,timestamp:Date.now()};o.subject.next(m);const y=Re(t);if(c.family)if(ll(y))switch(c.type){case"atom":case"mutable_atom":t.on.atomCreation.next(c);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":t.on.selectorCreation.next(c);break}else Tn(y)&&y.on.transactionApplying.state===null&&y.transactionMeta.update.subEvents.push(m)}return{token:c,family:o,subKey:u,isNew:!!r}}function An(t,...e){const{token:n,family:r,subKey:o}=ry(t,...e);return"counterfeit"in n&&r&&o?rT(t,n,r,o):Rs(t,ct(t,n))}function fl(t,e,n){const r=zt(n),o=`${e.key}(${r})`,u=Re(t);let c;switch(e.type){case"atom_family":case"mutable_atom_family":c=u.atoms.get(o);break;case"writable_held_selector_family":case"writable_pure_selector_family":c=u.writableSelectors.get(o);break;case"readonly_held_selector_family":case"readonly_pure_selector_family":c=u.readonlySelectors.get(o);break}return c&&zr(c)}function Pr(t,e,n){const r=ct(t,e),o=fl(t,e,n);return o||cl(uM,t,r,n)}function $c(t,e,n){const r=e.key,o="readonly_pure_selector_family",u={key:r,type:o},c=t.families.get(r);c&&t.config.isProduction===!0&&t.logger.error("❗",o,r,`Overwriting an existing ${Kr[c.type]} "${c.key}" in store "${t.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const f=new We,m={...u,create:y=>{const g=zt(y),b={key:r,subKey:g},S=`${r}(${g})`,x=Re(t),T={key:S,get:e.get(y)};return e.catch&&(T.catch=e.catch),cy(x,T,b)},internalRoles:n,subject:f,install:y=>$c(y,e),default:y=>e.get(y)({get:((...g)=>An(t,...g)),find:((...g)=>Pr(t,...g)),json:g=>ks(t,g)})};return t.families.set(r,m),u}function sy(t,e,n){const r={key:e.key,type:"atom_family"},o=t.families.get(e.key);o&&t.config.isProduction===!0&&t.logger.error("❗","atom_family",e.key,`Overwriting an existing ${Kr[o.type]} "${o.key}" in store "${t.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const u=new We,f={...r,create:h=>{const m=zt(h),y={key:e.key,subKey:m},g=`${e.key}(${m})`,b=Re(t),S=e.default,x={key:g,default:Br(S)?()=>S(h):S};return e.effects&&(x.effects=e.effects(h)),e.catch&&(x.catch=e.catch),ff(b,x,y)},default:e.default,subject:u,install:h=>sy(h,e),internalRoles:n};return t.families.set(e.key,f),Br(e.default)===!1&&t.defaults.set(e.key,e.default),r}function sT(t,e,n){const r=e.key,o="readonly_held_selector_family",u={key:r,type:o},c=t.families.get(r);c&&t.config.isProduction===!0&&t.logger.error("❗",o,r,`Overwriting an existing ${Kr[c.type]} "${c.key}" in store "${t.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const f=new We,m={...u,create:y=>{const g=zt(y),b={key:r,subKey:g},S=`${r}(${g})`;return uy(Re(t),{key:S,const:e.const(y),get:e.get(y)},b)},internalRoles:n,subject:f,install:y=>sT(y,e),default:e.const};return t.families.set(r,m),u}function oT(t,e,n){const r=e.key,o="writable_held_selector_family",u={key:r,type:o},c=t.families.get(r);c&&t.config.isProduction===!0&&t.logger.error("❗",o,r,`Overwriting an existing ${Kr[c.type]} "${c.key}" in store "${t.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const f=new We,m={...u,create:y=>{const g=zt(y),b={key:r,subKey:g},S=`${r}(${g})`;return fy(Re(t),{key:S,const:e.const(y),get:e.get(y),set:e.set(y)},b)},internalRoles:n,subject:f,install:y=>oT(y,e),default:e.const};return t.families.set(r,m),u}function oy(t,e,n){const r=e.key,o="writable_pure_selector_family",u={key:r,type:o},c=t.families.get(r);c&&t.config.isProduction===!0&&t.logger.error("❗",o,r,`Overwriting an existing ${Kr[c.type]} "${c.key}" in store "${t.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const f=new We,m={...u,create:y=>{const g=zt(y),b={key:r,subKey:g},S=`${r}(${g})`,x=Re(t),T={key:S,get:e.get(y),set:e.set(y)};return e.catch&&(T.catch=e.catch),dy(x,T,b)},internalRoles:n,subject:f,install:y=>oy(y,e),default:y=>e.get(y)({get:((...g)=>An(t,...g)),find:((...g)=>Pr(t,...g)),json:g=>ks(t,g)})};return t.families.set(r,m),u}function cM(t,e){const n="set"in e,r="const"in e;return r&&n?oT(t,e,void 0):r?sT(t,e,void 0):n?oy(t,e):$c(t,e)}function lf(t,...e){let n;if(e.length===1)n=e[0];else{const r=e[0],o=e[1];n=Pr(t,r,o)}try{ct(t,n)}catch{t.logger.error("❌",n.type,n.key,`could not be disposed because it was not found in the store "${t.config.name}".`);return}switch(n.type){case"atom":case"mutable_atom":gy(t,n);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":vM(t,n);break}}function aT(t,e){if(t.operation.open){const n=performance.now();return t.logger.info("🚫",e.type,e.key,`deferring setState at T-${n} until setState for "${t.operation.token.key}" is done`),n}return t.operation={open:!0,done:new Set,prev:new Map,timestamp:Date.now(),token:e,subEvents:[]},t.logger.info("⭕",e.type,e.key,`operation start in store "${t.config.name}"${Tn(t)?` ${t.transactionMeta.phase} "${t.transactionMeta.update.token.key}"`:""}`),t}function lT(t){t.operation.open&&t.logger.info("🔴",t.operation.token.type,t.operation.token.key,`operation done in store "${t.config.name}"`),t.operation={open:!1},t.on.operationClose.next(t.operation)}const uT=(t,e)=>t.operation.open?t.operation.done.has(e):(t.logger.error("🐞","unknown",e,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0),uf=(t,e)=>{if(!t.operation.open){t.logger.error("🐞","unknown",e,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}t.operation.done.add(e)};function Hp(t,e,n,r,o){const{oldValue:u,newValue:c}=n,f="oldValue"in n,h=zr(e);if(r&&o){e.subject.next({newValue:c});const S={checkpoint:!0,type:"state_creation",subType:"writable",token:h,timestamp:Date.now(),value:c};t.operation.subEvents.push(S),o.subject.next(S);const x=Re(t);if(h.family)if(ll(x))switch(h.type){case"atom":case"mutable_atom":t.on.atomCreation.next(h);break;case"writable_pure_selector":case"writable_held_selector":t.on.selectorCreation.next(h);break}else Tn(x)&&x.on.transactionApplying.state===null&&x.transactionMeta.update.subEvents.push(S);return}const{key:m,subject:y,type:g}=e;let b;if(f?b={oldValue:ic(u)?u.READONLY_VIEW:u,newValue:ic(c)?c.READONLY_VIEW:c}:b={newValue:ic(c)?c.READONLY_VIEW:c},ll(t)){switch(g){case"mutable_atom":t.logger.info("📢",g,m,"is now (",c,") subscribers:",y.subscribers.keys());break;case"atom":case"writable_pure_selector":case"writable_held_selector":t.logger.info("📢",g,m,"went (",u,"->",c,") subscribers:",y.subscribers.keys())}y.next(b)}if(Tn(t)&&(g==="mutable_atom"||g==="atom")){if(t.on.transactionApplying.state===null){if(ic(c))return;const{timestamp:S}=t.operation,x={type:"atom_update",token:h,timestamp:S,update:b};t.transactionMeta.update.subEvents.push(x),t.logger.info("📁","atom",m,"stowed (",u,"->",c,")");return}if(yy(e,"tracker:signal")){const S=m.slice(1),x=t.atoms.get(S);Rs(t,x,"mut").do(b.newValue)===null&&my(t,x)}}}const jS=Symbol("UNSET"),Fp=(t,e,n)=>{let r,o;if(Br(n)){const u=Rs(t,e,"mut");r=u,o=n(u)}else t.valueMap.has(e.key)?r=yT(t,e,"mut"):e.type==="atom"&&!Br(e.default)?r=e.default:r=jS,o=n;return t.logger.info("⭐","atom",e.key,"setting value",o),o=di(t,e,o),uf(t,e.key),my(t,e),r===jS?{newValue:o}:{oldValue:r,newValue:o}};function Qh(t,e){switch(e.type){case"mutable_atom":return Fp(t,e,new e.class);case"atom":{let n;return Br(e.default)?n=Nc(t,e):n=e.default,Fp(t,e,n)}}}function fM(t,e){let n;switch(e.type){case"atom":case"mutable_atom":n=Qh(t,e);break;case"writable_held_selector":{const r=dl(t,e.key);for(const u of r.values())Hp(t,e,Qh(t,u),!1);const o=e.getFrom(t);n={oldValue:o,newValue:o}}break;case"writable_pure_selector":{const r=Nc(t,e),o=dl(t,e.key);for(const u of o.values())Hp(t,e,Qh(t,u),!1);n={oldValue:r,newValue:Nc(t,e)}}break}return n}function Lt(t,...e){Tl(Yp,t,...e)}const Gp=Symbol("RESET");function ay(t,...e){Lt(t,...e,Gp)}function dM(t,e,n){let r,o,u;const{type:c,key:f}=e;switch(e.type){case"writable_pure_selector":r=Rs(t,e,"mut"),o=DS(n,r),o=di(t,e,o);break;case"writable_held_selector":u=e.const,DS(n,u),r=u,o=u}return t.logger.info("⭐",c,f,"setting to",o),uf(t,f),e.setSelf(o),{oldValue:r,newValue:o}}const hM=(t,e,n)=>{let r;switch(e.type){case"atom":case"mutable_atom":r=Fp(t,e,n);break;case"writable_pure_selector":case"writable_held_selector":r=dM(t,e,n);break}return r},Yp=Symbol("OWN_OP"),ly=Symbol("JOIN_OP");function Tl(t,e,...n){let r,o,u,c,f,h;n.length===2?(u=n[0],h=n[1],"family"in u&&(c=iy(e,u),f=qr(u.family.subKey),r=fl(e,c,f),r?u=r:u=o=cl(ul,e,c,f))):(c=ct(e,n[0]),f=n[1],h=n[2],r=fl(e,c,f),r?u=r:u=o=cl(ul,e,c,f));const m=h===Gp?"reset":"set";let y;if(t===Yp){const S=aT(e,u);if(typeof S=="number"){const x=S,T=e.on.operationClose.subscribe(`waiting to ${m} "${u.key}" at T-${x}`,function(){T(),e.logger.info("🟢",u.type,u.key,"resuming deferred",m,`from T-${x}`),Tl(t,e,u,h)});return}y=S}else y=e;if("counterfeit"in u&&"family"in u){const S=u.family.subKey,x=e.disposalTraces.buffer.find(T=>T?.key===S);e.logger.error("❌",u.type,u.key,"could not be",m,"because key",S,"is not allocated.",x?`this key was previously disposed:${x.trace}`:"(no previous disposal trace found)");return}const g=ct(y,u);let b;h===Gp?b=fM(y,g):b=hM(y,g,h),Hp(y,g,b,!!o,c),t===Yp&&lT(y)}const cT=(t,e)=>Re(t).atoms.has(e),pM=(t,e)=>Re(t).writableSelectors.has(e),mM=(t,e)=>Re(t).readonlySelectors.has(e),yM=(t,e)=>cT(t,e)||pM(t,e)||mM(t,e);function BS(t,e){return Re(t).selectorGraph.getRelationEntries({downstreamSelectorKey:e}).filter(([n,{source:r}])=>r!==e).map(([n,{source:r}])=>r).filter(n=>yM(t,n))}function dl(t,e,n=new Set){const r=BS(t,e),o=new Map;for(;r.length>0;){const u=r.pop();if(!n.has(u))if(n.add(u),cT(t,u)){const c=t.atoms.get(u);o.set(c.key,c)}else r.push(...BS(t,u))}return o}function gM(t,e,n,r,o){const u=Re(t),{type:c,key:f}=r;if(c==="atom"||c==="mutable_atom")u.selectorAtoms.set({selectorKey:n,atomKey:f}),t.logger.info("🔍",e,n,`discovers root atom "${f}"`);else{const h=dl(t,f,o);t.logger.info("🔍",e,n,`discovers root atoms: [ ${[...h.values()].map(m=>`"${m.key}"`).join(", ")} ]`);for(const{key:m}of h.values())u.selectorAtoms=u.selectorAtoms.set({selectorKey:n,atomKey:m})}o.add(f)}function cf(t,e,n,r){return{get:(...o)=>{const u=Re(t),{token:c,family:f,subKey:h}=ry(t,...o);let m;return"counterfeit"in c&&f&&h?m=rT(t,c,f,h):m=Rs(t,ct(t,c)),t.logger.info("🔌",e,n,`registers dependency ( "${c.key}" =`,m,")"),u.selectorGraph.set({upstreamSelectorKey:c.key,downstreamSelectorKey:n},{source:c.key}),gM(t,e,n,c,r),m},set:((...o)=>{Tl(ly,Re(t),...o)}),find:((...o)=>Pr(t,...o)),json:o=>ks(t,o)}}function uy(t,e,n){const r=Re(t),o=new We,u=new Set,{key:c,const:f}=e,h="readonly_held_selector";t.logger.info("🔨",h,c,"is being created");const{get:m,find:y,json:g}=cf(r,h,c,u),S={...e,type:h,subject:o,getFrom:T=>{const _=T.selectorGraph.getRelationEntries({downstreamSelectorKey:c});for(const[k,{source:C}]of _)C!==c&&T.selectorGraph.delete(k,c);return T.selectorAtoms.delete(c),e.get({get:m,find:y,json:g},f),di(T,S,f),t.logger.info("✨",h,c,"=",f),u.clear(),f},install:T=>uy(T,e,n)};n&&(S.family=n),r.readonlySelectors.set(c,S);const x={key:c,type:h};return n&&(x.family=n),x}function cy(t,e,n){const r=Re(t),o=new We,u=new Set,c=e.key,f="readonly_pure_selector";t.logger.info("🔨",f,c,"is being created");const{get:h,find:m,json:y}=cf(r,f,c,u),b={...e,type:f,subject:o,getFrom:()=>{const x=Re(t),T=x.selectorGraph.getRelationEntries({downstreamSelectorKey:c});for(const[k,{source:C}]of T)C!==c&&x.selectorGraph.delete(k,c);x.selectorAtoms.delete(c);const _=e.get({get:h,find:m,json:y});return t.logger.info("✨",f,c,"=",_),u.clear(),_},install:x=>cy(x,e,n)};n&&(b.family=n),r.readonlySelectors.set(c,b);const S={key:c,type:f};return n&&(S.family=n),S}function fy(t,e,n){const r=Re(t),o=new We,u=new Set,{key:c,const:f}=e,h="writable_held_selector";t.logger.info("🔨",h,c,"is being created");const m=cf(r,h,c,u),{find:y,get:g,json:b}=m,S={find:y,get:g,json:b},_={...e,type:h,subject:o,getFrom:C=>{const M=C.selectorGraph.getRelationEntries({downstreamSelectorKey:c});for(const[G,{source:I}]of M)I!==c&&C.selectorGraph.delete(G,c);return C.selectorAtoms.delete(c),e.get(S,f),di(C,_,f),t.logger.info("✨",h,c,"=",f),u.clear(),f},setSelf:()=>{e.set(m,f)},install:C=>fy(C,e,n)};n&&(_.family=n),r.writableSelectors.set(c,_);const k={key:c,type:h};return n&&(k.family=n),k}function dy(t,e,n){const r=Re(t),o=new We,u=new Set,c=e.key,f="writable_pure_selector";t.logger.info("🔨",f,c,"is being created");const h=cf(r,f,c,u),{find:m,get:y,json:g}=h,b={find:m,get:y,json:g},T={...e,type:f,subject:o,getFrom:k=>{const C=k.selectorGraph.getRelationEntries({downstreamSelectorKey:c});for(const[G,{source:I}]of C)I!==c&&k.selectorGraph.delete(G,c);k.selectorAtoms.delete(c);const M=e.get(b);return t.logger.info("✨",f,c,"=",M),u.clear(),M},setSelf:k=>{e.set(h,k)},install:k=>dy(k,e,n)};n&&(T.family=n),r.writableSelectors.set(c,T);const _={key:c,type:f};return n&&(_.family=n),_}function fT(t,e){const n="set"in e,r="const"in e;if(r&&n){const u=fy(t,e,void 0);return t.on.selectorCreation.next(u),u}if(r){const u=uy(t,e,void 0);return t.on.selectorCreation.next(u),u}if(n){const u=dy(t,e,void 0);return t.on.selectorCreation.next(u),u}const o=cy(t,e,void 0);return t.on.selectorCreation.next(o),o}function vM(t,e){const n=Re(t),{key:r,type:o,family:u}=e;if(!u)t.logger.error("❌",o,r,"Standalone selectors cannot be disposed.");else{n.molecules.get(u.subKey)&&n.moleculeData.delete(u.subKey,u.key);let c;switch(e.type){case"writable_held_selector":n.writableSelectors.delete(r),c={key:u.key,type:"writable_held_selector_family"},ct(t,c).subject.next({type:"state_disposal",subType:"selector",token:e,timestamp:Date.now()});break;case"writable_pure_selector":n.writableSelectors.delete(r),c={key:u.key,type:"writable_pure_selector_family"},ct(t,c).subject.next({type:"state_disposal",subType:"selector",token:e,timestamp:Date.now()});break;case"readonly_held_selector":n.readonlySelectors.delete(r),c={key:u.key,type:"readonly_held_selector_family"},ct(t,c).subject.next({type:"state_disposal",subType:"selector",token:e,timestamp:Date.now()});break;case"readonly_pure_selector":n.readonlySelectors.delete(r),c={key:u.key,type:"readonly_pure_selector_family"},ct(t,c).subject.next({type:"state_disposal",subType:"selector",token:e,timestamp:Date.now()});break}n.valueMap.delete(r),n.selectorAtoms.delete(r),n.selectorGraph.delete(r),n.moleculeData.delete(u.key,u.subKey),t.logger.info("🔥",e.type,r,"deleted"),Tn(n)&&n.transactionMeta.phase==="building"?n.transactionMeta.update.subEvents.push({type:"state_disposal",subType:"selector",token:e,timestamp:Date.now()}):t.on.selectorDisposal.next(e)}}const bM=(t,e)=>{const n=Re(t);return n.operation.open?n.operation.prev.get(e.key):n.valueMap.get(e.key)},zS=(t,e,n)=>n.subject.subscribe(`${e.type}:${e.key}`,r=>{t.logger.info("📢",e.type,e.key,"root",n.key,"went",r.oldValue,"->",r.newValue);const o=bM(t,e),u=Rs(t,e);t.logger.info("✨",e.type,e.key,"went",o,"->",u),e.subject.next({newValue:u,oldValue:o})});function Ts(t,e,n,r){function o(g){t.operation.open&&u?.type==="atom"&&yy(u,"tracker:signal")&&"*"+t.operation.token.key===e.key&&"inboundTracker"in r||r(g)}ry(t,e);const u=ct(t,e);t.logger.info("👀",u.type,u.key,`Adding subscription "${n}"`);const c=u.type==="writable_pure_selector"||u.type==="readonly_pure_selector",f=new Map;let h=o;if(c){Rs(t,u);for(const[g,b]of dl(t,u.key))f.set(g,zS(t,u,b));h=function(b){const S=dl(t,u.key);for(const[x,T]of f)S.get(x)?S.delete(x):(T(),f.delete(x));for(const[x,T]of S)f.set(x,zS(t,u,T));o(b)}}const m=u.subject.subscribe(n,h);return()=>{t.logger.info("🙈",u.type,u.key,`Removing subscription "${n}"`),m();for(const g of f.values())g()}}const dT=(t,e,n,r)=>{const o=ct(t,e);t.logger.info("👀","timeline",e.key,`Adding subscription "${n}"`);const u=o.subject.subscribe(n,r);return()=>{t.logger.info("🙈","timeline",e.key,`Removing subscription "${n}" from timeline`),u()}},hT=(t,e,n,r)=>{const o=ct(t,e);t.logger.info("👀","transaction",e.key,`Adding subscription "${n}"`);const u=o.subject.subscribe(n,r);return()=>{t.logger.info("🙈","transaction",e.key,`Removing subscription "${n}"`),u()}};function SM(t,e,n,r=af()){switch(e.type){case"atom":case"mutable_atom":case"readonly_pure_selector":case"readonly_held_selector":case"writable_pure_selector":case"writable_held_selector":return Ts(t,e,r,n);case"transaction":return hT(t,e,r,n);case"timeline":return dT(t,e,r,n)}}var hy=class{initializeSignalAtom(t,e){const n=`*${t.key}`;e.atoms.delete(n),e.valueMap.delete(n);const r=t.family?{key:`*${t.family.key}`,subKey:t.family.subKey}:void 0,o=ff(e,{key:n,default:null},r,["tracker:signal"]);if(e.parent?.valueMap.has(n)){const u=e.parent.valueMap.get(n);e.valueMap.set(n,u)}return o}unsubscribeFromInnerValue;unsubscribeFromState;captureSignalsFromCore(t,e,n){const r=t.key,o=`tracker-from-core:${n.config.name}:${Tn(n)?n.transactionMeta.update.token.key:"main"}:${r}`,u=c=>{Tl(ly,n,e,c)};this.unsubscribeFromInnerValue=An(n,t).subscribe(o,u),this.unsubscribeFromState=Ts(n,t,o,(function(f){f.newValue!==f.oldValue&&(this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=f.newValue.subscribe(o,u))}).bind(this))}supplySignalsToCore(t,e,n){const r=t.key,o=`tracker-to-core:${n.config.name}:${Tn(n)?n.transactionMeta.update.token.key:"main"}:${r}`;Ts(n,e,o,Object.assign(function({newValue:c,oldValue:f}){const h=n.timelineTopics.getRelatedKey(e.key);if(h&&n.timelines.get(h)?.timeTraveling){const m=dT(n,{key:h,type:"timeline"},o,function(g){m(),Lt(n,t,b=>(g==="redo"&&c?b.do(c):g==="undo"&&f&&b.undo(f),b))});return}Lt(n,t,m=>(m.do(c),m))},{inboundTracker:!0}))}mutableAtomToken;latestSignalToken;[Symbol.dispose];constructor(t,e){const n=Re(e),r=this.initializeSignalAtom(t,n);this.mutableAtomToken=t,this.latestSignalToken=r,this.captureSignalsFromCore(t,r,n),this.supplySignalsToCore(t,r,n),n.trackers.set(t.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),n.trackers.delete(t.key)}}};function py(t,e,n){t.logger.info("🔨","atom",e.key,`creating in store "${t.config.name}"`);const r=Re(t),{key:o}=e,u=r.atoms.get(o),c="mutable_atom";if(u?.type===c&&t.config.isProduction===!0)return t.logger.error("❌",c,o,"Tried to create atom, but it already exists in the store."),zr(u);const f=new We,h={...e,type:c,install:y=>(y.logger.info("🛠️","atom",o,`installing in store "${y.config.name}"`),py(y,e,n)),subject:f};n&&(h.family=n),r.atoms.set(h.key,h);const m=zr(h);if(new hy(m,t),n||fT(t,{key:`${o}:JSON`,get:({get:y})=>y(m).toJSON(),set:({set:y},g)=>{y(m,e.class.fromJSON(g))}}),e.effects){let y=0;const g=[];for(const b of e.effects){const S=b({resetSelf:()=>{ay(t,m)},setSelf:x=>{Lt(t,m,x)},onSet:x=>Ts(t,m,`effect[${y}]`,x),token:m,store:Wm(t)});S&&g.push(S),++y}h.cleanup=()=>{for(const b of g)b()}}return t.on.atomCreation.next(m),m}var wM=class{trackers=new Map;latestSignalAtoms;mutableAtoms;constructor(t,e){this.latestSignalAtoms=ct(e,sy(e,{key:`*${t.key}`,default:null},["mutable","updates"])),this.mutableAtoms=t;const n=r=>{const{type:o,token:u}=r;if(u.family){const c=qr(u.family.subKey);switch(o){case"state_creation":this.trackers.set(c,new hy(u,e));break;case"state_disposal":{const f=this.trackers.get(c);f&&(f[Symbol.dispose](),this.trackers.delete(c))}}}};this.mutableAtoms.subject.subscribe(`store=${e.config.name}::tracker-atom-family`,n)}};function pT(t,e,n){const r={key:e.key,type:"mutable_atom_family"},o=t.families.get(e.key);o&&t.config.isProduction===!0&&t.logger.error("❗","mutable_atom_family",e.key,`Overwriting an existing ${Kr[o.type]} "${o.key}" in store "${t.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const u=new We,f={...r,create:h=>{const m=zt(h),y={key:e.key,subKey:m},g=`${e.key}(${m})`,b=Re(t),S={key:g,class:e.class};return e.effects&&(S.effects=e.effects(h)),py(b,S,y)},class:e.class,subject:u,install:h=>pT(h,e),internalRoles:n};return t.families.set(e.key,f),oy(t,{key:`${e.key}:JSON`,get:h=>({get:m})=>m(r,h).toJSON(),set:h=>({set:m},y)=>{m(r,h,e.class.fromJSON(y))}},["mutable","json"]),new wM(f,t),r}const xM=(t,e)=>{const n=Re(e),r=`${t.key}:JSON`;return n.families.get(r)},ks=(t,e)=>e.family?Pr(t,ct(Re(t),{key:`${e.family.key}:JSON`,type:"writable_pure_selector_family"}),qr(e.family.subKey)):{type:"writable_pure_selector",key:`${e.key}:JSON`},mT=t=>{const e={type:"atom",key:`*${t.key}`};return t.family&&(e.family={key:`*${t.family.key}`,subKey:t.family.subKey}),e};function ic(t){return typeof t=="object"&&t!==null&&"do"in t&&"undo"in t&&"subscribe"in t&&"READONLY_VIEW"in t&&"toJSON"in t}function di(t,e,n){const{key:r,subject:o,type:u}=e,c=t.valueMap.get(r);if(c instanceof Ip&&!c.done){const f=c;return n instanceof Promise?(f.use(n),f):(t.valueMap.set(r,n),n)}if(n instanceof Promise){const f=new Ip(n);return t.valueMap.set(r,f),f.then(function(m){if(t.valueMap.get(r)===f){switch(aT(t,e),di(t,e,m),u){case"atom":my(t,e);break;case"readonly_pure_selector":case"writable_pure_selector":vT(t,r);break}lT(t),o.next({newValue:m,oldValue:f})}}).catch(h=>{t.logger.error("💥",e.type,r,"rejected:",h)}),f}return t.logger.info("📝",e.type,e.key,"writing to cache",n),t.valueMap.set(r,n),n}function yT(t,e,n){t.logger.info("📖",e.type,e.key,"reading cached value");let r=t.valueMap.get(e.key);if(n==="mut"&&e.type==="mutable_atom"&&Tn(t)){const o=e,{parent:u}=t;if(t.valueMap.hasOwn(o.key))return r;const c=u.valueMap.get(o.key);t.logger.info("📃","atom",o.key,"copying");const f=c.toJSON(),h=o.class.fromJSON(f);t.valueMap.set(o.key,h),new hy(o,u),r=h}return r}function gT(t,e){const n=t.valueMap.get(e);n instanceof Ip||(t.operation.open&&t.operation.prev.set(e,n),t.valueMap.delete(e),t.logger.info("🗑","state",e,"evicted"))}function my(t,e){const n=Re(t),{key:r,type:o}=e,u=n.selectorAtoms.getRelatedKeys(r);if(n.logger.info("🧹",o,r,u?`evicting ${u.size} states downstream:`:"no downstream states",u??"to evict"),u){n.operation.open&&n.logger.info("🧹",o,r,`[ ${[...n.operation.done].join(", ")} ] already done`);for(const c of u)uT(n,c)||(gT(n,c),uf(n,c))}}function vT(t,e){const n=Re(t),r=n.selectorGraph.getRelationEntries({upstreamSelectorKey:e}).filter(([o,{source:u}])=>u===e);for(const[o]of r)uT(n,o)||(gT(n,o),uf(n,o),vT(t,o))}function ff(t,e,n,r){const o="atom",{key:u}=e;t.logger.info("🔨",o,u,"is being created");const c=Re(t),f=c.atoms.get(u);if(f?.type===o&&t.config.isProduction===!0)return t.logger.error("❌","atom",u,"Tried to create atom, but it already exists in the store."),zr(f);const h=new We,m={...e,type:o,install:g=>(g.logger.info("🛠️",o,u,`installing in store "${g.config.name}"`),ff(g,e,n)),subject:h};n&&(m.family=n),r&&(m.internalRoles=r),c.atoms.set(u,m);const y=zr(m);if(e.effects){let g=0;const b=[];for(const S of e.effects){const x=S({resetSelf:()=>{ay(t,y)},setSelf:T=>{Lt(t,y,T)},onSet:T=>Ts(t,y,`effect[${g}]`,T),token:y,store:Wm(t)});x&&b.push(x),++g}m.cleanup=()=>{for(const S of b)S()}}return t.on.atomCreation.next(y),y}function yy(t,e){return"internalRoles"in t?t.internalRoles.includes(e):!1}function gy(t,e){const n=Re(t),{key:r,family:o}=e,u=ct(n,e);if(!o)t.logger.error("❌","atom",r,"Standalone atoms cannot be disposed.");else{u.cleanup?.();const c=t.valueMap.get(u.key),f=ct(t,iy(t,e)).subject,h={type:"state_disposal",subType:"atom",token:e,value:c,timestamp:Date.now()};f.next(h);const m=Tn(n);if(n.atoms.delete(r),n.valueMap.delete(r),n.selectorAtoms.delete(r),n.atomsThatAreDefault.delete(r),n.moleculeData.delete(o.key,o.subKey),t.timelineTopics.delete(r),e.type==="mutable_atom"&&(gy(t,mT(e)),t.trackers.delete(r)),t.logger.info("🔥","atom",r,"deleted"),m&&n.transactionMeta.phase==="building"){const y=n.transactionMeta.update.subEvents.at(-1),g=y?.type==="molecule_disposal"&&y.values.some(([S])=>S===u.family?.key),b=yy(u,"tracker:signal");!g&&!b&&n.transactionMeta.update.subEvents.push(h)}else t.on.atomDisposal.next(e)}}function hs(t){return t[0].toUpperCase()+t.slice(1)}var bT=class{toolkit;options;relations;states;relatedKeysAtoms;transact(t,e){const n=this.toolkit;this.toolkit=t,e(this),this.toolkit=n}store;[Symbol.dispose](){}constructor(t,e){this.store=t,this.options=e,this.store.miscResources.set(`join:${e.key}`,this),this.toolkit={get:((...y)=>An(t,...y)),set:((...y)=>{Lt(t,...y)}),find:((...y)=>Pr(t,...y)),json:y=>ks(t,y)};const n=e.between[0],r=e.between[1],o=pT(t,{key:`${e.key}/relatedKeys`,class:Y1},["join","relations"]);this.relatedKeysAtoms=o;const u=(y,g,b)=>{const{find:S,get:x,set:T}=y,_=S(o,g),k=x(_);for(const C of k)b.includes(C)||T(o,C,M=>(M.delete(g),M));T(_,C=>{C.clear();for(const M of b){const G=S(o,M),I=x(G),ee=I.has(g);if(this.relations.cardinality==="1:n"){const J=[];for(const X of I){if(X===g)continue;let he;Tl(ly,this.store,o,X,pe=>(pe.delete(M),he=pe.size,pe)),he===0&&J.push(X)}!ee&&I.size>0&&T(G,X=>(X.clear(),X));for(const X of J)t.keyRefsInJoins.delete(vc(M,X))}ee||T(G,J=>(J.add(g),J)),C.add(M)}return C})},c=(y,g,b)=>{const{set:S}=y;S(o,g,x=>{for(const T of b)x.add(T);return x});for(const x of b)S(o,x,T=>(T.add(g),T));return!0},f=new Pi(e,{externalStore:{getRelatedKeys:y=>this.toolkit.get(o,y),addRelation:(y,g)=>{this.store.keyRefsInJoins.set(`"${y}"`,e.key),this.store.keyRefsInJoins.set(`"${g}"`,e.key),this.store.keyRefsInJoins.set(vc(y,g),e.key),this.toolkit.set(o,y,b=>b.add(g)),this.toolkit.set(o,g,b=>b.add(y))},deleteRelation:(y,g)=>{this.toolkit.set(o,y,S=>(S.delete(g),S)),this.toolkit.set(o,g,S=>(S.delete(y),S));const b=vc(y,g);this.store.keyRefsInJoins.delete(b)},replaceRelationsSafely:(y,g)=>{u(this.toolkit,y,g)},replaceRelationsUnsafely:(y,g)=>{c(this.toolkit,y,g)},has:(y,g)=>{const b=this.toolkit.get(o,y);return g?b.has(g):b.size>0}},isAType:e.isAType,isBType:e.isBType}),h=()=>$c(t,{key:`${e.key}/singleRelatedKey`,get:y=>({get:g})=>{const b=g(o,y);for(const S of b)return S;return null}},["join","keys"]),m=()=>$c(t,{key:`${e.key}/multipleRelatedKeys`,get:y=>({get:g})=>g(xM(o,t),y)},["join","keys"]);switch(e.cardinality){case"1:1":{const y=h(),g=`${n}KeyOf${hs(r)}`,b=`${r}KeyOf${hs(n)}`;this.relations=f,this.states={[g]:y,[b]:y};break}case"1:n":{const y=h(),g=m(),b=`${n}KeyOf${hs(r)}`,S=`${r}KeysOf${hs(n)}`,x={[b]:y,[S]:g};this.relations=f,this.states=x;break}case"n:n":{const y=m(),g=`${n}KeysOf${hs(r)}`,b=`${r}KeysOf${hs(n)}`;this.relations=f,this.states={[g]:y,[b]:y}}}}};function TM(t,e){return t.joins.set(e.key,new bT(t,e)),{key:e.key,type:"join",a:e.between[0],b:e.between[1],cardinality:e.cardinality}}function AM(t,e){let n=t.joins.get(e.key);if(n===void 0){const r=Ft.STORE.joins.get(e.key);if(r===void 0)throw new Error(`Join "${e.key}" not found in store "${t.config.name}"`);n=new bT(Wm(t),r.options),t.joins.set(e.key,n)}return n}function EM(t,e,n){const r=AM(t,e);return[r.relatedKeysAtoms,r.relatedKeysAtoms]}var Wh={exports:{}},ye={};var LS;function OM(){if(LS)return ye;LS=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),u=Symbol.for("react.consumer"),c=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),g=Symbol.for("react.activity"),b=Symbol.iterator;function S(E){return E===null||typeof E!="object"?null:(E=b&&E[b]||E["@@iterator"],typeof E=="function"?E:null)}var x={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},T=Object.assign,_={};function k(E,q,H){this.props=E,this.context=q,this.refs=_,this.updater=H||x}k.prototype.isReactComponent={},k.prototype.setState=function(E,q){if(typeof E!="object"&&typeof E!="function"&&E!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,E,q,"setState")},k.prototype.forceUpdate=function(E){this.updater.enqueueForceUpdate(this,E,"forceUpdate")};function C(){}C.prototype=k.prototype;function M(E,q,H){this.props=E,this.context=q,this.refs=_,this.updater=H||x}var G=M.prototype=new C;G.constructor=M,T(G,k.prototype),G.isPureReactComponent=!0;var I=Array.isArray;function ee(){}var J={H:null,A:null,T:null,S:null},X=Object.prototype.hasOwnProperty;function he(E,q,H){var Q=H.ref;return{$$typeof:t,type:E,key:q,ref:Q!==void 0?Q:null,props:H}}function pe(E,q){return he(E.type,q,E.props)}function we(E){return typeof E=="object"&&E!==null&&E.$$typeof===t}function je(E){var q={"=":"=0",":":"=2"};return"$"+E.replace(/[=:]/g,function(H){return q[H]})}var be=/\/+/g;function Z(E,q){return typeof E=="object"&&E!==null&&E.key!=null?je(""+E.key):q.toString(36)}function ne(E){switch(E.status){case"fulfilled":return E.value;case"rejected":throw E.reason;default:switch(typeof E.status=="string"?E.then(ee,ee):(E.status="pending",E.then(function(q){E.status==="pending"&&(E.status="fulfilled",E.value=q)},function(q){E.status==="pending"&&(E.status="rejected",E.reason=q)})),E.status){case"fulfilled":return E.value;case"rejected":throw E.reason}}throw E}function j(E,q,H,Q,re){var ce=typeof E;(ce==="undefined"||ce==="boolean")&&(E=null);var Te=!1;if(E===null)Te=!0;else switch(ce){case"bigint":case"string":case"number":Te=!0;break;case"object":switch(E.$$typeof){case t:case e:Te=!0;break;case y:return Te=E._init,j(Te(E._payload),q,H,Q,re)}}if(Te)return re=re(E),Te=Q===""?"."+Z(E,0):Q,I(re)?(H="",Te!=null&&(H=Te.replace(be,"$&/")+"/"),j(re,q,H,"",function(ni){return ni})):re!=null&&(we(re)&&(re=pe(re,H+(re.key==null||E&&E.key===re.key?"":(""+re.key).replace(be,"$&/")+"/")+Te)),q.push(re)),1;Te=0;var Rt=Q===""?".":Q+":";if(I(E))for(var Je=0;Je<E.length;Je++)Q=E[Je],ce=Rt+Z(Q,Je),Te+=j(Q,q,H,ce,re);else if(Je=S(E),typeof Je=="function")for(E=Je.call(E),Je=0;!(Q=E.next()).done;)Q=Q.value,ce=Rt+Z(Q,Je++),Te+=j(Q,q,H,ce,re);else if(ce==="object"){if(typeof E.then=="function")return j(ne(E),q,H,Q,re);throw q=String(E),Error("Objects are not valid as a React child (found: "+(q==="[object Object]"?"object with keys {"+Object.keys(E).join(", ")+"}":q)+"). If you meant to render a collection of children, use an array instead.")}return Te}function U(E,q,H){if(E==null)return E;var Q=[],re=0;return j(E,Q,"","",function(ce){return q.call(H,ce,re++)}),Q}function L(E){if(E._status===-1){var q=E._result;q=q(),q.then(function(H){(E._status===0||E._status===-1)&&(E._status=1,E._result=H)},function(H){(E._status===0||E._status===-1)&&(E._status=2,E._result=H)}),E._status===-1&&(E._status=0,E._result=q)}if(E._status===1)return E._result.default;throw E._result}var te=typeof reportError=="function"?reportError:function(E){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var q=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof E=="object"&&E!==null&&typeof E.message=="string"?String(E.message):String(E),error:E});if(!window.dispatchEvent(q))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",E);return}console.error(E)},oe={map:U,forEach:function(E,q,H){U(E,function(){q.apply(this,arguments)},H)},count:function(E){var q=0;return U(E,function(){q++}),q},toArray:function(E){return U(E,function(q){return q})||[]},only:function(E){if(!we(E))throw Error("React.Children.only expected to receive a single React element child.");return E}};return ye.Activity=g,ye.Children=oe,ye.Component=k,ye.Fragment=n,ye.Profiler=o,ye.PureComponent=M,ye.StrictMode=r,ye.Suspense=h,ye.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=J,ye.__COMPILER_RUNTIME={__proto__:null,c:function(E){return J.H.useMemoCache(E)}},ye.cache=function(E){return function(){return E.apply(null,arguments)}},ye.cacheSignal=function(){return null},ye.cloneElement=function(E,q,H){if(E==null)throw Error("The argument must be a React element, but you passed "+E+".");var Q=T({},E.props),re=E.key;if(q!=null)for(ce in q.key!==void 0&&(re=""+q.key),q)!X.call(q,ce)||ce==="key"||ce==="__self"||ce==="__source"||ce==="ref"&&q.ref===void 0||(Q[ce]=q[ce]);var ce=arguments.length-2;if(ce===1)Q.children=H;else if(1<ce){for(var Te=Array(ce),Rt=0;Rt<ce;Rt++)Te[Rt]=arguments[Rt+2];Q.children=Te}return he(E.type,re,Q)},ye.createContext=function(E){return E={$$typeof:c,_currentValue:E,_currentValue2:E,_threadCount:0,Provider:null,Consumer:null},E.Provider=E,E.Consumer={$$typeof:u,_context:E},E},ye.createElement=function(E,q,H){var Q,re={},ce=null;if(q!=null)for(Q in q.key!==void 0&&(ce=""+q.key),q)X.call(q,Q)&&Q!=="key"&&Q!=="__self"&&Q!=="__source"&&(re[Q]=q[Q]);var Te=arguments.length-2;if(Te===1)re.children=H;else if(1<Te){for(var Rt=Array(Te),Je=0;Je<Te;Je++)Rt[Je]=arguments[Je+2];re.children=Rt}if(E&&E.defaultProps)for(Q in Te=E.defaultProps,Te)re[Q]===void 0&&(re[Q]=Te[Q]);return he(E,ce,re)},ye.createRef=function(){return{current:null}},ye.forwardRef=function(E){return{$$typeof:f,render:E}},ye.isValidElement=we,ye.lazy=function(E){return{$$typeof:y,_payload:{_status:-1,_result:E},_init:L}},ye.memo=function(E,q){return{$$typeof:m,type:E,compare:q===void 0?null:q}},ye.startTransition=function(E){var q=J.T,H={};J.T=H;try{var Q=E(),re=J.S;re!==null&&re(H,Q),typeof Q=="object"&&Q!==null&&typeof Q.then=="function"&&Q.then(ee,te)}catch(ce){te(ce)}finally{q!==null&&H.types!==null&&(q.types=H.types),J.T=q}},ye.unstable_useCacheRefresh=function(){return J.H.useCacheRefresh()},ye.use=function(E){return J.H.use(E)},ye.useActionState=function(E,q,H){return J.H.useActionState(E,q,H)},ye.useCallback=function(E,q){return J.H.useCallback(E,q)},ye.useContext=function(E){return J.H.useContext(E)},ye.useDebugValue=function(){},ye.useDeferredValue=function(E,q){return J.H.useDeferredValue(E,q)},ye.useEffect=function(E,q){return J.H.useEffect(E,q)},ye.useEffectEvent=function(E){return J.H.useEffectEvent(E)},ye.useId=function(){return J.H.useId()},ye.useImperativeHandle=function(E,q,H){return J.H.useImperativeHandle(E,q,H)},ye.useInsertionEffect=function(E,q){return J.H.useInsertionEffect(E,q)},ye.useLayoutEffect=function(E,q){return J.H.useLayoutEffect(E,q)},ye.useMemo=function(E,q){return J.H.useMemo(E,q)},ye.useOptimistic=function(E,q){return J.H.useOptimistic(E,q)},ye.useReducer=function(E,q,H){return J.H.useReducer(E,q,H)},ye.useRef=function(E){return J.H.useRef(E)},ye.useState=function(E){return J.H.useState(E)},ye.useSyncExternalStore=function(E,q,H){return J.H.useSyncExternalStore(E,q,H)},ye.useTransition=function(){return J.H.useTransition()},ye.version="19.2.3",ye}var VS;function vy(){return VS||(VS=1,Wh.exports=OM()),Wh.exports}var N=vy();const _M=CC(N),ST=kC({__proto__:null,default:_M},[N]),by=N.createContext(Ft.STORE);function wT(t,...e){let n;if(e.length===2){const r=e[0],o=e[1];n=Pr(t,r,o)}else n=e[0];return n}function Qn(...t){const e=N.useContext(by),n=wT(e,...t),r=N.useRef(null);return r.current??=o=>{Lt(e,n,o)},r.current}function xT(t,e){if(globalThis.env?.NODE_ENV==="development"){const n=N.useRef(!1);N.useEffect(()=>{let r=n.current;if(r===!1)r=t()??!0,n.current=r;else return()=>{Br(r)&&r(),n.current=!1}},e)}else N.useEffect(t,e)}function At(...t){const e=N.useContext(by),n=wT(e,...t),r=N.useId();if(n.type==="mutable_atom"||n.type==="readonly_held_selector"||n.type==="writable_held_selector"){const[,c]=N.useState(0),f=N.useRef(An(e,n));return xT(()=>Ts(e,n,`use-o:${r}`,({newValue:h})=>{f.current=h,c(m=>m+1)}),[n.key]),f.current}const o=N.useCallback(c=>Ts(e,n,`use-o:${r}`,c),[n.key]),u=N.useCallback(()=>An(e,n),[n.key]);return N.useSyncExternalStore(o,u,u)}$C({key:"mutex",default:!1});var RM=class extends Map{set(t,e){return this.has(t)?(console.warn("Tried to set a key that already exists in an InvariantMap",{key:t,value:e}),this):super.set(t,e)}},kM=class Jp{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(e){this.key=e}static existing=new RM;static create(e,n){const{type:r,globals:o,actions:u,perspectives:c}=n(new Jp(e)),f={type:r,key:e,globals:o,actions:u,perspectives:c};return Jp.existing.set(e,f),f}add(...e){switch(e[0].type){case"atom":case"mutable_atom":this.globals.push(...e);break;case"transaction":this.actions.push(...e);break;case"atom_family":case"mutable_atom_family":{const[n,r]=e;this.perspectives.push({type:"realtime_perspective",resourceAtoms:n,viewAtoms:r})}break}return this}};function CM(t){const{key:e,config:n}=t,r=kM.create(e,n),{actions:o}=r;for(const u of o)nT(Ft.STORE,e,u.key);return ny(Ft.STORE,e,-1),r}const TT=t=>t.startsWith("user::"),AT=t=>t.startsWith("room::");NC({key:"roomKeys",class:Y1});const df=P1({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:AT,isBType:TT});Qm({key:"visibleUsersInRooms",get:t=>({get:e})=>{const[,n]=of(df);return[t,...e(n,t)]}});Qm({key:"visibilityFromRoom",get:t=>({get:e})=>{const[n]=of(df);return[t,...e(n,t)]}});Qm({key:"mutualUsers",get:t=>({get:e})=>{const[n,r]=of(df),o=e(r,t);for(const u of o)return[...e(n,u)];return[]}});P1({key:"ownersOfRooms",between:["user","room"],cardinality:"1:n",isAType:TT,isBType:AT});const MM="modulepreload",DM=function(t){return"/"+t},US={},NM=function(e,n,r){let o=Promise.resolve();if(n&&n.length>0){let m=function(y){return Promise.all(y.map(g=>Promise.resolve(g).then(b=>({status:"fulfilled",value:b}),b=>({status:"rejected",reason:b}))))};var c=m;document.getElementsByTagName("link");const f=document.querySelector("meta[property=csp-nonce]"),h=f?.nonce||f?.getAttribute("nonce");o=m(n.map(y=>{if(y=DM(y),y in US)return;US[y]=!0;const g=y.endsWith(".css"),b=g?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${y}"]${b}`))return;const S=document.createElement("link");if(S.rel=g?"stylesheet":MM,g||(S.as="script"),S.crossOrigin="",S.href=y,h&&S.setAttribute("nonce",h),document.head.appendChild(S),g)return new Promise((x,T)=>{S.addEventListener("load",x),S.addEventListener("error",()=>T(new Error(`Unable to preload CSS for ${y}`)))})}))}function u(f){const h=new Event("vite:preloadError",{cancelable:!0});if(h.payload=f,window.dispatchEvent(h),!h.defaultPrevented)throw f}return o.then(f=>{for(const h of f||[])h.status==="rejected"&&u(h.reason);return e().catch(u)})};var KS={};const $M=ft({key:"mySocketKey",default:void 0}),jM=ft({key:"myUserKey",default:null,effects:[t=>{typeof window<"u"&&NM(async()=>{const{storageSync:e}=await Promise.resolve().then(()=>Wz);return{storageSync:e}},void 0).then(({storageSync:e})=>{e(globalThis.localStorage,JSON,"myUserKey")(t)})}]});vi({key:"myRoomKey",get:({get:t})=>{if("process"in globalThis&&"env"in process&&"REALTIME_ROOM_KEY"in KS)return KS.REALTIME_ROOM_KEY;const e=t(jM);if(!e)return null;const[,n]=of(df),r=t(n,e);for(const o of r)return o;return null}});const bc=ft({key:"optimisticUpdateQueue",default:()=>[]}),Xp=ft({key:"confirmedUpdateQueue",default:()=>[]}),BM=(t,e,n,r,o)=>u=>{function c(h,m){if(t.logger.info("🧑‍⚖️","continuity",e,"reconciling updates"),Lt(t,bc,g=>(g.shift(),g)),h.id===m.id){if(JSON.stringify(h.subEvents)===JSON.stringify(m.subEvents)){t.logger.info("✅","continuity",e,`results for ${h.id} match between client and server`),n.emit(`ack:${e}`,m.epoch);return}}else t.logger.info("❌","continuity",e,`thought update #${m.epoch} was ${h.token.key}:${h.id}, but it was actually ${m.token.key}:${m.id}`);t.logger.info("🧑‍⚖️","continuity",e,"updates do not match",h,m);const y=r.toReversed();for(const g of y)xo(t,g,"oldValue");t.logger.info("⏪","continuity",e,"undid optimistic updates:",y),xo(t,h,"oldValue"),t.logger.info("⏪","continuity",e,"undid zeroth optimistic update",h),xo(t,m,"newValue"),t.logger.info("⏩","continuity",e,"applied confirmed update",m),n.emit(`ack:${e}`,m.epoch);for(const g of r){const b={type:"transaction",key:g.token.key},{id:S,params:x}=g;ey(t,b,S)(...x)}t.logger.info("⏩","continuity",e,"reapplied subsequent optimistic updates:",r)}t.logger.info("🧑‍⚖️","continuity",e,"integrating confirmed update",{confirmedUpdate:u,confirmedUpdates:o,optimisticUpdates:r});const f=r[0];if(f)if(t.logger.info("🧑‍⚖️","continuity",e,"has optimistic updates to reconcile"),u.epoch===f.epoch){t.logger.info("🧑‍⚖️","continuity",e,`epoch of confirmed update #${u.epoch} matches zeroth optimistic update`),c(f,u);for(const h of o){const m=r[0];if(h.epoch===m?.epoch)c(m,h);else break}}else t.logger.info("🧑‍⚖️","continuity",e,`epoch of confirmed update #${u.epoch} does not match zeroth optimistic update #${f.epoch}`),o.some(h=>h.epoch===u.epoch)||(t.logger.info("👈","continuity",e,"pushing confirmed update to queue",u),Lt(t,Xp,h=>(h.push(u),h.sort((m,y)=>m.epoch-y.epoch),h)));else{t.logger.info("🧑‍⚖️","continuity",e,"has no optimistic updates to deal with");let h;h=tT(t,e),h===u.epoch-1?(t.logger.info("✅","continuity",e,`integrating update #${u.epoch} (${u.token.key} ${u.id})`),xo(t,u,"newValue"),n.emit(`ack:${e}`,u.epoch),ny(t,e,u.epoch)):h!==void 0&&(t.logger.info("🧑‍⚖️","continuity",e,`received update #${u.epoch} but still waiting for update #${h+1}`,{clientEpoch:h,serverEpoch:u.epoch}),o.some(m=>m.epoch===u.epoch)?t.logger.info("👍","continuity",e,`confirmed update #${u.epoch} is already enqueued`):(t.logger.info("👈","continuity",e,`pushing confirmed update #${u.epoch} to queue`),Lt(t,Xp,m=>(m.push(u),m.sort((y,g)=>y.epoch-g.epoch),m))))}};function zM(t){return e=>{for(const n of e)gy(t,n)}}function LM(t){return e=>{let n=0,r,o;for(const u of e)n%2===0?r=u:(o=u,Lt(t,r,o)),n++}}function VM(t,e,n){const r=n.key,o=An(t,bc),u=An(t,Xp),c=(g,b)=>{e.off(`continuity-init:${r}`,c);let S=0,x,T;for(const _ of b)S%2===0?x=_:(T=_,"type"in x&&x.type==="mutable_atom"&&(x=ks(t,x)),Lt(t,x,T)),S++;ny(t,r,g)};e.off(`continuity-init:${r}`),e.on(`continuity-init:${r}`,c);const f=BM(t,r,e,o,u);e.off(`tx-new:${r}`),e.on(`tx-new:${r}`,f);const h=n.actions.map(g=>(nT(t,r,g.key),hT(t,g,`tx-run:${r}`,b=>{t.logger.info("🤞","continuity",r,"enqueuing optimistic update");const S=o.findIndex(x=>x.id===b.id);S===-1?(t.logger.info("🤞","continuity",r,"enqueuing new optimistic update"),Lt(t,bc,x=>(x.push(b),x.sort((T,_)=>T.epoch-_.epoch),x))):(t.logger.info("🤞","continuity",r,`replacing existing optimistic update at index ${S}`),Lt(t,bc,x=>(x[S]=b,x))),e.emit(`tx-run:${r}`,{id:b.id,token:g,params:b.params})}))),m=LM(t),y=zM(t);return e.on(`reveal:${r}`,m),e.on(`conceal:${r}`,y),e.emit(`get:${r}`),()=>{e.off(`continuity-init:${r}`),e.off(`tx-new:${r}`);for(const g of h)g()}}const ET=N.createContext({socket:null,services:null}),UM=({children:t,socket:e})=>{const n=N.useRef(new Map).current,r=Qn($M);return N.useEffect(()=>{r(e?.id?`socket::${e.id}`:void 0),e?.on("connect",()=>{r(e?.id?`socket::${e.id}`:void 0)}),e?.on("disconnect",()=>{r(void 0)})},[e,r]),F.jsx(ET.Provider,{value:{socket:e,services:n},children:t})};function KM(t,e){const{socket:n,services:r}=N.useContext(ET);xT(()=>{let o=r?.get(t);return o?++o.consumerCount:n&&(o={consumerCount:1,dispose:e(n)},r?.set(t,o)),()=>{o&&(--o.consumerCount,o.consumerCount===0&&(o.dispose?.(),r?.delete(t)))}},[n,t])}function qM(t){const e=N.useContext(by);KM(`tx-sync:${t.key}`,n=>VM(e,n,t))}var ep={exports:{}},Ga={},tp={exports:{}},np={};var qS;function PM(){return qS||(qS=1,(function(t){function e(j,U){var L=j.length;j.push(U);e:for(;0<L;){var te=L-1>>>1,oe=j[te];if(0<o(oe,U))j[te]=U,j[L]=oe,L=te;else break e}}function n(j){return j.length===0?null:j[0]}function r(j){if(j.length===0)return null;var U=j[0],L=j.pop();if(L!==U){j[0]=L;e:for(var te=0,oe=j.length,E=oe>>>1;te<E;){var q=2*(te+1)-1,H=j[q],Q=q+1,re=j[Q];if(0>o(H,L))Q<oe&&0>o(re,H)?(j[te]=re,j[Q]=L,te=Q):(j[te]=H,j[q]=L,te=q);else if(Q<oe&&0>o(re,L))j[te]=re,j[Q]=L,te=Q;else break e}}return U}function o(j,U){var L=j.sortIndex-U.sortIndex;return L!==0?L:j.id-U.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var u=performance;t.unstable_now=function(){return u.now()}}else{var c=Date,f=c.now();t.unstable_now=function(){return c.now()-f}}var h=[],m=[],y=1,g=null,b=3,S=!1,x=!1,T=!1,_=!1,k=typeof setTimeout=="function"?setTimeout:null,C=typeof clearTimeout=="function"?clearTimeout:null,M=typeof setImmediate<"u"?setImmediate:null;function G(j){for(var U=n(m);U!==null;){if(U.callback===null)r(m);else if(U.startTime<=j)r(m),U.sortIndex=U.expirationTime,e(h,U);else break;U=n(m)}}function I(j){if(T=!1,G(j),!x)if(n(h)!==null)x=!0,ee||(ee=!0,je());else{var U=n(m);U!==null&&ne(I,U.startTime-j)}}var ee=!1,J=-1,X=5,he=-1;function pe(){return _?!0:!(t.unstable_now()-he<X)}function we(){if(_=!1,ee){var j=t.unstable_now();he=j;var U=!0;try{e:{x=!1,T&&(T=!1,C(J),J=-1),S=!0;var L=b;try{t:{for(G(j),g=n(h);g!==null&&!(g.expirationTime>j&&pe());){var te=g.callback;if(typeof te=="function"){g.callback=null,b=g.priorityLevel;var oe=te(g.expirationTime<=j);if(j=t.unstable_now(),typeof oe=="function"){g.callback=oe,G(j),U=!0;break t}g===n(h)&&r(h),G(j)}else r(h);g=n(h)}if(g!==null)U=!0;else{var E=n(m);E!==null&&ne(I,E.startTime-j),U=!1}}break e}finally{g=null,b=L,S=!1}U=void 0}}finally{U?je():ee=!1}}}var je;if(typeof M=="function")je=function(){M(we)};else if(typeof MessageChannel<"u"){var be=new MessageChannel,Z=be.port2;be.port1.onmessage=we,je=function(){Z.postMessage(null)}}else je=function(){k(we,0)};function ne(j,U){J=k(function(){j(t.unstable_now())},U)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(j){j.callback=null},t.unstable_forceFrameRate=function(j){0>j||125<j?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):X=0<j?Math.floor(1e3/j):5},t.unstable_getCurrentPriorityLevel=function(){return b},t.unstable_next=function(j){switch(b){case 1:case 2:case 3:var U=3;break;default:U=b}var L=b;b=U;try{return j()}finally{b=L}},t.unstable_requestPaint=function(){_=!0},t.unstable_runWithPriority=function(j,U){switch(j){case 1:case 2:case 3:case 4:case 5:break;default:j=3}var L=b;b=j;try{return U()}finally{b=L}},t.unstable_scheduleCallback=function(j,U,L){var te=t.unstable_now();switch(typeof L=="object"&&L!==null?(L=L.delay,L=typeof L=="number"&&0<L?te+L:te):L=te,j){case 1:var oe=-1;break;case 2:oe=250;break;case 5:oe=1073741823;break;case 4:oe=1e4;break;default:oe=5e3}return oe=L+oe,j={id:y++,callback:U,priorityLevel:j,startTime:L,expirationTime:oe,sortIndex:-1},L>te?(j.sortIndex=L,e(m,j),n(h)===null&&j===n(m)&&(T?(C(J),J=-1):T=!0,ne(I,L-te))):(j.sortIndex=oe,e(h,j),x||S||(x=!0,ee||(ee=!0,je()))),j},t.unstable_shouldYield=pe,t.unstable_wrapCallback=function(j){var U=b;return function(){var L=b;b=U;try{return j.apply(this,arguments)}finally{b=L}}}})(np)),np}var PS;function IM(){return PS||(PS=1,tp.exports=PM()),tp.exports}var ip={exports:{}},Yt={};var IS;function HM(){if(IS)return Yt;IS=1;var t=vy();function e(h){var m="https://react.dev/errors/"+h;if(1<arguments.length){m+="?args[]="+encodeURIComponent(arguments[1]);for(var y=2;y<arguments.length;y++)m+="&args[]="+encodeURIComponent(arguments[y])}return"Minified React error #"+h+"; visit "+m+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function n(){}var r={d:{f:n,r:function(){throw Error(e(522))},D:n,C:n,L:n,m:n,X:n,S:n,M:n},p:0,findDOMNode:null},o=Symbol.for("react.portal");function u(h,m,y){var g=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:g==null?null:""+g,children:h,containerInfo:m,implementation:y}}var c=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function f(h,m){if(h==="font")return"";if(typeof m=="string")return m==="use-credentials"?m:""}return Yt.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=r,Yt.createPortal=function(h,m){var y=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!m||m.nodeType!==1&&m.nodeType!==9&&m.nodeType!==11)throw Error(e(299));return u(h,m,null,y)},Yt.flushSync=function(h){var m=c.T,y=r.p;try{if(c.T=null,r.p=2,h)return h()}finally{c.T=m,r.p=y,r.d.f()}},Yt.preconnect=function(h,m){typeof h=="string"&&(m?(m=m.crossOrigin,m=typeof m=="string"?m==="use-credentials"?m:"":void 0):m=null,r.d.C(h,m))},Yt.prefetchDNS=function(h){typeof h=="string"&&r.d.D(h)},Yt.preinit=function(h,m){if(typeof h=="string"&&m&&typeof m.as=="string"){var y=m.as,g=f(y,m.crossOrigin),b=typeof m.integrity=="string"?m.integrity:void 0,S=typeof m.fetchPriority=="string"?m.fetchPriority:void 0;y==="style"?r.d.S(h,typeof m.precedence=="string"?m.precedence:void 0,{crossOrigin:g,integrity:b,fetchPriority:S}):y==="script"&&r.d.X(h,{crossOrigin:g,integrity:b,fetchPriority:S,nonce:typeof m.nonce=="string"?m.nonce:void 0})}},Yt.preinitModule=function(h,m){if(typeof h=="string")if(typeof m=="object"&&m!==null){if(m.as==null||m.as==="script"){var y=f(m.as,m.crossOrigin);r.d.M(h,{crossOrigin:y,integrity:typeof m.integrity=="string"?m.integrity:void 0,nonce:typeof m.nonce=="string"?m.nonce:void 0})}}else m==null&&r.d.M(h)},Yt.preload=function(h,m){if(typeof h=="string"&&typeof m=="object"&&m!==null&&typeof m.as=="string"){var y=m.as,g=f(y,m.crossOrigin);r.d.L(h,y,{crossOrigin:g,integrity:typeof m.integrity=="string"?m.integrity:void 0,nonce:typeof m.nonce=="string"?m.nonce:void 0,type:typeof m.type=="string"?m.type:void 0,fetchPriority:typeof m.fetchPriority=="string"?m.fetchPriority:void 0,referrerPolicy:typeof m.referrerPolicy=="string"?m.referrerPolicy:void 0,imageSrcSet:typeof m.imageSrcSet=="string"?m.imageSrcSet:void 0,imageSizes:typeof m.imageSizes=="string"?m.imageSizes:void 0,media:typeof m.media=="string"?m.media:void 0})}},Yt.preloadModule=function(h,m){if(typeof h=="string")if(m){var y=f(m.as,m.crossOrigin);r.d.m(h,{as:typeof m.as=="string"&&m.as!=="script"?m.as:void 0,crossOrigin:y,integrity:typeof m.integrity=="string"?m.integrity:void 0})}else r.d.m(h)},Yt.requestFormReset=function(h){r.d.r(h)},Yt.unstable_batchedUpdates=function(h,m){return h(m)},Yt.useFormState=function(h,m,y){return c.H.useFormState(h,m,y)},Yt.useFormStatus=function(){return c.H.useHostTransitionStatus()},Yt.version="19.2.3",Yt}var HS;function OT(){if(HS)return ip.exports;HS=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),ip.exports=HM(),ip.exports}var FS;function FM(){if(FS)return Ga;FS=1;var t=IM(),e=vy(),n=OT();function r(i){var s="https://react.dev/errors/"+i;if(1<arguments.length){s+="?args[]="+encodeURIComponent(arguments[1]);for(var a=2;a<arguments.length;a++)s+="&args[]="+encodeURIComponent(arguments[a])}return"Minified React error #"+i+"; visit "+s+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function o(i){return!(!i||i.nodeType!==1&&i.nodeType!==9&&i.nodeType!==11)}function u(i){var s=i,a=i;if(i.alternate)for(;s.return;)s=s.return;else{i=s;do s=i,(s.flags&4098)!==0&&(a=s.return),i=s.return;while(i)}return s.tag===3?a:null}function c(i){if(i.tag===13){var s=i.memoizedState;if(s===null&&(i=i.alternate,i!==null&&(s=i.memoizedState)),s!==null)return s.dehydrated}return null}function f(i){if(i.tag===31){var s=i.memoizedState;if(s===null&&(i=i.alternate,i!==null&&(s=i.memoizedState)),s!==null)return s.dehydrated}return null}function h(i){if(u(i)!==i)throw Error(r(188))}function m(i){var s=i.alternate;if(!s){if(s=u(i),s===null)throw Error(r(188));return s!==i?null:i}for(var a=i,l=s;;){var d=a.return;if(d===null)break;var p=d.alternate;if(p===null){if(l=d.return,l!==null){a=l;continue}break}if(d.child===p.child){for(p=d.child;p;){if(p===a)return h(d),i;if(p===l)return h(d),s;p=p.sibling}throw Error(r(188))}if(a.return!==l.return)a=d,l=p;else{for(var v=!1,w=d.child;w;){if(w===a){v=!0,a=d,l=p;break}if(w===l){v=!0,l=d,a=p;break}w=w.sibling}if(!v){for(w=p.child;w;){if(w===a){v=!0,a=p,l=d;break}if(w===l){v=!0,l=p,a=d;break}w=w.sibling}if(!v)throw Error(r(189))}}if(a.alternate!==l)throw Error(r(190))}if(a.tag!==3)throw Error(r(188));return a.stateNode.current===a?i:s}function y(i){var s=i.tag;if(s===5||s===26||s===27||s===6)return i;for(i=i.child;i!==null;){if(s=y(i),s!==null)return s;i=i.sibling}return null}var g=Object.assign,b=Symbol.for("react.element"),S=Symbol.for("react.transitional.element"),x=Symbol.for("react.portal"),T=Symbol.for("react.fragment"),_=Symbol.for("react.strict_mode"),k=Symbol.for("react.profiler"),C=Symbol.for("react.consumer"),M=Symbol.for("react.context"),G=Symbol.for("react.forward_ref"),I=Symbol.for("react.suspense"),ee=Symbol.for("react.suspense_list"),J=Symbol.for("react.memo"),X=Symbol.for("react.lazy"),he=Symbol.for("react.activity"),pe=Symbol.for("react.memo_cache_sentinel"),we=Symbol.iterator;function je(i){return i===null||typeof i!="object"?null:(i=we&&i[we]||i["@@iterator"],typeof i=="function"?i:null)}var be=Symbol.for("react.client.reference");function Z(i){if(i==null)return null;if(typeof i=="function")return i.$$typeof===be?null:i.displayName||i.name||null;if(typeof i=="string")return i;switch(i){case T:return"Fragment";case k:return"Profiler";case _:return"StrictMode";case I:return"Suspense";case ee:return"SuspenseList";case he:return"Activity"}if(typeof i=="object")switch(i.$$typeof){case x:return"Portal";case M:return i.displayName||"Context";case C:return(i._context.displayName||"Context")+".Consumer";case G:var s=i.render;return i=i.displayName,i||(i=s.displayName||s.name||"",i=i!==""?"ForwardRef("+i+")":"ForwardRef"),i;case J:return s=i.displayName||null,s!==null?s:Z(i.type)||"Memo";case X:s=i._payload,i=i._init;try{return Z(i(s))}catch{}}return null}var ne=Array.isArray,j=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,U=n.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,L={pending:!1,data:null,method:null,action:null},te=[],oe=-1;function E(i){return{current:i}}function q(i){0>oe||(i.current=te[oe],te[oe]=null,oe--)}function H(i,s){oe++,te[oe]=i.current,i.current=s}var Q=E(null),re=E(null),ce=E(null),Te=E(null);function Rt(i,s){switch(H(ce,s),H(re,i),H(Q,null),s.nodeType){case 9:case 11:i=(i=s.documentElement)&&(i=i.namespaceURI)?X0(i):0;break;default:if(i=s.tagName,s=s.namespaceURI)s=X0(s),i=Z0(s,i);else switch(i){case"svg":i=1;break;case"math":i=2;break;default:i=0}}q(Q),H(Q,i)}function Je(){q(Q),q(re),q(ce)}function ni(i){i.memoizedState!==null&&H(Te,i);var s=Q.current,a=Z0(s,i.type);s!==a&&(H(re,i),H(Q,a))}function Ti(i){re.current===i&&(q(Q),q(re)),Te.current===i&&(q(Te),qa._currentValue=L)}var xe,Me;function ge(i){if(xe===void 0)try{throw Error()}catch(a){var s=a.stack.trim().match(/\n( *(at )?)/);xe=s&&s[1]||"",Me=-1<a.stack.indexOf(`
13
+ ${o.trace}`:"(no previous disposal trace found)"),n.type){case"mutable_atom_family":{if(t.defaults.has(n.key))return t.defaults.get(n.key);const u=new n.class;return t.defaults.set(n.key,u),u.READONLY_VIEW}case"atom_family":{if(t.defaults.has(n.key))return t.defaults.get(n.key);const u=n.default,c=u(r);return t.defaults.set(n.key,c),c}case"readonly_pure_selector_family":case"writable_pure_selector_family":case"readonly_held_selector_family":case"writable_held_selector_family":{if(t.defaults.has(n.key))return t.defaults.get(n.key);const u=n.default(r);return t.defaults.set(n.key,u),u}}}function Nc(t,e){const{type:n,key:r,catch:o}=e;switch(n){case"readonly_pure_selector":case"writable_pure_selector":{let u;t.logger.info("🧮",n,r,"computing value");try{u=e.getFrom(t),u instanceof Promise&&(u=u.catch(c=>{if(t.logger.error("💥",n,r,"rejected:",c),o){for(const f of o)if(c instanceof f)return c}throw c}))}catch(c){if(t.logger.error("💥",n,r,"rejected:",c),o){for(const f of o)if(c instanceof f)return di(t,e,c)}throw c}return di(t,e,u)}case"atom":{let u;if(Br(e.default))try{u=e.default(),u instanceof Promise&&(u=u.catch(c=>{if(t.logger.error("💥",n,r,"rejected:",c),o){for(const f of o)if(c instanceof f)return c}throw c}))}catch(c){if(t.logger.error("💥",n,r,"rejected:",c),o){for(const f of o)if(c instanceof f)return u=di(t,e,c),t.logger.info("✨",e.type,r,"computed default",u),u}throw c}else u=e.default,t.logger.info("✨",e.type,r,"using static default",u);return di(t,e,u)}}}function Rs(t,e,n){if(t.valueMap.has(e.key))return yT(t,e,n);t.logger.info("❔",e.type,e.key,"value not found in cache");const{key:r}=e;switch(e.type){case"readonly_held_selector":case"writable_held_selector":return t.logger.info("🧮",e.type,r,"computing value"),e.getFrom(t);case"writable_pure_selector":case"readonly_pure_selector":case"atom":return Nc(t,e);case"mutable_atom":{const o=new e.class;return t.logger.info("✨",e.type,r,"created new instance",o),di(t,e,o)}}}function iy(t,e){return ct(t,{key:e.family.key,type:`${e.type}_family`})}const $S={atom_family:"atom",molecule_family:"molecule",mutable_atom_family:"mutable_atom",readonly_held_selector_family:"readonly_held_selector",readonly_pure_selector_family:"readonly_pure_selector",writable_held_selector_family:"writable_held_selector",writable_pure_selector_family:"writable_pure_selector"},ul=Symbol("MUST_CREATE"),uM=Symbol("DO_NOT_CREATE");function cl(t,e,n,r){const o=zt(r),u=e.molecules.get(o);if(!u&&e.config.lifespan==="immortal"){const{type:f,key:h}=n;return e.logger.warn("💣","key",o,"was used to mint a counterfeit token for",f,`"${h}"`),{counterfeit:!0,key:`${h}(${o})`,type:$S[f],family:{key:h,subKey:o}}}let c;if(t===ul)e.logger.info("👪",n.type,n.key,"adds member",typeof r=="string"?`\`${r}\``:r),c=n.create(r),u&&e.moleculeData.set(o,n.key);else{const{type:f,key:h}=n;return{key:`${h}(${o})`,type:$S[f],family:{key:h,subKey:o}}}return c}function ry(t,...e){let n,r,o,u,c;if(e.length===1){if(c=e[0],"family"in c){const h=iy(t,c);if(o=ct(t,h),u=qr(c.family.subKey),n=fl(t,h,u),"counterfeit"in c)return{token:c,family:o,subKey:u,isNew:!1};n?c=n:(r=cl(ul,t,h,u),c=r)}}else o=ct(t,e[0]),u=e[1],n=fl(t,o,u),n?c=n:(r=cl(ul,t,o,u),c=r);const f="counterfeit"in c;if(r&&f===!1&&o){let h;switch(c.type){case"readonly_pure_selector":case"readonly_held_selector":h="readable";break;case"atom":case"mutable_atom":case"writable_pure_selector":case"writable_held_selector":h="writable";break}const m={type:"state_creation",subType:h,token:c,timestamp:Date.now()};o.subject.next(m);const y=Re(t);if(c.family)if(ll(y))switch(c.type){case"atom":case"mutable_atom":t.on.atomCreation.next(c);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":t.on.selectorCreation.next(c);break}else Tn(y)&&y.on.transactionApplying.state===null&&y.transactionMeta.update.subEvents.push(m)}return{token:c,family:o,subKey:u,isNew:!!r}}function An(t,...e){const{token:n,family:r,subKey:o}=ry(t,...e);return"counterfeit"in n&&r&&o?rT(t,n,r,o):Rs(t,ct(t,n))}function fl(t,e,n){const r=zt(n),o=`${e.key}(${r})`,u=Re(t);let c;switch(e.type){case"atom_family":case"mutable_atom_family":c=u.atoms.get(o);break;case"writable_held_selector_family":case"writable_pure_selector_family":c=u.writableSelectors.get(o);break;case"readonly_held_selector_family":case"readonly_pure_selector_family":c=u.readonlySelectors.get(o);break}return c&&zr(c)}function Pr(t,e,n){const r=ct(t,e),o=fl(t,e,n);return o||cl(uM,t,r,n)}function $c(t,e,n){const r=e.key,o="readonly_pure_selector_family",u={key:r,type:o},c=t.families.get(r);c&&t.config.isProduction===!0&&t.logger.error("❗",o,r,`Overwriting an existing ${Kr[c.type]} "${c.key}" in store "${t.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const f=new We,m={...u,create:y=>{const g=zt(y),b={key:r,subKey:g},S=`${r}(${g})`,x=Re(t),T={key:S,get:e.get(y)};return e.catch&&(T.catch=e.catch),cy(x,T,b)},internalRoles:n,subject:f,install:y=>$c(y,e),default:y=>e.get(y)({get:((...g)=>An(t,...g)),find:((...g)=>Pr(t,...g)),json:g=>ks(t,g)})};return t.families.set(r,m),u}function sy(t,e,n){const r={key:e.key,type:"atom_family"},o=t.families.get(e.key);o&&t.config.isProduction===!0&&t.logger.error("❗","atom_family",e.key,`Overwriting an existing ${Kr[o.type]} "${o.key}" in store "${t.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const u=new We,f={...r,create:h=>{const m=zt(h),y={key:e.key,subKey:m},g=`${e.key}(${m})`,b=Re(t),S=e.default,x={key:g,default:Br(S)?()=>S(h):S};return e.effects&&(x.effects=e.effects(h)),e.catch&&(x.catch=e.catch),ff(b,x,y)},default:e.default,subject:u,install:h=>sy(h,e),internalRoles:n};return t.families.set(e.key,f),Br(e.default)===!1&&t.defaults.set(e.key,e.default),r}function sT(t,e,n){const r=e.key,o="readonly_held_selector_family",u={key:r,type:o},c=t.families.get(r);c&&t.config.isProduction===!0&&t.logger.error("❗",o,r,`Overwriting an existing ${Kr[c.type]} "${c.key}" in store "${t.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const f=new We,m={...u,create:y=>{const g=zt(y),b={key:r,subKey:g},S=`${r}(${g})`;return uy(Re(t),{key:S,const:e.const(y),get:e.get(y)},b)},internalRoles:n,subject:f,install:y=>sT(y,e),default:e.const};return t.families.set(r,m),u}function oT(t,e,n){const r=e.key,o="writable_held_selector_family",u={key:r,type:o},c=t.families.get(r);c&&t.config.isProduction===!0&&t.logger.error("❗",o,r,`Overwriting an existing ${Kr[c.type]} "${c.key}" in store "${t.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const f=new We,m={...u,create:y=>{const g=zt(y),b={key:r,subKey:g},S=`${r}(${g})`;return fy(Re(t),{key:S,const:e.const(y),get:e.get(y),set:e.set(y)},b)},internalRoles:n,subject:f,install:y=>oT(y,e),default:e.const};return t.families.set(r,m),u}function oy(t,e,n){const r=e.key,o="writable_pure_selector_family",u={key:r,type:o},c=t.families.get(r);c&&t.config.isProduction===!0&&t.logger.error("❗",o,r,`Overwriting an existing ${Kr[c.type]} "${c.key}" in store "${t.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const f=new We,m={...u,create:y=>{const g=zt(y),b={key:r,subKey:g},S=`${r}(${g})`,x=Re(t),T={key:S,get:e.get(y),set:e.set(y)};return e.catch&&(T.catch=e.catch),dy(x,T,b)},internalRoles:n,subject:f,install:y=>oy(y,e),default:y=>e.get(y)({get:((...g)=>An(t,...g)),find:((...g)=>Pr(t,...g)),json:g=>ks(t,g)})};return t.families.set(r,m),u}function cM(t,e){const n="set"in e,r="const"in e;return r&&n?oT(t,e,void 0):r?sT(t,e,void 0):n?oy(t,e):$c(t,e)}function lf(t,...e){let n;if(e.length===1)n=e[0];else{const r=e[0],o=e[1];n=Pr(t,r,o)}try{ct(t,n)}catch{t.logger.error("❌",n.type,n.key,`could not be disposed because it was not found in the store "${t.config.name}".`);return}switch(n.type){case"atom":case"mutable_atom":gy(t,n);break;case"writable_pure_selector":case"readonly_pure_selector":case"writable_held_selector":case"readonly_held_selector":vM(t,n);break}}function aT(t,e){if(t.operation.open){const n=performance.now();return t.logger.info("🚫",e.type,e.key,`deferring setState at T-${n} until setState for "${t.operation.token.key}" is done`),n}return t.operation={open:!0,done:new Set,prev:new Map,timestamp:Date.now(),token:e,subEvents:[]},t.logger.info("⭕",e.type,e.key,`operation start in store "${t.config.name}"${Tn(t)?` ${t.transactionMeta.phase} "${t.transactionMeta.update.token.key}"`:""}`),t}function lT(t){t.operation.open&&t.logger.info("🔴",t.operation.token.type,t.operation.token.key,`operation done in store "${t.config.name}"`),t.operation={open:!1},t.on.operationClose.next(t.operation)}const uT=(t,e)=>t.operation.open?t.operation.done.has(e):(t.logger.error("🐞","unknown",e,"isDone called outside of an operation. This is probably a bug in AtomIO."),!0),uf=(t,e)=>{if(!t.operation.open){t.logger.error("🐞","unknown",e,"markDone called outside of an operation. This is probably a bug in AtomIO.");return}t.operation.done.add(e)};function Hp(t,e,n,r,o){const{oldValue:u,newValue:c}=n,f="oldValue"in n,h=zr(e);if(r&&o){e.subject.next({newValue:c});const S={checkpoint:!0,type:"state_creation",subType:"writable",token:h,timestamp:Date.now(),value:c};t.operation.subEvents.push(S),o.subject.next(S);const x=Re(t);if(h.family)if(ll(x))switch(h.type){case"atom":case"mutable_atom":t.on.atomCreation.next(h);break;case"writable_pure_selector":case"writable_held_selector":t.on.selectorCreation.next(h);break}else Tn(x)&&x.on.transactionApplying.state===null&&x.transactionMeta.update.subEvents.push(S);return}const{key:m,subject:y,type:g}=e;let b;if(f?b={oldValue:ic(u)?u.READONLY_VIEW:u,newValue:ic(c)?c.READONLY_VIEW:c}:b={newValue:ic(c)?c.READONLY_VIEW:c},ll(t)){switch(g){case"mutable_atom":t.logger.info("📢",g,m,"is now (",c,") subscribers:",y.subscribers.keys());break;case"atom":case"writable_pure_selector":case"writable_held_selector":t.logger.info("📢",g,m,"went (",u,"->",c,") subscribers:",y.subscribers.keys())}y.next(b)}if(Tn(t)&&(g==="mutable_atom"||g==="atom")){if(t.on.transactionApplying.state===null){if(ic(c))return;const{timestamp:S}=t.operation,x={type:"atom_update",token:h,timestamp:S,update:b};t.transactionMeta.update.subEvents.push(x),t.logger.info("📁","atom",m,"stowed (",u,"->",c,")");return}if(yy(e,"tracker:signal")){const S=m.slice(1),x=t.atoms.get(S);Rs(t,x,"mut").do(b.newValue)===null&&my(t,x)}}}const jS=Symbol("UNSET"),Fp=(t,e,n)=>{let r,o;if(Br(n)){const u=Rs(t,e,"mut");r=u,o=n(u)}else t.valueMap.has(e.key)?r=yT(t,e,"mut"):e.type==="atom"&&!Br(e.default)?r=e.default:r=jS,o=n;return t.logger.info("⭐","atom",e.key,"setting value",o),o=di(t,e,o),uf(t,e.key),my(t,e),r===jS?{newValue:o}:{oldValue:r,newValue:o}};function Qh(t,e){switch(e.type){case"mutable_atom":return Fp(t,e,new e.class);case"atom":{let n;return Br(e.default)?n=Nc(t,e):n=e.default,Fp(t,e,n)}}}function fM(t,e){let n;switch(e.type){case"atom":case"mutable_atom":n=Qh(t,e);break;case"writable_held_selector":{const r=dl(t,e.key);for(const u of r.values())Hp(t,e,Qh(t,u),!1);const o=e.getFrom(t);n={oldValue:o,newValue:o}}break;case"writable_pure_selector":{const r=Nc(t,e),o=dl(t,e.key);for(const u of o.values())Hp(t,e,Qh(t,u),!1);n={oldValue:r,newValue:Nc(t,e)}}break}return n}function Lt(t,...e){Tl(Yp,t,...e)}const Gp=Symbol("RESET");function ay(t,...e){Lt(t,...e,Gp)}function dM(t,e,n){let r,o,u;const{type:c,key:f}=e;switch(e.type){case"writable_pure_selector":r=Rs(t,e,"mut"),o=DS(n,r),o=di(t,e,o);break;case"writable_held_selector":u=e.const,DS(n,u),r=u,o=u}return t.logger.info("⭐",c,f,"setting to",o),uf(t,f),e.setSelf(o),{oldValue:r,newValue:o}}const hM=(t,e,n)=>{let r;switch(e.type){case"atom":case"mutable_atom":r=Fp(t,e,n);break;case"writable_pure_selector":case"writable_held_selector":r=dM(t,e,n);break}return r},Yp=Symbol("OWN_OP"),ly=Symbol("JOIN_OP");function Tl(t,e,...n){let r,o,u,c,f,h;n.length===2?(u=n[0],h=n[1],"family"in u&&(c=iy(e,u),f=qr(u.family.subKey),r=fl(e,c,f),r?u=r:u=o=cl(ul,e,c,f))):(c=ct(e,n[0]),f=n[1],h=n[2],r=fl(e,c,f),r?u=r:u=o=cl(ul,e,c,f));const m=h===Gp?"reset":"set";let y;if(t===Yp){const S=aT(e,u);if(typeof S=="number"){const x=S,T=e.on.operationClose.subscribe(`waiting to ${m} "${u.key}" at T-${x}`,function(){T(),e.logger.info("🟢",u.type,u.key,"resuming deferred",m,`from T-${x}`),Tl(t,e,u,h)});return}y=S}else y=e;if("counterfeit"in u&&"family"in u){const S=u.family.subKey,x=e.disposalTraces.buffer.find(T=>T?.key===S);e.logger.error("❌",u.type,u.key,"could not be",m,"because key",S,"is not allocated.",x?`this key was previously disposed:${x.trace}`:"(no previous disposal trace found)");return}const g=ct(y,u);let b;h===Gp?b=fM(y,g):b=hM(y,g,h),Hp(y,g,b,!!o,c),t===Yp&&lT(y)}const cT=(t,e)=>Re(t).atoms.has(e),pM=(t,e)=>Re(t).writableSelectors.has(e),mM=(t,e)=>Re(t).readonlySelectors.has(e),yM=(t,e)=>cT(t,e)||pM(t,e)||mM(t,e);function BS(t,e){return Re(t).selectorGraph.getRelationEntries({downstreamSelectorKey:e}).filter(([n,{source:r}])=>r!==e).map(([n,{source:r}])=>r).filter(n=>yM(t,n))}function dl(t,e,n=new Set){const r=BS(t,e),o=new Map;for(;r.length>0;){const u=r.pop();if(!n.has(u))if(n.add(u),cT(t,u)){const c=t.atoms.get(u);o.set(c.key,c)}else r.push(...BS(t,u))}return o}function gM(t,e,n,r,o){const u=Re(t),{type:c,key:f}=r;if(c==="atom"||c==="mutable_atom")u.selectorAtoms.set({selectorKey:n,atomKey:f}),t.logger.info("🔍",e,n,`discovers root atom "${f}"`);else{const h=dl(t,f,o);t.logger.info("🔍",e,n,`discovers root atoms: [ ${[...h.values()].map(m=>`"${m.key}"`).join(", ")} ]`);for(const{key:m}of h.values())u.selectorAtoms=u.selectorAtoms.set({selectorKey:n,atomKey:m})}o.add(f)}function cf(t,e,n,r){return{get:(...o)=>{const u=Re(t),{token:c,family:f,subKey:h}=ry(t,...o);let m;return"counterfeit"in c&&f&&h?m=rT(t,c,f,h):m=Rs(t,ct(t,c)),t.logger.info("🔌",e,n,`registers dependency ( "${c.key}" =`,m,")"),u.selectorGraph.set({upstreamSelectorKey:c.key,downstreamSelectorKey:n},{source:c.key}),gM(t,e,n,c,r),m},set:((...o)=>{Tl(ly,Re(t),...o)}),find:((...o)=>Pr(t,...o)),json:o=>ks(t,o)}}function uy(t,e,n){const r=Re(t),o=new We,u=new Set,{key:c,const:f}=e,h="readonly_held_selector";t.logger.info("🔨",h,c,"is being created");const{get:m,find:y,json:g}=cf(r,h,c,u),S={...e,type:h,subject:o,getFrom:T=>{const _=T.selectorGraph.getRelationEntries({downstreamSelectorKey:c});for(const[k,{source:C}]of _)C!==c&&T.selectorGraph.delete(k,c);return T.selectorAtoms.delete(c),e.get({get:m,find:y,json:g},f),di(T,S,f),t.logger.info("✨",h,c,"=",f),u.clear(),f},install:T=>uy(T,e,n)};n&&(S.family=n),r.readonlySelectors.set(c,S);const x={key:c,type:h};return n&&(x.family=n),x}function cy(t,e,n){const r=Re(t),o=new We,u=new Set,c=e.key,f="readonly_pure_selector";t.logger.info("🔨",f,c,"is being created");const{get:h,find:m,json:y}=cf(r,f,c,u),b={...e,type:f,subject:o,getFrom:()=>{const x=Re(t),T=x.selectorGraph.getRelationEntries({downstreamSelectorKey:c});for(const[k,{source:C}]of T)C!==c&&x.selectorGraph.delete(k,c);x.selectorAtoms.delete(c);const _=e.get({get:h,find:m,json:y});return t.logger.info("✨",f,c,"=",_),u.clear(),_},install:x=>cy(x,e,n)};n&&(b.family=n),r.readonlySelectors.set(c,b);const S={key:c,type:f};return n&&(S.family=n),S}function fy(t,e,n){const r=Re(t),o=new We,u=new Set,{key:c,const:f}=e,h="writable_held_selector";t.logger.info("🔨",h,c,"is being created");const m=cf(r,h,c,u),{find:y,get:g,json:b}=m,S={find:y,get:g,json:b},_={...e,type:h,subject:o,getFrom:C=>{const M=C.selectorGraph.getRelationEntries({downstreamSelectorKey:c});for(const[G,{source:I}]of M)I!==c&&C.selectorGraph.delete(G,c);return C.selectorAtoms.delete(c),e.get(S,f),di(C,_,f),t.logger.info("✨",h,c,"=",f),u.clear(),f},setSelf:()=>{e.set(m,f)},install:C=>fy(C,e,n)};n&&(_.family=n),r.writableSelectors.set(c,_);const k={key:c,type:h};return n&&(k.family=n),k}function dy(t,e,n){const r=Re(t),o=new We,u=new Set,c=e.key,f="writable_pure_selector";t.logger.info("🔨",f,c,"is being created");const h=cf(r,f,c,u),{find:m,get:y,json:g}=h,b={find:m,get:y,json:g},T={...e,type:f,subject:o,getFrom:k=>{const C=k.selectorGraph.getRelationEntries({downstreamSelectorKey:c});for(const[G,{source:I}]of C)I!==c&&k.selectorGraph.delete(G,c);k.selectorAtoms.delete(c);const M=e.get(b);return t.logger.info("✨",f,c,"=",M),u.clear(),M},setSelf:k=>{e.set(h,k)},install:k=>dy(k,e,n)};n&&(T.family=n),r.writableSelectors.set(c,T);const _={key:c,type:f};return n&&(_.family=n),_}function fT(t,e){const n="set"in e,r="const"in e;if(r&&n){const u=fy(t,e,void 0);return t.on.selectorCreation.next(u),u}if(r){const u=uy(t,e,void 0);return t.on.selectorCreation.next(u),u}if(n){const u=dy(t,e,void 0);return t.on.selectorCreation.next(u),u}const o=cy(t,e,void 0);return t.on.selectorCreation.next(o),o}function vM(t,e){const n=Re(t),{key:r,type:o,family:u}=e;if(!u)t.logger.error("❌",o,r,"Standalone selectors cannot be disposed.");else{n.molecules.get(u.subKey)&&n.moleculeData.delete(u.subKey,u.key);let c;switch(e.type){case"writable_held_selector":n.writableSelectors.delete(r),c={key:u.key,type:"writable_held_selector_family"},ct(t,c).subject.next({type:"state_disposal",subType:"selector",token:e,timestamp:Date.now()});break;case"writable_pure_selector":n.writableSelectors.delete(r),c={key:u.key,type:"writable_pure_selector_family"},ct(t,c).subject.next({type:"state_disposal",subType:"selector",token:e,timestamp:Date.now()});break;case"readonly_held_selector":n.readonlySelectors.delete(r),c={key:u.key,type:"readonly_held_selector_family"},ct(t,c).subject.next({type:"state_disposal",subType:"selector",token:e,timestamp:Date.now()});break;case"readonly_pure_selector":n.readonlySelectors.delete(r),c={key:u.key,type:"readonly_pure_selector_family"},ct(t,c).subject.next({type:"state_disposal",subType:"selector",token:e,timestamp:Date.now()});break}n.valueMap.delete(r),n.selectorAtoms.delete(r),n.selectorGraph.delete(r),n.moleculeData.delete(u.key,u.subKey),t.logger.info("🔥",e.type,r,"deleted"),Tn(n)&&n.transactionMeta.phase==="building"?n.transactionMeta.update.subEvents.push({type:"state_disposal",subType:"selector",token:e,timestamp:Date.now()}):t.on.selectorDisposal.next(e)}}const bM=(t,e)=>{const n=Re(t);return n.operation.open?n.operation.prev.get(e.key):n.valueMap.get(e.key)},zS=(t,e,n)=>n.subject.subscribe(`${e.type}:${e.key}`,r=>{t.logger.info("📢",e.type,e.key,"root",n.key,"went",r.oldValue,"->",r.newValue);const o=bM(t,e),u=Rs(t,e);t.logger.info("✨",e.type,e.key,"went",o,"->",u),e.subject.next({newValue:u,oldValue:o})});function Ts(t,e,n,r){function o(g){t.operation.open&&u?.type==="atom"&&yy(u,"tracker:signal")&&"*"+t.operation.token.key===e.key&&"inboundTracker"in r||r(g)}ry(t,e);const u=ct(t,e);t.logger.info("👀",u.type,u.key,`Adding subscription "${n}"`);const c=u.type==="writable_pure_selector"||u.type==="readonly_pure_selector",f=new Map;let h=o;if(c){Rs(t,u);for(const[g,b]of dl(t,u.key))f.set(g,zS(t,u,b));h=function(b){const S=dl(t,u.key);for(const[x,T]of f)S.get(x)?S.delete(x):(T(),f.delete(x));for(const[x,T]of S)f.set(x,zS(t,u,T));o(b)}}const m=u.subject.subscribe(n,h);return()=>{t.logger.info("🙈",u.type,u.key,`Removing subscription "${n}"`),m();for(const g of f.values())g()}}const dT=(t,e,n,r)=>{const o=ct(t,e);t.logger.info("👀","timeline",e.key,`Adding subscription "${n}"`);const u=o.subject.subscribe(n,r);return()=>{t.logger.info("🙈","timeline",e.key,`Removing subscription "${n}" from timeline`),u()}},hT=(t,e,n,r)=>{const o=ct(t,e);t.logger.info("👀","transaction",e.key,`Adding subscription "${n}"`);const u=o.subject.subscribe(n,r);return()=>{t.logger.info("🙈","transaction",e.key,`Removing subscription "${n}"`),u()}};function SM(t,e,n,r=af()){switch(e.type){case"atom":case"mutable_atom":case"readonly_pure_selector":case"readonly_held_selector":case"writable_pure_selector":case"writable_held_selector":return Ts(t,e,r,n);case"transaction":return hT(t,e,r,n);case"timeline":return dT(t,e,r,n)}}var hy=class{initializeSignalAtom(t,e){const n=`*${t.key}`;e.atoms.delete(n),e.valueMap.delete(n);const r=t.family?{key:`*${t.family.key}`,subKey:t.family.subKey}:void 0,o=ff(e,{key:n,default:null},r,["tracker:signal"]);if(e.parent?.valueMap.has(n)){const u=e.parent.valueMap.get(n);e.valueMap.set(n,u)}return o}unsubscribeFromInnerValue;unsubscribeFromState;captureSignalsFromCore(t,e,n){const r=t.key,o=`tracker-from-core:${n.config.name}:${Tn(n)?n.transactionMeta.update.token.key:"main"}:${r}`,u=c=>{Tl(ly,n,e,c)};this.unsubscribeFromInnerValue=An(n,t).subscribe(o,u),this.unsubscribeFromState=Ts(n,t,o,(function(f){f.newValue!==f.oldValue&&(this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=f.newValue.subscribe(o,u))}).bind(this))}supplySignalsToCore(t,e,n){const r=t.key,o=`tracker-to-core:${n.config.name}:${Tn(n)?n.transactionMeta.update.token.key:"main"}:${r}`;Ts(n,e,o,Object.assign(function({newValue:c,oldValue:f}){const h=n.timelineTopics.getRelatedKey(e.key);if(h&&n.timelines.get(h)?.timeTraveling){const m=dT(n,{key:h,type:"timeline"},o,function(g){m(),Lt(n,t,b=>(g==="redo"&&c?b.do(c):g==="undo"&&f&&b.undo(f),b))});return}Lt(n,t,m=>(m.do(c),m))},{inboundTracker:!0}))}mutableAtomToken;latestSignalToken;[Symbol.dispose];constructor(t,e){const n=Re(e),r=this.initializeSignalAtom(t,n);this.mutableAtomToken=t,this.latestSignalToken=r,this.captureSignalsFromCore(t,r,n),this.supplySignalsToCore(t,r,n),n.trackers.set(t.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),n.trackers.delete(t.key)}}};function py(t,e,n){t.logger.info("🔨","atom",e.key,`creating in store "${t.config.name}"`);const r=Re(t),{key:o}=e,u=r.atoms.get(o),c="mutable_atom";if(u?.type===c&&t.config.isProduction===!0)return t.logger.error("❌",c,o,"Tried to create atom, but it already exists in the store."),zr(u);const f=new We,h={...e,type:c,install:y=>(y.logger.info("🛠️","atom",o,`installing in store "${y.config.name}"`),py(y,e,n)),subject:f};n&&(h.family=n),r.atoms.set(h.key,h);const m=zr(h);if(new hy(m,t),n||fT(t,{key:`${o}:JSON`,get:({get:y})=>y(m).toJSON(),set:({set:y},g)=>{y(m,e.class.fromJSON(g))}}),e.effects){let y=0;const g=[];for(const b of e.effects){const S=b({resetSelf:()=>{ay(t,m)},setSelf:x=>{Lt(t,m,x)},onSet:x=>Ts(t,m,`effect[${y}]`,x),token:m,store:Wm(t)});S&&g.push(S),++y}h.cleanup=()=>{for(const b of g)b()}}return t.on.atomCreation.next(m),m}var wM=class{trackers=new Map;latestSignalAtoms;mutableAtoms;constructor(t,e){this.latestSignalAtoms=ct(e,sy(e,{key:`*${t.key}`,default:null},["mutable","updates"])),this.mutableAtoms=t;const n=r=>{const{type:o,token:u}=r;if(u.family){const c=qr(u.family.subKey);switch(o){case"state_creation":this.trackers.set(c,new hy(u,e));break;case"state_disposal":{const f=this.trackers.get(c);f&&(f[Symbol.dispose](),this.trackers.delete(c))}}}};this.mutableAtoms.subject.subscribe(`store=${e.config.name}::tracker-atom-family`,n)}};function pT(t,e,n){const r={key:e.key,type:"mutable_atom_family"},o=t.families.get(e.key);o&&t.config.isProduction===!0&&t.logger.error("❗","mutable_atom_family",e.key,`Overwriting an existing ${Kr[o.type]} "${o.key}" in store "${t.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);const u=new We,f={...r,create:h=>{const m=zt(h),y={key:e.key,subKey:m},g=`${e.key}(${m})`,b=Re(t),S={key:g,class:e.class};return e.effects&&(S.effects=e.effects(h)),py(b,S,y)},class:e.class,subject:u,install:h=>pT(h,e),internalRoles:n};return t.families.set(e.key,f),oy(t,{key:`${e.key}:JSON`,get:h=>({get:m})=>m(r,h).toJSON(),set:h=>({set:m},y)=>{m(r,h,e.class.fromJSON(y))}},["mutable","json"]),new wM(f,t),r}const xM=(t,e)=>{const n=Re(e),r=`${t.key}:JSON`;return n.families.get(r)},ks=(t,e)=>e.family?Pr(t,ct(Re(t),{key:`${e.family.key}:JSON`,type:"writable_pure_selector_family"}),qr(e.family.subKey)):{type:"writable_pure_selector",key:`${e.key}:JSON`},mT=t=>{const e={type:"atom",key:`*${t.key}`};return t.family&&(e.family={key:`*${t.family.key}`,subKey:t.family.subKey}),e};function ic(t){return typeof t=="object"&&t!==null&&"do"in t&&"undo"in t&&"subscribe"in t&&"READONLY_VIEW"in t&&"toJSON"in t}function di(t,e,n){const{key:r,subject:o,type:u}=e,c=t.valueMap.get(r);if(c instanceof Ip&&!c.done){const f=c;return n instanceof Promise?(f.use(n),f):(t.valueMap.set(r,n),n)}if(n instanceof Promise){const f=new Ip(n);return t.valueMap.set(r,f),f.then(function(m){if(t.valueMap.get(r)===f){switch(aT(t,e),di(t,e,m),u){case"atom":my(t,e);break;case"readonly_pure_selector":case"writable_pure_selector":vT(t,r);break}lT(t),o.next({newValue:m,oldValue:f})}}).catch(h=>{t.logger.error("💥",e.type,r,"rejected:",h)}),f}return t.logger.info("📝",e.type,e.key,"writing to cache",n),t.valueMap.set(r,n),n}function yT(t,e,n){t.logger.info("📖",e.type,e.key,"reading cached value");let r=t.valueMap.get(e.key);if(n==="mut"&&e.type==="mutable_atom"&&Tn(t)){const o=e,{parent:u}=t;if(t.valueMap.hasOwn(o.key))return r;const c=u.valueMap.get(o.key);t.logger.info("📃","atom",o.key,"copying");const f=c.toJSON(),h=o.class.fromJSON(f);t.valueMap.set(o.key,h),new hy(o,u),r=h}return r}function gT(t,e){const n=t.valueMap.get(e);n instanceof Ip||(t.operation.open&&t.operation.prev.set(e,n),t.valueMap.delete(e),t.logger.info("🗑","state",e,"evicted"))}function my(t,e){const n=Re(t),{key:r,type:o}=e,u=n.selectorAtoms.getRelatedKeys(r);if(n.logger.info("🧹",o,r,u?`evicting ${u.size} states downstream:`:"no downstream states",u??"to evict"),u){n.operation.open&&n.logger.info("🧹",o,r,`[ ${[...n.operation.done].join(", ")} ] already done`);for(const c of u)uT(n,c)||(gT(n,c),uf(n,c))}}function vT(t,e){const n=Re(t),r=n.selectorGraph.getRelationEntries({upstreamSelectorKey:e}).filter(([o,{source:u}])=>u===e);for(const[o]of r)uT(n,o)||(gT(n,o),uf(n,o),vT(t,o))}function ff(t,e,n,r){const o="atom",{key:u}=e;t.logger.info("🔨",o,u,"is being created");const c=Re(t),f=c.atoms.get(u);if(f?.type===o&&t.config.isProduction===!0)return t.logger.error("❌","atom",u,"Tried to create atom, but it already exists in the store."),zr(f);const h=new We,m={...e,type:o,install:g=>(g.logger.info("🛠️",o,u,`installing in store "${g.config.name}"`),ff(g,e,n)),subject:h};n&&(m.family=n),r&&(m.internalRoles=r),c.atoms.set(u,m);const y=zr(m);if(e.effects){let g=0;const b=[];for(const S of e.effects){const x=S({resetSelf:()=>{ay(t,y)},setSelf:T=>{Lt(t,y,T)},onSet:T=>Ts(t,y,`effect[${g}]`,T),token:y,store:Wm(t)});x&&b.push(x),++g}m.cleanup=()=>{for(const S of b)S()}}return t.on.atomCreation.next(y),y}function yy(t,e){return"internalRoles"in t?t.internalRoles.includes(e):!1}function gy(t,e){const n=Re(t),{key:r,family:o}=e,u=ct(n,e);if(!o)t.logger.error("❌","atom",r,"Standalone atoms cannot be disposed.");else{u.cleanup?.();const c=t.valueMap.get(u.key),f=ct(t,iy(t,e)).subject,h={type:"state_disposal",subType:"atom",token:e,value:c,timestamp:Date.now()};f.next(h);const m=Tn(n);if(n.atoms.delete(r),n.valueMap.delete(r),n.selectorAtoms.delete(r),n.atomsThatAreDefault.delete(r),n.moleculeData.delete(o.key,o.subKey),t.timelineTopics.delete(r),e.type==="mutable_atom"&&(gy(t,mT(e)),t.trackers.delete(r)),t.logger.info("🔥","atom",r,"deleted"),m&&n.transactionMeta.phase==="building"){const y=n.transactionMeta.update.subEvents.at(-1),g=y?.type==="molecule_disposal"&&y.values.some(([S])=>S===u.family?.key),b=yy(u,"tracker:signal");!g&&!b&&n.transactionMeta.update.subEvents.push(h)}else t.on.atomDisposal.next(e)}}function hs(t){return t[0].toUpperCase()+t.slice(1)}var bT=class{toolkit;options;relations;states;relatedKeysAtoms;transact(t,e){const n=this.toolkit;this.toolkit=t,e(this),this.toolkit=n}store;[Symbol.dispose](){}constructor(t,e){this.store=t,this.options=e,this.store.miscResources.set(`join:${e.key}`,this),this.toolkit={get:((...y)=>An(t,...y)),set:((...y)=>{Lt(t,...y)}),find:((...y)=>Pr(t,...y)),json:y=>ks(t,y)};const n=e.between[0],r=e.between[1],o=pT(t,{key:`${e.key}/relatedKeys`,class:Y1},["join","relations"]);this.relatedKeysAtoms=o;const u=(y,g,b)=>{const{find:S,get:x,set:T}=y,_=S(o,g),k=x(_);for(const C of k)b.includes(C)||T(o,C,M=>(M.delete(g),M));T(_,C=>{C.clear();for(const M of b){const G=S(o,M),I=x(G),ee=I.has(g);if(this.relations.cardinality==="1:n"){const J=[];for(const X of I){if(X===g)continue;let he;Tl(ly,this.store,o,X,pe=>(pe.delete(M),he=pe.size,pe)),he===0&&J.push(X)}!ee&&I.size>0&&T(G,X=>(X.clear(),X));for(const X of J)t.keyRefsInJoins.delete(vc(M,X))}ee||T(G,J=>(J.add(g),J)),C.add(M)}return C})},c=(y,g,b)=>{const{set:S}=y;S(o,g,x=>{for(const T of b)x.add(T);return x});for(const x of b)S(o,x,T=>(T.add(g),T));return!0},f=new Pi(e,{externalStore:{getRelatedKeys:y=>this.toolkit.get(o,y),addRelation:(y,g)=>{this.store.keyRefsInJoins.set(`"${y}"`,e.key),this.store.keyRefsInJoins.set(`"${g}"`,e.key),this.store.keyRefsInJoins.set(vc(y,g),e.key),this.toolkit.set(o,y,b=>b.add(g)),this.toolkit.set(o,g,b=>b.add(y))},deleteRelation:(y,g)=>{this.toolkit.set(o,y,S=>(S.delete(g),S)),this.toolkit.set(o,g,S=>(S.delete(y),S));const b=vc(y,g);this.store.keyRefsInJoins.delete(b)},replaceRelationsSafely:(y,g)=>{u(this.toolkit,y,g)},replaceRelationsUnsafely:(y,g)=>{c(this.toolkit,y,g)},has:(y,g)=>{const b=this.toolkit.get(o,y);return g?b.has(g):b.size>0}},isAType:e.isAType,isBType:e.isBType}),h=()=>$c(t,{key:`${e.key}/singleRelatedKey`,get:y=>({get:g})=>{const b=g(o,y);for(const S of b)return S;return null}},["join","keys"]),m=()=>$c(t,{key:`${e.key}/multipleRelatedKeys`,get:y=>({get:g})=>g(xM(o,t),y)},["join","keys"]);switch(e.cardinality){case"1:1":{const y=h(),g=`${n}KeyOf${hs(r)}`,b=`${r}KeyOf${hs(n)}`;this.relations=f,this.states={[g]:y,[b]:y};break}case"1:n":{const y=h(),g=m(),b=`${n}KeyOf${hs(r)}`,S=`${r}KeysOf${hs(n)}`,x={[b]:y,[S]:g};this.relations=f,this.states=x;break}case"n:n":{const y=m(),g=`${n}KeysOf${hs(r)}`,b=`${r}KeysOf${hs(n)}`;this.relations=f,this.states={[g]:y,[b]:y}}}}};function TM(t,e){return t.joins.set(e.key,new bT(t,e)),{key:e.key,type:"join",a:e.between[0],b:e.between[1],cardinality:e.cardinality}}function AM(t,e){let n=t.joins.get(e.key);if(n===void 0){const r=Ft.STORE.joins.get(e.key);if(r===void 0)throw new Error(`Join "${e.key}" not found in store "${t.config.name}"`);n=new bT(Wm(t),r.options),t.joins.set(e.key,n)}return n}function EM(t,e,n){const r=AM(t,e);return[r.relatedKeysAtoms,r.relatedKeysAtoms]}var Wh={exports:{}},ye={};var LS;function OM(){if(LS)return ye;LS=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),u=Symbol.for("react.consumer"),c=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),g=Symbol.for("react.activity"),b=Symbol.iterator;function S(E){return E===null||typeof E!="object"?null:(E=b&&E[b]||E["@@iterator"],typeof E=="function"?E:null)}var x={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},T=Object.assign,_={};function k(E,q,H){this.props=E,this.context=q,this.refs=_,this.updater=H||x}k.prototype.isReactComponent={},k.prototype.setState=function(E,q){if(typeof E!="object"&&typeof E!="function"&&E!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,E,q,"setState")},k.prototype.forceUpdate=function(E){this.updater.enqueueForceUpdate(this,E,"forceUpdate")};function C(){}C.prototype=k.prototype;function M(E,q,H){this.props=E,this.context=q,this.refs=_,this.updater=H||x}var G=M.prototype=new C;G.constructor=M,T(G,k.prototype),G.isPureReactComponent=!0;var I=Array.isArray;function ee(){}var J={H:null,A:null,T:null,S:null},X=Object.prototype.hasOwnProperty;function he(E,q,H){var Q=H.ref;return{$$typeof:t,type:E,key:q,ref:Q!==void 0?Q:null,props:H}}function pe(E,q){return he(E.type,q,E.props)}function we(E){return typeof E=="object"&&E!==null&&E.$$typeof===t}function je(E){var q={"=":"=0",":":"=2"};return"$"+E.replace(/[=:]/g,function(H){return q[H]})}var be=/\/+/g;function Z(E,q){return typeof E=="object"&&E!==null&&E.key!=null?je(""+E.key):q.toString(36)}function ne(E){switch(E.status){case"fulfilled":return E.value;case"rejected":throw E.reason;default:switch(typeof E.status=="string"?E.then(ee,ee):(E.status="pending",E.then(function(q){E.status==="pending"&&(E.status="fulfilled",E.value=q)},function(q){E.status==="pending"&&(E.status="rejected",E.reason=q)})),E.status){case"fulfilled":return E.value;case"rejected":throw E.reason}}throw E}function j(E,q,H,Q,re){var ce=typeof E;(ce==="undefined"||ce==="boolean")&&(E=null);var Te=!1;if(E===null)Te=!0;else switch(ce){case"bigint":case"string":case"number":Te=!0;break;case"object":switch(E.$$typeof){case t:case e:Te=!0;break;case y:return Te=E._init,j(Te(E._payload),q,H,Q,re)}}if(Te)return re=re(E),Te=Q===""?"."+Z(E,0):Q,I(re)?(H="",Te!=null&&(H=Te.replace(be,"$&/")+"/"),j(re,q,H,"",function(ni){return ni})):re!=null&&(we(re)&&(re=pe(re,H+(re.key==null||E&&E.key===re.key?"":(""+re.key).replace(be,"$&/")+"/")+Te)),q.push(re)),1;Te=0;var Rt=Q===""?".":Q+":";if(I(E))for(var Je=0;Je<E.length;Je++)Q=E[Je],ce=Rt+Z(Q,Je),Te+=j(Q,q,H,ce,re);else if(Je=S(E),typeof Je=="function")for(E=Je.call(E),Je=0;!(Q=E.next()).done;)Q=Q.value,ce=Rt+Z(Q,Je++),Te+=j(Q,q,H,ce,re);else if(ce==="object"){if(typeof E.then=="function")return j(ne(E),q,H,Q,re);throw q=String(E),Error("Objects are not valid as a React child (found: "+(q==="[object Object]"?"object with keys {"+Object.keys(E).join(", ")+"}":q)+"). If you meant to render a collection of children, use an array instead.")}return Te}function U(E,q,H){if(E==null)return E;var Q=[],re=0;return j(E,Q,"","",function(ce){return q.call(H,ce,re++)}),Q}function L(E){if(E._status===-1){var q=E._result;q=q(),q.then(function(H){(E._status===0||E._status===-1)&&(E._status=1,E._result=H)},function(H){(E._status===0||E._status===-1)&&(E._status=2,E._result=H)}),E._status===-1&&(E._status=0,E._result=q)}if(E._status===1)return E._result.default;throw E._result}var te=typeof reportError=="function"?reportError:function(E){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var q=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof E=="object"&&E!==null&&typeof E.message=="string"?String(E.message):String(E),error:E});if(!window.dispatchEvent(q))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",E);return}console.error(E)},oe={map:U,forEach:function(E,q,H){U(E,function(){q.apply(this,arguments)},H)},count:function(E){var q=0;return U(E,function(){q++}),q},toArray:function(E){return U(E,function(q){return q})||[]},only:function(E){if(!we(E))throw Error("React.Children.only expected to receive a single React element child.");return E}};return ye.Activity=g,ye.Children=oe,ye.Component=k,ye.Fragment=n,ye.Profiler=o,ye.PureComponent=M,ye.StrictMode=r,ye.Suspense=h,ye.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=J,ye.__COMPILER_RUNTIME={__proto__:null,c:function(E){return J.H.useMemoCache(E)}},ye.cache=function(E){return function(){return E.apply(null,arguments)}},ye.cacheSignal=function(){return null},ye.cloneElement=function(E,q,H){if(E==null)throw Error("The argument must be a React element, but you passed "+E+".");var Q=T({},E.props),re=E.key;if(q!=null)for(ce in q.key!==void 0&&(re=""+q.key),q)!X.call(q,ce)||ce==="key"||ce==="__self"||ce==="__source"||ce==="ref"&&q.ref===void 0||(Q[ce]=q[ce]);var ce=arguments.length-2;if(ce===1)Q.children=H;else if(1<ce){for(var Te=Array(ce),Rt=0;Rt<ce;Rt++)Te[Rt]=arguments[Rt+2];Q.children=Te}return he(E.type,re,Q)},ye.createContext=function(E){return E={$$typeof:c,_currentValue:E,_currentValue2:E,_threadCount:0,Provider:null,Consumer:null},E.Provider=E,E.Consumer={$$typeof:u,_context:E},E},ye.createElement=function(E,q,H){var Q,re={},ce=null;if(q!=null)for(Q in q.key!==void 0&&(ce=""+q.key),q)X.call(q,Q)&&Q!=="key"&&Q!=="__self"&&Q!=="__source"&&(re[Q]=q[Q]);var Te=arguments.length-2;if(Te===1)re.children=H;else if(1<Te){for(var Rt=Array(Te),Je=0;Je<Te;Je++)Rt[Je]=arguments[Je+2];re.children=Rt}if(E&&E.defaultProps)for(Q in Te=E.defaultProps,Te)re[Q]===void 0&&(re[Q]=Te[Q]);return he(E,ce,re)},ye.createRef=function(){return{current:null}},ye.forwardRef=function(E){return{$$typeof:f,render:E}},ye.isValidElement=we,ye.lazy=function(E){return{$$typeof:y,_payload:{_status:-1,_result:E},_init:L}},ye.memo=function(E,q){return{$$typeof:m,type:E,compare:q===void 0?null:q}},ye.startTransition=function(E){var q=J.T,H={};J.T=H;try{var Q=E(),re=J.S;re!==null&&re(H,Q),typeof Q=="object"&&Q!==null&&typeof Q.then=="function"&&Q.then(ee,te)}catch(ce){te(ce)}finally{q!==null&&H.types!==null&&(q.types=H.types),J.T=q}},ye.unstable_useCacheRefresh=function(){return J.H.useCacheRefresh()},ye.use=function(E){return J.H.use(E)},ye.useActionState=function(E,q,H){return J.H.useActionState(E,q,H)},ye.useCallback=function(E,q){return J.H.useCallback(E,q)},ye.useContext=function(E){return J.H.useContext(E)},ye.useDebugValue=function(){},ye.useDeferredValue=function(E,q){return J.H.useDeferredValue(E,q)},ye.useEffect=function(E,q){return J.H.useEffect(E,q)},ye.useEffectEvent=function(E){return J.H.useEffectEvent(E)},ye.useId=function(){return J.H.useId()},ye.useImperativeHandle=function(E,q,H){return J.H.useImperativeHandle(E,q,H)},ye.useInsertionEffect=function(E,q){return J.H.useInsertionEffect(E,q)},ye.useLayoutEffect=function(E,q){return J.H.useLayoutEffect(E,q)},ye.useMemo=function(E,q){return J.H.useMemo(E,q)},ye.useOptimistic=function(E,q){return J.H.useOptimistic(E,q)},ye.useReducer=function(E,q,H){return J.H.useReducer(E,q,H)},ye.useRef=function(E){return J.H.useRef(E)},ye.useState=function(E){return J.H.useState(E)},ye.useSyncExternalStore=function(E,q,H){return J.H.useSyncExternalStore(E,q,H)},ye.useTransition=function(){return J.H.useTransition()},ye.version="19.2.3",ye}var VS;function vy(){return VS||(VS=1,Wh.exports=OM()),Wh.exports}var N=vy();const _M=CC(N),ST=kC({__proto__:null,default:_M},[N]),by=N.createContext(Ft.STORE);function wT(t,...e){let n;if(e.length===2){const r=e[0],o=e[1];n=Pr(t,r,o)}else n=e[0];return n}function Qn(...t){const e=N.useContext(by),n=wT(e,...t),r=N.useRef(null);return r.current??=o=>{Lt(e,n,o)},r.current}function xT(t,e){if(globalThis.env?.NODE_ENV==="development"){const n=N.useRef(!1);N.useEffect(()=>{let r=n.current;if(r===!1)r=t()??!0,n.current=r;else return()=>{Br(r)&&r(),n.current=!1}},e)}else N.useEffect(t,e)}function At(...t){const e=N.useContext(by),n=wT(e,...t),r=N.useId();if(n.type==="mutable_atom"||n.type==="readonly_held_selector"||n.type==="writable_held_selector"){const[,c]=N.useState(0),f=N.useRef(An(e,n));return xT(()=>Ts(e,n,`use-o:${r}`,({newValue:h})=>{f.current=h,c(m=>m+1)}),[n.key]),f.current}const o=N.useCallback(c=>Ts(e,n,`use-o:${r}`,c),[n.key]),u=N.useCallback(()=>An(e,n),[n.key]);return N.useSyncExternalStore(o,u,u)}$C({key:"mutex",default:!1});var RM=class extends Map{set(t,e){return this.has(t)?(console.warn("Tried to set a key that already exists in an InvariantMap",{key:t,value:e}),this):super.set(t,e)}},kM=class Jp{type="continuity";globals=[];actions=[];perspectives=[];key;constructor(e){this.key=e}static existing=new RM;static create(e,n){const{type:r,globals:o,actions:u,perspectives:c}=n(new Jp(e)),f={type:r,key:e,globals:o,actions:u,perspectives:c};return Jp.existing.set(e,f),f}add(...e){switch(e[0].type){case"atom":case"mutable_atom":this.globals.push(...e);break;case"transaction":this.actions.push(...e);break;case"atom_family":case"mutable_atom_family":{const[n,r]=e;this.perspectives.push({type:"realtime_perspective",resourceAtoms:n,viewAtoms:r})}break}return this}};function CM(t){const{key:e,config:n}=t,r=kM.create(e,n),{actions:o}=r;for(const u of o)nT(Ft.STORE,e,u.key);return ny(Ft.STORE,e,-1),r}const TT=t=>t.startsWith("user::"),AT=t=>t.startsWith("room::");NC({key:"roomKeys",class:Y1});const df=P1({key:"usersInRooms",between:["room","user"],cardinality:"1:n",isAType:AT,isBType:TT});Qm({key:"visibleUsersInRooms",get:t=>({get:e})=>{const[,n]=of(df);return[t,...e(n,t)]}});Qm({key:"visibilityFromRoom",get:t=>({get:e})=>{const[n]=of(df);return[t,...e(n,t)]}});Qm({key:"mutualUsers",get:t=>({get:e})=>{const[n,r]=of(df),o=e(r,t);for(const u of o)return[...e(n,u)];return[t]}});P1({key:"ownersOfRooms",between:["user","room"],cardinality:"1:n",isAType:TT,isBType:AT});const MM="modulepreload",DM=function(t){return"/"+t},US={},NM=function(e,n,r){let o=Promise.resolve();if(n&&n.length>0){let m=function(y){return Promise.all(y.map(g=>Promise.resolve(g).then(b=>({status:"fulfilled",value:b}),b=>({status:"rejected",reason:b}))))};var c=m;document.getElementsByTagName("link");const f=document.querySelector("meta[property=csp-nonce]"),h=f?.nonce||f?.getAttribute("nonce");o=m(n.map(y=>{if(y=DM(y),y in US)return;US[y]=!0;const g=y.endsWith(".css"),b=g?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${y}"]${b}`))return;const S=document.createElement("link");if(S.rel=g?"stylesheet":MM,g||(S.as="script"),S.crossOrigin="",S.href=y,h&&S.setAttribute("nonce",h),document.head.appendChild(S),g)return new Promise((x,T)=>{S.addEventListener("load",x),S.addEventListener("error",()=>T(new Error(`Unable to preload CSS for ${y}`)))})}))}function u(f){const h=new Event("vite:preloadError",{cancelable:!0});if(h.payload=f,window.dispatchEvent(h),!h.defaultPrevented)throw f}return o.then(f=>{for(const h of f||[])h.status==="rejected"&&u(h.reason);return e().catch(u)})};var KS={};const $M=ft({key:"mySocketKey",default:void 0}),jM=ft({key:"myUserKey",default:null,effects:[t=>{typeof window<"u"&&NM(async()=>{const{storageSync:e}=await Promise.resolve().then(()=>Wz);return{storageSync:e}},void 0).then(({storageSync:e})=>{e(globalThis.localStorage,JSON,"myUserKey")(t)})}]});vi({key:"myRoomKey",get:({get:t})=>{if("process"in globalThis&&"env"in process&&"REALTIME_ROOM_KEY"in KS)return KS.REALTIME_ROOM_KEY;const e=t(jM);if(!e)return null;const[,n]=of(df),r=t(n,e);for(const o of r)return o;return null}});const bc=ft({key:"optimisticUpdateQueue",default:()=>[]}),Xp=ft({key:"confirmedUpdateQueue",default:()=>[]}),BM=(t,e,n,r,o)=>u=>{function c(h,m){if(t.logger.info("🧑‍⚖️","continuity",e,"reconciling updates"),Lt(t,bc,g=>(g.shift(),g)),h.id===m.id){if(JSON.stringify(h.subEvents)===JSON.stringify(m.subEvents)){t.logger.info("✅","continuity",e,`results for ${h.id} match between client and server`),n.emit(`ack:${e}`,m.epoch);return}}else t.logger.info("❌","continuity",e,`thought update #${m.epoch} was ${h.token.key}:${h.id}, but it was actually ${m.token.key}:${m.id}`);t.logger.info("🧑‍⚖️","continuity",e,"updates do not match",h,m);const y=r.toReversed();for(const g of y)xo(t,g,"oldValue");t.logger.info("⏪","continuity",e,"undid optimistic updates:",y),xo(t,h,"oldValue"),t.logger.info("⏪","continuity",e,"undid zeroth optimistic update",h),xo(t,m,"newValue"),t.logger.info("⏩","continuity",e,"applied confirmed update",m),n.emit(`ack:${e}`,m.epoch);for(const g of r){const b={type:"transaction",key:g.token.key},{id:S,params:x}=g;ey(t,b,S)(...x)}t.logger.info("⏩","continuity",e,"reapplied subsequent optimistic updates:",r)}t.logger.info("🧑‍⚖️","continuity",e,"integrating confirmed update",{confirmedUpdate:u,confirmedUpdates:o,optimisticUpdates:r});const f=r[0];if(f)if(t.logger.info("🧑‍⚖️","continuity",e,"has optimistic updates to reconcile"),u.epoch===f.epoch){t.logger.info("🧑‍⚖️","continuity",e,`epoch of confirmed update #${u.epoch} matches zeroth optimistic update`),c(f,u);for(const h of o){const m=r[0];if(h.epoch===m?.epoch)c(m,h);else break}}else t.logger.info("🧑‍⚖️","continuity",e,`epoch of confirmed update #${u.epoch} does not match zeroth optimistic update #${f.epoch}`),o.some(h=>h.epoch===u.epoch)||(t.logger.info("👈","continuity",e,"pushing confirmed update to queue",u),Lt(t,Xp,h=>(h.push(u),h.sort((m,y)=>m.epoch-y.epoch),h)));else{t.logger.info("🧑‍⚖️","continuity",e,"has no optimistic updates to deal with");let h;h=tT(t,e),h===u.epoch-1?(t.logger.info("✅","continuity",e,`integrating update #${u.epoch} (${u.token.key} ${u.id})`),xo(t,u,"newValue"),n.emit(`ack:${e}`,u.epoch),ny(t,e,u.epoch)):h!==void 0&&(t.logger.info("🧑‍⚖️","continuity",e,`received update #${u.epoch} but still waiting for update #${h+1}`,{clientEpoch:h,serverEpoch:u.epoch}),o.some(m=>m.epoch===u.epoch)?t.logger.info("👍","continuity",e,`confirmed update #${u.epoch} is already enqueued`):(t.logger.info("👈","continuity",e,`pushing confirmed update #${u.epoch} to queue`),Lt(t,Xp,m=>(m.push(u),m.sort((y,g)=>y.epoch-g.epoch),m))))}};function zM(t){return e=>{for(const n of e)gy(t,n)}}function LM(t){return e=>{let n=0,r,o;for(const u of e)n%2===0?r=u:(o=u,Lt(t,r,o)),n++}}function VM(t,e,n){const r=n.key,o=An(t,bc),u=An(t,Xp),c=(g,b)=>{e.off(`continuity-init:${r}`,c);let S=0,x,T;for(const _ of b)S%2===0?x=_:(T=_,"type"in x&&x.type==="mutable_atom"&&(x=ks(t,x)),Lt(t,x,T)),S++;ny(t,r,g)};e.off(`continuity-init:${r}`),e.on(`continuity-init:${r}`,c);const f=BM(t,r,e,o,u);e.off(`tx-new:${r}`),e.on(`tx-new:${r}`,f);const h=n.actions.map(g=>(nT(t,r,g.key),hT(t,g,`tx-run:${r}`,b=>{t.logger.info("🤞","continuity",r,"enqueuing optimistic update");const S=o.findIndex(x=>x.id===b.id);S===-1?(t.logger.info("🤞","continuity",r,"enqueuing new optimistic update"),Lt(t,bc,x=>(x.push(b),x.sort((T,_)=>T.epoch-_.epoch),x))):(t.logger.info("🤞","continuity",r,`replacing existing optimistic update at index ${S}`),Lt(t,bc,x=>(x[S]=b,x))),e.emit(`tx-run:${r}`,{id:b.id,token:g,params:b.params})}))),m=LM(t),y=zM(t);return e.on(`reveal:${r}`,m),e.on(`conceal:${r}`,y),e.emit(`get:${r}`),()=>{e.off(`continuity-init:${r}`),e.off(`tx-new:${r}`);for(const g of h)g()}}const ET=N.createContext({socket:null,services:null}),UM=({children:t,socket:e})=>{const n=N.useRef(new Map).current,r=Qn($M);return N.useEffect(()=>{r(e?.id?`socket::${e.id}`:void 0),e?.on("connect",()=>{r(e?.id?`socket::${e.id}`:void 0)}),e?.on("disconnect",()=>{r(void 0)})},[e,r]),F.jsx(ET.Provider,{value:{socket:e,services:n},children:t})};function KM(t,e){const{socket:n,services:r}=N.useContext(ET);xT(()=>{let o=r?.get(t);return o?++o.consumerCount:n&&(o={consumerCount:1,dispose:e(n)},r?.set(t,o)),()=>{o&&(--o.consumerCount,o.consumerCount===0&&(o.dispose?.(),r?.delete(t)))}},[n,t])}function qM(t){const e=N.useContext(by);KM(`tx-sync:${t.key}`,n=>VM(e,n,t))}var ep={exports:{}},Ga={},tp={exports:{}},np={};var qS;function PM(){return qS||(qS=1,(function(t){function e(j,U){var L=j.length;j.push(U);e:for(;0<L;){var te=L-1>>>1,oe=j[te];if(0<o(oe,U))j[te]=U,j[L]=oe,L=te;else break e}}function n(j){return j.length===0?null:j[0]}function r(j){if(j.length===0)return null;var U=j[0],L=j.pop();if(L!==U){j[0]=L;e:for(var te=0,oe=j.length,E=oe>>>1;te<E;){var q=2*(te+1)-1,H=j[q],Q=q+1,re=j[Q];if(0>o(H,L))Q<oe&&0>o(re,H)?(j[te]=re,j[Q]=L,te=Q):(j[te]=H,j[q]=L,te=q);else if(Q<oe&&0>o(re,L))j[te]=re,j[Q]=L,te=Q;else break e}}return U}function o(j,U){var L=j.sortIndex-U.sortIndex;return L!==0?L:j.id-U.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var u=performance;t.unstable_now=function(){return u.now()}}else{var c=Date,f=c.now();t.unstable_now=function(){return c.now()-f}}var h=[],m=[],y=1,g=null,b=3,S=!1,x=!1,T=!1,_=!1,k=typeof setTimeout=="function"?setTimeout:null,C=typeof clearTimeout=="function"?clearTimeout:null,M=typeof setImmediate<"u"?setImmediate:null;function G(j){for(var U=n(m);U!==null;){if(U.callback===null)r(m);else if(U.startTime<=j)r(m),U.sortIndex=U.expirationTime,e(h,U);else break;U=n(m)}}function I(j){if(T=!1,G(j),!x)if(n(h)!==null)x=!0,ee||(ee=!0,je());else{var U=n(m);U!==null&&ne(I,U.startTime-j)}}var ee=!1,J=-1,X=5,he=-1;function pe(){return _?!0:!(t.unstable_now()-he<X)}function we(){if(_=!1,ee){var j=t.unstable_now();he=j;var U=!0;try{e:{x=!1,T&&(T=!1,C(J),J=-1),S=!0;var L=b;try{t:{for(G(j),g=n(h);g!==null&&!(g.expirationTime>j&&pe());){var te=g.callback;if(typeof te=="function"){g.callback=null,b=g.priorityLevel;var oe=te(g.expirationTime<=j);if(j=t.unstable_now(),typeof oe=="function"){g.callback=oe,G(j),U=!0;break t}g===n(h)&&r(h),G(j)}else r(h);g=n(h)}if(g!==null)U=!0;else{var E=n(m);E!==null&&ne(I,E.startTime-j),U=!1}}break e}finally{g=null,b=L,S=!1}U=void 0}}finally{U?je():ee=!1}}}var je;if(typeof M=="function")je=function(){M(we)};else if(typeof MessageChannel<"u"){var be=new MessageChannel,Z=be.port2;be.port1.onmessage=we,je=function(){Z.postMessage(null)}}else je=function(){k(we,0)};function ne(j,U){J=k(function(){j(t.unstable_now())},U)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(j){j.callback=null},t.unstable_forceFrameRate=function(j){0>j||125<j?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):X=0<j?Math.floor(1e3/j):5},t.unstable_getCurrentPriorityLevel=function(){return b},t.unstable_next=function(j){switch(b){case 1:case 2:case 3:var U=3;break;default:U=b}var L=b;b=U;try{return j()}finally{b=L}},t.unstable_requestPaint=function(){_=!0},t.unstable_runWithPriority=function(j,U){switch(j){case 1:case 2:case 3:case 4:case 5:break;default:j=3}var L=b;b=j;try{return U()}finally{b=L}},t.unstable_scheduleCallback=function(j,U,L){var te=t.unstable_now();switch(typeof L=="object"&&L!==null?(L=L.delay,L=typeof L=="number"&&0<L?te+L:te):L=te,j){case 1:var oe=-1;break;case 2:oe=250;break;case 5:oe=1073741823;break;case 4:oe=1e4;break;default:oe=5e3}return oe=L+oe,j={id:y++,callback:U,priorityLevel:j,startTime:L,expirationTime:oe,sortIndex:-1},L>te?(j.sortIndex=L,e(m,j),n(h)===null&&j===n(m)&&(T?(C(J),J=-1):T=!0,ne(I,L-te))):(j.sortIndex=oe,e(h,j),x||S||(x=!0,ee||(ee=!0,je()))),j},t.unstable_shouldYield=pe,t.unstable_wrapCallback=function(j){var U=b;return function(){var L=b;b=U;try{return j.apply(this,arguments)}finally{b=L}}}})(np)),np}var PS;function IM(){return PS||(PS=1,tp.exports=PM()),tp.exports}var ip={exports:{}},Yt={};var IS;function HM(){if(IS)return Yt;IS=1;var t=vy();function e(h){var m="https://react.dev/errors/"+h;if(1<arguments.length){m+="?args[]="+encodeURIComponent(arguments[1]);for(var y=2;y<arguments.length;y++)m+="&args[]="+encodeURIComponent(arguments[y])}return"Minified React error #"+h+"; visit "+m+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function n(){}var r={d:{f:n,r:function(){throw Error(e(522))},D:n,C:n,L:n,m:n,X:n,S:n,M:n},p:0,findDOMNode:null},o=Symbol.for("react.portal");function u(h,m,y){var g=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:g==null?null:""+g,children:h,containerInfo:m,implementation:y}}var c=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function f(h,m){if(h==="font")return"";if(typeof m=="string")return m==="use-credentials"?m:""}return Yt.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=r,Yt.createPortal=function(h,m){var y=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!m||m.nodeType!==1&&m.nodeType!==9&&m.nodeType!==11)throw Error(e(299));return u(h,m,null,y)},Yt.flushSync=function(h){var m=c.T,y=r.p;try{if(c.T=null,r.p=2,h)return h()}finally{c.T=m,r.p=y,r.d.f()}},Yt.preconnect=function(h,m){typeof h=="string"&&(m?(m=m.crossOrigin,m=typeof m=="string"?m==="use-credentials"?m:"":void 0):m=null,r.d.C(h,m))},Yt.prefetchDNS=function(h){typeof h=="string"&&r.d.D(h)},Yt.preinit=function(h,m){if(typeof h=="string"&&m&&typeof m.as=="string"){var y=m.as,g=f(y,m.crossOrigin),b=typeof m.integrity=="string"?m.integrity:void 0,S=typeof m.fetchPriority=="string"?m.fetchPriority:void 0;y==="style"?r.d.S(h,typeof m.precedence=="string"?m.precedence:void 0,{crossOrigin:g,integrity:b,fetchPriority:S}):y==="script"&&r.d.X(h,{crossOrigin:g,integrity:b,fetchPriority:S,nonce:typeof m.nonce=="string"?m.nonce:void 0})}},Yt.preinitModule=function(h,m){if(typeof h=="string")if(typeof m=="object"&&m!==null){if(m.as==null||m.as==="script"){var y=f(m.as,m.crossOrigin);r.d.M(h,{crossOrigin:y,integrity:typeof m.integrity=="string"?m.integrity:void 0,nonce:typeof m.nonce=="string"?m.nonce:void 0})}}else m==null&&r.d.M(h)},Yt.preload=function(h,m){if(typeof h=="string"&&typeof m=="object"&&m!==null&&typeof m.as=="string"){var y=m.as,g=f(y,m.crossOrigin);r.d.L(h,y,{crossOrigin:g,integrity:typeof m.integrity=="string"?m.integrity:void 0,nonce:typeof m.nonce=="string"?m.nonce:void 0,type:typeof m.type=="string"?m.type:void 0,fetchPriority:typeof m.fetchPriority=="string"?m.fetchPriority:void 0,referrerPolicy:typeof m.referrerPolicy=="string"?m.referrerPolicy:void 0,imageSrcSet:typeof m.imageSrcSet=="string"?m.imageSrcSet:void 0,imageSizes:typeof m.imageSizes=="string"?m.imageSizes:void 0,media:typeof m.media=="string"?m.media:void 0})}},Yt.preloadModule=function(h,m){if(typeof h=="string")if(m){var y=f(m.as,m.crossOrigin);r.d.m(h,{as:typeof m.as=="string"&&m.as!=="script"?m.as:void 0,crossOrigin:y,integrity:typeof m.integrity=="string"?m.integrity:void 0})}else r.d.m(h)},Yt.requestFormReset=function(h){r.d.r(h)},Yt.unstable_batchedUpdates=function(h,m){return h(m)},Yt.useFormState=function(h,m,y){return c.H.useFormState(h,m,y)},Yt.useFormStatus=function(){return c.H.useHostTransitionStatus()},Yt.version="19.2.3",Yt}var HS;function OT(){if(HS)return ip.exports;HS=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),ip.exports=HM(),ip.exports}var FS;function FM(){if(FS)return Ga;FS=1;var t=IM(),e=vy(),n=OT();function r(i){var s="https://react.dev/errors/"+i;if(1<arguments.length){s+="?args[]="+encodeURIComponent(arguments[1]);for(var a=2;a<arguments.length;a++)s+="&args[]="+encodeURIComponent(arguments[a])}return"Minified React error #"+i+"; visit "+s+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function o(i){return!(!i||i.nodeType!==1&&i.nodeType!==9&&i.nodeType!==11)}function u(i){var s=i,a=i;if(i.alternate)for(;s.return;)s=s.return;else{i=s;do s=i,(s.flags&4098)!==0&&(a=s.return),i=s.return;while(i)}return s.tag===3?a:null}function c(i){if(i.tag===13){var s=i.memoizedState;if(s===null&&(i=i.alternate,i!==null&&(s=i.memoizedState)),s!==null)return s.dehydrated}return null}function f(i){if(i.tag===31){var s=i.memoizedState;if(s===null&&(i=i.alternate,i!==null&&(s=i.memoizedState)),s!==null)return s.dehydrated}return null}function h(i){if(u(i)!==i)throw Error(r(188))}function m(i){var s=i.alternate;if(!s){if(s=u(i),s===null)throw Error(r(188));return s!==i?null:i}for(var a=i,l=s;;){var d=a.return;if(d===null)break;var p=d.alternate;if(p===null){if(l=d.return,l!==null){a=l;continue}break}if(d.child===p.child){for(p=d.child;p;){if(p===a)return h(d),i;if(p===l)return h(d),s;p=p.sibling}throw Error(r(188))}if(a.return!==l.return)a=d,l=p;else{for(var v=!1,w=d.child;w;){if(w===a){v=!0,a=d,l=p;break}if(w===l){v=!0,l=d,a=p;break}w=w.sibling}if(!v){for(w=p.child;w;){if(w===a){v=!0,a=p,l=d;break}if(w===l){v=!0,l=p,a=d;break}w=w.sibling}if(!v)throw Error(r(189))}}if(a.alternate!==l)throw Error(r(190))}if(a.tag!==3)throw Error(r(188));return a.stateNode.current===a?i:s}function y(i){var s=i.tag;if(s===5||s===26||s===27||s===6)return i;for(i=i.child;i!==null;){if(s=y(i),s!==null)return s;i=i.sibling}return null}var g=Object.assign,b=Symbol.for("react.element"),S=Symbol.for("react.transitional.element"),x=Symbol.for("react.portal"),T=Symbol.for("react.fragment"),_=Symbol.for("react.strict_mode"),k=Symbol.for("react.profiler"),C=Symbol.for("react.consumer"),M=Symbol.for("react.context"),G=Symbol.for("react.forward_ref"),I=Symbol.for("react.suspense"),ee=Symbol.for("react.suspense_list"),J=Symbol.for("react.memo"),X=Symbol.for("react.lazy"),he=Symbol.for("react.activity"),pe=Symbol.for("react.memo_cache_sentinel"),we=Symbol.iterator;function je(i){return i===null||typeof i!="object"?null:(i=we&&i[we]||i["@@iterator"],typeof i=="function"?i:null)}var be=Symbol.for("react.client.reference");function Z(i){if(i==null)return null;if(typeof i=="function")return i.$$typeof===be?null:i.displayName||i.name||null;if(typeof i=="string")return i;switch(i){case T:return"Fragment";case k:return"Profiler";case _:return"StrictMode";case I:return"Suspense";case ee:return"SuspenseList";case he:return"Activity"}if(typeof i=="object")switch(i.$$typeof){case x:return"Portal";case M:return i.displayName||"Context";case C:return(i._context.displayName||"Context")+".Consumer";case G:var s=i.render;return i=i.displayName,i||(i=s.displayName||s.name||"",i=i!==""?"ForwardRef("+i+")":"ForwardRef"),i;case J:return s=i.displayName||null,s!==null?s:Z(i.type)||"Memo";case X:s=i._payload,i=i._init;try{return Z(i(s))}catch{}}return null}var ne=Array.isArray,j=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,U=n.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,L={pending:!1,data:null,method:null,action:null},te=[],oe=-1;function E(i){return{current:i}}function q(i){0>oe||(i.current=te[oe],te[oe]=null,oe--)}function H(i,s){oe++,te[oe]=i.current,i.current=s}var Q=E(null),re=E(null),ce=E(null),Te=E(null);function Rt(i,s){switch(H(ce,s),H(re,i),H(Q,null),s.nodeType){case 9:case 11:i=(i=s.documentElement)&&(i=i.namespaceURI)?X0(i):0;break;default:if(i=s.tagName,s=s.namespaceURI)s=X0(s),i=Z0(s,i);else switch(i){case"svg":i=1;break;case"math":i=2;break;default:i=0}}q(Q),H(Q,i)}function Je(){q(Q),q(re),q(ce)}function ni(i){i.memoizedState!==null&&H(Te,i);var s=Q.current,a=Z0(s,i.type);s!==a&&(H(re,i),H(Q,a))}function Ti(i){re.current===i&&(q(Q),q(re)),Te.current===i&&(q(Te),qa._currentValue=L)}var xe,Me;function ge(i){if(xe===void 0)try{throw Error()}catch(a){var s=a.stack.trim().match(/\n( *(at )?)/);xe=s&&s[1]||"",Me=-1<a.stack.indexOf(`
14
14
  at`)?" (<anonymous>)":-1<a.stack.indexOf("@")?"@unknown:0:0":""}return`
15
15
  `+xe+i+Me}var Xe=!1;function ht(i,s){if(!i||Xe)return"";Xe=!0;var a=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var l={DetermineComponentFrameRoot:function(){try{if(s){var P=function(){throw Error()};if(Object.defineProperty(P.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(P,[])}catch(z){var B=z}Reflect.construct(i,[],P)}else{try{P.call()}catch(z){B=z}i.call(P.prototype)}}else{try{throw Error()}catch(z){B=z}(P=i())&&typeof P.catch=="function"&&P.catch(function(){})}}catch(z){if(z&&B&&typeof z.stack=="string")return[z.stack,B.stack]}return[null,null]}};l.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var d=Object.getOwnPropertyDescriptor(l.DetermineComponentFrameRoot,"name");d&&d.configurable&&Object.defineProperty(l.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var p=l.DetermineComponentFrameRoot(),v=p[0],w=p[1];if(v&&w){var A=v.split(`
16
16
  `),$=w.split(`
package/app/index.html CHANGED
@@ -5,7 +5,7 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/vite.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>TEMPEST</title>
8
- <script type="module" crossorigin src="/assets/index-D3X4KPAg.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-BuI4xz01.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/assets/index-DZ_4vJcE.css">
10
10
  </head>
11
11
  <body>
@@ -39563,7 +39563,7 @@ var init_html_to_text = __esm(() => {
39563
39563
  };
39564
39564
  });
39565
39565
 
39566
- // ../../node_modules/.pnpm/@react-email+render@2.0.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@react-email/render/dist/node/index.mjs
39566
+ // ../../node_modules/.pnpm/@react-email+render@2.0.1_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@react-email/render/dist/node/index.mjs
39567
39567
  var exports_node = {};
39568
39568
  __export(exports_node, {
39569
39569
  toPlainText: () => toPlainText,
@@ -39650,7 +39650,11 @@ var modifiedHtml, defaults, pretty = (str2, options = {}) => {
39650
39650
  return result;
39651
39651
  }, render2 = async (node4, options) => {
39652
39652
  const suspendedElement = /* @__PURE__ */ jsx(Suspense, { children: node4 });
39653
- const reactDOMServer = await import("react-dom/server").then((m2) => m2.default);
39653
+ const reactDOMServer = await import("react-dom/server").then((m2) => {
39654
+ if ("default" in m2)
39655
+ return m2.default;
39656
+ return m2;
39657
+ });
39654
39658
  let html$1;
39655
39659
  if (Object.hasOwn(reactDOMServer, "renderToReadableStream") && typeof WritableStream !== "undefined")
39656
39660
  html$1 = await readStream(await reactDOMServer.renderToReadableStream(suspendedElement, { progressiveChunkSize: Number.POSITIVE_INFINITY }));
@@ -52106,6 +52110,7 @@ var { Server, Namespace, Socket } = import_dist.default;
52106
52110
  import { readFileSync } from "fs";
52107
52111
  import { createServer as createHttpServer } from "http";
52108
52112
  import { createServer as createSecureServer } from "https";
52113
+ import { hostname } from "os";
52109
52114
  import { resolve } from "path";
52110
52115
 
52111
52116
  // ../../node_modules/.pnpm/@t3-oss+env-core@0.13.10_arktype@2.1.29_typescript@5.9.3_zod@4.2.1/node_modules/@t3-oss/env-core/dist/standard.js
@@ -60439,8 +60444,8 @@ var env2 = createEnv({
60439
60444
  // dev/https-dev.ts
60440
60445
  var devDir = resolve(import.meta.dirname, `../dev`);
60441
60446
  var httpsDev = env2.VITE_DEV_HTTPS ? {
60442
- cert: readFileSync(resolve(devDir, `./cert.pem`), `utf-8`),
60443
- key: readFileSync(resolve(devDir, `./key.pem`), `utf-8`)
60447
+ cert: readFileSync(resolve(devDir, `${hostname()}.pem`), `utf-8`),
60448
+ key: readFileSync(resolve(devDir, `${hostname()}-key.pem`), `utf-8`)
60444
60449
  } : undefined;
60445
60450
  function createServer(listener) {
60446
60451
  if (httpsDev) {
@@ -60551,7 +60556,7 @@ var mutualUsersSelector = selectorFamily({
60551
60556
  const rooms = get(roomsOfUsersAtoms, userKey);
60552
60557
  for (const room of rooms)
60553
60558
  return [...get(usersOfRoomsAtoms, room)];
60554
- return [];
60559
+ return [userKey];
60555
60560
  }
60556
60561
  });
60557
60562
  var ownersOfRooms = join({
@@ -68628,7 +68633,7 @@ function summarizeAccountAction({
68628
68633
  return { subjectExternal, subjectInternal, summary };
68629
68634
  }
68630
68635
 
68631
- // ../../node_modules/.pnpm/resend@6.6.0_@react-email+render@2.0.0_react-dom@19.2.3_react@19.2.3__react@19.2.3_/node_modules/resend/dist/index.mjs
68636
+ // ../../node_modules/.pnpm/resend@6.6.0_@react-email+render@2.0.1_react-dom@19.2.3_react@19.2.3__react@19.2.3_/node_modules/resend/dist/index.mjs
68632
68637
  var import_svix = __toESM(require_dist5(), 1);
68633
68638
  var version2 = "6.6.0";
68634
68639
  function buildPaginationQuery(options) {
@@ -69498,7 +69503,7 @@ var Resend = class {
69498
69503
  }
69499
69504
  };
69500
69505
 
69501
- // ../../node_modules/.pnpm/@react-email+body@0.2.0_react@19.2.3/node_modules/@react-email/body/dist/index.mjs
69506
+ // ../../node_modules/.pnpm/@react-email+body@0.2.1_react@19.2.3/node_modules/@react-email/body/dist/index.mjs
69502
69507
  import * as React from "react";
69503
69508
  import { jsx as jsx2 } from "react/jsx-runtime";
69504
69509
  var marginProperties = [
@@ -69542,7 +69547,7 @@ var Body = React.forwardRef(({ children, style, ...props }, ref) => {
69542
69547
  });
69543
69548
  Body.displayName = "Body";
69544
69549
 
69545
- // ../../node_modules/.pnpm/@react-email+code-block@0.2.0_react@19.2.3/node_modules/@react-email/code-block/dist/index.mjs
69550
+ // ../../node_modules/.pnpm/@react-email+code-block@0.2.1_react@19.2.3/node_modules/@react-email/code-block/dist/index.mjs
69546
69551
  var PrismImport = __toESM(require_prism(), 1);
69547
69552
  import * as React$1 from "react";
69548
69553
  import { Fragment as Fragment2, jsx as jsx3, jsxs } from "react/jsx-runtime";
@@ -84215,137 +84220,53 @@ var CodeBlock = React$1.forwardRef(({ code, fontFamily, lineNumbers, theme, lang
84215
84220
  });
84216
84221
  CodeBlock.displayName = "CodeBlock";
84217
84222
 
84218
- // ../../node_modules/.pnpm/@react-email+container@0.0.15_react@19.2.3/node_modules/@react-email/container/dist/index.mjs
84223
+ // ../../node_modules/.pnpm/@react-email+container@0.0.16_react@19.2.3/node_modules/@react-email/container/dist/index.mjs
84219
84224
  import * as React2 from "react";
84220
84225
  import { jsx as jsx4 } from "react/jsx-runtime";
84221
- var __defProp3 = Object.defineProperty;
84222
- var __defProps = Object.defineProperties;
84223
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
84224
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
84225
- var __hasOwnProp3 = Object.prototype.hasOwnProperty;
84226
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
84227
- var __defNormalProp = (obj, key, value2) => (key in obj) ? __defProp3(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
84228
- var __spreadValues = (a2, b5) => {
84229
- for (var prop2 in b5 || (b5 = {}))
84230
- if (__hasOwnProp3.call(b5, prop2))
84231
- __defNormalProp(a2, prop2, b5[prop2]);
84232
- if (__getOwnPropSymbols)
84233
- for (var prop2 of __getOwnPropSymbols(b5)) {
84234
- if (__propIsEnum.call(b5, prop2))
84235
- __defNormalProp(a2, prop2, b5[prop2]);
84236
- }
84237
- return a2;
84238
- };
84239
- var __spreadProps = (a2, b5) => __defProps(a2, __getOwnPropDescs(b5));
84240
- var __objRest = (source, exclude) => {
84241
- var target = {};
84242
- for (var prop2 in source)
84243
- if (__hasOwnProp3.call(source, prop2) && exclude.indexOf(prop2) < 0)
84244
- target[prop2] = source[prop2];
84245
- if (source != null && __getOwnPropSymbols)
84246
- for (var prop2 of __getOwnPropSymbols(source)) {
84247
- if (exclude.indexOf(prop2) < 0 && __propIsEnum.call(source, prop2))
84248
- target[prop2] = source[prop2];
84249
- }
84250
- return target;
84251
- };
84252
- var Container = React2.forwardRef((_a4, ref) => {
84253
- var _b = _a4, { children, style } = _b, props = __objRest(_b, ["children", "style"]);
84254
- return /* @__PURE__ */ jsx4("table", __spreadProps(__spreadValues({
84226
+ var Container = React2.forwardRef(({ children, style, ...props }, ref) => {
84227
+ return /* @__PURE__ */ jsx4("table", {
84255
84228
  align: "center",
84256
- width: "100%"
84257
- }, props), {
84229
+ width: "100%",
84230
+ ...props,
84258
84231
  border: 0,
84259
84232
  cellPadding: "0",
84260
84233
  cellSpacing: "0",
84261
84234
  ref,
84262
84235
  role: "presentation",
84263
- style: __spreadValues({ maxWidth: "37.5em" }, style),
84264
- children: /* @__PURE__ */ jsx4("tbody", { children: /* @__PURE__ */ jsx4("tr", { style: { width: "100%" }, children: /* @__PURE__ */ jsx4("td", { children }) }) })
84265
- }));
84236
+ style: {
84237
+ maxWidth: "37.5em",
84238
+ ...style
84239
+ },
84240
+ children: /* @__PURE__ */ jsx4("tbody", { children: /* @__PURE__ */ jsx4("tr", {
84241
+ style: { width: "100%" },
84242
+ children: /* @__PURE__ */ jsx4("td", { children })
84243
+ }) })
84244
+ });
84266
84245
  });
84267
84246
  Container.displayName = "Container";
84268
84247
 
84269
- // ../../node_modules/.pnpm/@react-email+head@0.0.12_react@19.2.3/node_modules/@react-email/head/dist/index.mjs
84248
+ // ../../node_modules/.pnpm/@react-email+head@0.0.13_react@19.2.3/node_modules/@react-email/head/dist/index.mjs
84270
84249
  import * as React3 from "react";
84271
84250
  import { jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
84272
- var __defProp4 = Object.defineProperty;
84273
- var __defProps2 = Object.defineProperties;
84274
- var __getOwnPropDescs2 = Object.getOwnPropertyDescriptors;
84275
- var __getOwnPropSymbols2 = Object.getOwnPropertySymbols;
84276
- var __hasOwnProp4 = Object.prototype.hasOwnProperty;
84277
- var __propIsEnum2 = Object.prototype.propertyIsEnumerable;
84278
- var __defNormalProp2 = (obj, key, value2) => (key in obj) ? __defProp4(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
84279
- var __spreadValues2 = (a2, b5) => {
84280
- for (var prop2 in b5 || (b5 = {}))
84281
- if (__hasOwnProp4.call(b5, prop2))
84282
- __defNormalProp2(a2, prop2, b5[prop2]);
84283
- if (__getOwnPropSymbols2)
84284
- for (var prop2 of __getOwnPropSymbols2(b5)) {
84285
- if (__propIsEnum2.call(b5, prop2))
84286
- __defNormalProp2(a2, prop2, b5[prop2]);
84287
- }
84288
- return a2;
84289
- };
84290
- var __spreadProps2 = (a2, b5) => __defProps2(a2, __getOwnPropDescs2(b5));
84291
- var __objRest2 = (source, exclude) => {
84292
- var target = {};
84293
- for (var prop2 in source)
84294
- if (__hasOwnProp4.call(source, prop2) && exclude.indexOf(prop2) < 0)
84295
- target[prop2] = source[prop2];
84296
- if (source != null && __getOwnPropSymbols2)
84297
- for (var prop2 of __getOwnPropSymbols2(source)) {
84298
- if (exclude.indexOf(prop2) < 0 && __propIsEnum2.call(source, prop2))
84299
- target[prop2] = source[prop2];
84300
- }
84301
- return target;
84302
- };
84303
- var Head = React3.forwardRef((_a4, ref) => {
84304
- var _b = _a4, { children } = _b, props = __objRest2(_b, ["children"]);
84305
- return /* @__PURE__ */ jsxs2("head", __spreadProps2(__spreadValues2({}, props), { ref, children: [
84306
- /* @__PURE__ */ jsx5("meta", { content: "text/html; charset=UTF-8", httpEquiv: "Content-Type" }),
84251
+ var Head = React3.forwardRef(({ children, ...props }, ref) => /* @__PURE__ */ jsxs2("head", {
84252
+ ...props,
84253
+ ref,
84254
+ children: [
84255
+ /* @__PURE__ */ jsx5("meta", {
84256
+ content: "text/html; charset=UTF-8",
84257
+ httpEquiv: "Content-Type"
84258
+ }),
84307
84259
  /* @__PURE__ */ jsx5("meta", { name: "x-apple-disable-message-reformatting" }),
84308
84260
  children
84309
- ] }));
84310
- });
84261
+ ]
84262
+ }));
84311
84263
  Head.displayName = "Head";
84312
84264
 
84313
- // ../../node_modules/.pnpm/@react-email+heading@0.0.15_react@19.2.3/node_modules/@react-email/heading/dist/index.mjs
84265
+ // ../../node_modules/.pnpm/@react-email+heading@0.0.16_react@19.2.3/node_modules/@react-email/heading/dist/index.mjs
84314
84266
  import * as React4 from "react";
84315
84267
  import { jsx as jsx6 } from "react/jsx-runtime";
84316
- var __defProp5 = Object.defineProperty;
84317
- var __defProps3 = Object.defineProperties;
84318
- var __getOwnPropDescs3 = Object.getOwnPropertyDescriptors;
84319
- var __getOwnPropSymbols3 = Object.getOwnPropertySymbols;
84320
- var __hasOwnProp5 = Object.prototype.hasOwnProperty;
84321
- var __propIsEnum3 = Object.prototype.propertyIsEnumerable;
84322
- var __defNormalProp3 = (obj, key, value2) => (key in obj) ? __defProp5(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
84323
- var __spreadValues3 = (a2, b5) => {
84324
- for (var prop2 in b5 || (b5 = {}))
84325
- if (__hasOwnProp5.call(b5, prop2))
84326
- __defNormalProp3(a2, prop2, b5[prop2]);
84327
- if (__getOwnPropSymbols3)
84328
- for (var prop2 of __getOwnPropSymbols3(b5)) {
84329
- if (__propIsEnum3.call(b5, prop2))
84330
- __defNormalProp3(a2, prop2, b5[prop2]);
84331
- }
84332
- return a2;
84333
- };
84334
- var __spreadProps3 = (a2, b5) => __defProps3(a2, __getOwnPropDescs3(b5));
84335
- var __objRest3 = (source, exclude) => {
84336
- var target = {};
84337
- for (var prop2 in source)
84338
- if (__hasOwnProp5.call(source, prop2) && exclude.indexOf(prop2) < 0)
84339
- target[prop2] = source[prop2];
84340
- if (source != null && __getOwnPropSymbols3)
84341
- for (var prop2 of __getOwnPropSymbols3(source)) {
84342
- if (exclude.indexOf(prop2) < 0 && __propIsEnum3.call(source, prop2))
84343
- target[prop2] = source[prop2];
84344
- }
84345
- return target;
84346
- };
84347
84268
  var withMargin = (props) => {
84348
- const nonEmptyStyles = [
84269
+ const candidates = [
84349
84270
  withSpace(props.m, ["margin"]),
84350
84271
  withSpace(props.mx, ["marginLeft", "marginRight"]),
84351
84272
  withSpace(props.my, ["marginTop", "marginBottom"]),
@@ -84353,109 +84274,63 @@ var withMargin = (props) => {
84353
84274
  withSpace(props.mr, ["marginRight"]),
84354
84275
  withSpace(props.mb, ["marginBottom"]),
84355
84276
  withSpace(props.ml, ["marginLeft"])
84356
- ].filter((s3) => Object.keys(s3).length);
84357
- const mergedStyles = nonEmptyStyles.reduce((acc, style) => {
84358
- return __spreadValues3(__spreadValues3({}, acc), style);
84359
- }, {});
84277
+ ];
84278
+ const mergedStyles = {};
84279
+ for (const style of candidates)
84280
+ if (Object.keys(style).length > 0)
84281
+ Object.assign(mergedStyles, style);
84360
84282
  return mergedStyles;
84361
84283
  };
84362
84284
  var withSpace = (value2, properties) => {
84363
- return properties.reduce((styles, property) => {
84364
- if (!isNaN(parseFloat(value2))) {
84365
- return __spreadProps3(__spreadValues3({}, styles), { [property]: `${value2}px` });
84366
- }
84285
+ const styles = {};
84286
+ if (value2 === undefined)
84367
84287
  return styles;
84368
- }, {});
84288
+ if (Number.isNaN(Number.parseFloat(String(value2))))
84289
+ return styles;
84290
+ for (const property of properties)
84291
+ styles[property] = `${value2}px`;
84292
+ return styles;
84369
84293
  };
84370
- var Heading = React4.forwardRef((_a4, ref) => {
84371
- var _b = _a4, { as: Tag2 = "h1", children, style, m: m2, mx, my, mt: mt4, mr: mr4, mb, ml: ml2 } = _b, props = __objRest3(_b, ["as", "children", "style", "m", "mx", "my", "mt", "mr", "mb", "ml"]);
84372
- return /* @__PURE__ */ jsx6(Tag2, __spreadProps3(__spreadValues3({}, props), {
84294
+ var Heading = React4.forwardRef(({ as: Tag2 = "h1", children, style, m: m2, mx, my, mt: mt4, mr: mr4, mb, ml: ml2, ...props }, ref) => {
84295
+ return /* @__PURE__ */ jsx6(Tag2, {
84296
+ ...props,
84373
84297
  ref,
84374
- style: __spreadValues3(__spreadValues3({}, withMargin({ m: m2, mx, my, mt: mt4, mr: mr4, mb, ml: ml2 })), style),
84298
+ style: {
84299
+ ...withMargin({
84300
+ m: m2,
84301
+ mx,
84302
+ my,
84303
+ mt: mt4,
84304
+ mr: mr4,
84305
+ mb,
84306
+ ml: ml2
84307
+ }),
84308
+ ...style
84309
+ },
84375
84310
  children
84376
- }));
84311
+ });
84377
84312
  });
84378
84313
  Heading.displayName = "Heading";
84379
84314
 
84380
- // ../../node_modules/.pnpm/@react-email+html@0.0.11_react@19.2.3/node_modules/@react-email/html/dist/index.mjs
84315
+ // ../../node_modules/.pnpm/@react-email+html@0.0.12_react@19.2.3/node_modules/@react-email/html/dist/index.mjs
84381
84316
  import * as React5 from "react";
84382
84317
  import { jsx as jsx7 } from "react/jsx-runtime";
84383
- var __defProp6 = Object.defineProperty;
84384
- var __defProps4 = Object.defineProperties;
84385
- var __getOwnPropDescs4 = Object.getOwnPropertyDescriptors;
84386
- var __getOwnPropSymbols4 = Object.getOwnPropertySymbols;
84387
- var __hasOwnProp6 = Object.prototype.hasOwnProperty;
84388
- var __propIsEnum4 = Object.prototype.propertyIsEnumerable;
84389
- var __defNormalProp4 = (obj, key, value2) => (key in obj) ? __defProp6(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
84390
- var __spreadValues4 = (a2, b5) => {
84391
- for (var prop2 in b5 || (b5 = {}))
84392
- if (__hasOwnProp6.call(b5, prop2))
84393
- __defNormalProp4(a2, prop2, b5[prop2]);
84394
- if (__getOwnPropSymbols4)
84395
- for (var prop2 of __getOwnPropSymbols4(b5)) {
84396
- if (__propIsEnum4.call(b5, prop2))
84397
- __defNormalProp4(a2, prop2, b5[prop2]);
84398
- }
84399
- return a2;
84400
- };
84401
- var __spreadProps4 = (a2, b5) => __defProps4(a2, __getOwnPropDescs4(b5));
84402
- var __objRest4 = (source, exclude) => {
84403
- var target = {};
84404
- for (var prop2 in source)
84405
- if (__hasOwnProp6.call(source, prop2) && exclude.indexOf(prop2) < 0)
84406
- target[prop2] = source[prop2];
84407
- if (source != null && __getOwnPropSymbols4)
84408
- for (var prop2 of __getOwnPropSymbols4(source)) {
84409
- if (exclude.indexOf(prop2) < 0 && __propIsEnum4.call(source, prop2))
84410
- target[prop2] = source[prop2];
84411
- }
84412
- return target;
84413
- };
84414
- var Html = React5.forwardRef((_a4, ref) => {
84415
- var _b = _a4, { children, lang = "en", dir = "ltr" } = _b, props = __objRest4(_b, ["children", "lang", "dir"]);
84416
- return /* @__PURE__ */ jsx7("html", __spreadProps4(__spreadValues4({}, props), { dir, lang, ref, children }));
84417
- });
84318
+ var Html = React5.forwardRef(({ children, lang = "en", dir = "ltr", ...props }, ref) => /* @__PURE__ */ jsx7("html", {
84319
+ ...props,
84320
+ dir,
84321
+ lang,
84322
+ ref,
84323
+ children
84324
+ }));
84418
84325
  Html.displayName = "Html";
84419
84326
 
84420
- // ../../node_modules/.pnpm/@react-email+preview@0.0.13_react@19.2.3/node_modules/@react-email/preview/dist/index.mjs
84327
+ // ../../node_modules/.pnpm/@react-email+preview@0.0.14_react@19.2.3/node_modules/@react-email/preview/dist/index.mjs
84421
84328
  import * as React6 from "react";
84422
84329
  import { jsx as jsx8, jsxs as jsxs3 } from "react/jsx-runtime";
84423
- var __defProp7 = Object.defineProperty;
84424
- var __defProps5 = Object.defineProperties;
84425
- var __getOwnPropDescs5 = Object.getOwnPropertyDescriptors;
84426
- var __getOwnPropSymbols5 = Object.getOwnPropertySymbols;
84427
- var __hasOwnProp7 = Object.prototype.hasOwnProperty;
84428
- var __propIsEnum5 = Object.prototype.propertyIsEnumerable;
84429
- var __defNormalProp5 = (obj, key, value2) => (key in obj) ? __defProp7(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
84430
- var __spreadValues5 = (a2, b5) => {
84431
- for (var prop2 in b5 || (b5 = {}))
84432
- if (__hasOwnProp7.call(b5, prop2))
84433
- __defNormalProp5(a2, prop2, b5[prop2]);
84434
- if (__getOwnPropSymbols5)
84435
- for (var prop2 of __getOwnPropSymbols5(b5)) {
84436
- if (__propIsEnum5.call(b5, prop2))
84437
- __defNormalProp5(a2, prop2, b5[prop2]);
84438
- }
84439
- return a2;
84440
- };
84441
- var __spreadProps5 = (a2, b5) => __defProps5(a2, __getOwnPropDescs5(b5));
84442
- var __objRest5 = (source, exclude) => {
84443
- var target = {};
84444
- for (var prop2 in source)
84445
- if (__hasOwnProp7.call(source, prop2) && exclude.indexOf(prop2) < 0)
84446
- target[prop2] = source[prop2];
84447
- if (source != null && __getOwnPropSymbols5)
84448
- for (var prop2 of __getOwnPropSymbols5(source)) {
84449
- if (exclude.indexOf(prop2) < 0 && __propIsEnum5.call(source, prop2))
84450
- target[prop2] = source[prop2];
84451
- }
84452
- return target;
84453
- };
84454
84330
  var PREVIEW_MAX_LENGTH = 150;
84455
- var Preview = React6.forwardRef((_a4, ref) => {
84456
- var _b = _a4, { children = "" } = _b, props = __objRest5(_b, ["children"]);
84331
+ var Preview = React6.forwardRef(({ children = "", ...props }, ref) => {
84457
84332
  const text2 = (Array.isArray(children) ? children.join("") : children).substring(0, PREVIEW_MAX_LENGTH);
84458
- return /* @__PURE__ */ jsxs3("div", __spreadProps5(__spreadValues5({
84333
+ return /* @__PURE__ */ jsxs3("div", {
84459
84334
  style: {
84460
84335
  display: "none",
84461
84336
  overflow: "hidden",
@@ -84464,109 +84339,42 @@ var Preview = React6.forwardRef((_a4, ref) => {
84464
84339
  maxHeight: 0,
84465
84340
  maxWidth: 0
84466
84341
  },
84467
- "data-skip-in-text": true
84468
- }, props), {
84342
+ "data-skip-in-text": true,
84343
+ ...props,
84469
84344
  ref,
84470
- children: [
84471
- text2,
84472
- renderWhiteSpace(text2)
84473
- ]
84474
- }));
84345
+ children: [text2, renderWhiteSpace(text2)]
84346
+ });
84475
84347
  });
84476
84348
  Preview.displayName = "Preview";
84477
84349
  var whiteSpaceCodes = "\xA0\u200C\u200B\u200D\u200E\u200F\uFEFF";
84478
84350
  var renderWhiteSpace = (text2) => {
84479
- if (text2.length >= PREVIEW_MAX_LENGTH) {
84351
+ if (text2.length >= PREVIEW_MAX_LENGTH)
84480
84352
  return null;
84481
- }
84482
84353
  return /* @__PURE__ */ jsx8("div", { children: whiteSpaceCodes.repeat(PREVIEW_MAX_LENGTH - text2.length) });
84483
84354
  };
84484
84355
 
84485
- // ../../node_modules/.pnpm/@react-email+section@0.0.16_react@19.2.3/node_modules/@react-email/section/dist/index.mjs
84356
+ // ../../node_modules/.pnpm/@react-email+section@0.0.17_react@19.2.3/node_modules/@react-email/section/dist/index.mjs
84486
84357
  import * as React7 from "react";
84487
84358
  import { jsx as jsx9 } from "react/jsx-runtime";
84488
- var __defProp8 = Object.defineProperty;
84489
- var __defProps6 = Object.defineProperties;
84490
- var __getOwnPropDescs6 = Object.getOwnPropertyDescriptors;
84491
- var __getOwnPropSymbols6 = Object.getOwnPropertySymbols;
84492
- var __hasOwnProp8 = Object.prototype.hasOwnProperty;
84493
- var __propIsEnum6 = Object.prototype.propertyIsEnumerable;
84494
- var __defNormalProp6 = (obj, key, value2) => (key in obj) ? __defProp8(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
84495
- var __spreadValues6 = (a2, b5) => {
84496
- for (var prop2 in b5 || (b5 = {}))
84497
- if (__hasOwnProp8.call(b5, prop2))
84498
- __defNormalProp6(a2, prop2, b5[prop2]);
84499
- if (__getOwnPropSymbols6)
84500
- for (var prop2 of __getOwnPropSymbols6(b5)) {
84501
- if (__propIsEnum6.call(b5, prop2))
84502
- __defNormalProp6(a2, prop2, b5[prop2]);
84503
- }
84504
- return a2;
84505
- };
84506
- var __spreadProps6 = (a2, b5) => __defProps6(a2, __getOwnPropDescs6(b5));
84507
- var __objRest6 = (source, exclude) => {
84508
- var target = {};
84509
- for (var prop2 in source)
84510
- if (__hasOwnProp8.call(source, prop2) && exclude.indexOf(prop2) < 0)
84511
- target[prop2] = source[prop2];
84512
- if (source != null && __getOwnPropSymbols6)
84513
- for (var prop2 of __getOwnPropSymbols6(source)) {
84514
- if (exclude.indexOf(prop2) < 0 && __propIsEnum6.call(source, prop2))
84515
- target[prop2] = source[prop2];
84516
- }
84517
- return target;
84518
- };
84519
- var Section = React7.forwardRef((_a4, ref) => {
84520
- var _b = _a4, { children, style } = _b, props = __objRest6(_b, ["children", "style"]);
84521
- return /* @__PURE__ */ jsx9("table", __spreadProps6(__spreadValues6({
84359
+ var Section = React7.forwardRef(({ children, style, ...props }, ref) => {
84360
+ return /* @__PURE__ */ jsx9("table", {
84522
84361
  align: "center",
84523
84362
  width: "100%",
84524
84363
  border: 0,
84525
84364
  cellPadding: "0",
84526
84365
  cellSpacing: "0",
84527
- role: "presentation"
84528
- }, props), {
84366
+ role: "presentation",
84367
+ ...props,
84529
84368
  ref,
84530
84369
  style,
84531
84370
  children: /* @__PURE__ */ jsx9("tbody", { children: /* @__PURE__ */ jsx9("tr", { children: /* @__PURE__ */ jsx9("td", { children }) }) })
84532
- }));
84371
+ });
84533
84372
  });
84534
84373
  Section.displayName = "Section";
84535
84374
 
84536
- // ../../node_modules/.pnpm/@react-email+text@0.1.5_react@19.2.3/node_modules/@react-email/text/dist/index.mjs
84375
+ // ../../node_modules/.pnpm/@react-email+text@0.1.6_react@19.2.3/node_modules/@react-email/text/dist/index.mjs
84537
84376
  import * as React8 from "react";
84538
84377
  import { jsx as jsx10 } from "react/jsx-runtime";
84539
- var __defProp9 = Object.defineProperty;
84540
- var __defProps7 = Object.defineProperties;
84541
- var __getOwnPropDescs7 = Object.getOwnPropertyDescriptors;
84542
- var __getOwnPropSymbols7 = Object.getOwnPropertySymbols;
84543
- var __hasOwnProp9 = Object.prototype.hasOwnProperty;
84544
- var __propIsEnum7 = Object.prototype.propertyIsEnumerable;
84545
- var __defNormalProp7 = (obj, key, value2) => (key in obj) ? __defProp9(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
84546
- var __spreadValues7 = (a2, b5) => {
84547
- for (var prop2 in b5 || (b5 = {}))
84548
- if (__hasOwnProp9.call(b5, prop2))
84549
- __defNormalProp7(a2, prop2, b5[prop2]);
84550
- if (__getOwnPropSymbols7)
84551
- for (var prop2 of __getOwnPropSymbols7(b5)) {
84552
- if (__propIsEnum7.call(b5, prop2))
84553
- __defNormalProp7(a2, prop2, b5[prop2]);
84554
- }
84555
- return a2;
84556
- };
84557
- var __spreadProps7 = (a2, b5) => __defProps7(a2, __getOwnPropDescs7(b5));
84558
- var __objRest7 = (source, exclude) => {
84559
- var target = {};
84560
- for (var prop2 in source)
84561
- if (__hasOwnProp9.call(source, prop2) && exclude.indexOf(prop2) < 0)
84562
- target[prop2] = source[prop2];
84563
- if (source != null && __getOwnPropSymbols7)
84564
- for (var prop2 of __getOwnPropSymbols7(source)) {
84565
- if (exclude.indexOf(prop2) < 0 && __propIsEnum7.call(source, prop2))
84566
- target[prop2] = source[prop2];
84567
- }
84568
- return target;
84569
- };
84570
84378
  function parseMarginValue(value2) {
84571
84379
  if (typeof value2 === "number")
84572
84380
  return {
@@ -84577,38 +84385,34 @@ function parseMarginValue(value2) {
84577
84385
  };
84578
84386
  if (typeof value2 === "string") {
84579
84387
  const values2 = value2.toString().trim().split(/\s+/);
84580
- if (values2.length === 1) {
84388
+ if (values2.length === 1)
84581
84389
  return {
84582
84390
  marginTop: values2[0],
84583
84391
  marginBottom: values2[0],
84584
84392
  marginLeft: values2[0],
84585
84393
  marginRight: values2[0]
84586
84394
  };
84587
- }
84588
- if (values2.length === 2) {
84395
+ if (values2.length === 2)
84589
84396
  return {
84590
84397
  marginTop: values2[0],
84591
84398
  marginRight: values2[1],
84592
84399
  marginBottom: values2[0],
84593
84400
  marginLeft: values2[1]
84594
84401
  };
84595
- }
84596
- if (values2.length === 3) {
84402
+ if (values2.length === 3)
84597
84403
  return {
84598
84404
  marginTop: values2[0],
84599
84405
  marginRight: values2[1],
84600
84406
  marginBottom: values2[2],
84601
84407
  marginLeft: values2[1]
84602
84408
  };
84603
- }
84604
- if (values2.length === 4) {
84409
+ if (values2.length === 4)
84605
84410
  return {
84606
84411
  marginTop: values2[0],
84607
84412
  marginRight: values2[1],
84608
84413
  marginBottom: values2[2],
84609
84414
  marginLeft: values2[3]
84610
84415
  };
84611
- }
84612
84416
  }
84613
84417
  return {
84614
84418
  marginTop: undefined,
@@ -84624,38 +84428,39 @@ function computeMargins(properties) {
84624
84428
  marginBottom: undefined,
84625
84429
  marginLeft: undefined
84626
84430
  };
84627
- for (const [key, value2] of Object.entries(properties)) {
84628
- if (key === "margin") {
84431
+ for (const [key, value2] of Object.entries(properties))
84432
+ if (key === "margin")
84629
84433
  result = parseMarginValue(value2);
84630
- } else if (key === "marginTop") {
84434
+ else if (key === "marginTop")
84631
84435
  result.marginTop = value2;
84632
- } else if (key === "marginRight") {
84436
+ else if (key === "marginRight")
84633
84437
  result.marginRight = value2;
84634
- } else if (key === "marginBottom") {
84438
+ else if (key === "marginBottom")
84635
84439
  result.marginBottom = value2;
84636
- } else if (key === "marginLeft") {
84440
+ else if (key === "marginLeft")
84637
84441
  result.marginLeft = value2;
84638
- }
84639
- }
84640
84442
  return result;
84641
84443
  }
84642
- var Text3 = React8.forwardRef((_a4, ref) => {
84643
- var _b = _a4, { style } = _b, props = __objRest7(_b, ["style"]);
84444
+ var Text3 = React8.forwardRef(({ style, ...props }, ref) => {
84644
84445
  const defaultMargins = {};
84645
- if ((style == null ? undefined : style.marginTop) === undefined) {
84446
+ if (style?.marginTop === undefined)
84646
84447
  defaultMargins.marginTop = "16px";
84647
- }
84648
- if ((style == null ? undefined : style.marginBottom) === undefined) {
84448
+ if (style?.marginBottom === undefined)
84649
84449
  defaultMargins.marginBottom = "16px";
84650
- }
84651
- const margins = computeMargins(__spreadValues7(__spreadValues7({}, defaultMargins), style));
84652
- return /* @__PURE__ */ jsx10("p", __spreadProps7(__spreadValues7({}, props), {
84450
+ const margins = computeMargins({
84451
+ ...defaultMargins,
84452
+ ...style
84453
+ });
84454
+ return /* @__PURE__ */ jsx10("p", {
84455
+ ...props,
84653
84456
  ref,
84654
- style: __spreadValues7(__spreadValues7({
84457
+ style: {
84655
84458
  fontSize: "14px",
84656
- lineHeight: "24px"
84657
- }, style), margins)
84658
- }));
84459
+ lineHeight: "24px",
84460
+ ...style,
84461
+ ...margins
84462
+ }
84463
+ });
84659
84464
  });
84660
84465
  Text3.displayName = "Text";
84661
84466
 
@@ -2971,7 +2971,7 @@ var mutualUsersSelector = selectorFamily({
2971
2971
  const rooms = get(roomsOfUsersAtoms, userKey);
2972
2972
  for (const room of rooms)
2973
2973
  return [...get(usersOfRoomsAtoms, room)];
2974
- return [];
2974
+ return [userKey];
2975
2975
  }
2976
2976
  });
2977
2977
  var ownersOfRooms = join({
@@ -3089,7 +3089,7 @@ var mutualUsersSelector = selectorFamily({
3089
3089
  const rooms = get(roomsOfUsersAtoms, userKey);
3090
3090
  for (const room of rooms)
3091
3091
  return [...get(usersOfRoomsAtoms, room)];
3092
- return [];
3092
+ return [userKey];
3093
3093
  }
3094
3094
  });
3095
3095
  var ownersOfRooms = join({
@@ -16913,7 +16913,7 @@ function date4(params) {
16913
16913
 
16914
16914
  // ../../node_modules/.pnpm/zod@4.2.1/node_modules/zod/v4/classic/external.js
16915
16915
  config(en_default());
16916
- // ../../node_modules/.pnpm/safegen@0.8.3_@floating-ui+react-dom@2.1.6_react-dom@19.2.3_react@19.2.3__react@19.2.3__e4a61318744067d8702021155ca480a3/node_modules/safegen/dist/safegen-DHhNOdib.js
16916
+ // ../../node_modules/.pnpm/safegen@0.8.3_@floating-ui+react-dom@2.1.6_react-dom@19.2.3_react@19.2.3__react@19.2.3__d68e4552c4a26ddbd64be027dca8e338/node_modules/safegen/dist/safegen-DHhNOdib.js
16917
16917
  function createSafeDataGenerator(gen, logger) {
16918
16918
  return function generateFromSchema({ schema, fallback, toJsonSchema = exports_external.toJSONSchema }) {
16919
16919
  const jsonSchema = toJsonSchema(schema);
@@ -16945,7 +16945,7 @@ function jsonSchemaToInstruction(jsonSchema) {
16945
16945
  `);
16946
16946
  }
16947
16947
 
16948
- // ../../node_modules/.pnpm/safegen@0.8.3_@floating-ui+react-dom@2.1.6_react-dom@19.2.3_react@19.2.3__react@19.2.3__e4a61318744067d8702021155ca480a3/node_modules/safegen/dist/primitives-DeHVhToL.js
16948
+ // ../../node_modules/.pnpm/safegen@0.8.3_@floating-ui+react-dom@2.1.6_react-dom@19.2.3_react@19.2.3__react@19.2.3__d68e4552c4a26ddbd64be027dca8e338/node_modules/safegen/dist/primitives-DeHVhToL.js
16949
16949
  function formatIssue(prompt, actual, issue2, consequence) {
16950
16950
  const lines = [
16951
16951
  `SafeGen saw that invalid data was produced for the prompt:`,
@@ -24091,7 +24091,7 @@ var _deployments_endpoints = new Set([
24091
24091
  "/batches",
24092
24092
  "/images/edits"
24093
24093
  ]);
24094
- // ../../node_modules/.pnpm/safegen@0.8.3_@floating-ui+react-dom@2.1.6_react-dom@19.2.3_react@19.2.3__react@19.2.3__e4a61318744067d8702021155ca480a3/node_modules/safegen/dist/openai/index.js
24094
+ // ../../node_modules/.pnpm/safegen@0.8.3_@floating-ui+react-dom@2.1.6_react-dom@19.2.3_react@19.2.3__react@19.2.3__d68e4552c4a26ddbd64be027dca8e338/node_modules/safegen/dist/openai/index.js
24095
24095
  function buildOpenAiRequestParams(model, ...params) {
24096
24096
  const [instruction, jsonSchema, _, previouslyFailedResponses] = params;
24097
24097
  const messages = [{
@@ -46130,7 +46130,7 @@ async function getLogs(logger, logFilePath = `/var/log/nginx/access.log`, now =
46130
46130
  });
46131
46131
  }
46132
46132
 
46133
- // ../../node_modules/.pnpm/safegen@0.8.3_@floating-ui+react-dom@2.1.6_react-dom@19.2.3_react@19.2.3__react@19.2.3__e4a61318744067d8702021155ca480a3/node_modules/safegen/dist/arktype/index.js
46133
+ // ../../node_modules/.pnpm/safegen@0.8.3_@floating-ui+react-dom@2.1.6_react-dom@19.2.3_react@19.2.3__react@19.2.3__d68e4552c4a26ddbd64be027dca8e338/node_modules/safegen/dist/arktype/index.js
46134
46134
  function arktypeToJsonSchema(type2) {
46135
46135
  return type2.toJsonSchema();
46136
46136
  }
@@ -11540,7 +11540,7 @@ var mutualUsersSelector = selectorFamily({
11540
11540
  const rooms = get(roomsOfUsersAtoms, userKey);
11541
11541
  for (const room of rooms)
11542
11542
  return [...get(usersOfRoomsAtoms, room)];
11543
- return [];
11543
+ return [userKey];
11544
11544
  }
11545
11545
  });
11546
11546
  var ownersOfRooms = join({
@@ -11959,6 +11959,7 @@ var {file, serve } = globalThis.Bun;
11959
11959
  import { readFileSync } from "fs";
11960
11960
  import { createServer as createHttpServer } from "http";
11961
11961
  import { createServer as createSecureServer } from "https";
11962
+ import { hostname } from "os";
11962
11963
  import { resolve } from "path";
11963
11964
 
11964
11965
  // ../../node_modules/.pnpm/@t3-oss+env-core@0.13.10_arktype@2.1.29_typescript@5.9.3_zod@4.2.1/node_modules/@t3-oss/env-core/dist/standard.js
@@ -12085,8 +12086,8 @@ var env2 = createEnv({
12085
12086
  // dev/https-dev.ts
12086
12087
  var devDir = resolve(import.meta.dirname, `../dev`);
12087
12088
  var httpsDev = env2.VITE_DEV_HTTPS ? {
12088
- cert: readFileSync(resolve(devDir, `./cert.pem`), `utf-8`),
12089
- key: readFileSync(resolve(devDir, `./key.pem`), `utf-8`)
12089
+ cert: readFileSync(resolve(devDir, `${hostname()}.pem`), `utf-8`),
12090
+ key: readFileSync(resolve(devDir, `${hostname()}-key.pem`), `utf-8`)
12090
12091
  } : undefined;
12091
12092
  function createServer(listener) {
12092
12093
  if (httpsDev) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tempest.games",
3
- "version": "0.2.104",
3
+ "version": "0.2.105",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -27,7 +27,7 @@
27
27
  "dependencies": {
28
28
  "@floating-ui/react": "0.27.16",
29
29
  "@js-temporal/polyfill": "0.5.1",
30
- "@react-email/components": "1.0.2",
30
+ "@react-email/components": "1.0.3",
31
31
  "@t3-oss/env-core": "0.13.10",
32
32
  "@trpc/client": "11.8.1",
33
33
  "@trpc/server": "11.8.1",
@@ -40,17 +40,17 @@
40
40
  "postgres": "3.4.7",
41
41
  "react": "19.2.3",
42
42
  "react-dom": "19.2.3",
43
- "react-email": "5.1.0",
43
+ "react-email": "5.1.1",
44
44
  "resend": "6.6.0",
45
45
  "safegen": "0.8.3",
46
46
  "socket.io": "4.8.3",
47
47
  "socket.io-client": "4.8.3",
48
- "atom.io": "0.46.12",
49
48
  "safedeposit": "0.1.2",
50
- "treetrunks": "0.1.5"
49
+ "treetrunks": "0.1.5",
50
+ "atom.io": "0.46.13"
51
51
  },
52
52
  "devDependencies": {
53
- "@react-email/preview-server": "5.1.0",
53
+ "@react-email/preview-server": "5.1.1",
54
54
  "@types/bun": "npm:bun-types@1.3.5",
55
55
  "@types/cors": "2.8.19",
56
56
  "@types/node": "25.0.3",
@@ -69,7 +69,7 @@
69
69
  "sass-embedded": "1.97.1",
70
70
  "vite": "7.3.0",
71
71
  "vitest": "4.0.16",
72
- "flightdeck": "0.3.32",
72
+ "flightdeck": "0.3.33",
73
73
  "varmint": "0.5.11"
74
74
  },
75
75
  "scripts": {