diff --git a/CHANGELOG.md b/CHANGELOG.md index 810c01d..2505ee6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.5.3] - 2026-03-31 + +### Fixed + +- **Symbol property access on proxied state** — accessing or setting Symbol-keyed properties (e.g. those used internally by Svelte or JavaScript runtimes) on a proxied state object no longer throws or triggers change tracking incorrectly; symbols are now passed through transparently + ## [1.5.2] - 2026-03-31 ### Fixed diff --git a/docs/assets/index-2ubidnA3.js b/docs/assets/index-CXrV2wig.js similarity index 90% rename from docs/assets/index-2ubidnA3.js rename to docs/assets/index-CXrV2wig.js index a69c170..42212b9 100644 --- a/docs/assets/index-2ubidnA3.js +++ b/docs/assets/index-CXrV2wig.js @@ -1,5 +1,5 @@ (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=Array.isArray,t=Array.prototype.indexOf,n=Array.prototype.includes,r=Array.from,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyDescriptors,s=Object.prototype,c=Array.prototype,l=Object.getPrototypeOf,u=Object.isExtensible,d=()=>{};function f(e){return e()}function p(e){for(var t=0;t{e=n,t=r}),resolve:e,reject:t}}var h=1024,g=2048,_=4096,v=8192,y=16384,b=32768,x=1<<25,S=65536,C=1<<19,w=1<<20,T=1<<25,E=65536,ee=1<<21,te=1<<22,ne=1<<23,re=Symbol(`$state`),ie=Symbol(`legacy props`),ae=Symbol(``),oe=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},se=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function ce(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function le(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function ue(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function de(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function fe(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function pe(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function me(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function he(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function ge(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function _e(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function ve(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var ye={},be=Symbol(),xe=`http://www.w3.org/1999/xhtml`;function Se(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function Ce(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function we(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var D=!1;function Te(e){D=e}var O;function Ee(e){if(e===null)throw Se(),ye;return O=e}function De(){return Ee(hn(O))}function k(e){if(D){if(hn(O)!==null)throw Se(),ye;O=e}}function Oe(e=1){if(D){for(var t=e,n=O;t--;)n=hn(n);O=n}}function ke(e=!0){for(var t=0,n=O;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else (r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=hn(n);e&&n.remove(),n=i}}function Ae(e){if(!e||e.nodeType!==8)throw Se(),ye;return e.data}function je(e){return e===this.v}function Me(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function Ne(e){return!Me(e,this.v)}var Pe=!1,Fe=!1;function Ie(){Fe=!0}var Le=null;function Re(e){Le=e}function ze(e,t=!1,n){Le={p:Le,i:!1,c:null,e:null,s:e,x:null,r:B,l:Fe&&!t?{s:null,u:null,$:[]}:null}}function Be(e){var t=Le,n=t.e;if(n!==null){t.e=null;for(var r of n)jn(r)}return e!==void 0&&(t.x=e),t.i=!0,Le=t.p,e??{}}function Ve(){return!Fe||Le!==null&&Le.l===null}var He=[];function Ue(){var e=He;He=[],p(e)}function We(e){if(He.length===0&&!mt){var t=He;queueMicrotask(()=>{t===He&&Ue()})}He.push(e)}function Ge(){for(;He.length>0;)Ue()}function Ke(e){var t=B;if(t===null)return z.f|=ne,e;if(!(t.f&32768)&&!(t.f&4))throw e;qe(e,t)}function qe(e,t){for(;t!==null;){if(t.f&128){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}var Je=~(g|_|h);function Ye(e,t){e.f=e.f&Je|t}function Xe(e){e.f&512||e.deps===null?Ye(e,h):Ye(e,_)}function Ze(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=E,Ze(t.deps))}function Qe(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),Ze(e.deps),Ye(e,h)}function $e(e,t,n){if(e==null)return t(void 0),n&&n(void 0),d;let r=Cr(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}var et=[];function tt(e,t){return{subscribe:nt(e,t).subscribe}}function nt(e,t=d){let n=null,r=new Set;function i(t){if(Me(e,t)&&(e=t,n)){let t=!et.length;for(let t of r)t[1](),et.push(t,e);if(t){for(let e=0;e{r.delete(c),r.size===0&&n&&(n(),n=null)}}return{set:i,update:a,subscribe:o}}function rt(e,t,n){let r=!Array.isArray(e),i=r?[e]:e;if(!i.every(Boolean))throw Error(`derived() expects stores as input, got a falsy value`);let a=t.length<2;return tt(n,(e,n)=>{let o=!1,s=[],c=0,l=d,u=()=>{if(c)return;l();let i=t(r?s[0]:s,e,n);a?e(i):l=typeof i==`function`?i:d},f=i.map((e,t)=>$e(e,e=>{s[t]=e,c&=~(1<{c|=1<t=e)(),t}var at=!1,ot=!1,st=Symbol();function A(e,t,n){let r=n[t]??={store:null,source:Zt(void 0),unsubscribe:d};if(r.store!==e&&!(st in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=d;else{var i=!0;r.unsubscribe=$e(e,e=>{i?r.source.v=e:P(r.source,e)}),i=!1}return e&&st in n?it(e):V(r.source)}function ct(){let e={};function t(){kn(()=>{for(var t in e)e[t].unsubscribe();i(e,st,{enumerable:!1,value:!0})})}return[e,t]}function lt(e){var t=ot;try{return ot=!1,[e(),ot]}finally{ot=t}}var ut=new Set,j=null,dt=null,ft=null,pt=null,mt=!1,ht=!1,gt=null,_t=null,vt=0,yt=1,bt=class e{id=yt++;current=new Map;previous=new Map;#e=new Set;#t=new Set;#n=new Map;#r=new Map;#i=null;#a=[];#o=[];#s=new Set;#c=new Set;#l=new Map;is_fork=!1;#u=!1;#d=new Set;#f(){return this.is_fork||this.#r.size>0}#p(){for(let n of this.#d)for(let r of n.#r.keys()){for(var e=!1,t=r;t.parent!==null;){if(this.#l.has(t)){e=!0;break}t=t.parent}if(!e)return!0}return!1}skip_effect(e){this.#l.has(e)||this.#l.set(e,{d:[],m:[]})}unskip_effect(e){var t=this.#l.get(e);if(t){this.#l.delete(e);for(var n of t.d)Ye(n,g),this.schedule(n);for(n of t.m)Ye(n,_),this.schedule(n)}}#m(){if(vt++>1e3&&(ut.delete(this),St()),!this.#f()){for(let e of this.#s)this.#c.delete(e),Ye(e,g),this.schedule(e);for(let e of this.#c)Ye(e,_),this.schedule(e)}let t=this.#a;this.#a=[],this.apply();var n=gt=[],r=[],i=_t=[];for(let e of t)try{this.#h(e,n,r)}catch(t){throw kt(e),t}if(j=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(gt=null,_t=null,this.#f()||this.#p()){this.#g(r),this.#g(n);for(let[e,t]of this.#l)Ot(e,t)}else{this.#n.size===0&&ut.delete(this),this.#s.clear(),this.#c.clear();for(let e of this.#e)e(this);this.#e.clear(),dt=this,wt(r),wt(n),dt=null,this.#i?.resolve()}var o=j;if(this.#a.length>0){let e=o??=this;e.#a.push(...this.#a.filter(t=>!e.#a.includes(t)))}o!==null&&(ut.add(o),o.#m()),ut.has(this)||this.#_()}#h(e,t,n){e.f^=h;for(var r=e.first;r!==null;){var i=r.f,a=(i&96)!=0;if(!(a&&i&1024||i&8192||this.#l.has(r))&&r.fn!==null){a?r.f^=h:i&4?t.push(r):Pe&&i&16777224?n.push(r):mr(r)&&(i&16&&this.#c.add(r),yr(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#g(e){for(var t=0;t!this.current.has(e));if(r.length===0)e&&l.discard();else if(t.length>0){l.activate();var i=new Set,a=new Map;for(var o of t)Tt(o,r,i,a);a=new Map;var s=[...l.current.keys()].filter(e=>this.current.has(e)?this.current.get(e)[0]!==e:!0);for(let e of this.#o)!(e.f&155648)&&Et(e,s,a)&&(e.f&4194320?(Ye(e,g),l.schedule(e)):l.#s.add(e));if(l.#a.length>0){l.apply();for(var c of l.#a)l.#h(c,[],[]);l.#a=[]}l.deactivate()}}for(let e of ut)e.#d.has(this)&&(e.#d.delete(this),e.#d.size===0&&!e.#f()&&(e.activate(),e.#m()))}increment(e,t){let n=this.#n.get(t)??0;if(this.#n.set(t,n+1),e){let e=this.#r.get(t)??0;this.#r.set(t,e+1)}}decrement(e,t,n){let r=this.#n.get(t)??0;if(r===1?this.#n.delete(t):this.#n.set(t,r-1),e){let e=this.#r.get(t)??0;e===1?this.#r.delete(t):this.#r.set(t,e-1)}this.#u||n||(this.#u=!0,We(()=>{this.#u=!1,this.flush()}))}transfer_effects(e,t){for(let t of e)this.#s.add(t);for(let e of t)this.#c.add(e);e.clear(),t.clear()}oncommit(e){this.#e.add(e)}ondiscard(e){this.#t.add(e)}settled(){return(this.#i??=m()).promise}static ensure(){if(j===null){let t=j=new e;ht||(ut.add(j),mt||We(()=>{j===t&&t.flush()}))}return j}apply(){if(!Pe||!this.is_fork&&ut.size===1){ft=null;return}ft=new Map;for(let[e,[t]]of this.current)ft.set(e,t);for(let n of ut)if(!(n===this||n.is_fork)){var e=!1,t=!1;if(n.id0)){Jt.clear();for(let e of Ct){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)Ct.has(n)&&(Ct.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||yr(n)}}Ct.clear()}}Ct=null}}function Tt(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(let i of e.reactions){let e=i.f;e&2?Tt(i,t,n,r):e&4194320&&!(e&2048)&&Et(i,t,r)&&(Ye(i,g),Dt(i))}}function Et(e,t,r){let i=r.get(e);if(i!==void 0)return i;if(e.deps!==null)for(let i of e.deps){if(n.call(t,i))return!0;if(i.f&2&&Et(i,t,r))return r.set(i,!0),!0}return r.set(e,!1),!1}function Dt(e){j.schedule(e)}function Ot(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),Ye(e,h);for(var n=e.first;n!==null;)Ot(n,t),n=n.next}}function kt(e){Ye(e,h);for(var t=e.first;t!==null;)kt(t),t=t.next}function At(e){let t=0,n=Xt(0),r;return()=>{On()&&(V(n),In(()=>(t===0&&(r=Cr(()=>e(()=>nn(n)))),t+=1,()=>{We(()=>{--t,t===0&&(r?.(),r=void 0,nn(n))})})))}}var jt=S|C;function Mt(e,t,n,r){new Nt(e,t,n,r)}var Nt=class{parent;is_pending=!1;transform_error;#e;#t=D?O:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=At(()=>(this.#m=Xt(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=B;t.b=this,t.f|=128,n(e)},this.parent=B.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=Ln(()=>{if(D){let e=this.#t;De();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#v():this.#g()}else this.#y()},jt),D&&(this.#e=O)}#g(){try{this.#a=Rn(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed;t&&(this.#s=Rn(()=>{t(this.#e,()=>e,()=>()=>{})}))}#v(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=Rn(()=>e(this.#e)),We(()=>{var e=this.#c=document.createDocumentFragment(),t=pn();e.append(t),this.#a=this.#x(()=>Rn(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,Gn(this.#o,()=>{this.#o=null}),this.#b(j))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=Rn(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();Yn(this.#a,e);let t=this.#n.pending;this.#o=Rn(()=>t(this.#e))}else this.#b(j)}catch(e){this.error(e)}}#b(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){Qe(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#x(e){var t=B,n=z,r=Le;nr(this.#i),tr(this.#i),Re(this.#i.ctx);try{return bt.ensure(),e()}catch(e){return Ke(e),null}finally{nr(t),tr(n),Re(r)}}#S(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#S(e,t);return}this.#u+=e,this.#u===0&&(this.#b(t),this.#o&&Gn(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#S(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,We(()=>{this.#d=!1,this.#m&&$t(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),V(this.#m)}error(e){var t=this.#n.onerror;let n=this.#n.failed;if(!t&&!n)throw e;this.#a&&=(Hn(this.#a),null),this.#o&&=(Hn(this.#o),null),this.#s&&=(Hn(this.#s),null),D&&(Ee(this.#t),Oe(),Ee(ke()));var r=!1,i=!1;let a=()=>{if(r){we();return}r=!0,i&&ve(),this.#s!==null&&Gn(this.#s,()=>{this.#s=null}),this.#x(()=>{this.#y()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){qe(e,this.#i&&this.#i.parent)}n&&(this.#s=this.#x(()=>{try{return Rn(()=>{var t=B;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return qe(e,this.#i.parent),null}}))};We(()=>{var t;try{t=this.transform_error(e)}catch(e){qe(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>qe(e,this.#i&&this.#i.parent)):o(t)})}};function Pt(e,t,n,r){let i=Ve()?Rt:Bt;var a=e.filter(e=>!e.settled);if(n.length===0&&a.length===0){r(t.map(i));return}var o=B,s=Ft(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function l(e){s();try{r(e)}catch(e){o.f&16384||qe(e,o)}It()}if(n.length===0){c.then(()=>l(t.map(i)));return}var u=Lt();function d(){Promise.all(n.map(e=>zt(e))).then(e=>l([...t.map(i),...e])).catch(e=>qe(e,o)).finally(()=>u())}c?c.then(()=>{s(),d(),It()}):d()}function Ft(){var e=B,t=z,n=Le,r=j;return function(i=!0){nr(e),tr(t),Re(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function It(e=!0){nr(null),tr(null),Re(null),e&&j?.deactivate()}function Lt(){var e=B,t=e.b,n=j,r=t.is_rendered();return t.update_pending_count(1,n),n.increment(r,e),(i=!1)=>{t.update_pending_count(-1,n),n.decrement(r,e,i)}}function Rt(e){var t=2|g,n=z!==null&&z.f&2?z:null;return B!==null&&(B.f|=C),{ctx:Le,deps:null,effects:null,equals:je,f:t,fn:e,reactions:null,rv:0,v:be,wv:0,parent:n??B,ac:null}}function zt(e,t,n){let r=B;r===null&&ce();var i=void 0,a=Xt(be),o=!z,s=new Map;return Fn(()=>{var t=B,n=m();i=n.promise;try{Promise.resolve(e()).then(n.resolve,n.reject).finally(It)}catch(e){n.reject(e),It()}var c=j;if(o){if(t.f&32768)var l=Lt();if(r.b.is_rendered())s.get(c)?.reject(oe),s.delete(c);else{for(let e of s.values())e.reject(oe);s.clear()}s.set(c,n)}let u=(e,n=void 0)=>{if(l&&l(n===oe),!(n===oe||t.f&16384)){if(c.activate(),n)a.f|=ne,$t(a,n);else{a.f&8388608&&(a.f^=ne),$t(a,e);for(let[e,t]of s){if(s.delete(e),e===c)break;t.reject(oe)}}c.deactivate()}};n.promise.then(u,e=>u(null,e||`unknown`))}),kn(()=>{for(let e of s.values())e.reject(oe)}),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function M(e){let t=Rt(e);return Pe||ir(t),t}function Bt(e){let t=Rt(e);return t.equals=Ne,t}function Vt(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;nV(e))),t}function P(e,t,r=!1){return z!==null&&(!er||z.f&131072)&&Ve()&&z.f&4325394&&(rr===null||!n.call(rr,e))&&_e(),$t(e,r?an(t):t,_t)}function $t(e,t,n=null){if(!e.equals(t)){var r=e.v;Qn?Jt.set(e,t):Jt.set(e,r),e.v=t;var i=bt.ensure();if(i.capture(e,r),e.f&2){let t=e;e.f&2048&&Ut(t),ft===null&&Xe(t)}e.wv=pr(),rn(e,g,n),Ve()&&B!==null&&B.f&1024&&!(B.f&96)&&(sr===null?cr([e]):sr.push(e)),!i.is_fork&&qt.size>0&&!Yt&&en()}return t}function en(){Yt=!1;for(let e of qt)e.f&1024&&Ye(e,_),mr(e)&&yr(e);qt.clear()}function tn(e,t=1){var n=V(e),r=t===1?n++:n--;return P(e,n),r}function nn(e){P(e,e.v+1)}function rn(e,t,n){var r=e.reactions;if(r!==null)for(var i=Ve(),a=r.length,o=0;o{if(dr===d)return e();var t=z,n=dr;tr(null),fr(d);var r=e();return tr(t),fr(n),r};return i&&r.set(`length`,N(t.length,u)),new Proxy(t,{defineProperty(e,t,n){(!(`value`in n)||n.configurable===!1||n.enumerable===!1||n.writable===!1)&&he();var i=r.get(t);return i===void 0?f(()=>{var e=N(n.value,u);return r.set(t,e),e}):P(i,n.value,!0),!0},deleteProperty(e,t){var n=r.get(t);if(n===void 0){if(t in e){let e=f(()=>N(be,u));r.set(t,e),nn(o)}}else P(n,be),nn(o);return!0},get(e,n,i){if(n===re)return t;var o=r.get(n),s=n in e;if(o===void 0&&(!s||a(e,n)?.writable)&&(o=f(()=>N(an(s?e[n]:be),u)),r.set(n,o)),o!==void 0){var c=V(o);return c===be?void 0:c}return Reflect.get(e,n,i)},getOwnPropertyDescriptor(e,t){var n=Reflect.getOwnPropertyDescriptor(e,t);if(n&&`value`in n){var i=r.get(t);i&&(n.value=V(i))}else if(n===void 0){var a=r.get(t),o=a?.v;if(a!==void 0&&o!==be)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return n},has(e,t){if(t===re)return!0;var n=r.get(t),i=n!==void 0&&n.v!==be||Reflect.has(e,t);return(n!==void 0||B!==null&&(!i||a(e,t)?.writable))&&(n===void 0&&(n=f(()=>N(i?an(e[t]):be,u)),r.set(t,n)),V(n)===be)?!1:i},set(e,t,n,s){var c=r.get(t),l=t in e;if(i&&t===`length`)for(var d=n;dN(be,u)),r.set(d+``,p)):P(p,be)}if(c===void 0)(!l||a(e,t)?.writable)&&(c=f(()=>N(void 0,u)),P(c,an(n)),r.set(t,c));else{l=c.v!==be;var m=f(()=>an(n));P(c,m)}var h=Reflect.getOwnPropertyDescriptor(e,t);if(h?.set&&h.set.call(s,n),!l){if(i&&typeof t==`string`){var g=r.get(`length`),_=Number(t);Number.isInteger(_)&&_>=g.v&&P(g,_+1)}nn(o)}return!0},ownKeys(e){V(o);var t=Reflect.ownKeys(e).filter(e=>{var t=r.get(e);return t===void 0||t.v!==be});for(var[n,i]of r)i.v!==be&&!(n in e)&&t.push(n);return t},setPrototypeOf(){ge()}})}function on(e){try{if(typeof e==`object`&&e&&re in e)return e[re]}catch{}return e}function sn(e,t){return Object.is(on(e),on(t))}var cn,ln,un,dn;function fn(){if(cn===void 0){cn=window,ln=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;un=a(t,`firstChild`).get,dn=a(t,`nextSibling`).get,u(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),u(n)&&(n.__t=void 0)}}function pn(e=``){return document.createTextNode(e)}function mn(e){return un.call(e)}function hn(e){return dn.call(e)}function F(e,t){if(!D)return mn(e);var n=mn(O);if(n===null)n=O.appendChild(pn());else if(t&&n.nodeType!==3){var r=pn();return n?.before(r),Ee(r),r}return t&&yn(n),Ee(n),n}function I(e,t=!1){if(!D){var n=mn(e);return n instanceof Comment&&n.data===``?hn(n):n}if(t){if(O?.nodeType!==3){var r=pn();return O?.before(r),Ee(r),r}yn(O)}return O}function L(e,t=1,n=!1){let r=D?O:e;for(var i;t--;)i=r,r=hn(r);if(!D)return r;if(n){if(r?.nodeType!==3){var a=pn();return r===null?i?.after(a):r.before(a),Ee(a),a}yn(r)}return Ee(r),r}function gn(e){e.textContent=``}function _n(){return!Pe||Ct!==null?!1:(B.f&b)!==0}function vn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??`http://www.w3.org/1999/xhtml`,e,r)}function yn(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function bn(e){D&&mn(e)!==null&&gn(e)}var xn=!1;function Sn(){xn||(xn=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function Cn(e){var t=z,n=B;tr(null),nr(null);try{return e()}finally{tr(t),nr(n)}}function wn(e,t,n,r=n){e.addEventListener(t,()=>Cn(n));let i=e.__on_r;i?e.__on_r=()=>{i(),r(!0)}:e.__on_r=()=>r(!0),Sn()}function Tn(e){B===null&&(z===null&&fe(e),de()),Qn&&ue(e)}function En(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Dn(e,t){var n=B;n!==null&&n.f&8192&&(e|=v);var r={ctx:Le,deps:null,nodes:null,f:e|g|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};j?.register_created_effect(r);var i=r;if(e&4)gt===null?bt.ensure().schedule(r):gt.push(r);else if(t!==null){try{yr(r)}catch(e){throw Hn(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=S))}if(i!==null&&(i.parent=n,n!==null&&En(i,n),z!==null&&z.f&2&&!(e&64))){var a=z;(a.effects??=[]).push(i)}return r}function On(){return z!==null&&!er}function kn(e){let t=Dn(8,null);return Ye(t,h),t.teardown=e,t}function An(e){Tn(`$effect`);var t=B.f;if(!z&&t&32&&!(t&32768)){var n=Le;(n.e??=[]).push(e)}else return jn(e)}function jn(e){return Dn(4|w,e)}function Mn(e){return Tn(`$effect.pre`),Dn(8|w,e)}function Nn(e){bt.ensure();let t=Dn(64|C,e);return(e={})=>new Promise(n=>{e.outro?Gn(t,()=>{Hn(t),n(void 0)}):(Hn(t),n(void 0))})}function Pn(e){return Dn(4,e)}function Fn(e){return Dn(te|C,e)}function In(e,t=0){return Dn(8|t,e)}function R(e,t=[],n=[],r=[]){Pt(r,t,n,t=>{Dn(8,()=>e(...t.map(V)))})}function Ln(e,t=0){return Dn(16|t,e)}function Rn(e){return Dn(32|C,e)}function zn(e){var t=e.teardown;if(t!==null){let e=Qn,n=z;$n(!0),tr(null);try{t.call(null)}finally{$n(e),tr(n)}}}function Bn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&Cn(()=>{e.abort(oe)});var r=n.next;n.f&64?n.parent=null:Hn(n,t),n=r}}function Vn(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||Hn(t),t=n}}function Hn(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Un(e.nodes.start,e.nodes.end),n=!0),Ye(e,x),Bn(e,t&&!n),vr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();zn(e),e.f^=x,e.f|=y;var i=e.parent;i!==null&&i.first!==null&&Wn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Un(e,t){for(;e!==null;){var n=e===t?null:hn(e);e.remove(),e=n}}function Wn(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Gn(e,t,n=!0){var r=[];Kn(e,r,!0);var i=()=>{n&&Hn(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function Kn(e,t,n){if(!(e.f&8192)){e.f^=v;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next,o=(i.f&65536)!=0||(i.f&32)!=0&&(e.f&16)!=0;Kn(i,t,o?n:!1),i=a}}}function qn(e){Jn(e,!0)}function Jn(e,t){if(e.f&8192){e.f^=v,e.f&1024||(Ye(e,g),bt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&65536)!=0||(n.f&32)!=0;Jn(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function Yn(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:hn(n);t.append(n),n=i}}var Xn=null,Zn=!1,Qn=!1;function $n(e){Qn=e}var z=null,er=!1;function tr(e){z=e}var B=null;function nr(e){B=e}var rr=null;function ir(e){z!==null&&(!Pe||z.f&2)&&(rr===null?rr=[e]:rr.push(e))}var ar=null,or=0,sr=null;function cr(e){sr=e}var lr=1,ur=0,dr=ur;function fr(e){dr=e}function pr(){return++lr}function mr(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=~E),t&4096){for(var n=e.deps,r=n.length,i=0;ie.wv)return!0}t&512&&ft===null&&Ye(e,h)}return!1}function hr(e,t,r=!0){var i=e.reactions;if(i!==null&&!(!Pe&&rr!==null&&n.call(rr,e)))for(var a=0;a{e.ac.abort(oe)}),e.ac=null);try{e.f|=ee;var u=e.fn,d=u();e.f|=b;var f=e.deps,p=j?.is_fork;if(ar!==null){var m;if(p||vr(e,or),f!==null&&or>0)for(f.length=or+ar.length,m=0;m{requestAnimationFrame(()=>e()),setTimeout(()=>e())});await Promise.resolve(),xt()}function V(e){var t=(e.f&2)!=0;if(Xn?.add(e),z!==null&&!er&&!(B!==null&&B.f&16384)&&(rr===null||!n.call(rr,e))){var r=z.deps;if(z.f&2097152)e.rv{throw e});throw p}}finally{e[Or]=t,delete e.currentTarget,tr(d),nr(f)}}}var Pr=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function Fr(e){return Pr?.createHTML(e)??e}function Ir(e){var t=vn(`template`);return t.innerHTML=Fr(e.replaceAll(``,``)),t.content}function Lr(e,t){var n=B;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function U(e,t){var n=(t&1)!=0,r=(t&2)!=0,i,a=!e.startsWith(``);return()=>{if(D)return Lr(O,null),O;i===void 0&&(i=Ir(a?e:``+e),n||(i=mn(i)));var t=r||ln?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=mn(t),s=t.lastChild;Lr(o,s)}else Lr(t,t);return t}}function Rr(e=``){if(!D){var t=pn(e+``);return Lr(t,t),t}var n=O;return n.nodeType===3?yn(n):(n.before(n=pn()),Ee(n)),Lr(n,n),n}function zr(){if(D)return Lr(O,null),O;var e=document.createDocumentFragment(),t=document.createComment(``),n=pn();return e.append(t,n),Lr(t,n),e}function W(e,t){if(D){var n=B;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=O),De();return}e!==null&&e.before(t)}function G(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function Br(e,t){return Hr(e,t)}var Vr=new Map;function Hr(e,{target:t,anchor:n,props:i={},events:a,context:o,intro:s=!0,transformError:c}){fn();var l=void 0,u=Nn(()=>{var s=n??t.appendChild(pn());Mt(s,{pending:()=>{}},t=>{ze({});var n=Le;if(o&&(n.c=o),a&&(i.$$events=a),D&&Lr(t,null),l=e(t,i)||{},D&&(B.nodes.end=O,O===null||O.nodeType!==8||O.data!==`]`))throw Se(),ye;Be()},c);var u=new Set,d=e=>{for(var n=0;n{for(var e of u)for(let n of[t,document]){var r=Vr.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Nr),r.delete(e),r.size===0&&Vr.delete(n)):r.set(e,i)}Ar.delete(d),s!==n&&s.parentNode?.removeChild(s)}});return Ur.set(l,u),l}var Ur=new WeakMap,Wr=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)qn(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(Hn(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();Yn(r,t),t.append(pn()),this.#n.set(e,{effect:r,fragment:t})}else Hn(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),Gn(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(Hn(n.effect),this.#n.delete(e))};ensure(e,t){var n=j,r=_n();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=pn();i.append(a),this.#n.set(e,{effect:Rn(()=>t(a)),fragment:i})}else this.#t.set(e,Rn(()=>t(this.anchor)));if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else D&&(this.anchor=O),this.#a(n)}};function K(e,t,n=!1){var r;D&&(r=O,De());var i=new Wr(e),a=n?S:0;function o(e,t){if(D){var n=Ae(r);if(e!==parseInt(n.substring(1))){var a=ke();Ee(a),i.anchor=a,Te(!1),i.ensure(e,t),Te(!0);return}}i.ensure(e,t)}Ln(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}var Gr=Symbol(`NaN`);function Kr(e,t,n){D&&De();var r=new Wr(e),i=!Ve();Ln(()=>{var e=t();e!==e&&(e=Gr),i&&typeof e==`object`&&e&&(e={}),r.ensure(e,n)})}function qr(e,t){return t}function Jr(e,t,n){for(var i=[],a=t.length,o,s=t.length,c=0;c{if(o){if(o.pending.delete(n),o.done.add(n),o.pending.size===0){var t=e.outrogroups;Yr(e,r(o.done)),t.delete(o),t.size===0&&(e.outrogroups=null)}}else --s},!1)}if(s===0){var l=i.length===0&&n!==null;if(l){var u=n,d=u.parentNode;gn(d),d.append(u),e.items.clear()}Yr(e,t,!l)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function Yr(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i{var t=i();return e(t)?t:t==null?[]:r(t)}),p,m=new Map,h=!0;function g(e){v.effect.f&16384||(v.pending.delete(e),v.fallback=d,$r(v,p,c,n,a),d!==null&&(p.length===0?d.f&33554432?(d.f^=T,ti(d,null,c)):qn(d):Gn(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:Ln(()=>{p=V(f);var e=p.length;let t=!1;D&&Ae(c)===`[!`!=(e===0)&&(c=ke(),Ee(c),Te(!1),t=!0);for(var r=new Set,u=j,v=_n(),y=0;ys(c)):(d=Rn(()=>s(Xr??=pn())),d.f|=T)),e>r.size&&le(``,``,``),D&&e>0&&Ee(ke()),!h)if(m.set(u,r),v){for(let[e,t]of l)r.has(e)||u.skip_effect(t.e);u.oncommit(g),u.ondiscard(_)}else g(u);t&&Te(!0),V(f)}),flags:n,items:l,pending:m,outrogroups:null,fallback:d};h=!1,D&&(c=O)}function Qr(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function $r(e,t,n,i,a){var o=(i&8)!=0,s=t.length,c=e.items,l=Qr(e.effect.first),u,d=null,f,p=[],m=[],h,g,_,v;if(o)for(v=0;v0){var ee=i&4&&s===0?n:null;if(o){for(v=0;v{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function ei(e,t,n,r,i,a,o,s){var c=o&1?o&16?Xt(n):Zt(n,!1,!1):null,l=o&2?Xt(i):null;return{v:c,i:l,e:Rn(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function ti(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=hn(r);if(a.before(r),r===i)return;r=o}}function ni(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function ri(e,t,...n){var r=new Wr(e);Ln(()=>{let e=t()??null;r.ensure(e,e&&(t=>e(t,...n)))},S)}var ii=[...` -\r\f\xA0\v`];function ai(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||ii.includes(r[o-1]))&&(s===r.length||ii.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function oi(e,t,n,r,i,a){var o=e.__className;if(D||o!==n||o===void 0){var s=ai(n,r,a);(!D||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e.__className=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}function si(t,n,r=!1){if(t.multiple){if(n==null)return;if(!e(n))return Ce();for(var i of t.options)i.selected=n.includes(ui(i));return}for(i of t.options)if(sn(ui(i),n)){i.selected=!0;return}(!r||n!==void 0)&&(t.selectedIndex=-1)}function ci(e){var t=new MutationObserver(()=>{si(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),kn(()=>{t.disconnect()})}function li(e,t,n=t){var r=new WeakSet,i=!0;wn(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),ui);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&ui(o)}n(a),e.__value=a,j!==null&&r.add(j)}),Pn(()=>{var a=t();if(e===document.activeElement){var o=Pe?dt:j;if(r.has(o))return}if(si(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=ui(s),n(a))}e.__value=a,i=!1}),ci(e)}function ui(e){return`__value`in e?e.__value:e.value}var di=Symbol(`is custom element`),fi=Symbol(`is html`),pi=se?`link`:`LINK`;function mi(e){if(D){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;hi(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;hi(e,`checked`,null),e.checked=r}}};e.__on_r=n,We(n),Sn()}}function hi(e,t,n,r){var i=gi(e);D&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===pi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[ae]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&vi(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function gi(e){return e.__attributes??={[di]:e.nodeName.includes(`-`),[fi]:e.namespaceURI===xe}}var _i=new Map;function vi(e){var t=e.getAttribute(`is`)||e.nodeName,n=_i.get(t);if(n)return n;_i.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var s in r=o(i),r)r[s].set&&n.push(s);i=l(i)}return n}function yi(e,t,n=t){var r=new WeakSet;wn(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=xi(e)?Si(a):a,n(a),j!==null&&r.add(j),await br(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(D&&e.defaultValue!==e.value||Cr(t)==null&&e.value)&&(n(xi(e)?Si(e.value):e.value),j!==null&&r.add(j)),In(()=>{var n=t();if(e===document.activeElement){var i=Pe?dt:j;if(r.has(i))return}xi(e)&&n===Si(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function bi(e,t,n=t){wn(e,`change`,t=>{n(t?e.defaultChecked:e.checked)}),(D&&e.defaultChecked!==e.checked||Cr(t)==null)&&n(e.checked),In(()=>{e.checked=!!t()})}function xi(e){var t=e.type;return t===`number`||t===`range`}function Si(e){return e===``?null:+e}function Ci(e=!1){let t=Le,n=t.l.u;if(!n)return;let r=()=>wr(t.s);if(e){let e=0,n={},i=Rt(()=>{let r=!1,i=t.s;for(let e in i)i[e]!==n[e]&&(n[e]=i[e],r=!0);return r&&e++,e});r=()=>V(i)}n.b.length&&Mn(()=>{wi(t,r),p(n.b)}),An(()=>{let e=Cr(()=>n.m.map(f));return()=>{for(let t of e)typeof t==`function`&&t()}}),n.a.length&&An(()=>{wi(t,r),p(n.a)})}function wi(e,t){if(e.l.s)for(let t of e.l.s)V(t);t()}function Ti(e,t,n,r){var i=!Fe||(n&2)!=0,o=(n&8)!=0,s=(n&16)!=0,c=r,l=!0,u=()=>(l&&(l=!1,c=s?Cr(r):r),c);let d;if(o){var f=re in e||ie in e;d=a(e,t)?.set??(f&&t in e?n=>e[t]=n:void 0)}var p,m=!1;o?[p,m]=lt(()=>e[t]):p=e[t],p===void 0&&r!==void 0&&(p=u(),d&&(i&&me(t),d(p)));var h=i?()=>{var n=e[t];return n===void 0?u():(l=!0,n)}:()=>{var n=e[t];return n!==void 0&&(c=void 0),n===void 0?c:n};if(i&&!(n&4))return h;if(d){var g=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||g||m)&&d(t?h():e),e):h()})}var _=!1,v=(n&1?Rt:Bt)(()=>(_=!1,h()));o&&V(v);var y=B;return(function(e,t){if(arguments.length>0){let n=t?V(v):i&&o?an(e):e;return P(v,n),_=!0,c!==void 0&&(c=n),e}return Qn&&_||y.f&16384?v.v:V(v)})}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);function Ei(e){let t=e.batchSize??20,n=e.flushInterval??5e3,r=e.include,i=[],a,o=e=>!r||r.includes(e),s=(e,n)=>{o(e)&&(i.push({type:e,timestamp:Date.now(),detail:n}),i.length>=t&&c())},c=()=>{if(i.length===0)return;let t=i.splice(0);e.onFlush(t)};return{name:`analytics`,onInit(){n>0&&(a=setInterval(c,n))},onChange(t){let n=e.redact?.includes(t.property);s(`change`,{property:t.property,currentValue:n?`[redacted]`:t.currentValue,oldValue:n?`[redacted]`:t.oldValue})},onValidation(e){s(`validation`,{hasErrors:e!==void 0})},onSnapshot(e){s(`snapshot`,{title:e.title})},onAction(e){s(`action`,{phase:e.phase,error:e.error?.message})},onRollback(e){s(`rollback`,{title:e.title})},onReset(){s(`reset`,{})},destroy(){a!==void 0&&clearInterval(a),c()},flush(){c()},eventCount(){return i.length}}}function Di(e){let t=e.idle??1e3,n=e.interval??0,r=e.saveOnDestroy??!0,i=e.onlyWhenDirty??!0,a,o,s,c=!1,l=!1,u=async()=>{if(a&&!(i&&!it(a.state.isDirty))&&!c){c=!0;try{await e.save(a.data)}catch(t){e.onError?.(t)}finally{c=!1}}},d=()=>{clearTimeout(o),o=setTimeout(u,t)},f=()=>{typeof document<`u`&&document.visibilityState===`hidden`&&u()};return{name:`autosave`,onInit(t){a=t,n>0&&(s=setInterval(u,n)),e.onVisibilityHidden&&typeof document<`u`&&document.addEventListener(`visibilitychange`,f)},onChange(){d()},onAction(e){e.phase===`after`&&!e.error&&clearTimeout(o)},destroy(){if(l=!0,clearTimeout(o),s!==void 0&&clearInterval(s),typeof document<`u`&&document.removeEventListener(`visibilitychange`,f),r&&a&&(c=!1,!i||it(a.state.isDirty)))try{let t=e.save(a.data);t instanceof Promise&&t.catch(t=>e.onError?.(t))}catch(t){e.onError?.(t)}},async saveNow(){l||(clearTimeout(o),c=!1,await u())},isSaving(){return c}}}var Oi=()=>{try{return import.meta.env?.PROD===!0}catch{return!1}};function ki(e){let t=e?.name??`svstate`,n=e?.collapsed??!0,r=e?.logValidation??!1,i=e?.logValues??!1,a=e?.enabled??!Oi(),o=(e,...r)=>{if(!a)return;let i=new Date().toISOString().slice(11,23);(n?console.groupCollapsed:console.group)(`[${t}] ${e} (${i})`);for(let e of r)console.log(e);console.groupEnd()};return{name:`devtools`,onChange(e){i?o(`change`,{property:e.property,from:e.oldValue,to:e.currentValue}):o(`change`,{property:e.property})},onValidation(e){r&&o(`validation`,e)},onSnapshot(e){o(`snapshot`,{title:e.title})},onAction(e){e.error?o(`action:${e.phase}`,{params:e.params,error:e.error.message}):o(`action:${e.phase}`,{params:e.params})},onRollback(e){o(`rollback`,{title:e.title})},onReset(){o(`reset`)}}}var Ai=new Set([`__proto__`,`constructor`,`prototype`]),ji=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Mi=e=>ji(e)&&typeof e.version==`number`&&ji(e.data),Ni=(e,t)=>{for(let n of Object.keys(t))Ai.has(n)||(e[n]=t[n])},Pi=(e,t)=>{let n=t.split(`.`),r=e;for(let e of n){if(r==null)return;r=r[e]}return r},Fi=(e,t,n)=>{let r=t.split(`.`),i=e;for(let e=0;e{if(t){let n={};for(let r of t){let t=Pi(e,r);t!==void 0&&Fi(n,r,t)}return n}if(n){let t={...e};for(let e of n){let n=e.split(`.`);if(n.length===1)delete t[e];else{let e=t;for(let t=0;t`u`?void 0:localStorage),n=e.throttle??300,r=e.version??1,i=!1,a,o,s=()=>{if(!t||!o)return;let n={version:r,data:Ii(o,e.include,e.exclude)};t.setItem(e.key,JSON.stringify(n))},c=()=>{clearTimeout(a),a=setTimeout(s,n)};return{name:`persist`,onInit(n){if(o=n.data,!t)return;let a=t.getItem(e.key);if(a)try{let t=JSON.parse(a);if(!Mi(t))return;let o=t;if(e.migrate&&o.version!==r){let t=e.migrate(o.data,o.version);if(!ji(t))return;o={version:r,data:t}}Ni(n.data,o.data),i=!0}catch{}},onChange(){c()},onReset(){s()},destroy(){a!==void 0&&(clearTimeout(a),s())},clearPersistedState(){t?.removeItem(e.key)},isRestored(){return i}}}var Ri=new Set([`__proto__`,`constructor`,`prototype`]),zi=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Bi=10,Vi=(e,t=0)=>t>Bi?!1:zi(e)?Object.values(e).every(e=>Vi(e,t+1)):!0,Hi=(e,t)=>{for(let n of Object.keys(t))Ri.has(n)||(e[n]=t[n])};function Ui(e){let t=e.throttle??100,n=e.merge??`overwrite`,r,i,a=!1,o,s=0,c=()=>{if(!r||!i)return;let e=JSON.parse(JSON.stringify(i.data));r.postMessage({type:`sync`,data:e})},l=()=>{clearTimeout(o),o=setTimeout(c,t)},u=()=>{clearTimeout(o),r&&=(r.close(),void 0)};return{name:`sync`,onInit(o){i=o,!(typeof BroadcastChannel>`u`)&&(r=new BroadcastChannel(e.key),r.addEventListener(`message`,e=>{if(!i||n===`ignore`||e.data?.type!==`sync`)return;let r=Date.now();r-s{if(typeof e!=`object`||!e)return e;if(e instanceof Date)return new Date(e);if(Array.isArray(e))return e.map(e=>o(e));let t=Object.create(Object.getPrototypeOf(e));for(let n of Object.keys(e))t[n]=o(e[n]);return t};return{name:`undo-redo`,redoStack:{subscribe:t.subscribe},onInit(e){r=e,i=e.state.snapshots.subscribe(e=>{e.length0&&(a=n.at(-1)),n=e})},onRollback(){a&&=(t.update(t=>{let n=[...t,a],r=e?.maxRedoStack;return r&&r>0?n.slice(-r):n}),void 0)},onChange(){t.set([])},onReset(){t.set([])},redo(){if(!r)return;let e=it(t);if(e.length===0)return;let n=e.at(-1);t.set(e.slice(0,-1)),r.snapshot(`Undo`),Object.assign(r.data,o(n.data))},canRedo(){return it(t).length>0},destroy(){i?.()}}}var Gi=e=>typeof e==`object`&&!!e&&!(e instanceof Date)&&!(e instanceof Map)&&!(e instanceof Set)&&!(e instanceof WeakMap)&&!(e instanceof WeakSet)&&!(e instanceof RegExp)&&!(e instanceof Error)&&!(e instanceof Promise),Ki=(e,t)=>{let n=(e,i)=>new Proxy(e,{get(e,t){let r=e[t];if(Gi(r)){let e=Number.isInteger(Number(t))?``:String(t);return n(r,e?i?`${i}.${e}`:e:i)}return r},set(e,n,a){let o=e[n];if(o!==a){e[n]=a;let s=Number.isInteger(Number(n))?``:String(n);t(r,s?i?`${i}.${s}`:s:i,a,o)}return!0}}),r=n(e,``);return r},qi=e=>Object.values(e).some(e=>typeof e==`string`?!!e:qi(e)),Ji=e=>!!e&&qi(e),Yi=new Set([`__proto__`,`constructor`,`prototype`]),Xi=e=>{if(typeof e!=`object`||!e)return e;if(e instanceof Date)return new Date(e);if(Array.isArray(e))return e.map(e=>Xi(e));let t=Object.create(Object.getPrototypeOf(e));for(let n of Object.keys(e))Yi.has(n)||(t[n]=Xi(e[n]));return t},Zi=(e,t)=>{let n=t.split(`.`),r=e;for(let e of n){if(r==null)return;r=r[e]}return r},Qi=(e,t)=>{if(!e)return``;let n=t.split(`.`),r=e;for(let e of n){if(typeof r==`string`||r[e]===void 0)return``;r=r[e]}return typeof r==`string`?r:``},$i=(e,t)=>{let n=[];for(let r of Object.keys(e))(r===t||r.startsWith(t+`.`)||t.startsWith(r+`.`))&&n.push(r);return n},ea={resetDirtyOnAction:!0,debounceValidation:0,allowConcurrentActions:!1,persistActionError:!1,debounceAsyncValidation:300,runAsyncValidationOnInit:!1,clearAsyncErrorsOnChange:!0,maxConcurrentAsyncValidations:4,maxSnapshots:50,plugins:[]};function ta(e,t,n){let r={...ea,...n},{validator:i,effect:a,asyncValidator:o}=t??{},s=nt(),c=rt(s,Ji),l=nt({}),u=rt(l,e=>Object.keys(e).length>0),d=nt(!1),f=nt(),p=nt([{title:`Initial`,data:Xi(e)}]),m=nt({}),h=nt(new Set),g=rt(h,e=>[...e]),_=rt(m,e=>Object.values(e).some(e=>!!e)),v=rt([c,_],([e,t])=>e||t),y=new Map,b=[],x=e=>{l.update(t=>{let n={...t,[e]:!0},r=e.split(`.`);for(let e=1;e{for(let n of C){let r=n[e];typeof r==`function`&&r.call(n,...t)}},T=()=>{if(!i)return;let e=i(ue);s.set(e),w(`onValidation`,e)},E=(e,t=!0)=>{let n=it(p),i={title:e,data:Xi(S)},a=n.at(-1),o=t&&a&&a.title===e?[...n.slice(0,-1),i]:[...n,i];if(r.maxSnapshots>0&&o.length>r.maxSnapshots){let e=o.length-r.maxSnapshots;o=[o[0],...o.slice(1+e)]}p.set(o),w(`onSnapshot`,i)},ee=!1,te,ne=()=>{if(i)if(r.debounceValidation>0)clearTimeout(te),te=setTimeout(()=>{T()},r.debounceValidation);else{if(ee)return;ee=!0,queueMicrotask(()=>{T(),ee=!1})}},re=e=>{let t=b.indexOf(e);t!==-1&&b.splice(t,1)},ie=e=>{re(e);let t=y.get(e);t&&(clearTimeout(t.timeoutId),t.controller.abort(),y.delete(e),h.update(t=>(t.delete(e),new Set(t))))},ae=()=>{b.length=0;for(let e of y.keys())ie(e);m.set({})},oe=async(e,t)=>{if(!o){t();return}let n=o[e];if(!n){t();return}if(Qi(it(s),e)){t();return}let r=new AbortController;y.set(e,{controller:r,timeoutId:0}),h.update(t=>new Set([...t,e]));try{let t=await n(Zi(ue,e),ue,r.signal);r.signal.aborted||m.update(n=>({...n,[e]:t}))}catch(t){if(t instanceof Error&&t.name===`AbortError`)return;if(!r.signal.aborted){let n=t instanceof Error?t.message:`Async validation error`;m.update(t=>({...t,[e]:n}))}}finally{y.delete(e),h.update(t=>(t.delete(e),new Set(t))),t()}},se=()=>{for(;b.length>0&&!(it(h).size>=r.maxConcurrentAsyncValidations);){let e=b.shift();e&&oe(e,se)}},ce=e=>{if(!o||!o[e])return;ie(e),r.clearAsyncErrorsOnChange&&m.update(t=>{let n={...t};return delete n[e],n});let t=new AbortController,n=setTimeout(()=>{y.delete(e),it(h).size{if(!o)return;let t=$i(o,e);for(let e of t)ce(e)},ue=Ki(S,(e,t,n,i)=>{if(r.persistActionError||f.set(void 0),x(t),a?.({snapshot:E,target:e,property:t,currentValue:n,oldValue:i})instanceof Promise)throw Error(`svstate: effect callback must be synchronous. Use action for async operations.`);w(`onChange`,{target:e,property:t,currentValue:n,oldValue:i}),ne(),le(t)});if(T(),o&&r.runAsyncValidationOnInit)for(let e of Object.keys(o))ce(e);let de=async e=>{if(!(!r.allowConcurrentActions&&it(d))){w(`onAction`,{phase:`before`,params:e}),f.set(void 0),d.set(!0);try{await t?.action?.(e),r.resetDirtyOnAction&&l.set({}),p.set([{title:`Initial`,data:Xi(S)}]),await t?.actionCompleted?.(),w(`onAction`,{phase:`after`,params:e})}catch(n){await t?.actionCompleted?.(n);let r=n instanceof Error?n:void 0;f.set(r),w(`onAction`,{phase:`after`,params:e,error:r})}finally{d.set(!1)}}},fe=(e,t)=>{let n=t[e];if(n)return ae(),l.set({}),Object.assign(S,Xi(n.data)),p.set(t.slice(0,e+1)),T(),n},pe=(e=1)=>{let t=it(p);if(t.length<=1)return;let n=fe(Math.max(0,t.length-1-e),t);n&&w(`onRollback`,n)},me=e=>{let t=it(p);if(t.length<=1)return!1;for(let n=t.length-1;n>=0;n--)if(t[n].title===e){let e=fe(n,t);return e&&w(`onRollback`,e),!0}return!1},he=()=>{let e=it(p);e[0]&&(fe(0,e),w(`onReset`))},ge={errors:s,hasErrors:c,isDirty:u,isDirtyByField:l,actionInProgress:d,actionError:f,snapshots:p,asyncErrors:m,hasAsyncErrors:_,asyncValidating:g,hasCombinedErrors:v};return w(`onInit`,{data:ue,state:ge,options:r,snapshot:E}),{data:ue,execute:de,state:ge,rollback:pe,rollbackTo:me,reset:he,destroy:()=>{for(let e=C.length-1;e>=0;e--)C[e]?.destroy?.()}}}var na={trim:e=>e.trim(),normalize:e=>e.replaceAll(/\s{2,}/g,` `),upper:e=>e.toUpperCase(),lower:e=>e.toLowerCase(),localeUpper:e=>e.toLocaleUpperCase(),localeLower:e=>e.toLocaleLowerCase()};function q(e){let t=``,n=e==null,r=e??``,i=e=>{t||=e},a={prepare(...e){return r=e.reduce((e,t)=>na[t](e),r),a},required(){return!t&&(n||!r)&&i(`Required`),a},requiredIf(e){return e&&!t&&(n||!r)&&i(`Required`),a},noSpace(){return n||!t&&r.includes(` `)&&i(`No space allowed`),a},notBlank(){return n||!t&&r.length>0&&r.trim().length===0&&i(`Must not be blank`),a},minLength(e){return n||!t&&r.lengthe&&i(`Max length ${e}`),a},uppercase(){return n||!t&&r!==r.toUpperCase()&&i(`Uppercase only`),a},lowercase(){return n||!t&&r!==r.toLowerCase()&&i(`Lowercase only`),a},startsWith(e){if(t)return a;let n=Array.isArray(e)?e:[e];return r&&!n.some(e=>r.startsWith(e))&&i(`Must start with ${n.join(`, `)}`),a},regexp(e,n){return!t&&r&&!e.test(r)&&i(n??`Not allowed chars`),a},in(e){if(t)return a;let n=Array.isArray(e)?e:Object.keys(e);return r&&!n.includes(r)&&i(`Must be one of: ${n.join(`, `)}`),a},notIn(e){if(t)return a;let n=Array.isArray(e)?e:Object.keys(e);return r&&n.includes(r)&&i(`Must not be one of: ${n.join(`, `)}`),a},email(){return!t&&r&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r)&&i(`Invalid email format`),a},website(e=`optional`){if(t||!r||e===`optional`)return a;let n=/^https?:\/\//.test(r);return e===`required`&&!n?i(`Must start with http:// or https://`):e===`forbidden`&&n&&i(`Must not start with http:// or https://`),a},endsWith(e){if(t||!r)return a;let n=Array.isArray(e)?e:[e];return n.some(e=>r.endsWith(e))||i(`Must end with ${n.join(`, `)}`),a},contains(e){return!t&&r&&!r.includes(e)&&i(`Must contain "${e}"`),a},alphanumeric(){return!t&&r&&!/^[\dA-Za-z]+$/.test(r)&&i(`Only letters and numbers allowed`),a},numeric(){return!t&&r&&!/^\d+$/.test(r)&&i(`Only numbers allowed`),a},slug(){return!t&&r&&!/^[\da-z-]+$/.test(r)&&i(`Invalid slug format`),a},identifier(){return!t&&r&&!/^[A-Z_a-z]\w*$/.test(r)&&i(`Invalid identifier format`),a},getError(){return t}};return a}function ra(e){let t=``,n=e==null,r=e=>{t||=e},i={required(){return!t&&(n||Number.isNaN(e))&&r(`Required`),i},requiredIf(a){return a&&!t&&(n||Number.isNaN(e))&&r(`Required`),i},min(a){return n||!t&&ea&&r(`Maximum ${a}`),i},between(a,o){return n||!t&&(eo)&&r(`Must be between ${a} and ${o}`),i},integer(){return n||!t&&!Number.isInteger(e)&&r(`Must be an integer`),i},positive(){return n||!t&&e<=0&&r(`Must be positive`),i},negative(){return n||!t&&e>=0&&r(`Must be negative`),i},nonNegative(){return n||!t&&e<0&&r(`Must be non-negative`),i},notZero(){return n||!t&&e===0&&r(`Must not be zero`),i},multipleOf(a){return n||!t&&e%a!==0&&r(`Must be a multiple of ${a}`),i},step(a){return n||!t&&e%a!==0&&r(`Must be a multiple of ${a}`),i},decimal(a){return n||t||Number.isNaN(e)||(String(e).split(`.`)[1]?.length??0)>a&&r(`Maximum ${a} decimal places`),i},percentage(){return n||!t&&(e<0||e>100)&&r(`Must be between 0 and 100`),i},getError(){return t}};return i}function ia(e){let t=``,n=e==null,r=e??[],i=e=>{t||=e},a={required(){return!t&&(n||r.length===0)&&i(`Required`),a},requiredIf(e){return e&&!t&&(n||r.length===0)&&i(`Required`),a},minLength(e){return n||!t&&r.lengthe&&i(`Maximum ${e} items`),a},unique(){if(n||t)return a;let e=new Set;for(let t of r){let n=typeof t==`object`?JSON.stringify(t):String(t);if(e.has(n)){i(`Items must be unique`);break}e.add(n)}return a},ofLength(e){return n||!t&&r.length!==e&&i(`Must have exactly ${e} items`),a},includes(e){if(n||t)return a;let o=typeof e==`object`?JSON.stringify(e):String(e);return r.some(e=>(typeof e==`object`?JSON.stringify(e):String(e))===o)||i(`Must include ${o}`),a},includesAny(e){if(n||t)return a;let o=e.map(e=>typeof e==`object`?JSON.stringify(e):String(e));return r.some(e=>{let t=typeof e==`object`?JSON.stringify(e):String(e);return o.includes(t)})||i(`Must include at least one of: ${o.join(`, `)}`),a},includesAll(e){if(n||t)return a;let o=new Set(r.map(e=>typeof e==`object`?JSON.stringify(e):String(e))),s=e.filter(e=>{let t=typeof e==`object`?JSON.stringify(e):String(e);return!o.has(t)});return s.length>0&&i(`Missing required items: ${s.map(e=>typeof e==`object`?JSON.stringify(e):String(e)).join(`, `)}`),a},getError(){return t}};return a}var aa=U(`
`),oa=U(`
 
