File size: 1,086 Bytes
ce87126
1
2
import{a7 as T,T as b,ak as E,ab as C}from"./index.01827105.js";import{w as x}from"./index.2213faf5.js";const f={};function m(t){return t==="local"?localStorage:sessionStorage}function N(t,c,e){const r=(e==null?void 0:e.serializer)??JSON,a=(e==null?void 0:e.storage)??"local",s=typeof window<"u"&&typeof document<"u";function S(i,u){s&&m(a).setItem(i,r.stringify(u))}if(!f[t]){const i=x(c,n=>{const o=s?m(a).getItem(t):null;if(o&&n(r.parse(o)),s){const w=g=>{g.key===t&&n(g.newValue?r.parse(g.newValue):null)};return window.addEventListener("storage",w),()=>window.removeEventListener("storage",w)}}),{subscribe:u,set:l}=i;f[t]={set(n){S(t,n),l(n)},update(n){const o=n(T(i));S(t,o),l(o)},subscribe:u}}return f[t]}const d="SETTINGS_CONTEXT",O="settingsStore";function I(){const t={},{subscribe:c,set:e,update:r}=N(O,t,{storage:"session"});return{subscribe:c,set:e,update:r,reset(){e(JSON.parse(JSON.stringify(t)))},setEmbedding(a){r(s=>(s.embedding=a,s))}}}function h(t){b(d,t)}function J(){if(!E(d))throw new Error("SettingsContext not found");return C(d)}export{I as c,J as g,h as s};