@atom.io/template-solid-lossless-numbers 0.0.19 → 0.0.21

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.
@@ -1,10 +1,10 @@
1
1
  $ vite build
2
2
  vite v8.0.16 building client environment for production...
3
- 
3
+ 
4
4
  rendering chunks...
5
5
  computing gzip size...
6
6
  dist/index.html 0.39 kB │ gzip: 0.28 kB
7
7
  dist/assets/index-DMbEQKRi.css 3.29 kB │ gzip: 1.11 kB
8
- dist/assets/index-CE_m9LAi.js 82.02 kB │ gzip: 24.09 kB
8
+ dist/assets/index-3BMyf2EX.js 84.17 kB │ gzip: 24.60 kB
9
9
 
10
- ✓ built in 277ms
10
+ ✓ built in 447ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.0.21
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [1e4ba0a]
8
+ - atom.io@0.49.1
9
+
10
+ ## 0.0.20
11
+
12
+ ### Patch Changes
13
+
14
+ - Updated dependencies [22e3427]
15
+ - Updated dependencies [22e3427]
16
+ - Updated dependencies [22e3427]
17
+ - Updated dependencies [22e3427]
18
+ - atom.io@0.49.0
19
+
3
20
  ## 0.0.19
4
21
 
5
22
  ### Patch Changes