`);function J(e,t){var n=oa(),r=F(n),i=e=>{var n=aa(),r=F(n,!0);k(n),R(()=>G(r,t.title)),W(e,n)};K(r,e=>{t.title&&e(i)});var a=L(r,2),o=F(a,!0);k(a),k(n),R(()=>G(o,t.code)),W(e,n)}var sa=U(`
Dirty Fields
 
`),ca=U(`
State Object
 
State Info
isDirty:
hasErrors:
Errors
 
`);function la(e,t){ze(t,!0);let n=Ti(t,`width`,3,`xl:w-80`);var r=ca(),i=F(r),a=L(F(i),2),o=F(a,!0);k(a),k(i);var s=L(i,2),c=L(F(s),2),l=F(c),u=L(F(l));k(l);var d=L(l,2),f=L(F(d));k(d),k(c),k(s);var p=L(s,2),m=e=>{var n=sa(),r=L(F(n),2),i=F(r,!0);k(r),k(n),R(e=>G(i,e),[()=>JSON.stringify(t.isDirtyByField,Object.keys(t.isDirtyByField).toSorted(),2)]),W(e,n)};K(p,e=>{t.isDirtyByField&&e(m)});var h=L(p,2),g=L(F(h),2),_=F(g,!0);k(g),k(h);var v=L(h,2);k(r),R((e,i)=>{oi(r,1,`w-full ${n()??``} flex-shrink-0 space-y-4`),G(o,e),G(u,` ${t.isDirty??``}`),G(f,` ${t.hasErrors??``}`),G(_,i)},[()=>JSON.stringify(t.data,void 0,2),()=>JSON.stringify(t.errors,void 0,2)]),H(`click`,v,function(...e){t.onFill?.apply(this,e)}),W(e,r),Be()}jr([`click`]);var ua=U(`

