@yakocloud/state-vocab 3.1.4 → 3.1.6

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 client";"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,70 @@
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
+ "use client";
2
+ 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";
3
+ var Y = { exports: {} }, C = {};
3
4
  var ne;
4
- function ge() {
5
- if (ne) return V;
5
+ function ke() {
6
+ if (ne) return C;
6
7
  ne = 1;
7
8
  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) {
9
+ function r(i, o, a) {
10
+ var u = null;
11
+ if (a !== void 0 && (u = "" + a), o.key !== void 0 && (u = "" + o.key), "key" in o) {
11
12
  a = {};
12
- for (var c in s)
13
- c !== "key" && (a[c] = s[c]);
14
- } else a = s;
15
- return s = a.ref, {
13
+ for (var c in o)
14
+ c !== "key" && (a[c] = o[c]);
15
+ } else a = o;
16
+ return o = a.ref, {
16
17
  $$typeof: t,
17
- type: l,
18
- key: i,
19
- ref: s !== void 0 ? s : null,
18
+ type: i,
19
+ key: u,
20
+ ref: o !== void 0 ? o : null,
20
21
  props: a
21
22
  };
22
23
  }
23
- return V.Fragment = n, V.jsx = r, V.jsxs = r, V;
24
+ return C.Fragment = n, C.jsx = r, C.jsxs = r, C;
24
25
  }
25
- var I = {};
26
+ var V = {};
26
27
  var oe;
27
- function ke() {
28
+ function we() {
28
29
  return oe || (oe = 1, process.env.NODE_ENV !== "production" && (function() {
29
30
  function t(e) {
30
31
  if (e == null) return null;
31
32
  if (typeof e == "function")
32
- return e.$$typeof === ve ? null : e.displayName || e.name || null;
33
+ return e.$$typeof === Ee ? null : e.displayName || e.name || null;
33
34
  if (typeof e == "string") return e;
34
35
  switch (e) {
35
- case p:
36
+ case h:
36
37
  return "Fragment";
37
- case A:
38
+ case P:
38
39
  return "Profiler";
39
- case g:
40
+ case O:
40
41
  return "StrictMode";
41
42
  case L:
42
43
  return "Suspense";
43
- case u:
44
+ case l:
44
45
  return "SuspenseList";
45
- case x:
46
+ case w:
46
47
  return "Activity";
47
48
  }
48
49
  if (typeof e == "object")
49
50
  switch (typeof e.tag == "number" && console.error(
50
51
  "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
51
52
  ), e.$$typeof) {
52
- case h:
53
+ case p:
53
54
  return "Portal";
54
- case k:
55
+ case g:
55
56
  return e.displayName || "Context";
56
- case w:
57
+ case k:
57
58
  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;
59
+ case N:
60
+ var s = e.render;
61
+ return e = e.displayName, e || (e = s.displayName || s.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
61
62
  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;
63
+ return s = e.displayName || null, s !== null ? s : t(e.type) || "Memo";
64
+ case A:
65
+ s = e._payload, e = e._init;
65
66
  try {
66
- return t(e(o));
67
+ return t(e(s));
67
68
  } catch {
68
69
  }
69
70
  }
@@ -75,54 +76,54 @@ function ke() {
75
76
  function r(e) {
76
77
  try {
77
78
  n(e);
78
- var o = !1;
79
+ var s = !1;
79
80
  } catch {
80
- o = !0;
81
+ s = !0;
81
82
  }
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,
83
+ if (s) {
84
+ s = console;
85
+ var m = s.error, b = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
86
+ return m.call(
87
+ s,
87
88
  "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
88
- v
89
+ b
89
90
  ), n(e);
90
91
  }
91
92
  }
92
- function l(e) {
93
- if (e === p) return "<>";
94
- if (typeof e == "object" && e !== null && e.$$typeof === O)
93
+ function i(e) {
94
+ if (e === h) return "<>";
95
+ if (typeof e == "object" && e !== null && e.$$typeof === A)
95
96
  return "<...>";
96
97
  try {
97
- var o = t(e);
98
- return o ? "<" + o + ">" : "<...>";
98
+ var s = t(e);
99
+ return s ? "<" + s + ">" : "<...>";
99
100
  } catch {
100
101
  return "<...>";
101
102
  }
102
103
  }
103
- function s() {
104
+ function o() {
104
105
  var e = J.A;
105
106
  return e === null ? null : e.getOwner();
106
107
  }
107
108
  function a() {
108
109
  return Error("react-stack-top-frame");
109
110
  }
110
- function i(e) {
111
+ function u(e) {
111
112
  if (H.call(e, "key")) {
112
- var o = Object.getOwnPropertyDescriptor(e, "key").get;
113
- if (o && o.isReactWarning) return !1;
113
+ var s = Object.getOwnPropertyDescriptor(e, "key").get;
114
+ if (s && s.isReactWarning) return !1;
114
115
  }
115
116
  return e.key !== void 0;
116
117
  }
117
- function c(e, o) {
118
- function d() {
118
+ function c(e, s) {
119
+ function m() {
119
120
  Z || (Z = !0, console.error(
120
121
  "%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
122
+ s
122
123
  ));
123
124
  }
124
- d.isReactWarning = !0, Object.defineProperty(e, "key", {
125
- get: d,
125
+ m.isReactWarning = !0, Object.defineProperty(e, "key", {
126
+ get: m,
126
127
  configurable: !0
127
128
  });
128
129
  }
@@ -132,15 +133,15 @@ function ke() {
132
133
  "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
134
  )), e = this.props.ref, e !== void 0 ? e : null;
134
135
  }
135
- function y(e, o, d, v, z, U) {
136
- var E = d.ref;
136
+ function y(e, s, m, b, z, U) {
137
+ var v = m.ref;
137
138
  return e = {
138
139
  $$typeof: S,
139
140
  type: e,
140
- key: o,
141
- props: d,
142
- _owner: v
143
- }, (E !== void 0 ? E : null) !== null ? Object.defineProperty(e, "ref", {
141
+ key: s,
142
+ props: m,
143
+ _owner: b
144
+ }, (v !== void 0 ? v : null) !== null ? Object.defineProperty(e, "ref", {
144
145
  enumerable: !1,
145
146
  get: _
146
147
  }) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
@@ -165,156 +166,156 @@ function ke() {
165
166
  value: U
166
167
  }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
167
168
  }
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);
169
+ function T(e, s, m, b, z, U) {
170
+ var v = s.children;
171
+ if (v !== void 0)
172
+ if (b)
173
+ if (Se(v)) {
174
+ for (b = 0; b < v.length; b++)
175
+ f(v[b]);
176
+ Object.freeze && Object.freeze(v);
176
177
  } else
177
178
  console.error(
178
179
  "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
180
  );
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";
181
+ else f(v);
182
+ if (H.call(s, "key")) {
183
+ v = t(e);
184
+ var j = Object.keys(s).filter(function(pe) {
185
+ return pe !== "key";
185
186
  });
186
- v = 0 < j.length ? "{key: someKey, " + j.join(": ..., ") + ": ...}" : "{key: someKey}", te[E + v] || (j = 0 < j.length ? "{" + j.join(": ..., ") + ": ...}" : "{}", console.error(
187
+ b = 0 < j.length ? "{key: someKey, " + j.join(": ..., ") + ": ...}" : "{key: someKey}", te[v + b] || (j = 0 < j.length ? "{" + j.join(": ..., ") + ": ...}" : "{}", console.error(
187
188
  `A props object containing a "key" prop is being spread into JSX:
188
189
  let props = %s;
189
190
  <%s {...props} />
190
191
  React keys must be passed directly to JSX without using spread:
191
192
  let props = %s;
192
193
  <%s key={someKey} {...props} />`,
194
+ b,
193
195
  v,
194
- E,
195
196
  j,
196
- E
197
- ), te[E + v] = !0);
197
+ v
198
+ ), te[v + b] = !0);
198
199
  }
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,
200
+ if (v = null, m !== void 0 && (r(m), v = "" + m), u(s) && (r(s.key), v = "" + s.key), "key" in s) {
201
+ m = {};
202
+ for (var q in s)
203
+ q !== "key" && (m[q] = s[q]);
204
+ } else m = s;
205
+ return v && c(
206
+ m,
206
207
  typeof e == "function" ? e.displayName || e.name || "Unknown" : e
207
208
  ), y(
208
209
  e,
209
- E,
210
- d,
211
- s(),
210
+ v,
211
+ m,
212
+ o(),
212
213
  z,
213
214
  U
214
215
  );
215
216
  }
216
217
  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));
218
+ 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
219
  }
219
- function m(e) {
220
+ function d(e) {
220
221
  return typeof e == "object" && e !== null && e.$$typeof === S;
221
222
  }
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() {
223
+ 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
224
  return null;
224
225
  };
225
- b = {
226
+ E = {
226
227
  react_stack_bottom_frame: function(e) {
227
228
  return e();
228
229
  }
229
230
  };
230
- var Z, Q = {}, K = b.react_stack_bottom_frame.bind(
231
- b,
231
+ var Z, Q = {}, K = E.react_stack_bottom_frame.bind(
232
+ E,
232
233
  a
233
- )(), ee = W(l(a)), te = {};
234
- I.Fragment = p, I.jsx = function(e, o, d) {
235
- var v = 1e4 > J.recentlyCreatedOwnerStacks++;
234
+ )(), ee = W(i(a)), te = {};
235
+ V.Fragment = h, V.jsx = function(e, s, m) {
236
+ var b = 1e4 > J.recentlyCreatedOwnerStacks++;
236
237
  return T(
237
238
  e,
238
- o,
239
- d,
239
+ s,
240
+ m,
240
241
  !1,
241
- v ? Error("react-stack-top-frame") : K,
242
- v ? W(l(e)) : ee
242
+ b ? Error("react-stack-top-frame") : K,
243
+ b ? W(i(e)) : ee
243
244
  );
244
- }, I.jsxs = function(e, o, d) {
245
- var v = 1e4 > J.recentlyCreatedOwnerStacks++;
245
+ }, V.jsxs = function(e, s, m) {
246
+ var b = 1e4 > J.recentlyCreatedOwnerStacks++;
246
247
  return T(
247
248
  e,
248
- o,
249
- d,
249
+ s,
250
+ m,
250
251
  !0,
251
- v ? Error("react-stack-top-frame") : K,
252
- v ? W(l(e)) : ee
252
+ b ? Error("react-stack-top-frame") : K,
253
+ b ? W(i(e)) : ee
253
254
  );
254
255
  };
255
- })()), I;
256
+ })()), V;
256
257
  }
257
258
  var se;
258
- function we() {
259
- return se || (se = 1, process.env.NODE_ENV === "production" ? Y.exports = ge() : Y.exports = ke()), Y.exports;
259
+ function xe() {
260
+ return se || (se = 1, process.env.NODE_ENV === "production" ? Y.exports = ke() : Y.exports = we()), Y.exports;
260
261
  }
261
- var xe = we();
262
- function M(t, n, r) {
262
+ var Pe = xe();
263
+ function F(t, n, r) {
263
264
  if (!n)
264
265
  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];
266
+ const i = n.split(".");
267
+ let o = t;
268
+ for (const a of i)
269
+ if (o !== null && typeof o == "object" && a in o)
270
+ o = o[a];
270
271
  else
271
272
  return r;
272
- return s === void 0 ? r : s;
273
+ return o === void 0 ? r : o;
273
274
  }
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];
275
+ function Ae(t, n, r) {
276
+ const i = n.replace(/\[(\d+)\]/g, ".$1").split(".");
277
+ let o = t;
278
+ for (let a = 0; a < i.length - 1; a++) {
279
+ const u = i[a], c = i[a + 1];
280
+ (o[u] === void 0 || o[u] === null) && (o[u] = /^\d+$/.test(c) ? [] : {}), o = o[u];
280
281
  }
281
- return s[l[l.length - 1]] = r, t;
282
+ return o[i[i.length - 1]] = r, t;
282
283
  }
283
- function Ae(t, n = 0) {
284
+ function Oe(t, n = 0) {
284
285
  let r;
285
- return function(...l) {
286
+ return function(...i) {
286
287
  r !== void 0 && clearTimeout(r), r = setTimeout(() => {
287
- r = void 0, t.apply(this, l);
288
+ r = void 0, t.apply(this, i);
288
289
  }, n);
289
290
  };
290
291
  }
291
- function Oe(t, n, r = []) {
292
- return ue(
293
- () => Ae(t, n),
292
+ function je(t, n, r = []) {
293
+ return le(
294
+ () => Oe(t, n),
294
295
  // eslint-disable-next-line react-hooks/exhaustive-deps
295
296
  r
296
297
  );
297
298
  }
298
299
  function ae(t) {
299
300
  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*)(.+)$/);
301
+ `), r = [], i = [];
302
+ for (const o of n) {
303
+ const a = o.match(/^(\s*)"([^"]+)"(\s*:\s*)(.+)$/);
303
304
  if (a) {
304
- const [, i, c, _, y] = a;
305
- r.push(`${i}%c"${c}"%c${_}%c${y}`), l.push(
305
+ const [, u, c, _, y] = a;
306
+ r.push(`${u}%c"${c}"%c${_}%c${y}`), i.push(
306
307
  "color: #9cdcfe; font-weight: bold",
307
308
  "color: #cccccc",
308
309
  "color: #ce9178"
309
310
  );
310
311
  } else
311
- r.push(`%c${s}`), l.push("color: #cccccc");
312
+ r.push(`%c${o}`), i.push("color: #cccccc");
312
313
  }
313
314
  console.log(r.join(`
314
- `), ...l, t);
315
+ `), ...i, t);
315
316
  }
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 {
317
+ const fe = (t) => typeof t == "function", Ne = (t) => typeof t == "function", x = (t) => typeof t < "u", I = (t) => Ne(t) ? t() : t;
318
+ class de {
318
319
  #e;
319
320
  #t;
320
321
  constructor() {
@@ -330,104 +331,105 @@ class Ne {
330
331
  return this.#e;
331
332
  }
332
333
  get(n) {
333
- return M(this.#e, n);
334
+ return F(this.#e, n);
334
335
  }
335
336
  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());
337
+ const i = F(this.#e, n), o = fe(r) ? r(i) : r, a = { ...this.#e };
338
+ Ae(a, n, o), this.#e = a, this.#t.forEach((u) => u());
338
339
  }
339
340
  }
340
- const de = pe({});
341
+ const me = _e({});
341
342
  function ce(t = {}) {
342
- const n = _e(de);
343
+ const n = ye(me);
343
344
  return t.verbose && console.log(`[Store uid]: ${n.uid}`), n;
344
345
  }
345
346
  function Ve({ children: t }) {
346
- const n = ue(() => new Ne(), []);
347
- return /* @__PURE__ */ xe.jsx(de.Provider, { value: n, children: t });
347
+ const n = le(() => new de(), []);
348
+ return /* @__PURE__ */ Pe.jsx(me.Provider, { value: n, children: t });
348
349
  }
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;
350
+ 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
351
  function Ie(t = {}) {
351
352
  return {
352
- [me]: !0,
353
+ [be]: !0,
353
354
  // marks this object as a leaf in the router tree
354
355
  [$]: "",
355
356
  // placeholder; injected at runtime by injectPaths()
356
- [D]: !1,
357
+ [M]: !1,
357
358
  // placeholder
358
359
  [B]: "",
359
360
  // placeholder
360
- [F]: !1,
361
+ [D]: !1,
361
362
  // placeholder
362
363
  useState(n) {
363
- const r = X ? void 0 : N(t.storage), l = N(t.defaultValue), s = t.bidirectional;
364
+ const r = X ? void 0 : I(t.storage), i = I(t.defaultValue), o = t.bidirectional;
364
365
  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(
366
+ const a = I(n.defaultValue) ?? i, u = n.bidirectional ?? o, c = this[$], _ = this[M], y = this[B], T = this[D], f = ce({ verbose: _ });
367
+ if (!(f instanceof de))
368
+ throw new Error("Make sure your component is wrapped in VocabStateProvider");
369
+ const d = t.serialize ?? JSON.stringify, E = t.deserialize ?? JSON.parse, S = (l, R, A) => {
370
+ const w = R.getItem(l);
371
+ w === null ? x(A) && R.setItem(l, d(A)) : f.set(l, E(w));
372
+ }, p = je(
369
373
  n.onSet ?? (() => {
370
374
  }),
371
375
  n.delayedSet,
372
376
  []
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);
377
+ ), h = G(void 0), O = G(!1);
378
+ if (!O.current) {
379
+ O.current = !0;
380
+ let l = f.get(c);
381
+ x(l) || (l = a, x(l) && f.set(c, l)), !T && r && S(c, r, l);
378
382
  }
379
- const A = Re(
383
+ const P = Te(
380
384
  f.subscribe.bind(f),
381
385
  f.getClientSnapshot.bind(f),
382
386
  f.getServerSnapshot.bind(f)
383
387
  );
384
388
  if (_)
385
389
  if (y) {
386
- const u = M(A, y);
387
- u && ae(u);
390
+ const l = F(P, y);
391
+ l && ae(l);
388
392
  } else
389
- ae(A);
390
- const w = M(A, c, a);
391
- p.current = w, le(() => {
392
- !T || !r || S(c, r, w);
393
+ ae(P);
394
+ const k = F(P, c, a);
395
+ h.current = k, ie(() => {
396
+ !T || !r || S(c, r, k);
393
397
  }, []);
394
- const k = Te((u) => {
395
- if (u.key !== c)
398
+ const g = ge((l) => {
399
+ if (l.key !== c)
396
400
  return;
397
- const R = u.newValue, x = (R === null ? null : b(R)) ?? a;
398
- P(x) && (f.set(c, x), h(x, p.current));
401
+ const R = l.newValue, w = (R === null ? null : E(R)) ?? a;
402
+ x(w) && (f.set(c, w), p(w, h.current));
399
403
  });
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)) {
404
+ ue(() => {
405
+ if (u)
406
+ return window.addEventListener("storage", g), () => window.removeEventListener("storage", g);
407
+ }, [u]);
408
+ const N = re((l) => {
409
+ const R = fe(l) ? l(h.current) : l;
410
+ f.set(c, R), p(R, h.current), r && r.setItem(c, d(R));
411
+ }, [f, c, p, r, d]), L = re(() => {
412
+ const l = a;
413
+ if (!x(l)) {
410
414
  r?.removeItem(c);
411
415
  return;
412
416
  }
413
- f.set(c, u), h(u, p.current), r && r.setItem(c, m(u));
414
- }, [a, f, c, h, r, m]);
417
+ f.set(c, l), p(l, h.current), r && r.setItem(c, d(l));
418
+ }, [a, f, c, p, r, d]);
415
419
  return [
416
- w,
417
- C,
420
+ k,
421
+ N,
418
422
  L
419
423
  ];
420
424
  },
421
425
  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);
426
+ 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) => {
427
+ const h = S.getItem(E);
428
+ h === null ? x(p) && S.setItem(E, _(p)) : c.set(E, y(h));
429
+ }, f = G(!1);
430
+ let d;
431
+ 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(() => {
432
+ !u || !r || T(o, r, d);
431
433
  }, []);
432
434
  },
433
435
  /** Returns the fully qualified job name (dot-separated path). */
@@ -436,58 +438,58 @@ function Ie(t = {}) {
436
438
  }
437
439
  };
438
440
  }
439
- function be(t, n) {
441
+ function ve(t, n) {
440
442
  const {
441
443
  path: r = "",
442
- verbose: l,
443
- verbosePath: s,
444
+ verbose: i,
445
+ verbosePath: o,
444
446
  ssr: a,
445
- cache: i
447
+ cache: u
446
448
  } = n;
447
- let c = i.proxy.get(t);
448
- c || (c = /* @__PURE__ */ new Map(), i.proxy.set(t, c));
449
+ let c = u.proxy.get(t);
450
+ c || (c = /* @__PURE__ */ new Map(), u.proxy.set(t, c));
449
451
  const _ = c.get(r);
450
452
  if (_)
451
453
  return _;
452
454
  const y = new Proxy(t, {
453
455
  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(
456
+ const d = T[f], E = r ? `${r}.${String(f)}` : String(f);
457
+ if (d && typeof d == "object" && be in d) {
458
+ const S = d;
459
+ let p = u.leaf.get(S);
460
+ p || (p = /* @__PURE__ */ new Map(), u.leaf.set(S, p));
461
+ const h = p.get(E);
462
+ if (h)
463
+ return h;
464
+ const O = Reflect.ownKeys(S).filter(
465
+ (g) => typeof S[g] == "function"
466
+ ), P = Object.fromEntries(
467
+ O.map((g) => [
468
+ g,
469
+ (...N) => S[g].call(
468
470
  {
469
471
  ...S,
470
- [$]: b,
471
- [D]: l,
472
- [B]: s,
473
- [F]: a
472
+ [$]: E,
473
+ [M]: i,
474
+ [B]: o,
475
+ [D]: a
474
476
  },
475
- ...C
477
+ ...N
476
478
  )
477
479
  ])
478
- ), w = { ...S, ...A };
479
- return h.set(b, w), w;
480
+ ), k = { ...S, ...P };
481
+ return p.set(E, k), k;
480
482
  }
481
- return m && typeof m == "object" ? be(m, {
483
+ return d && typeof d == "object" ? ve(d, {
482
484
  ...n,
483
- path: b
484
- }) : m;
485
+ path: E
486
+ }) : d;
485
487
  }
486
488
  });
487
489
  return c.set(r, y), y;
488
490
  }
489
491
  function $e(t, n) {
490
- return be(t, {
492
+ return ve(t, {
491
493
  ...n,
492
494
  verbosePath: n?.verbosePath ?? "",
493
495
  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.6",
4
4
  "main": "dist/state-vocab.cjs.js",
5
5
  "module": "dist/state-vocab.es.js",
6
6
  "types": "dist/types/index.d.ts",