@@ -0,0 +1,4 @@
1
+ (function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e={context:void 0,registry:void 0,effects:void 0,done:!1,getContextId(){return t(this.context.count)},getNextContextId(){return t(this.context.count++)}};function t(t){let n=String(t),r=n.length-1;return e.context.id+(r?String.fromCharCode(96+r):``)+n}function n(t){e.context=t}function r(){return{...e.context,id:e.getNextContextId(),count:0}}var i=(e,t)=>e===t,a=Symbol(`solid-track`),o={equals:i},s=null,c=ve,l=1,u=2,d={owned:null,cleanups:null,context:null,owner:null},f=null,p=null,m=null,h=null,g=null,_=null,v=null,y=0;function ee(e,t){let n=g,r=f,i=e.length===0,a=t===void 0?r:t,o=i?d:{owned:null,cleanups:null,context:a?a.context:null,owner:a},s=i?e:()=>e(()=>S(()=>T(o)));f=o,g=null;try{return w(s,!0)}finally{g=n,f=r}}function te(e,t){t=t?Object.assign({},o,t):o;let n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0};return[fe.bind(n),e=>(typeof e==`function`&&(e=p&&p.running&&p.sources.has(n)?e(n.tValue):e(n.value)),pe(n,e))]}function b(e,t,n){let r=he(e,t,!1,l);m&&p&&p.running?_.push(r):C(r)}function ne(e,t,n){c=be;let r=he(e,t,!1,l),i=de&&le(de);i&&(r.suspense=i),(!n||!n.render)&&(r.user=!0),v?v.push(r):C(r)}function x(e,t,n){n=n?Object.assign({},o,n):o;let r=he(e,t,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,m&&p&&p.running?(r.tState=l,_.push(r)):C(r),fe.bind(r)}function S(e){if(!h&&g===null)return e();let t=g;g=null;try{return h?h.untrack(e):e()}finally{g=t}}function re(e){return f===null||(f.cleanups===null?f.cleanups=[e]:f.cleanups.push(e)),e}function ie(){return f}function ae(e){if(p&&p.running)return e(),p.done;let t=g,n=f;return Promise.resolve().then(()=>{g=t,f=n;let r;return(m||de)&&(r=p||={sources:new Set,effects:[],promises:new Set,disposed:new Set,queue:new Set,running:!0},r.done||=new Promise(e=>r.resolve=e),r.running=!0),w(e,!1),g=f=null,r?r.done:void 0})}var[oe,se]=te(!1);function ce(e,t){let n=Symbol(`context`);return{id:n,Provider:Oe(n),defaultValue:e}}function le(e){let t;return f&&f.context&&(t=f.context[e.id])!==void 0?t:e.defaultValue}function ue(e){let t=x(e),n=x(()=>De(t()));return n.toArray=()=>{let e=n();return Array.isArray(e)?e:e==null?[]:[e]},n}var de;function fe(){let e=p&&p.running;if(this.sources&&(e?this.tState:this.state))if((e?this.tState:this.state)===l)C(this);else{let e=_;_=null,w(()=>xe(this),!1),_=e}if(g){let e=this.observers;if(!e||e[e.length-1]!==g){let t=e?e.length:0;g.sources?(g.sources.push(this),g.sourceSlots.push(t)):(g.sources=[this],g.sourceSlots=[t]),e?(e.push(g),this.observerSlots.push(g.sources.length-1)):(this.observers=[g],this.observerSlots=[g.sources.length-1])}}return e&&p.sources.has(this)?this.tValue:this.value}function pe(e,t,n){let r=p&&p.running&&p.sources.has(e)?e.tValue:e.value;if(!e.comparator||!e.comparator(r,t)){if(p){let r=p.running;(r||!n&&p.sources.has(e))&&(p.sources.add(e),e.tValue=t),r||(e.value=t)}else e.value=t;e.observers&&e.observers.length&&w(()=>{for(let t=0;t<e.observers.length;t+=1){let n=e.observers[t],r=p&&p.running;r&&p.disposed.has(n)||((r?!n.tState:!n.state)&&(n.pure?_.push(n):v.push(n),n.observers&&Se(n)),r?n.tState=l:n.state=l)}if(_.length>1e6)throw _=[],Error()},!1)}return t}function C(e){if(!e.fn)return;T(e);let t=y;me(e,p&&p.running&&p.sources.has(e)?e.tValue:e.value,t),p&&!p.running&&p.sources.has(e)&&queueMicrotask(()=>{w(()=>{p&&(p.running=!0),g=f=e,me(e,e.tValue,t),g=f=null},!1)})}function me(e,t,n){let r,i=f,a=g;g=f=e;try{r=e.fn(t)}catch(t){return e.pure&&(p&&p.running?(e.tState=l,e.tOwned&&e.tOwned.forEach(T),e.tOwned=void 0):(e.state=l,e.owned&&e.owned.forEach(T),e.owned=null)),e.updatedAt=n+1,Ee(t)}finally{g=a,f=i}(!e.updatedAt||e.updatedAt<=n)&&(e.updatedAt!=null&&`observers`in e?pe(e,r,!0):p&&p.running&&e.pure?(p.sources.has(e)||(e.value=r),p.sources.add(e),e.tValue=r):e.value=r,e.updatedAt=n)}function he(e,t,n,r=l,i){let a={fn:e,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:f,context:f?f.context:null,pure:n};if(p&&p.running&&(a.state=0,a.tState=r),f===null||f!==d&&(p&&p.running&&f.pure?f.tOwned?f.tOwned.push(a):f.tOwned=[a]:f.owned?f.owned.push(a):f.owned=[a]),h&&a.fn){let e=a.fn,[t,n]=te(void 0,{equals:!1}),r=h.factory(e,n);re(()=>r.dispose());let i,o=()=>ae(n).then(()=>{i&&=(i.dispose(),void 0)});a.fn=n=>(t(),p&&p.running?(i||=h.factory(e,o),i.track(n)):r.track(n))}return a}function ge(e){let t=p&&p.running;if((t?e.tState:e.state)===0)return;if((t?e.tState:e.state)===u)return xe(e);if(e.suspense&&S(e.suspense.inFallback))return e.suspense.effects.push(e);let n=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<y);){if(t&&p.disposed.has(e))return;(t?e.tState:e.state)&&n.push(e)}for(let r=n.length-1;r>=0;r--){if(e=n[r],t){let t=e,i=n[r+1];for(;(t=t.owner)&&t!==i;)if(p.disposed.has(t))return}if((t?e.tState:e.state)===l)C(e);else if((t?e.tState:e.state)===u){let t=_;_=null,w(()=>xe(e,n[0]),!1),_=t}}}function w(e,t){if(_)return e();let n=!1;t||(_=[]),v?n=!0:v=[],y++;try{let t=e();return _e(n),t}catch(e){n||(v=null),_=null,Ee(e)}}function _e(e){if(_&&=(m&&p&&p.running?ye(_):ve(_),null),e)return;let t;if(p){if(!p.promises.size&&!p.queue.size){let e=p.sources,n=p.disposed;v.push.apply(v,p.effects),t=p.resolve;for(let e of v)`tState`in e&&(e.state=e.tState),delete e.tState;p=null,w(()=>{for(let e of n)T(e);for(let t of e){if(t.value=t.tValue,t.owned)for(let e=0,n=t.owned.length;e<n;e++)T(t.owned[e]);t.tOwned&&(t.owned=t.tOwned),delete t.tValue,delete t.tOwned,t.tState=0}se(!1)},!1)}else if(p.running){p.running=!1,p.effects.push.apply(p.effects,v),v=null,se(!0);return}}let n=v;v=null,n.length&&w(()=>c(n),!1),t&&t()}function ve(e){for(let t=0;t<e.length;t++)ge(e[t])}function ye(e){for(let t=0;t<e.length;t++){let n=e[t],r=p.queue;r.has(n)||(r.add(n),m(()=>{r.delete(n),w(()=>{p.running=!0,ge(n)},!1),p&&(p.running=!1)}))}}function be(t){let r,i=0;for(r=0;r<t.length;r++){let e=t[r];e.user?t[i++]=e:ge(e)}if(e.context){if(e.count){e.effects||=[],e.effects.push(...t.slice(0,i));return}n()}for(e.effects&&(e.done||!e.count)&&(t=[...e.effects,...t],i+=e.effects.length,delete e.effects),r=0;r<i;r++)ge(t[r])}function xe(e,t){let n=p&&p.running;n?e.tState=0:e.state=0;for(let r=0;r<e.sources.length;r+=1){let i=e.sources[r];if(i.sources){let e=n?i.tState:i.state;e===l?i!==t&&(!i.updatedAt||i.updatedAt<y)&&ge(i):e===u&&xe(i,t)}}}function Se(e){let t=p&&p.running;for(let n=0;n<e.observers.length;n+=1){let r=e.observers[n];(t?!r.tState:!r.state)&&(t?r.tState=u:r.state=u,r.pure?_.push(r):v.push(r),r.observers&&Se(r))}}function T(e){let t;if(e.sources)for(;e.sources.length;){let t=e.sources.pop(),n=e.sourceSlots.pop(),r=t.observers;if(r&&r.length){let e=r.pop(),i=t.observerSlots.pop();n<r.length&&(e.sourceSlots[i]=n,r[n]=e,t.observerSlots[n]=i)}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)T(e.tOwned[t]);delete e.tOwned}if(p&&p.running&&e.pure)Ce(e,!0);else if(e.owned){for(t=e.owned.length-1;t>=0;t--)T(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}p&&p.running?e.tState=0:e.state=0}function Ce(e,t){if(t||(e.tState=0,p.disposed.add(e)),e.owned)for(let t=0;t<e.owned.length;t++)Ce(e.owned[t])}function we(e){return e instanceof Error?e:Error(typeof e==`string`?e:`Unknown error`,{cause:e})}function Te(e,t,n){try{for(let n of t)n(e)}catch(e){Ee(e,n&&n.owner||null)}}function Ee(e,t=f){let n=s&&t&&t.context&&t.context[s],r=we(e);if(!n)throw r;v?v.push({fn(){Te(r,n,t)},state:l}):Te(r,n,t)}function De(e){if(typeof e==`function`&&!e.length)return De(e());if(Array.isArray(e)){let t=[];for(let n=0;n<e.length;n++){let r=De(e[n]);if(Array.isArray(r))if(r.length<32768)t.push.apply(t,r);else for(let e=0;e<r.length;e++)t.push(r[e]);else t.push(r)}return t}return e}function Oe(e,t){return function(t){let n;return b(()=>n=S(()=>(f.context={...f.context,[e]:t.value},ue(()=>t.children))),void 0),n}}var ke=Symbol(`fallback`);function Ae(e){for(let t=0;t<e.length;t++)e[t]()}function je(e,t,n={}){let r=[],i=[],o=[],s=0,c=t.length>1?[]:null;return re(()=>Ae(o)),()=>{let l=e()||[],u=l.length,d,f;return l[a],S(()=>{let e,t,a,m,h,g,_,v,y;if(u===0)s!==0&&(Ae(o),o=[],r=[],i=[],s=0,c&&=[]),n.fallback&&(r=[ke],i[0]=ee(e=>(o[0]=e,n.fallback())),s=1);else if(s===0){for(i=Array(u),f=0;f<u;f++)r[f]=l[f],i[f]=ee(p);s=u}else{for(a=Array(u),m=Array(u),c&&(h=Array(u)),g=0,_=Math.min(s,u);g<_&&r[g]===l[g];g++);for(_=s-1,v=u-1;_>=g&&v>=g&&r[_]===l[v];_--,v--)a[v]=i[_],m[v]=o[_],c&&(h[v]=c[_]);for(e=new Map,t=Array(v+1),f=v;f>=g;f--)y=l[f],d=e.get(y),t[f]=d===void 0?-1:d,e.set(y,f);for(d=g;d<=_;d++)y=r[d],f=e.get(y),f!==void 0&&f!==-1?(a[f]=i[d],m[f]=o[d],c&&(h[f]=c[d]),f=t[f],e.set(y,f)):o[d]();for(f=g;f<u;f++)f in a?(i[f]=a[f],o[f]=m[f],c&&(c[f]=h[f],c[f](f))):i[f]=ee(p);i=i.slice(0,s=u),r=l.slice(0)}return i});function p(e){if(o[f]=e,c){let[e,n]=te(f);return c[f]=n,t(l[f],e)}return t(l[f])}}}var Me=!1;function E(t,i){if(Me&&e.context){let a=e.context;n(r());let o=S(()=>t(i||{}));return n(a),o}return S(()=>t(i||{}))}var Ne=e=>`Stale read from <${e}>.`;function Pe(e){let t=`fallback`in e&&{fallback:()=>e.fallback};return x(je(()=>e.each,e.children,t||void 0))}function Fe(e){let t=e.keyed,n=x(()=>e.when,void 0,void 0),r=t?n:x(n,void 0,{equals:(e,t)=>!e==!t});return x(()=>{let i=r();if(i){let a=e.children;return typeof a==`function`&&a.length>0?S(()=>a(t?i:()=>{if(!S(r))throw Ne(`Show`);return n()})):a}return e.fallback},void 0,void 0)}var Ie=e=>x(()=>e());function Le(e,t,n){let r=n.length,i=t.length,a=r,o=0,s=0,c=t[i-1].nextSibling,l=null;for(;o<i||s<a;){if(t[o]===n[s]){o++,s++;continue}for(;t[i-1]===n[a-1];)i--,a--;if(i===o){let t=a<r?s?n[s-1].nextSibling:n[a-s]:c;for(;s<a;)e.insertBefore(n[s++],t)}else if(a===s)for(;o<i;)(!l||!l.has(t[o]))&&t[o].remove(),o++;else if(t[o]===n[a-1]&&n[s]===t[i-1]){let r=t[--i].nextSibling;e.insertBefore(n[s++],t[o++].nextSibling),e.insertBefore(n[--a],r),t[i]=n[a]}else{if(!l){l=new Map;let e=s;for(;e<a;)l.set(n[e],e++)}let r=l.get(t[o]);if(r!=null)if(s<r&&r<a){let c=o,u=1,d;for(;++c<i&&c<a&&!((d=l.get(t[c]))==null||d!==r+u);)u++;if(u>r-s){let i=t[o];for(;s<r;)e.insertBefore(n[s++],i)}else e.replaceChild(n[s++],t[o++])}else o++;else t[o++].remove()}}}var Re=`_$DX_DELEGATE`;function ze(e,t,n,r={}){let i;return ee(r=>{i=r,t===document?e():O(t,e(),t.firstChild?null:void 0,n)},r.owner),()=>{i(),t.textContent=``}}function D(e,t,n,r){let i,a=()=>{let t=r?document.createElementNS(`http://www.w3.org/1998/Math/MathML`,`template`):document.createElement(`template`);return t.innerHTML=e,n?t.content.firstChild.firstChild:r?t.firstChild:t.content.firstChild},o=t?()=>S(()=>document.importNode(i||=a(),!0)):()=>(i||=a()).cloneNode(!0);return o.cloneNode=o,o}function Be(e,t=window.document){let n=t[Re]||(t[Re]=new Set);for(let r=0,i=e.length;r<i;r++){let i=e[r];n.has(i)||(n.add(i),t.addEventListener(i,We))}}function Ve(e,t,n){Ue(e)||(n==null?e.removeAttribute(t):e.setAttribute(t,n))}function He(e,t){Ue(e)||(t==null?e.removeAttribute(`class`):e.className=t)}function O(e,t,n,r){if(n!==void 0&&!r&&(r=[]),typeof t!=`function`)return Ge(e,t,r,n);b(r=>Ge(e,t(),r,n),r)}function Ue(t){return!!e.context&&!e.done&&(!t||t.isConnected)}function We(t){if(e.registry&&e.events&&e.events.find(([e,n])=>n===t))return;let n=t.target,r=`$$${t.type}`,i=t.target,a=t.currentTarget,o=e=>Object.defineProperty(t,"target",{configurable:!0,value:e}),s=()=>{let e=n[r];if(e&&!n.disabled){let i=n[`${r}Data`];if(i===void 0?e.call(n,t):e.call(n,i,t),t.cancelBubble)return}return n.host&&typeof n.host!=`string`&&!n.host._$host&&n.contains(t.target)&&o(n.host),!0},c=()=>{for(;s()&&(n=n._$host||n.parentNode||n.host););};if(Object.defineProperty(t,"currentTarget",{configurable:!0,get(){return n||document}}),e.registry&&!e.done&&(e.done=_$HY.done=!0),t.composedPath){let e=t.composedPath();o(e[0]);for(let t=0;t<e.length-2&&(n=e[t],s());t++){if(n._$host){n=n._$host,c();break}if(n.parentNode===a)break}}else c();o(i)}function Ge(e,t,n,r,i){let a=Ue(e);if(a){!n&&(n=[...e.childNodes]);let t=[];for(let e=0;e<n.length;e++){let r=n[e];r.nodeType===8&&r.data.slice(0,2)===`!$`?r.remove():t.push(r)}n=t}for(;typeof n==`function`;)n=n();if(t===n)return n;let o=typeof t,s=r!==void 0;if(e=s&&n[0]&&n[0].parentNode||e,o===`string`||o===`number`){if(a||o===`number`&&(t=t.toString(),t===n))return n;if(s){let i=n[0];i&&i.nodeType===3?i.data!==t&&(i.data=t):i=document.createTextNode(t),n=k(e,n,r,i)}else n=n!==``&&typeof n==`string`?e.firstChild.data=t:e.textContent=t}else if(t==null||o===`boolean`){if(a)return n;n=k(e,n,r)}else if(o===`function`)return b(()=>{let i=t();for(;typeof i==`function`;)i=i();n=Ge(e,i,n,r)}),()=>n;else if(Array.isArray(t)){let o=[],c=n&&Array.isArray(n);if(Ke(o,t,n,i))return b(()=>n=Ge(e,o,n,r,!0)),()=>n;if(a){if(!o.length)return n;if(r===void 0)return n=[...e.childNodes];let t=o[0];if(t.parentNode!==e)return n;let i=[t];for(;(t=t.nextSibling)!==r;)i.push(t);return n=i}if(o.length===0){if(n=k(e,n,r),s)return n}else c?n.length===0?qe(e,o,r):Le(e,n,o):(n&&k(e),qe(e,o));n=o}else if(t.nodeType){if(a&&t.parentNode)return n=s?[t]:t;if(Array.isArray(n)){if(s)return n=k(e,n,r,t);k(e,n,null,t)}else n==null||n===``||!e.firstChild?e.appendChild(t):e.replaceChild(t,e.firstChild);n=t}return n}function Ke(e,t,n,r){let i=!1;for(let a=0,o=t.length;a<o;a++){let o=t[a],s=n&&n[e.length],c;if(!(o==null||o===!0||o===!1))if((c=typeof o)==`object`&&o.nodeType)e.push(o);else if(Array.isArray(o))i=Ke(e,o,s)||i;else if(c===`function`)if(r){for(;typeof o==`function`;)o=o();i=Ke(e,Array.isArray(o)?o:[o],Array.isArray(s)?s:[s])||i}else e.push(o),i=!0;else{let t=String(o);s&&s.nodeType===3&&s.data===t?e.push(s):e.push(document.createTextNode(t))}}return i}function qe(e,t,n=null){for(let r=0,i=t.length;r<i;r++)e.insertBefore(t[r],n)}function k(e,t,n,r){if(n===void 0)return e.textContent=``;let i=r||document.createTextNode(``);if(t.length){let r=!1;for(let a=t.length-1;a>=0;a--){let o=t[a];if(i!==o){let t=o.parentNode===e;!r&&!a?t?e.replaceChild(i,o):e.insertBefore(i,n):t&&o.remove()}else r=!0}}else e.insertBefore(i,n);return[i]}function A(e){return JSON.parse(e)}var j=e=>JSON.stringify(e);Array.prototype,Boolean.prototype,Number.prototype,String.prototype;var M=class extends Map{deleted=new Set;changed=new Set;source;appendedSource=new Set;sourceCleared=!1;constructor(e){super(),this.source=e}get(e){if(super.has(e))return super.get(e);if(!this.deleted.has(e)&&this.source.has(e))return this.source.get(e)}getOrInsert(e,t){return this.has(e)?this.get(e):(this.set(e,t),t)}getOrInsertComputed(e,t){if(this.has(e))return this.get(e);let n=t(e);return this.set(e,n),n}set(e,t){let n=this.appendedSource.has(e)||this.sourceCleared&&this.deleted.has(e);return this.source.has(e)&&n?(this.deleted.delete(e),this.changed.delete(e),this.appendedSource.add(e)):this.source.has(e)&&(this.deleted.delete(e),this.appendedSource.delete(e),this.changed.add(e)),super.set(e,t)}hasOwn(e){return super.has(e)}has(e){return super.has(e)?!0:this.deleted.has(e)?!1:this.source.has(e)}delete(e){return this.source.has(e)?(this.deleted.add(e),this.changed.delete(e),this.appendedSource.delete(e),super.delete(e),!0):super.delete(e)}clear(){this.deleted=new Set(this.source.keys()),this.appendedSource.clear(),this.changed.clear(),this.sourceCleared=!0,super.clear()}*[Symbol.iterator](){for(let[e,t]of this.source)this.deleted.has(e)||this.appendedSource.has(e)||(this.changed.has(e)?yield[e,super.get(e)]:yield[e,t]);for(let e of super[Symbol.iterator]())this.changed.has(e[0])||(yield e)}*entries(){yield*this[Symbol.iterator]()}*keys(){for(let e of this.source.keys())!this.deleted.has(e)&&!this.appendedSource.has(e)&&(yield e);for(let e of super.keys())this.changed.has(e)||(yield e)}*values(){for(let[,e]of this[Symbol.iterator]())yield e}forEach(e,t){for(let[n,r]of this[Symbol.iterator]())e.call(t,r,n,this)}get size(){return super.size+this.source.size-this.changed.size-this.deleted.size-this.appendedSource.size}};function*N(e){let t=e.keys();for(let e=t.next();!e.done;e=t.next())yield e.value}var Je=class extends Set{deleted=new Set;source;appendedSource=new Set;sourceCleared=!1;constructor(e){super(),this.source=e}add(e){let t=this.appendedSource.has(e)||this.sourceCleared&&this.deleted.has(e);return this.source.has(e)&&t?(this.deleted.delete(e),this.appendedSource.add(e),super.add(e)):this.source.has(e)?(this.deleted.delete(e),this.appendedSource.delete(e),this):super.add(e)}hasOwn(e){return super.has(e)}has(e){return super.has(e)||!this.deleted.has(e)&&this.source.has(e)}delete(e){return this.source.has(e)?(this.deleted.add(e),this.appendedSource.delete(e),super.delete(e),!0):super.delete(e)}clear(){this.deleted=new Set(this.source),this.appendedSource.clear(),this.sourceCleared=!0,super.clear()}*[Symbol.iterator](){for(let e of this.source)!this.deleted.has(e)&&!this.appendedSource.has(e)&&(yield e);yield*super[Symbol.iterator]()}*keys(){yield*this[Symbol.iterator]()}*values(){yield*this[Symbol.iterator]()}*entries(){for(let e of this[Symbol.iterator]())yield[e,e]}forEach(e,t){for(let n of this[Symbol.iterator]())e.call(t,n,n,this)}union(e){let t=new Set(this);for(let n of N(e))t.add(n);return t}intersection(e){let t=new Set,n=e,r=this;if(this.size<=e.size)for(let e of this)n.has(e)&&t.add(e);else for(let n of N(e))r.has(n)&&t.add(n);return t}difference(e){let t=new Set,n=e;if(this.size<=e.size)for(let e of this)n.has(e)||t.add(e);else{for(let e of this)t.add(e);for(let n of N(e))t.delete(n)}return t}symmetricDifference(e){let t=new Set(this);for(let n of N(e))t.has(n)?t.delete(n):t.add(n);return t}isSubsetOf(e){if(this.size>e.size)return!1;for(let t of this)if(!e.has(t))return!1;return!0}isSupersetOf(e){if(this.size<e.size)return!1;for(let t of N(e))if(!this.has(t))return!1;return!0}isDisjointFrom(e){if(this.size<=e.size){for(let t of this)if(e.has(t))return!1}else for(let t of N(e))if(this.has(t))return!1;return!0}*iterateOwn(){yield*super[Symbol.iterator]()}get size(){return super.size+this.source.size-this.deleted.size-this.appendedSource.size}},P=class{Subscriber;subscribers=new Map;subscribe(e,t){return this.subscribers.set(e,t),()=>{this.unsubscribe(e)}}unsubscribe(e){this.subscribers.delete(e)}next(e){let t=this.subscribers.values();for(let n of t)n(e)}},Ye=class extends P{state;constructor(e){super(),this.state=e}next(e){this.state=e,super.next(e)}},Xe=class extends Promise{fate;resolve;reject;done=!1;constructor(e){let t,n;super((e,r)=>{t=e,n=r}),this.resolve=t,this.reject=n,this.use(e instanceof Promise?e:new Promise(e))}pass(e,t){e===this.fate&&(this.resolve(t),this.done=!0)}fail(e,t){e===this.fate&&(this.reject(t),this.done=!0)}use(e){if(this!==e)if(e instanceof Promise){let t=e;this.fate=t,t.then(e=>{this.pass(t,e)},e=>{this.fail(t,e)})}else this.resolve(e),this.fate=void 0}};function Ze(e){return lr(G.STORE,e,void 0)}function Qe(e){return $n(G.STORE,e,void 0)}function $e(e){return fn(G.STORE,e)}function et(e,t){return Y(G.STORE,e,t)}function tt(...e){return J(G.STORE,...e)}var F={atom_family:`atom family`,atom:`atom`,continuity:`continuity`,key:`key`,mutable_atom_family:`atom family [m]`,mutable_atom:`atom [m]`,readonly_held_selector_family:`selector family [h]`,readonly_held_selector:`selector [h]`,readonly_pure_selector_family:`selector family`,readonly_pure_selector:`selector`,socket:`socket`,state:`state`,timeline:`timeline`,transaction:`transaction`,unknown:`unknown`,user:`👤`,writable_held_selector_family:`selector family [wh]`,writable_held_selector:`selector [wh]`,writable_pure_selector_family:`selector family [w]`,writable_pure_selector:`selector [w]`},nt=(e,t)=>(n,r,i,a,...o)=>{console[e](`${t?`${t} `:``}${n} ${F[r]} \`${i}\` ${a}`,...o)},rt={error:nt(`error`),info:nt(`info`),warn:nt(`warn`)},it=class{logLevel;filter;logger;constructor(e,t,n=rt){this.logLevel=e,this.filter=t,this.logger=n}error=(...e)=>{if(this.logLevel!==null){let t=this.filter?.(...e)??!0;t===!0?this.logger.error(...e):t&&this.logger.error(...t)}};info=(...e)=>{if(this.logLevel===`info`){let t=this.filter?.(...e)??!0;t===!0?this.logger.info(...e):t&&this.logger.info(...t)}};warn=(...e)=>{if(this.logLevel!==`error`&&this.logLevel!==null){let t=this.filter?.(...e)??!0;t===!0?this.logger.warn(...e):t&&this.logger.warn(...t)}}},at=class extends Error{constructor(e,t){super(`${F[e.type]} ${j(e.key)} not found in store "${t}".`)}};function ot(e,t){return[e,t].sort().join(``)}function st(e){if(typeof e!=`string`)return null;let[t,n]=e.split(`==`);if(!n)return null;let r=t.slice(4),[i,a]=n.split(`++`);return r&&i&&a?[r,i,a]:null}function ct(...e){On(G.STORE,...e)}function lt(e){return gn(G.STORE,e)}function ut(...e){X(G.STORE,...e)}function dt(e){return $t(G.STORE,e)}function I(e,t=bt()){return Dt(G.STORE,e,t)}var ft=class extends Map{deleted=new Set;source;constructor(e){super(),this.source=e}get(e){if(super.has(e))return super.get(e);if(!this.deleted.has(e)&&this.source.has(e)){let t=new Je(this.source.get(e));return super.set(e,t),t}}set(e,t){return this.deleted.delete(e),super.set(e,t)}has(e){return!this.deleted.has(e)&&(super.has(e)||this.source.has(e))}delete(e){return this.deleted.add(e),super.delete(e)}},L=class e{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(e,t)=>`${e}:${t}`;warn;getRelatedKeys(e){return this.relations.get(e)}addRelation(e,t){let n=this.relations.get(e),r=this.relations.get(t);n?n.add(t):(n=new Set([t]),this.relations.set(e,n)),r?r.add(e):(r=new Set([e]),this.relations.set(t,r))}deleteRelation(e,t){let n=this.relations.get(e);if(n){n.delete(t),n.size===0&&this.relations.delete(e);let r=this.relations.get(t);r&&(r.delete(e),r.size===0&&this.relations.delete(t))}}replaceRelationsUnsafely(e,t){this.relations.set(e,new Set(t));for(let n of t){let t=new Set().add(e);this.relations.set(n,t)}}replaceRelationsSafely(e,t){let n=this.relations.get(e),r=this.isAType?.(e)?e:void 0,i=r===void 0?e:void 0;if(n)for(let t of n){r??=t,i??=t;let n=this.relations.get(t);n&&(n.size===1?this.relations.delete(t):n.delete(e),this.contents.delete(this.makeContentKey(r,i)))}this.relations.set(e,new Set(t));for(let n of t){let t=this.relations.get(n);t?t.add(e):(t=new Set().add(e),this.relations.set(n,t))}}getContentInternal(e){return this.contents.get(e)}setContent(e,t){this.contents.set(e,t)}deleteContent(e){this.contents.delete(e)}constructor(e,t){if(this.a=e.between[0],this.b=e.between[1],this.cardinality=e.cardinality,this.isAType=t?.isAType??null,this.isBType=t?.isBType??null,this.isContent=t?.isContent??null,t?.makeContentKey&&(this.makeContentKey=t.makeContentKey),!t?.externalStore){let n=t?.source;n===void 0&&(this.relations=new Map(e.relations?.map(([e,t])=>[e,new Set(t)])),this.contents=new Map(e.contents)),n&&(this.relations=new ft(n.relations),this.contents=new M(n.contents))}if(t?.externalStore){let n=t.externalStore;this.has=(e,t)=>n.has(e,t),this.addRelation=(e,t)=>{n.addRelation(e,t)},this.deleteRelation=(e,t)=>{n.deleteRelation(e,t)},this.replaceRelationsSafely=(e,t)=>{n.replaceRelationsSafely(e,t)},this.replaceRelationsUnsafely=(e,t)=>{n.replaceRelationsUnsafely(e,t)},this.getRelatedKeys=(e=>n.getRelatedKeys(e)),n.getContent&&(this.getContentInternal=e=>n.getContent(e),this.setContent=(e,t)=>{n.setContent(e,t)},this.deleteContent=e=>{n.deleteContent(e)});for(let[t,n]of e.relations??[]){let e=this.isAType?.(t)?t:void 0,r=e===void 0?t:void 0;for(let t of n)e??=t,r??=t,this.addRelation(e,r)}for(let[t,n]of e.contents??[])this.setContent(t,n)}t?.warn&&(this.warn=t.warn)}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([e,t])=>[e,[...t]]),contents:[...this.contents.entries()]}}set(...e){let t,n,r;switch(e.length){case 1:{let i=e[0];t=i[this.a],n=i[this.b],r=void 0;break}case 2:{let i=e[0];typeof i==`string`?[t,n]=e:(t=i[this.a],n=i[this.b],r=e[1]);break}default:t=e[0],n=e[1],r=e[2];break}switch(this.cardinality){case`1:1`:{let e=this.getRelatedKey(t);e&&e!==n&&this.delete(t,e)}case`1:n`:{let e=this.getRelatedKey(n);e&&e!==t&&this.delete(e,n)}break;case`n:n`:}if(r){let e=this.makeContentKey(t,n);this.setContent(e,r)}return this.addRelation(t,n),this}delete(e,t){t=typeof t==`string`?t:e[this.b];let n=typeof e==`string`?e:e[this.a];if(n===void 0&&typeof t==`string`){let e=this.getRelatedKeys(t);if(e)for(let n of e)this.delete(n,t)}else if(typeof n==`string`&&t===void 0){let e=this.getRelatedKeys(n);if(e)for(let t of e)this.delete(n,t)}else if(typeof n==`string`&&typeof t==`string`){this.deleteRelation(n,t);let e=this.makeContentKey(n,t);this.deleteContent(e)}return this}getRelatedKey(e){let t=this.getRelatedKeys(e);if(t){t.size>1&&this.warn?.(`${t.size} related keys were found for key "${e}": (${[...t].map(e=>`"${e}"`).join(`, `)}). Only one related key was expected.`);let n;for(let e of t){n=e;break}return n}}replaceRelations(e,t,n){let r=!Array.isArray(t),i=r?Object.keys(t):t;if(n?.reckless?this.replaceRelationsUnsafely(e,i):this.replaceRelationsSafely(e,i),r)for(let n of i){let r=this.makeContentKey(e,n),i=t[n];this.setContent(r,i)}return this}getContent(e,t){let n=this.makeContentKey(e,t);return this.getContentInternal(n)}getRelationEntries(e){let t=e[this.a],n=e[this.b];if(t!==void 0&&n===void 0){let e=this.getRelatedKeys(t);if(e)return[...e].map(e=>[e,this.getContent(t,e)])}if(t===void 0&&n!==void 0){let e=this.getRelatedKeys(n);if(e)return[...e].map(e=>[e,this.getContent(e,n)])}return[]}has(e,t){return t?this.getRelatedKeys(e)?.has(t)??!1:this.relations.has(e)}overlay(){let t={source:this,makeContentKey:this.makeContentKey};return this.isAType&&(t.isAType=this.isAType),this.isBType&&(t.isBType=this.isBType),this.isContent&&(t.isContent=this.isContent),this.warn&&(t.warn=this.warn),new e({between:[this.a,this.b],cardinality:this.cardinality},t)}incorporate(e){let{relations:t,contents:n}=e;for(let[e,n]of t)if(n instanceof Je){let{source:e}=n;for(let t of n.iterateOwn())e.add(t)}else this.relations.set(e,n);for(let e of t.deleted)this.relations.delete(e);for(let[e,t]of n)this.contents.set(e,t);for(let e of n.deleted)this.contents.delete(e)}},pt=``,mt=``,ht=``,gt=``;function R(e){if(e===null)return mt;switch(typeof e){case`string`:return ht+e;case`number`:return gt+e;case`boolean`:return pt+ +e;case`object`:return JSON.stringify(e)}}function z(e){switch(e[0]){case ht:return e.slice(1);case gt:return+e.slice(1);case pt:return e.slice(1)===`1`;case mt:return null;case`[`:return JSON.parse(e)}}function _t(e){let t={},n=0;for(let r of e)t[r]=n,t[n]=r,++n;return t}var vt=_t([`add`,`delete`,`clear`]),yt=class e extends Set{mode=`record`;subject=new P;constructor(t){super(t),t instanceof e}READONLY_VIEW=this;toJSON(){return[...this]}static fromJSON(t){return new e(t)}add(e){let t=super.add(e);return this.mode===`record`&&this.emit({type:`add`,value:e}),t}clear(){let e=this.mode===`record`?[...this]:null;super.clear(),e&&this.emit({type:`clear`,values:e})}delete(e){let t=super.delete(e);return this.mode===`record`&&this.emit({type:`delete`,value:e}),t}subscribe(e,t){return this.subject.subscribe(e,t)}emit(t){this.subject.next(e.packUpdate(t))}do(t){this.mode=`playback`;let n=e.unpackUpdate(t);switch(n.type){case`add`:this.add(n.value);break;case`delete`:this.delete(n.value);break;case`clear`:this.clear()}return this.mode=`record`,null}undo(t){let n=e.unpackUpdate(t);switch(this.mode=`playback`,n.type){case`add`:this.delete(n.value);break;case`delete`:this.add(n.value);break;case`clear`:{let e=n.values;for(let t of e)this.add(t)}}return this.mode=`record`,null}static packUpdate(e){let t=vt[e.type]+``;return e.type===`clear`?t+e.values.map(R).join(``):t+R(e.value)}static unpackUpdate(e){let[t,n]=e.split(``),r=vt[t];return r===`clear`?{type:`clear`,values:n.split(``).map(z)}:{type:r,value:z(n)}}};function bt(e=Math.random){return e().toString(36).slice(2)}function B(e){let t=e;for(;t.child!==null;)t=t.child;return t}function xt(e){let t=e;for(;t.parent!==null;)t=t.parent;return t}var St=/^\[object (?:Async|Generator|AsyncGenerator)?Function\]$/;function V(e){let t=Object.prototype.toString.call(e);return St.test(t)}function Ct(e,t){return V(e)?e(t):e}var wt=class e{_buffer;_index=0;constructor(e){let t;t=typeof e==`number`?e:e.length,this._buffer=Array.from({length:t})}get buffer(){return this._buffer}get index(){return this._index}add(e){this._buffer[this._index]=e,this._index=(this._index+1)%this._buffer.length}copy(){let t=new e([...this._buffer]);return t._index=this._index,t}};function H(e){let t={key:e.key,type:e.type};return`family`in e&&(t.family=e.family),t}function Tt(e){return e.startsWith(`🔍 `)}function Et(e){e.logger.info(`🪂`,`transaction`,e.transactionMeta.update.token.key,`Aborting transaction`),e.parent.child=null}function Dt(e,t,n){return(...r)=>K(e,t).run(r,n)}function Ot(e,t,n){let{token:r,update:{newValue:i,oldValue:a}}=t;X(e,r,n===`newValue`?i:a)}function kt(e){let{stack:t}=e;return t?`
2
+ `+t.split(`
3
+ `)?.slice(1)?.join(`
4
+ `):``}function At(e,t,n,r=`any`){let i=t,a=j(n),o=[],s=B(e);if(Array.isArray(i))for(let t of i){let n=j(t);s.molecules.get(n)?e.moleculeGraph.set(n,a,{source:n}):o.push(n)}else{let t=j(i);s.molecules.get(t)?e.moleculeGraph.set(t,a,{source:t}):o.push(t)}let c=new P;o.length===0&&s.molecules.set(a,{key:n,stringKey:a,dependsOn:r,subject:c});let l={type:`molecule_creation`,key:n,provenance:i,timestamp:Date.now()};U(s)&&s.transactionMeta.phase===`building`?s.transactionMeta.update.subEvents.push(l):s.on.moleculeCreation.next(l);for(let t of o){let r=e.disposalTraces.buffer.find(e=>e?.key===t);e.logger.error(`❌`,`key`,n,`allocation failed:`,`Could not allocate to ${t} in store "${e.config.name}".`,r?`\n ${t} was most recently disposed\n${r.trace}`:`No previous disposal trace for ${t} was found.`)}return n}function jt(e,t){let n=j(t),r=e.molecules.get(n);if(!r){let r=e.disposalTraces.buffer.find(e=>e?.key===n);e.logger.error(`❌`,`key`,t,`deallocation failed:`,`Could not find allocation for ${n} in store "${e.config.name}".`,r?`\n This state was most recently deallocated\n${r.trace}`:`No previous disposal trace for ${n} was found.`);return}r.subject.next();let i=e.keyRefsInJoins.getRelatedKeys(n);if(i)for(let n of i){let r=e.joins.get(n);r&&r.relations.delete(t)}else{let n=st(t);if(n){let[,t,r]=n,i=e.keyRefsInJoins.getRelatedKey(ot(t,r));if(i){let n=e.joins.get(i);n&&n.relations.delete(t,r)}}}e.keyRefsInJoins.delete(n);let a=[],o=[],s=e.moleculeGraph.getRelationEntries({downstreamMoleculeKey:n});if(s)for(let[t,{source:r}]of s)r===n?jt(e,A(t)):a.push(r);let c=e.moleculeData.getRelatedKeys(r.stringKey);if(c)for(let n of c){let r=e.families.get(n),i=J(e,r,t);o.push([r.key,i]),_n(e,r,t)}let l={type:`molecule_disposal`,key:r.key,values:o,provenance:a,timestamp:Date.now()};e.molecules.delete(n);let u=U(e)&&e.transactionMeta.phase===`building`;u&&e.transactionMeta.update.subEvents.push(l),e.moleculeGraph.delete(r.stringKey),e.keyRefsInJoins.delete(r.stringKey),e.moleculeData.delete(r.stringKey),u||e.on.moleculeDisposal.next(l),e.molecules.delete(r.stringKey);let d=kt(Error());e.disposalTraces.add({key:n,trace:d})}function Mt(e,t,n,r){let i=j(n),a=B(e),o=a.molecules.get(i);if(!o){let t=e.disposalTraces.buffer.find(e=>e?.key===i);return e.logger.error(`❌`,`key`,i,`claim failed:`,`Could not allocate to ${i} in store "${e.config.name}".`,t?`\n ${i} was most recently disposed\n${t.trace}`:`No previous disposal trace for ${i} was found.`),n}let s=j(t),c=a.molecules.get(s);if(!c){let t=e.disposalTraces.buffer.find(e=>e?.key===s);return e.logger.error(`❌`,`key`,n,`claim failed:`,`Could not allocate to ${s} in store "${e.config.name}".`,t?`\n ${s} was most recently disposed\n${t.trace}`:`No previous disposal trace for ${s} was found.`),n}let l=e.moleculeGraph.getRelationEntries({downstreamMoleculeKey:o.stringKey}).filter(([,{source:e}])=>e!==i).map(([e])=>A(e));r&&a.moleculeGraph.delete(i),a.moleculeGraph.set({upstreamMoleculeKey:c.stringKey,downstreamMoleculeKey:o.stringKey},{source:c.stringKey});let u={type:`molecule_transfer`,key:o.key,exclusive:!!r,from:l,to:[c.key],timestamp:Date.now()};return U(a)&&a.transactionMeta.phase===`building`&&a.transactionMeta.update.subEvents.push(u),n}function Nt(e,t,n){switch(n){case`newValue`:Ft(e,t);break;case`oldValue`:_n(e,t.token);break}}function Pt(e,t,n){switch(n){case`newValue`:_n(e,t.token);break;case`oldValue`:Ft(e,t),t.subType===`atom`&&e.valueMap.set(t.token.key,t.value);break}}function Ft(e,t){let{token:n}=t;t.subType===`writable`&&t.value?X(e,n,t.value):J(e,n)}function It(e,t,n){switch(n){case`newValue`:At(e,t.provenance,t.key);break;case`oldValue`:jt(e,t.key);break}}function Lt(e,t,n){switch(n){case`newValue`:jt(e,t.key);break;case`oldValue`:At(e,t.provenance.map(A),t.key);for(let[n,r]of t.values){let i=e.families.get(n);if(i){J(e,i,t.key);let a=`${n}(${j(t.key)})`;e.valueMap.set(a,r)}}break}}function Rt(e,t,n){switch(n){case`newValue`:for(let n of t.to)Mt(e,n,t.key,t.exclusive?`exclusive`:void 0);break;case`oldValue`:{let n=`exclusive`;for(let r of t.from)Mt(e,r,t.key,n),n=void 0}break}}function zt(e,t,n){let r=n===`newValue`?t.subEvents:[...t.subEvents].reverse();for(let t of r)switch(t.type){case`atom_update`:Ot(e,t,n);break;case`state_creation`:Nt(e,t,n);break;case`state_disposal`:Pt(e,t,n);break;case`molecule_creation`:It(e,t,n);break;case`molecule_disposal`:Lt(e,t,n);break;case`molecule_transfer`:Rt(e,t,n);break;case`transaction_outcome`:zt(e,t,n);break}}function Bt(e){return`epoch`in e.transactionMeta}function U(e){return`phase`in e.transactionMeta}function Vt(e,t){return e.transactionMeta.actionContinuities.getRelatedKey(t)}function Ht(e,t){return e.transactionMeta.epoch.get(t)}function Ut(e,t){let n=Vt(e,t);if(n!==void 0)return Ht(e,n)}function Wt(e,t,n){let r=Vt(e,t);r!==void 0&&e.transactionMeta.epoch.set(r,n)}function Gt(e,t){let n=B(e),{parent:r}=n;n.transactionMeta.phase=`applying`,n.transactionMeta.update.output=t,r.child=null,r.on.transactionApplying.next(n.transactionMeta);let{subEvents:i}=n.transactionMeta.update;e.logger.info(`🛄`,`transaction`,n.transactionMeta.update.token.key,`applying ${i.length} subEvents:`,i),zt(r,n.transactionMeta.update,`newValue`),Bt(r)?(Wt(r,n.transactionMeta.update.token.key,n.transactionMeta.update.epoch),K(e,{key:n.transactionMeta.update.token.key,type:`transaction`})?.subject.next(n.transactionMeta.update),e.logger.info(`🛬`,`transaction`,n.transactionMeta.update.token.key,`applied`)):U(r)&&r.transactionMeta.update.subEvents.push(n.transactionMeta.update),r.on.transactionApplying.next(null)}function Kt(e){return{store:e}}function W(e){return e[0].toUpperCase()+e.slice(1)}function qt(e,t){let n=e.joins.get(t.key);if(n===void 0){let r=G.STORE.joins.get(t.key);if(r===void 0)throw Error(`Join "${t.key}" not found in store "${e.config.name}"`);n=new Zt(xt(e),r.options),e.joins.set(t.key,n)}return n}function Jt(e,t,n){let r=qt(e,t),i=B(e);if(U(i)){let{toolkit:e}=i.transactionMeta;r.transact(e,({relations:e})=>{n(e)})}else n(r.relations)}function Yt(e,t,n){let r=qt(e,t),i;switch(t.cardinality){case`1:1`:{let a=`${t.a}KeyOf${W(t.b)}`,o=`${t.b}KeyOf${W(t.a)}`;i={get[a](){let t=r.states[a];return Y(e,t,n)},get[o](){let t=r.states[o];return Y(e,t,n)}};break}case`1:n`:{let a=`${t.a}KeyOf${W(t.b)}`,o=`${t.b}KeysOf${W(t.a)}`;i={get[a](){let t=r.states[a];return Y(e,t,n)},get[o](){let t=r.states[o];return Y(e,t,n)}};break}case`n:n`:{let a=`${t.a}KeysOf${W(t.b)}`,o=`${t.b}KeysOf${W(t.a)}`;i={get[a](){let t=r.states[a];return Y(e,t,n)},get[o](){let t=r.states[o];return Y(e,t,n)}}}}return i}function Xt(e,t,n){let r=qt(e,t);return n===`split`?[r.relatedKeysAtoms,r.relatedKeysAtoms]:r.relatedKeysAtoms}var Zt=class{toolkit;options;relations;states;relatedKeysAtoms;transact(e,t){let n=this.toolkit;this.toolkit=e,t(this),this.toolkit=n}store;[Symbol.dispose](){}constructor(e,t){this.store=e,this.options=t,this.store.miscResources.set(`join:${t.key}`,this),this.toolkit={get:((...t)=>J(e,...t)),set:((...t)=>{X(e,...t)}),find:((...t)=>Y(e,...t)),json:t=>Z(e,t),relations:{edit:((...t)=>{Jt(e,...t)}),find:((...t)=>Yt(e,...t)),internal:((...t)=>Xt(e,...t))}};let n=t.between[0],r=t.between[1],i=tr(e,{key:`${t.key}/relatedKeys`,class:yt},[`join`,`relations`]);this.relatedKeysAtoms=i;let a=(t,n,r)=>{let{find:a,get:o,set:s}=t,c=a(i,n),l=o(c);for(let e of l)r.includes(e)||s(i,e,e=>(e.delete(n),e));s(c,t=>{t.clear();for(let c of r){let r=a(i,c),l=o(r),u=l.has(n);if(this.relations.cardinality===`1:n`){let t=[];for(let e of l){if(e===n)continue;let r;Nn(Mn,this.store,i,e,e=>(e.delete(c),r=e.size,e)),r===0&&t.push(e)}!u&&l.size>0&&s(r,e=>(e.clear(),e));for(let n of t)e.keyRefsInJoins.delete(ot(c,n))}u||s(r,e=>(e.add(n),e)),t.add(c)}return t})},o=(e,t,n)=>{let{set:r}=e;r(i,t,e=>{for(let t of n)e.add(t);return e});for(let e of n)r(i,e,e=>(e.add(t),e));return!0},s=new L(t,{externalStore:{getRelatedKeys:e=>this.toolkit.get(i,e),addRelation:(e,n)=>{this.store.keyRefsInJoins.set(`"${e}"`,t.key),this.store.keyRefsInJoins.set(`"${n}"`,t.key),this.store.keyRefsInJoins.set(ot(e,n),t.key),this.toolkit.set(i,e,e=>e.add(n)),this.toolkit.set(i,n,t=>t.add(e))},deleteRelation:(e,t)=>{this.toolkit.set(i,e,e=>(e.delete(t),e)),this.toolkit.set(i,t,t=>(t.delete(e),t));let n=ot(e,t);this.store.keyRefsInJoins.delete(n)},replaceRelationsSafely:(e,t)=>{a(this.toolkit,e,t)},replaceRelationsUnsafely:(e,t)=>{o(this.toolkit,e,t)},has:(e,t)=>{let n=this.toolkit.get(i,e);return t?n.has(t):n.size>0}},isAType:t.isAType,isBType:t.isBType}),c=()=>dn(e,{key:`${t.key}/singleRelatedKey`,get:e=>({get:t})=>{let n=t(i,e);for(let e of n)return e;return null}},[`join`,`keys`]),l=()=>dn(e,{key:`${t.key}/multipleRelatedKeys`,get:t=>({get:n})=>n(nr(i,e),t)},[`join`,`keys`]);switch(t.cardinality){case`1:1`:{let e=c(),t=`${n}KeyOf${W(r)}`,i=`${r}KeyOf${W(n)}`;this.relations=s,this.states={[t]:e,[i]:e};break}case`1:n`:{let e=c(),t=l(),i=`${n}KeyOf${W(r)}`,a=`${r}KeysOf${W(n)}`,o={[i]:e,[a]:t};this.relations=s,this.states=o;break}case`n:n`:{let e=l(),t=`${n}KeysOf${W(r)}`,i=`${r}KeysOf${W(n)}`;this.relations=s,this.states={[t]:e,[i]:e}}}}};function Qt(e,t,n,r){let i=B(e),a={parent:i,child:null,on:i.on,loggers:i.loggers,logger:i.logger,config:i.config,atoms:new M(i.atoms),atomsThatAreDefault:new Set(i.atomsThatAreDefault),families:new M(i.families),joins:new M(i.joins),operation:{open:!1},readonlySelectors:new M(i.readonlySelectors),timelines:new M(i.timelines),timelineTopics:i.timelineTopics.overlay(),trackers:new Map,transactions:new M(i.transactions),selectorAtoms:i.selectorAtoms.overlay(),selectorGraph:i.selectorGraph.overlay(),writableSelectors:new M(i.writableSelectors),valueMap:new M(i.valueMap),defaults:i.defaults,disposalTraces:e.disposalTraces.copy(),molecules:new M(i.molecules),moleculeGraph:i.moleculeGraph.overlay(),moleculeData:i.moleculeData.overlay(),keyRefsInJoins:i.keyRefsInJoins.overlay(),miscResources:new M(i.miscResources)},o=Ut(e,t.key),s={phase:`building`,update:{type:`transaction_outcome`,token:t,id:r,epoch:o===void 0?NaN:o+1,timestamp:Date.now(),subEvents:[],params:n,output:void 0},toolkit:{get:((...e)=>J(c,...e)),set:((...e)=>{X(c,...e)}),reset:((...e)=>{On(c,...e)}),run:(e,t=bt())=>Dt(c,e,t),find:((...t)=>Y(e,...t)),json:e=>Z(c,e),dispose:((...e)=>{_n(c,...e)}),env:()=>Kt(c),relations:{edit:((...e)=>{Jt(c,...e)}),find:((...e)=>Yt(c,...e)),internal:((...e)=>Xt(c,...e))}}},c=Object.assign(a,{transactionMeta:s});return i.child=c,e.logger.info(`🛫`,`transaction`,t.key,`building with params:`,n),c}function $t(e,t){let{key:n}=t,r=e.transactions.has(n),i={key:n,type:`transaction`,run:(r,a)=>{let o=Qt(e,H(i),r,a);try{let{toolkit:e}=o.transactionMeta,n=t.do(e,...r);return Gt(o,n),n}catch(t){throw Et(o),e.logger.warn(`💥`,`transaction`,n,`caught:`,t),t}},install:e=>$t(e,t),subject:new P};B(e).transactions.set(n,i);let a=H(i);return r||e.on.transactionCreation.next(a),a}var en=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 L({between:[`selectorKey`,`atomKey`],cardinality:`n:n`});selectorGraph=new L({between:[`upstreamSelectorKey`,`downstreamSelectorKey`],cardinality:`n:n`},{makeContentKey:(...e)=>e.sort().join(`:`)});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new L({between:[`continuity`,`action`],cardinality:`1:n`})};timelines=new Map;timelineTopics=new L({between:[`timelineKey`,`topicKey`],cardinality:`1:n`});disposalTraces=new wt(100);molecules=new Map;moleculeGraph=new L({between:[`upstreamMoleculeKey`,`downstreamMoleculeKey`],cardinality:`n:n`},{makeContentKey:(...e)=>e.sort().join(`:`)});moleculeData=new L({between:[`moleculeKey`,`stateFamilyKey`],cardinality:`n:n`},{makeContentKey:(...e)=>e.sort().join(`:`)});keyRefsInJoins=new L({between:[`moleculeKey`,`joinKey`],cardinality:`n:n`},{makeContentKey:(...e)=>e.sort().join(`:`)});miscResources=new Map;on={atomCreation:new P,atomDisposal:new P,selectorCreation:new P,selectorDisposal:new P,timelineCreation:new P,transactionCreation:new P,transactionApplying:new Ye(null),operationClose:new P,moleculeCreation:new P,moleculeDisposal:new P};operation={open:!1};config={name:`IMPLICIT_STORE`,lifespan:`ephemeral`,isProduction:!0};loggers=[new it(`warn`,(e,t,n)=>!Tt(n))];logger={error:(...e)=>{for(let t of this.loggers)t.error(...e)},info:(...e)=>{for(let t of this.loggers)t.info(...e)},warn:(...e)=>{for(let t of this.loggers)t.warn(...e)}};constructor(e,t=null){if(this.config={...t?.config,...e},t!==null){this.operation={...t?.operation},Bt(t)&&(this.transactionMeta={epoch:new Map(t?.transactionMeta.epoch),actionContinuities:new L(t?.transactionMeta.actionContinuities.toJSON())});for(let[,e]of t.families)e.internalRoles?.includes(`mutable`)||e.internalRoles?.includes(`join`)||e.install(this);let e=new Set;for(let[,n]of t.atoms)if(!e.has(n.key)&&(n.install(this),n.type===`mutable_atom`)){let r=Z(t,n),i=rr(n);e.add(r.key),e.add(i.key)}for(let[,e]of t.readonlySelectors)e.install(this);for(let[,n]of t.writableSelectors)e.has(n.key)||n.install(this);for(let[,e]of t.transactions)e.install(this);for(let[,e]of t.timelines)e.install(this)}}},G={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new en({name:`IMPLICIT_STORE`,lifespan:`ephemeral`,isProduction:!0}),globalThis.ATOM_IO_IMPLICIT_STORE}};function K(e,t){let n,r=e;for(;r!==null;){switch(t.type){case`atom`:case`mutable_atom`:n=r.atoms.get(t.key);break;case`writable_pure_selector`:case`writable_held_selector`:n=r.writableSelectors.get(t.key);break;case`readonly_pure_selector`:case`readonly_held_selector`:n=r.readonlySelectors.get(t.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(t.key);break;case`timeline`:n=r.timelines.get(t.key);break;case`transaction`:n=r.transactions.get(t.key);break}if(n)return n;r=r.child}throw new at(t,e.config.name)}function tn(e,t,n,r){let i=e.disposalTraces.buffer.find(e=>e?.key===j(r));switch(e.logger.error(`❌`,t.type,t.key,`gets a fallback value because key`,r,`is not allocated`,i?`This key was previously disposed:\n${i.trace}`:`(no previous disposal trace found)`),n.type){case`mutable_atom_family`:{if(e.defaults.has(n.key))return e.defaults.get(n.key);let t=new n.class;return e.defaults.set(n.key,t),t.READONLY_VIEW}case`atom_family`:{if(e.defaults.has(n.key))return e.defaults.get(n.key);let t=n.default,i=t(r);return e.defaults.set(n.key,i),i}case`readonly_pure_selector_family`:case`writable_pure_selector_family`:case`readonly_held_selector_family`:case`writable_held_selector_family`:{if(e.defaults.has(n.key))return e.defaults.get(n.key);let t=n.default(r);return e.defaults.set(n.key,t),t}}}function nn(e,t){let{type:n,key:r,catch:i}=t;switch(n){case`readonly_pure_selector`:case`writable_pure_selector`:{let a;e.logger.info(`🧮`,n,r,`computing value`);try{a=t.getFrom(e),a instanceof Promise&&(a=a.catch(t=>{if(e.logger.error(`💥`,n,r,`rejected:`,t),i){for(let e of i)if(t instanceof e)return t}throw t}))}catch(a){if(e.logger.error(`💥`,n,r,`rejected:`,a),i){for(let n of i)if(a instanceof n)return Q(e,t,a)}throw a}return Q(e,t,a)}case`atom`:{let a;if(V(t.default))try{a=t.default(),a instanceof Promise&&(a=a.catch(t=>{if(e.logger.error(`💥`,n,r,`rejected:`,t),i){for(let e of i)if(t instanceof e)return t}throw t}))}catch(o){if(e.logger.error(`💥`,n,r,`rejected:`,o),i){for(let n of i)if(o instanceof n)return a=Q(e,t,o),e.logger.info(`✨`,t.type,r,`computed default`,a),a}throw o}else a=t.default,e.logger.info(`✨`,t.type,r,`using static default`,a);return Q(e,t,a)}}}function q(e,t,n){if(e.valueMap.has(t.key))return ar(e,t,n);e.logger.info(`❔`,t.type,t.key,`value not found in cache`);let{key:r}=t;switch(t.type){case`readonly_held_selector`:case`writable_held_selector`:return e.logger.info(`🧮`,t.type,r,`computing value`),t.getFrom(e);case`writable_pure_selector`:case`readonly_pure_selector`:case`atom`:return nn(e,t);case`mutable_atom`:{let n=new t.class;return e.logger.info(`✨`,t.type,r,`created new instance`,n),Q(e,t,n)}}}function rn(e,t){return K(e,{key:t.family.key,type:`${t.type}_family`})}var an={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`},on=Symbol(`MUST_CREATE`),sn=Symbol(`DO_NOT_CREATE`);function cn(e,t,n,r){let i=j(r),a=t.molecules.get(i);if(!a&&t.config.lifespan===`immortal`){let{type:e,key:r}=n;return t.logger.warn(`💣`,`key`,i,`was used to mint a counterfeit token for`,e,`"${r}"`),{counterfeit:!0,key:`${r}(${i})`,type:an[e],family:{key:r,subKey:i}}}let o;if(e===on)t.logger.info(`👪`,n.type,n.key,`adds member`,typeof r==`string`?`\`${r}\``:r),o=n.create(r),a&&t.moleculeData.set(i,n.key);else{let{type:e,key:t}=n;return{key:`${t}(${i})`,type:an[e],family:{key:t,subKey:i}}}return o}function ln(e,...t){let n,r,i,a,o;if(t.length===1){if(o=t[0],`family`in o){let t=rn(e,o);if(i=K(e,t),a=A(o.family.subKey),n=un(e,t,a),`counterfeit`in o)return{token:o,family:i,subKey:a,isNew:!1};n?o=n:(r=cn(on,e,t,a),o=r)}}else i=K(e,t[0]),a=t[1],n=un(e,i,a),n?o=n:(r=cn(on,e,i,a),o=r);let s=`counterfeit`in o;if(r&&s===!1&&i){let t;switch(o.type){case`readonly_pure_selector`:case`readonly_held_selector`:t=`readable`;break;case`atom`:case`mutable_atom`:case`writable_pure_selector`:case`writable_held_selector`:t=`writable`;break}let n={type:`state_creation`,subType:t,token:o,timestamp:Date.now()};i.subject.next(n);let r=B(e);if(o.family)if(Bt(r))switch(o.type){case`atom`:case`mutable_atom`:e.on.atomCreation.next(o);break;case`writable_pure_selector`:case`readonly_pure_selector`:case`writable_held_selector`:case`readonly_held_selector`:e.on.selectorCreation.next(o);break}else U(r)&&r.on.transactionApplying.state===null&&r.transactionMeta.update.subEvents.push(n)}return{token:o,family:i,subKey:a,isNew:!!r}}function J(e,...t){let{token:n,family:r,subKey:i}=ln(e,...t);return`counterfeit`in n&&r&&i?tn(e,n,r,i):q(e,K(e,n))}function un(e,t,n){let r=j(n),i=`${t.key}(${r})`,a=B(e),o;switch(t.type){case`atom_family`:case`mutable_atom_family`:o=a.atoms.get(i);break;case`writable_held_selector_family`:case`writable_pure_selector_family`:o=a.writableSelectors.get(i);break;case`readonly_held_selector_family`:case`readonly_pure_selector_family`:o=a.readonlySelectors.get(i);break}return o&&H(o)}function Y(e,t,n){let r=K(e,t);return un(e,t,n)||cn(sn,e,r,n)}function dn(e,t,n){let r=t.key,i=`readonly_pure_selector_family`,a={key:r,type:i},o=e.families.get(r);o&&e.config.isProduction===!0&&e.logger.error(`❗`,i,r,`Overwriting an existing ${F[o.type]} "${o.key}" in store "${e.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let s=new P,c=n=>{let i=j(n),a={key:r,subKey:i},o=`${r}(${i})`,s=B(e),c={key:o,get:t.get(n)};return t.catch&&(c.catch=t.catch),Un(s,c,a)},l={...a,create:c,internalRoles:n,subject:s,install:e=>dn(e,t),default:n=>t.get(n)({get:J.bind(null,e),find:Y.bind(null,e),json:t=>Z(e,t),relations:{find:Yt.bind(null,e),internal:Xt.bind(null,e)}})};return e.families.set(r,l),a}function fn(e,t,n){let r={key:t.key,type:`atom_family`},i=e.families.get(t.key);i&&e.config.isProduction===!0&&e.logger.error(`❗`,`atom_family`,t.key,`Overwriting an existing ${F[i.type]} "${i.key}" in store "${e.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let a=new P,o=n=>{let r=j(n),i={key:t.key,subKey:r},a=`${t.key}(${r})`,o=B(e),s=t.default,c={key:a,default:V(s)?()=>s(n):s};return t.effects&&(c.effects=t.effects(n)),t.catch&&(c.catch=t.catch),lr(o,c,i)},s={...r,create:o,default:t.default,subject:a,install:e=>fn(e,t),internalRoles:n};return e.families.set(t.key,s),V(t.default)===!1&&e.defaults.set(t.key,t.default),r}function pn(e,t,n){let r=t.key,i=`readonly_held_selector_family`,a={key:r,type:i},o=e.families.get(r);o&&e.config.isProduction===!0&&e.logger.error(`❗`,i,r,`Overwriting an existing ${F[o.type]} "${o.key}" in store "${e.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let s=new P,c=n=>{let i=j(n),a={key:r,subKey:i},o=`${r}(${i})`;return Hn(B(e),{key:o,const:t.const(n),get:t.get(n)},a)},l={...a,create:c,internalRoles:n,subject:s,install:e=>pn(e,t),default:t.const};return e.families.set(r,l),a}function mn(e,t,n){let r=t.key,i=`writable_held_selector_family`,a={key:r,type:i},o=e.families.get(r);o&&e.config.isProduction===!0&&e.logger.error(`❗`,i,r,`Overwriting an existing ${F[o.type]} "${o.key}" in store "${e.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let s=new P,c=n=>{let i=j(n),a={key:r,subKey:i},o=`${r}(${i})`;return Wn(B(e),{key:o,const:t.const(n),get:t.get(n),set:t.set(n)},a)},l={...a,create:c,internalRoles:n,subject:s,install:e=>mn(e,t),default:t.const};return e.families.set(r,l),a}function hn(e,t,n){let r=t.key,i=`writable_pure_selector_family`,a={key:r,type:i},o=e.families.get(r);o&&e.config.isProduction===!0&&e.logger.error(`❗`,i,r,`Overwriting an existing ${F[o.type]} "${o.key}" in store "${e.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let s=new P,c=n=>{let i=j(n),a={key:r,subKey:i},o=`${r}(${i})`,s=B(e),c={key:o,get:t.get(n),set:t.set(n)};return t.catch&&(c.catch=t.catch),Gn(s,c,a)},l={...a,create:c,internalRoles:n,subject:s,install:e=>hn(e,t),default:n=>t.get(n)({get:((...t)=>J(e,...t)),find:((...t)=>Y(e,...t)),json:t=>Z(e,t),relations:{find:((...t)=>Yt(e,...t)),internal:((...t)=>Xt(e,...t))}})};return e.families.set(r,l),a}function gn(e,t){let n=`set`in t,r=`const`in t;return r&&n?mn(e,t,void 0):r?pn(e,t,void 0):n?hn(e,t):dn(e,t)}function _n(e,...t){let n;if(t.length===1)n=t[0];else{let r=t[0],i=t[1];n=Y(e,r,i)}try{K(e,n)}catch{e.logger.error(`❌`,n.type,n.key,`could not be disposed because it was not found in the store "${e.config.name}".`);return}switch(n.type){case`atom`:case`mutable_atom`:dr(e,n);break;case`writable_pure_selector`:case`readonly_pure_selector`:case`writable_held_selector`:case`readonly_held_selector`:qn(e,n);break}}function vn(e,t){if(e.operation.open){let n=performance.now();return e.logger.info(`🚫`,t.type,t.key,`deferring setState at T-${n} until setState for "${e.operation.token.key}" is done`),n}return e.operation={open:!0,done:new Set,prev:new Map,timestamp:Date.now(),token:t,subEvents:[]},e.logger.info(`⭕`,t.type,t.key,`operation start in store "${e.config.name}"${U(e)?` ${e.transactionMeta.phase} "${e.transactionMeta.update.token.key}"`:``}`),e}function yn(e){e.operation.open&&e.logger.info(`🔴`,e.operation.token.type,e.operation.token.key,`operation done in store "${e.config.name}"`),e.operation={open:!1},e.on.operationClose.next(e.operation)}function bn(e,t){return e.operation.open?e.operation.done.has(t):(e.logger.error(`🐞`,`unknown`,t,`isDone called outside of an operation. This is probably a bug in AtomIO.`),!0)}function xn(e,t){if(!e.operation.open){e.logger.error(`🐞`,`unknown`,t,`markDone called outside of an operation. This is probably a bug in AtomIO.`);return}e.operation.done.add(t)}function Sn(e,t,n,r,i){let{oldValue:a,newValue:o}=n,s=`oldValue`in n,c=H(t);if(r&&i){t.subject.next({newValue:o});let n={checkpoint:!0,type:`state_creation`,subType:`writable`,token:c,timestamp:Date.now(),value:o};e.operation.subEvents.push(n),i.subject.next(n);let r=B(e);if(c.family)if(Bt(r))switch(c.type){case`atom`:case`mutable_atom`:e.on.atomCreation.next(c);break;case`writable_pure_selector`:case`writable_held_selector`:e.on.selectorCreation.next(c);break}else U(r)&&r.on.transactionApplying.state===null&&r.transactionMeta.update.subEvents.push(n);return}let{key:l,subject:u,type:d}=t,f;if(f=s?{oldValue:ir(a)?a.READONLY_VIEW:a,newValue:ir(o)?o.READONLY_VIEW:o}:{newValue:ir(o)?o.READONLY_VIEW:o},Bt(e)){switch(d){case`mutable_atom`:e.logger.info(`📢`,d,l,`is now (`,o,`) subscribers:`,u.subscribers.keys());break;case`atom`:case`writable_pure_selector`:case`writable_held_selector`:e.logger.info(`📢`,d,l,`went (`,a,`->`,o,`) subscribers:`,u.subscribers.keys())}u.next(f)}if(U(e)&&(d===`mutable_atom`||d===`atom`)){if(e.on.transactionApplying.state===null){if(ir(o))return;let{timestamp:t}=e.operation,n={type:`atom_update`,token:c,timestamp:t,update:f};e.transactionMeta.update.subEvents.push(n),e.logger.info(`📁`,`atom`,l,`stowed (`,a,`->`,o,`)`);return}if(ur(t,`tracker:signal`)){let t=l.slice(1),n=e.atoms.get(t);q(e,n,`mut`).do(f.newValue)===null&&sr(e,n)}}}var Cn=Symbol(`UNSET`);function wn(e,t,n){let r,i;if(V(n)){let a=q(e,t,`mut`);r=a,i=n(a)}else r=e.valueMap.has(t.key)?ar(e,t,`mut`):t.type===`atom`&&!V(t.default)?t.default:Cn,i=n;return e.logger.info(`⭐`,`atom`,t.key,`setting value`,i),i=Q(e,t,i),xn(e,t.key),sr(e,t),r===Cn?{newValue:i}:{oldValue:r,newValue:i}}function Tn(e,t){switch(t.type){case`mutable_atom`:return wn(e,t,new t.class);case`atom`:{let n;return n=V(t.default)?nn(e,t):t.default,wn(e,t,n)}}}function En(e,t){let n;switch(t.type){case`atom`:case`mutable_atom`:n=Tn(e,t);break;case`writable_held_selector`:{let r=zn(e,t.key);for(let n of r.values())Sn(e,t,Tn(e,n),!1);let i=t.getFrom(e);n={oldValue:i,newValue:i}}break;case`writable_pure_selector`:{let r=nn(e,t),i=zn(e,t.key);for(let n of i.values())Sn(e,t,Tn(e,n),!1);n={oldValue:r,newValue:nn(e,t)}}break}return n}function X(e,...t){Nn(jn,e,...t)}var Dn=Symbol(`RESET`);function On(e,...t){X(e,...t,Dn)}function kn(e,t,n){let r,i,a,{type:o,key:s}=t;switch(t.type){case`writable_pure_selector`:r=q(e,t,`mut`),i=Ct(n,r),i=Q(e,t,i);break;case`writable_held_selector`:a=t.const,Ct(n,a),r=a,i=a}return e.logger.info(`⭐`,o,s,`setting to`,i),xn(e,s),t.setSelf(i),{oldValue:r,newValue:i}}function An(e,t,n){let r;switch(t.type){case`atom`:case`mutable_atom`:r=wn(e,t,n);break;case`writable_pure_selector`:case`writable_held_selector`:r=kn(e,t,n);break}return r}var jn=Symbol(`OWN_OP`),Mn=Symbol(`JOIN_OP`);function Nn(e,t,...n){let r,i,a,o,s,c;n.length===2?(a=n[0],c=n[1],`family`in a&&(o=rn(t,a),s=A(a.family.subKey),r=un(t,o,s),a=r||(i=cn(on,t,o,s)))):(o=K(t,n[0]),s=n[1],c=n[2],r=un(t,o,s),a=r||(i=cn(on,t,o,s)));let l=c===Dn?`reset`:`set`,u;if(e===jn){let n=vn(t,a);if(typeof n==`number`){let r=n,i=t.on.operationClose.subscribe(`waiting to ${l} "${a.key}" at T-${r}`,function(){i(),t.logger.info(`🟢`,a.type,a.key,`resuming deferred`,l,`from T-${r}`),Nn(e,t,a,c)});return}u=n}else u=t;if(`counterfeit`in a&&`family`in a){let e=a.family.subKey,n=t.disposalTraces.buffer.find(t=>t?.key===e);t.logger.error(`❌`,a.type,a.key,`could not be`,l,`because key`,e,`is not allocated.`,n?`this key was previously disposed:${n.trace}`:`(no previous disposal trace found)`);return}let d=K(u,a),f;f=c===Dn?En(u,d):An(u,d,c),Sn(u,d,f,!!i,o),e===jn&&yn(u)}var Pn=(e,t)=>B(e).atoms.has(t),Fn=(e,t)=>B(e).writableSelectors.has(t),In=(e,t)=>B(e).readonlySelectors.has(t),Ln=(e,t)=>Pn(e,t)||Fn(e,t)||In(e,t);function Rn(e,t){return B(e).selectorGraph.getRelationEntries({downstreamSelectorKey:t}).filter(([e,{source:n}])=>n!==t).map(([e,{source:t}])=>t).filter(t=>Ln(e,t))}function zn(e,t,n=new Set){let r=Rn(e,t),i=new Map;for(;r.length>0;){let t=r.pop();if(!n.has(t))if(n.add(t),Pn(e,t)){let n=e.atoms.get(t);i.set(n.key,n)}else r.push(...Rn(e,t))}return i}function Bn(e,t,n,r,i){let a=B(e),{type:o,key:s}=r;if(o===`atom`||o===`mutable_atom`)a.selectorAtoms.set({selectorKey:n,atomKey:s}),e.logger.info(`🔍`,t,n,`discovers root atom "${s}"`);else{let r=zn(e,s,i);e.logger.info(`🔍`,t,n,`discovers root atoms: [ ${[...r.values()].map(e=>`"${e.key}"`).join(`, `)} ]`);for(let{key:e}of r.values())a.selectorAtoms=a.selectorAtoms.set({selectorKey:n,atomKey:e})}i.add(s)}function Vn(e,t,n,r){return{get:(...i)=>{let a=B(e),{token:o,family:s,subKey:c}=ln(e,...i),l;return l=`counterfeit`in o&&s&&c?tn(e,o,s,c):q(e,K(e,o)),e.logger.info(`🔌`,t,n,`registers dependency ( "${o.key}" =`,l,`)`),a.selectorGraph.set({upstreamSelectorKey:o.key,downstreamSelectorKey:n},{source:o.key}),Bn(e,t,n,o,r),l},set:((...t)=>{Nn(Mn,B(e),...t)}),find:((...t)=>Y(e,...t)),json:t=>Z(e,t),relations:{edit:((...t)=>{Jt(e,...t)}),find:((...t)=>Yt(e,...t)),internal:((...t)=>Xt(e,...t))}}}function Hn(e,t,n){let r=B(e),i=new P,a=new Set,{key:o,const:s}=t,c=`readonly_held_selector`;e.logger.info(`🔨`,c,o,`is being created`);let{get:l,find:u,json:d,relations:f}=Vn(r,c,o,a),p=n=>{let r=n.selectorGraph.getRelationEntries({downstreamSelectorKey:o});for(let[e,{source:t}]of r)t!==o&&n.selectorGraph.delete(e,o);return n.selectorAtoms.delete(o),t.get({get:l,find:u,json:d,relations:f},s),Q(n,m,s),e.logger.info(`✨`,c,o,`=`,s),a.clear(),s},m={...t,type:c,subject:i,getFrom:p,install:e=>Hn(e,t,n)};n&&(m.family=n),r.readonlySelectors.set(o,m);let h={key:o,type:c};return n&&(h.family=n),h}function Un(e,t,n){let r=B(e),i=new P,a=new Set,o=t.key,s=`readonly_pure_selector`;e.logger.info(`🔨`,s,o,`is being created`);let{get:c,find:l,json:u,relations:d}=Vn(r,s,o,a),f=()=>{let n=B(e),r=n.selectorGraph.getRelationEntries({downstreamSelectorKey:o});for(let[e,{source:t}]of r)t!==o&&n.selectorGraph.delete(e,o);n.selectorAtoms.delete(o);let i=t.get({get:c,find:l,json:u,relations:d});return e.logger.info(`✨`,s,o,`=`,i),a.clear(),i},p={...t,type:s,subject:i,getFrom:f,install:e=>Un(e,t,n)};n&&(p.family=n),r.readonlySelectors.set(o,p);let m={key:o,type:s};return n&&(m.family=n),m}function Wn(e,t,n){let r=B(e),i=new P,a=new Set,{key:o,const:s}=t,c=`writable_held_selector`;e.logger.info(`🔨`,c,o,`is being created`);let l=Vn(r,c,o,a),{find:u,get:d,json:f,relations:p}=l,m={find:u,get:d,json:f,relations:p},h=n=>{let r=n.selectorGraph.getRelationEntries({downstreamSelectorKey:o});for(let[e,{source:t}]of r)t!==o&&n.selectorGraph.delete(e,o);return n.selectorAtoms.delete(o),t.get(m,s),Q(n,_,s),e.logger.info(`✨`,c,o,`=`,s),a.clear(),s},g=()=>{t.set(l,s)},_={...t,type:c,subject:i,getFrom:h,setSelf:g,install:e=>Wn(e,t,n)};n&&(_.family=n),r.writableSelectors.set(o,_);let v={key:o,type:c};return n&&(v.family=n),v}function Gn(e,t,n){let r=B(e),i=new P,a=new Set,o=t.key,s=`writable_pure_selector`;e.logger.info(`🔨`,s,o,`is being created`);let c=Vn(r,s,o,a),{find:l,get:u,json:d,relations:f}=c,p={find:l,get:u,json:d,relations:f},m=n=>{let r=n.selectorGraph.getRelationEntries({downstreamSelectorKey:o});for(let[e,{source:t}]of r)t!==o&&n.selectorGraph.delete(e,o);n.selectorAtoms.delete(o);let i=t.get(p);return e.logger.info(`✨`,s,o,`=`,i),a.clear(),i},h=e=>{t.set(c,e)},g={...t,type:s,subject:i,getFrom:m,setSelf:h,install:e=>Gn(e,t,n)};n&&(g.family=n),r.writableSelectors.set(o,g);let _={key:o,type:s};return n&&(_.family=n),_}function Kn(e,t){let n=`set`in t,r=`const`in t;if(r&&n){let n=Wn(e,t,void 0);return e.on.selectorCreation.next(n),n}if(r){let n=Hn(e,t,void 0);return e.on.selectorCreation.next(n),n}if(n){let n=Gn(e,t,void 0);return e.on.selectorCreation.next(n),n}let i=Un(e,t,void 0);return e.on.selectorCreation.next(i),i}function qn(e,t){let n=B(e),{key:r,type:i,family:a}=t;if(!a)e.logger.error(`❌`,i,r,`Standalone selectors cannot be disposed.`);else{n.molecules.get(a.subKey)&&n.moleculeData.delete(a.subKey,a.key);let i;switch(t.type){case`writable_held_selector`:n.writableSelectors.delete(r),i={key:a.key,type:`writable_held_selector_family`},K(e,i).subject.next({type:`state_disposal`,subType:`selector`,token:t,timestamp:Date.now()});break;case`writable_pure_selector`:n.writableSelectors.delete(r),i={key:a.key,type:`writable_pure_selector_family`},K(e,i).subject.next({type:`state_disposal`,subType:`selector`,token:t,timestamp:Date.now()});break;case`readonly_held_selector`:n.readonlySelectors.delete(r),i={key:a.key,type:`readonly_held_selector_family`},K(e,i).subject.next({type:`state_disposal`,subType:`selector`,token:t,timestamp:Date.now()});break;case`readonly_pure_selector`:n.readonlySelectors.delete(r),i={key:a.key,type:`readonly_pure_selector_family`},K(e,i).subject.next({type:`state_disposal`,subType:`selector`,token:t,timestamp:Date.now()});break}n.valueMap.delete(r),n.selectorAtoms.delete(r),n.selectorGraph.delete(r),n.moleculeData.delete(a.key,a.subKey),e.logger.info(`🔥`,t.type,r,`deleted`),U(n)&&n.transactionMeta.phase===`building`?n.transactionMeta.update.subEvents.push({type:`state_disposal`,subType:`selector`,token:t,timestamp:Date.now()}):e.on.selectorDisposal.next(t)}}function Jn(e,t){let n=B(e);return n.operation.open?n.operation.prev.get(t.key):n.valueMap.get(t.key)}function Yn(e,t,n){return n.subject.subscribe(`${t.type}:${t.key}`,r=>{e.logger.info(`📢`,t.type,t.key,`root`,n.key,`went`,r.oldValue,`->`,r.newValue);let i=Jn(e,t),a=q(e,t);e.logger.info(`✨`,t.type,t.key,`went`,i,`->`,a),t.subject.next({newValue:a,oldValue:i})})}function Xn(e,t,n,r){function i(n){e.operation.open&&a?.type===`atom`&&ur(a,`tracker:signal`)&&`*`+e.operation.token.key===t.key&&`inboundTracker`in r||r(n)}ln(e,t);let a=K(e,t);e.logger.info(`👀`,a.type,a.key,`Adding subscription "${n}"`);let o=a.type===`writable_pure_selector`||a.type===`readonly_pure_selector`,s=new Map,c=i;if(o){q(e,a);for(let[t,n]of zn(e,a.key))s.set(t,Yn(e,a,n));c=function(t){let n=zn(e,a.key);for(let[e,t]of s)n.get(e)?n.delete(e):(t(),s.delete(e));for(let[t,r]of n)s.set(t,Yn(e,a,r));i(t)}}let l=a.subject.subscribe(n,c);return()=>{e.logger.info(`🙈`,a.type,a.key,`Removing subscription "${n}"`),l();for(let e of s.values())e()}}function Zn(e,t,n,r){let i=K(e,t);e.logger.info(`👀`,`timeline`,t.key,`Adding subscription "${n}"`);let a=i.subject.subscribe(n,r);return()=>{e.logger.info(`🙈`,`timeline`,t.key,`Removing subscription "${n}" from timeline`),a()}}var Qn=class{initializeSignalAtom(e,t){let n=`*${e.key}`;t.atoms.delete(n),t.valueMap.delete(n);let r=e.family?{key:`*${e.family.key}`,subKey:e.family.subKey}:void 0,i=lr(t,{key:n,default:null},r,[`tracker:signal`]);if(t.parent?.valueMap.has(n)){let e=t.parent.valueMap.get(n);t.valueMap.set(n,e)}return i}unsubscribeFromInnerValue;unsubscribeFromState;captureSignalsFromCore(e,t,n){let r=e.key,i=`tracker-from-core:${n.config.name}:${U(n)?n.transactionMeta.update.token.key:`main`}:${r}`,a=e=>{Nn(Mn,n,t,e)},o=J(n,e);this.unsubscribeFromInnerValue=o.subscribe(i,a),this.unsubscribeFromState=Xn(n,e,i,function(e){e.newValue!==e.oldValue&&(this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=e.newValue.subscribe(i,a))}.bind(this))}supplySignalsToCore(e,t,n){let r=e.key,i=`tracker-to-core:${n.config.name}:${U(n)?n.transactionMeta.update.token.key:`main`}:${r}`;Xn(n,t,i,Object.assign(function({newValue:r,oldValue:a}){let o=n.timelineTopics.getRelatedKey(t.key);if(o&&n.timelines.get(o)?.timeTraveling){let t=Zn(n,{key:o,type:`timeline`},i,function(i){t(),X(n,e,e=>(i.event===`redo`&&r?e.do(r):i.event===`undo`&&a&&e.undo(a),e))});return}X(n,e,e=>(e.do(r),e))},{inboundTracker:!0}))}mutableAtomToken;latestSignalToken;[Symbol.dispose];constructor(e,t){let n=B(t),r=this.initializeSignalAtom(e,n);this.mutableAtomToken=e,this.latestSignalToken=r,this.captureSignalsFromCore(e,r,n),this.supplySignalsToCore(e,r,n),n.trackers.set(e.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),n.trackers.delete(e.key)}}};function $n(e,t,n){e.logger.info(`🔨`,`atom`,t.key,`creating in store "${e.config.name}"`);let r=B(e),{key:i}=t,a=r.atoms.get(i),o=`mutable_atom`;if(a?.type===o&&e.config.isProduction===!0)return e.logger.error(`❌`,o,i,`Tried to create atom, but it already exists in the store.`),H(a);let s=new P,c={...t,type:o,install:e=>(e.logger.info(`🛠️`,`atom`,i,`installing in store "${e.config.name}"`),$n(e,t,n)),subject:s};n&&(c.family=n),r.atoms.set(c.key,c);let l=H(c);if(new Qn(l,e),n||Kn(e,{key:`${i}:JSON`,get:({get:e})=>e(l).toJSON(),set:({set:e},n)=>{e(l,t.class.fromJSON(n))}}),t.effects){let n=0,r=[];for(let i of t.effects){let t=i({resetSelf:()=>{On(e,l)},setSelf:t=>{X(e,l,t)},onSet:t=>Xn(e,l,`effect[${n}]`,t),token:l,store:xt(e)});t&&r.push(t),++n}c.cleanup=()=>{for(let e of r)e instanceof Promise?e.then(e=>e?.()):e()}}return e.on.atomCreation.next(l),l}var er=class{trackers=new Map;latestSignalAtoms;mutableAtoms;constructor(e,t){let n=fn(t,{key:`*${e.key}`,default:null},[`mutable`,`updates`]);this.latestSignalAtoms=K(t,n),this.mutableAtoms=e,this.mutableAtoms.subject.subscribe(`store=${t.config.name}::tracker-atom-family`,e=>{let{type:n,token:r}=e;if(r.family){let e=A(r.family.subKey);switch(n){case`state_creation`:this.trackers.set(e,new Qn(r,t));break;case`state_disposal`:{let t=this.trackers.get(e);t&&(t[Symbol.dispose](),this.trackers.delete(e))}}}})}};function tr(e,t,n){let r={key:t.key,type:`mutable_atom_family`},i=e.families.get(t.key);i&&e.config.isProduction===!0&&e.logger.error(`❗`,`mutable_atom_family`,t.key,`Overwriting an existing ${F[i.type]} "${i.key}" in store "${e.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let a=new P,o=n=>{let r=j(n),i={key:t.key,subKey:r},a=`${t.key}(${r})`,o=B(e),s={key:a,class:t.class};return t.effects&&(s.effects=t.effects(n)),$n(o,s,i)},s={...r,create:o,class:t.class,subject:a,install:e=>tr(e,t),internalRoles:n};return e.families.set(t.key,s),hn(e,{key:`${t.key}:JSON`,get:e=>({get:t})=>t(r,e).toJSON(),set:e=>({set:n},i)=>{n(r,e,t.class.fromJSON(i))}},[`mutable`,`json`]),new er(s,e),r}function nr(e,t){let n=B(t),r=`${e.key}:JSON`;return n.families.get(r)}var Z=(e,t)=>t.family?Y(e,K(B(e),{key:`${t.family.key}:JSON`,type:`writable_pure_selector_family`}),A(t.family.subKey)):{type:`writable_pure_selector`,key:`${t.key}:JSON`};function rr(e){let t={type:`atom`,key:`*${e.key}`};return e.family&&(t.family={key:`*${e.family.key}`,subKey:e.family.subKey}),t}function ir(e){return typeof e==`object`&&!!e&&`do`in e&&`undo`in e&&`subscribe`in e&&`READONLY_VIEW`in e&&`toJSON`in e}function Q(e,t,n){let{key:r,subject:i,type:a}=t,o=e.valueMap.get(r);if(o instanceof Xe&&!o.done){let t=o;return n instanceof Promise?(t.use(n),t):(e.valueMap.set(r,n),n)}if(n instanceof Promise){let o=new Xe(n);return e.valueMap.set(r,o),o.then(function(n){if(e.valueMap.get(r)===o){switch(vn(e,t),Q(e,t,n),a){case`atom`:sr(e,t);break;case`readonly_pure_selector`:case`writable_pure_selector`:cr(e,r);break}yn(e),i.next({newValue:n,oldValue:o})}}).catch(n=>{e.logger.error(`💥`,t.type,r,`rejected:`,n)}),o}return e.logger.info(`📝`,t.type,t.key,`writing to cache`,n),e.valueMap.set(r,n),n}function ar(e,t,n){e.logger.info(`📖`,t.type,t.key,`reading cached value`);let r=e.valueMap.get(t.key);if(n===`mut`&&t.type===`mutable_atom`&&U(e)){let n=t,{parent:i}=e;if(e.valueMap.hasOwn(n.key))return r;let a=i.valueMap.get(n.key);e.logger.info(`📃`,`atom`,n.key,`copying`);let o=a.toJSON(),s=n.class.fromJSON(o);e.valueMap.set(n.key,s),new Qn(n,i),r=s}return r}function or(e,t){let n=e.valueMap.get(t);if(n instanceof Xe){let r=e.readonlySelectors.get(t),i=e.writableSelectors.get(t),a=nn(e,r??i);n.use(a);return}e.operation.open&&e.operation.prev.set(t,n),e.valueMap.delete(t),e.logger.info(`🗑`,`state`,t,`evicted`)}function sr(e,t){let n=B(e),{key:r,type:i}=t,a=n.selectorAtoms.getRelatedKeys(r);if(n.logger.info(`🧹`,i,r,a?`evicting ${a.size} states downstream:`:`no downstream states`,a??`to evict`),a){n.operation.open&&n.logger.info(`🧹`,i,r,`[ ${[...n.operation.done].join(`, `)} ] already done`);for(let e of a)bn(n,e)||(or(n,e),xn(n,e))}}function cr(e,t){let n=B(e),r=n.selectorGraph.getRelationEntries({upstreamSelectorKey:t}).filter(([e,{source:n}])=>n===t);for(let[t]of r)bn(n,t)||(or(n,t),xn(n,t),cr(e,t))}function lr(e,t,n,r){let i=`atom`,{key:a}=t;e.logger.info(`🔨`,i,a,`is being created`);let o=B(e),s=o.atoms.get(a);if(s?.type===i&&e.config.isProduction===!0)return e.logger.error(`❌`,`atom`,a,`Tried to create atom, but it already exists in the store.`),H(s);let c=new P,l={...t,type:i,install:e=>(e.logger.info(`🛠️`,i,a,`installing in store "${e.config.name}"`),lr(e,t,n)),subject:c};n&&(l.family=n),r&&(l.internalRoles=r),o.atoms.set(a,l);let u=H(l);if(t.effects){let n=0,r=[];for(let i of t.effects){let t=i({resetSelf:()=>{On(e,u)},setSelf:t=>{X(e,u,t)},onSet:t=>Xn(e,u,`effect[${n}]`,t),token:u,store:xt(e)});t&&r.push(t),++n}l.cleanup=()=>{for(let e of r)e instanceof Promise?e.then(e=>e?.()):e()}}return e.on.atomCreation.next(u),u}function ur(e,t){return`internalRoles`in e?e.internalRoles.includes(t):!1}function dr(e,t){let n=B(e),{key:r,family:i}=t,a=K(n,t);if(!i)e.logger.error(`❌`,`atom`,r,`Standalone atoms cannot be disposed.`);else{a.cleanup?.();let o=e.valueMap.get(a.key),s=K(e,rn(e,t)).subject,c={type:`state_disposal`,subType:`atom`,token:t,value:o,timestamp:Date.now()};s.next(c);let l=U(n);if(n.atoms.delete(r),n.valueMap.delete(r),n.selectorAtoms.delete(r),n.atomsThatAreDefault.delete(r),n.moleculeData.delete(i.key,i.subKey),e.timelineTopics.delete(r),t.type===`mutable_atom`&&(dr(e,rr(t)),e.trackers.delete(r)),e.logger.info(`🔥`,`atom`,r,`deleted`),l&&n.transactionMeta.phase===`building`){let e=n.transactionMeta.update.subEvents.at(-1),t=e?.type===`molecule_disposal`&&e.values.some(([e])=>e===a.family?.key),r=ur(a,`tracker:signal`);!t&&!r&&n.transactionMeta.update.subEvents.push(c)}else e.on.atomDisposal.next(t)}}var fr=ce(G.STORE);function pr({children:e,store:t=G.STORE}){return fr.Provider({value:t,children:e})}function mr(e,...t){let n;if(t.length===2){let r=t[0],i=t[1];n=Y(e,r,i)}else n=t[0];return n}function hr(...e){let t=le(fr),n=mr(t,...e);return e=>{X(t,n,e)}}function gr(e,t){let[n,r]=te(t(),{equals:!1});return ne(()=>{let n=()=>r(()=>t()),i=e(n);n(),re(()=>{i()})}),()=>(n(),t())}function $(...e){let t=le(fr),n=mr(t,...e),r=bt();return gr(e=>Xn(t,n,`use-o:${r}`,e),()=>J(t,n))}var _r=_t([`set`,`truncate`,`extend`,`pop`,`push`,`shift`,`unshift`,`copyWithin`,`fill`,`splice`,`reverse`,`sort`]),vr=class e extends Array{mode=`record`;subject=new P;READONLY_VIEW=this;constructor(...e){return super(...e),new Proxy(this,{set:(e,t,n,r)=>{if(typeof t==`string`&&!Number.isNaN(Number.parseInt(t,10))){let r=Number(t),i;return this.mode===`record`&&(i=e[r]),e[r]=n,i?this.emit({type:`set`,index:r,next:n,prev:i}):this.mode===`record`&&this.emit({type:`set`,index:r,next:n}),!0}if(t===`length`){if(this.mode===`record`){let t=e.length;if(t===n)return!0;if(t>n){let t=e.slice(n);e.length=n,this.emit({type:`truncate`,length:n,items:t})}else e.length=n,this.emit({type:`extend`,next:n,prev:t})}else e.length=n;return!0}return Reflect.set(e,t,n,r)}})}toJSON(){return[...this]}static fromJSON(t){return new e(...t)}push(...e){let t;return this.mode===`record`?(this.mode=`playback`,t=super.push(...e),this.mode=`record`,this.emit({type:`push`,items:e})):t=super.push(...e),t}pop(){let e;return this.mode===`record`?(this.mode=`playback`,e=super.pop(),e===void 0?this.emit({type:`pop`}):this.emit({type:`pop`,value:e}),this.mode=`record`):e=super.pop(),e}shift(){let e;return this.mode===`record`?(this.mode=`playback`,e=super.shift(),e===void 0?this.emit({type:`shift`}):this.emit({type:`shift`,value:e}),this.mode=`record`):e=super.shift(),e}unshift(...e){let t;return this.mode===`record`?(this.mode=`playback`,t=super.unshift(...e),this.emit({type:`unshift`,items:e}),this.mode=`record`):t=super.unshift(...e),t}reverse(){return super.reverse(),this.mode===`record`&&this.emit({type:`reverse`}),this}fill(e,t,n){if(this.mode===`record`){this.mode=`playback`;let r=this.slice(t,n);super.fill(e,t,n),t===void 0?this.emit({type:`fill`,value:e,prev:r}):n===void 0?this.emit({type:`fill`,value:e,start:t,prev:r}):this.emit({type:`fill`,value:e,start:t,end:n,prev:r}),this.mode=`record`}else super.fill(e,t,n);return this}sort(e){if(this.mode===`record`){this.mode=`playback`;let t=[...this];super.sort(e);let n=[...this];this.emit({type:`sort`,next:n,prev:t}),this.mode=`record`}return this}splice(...e){let[t,n,...r]=e,i=this.mode;i===`record`&&(this.mode=`playback`);let a=super.splice(...e);return i===`record`&&(this.mode=`record`),n===void 0?this.emit({type:`splice`,start:t,items:r,deleted:a,deleteCount:a.length}):this.emit({type:`splice`,start:t,items:r,deleted:a,deleteCount:n}),a}copyWithin(e,t,n){let r=this.mode,i;return r===`record`&&(i=this.slice(e),this.mode=`playback`),super.copyWithin(e,t,n),r===`record`&&(this.mode=`record`),i&&(n===void 0?this.emit({type:`copyWithin`,prev:i,target:e,start:t}):this.emit({type:`copyWithin`,prev:i,target:e,start:t,end:n})),this}subscribe(e,t){return this.subject.subscribe(e,t)}emit(t){this.subject.next(e.packUpdate(t))}doStep(e){switch(e.type){case`copyWithin`:this.copyWithin(e.target,e.start,e.end);break;case`extend`:this.length=e.next;break;case`fill`:this.fill(e.value,e.start,e.end);break;case`pop`:this.pop();break;case`push`:this.push(...e.items);break;case`reverse`:this.reverse();break;case`shift`:this.shift();break;case`sort`:for(let t=0;t<e.next.length;t++)this[t]=e.next[t];this.length=e.next.length;break;case`splice`:this.splice(e.start,e.deleteCount,...e.items);break;case`truncate`:this.length=e.length;break;case`set`:this[e.index]=e.next;break;case`unshift`:this.unshift(...e.items);break}}do(t){this.mode=`playback`;let n=e.unpackUpdate(t);return this.doStep(n),this.mode=`record`,null}undoStep(e){switch(e.type){case`copyWithin`:for(let t=0;t<e.prev.length;t++)this[t+e.target]=e.prev[t];break;case`extend`:this.length=e.prev;break;case`fill`:{let t=e.start??0;for(let n=0;n<e.prev.length;n++)this[n+t]=e.prev[n]}break;case`pop`:e.value&&this.push(e.value);break;case`push`:{let t=e.items.length-1;for(;t>=0;)this.pop(),--t}break;case`reverse`:this.reverse();break;case`shift`:e.value&&this.unshift(e.value);break;case`sort`:for(let t=0;t<e.prev.length;t++)this[t]=e.prev[t];this.length=e.prev.length;break;case`set`:if(e.prev)this[e.index]=e.prev;else{delete this[e.index];let t=this.findIndex((e,t)=>!Object.hasOwn(this,t));t!==-1&&(this.length=t)}break;case`splice`:this.splice(e.start,e.items.length,...e.deleted);break;case`truncate`:this.push(...e.items);break;case`unshift`:{let t=e.items.length-1;for(;t>=0;)this.shift(),--t}break}}undo(t){this.mode=`playback`;let n=e.unpackUpdate(t);return this.undoStep(n),this.mode=`record`,null}static packUpdate(e){let t=_r[e.type]+``;switch(e.type){case`set`:return t+=e.index+``+R(e.next),e.prev!==void 0&&(t+=``+R(e.prev)),t;case`truncate`:return t+e.length+``+e.items.map(R).join(``);case`extend`:return t+e.next+``+e.prev;case`pop`:case`shift`:return e.value!==void 0&&(t+=R(e.value)),t;case`push`:case`unshift`:return t+e.items.map(R).join(``);case`copyWithin`:return t+=e.target+``+e.start,e.end!==void 0&&(t+=``+e.end),t+=``+e.prev.map(R).join(``),t;case`fill`:return t+=R(e.value),e.start!==void 0&&(t+=``+e.start),e.end!==void 0&&(t+=``+e.end),t+=``+e.prev.map(R).join(``),t;case`splice`:return t+e.start+``+e.deleteCount+``+e.items.map(R).join(``)+``+e.deleted.map(R).join(``);case`reverse`:return t;case`sort`:return t+e.next.map(R).join(``)+``+e.prev.map(R).join(``)}}static unpackUpdate(e){let[t,n]=e.split(``),r=_r[t];switch(r){case`set`:{let[e,t,i]=n.split(``),a=+e,o=z(t);return i===void 0?{type:r,index:a,next:o}:{type:r,index:a,next:o,prev:z(i)}}case`truncate`:{let[e,...t]=n.split(``);return{type:r,length:+e,items:t.map(z)}}case`extend`:{let[e,t]=n.split(``);return{type:r,next:+e,prev:+t}}case`pop`:case`shift`:return n===``?{type:r}:{type:r,value:z(n)};case`push`:case`unshift`:return{type:r,items:n.split(``).map(z)};case`copyWithin`:{let[e,t]=n.split(``),i=t?t.split(``).map(z):[],[a,o,s]=e.split(``),c=+a,l=+o;return s===void 0?{type:r,target:c,start:l,prev:i}:{type:r,target:c,start:l,prev:i,end:+s}}case`fill`:{let[e,t]=n.split(``),i=t?t.split(``).map(z):[],[a,o,s]=e.split(``),c=z(a);if(o===void 0&&s===void 0)return{type:r,value:c,prev:i};let l=+o;return s===void 0?{type:r,value:c,prev:i,start:l}:{type:r,value:c,prev:i,start:l,end:+s}}case`splice`:{let[e,t,i,a]=n.split(``);return{type:r,start:+e,deleteCount:+t,items:i?i.split(``).map(z):[],deleted:a?a.split(``).map(z):[]}}case`reverse`:return{type:r};case`sort`:{let[e,t]=n.split(``);return{type:r,next:e?e.split(``).map(z):[],prev:t?t.split(``).map(z):[]}}}}},yr=class e{simplifyParams(...t){let n,r;if(t[0]instanceof e)[n,r]=t[0].simplify();else{if([n,r=1n]=t,r===0n)return{error:Error(),numerator:n};r<0n&&(n=-n,r=-r)}return[n,r]}constructor(e,t=1n){this.fractionalValues=new Map,e&&t&&this.add(e,t)}add(...e){if(typeof e[0]==`bigint`){let[t,n=1n]=e;if(n===0n)return console.error(`Attempted to add (${t} / ${n}) to a rational.`),this;n<0n&&(t=-t,n=-n);let r=t,i=this.fractionalValues.get(n);i&&(r=i+t),this.fractionalValues.set(n,r)}else for(let[t,n]of e[0].entries())this.add(n,t);return this}sub(...e){if(typeof e[0]==`bigint`){let[t,n=1n]=e;this.add(-t,n)}else for(let[t,n]of e[0].entries())this.add(-n,t);return this}mul(...e){let t=this.simplifyParams(...e);if(`error`in t)return t.error.message=`Attempted to multiply by (${t.numerator} / 0)`,console.error(t.error),this;let[n,r]=t,i=[...this.entries()];this.fractionalValues.clear();for(let[e,t]of i)this.fractionalValues.set(e*r,t*n);return this}div(...e){let t=this.simplifyParams(...e);if(`error`in t)return t.error.message=`Attempted to divide by (${t.numerator} / 0)`,console.error(t.error),this;let[n,r]=t;return this.mul(r,n),this}entries(){return this.fractionalValues.entries()}consolidate(){let e=new br;for(let t of this.entries())for(let n of t)n!==0n&&n!==1n&&(e=e.and(n));let t=e.compute(),n=0n;for(let[e,r]of this.fractionalValues.entries())n+=r*t/e;return t<0n?[-n,-t]:[n,t]}simplify(){let[e,t]=this.consolidate();if(e===0n)return[0n,1n];let n=new br(t).and(e).compute();return[n/t,n/e]}isGreaterThan(...e){let t=this.simplify(),n=this.simplifyParams(...e);return`error`in n?(n.error.message=`Attempted to compare (${n.numerator} / 0) to (${t[0]} / ${t[1]})`,console.error(n.error),!1):t[0]*n[1]>t[1]*n[0]}},br=class{constructor(e){this.factors=new Map,e&&xr(e,this.factors)}and(e){let t=xr(e);for(let[e,n]of t){let t=this.factors.get(e);(!t||t<n)&&this.factors.set(e,n)}return this}compute(){let e=1n;for(let[t,n]of this.factors)e*=t**n;return e}};function xr(e,t=new Map){let n=2n;for(;n<=e;){if(e%n===0n){let r=t.get(n)??0n;t.set(n,r+1n),xr(e/n,t);break}n+=1n}return t.size===0&&t.set(e,1n),t}var Sr={class:`_class_r58xi_1`},Cr=D(`<app><header><h1>Rationality Playground</h1></header><main><new-rational><button type=button>Add`,!0,!1,!1),wr=D(`<rational-breakdown><fraction-list><infix-buttons><button type=button>−</button><button type=button>+</button><button type=button>÷</button><button type=button>×</button></infix-buttons></fraction-list><equals>=</equals><equals></equals><quotient><quotient-bits></quotient-bits><number>`,!0,!1,!1),Tr=D(`<plus>+`),Er=D(`<bit>`),Dr=D(`<fraction><numerator></numerator><solidus></solidus><denominator>`),Or=D(`<fieldset><input type=number placeholder=1><solidus></solidus><input type=number placeholder=1>`),kr=()=>Math.random().toString(36).slice(2),Ar=Ze({key:`newRationalNumerator`,default:void 0}),jr=Ze({key:`newRationalDenominator`,default:void 0}),Mr=$e({key:`newNumerator`,default:void 0}),Nr=$e({key:`newDenominator`,default:void 0}),Pr=Qe({key:`rationalList`,class:vr}),Fr=$e({key:`rational`,default:()=>new yr(0n,1n)}),Ir=lt({key:`simplified`,get:e=>({get:t})=>{let[n,r]=t(Fr,e).simplify();return[n,r]}}),Lr=lt({key:`float`,get:e=>({get:t})=>{let[n,r]=t(Ir,e);return Number(n)/Number(r)}}),Rr=lt({key:`numberBits`,get:e=>({get:t})=>{let[n,r]=t(Ir,e),i=Number(n)/Number(r),a=new ArrayBuffer(8);new DataView(a).setFloat64(0,i,!1);let o=new Uint8Array(a);return[...Array.from(o).map(e=>e.toString(2).padStart(8,`0`)).join(``)].map(e=>e===`1`?`1`:`0`)}}),zr=lt({key:`isFloatPrecise`,get:e=>({get:t})=>{let[,n]=t(Ir,e);return n===0n?!1:n>0n&&(n&n-1n)==0n}}),Br=lt({key:`approximateValue`,get:e=>({get:t})=>{let n=t(Lr,e);return Number.isFinite(n)?Number(n.toPrecision(5)).toString():n.toString()}}),Vr=dt({key:`combineIntoRationalTx`,do:({get:e,set:t,reset:n},r,i)=>{let a=e(Mr,r)??1n,o=e(Nr,r)??1n;t(Fr,r,e(Fr,r)[i](a,o)),n(Mr,r),n(Nr,r)}});function Hr(){let e=$(Pr);return(()=>{var t=Cr(),n=t.firstChild.nextSibling,r=n.firstChild,i=r.firstChild;return O(n,E(Pe,{get each(){return e()},children:e=>E(Ur,{key:e})}),r),r._$owner=ie(),O(r,E(Kr,{numeratorAtom:Ar,denominatorAtom:jr}),i),i.$$click=()=>{let e=`rat::${kr()}`;I(Vr)(e,`add`),ut(Fr,e,new yr(tt(Ar)??1n,tt(jr)??1n)),ut(Pr,t=>(t.push(e),t)),ct(Ar),ct(jr)},b(()=>He(t,Sr.class)),t})()}function Ur(e){let t=$(Fr,e.key),n=$(Ir,e.key),r=$(Lr,e.key),i=$(zr,e.key),a=$(Br,e.key),o=$(Rr,e.key);return(()=>{var s=wr(),c=s.firstChild,l=c.firstChild,u=l.firstChild,d=u.nextSibling,f=d.nextSibling,p=f.nextSibling,m=c.nextSibling.nextSibling,h=m.nextSibling.firstChild,g=h.nextSibling;return s._$owner=ie(),c._$owner=ie(),O(c,E(Pe,{get each(){return[...t().entries()]},children:([e,t],n)=>[E(Fe,{get when(){return n()!==0},get children(){return Tr()}}),E(Wr,{numerator:t,denominator:e})]}),l),l._$owner=ie(),u.$$click=()=>{I(Vr)(e.key,`sub`)},d.$$click=()=>{I(Vr)(e.key,`add`)},f.$$click=()=>{I(Vr)(e.key,`div`)},p.$$click=()=>{I(Vr)(e.key,`mul`)},O(c,E(Gr,{get key(){return e.key}}),null),O(s,E(Wr,{get numerator(){return n()[0]},get denominator(){return n()[1]}}),m),O(m,()=>i()?`=`:`≈`),h._$owner=ie(),O(h,E(Pe,{get each(){return o()},children:e=>(()=>{var t=Er();return Ve(t,`data-css`,e===`1`?`one`:void 0),t})()})),O(g,(()=>{var e=Ie(()=>!!i());return()=>e()?r():a()})()),s})()}function Wr(e){return(()=>{var t=Dr(),n=t.firstChild,r=n.nextSibling.nextSibling;return O(n,()=>Number(e.numerator)),O(r,()=>Number(e.denominator)),b(t=>{var i=e.numerator===1n?`one`:void 0,a=e.denominator===1n?`one`:void 0;return i!==t.e&&Ve(n,`data-css`,t.e=i),a!==t.t&&Ve(r,`data-css`,t.t=a),t},{e:void 0,t:void 0}),t})()}function Gr({key:e}){return E(Kr,{numeratorAtom:et(Mr,e),denominatorAtom:et(Nr,e)})}function Kr({numeratorAtom:e,denominatorAtom:t}){let n=$(e),r=hr(e),i=$(t),a=hr(t);return(()=>{var e=Or(),t=e.firstChild,o=t.nextSibling.nextSibling;return t.$$input=e=>{r(BigInt(e.currentTarget.value))},o.$$input=e=>{a(BigInt(e.currentTarget.value))},b(()=>t.value=n()?.toString()),b(()=>o.value=i()?.toString()),e})()}Be([`click`,`input`]),ze(()=>E(pr,{get children(){return E(Hr,{})}}),document.getElementById(`app`));
package/dist/index.html CHANGED
@@ -7,7 +7,7 @@
7
7
  content="width=device-width, initial-scale=1.0"
8
8
  />
9
9
  <title>Rationality Playground</title>
10
- <script type="module" crossorigin src="/assets/index-CE_m9LAi.js"></script>
10
+ <script type="module" crossorigin src="/assets/index-3BMyf2EX.js"></script>
11
11
  <link rel="stylesheet" crossorigin href="/assets/index-DMbEQKRi.css">
12
12
  </head>
13
13
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atom.io/template-solid-lossless-numbers",
3
- "version": "0.0.19",
3
+ "version": "0.0.21",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -13,7 +13,7 @@
13
13
  "dependencies": {
14
14
  "rationality": "0.1.0",
15
15
  "solid-js": "1.9.13",
16
- "atom.io": "0.48.0"
16
+ "atom.io": "0.49.1"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@types/node": "25.9.3",
@@ -1,4 +0,0 @@
1
- (function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e={context:void 0,registry:void 0,effects:void 0,done:!1,getContextId(){return t(this.context.count)},getNextContextId(){return t(this.context.count++)}};function t(t){let n=String(t),r=n.length-1;return e.context.id+(r?String.fromCharCode(96+r):``)+n}function n(t){e.context=t}function r(){return{...e.context,id:e.getNextContextId(),count:0}}var i=(e,t)=>e===t,a=Symbol(`solid-track`),o={equals:i},s=null,c=ve,l=1,u=2,d={owned:null,cleanups:null,context:null,owner:null},f=null,p=null,m=null,h=null,g=null,_=null,v=null,y=0;function ee(e,t){let n=g,r=f,i=e.length===0,a=t===void 0?r:t,o=i?d:{owned:null,cleanups:null,context:a?a.context:null,owner:a},s=i?e:()=>e(()=>S(()=>T(o)));f=o,g=null;try{return w(s,!0)}finally{g=n,f=r}}function te(e,t){t=t?Object.assign({},o,t):o;let n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0};return[de.bind(n),e=>(typeof e==`function`&&(e=p&&p.running&&p.sources.has(n)?e(n.tValue):e(n.value)),fe(n,e))]}function b(e,t,n){let r=he(e,t,!1,l);m&&p&&p.running?_.push(r):pe(r)}function ne(e,t,n){c=be;let r=he(e,t,!1,l),i=ue&&ce(ue);i&&(r.suspense=i),(!n||!n.render)&&(r.user=!0),v?v.push(r):pe(r)}function x(e,t,n){n=n?Object.assign({},o,n):o;let r=he(e,t,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,m&&p&&p.running?(r.tState=l,_.push(r)):pe(r),de.bind(r)}function S(e){if(!h&&g===null)return e();let t=g;g=null;try{return h?h.untrack(e):e()}finally{g=t}}function re(e){return f===null||(f.cleanups===null?f.cleanups=[e]:f.cleanups.push(e)),e}function C(){return f}function ie(e){if(p&&p.running)return e(),p.done;let t=g,n=f;return Promise.resolve().then(()=>{g=t,f=n;let r;return(m||ue)&&(r=p||={sources:new Set,effects:[],promises:new Set,disposed:new Set,queue:new Set,running:!0},r.done||=new Promise(e=>r.resolve=e),r.running=!0),w(e,!1),g=f=null,r?r.done:void 0})}var[ae,oe]=te(!1);function se(e,t){let n=Symbol(`context`);return{id:n,Provider:Oe(n),defaultValue:e}}function ce(e){let t;return f&&f.context&&(t=f.context[e.id])!==void 0?t:e.defaultValue}function le(e){let t=x(e),n=x(()=>De(t()));return n.toArray=()=>{let e=n();return Array.isArray(e)?e:e==null?[]:[e]},n}var ue;function de(){let e=p&&p.running;if(this.sources&&(e?this.tState:this.state))if((e?this.tState:this.state)===l)pe(this);else{let e=_;_=null,w(()=>xe(this),!1),_=e}if(g){let e=this.observers;if(!e||e[e.length-1]!==g){let t=e?e.length:0;g.sources?(g.sources.push(this),g.sourceSlots.push(t)):(g.sources=[this],g.sourceSlots=[t]),e?(e.push(g),this.observerSlots.push(g.sources.length-1)):(this.observers=[g],this.observerSlots=[g.sources.length-1])}}return e&&p.sources.has(this)?this.tValue:this.value}function fe(e,t,n){let r=p&&p.running&&p.sources.has(e)?e.tValue:e.value;if(!e.comparator||!e.comparator(r,t)){if(p){let r=p.running;(r||!n&&p.sources.has(e))&&(p.sources.add(e),e.tValue=t),r||(e.value=t)}else e.value=t;e.observers&&e.observers.length&&w(()=>{for(let t=0;t<e.observers.length;t+=1){let n=e.observers[t],r=p&&p.running;r&&p.disposed.has(n)||((r?!n.tState:!n.state)&&(n.pure?_.push(n):v.push(n),n.observers&&Se(n)),r?n.tState=l:n.state=l)}if(_.length>1e6)throw _=[],Error()},!1)}return t}function pe(e){if(!e.fn)return;T(e);let t=y;me(e,p&&p.running&&p.sources.has(e)?e.tValue:e.value,t),p&&!p.running&&p.sources.has(e)&&queueMicrotask(()=>{w(()=>{p&&(p.running=!0),g=f=e,me(e,e.tValue,t),g=f=null},!1)})}function me(e,t,n){let r,i=f,a=g;g=f=e;try{r=e.fn(t)}catch(t){return e.pure&&(p&&p.running?(e.tState=l,e.tOwned&&e.tOwned.forEach(T),e.tOwned=void 0):(e.state=l,e.owned&&e.owned.forEach(T),e.owned=null)),e.updatedAt=n+1,Ee(t)}finally{g=a,f=i}(!e.updatedAt||e.updatedAt<=n)&&(e.updatedAt!=null&&`observers`in e?fe(e,r,!0):p&&p.running&&e.pure?(p.sources.has(e)||(e.value=r),p.sources.add(e),e.tValue=r):e.value=r,e.updatedAt=n)}function he(e,t,n,r=l,i){let a={fn:e,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:f,context:f?f.context:null,pure:n};if(p&&p.running&&(a.state=0,a.tState=r),f===null||f!==d&&(p&&p.running&&f.pure?f.tOwned?f.tOwned.push(a):f.tOwned=[a]:f.owned?f.owned.push(a):f.owned=[a]),h&&a.fn){let e=a.fn,[t,n]=te(void 0,{equals:!1}),r=h.factory(e,n);re(()=>r.dispose());let i,o=()=>ie(n).then(()=>{i&&=(i.dispose(),void 0)});a.fn=n=>(t(),p&&p.running?(i||=h.factory(e,o),i.track(n)):r.track(n))}return a}function ge(e){let t=p&&p.running;if((t?e.tState:e.state)===0)return;if((t?e.tState:e.state)===u)return xe(e);if(e.suspense&&S(e.suspense.inFallback))return e.suspense.effects.push(e);let n=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<y);){if(t&&p.disposed.has(e))return;(t?e.tState:e.state)&&n.push(e)}for(let r=n.length-1;r>=0;r--){if(e=n[r],t){let t=e,i=n[r+1];for(;(t=t.owner)&&t!==i;)if(p.disposed.has(t))return}if((t?e.tState:e.state)===l)pe(e);else if((t?e.tState:e.state)===u){let t=_;_=null,w(()=>xe(e,n[0]),!1),_=t}}}function w(e,t){if(_)return e();let n=!1;t||(_=[]),v?n=!0:v=[],y++;try{let t=e();return _e(n),t}catch(e){n||(v=null),_=null,Ee(e)}}function _e(e){if(_&&=(m&&p&&p.running?ye(_):ve(_),null),e)return;let t;if(p){if(!p.promises.size&&!p.queue.size){let e=p.sources,n=p.disposed;v.push.apply(v,p.effects),t=p.resolve;for(let e of v)`tState`in e&&(e.state=e.tState),delete e.tState;p=null,w(()=>{for(let e of n)T(e);for(let t of e){if(t.value=t.tValue,t.owned)for(let e=0,n=t.owned.length;e<n;e++)T(t.owned[e]);t.tOwned&&(t.owned=t.tOwned),delete t.tValue,delete t.tOwned,t.tState=0}oe(!1)},!1)}else if(p.running){p.running=!1,p.effects.push.apply(p.effects,v),v=null,oe(!0);return}}let n=v;v=null,n.length&&w(()=>c(n),!1),t&&t()}function ve(e){for(let t=0;t<e.length;t++)ge(e[t])}function ye(e){for(let t=0;t<e.length;t++){let n=e[t],r=p.queue;r.has(n)||(r.add(n),m(()=>{r.delete(n),w(()=>{p.running=!0,ge(n)},!1),p&&(p.running=!1)}))}}function be(t){let r,i=0;for(r=0;r<t.length;r++){let e=t[r];e.user?t[i++]=e:ge(e)}if(e.context){if(e.count){e.effects||=[],e.effects.push(...t.slice(0,i));return}n()}for(e.effects&&(e.done||!e.count)&&(t=[...e.effects,...t],i+=e.effects.length,delete e.effects),r=0;r<i;r++)ge(t[r])}function xe(e,t){let n=p&&p.running;n?e.tState=0:e.state=0;for(let r=0;r<e.sources.length;r+=1){let i=e.sources[r];if(i.sources){let e=n?i.tState:i.state;e===l?i!==t&&(!i.updatedAt||i.updatedAt<y)&&ge(i):e===u&&xe(i,t)}}}function Se(e){let t=p&&p.running;for(let n=0;n<e.observers.length;n+=1){let r=e.observers[n];(t?!r.tState:!r.state)&&(t?r.tState=u:r.state=u,r.pure?_.push(r):v.push(r),r.observers&&Se(r))}}function T(e){let t;if(e.sources)for(;e.sources.length;){let t=e.sources.pop(),n=e.sourceSlots.pop(),r=t.observers;if(r&&r.length){let e=r.pop(),i=t.observerSlots.pop();n<r.length&&(e.sourceSlots[i]=n,r[n]=e,t.observerSlots[n]=i)}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)T(e.tOwned[t]);delete e.tOwned}if(p&&p.running&&e.pure)Ce(e,!0);else if(e.owned){for(t=e.owned.length-1;t>=0;t--)T(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}p&&p.running?e.tState=0:e.state=0}function Ce(e,t){if(t||(e.tState=0,p.disposed.add(e)),e.owned)for(let t=0;t<e.owned.length;t++)Ce(e.owned[t])}function we(e){return e instanceof Error?e:Error(typeof e==`string`?e:`Unknown error`,{cause:e})}function Te(e,t,n){try{for(let n of t)n(e)}catch(e){Ee(e,n&&n.owner||null)}}function Ee(e,t=f){let n=s&&t&&t.context&&t.context[s],r=we(e);if(!n)throw r;v?v.push({fn(){Te(r,n,t)},state:l}):Te(r,n,t)}function De(e){if(typeof e==`function`&&!e.length)return De(e());if(Array.isArray(e)){let t=[];for(let n=0;n<e.length;n++){let r=De(e[n]);if(Array.isArray(r))if(r.length<32768)t.push.apply(t,r);else for(let e=0;e<r.length;e++)t.push(r[e]);else t.push(r)}return t}return e}function Oe(e,t){return function(t){let n;return b(()=>n=S(()=>(f.context={...f.context,[e]:t.value},le(()=>t.children))),void 0),n}}var ke=Symbol(`fallback`);function Ae(e){for(let t=0;t<e.length;t++)e[t]()}function je(e,t,n={}){let r=[],i=[],o=[],s=0,c=t.length>1?[]:null;return re(()=>Ae(o)),()=>{let l=e()||[],u=l.length,d,f;return l[a],S(()=>{let e,t,a,m,h,g,_,v,y;if(u===0)s!==0&&(Ae(o),o=[],r=[],i=[],s=0,c&&=[]),n.fallback&&(r=[ke],i[0]=ee(e=>(o[0]=e,n.fallback())),s=1);else if(s===0){for(i=Array(u),f=0;f<u;f++)r[f]=l[f],i[f]=ee(p);s=u}else{for(a=Array(u),m=Array(u),c&&(h=Array(u)),g=0,_=Math.min(s,u);g<_&&r[g]===l[g];g++);for(_=s-1,v=u-1;_>=g&&v>=g&&r[_]===l[v];_--,v--)a[v]=i[_],m[v]=o[_],c&&(h[v]=c[_]);for(e=new Map,t=Array(v+1),f=v;f>=g;f--)y=l[f],d=e.get(y),t[f]=d===void 0?-1:d,e.set(y,f);for(d=g;d<=_;d++)y=r[d],f=e.get(y),f!==void 0&&f!==-1?(a[f]=i[d],m[f]=o[d],c&&(h[f]=c[d]),f=t[f],e.set(y,f)):o[d]();for(f=g;f<u;f++)f in a?(i[f]=a[f],o[f]=m[f],c&&(c[f]=h[f],c[f](f))):i[f]=ee(p);i=i.slice(0,s=u),r=l.slice(0)}return i});function p(e){if(o[f]=e,c){let[e,n]=te(f);return c[f]=n,t(l[f],e)}return t(l[f])}}}var Me=!1;function E(t,i){if(Me&&e.context){let a=e.context;n(r());let o=S(()=>t(i||{}));return n(a),o}return S(()=>t(i||{}))}var Ne=e=>`Stale read from <${e}>.`;function Pe(e){let t=`fallback`in e&&{fallback:()=>e.fallback};return x(je(()=>e.each,e.children,t||void 0))}function Fe(e){let t=e.keyed,n=x(()=>e.when,void 0,void 0),r=t?n:x(n,void 0,{equals:(e,t)=>!e==!t});return x(()=>{let i=r();if(i){let a=e.children;return typeof a==`function`&&a.length>0?S(()=>a(t?i:()=>{if(!S(r))throw Ne(`Show`);return n()})):a}return e.fallback},void 0,void 0)}var Ie=e=>x(()=>e());function Le(e,t,n){let r=n.length,i=t.length,a=r,o=0,s=0,c=t[i-1].nextSibling,l=null;for(;o<i||s<a;){if(t[o]===n[s]){o++,s++;continue}for(;t[i-1]===n[a-1];)i--,a--;if(i===o){let t=a<r?s?n[s-1].nextSibling:n[a-s]:c;for(;s<a;)e.insertBefore(n[s++],t)}else if(a===s)for(;o<i;)(!l||!l.has(t[o]))&&t[o].remove(),o++;else if(t[o]===n[a-1]&&n[s]===t[i-1]){let r=t[--i].nextSibling;e.insertBefore(n[s++],t[o++].nextSibling),e.insertBefore(n[--a],r),t[i]=n[a]}else{if(!l){l=new Map;let e=s;for(;e<a;)l.set(n[e],e++)}let r=l.get(t[o]);if(r!=null)if(s<r&&r<a){let c=o,u=1,d;for(;++c<i&&c<a&&!((d=l.get(t[c]))==null||d!==r+u);)u++;if(u>r-s){let i=t[o];for(;s<r;)e.insertBefore(n[s++],i)}else e.replaceChild(n[s++],t[o++])}else o++;else t[o++].remove()}}}var Re=`_$DX_DELEGATE`;function ze(e,t,n,r={}){let i;return ee(r=>{i=r,t===document?e():O(t,e(),t.firstChild?null:void 0,n)},r.owner),()=>{i(),t.textContent=``}}function D(e,t,n,r){let i,a=()=>{let t=r?document.createElementNS(`http://www.w3.org/1998/Math/MathML`,`template`):document.createElement(`template`);return t.innerHTML=e,n?t.content.firstChild.firstChild:r?t.firstChild:t.content.firstChild},o=t?()=>S(()=>document.importNode(i||=a(),!0)):()=>(i||=a()).cloneNode(!0);return o.cloneNode=o,o}function Be(e,t=window.document){let n=t[Re]||(t[Re]=new Set);for(let r=0,i=e.length;r<i;r++){let i=e[r];n.has(i)||(n.add(i),t.addEventListener(i,We))}}function Ve(e,t,n){Ue(e)||(n==null?e.removeAttribute(t):e.setAttribute(t,n))}function He(e,t){Ue(e)||(t==null?e.removeAttribute(`class`):e.className=t)}function O(e,t,n,r){if(n!==void 0&&!r&&(r=[]),typeof t!=`function`)return Ge(e,t,r,n);b(r=>Ge(e,t(),r,n),r)}function Ue(t){return!!e.context&&!e.done&&(!t||t.isConnected)}function We(t){if(e.registry&&e.events&&e.events.find(([e,n])=>n===t))return;let n=t.target,r=`$$${t.type}`,i=t.target,a=t.currentTarget,o=e=>Object.defineProperty(t,"target",{configurable:!0,value:e}),s=()=>{let e=n[r];if(e&&!n.disabled){let i=n[`${r}Data`];if(i===void 0?e.call(n,t):e.call(n,i,t),t.cancelBubble)return}return n.host&&typeof n.host!=`string`&&!n.host._$host&&n.contains(t.target)&&o(n.host),!0},c=()=>{for(;s()&&(n=n._$host||n.parentNode||n.host););};if(Object.defineProperty(t,"currentTarget",{configurable:!0,get(){return n||document}}),e.registry&&!e.done&&(e.done=_$HY.done=!0),t.composedPath){let e=t.composedPath();o(e[0]);for(let t=0;t<e.length-2&&(n=e[t],s());t++){if(n._$host){n=n._$host,c();break}if(n.parentNode===a)break}}else c();o(i)}function Ge(e,t,n,r,i){let a=Ue(e);if(a){!n&&(n=[...e.childNodes]);let t=[];for(let e=0;e<n.length;e++){let r=n[e];r.nodeType===8&&r.data.slice(0,2)===`!$`?r.remove():t.push(r)}n=t}for(;typeof n==`function`;)n=n();if(t===n)return n;let o=typeof t,s=r!==void 0;if(e=s&&n[0]&&n[0].parentNode||e,o===`string`||o===`number`){if(a||o===`number`&&(t=t.toString(),t===n))return n;if(s){let i=n[0];i&&i.nodeType===3?i.data!==t&&(i.data=t):i=document.createTextNode(t),n=k(e,n,r,i)}else n=n!==``&&typeof n==`string`?e.firstChild.data=t:e.textContent=t}else if(t==null||o===`boolean`){if(a)return n;n=k(e,n,r)}else if(o===`function`)return b(()=>{let i=t();for(;typeof i==`function`;)i=i();n=Ge(e,i,n,r)}),()=>n;else if(Array.isArray(t)){let o=[],c=n&&Array.isArray(n);if(Ke(o,t,n,i))return b(()=>n=Ge(e,o,n,r,!0)),()=>n;if(a){if(!o.length)return n;if(r===void 0)return n=[...e.childNodes];let t=o[0];if(t.parentNode!==e)return n;let i=[t];for(;(t=t.nextSibling)!==r;)i.push(t);return n=i}if(o.length===0){if(n=k(e,n,r),s)return n}else c?n.length===0?qe(e,o,r):Le(e,n,o):(n&&k(e),qe(e,o));n=o}else if(t.nodeType){if(a&&t.parentNode)return n=s?[t]:t;if(Array.isArray(n)){if(s)return n=k(e,n,r,t);k(e,n,null,t)}else n==null||n===``||!e.firstChild?e.appendChild(t):e.replaceChild(t,e.firstChild);n=t}return n}function Ke(e,t,n,r){let i=!1;for(let a=0,o=t.length;a<o;a++){let o=t[a],s=n&&n[e.length],c;if(!(o==null||o===!0||o===!1))if((c=typeof o)==`object`&&o.nodeType)e.push(o);else if(Array.isArray(o))i=Ke(e,o,s)||i;else if(c===`function`)if(r){for(;typeof o==`function`;)o=o();i=Ke(e,Array.isArray(o)?o:[o],Array.isArray(s)?s:[s])||i}else e.push(o),i=!0;else{let t=String(o);s&&s.nodeType===3&&s.data===t?e.push(s):e.push(document.createTextNode(t))}}return i}function qe(e,t,n=null){for(let r=0,i=t.length;r<i;r++)e.insertBefore(t[r],n)}function k(e,t,n,r){if(n===void 0)return e.textContent=``;let i=r||document.createTextNode(``);if(t.length){let r=!1;for(let a=t.length-1;a>=0;a--){let o=t[a];if(i!==o){let t=o.parentNode===e;!r&&!a?t?e.replaceChild(i,o):e.insertBefore(i,n):t&&o.remove()}else r=!0}}else e.insertBefore(i,n);return[i]}var Je=``,Ye=``,Xe=``,Ze=``;function A(e){if(e===null)return Ye;switch(typeof e){case`string`:return Xe+e;case`number`:return Ze+e;case`boolean`:return Je+ +e;case`object`:return JSON.stringify(e)}}function j(e){switch(e[0]){case Xe:return e.slice(1);case Ze:return+e.slice(1);case Je:return e.slice(1)===`1`;case Ye:return null;case`[`:return JSON.parse(e)}}function Qe(e){let t={},n=0;for(let r of e)t[r]=n,t[n]=r,++n;return t}function M(e){return JSON.parse(e)}var N=e=>JSON.stringify(e);Array.prototype,Boolean.prototype,Number.prototype,String.prototype;var P=class{Subscriber;subscribers=new Map;subscribe(e,t){return this.subscribers.set(e,t),()=>{this.unsubscribe(e)}}unsubscribe(e){this.subscribers.delete(e)}next(e){let t=this.subscribers.values();for(let n of t)n(e)}},$e=class extends P{state;constructor(e){super(),this.state=e}next(e){this.state=e,super.next(e)}},et=class extends Promise{fate;resolve;reject;done=!1;constructor(e){let t,n;super((e,r)=>{t=e,n=r}),this.resolve=t,this.reject=n,this.use(e instanceof Promise?e:new Promise(e))}pass(e,t){e===this.fate&&(this.resolve(t),this.done=!0)}fail(e,t){e===this.fate&&(this.reject(t),this.done=!0)}use(e){if(this!==e)if(e instanceof Promise){let t=e;this.fate=t,t.then(e=>{this.pass(t,e)},e=>{this.fail(t,e)})}else this.resolve(e),this.fate=void 0}};function tt(e){return lr(U.STORE,e,void 0)}function nt(e){return $n(U.STORE,e,void 0)}function rt(e){return fn(U.STORE,e)}function it(e,t){return J(U.STORE,e,t)}function at(...e){return q(U.STORE,...e)}var F={atom_family:`atom family`,atom:`atom`,continuity:`continuity`,key:`key`,mutable_atom_family:`atom family [m]`,mutable_atom:`atom [m]`,readonly_held_selector_family:`selector family [h]`,readonly_held_selector:`selector [h]`,readonly_pure_selector_family:`selector family`,readonly_pure_selector:`selector`,socket:`socket`,state:`state`,timeline:`timeline`,transaction:`transaction`,unknown:`unknown`,user:`👤`,writable_held_selector_family:`selector family [wh]`,writable_held_selector:`selector [wh]`,writable_pure_selector_family:`selector family [w]`,writable_pure_selector:`selector [w]`},ot=(e,t)=>(n,r,i,a,...o)=>{console[e](`${t?`${t} `:``}${n} ${F[r]} \`${i}\` ${a}`,...o)},st={error:ot(`error`),info:ot(`info`),warn:ot(`warn`)},ct=class{logLevel;filter;logger;constructor(e,t,n=st){this.logLevel=e,this.filter=t,this.logger=n}error=(...e)=>{if(this.logLevel!==null){let t=this.filter?.(...e)??!0;t===!0?this.logger.error(...e):t&&this.logger.error(...t)}};info=(...e)=>{if(this.logLevel===`info`){let t=this.filter?.(...e)??!0;t===!0?this.logger.info(...e):t&&this.logger.info(...t)}};warn=(...e)=>{if(this.logLevel!==`error`&&this.logLevel!==null){let t=this.filter?.(...e)??!0;t===!0?this.logger.warn(...e):t&&this.logger.warn(...t)}}},lt=class extends Error{constructor(e,t){super(`${F[e.type]} ${N(e.key)} not found in store "${t}".`)}};function ut(e,t){return[e,t].sort().join(``)}function dt(e){if(typeof e!=`string`)return null;let[t,n]=e.split(`==`);if(!n)return null;let r=t.slice(4),[i,a]=n.split(`++`);return r&&i&&a?[r,i,a]:null}function ft(...e){On(U.STORE,...e)}function pt(e){return gn(U.STORE,e)}function mt(...e){Y(U.STORE,...e)}function ht(e){return en(U.STORE,e)}function gt(e,t=yt()){return Ot(U.STORE,e,t)}var _t=Qe([`add`,`delete`,`clear`]),vt=class e extends Set{mode=`record`;subject=new P;constructor(t){super(t),t instanceof e}READONLY_VIEW=this;toJSON(){return[...this]}static fromJSON(t){return new e(t)}add(e){let t=super.add(e);return this.mode===`record`&&this.emit({type:`add`,value:e}),t}clear(){let e=this.mode===`record`?[...this]:null;super.clear(),e&&this.emit({type:`clear`,values:e})}delete(e){let t=super.delete(e);return this.mode===`record`&&this.emit({type:`delete`,value:e}),t}subscribe(e,t){return this.subject.subscribe(e,t)}emit(t){this.subject.next(e.packUpdate(t))}do(t){this.mode=`playback`;let n=e.unpackUpdate(t);switch(n.type){case`add`:this.add(n.value);break;case`delete`:this.delete(n.value);break;case`clear`:this.clear()}return this.mode=`record`,null}undo(t){let n=e.unpackUpdate(t);switch(this.mode=`playback`,n.type){case`add`:this.delete(n.value);break;case`delete`:this.add(n.value);break;case`clear`:{let e=n.values;for(let t of e)this.add(t)}}return this.mode=`record`,null}static packUpdate(e){let t=_t[e.type]+``;return e.type===`clear`?t+e.values.map(A).join(``):t+A(e.value)}static unpackUpdate(e){let[t,n]=e.split(``),r=_t[t];return r===`clear`?{type:`clear`,values:n.split(``).map(j)}:{type:r,value:j(n)}}};function yt(e=Math.random){return e().toString(36).slice(2)}function I(e){let t=e;for(;t.child!==null;)t=t.child;return t}function bt(e){let t=e;for(;t.parent!==null;)t=t.parent;return t}var xt=/^\[object (?:Async|Generator|AsyncGenerator)?Function\]$/;function L(e){let t=Object.prototype.toString.call(e);return xt.test(t)}function St(e,t){return L(e)?e(t):e}var Ct=class e{_buffer;_index=0;constructor(e){let t;t=typeof e==`number`?e:e.length,this._buffer=Array.from({length:t})}get buffer(){return this._buffer}get index(){return this._index}add(e){this._buffer[this._index]=e,this._index=(this._index+1)%this._buffer.length}copy(){let t=new e([...this._buffer]);return t._index=this._index,t}};function R(e){let t={key:e.key,type:e.type};return`family`in e&&(t.family=e.family),t}var z=class extends Map{deleted=new Set;changed=new Set;source;constructor(e){super(),this.source=e}get(e){if(super.has(e))return super.get(e);if(!this.deleted.has(e)&&this.source.has(e))return this.source.get(e)}set(e,t){return this.deleted.delete(e),this.source.has(e)&&this.changed.add(e),super.set(e,t)}hasOwn(e){return super.has(e)}has(e){return!this.deleted.has(e)&&(super.has(e)||this.source.has(e))}delete(e){return this.source.has(e)&&(this.deleted.add(e),this.changed.delete(e)),super.delete(e)}clear(){this.deleted=new Set(this.source.keys()),this.changed.clear(),super.clear()}*[Symbol.iterator](){yield*super[Symbol.iterator]();for(let[e,t]of this.source)!this.deleted.has(e)&&!this.changed.has(e)&&(yield[e,t])}*entries(){yield*this[Symbol.iterator]()}*keys(){yield*super.keys();for(let e of this.source.keys())!this.deleted.has(e)&&!this.changed.has(e)&&(yield e)}*values(){for(let[,e]of this[Symbol.iterator]())yield e}forEach(e){for(let[t,n]of this[Symbol.iterator]())e(n,t,this)}get size(){return super.size+this.source.size-this.changed.size-this.deleted.size}},wt=class extends Set{deleted=new Set;source;constructor(e){super(),this.source=e}add(e){return this.source.has(e)?(this.deleted.delete(e),this):super.add(e)}hasOwn(e){return super.has(e)}has(e){return!this.deleted.has(e)&&(super.has(e)||this.source.has(e))}delete(e){return this.source.has(e)?(this.deleted.add(e),!0):super.delete(e)}clear(){this.deleted=new Set(this.source),super.clear()}*[Symbol.iterator](){yield*super[Symbol.iterator]();for(let e of this.source)this.deleted.has(e)||(yield e)}*iterateOwn(){yield*super[Symbol.iterator]()}get size(){return super.size+this.source.size-this.deleted.size}},Tt=class extends Map{deleted=new Set;source;constructor(e){super(),this.source=e}get(e){if(super.has(e))return super.get(e);if(!this.deleted.has(e)&&this.source.has(e)){let t=new wt(this.source.get(e));return super.set(e,t),t}}set(e,t){return this.deleted.delete(e),super.set(e,t)}has(e){return!this.deleted.has(e)&&(super.has(e)||this.source.has(e))}delete(e){return this.deleted.add(e),super.delete(e)}},B=class e{a;b;cardinality;relations=new Map;contents=new Map;isAType;isBType;isContent;makeContentKey=(e,t)=>`${e}:${t}`;warn;getRelatedKeys(e){return this.relations.get(e)}addRelation(e,t){let n=this.relations.get(e),r=this.relations.get(t);n?n.add(t):(n=new Set([t]),this.relations.set(e,n)),r?r.add(e):(r=new Set([e]),this.relations.set(t,r))}deleteRelation(e,t){let n=this.relations.get(e);if(n){n.delete(t),n.size===0&&this.relations.delete(e);let r=this.relations.get(t);r&&(r.delete(e),r.size===0&&this.relations.delete(t))}}replaceRelationsUnsafely(e,t){this.relations.set(e,new Set(t));for(let n of t){let t=new Set().add(e);this.relations.set(n,t)}}replaceRelationsSafely(e,t){let n=this.relations.get(e),r=this.isAType?.(e)?e:void 0,i=r===void 0?e:void 0;if(n)for(let t of n){r??=t,i??=t;let n=this.relations.get(t);n&&(n.size===1?this.relations.delete(t):n.delete(e),this.contents.delete(this.makeContentKey(r,i)))}this.relations.set(e,new Set(t));for(let n of t){let t=this.relations.get(n);t?t.add(e):(t=new Set().add(e),this.relations.set(n,t))}}getContentInternal(e){return this.contents.get(e)}setContent(e,t){this.contents.set(e,t)}deleteContent(e){this.contents.delete(e)}constructor(e,t){if(this.a=e.between[0],this.b=e.between[1],this.cardinality=e.cardinality,this.isAType=t?.isAType??null,this.isBType=t?.isBType??null,this.isContent=t?.isContent??null,t?.makeContentKey&&(this.makeContentKey=t.makeContentKey),!t?.externalStore){let n=t?.source;n===void 0&&(this.relations=new Map(e.relations?.map(([e,t])=>[e,new Set(t)])),this.contents=new Map(e.contents)),n&&(this.relations=new Tt(n.relations),this.contents=new z(n.contents))}if(t?.externalStore){let n=t.externalStore;this.has=(e,t)=>n.has(e,t),this.addRelation=(e,t)=>{n.addRelation(e,t)},this.deleteRelation=(e,t)=>{n.deleteRelation(e,t)},this.replaceRelationsSafely=(e,t)=>{n.replaceRelationsSafely(e,t)},this.replaceRelationsUnsafely=(e,t)=>{n.replaceRelationsUnsafely(e,t)},this.getRelatedKeys=(e=>n.getRelatedKeys(e)),n.getContent&&(this.getContentInternal=e=>n.getContent(e),this.setContent=(e,t)=>{n.setContent(e,t)},this.deleteContent=e=>{n.deleteContent(e)});for(let[t,n]of e.relations??[]){let e=this.isAType?.(t)?t:void 0,r=e===void 0?t:void 0;for(let t of n)e??=t,r??=t,this.addRelation(e,r)}for(let[t,n]of e.contents??[])this.setContent(t,n)}t?.warn&&(this.warn=t.warn)}toJSON(){return{between:[this.a,this.b],cardinality:this.cardinality,relations:[...this.relations.entries()].map(([e,t])=>[e,[...t]]),contents:[...this.contents.entries()]}}set(...e){let t,n,r;switch(e.length){case 1:{let i=e[0];t=i[this.a],n=i[this.b],r=void 0;break}case 2:{let i=e[0];typeof i==`string`?[t,n]=e:(t=i[this.a],n=i[this.b],r=e[1]);break}default:t=e[0],n=e[1],r=e[2];break}switch(this.cardinality){case`1:1`:{let e=this.getRelatedKey(t);e&&e!==n&&this.delete(t,e)}case`1:n`:{let e=this.getRelatedKey(n);e&&e!==t&&this.delete(e,n)}break;case`n:n`:}if(r){let e=this.makeContentKey(t,n);this.setContent(e,r)}return this.addRelation(t,n),this}delete(e,t){t=typeof t==`string`?t:e[this.b];let n=typeof e==`string`?e:e[this.a];if(n===void 0&&typeof t==`string`){let e=this.getRelatedKeys(t);if(e)for(let n of e)this.delete(n,t)}else if(typeof n==`string`&&t===void 0){let e=this.getRelatedKeys(n);if(e)for(let t of e)this.delete(n,t)}else if(typeof n==`string`&&typeof t==`string`){this.deleteRelation(n,t);let e=this.makeContentKey(n,t);this.deleteContent(e)}return this}getRelatedKey(e){let t=this.getRelatedKeys(e);if(t){t.size>1&&this.warn?.(`${t.size} related keys were found for key "${e}": (${[...t].map(e=>`"${e}"`).join(`, `)}). Only one related key was expected.`);let n;for(let e of t){n=e;break}return n}}replaceRelations(e,t,n){let r=!Array.isArray(t),i=r?Object.keys(t):t;if(n?.reckless?this.replaceRelationsUnsafely(e,i):this.replaceRelationsSafely(e,i),r)for(let n of i){let r=this.makeContentKey(e,n),i=t[n];this.setContent(r,i)}return this}getContent(e,t){let n=this.makeContentKey(e,t);return this.getContentInternal(n)}getRelationEntries(e){let t=e[this.a],n=e[this.b];if(t!==void 0&&n===void 0){let e=this.getRelatedKeys(t);if(e)return[...e].map(e=>[e,this.getContent(t,e)])}if(t===void 0&&n!==void 0){let e=this.getRelatedKeys(n);if(e)return[...e].map(e=>[e,this.getContent(e,n)])}return[]}has(e,t){return t?this.getRelatedKeys(e)?.has(t)??!1:this.relations.has(e)}overlay(){let t={source:this,makeContentKey:this.makeContentKey};return this.isAType&&(t.isAType=this.isAType),this.isBType&&(t.isBType=this.isBType),this.isContent&&(t.isContent=this.isContent),this.warn&&(t.warn=this.warn),new e({between:[this.a,this.b],cardinality:this.cardinality},t)}incorporate(e){let{relations:t,contents:n}=e;for(let[e,n]of t)if(n instanceof wt){let{source:e}=n;for(let t of n.iterateOwn())e.add(t)}else this.relations.set(e,n);for(let e of t.deleted)this.relations.delete(e);for(let[e,t]of n)this.contents.set(e,t);for(let e of n.deleted)this.contents.delete(e)}};function Et(e){return e.startsWith(`🔍 `)}function Dt(e){e.logger.info(`🪂`,`transaction`,e.transactionMeta.update.token.key,`Aborting transaction`),e.parent.child=null}function Ot(e,t,n){return(...r)=>W(e,t).run(r,n)}function kt(e,t,n){let{token:r,update:{newValue:i,oldValue:a}}=t;Y(e,r,n===`newValue`?i:a)}function At(e){let{stack:t}=e;return t?`
2
- `+t.split(`
3
- `)?.slice(1)?.join(`
4
- `):``}function jt(e,t,n,r=`any`){let i=t,a=N(n),o=[],s=I(e);if(Array.isArray(i))for(let t of i){let n=N(t);s.molecules.get(n)?e.moleculeGraph.set(n,a,{source:n}):o.push(n)}else{let t=N(i);s.molecules.get(t)?e.moleculeGraph.set(t,a,{source:t}):o.push(t)}let c=new P;o.length===0&&s.molecules.set(a,{key:n,stringKey:a,dependsOn:r,subject:c});let l={type:`molecule_creation`,key:n,provenance:i,timestamp:Date.now()};V(s)&&s.transactionMeta.phase===`building`?s.transactionMeta.update.subEvents.push(l):s.on.moleculeCreation.next(l);for(let t of o){let r=e.disposalTraces.buffer.find(e=>e?.key===t);e.logger.error(`❌`,`key`,n,`allocation failed:`,`Could not allocate to ${t} in store "${e.config.name}".`,r?`\n ${t} was most recently disposed\n${r.trace}`:`No previous disposal trace for ${t} was found.`)}return n}function Mt(e,t){let n=N(t),r=e.molecules.get(n);if(!r){let r=e.disposalTraces.buffer.find(e=>e?.key===n);e.logger.error(`❌`,`key`,t,`deallocation failed:`,`Could not find allocation for ${n} in store "${e.config.name}".`,r?`\n This state was most recently deallocated\n${r.trace}`:`No previous disposal trace for ${n} was found.`);return}r.subject.next();let i=e.keyRefsInJoins.getRelatedKeys(n);if(i)for(let n of i){let r=e.joins.get(n);r&&r.relations.delete(t)}else{let n=dt(t);if(n){let[,t,r]=n,i=e.keyRefsInJoins.getRelatedKey(ut(t,r));if(i){let n=e.joins.get(i);n&&n.relations.delete(t,r)}}}e.keyRefsInJoins.delete(n);let a=[],o=[],s=e.moleculeGraph.getRelationEntries({downstreamMoleculeKey:n});if(s)for(let[t,{source:r}]of s)r===n?Mt(e,M(t)):a.push(r);let c=e.moleculeData.getRelatedKeys(r.stringKey);if(c)for(let n of c){let r=e.families.get(n),i=q(e,r,t);o.push([r.key,i]),_n(e,r,t)}let l={type:`molecule_disposal`,key:r.key,values:o,provenance:a,timestamp:Date.now()};e.molecules.delete(n);let u=V(e)&&e.transactionMeta.phase===`building`;u&&e.transactionMeta.update.subEvents.push(l),e.moleculeGraph.delete(r.stringKey),e.keyRefsInJoins.delete(r.stringKey),e.moleculeData.delete(r.stringKey),u||e.on.moleculeDisposal.next(l),e.molecules.delete(r.stringKey);let d=At(Error());e.disposalTraces.add({key:n,trace:d})}function Nt(e,t,n,r){let i=N(n),a=I(e),o=a.molecules.get(i);if(!o){let t=e.disposalTraces.buffer.find(e=>e?.key===i);return e.logger.error(`❌`,`key`,i,`claim failed:`,`Could not allocate to ${i} in store "${e.config.name}".`,t?`\n ${i} was most recently disposed\n${t.trace}`:`No previous disposal trace for ${i} was found.`),n}let s=N(t),c=a.molecules.get(s);if(!c){let t=e.disposalTraces.buffer.find(e=>e?.key===s);return e.logger.error(`❌`,`key`,n,`claim failed:`,`Could not allocate to ${s} in store "${e.config.name}".`,t?`\n ${s} was most recently disposed\n${t.trace}`:`No previous disposal trace for ${s} was found.`),n}let l=e.moleculeGraph.getRelationEntries({downstreamMoleculeKey:o.stringKey}).filter(([,{source:e}])=>e!==i).map(([e])=>M(e));r&&a.moleculeGraph.delete(i),a.moleculeGraph.set({upstreamMoleculeKey:c.stringKey,downstreamMoleculeKey:o.stringKey},{source:c.stringKey});let u={type:`molecule_transfer`,key:o.key,exclusive:!!r,from:l,to:[c.key],timestamp:Date.now()};return V(a)&&a.transactionMeta.phase===`building`&&a.transactionMeta.update.subEvents.push(u),n}function Pt(e,t,n){switch(n){case`newValue`:It(e,t);break;case`oldValue`:_n(e,t.token);break}}function Ft(e,t,n){switch(n){case`newValue`:_n(e,t.token);break;case`oldValue`:It(e,t),t.subType===`atom`&&e.valueMap.set(t.token.key,t.value);break}}function It(e,t){let{token:n}=t;t.subType===`writable`&&t.value?Y(e,n,t.value):q(e,n)}function Lt(e,t,n){switch(n){case`newValue`:jt(e,t.provenance,t.key);break;case`oldValue`:Mt(e,t.key);break}}function Rt(e,t,n){switch(n){case`newValue`:Mt(e,t.key);break;case`oldValue`:jt(e,t.provenance.map(M),t.key);for(let[n,r]of t.values){let i=e.families.get(n);if(i){q(e,i,t.key);let a=`${n}(${N(t.key)})`;e.valueMap.set(a,r)}}break}}function zt(e,t,n){switch(n){case`newValue`:for(let n of t.to)Nt(e,n,t.key,t.exclusive?`exclusive`:void 0);break;case`oldValue`:{let n=`exclusive`;for(let r of t.from)Nt(e,r,t.key,n),n=void 0}break}}function Bt(e,t,n){let r=n===`newValue`?t.subEvents:[...t.subEvents].reverse();for(let t of r)switch(t.type){case`atom_update`:kt(e,t,n);break;case`state_creation`:Pt(e,t,n);break;case`state_disposal`:Ft(e,t,n);break;case`molecule_creation`:Lt(e,t,n);break;case`molecule_disposal`:Rt(e,t,n);break;case`molecule_transfer`:zt(e,t,n);break;case`transaction_outcome`:Bt(e,t,n);break}}function Vt(e){return`epoch`in e.transactionMeta}function V(e){return`phase`in e.transactionMeta}function Ht(e,t){return e.transactionMeta.actionContinuities.getRelatedKey(t)}function Ut(e,t){return e.transactionMeta.epoch.get(t)}function Wt(e,t){let n=Ht(e,t);if(n!==void 0)return Ut(e,n)}function Gt(e,t,n){let r=Ht(e,t);r!==void 0&&e.transactionMeta.epoch.set(r,n)}function Kt(e,t){let n=I(e),{parent:r}=n;n.transactionMeta.phase=`applying`,n.transactionMeta.update.output=t,r.child=null,r.on.transactionApplying.next(n.transactionMeta);let{subEvents:i}=n.transactionMeta.update;e.logger.info(`🛄`,`transaction`,n.transactionMeta.update.token.key,`applying ${i.length} subEvents:`,i),Bt(r,n.transactionMeta.update,`newValue`),Vt(r)?(Gt(r,n.transactionMeta.update.token.key,n.transactionMeta.update.epoch),W(e,{key:n.transactionMeta.update.token.key,type:`transaction`})?.subject.next(n.transactionMeta.update),e.logger.info(`🛬`,`transaction`,n.transactionMeta.update.token.key,`applied`)):V(r)&&r.transactionMeta.update.subEvents.push(n.transactionMeta.update),r.on.transactionApplying.next(null)}function qt(e){return{store:e}}function H(e){return e[0].toUpperCase()+e.slice(1)}function Jt(e,t){let n=e.joins.get(t.key);if(n===void 0){let r=U.STORE.joins.get(t.key);if(r===void 0)throw Error(`Join "${t.key}" not found in store "${e.config.name}"`);n=new Qt(bt(e),r.options),e.joins.set(t.key,n)}return n}function Yt(e,t,n){let r=Jt(e,t),i=I(e);if(V(i)){let{toolkit:e}=i.transactionMeta;r.transact(e,({relations:e})=>{n(e)})}else n(r.relations)}function Xt(e,t,n){let r=Jt(e,t),i;switch(t.cardinality){case`1:1`:{let a=`${t.a}KeyOf${H(t.b)}`,o=`${t.b}KeyOf${H(t.a)}`;i={get[a](){let t=r.states[a];return J(e,t,n)},get[o](){let t=r.states[o];return J(e,t,n)}};break}case`1:n`:{let a=`${t.a}KeyOf${H(t.b)}`,o=`${t.b}KeysOf${H(t.a)}`;i={get[a](){let t=r.states[a];return J(e,t,n)},get[o](){let t=r.states[o];return J(e,t,n)}};break}case`n:n`:{let a=`${t.a}KeysOf${H(t.b)}`,o=`${t.b}KeysOf${H(t.a)}`;i={get[a](){let t=r.states[a];return J(e,t,n)},get[o](){let t=r.states[o];return J(e,t,n)}}}}return i}function Zt(e,t,n){let r=Jt(e,t);return n===`split`?[r.relatedKeysAtoms,r.relatedKeysAtoms]:r.relatedKeysAtoms}var Qt=class{toolkit;options;relations;states;relatedKeysAtoms;transact(e,t){let n=this.toolkit;this.toolkit=e,t(this),this.toolkit=n}store;[Symbol.dispose](){}constructor(e,t){this.store=e,this.options=t,this.store.miscResources.set(`join:${t.key}`,this),this.toolkit={get:((...t)=>q(e,...t)),set:((...t)=>{Y(e,...t)}),find:((...t)=>J(e,...t)),json:t=>X(e,t),relations:{edit:((...t)=>{Yt(e,...t)}),find:((...t)=>Xt(e,...t)),internal:((...t)=>Zt(e,...t))}};let n=t.between[0],r=t.between[1],i=tr(e,{key:`${t.key}/relatedKeys`,class:vt},[`join`,`relations`]);this.relatedKeysAtoms=i;let a=(t,n,r)=>{let{find:a,get:o,set:s}=t,c=a(i,n),l=o(c);for(let e of l)r.includes(e)||s(i,e,e=>(e.delete(n),e));s(c,t=>{t.clear();for(let c of r){let r=a(i,c),l=o(r),u=l.has(n);if(this.relations.cardinality===`1:n`){let t=[];for(let e of l){if(e===n)continue;let r;Nn(Mn,this.store,i,e,e=>(e.delete(c),r=e.size,e)),r===0&&t.push(e)}!u&&l.size>0&&s(r,e=>(e.clear(),e));for(let n of t)e.keyRefsInJoins.delete(ut(c,n))}u||s(r,e=>(e.add(n),e)),t.add(c)}return t})},o=(e,t,n)=>{let{set:r}=e;r(i,t,e=>{for(let t of n)e.add(t);return e});for(let e of n)r(i,e,e=>(e.add(t),e));return!0},s=new B(t,{externalStore:{getRelatedKeys:e=>this.toolkit.get(i,e),addRelation:(e,n)=>{this.store.keyRefsInJoins.set(`"${e}"`,t.key),this.store.keyRefsInJoins.set(`"${n}"`,t.key),this.store.keyRefsInJoins.set(ut(e,n),t.key),this.toolkit.set(i,e,e=>e.add(n)),this.toolkit.set(i,n,t=>t.add(e))},deleteRelation:(e,t)=>{this.toolkit.set(i,e,e=>(e.delete(t),e)),this.toolkit.set(i,t,t=>(t.delete(e),t));let n=ut(e,t);this.store.keyRefsInJoins.delete(n)},replaceRelationsSafely:(e,t)=>{a(this.toolkit,e,t)},replaceRelationsUnsafely:(e,t)=>{o(this.toolkit,e,t)},has:(e,t)=>{let n=this.toolkit.get(i,e);return t?n.has(t):n.size>0}},isAType:t.isAType,isBType:t.isBType}),c=()=>dn(e,{key:`${t.key}/singleRelatedKey`,get:e=>({get:t})=>{let n=t(i,e);for(let e of n)return e;return null}},[`join`,`keys`]),l=()=>dn(e,{key:`${t.key}/multipleRelatedKeys`,get:t=>({get:n})=>n(nr(i,e),t)},[`join`,`keys`]);switch(t.cardinality){case`1:1`:{let e=c(),t=`${n}KeyOf${H(r)}`,i=`${r}KeyOf${H(n)}`;this.relations=s,this.states={[t]:e,[i]:e};break}case`1:n`:{let e=c(),t=l(),i=`${n}KeyOf${H(r)}`,a=`${r}KeysOf${H(n)}`,o={[i]:e,[a]:t};this.relations=s,this.states=o;break}case`n:n`:{let e=l(),t=`${n}KeysOf${H(r)}`,i=`${r}KeysOf${H(n)}`;this.relations=s,this.states={[t]:e,[i]:e}}}}};function $t(e,t,n,r){let i=I(e),a={parent:i,child:null,on:i.on,loggers:i.loggers,logger:i.logger,config:i.config,atoms:new z(i.atoms),atomsThatAreDefault:new Set(i.atomsThatAreDefault),families:new z(i.families),joins:new z(i.joins),operation:{open:!1},readonlySelectors:new z(i.readonlySelectors),timelines:new z(i.timelines),timelineTopics:i.timelineTopics.overlay(),trackers:new Map,transactions:new z(i.transactions),selectorAtoms:i.selectorAtoms.overlay(),selectorGraph:i.selectorGraph.overlay(),writableSelectors:new z(i.writableSelectors),valueMap:new z(i.valueMap),defaults:i.defaults,disposalTraces:e.disposalTraces.copy(),molecules:new z(i.molecules),moleculeGraph:i.moleculeGraph.overlay(),moleculeData:i.moleculeData.overlay(),keyRefsInJoins:i.keyRefsInJoins.overlay(),miscResources:new z(i.miscResources)},o=Wt(e,t.key),s={phase:`building`,update:{type:`transaction_outcome`,token:t,id:r,epoch:o===void 0?NaN:o+1,timestamp:Date.now(),subEvents:[],params:n,output:void 0},toolkit:{get:((...e)=>q(c,...e)),set:((...e)=>{Y(c,...e)}),reset:((...e)=>{On(c,...e)}),run:(e,t=yt())=>Ot(c,e,t),find:((...t)=>J(e,...t)),json:e=>X(c,e),dispose:((...e)=>{_n(c,...e)}),env:()=>qt(c),relations:{edit:((...e)=>{Yt(c,...e)}),find:((...e)=>Xt(c,...e)),internal:((...e)=>Zt(c,...e))}}},c=Object.assign(a,{transactionMeta:s});return i.child=c,e.logger.info(`🛫`,`transaction`,t.key,`building with params:`,n),c}function en(e,t){let{key:n}=t,r=e.transactions.has(n),i={key:n,type:`transaction`,run:(r,a)=>{let o=$t(e,R(i),r,a);try{let{toolkit:e}=o.transactionMeta,n=t.do(e,...r);return Kt(o,n),n}catch(t){throw Dt(o),e.logger.warn(`💥`,`transaction`,n,`caught:`,t),t}},install:e=>en(e,t),subject:new P};I(e).transactions.set(n,i);let a=R(i);return r||e.on.transactionCreation.next(a),a}var tn=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 B({between:[`selectorKey`,`atomKey`],cardinality:`n:n`});selectorGraph=new B({between:[`upstreamSelectorKey`,`downstreamSelectorKey`],cardinality:`n:n`},{makeContentKey:(...e)=>e.sort().join(`:`)});trackers=new Map;families=new Map;joins=new Map;transactions=new Map;transactionMeta={epoch:new Map,actionContinuities:new B({between:[`continuity`,`action`],cardinality:`1:n`})};timelines=new Map;timelineTopics=new B({between:[`timelineKey`,`topicKey`],cardinality:`1:n`});disposalTraces=new Ct(100);molecules=new Map;moleculeGraph=new B({between:[`upstreamMoleculeKey`,`downstreamMoleculeKey`],cardinality:`n:n`},{makeContentKey:(...e)=>e.sort().join(`:`)});moleculeData=new B({between:[`moleculeKey`,`stateFamilyKey`],cardinality:`n:n`},{makeContentKey:(...e)=>e.sort().join(`:`)});keyRefsInJoins=new B({between:[`moleculeKey`,`joinKey`],cardinality:`n:n`},{makeContentKey:(...e)=>e.sort().join(`:`)});miscResources=new Map;on={atomCreation:new P,atomDisposal:new P,selectorCreation:new P,selectorDisposal:new P,timelineCreation:new P,transactionCreation:new P,transactionApplying:new $e(null),operationClose:new P,moleculeCreation:new P,moleculeDisposal:new P};operation={open:!1};config={name:`IMPLICIT_STORE`,lifespan:`ephemeral`,isProduction:!0};loggers=[new ct(`warn`,(e,t,n)=>!Et(n))];logger={error:(...e)=>{for(let t of this.loggers)t.error(...e)},info:(...e)=>{for(let t of this.loggers)t.info(...e)},warn:(...e)=>{for(let t of this.loggers)t.warn(...e)}};constructor(e,t=null){if(this.config={...t?.config,...e},t!==null){this.operation={...t?.operation},Vt(t)&&(this.transactionMeta={epoch:new Map(t?.transactionMeta.epoch),actionContinuities:new B(t?.transactionMeta.actionContinuities.toJSON())});for(let[,e]of t.families)e.internalRoles?.includes(`mutable`)||e.internalRoles?.includes(`join`)||e.install(this);let e=new Set;for(let[,n]of t.atoms)if(!e.has(n.key)&&(n.install(this),n.type===`mutable_atom`)){let r=X(t,n),i=rr(n);e.add(r.key),e.add(i.key)}for(let[,e]of t.readonlySelectors)e.install(this);for(let[,n]of t.writableSelectors)e.has(n.key)||n.install(this);for(let[,e]of t.transactions)e.install(this);for(let[,e]of t.timelines)e.install(this)}}},U={get STORE(){return globalThis.ATOM_IO_IMPLICIT_STORE??=new tn({name:`IMPLICIT_STORE`,lifespan:`ephemeral`,isProduction:!0}),globalThis.ATOM_IO_IMPLICIT_STORE}};function W(e,t){let n,r=e;for(;r!==null;){switch(t.type){case`atom`:case`mutable_atom`:n=r.atoms.get(t.key);break;case`writable_pure_selector`:case`writable_held_selector`:n=r.writableSelectors.get(t.key);break;case`readonly_pure_selector`:case`readonly_held_selector`:n=r.readonlySelectors.get(t.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(t.key);break;case`timeline`:n=r.timelines.get(t.key);break;case`transaction`:n=r.transactions.get(t.key);break}if(n)return n;r=r.child}throw new lt(t,e.config.name)}function nn(e,t,n,r){let i=e.disposalTraces.buffer.find(e=>e?.key===N(r));switch(e.logger.error(`❌`,t.type,t.key,`gets a fallback value because key`,r,`is not allocated`,i?`This key was previously disposed:\n${i.trace}`:`(no previous disposal trace found)`),n.type){case`mutable_atom_family`:{if(e.defaults.has(n.key))return e.defaults.get(n.key);let t=new n.class;return e.defaults.set(n.key,t),t.READONLY_VIEW}case`atom_family`:{if(e.defaults.has(n.key))return e.defaults.get(n.key);let t=n.default,i=t(r);return e.defaults.set(n.key,i),i}case`readonly_pure_selector_family`:case`writable_pure_selector_family`:case`readonly_held_selector_family`:case`writable_held_selector_family`:{if(e.defaults.has(n.key))return e.defaults.get(n.key);let t=n.default(r);return e.defaults.set(n.key,t),t}}}function G(e,t){let{type:n,key:r,catch:i}=t;switch(n){case`readonly_pure_selector`:case`writable_pure_selector`:{let a;e.logger.info(`🧮`,n,r,`computing value`);try{a=t.getFrom(e),a instanceof Promise&&(a=a.catch(t=>{if(e.logger.error(`💥`,n,r,`rejected:`,t),i){for(let e of i)if(t instanceof e)return t}throw t}))}catch(a){if(e.logger.error(`💥`,n,r,`rejected:`,a),i){for(let n of i)if(a instanceof n)return Z(e,t,a)}throw a}return Z(e,t,a)}case`atom`:{let a;if(L(t.default))try{a=t.default(),a instanceof Promise&&(a=a.catch(t=>{if(e.logger.error(`💥`,n,r,`rejected:`,t),i){for(let e of i)if(t instanceof e)return t}throw t}))}catch(o){if(e.logger.error(`💥`,n,r,`rejected:`,o),i){for(let n of i)if(o instanceof n)return a=Z(e,t,o),e.logger.info(`✨`,t.type,r,`computed default`,a),a}throw o}else a=t.default,e.logger.info(`✨`,t.type,r,`using static default`,a);return Z(e,t,a)}}}function K(e,t,n){if(e.valueMap.has(t.key))return ar(e,t,n);e.logger.info(`❔`,t.type,t.key,`value not found in cache`);let{key:r}=t;switch(t.type){case`readonly_held_selector`:case`writable_held_selector`:return e.logger.info(`🧮`,t.type,r,`computing value`),t.getFrom(e);case`writable_pure_selector`:case`readonly_pure_selector`:case`atom`:return G(e,t);case`mutable_atom`:{let n=new t.class;return e.logger.info(`✨`,t.type,r,`created new instance`,n),Z(e,t,n)}}}function rn(e,t){return W(e,{key:t.family.key,type:`${t.type}_family`})}var an={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`},on=Symbol(`MUST_CREATE`),sn=Symbol(`DO_NOT_CREATE`);function cn(e,t,n,r){let i=N(r),a=t.molecules.get(i);if(!a&&t.config.lifespan===`immortal`){let{type:e,key:r}=n;return t.logger.warn(`💣`,`key`,i,`was used to mint a counterfeit token for`,e,`"${r}"`),{counterfeit:!0,key:`${r}(${i})`,type:an[e],family:{key:r,subKey:i}}}let o;if(e===on)t.logger.info(`👪`,n.type,n.key,`adds member`,typeof r==`string`?`\`${r}\``:r),o=n.create(r),a&&t.moleculeData.set(i,n.key);else{let{type:e,key:t}=n;return{key:`${t}(${i})`,type:an[e],family:{key:t,subKey:i}}}return o}function ln(e,...t){let n,r,i,a,o;if(t.length===1){if(o=t[0],`family`in o){let t=rn(e,o);if(i=W(e,t),a=M(o.family.subKey),n=un(e,t,a),`counterfeit`in o)return{token:o,family:i,subKey:a,isNew:!1};n?o=n:(r=cn(on,e,t,a),o=r)}}else i=W(e,t[0]),a=t[1],n=un(e,i,a),n?o=n:(r=cn(on,e,i,a),o=r);let s=`counterfeit`in o;if(r&&s===!1&&i){let t;switch(o.type){case`readonly_pure_selector`:case`readonly_held_selector`:t=`readable`;break;case`atom`:case`mutable_atom`:case`writable_pure_selector`:case`writable_held_selector`:t=`writable`;break}let n={type:`state_creation`,subType:t,token:o,timestamp:Date.now()};i.subject.next(n);let r=I(e);if(o.family)if(Vt(r))switch(o.type){case`atom`:case`mutable_atom`:e.on.atomCreation.next(o);break;case`writable_pure_selector`:case`readonly_pure_selector`:case`writable_held_selector`:case`readonly_held_selector`:e.on.selectorCreation.next(o);break}else V(r)&&r.on.transactionApplying.state===null&&r.transactionMeta.update.subEvents.push(n)}return{token:o,family:i,subKey:a,isNew:!!r}}function q(e,...t){let{token:n,family:r,subKey:i}=ln(e,...t);return`counterfeit`in n&&r&&i?nn(e,n,r,i):K(e,W(e,n))}function un(e,t,n){let r=N(n),i=`${t.key}(${r})`,a=I(e),o;switch(t.type){case`atom_family`:case`mutable_atom_family`:o=a.atoms.get(i);break;case`writable_held_selector_family`:case`writable_pure_selector_family`:o=a.writableSelectors.get(i);break;case`readonly_held_selector_family`:case`readonly_pure_selector_family`:o=a.readonlySelectors.get(i);break}return o&&R(o)}function J(e,t,n){let r=W(e,t);return un(e,t,n)||cn(sn,e,r,n)}function dn(e,t,n){let r=t.key,i=`readonly_pure_selector_family`,a={key:r,type:i},o=e.families.get(r);o&&e.config.isProduction===!0&&e.logger.error(`❗`,i,r,`Overwriting an existing ${F[o.type]} "${o.key}" in store "${e.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let s=new P,c=n=>{let i=N(n),a={key:r,subKey:i},o=`${r}(${i})`,s=I(e),c={key:o,get:t.get(n)};return t.catch&&(c.catch=t.catch),Un(s,c,a)},l={...a,create:c,internalRoles:n,subject:s,install:e=>dn(e,t),default:n=>t.get(n)({get:q.bind(null,e),find:J.bind(null,e),json:t=>X(e,t),relations:{find:Xt.bind(null,e),internal:Zt.bind(null,e)}})};return e.families.set(r,l),a}function fn(e,t,n){let r={key:t.key,type:`atom_family`},i=e.families.get(t.key);i&&e.config.isProduction===!0&&e.logger.error(`❗`,`atom_family`,t.key,`Overwriting an existing ${F[i.type]} "${i.key}" in store "${e.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let a=new P,o=n=>{let r=N(n),i={key:t.key,subKey:r},a=`${t.key}(${r})`,o=I(e),s=t.default,c={key:a,default:L(s)?()=>s(n):s};return t.effects&&(c.effects=t.effects(n)),t.catch&&(c.catch=t.catch),lr(o,c,i)},s={...r,create:o,default:t.default,subject:a,install:e=>fn(e,t),internalRoles:n};return e.families.set(t.key,s),L(t.default)===!1&&e.defaults.set(t.key,t.default),r}function pn(e,t,n){let r=t.key,i=`readonly_held_selector_family`,a={key:r,type:i},o=e.families.get(r);o&&e.config.isProduction===!0&&e.logger.error(`❗`,i,r,`Overwriting an existing ${F[o.type]} "${o.key}" in store "${e.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let s=new P,c=n=>{let i=N(n),a={key:r,subKey:i},o=`${r}(${i})`;return Hn(I(e),{key:o,const:t.const(n),get:t.get(n)},a)},l={...a,create:c,internalRoles:n,subject:s,install:e=>pn(e,t),default:t.const};return e.families.set(r,l),a}function mn(e,t,n){let r=t.key,i=`writable_held_selector_family`,a={key:r,type:i},o=e.families.get(r);o&&e.config.isProduction===!0&&e.logger.error(`❗`,i,r,`Overwriting an existing ${F[o.type]} "${o.key}" in store "${e.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let s=new P,c=n=>{let i=N(n),a={key:r,subKey:i},o=`${r}(${i})`;return Wn(I(e),{key:o,const:t.const(n),get:t.get(n),set:t.set(n)},a)},l={...a,create:c,internalRoles:n,subject:s,install:e=>mn(e,t),default:t.const};return e.families.set(r,l),a}function hn(e,t,n){let r=t.key,i=`writable_pure_selector_family`,a={key:r,type:i},o=e.families.get(r);o&&e.config.isProduction===!0&&e.logger.error(`❗`,i,r,`Overwriting an existing ${F[o.type]} "${o.key}" in store "${e.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let s=new P,c=n=>{let i=N(n),a={key:r,subKey:i},o=`${r}(${i})`,s=I(e),c={key:o,get:t.get(n),set:t.set(n)};return t.catch&&(c.catch=t.catch),Gn(s,c,a)},l={...a,create:c,internalRoles:n,subject:s,install:e=>hn(e,t),default:n=>t.get(n)({get:((...t)=>q(e,...t)),find:((...t)=>J(e,...t)),json:t=>X(e,t),relations:{find:((...t)=>Xt(e,...t)),internal:((...t)=>Zt(e,...t))}})};return e.families.set(r,l),a}function gn(e,t){let n=`set`in t,r=`const`in t;return r&&n?mn(e,t,void 0):r?pn(e,t,void 0):n?hn(e,t):dn(e,t)}function _n(e,...t){let n;if(t.length===1)n=t[0];else{let r=t[0],i=t[1];n=J(e,r,i)}try{W(e,n)}catch{e.logger.error(`❌`,n.type,n.key,`could not be disposed because it was not found in the store "${e.config.name}".`);return}switch(n.type){case`atom`:case`mutable_atom`:dr(e,n);break;case`writable_pure_selector`:case`readonly_pure_selector`:case`writable_held_selector`:case`readonly_held_selector`:qn(e,n);break}}function vn(e,t){if(e.operation.open){let n=performance.now();return e.logger.info(`🚫`,t.type,t.key,`deferring setState at T-${n} until setState for "${e.operation.token.key}" is done`),n}return e.operation={open:!0,done:new Set,prev:new Map,timestamp:Date.now(),token:t,subEvents:[]},e.logger.info(`⭕`,t.type,t.key,`operation start in store "${e.config.name}"${V(e)?` ${e.transactionMeta.phase} "${e.transactionMeta.update.token.key}"`:``}`),e}function yn(e){e.operation.open&&e.logger.info(`🔴`,e.operation.token.type,e.operation.token.key,`operation done in store "${e.config.name}"`),e.operation={open:!1},e.on.operationClose.next(e.operation)}function bn(e,t){return e.operation.open?e.operation.done.has(t):(e.logger.error(`🐞`,`unknown`,t,`isDone called outside of an operation. This is probably a bug in AtomIO.`),!0)}function xn(e,t){if(!e.operation.open){e.logger.error(`🐞`,`unknown`,t,`markDone called outside of an operation. This is probably a bug in AtomIO.`);return}e.operation.done.add(t)}function Sn(e,t,n,r,i){let{oldValue:a,newValue:o}=n,s=`oldValue`in n,c=R(t);if(r&&i){t.subject.next({newValue:o});let n={checkpoint:!0,type:`state_creation`,subType:`writable`,token:c,timestamp:Date.now(),value:o};e.operation.subEvents.push(n),i.subject.next(n);let r=I(e);if(c.family)if(Vt(r))switch(c.type){case`atom`:case`mutable_atom`:e.on.atomCreation.next(c);break;case`writable_pure_selector`:case`writable_held_selector`:e.on.selectorCreation.next(c);break}else V(r)&&r.on.transactionApplying.state===null&&r.transactionMeta.update.subEvents.push(n);return}let{key:l,subject:u,type:d}=t,f;if(f=s?{oldValue:ir(a)?a.READONLY_VIEW:a,newValue:ir(o)?o.READONLY_VIEW:o}:{newValue:ir(o)?o.READONLY_VIEW:o},Vt(e)){switch(d){case`mutable_atom`:e.logger.info(`📢`,d,l,`is now (`,o,`) subscribers:`,u.subscribers.keys());break;case`atom`:case`writable_pure_selector`:case`writable_held_selector`:e.logger.info(`📢`,d,l,`went (`,a,`->`,o,`) subscribers:`,u.subscribers.keys())}u.next(f)}if(V(e)&&(d===`mutable_atom`||d===`atom`)){if(e.on.transactionApplying.state===null){if(ir(o))return;let{timestamp:t}=e.operation,n={type:`atom_update`,token:c,timestamp:t,update:f};e.transactionMeta.update.subEvents.push(n),e.logger.info(`📁`,`atom`,l,`stowed (`,a,`->`,o,`)`);return}if(ur(t,`tracker:signal`)){let t=l.slice(1),n=e.atoms.get(t);K(e,n,`mut`).do(f.newValue)===null&&sr(e,n)}}}var Cn=Symbol(`UNSET`);function wn(e,t,n){let r,i;if(L(n)){let a=K(e,t,`mut`);r=a,i=n(a)}else r=e.valueMap.has(t.key)?ar(e,t,`mut`):t.type===`atom`&&!L(t.default)?t.default:Cn,i=n;return e.logger.info(`⭐`,`atom`,t.key,`setting value`,i),i=Z(e,t,i),xn(e,t.key),sr(e,t),r===Cn?{newValue:i}:{oldValue:r,newValue:i}}function Tn(e,t){switch(t.type){case`mutable_atom`:return wn(e,t,new t.class);case`atom`:{let n;return n=L(t.default)?G(e,t):t.default,wn(e,t,n)}}}function En(e,t){let n;switch(t.type){case`atom`:case`mutable_atom`:n=Tn(e,t);break;case`writable_held_selector`:{let r=zn(e,t.key);for(let n of r.values())Sn(e,t,Tn(e,n),!1);let i=t.getFrom(e);n={oldValue:i,newValue:i}}break;case`writable_pure_selector`:{let r=G(e,t),i=zn(e,t.key);for(let n of i.values())Sn(e,t,Tn(e,n),!1);n={oldValue:r,newValue:G(e,t)}}break}return n}function Y(e,...t){Nn(jn,e,...t)}var Dn=Symbol(`RESET`);function On(e,...t){Y(e,...t,Dn)}function kn(e,t,n){let r,i,a,{type:o,key:s}=t;switch(t.type){case`writable_pure_selector`:r=K(e,t,`mut`),i=St(n,r),i=Z(e,t,i);break;case`writable_held_selector`:a=t.const,St(n,a),r=a,i=a}return e.logger.info(`⭐`,o,s,`setting to`,i),xn(e,s),t.setSelf(i),{oldValue:r,newValue:i}}function An(e,t,n){let r;switch(t.type){case`atom`:case`mutable_atom`:r=wn(e,t,n);break;case`writable_pure_selector`:case`writable_held_selector`:r=kn(e,t,n);break}return r}var jn=Symbol(`OWN_OP`),Mn=Symbol(`JOIN_OP`);function Nn(e,t,...n){let r,i,a,o,s,c;n.length===2?(a=n[0],c=n[1],`family`in a&&(o=rn(t,a),s=M(a.family.subKey),r=un(t,o,s),a=r||(i=cn(on,t,o,s)))):(o=W(t,n[0]),s=n[1],c=n[2],r=un(t,o,s),a=r||(i=cn(on,t,o,s)));let l=c===Dn?`reset`:`set`,u;if(e===jn){let n=vn(t,a);if(typeof n==`number`){let r=n,i=t.on.operationClose.subscribe(`waiting to ${l} "${a.key}" at T-${r}`,function(){i(),t.logger.info(`🟢`,a.type,a.key,`resuming deferred`,l,`from T-${r}`),Nn(e,t,a,c)});return}u=n}else u=t;if(`counterfeit`in a&&`family`in a){let e=a.family.subKey,n=t.disposalTraces.buffer.find(t=>t?.key===e);t.logger.error(`❌`,a.type,a.key,`could not be`,l,`because key`,e,`is not allocated.`,n?`this key was previously disposed:${n.trace}`:`(no previous disposal trace found)`);return}let d=W(u,a),f;f=c===Dn?En(u,d):An(u,d,c),Sn(u,d,f,!!i,o),e===jn&&yn(u)}var Pn=(e,t)=>I(e).atoms.has(t),Fn=(e,t)=>I(e).writableSelectors.has(t),In=(e,t)=>I(e).readonlySelectors.has(t),Ln=(e,t)=>Pn(e,t)||Fn(e,t)||In(e,t);function Rn(e,t){return I(e).selectorGraph.getRelationEntries({downstreamSelectorKey:t}).filter(([e,{source:n}])=>n!==t).map(([e,{source:t}])=>t).filter(t=>Ln(e,t))}function zn(e,t,n=new Set){let r=Rn(e,t),i=new Map;for(;r.length>0;){let t=r.pop();if(!n.has(t))if(n.add(t),Pn(e,t)){let n=e.atoms.get(t);i.set(n.key,n)}else r.push(...Rn(e,t))}return i}function Bn(e,t,n,r,i){let a=I(e),{type:o,key:s}=r;if(o===`atom`||o===`mutable_atom`)a.selectorAtoms.set({selectorKey:n,atomKey:s}),e.logger.info(`🔍`,t,n,`discovers root atom "${s}"`);else{let r=zn(e,s,i);e.logger.info(`🔍`,t,n,`discovers root atoms: [ ${[...r.values()].map(e=>`"${e.key}"`).join(`, `)} ]`);for(let{key:e}of r.values())a.selectorAtoms=a.selectorAtoms.set({selectorKey:n,atomKey:e})}i.add(s)}function Vn(e,t,n,r){return{get:(...i)=>{let a=I(e),{token:o,family:s,subKey:c}=ln(e,...i),l;return l=`counterfeit`in o&&s&&c?nn(e,o,s,c):K(e,W(e,o)),e.logger.info(`🔌`,t,n,`registers dependency ( "${o.key}" =`,l,`)`),a.selectorGraph.set({upstreamSelectorKey:o.key,downstreamSelectorKey:n},{source:o.key}),Bn(e,t,n,o,r),l},set:((...t)=>{Nn(Mn,I(e),...t)}),find:((...t)=>J(e,...t)),json:t=>X(e,t),relations:{edit:((...t)=>{Yt(e,...t)}),find:((...t)=>Xt(e,...t)),internal:((...t)=>Zt(e,...t))}}}function Hn(e,t,n){let r=I(e),i=new P,a=new Set,{key:o,const:s}=t,c=`readonly_held_selector`;e.logger.info(`🔨`,c,o,`is being created`);let{get:l,find:u,json:d,relations:f}=Vn(r,c,o,a),p=n=>{let r=n.selectorGraph.getRelationEntries({downstreamSelectorKey:o});for(let[e,{source:t}]of r)t!==o&&n.selectorGraph.delete(e,o);return n.selectorAtoms.delete(o),t.get({get:l,find:u,json:d,relations:f},s),Z(n,m,s),e.logger.info(`✨`,c,o,`=`,s),a.clear(),s},m={...t,type:c,subject:i,getFrom:p,install:e=>Hn(e,t,n)};n&&(m.family=n),r.readonlySelectors.set(o,m);let h={key:o,type:c};return n&&(h.family=n),h}function Un(e,t,n){let r=I(e),i=new P,a=new Set,o=t.key,s=`readonly_pure_selector`;e.logger.info(`🔨`,s,o,`is being created`);let{get:c,find:l,json:u,relations:d}=Vn(r,s,o,a),f=()=>{let n=I(e),r=n.selectorGraph.getRelationEntries({downstreamSelectorKey:o});for(let[e,{source:t}]of r)t!==o&&n.selectorGraph.delete(e,o);n.selectorAtoms.delete(o);let i=t.get({get:c,find:l,json:u,relations:d});return e.logger.info(`✨`,s,o,`=`,i),a.clear(),i},p={...t,type:s,subject:i,getFrom:f,install:e=>Un(e,t,n)};n&&(p.family=n),r.readonlySelectors.set(o,p);let m={key:o,type:s};return n&&(m.family=n),m}function Wn(e,t,n){let r=I(e),i=new P,a=new Set,{key:o,const:s}=t,c=`writable_held_selector`;e.logger.info(`🔨`,c,o,`is being created`);let l=Vn(r,c,o,a),{find:u,get:d,json:f,relations:p}=l,m={find:u,get:d,json:f,relations:p},h=n=>{let r=n.selectorGraph.getRelationEntries({downstreamSelectorKey:o});for(let[e,{source:t}]of r)t!==o&&n.selectorGraph.delete(e,o);return n.selectorAtoms.delete(o),t.get(m,s),Z(n,_,s),e.logger.info(`✨`,c,o,`=`,s),a.clear(),s},g=()=>{t.set(l,s)},_={...t,type:c,subject:i,getFrom:h,setSelf:g,install:e=>Wn(e,t,n)};n&&(_.family=n),r.writableSelectors.set(o,_);let v={key:o,type:c};return n&&(v.family=n),v}function Gn(e,t,n){let r=I(e),i=new P,a=new Set,o=t.key,s=`writable_pure_selector`;e.logger.info(`🔨`,s,o,`is being created`);let c=Vn(r,s,o,a),{find:l,get:u,json:d,relations:f}=c,p={find:l,get:u,json:d,relations:f},m=n=>{let r=n.selectorGraph.getRelationEntries({downstreamSelectorKey:o});for(let[e,{source:t}]of r)t!==o&&n.selectorGraph.delete(e,o);n.selectorAtoms.delete(o);let i=t.get(p);return e.logger.info(`✨`,s,o,`=`,i),a.clear(),i},h=e=>{t.set(c,e)},g={...t,type:s,subject:i,getFrom:m,setSelf:h,install:e=>Gn(e,t,n)};n&&(g.family=n),r.writableSelectors.set(o,g);let _={key:o,type:s};return n&&(_.family=n),_}function Kn(e,t){let n=`set`in t,r=`const`in t;if(r&&n){let n=Wn(e,t,void 0);return e.on.selectorCreation.next(n),n}if(r){let n=Hn(e,t,void 0);return e.on.selectorCreation.next(n),n}if(n){let n=Gn(e,t,void 0);return e.on.selectorCreation.next(n),n}let i=Un(e,t,void 0);return e.on.selectorCreation.next(i),i}function qn(e,t){let n=I(e),{key:r,type:i,family:a}=t;if(!a)e.logger.error(`❌`,i,r,`Standalone selectors cannot be disposed.`);else{n.molecules.get(a.subKey)&&n.moleculeData.delete(a.subKey,a.key);let i;switch(t.type){case`writable_held_selector`:n.writableSelectors.delete(r),i={key:a.key,type:`writable_held_selector_family`},W(e,i).subject.next({type:`state_disposal`,subType:`selector`,token:t,timestamp:Date.now()});break;case`writable_pure_selector`:n.writableSelectors.delete(r),i={key:a.key,type:`writable_pure_selector_family`},W(e,i).subject.next({type:`state_disposal`,subType:`selector`,token:t,timestamp:Date.now()});break;case`readonly_held_selector`:n.readonlySelectors.delete(r),i={key:a.key,type:`readonly_held_selector_family`},W(e,i).subject.next({type:`state_disposal`,subType:`selector`,token:t,timestamp:Date.now()});break;case`readonly_pure_selector`:n.readonlySelectors.delete(r),i={key:a.key,type:`readonly_pure_selector_family`},W(e,i).subject.next({type:`state_disposal`,subType:`selector`,token:t,timestamp:Date.now()});break}n.valueMap.delete(r),n.selectorAtoms.delete(r),n.selectorGraph.delete(r),n.moleculeData.delete(a.key,a.subKey),e.logger.info(`🔥`,t.type,r,`deleted`),V(n)&&n.transactionMeta.phase===`building`?n.transactionMeta.update.subEvents.push({type:`state_disposal`,subType:`selector`,token:t,timestamp:Date.now()}):e.on.selectorDisposal.next(t)}}function Jn(e,t){let n=I(e);return n.operation.open?n.operation.prev.get(t.key):n.valueMap.get(t.key)}function Yn(e,t,n){return n.subject.subscribe(`${t.type}:${t.key}`,r=>{e.logger.info(`📢`,t.type,t.key,`root`,n.key,`went`,r.oldValue,`->`,r.newValue);let i=Jn(e,t),a=K(e,t);e.logger.info(`✨`,t.type,t.key,`went`,i,`->`,a),t.subject.next({newValue:a,oldValue:i})})}function Xn(e,t,n,r){function i(n){e.operation.open&&a?.type===`atom`&&ur(a,`tracker:signal`)&&`*`+e.operation.token.key===t.key&&`inboundTracker`in r||r(n)}ln(e,t);let a=W(e,t);e.logger.info(`👀`,a.type,a.key,`Adding subscription "${n}"`);let o=a.type===`writable_pure_selector`||a.type===`readonly_pure_selector`,s=new Map,c=i;if(o){K(e,a);for(let[t,n]of zn(e,a.key))s.set(t,Yn(e,a,n));c=function(t){let n=zn(e,a.key);for(let[e,t]of s)n.get(e)?n.delete(e):(t(),s.delete(e));for(let[t,r]of n)s.set(t,Yn(e,a,r));i(t)}}let l=a.subject.subscribe(n,c);return()=>{e.logger.info(`🙈`,a.type,a.key,`Removing subscription "${n}"`),l();for(let e of s.values())e()}}function Zn(e,t,n,r){let i=W(e,t);e.logger.info(`👀`,`timeline`,t.key,`Adding subscription "${n}"`);let a=i.subject.subscribe(n,r);return()=>{e.logger.info(`🙈`,`timeline`,t.key,`Removing subscription "${n}" from timeline`),a()}}var Qn=class{initializeSignalAtom(e,t){let n=`*${e.key}`;t.atoms.delete(n),t.valueMap.delete(n);let r=e.family?{key:`*${e.family.key}`,subKey:e.family.subKey}:void 0,i=lr(t,{key:n,default:null},r,[`tracker:signal`]);if(t.parent?.valueMap.has(n)){let e=t.parent.valueMap.get(n);t.valueMap.set(n,e)}return i}unsubscribeFromInnerValue;unsubscribeFromState;captureSignalsFromCore(e,t,n){let r=e.key,i=`tracker-from-core:${n.config.name}:${V(n)?n.transactionMeta.update.token.key:`main`}:${r}`,a=e=>{Nn(Mn,n,t,e)},o=q(n,e);this.unsubscribeFromInnerValue=o.subscribe(i,a),this.unsubscribeFromState=Xn(n,e,i,function(e){e.newValue!==e.oldValue&&(this.unsubscribeFromInnerValue(),this.unsubscribeFromInnerValue=e.newValue.subscribe(i,a))}.bind(this))}supplySignalsToCore(e,t,n){let r=e.key,i=`tracker-to-core:${n.config.name}:${V(n)?n.transactionMeta.update.token.key:`main`}:${r}`;Xn(n,t,i,Object.assign(function({newValue:r,oldValue:a}){let o=n.timelineTopics.getRelatedKey(t.key);if(o&&n.timelines.get(o)?.timeTraveling){let t=Zn(n,{key:o,type:`timeline`},i,function(i){t(),Y(n,e,e=>(i.event===`redo`&&r?e.do(r):i.event===`undo`&&a&&e.undo(a),e))});return}Y(n,e,e=>(e.do(r),e))},{inboundTracker:!0}))}mutableAtomToken;latestSignalToken;[Symbol.dispose];constructor(e,t){let n=I(t),r=this.initializeSignalAtom(e,n);this.mutableAtomToken=e,this.latestSignalToken=r,this.captureSignalsFromCore(e,r,n),this.supplySignalsToCore(e,r,n),n.trackers.set(e.key,this),this[Symbol.dispose]=()=>{this.unsubscribeFromInnerValue(),this.unsubscribeFromState(),n.trackers.delete(e.key)}}};function $n(e,t,n){e.logger.info(`🔨`,`atom`,t.key,`creating in store "${e.config.name}"`);let r=I(e),{key:i}=t,a=r.atoms.get(i),o=`mutable_atom`;if(a?.type===o&&e.config.isProduction===!0)return e.logger.error(`❌`,o,i,`Tried to create atom, but it already exists in the store.`),R(a);let s=new P,c={...t,type:o,install:e=>(e.logger.info(`🛠️`,`atom`,i,`installing in store "${e.config.name}"`),$n(e,t,n)),subject:s};n&&(c.family=n),r.atoms.set(c.key,c);let l=R(c);if(new Qn(l,e),n||Kn(e,{key:`${i}:JSON`,get:({get:e})=>e(l).toJSON(),set:({set:e},n)=>{e(l,t.class.fromJSON(n))}}),t.effects){let n=0,r=[];for(let i of t.effects){let t=i({resetSelf:()=>{On(e,l)},setSelf:t=>{Y(e,l,t)},onSet:t=>Xn(e,l,`effect[${n}]`,t),token:l,store:bt(e)});t&&r.push(t),++n}c.cleanup=()=>{for(let e of r)e instanceof Promise?e.then(e=>e?.()):e()}}return e.on.atomCreation.next(l),l}var er=class{trackers=new Map;latestSignalAtoms;mutableAtoms;constructor(e,t){let n=fn(t,{key:`*${e.key}`,default:null},[`mutable`,`updates`]);this.latestSignalAtoms=W(t,n),this.mutableAtoms=e,this.mutableAtoms.subject.subscribe(`store=${t.config.name}::tracker-atom-family`,e=>{let{type:n,token:r}=e;if(r.family){let e=M(r.family.subKey);switch(n){case`state_creation`:this.trackers.set(e,new Qn(r,t));break;case`state_disposal`:{let t=this.trackers.get(e);t&&(t[Symbol.dispose](),this.trackers.delete(e))}}}})}};function tr(e,t,n){let r={key:t.key,type:`mutable_atom_family`},i=e.families.get(t.key);i&&e.config.isProduction===!0&&e.logger.error(`❗`,`mutable_atom_family`,t.key,`Overwriting an existing ${F[i.type]} "${i.key}" in store "${e.config.name}". You can safely ignore this warning if it is due to hot module replacement.`);let a=new P,o=n=>{let r=N(n),i={key:t.key,subKey:r},a=`${t.key}(${r})`,o=I(e),s={key:a,class:t.class};return t.effects&&(s.effects=t.effects(n)),$n(o,s,i)},s={...r,create:o,class:t.class,subject:a,install:e=>tr(e,t),internalRoles:n};return e.families.set(t.key,s),hn(e,{key:`${t.key}:JSON`,get:e=>({get:t})=>t(r,e).toJSON(),set:e=>({set:n},i)=>{n(r,e,t.class.fromJSON(i))}},[`mutable`,`json`]),new er(s,e),r}function nr(e,t){let n=I(t),r=`${e.key}:JSON`;return n.families.get(r)}var X=(e,t)=>t.family?J(e,W(I(e),{key:`${t.family.key}:JSON`,type:`writable_pure_selector_family`}),M(t.family.subKey)):{type:`writable_pure_selector`,key:`${t.key}:JSON`};function rr(e){let t={type:`atom`,key:`*${e.key}`};return e.family&&(t.family={key:`*${e.family.key}`,subKey:e.family.subKey}),t}function ir(e){return typeof e==`object`&&!!e&&`do`in e&&`undo`in e&&`subscribe`in e&&`READONLY_VIEW`in e&&`toJSON`in e}function Z(e,t,n){let{key:r,subject:i,type:a}=t,o=e.valueMap.get(r);if(o instanceof et&&!o.done){let t=o;return n instanceof Promise?(t.use(n),t):(e.valueMap.set(r,n),n)}if(n instanceof Promise){let o=new et(n);return e.valueMap.set(r,o),o.then(function(n){if(e.valueMap.get(r)===o){switch(vn(e,t),Z(e,t,n),a){case`atom`:sr(e,t);break;case`readonly_pure_selector`:case`writable_pure_selector`:cr(e,r);break}yn(e),i.next({newValue:n,oldValue:o})}}).catch(n=>{e.logger.error(`💥`,t.type,r,`rejected:`,n)}),o}return e.logger.info(`📝`,t.type,t.key,`writing to cache`,n),e.valueMap.set(r,n),n}function ar(e,t,n){e.logger.info(`📖`,t.type,t.key,`reading cached value`);let r=e.valueMap.get(t.key);if(n===`mut`&&t.type===`mutable_atom`&&V(e)){let n=t,{parent:i}=e;if(e.valueMap.hasOwn(n.key))return r;let a=i.valueMap.get(n.key);e.logger.info(`📃`,`atom`,n.key,`copying`);let o=a.toJSON(),s=n.class.fromJSON(o);e.valueMap.set(n.key,s),new Qn(n,i),r=s}return r}function or(e,t){let n=e.valueMap.get(t);if(n instanceof et){let r=e.readonlySelectors.get(t),i=e.writableSelectors.get(t),a=G(e,r??i);n.use(a);return}e.operation.open&&e.operation.prev.set(t,n),e.valueMap.delete(t),e.logger.info(`🗑`,`state`,t,`evicted`)}function sr(e,t){let n=I(e),{key:r,type:i}=t,a=n.selectorAtoms.getRelatedKeys(r);if(n.logger.info(`🧹`,i,r,a?`evicting ${a.size} states downstream:`:`no downstream states`,a??`to evict`),a){n.operation.open&&n.logger.info(`🧹`,i,r,`[ ${[...n.operation.done].join(`, `)} ] already done`);for(let e of a)bn(n,e)||(or(n,e),xn(n,e))}}function cr(e,t){let n=I(e),r=n.selectorGraph.getRelationEntries({upstreamSelectorKey:t}).filter(([e,{source:n}])=>n===t);for(let[t]of r)bn(n,t)||(or(n,t),xn(n,t),cr(e,t))}function lr(e,t,n,r){let i=`atom`,{key:a}=t;e.logger.info(`🔨`,i,a,`is being created`);let o=I(e),s=o.atoms.get(a);if(s?.type===i&&e.config.isProduction===!0)return e.logger.error(`❌`,`atom`,a,`Tried to create atom, but it already exists in the store.`),R(s);let c=new P,l={...t,type:i,install:e=>(e.logger.info(`🛠️`,i,a,`installing in store "${e.config.name}"`),lr(e,t,n)),subject:c};n&&(l.family=n),r&&(l.internalRoles=r),o.atoms.set(a,l);let u=R(l);if(t.effects){let n=0,r=[];for(let i of t.effects){let t=i({resetSelf:()=>{On(e,u)},setSelf:t=>{Y(e,u,t)},onSet:t=>Xn(e,u,`effect[${n}]`,t),token:u,store:bt(e)});t&&r.push(t),++n}l.cleanup=()=>{for(let e of r)e instanceof Promise?e.then(e=>e?.()):e()}}return e.on.atomCreation.next(u),u}function ur(e,t){return`internalRoles`in e?e.internalRoles.includes(t):!1}function dr(e,t){let n=I(e),{key:r,family:i}=t,a=W(n,t);if(!i)e.logger.error(`❌`,`atom`,r,`Standalone atoms cannot be disposed.`);else{a.cleanup?.();let o=e.valueMap.get(a.key),s=W(e,rn(e,t)).subject,c={type:`state_disposal`,subType:`atom`,token:t,value:o,timestamp:Date.now()};s.next(c);let l=V(n);if(n.atoms.delete(r),n.valueMap.delete(r),n.selectorAtoms.delete(r),n.atomsThatAreDefault.delete(r),n.moleculeData.delete(i.key,i.subKey),e.timelineTopics.delete(r),t.type===`mutable_atom`&&(dr(e,rr(t)),e.trackers.delete(r)),e.logger.info(`🔥`,`atom`,r,`deleted`),l&&n.transactionMeta.phase===`building`){let e=n.transactionMeta.update.subEvents.at(-1),t=e?.type===`molecule_disposal`&&e.values.some(([e])=>e===a.family?.key),r=ur(a,`tracker:signal`);!t&&!r&&n.transactionMeta.update.subEvents.push(c)}else e.on.atomDisposal.next(t)}}var fr=se(U.STORE);function pr({children:e,store:t=U.STORE}){return fr.Provider({value:t,children:e})}function mr(e,...t){let n;if(t.length===2){let r=t[0],i=t[1];n=J(e,r,i)}else n=t[0];return n}function hr(...e){let t=ce(fr),n=mr(t,...e);return e=>{Y(t,n,e)}}function gr(e,t){let[n,r]=te(t(),{equals:!1});return ne(()=>{let n=()=>r(()=>t()),i=e(n);n(),re(()=>{i()})}),()=>(n(),t())}function Q(...e){let t=ce(fr),n=mr(t,...e),r=yt();return gr(e=>Xn(t,n,`use-o:${r}`,e),()=>q(t,n))}var _r=Qe([`set`,`truncate`,`extend`,`pop`,`push`,`shift`,`unshift`,`copyWithin`,`fill`,`splice`,`reverse`,`sort`]),vr=class e extends Array{mode=`record`;subject=new P;READONLY_VIEW=this;constructor(...e){return super(...e),new Proxy(this,{set:(e,t,n,r)=>{if(typeof t==`string`&&!Number.isNaN(Number.parseInt(t,10))){let r=Number(t),i;return this.mode===`record`&&(i=e[r]),e[r]=n,i?this.emit({type:`set`,index:r,next:n,prev:i}):this.mode===`record`&&this.emit({type:`set`,index:r,next:n}),!0}if(t===`length`){if(this.mode===`record`){let t=e.length;if(t===n)return!0;if(t>n){let t=e.slice(n);e.length=n,this.emit({type:`truncate`,length:n,items:t})}else e.length=n,this.emit({type:`extend`,next:n,prev:t})}else e.length=n;return!0}return Reflect.set(e,t,n,r)}})}toJSON(){return[...this]}static fromJSON(t){return new e(...t)}push(...e){let t;return this.mode===`record`?(this.mode=`playback`,t=super.push(...e),this.mode=`record`,this.emit({type:`push`,items:e})):t=super.push(...e),t}pop(){let e;return this.mode===`record`?(this.mode=`playback`,e=super.pop(),e===void 0?this.emit({type:`pop`}):this.emit({type:`pop`,value:e}),this.mode=`record`):e=super.pop(),e}shift(){let e;return this.mode===`record`?(this.mode=`playback`,e=super.shift(),e===void 0?this.emit({type:`shift`}):this.emit({type:`shift`,value:e}),this.mode=`record`):e=super.shift(),e}unshift(...e){let t;return this.mode===`record`?(this.mode=`playback`,t=super.unshift(...e),this.emit({type:`unshift`,items:e}),this.mode=`record`):t=super.unshift(...e),t}reverse(){return super.reverse(),this.mode===`record`&&this.emit({type:`reverse`}),this}fill(e,t,n){if(this.mode===`record`){this.mode=`playback`;let r=this.slice(t,n);super.fill(e,t,n),t===void 0?this.emit({type:`fill`,value:e,prev:r}):n===void 0?this.emit({type:`fill`,value:e,start:t,prev:r}):this.emit({type:`fill`,value:e,start:t,end:n,prev:r}),this.mode=`record`}else super.fill(e,t,n);return this}sort(e){if(this.mode===`record`){this.mode=`playback`;let t=[...this];super.sort(e);let n=[...this];this.emit({type:`sort`,next:n,prev:t}),this.mode=`record`}return this}splice(...e){let[t,n,...r]=e,i=this.mode;i===`record`&&(this.mode=`playback`);let a=super.splice(...e);return i===`record`&&(this.mode=`record`),n===void 0?this.emit({type:`splice`,start:t,items:r,deleted:a,deleteCount:a.length}):this.emit({type:`splice`,start:t,items:r,deleted:a,deleteCount:n}),a}copyWithin(e,t,n){let r=this.mode,i;return r===`record`&&(i=this.slice(e),this.mode=`playback`),super.copyWithin(e,t,n),r===`record`&&(this.mode=`record`),i&&(n===void 0?this.emit({type:`copyWithin`,prev:i,target:e,start:t}):this.emit({type:`copyWithin`,prev:i,target:e,start:t,end:n})),this}subscribe(e,t){return this.subject.subscribe(e,t)}emit(t){this.subject.next(e.packUpdate(t))}doStep(e){switch(e.type){case`copyWithin`:this.copyWithin(e.target,e.start,e.end);break;case`extend`:this.length=e.next;break;case`fill`:this.fill(e.value,e.start,e.end);break;case`pop`:this.pop();break;case`push`:this.push(...e.items);break;case`reverse`:this.reverse();break;case`shift`:this.shift();break;case`sort`:for(let t=0;t<e.next.length;t++)this[t]=e.next[t];this.length=e.next.length;break;case`splice`:this.splice(e.start,e.deleteCount,...e.items);break;case`truncate`:this.length=e.length;break;case`set`:this[e.index]=e.next;break;case`unshift`:this.unshift(...e.items);break}}do(t){this.mode=`playback`;let n=e.unpackUpdate(t);return this.doStep(n),this.mode=`record`,null}undoStep(e){switch(e.type){case`copyWithin`:for(let t=0;t<e.prev.length;t++)this[t+e.target]=e.prev[t];break;case`extend`:this.length=e.prev;break;case`fill`:{let t=e.start??0;for(let n=0;n<e.prev.length;n++)this[n+t]=e.prev[n]}break;case`pop`:e.value&&this.push(e.value);break;case`push`:{let t=e.items.length-1;for(;t>=0;)this.pop(),--t}break;case`reverse`:this.reverse();break;case`shift`:e.value&&this.unshift(e.value);break;case`sort`:for(let t=0;t<e.prev.length;t++)this[t]=e.prev[t];this.length=e.prev.length;break;case`set`:if(e.prev)this[e.index]=e.prev;else{delete this[e.index];let t=this.findIndex((e,t)=>!Object.hasOwn(this,t));t!==-1&&(this.length=t)}break;case`splice`:this.splice(e.start,e.items.length,...e.deleted);break;case`truncate`:this.push(...e.items);break;case`unshift`:{let t=e.items.length-1;for(;t>=0;)this.shift(),--t}break}}undo(t){this.mode=`playback`;let n=e.unpackUpdate(t);return this.undoStep(n),this.mode=`record`,null}static packUpdate(e){let t=_r[e.type]+``;switch(e.type){case`set`:return t+=e.index+``+A(e.next),e.prev!==void 0&&(t+=``+A(e.prev)),t;case`truncate`:return t+e.length+``+e.items.map(A).join(``);case`extend`:return t+e.next+``+e.prev;case`pop`:case`shift`:return e.value!==void 0&&(t+=A(e.value)),t;case`push`:case`unshift`:return t+e.items.map(A).join(``);case`copyWithin`:return t+=e.target+``+e.start,e.end!==void 0&&(t+=``+e.end),t+=``+e.prev.map(A).join(``),t;case`fill`:return t+=A(e.value),e.start!==void 0&&(t+=``+e.start),e.end!==void 0&&(t+=``+e.end),t+=``+e.prev.map(A).join(``),t;case`splice`:return t+e.start+``+e.deleteCount+``+e.items.map(A).join(``)+``+e.deleted.map(A).join(``);case`reverse`:return t;case`sort`:return t+e.next.map(A).join(``)+``+e.prev.map(A).join(``)}}static unpackUpdate(e){let[t,n]=e.split(``),r=_r[t];switch(r){case`set`:{let[e,t,i]=n.split(``),a=+e,o=j(t);return i===void 0?{type:r,index:a,next:o}:{type:r,index:a,next:o,prev:j(i)}}case`truncate`:{let[e,...t]=n.split(``);return{type:r,length:+e,items:t.map(j)}}case`extend`:{let[e,t]=n.split(``);return{type:r,next:+e,prev:+t}}case`pop`:case`shift`:return n===``?{type:r}:{type:r,value:j(n)};case`push`:case`unshift`:return{type:r,items:n.split(``).map(j)};case`copyWithin`:{let[e,t]=n.split(``),i=t?t.split(``).map(j):[],[a,o,s]=e.split(``),c=+a,l=+o;return s===void 0?{type:r,target:c,start:l,prev:i}:{type:r,target:c,start:l,prev:i,end:+s}}case`fill`:{let[e,t]=n.split(``),i=t?t.split(``).map(j):[],[a,o,s]=e.split(``),c=j(a);if(o===void 0&&s===void 0)return{type:r,value:c,prev:i};let l=+o;return s===void 0?{type:r,value:c,prev:i,start:l}:{type:r,value:c,prev:i,start:l,end:+s}}case`splice`:{let[e,t,i,a]=n.split(``);return{type:r,start:+e,deleteCount:+t,items:i?i.split(``).map(j):[],deleted:a?a.split(``).map(j):[]}}case`reverse`:return{type:r};case`sort`:{let[e,t]=n.split(``);return{type:r,next:e?e.split(``).map(j):[],prev:t?t.split(``).map(j):[]}}}}},yr=class e{simplifyParams(...t){let n,r;if(t[0]instanceof e)[n,r]=t[0].simplify();else{if([n,r=1n]=t,r===0n)return{error:Error(),numerator:n};r<0n&&(n=-n,r=-r)}return[n,r]}constructor(e,t=1n){this.fractionalValues=new Map,e&&t&&this.add(e,t)}add(...e){if(typeof e[0]==`bigint`){let[t,n=1n]=e;if(n===0n)return console.error(`Attempted to add (${t} / ${n}) to a rational.`),this;n<0n&&(t=-t,n=-n);let r=t,i=this.fractionalValues.get(n);i&&(r=i+t),this.fractionalValues.set(n,r)}else for(let[t,n]of e[0].entries())this.add(n,t);return this}sub(...e){if(typeof e[0]==`bigint`){let[t,n=1n]=e;this.add(-t,n)}else for(let[t,n]of e[0].entries())this.add(-n,t);return this}mul(...e){let t=this.simplifyParams(...e);if(`error`in t)return t.error.message=`Attempted to multiply by (${t.numerator} / 0)`,console.error(t.error),this;let[n,r]=t,i=[...this.entries()];this.fractionalValues.clear();for(let[e,t]of i)this.fractionalValues.set(e*r,t*n);return this}div(...e){let t=this.simplifyParams(...e);if(`error`in t)return t.error.message=`Attempted to divide by (${t.numerator} / 0)`,console.error(t.error),this;let[n,r]=t;return this.mul(r,n),this}entries(){return this.fractionalValues.entries()}consolidate(){let e=new br;for(let t of this.entries())for(let n of t)n!==0n&&n!==1n&&(e=e.and(n));let t=e.compute(),n=0n;for(let[e,r]of this.fractionalValues.entries())n+=r*t/e;return t<0n?[-n,-t]:[n,t]}simplify(){let[e,t]=this.consolidate();if(e===0n)return[0n,1n];let n=new br(t).and(e).compute();return[n/t,n/e]}isGreaterThan(...e){let t=this.simplify(),n=this.simplifyParams(...e);return`error`in n?(n.error.message=`Attempted to compare (${n.numerator} / 0) to (${t[0]} / ${t[1]})`,console.error(n.error),!1):t[0]*n[1]>t[1]*n[0]}},br=class{constructor(e){this.factors=new Map,e&&xr(e,this.factors)}and(e){let t=xr(e);for(let[e,n]of t){let t=this.factors.get(e);(!t||t<n)&&this.factors.set(e,n)}return this}compute(){let e=1n;for(let[t,n]of this.factors)e*=t**n;return e}};function xr(e,t=new Map){let n=2n;for(;n<=e;){if(e%n===0n){let r=t.get(n)??0n;t.set(n,r+1n),xr(e/n,t);break}n+=1n}return t.size===0&&t.set(e,1n),t}var Sr={class:`_class_r58xi_1`},Cr=D(`<app><header><h1>Rationality Playground</h1></header><main><new-rational><button type=button>Add`,!0,!1,!1),wr=D(`<rational-breakdown><fraction-list><infix-buttons><button type=button>−</button><button type=button>+</button><button type=button>÷</button><button type=button>×</button></infix-buttons></fraction-list><equals>=</equals><equals></equals><quotient><quotient-bits></quotient-bits><number>`,!0,!1,!1),Tr=D(`<plus>+`),Er=D(`<bit>`),Dr=D(`<fraction><numerator></numerator><solidus></solidus><denominator>`),Or=D(`<fieldset><input type=number placeholder=1><solidus></solidus><input type=number placeholder=1>`),kr=()=>Math.random().toString(36).slice(2),Ar=tt({key:`newRationalNumerator`,default:void 0}),jr=tt({key:`newRationalDenominator`,default:void 0}),Mr=rt({key:`newNumerator`,default:void 0}),Nr=rt({key:`newDenominator`,default:void 0}),Pr=nt({key:`rationalList`,class:vr}),Fr=rt({key:`rational`,default:()=>new yr(0n,1n)}),Ir=pt({key:`simplified`,get:e=>({get:t})=>{let[n,r]=t(Fr,e).simplify();return[n,r]}}),Lr=pt({key:`float`,get:e=>({get:t})=>{let[n,r]=t(Ir,e);return Number(n)/Number(r)}}),Rr=pt({key:`numberBits`,get:e=>({get:t})=>{let[n,r]=t(Ir,e),i=Number(n)/Number(r),a=new ArrayBuffer(8);new DataView(a).setFloat64(0,i,!1);let o=new Uint8Array(a);return[...Array.from(o).map(e=>e.toString(2).padStart(8,`0`)).join(``)].map(e=>e===`1`?`1`:`0`)}}),zr=pt({key:`isFloatPrecise`,get:e=>({get:t})=>{let[,n]=t(Ir,e);return n===0n?!1:n>0n&&(n&n-1n)==0n}}),Br=pt({key:`approximateValue`,get:e=>({get:t})=>{let n=t(Lr,e);return Number.isFinite(n)?Number(n.toPrecision(5)).toString():n.toString()}}),$=ht({key:`combineIntoRationalTx`,do:({get:e,set:t,reset:n},r,i)=>{let a=e(Mr,r)??1n,o=e(Nr,r)??1n;t(Fr,r,e(Fr,r)[i](a,o)),n(Mr,r),n(Nr,r)}});function Vr(){let e=Q(Pr);return(()=>{var t=Cr(),n=t.firstChild.nextSibling,r=n.firstChild,i=r.firstChild;return O(n,E(Pe,{get each(){return e()},children:e=>E(Hr,{key:e})}),r),r._$owner=C(),O(r,E(Gr,{numeratorAtom:Ar,denominatorAtom:jr}),i),i.$$click=()=>{let e=`rat::${kr()}`;gt($)(e,`add`),mt(Fr,e,new yr(at(Ar)??1n,at(jr)??1n)),mt(Pr,t=>(t.push(e),t)),ft(Ar),ft(jr)},b(()=>He(t,Sr.class)),t})()}function Hr(e){let t=Q(Fr,e.key),n=Q(Ir,e.key),r=Q(Lr,e.key),i=Q(zr,e.key),a=Q(Br,e.key),o=Q(Rr,e.key);return(()=>{var s=wr(),c=s.firstChild,l=c.firstChild,u=l.firstChild,d=u.nextSibling,f=d.nextSibling,p=f.nextSibling,m=c.nextSibling.nextSibling,h=m.nextSibling.firstChild,g=h.nextSibling;return s._$owner=C(),c._$owner=C(),O(c,E(Pe,{get each(){return[...t().entries()]},children:([e,t],n)=>[E(Fe,{get when(){return n()!==0},get children(){return Tr()}}),E(Ur,{numerator:t,denominator:e})]}),l),l._$owner=C(),u.$$click=()=>{gt($)(e.key,`sub`)},d.$$click=()=>{gt($)(e.key,`add`)},f.$$click=()=>{gt($)(e.key,`div`)},p.$$click=()=>{gt($)(e.key,`mul`)},O(c,E(Wr,{get key(){return e.key}}),null),O(s,E(Ur,{get numerator(){return n()[0]},get denominator(){return n()[1]}}),m),O(m,()=>i()?`=`:`≈`),h._$owner=C(),O(h,E(Pe,{get each(){return o()},children:e=>(()=>{var t=Er();return Ve(t,`data-css`,e===`1`?`one`:void 0),t})()})),O(g,(()=>{var e=Ie(()=>!!i());return()=>e()?r():a()})()),s})()}function Ur(e){return(()=>{var t=Dr(),n=t.firstChild,r=n.nextSibling.nextSibling;return O(n,()=>Number(e.numerator)),O(r,()=>Number(e.denominator)),b(t=>{var i=e.numerator===1n?`one`:void 0,a=e.denominator===1n?`one`:void 0;return i!==t.e&&Ve(n,`data-css`,t.e=i),a!==t.t&&Ve(r,`data-css`,t.t=a),t},{e:void 0,t:void 0}),t})()}function Wr({key:e}){return E(Gr,{numeratorAtom:it(Mr,e),denominatorAtom:it(Nr,e)})}function Gr({numeratorAtom:e,denominatorAtom:t}){let n=Q(e),r=hr(e),i=Q(t),a=hr(t);return(()=>{var e=Or(),t=e.firstChild,o=t.nextSibling.nextSibling;return t.$$input=e=>{r(BigInt(e.currentTarget.value))},o.$$input=e=>{a(BigInt(e.currentTarget.value))},b(()=>t.value=n()?.toString()),b(()=>o.value=i()?.toString()),e})()}Be([`click`,`input`]),ze(()=>E(pr,{get children(){return E(Vr,{})}}),document.getElementById(`app`));