`);function da(e,t){var n=zr(),r=I(n),i=e=>{var n=ua(),r=F(n,!0);k(n),R(()=>G(r,t.error)),W(e,n)};K(r,e=>{t.error&&e(i)}),W(e,n)}var fa=U(``),pa=U(`
`);function Y(e,t){ze(t,!0);let n=Ti(t,`type`,3,`text`),r=Ti(t,`placeholder`,3,``),i=Ti(t,`value`,15),a=Ti(t,`error`,3,``),o=Ti(t,`required`,3,!0),s=Ti(t,`disabled`,3,!1),c=Ti(t,`variant`,3,`default`),l=M(()=>c()===`nested`?`bg-white`:`bg-gray-50`);var u=pa(),d=F(u),f=F(d),p=L(f),m=e=>{W(e,fa())};K(p,e=>{t.isDirty&&e(m)}),k(d);var h=L(d,2);mi(h);var g=L(h,2);{let e=M(()=>a()??``);da(g,{get error(){return V(e)}})}k(u),R(()=>{oi(d,1,`mb-2 block text-sm text-gray-900 ${o()?`font-bold`:``}`),hi(d,`for`,t.id),G(f,`${t.label??``} `),hi(h,`id`,t.id),oi(h,1,`block w-full rounded-lg border p-2.5 text-sm ${a()?`border-red-500 bg-red-50 text-red-900 placeholder-red-400 focus:border-red-500 focus:ring-red-500`:`border-gray-300 ${V(l)} text-gray-900 focus:border-blue-500 focus:ring-blue-500`} ${s()?`cursor-not-allowed opacity-50`:``}`),h.disabled=s(),hi(h,`max`,t.max),hi(h,`min`,t.min),hi(h,`placeholder`,r()),hi(h,`step`,t.step),hi(h,`type`,n())}),yi(h,i),W(e,u),Be()}var ma=U(`

