@yakocloud/state-vocab 3.1.4 → 3.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -508,4 +508,23 @@ A React context provider that initializes a `VocabStore` for its subtree. Requir
508
508
  | `onSet` | `(next: T, prev: T) => void \| undefined` | Callback after state change |
509
509
  | `bidirectional` | `true \| undefined` | Sync state across browser tabs |
510
510
 
511
- Returns `[value, setValue, resetValue]`
511
+ Returns `[value, setValue, resetValue]`
512
+
513
+ ### `node.useInitialState(options)`
514
+
515
+ Initializes state without subscribing the caller component to re-renders. Use at layout or root components that only need to seed a value — not react to its changes.
516
+
517
+ | Option | Type | Description |
518
+ |---|---|---|
519
+ | `defaultValue` | `T \| (() => T)` | Value to seed. Required. |
520
+
521
+ ```tsx
522
+ function Page() {
523
+ // Seeds the value — this component will NOT re-render when pageProps changes
524
+ storage.demo.pageProps.useInitialState({
525
+ defaultValue: { title: 'Hello', count: 42 },
526
+ })
527
+
528
+ return <Dashboard />
529
+ }
530
+ ```
@@ -1,8 +1,8 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("react");var M={exports:{}},I={};var re;function ve(){if(re)return I;re=1;var t=Symbol.for("react.transitional.element"),n=Symbol.for("react.fragment");function r(u,s,a){var i=null;if(a!==void 0&&(i=""+a),s.key!==void 0&&(i=""+s.key),"key"in s){a={};for(var c in s)c!=="key"&&(a[c]=s[c])}else a=s;return s=a.ref,{$$typeof:t,type:u,key:i,ref:s!==void 0?s:null,props:a}}return I.Fragment=n,I.jsx=r,I.jsxs=r,I}var $={};var ne;function Ee(){return ne||(ne=1,process.env.NODE_ENV!=="production"&&(function(){function t(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===de?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case p:return"Fragment";case O:return"Profiler";case k:return"StrictMode";case J:return"Suspense";case l:return"SuspenseList";case x:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case h:return"Portal";case w:return e.displayName||"Context";case P:return(e._context.displayName||"Context")+".Consumer";case V:var o=e.render;return e=e.displayName,e||(e=o.displayName||o.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case T:return o=e.displayName||null,o!==null?o:t(e.type)||"Memo";case j:o=e._payload,e=e._init;try{return t(e(o))}catch{}}return null}function n(e){return""+e}function r(e){try{n(e);var o=!1}catch{o=!0}if(o){o=console;var d=o.error,v=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return d.call(o,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",v),n(e)}}function u(e){if(e===p)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===j)return"<...>";try{var o=t(e);return o?"<"+o+">":"<...>"}catch{return"<...>"}}function s(){var e=W.A;return e===null?null:e.getOwner()}function a(){return Error("react-stack-top-frame")}function i(e){if(H.call(e,"key")){var o=Object.getOwnPropertyDescriptor(e,"key").get;if(o&&o.isReactWarning)return!1}return e.key!==void 0}function c(e,o){function d(){Z||(Z=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",o))}d.isReactWarning=!0,Object.defineProperty(e,"key",{get:d,configurable:!0})}function y(){var e=t(this.type);return Q[e]||(Q[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function R(e,o,d,v,Y,q){var E=d.ref;return e={$$typeof:S,type:e,key:o,props:d,_owner:v},(E!==void 0?E:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:y}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:Y}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:q}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function g(e,o,d,v,Y,q){var E=o.children;if(E!==void 0)if(v)if(be(E)){for(v=0;v<E.length;v++)f(E[v]);Object.freeze&&Object.freeze(E)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else f(E);if(H.call(o,"key")){E=t(e);var N=Object.keys(o).filter(function(me){return me!=="key"});v=0<N.length?"{key: someKey, "+N.join(": ..., ")+": ...}":"{key: someKey}",te[E+v]||(N=0<N.length?"{"+N.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("react");var Y={exports:{}},V={};var re;function Ee(){if(re)return V;re=1;var t=Symbol.for("react.transitional.element"),n=Symbol.for("react.fragment");function r(u,o,a){var l=null;if(a!==void 0&&(l=""+a),o.key!==void 0&&(l=""+o.key),"key"in o){a={};for(var c in o)c!=="key"&&(a[c]=o[c])}else a=o;return o=a.ref,{$$typeof:t,type:u,key:l,ref:o!==void 0?o:null,props:a}}return V.Fragment=n,V.jsx=r,V.jsxs=r,V}var I={};var ne;function Se(){return ne||(ne=1,process.env.NODE_ENV!=="production"&&(function(){function t(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===be?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case h:return"Fragment";case A:return"Profiler";case j:return"StrictMode";case J:return"Suspense";case i:return"SuspenseList";case P:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case p:return"Portal";case k:return e.displayName||"Context";case w:return(e._context.displayName||"Context")+".Consumer";case C:var s=e.render;return e=e.displayName,e||(e=s.displayName||s.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case T:return s=e.displayName||null,s!==null?s:t(e.type)||"Memo";case O:s=e._payload,e=e._init;try{return t(e(s))}catch{}}return null}function n(e){return""+e}function r(e){try{n(e);var s=!1}catch{s=!0}if(s){s=console;var b=s.error,m=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return b.call(s,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",m),n(e)}}function u(e){if(e===h)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===O)return"<...>";try{var s=t(e);return s?"<"+s+">":"<...>"}catch{return"<...>"}}function o(){var e=W.A;return e===null?null:e.getOwner()}function a(){return Error("react-stack-top-frame")}function l(e){if(H.call(e,"key")){var s=Object.getOwnPropertyDescriptor(e,"key").get;if(s&&s.isReactWarning)return!1}return e.key!==void 0}function c(e,s){function b(){Z||(Z=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",s))}b.isReactWarning=!0,Object.defineProperty(e,"key",{get:b,configurable:!0})}function y(){var e=t(this.type);return Q[e]||(Q[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function R(e,s,b,m,M,q){var v=b.ref;return e={$$typeof:S,type:e,key:s,props:b,_owner:m},(v!==void 0?v:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:y}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:M}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:q}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function g(e,s,b,m,M,q){var v=s.children;if(v!==void 0)if(m)if(me(v)){for(m=0;m<v.length;m++)f(v[m]);Object.freeze&&Object.freeze(v)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else f(v);if(H.call(s,"key")){v=t(e);var N=Object.keys(s).filter(function(ve){return ve!=="key"});m=0<N.length?"{key: someKey, "+N.join(": ..., ")+": ...}":"{key: someKey}",te[v+m]||(N=0<N.length?"{"+N.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
2
2
  let props = %s;
3
3
  <%s {...props} />
4
4
  React keys must be passed directly to JSX without using spread:
5
5
  let props = %s;
6
- <%s key={someKey} {...props} />`,v,E,N,E),te[E+v]=!0)}if(E=null,d!==void 0&&(r(d),E=""+d),i(o)&&(r(o.key),E=""+o.key),"key"in o){d={};for(var G in o)G!=="key"&&(d[G]=o[G])}else d=o;return E&&c(d,typeof e=="function"?e.displayName||e.name||"Unknown":e),R(e,E,d,s(),Y,q)}function f(e){b(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===j&&(e._payload.status==="fulfilled"?b(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function b(e){return typeof e=="object"&&e!==null&&e.$$typeof===S}var m=_,S=Symbol.for("react.transitional.element"),h=Symbol.for("react.portal"),p=Symbol.for("react.fragment"),k=Symbol.for("react.strict_mode"),O=Symbol.for("react.profiler"),P=Symbol.for("react.consumer"),w=Symbol.for("react.context"),V=Symbol.for("react.forward_ref"),J=Symbol.for("react.suspense"),l=Symbol.for("react.suspense_list"),T=Symbol.for("react.memo"),j=Symbol.for("react.lazy"),x=Symbol.for("react.activity"),de=Symbol.for("react.client.reference"),W=m.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,H=Object.prototype.hasOwnProperty,be=Array.isArray,U=console.createTask?console.createTask:function(){return null};m={react_stack_bottom_frame:function(e){return e()}};var Z,Q={},K=m.react_stack_bottom_frame.bind(m,a)(),ee=U(u(a)),te={};$.Fragment=p,$.jsx=function(e,o,d){var v=1e4>W.recentlyCreatedOwnerStacks++;return g(e,o,d,!1,v?Error("react-stack-top-frame"):K,v?U(u(e)):ee)},$.jsxs=function(e,o,d){var v=1e4>W.recentlyCreatedOwnerStacks++;return g(e,o,d,!0,v?Error("react-stack-top-frame"):K,v?U(u(e)):ee)}})()),$}var oe;function Se(){return oe||(oe=1,process.env.NODE_ENV==="production"?M.exports=ve():M.exports=Ee()),M.exports}var he=Se();function L(t,n,r){if(!n)return t;const u=n.split(".");let s=t;for(const a of u)if(s!==null&&typeof s=="object"&&a in s)s=s[a];else return r;return s===void 0?r:s}function pe(t,n,r){const u=n.replace(/\[(\d+)\]/g,".$1").split(".");let s=t;for(let a=0;a<u.length-1;a++){const i=u[a],c=u[a+1];(s[i]===void 0||s[i]===null)&&(s[i]=/^\d+$/.test(c)?[]:{}),s=s[i]}return s[u[u.length-1]]=r,t}function _e(t,n=0){let r;return function(...u){r!==void 0&&clearTimeout(r),r=setTimeout(()=>{r=void 0,t.apply(this,u)},n)}}function ye(t,n,r=[]){return _.useMemo(()=>_e(t,n),r)}function se(t){const n=JSON.stringify(t,null,2).split(`
7
- `),r=[],u=[];for(const s of n){const a=s.match(/^(\s*)"([^"]+)"(\s*:\s*)(.+)$/);if(a){const[,i,c,y,R]=a;r.push(`${i}%c"${c}"%c${y}%c${R}`),u.push("color: #9cdcfe; font-weight: bold","color: #cccccc","color: #ce9178")}else r.push(`%c${s}`),u.push("color: #cccccc")}console.log(r.join(`
8
- `),...u,t)}const ue=t=>typeof t=="function",Re=t=>typeof t=="function",A=t=>typeof t<"u",C=t=>Re(t)?t():t;class Te{#e;#t;constructor(){this.uid=Math.random().toString(36).slice(2),this.#e={},this.#t=new Set}subscribe(n){return this.#t.add(n),()=>this.#t.delete(n)}getClientSnapshot(){return this.#e}getServerSnapshot(){return this.#e}get(n){return L(this.#e,n)}set(n,r){const u=L(this.#e,n),s=ue(r)?r(u):r,a={...this.#e};pe(a,n,s),this.#e=a,this.#t.forEach(i=>i())}}const le=_.createContext({});function ae(t={}){const n=_.useContext(le);return t.verbose&&console.log(`[Store uid]: ${n.uid}`),n}function ge({children:t}){const n=_.useMemo(()=>new Te,[]);return he.jsx(le.Provider,{value:n,children:t})}const ie=Symbol("state-def"),z=Symbol("state-path"),D=Symbol("state-verbose"),B=Symbol("state-verbose-path"),F=Symbol("state-ssr"),X=typeof window>"u",ce=X?_.useEffect:_.useLayoutEffect;function ke(t={}){return{[ie]:!0,[z]:"",[D]:!1,[B]:"",[F]:!1,useState(n){const r=X?void 0:C(t.storage),u=C(t.defaultValue),s=t.bidirectional;n??={};const a=C(n.defaultValue)??u,i=n.bidirectional??s,c=this[z],y=this[D],R=this[B],g=this[F],f=ae({verbose:y}),b=t.serialize??JSON.stringify,m=t.deserialize??JSON.parse,S=(l,T,j)=>{const x=T.getItem(l);x===null?A(j)&&T.setItem(l,b(j)):f.set(l,m(x))},h=ye(n.onSet??(()=>{}),n.delayedSet,[]),p=_.useRef(void 0),k=_.useRef(!1);if(!k.current){k.current=!0;let l=f.get(c);A(l)||(l=a,A(l)&&f.set(c,l)),!g&&r&&S(c,r,l)}const O=_.useSyncExternalStore(f.subscribe.bind(f),f.getClientSnapshot.bind(f),f.getServerSnapshot.bind(f));if(y)if(R){const l=L(O,R);l&&se(l)}else se(O);const P=L(O,c,a);p.current=P,ce(()=>{!g||!r||S(c,r,P)},[]);const w=_.useEffectEvent(l=>{if(l.key!==c)return;const T=l.newValue,x=(T===null?null:m(T))??a;A(x)&&(f.set(c,x),h(x,p.current))});_.useEffect(()=>{if(i)return window.addEventListener("storage",w),()=>window.removeEventListener("storage",w)},[i]);const V=_.useCallback(l=>{const T=ue(l)?l(p.current):l;f.set(c,T),h(T,p.current),r&&r.setItem(c,b(T))},[f,c,h,r,b]),J=_.useCallback(()=>{const l=a;if(!A(l)){r?.removeItem(c);return}f.set(c,l),h(l,p.current),r&&r.setItem(c,b(l))},[a,f,c,h,r,b]);return[P,V,J]},useInitialState(n){const r=X?void 0:C(t.storage),u=C(t.defaultValue);n??={};const s=C(n.defaultValue)??u,a=this[z],i=this[D],c=this[F],y=ae({verbose:i}),R=t.serialize??JSON.stringify,g=t.deserialize??JSON.parse,f=(S,h,p)=>{const k=h.getItem(S);k===null?A(p)&&h.setItem(S,R(p)):y.set(S,g(k))},b=_.useRef(!1);let m;b.current||(b.current=!0,m=y.get(a),A(m)||(m=s,A(m)&&y.set(a,m)),!c&&r&&f(a,r,m)),ce(()=>{!c||!r||f(a,r,m)},[])},toString(){return this[z]}}}function fe(t,n){const{path:r="",verbose:u,verbosePath:s,ssr:a,cache:i}=n;let c=i.proxy.get(t);c||(c=new Map,i.proxy.set(t,c));const y=c.get(r);if(y)return y;const R=new Proxy(t,{get(g,f){const b=g[f],m=r?`${r}.${String(f)}`:String(f);if(b&&typeof b=="object"&&ie in b){const S=b;let h=i.leaf.get(S);h||(h=new Map,i.leaf.set(S,h));const p=h.get(m);if(p)return p;const k=Reflect.ownKeys(S).filter(w=>typeof S[w]=="function"),O=Object.fromEntries(k.map(w=>[w,(...V)=>S[w].call({...S,[z]:m,[D]:u,[B]:s,[F]:a},...V)])),P={...S,...O};return h.set(m,P),P}return b&&typeof b=="object"?fe(b,{...n,path:m}):b}});return c.set(r,R),R}function we(t,n){return fe(t,{...n,verbosePath:n?.verbosePath??"",cache:{proxy:new WeakMap,leaf:new WeakMap}})}exports.VocabStateProvider=ge;exports.defineState=ke;exports.setupStorage=we;
6
+ <%s key={someKey} {...props} />`,m,v,N,v),te[v+m]=!0)}if(v=null,b!==void 0&&(r(b),v=""+b),l(s)&&(r(s.key),v=""+s.key),"key"in s){b={};for(var G in s)G!=="key"&&(b[G]=s[G])}else b=s;return v&&c(b,typeof e=="function"?e.displayName||e.name||"Unknown":e),R(e,v,b,o(),M,q)}function f(e){d(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===O&&(e._payload.status==="fulfilled"?d(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function d(e){return typeof e=="object"&&e!==null&&e.$$typeof===S}var E=_,S=Symbol.for("react.transitional.element"),p=Symbol.for("react.portal"),h=Symbol.for("react.fragment"),j=Symbol.for("react.strict_mode"),A=Symbol.for("react.profiler"),w=Symbol.for("react.consumer"),k=Symbol.for("react.context"),C=Symbol.for("react.forward_ref"),J=Symbol.for("react.suspense"),i=Symbol.for("react.suspense_list"),T=Symbol.for("react.memo"),O=Symbol.for("react.lazy"),P=Symbol.for("react.activity"),be=Symbol.for("react.client.reference"),W=E.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,H=Object.prototype.hasOwnProperty,me=Array.isArray,U=console.createTask?console.createTask:function(){return null};E={react_stack_bottom_frame:function(e){return e()}};var Z,Q={},K=E.react_stack_bottom_frame.bind(E,a)(),ee=U(u(a)),te={};I.Fragment=h,I.jsx=function(e,s,b){var m=1e4>W.recentlyCreatedOwnerStacks++;return g(e,s,b,!1,m?Error("react-stack-top-frame"):K,m?U(u(e)):ee)},I.jsxs=function(e,s,b){var m=1e4>W.recentlyCreatedOwnerStacks++;return g(e,s,b,!0,m?Error("react-stack-top-frame"):K,m?U(u(e)):ee)}})()),I}var oe;function pe(){return oe||(oe=1,process.env.NODE_ENV==="production"?Y.exports=Ee():Y.exports=Se()),Y.exports}var he=pe();function L(t,n,r){if(!n)return t;const u=n.split(".");let o=t;for(const a of u)if(o!==null&&typeof o=="object"&&a in o)o=o[a];else return r;return o===void 0?r:o}function _e(t,n,r){const u=n.replace(/\[(\d+)\]/g,".$1").split(".");let o=t;for(let a=0;a<u.length-1;a++){const l=u[a],c=u[a+1];(o[l]===void 0||o[l]===null)&&(o[l]=/^\d+$/.test(c)?[]:{}),o=o[l]}return o[u[u.length-1]]=r,t}function ye(t,n=0){let r;return function(...u){r!==void 0&&clearTimeout(r),r=setTimeout(()=>{r=void 0,t.apply(this,u)},n)}}function Re(t,n,r=[]){return _.useMemo(()=>ye(t,n),r)}function se(t){const n=JSON.stringify(t,null,2).split(`
7
+ `),r=[],u=[];for(const o of n){const a=o.match(/^(\s*)"([^"]+)"(\s*:\s*)(.+)$/);if(a){const[,l,c,y,R]=a;r.push(`${l}%c"${c}"%c${y}%c${R}`),u.push("color: #9cdcfe; font-weight: bold","color: #cccccc","color: #ce9178")}else r.push(`%c${o}`),u.push("color: #cccccc")}console.log(r.join(`
8
+ `),...u,t)}const ue=t=>typeof t=="function",Te=t=>typeof t=="function",x=t=>typeof t<"u",$=t=>Te(t)?t():t;class ie{#e;#t;constructor(){this.uid=Math.random().toString(36).slice(2),this.#e={},this.#t=new Set}subscribe(n){return this.#t.add(n),()=>this.#t.delete(n)}getClientSnapshot(){return this.#e}getServerSnapshot(){return this.#e}get(n){return L(this.#e,n)}set(n,r){const u=L(this.#e,n),o=ue(r)?r(u):r,a={...this.#e};_e(a,n,o),this.#e=a,this.#t.forEach(l=>l())}}const le=_.createContext({});function ae(t={}){const n=_.useContext(le);return t.verbose&&console.log(`[Store uid]: ${n.uid}`),n}function ge({children:t}){const n=_.useMemo(()=>new ie,[]);return he.jsx(le.Provider,{value:n,children:t})}const fe=Symbol("state-def"),z=Symbol("state-path"),D=Symbol("state-verbose"),B=Symbol("state-verbose-path"),F=Symbol("state-ssr"),X=typeof window>"u",ce=X?_.useEffect:_.useLayoutEffect;function ke(t={}){return{[fe]:!0,[z]:"",[D]:!1,[B]:"",[F]:!1,useState(n){const r=X?void 0:$(t.storage),u=$(t.defaultValue),o=t.bidirectional;n??={};const a=$(n.defaultValue)??u,l=n.bidirectional??o,c=this[z],y=this[D],R=this[B],g=this[F],f=ae({verbose:y});if(!(f instanceof ie))throw new Error("Make sure your component is wrapped in VocabStateProvider");const d=t.serialize??JSON.stringify,E=t.deserialize??JSON.parse,S=(i,T,O)=>{const P=T.getItem(i);P===null?x(O)&&T.setItem(i,d(O)):f.set(i,E(P))},p=Re(n.onSet??(()=>{}),n.delayedSet,[]),h=_.useRef(void 0),j=_.useRef(!1);if(!j.current){j.current=!0;let i=f.get(c);x(i)||(i=a,x(i)&&f.set(c,i)),!g&&r&&S(c,r,i)}const A=_.useSyncExternalStore(f.subscribe.bind(f),f.getClientSnapshot.bind(f),f.getServerSnapshot.bind(f));if(y)if(R){const i=L(A,R);i&&se(i)}else se(A);const w=L(A,c,a);h.current=w,ce(()=>{!g||!r||S(c,r,w)},[]);const k=_.useEffectEvent(i=>{if(i.key!==c)return;const T=i.newValue,P=(T===null?null:E(T))??a;x(P)&&(f.set(c,P),p(P,h.current))});_.useEffect(()=>{if(l)return window.addEventListener("storage",k),()=>window.removeEventListener("storage",k)},[l]);const C=_.useCallback(i=>{const T=ue(i)?i(h.current):i;f.set(c,T),p(T,h.current),r&&r.setItem(c,d(T))},[f,c,p,r,d]),J=_.useCallback(()=>{const i=a;if(!x(i)){r?.removeItem(c);return}f.set(c,i),p(i,h.current),r&&r.setItem(c,d(i))},[a,f,c,p,r,d]);return[w,C,J]},useInitialState(n){const r=X?void 0:$(t.storage),u=$(n.defaultValue),o=this[z],a=this[D],l=this[F],c=ae({verbose:a}),y=t.serialize??JSON.stringify,R=t.deserialize??JSON.parse,g=(E,S,p)=>{const h=S.getItem(E);h===null?x(p)&&S.setItem(E,y(p)):c.set(E,R(h))},f=_.useRef(!1);let d;f.current||(f.current=!0,d=c.get(o),x(d)||(d=u,x(d)&&c.set(o,d)),!l&&r&&g(o,r,d)),ce(()=>{!l||!r||g(o,r,d)},[])},toString(){return this[z]}}}function de(t,n){const{path:r="",verbose:u,verbosePath:o,ssr:a,cache:l}=n;let c=l.proxy.get(t);c||(c=new Map,l.proxy.set(t,c));const y=c.get(r);if(y)return y;const R=new Proxy(t,{get(g,f){const d=g[f],E=r?`${r}.${String(f)}`:String(f);if(d&&typeof d=="object"&&fe in d){const S=d;let p=l.leaf.get(S);p||(p=new Map,l.leaf.set(S,p));const h=p.get(E);if(h)return h;const j=Reflect.ownKeys(S).filter(k=>typeof S[k]=="function"),A=Object.fromEntries(j.map(k=>[k,(...C)=>S[k].call({...S,[z]:E,[D]:u,[B]:o,[F]:a},...C)])),w={...S,...A};return p.set(E,w),w}return d&&typeof d=="object"?de(d,{...n,path:E}):d}});return c.set(r,R),R}function we(t,n){return de(t,{...n,verbosePath:n?.verbosePath??"",cache:{proxy:new WeakMap,leaf:new WeakMap}})}exports.VocabStateProvider=ge;exports.defineState=ke;exports.setupStorage=we;
@@ -1,69 +1,69 @@
1
- import he, { useMemo as ue, createContext as pe, useContext as _e, useRef as G, useEffect as ie, useLayoutEffect as ye, useSyncExternalStore as Re, useEffectEvent as Te, useCallback as re } from "react";
2
- var Y = { exports: {} }, V = {};
1
+ import he, { useMemo as le, createContext as _e, useContext as ye, useRef as G, useEffect as ue, useLayoutEffect as Re, useSyncExternalStore as Te, useEffectEvent as ge, useCallback as re } from "react";
2
+ var Y = { exports: {} }, C = {};
3
3
  var ne;
4
- function ge() {
5
- if (ne) return V;
4
+ function ke() {
5
+ if (ne) return C;
6
6
  ne = 1;
7
7
  var t = Symbol.for("react.transitional.element"), n = Symbol.for("react.fragment");
8
- function r(l, s, a) {
9
- var i = null;
10
- if (a !== void 0 && (i = "" + a), s.key !== void 0 && (i = "" + s.key), "key" in s) {
8
+ function r(i, o, a) {
9
+ var u = null;
10
+ if (a !== void 0 && (u = "" + a), o.key !== void 0 && (u = "" + o.key), "key" in o) {
11
11
  a = {};
12
- for (var c in s)
13
- c !== "key" && (a[c] = s[c]);
14
- } else a = s;
15
- return s = a.ref, {
12
+ for (var c in o)
13
+ c !== "key" && (a[c] = o[c]);
14
+ } else a = o;
15
+ return o = a.ref, {
16
16
  $$typeof: t,
17
- type: l,
18
- key: i,
19
- ref: s !== void 0 ? s : null,
17
+ type: i,
18
+ key: u,
19
+ ref: o !== void 0 ? o : null,
20
20
  props: a
21
21
  };
22
22
  }
23
- return V.Fragment = n, V.jsx = r, V.jsxs = r, V;
23
+ return C.Fragment = n, C.jsx = r, C.jsxs = r, C;
24
24
  }
25
- var I = {};
25
+ var V = {};
26
26
  var oe;
27
- function ke() {
27
+ function we() {
28
28
  return oe || (oe = 1, process.env.NODE_ENV !== "production" && (function() {
29
29
  function t(e) {
30
30
  if (e == null) return null;
31
31
  if (typeof e == "function")
32
- return e.$$typeof === ve ? null : e.displayName || e.name || null;
32
+ return e.$$typeof === Ee ? null : e.displayName || e.name || null;
33
33
  if (typeof e == "string") return e;
34
34
  switch (e) {
35
- case p:
35
+ case h:
36
36
  return "Fragment";
37
- case A:
37
+ case P:
38
38
  return "Profiler";
39
- case g:
39
+ case O:
40
40
  return "StrictMode";
41
41
  case L:
42
42
  return "Suspense";
43
- case u:
43
+ case l:
44
44
  return "SuspenseList";
45
- case x:
45
+ case w:
46
46
  return "Activity";
47
47
  }
48
48
  if (typeof e == "object")
49
49
  switch (typeof e.tag == "number" && console.error(
50
50
  "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
51
51
  ), e.$$typeof) {
52
- case h:
52
+ case p:
53
53
  return "Portal";
54
- case k:
54
+ case g:
55
55
  return e.displayName || "Context";
56
- case w:
56
+ case k:
57
57
  return (e._context.displayName || "Context") + ".Consumer";
58
- case C:
59
- var o = e.render;
60
- return e = e.displayName, e || (e = o.displayName || o.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
58
+ case N:
59
+ var s = e.render;
60
+ return e = e.displayName, e || (e = s.displayName || s.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
61
61
  case R:
62
- return o = e.displayName || null, o !== null ? o : t(e.type) || "Memo";
63
- case O:
64
- o = e._payload, e = e._init;
62
+ return s = e.displayName || null, s !== null ? s : t(e.type) || "Memo";
63
+ case A:
64
+ s = e._payload, e = e._init;
65
65
  try {
66
- return t(e(o));
66
+ return t(e(s));
67
67
  } catch {
68
68
  }
69
69
  }
@@ -75,54 +75,54 @@ function ke() {
75
75
  function r(e) {
76
76
  try {
77
77
  n(e);
78
- var o = !1;
78
+ var s = !1;
79
79
  } catch {
80
- o = !0;
80
+ s = !0;
81
81
  }
82
- if (o) {
83
- o = console;
84
- var d = o.error, v = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
85
- return d.call(
86
- o,
82
+ if (s) {
83
+ s = console;
84
+ var m = s.error, b = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
85
+ return m.call(
86
+ s,
87
87
  "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
88
- v
88
+ b
89
89
  ), n(e);
90
90
  }
91
91
  }
92
- function l(e) {
93
- if (e === p) return "<>";
94
- if (typeof e == "object" && e !== null && e.$$typeof === O)
92
+ function i(e) {
93
+ if (e === h) return "<>";
94
+ if (typeof e == "object" && e !== null && e.$$typeof === A)
95
95
  return "<...>";
96
96
  try {
97
- var o = t(e);
98
- return o ? "<" + o + ">" : "<...>";
97
+ var s = t(e);
98
+ return s ? "<" + s + ">" : "<...>";
99
99
  } catch {
100
100
  return "<...>";
101
101
  }
102
102
  }
103
- function s() {
103
+ function o() {
104
104
  var e = J.A;
105
105
  return e === null ? null : e.getOwner();
106
106
  }
107
107
  function a() {
108
108
  return Error("react-stack-top-frame");
109
109
  }
110
- function i(e) {
110
+ function u(e) {
111
111
  if (H.call(e, "key")) {
112
- var o = Object.getOwnPropertyDescriptor(e, "key").get;
113
- if (o && o.isReactWarning) return !1;
112
+ var s = Object.getOwnPropertyDescriptor(e, "key").get;
113
+ if (s && s.isReactWarning) return !1;
114
114
  }
115
115
  return e.key !== void 0;
116
116
  }
117
- function c(e, o) {
118
- function d() {
117
+ function c(e, s) {
118
+ function m() {
119
119
  Z || (Z = !0, console.error(
120
120
  "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
121
- o
121
+ s
122
122
  ));
123
123
  }
124
- d.isReactWarning = !0, Object.defineProperty(e, "key", {
125
- get: d,
124
+ m.isReactWarning = !0, Object.defineProperty(e, "key", {
125
+ get: m,
126
126
  configurable: !0
127
127
  });
128
128
  }
@@ -132,15 +132,15 @@ function ke() {
132
132
  "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
133
133
  )), e = this.props.ref, e !== void 0 ? e : null;
134
134
  }
135
- function y(e, o, d, v, z, U) {
136
- var E = d.ref;
135
+ function y(e, s, m, b, z, U) {
136
+ var v = m.ref;
137
137
  return e = {
138
138
  $$typeof: S,
139
139
  type: e,
140
- key: o,
141
- props: d,
142
- _owner: v
143
- }, (E !== void 0 ? E : null) !== null ? Object.defineProperty(e, "ref", {
140
+ key: s,
141
+ props: m,
142
+ _owner: b
143
+ }, (v !== void 0 ? v : null) !== null ? Object.defineProperty(e, "ref", {
144
144
  enumerable: !1,
145
145
  get: _
146
146
  }) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
@@ -165,156 +165,156 @@ function ke() {
165
165
  value: U
166
166
  }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
167
167
  }
168
- function T(e, o, d, v, z, U) {
169
- var E = o.children;
170
- if (E !== void 0)
171
- if (v)
172
- if (Ee(E)) {
173
- for (v = 0; v < E.length; v++)
174
- f(E[v]);
175
- Object.freeze && Object.freeze(E);
168
+ function T(e, s, m, b, z, U) {
169
+ var v = s.children;
170
+ if (v !== void 0)
171
+ if (b)
172
+ if (Se(v)) {
173
+ for (b = 0; b < v.length; b++)
174
+ f(v[b]);
175
+ Object.freeze && Object.freeze(v);
176
176
  } else
177
177
  console.error(
178
178
  "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
179
179
  );
180
- else f(E);
181
- if (H.call(o, "key")) {
182
- E = t(e);
183
- var j = Object.keys(o).filter(function(Se) {
184
- return Se !== "key";
180
+ else f(v);
181
+ if (H.call(s, "key")) {
182
+ v = t(e);
183
+ var j = Object.keys(s).filter(function(pe) {
184
+ return pe !== "key";
185
185
  });
186
- v = 0 < j.length ? "{key: someKey, " + j.join(": ..., ") + ": ...}" : "{key: someKey}", te[E + v] || (j = 0 < j.length ? "{" + j.join(": ..., ") + ": ...}" : "{}", console.error(
186
+ b = 0 < j.length ? "{key: someKey, " + j.join(": ..., ") + ": ...}" : "{key: someKey}", te[v + b] || (j = 0 < j.length ? "{" + j.join(": ..., ") + ": ...}" : "{}", console.error(
187
187
  `A props object containing a "key" prop is being spread into JSX:
188
188
  let props = %s;
189
189
  <%s {...props} />
190
190
  React keys must be passed directly to JSX without using spread:
191
191
  let props = %s;
192
192
  <%s key={someKey} {...props} />`,
193
+ b,
193
194
  v,
194
- E,
195
195
  j,
196
- E
197
- ), te[E + v] = !0);
196
+ v
197
+ ), te[v + b] = !0);
198
198
  }
199
- if (E = null, d !== void 0 && (r(d), E = "" + d), i(o) && (r(o.key), E = "" + o.key), "key" in o) {
200
- d = {};
201
- for (var q in o)
202
- q !== "key" && (d[q] = o[q]);
203
- } else d = o;
204
- return E && c(
205
- d,
199
+ if (v = null, m !== void 0 && (r(m), v = "" + m), u(s) && (r(s.key), v = "" + s.key), "key" in s) {
200
+ m = {};
201
+ for (var q in s)
202
+ q !== "key" && (m[q] = s[q]);
203
+ } else m = s;
204
+ return v && c(
205
+ m,
206
206
  typeof e == "function" ? e.displayName || e.name || "Unknown" : e
207
207
  ), y(
208
208
  e,
209
- E,
210
- d,
211
- s(),
209
+ v,
210
+ m,
211
+ o(),
212
212
  z,
213
213
  U
214
214
  );
215
215
  }
216
216
  function f(e) {
217
- m(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e !== null && e.$$typeof === O && (e._payload.status === "fulfilled" ? m(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
217
+ d(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e !== null && e.$$typeof === A && (e._payload.status === "fulfilled" ? d(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
218
218
  }
219
- function m(e) {
219
+ function d(e) {
220
220
  return typeof e == "object" && e !== null && e.$$typeof === S;
221
221
  }
222
- var b = he, S = Symbol.for("react.transitional.element"), h = Symbol.for("react.portal"), p = Symbol.for("react.fragment"), g = Symbol.for("react.strict_mode"), A = Symbol.for("react.profiler"), w = Symbol.for("react.consumer"), k = Symbol.for("react.context"), C = Symbol.for("react.forward_ref"), L = Symbol.for("react.suspense"), u = Symbol.for("react.suspense_list"), R = Symbol.for("react.memo"), O = Symbol.for("react.lazy"), x = Symbol.for("react.activity"), ve = Symbol.for("react.client.reference"), J = b.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, H = Object.prototype.hasOwnProperty, Ee = Array.isArray, W = console.createTask ? console.createTask : function() {
222
+ var E = he, S = Symbol.for("react.transitional.element"), p = Symbol.for("react.portal"), h = Symbol.for("react.fragment"), O = Symbol.for("react.strict_mode"), P = Symbol.for("react.profiler"), k = Symbol.for("react.consumer"), g = Symbol.for("react.context"), N = Symbol.for("react.forward_ref"), L = Symbol.for("react.suspense"), l = Symbol.for("react.suspense_list"), R = Symbol.for("react.memo"), A = Symbol.for("react.lazy"), w = Symbol.for("react.activity"), Ee = Symbol.for("react.client.reference"), J = E.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, H = Object.prototype.hasOwnProperty, Se = Array.isArray, W = console.createTask ? console.createTask : function() {
223
223
  return null;
224
224
  };
225
- b = {
225
+ E = {
226
226
  react_stack_bottom_frame: function(e) {
227
227
  return e();
228
228
  }
229
229
  };
230
- var Z, Q = {}, K = b.react_stack_bottom_frame.bind(
231
- b,
230
+ var Z, Q = {}, K = E.react_stack_bottom_frame.bind(
231
+ E,
232
232
  a
233
- )(), ee = W(l(a)), te = {};
234
- I.Fragment = p, I.jsx = function(e, o, d) {
235
- var v = 1e4 > J.recentlyCreatedOwnerStacks++;
233
+ )(), ee = W(i(a)), te = {};
234
+ V.Fragment = h, V.jsx = function(e, s, m) {
235
+ var b = 1e4 > J.recentlyCreatedOwnerStacks++;
236
236
  return T(
237
237
  e,
238
- o,
239
- d,
238
+ s,
239
+ m,
240
240
  !1,
241
- v ? Error("react-stack-top-frame") : K,
242
- v ? W(l(e)) : ee
241
+ b ? Error("react-stack-top-frame") : K,
242
+ b ? W(i(e)) : ee
243
243
  );
244
- }, I.jsxs = function(e, o, d) {
245
- var v = 1e4 > J.recentlyCreatedOwnerStacks++;
244
+ }, V.jsxs = function(e, s, m) {
245
+ var b = 1e4 > J.recentlyCreatedOwnerStacks++;
246
246
  return T(
247
247
  e,
248
- o,
249
- d,
248
+ s,
249
+ m,
250
250
  !0,
251
- v ? Error("react-stack-top-frame") : K,
252
- v ? W(l(e)) : ee
251
+ b ? Error("react-stack-top-frame") : K,
252
+ b ? W(i(e)) : ee
253
253
  );
254
254
  };
255
- })()), I;
255
+ })()), V;
256
256
  }
257
257
  var se;
258
- function we() {
259
- return se || (se = 1, process.env.NODE_ENV === "production" ? Y.exports = ge() : Y.exports = ke()), Y.exports;
258
+ function xe() {
259
+ return se || (se = 1, process.env.NODE_ENV === "production" ? Y.exports = ke() : Y.exports = we()), Y.exports;
260
260
  }
261
- var xe = we();
262
- function M(t, n, r) {
261
+ var Pe = xe();
262
+ function F(t, n, r) {
263
263
  if (!n)
264
264
  return t;
265
- const l = n.split(".");
266
- let s = t;
267
- for (const a of l)
268
- if (s !== null && typeof s == "object" && a in s)
269
- s = s[a];
265
+ const i = n.split(".");
266
+ let o = t;
267
+ for (const a of i)
268
+ if (o !== null && typeof o == "object" && a in o)
269
+ o = o[a];
270
270
  else
271
271
  return r;
272
- return s === void 0 ? r : s;
272
+ return o === void 0 ? r : o;
273
273
  }
274
- function Pe(t, n, r) {
275
- const l = n.replace(/\[(\d+)\]/g, ".$1").split(".");
276
- let s = t;
277
- for (let a = 0; a < l.length - 1; a++) {
278
- const i = l[a], c = l[a + 1];
279
- (s[i] === void 0 || s[i] === null) && (s[i] = /^\d+$/.test(c) ? [] : {}), s = s[i];
274
+ function Ae(t, n, r) {
275
+ const i = n.replace(/\[(\d+)\]/g, ".$1").split(".");
276
+ let o = t;
277
+ for (let a = 0; a < i.length - 1; a++) {
278
+ const u = i[a], c = i[a + 1];
279
+ (o[u] === void 0 || o[u] === null) && (o[u] = /^\d+$/.test(c) ? [] : {}), o = o[u];
280
280
  }
281
- return s[l[l.length - 1]] = r, t;
281
+ return o[i[i.length - 1]] = r, t;
282
282
  }
283
- function Ae(t, n = 0) {
283
+ function Oe(t, n = 0) {
284
284
  let r;
285
- return function(...l) {
285
+ return function(...i) {
286
286
  r !== void 0 && clearTimeout(r), r = setTimeout(() => {
287
- r = void 0, t.apply(this, l);
287
+ r = void 0, t.apply(this, i);
288
288
  }, n);
289
289
  };
290
290
  }
291
- function Oe(t, n, r = []) {
292
- return ue(
293
- () => Ae(t, n),
291
+ function je(t, n, r = []) {
292
+ return le(
293
+ () => Oe(t, n),
294
294
  // eslint-disable-next-line react-hooks/exhaustive-deps
295
295
  r
296
296
  );
297
297
  }
298
298
  function ae(t) {
299
299
  const n = JSON.stringify(t, null, 2).split(`
300
- `), r = [], l = [];
301
- for (const s of n) {
302
- const a = s.match(/^(\s*)"([^"]+)"(\s*:\s*)(.+)$/);
300
+ `), r = [], i = [];
301
+ for (const o of n) {
302
+ const a = o.match(/^(\s*)"([^"]+)"(\s*:\s*)(.+)$/);
303
303
  if (a) {
304
- const [, i, c, _, y] = a;
305
- r.push(`${i}%c"${c}"%c${_}%c${y}`), l.push(
304
+ const [, u, c, _, y] = a;
305
+ r.push(`${u}%c"${c}"%c${_}%c${y}`), i.push(
306
306
  "color: #9cdcfe; font-weight: bold",
307
307
  "color: #cccccc",
308
308
  "color: #ce9178"
309
309
  );
310
310
  } else
311
- r.push(`%c${s}`), l.push("color: #cccccc");
311
+ r.push(`%c${o}`), i.push("color: #cccccc");
312
312
  }
313
313
  console.log(r.join(`
314
- `), ...l, t);
314
+ `), ...i, t);
315
315
  }
316
- const fe = (t) => typeof t == "function", je = (t) => typeof t == "function", P = (t) => typeof t < "u", N = (t) => je(t) ? t() : t;
317
- class Ne {
316
+ const fe = (t) => typeof t == "function", Ne = (t) => typeof t == "function", x = (t) => typeof t < "u", I = (t) => Ne(t) ? t() : t;
317
+ class de {
318
318
  #e;
319
319
  #t;
320
320
  constructor() {
@@ -330,104 +330,105 @@ class Ne {
330
330
  return this.#e;
331
331
  }
332
332
  get(n) {
333
- return M(this.#e, n);
333
+ return F(this.#e, n);
334
334
  }
335
335
  set(n, r) {
336
- const l = M(this.#e, n), s = fe(r) ? r(l) : r, a = { ...this.#e };
337
- Pe(a, n, s), this.#e = a, this.#t.forEach((i) => i());
336
+ const i = F(this.#e, n), o = fe(r) ? r(i) : r, a = { ...this.#e };
337
+ Ae(a, n, o), this.#e = a, this.#t.forEach((u) => u());
338
338
  }
339
339
  }
340
- const de = pe({});
340
+ const me = _e({});
341
341
  function ce(t = {}) {
342
- const n = _e(de);
342
+ const n = ye(me);
343
343
  return t.verbose && console.log(`[Store uid]: ${n.uid}`), n;
344
344
  }
345
345
  function Ve({ children: t }) {
346
- const n = ue(() => new Ne(), []);
347
- return /* @__PURE__ */ xe.jsx(de.Provider, { value: n, children: t });
346
+ const n = le(() => new de(), []);
347
+ return /* @__PURE__ */ Pe.jsx(me.Provider, { value: n, children: t });
348
348
  }
349
- const me = Symbol("state-def"), $ = Symbol("state-path"), D = Symbol("state-verbose"), B = Symbol("state-verbose-path"), F = Symbol("state-ssr"), X = typeof window > "u", le = X ? ie : ye;
349
+ const be = Symbol("state-def"), $ = Symbol("state-path"), M = Symbol("state-verbose"), B = Symbol("state-verbose-path"), D = Symbol("state-ssr"), X = typeof window > "u", ie = X ? ue : Re;
350
350
  function Ie(t = {}) {
351
351
  return {
352
- [me]: !0,
352
+ [be]: !0,
353
353
  // marks this object as a leaf in the router tree
354
354
  [$]: "",
355
355
  // placeholder; injected at runtime by injectPaths()
356
- [D]: !1,
356
+ [M]: !1,
357
357
  // placeholder
358
358
  [B]: "",
359
359
  // placeholder
360
- [F]: !1,
360
+ [D]: !1,
361
361
  // placeholder
362
362
  useState(n) {
363
- const r = X ? void 0 : N(t.storage), l = N(t.defaultValue), s = t.bidirectional;
363
+ const r = X ? void 0 : I(t.storage), i = I(t.defaultValue), o = t.bidirectional;
364
364
  n ??= {};
365
- const a = N(n.defaultValue) ?? l, i = n.bidirectional ?? s, c = this[$], _ = this[D], y = this[B], T = this[F], f = ce({ verbose: _ }), m = t.serialize ?? JSON.stringify, b = t.deserialize ?? JSON.parse, S = (u, R, O) => {
366
- const x = R.getItem(u);
367
- x === null ? P(O) && R.setItem(u, m(O)) : f.set(u, b(x));
368
- }, h = Oe(
365
+ const a = I(n.defaultValue) ?? i, u = n.bidirectional ?? o, c = this[$], _ = this[M], y = this[B], T = this[D], f = ce({ verbose: _ });
366
+ if (!(f instanceof de))
367
+ throw new Error("Make sure your component is wrapped in VocabStateProvider");
368
+ const d = t.serialize ?? JSON.stringify, E = t.deserialize ?? JSON.parse, S = (l, R, A) => {
369
+ const w = R.getItem(l);
370
+ w === null ? x(A) && R.setItem(l, d(A)) : f.set(l, E(w));
371
+ }, p = je(
369
372
  n.onSet ?? (() => {
370
373
  }),
371
374
  n.delayedSet,
372
375
  []
373
- ), p = G(void 0), g = G(!1);
374
- if (!g.current) {
375
- g.current = !0;
376
- let u = f.get(c);
377
- P(u) || (u = a, P(u) && f.set(c, u)), !T && r && S(c, r, u);
376
+ ), h = G(void 0), O = G(!1);
377
+ if (!O.current) {
378
+ O.current = !0;
379
+ let l = f.get(c);
380
+ x(l) || (l = a, x(l) && f.set(c, l)), !T && r && S(c, r, l);
378
381
  }
379
- const A = Re(
382
+ const P = Te(
380
383
  f.subscribe.bind(f),
381
384
  f.getClientSnapshot.bind(f),
382
385
  f.getServerSnapshot.bind(f)
383
386
  );
384
387
  if (_)
385
388
  if (y) {
386
- const u = M(A, y);
387
- u && ae(u);
389
+ const l = F(P, y);
390
+ l && ae(l);
388
391
  } else
389
- ae(A);
390
- const w = M(A, c, a);
391
- p.current = w, le(() => {
392
- !T || !r || S(c, r, w);
392
+ ae(P);
393
+ const k = F(P, c, a);
394
+ h.current = k, ie(() => {
395
+ !T || !r || S(c, r, k);
393
396
  }, []);
394
- const k = Te((u) => {
395
- if (u.key !== c)
397
+ const g = ge((l) => {
398
+ if (l.key !== c)
396
399
  return;
397
- const R = u.newValue, x = (R === null ? null : b(R)) ?? a;
398
- P(x) && (f.set(c, x), h(x, p.current));
400
+ const R = l.newValue, w = (R === null ? null : E(R)) ?? a;
401
+ x(w) && (f.set(c, w), p(w, h.current));
399
402
  });
400
- ie(() => {
401
- if (i)
402
- return window.addEventListener("storage", k), () => window.removeEventListener("storage", k);
403
- }, [i]);
404
- const C = re((u) => {
405
- const R = fe(u) ? u(p.current) : u;
406
- f.set(c, R), h(R, p.current), r && r.setItem(c, m(R));
407
- }, [f, c, h, r, m]), L = re(() => {
408
- const u = a;
409
- if (!P(u)) {
403
+ ue(() => {
404
+ if (u)
405
+ return window.addEventListener("storage", g), () => window.removeEventListener("storage", g);
406
+ }, [u]);
407
+ const N = re((l) => {
408
+ const R = fe(l) ? l(h.current) : l;
409
+ f.set(c, R), p(R, h.current), r && r.setItem(c, d(R));
410
+ }, [f, c, p, r, d]), L = re(() => {
411
+ const l = a;
412
+ if (!x(l)) {
410
413
  r?.removeItem(c);
411
414
  return;
412
415
  }
413
- f.set(c, u), h(u, p.current), r && r.setItem(c, m(u));
414
- }, [a, f, c, h, r, m]);
416
+ f.set(c, l), p(l, h.current), r && r.setItem(c, d(l));
417
+ }, [a, f, c, p, r, d]);
415
418
  return [
416
- w,
417
- C,
419
+ k,
420
+ N,
418
421
  L
419
422
  ];
420
423
  },
421
424
  useInitialState(n) {
422
- const r = X ? void 0 : N(t.storage), l = N(t.defaultValue);
423
- n ??= {};
424
- const s = N(n.defaultValue) ?? l, a = this[$], i = this[D], c = this[F], _ = ce({ verbose: i }), y = t.serialize ?? JSON.stringify, T = t.deserialize ?? JSON.parse, f = (S, h, p) => {
425
- const g = h.getItem(S);
426
- g === null ? P(p) && h.setItem(S, y(p)) : _.set(S, T(g));
427
- }, m = G(!1);
428
- let b;
429
- m.current || (m.current = !0, b = _.get(a), P(b) || (b = s, P(b) && _.set(a, b)), !c && r && f(a, r, b)), le(() => {
430
- !c || !r || f(a, r, b);
425
+ const r = X ? void 0 : I(t.storage), i = I(n.defaultValue), o = this[$], a = this[M], u = this[D], c = ce({ verbose: a }), _ = t.serialize ?? JSON.stringify, y = t.deserialize ?? JSON.parse, T = (E, S, p) => {
426
+ const h = S.getItem(E);
427
+ h === null ? x(p) && S.setItem(E, _(p)) : c.set(E, y(h));
428
+ }, f = G(!1);
429
+ let d;
430
+ f.current || (f.current = !0, d = c.get(o), x(d) || (d = i, x(d) && c.set(o, d)), !u && r && T(o, r, d)), ie(() => {
431
+ !u || !r || T(o, r, d);
431
432
  }, []);
432
433
  },
433
434
  /** Returns the fully qualified job name (dot-separated path). */
@@ -436,58 +437,58 @@ function Ie(t = {}) {
436
437
  }
437
438
  };
438
439
  }
439
- function be(t, n) {
440
+ function ve(t, n) {
440
441
  const {
441
442
  path: r = "",
442
- verbose: l,
443
- verbosePath: s,
443
+ verbose: i,
444
+ verbosePath: o,
444
445
  ssr: a,
445
- cache: i
446
+ cache: u
446
447
  } = n;
447
- let c = i.proxy.get(t);
448
- c || (c = /* @__PURE__ */ new Map(), i.proxy.set(t, c));
448
+ let c = u.proxy.get(t);
449
+ c || (c = /* @__PURE__ */ new Map(), u.proxy.set(t, c));
449
450
  const _ = c.get(r);
450
451
  if (_)
451
452
  return _;
452
453
  const y = new Proxy(t, {
453
454
  get(T, f) {
454
- const m = T[f], b = r ? `${r}.${String(f)}` : String(f);
455
- if (m && typeof m == "object" && me in m) {
456
- const S = m;
457
- let h = i.leaf.get(S);
458
- h || (h = /* @__PURE__ */ new Map(), i.leaf.set(S, h));
459
- const p = h.get(b);
460
- if (p)
461
- return p;
462
- const g = Reflect.ownKeys(S).filter(
463
- (k) => typeof S[k] == "function"
464
- ), A = Object.fromEntries(
465
- g.map((k) => [
466
- k,
467
- (...C) => S[k].call(
455
+ const d = T[f], E = r ? `${r}.${String(f)}` : String(f);
456
+ if (d && typeof d == "object" && be in d) {
457
+ const S = d;
458
+ let p = u.leaf.get(S);
459
+ p || (p = /* @__PURE__ */ new Map(), u.leaf.set(S, p));
460
+ const h = p.get(E);
461
+ if (h)
462
+ return h;
463
+ const O = Reflect.ownKeys(S).filter(
464
+ (g) => typeof S[g] == "function"
465
+ ), P = Object.fromEntries(
466
+ O.map((g) => [
467
+ g,
468
+ (...N) => S[g].call(
468
469
  {
469
470
  ...S,
470
- [$]: b,
471
- [D]: l,
472
- [B]: s,
473
- [F]: a
471
+ [$]: E,
472
+ [M]: i,
473
+ [B]: o,
474
+ [D]: a
474
475
  },
475
- ...C
476
+ ...N
476
477
  )
477
478
  ])
478
- ), w = { ...S, ...A };
479
- return h.set(b, w), w;
479
+ ), k = { ...S, ...P };
480
+ return p.set(E, k), k;
480
481
  }
481
- return m && typeof m == "object" ? be(m, {
482
+ return d && typeof d == "object" ? ve(d, {
482
483
  ...n,
483
- path: b
484
- }) : m;
484
+ path: E
485
+ }) : d;
485
486
  }
486
487
  });
487
488
  return c.set(r, y), y;
488
489
  }
489
490
  function $e(t, n) {
490
- return be(t, {
491
+ return ve(t, {
491
492
  ...n,
492
493
  verbosePath: n?.verbosePath ?? "",
493
494
  cache: {
@@ -27,11 +27,8 @@ export declare function defineState<D>(definitionOptions?: {
27
27
  [STATE_PATH]: string;
28
28
  [STATE_VERBOSE]: boolean;
29
29
  [STATE_SSR]: boolean;
30
- }, options?: {
31
- defaultValue?: ValueOrFactory<D>;
32
- delayedSet?: number;
33
- bidirectional?: true;
34
- onSet?(nextValue: NoInfer<D>, prevValue: NoInfer<D>): void;
30
+ }, options: {
31
+ defaultValue: ValueOrFactory<D>;
35
32
  }): void;
36
33
  /** Returns the fully qualified job name (dot-separated path). */
37
34
  toString(this: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yakocloud/state-vocab",
3
- "version": "3.1.4",
3
+ "version": "3.1.5",
4
4
  "main": "dist/state-vocab.cjs.js",
5
5
  "module": "dist/state-vocab.es.js",
6
6
  "types": "dist/types/index.d.ts",