@json-to-office/jto 0.1.0
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/LICENSE +18 -0
- package/README.md +23 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +5639 -0
- package/dist/cli.js.map +1 -0
- package/dist/client/assets/HomePage-CGK1cPFp.js +99 -0
- package/dist/client/assets/HomePage-CGK1cPFp.js.map +1 -0
- package/dist/client/assets/JsonEditorPage-DKaFqYpM.js +3 -0
- package/dist/client/assets/JsonEditorPage-DKaFqYpM.js.map +1 -0
- package/dist/client/assets/NotFoundPage-Et1QhbQw.js +2 -0
- package/dist/client/assets/NotFoundPage-Et1QhbQw.js.map +1 -0
- package/dist/client/assets/button-B5W5GwSc.js +2 -0
- package/dist/client/assets/button-B5W5GwSc.js.map +1 -0
- package/dist/client/assets/docx-preview-CUjVWdSJ.js +34 -0
- package/dist/client/assets/docx-preview-CUjVWdSJ.js.map +1 -0
- package/dist/client/assets/editor-CH_tiHyn.js +9 -0
- package/dist/client/assets/editor-CH_tiHyn.js.map +1 -0
- package/dist/client/assets/editor-monaco-json-8I2epq6g.js +6 -0
- package/dist/client/assets/editor-monaco-json-8I2epq6g.js.map +1 -0
- package/dist/client/assets/index-B9dV-vCI.css +1 -0
- package/dist/client/assets/index-DactvF4v.js +3 -0
- package/dist/client/assets/index-DactvF4v.js.map +1 -0
- package/dist/client/assets/monaco-editor-DzeBDgmk.js +12 -0
- package/dist/client/assets/monaco-editor-DzeBDgmk.js.map +1 -0
- package/dist/client/assets/preview-CJlTPgks.js +3 -0
- package/dist/client/assets/preview-CJlTPgks.js.map +1 -0
- package/dist/client/assets/query-vendor-UL64zsGL.js +15 -0
- package/dist/client/assets/query-vendor-UL64zsGL.js.map +1 -0
- package/dist/client/assets/radix-ui-CXavUarI.js +2 -0
- package/dist/client/assets/radix-ui-CXavUarI.js.map +1 -0
- package/dist/client/assets/react-vendor-DhdcN9D5.js +102 -0
- package/dist/client/assets/react-vendor-DhdcN9D5.js.map +1 -0
- package/dist/client/assets/settings-store-provider-DuCKtwqs.js +2 -0
- package/dist/client/assets/settings-store-provider-DuCKtwqs.js.map +1 -0
- package/dist/client/assets/state-vendor-CAMVKh-F.js +6 -0
- package/dist/client/assets/state-vendor-CAMVKh-F.js.map +1 -0
- package/dist/client/assets/ui-vendor-C6DsfOoA.js +247 -0
- package/dist/client/assets/ui-vendor-C6DsfOoA.js.map +1 -0
- package/dist/client/css/preview/docxjs.css +11 -0
- package/dist/client/icon.svg +5 -0
- package/dist/client/index.html +23 -0
- package/dist/client/templates/Charts Demo.pptx.json +174 -0
- package/dist/client/templates/Company Branding.pptx.json +143 -0
- package/dist/client/templates/Dashboard.pptx.json +91 -0
- package/dist/client/templates/Product Launch.pptx.json +87 -0
- package/dist/client/templates/Sales Deck.pptx.json +80 -0
- package/dist/client/templates/Wiseair.pptx.json +5382 -0
- package/dist/client/templates/themes/corporate.pptx.theme.json +32 -0
- package/dist/client/templates/themes/minimal.pptx.theme.json +32 -0
- package/dist/client/templates/themes/vibrant.pptx.theme.json +32 -0
- package/dist/index.d.ts +387 -0
- package/dist/index.js +2303 -0
- package/dist/index.js.map +1 -0
- package/package.json +147 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var F=Object.defineProperty;var G=(r,e,t)=>e in r?F(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var x=(r,e,t)=>G(r,typeof e!="symbol"?e+"":e,t);import{j as f}from"./query-vendor-UL64zsGL.js";import{r as a}from"./react-vendor-DhdcN9D5.js";import{a as l,d as p,p as g,b as C,u as h}from"./state-vendor-CAMVKh-F.js";import{F as J}from"./index-DactvF4v.js";function v(r){return new Promise((e,t)=>{r.oncomplete=r.onsuccess=()=>e(r.result),r.onabort=r.onerror=()=>t(r.error)})}function q(r,e){let t;const n=()=>{if(t)return t;const o=indexedDB.open(r);return o.onupgradeneeded=()=>o.result.createObjectStore(e),t=v(o),t.then(s=>{s.onclose=()=>t=void 0},()=>{}),t};return(o,s)=>n().then(i=>s(i.transaction(e,o).objectStore(e)))}let T;function y(){return T||(T=q("keyval-store","keyval")),T}function z(r,e=y()){return e("readonly",t=>v(t.get(r)))}function $(r,e,t=y()){return t("readwrite",n=>(n.put(e,r),v(n.transaction)))}function H(r,e=y()){return e("readwrite",t=>(t.delete(r),v(t.transaction)))}const O={getItem:async r=>await z(r)??null,setItem:async(r,e)=>{await $(r,e)},removeItem:async r=>{await H(r)}},U=3,E=()=>({documents:[],openTabs:[],activeTab:"",buildErrors:{},documentTypes:{},pendingDiffs:{},acceptedApplyIds:[]}),V={...E()},W=(r=V)=>l()(p(g(e=>({...r,createDocument:(t,n)=>e(o=>{if(o.documents.findIndex(i=>i.name===t)===-1){let i="application/json+report";if(t.toLowerCase().includes("theme")||t.toLowerCase().includes(".theme."))i="application/json+theme";else try{const u=JSON.parse(n);u.colors&&u.fonts&&u.styles&&(i="application/json+theme")}catch{}const c={name:t,type:"application/json",text:n,mtime:new Date,ctime:new Date,atime:new Date};return{documents:[...o.documents,c],documentTypes:{...o.documentTypes,[t]:i}}}return o}),deleteDocument:t=>e(n=>{const o={...n.documentTypes};return delete o[t],{documents:n.documents.filter(s=>s.name!==t),documentTypes:o,pendingDiffs:Object.fromEntries(Object.entries(n.pendingDiffs).filter(([s])=>s!==t))}}),saveDocument:(t,n)=>e(o=>{const s=o.documents.findIndex(c=>c.name===t);return s===-1||o.documents[s].text===n?o:{documents:o.documents.map((c,u)=>u===s?{...c,text:n,mtime:new Date}:c)}}),renameDocument:(t,n)=>e(o=>{const s=o.documents.findIndex(u=>u.name===t);if(s===-1)return o;const i=o.documents.map((u,d)=>d===s?{...u,name:n,ctime:new Date}:u),c=o.documentTypes[t];if(c){const u={...o.documentTypes};return delete u[t],u[n]=c,{documents:i,documentTypes:u}}return{documents:i}}),openDocument:t=>e(n=>{const o=n.documents.findIndex(c=>c.name===t);if(o===-1)return n;const s=n.documents.map((c,u)=>u===o?{...c,atime:new Date}:c);let i=n.openTabs;return i.includes(t)||(i=i.length>=U?[...i.slice(1),t]:[...i,t]),{documents:s,openTabs:i,activeTab:t}}),closeDocument:t=>e(n=>{const o=n.openTabs.indexOf(t);if(o===-1)return n;const s=n.openTabs.filter(c=>c!==t);let i=n.activeTab;return i===t&&(s.length?i=o===0?s[0]:s[o-1]:i=""),{openTabs:s,activeTab:i}}),setActiveTab:t=>e({activeTab:t}),setBuildError:(t,n)=>e(o=>{if(o.buildErrors[t]===n)return o;const s={...o.buildErrors};return n?s[t]=n:delete s[t],{buildErrors:s}}),setPendingDiff:(t,n,o,s)=>e(i=>({pendingDiffs:{...i.pendingDiffs,[t]:{original:n,modified:o,applyId:s}}})),clearPendingDiff:(t,n)=>e(o=>{const s=o.pendingDiffs[t];if(!s)return o;const i={...o.pendingDiffs};delete i[t];const c=o.acceptedApplyIds||[],u=n&&s.applyId?[...c.slice(-199),s.applyId]:c;return{pendingDiffs:i,acceptedApplyIds:u}})}),{name:"documents-storage",version:1,storage:C(()=>O),partialize:e=>({documents:e.documents,openTabs:e.openTabs,activeTab:e.activeTab,documentTypes:e.documentTypes}),onRehydrateStorage:()=>e=>{if(e!=null&&e.documents)for(const t of e.documents)for(const n of["mtime","ctime","atime"])t[n]&&typeof t[n]=="string"&&(t[n]=new Date(t[n]))}}))),I=a.createContext(void 0),ue=({children:r})=>{const e=a.useRef(null);return e.current||(e.current=W(E())),f.jsx(I.Provider,{value:e.current,children:r})},ae=r=>{const e=a.useContext(I);if(!e)throw new Error("useDocumentsStore must be used within DocumentsStoreProvider");return h(e,r)};function X(r){try{const e=JSON.parse(r);return!e||typeof e!="object"?{valid:!1,errors:[{message:"Theme must be a JSON object"}]}:typeof e.name!="string"||!e.name.trim()?{valid:!1,errors:[{message:'Theme must have a non-empty "name" property'}]}:{valid:!0}}catch(e){return{valid:!1,errors:[{message:e instanceof SyntaxError?`Invalid JSON: ${e.message}`:"Failed to parse theme JSON"}]}}}function _(r){try{return r&&typeof r=="object"&&"name"in r&&typeof r.name=="string"?r.name:null}catch{return null}}const m=class m extends EventTarget{constructor(){super()}static getInstance(){return m.instance||(m.instance=new m),m.instance}emitThemeChange(e){this.dispatchEvent(new CustomEvent("themechange",{detail:e}))}onThemeChange(e){const t=n=>{e(n.detail)};return this.addEventListener("themechange",t),this._listenerCount=(this._listenerCount||0)+1,()=>{this.removeEventListener("themechange",t),this._listenerCount=Math.max(0,(this._listenerCount||1)-1)}}};x(m,"instance");let S=m;const w=S.getInstance(),j=()=>({customThemes:{}}),K={...j()},Q=(r=K)=>l()(p(g((e,t)=>({...r,updateTheme:(n,o)=>e(s=>{const i=X(o);let c,u=n;if(i.valid)try{const b=JSON.parse(o);c=b;const D=_(b);D&&(u=D)}catch{}const d=s.customThemes[n],B=!!d,N=(d==null?void 0:d.content)!==o,k={name:u,content:o,parsed:c,valid:i.valid,lastModified:new Date};return(N||!(d!=null&&d.valid)&&i.valid)&&i.valid&&setTimeout(()=>{w.emitThemeChange({themeName:u,timestamp:Date.now(),changeType:B?"update":"create"})},0),{customThemes:{...s.customThemes,[n]:k}}}),removeTheme:n=>e(o=>{const s=o.customThemes[n],i={...o.customThemes};return delete i[n],s&&setTimeout(()=>{w.emitThemeChange({themeName:s.name,timestamp:Date.now(),changeType:"delete"})},0),{customThemes:i}}),getTheme:n=>{const o=t();for(const s of Object.values(o.customThemes))if(s.valid&&s.name===n&&s.parsed)return s.parsed;return null},getAllThemeNames:()=>{const n=t(),o=[];for(const s of Object.values(n.customThemes))s.valid&&s.name&&o.push(s.name);return o},isThemeValid:n=>{const o=t();for(const s of Object.values(o.customThemes))if(s.name===n)return s.valid;return!1}}),{name:"themes-storage",version:4,storage:C(()=>O),partialize:e=>({customThemes:e.customThemes}),onRehydrateStorage:()=>e=>{e&&e.customThemes&&Object.keys(e.customThemes).forEach(t=>{const n=e.customThemes[t];n.lastModified&&typeof n.lastModified=="string"&&(n.lastModified=new Date(n.lastModified))})}}))),P=a.createContext(void 0),de=({children:r})=>{const e=a.useRef(void 0);return e.current||(e.current=Q(j())),f.jsx(P.Provider,{value:e.current,children:r})},me=r=>{const e=a.useContext(P);if(!e)throw new Error("useThemesStore must be used within ThemesStoreProvider");return h(e,r)},R=()=>({name:void 0,text:void 0,blob:void 0,globalError:void 0,isGenerating:!1,generationProgress:void 0,isRendering:!1,isPreviewStale:!1,editSequence:0,lastBuiltSequence:0}),Y={...R()},Z=(r=Y)=>l()(p(e=>({...r,setOutput:t=>e({...t}),bumpEditSequence:()=>e(t=>({editSequence:(t.editSequence??0)+1,editTimestamp:Date.now()}))}))),A=a.createContext(void 0),fe=({children:r})=>{const e=a.useRef(null);return e.current||(e.current=Z(R())),f.jsx(A.Provider,{value:e.current,children:r})},le=r=>{const e=a.useContext(A);if(!e)throw new Error("useOutputStore must be used within OutputStoreProvider");return h(e,r)},M=()=>({saveDocumentDebounceWait:300,autoReload:!0,renderingLibrary:J==="docx"?"docxjs":"LibreOffice",useGlobalPreviewHeader:!0}),ee={...M()},te=(r=ee)=>l()(p(g(e=>({...r,setSettings:t=>e({...t})}),{name:"settings-storage"}))),L=a.createContext(void 0),pe=({children:r})=>{const e=a.useRef(null);return e.current||(e.current=te(M())),f.jsx(L.Provider,{value:e.current,children:r})},he=r=>{const e=a.useContext(L);if(!e)throw new Error("useSettingsStore must be used within SettingsStoreProvider");return h(e,r)};export{ue as D,fe as O,pe as S,de as T,me as a,le as b,he as c,A as d,I as e,P as f,_ as g,O as i,w as t,ae as u,X as v};
|
|
2
|
+
//# sourceMappingURL=settings-store-provider-DuCKtwqs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-store-provider-DuCKtwqs.js","sources":["../../../../../node_modules/.pnpm/idb-keyval@6.2.2/node_modules/idb-keyval/dist/index.js","../../../src/client/lib/idb-storage.ts","../../../src/client/store/documents-store.ts","../../../src/client/store/documents-store-provider.tsx","../../../src/client/lib/theme-validation.ts","../../../src/client/utils/theme-change-emitter.ts","../../../src/client/store/themes-store.ts","../../../src/client/store/themes-store-provider.tsx","../../../src/client/store/output-store.ts","../../../src/client/store/output-store-provider.tsx","../../../src/client/store/settings-store.ts","../../../src/client/store/settings-store-provider.tsx"],"sourcesContent":["function promisifyRequest(request) {\n return new Promise((resolve, reject) => {\n // @ts-ignore - file size hacks\n request.oncomplete = request.onsuccess = () => resolve(request.result);\n // @ts-ignore - file size hacks\n request.onabort = request.onerror = () => reject(request.error);\n });\n}\nfunction createStore(dbName, storeName) {\n let dbp;\n const getDB = () => {\n if (dbp)\n return dbp;\n const request = indexedDB.open(dbName);\n request.onupgradeneeded = () => request.result.createObjectStore(storeName);\n dbp = promisifyRequest(request);\n dbp.then((db) => {\n // It seems like Safari sometimes likes to just close the connection.\n // It's supposed to fire this event when that happens. Let's hope it does!\n db.onclose = () => (dbp = undefined);\n }, () => { });\n return dbp;\n };\n return (txMode, callback) => getDB().then((db) => callback(db.transaction(storeName, txMode).objectStore(storeName)));\n}\nlet defaultGetStoreFunc;\nfunction defaultGetStore() {\n if (!defaultGetStoreFunc) {\n defaultGetStoreFunc = createStore('keyval-store', 'keyval');\n }\n return defaultGetStoreFunc;\n}\n/**\n * Get a value by its key.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction get(key, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => promisifyRequest(store.get(key)));\n}\n/**\n * Set a value with a key.\n *\n * @param key\n * @param value\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction set(key, value, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.put(value, key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Set multiple values at once. This is faster than calling set() multiple times.\n * It's also atomic – if one of the pairs can't be added, none will be added.\n *\n * @param entries Array of entries, where each entry is an array of `[key, value]`.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction setMany(entries, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n entries.forEach((entry) => store.put(entry[1], entry[0]));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Get multiple values by their keys\n *\n * @param keys\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction getMany(keys, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => Promise.all(keys.map((key) => promisifyRequest(store.get(key)))));\n}\n/**\n * Update a value. This lets you see the old value and update it as an atomic operation.\n *\n * @param key\n * @param updater A callback that takes the old value and returns a new value.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction update(key, updater, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => \n // Need to create the promise manually.\n // If I try to chain promises, the transaction closes in browsers\n // that use a promise polyfill (IE10/11).\n new Promise((resolve, reject) => {\n store.get(key).onsuccess = function () {\n try {\n store.put(updater(this.result), key);\n resolve(promisifyRequest(store.transaction));\n }\n catch (err) {\n reject(err);\n }\n };\n }));\n}\n/**\n * Delete a particular key from the store.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction del(key, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.delete(key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Delete multiple keys at once.\n *\n * @param keys List of keys to delete.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction delMany(keys, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n keys.forEach((key) => store.delete(key));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Clear all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction clear(customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.clear();\n return promisifyRequest(store.transaction);\n });\n}\nfunction eachCursor(store, callback) {\n store.openCursor().onsuccess = function () {\n if (!this.result)\n return;\n callback(this.result);\n this.result.continue();\n };\n return promisifyRequest(store.transaction);\n}\n/**\n * Get all keys in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction keys(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n if (store.getAllKeys) {\n return promisifyRequest(store.getAllKeys());\n }\n const items = [];\n return eachCursor(store, (cursor) => items.push(cursor.key)).then(() => items);\n });\n}\n/**\n * Get all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction values(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n if (store.getAll) {\n return promisifyRequest(store.getAll());\n }\n const items = [];\n return eachCursor(store, (cursor) => items.push(cursor.value)).then(() => items);\n });\n}\n/**\n * Get all entries in the store. Each entry is an array of `[key, value]`.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction entries(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n // (although, hopefully we'll get a simpler path some day)\n if (store.getAll && store.getAllKeys) {\n return Promise.all([\n promisifyRequest(store.getAllKeys()),\n promisifyRequest(store.getAll()),\n ]).then(([keys, values]) => keys.map((key, i) => [key, values[i]]));\n }\n const items = [];\n return customStore('readonly', (store) => eachCursor(store, (cursor) => items.push([cursor.key, cursor.value])).then(() => items));\n });\n}\n\nexport { clear, createStore, del, delMany, entries, get, getMany, keys, promisifyRequest, set, setMany, update, values };\n","/**\n * IndexedDB storage adapter for Zustand persist middleware using idb-keyval.\n */\nimport { get, set, del } from 'idb-keyval';\nimport type { StateStorage } from 'zustand/middleware';\n\nexport const idbStorage: StateStorage = {\n getItem: async (name: string): Promise<string | null> => {\n return (await get(name)) ?? null;\n },\n setItem: async (name: string, value: string): Promise<void> => {\n await set(name, value);\n },\n removeItem: async (name: string): Promise<void> => {\n await del(name);\n },\n};\n","import { persist, devtools, createJSONStorage } from 'zustand/middleware';\nimport { createStore } from 'zustand/vanilla';\nimport type { TextFile } from '../lib/types';\nimport { idbStorage } from '../lib/idb-storage';\n\nconst MAX_OPEN_TABS = 3;\n\nexport type DocumentType = 'application/json+report' | 'application/json+theme';\n\nexport type DocumentsState = {\n documents: TextFile[];\n openTabs: string[];\n activeTab: string;\n buildErrors: { [key: string]: string };\n documentTypes: { [key: string]: DocumentType };\n pendingDiffs: { [key: string]: { original: string; modified: string; applyId?: string } };\n acceptedApplyIds: string[];\n};\n\nexport type DocumentsActions = {\n createDocument: (name: string, text: string) => void;\n deleteDocument: (name: string) => void;\n saveDocument: (name: string, text: string) => void;\n renameDocument: (oldName: string, newName: string) => void;\n openDocument: (name: string) => void;\n closeDocument: (name: string) => void;\n setActiveTab: (name: string) => void;\n setBuildError: (name: string, buildError?: string) => void;\n setPendingDiff: (name: string, original: string, modified: string, applyId?: string) => void;\n clearPendingDiff: (name: string, accepted?: boolean) => void;\n};\n\nexport type DocumentsStore = DocumentsState & DocumentsActions;\n\nexport const initDocumentsStore = (): DocumentsState => {\n return {\n documents: [],\n openTabs: [],\n activeTab: '',\n buildErrors: {},\n documentTypes: {},\n pendingDiffs: {},\n acceptedApplyIds: [],\n };\n};\n\nexport const defaultInitDocumentsState: DocumentsState = {\n ...initDocumentsStore(),\n};\n\nexport const createDocumentsStore = (\n initState: DocumentsState = defaultInitDocumentsState\n) => {\n return createStore<DocumentsStore>()(\n devtools(\n persist(\n (set) => ({\n ...initState,\n createDocument: (name, text) =>\n set((state) => {\n const docIndex = state.documents.findIndex(\n (doc) => doc.name === name\n );\n if (docIndex === -1) {\n // if the document does not exist\n // Determine document type based on file name and content\n let docType: DocumentType = 'application/json+report';\n if (\n name.toLowerCase().includes('theme') ||\n name.toLowerCase().includes('.theme.')\n ) {\n docType = 'application/json+theme';\n } else {\n // Try to parse JSON to check if it's a theme\n try {\n const parsed = JSON.parse(text);\n if (parsed.colors && parsed.fonts && parsed.styles) {\n docType = 'application/json+theme';\n }\n } catch {\n // If not valid JSON, default to report\n }\n }\n\n const newDoc = {\n name,\n type: 'application/json',\n text,\n mtime: new Date(),\n ctime: new Date(),\n atime: new Date(),\n };\n return {\n documents: [...state.documents, newDoc],\n documentTypes: { ...state.documentTypes, [name]: docType },\n };\n }\n return state;\n }),\n deleteDocument: (name) =>\n set((state) => {\n const newDocumentTypes = { ...state.documentTypes };\n delete newDocumentTypes[name];\n return {\n documents: state.documents.filter((doc) => doc.name !== name),\n documentTypes: newDocumentTypes,\n pendingDiffs: Object.fromEntries(\n Object.entries(state.pendingDiffs).filter(([k]) => k !== name)\n ),\n };\n }),\n saveDocument: (name, text) =>\n set((state) => {\n const docIndex = state.documents.findIndex(\n (doc) => doc.name === name\n );\n if (docIndex === -1) return state;\n // Skip update if text is unchanged to avoid spurious re-renders\n if (state.documents[docIndex].text === text) return state;\n const documents = state.documents.map((doc, i) =>\n i === docIndex ? { ...doc, text, mtime: new Date() } : doc\n );\n return { documents };\n }),\n renameDocument: (oldName, newName) =>\n set((state) => {\n const docIndex = state.documents.findIndex(\n (doc) => doc.name === oldName\n );\n if (docIndex === -1) return state;\n const documents = state.documents.map((doc, i) =>\n i === docIndex ? { ...doc, name: newName, ctime: new Date() } : doc\n );\n const docType = state.documentTypes[oldName];\n if (docType) {\n const newDocumentTypes = { ...state.documentTypes };\n delete newDocumentTypes[oldName];\n newDocumentTypes[newName] = docType;\n return { documents, documentTypes: newDocumentTypes };\n }\n return { documents };\n }),\n openDocument: (name) =>\n set((state) => {\n const docIndex = state.documents.findIndex(\n (doc) => doc.name === name\n );\n if (docIndex === -1) return state;\n const documents = state.documents.map((doc, i) =>\n i === docIndex ? { ...doc, atime: new Date() } : doc\n );\n let openTabs = state.openTabs;\n if (!openTabs.includes(name)) {\n openTabs = openTabs.length >= MAX_OPEN_TABS\n ? [...openTabs.slice(1), name]\n : [...openTabs, name];\n }\n return { documents, openTabs, activeTab: name };\n }),\n closeDocument: (name) =>\n set((state) => {\n const index = state.openTabs.indexOf(name);\n if (index === -1) return state;\n const openTabs = state.openTabs.filter((tab) => tab !== name);\n let activeTab = state.activeTab;\n if (activeTab === name) {\n if (openTabs.length) {\n activeTab = index === 0 ? openTabs[0] : openTabs[index - 1];\n } else {\n activeTab = '';\n }\n }\n return { openTabs, activeTab };\n }),\n setActiveTab: (name) => set({ activeTab: name }),\n setBuildError: (name, buildError) =>\n set((state) => {\n if (state.buildErrors[name] === buildError) return state;\n const buildErrors = { ...state.buildErrors };\n if (buildError) buildErrors[name] = buildError;\n else delete buildErrors[name];\n return { buildErrors };\n }),\n setPendingDiff: (name, original, modified, applyId) =>\n set((state) => {\n return {\n pendingDiffs: {\n ...state.pendingDiffs,\n [name]: { original, modified, applyId },\n },\n };\n }),\n clearPendingDiff: (name, accepted) =>\n set((state) => {\n const diff = state.pendingDiffs[name];\n if (!diff) return state;\n const next = { ...state.pendingDiffs };\n delete next[name];\n const ids = state.acceptedApplyIds || [];\n const acceptedApplyIds =\n accepted && diff.applyId\n ? [...ids.slice(-(200 - 1)), diff.applyId]\n : ids;\n return { pendingDiffs: next, acceptedApplyIds };\n }),\n }),\n {\n name: 'documents-storage',\n version: 1,\n storage: createJSONStorage(() => idbStorage),\n partialize: (state) => ({\n documents: state.documents,\n openTabs: state.openTabs,\n activeTab: state.activeTab,\n documentTypes: state.documentTypes,\n // buildErrors + pendingDiffs + acceptedApplyIds excluded — transient UI state\n }),\n onRehydrateStorage: () => (state) => {\n if (state?.documents) {\n for (const doc of state.documents) {\n for (const key of ['mtime', 'ctime', 'atime'] as const) {\n if (doc[key] && typeof doc[key] === 'string') {\n (doc as Record<string, unknown>)[key] = new Date(doc[key] as unknown as string);\n }\n }\n }\n }\n },\n }\n )\n )\n );\n};\n","import { type ReactNode, createContext, useRef, useContext } from 'react';\nimport { useStore } from 'zustand';\nimport {\n type DocumentsStore,\n createDocumentsStore,\n initDocumentsStore,\n} from './documents-store';\n\nexport type DocumentsStoreApi = ReturnType<typeof createDocumentsStore>;\n\nexport const DocumentsStoreContext = createContext<\n DocumentsStoreApi | undefined\n>(undefined);\n\nexport interface DocumentsStoreProviderProps {\n children: ReactNode;\n}\n\nexport const DocumentsStoreProvider = ({\n children,\n}: DocumentsStoreProviderProps) => {\n const storeRef = useRef<DocumentsStoreApi | null>(null);\n if (!storeRef.current) {\n storeRef.current = createDocumentsStore(initDocumentsStore());\n }\n\n return (\n <DocumentsStoreContext.Provider value={storeRef.current}>\n {children}\n </DocumentsStoreContext.Provider>\n );\n};\n\nexport const useDocumentsStore = <T,>(\n selector: (store: DocumentsStore) => T\n): T => {\n const documentsStoreContext = useContext(DocumentsStoreContext);\n\n if (!documentsStoreContext) {\n throw new Error(\n 'useDocumentsStore must be used within DocumentsStoreProvider'\n );\n }\n\n return useStore(documentsStoreContext, selector);\n};\n","export interface ThemeValidationError {\n message: string;\n line?: number;\n column?: number;\n path?: string;\n}\n\nexport interface ThemeValidationResult {\n valid: boolean;\n errors?: ThemeValidationError[];\n}\n\n/**\n * Validates a theme JSON string - checks structure without requiring format-specific schemas\n */\nexport function validateThemeJson(jsonString: string): ThemeValidationResult {\n try {\n const parsed = JSON.parse(jsonString);\n\n if (!parsed || typeof parsed !== 'object') {\n return {\n valid: false,\n errors: [{ message: 'Theme must be a JSON object' }],\n };\n }\n\n if (typeof parsed.name !== 'string' || !parsed.name.trim()) {\n return {\n valid: false,\n errors: [{ message: 'Theme must have a non-empty \"name\" property' }],\n };\n }\n\n return { valid: true };\n } catch (e) {\n return {\n valid: false,\n errors: [\n {\n message:\n e instanceof SyntaxError\n ? `Invalid JSON: ${e.message}`\n : 'Failed to parse theme JSON',\n },\n ],\n };\n }\n}\n\n/**\n * Gets theme name from a theme JSON object\n */\nexport function getThemeName(themeJson: unknown): string | null {\n try {\n if (\n themeJson &&\n typeof themeJson === 'object' &&\n 'name' in (themeJson as any) &&\n typeof (themeJson as any).name === 'string'\n ) {\n return (themeJson as any).name as string;\n }\n return null;\n } catch {\n return null;\n }\n}\n","// Theme change event emitter for coordinating theme updates across components\nexport interface ThemeChangeEvent {\n themeName: string;\n timestamp: number;\n changeType: 'create' | 'update' | 'delete';\n}\n\nexport class ThemeChangeEmitter extends EventTarget {\n private static instance: ThemeChangeEmitter;\n\n private constructor() {\n super();\n }\n\n static getInstance(): ThemeChangeEmitter {\n if (!ThemeChangeEmitter.instance) {\n ThemeChangeEmitter.instance = new ThemeChangeEmitter();\n }\n return ThemeChangeEmitter.instance;\n }\n\n emitThemeChange(event: ThemeChangeEvent): void {\n this.dispatchEvent(new CustomEvent('themechange', { detail: event }));\n }\n\n onThemeChange(callback: (event: ThemeChangeEvent) => void): () => void {\n const handler = (e: Event) => {\n const customEvent = e as CustomEvent<ThemeChangeEvent>;\n callback(customEvent.detail);\n };\n\n this.addEventListener('themechange', handler);\n\n // Track listener count\n (this as any)._listenerCount = ((this as any)._listenerCount || 0) + 1;\n\n // Return unsubscribe function\n return () => {\n this.removeEventListener('themechange', handler);\n (this as any)._listenerCount = Math.max(\n 0,\n ((this as any)._listenerCount || 1) - 1\n );\n };\n }\n}\n\nexport const themeChangeEmitter = ThemeChangeEmitter.getInstance();\n","import { persist, devtools, createJSONStorage } from 'zustand/middleware';\nimport { createStore } from 'zustand/vanilla';\nimport type { ThemeConfigJson } from '@json-to-office/shared-pptx';\nimport { validateThemeJson, getThemeName } from '../lib/theme-validation';\nimport { themeChangeEmitter } from '../utils/theme-change-emitter';\nimport { idbStorage } from '../lib/idb-storage';\n\nexport type CustomTheme = {\n name: string;\n content: string;\n parsed?: ThemeConfigJson;\n valid: boolean;\n lastModified: Date;\n};\n\nexport type ThemesState = {\n customThemes: { [name: string]: CustomTheme };\n};\n\nexport type ThemesActions = {\n updateTheme: (documentName: string, content: string) => void;\n removeTheme: (documentName: string) => void;\n getTheme: (themeName: string) => ThemeConfigJson | null;\n getAllThemeNames: () => string[];\n isThemeValid: (themeName: string) => boolean;\n};\n\nexport type ThemesStore = ThemesState & ThemesActions;\n\nexport const initThemesStore = (): ThemesState => {\n return {\n customThemes: {},\n };\n};\n\nexport const defaultInitThemesState: ThemesState = {\n ...initThemesStore(),\n};\n\nexport const createThemesStore = (\n initState: ThemesState = defaultInitThemesState\n) => {\n return createStore<ThemesStore>()(\n devtools(\n persist(\n (set, get) => ({\n ...initState,\n\n updateTheme: (documentName, content) =>\n set((state) => {\n const validation = validateThemeJson(content);\n\n let parsed: ThemeConfigJson | undefined;\n let themeName = documentName;\n\n if (validation.valid) {\n try {\n const parsedContent = JSON.parse(content);\n parsed = parsedContent;\n const extractedName = getThemeName(parsedContent);\n if (extractedName) {\n themeName = extractedName;\n }\n } catch {\n // Keep the document name if parsing fails\n }\n }\n\n const existingTheme = state.customThemes[documentName];\n const isUpdate = !!existingTheme;\n const hasContentChanged = existingTheme?.content !== content;\n\n const customTheme: CustomTheme = {\n name: themeName,\n content,\n parsed,\n valid: validation.valid,\n lastModified: new Date(),\n };\n\n // Emit theme change if content changed OR if this is a newly valid theme\n const shouldEmitEvent =\n (hasContentChanged ||\n (!existingTheme?.valid && validation.valid)) &&\n validation.valid;\n\n if (shouldEmitEvent) {\n // Use setTimeout to ensure state is updated before event is processed\n setTimeout(() => {\n themeChangeEmitter.emitThemeChange({\n themeName,\n timestamp: Date.now(),\n changeType: isUpdate ? 'update' : 'create',\n });\n }, 0);\n }\n\n return {\n customThemes: {\n ...state.customThemes,\n [documentName]: customTheme,\n },\n };\n }),\n\n removeTheme: (documentName) =>\n set((state) => {\n const removedTheme = state.customThemes[documentName];\n const newCustomThemes = { ...state.customThemes };\n delete newCustomThemes[documentName];\n\n // Emit theme deletion event\n if (removedTheme) {\n setTimeout(() => {\n themeChangeEmitter.emitThemeChange({\n themeName: removedTheme.name,\n timestamp: Date.now(),\n changeType: 'delete',\n });\n }, 0);\n }\n\n return {\n customThemes: newCustomThemes,\n };\n }),\n\n getTheme: (themeName) => {\n const state = get();\n\n // First check custom themes by theme name\n for (const customTheme of Object.values(state.customThemes)) {\n if (\n customTheme.valid &&\n customTheme.name === themeName &&\n customTheme.parsed\n ) {\n return customTheme.parsed;\n }\n }\n\n // Theme not found in custom themes\n return null;\n },\n\n getAllThemeNames: () => {\n const state = get();\n const names: string[] = [];\n\n // Add custom theme names\n for (const customTheme of Object.values(state.customThemes)) {\n if (customTheme.valid && customTheme.name) {\n names.push(customTheme.name);\n }\n }\n\n return names;\n },\n\n isThemeValid: (themeName) => {\n const state = get();\n\n // Check custom themes\n for (const customTheme of Object.values(state.customThemes)) {\n if (customTheme.name === themeName) {\n return customTheme.valid;\n }\n }\n\n return false;\n },\n }),\n {\n name: 'themes-storage',\n version: 4, // v4: migrate from localStorage to IndexedDB\n storage: createJSONStorage(() => idbStorage),\n // Only persist the themes data, not the functions\n partialize: (state) => ({ customThemes: state.customThemes }),\n // Handle date deserialization when loading from storage\n onRehydrateStorage: () => (state) => {\n if (state && state.customThemes) {\n // Convert lastModified strings back to Date objects\n Object.keys(state.customThemes).forEach((key) => {\n const theme = state.customThemes[key];\n if (\n theme.lastModified &&\n typeof theme.lastModified === 'string'\n ) {\n theme.lastModified = new Date(theme.lastModified);\n }\n });\n }\n },\n }\n )\n )\n );\n};\n","import { type ReactNode, createContext, useRef, useContext } from 'react';\nimport { useStore } from 'zustand';\n\nimport {\n type ThemesStore,\n createThemesStore,\n initThemesStore,\n} from './themes-store';\n\nexport type ThemesStoreApi = ReturnType<typeof createThemesStore>;\n\nexport const ThemesStoreContext = createContext<ThemesStoreApi | undefined>(\n undefined\n);\n\nexport interface ThemesStoreProviderProps {\n children: ReactNode;\n}\n\nexport const ThemesStoreProvider = ({ children }: ThemesStoreProviderProps) => {\n const storeRef = useRef<ThemesStoreApi>(undefined);\n if (!storeRef.current) {\n storeRef.current = createThemesStore(initThemesStore());\n }\n\n return (\n <ThemesStoreContext.Provider value={storeRef.current}>\n {children}\n </ThemesStoreContext.Provider>\n );\n};\n\nexport const useThemesStore = <T,>(selector: (store: ThemesStore) => T): T => {\n const themesStoreContext = useContext(ThemesStoreContext);\n\n if (!themesStoreContext) {\n throw new Error('useThemesStore must be used within ThemesStoreProvider');\n }\n\n return useStore(themesStoreContext, selector);\n};\n","import { devtools } from 'zustand/middleware';\nimport { createStore } from 'zustand/vanilla';\n\nexport interface GenerationWarning {\n component: string;\n message: string;\n severity?: 'warning' | 'info';\n context?: Record<string, unknown>;\n}\n\nexport type OutputState = {\n name?: string; // last success => document name\n text?: string; // last success => code used to generate the pptx\n blob?: Blob; // last success => generated pptx\n globalError?: string; // last failed => global error message\n isGenerating?: boolean; // presentation generation in progress\n generationProgress?: {\n stage: 'parsing' | 'building' | 'rendering' | 'finalizing';\n message?: string;\n };\n cacheStatus?: 'HIT' | 'MISS' | 'UNKNOWN'; // cache hit/miss status\n cacheHitRate?: string; // cache hit rate percentage\n warnings?: GenerationWarning[] | null; // warnings from custom component processing\n isRendering?: boolean; // preview rendering in progress (iframe/LibreOffice)\n isPreviewStale?: boolean; // preview outdated (new blob generated but not yet rendered)\n editSequence?: number; // incremented on every Monaco keystroke (init 0)\n lastBuiltSequence?: number; // stamped when generation completes (init 0)\n editTimestamp?: number; // Date.now() of the last edit (for debounce countdown)\n // ⚠️ name doesn't necessarily correspond to the global error message\n};\n\nexport type OutputActions = {\n setOutput: (partialState: OutputState) => void;\n bumpEditSequence: () => void;\n};\n\nexport type OutputStore = OutputState & OutputActions;\n\nexport const initOutputStore = (): OutputState => {\n return {\n name: undefined,\n text: undefined,\n blob: undefined,\n globalError: undefined,\n isGenerating: false,\n generationProgress: undefined,\n isRendering: false,\n isPreviewStale: false,\n editSequence: 0,\n lastBuiltSequence: 0,\n };\n};\n\nexport const defaultInitOutputState: OutputState = {\n ...initOutputStore(),\n};\n\nexport const createOutputStore = (\n initState: OutputState = defaultInitOutputState\n) => {\n return createStore<OutputStore>()(\n devtools((set) => ({\n ...initState,\n setOutput: (partialState) => set({ ...partialState }),\n bumpEditSequence: () =>\n set((s) => ({\n editSequence: (s.editSequence ?? 0) + 1,\n editTimestamp: Date.now(),\n })),\n }))\n );\n};\n","import { type ReactNode, createContext, useRef, useContext } from 'react';\nimport { useStore } from 'zustand';\nimport {\n type OutputStore,\n createOutputStore,\n initOutputStore,\n} from './output-store';\n\nexport type OutputStoreApi = ReturnType<typeof createOutputStore>;\n\nexport const OutputStoreContext = createContext<OutputStoreApi | undefined>(\n undefined\n);\n\nexport interface OutputStoreProviderProps {\n children: ReactNode;\n}\n\nexport const OutputStoreProvider = ({ children }: OutputStoreProviderProps) => {\n const storeRef = useRef<OutputStoreApi | null>(null);\n if (!storeRef.current) {\n storeRef.current = createOutputStore(initOutputStore());\n }\n\n return (\n <OutputStoreContext.Provider value={storeRef.current}>\n {children}\n </OutputStoreContext.Provider>\n );\n};\n\nexport const useOutputStore = <T,>(selector: (store: OutputStore) => T): T => {\n const outputStoreContext = useContext(OutputStoreContext);\n\n if (!outputStoreContext) {\n throw new Error('useOutputStore must be used within OutputStoreProvider');\n }\n\n return useStore(outputStoreContext, selector);\n};\n","import { devtools, persist } from 'zustand/middleware';\nimport { createStore } from 'zustand/vanilla';\nimport type { Settings } from '../lib/types';\nimport { FORMAT } from '../lib/env';\n\nexport type SettingsState = Settings;\n\nexport type SettingsActions = {\n setSettings: (settings: Partial<Settings>) => void;\n};\n\nexport type SettingsStore = SettingsState & SettingsActions;\n\nexport const initSettingsStore = (): SettingsState => {\n return {\n saveDocumentDebounceWait: 300,\n autoReload: true,\n renderingLibrary: FORMAT === 'docx' ? 'docxjs' : 'LibreOffice',\n // UI preference to use a single preview header spanning editor + preview\n useGlobalPreviewHeader: true,\n };\n};\n\nexport const defaultInitSettingsState: SettingsState = {\n ...initSettingsStore(),\n};\n\nexport const createSettingsStore = (\n initState: SettingsState = defaultInitSettingsState\n) => {\n return createStore<SettingsStore>()(\n devtools(\n persist(\n (set) => ({\n ...initState,\n setSettings: (settings) => set({ ...settings }),\n }),\n {\n name: 'settings-storage', // name of the item in the storage (must be unique)\n // (optional) by default, 'localStorage' is used as storage\n }\n )\n )\n );\n};\n","import { type ReactNode, createContext, useRef, useContext } from 'react';\nimport { useStore } from 'zustand';\nimport {\n type SettingsStore,\n createSettingsStore,\n initSettingsStore,\n} from './settings-store';\n\nexport type SettingsStoreApi = ReturnType<typeof createSettingsStore>;\n\nexport const SettingsStoreContext = createContext<SettingsStoreApi | undefined>(\n undefined\n);\n\nexport interface SettingsStoreProviderProps {\n children: ReactNode;\n}\n\nexport const SettingsStoreProvider = ({\n children,\n}: SettingsStoreProviderProps) => {\n const storeRef = useRef<SettingsStoreApi | null>(null);\n if (!storeRef.current) {\n storeRef.current = createSettingsStore(initSettingsStore());\n }\n\n return (\n <SettingsStoreContext.Provider value={storeRef.current}>\n {children}\n </SettingsStoreContext.Provider>\n );\n};\n\nexport const useSettingsStore = <T,>(\n selector: (store: SettingsStore) => T\n): T => {\n const settingsStoreContext = useContext(SettingsStoreContext);\n\n if (!settingsStoreContext) {\n throw new Error(\n 'useSettingsStore must be used within SettingsStoreProvider'\n );\n }\n\n return useStore(settingsStoreContext, selector);\n};\n"],"names":["promisifyRequest","request","resolve","reject","createStore","dbName","storeName","dbp","getDB","db","txMode","callback","defaultGetStoreFunc","defaultGetStore","get","key","customStore","store","set","value","del","idbStorage","name","MAX_OPEN_TABS","initDocumentsStore","defaultInitDocumentsState","createDocumentsStore","initState","devtools","persist","text","state","doc","docType","parsed","newDoc","newDocumentTypes","k","docIndex","i","oldName","newName","documents","openTabs","index","tab","activeTab","buildError","buildErrors","original","modified","applyId","accepted","diff","next","ids","acceptedApplyIds","createJSONStorage","DocumentsStoreContext","createContext","DocumentsStoreProvider","children","storeRef","useRef","useDocumentsStore","selector","documentsStoreContext","useContext","useStore","validateThemeJson","jsonString","getThemeName","themeJson","_ThemeChangeEmitter","event","handler","e","__publicField","ThemeChangeEmitter","themeChangeEmitter","initThemesStore","defaultInitThemesState","createThemesStore","documentName","content","validation","themeName","parsedContent","extractedName","existingTheme","isUpdate","hasContentChanged","customTheme","removedTheme","newCustomThemes","names","theme","ThemesStoreContext","ThemesStoreProvider","useThemesStore","themesStoreContext","initOutputStore","defaultInitOutputState","createOutputStore","partialState","s","OutputStoreContext","OutputStoreProvider","useOutputStore","outputStoreContext","initSettingsStore","FORMAT","defaultInitSettingsState","createSettingsStore","settings","SettingsStoreContext","SettingsStoreProvider","useSettingsStore","settingsStoreContext"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{a as O}from"./react-vendor-DhdcN9D5.js";const j=t=>{let e;const n=new Set,s=(d,a)=>{const v=typeof d=="function"?d(e):d;if(!Object.is(v,e)){const p=e;e=a??(typeof v!="object"||v===null)?v:Object.assign({},e,v),n.forEach(f=>f(e,p))}},r=()=>e,l={setState:s,getState:r,getInitialState:()=>m,subscribe:d=>(n.add(d),()=>n.delete(d))},m=e=t(s,r,l);return l},k=t=>t?j(t):j,J=t=>t;function M(t,e=J){const n=O.useSyncExternalStore(t.subscribe,()=>e(t.getState()),()=>e(t.getInitialState()));return O.useDebugValue(n),n}const T=t=>{const e=k(t),n=s=>M(e,s);return Object.assign(n,e),n},$=t=>t?T(t):T,R={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1},w=new Map,b=t=>{const e=w.get(t);return e?Object.fromEntries(Object.entries(e.stores).map(([n,s])=>[n,s.getState()])):{}},P=(t,e,n)=>{if(t===void 0)return{type:"untracked",connection:e.connect(n)};const s=w.get(n.name);if(s)return{type:"tracked",store:t,...s};const r={connection:e.connect(n),stores:{}};return w.set(n.name,r),{type:"tracked",store:t,...r}},U=(t,e={})=>(n,s,r)=>{const{enabled:i,anonymousActionType:h,store:l,...m}=e;let d;try{d=(i??(R?"production":void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!d)return t(n,s,r);const{connection:a,...v}=P(l,d,m);let p=!0;r.setState=(o,S,c)=>{const u=n(o,S);if(!p)return u;const y=c===void 0?{type:h||"anonymous"}:typeof c=="string"?{type:c}:c;return l===void 0?(a==null||a.send(y,s()),u):(a==null||a.send({...y,type:`${l}/${y.type}`},{...b(m.name),[l]:r.getState()}),u)};const f=(...o)=>{const S=p;p=!1,n(...o),p=S},g=t(r.setState,s,r);if(v.type==="untracked"?a==null||a.init(g):(v.stores[v.store]=r,a==null||a.init(Object.fromEntries(Object.entries(v.stores).map(([o,S])=>[o,o===v.store?g:S.getState()])))),r.dispatchFromDevtools&&typeof r.dispatch=="function"){let o=!1;const S=r.dispatch;r.dispatch=(...c)=>{(R?"production":void 0)!=="production"&&c[0].type==="__setState"&&!o&&(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),o=!0),S(...c)}}return a.subscribe(o=>{var S;switch(o.type){case"ACTION":if(typeof o.payload!="string"){console.error("[zustand devtools middleware] Unsupported action format");return}return I(o.payload,c=>{if(c.type==="__setState"){if(l===void 0){f(c.state);return}Object.keys(c.state).length!==1&&console.error(`
|
|
2
|
+
[zustand devtools middleware] Unsupported __setState action format.
|
|
3
|
+
When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),
|
|
4
|
+
and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }
|
|
5
|
+
`);const u=c.state[l];if(u==null)return;JSON.stringify(r.getState())!==JSON.stringify(u)&&f(u);return}r.dispatchFromDevtools&&typeof r.dispatch=="function"&&r.dispatch(c)});case"DISPATCH":switch(o.payload.type){case"RESET":return f(g),l===void 0?a==null?void 0:a.init(r.getState()):a==null?void 0:a.init(b(m.name));case"COMMIT":if(l===void 0){a==null||a.init(r.getState());return}return a==null?void 0:a.init(b(m.name));case"ROLLBACK":return I(o.state,c=>{if(l===void 0){f(c),a==null||a.init(r.getState());return}f(c[l]),a==null||a.init(b(m.name))});case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return I(o.state,c=>{if(l===void 0){f(c);return}JSON.stringify(r.getState())!==JSON.stringify(c[l])&&f(c[l])});case"IMPORT_STATE":{const{nextLiftedState:c}=o.payload,u=(S=c.computedStates.slice(-1)[0])==null?void 0:S.state;if(!u)return;f(l===void 0?u:u[l]),a==null||a.send(null,c);return}case"PAUSE_RECORDING":return p=!p}return}}),g},W=U,I=(t,e)=>{let n;try{n=JSON.parse(t)}catch(s){console.error("[zustand devtools middleware] Could not parse the received json",s)}n!==void 0&&e(n)};function F(t,e){let n;try{n=t()}catch{return}return{getItem:r=>{var i;const h=m=>m===null?null:JSON.parse(m,void 0),l=(i=n.getItem(r))!=null?i:null;return l instanceof Promise?l.then(h):h(l)},setItem:(r,i)=>n.setItem(r,JSON.stringify(i,void 0)),removeItem:r=>n.removeItem(r)}}const E=t=>e=>{try{const n=t(e);return n instanceof Promise?n:{then(s){return E(s)(n)},catch(s){return this}}}catch(n){return{then(s){return this},catch(s){return E(s)(n)}}}},H=(t,e)=>(n,s,r)=>{let i={storage:F(()=>localStorage),partialize:o=>o,version:0,merge:(o,S)=>({...S,...o}),...e},h=!1;const l=new Set,m=new Set;let d=i.storage;if(!d)return t((...o)=>{console.warn(`[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`),n(...o)},s,r);const a=()=>{const o=i.partialize({...s()});return d.setItem(i.name,{state:o,version:i.version})},v=r.setState;r.setState=(o,S)=>{v(o,S),a()};const p=t((...o)=>{n(...o),a()},s,r);r.getInitialState=()=>p;let f;const g=()=>{var o,S;if(!d)return;h=!1,l.forEach(u=>{var y;return u((y=s())!=null?y:p)});const c=((S=i.onRehydrateStorage)==null?void 0:S.call(i,(o=s())!=null?o:p))||void 0;return E(d.getItem.bind(d))(i.name).then(u=>{if(u)if(typeof u.version=="number"&&u.version!==i.version){if(i.migrate){const y=i.migrate(u.state,u.version);return y instanceof Promise?y.then(_=>[!0,_]):[!0,y]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,u.state];return[!1,void 0]}).then(u=>{var y;const[_,N]=u;if(f=i.merge(N,(y=s())!=null?y:p),n(f,!0),_)return a()}).then(()=>{c==null||c(f,void 0),f=s(),h=!0,m.forEach(u=>u(f))}).catch(u=>{c==null||c(void 0,u)})};return r.persist={setOptions:o=>{i={...i,...o},o.storage&&(d=o.storage)},clearStorage:()=>{d==null||d.removeItem(i.name)},getOptions:()=>i,rehydrate:()=>g(),hasHydrated:()=>h,onHydrate:o=>(l.add(o),()=>{l.delete(o)}),onFinishHydration:o=>(m.add(o),()=>{m.delete(o)})},i.skipHydration||g(),f||p},X=H,x=t=>Symbol.iterator in t,C=t=>"entries"in t,D=(t,e)=>{const n=t instanceof Map?t:new Map(t.entries()),s=e instanceof Map?e:new Map(e.entries());if(n.size!==s.size)return!1;for(const[r,i]of n)if(!Object.is(i,s.get(r)))return!1;return!0},L=(t,e)=>{const n=t[Symbol.iterator](),s=e[Symbol.iterator]();let r=n.next(),i=s.next();for(;!r.done&&!i.done;){if(!Object.is(r.value,i.value))return!1;r=n.next(),i=s.next()}return!!r.done&&!!i.done};function z(t,e){return Object.is(t,e)?!0:typeof t!="object"||t===null||typeof e!="object"||e===null?!1:!x(t)||!x(e)?D({entries:()=>Object.entries(t)},{entries:()=>Object.entries(e)}):C(t)&&C(e)?D(t,e):L(t,e)}function G(t){const e=O.useRef();return n=>{const s=t(n);return z(e.current,s)?e.current:e.current=s}}export{k as a,F as b,$ as c,W as d,G as e,X as p,M as u};
|
|
6
|
+
//# sourceMappingURL=state-vendor-CAMVKh-F.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-vendor-CAMVKh-F.js","sources":["../../../../../node_modules/.pnpm/zustand@5.0.2_@types+react@19.2.14_react@19.2.4_use-sync-external-store@1.6.0_react@19.2.4_/node_modules/zustand/esm/vanilla.mjs","../../../../../node_modules/.pnpm/zustand@5.0.2_@types+react@19.2.14_react@19.2.4_use-sync-external-store@1.6.0_react@19.2.4_/node_modules/zustand/esm/react.mjs","../../../../../node_modules/.pnpm/zustand@5.0.2_@types+react@19.2.14_react@19.2.4_use-sync-external-store@1.6.0_react@19.2.4_/node_modules/zustand/esm/middleware.mjs","../../../../../node_modules/.pnpm/zustand@5.0.2_@types+react@19.2.14_react@19.2.4_use-sync-external-store@1.6.0_react@19.2.4_/node_modules/zustand/esm/vanilla/shallow.mjs","../../../../../node_modules/.pnpm/zustand@5.0.2_@types+react@19.2.14_react@19.2.4_use-sync-external-store@1.6.0_react@19.2.4_/node_modules/zustand/esm/react/shallow.mjs"],"sourcesContent":["const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n () => selector(api.getState()),\n () => selector(api.getInitialState())\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\n\nexport { create, useStore };\n","const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...a) => api.dispatch(...a), ...initial };\n};\nconst redux = reduxImpl;\n\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api) return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = (state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording) return r;\n const action = nameOrAction === void 0 ? { type: anonymousActionType || \"anonymous\" } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (api.dispatchFromDevtools && typeof api.dispatch === \"function\") {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...a) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && a[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...a);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format.\n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (!api.dispatchFromDevtools) return;\n if (typeof api.dispatch !== \"function\") return;\n api.dispatch(action);\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState) return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, f) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0) f(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = (selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n };\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nconst combine = (initialState, create) => (...a) => Object.assign({}, initialState, create(...a));\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(\n name,\n JSON.stringify(newValue, options == null ? void 0 : options.replacer)\n ),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst persistImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n void setItem();\n },\n get,\n api\n );\n api.getInitialState = () => configResult;\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage) return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n const migration = options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n if (migration instanceof Promise) {\n return migration.then((result) => [true, result]);\n }\n return [true, migration];\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return [false, deserializedStorageValue.state];\n }\n }\n return [false, void 0];\n }).then((migrationResult) => {\n var _a2;\n const [migrated, migratedState] = migrationResult;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n if (migrated) {\n return setItem();\n }\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persist = persistImpl;\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector };\n","const isIterable = (obj) => Symbol.iterator in obj;\nconst hasIterableEntries = (value) => (\n // HACK: avoid checking entries type\n \"entries\" in value\n);\nconst compareEntries = (valueA, valueB) => {\n const mapA = valueA instanceof Map ? valueA : new Map(valueA.entries());\n const mapB = valueB instanceof Map ? valueB : new Map(valueB.entries());\n if (mapA.size !== mapB.size) {\n return false;\n }\n for (const [key, value] of mapA) {\n if (!Object.is(value, mapB.get(key))) {\n return false;\n }\n }\n return true;\n};\nconst compareIterables = (valueA, valueB) => {\n const iteratorA = valueA[Symbol.iterator]();\n const iteratorB = valueB[Symbol.iterator]();\n let nextA = iteratorA.next();\n let nextB = iteratorB.next();\n while (!nextA.done && !nextB.done) {\n if (!Object.is(nextA.value, nextB.value)) {\n return false;\n }\n nextA = iteratorA.next();\n nextB = iteratorB.next();\n }\n return !!nextA.done && !!nextB.done;\n};\nfunction shallow(valueA, valueB) {\n if (Object.is(valueA, valueB)) {\n return true;\n }\n if (typeof valueA !== \"object\" || valueA === null || typeof valueB !== \"object\" || valueB === null) {\n return false;\n }\n if (!isIterable(valueA) || !isIterable(valueB)) {\n return compareEntries(\n { entries: () => Object.entries(valueA) },\n { entries: () => Object.entries(valueB) }\n );\n }\n if (hasIterableEntries(valueA) && hasIterableEntries(valueB)) {\n return compareEntries(valueA, valueB);\n }\n return compareIterables(valueA, valueB);\n}\n\nexport { shallow };\n","import React from 'react';\nimport { shallow } from 'zustand/vanilla/shallow';\n\nfunction useShallow(selector) {\n const prev = React.useRef();\n return (state) => {\n const next = selector(state);\n return shallow(prev.current, next) ? prev.current : prev.current = next;\n };\n}\n\nexport { useShallow };\n"],"names":["createStoreImpl","createState","state","listeners","setState","partial","replace","nextState","previousState","listener","getState","api","initialState","createStore","identity","arg","useStore","selector","slice","React","createImpl","useBoundStore","create","trackedConnections","getTrackedConnectionState","name","key","api2","extractConnectionInformation","store","extensionConnector","options","existingConnection","newConnection","devtoolsImpl","fn","devtoolsOptions","set","get","enabled","anonymousActionType","__vite_import_meta_env__","connection","connectionInformation","isRecording","nameOrAction","r","action","setStateFromDevtools","a","originalIsRecording","store2","didWarnAboutReservedActionType","originalDispatch","message","_a","parseJsonThen","stateFromDevtools","nextLiftedState","lastComputedState","devtools","stringified","f","parsed","e","createJSONStorage","getStorage","storage","parse","str2","str","newValue","toThenable","input","result","onFulfilled","_onRejected","_onFulfilled","onRejected","persistImpl","config","baseOptions","persistedState","currentState","hasHydrated","hydrationListeners","finishHydrationListeners","args","setItem","savedSetState","configResult","stateFromStorage","hydrate","_b","cb","_a2","postRehydrationCallback","deserializedStorageValue","migration","migrationResult","migrated","migratedState","newOptions","persist","isIterable","obj","hasIterableEntries","value","compareEntries","valueA","valueB","mapA","mapB","compareIterables","iteratorA","iteratorB","nextA","nextB","shallow","useShallow","prev","next"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import{r as i}from"./react-vendor-DhdcN9D5.js";function M(t){var c,a,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t)){var n=t.length;for(c=0;c<n;c++)t[c]&&(a=M(t[c]))&&(r&&(r+=" "),r+=a)}else for(a in t)t[a]&&(r&&(r+=" "),r+=a);return r}function w(){for(var t,c,a=0,r="",n=arguments.length;a<n;a++)(t=arguments[a])&&(c=M(t))&&(r&&(r+=" "),r+=c);return r}/**
|
|
2
|
+
* @license lucide-react v0.468.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const z=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),x=(...t)=>t.filter((c,a,r)=>!!c&&c.trim()!==""&&r.indexOf(c)===a).join(" ").trim();/**
|
|
7
|
+
* @license lucide-react v0.468.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/var q={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/**
|
|
12
|
+
* @license lucide-react v0.468.0 - ISC
|
|
13
|
+
*
|
|
14
|
+
* This source code is licensed under the ISC license.
|
|
15
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
+
*/const P=i.forwardRef(({color:t="currentColor",size:c=24,strokeWidth:a=2,absoluteStrokeWidth:r,className:n="",children:y,iconNode:k,...d},p)=>i.createElement("svg",{ref:p,...q,width:c,height:c,stroke:t,strokeWidth:r?Number(a)*24/Number(c):a,className:x("lucide",n),...d},[...k.map(([l,s])=>i.createElement(l,s)),...Array.isArray(y)?y:[y]]));/**
|
|
17
|
+
* @license lucide-react v0.468.0 - ISC
|
|
18
|
+
*
|
|
19
|
+
* This source code is licensed under the ISC license.
|
|
20
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
21
|
+
*/const e=(t,c)=>{const a=i.forwardRef(({className:r,...n},y)=>i.createElement(P,{ref:y,iconNode:c,className:x(`lucide-${z(t)}`,r),...n}));return a.displayName=`${t}`,a};/**
|
|
22
|
+
* @license lucide-react v0.468.0 - ISC
|
|
23
|
+
*
|
|
24
|
+
* This source code is licensed under the ISC license.
|
|
25
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
26
|
+
*/const j=e("ChartColumn",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/**
|
|
27
|
+
* @license lucide-react v0.468.0 - ISC
|
|
28
|
+
*
|
|
29
|
+
* This source code is licensed under the ISC license.
|
|
30
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
31
|
+
*/const L=e("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/**
|
|
32
|
+
* @license lucide-react v0.468.0 - ISC
|
|
33
|
+
*
|
|
34
|
+
* This source code is licensed under the ISC license.
|
|
35
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
36
|
+
*/const V=e("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
|
|
37
|
+
* @license lucide-react v0.468.0 - ISC
|
|
38
|
+
*
|
|
39
|
+
* This source code is licensed under the ISC license.
|
|
40
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
41
|
+
*/const A=e("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/**
|
|
42
|
+
* @license lucide-react v0.468.0 - ISC
|
|
43
|
+
*
|
|
44
|
+
* This source code is licensed under the ISC license.
|
|
45
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
46
|
+
*/const S=e("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/**
|
|
47
|
+
* @license lucide-react v0.468.0 - ISC
|
|
48
|
+
*
|
|
49
|
+
* This source code is licensed under the ISC license.
|
|
50
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
51
|
+
*/const H=e("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/**
|
|
52
|
+
* @license lucide-react v0.468.0 - ISC
|
|
53
|
+
*
|
|
54
|
+
* This source code is licensed under the ISC license.
|
|
55
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
56
|
+
*/const E=e("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/**
|
|
57
|
+
* @license lucide-react v0.468.0 - ISC
|
|
58
|
+
*
|
|
59
|
+
* This source code is licensed under the ISC license.
|
|
60
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
61
|
+
*/const O=e("CircleCheckBig",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/**
|
|
62
|
+
* @license lucide-react v0.468.0 - ISC
|
|
63
|
+
*
|
|
64
|
+
* This source code is licensed under the ISC license.
|
|
65
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
66
|
+
*/const F=e("CirclePlay",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polygon",{points:"10 8 16 12 10 16 10 8",key:"1cimsy"}]]);/**
|
|
67
|
+
* @license lucide-react v0.468.0 - ISC
|
|
68
|
+
*
|
|
69
|
+
* This source code is licensed under the ISC license.
|
|
70
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
71
|
+
*/const N=e("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/**
|
|
72
|
+
* @license lucide-react v0.468.0 - ISC
|
|
73
|
+
*
|
|
74
|
+
* This source code is licensed under the ISC license.
|
|
75
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
76
|
+
*/const T=e("CodeXml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);/**
|
|
77
|
+
* @license lucide-react v0.468.0 - ISC
|
|
78
|
+
*
|
|
79
|
+
* This source code is licensed under the ISC license.
|
|
80
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
81
|
+
*/const R=e("Code",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]);/**
|
|
82
|
+
* @license lucide-react v0.468.0 - ISC
|
|
83
|
+
*
|
|
84
|
+
* This source code is licensed under the ISC license.
|
|
85
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
86
|
+
*/const B=e("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/**
|
|
87
|
+
* @license lucide-react v0.468.0 - ISC
|
|
88
|
+
*
|
|
89
|
+
* This source code is licensed under the ISC license.
|
|
90
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
91
|
+
*/const I=e("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);/**
|
|
92
|
+
* @license lucide-react v0.468.0 - ISC
|
|
93
|
+
*
|
|
94
|
+
* This source code is licensed under the ISC license.
|
|
95
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
96
|
+
*/const Z=e("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/**
|
|
97
|
+
* @license lucide-react v0.468.0 - ISC
|
|
98
|
+
*
|
|
99
|
+
* This source code is licensed under the ISC license.
|
|
100
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
101
|
+
*/const $=e("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/**
|
|
102
|
+
* @license lucide-react v0.468.0 - ISC
|
|
103
|
+
*
|
|
104
|
+
* This source code is licensed under the ISC license.
|
|
105
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
106
|
+
*/const X=e("FileCode2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m5 12-3 3 3 3",key:"oke12k"}],["path",{d:"m9 18 3-3-3-3",key:"112psh"}]]);/**
|
|
107
|
+
* @license lucide-react v0.468.0 - ISC
|
|
108
|
+
*
|
|
109
|
+
* This source code is licensed under the ISC license.
|
|
110
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
111
|
+
*/const D=e("FileJson",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"1oajmo"}],["path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"mpwhp6"}]]);/**
|
|
112
|
+
* @license lucide-react v0.468.0 - ISC
|
|
113
|
+
*
|
|
114
|
+
* This source code is licensed under the ISC license.
|
|
115
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
116
|
+
*/const G=e("FilePlus",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]);/**
|
|
117
|
+
* @license lucide-react v0.468.0 - ISC
|
|
118
|
+
*
|
|
119
|
+
* This source code is licensed under the ISC license.
|
|
120
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
121
|
+
*/const J=e("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/**
|
|
122
|
+
* @license lucide-react v0.468.0 - ISC
|
|
123
|
+
*
|
|
124
|
+
* This source code is licensed under the ISC license.
|
|
125
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
126
|
+
*/const K=e("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/**
|
|
127
|
+
* @license lucide-react v0.468.0 - ISC
|
|
128
|
+
*
|
|
129
|
+
* This source code is licensed under the ISC license.
|
|
130
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
131
|
+
*/const U=e("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/**
|
|
132
|
+
* @license lucide-react v0.468.0 - ISC
|
|
133
|
+
*
|
|
134
|
+
* This source code is licensed under the ISC license.
|
|
135
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
136
|
+
*/const W=e("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/**
|
|
137
|
+
* @license lucide-react v0.468.0 - ISC
|
|
138
|
+
*
|
|
139
|
+
* This source code is licensed under the ISC license.
|
|
140
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
141
|
+
*/const _=e("MapPin",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]);/**
|
|
142
|
+
* @license lucide-react v0.468.0 - ISC
|
|
143
|
+
*
|
|
144
|
+
* This source code is licensed under the ISC license.
|
|
145
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
146
|
+
*/const Q=e("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/**
|
|
147
|
+
* @license lucide-react v0.468.0 - ISC
|
|
148
|
+
*
|
|
149
|
+
* This source code is licensed under the ISC license.
|
|
150
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
151
|
+
*/const Y=e("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/**
|
|
152
|
+
* @license lucide-react v0.468.0 - ISC
|
|
153
|
+
*
|
|
154
|
+
* This source code is licensed under the ISC license.
|
|
155
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
156
|
+
*/const e1=e("Package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7",key:"yx3hmr"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);/**
|
|
157
|
+
* @license lucide-react v0.468.0 - ISC
|
|
158
|
+
*
|
|
159
|
+
* This source code is licensed under the ISC license.
|
|
160
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
161
|
+
*/const a1=e("Palette",[["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z",key:"12rzf8"}]]);/**
|
|
162
|
+
* @license lucide-react v0.468.0 - ISC
|
|
163
|
+
*
|
|
164
|
+
* This source code is licensed under the ISC license.
|
|
165
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
166
|
+
*/const t1=e("PanelLeftClose",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]);/**
|
|
167
|
+
* @license lucide-react v0.468.0 - ISC
|
|
168
|
+
*
|
|
169
|
+
* This source code is licensed under the ISC license.
|
|
170
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
171
|
+
*/const c1=e("PanelLeftOpen",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]);/**
|
|
172
|
+
* @license lucide-react v0.468.0 - ISC
|
|
173
|
+
*
|
|
174
|
+
* This source code is licensed under the ISC license.
|
|
175
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
176
|
+
*/const r1=e("PanelLeft",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);/**
|
|
177
|
+
* @license lucide-react v0.468.0 - ISC
|
|
178
|
+
*
|
|
179
|
+
* This source code is licensed under the ISC license.
|
|
180
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
181
|
+
*/const l1=e("Paperclip",[["path",{d:"M13.234 20.252 21 12.3",key:"1cbrk9"}],["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 0 2.828 2 2 0 0 0 2.828 0l8.414-8.586a4 4 0 0 0 0-5.656 4 4 0 0 0-5.656 0l-8.415 8.585a6 6 0 1 0 8.486 8.486",key:"1pkts6"}]]);/**
|
|
182
|
+
* @license lucide-react v0.468.0 - ISC
|
|
183
|
+
*
|
|
184
|
+
* This source code is licensed under the ISC license.
|
|
185
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
186
|
+
*/const y1=e("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/**
|
|
187
|
+
* @license lucide-react v0.468.0 - ISC
|
|
188
|
+
*
|
|
189
|
+
* This source code is licensed under the ISC license.
|
|
190
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
191
|
+
*/const n1=e("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/**
|
|
192
|
+
* @license lucide-react v0.468.0 - ISC
|
|
193
|
+
*
|
|
194
|
+
* This source code is licensed under the ISC license.
|
|
195
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
196
|
+
*/const s1=e("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/**
|
|
197
|
+
* @license lucide-react v0.468.0 - ISC
|
|
198
|
+
*
|
|
199
|
+
* This source code is licensed under the ISC license.
|
|
200
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
201
|
+
*/const h1=e("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/**
|
|
202
|
+
* @license lucide-react v0.468.0 - ISC
|
|
203
|
+
*
|
|
204
|
+
* This source code is licensed under the ISC license.
|
|
205
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
206
|
+
*/const o1=e("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);/**
|
|
207
|
+
* @license lucide-react v0.468.0 - ISC
|
|
208
|
+
*
|
|
209
|
+
* This source code is licensed under the ISC license.
|
|
210
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
211
|
+
*/const i1=e("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/**
|
|
212
|
+
* @license lucide-react v0.468.0 - ISC
|
|
213
|
+
*
|
|
214
|
+
* This source code is licensed under the ISC license.
|
|
215
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
216
|
+
*/const d1=e("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/**
|
|
217
|
+
* @license lucide-react v0.468.0 - ISC
|
|
218
|
+
*
|
|
219
|
+
* This source code is licensed under the ISC license.
|
|
220
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
221
|
+
*/const k1=e("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/**
|
|
222
|
+
* @license lucide-react v0.468.0 - ISC
|
|
223
|
+
*
|
|
224
|
+
* This source code is licensed under the ISC license.
|
|
225
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
226
|
+
*/const p1=e("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);/**
|
|
227
|
+
* @license lucide-react v0.468.0 - ISC
|
|
228
|
+
*
|
|
229
|
+
* This source code is licensed under the ISC license.
|
|
230
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
231
|
+
*/const v1=e("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);/**
|
|
232
|
+
* @license lucide-react v0.468.0 - ISC
|
|
233
|
+
*
|
|
234
|
+
* This source code is licensed under the ISC license.
|
|
235
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
236
|
+
*/const u1=e("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/**
|
|
237
|
+
* @license lucide-react v0.468.0 - ISC
|
|
238
|
+
*
|
|
239
|
+
* This source code is licensed under the ISC license.
|
|
240
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
241
|
+
*/const f1=e("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/**
|
|
242
|
+
* @license lucide-react v0.468.0 - ISC
|
|
243
|
+
*
|
|
244
|
+
* This source code is licensed under the ISC license.
|
|
245
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
246
|
+
*/const m1=e("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),f=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,m=w,M1=(t,c)=>a=>{var r;if((c==null?void 0:c.variants)==null)return m(t,a==null?void 0:a.class,a==null?void 0:a.className);const{variants:n,defaultVariants:y}=c,k=Object.keys(n).map(l=>{const s=a==null?void 0:a[l],o=y==null?void 0:y[l];if(s===null)return null;const h=f(s)||f(o);return n[l][h]}),d=a&&Object.entries(a).reduce((l,s)=>{let[o,h]=s;return h===void 0||(l[o]=h),l},{}),p=c==null||(r=c.compoundVariants)===null||r===void 0?void 0:r.reduce((l,s)=>{let{class:o,className:h,...C}=s;return Object.entries(C).every(g=>{let[u,v]=g;return Array.isArray(v)?v.includes({...y,...d}[u]):{...y,...d}[u]===v})?[...l,o,h]:l},[]);return m(t,k,p,a==null?void 0:a.class,a==null?void 0:a.className)};export{u1 as A,Z as B,V as C,Q as D,$ as E,J as F,K as G,X as H,U as I,y1 as J,d1 as K,W as L,_ as M,l1 as N,p1 as O,r1 as P,E as Q,h1 as R,k1 as S,f1 as T,m1 as X,M1 as a,L as b,w as c,H as d,S as e,N as f,F as g,a1 as h,R as i,O as j,A as k,D as l,B as m,e1 as n,v1 as o,Y as p,c1 as q,t1 as r,G as s,s1 as t,i1 as u,n1 as v,o1 as w,I as x,j as y,T as z};
|
|
247
|
+
//# sourceMappingURL=ui-vendor-C6DsfOoA.js.map
|