`),ha=U(`
`),ga=U(`
`,1);function _a(e,t){var n=ga(),r=I(n),i=F(r),a=F(i),o=F(a,!0);k(a);var s=L(a,2),c=e=>{var n=ma(),r=F(n,!0);k(n),R(()=>G(r,t.description)),W(e,n)},l=e=>{W(e,ha())};K(s,e=>{t.description?e(c):e(l,-1)}),ri(L(s,2),()=>t.main),k(i),ri(L(i,2),()=>t.sidebar),k(r);var u=L(r,2),d=e=>{var n=zr();ri(I(n),()=>t.sourceCode),W(e,n)};K(u,e=>{t.sourceCode&&e(d)}),R(()=>G(o,t.title)),W(e,n)}var va=U(`
`),ya=U(`
`);function ba(e,t){let n=N(!1);var r=ya(),i=F(r),a=L(F(i),2);k(i);var o=L(i,2),s=e=>{var n=va();ri(F(n),()=>t.children),k(n),W(e,n)};K(o,e=>{V(n)&&e(s)}),k(r),R(()=>{oi(i,1,`flex w-full cursor-pointer items-center justify-between px-4 py-3 text-left text-sm font-medium text-gray-900 hover:bg-gray-50 ${V(n)?`border-b border-gray-200`:``}`),oi(a,0,`h-5 w-5 transform transition-transform ${V(n)?`rotate-180`:``}`)}),H(`click`,i,()=>P(n,!V(n))),W(e,r)}jr([`click`]);var xa=U(`
`);function Sa(e,t){var n=xa(),r=F(n),i=F(r,!0);k(r);var a=L(r,2),o=F(a,!0);k(a),k(n),R(()=>{oi(r,1,`rounded px-2.5 py-0.5 text-xs font-medium ${t.hasErrors?`bg-red-100 text-red-800`:`bg-green-100 text-green-800`}`),G(i,t.hasErrors?`Has Errors`:`Valid`),oi(a,1,`rounded px-2.5 py-0.5 text-xs font-medium ${t.isDirty?`bg-yellow-100 text-yellow-800`:`bg-gray-100 text-gray-800`}`),G(o,t.isDirty?`Modified`:`Clean`)}),W(e,n)}var X=()=>Math.random().toString(36).slice(2,8),Ca=(e,t)=>Math.floor(Math.random()*(t-e+1))+e,wa=U(`
`),Ta=U(`
`),Ea=U(` Submitting...`),Da=U(`
`,1),Oa=U(`
Action State
actionInProgress:
actionError:
`),ka=U(` `,1);function Aa(e,t){ze(t,!0);let n=()=>A(h,`$hasErrors`,s),r=()=>A(g,`$isDirty`,s),i=()=>A(_,`$actionInProgress`,s),a=()=>A(m,`$errors`,s),o=()=>A(v,`$actionError`,s),[s,c]=ct(),l={title:`Task ${X()}`,description:`This is a sample task description with ID ${X()}`},u=N(!1),d=N(void 0),{data:f,execute:p,state:{errors:m,hasErrors:h,isDirty:g,actionInProgress:_,actionError:v}}=ta(l,{validator:e=>({title:q(e.title).prepare(`trim`).required().minLength(3).maxLength(50).getError(),description:q(e.description).prepare(`trim`).required().minLength(10).maxLength(200).getError()}),action:async()=>{let e=Ca(100,1e3);if(await new Promise(t=>setTimeout(t,e)),V(u))throw Error(`Simulated server error after ${e}ms`);P(d,`Submitted successfully in ${e}ms!`)},actionCompleted:e=>{e&&P(d,void 0)}}),y=()=>{f.title=`Task ${X()}`,f.description=`This is a sample task description with ID ${X()}`},b=()=>{P(d,void 0),p()};_a(e,{description:`Demonstrates async action execution with loading states and error handling.`,title:`Action Demo`,main:e=>{var t=Da(),s=I(t);Sa(s,{get hasErrors(){return n()},get isDirty(){return r()}});var c=L(s,2),l=F(c),p=F(l,!0);k(l),k(c);var m=L(c,2),h=F(m);{let e=M(()=>a()?.title);Y(h,{id:`title`,get disabled(){return i()},get error(){return V(e)},label:`Title`,placeholder:`Enter task title`,get value(){return f.title},set value(e){f.title=e}})}var g=L(h,2);{let e=M(()=>a()?.description);Y(g,{id:`description`,get disabled(){return i()},get error(){return V(e)},label:`Description`,placeholder:`Enter task description (min 10 characters)`,get value(){return f.description},set value(e){f.description=e}})}var _=L(g,2),v=F(_);mi(v),Oe(2),k(_),k(m);var y=L(m,2),x=e=>{var t=wa(),n=F(t),r=L(F(n),2),i=F(r,!0);k(r),k(n),k(t),R(()=>G(i,o().message)),W(e,t)};K(y,e=>{o()&&e(x)});var S=L(y,2),C=e=>{var t=Ta(),n=F(t),r=L(F(n),2),i=F(r,!0);k(r),k(n),k(t),R(()=>G(i,V(d))),W(e,t)};K(S,e=>{V(d)&&e(C)});var w=L(S,2),T=F(w),E=F(T),ee=e=>{W(e,Ea())},te=e=>{W(e,Rr(`Submit`))};K(E,e=>{i()?e(ee):e(te,-1)}),k(T),k(w),R(()=>{oi(l,1,`rounded px-2.5 py-0.5 text-xs font-medium ${i()?`bg-blue-100 text-blue-800`:`bg-gray-100 text-gray-800`}`),G(p,i()?`In Progress`:`Idle`),v.disabled=i(),T.disabled=n()||i()}),bi(v,()=>V(u),e=>P(u,e)),H(`click`,T,b),W(e,t)},sidebar:e=>{var t=Oa(),s=F(t);la(s,{get data(){return f},get errors(){return a()},get hasErrors(){return n()},get isDirty(){return r()},onFill:y});var c=L(s,2),l=L(F(c),2),u=F(l),d=L(F(u));k(u);var p=L(u,2),m=L(F(p));k(p),k(l),k(c),k(t),R(()=>{G(d,` ${i()??``}`),G(m,` ${o()?.message??`none`??``}`)}),W(e,t)},sourceCode:e=>{ba(e,{children:(e,t)=>{var n=ka(),r=I(n);J(r,{code:`const { data, execute, state: { errors, hasErrors, isDirty, actionInProgress, actionError } } = +\r\f\xA0\v`];function ai(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||ii.includes(r[o-1]))&&(s===r.length||ii.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function oi(e,t,n,r,i,a){var o=e.__className;if(D||o!==n||o===void 0){var s=ai(n,r,a);(!D||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e.__className=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}function si(t,n,r=!1){if(t.multiple){if(n==null)return;if(!e(n))return Ce();for(var i of t.options)i.selected=n.includes(ui(i));return}for(i of t.options)if(sn(ui(i),n)){i.selected=!0;return}(!r||n!==void 0)&&(t.selectedIndex=-1)}function ci(e){var t=new MutationObserver(()=>{si(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),kn(()=>{t.disconnect()})}function li(e,t,n=t){var r=new WeakSet,i=!0;wn(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),ui);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&ui(o)}n(a),e.__value=a,j!==null&&r.add(j)}),Pn(()=>{var a=t();if(e===document.activeElement){var o=Pe?dt:j;if(r.has(o))return}if(si(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=ui(s),n(a))}e.__value=a,i=!1}),ci(e)}function ui(e){return`__value`in e?e.__value:e.value}var di=Symbol(`is custom element`),fi=Symbol(`is html`),pi=se?`link`:`LINK`;function mi(e){if(D){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;hi(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;hi(e,`checked`,null),e.checked=r}}};e.__on_r=n,We(n),Sn()}}function hi(e,t,n,r){var i=gi(e);D&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===pi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[ae]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&vi(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function gi(e){return e.__attributes??={[di]:e.nodeName.includes(`-`),[fi]:e.namespaceURI===xe}}var _i=new Map;function vi(e){var t=e.getAttribute(`is`)||e.nodeName,n=_i.get(t);if(n)return n;_i.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var s in r=o(i),r)r[s].set&&n.push(s);i=l(i)}return n}function yi(e,t,n=t){var r=new WeakSet;wn(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=xi(e)?Si(a):a,n(a),j!==null&&r.add(j),await br(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(D&&e.defaultValue!==e.value||Cr(t)==null&&e.value)&&(n(xi(e)?Si(e.value):e.value),j!==null&&r.add(j)),In(()=>{var n=t();if(e===document.activeElement){var i=Pe?dt:j;if(r.has(i))return}xi(e)&&n===Si(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function bi(e,t,n=t){wn(e,`change`,t=>{n(t?e.defaultChecked:e.checked)}),(D&&e.defaultChecked!==e.checked||Cr(t)==null)&&n(e.checked),In(()=>{e.checked=!!t()})}function xi(e){var t=e.type;return t===`number`||t===`range`}function Si(e){return e===``?null:+e}function Ci(e=!1){let t=Le,n=t.l.u;if(!n)return;let r=()=>wr(t.s);if(e){let e=0,n={},i=Rt(()=>{let r=!1,i=t.s;for(let e in i)i[e]!==n[e]&&(n[e]=i[e],r=!0);return r&&e++,e});r=()=>V(i)}n.b.length&&Mn(()=>{wi(t,r),p(n.b)}),An(()=>{let e=Cr(()=>n.m.map(f));return()=>{for(let t of e)typeof t==`function`&&t()}}),n.a.length&&An(()=>{wi(t,r),p(n.a)})}function wi(e,t){if(e.l.s)for(let t of e.l.s)V(t);t()}function Ti(e,t,n,r){var i=!Fe||(n&2)!=0,o=(n&8)!=0,s=(n&16)!=0,c=r,l=!0,u=()=>(l&&(l=!1,c=s?Cr(r):r),c);let d;if(o){var f=re in e||ie in e;d=a(e,t)?.set??(f&&t in e?n=>e[t]=n:void 0)}var p,m=!1;o?[p,m]=lt(()=>e[t]):p=e[t],p===void 0&&r!==void 0&&(p=u(),d&&(i&&me(t),d(p)));var h=i?()=>{var n=e[t];return n===void 0?u():(l=!0,n)}:()=>{var n=e[t];return n!==void 0&&(c=void 0),n===void 0?c:n};if(i&&!(n&4))return h;if(d){var g=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||g||m)&&d(t?h():e),e):h()})}var _=!1,v=(n&1?Rt:Bt)(()=>(_=!1,h()));o&&V(v);var y=B;return(function(e,t){if(arguments.length>0){let n=t?V(v):i&&o?an(e):e;return P(v,n),_=!0,c!==void 0&&(c=n),e}return Qn&&_||y.f&16384?v.v:V(v)})}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);function Ei(e){let t=e.batchSize??20,n=e.flushInterval??5e3,r=e.include,i=[],a,o=e=>!r||r.includes(e),s=(e,n)=>{o(e)&&(i.push({type:e,timestamp:Date.now(),detail:n}),i.length>=t&&c())},c=()=>{if(i.length===0)return;let t=i.splice(0);e.onFlush(t)};return{name:`analytics`,onInit(){n>0&&(a=setInterval(c,n))},onChange(t){let n=e.redact?.includes(t.property);s(`change`,{property:t.property,currentValue:n?`[redacted]`:t.currentValue,oldValue:n?`[redacted]`:t.oldValue})},onValidation(e){s(`validation`,{hasErrors:e!==void 0})},onSnapshot(e){s(`snapshot`,{title:e.title})},onAction(e){s(`action`,{phase:e.phase,error:e.error?.message})},onRollback(e){s(`rollback`,{title:e.title})},onReset(){s(`reset`,{})},destroy(){a!==void 0&&clearInterval(a),c()},flush(){c()},eventCount(){return i.length}}}function Di(e){let t=e.idle??1e3,n=e.interval??0,r=e.saveOnDestroy??!0,i=e.onlyWhenDirty??!0,a,o,s,c=!1,l=!1,u=async()=>{if(a&&!(i&&!it(a.state.isDirty))&&!c){c=!0;try{await e.save(a.data)}catch(t){e.onError?.(t)}finally{c=!1}}},d=()=>{clearTimeout(o),o=setTimeout(u,t)},f=()=>{typeof document<`u`&&document.visibilityState===`hidden`&&u()};return{name:`autosave`,onInit(t){a=t,n>0&&(s=setInterval(u,n)),e.onVisibilityHidden&&typeof document<`u`&&document.addEventListener(`visibilitychange`,f)},onChange(){d()},onAction(e){e.phase===`after`&&!e.error&&clearTimeout(o)},destroy(){if(l=!0,clearTimeout(o),s!==void 0&&clearInterval(s),typeof document<`u`&&document.removeEventListener(`visibilitychange`,f),r&&a&&(c=!1,!i||it(a.state.isDirty)))try{let t=e.save(a.data);t instanceof Promise&&t.catch(t=>e.onError?.(t))}catch(t){e.onError?.(t)}},async saveNow(){l||(clearTimeout(o),c=!1,await u())},isSaving(){return c}}}var Oi=()=>{try{return import.meta.env?.PROD===!0}catch{return!1}};function ki(e){let t=e?.name??`svstate`,n=e?.collapsed??!0,r=e?.logValidation??!1,i=e?.logValues??!1,a=e?.enabled??!Oi(),o=(e,...r)=>{if(!a)return;let i=new Date().toISOString().slice(11,23);(n?console.groupCollapsed:console.group)(`[${t}] ${e} (${i})`);for(let e of r)console.log(e);console.groupEnd()};return{name:`devtools`,onChange(e){i?o(`change`,{property:e.property,from:e.oldValue,to:e.currentValue}):o(`change`,{property:e.property})},onValidation(e){r&&o(`validation`,e)},onSnapshot(e){o(`snapshot`,{title:e.title})},onAction(e){e.error?o(`action:${e.phase}`,{params:e.params,error:e.error.message}):o(`action:${e.phase}`,{params:e.params})},onRollback(e){o(`rollback`,{title:e.title})},onReset(){o(`reset`)}}}var Ai=new Set([`__proto__`,`constructor`,`prototype`]),ji=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Mi=e=>ji(e)&&typeof e.version==`number`&&ji(e.data),Ni=(e,t)=>{for(let n of Object.keys(t))Ai.has(n)||(e[n]=t[n])},Pi=(e,t)=>{let n=t.split(`.`),r=e;for(let e of n){if(r==null)return;r=r[e]}return r},Fi=(e,t,n)=>{let r=t.split(`.`),i=e;for(let e=0;e{if(t){let n={};for(let r of t){let t=Pi(e,r);t!==void 0&&Fi(n,r,t)}return n}if(n){let t={...e};for(let e of n){let n=e.split(`.`);if(n.length===1)delete t[e];else{let e=t;for(let t=0;t`u`?void 0:localStorage),n=e.throttle??300,r=e.version??1,i=!1,a,o,s=()=>{if(!t||!o)return;let n={version:r,data:Ii(o,e.include,e.exclude)};t.setItem(e.key,JSON.stringify(n))},c=()=>{clearTimeout(a),a=setTimeout(s,n)};return{name:`persist`,onInit(n){if(o=n.data,!t)return;let a=t.getItem(e.key);if(a)try{let t=JSON.parse(a);if(!Mi(t))return;let o=t;if(e.migrate&&o.version!==r){let t=e.migrate(o.data,o.version);if(!ji(t))return;o={version:r,data:t}}Ni(n.data,o.data),i=!0}catch{}},onChange(){c()},onReset(){s()},destroy(){a!==void 0&&(clearTimeout(a),s())},clearPersistedState(){t?.removeItem(e.key)},isRestored(){return i}}}var Ri=new Set([`__proto__`,`constructor`,`prototype`]),zi=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Bi=10,Vi=(e,t=0)=>t>Bi?!1:zi(e)?Object.values(e).every(e=>Vi(e,t+1)):!0,Hi=(e,t)=>{for(let n of Object.keys(t))Ri.has(n)||(e[n]=t[n])};function Ui(e){let t=e.throttle??100,n=e.merge??`overwrite`,r,i,a=!1,o,s=0,c=()=>{if(!r||!i)return;let e=JSON.parse(JSON.stringify(i.data));r.postMessage({type:`sync`,data:e})},l=()=>{clearTimeout(o),o=setTimeout(c,t)},u=()=>{clearTimeout(o),r&&=(r.close(),void 0)};return{name:`sync`,onInit(o){i=o,!(typeof BroadcastChannel>`u`)&&(r=new BroadcastChannel(e.key),r.addEventListener(`message`,e=>{if(!i||n===`ignore`||e.data?.type!==`sync`)return;let r=Date.now();r-s{if(typeof e!=`object`||!e)return e;if(e instanceof Date)return new Date(e);if(Array.isArray(e))return e.map(e=>o(e));let t=Object.create(Object.getPrototypeOf(e));for(let n of Object.keys(e))t[n]=o(e[n]);return t};return{name:`undo-redo`,redoStack:{subscribe:t.subscribe},onInit(e){r=e,i=e.state.snapshots.subscribe(e=>{e.length0&&(a=n.at(-1)),n=e})},onRollback(){a&&=(t.update(t=>{let n=[...t,a],r=e?.maxRedoStack;return r&&r>0?n.slice(-r):n}),void 0)},onChange(){t.set([])},onReset(){t.set([])},redo(){if(!r)return;let e=it(t);if(e.length===0)return;let n=e.at(-1);t.set(e.slice(0,-1)),r.snapshot(`Undo`),Object.assign(r.data,o(n.data))},canRedo(){return it(t).length>0},destroy(){i?.()}}}var Gi=e=>typeof e==`object`&&!!e&&!(e instanceof Date)&&!(e instanceof Map)&&!(e instanceof Set)&&!(e instanceof WeakMap)&&!(e instanceof WeakSet)&&!(e instanceof RegExp)&&!(e instanceof Error)&&!(e instanceof Promise),Ki=(e,t)=>{let n=(e,i)=>new Proxy(e,{get(e,t){if(typeof t==`symbol`)return e[t];let r=e[t];if(Gi(r)){let e=Number.isInteger(Number(t))?``:String(t);return n(r,e?i?`${i}.${e}`:e:i)}return r},set(e,n,a){if(typeof n==`symbol`)return e[n]=a,!0;let o=e[n];if(o!==a){e[n]=a;let s=Number.isInteger(Number(n))?``:String(n);t(r,s?i?`${i}.${s}`:s:i,a,o)}return!0}}),r=n(e,``);return r},qi=e=>Object.values(e).some(e=>typeof e==`string`?!!e:qi(e)),Ji=e=>!!e&&qi(e),Yi=new Set([`__proto__`,`constructor`,`prototype`]),Xi=e=>{if(typeof e!=`object`||!e)return e;if(e instanceof Date)return new Date(e);if(Array.isArray(e))return e.map(e=>Xi(e));let t=Object.create(Object.getPrototypeOf(e));for(let n of Object.keys(e))Yi.has(n)||(t[n]=Xi(e[n]));return t},Zi=(e,t)=>{let n=t.split(`.`),r=e;for(let e of n){if(r==null)return;r=r[e]}return r},Qi=(e,t)=>{if(!e)return``;let n=t.split(`.`),r=e;for(let e of n){if(typeof r==`string`||r[e]===void 0)return``;r=r[e]}return typeof r==`string`?r:``},$i=(e,t)=>{let n=[];for(let r of Object.keys(e))(r===t||r.startsWith(t+`.`)||t.startsWith(r+`.`))&&n.push(r);return n},ea={resetDirtyOnAction:!0,debounceValidation:0,allowConcurrentActions:!1,persistActionError:!1,debounceAsyncValidation:300,runAsyncValidationOnInit:!1,clearAsyncErrorsOnChange:!0,maxConcurrentAsyncValidations:4,maxSnapshots:50,plugins:[]};function ta(e,t,n){let r={...ea,...n},{validator:i,effect:a,asyncValidator:o}=t??{},s=nt(),c=rt(s,Ji),l=nt({}),u=rt(l,e=>Object.keys(e).length>0),d=nt(!1),f=nt(),p=nt([{title:`Initial`,data:Xi(e)}]),m=nt({}),h=nt(new Set),g=rt(h,e=>[...e]),_=rt(m,e=>Object.values(e).some(e=>!!e)),v=rt([c,_],([e,t])=>e||t),y=new Map,b=[],x=e=>{l.update(t=>{let n={...t,[e]:!0},r=e.split(`.`);for(let e=1;e{for(let n of C){let r=n[e];typeof r==`function`&&r.call(n,...t)}},T=()=>{if(!i)return;let e=i(ue);s.set(e),w(`onValidation`,e)},E=(e,t=!0)=>{let n=it(p),i={title:e,data:Xi(S)},a=n.at(-1),o=t&&a&&a.title===e?[...n.slice(0,-1),i]:[...n,i];if(r.maxSnapshots>0&&o.length>r.maxSnapshots){let e=o.length-r.maxSnapshots;o=[o[0],...o.slice(1+e)]}p.set(o),w(`onSnapshot`,i)},ee=!1,te,ne=()=>{if(i)if(r.debounceValidation>0)clearTimeout(te),te=setTimeout(()=>{T()},r.debounceValidation);else{if(ee)return;ee=!0,queueMicrotask(()=>{T(),ee=!1})}},re=e=>{let t=b.indexOf(e);t!==-1&&b.splice(t,1)},ie=e=>{re(e);let t=y.get(e);t&&(clearTimeout(t.timeoutId),t.controller.abort(),y.delete(e),h.update(t=>(t.delete(e),new Set(t))))},ae=()=>{b.length=0;for(let e of y.keys())ie(e);m.set({})},oe=async(e,t)=>{if(!o){t();return}let n=o[e];if(!n){t();return}if(Qi(it(s),e)){t();return}let r=new AbortController;y.set(e,{controller:r,timeoutId:0}),h.update(t=>new Set([...t,e]));try{let t=await n(Zi(ue,e),ue,r.signal);r.signal.aborted||m.update(n=>({...n,[e]:t}))}catch(t){if(t instanceof Error&&t.name===`AbortError`)return;if(!r.signal.aborted){let n=t instanceof Error?t.message:`Async validation error`;m.update(t=>({...t,[e]:n}))}}finally{y.delete(e),h.update(t=>(t.delete(e),new Set(t))),t()}},se=()=>{for(;b.length>0&&!(it(h).size>=r.maxConcurrentAsyncValidations);){let e=b.shift();e&&oe(e,se)}},ce=e=>{if(!o||!o[e])return;ie(e),r.clearAsyncErrorsOnChange&&m.update(t=>{let n={...t};return delete n[e],n});let t=new AbortController,n=setTimeout(()=>{y.delete(e),it(h).size{if(!o)return;let t=$i(o,e);for(let e of t)ce(e)},ue=Ki(S,(e,t,n,i)=>{if(r.persistActionError||f.set(void 0),x(t),a?.({snapshot:E,target:e,property:t,currentValue:n,oldValue:i})instanceof Promise)throw Error(`svstate: effect callback must be synchronous. Use action for async operations.`);w(`onChange`,{target:e,property:t,currentValue:n,oldValue:i}),ne(),le(t)});if(T(),o&&r.runAsyncValidationOnInit)for(let e of Object.keys(o))ce(e);let de=async e=>{if(!(!r.allowConcurrentActions&&it(d))){w(`onAction`,{phase:`before`,params:e}),f.set(void 0),d.set(!0);try{await t?.action?.(e),r.resetDirtyOnAction&&l.set({}),p.set([{title:`Initial`,data:Xi(S)}]),await t?.actionCompleted?.(),w(`onAction`,{phase:`after`,params:e})}catch(n){await t?.actionCompleted?.(n);let r=n instanceof Error?n:void 0;f.set(r),w(`onAction`,{phase:`after`,params:e,error:r})}finally{d.set(!1)}}},fe=(e,t)=>{let n=t[e];if(n)return ae(),l.set({}),Object.assign(S,Xi(n.data)),p.set(t.slice(0,e+1)),T(),n},pe=(e=1)=>{let t=it(p);if(t.length<=1)return;let n=fe(Math.max(0,t.length-1-e),t);n&&w(`onRollback`,n)},me=e=>{let t=it(p);if(t.length<=1)return!1;for(let n=t.length-1;n>=0;n--)if(t[n].title===e){let e=fe(n,t);return e&&w(`onRollback`,e),!0}return!1},he=()=>{let e=it(p);e[0]&&(fe(0,e),w(`onReset`))},ge={errors:s,hasErrors:c,isDirty:u,isDirtyByField:l,actionInProgress:d,actionError:f,snapshots:p,asyncErrors:m,hasAsyncErrors:_,asyncValidating:g,hasCombinedErrors:v};return w(`onInit`,{data:ue,state:ge,options:r,snapshot:E}),{data:ue,execute:de,state:ge,rollback:pe,rollbackTo:me,reset:he,destroy:()=>{for(let e=C.length-1;e>=0;e--)C[e]?.destroy?.()}}}var na={trim:e=>e.trim(),normalize:e=>e.replaceAll(/\s{2,}/g,` `),upper:e=>e.toUpperCase(),lower:e=>e.toLowerCase(),localeUpper:e=>e.toLocaleUpperCase(),localeLower:e=>e.toLocaleLowerCase()};function q(e){let t=``,n=e==null,r=e??``,i=e=>{t||=e},a={prepare(...e){return r=e.reduce((e,t)=>na[t](e),r),a},required(){return!t&&(n||!r)&&i(`Required`),a},requiredIf(e){return e&&!t&&(n||!r)&&i(`Required`),a},noSpace(){return n||!t&&r.includes(` `)&&i(`No space allowed`),a},notBlank(){return n||!t&&r.length>0&&r.trim().length===0&&i(`Must not be blank`),a},minLength(e){return n||!t&&r.lengthe&&i(`Max length ${e}`),a},uppercase(){return n||!t&&r!==r.toUpperCase()&&i(`Uppercase only`),a},lowercase(){return n||!t&&r!==r.toLowerCase()&&i(`Lowercase only`),a},startsWith(e){if(t)return a;let n=Array.isArray(e)?e:[e];return r&&!n.some(e=>r.startsWith(e))&&i(`Must start with ${n.join(`, `)}`),a},regexp(e,n){return!t&&r&&!e.test(r)&&i(n??`Not allowed chars`),a},in(e){if(t)return a;let n=Array.isArray(e)?e:Object.keys(e);return r&&!n.includes(r)&&i(`Must be one of: ${n.join(`, `)}`),a},notIn(e){if(t)return a;let n=Array.isArray(e)?e:Object.keys(e);return r&&n.includes(r)&&i(`Must not be one of: ${n.join(`, `)}`),a},email(){return!t&&r&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r)&&i(`Invalid email format`),a},website(e=`optional`){if(t||!r||e===`optional`)return a;let n=/^https?:\/\//.test(r);return e===`required`&&!n?i(`Must start with http:// or https://`):e===`forbidden`&&n&&i(`Must not start with http:// or https://`),a},endsWith(e){if(t||!r)return a;let n=Array.isArray(e)?e:[e];return n.some(e=>r.endsWith(e))||i(`Must end with ${n.join(`, `)}`),a},contains(e){return!t&&r&&!r.includes(e)&&i(`Must contain "${e}"`),a},alphanumeric(){return!t&&r&&!/^[\dA-Za-z]+$/.test(r)&&i(`Only letters and numbers allowed`),a},numeric(){return!t&&r&&!/^\d+$/.test(r)&&i(`Only numbers allowed`),a},slug(){return!t&&r&&!/^[\da-z-]+$/.test(r)&&i(`Invalid slug format`),a},identifier(){return!t&&r&&!/^[A-Z_a-z]\w*$/.test(r)&&i(`Invalid identifier format`),a},getError(){return t}};return a}function ra(e){let t=``,n=e==null,r=e=>{t||=e},i={required(){return!t&&(n||Number.isNaN(e))&&r(`Required`),i},requiredIf(a){return a&&!t&&(n||Number.isNaN(e))&&r(`Required`),i},min(a){return n||!t&&ea&&r(`Maximum ${a}`),i},between(a,o){return n||!t&&(eo)&&r(`Must be between ${a} and ${o}`),i},integer(){return n||!t&&!Number.isInteger(e)&&r(`Must be an integer`),i},positive(){return n||!t&&e<=0&&r(`Must be positive`),i},negative(){return n||!t&&e>=0&&r(`Must be negative`),i},nonNegative(){return n||!t&&e<0&&r(`Must be non-negative`),i},notZero(){return n||!t&&e===0&&r(`Must not be zero`),i},multipleOf(a){return n||!t&&e%a!==0&&r(`Must be a multiple of ${a}`),i},step(a){return n||!t&&e%a!==0&&r(`Must be a multiple of ${a}`),i},decimal(a){return n||t||Number.isNaN(e)||(String(e).split(`.`)[1]?.length??0)>a&&r(`Maximum ${a} decimal places`),i},percentage(){return n||!t&&(e<0||e>100)&&r(`Must be between 0 and 100`),i},getError(){return t}};return i}function ia(e){let t=``,n=e==null,r=e??[],i=e=>{t||=e},a={required(){return!t&&(n||r.length===0)&&i(`Required`),a},requiredIf(e){return e&&!t&&(n||r.length===0)&&i(`Required`),a},minLength(e){return n||!t&&r.lengthe&&i(`Maximum ${e} items`),a},unique(){if(n||t)return a;let e=new Set;for(let t of r){let n=typeof t==`object`?JSON.stringify(t):String(t);if(e.has(n)){i(`Items must be unique`);break}e.add(n)}return a},ofLength(e){return n||!t&&r.length!==e&&i(`Must have exactly ${e} items`),a},includes(e){if(n||t)return a;let o=typeof e==`object`?JSON.stringify(e):String(e);return r.some(e=>(typeof e==`object`?JSON.stringify(e):String(e))===o)||i(`Must include ${o}`),a},includesAny(e){if(n||t)return a;let o=e.map(e=>typeof e==`object`?JSON.stringify(e):String(e));return r.some(e=>{let t=typeof e==`object`?JSON.stringify(e):String(e);return o.includes(t)})||i(`Must include at least one of: ${o.join(`, `)}`),a},includesAll(e){if(n||t)return a;let o=new Set(r.map(e=>typeof e==`object`?JSON.stringify(e):String(e))),s=e.filter(e=>{let t=typeof e==`object`?JSON.stringify(e):String(e);return!o.has(t)});return s.length>0&&i(`Missing required items: ${s.map(e=>typeof e==`object`?JSON.stringify(e):String(e)).join(`, `)}`),a},getError(){return t}};return a}var aa=U(`
`),oa=U(`
 
