File size: 1,093 Bytes
7c35231
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 s=(e==null?void 0:e.serializer)??JSON,a=(e==null?void 0:e.storage)??"local",r=typeof window<"u"&&typeof document<"u";function S(i,u){r&&m(a).setItem(i,s.stringify(u))}if(!f[t]){const i=x(c,n=>{const o=r?m(a).getItem(t):null;if(o&&n(s.parse(o)),r){const w=g=>{g.key===t&&n(g.newValue?s.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",p="settingsStore";function I(){const t={},{subscribe:c,set:e,update:s}=N(p,t,{storage:"session"});return{subscribe:c,set:e,update:s,reset(){e(JSON.parse(JSON.stringify(t)))},setEmbedding(a){s(r=>(r.embedding=a,r))}}}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,N as p,h as s};