`);function J(e,t){var n=oa(),r=F(n),i=e=>{var n=aa(),r=F(n,!0);k(n),R(()=>G(r,t.title)),W(e,n)};K(r,e=>{t.title&&e(i)});var a=L(r,2),o=F(a,!0);k(a),k(n),R(()=>G(o,t.code)),W(e,n)}var sa=U(`
Dirty Fields
 
`),ca=U(`
State Object
 
State Info
isDirty:
hasErrors:
Errors
 
`);function la(e,t){ze(t,!0);let n=Ti(t,`width`,3,`xl:w-80`);var r=ca(),i=F(r),a=L(F(i),2),o=F(a,!0);k(a),k(i);var s=L(i,2),c=L(F(s),2),l=F(c),u=L(F(l));k(l);var d=L(l,2),f=L(F(d));k(d),k(c),k(s);var p=L(s,2),m=e=>{var n=sa(),r=L(F(n),2),i=F(r,!0);k(r),k(n),R(e=>G(i,e),[()=>JSON.stringify(t.isDirtyByField,Object.keys(t.isDirtyByField).toSorted(),2)]),W(e,n)};K(p,e=>{t.isDirtyByField&&e(m)});var h=L(p,2),g=L(F(h),2),_=F(g,!0);k(g),k(h);var v=L(h,2);k(r),R((e,i)=>{oi(r,1,`w-full ${n()??``} flex-shrink-0 space-y-4`),G(o,e),G(u,` ${t.isDirty??``}`),G(f,` ${t.hasErrors??``}`),G(_,i)},[()=>JSON.stringify(t.data,void 0,2),()=>JSON.stringify(t.errors,void 0,2)]),H(`click`,v,function(...e){t.onFill?.apply(this,e)}),W(e,r),Be()}jr([`click`]);var ua=U(`

`);function da(e,t){var n=zr(),r=I(n),i=e=>{var n=ua(),r=F(n,!0);k(n),R(()=>G(r,t.error)),W(e,n)};K(r,e=>{t.error&&e(i)}),W(e,n)}var fa=U(``),pa=U(`
`);function Y(e,t){ze(t,!0);let n=Ti(t,`type`,3,`text`),r=Ti(t,`placeholder`,3,``),i=Ti(t,`value`,15),a=Ti(t,`error`,3,``),o=Ti(t,`required`,3,!0),s=Ti(t,`disabled`,3,!1),c=Ti(t,`variant`,3,`default`),l=M(()=>c()===`nested`?`bg-white`:`bg-gray-50`);var u=pa(),d=F(u),f=F(d),p=L(f),m=e=>{W(e,fa())};K(p,e=>{t.isDirty&&e(m)}),k(d);var h=L(d,2);mi(h);var g=L(h,2);{let e=M(()=>a()??``);da(g,{get error(){return V(e)}})}k(u),R(()=>{oi(d,1,`mb-2 block text-sm text-gray-900 ${o()?`font-bold`:``}`),hi(d,`for`,t.id),G(f,`${t.label??``} `),hi(h,`id`,t.id),oi(h,1,`block w-full rounded-lg border p-2.5 text-sm ${a()?`border-red-500 bg-red-50 text-red-900 placeholder-red-400 focus:border-red-500 focus:ring-red-500`:`border-gray-300 ${V(l)} text-gray-900 focus:border-blue-500 focus:ring-blue-500`} ${s()?`cursor-not-allowed opacity-50`:``}`),h.disabled=s(),hi(h,`max`,t.max),hi(h,`min`,t.min),hi(h,`placeholder`,r()),hi(h,`step`,t.step),hi(h,`type`,n())}),yi(h,i),W(e,u),Be()}var ma=U(`

`),ha=U(`
`),ga=U(`
`,1);function _a(e,t){var n=ga(),r=I(n),i=F(r),a=F(i),o=F(a,!0);k(a);var s=L(a,2),c=e=>{var n=ma(),r=F(n,!0);k(n),R(()=>G(r,t.description)),W(e,n)},l=e=>{W(e,ha())};K(s,e=>{t.description?e(c):e(l,-1)}),ri(L(s,2),()=>t.main),k(i),ri(L(i,2),()=>t.sidebar),k(r);var u=L(r,2),d=e=>{var n=zr();ri(I(n),()=>t.sourceCode),W(e,n)};K(u,e=>{t.sourceCode&&e(d)}),R(()=>G(o,t.title)),W(e,n)}var va=U(`
`),ya=U(`
`);function ba(e,t){let n=N(!1);var r=ya(),i=F(r),a=L(F(i),2);k(i);var o=L(i,2),s=e=>{var n=va();ri(F(n),()=>t.children),k(n),W(e,n)};K(o,e=>{V(n)&&e(s)}),k(r),R(()=>{oi(i,1,`flex w-full cursor-pointer items-center justify-between px-4 py-3 text-left text-sm font-medium text-gray-900 hover:bg-gray-50 ${V(n)?`border-b border-gray-200`:``}`),oi(a,0,`h-5 w-5 transform transition-transform ${V(n)?`rotate-180`:``}`)}),H(`click`,i,()=>P(n,!V(n))),W(e,r)}jr([`click`]);var xa=U(`
`);function Sa(e,t){var n=xa(),r=F(n),i=F(r,!0);k(r);var a=L(r,2),o=F(a,!0);k(a),k(n),R(()=>{oi(r,1,`rounded px-2.5 py-0.5 text-xs font-medium ${t.hasErrors?`bg-red-100 text-red-800`:`bg-green-100 text-green-800`}`),G(i,t.hasErrors?`Has Errors`:`Valid`),oi(a,1,`rounded px-2.5 py-0.5 text-xs font-medium ${t.isDirty?`bg-yellow-100 text-yellow-800`:`bg-gray-100 text-gray-800`}`),G(o,t.isDirty?`Modified`:`Clean`)}),W(e,n)}var X=()=>Math.random().toString(36).slice(2,8),Ca=(e,t)=>Math.floor(Math.random()*(t-e+1))+e,wa=U(`
`),Ta=U(`
`),Ea=U(` Submitting...`),Da=U(`
`,1),Oa=U(`
Action State
actionInProgress:
actionError:
`),ka=U(` `,1);function Aa(e,t){ze(t,!0);let n=()=>A(h,`$hasErrors`,s),r=()=>A(g,`$isDirty`,s),i=()=>A(_,`$actionInProgress`,s),a=()=>A(m,`$errors`,s),o=()=>A(v,`$actionError`,s),[s,c]=ct(),l={title:`Task ${X()}`,description:`This is a sample task description with ID ${X()}`},u=N(!1),d=N(void 0),{data:f,execute:p,state:{errors:m,hasErrors:h,isDirty:g,actionInProgress:_,actionError:v}}=ta(l,{validator:e=>({title:q(e.title).prepare(`trim`).required().minLength(3).maxLength(50).getError(),description:q(e.description).prepare(`trim`).required().minLength(10).maxLength(200).getError()}),action:async()=>{let e=Ca(100,1e3);if(await new Promise(t=>setTimeout(t,e)),V(u))throw Error(`Simulated server error after ${e}ms`);P(d,`Submitted successfully in ${e}ms!`)},actionCompleted:e=>{e&&P(d,void 0)}}),y=()=>{f.title=`Task ${X()}`,f.description=`This is a sample task description with ID ${X()}`},b=()=>{P(d,void 0),p()};_a(e,{description:`Demonstrates async action execution with loading states and error handling.`,title:`Action Demo`,main:e=>{var t=Da(),s=I(t);Sa(s,{get hasErrors(){return n()},get isDirty(){return r()}});var c=L(s,2),l=F(c),p=F(l,!0);k(l),k(c);var m=L(c,2),h=F(m);{let e=M(()=>a()?.title);Y(h,{id:`title`,get disabled(){return i()},get error(){return V(e)},label:`Title`,placeholder:`Enter task title`,get value(){return f.title},set value(e){f.title=e}})}var g=L(h,2);{let e=M(()=>a()?.description);Y(g,{id:`description`,get disabled(){return i()},get error(){return V(e)},label:`Description`,placeholder:`Enter task description (min 10 characters)`,get value(){return f.description},set value(e){f.description=e}})}var _=L(g,2),v=F(_);mi(v),Oe(2),k(_),k(m);var y=L(m,2),x=e=>{var t=wa(),n=F(t),r=L(F(n),2),i=F(r,!0);k(r),k(n),k(t),R(()=>G(i,o().message)),W(e,t)};K(y,e=>{o()&&e(x)});var S=L(y,2),C=e=>{var t=Ta(),n=F(t),r=L(F(n),2),i=F(r,!0);k(r),k(n),k(t),R(()=>G(i,V(d))),W(e,t)};K(S,e=>{V(d)&&e(C)});var w=L(S,2),T=F(w),E=F(T),ee=e=>{W(e,Ea())},te=e=>{W(e,Rr(`Submit`))};K(E,e=>{i()?e(ee):e(te,-1)}),k(T),k(w),R(()=>{oi(l,1,`rounded px-2.5 py-0.5 text-xs font-medium ${i()?`bg-blue-100 text-blue-800`:`bg-gray-100 text-gray-800`}`),G(p,i()?`In Progress`:`Idle`),v.disabled=i(),T.disabled=n()||i()}),bi(v,()=>V(u),e=>P(u,e)),H(`click`,T,b),W(e,t)},sidebar:e=>{var t=Oa(),s=F(t);la(s,{get data(){return f},get errors(){return a()},get hasErrors(){return n()},get isDirty(){return r()},onFill:y});var c=L(s,2),l=L(F(c),2),u=F(l),d=L(F(u));k(u);var p=L(u,2),m=L(F(p));k(p),k(l),k(c),k(t),R(()=>{G(d,` ${i()??``}`),G(m,` ${o()?.message??`none`??``}`)}),W(e,t)},sourceCode:e=>{ba(e,{children:(e,t)=>{var n=ka(),r=I(n);J(r,{code:`const { data, execute, state: { errors, hasErrors, isDirty, actionInProgress, actionError } } = createSvState(sourceData, { validator: (source) => ({ title: stringValidator(source.title).prepare('trim').required().minLength(3).maxLength(50).getError(), @@ -509,4 +509,4 @@ const fieldMeta = { `,title:`Dynamic Rendering via z.pick()`}),W(e,n)},$$slots:{default:!0}})},$$slots:{main:!0,sidebar:!0,sourceCode:!0}}),Be(),s()}var Xp=U(``),Zp=U(`
svstate logo

svstate

A Svelte 5 library that provides a supercharged $state() with deep reactive proxies, validation, snapshot/undo, - and side effects — built for complex, real-world applications.

$ npm i svstate
`);function Qp(e){let t=[{value:`basic-validation`,name:`Basic Validation`},{value:`nested-objects`,name:`Nested Objects`},{value:`array-property`,name:`Array Property`},{value:`calculated-fields`,name:`Calculated Fields`},{value:`calculated-class`,name:`State with Methods`},{value:`reset-demo`,name:`Reset`},{value:`snapshot-demo`,name:`Snapshot & Rollback`},{value:`action-demo`,name:`Action & Error`},{value:`async-validation`,name:`Async Validation`},{value:`options-demo`,name:`Options`},{value:`zod-validation`,name:`Zod Integration`},{value:`plugin-devtools`,name:`Plugin: Devtools`},{value:`plugin-persist-sync`,name:`Plugin: Persist & Sync`},{value:`plugin-undo-redo`,name:`Plugin: Undo/Redo`},{value:`plugin-autosave-analytics`,name:`Plugin: Autosave & Analytics`}],n=N(`basic-validation`),r=`1.5.2`,i=`/svstate`;var a=Zp(),o=F(a),s=F(o),c=L(s,2),l=F(c),u=L(F(l),2),d=F(u);k(u),k(l);var f=L(l,4),p=L(F(f),4);k(f);var m=L(f,2);k(c),k(o);var h=L(o,2),g=F(h),_=F(g),v=L(F(_),2);Zr(v,21,()=>t,qr,(e,t)=>{var n=Xp(),r=F(n,!0);k(n);var i={};R(()=>{G(r,V(t).name),i!==(i=V(t).value)&&(n.value=(n.__value=V(t).value)??``)}),W(e,n)}),k(v),k(_),k(g);var y=L(g,2),b=F(y),x=e=>{eo(e,{})},S=e=>{xo(e,{})},C=e=>{Ba(e,{})},w=e=>{lo(e,{})},T=e=>{oo(e,{})},E=e=>{_s(e,{})},ee=e=>{Ts(e,{})},te=e=>{Aa(e,{})},ne=e=>{Ja(e,{})},re=e=>{ko(e,{})},ie=e=>{Yp(e,{})},ae=e=>{Yo(e,{})},oe=e=>{ns(e,{})},se=e=>{ps(e,{})},ce=e=>{Vo(e,{})};K(b,e=>{V(n)===`basic-validation`?e(x):V(n)===`nested-objects`?e(S,1):V(n)===`array-property`?e(C,2):V(n)===`calculated-fields`?e(w,3):V(n)===`calculated-class`?e(T,4):V(n)===`reset-demo`?e(E,5):V(n)===`snapshot-demo`?e(ee,6):V(n)===`action-demo`?e(te,7):V(n)===`async-validation`?e(ne,8):V(n)===`options-demo`?e(re,9):V(n)===`zod-validation`?e(ie,10):V(n)===`plugin-devtools`?e(ae,11):V(n)===`plugin-persist-sync`?e(oe,12):V(n)===`plugin-undo-redo`?e(se,13):V(n)===`plugin-autosave-analytics`&&e(ce,14)}),k(y),k(h),k(a),R(()=>{hi(s,`src`,`${i}/favicon.png`),G(d,`v${r??``}`),hi(m,`href`,`${i}/llms.txt`)}),H(`click`,p,()=>navigator.clipboard.writeText(`npm i svstate@${r}`)),li(v,()=>V(n),e=>P(n,e)),W(e,a)}jr([`click`]),Br(Qp,{target:document.querySelector(`#app`)}); \ No newline at end of file + and side effects — built for complex, real-world applications.

$ npm i svstate
`);function Qp(e){let t=[{value:`basic-validation`,name:`Basic Validation`},{value:`nested-objects`,name:`Nested Objects`},{value:`array-property`,name:`Array Property`},{value:`calculated-fields`,name:`Calculated Fields`},{value:`calculated-class`,name:`State with Methods`},{value:`reset-demo`,name:`Reset`},{value:`snapshot-demo`,name:`Snapshot & Rollback`},{value:`action-demo`,name:`Action & Error`},{value:`async-validation`,name:`Async Validation`},{value:`options-demo`,name:`Options`},{value:`zod-validation`,name:`Zod Integration`},{value:`plugin-devtools`,name:`Plugin: Devtools`},{value:`plugin-persist-sync`,name:`Plugin: Persist & Sync`},{value:`plugin-undo-redo`,name:`Plugin: Undo/Redo`},{value:`plugin-autosave-analytics`,name:`Plugin: Autosave & Analytics`}],n=N(`basic-validation`),r=`1.5.3`,i=`/svstate`;var a=Zp(),o=F(a),s=F(o),c=L(s,2),l=F(c),u=L(F(l),2),d=F(u);k(u),k(l);var f=L(l,4),p=L(F(f),4);k(f);var m=L(f,2);k(c),k(o);var h=L(o,2),g=F(h),_=F(g),v=L(F(_),2);Zr(v,21,()=>t,qr,(e,t)=>{var n=Xp(),r=F(n,!0);k(n);var i={};R(()=>{G(r,V(t).name),i!==(i=V(t).value)&&(n.value=(n.__value=V(t).value)??``)}),W(e,n)}),k(v),k(_),k(g);var y=L(g,2),b=F(y),x=e=>{eo(e,{})},S=e=>{xo(e,{})},C=e=>{Ba(e,{})},w=e=>{lo(e,{})},T=e=>{oo(e,{})},E=e=>{_s(e,{})},ee=e=>{Ts(e,{})},te=e=>{Aa(e,{})},ne=e=>{Ja(e,{})},re=e=>{ko(e,{})},ie=e=>{Yp(e,{})},ae=e=>{Yo(e,{})},oe=e=>{ns(e,{})},se=e=>{ps(e,{})},ce=e=>{Vo(e,{})};K(b,e=>{V(n)===`basic-validation`?e(x):V(n)===`nested-objects`?e(S,1):V(n)===`array-property`?e(C,2):V(n)===`calculated-fields`?e(w,3):V(n)===`calculated-class`?e(T,4):V(n)===`reset-demo`?e(E,5):V(n)===`snapshot-demo`?e(ee,6):V(n)===`action-demo`?e(te,7):V(n)===`async-validation`?e(ne,8):V(n)===`options-demo`?e(re,9):V(n)===`zod-validation`?e(ie,10):V(n)===`plugin-devtools`?e(ae,11):V(n)===`plugin-persist-sync`?e(oe,12):V(n)===`plugin-undo-redo`?e(se,13):V(n)===`plugin-autosave-analytics`&&e(ce,14)}),k(y),k(h),k(a),R(()=>{hi(s,`src`,`${i}/favicon.png`),G(d,`v${r??``}`),hi(m,`href`,`${i}/llms.txt`)}),H(`click`,p,()=>navigator.clipboard.writeText(`npm i svstate@${r}`)),li(v,()=>V(n),e=>P(n,e)),W(e,a)}jr([`click`]),Br(Qp,{target:document.querySelector(`#app`)}); \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 5839d7b..a13927a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -5,7 +5,7 @@ svstate demo - + diff --git a/package-lock.json b/package-lock.json index 99d6b3b..8d35b16 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "svstate", - "version": "1.5.2", + "version": "1.5.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "svstate", - "version": "1.5.2", + "version": "1.5.3", "license": "ISC", "devDependencies": { "@eslint/eslintrc": "^3.3.5", diff --git a/package.json b/package.json index 7bb2ee0..ac8bce3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "svstate", - "version": "1.5.2", + "version": "1.5.3", "description": "Supercharged $state() for Svelte 5: deep reactive proxy with validation, cross-field rules, computed & side-effects", "author": "BCsabaEngine", "license": "ISC", diff --git a/src/proxy.ts b/src/proxy.ts index a042786..2fc1279 100644 --- a/src/proxy.ts +++ b/src/proxy.ts @@ -21,7 +21,8 @@ export const ChangeProxy = (source: T, changed: ProxyChanged new Proxy(target, { get(object, property) { - const value = (object as Record)[property as string]; + if (typeof property === 'symbol') return (object as Record)[property]; + const value = (object as Record)[property]; if (isProxiable(value)) { const pathSegment = Number.isInteger(Number(property)) ? '' : String(property); const childPath = pathSegment ? (parentPath ? `${parentPath}.${pathSegment}` : pathSegment) : parentPath; @@ -30,9 +31,13 @@ export const ChangeProxy = (source: T, changed: ProxyChanged)[property as string]; + if (typeof property === 'symbol') { + (object as Record)[property] = incomingValue; + return true; + } + const oldValue = (object as Record)[property]; if (oldValue !== incomingValue) { - (object as Record)[property as string] = incomingValue; + (object as Record)[property] = incomingValue; const pathSegment = Number.isInteger(Number(property)) ? '' : String(property); const fullPath = pathSegment ? (parentPath ? `${parentPath}.${pathSegment}` : pathSegment) : parentPath; changed(data as T, fullPath, incomingValue, oldValue);