@av-pi-studio/web-client 0.0.31 → 0.0.33

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.
Files changed (33) hide show
  1. package/dist/web/assets/{BinaryFallbackViewer-CiHA5YkW.js → BinaryFallbackViewer-DcdvHipL.js} +2 -2
  2. package/dist/web/assets/{BinaryFallbackViewer-CiHA5YkW.js.map → BinaryFallbackViewer-DcdvHipL.js.map} +1 -1
  3. package/dist/web/assets/ChatPanel-C5cHHrg2.js +3 -0
  4. package/dist/web/assets/ChatPanel-C5cHHrg2.js.map +1 -0
  5. package/dist/web/assets/ChatPanel-DRMI3PJR.css +1 -0
  6. package/dist/web/assets/{CodeView-CsWFsQKP.js → CodeView-CHtX3XUo.js} +2 -2
  7. package/dist/web/assets/{CodeView-CsWFsQKP.js.map → CodeView-CHtX3XUo.js.map} +1 -1
  8. package/dist/web/assets/{FilePanel-B7lhVw8O.js → FilePanel-DFrjCgQW.js} +3 -3
  9. package/dist/web/assets/{FilePanel-B7lhVw8O.js.map → FilePanel-DFrjCgQW.js.map} +1 -1
  10. package/dist/web/assets/{ImageViewer-BLRh_07t.js → ImageViewer-BU0ZsYF9.js} +2 -2
  11. package/dist/web/assets/{ImageViewer-BLRh_07t.js.map → ImageViewer-BU0ZsYF9.js.map} +1 -1
  12. package/dist/web/assets/{MarkdownFileViewer-Cb5lnZ7T.js → MarkdownFileViewer-n81kPpQE.js} +2 -2
  13. package/dist/web/assets/{MarkdownFileViewer-Cb5lnZ7T.js.map → MarkdownFileViewer-n81kPpQE.js.map} +1 -1
  14. package/dist/web/assets/{TerminalPanel-bg9g6LHk.js → TerminalPanel-yVOy1dbu.js} +2 -2
  15. package/dist/web/assets/{TerminalPanel-bg9g6LHk.js.map → TerminalPanel-yVOy1dbu.js.map} +1 -1
  16. package/dist/web/assets/{TextViewer-CPgqFNgc.js → TextViewer-DjulYYEe.js} +2 -2
  17. package/dist/web/assets/{TextViewer-CPgqFNgc.js.map → TextViewer-DjulYYEe.js.map} +1 -1
  18. package/dist/web/assets/{VideoViewer-DsQpXthU.js → VideoViewer-CWUu0A0W.js} +2 -2
  19. package/dist/web/assets/{VideoViewer-DsQpXthU.js.map → VideoViewer-CWUu0A0W.js.map} +1 -1
  20. package/dist/web/assets/index-B_Wls_vp.js +3 -0
  21. package/dist/web/assets/index-B_Wls_vp.js.map +1 -0
  22. package/dist/web/assets/{use-file-download-CMjz0Q0u.js → use-file-download-BxA_7HBl.js} +2 -2
  23. package/dist/web/assets/{use-file-download-CMjz0Q0u.js.map → use-file-download-BxA_7HBl.js.map} +1 -1
  24. package/dist/web/assets/{vendor-icons-DwowToH7.js → vendor-icons-BJD_eLBz.js} +39 -34
  25. package/dist/web/assets/vendor-icons-BJD_eLBz.js.map +1 -0
  26. package/dist/web/index.html +2 -2
  27. package/package.json +3 -3
  28. package/dist/web/assets/ChatPanel-B0g334BE.js +0 -3
  29. package/dist/web/assets/ChatPanel-B0g334BE.js.map +0 -1
  30. package/dist/web/assets/ChatPanel-Cz7YoXXW.css +0 -1
  31. package/dist/web/assets/index-Dq-7k_5T.js +0 -3
  32. package/dist/web/assets/index-Dq-7k_5T.js.map +0 -1
  33. package/dist/web/assets/vendor-icons-DwowToH7.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{r as a}from"./vendor-react-BoIQBqDW.js";import{u as f}from"./vendor-query-AtKBh_Yt.js";import{a as s,c as m,r as y}from"./index-Dq-7k_5T.js";function p(o,u=!0){var i;const l=s(e=>e.client),n=s(e=>e.daemon),c=f({queryKey:y.fileDownload(o),queryFn:async()=>{if(!l||!n)throw new Error("not connected");const e=await m(n).download(o),t=new Blob([Uint8Array.from(e.bytes)],{type:e.mimeType||"application/octet-stream"});return{objectUrl:URL.createObjectURL(t),mimeType:e.mimeType,fileName:e.fileName}},enabled:!!l&&!!n&&!!o&&u,staleTime:1/0,gcTime:0}),r=a.useRef(null);return a.useEffect(()=>{var t;const e=((t=c.data)==null?void 0:t.objectUrl)??null;e&&r.current&&r.current!==e&&URL.revokeObjectURL(r.current),r.current=e},[(i=c.data)==null?void 0:i.objectUrl]),a.useEffect(()=>()=>{r.current&&URL.revokeObjectURL(r.current)},[]),c}export{p as u};
2
- //# sourceMappingURL=use-file-download-CMjz0Q0u.js.map
1
+ import{r as a}from"./vendor-react-BoIQBqDW.js";import{u as f}from"./vendor-query-AtKBh_Yt.js";import{a as s,c as m,r as y}from"./index-B_Wls_vp.js";function p(o,u=!0){var i;const l=s(e=>e.client),n=s(e=>e.daemon),c=f({queryKey:y.fileDownload(o),queryFn:async()=>{if(!l||!n)throw new Error("not connected");const e=await m(n).download(o),t=new Blob([Uint8Array.from(e.bytes)],{type:e.mimeType||"application/octet-stream"});return{objectUrl:URL.createObjectURL(t),mimeType:e.mimeType,fileName:e.fileName}},enabled:!!l&&!!n&&!!o&&u,staleTime:1/0,gcTime:0}),r=a.useRef(null);return a.useEffect(()=>{var t;const e=((t=c.data)==null?void 0:t.objectUrl)??null;e&&r.current&&r.current!==e&&URL.revokeObjectURL(r.current),r.current=e},[(i=c.data)==null?void 0:i.objectUrl]),a.useEffect(()=>()=>{r.current&&URL.revokeObjectURL(r.current)},[]),c}export{p as u};
2
+ //# sourceMappingURL=use-file-download-BxA_7HBl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-file-download-CMjz0Q0u.js","sources":["../../../src/hooks/use-file-download.ts"],"sourcesContent":["/**\n * `use-file-download` — TanStack Query wrapper over the binary file-transfer download path\n * (`file_download_token_request` → `file_download_request` → chunked `Begin`/`Chunk`/`End`\n * binary frames), for viewers that need raw bytes rather than the UTF-8 preview\n * `file_read_request` returns (images, video — POC_TO_APP_PLAN_UI.md §4.5 follow-up: modular\n * file preview). Resolves to an object URL, revoked once superseded by a new one or once this\n * consumer unmounts.\n */\n\nimport { useEffect, useRef } from \"react\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useConnectionStore } from \"@pi-studio-ui/lib/connection/connection-store.js\";\nimport { rpcKeys } from \"@pi-studio-ui/lib/connection/rpc-keys.js\";\nimport { transferFor } from \"./file-transfer-instance.js\";\n\nexport interface FileDownload {\n objectUrl: string;\n mimeType?: string;\n fileName?: string;\n}\n\nexport function useFileDownload(path: string, enabled = true) {\n const client = useConnectionStore((s) => s.client);\n const daemon = useConnectionStore((s) => s.daemon);\n\n const query = useQuery({\n queryKey: rpcKeys.fileDownload(path),\n queryFn: async (): Promise<FileDownload> => {\n if (!client || !daemon) throw new Error(\"not connected\");\n const file = await transferFor(daemon).download(path);\n // `Blob`'s DOM typings require an `ArrayBuffer`-backed view; the assembled `Uint8Array`'s\n // `ArrayBufferLike` backing (a decode-time implementation detail) doesn't satisfy that on\n // its own, so copy into a plain `ArrayBuffer`-backed `Uint8Array` first.\n const blob = new Blob([Uint8Array.from(file.bytes)], {\n type: file.mimeType || \"application/octet-stream\",\n });\n return { objectUrl: URL.createObjectURL(blob), mimeType: file.mimeType, fileName: file.fileName };\n },\n enabled: Boolean(client) && Boolean(daemon) && Boolean(path) && enabled,\n // Object URLs are process-local, non-serializable browser resources — never persist them or\n // silently refetch behind this hook's back (that would leak the previous blob's URL).\n staleTime: Infinity,\n gcTime: 0,\n });\n\n // Revoke the previous object URL once a new one supersedes it, and the current one on unmount\n // — TanStack Query's cache has no notion that this value owns a browser resource to release.\n const urlRef = useRef<string | null>(null);\n useEffect(() => {\n const nextUrl = query.data?.objectUrl ?? null;\n if (nextUrl && urlRef.current && urlRef.current !== nextUrl) {\n URL.revokeObjectURL(urlRef.current);\n }\n urlRef.current = nextUrl;\n }, [query.data?.objectUrl]);\n\n useEffect(() => {\n return () => {\n if (urlRef.current) URL.revokeObjectURL(urlRef.current);\n };\n }, []);\n\n return query;\n}\n"],"names":["useFileDownload","path","enabled","client","useConnectionStore","s","daemon","query","useQuery","rpcKeys","file","transferFor","blob","urlRef","useRef","useEffect","nextUrl","_a"],"mappings":"oJAqBO,SAASA,EAAgBC,EAAcC,EAAU,GAAM,OAC5D,MAAMC,EAASC,EAAoBC,GAAMA,EAAE,MAAM,EAC3CC,EAASF,EAAoBC,GAAMA,EAAE,MAAM,EAE3CE,EAAQC,EAAS,CACrB,SAAUC,EAAQ,aAAaR,CAAI,EACnC,QAAS,SAAmC,CAC1C,GAAI,CAACE,GAAU,CAACG,EAAQ,MAAM,IAAI,MAAM,eAAe,EACvD,MAAMI,EAAO,MAAMC,EAAYL,CAAM,EAAE,SAASL,CAAI,EAI9CW,EAAO,IAAI,KAAK,CAAC,WAAW,KAAKF,EAAK,KAAK,CAAC,EAAG,CACnD,KAAMA,EAAK,UAAY,0BAAA,CACxB,EACD,MAAO,CAAE,UAAW,IAAI,gBAAgBE,CAAI,EAAG,SAAUF,EAAK,SAAU,SAAUA,EAAK,QAAA,CACzF,EACA,QAAS,EAAQP,GAAW,EAAQG,GAAW,EAAQL,GAASC,EAGhE,UAAW,IACX,OAAQ,CAAA,CACT,EAIKW,EAASC,EAAAA,OAAsB,IAAI,EACzCC,OAAAA,EAAAA,UAAU,IAAM,OACd,MAAMC,IAAUC,EAAAV,EAAM,OAAN,YAAAU,EAAY,YAAa,KACrCD,GAAWH,EAAO,SAAWA,EAAO,UAAYG,GAClD,IAAI,gBAAgBH,EAAO,OAAO,EAEpCA,EAAO,QAAUG,CACnB,EAAG,EAACC,EAAAV,EAAM,OAAN,YAAAU,EAAY,SAAS,CAAC,EAE1BF,EAAAA,UAAU,IACD,IAAM,CACPF,EAAO,SAAS,IAAI,gBAAgBA,EAAO,OAAO,CACxD,EACC,CAAA,CAAE,EAEEN,CACT"}
1
+ {"version":3,"file":"use-file-download-BxA_7HBl.js","sources":["../../../src/hooks/use-file-download.ts"],"sourcesContent":["/**\n * `use-file-download` — TanStack Query wrapper over the binary file-transfer download path\n * (`file_download_token_request` → `file_download_request` → chunked `Begin`/`Chunk`/`End`\n * binary frames), for viewers that need raw bytes rather than the UTF-8 preview\n * `file_read_request` returns (images, video — POC_TO_APP_PLAN_UI.md §4.5 follow-up: modular\n * file preview). Resolves to an object URL, revoked once superseded by a new one or once this\n * consumer unmounts.\n */\n\nimport { useEffect, useRef } from \"react\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useConnectionStore } from \"@pi-studio-ui/lib/connection/connection-store.js\";\nimport { rpcKeys } from \"@pi-studio-ui/lib/connection/rpc-keys.js\";\nimport { transferFor } from \"./file-transfer-instance.js\";\n\nexport interface FileDownload {\n objectUrl: string;\n mimeType?: string;\n fileName?: string;\n}\n\nexport function useFileDownload(path: string, enabled = true) {\n const client = useConnectionStore((s) => s.client);\n const daemon = useConnectionStore((s) => s.daemon);\n\n const query = useQuery({\n queryKey: rpcKeys.fileDownload(path),\n queryFn: async (): Promise<FileDownload> => {\n if (!client || !daemon) throw new Error(\"not connected\");\n const file = await transferFor(daemon).download(path);\n // `Blob`'s DOM typings require an `ArrayBuffer`-backed view; the assembled `Uint8Array`'s\n // `ArrayBufferLike` backing (a decode-time implementation detail) doesn't satisfy that on\n // its own, so copy into a plain `ArrayBuffer`-backed `Uint8Array` first.\n const blob = new Blob([Uint8Array.from(file.bytes)], {\n type: file.mimeType || \"application/octet-stream\",\n });\n return { objectUrl: URL.createObjectURL(blob), mimeType: file.mimeType, fileName: file.fileName };\n },\n enabled: Boolean(client) && Boolean(daemon) && Boolean(path) && enabled,\n // Object URLs are process-local, non-serializable browser resources — never persist them or\n // silently refetch behind this hook's back (that would leak the previous blob's URL).\n staleTime: Infinity,\n gcTime: 0,\n });\n\n // Revoke the previous object URL once a new one supersedes it, and the current one on unmount\n // — TanStack Query's cache has no notion that this value owns a browser resource to release.\n const urlRef = useRef<string | null>(null);\n useEffect(() => {\n const nextUrl = query.data?.objectUrl ?? null;\n if (nextUrl && urlRef.current && urlRef.current !== nextUrl) {\n URL.revokeObjectURL(urlRef.current);\n }\n urlRef.current = nextUrl;\n }, [query.data?.objectUrl]);\n\n useEffect(() => {\n return () => {\n if (urlRef.current) URL.revokeObjectURL(urlRef.current);\n };\n }, []);\n\n return query;\n}\n"],"names":["useFileDownload","path","enabled","client","useConnectionStore","s","daemon","query","useQuery","rpcKeys","file","transferFor","blob","urlRef","useRef","useEffect","nextUrl","_a"],"mappings":"oJAqBO,SAASA,EAAgBC,EAAcC,EAAU,GAAM,OAC5D,MAAMC,EAASC,EAAoBC,GAAMA,EAAE,MAAM,EAC3CC,EAASF,EAAoBC,GAAMA,EAAE,MAAM,EAE3CE,EAAQC,EAAS,CACrB,SAAUC,EAAQ,aAAaR,CAAI,EACnC,QAAS,SAAmC,CAC1C,GAAI,CAACE,GAAU,CAACG,EAAQ,MAAM,IAAI,MAAM,eAAe,EACvD,MAAMI,EAAO,MAAMC,EAAYL,CAAM,EAAE,SAASL,CAAI,EAI9CW,EAAO,IAAI,KAAK,CAAC,WAAW,KAAKF,EAAK,KAAK,CAAC,EAAG,CACnD,KAAMA,EAAK,UAAY,0BAAA,CACxB,EACD,MAAO,CAAE,UAAW,IAAI,gBAAgBE,CAAI,EAAG,SAAUF,EAAK,SAAU,SAAUA,EAAK,QAAA,CACzF,EACA,QAAS,EAAQP,GAAW,EAAQG,GAAW,EAAQL,GAASC,EAGhE,UAAW,IACX,OAAQ,CAAA,CACT,EAIKW,EAASC,EAAAA,OAAsB,IAAI,EACzCC,OAAAA,EAAAA,UAAU,IAAM,OACd,MAAMC,IAAUC,EAAAV,EAAM,OAAN,YAAAU,EAAY,YAAa,KACrCD,GAAWH,EAAO,SAAWA,EAAO,UAAYG,GAClD,IAAI,gBAAgBH,EAAO,OAAO,EAEpCA,EAAO,QAAUG,CACnB,EAAG,EAACC,EAAAV,EAAM,OAAN,YAAAU,EAAY,SAAS,CAAC,EAE1BF,EAAAA,UAAU,IACD,IAAM,CACPF,EAAO,SAAS,IAAI,gBAAgBA,EAAO,OAAO,CACxD,EACC,CAAA,CAAE,EAEEN,CACT"}
@@ -13,7 +13,7 @@ import{r as s}from"./vendor-react-BoIQBqDW.js";/**
13
13
  *
14
14
  * This source code is licensed under the ISC license.
15
15
  * See the LICENSE file in the root directory of this source tree.
16
- */const m=s.forwardRef(({color:a="currentColor",size:t=24,strokeWidth:o=2,absoluteStrokeWidth:c,className:h="",children:n,iconNode:r,...i},l)=>s.createElement("svg",{ref:l,..._,width:t,height:t,stroke:a,strokeWidth:c?Number(o)*24/Number(t):o,className:d("lucide",h),...i},[...r.map(([y,p])=>s.createElement(y,p)),...Array.isArray(n)?n:[n]]));/**
16
+ */const m=s.forwardRef(({color:a="currentColor",size:t=24,strokeWidth:o=2,absoluteStrokeWidth:c,className:h="",children:n,iconNode:i,...r},l)=>s.createElement("svg",{ref:l,..._,width:t,height:t,stroke:a,strokeWidth:c?Number(o)*24/Number(t):o,className:d("lucide",h),...r},[...i.map(([y,p])=>s.createElement(y,p)),...Array.isArray(n)?n:[n]]));/**
17
17
  * @license lucide-react v0.475.0 - ISC
18
18
  *
19
19
  * This source code is licensed under the ISC license.
@@ -23,62 +23,62 @@ import{r as s}from"./vendor-react-BoIQBqDW.js";/**
23
23
  *
24
24
  * This source code is licensed under the ISC license.
25
25
  * See the LICENSE file in the root directory of this source tree.
26
- */const M=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],W=e("ArrowUp",M);/**
26
+ */const M=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],J=e("ArrowUp",M);/**
27
27
  * @license lucide-react v0.475.0 - ISC
28
28
  *
29
29
  * This source code is licensed under the ISC license.
30
30
  * See the LICENSE file in the root directory of this source tree.
31
- */const v=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],J=e("Check",v);/**
31
+ */const v=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],Y=e("Check",v);/**
32
32
  * @license lucide-react v0.475.0 - ISC
33
33
  *
34
34
  * This source code is licensed under the ISC license.
35
35
  * See the LICENSE file in the root directory of this source tree.
36
- */const x=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Y=e("ChevronDown",x);/**
36
+ */const x=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],e2=e("ChevronDown",x);/**
37
37
  * @license lucide-react v0.475.0 - ISC
38
38
  *
39
39
  * This source code is licensed under the ISC license.
40
40
  * See the LICENSE file in the root directory of this source tree.
41
- */const $=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],e2=e("ChevronRight",$);/**
41
+ */const N=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],t2=e("ChevronRight",N);/**
42
42
  * @license lucide-react v0.475.0 - ISC
43
43
  *
44
44
  * This source code is licensed under the ISC license.
45
45
  * See the LICENSE file in the root directory of this source tree.
46
- */const u=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]],t2=e("EllipsisVertical",u);/**
46
+ */const $=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]],a2=e("EllipsisVertical",$);/**
47
47
  * @license lucide-react v0.475.0 - ISC
48
48
  *
49
49
  * This source code is licensed under the ISC license.
50
50
  * See the LICENSE file in the root directory of this source tree.
51
- */const N=[["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"}]],a2=e("Eye",N);/**
51
+ */const g=[["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"}]],o2=e("Eye",g);/**
52
52
  * @license lucide-react v0.475.0 - ISC
53
53
  *
54
54
  * This source code is licensed under the ISC license.
55
55
  * See the LICENSE file in the root directory of this source tree.
56
- */const f=[["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"}]],o2=e("FilePlus",f);/**
56
+ */const u=[["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"}]],c2=e("FilePlus",u);/**
57
57
  * @license lucide-react v0.475.0 - ISC
58
58
  *
59
59
  * This source code is licensed under the ISC license.
60
60
  * See the LICENSE file in the root directory of this source tree.
61
- */const g=[["path",{d:"M12 17h.01",key:"p32p05"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}],["path",{d:"M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3",key:"mhlwft"}]],c2=e("FileQuestion",g);/**
61
+ */const f=[["path",{d:"M12 17h.01",key:"p32p05"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}],["path",{d:"M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3",key:"mhlwft"}]],n2=e("FileQuestion",f);/**
62
62
  * @license lucide-react v0.475.0 - ISC
63
63
  *
64
64
  * This source code is licensed under the ISC license.
65
65
  * See the LICENSE file in the root directory of this source tree.
66
- */const w=[["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"}]],n2=e("FileText",w);/**
66
+ */const w=[["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"}]],s2=e("FileText",w);/**
67
67
  * @license lucide-react v0.475.0 - ISC
68
68
  *
69
69
  * This source code is licensed under the ISC license.
70
70
  * See the LICENSE file in the root directory of this source tree.
71
- */const q=[["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"}]],s2=e("File",q);/**
71
+ */const q=[["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"}]],h2=e("File",q);/**
72
72
  * @license lucide-react v0.475.0 - ISC
73
73
  *
74
74
  * This source code is licensed under the ISC license.
75
75
  * See the LICENSE file in the root directory of this source tree.
76
- */const C=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"M2 10h20",key:"1ir3d8"}]],h2=e("FolderClosed",C);/**
76
+ */const C=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"M2 10h20",key:"1ir3d8"}]],d2=e("FolderClosed",C);/**
77
77
  * @license lucide-react v0.475.0 - ISC
78
78
  *
79
79
  * This source code is licensed under the ISC license.
80
80
  * See the LICENSE file in the root directory of this source tree.
81
- */const b=[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]],d2=e("FolderOpen",b);/**
81
+ */const b=[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]],i2=e("FolderOpen",b);/**
82
82
  * @license lucide-react v0.475.0 - ISC
83
83
  *
84
84
  * This source code is licensed under the ISC license.
@@ -88,100 +88,105 @@ import{r as s}from"./vendor-react-BoIQBqDW.js";/**
88
88
  *
89
89
  * This source code is licensed under the ISC license.
90
90
  * See the LICENSE file in the root directory of this source tree.
91
- */const P=[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["path",{d:"M11 18H8a2 2 0 0 1-2-2V9",key:"19pyzm"}]],i2=e("GitCompare",P);/**
91
+ */const P=[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["path",{d:"M11 18H8a2 2 0 0 1-2-2V9",key:"19pyzm"}]],l2=e("GitCompare",P);/**
92
92
  * @license lucide-react v0.475.0 - ISC
93
93
  *
94
94
  * This source code is licensed under the ISC license.
95
95
  * See the LICENSE file in the root directory of this source tree.
96
- */const H=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],l2=e("Globe",H);/**
96
+ */const H=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],y2=e("Globe",H);/**
97
97
  * @license lucide-react v0.475.0 - ISC
98
98
  *
99
99
  * This source code is licensed under the ISC license.
100
100
  * See the LICENSE file in the root directory of this source tree.
101
- */const z=[["path",{d:"M21 12h-8",key:"1bmf0i"}],["path",{d:"M21 6H8",key:"1pqkrb"}],["path",{d:"M21 18h-8",key:"1tm79t"}],["path",{d:"M3 6v4c0 1.1.9 2 2 2h3",key:"1ywdgy"}],["path",{d:"M3 10v6c0 1.1.9 2 2 2h3",key:"2wc746"}]],y2=e("ListTree",z);/**
101
+ */const z=[["path",{d:"M21 12h-8",key:"1bmf0i"}],["path",{d:"M21 6H8",key:"1pqkrb"}],["path",{d:"M21 18h-8",key:"1tm79t"}],["path",{d:"M3 6v4c0 1.1.9 2 2 2h3",key:"1ywdgy"}],["path",{d:"M3 10v6c0 1.1.9 2 2 2h3",key:"2wc746"}]],p2=e("ListTree",z);/**
102
102
  * @license lucide-react v0.475.0 - ISC
103
103
  *
104
104
  * This source code is licensed under the ISC license.
105
105
  * See the LICENSE file in the root directory of this source tree.
106
- */const F=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],p2=e("LoaderCircle",F);/**
106
+ */const F=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],k2=e("LoaderCircle",F);/**
107
107
  * @license lucide-react v0.475.0 - ISC
108
108
  *
109
109
  * This source code is licensed under the ISC license.
110
110
  * See the LICENSE file in the root directory of this source tree.
111
- */const V=[["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"}]],k2=e("MessageSquare",V);/**
111
+ */const V=[["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"}]],_2=e("MessageSquare",V);/**
112
112
  * @license lucide-react v0.475.0 - ISC
113
113
  *
114
114
  * This source code is licensed under the ISC license.
115
115
  * See the LICENSE file in the root directory of this source tree.
116
- */const R=[["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"}]],_2=e("PanelLeftClose",R);/**
116
+ */const R=[["polygon",{points:"3 11 22 2 13 21 11 13 3 11",key:"1ltx0t"}]],m2=e("Navigation",R);/**
117
117
  * @license lucide-react v0.475.0 - ISC
118
118
  *
119
119
  * This source code is licensed under the ISC license.
120
120
  * See the LICENSE file in the root directory of this source tree.
121
- */const S=[["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"}]],m2=e("PanelLeftOpen",S);/**
121
+ */const S=[["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"}]],M2=e("PanelLeftClose",S);/**
122
122
  * @license lucide-react v0.475.0 - ISC
123
123
  *
124
124
  * This source code is licensed under the ISC license.
125
125
  * See the LICENSE file in the root directory of this source tree.
126
- */const A=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m8 9 3 3-3 3",key:"12hl5m"}]],M2=e("PanelRightClose",A);/**
126
+ */const A=[["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"}]],v2=e("PanelLeftOpen",A);/**
127
127
  * @license lucide-react v0.475.0 - ISC
128
128
  *
129
129
  * This source code is licensed under the ISC license.
130
130
  * See the LICENSE file in the root directory of this source tree.
131
- */const E=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m10 15-3-3 3-3",key:"1pgupc"}]],v2=e("PanelRightOpen",E);/**
131
+ */const E=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m8 9 3 3-3 3",key:"12hl5m"}]],x2=e("PanelRightClose",E);/**
132
132
  * @license lucide-react v0.475.0 - ISC
133
133
  *
134
134
  * This source code is licensed under the ISC license.
135
135
  * See the LICENSE file in the root directory of this source tree.
136
- */const T=[["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"}]],x2=e("Paperclip",T);/**
136
+ */const T=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m10 15-3-3 3-3",key:"1pgupc"}]],N2=e("PanelRightOpen",T);/**
137
137
  * @license lucide-react v0.475.0 - ISC
138
138
  *
139
139
  * This source code is licensed under the ISC license.
140
140
  * See the LICENSE file in the root directory of this source tree.
141
- */const O=[["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"}]],$2=e("Pencil",O);/**
141
+ */const O=[["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"}]],$2=e("Paperclip",O);/**
142
142
  * @license lucide-react v0.475.0 - ISC
143
143
  *
144
144
  * This source code is licensed under the ISC license.
145
145
  * See the LICENSE file in the root directory of this source tree.
146
- */const j=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],u2=e("Plus",j);/**
146
+ */const j=[["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"}]],g2=e("Pencil",j);/**
147
147
  * @license lucide-react v0.475.0 - ISC
148
148
  *
149
149
  * This source code is licensed under the ISC license.
150
150
  * See the LICENSE file in the root directory of this source tree.
151
- */const Z=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],N2=e("RotateCw",Z);/**
151
+ */const Z=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],u2=e("Plus",Z);/**
152
152
  * @license lucide-react v0.475.0 - ISC
153
153
  *
154
154
  * This source code is licensed under the ISC license.
155
155
  * See the LICENSE file in the root directory of this source tree.
156
- */const G=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]],f2=e("Search",G);/**
156
+ */const G=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],f2=e("RotateCw",G);/**
157
157
  * @license lucide-react v0.475.0 - ISC
158
158
  *
159
159
  * This source code is licensed under the ISC license.
160
160
  * See the LICENSE file in the root directory of this source tree.
161
- */const U=[["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"}]],g2=e("Send",U);/**
161
+ */const U=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]],w2=e("Search",U);/**
162
162
  * @license lucide-react v0.475.0 - ISC
163
163
  *
164
164
  * This source code is licensed under the ISC license.
165
165
  * See the LICENSE file in the root directory of this source tree.
166
- */const B=[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]],w2=e("SquareTerminal",B);/**
166
+ */const B=[["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"}]],q2=e("Send",B);/**
167
167
  * @license lucide-react v0.475.0 - ISC
168
168
  *
169
169
  * This source code is licensed under the ISC license.
170
170
  * See the LICENSE file in the root directory of this source tree.
171
- */const D=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],q2=e("Square",D);/**
171
+ */const D=[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]],C2=e("SquareTerminal",D);/**
172
172
  * @license lucide-react v0.475.0 - ISC
173
173
  *
174
174
  * This source code is licensed under the ISC license.
175
175
  * See the LICENSE file in the root directory of this source tree.
176
- */const I=[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]],C2=e("Terminal",I);/**
176
+ */const I=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],b2=e("Square",I);/**
177
177
  * @license lucide-react v0.475.0 - ISC
178
178
  *
179
179
  * This source code is licensed under the ISC license.
180
180
  * See the LICENSE file in the root directory of this source tree.
181
- */const Q=[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]],b2=e("Upload",Q);/**
181
+ */const Q=[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]],L2=e("Terminal",Q);/**
182
182
  * @license lucide-react v0.475.0 - ISC
183
183
  *
184
184
  * This source code is licensed under the ISC license.
185
185
  * See the LICENSE file in the root directory of this source tree.
186
- */const X=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],L2=e("X",X);export{W as A,e2 as C,t2 as E,h2 as F,i2 as G,p2 as L,k2 as M,m2 as P,N2 as R,w2 as S,C2 as T,b2 as U,L2 as X,_2 as a,v2 as b,M2 as c,Y as d,u2 as e,d2 as f,n2 as g,r2 as h,s2 as i,J as j,y2 as k,l2 as l,f2 as m,o2 as n,$2 as o,a2 as p,x2 as q,g2 as r,q2 as s,c2 as t};
187
- //# sourceMappingURL=vendor-icons-DwowToH7.js.map
186
+ */const X=[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]],P2=e("Upload",X);/**
187
+ * @license lucide-react v0.475.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 K=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],H2=e("X",K);export{J as A,t2 as C,a2 as E,d2 as F,l2 as G,k2 as L,_2 as M,m2 as N,v2 as P,f2 as R,C2 as S,L2 as T,P2 as U,H2 as X,M2 as a,N2 as b,x2 as c,e2 as d,u2 as e,i2 as f,s2 as g,r2 as h,h2 as i,Y as j,p2 as k,y2 as l,w2 as m,c2 as n,g2 as o,o2 as p,$2 as q,q2 as r,b2 as s,n2 as t};
192
+ //# sourceMappingURL=vendor-icons-BJD_eLBz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vendor-icons-BJD_eLBz.js","sources":["../../../node_modules/lucide-react/dist/esm/shared/src/utils.js","../../../node_modules/lucide-react/dist/esm/defaultAttributes.js","../../../node_modules/lucide-react/dist/esm/Icon.js","../../../node_modules/lucide-react/dist/esm/createLucideIcon.js","../../../node_modules/lucide-react/dist/esm/icons/arrow-up.js","../../../node_modules/lucide-react/dist/esm/icons/check.js","../../../node_modules/lucide-react/dist/esm/icons/chevron-down.js","../../../node_modules/lucide-react/dist/esm/icons/chevron-right.js","../../../node_modules/lucide-react/dist/esm/icons/ellipsis-vertical.js","../../../node_modules/lucide-react/dist/esm/icons/eye.js","../../../node_modules/lucide-react/dist/esm/icons/file-plus.js","../../../node_modules/lucide-react/dist/esm/icons/file-question.js","../../../node_modules/lucide-react/dist/esm/icons/file-text.js","../../../node_modules/lucide-react/dist/esm/icons/file.js","../../../node_modules/lucide-react/dist/esm/icons/folder-closed.js","../../../node_modules/lucide-react/dist/esm/icons/folder-open.js","../../../node_modules/lucide-react/dist/esm/icons/folder.js","../../../node_modules/lucide-react/dist/esm/icons/git-compare.js","../../../node_modules/lucide-react/dist/esm/icons/globe.js","../../../node_modules/lucide-react/dist/esm/icons/list-tree.js","../../../node_modules/lucide-react/dist/esm/icons/loader-circle.js","../../../node_modules/lucide-react/dist/esm/icons/message-square.js","../../../node_modules/lucide-react/dist/esm/icons/navigation.js","../../../node_modules/lucide-react/dist/esm/icons/panel-left-close.js","../../../node_modules/lucide-react/dist/esm/icons/panel-left-open.js","../../../node_modules/lucide-react/dist/esm/icons/panel-right-close.js","../../../node_modules/lucide-react/dist/esm/icons/panel-right-open.js","../../../node_modules/lucide-react/dist/esm/icons/paperclip.js","../../../node_modules/lucide-react/dist/esm/icons/pencil.js","../../../node_modules/lucide-react/dist/esm/icons/plus.js","../../../node_modules/lucide-react/dist/esm/icons/rotate-cw.js","../../../node_modules/lucide-react/dist/esm/icons/search.js","../../../node_modules/lucide-react/dist/esm/icons/send.js","../../../node_modules/lucide-react/dist/esm/icons/square-terminal.js","../../../node_modules/lucide-react/dist/esm/icons/square.js","../../../node_modules/lucide-react/dist/esm/icons/terminal.js","../../../node_modules/lucide-react/dist/esm/icons/upload.js","../../../node_modules/lucide-react/dist/esm/icons/x.js"],"sourcesContent":["/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\n\nexport { mergeClasses, toKebabCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => {\n return createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n );\n }\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props\n })\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m5 12 7-7 7 7\", key: \"hav0vg\" }],\n [\"path\", { d: \"M12 19V5\", key: \"x0mq9r\" }]\n];\nconst ArrowUp = createLucideIcon(\"ArrowUp\", __iconNode);\n\nexport { __iconNode, ArrowUp as default };\n//# sourceMappingURL=arrow-up.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]];\nconst Check = createLucideIcon(\"Check\", __iconNode);\n\nexport { __iconNode, Check as default };\n//# sourceMappingURL=check.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]];\nconst ChevronDown = createLucideIcon(\"ChevronDown\", __iconNode);\n\nexport { __iconNode, ChevronDown as default };\n//# sourceMappingURL=chevron-down.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]];\nconst ChevronRight = createLucideIcon(\"ChevronRight\", __iconNode);\n\nexport { __iconNode, ChevronRight as default };\n//# sourceMappingURL=chevron-right.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"1\", key: \"41hilf\" }],\n [\"circle\", { cx: \"12\", cy: \"5\", r: \"1\", key: \"gxeob9\" }],\n [\"circle\", { cx: \"12\", cy: \"19\", r: \"1\", key: \"lyex9k\" }]\n];\nconst EllipsisVertical = createLucideIcon(\"EllipsisVertical\", __iconNode);\n\nexport { __iconNode, EllipsisVertical as default };\n//# sourceMappingURL=ellipsis-vertical.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n 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\",\n key: \"1nclc0\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n];\nconst Eye = createLucideIcon(\"Eye\", __iconNode);\n\nexport { __iconNode, Eye as default };\n//# sourceMappingURL=eye.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"path\", { d: \"M9 15h6\", key: \"cctwl0\" }],\n [\"path\", { d: \"M12 18v-6\", key: \"17g6i2\" }]\n];\nconst FilePlus = createLucideIcon(\"FilePlus\", __iconNode);\n\nexport { __iconNode, FilePlus as default };\n//# sourceMappingURL=file-plus.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }],\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z\", key: \"1mlx9k\" }],\n [\"path\", { d: \"M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3\", key: \"mhlwft\" }]\n];\nconst FileQuestion = createLucideIcon(\"FileQuestion\", __iconNode);\n\nexport { __iconNode, FileQuestion as default };\n//# sourceMappingURL=file-question.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"path\", { d: \"M10 9H8\", key: \"b1mrlr\" }],\n [\"path\", { d: \"M16 13H8\", key: \"t4e002\" }],\n [\"path\", { d: \"M16 17H8\", key: \"z1uh3a\" }]\n];\nconst FileText = createLucideIcon(\"FileText\", __iconNode);\n\nexport { __iconNode, FileText as default };\n//# sourceMappingURL=file-text.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }]\n];\nconst File = createLucideIcon(\"File\", __iconNode);\n\nexport { __iconNode, File as default };\n//# sourceMappingURL=file.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\",\n key: \"1kt360\"\n }\n ],\n [\"path\", { d: \"M2 10h20\", key: \"1ir3d8\" }]\n];\nconst FolderClosed = createLucideIcon(\"FolderClosed\", __iconNode);\n\nexport { __iconNode, FolderClosed as default };\n//# sourceMappingURL=folder-closed.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2\",\n key: \"usdka0\"\n }\n ]\n];\nconst FolderOpen = createLucideIcon(\"FolderOpen\", __iconNode);\n\nexport { __iconNode, FolderOpen as default };\n//# sourceMappingURL=folder-open.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\",\n key: \"1kt360\"\n }\n ]\n];\nconst Folder = createLucideIcon(\"Folder\", __iconNode);\n\nexport { __iconNode, Folder as default };\n//# sourceMappingURL=folder.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"18\", cy: \"18\", r: \"3\", key: \"1xkwt0\" }],\n [\"circle\", { cx: \"6\", cy: \"6\", r: \"3\", key: \"1lh9wr\" }],\n [\"path\", { d: \"M13 6h3a2 2 0 0 1 2 2v7\", key: \"1yeb86\" }],\n [\"path\", { d: \"M11 18H8a2 2 0 0 1-2-2V9\", key: \"19pyzm\" }]\n];\nconst GitCompare = createLucideIcon(\"GitCompare\", __iconNode);\n\nexport { __iconNode, GitCompare as default };\n//# sourceMappingURL=git-compare.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\", key: \"13o1zl\" }],\n [\"path\", { d: \"M2 12h20\", key: \"9i4pu4\" }]\n];\nconst Globe = createLucideIcon(\"Globe\", __iconNode);\n\nexport { __iconNode, Globe as default };\n//# sourceMappingURL=globe.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M21 12h-8\", key: \"1bmf0i\" }],\n [\"path\", { d: \"M21 6H8\", key: \"1pqkrb\" }],\n [\"path\", { d: \"M21 18h-8\", key: \"1tm79t\" }],\n [\"path\", { d: \"M3 6v4c0 1.1.9 2 2 2h3\", key: \"1ywdgy\" }],\n [\"path\", { d: \"M3 10v6c0 1.1.9 2 2 2h3\", key: \"2wc746\" }]\n];\nconst ListTree = createLucideIcon(\"ListTree\", __iconNode);\n\nexport { __iconNode, ListTree as default };\n//# sourceMappingURL=list-tree.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"M21 12a9 9 0 1 1-6.219-8.56\", key: \"13zald\" }]];\nconst LoaderCircle = createLucideIcon(\"LoaderCircle\", __iconNode);\n\nexport { __iconNode, LoaderCircle as default };\n//# sourceMappingURL=loader-circle.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"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\" }]\n];\nconst MessageSquare = createLucideIcon(\"MessageSquare\", __iconNode);\n\nexport { __iconNode, MessageSquare as default };\n//# sourceMappingURL=message-square.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"polygon\", { points: \"3 11 22 2 13 21 11 13 3 11\", key: \"1ltx0t\" }]\n];\nconst Navigation = createLucideIcon(\"Navigation\", __iconNode);\n\nexport { __iconNode, Navigation as default };\n//# sourceMappingURL=navigation.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }],\n [\"path\", { d: \"m16 15-3-3 3-3\", key: \"14y99z\" }]\n];\nconst PanelLeftClose = createLucideIcon(\"PanelLeftClose\", __iconNode);\n\nexport { __iconNode, PanelLeftClose as default };\n//# sourceMappingURL=panel-left-close.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }],\n [\"path\", { d: \"m14 9 3 3-3 3\", key: \"8010ee\" }]\n];\nconst PanelLeftOpen = createLucideIcon(\"PanelLeftOpen\", __iconNode);\n\nexport { __iconNode, PanelLeftOpen as default };\n//# sourceMappingURL=panel-left-open.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M15 3v18\", key: \"14nvp0\" }],\n [\"path\", { d: \"m8 9 3 3-3 3\", key: \"12hl5m\" }]\n];\nconst PanelRightClose = createLucideIcon(\"PanelRightClose\", __iconNode);\n\nexport { __iconNode, PanelRightClose as default };\n//# sourceMappingURL=panel-right-close.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M15 3v18\", key: \"14nvp0\" }],\n [\"path\", { d: \"m10 15-3-3 3-3\", key: \"1pgupc\" }]\n];\nconst PanelRightOpen = createLucideIcon(\"PanelRightOpen\", __iconNode);\n\nexport { __iconNode, PanelRightOpen as default };\n//# sourceMappingURL=panel-right-open.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M13.234 20.252 21 12.3\", key: \"1cbrk9\" }],\n [\n \"path\",\n {\n 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\",\n key: \"1pkts6\"\n }\n ]\n];\nconst Paperclip = createLucideIcon(\"Paperclip\", __iconNode);\n\nexport { __iconNode, Paperclip as default };\n//# sourceMappingURL=paperclip.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n 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\",\n key: \"1a8usu\"\n }\n ],\n [\"path\", { d: \"m15 5 4 4\", key: \"1mk7zo\" }]\n];\nconst Pencil = createLucideIcon(\"Pencil\", __iconNode);\n\nexport { __iconNode, Pencil as default };\n//# sourceMappingURL=pencil.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"M12 5v14\", key: \"s699le\" }]\n];\nconst Plus = createLucideIcon(\"Plus\", __iconNode);\n\nexport { __iconNode, Plus as default };\n//# sourceMappingURL=plus.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8\", key: \"1p45f6\" }],\n [\"path\", { d: \"M21 3v5h-5\", key: \"1q7to0\" }]\n];\nconst RotateCw = createLucideIcon(\"RotateCw\", __iconNode);\n\nexport { __iconNode, RotateCw as default };\n//# sourceMappingURL=rotate-cw.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"11\", cy: \"11\", r: \"8\", key: \"4ej97u\" }],\n [\"path\", { d: \"m21 21-4.3-4.3\", key: \"1qie3q\" }]\n];\nconst Search = createLucideIcon(\"Search\", __iconNode);\n\nexport { __iconNode, Search as default };\n//# sourceMappingURL=search.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n 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\",\n key: \"1ffxy3\"\n }\n ],\n [\"path\", { d: \"m21.854 2.147-10.94 10.939\", key: \"12cjpa\" }]\n];\nconst Send = createLucideIcon(\"Send\", __iconNode);\n\nexport { __iconNode, Send as default };\n//# sourceMappingURL=send.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m7 11 2-2-2-2\", key: \"1lz0vl\" }],\n [\"path\", { d: \"M11 13h4\", key: \"1p7l4v\" }],\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", ry: \"2\", key: \"1m3agn\" }]\n];\nconst SquareTerminal = createLucideIcon(\"SquareTerminal\", __iconNode);\n\nexport { __iconNode, SquareTerminal as default };\n//# sourceMappingURL=square-terminal.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }]\n];\nconst Square = createLucideIcon(\"Square\", __iconNode);\n\nexport { __iconNode, Square as default };\n//# sourceMappingURL=square.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"polyline\", { points: \"4 17 10 11 4 5\", key: \"akl6gq\" }],\n [\"line\", { x1: \"12\", x2: \"20\", y1: \"19\", y2: \"19\", key: \"q2wloq\" }]\n];\nconst Terminal = createLucideIcon(\"Terminal\", __iconNode);\n\nexport { __iconNode, Terminal as default };\n//# sourceMappingURL=terminal.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\", key: \"ih7n3h\" }],\n [\"polyline\", { points: \"17 8 12 3 7 8\", key: \"t8dd8p\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"3\", y2: \"15\", key: \"widbto\" }]\n];\nconst Upload = createLucideIcon(\"Upload\", __iconNode);\n\nexport { __iconNode, Upload as default };\n//# sourceMappingURL=upload.js.map\n","/**\n * @license lucide-react v0.475.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"X\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.js.map\n"],"names":["toKebabCase","string","mergeClasses","classes","className","index","array","defaultAttributes","Icon","forwardRef","color","size","strokeWidth","absoluteStrokeWidth","children","iconNode","rest","ref","createElement","tag","attrs","createLucideIcon","iconName","Component","props","__iconNode","ArrowUp","Check","ChevronDown","ChevronRight","EllipsisVertical","Eye","FilePlus","FileQuestion","FileText","File","FolderClosed","FolderOpen","Folder","GitCompare","Globe","ListTree","LoaderCircle","MessageSquare","Navigation","PanelLeftClose","PanelLeftOpen","PanelRightClose","PanelRightOpen","Paperclip","Pencil","Plus","RotateCw","Search","Send","SquareTerminal","Square","Terminal","Upload","X"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]}
@@ -4,13 +4,13 @@
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
6
  <title>Pi-Studio</title>
7
- <script type="module" crossorigin src="/assets/index-Dq-7k_5T.js"></script>
7
+ <script type="module" crossorigin src="/assets/index-B_Wls_vp.js"></script>
8
8
  <link rel="modulepreload" crossorigin href="/assets/vendor-react-BoIQBqDW.js">
9
9
  <link rel="modulepreload" crossorigin href="/assets/vendor-query-AtKBh_Yt.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/vendor-markdown-B8HSIhaA.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/vendor-highlight-DCzuSv8g.js">
12
12
  <link rel="modulepreload" crossorigin href="/assets/vendor--os7hw7d.js">
13
- <link rel="modulepreload" crossorigin href="/assets/vendor-icons-DwowToH7.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/vendor-icons-BJD_eLBz.js">
14
14
  <link rel="modulepreload" crossorigin href="/assets/vendor-overlays-UwLNGk04.js">
15
15
  <link rel="modulepreload" crossorigin href="/assets/vendor-dnd-D9kA7FgH.js">
16
16
  <link rel="stylesheet" crossorigin href="/assets/index-ZP_-GPM5.css">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@av-pi-studio/web-client",
3
- "version": "0.0.31",
3
+ "version": "0.0.33",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -14,8 +14,8 @@
14
14
  "clean": "rm -rf dist *.tsbuildinfo"
15
15
  },
16
16
  "dependencies": {
17
- "@av-pi-studio/client": "^0.0.31",
18
- "@av-pi-studio/protocol": "^0.0.31",
17
+ "@av-pi-studio/client": "^0.0.33",
18
+ "@av-pi-studio/protocol": "^0.0.33",
19
19
  "@codemirror/language": "^6.12.4",
20
20
  "@codemirror/language-data": "^6.5.2",
21
21
  "@codemirror/state": "^6.7.1",
@@ -1,3 +0,0 @@
1
- import{j as t,r as h}from"./vendor-react-BoIQBqDW.js";import{c as z,d as ee,m as te}from"./vendor-query-AtKBh_Yt.js";import{t as M,u as x,a as O,D as ne,T as se,B as S}from"./index-Dq-7k_5T.js";import{k as re,l as ae,m as oe,n as ie,o as le,p as ce,T as U,C as ue,q as de,r as me,s as he}from"./vendor-icons-DwowToH7.js";import{M as H}from"./markdown-D9FuaV1m.js";import{C}from"./vendor--os7hw7d.js";import{D as ge}from"./DiffView-DlVCPvLc.js";import"./vendor-overlays-UwLNGk04.js";import"./vendor-dnd-D9kA7FgH.js";import"./vendor-highlight-DCzuSv8g.js";import"./vendor-markdown-B8HSIhaA.js";const pe="_badge_jtokc_3",_e={badge:pe};function fe(e){switch(e){case"success":return{token:"statusSuccess"};case"error":return{token:"statusDanger"};case"muted":return{token:"foregroundMuted"}}}function xe({label:e,variant:n,className:s}){const{token:i}=fe(n),a=`var(--pi-color-${i})`;return t.jsx("span",{className:`${_e.badge}${s?` ${s}`:""}`,style:{backgroundColor:`color-mix(in srgb, ${a} 18%, transparent)`,borderColor:`color-mix(in srgb, ${a} 45%, transparent)`,color:a},children:e})}const ye={shell:U,read:ce,edit:le,write:ie,search:oe,fetch:ae,task:re};function je(e){return ye[e.kind]??U}function ve(e){return e.kind}function ke(e){switch(e.kind){case"read":case"write":case"edit":return e.path??null;default:return null}}function be(e){return e.kind==="write"||e.kind==="edit"||e.kind==="shell"}function we(e){const n=[];if(e.kind==="edit"&&e.diff)n.push({kind:"diff",patch:e.diff});else{const s=M(e);s&&n.push({kind:"code",text:s})}return e.output&&n.push({kind:"code",text:e.output}),n}function Ne(e){const n=M(e);if(!n)return"";switch(e.kind){case"read":case"write":case"edit":{const s=n.split("/");return s[s.length-1]||n}case"shell":return n.split(`
2
- `,1)[0]??n;default:return n}}const Ie=500;let D;function Se(e,n,s,i){clearTimeout(D),D=setTimeout(()=>{D=void 0,e.invalidateQueries({queryKey:["file"]}),e.invalidateQueries({queryKey:["explorer"]}),n&&s&&n.connection.request("checkout_refresh_request",{cwd:s}).catch(()=>{})},Ie)}function Ce(e){let n=null;return s=>{if(n===null){if(s.event.kind!=="user_message"||s.event.messageId!==e)return!1;n=s.agentId}return s.agentId===n}}function L({sessionId:e,event:n,client:s,queryClient:i}){const a=x.getState();switch(a.applyStreamEvent(e,n),n.kind){case"turn_started":a.setStatus(e,"running");break;case"turn_completed":a.setStatus(e,"idle");break;case"turn_failed":a.setStatus(e,"error");break;case"turn_canceled":a.setStatus(e,"idle");break;case"tool_call":{if(n.status==="completed"&&be(n.tool)){const c=a.sessions[e],u=(c==null?void 0:c.cwd)||null;Se(i,s,u,ke(n.tool))}break}}}function De(e){const n=O(a=>a.client),s=x(a=>{var c;return((c=a.sessions[e])==null?void 0:c.agentId)??null}),i=z();h.useEffect(()=>!n||!s?void 0:n.agent(s).timeline.subscribe(c=>{L({sessionId:e,event:c,client:n,queryClient:i})}),[n,s,e,i])}const Te="_row_10uhr_3",$e="_who_10uhr_13",Ee="_user_10uhr_24",Re="_userPending_10uhr_31",Ae="_userFailed_10uhr_35",Be="_userImages_10uhr_41",Fe="_userImage_10uhr_41",Pe="_imageDialog_10uhr_57",ze="_imageDialogPreview_10uhr_61",Me="_assistant_10uhr_70",Oe="_streaming_10uhr_77",Ue="_streamingText_10uhr_81",He="_cursor_10uhr_86",Le="_blink_10uhr_1",Ke="_reasoning_10uhr_101",qe="_tool_10uhr_111",We="_toolHeader_10uhr_121",Ge="_toolChevron_10uhr_139",Ve="_toolChevronOpen_10uhr_145",Qe="_toolInlineDetail_10uhr_149",Xe="_toolBody_10uhr_159",Ye="_toolCode_10uhr_165",Je="_toolIcon_10uhr_176",Ze="_running_10uhr_182",et="_pulse_10uhr_1",tt="_completed_10uhr_187",nt="_error_10uhr_191",st="_toolLabel_10uhr_201",rt="_toolBadge_10uhr_206",at="_system_10uhr_219",r={row:Te,who:$e,user:Ee,userPending:Re,userFailed:Ae,userImages:Be,userImage:Fe,imageDialog:Pe,imageDialogPreview:ze,assistant:Me,streaming:Oe,streamingText:Ue,cursor:He,blink:Le,reasoning:Ke,tool:qe,toolHeader:We,toolChevron:Ge,toolChevronOpen:Ve,toolInlineDetail:Qe,toolBody:Xe,toolCode:Ye,toolIcon:Je,running:Ze,pulse:et,completed:tt,error:nt,toolLabel:st,toolBadge:rt,system:at};function ot({row:e}){return t.jsxs("div",{className:`${r.row} ${r.assistant}${e.streaming?` ${r.streaming}`:""}`,children:[t.jsx("span",{className:r.who,children:"assistant"}),e.streaming?t.jsxs("span",{className:r.streamingText,children:[e.text,t.jsx("span",{className:r.cursor,children:"▍"})]}):t.jsx(H,{text:e.text})]})}function it({row:e}){return t.jsxs("div",{className:`${r.row} ${r.reasoning}`,children:[t.jsx("span",{className:r.who,children:"thinking"}),e.streaming?t.jsxs("span",{className:r.streamingText,children:[e.text,t.jsx("span",{className:r.cursor,children:"▍"})]}):t.jsx(H,{text:e.text})]})}const lt={running:"muted",completed:"success",error:"error"};function ct({row:e}){const[n,s]=h.useState(!1),i=je(e.tool),a=Ne(e.tool),c=we(e.tool),u=c.length>0;return t.jsxs("div",{className:C(r.row,r.tool),children:[t.jsxs("button",{type:"button",className:r.toolHeader,onClick:()=>u&&s(d=>!d),"aria-expanded":u?n:void 0,disabled:!u,children:[u&&t.jsx(ue,{size:12,className:C(r.toolChevron,n&&r.toolChevronOpen)}),t.jsx("span",{className:C(r.toolIcon,r[e.status]),children:t.jsx(i,{size:14})}),t.jsx("span",{className:r.toolLabel,children:ve(e.tool)}),a&&t.jsx("span",{className:r.toolInlineDetail,title:a,children:a}),t.jsx(xe,{className:r.toolBadge,label:e.status,variant:lt[e.status]})]}),n&&u&&t.jsx("div",{className:r.toolBody,children:c.map((d,l)=>d.kind==="diff"?t.jsx(ge,{patch:d.patch},l):t.jsx("pre",{className:r.toolCode,children:d.text},l))})]})}function ut({row:e}){const[n,s]=h.useState(null),i=e.failed?r.userFailed:e.pending?r.userPending:"";return t.jsxs("div",{className:`${r.row} ${r.user}${i?` ${i}`:""}`,children:[t.jsxs("span",{className:r.who,children:["you",e.failed?" · failed to send":""]}),e.text,e.images&&e.images.length>0&&t.jsx("div",{className:r.userImages,children:e.images.map((a,c)=>{const u=`data:${a.mimeType??"image/png"};base64,${a.data??""}`;return t.jsx("img",{className:r.userImage,src:u,alt:"",role:"button",tabIndex:0,onClick:()=>s(u),onKeyDown:d=>{(d.key==="Enter"||d.key===" ")&&s(u)}},c)})}),t.jsx(ne,{open:n!==null,onOpenChange:a=>{a||s(null)},title:"Image",width:"auto",bare:!0,className:r.imageDialog,children:n&&t.jsx("img",{className:r.imageDialogPreview,src:n,alt:""})})]})}function dt({row:e}){return t.jsxs("div",{className:`${r.row} ${r.error}`,children:[t.jsx("span",{className:r.who,children:"error"}),e.text]})}function mt({row:e}){return t.jsx("div",{className:`${r.row} ${r.system}`,children:e.text})}const ht="_viewport_1byko_3",gt="_inner_1byko_10",pt="_rowWrap_1byko_15",_t="_empty_1byko_25",ft="_working_1byko_34",xt="_workingDots_1byko_43",f={viewport:ht,inner:gt,rowWrap:pt,empty:_t,working:ft,workingDots:xt},yt=40;function jt(e){switch(e.kind){case"user":return t.jsx(ut,{row:e});case"assistant":return t.jsx(ot,{row:e});case"reasoning":return t.jsx(it,{row:e});case"tool":return t.jsx(ct,{row:e});case"error":return t.jsx(dt,{row:e});case"system":return t.jsx(mt,{row:e})}}function vt({session:e}){const n=e.timeline.rows,s=e.status==="running",i=h.useRef(null),a=h.useRef(!0),c=h.useRef(0),u=ee({count:n.length,getScrollElement:()=>i.current,estimateSize:()=>48,overscan:8,getItemKey:l=>{var m;return((m=n[l])==null?void 0:m.id)??l},measureElement:(l,m,p)=>{if(l.offsetParent!==null)return te(l,m,p);const y=p.indexFromElement(l),w=p.options.getItemKey(y);return p.itemSizeCache.get(w)??p.options.estimateSize(y)}});function d(){const l=i.current;if(!l)return;const m=l.scrollHeight-l.scrollTop-l.clientHeight;a.current=m<yt}return h.useEffect(()=>{const l=n.length>c.current;c.current=n.length,l&&a.current&&u.scrollToIndex(n.length-1,{align:"end"})},[n.length,u]),n.length===0?t.jsx("div",{className:f.viewport,ref:i,children:s?t.jsxs("div",{className:f.working,role:"status","aria-live":"polite",children:[t.jsxs("span",{className:f.workingDots,"aria-hidden":"true",children:[t.jsx("span",{}),t.jsx("span",{}),t.jsx("span",{})]}),"Agent is working…"]}):t.jsx("div",{className:f.empty,children:"No messages yet — say something to start."})}):t.jsxs("div",{className:f.viewport,ref:i,onScroll:d,children:[t.jsx("div",{className:f.inner,style:{height:u.getTotalSize()},children:u.getVirtualItems().map(l=>{const m=n[l.index];return m?t.jsx("div",{ref:u.measureElement,"data-index":l.index,className:f.rowWrap,style:{transform:`translateY(${l.start}px)`},children:jt(m)},l.key):null})}),s&&t.jsxs("div",{className:f.working,role:"status","aria-live":"polite",children:[t.jsxs("span",{className:f.workingDots,"aria-hidden":"true",children:[t.jsx("span",{}),t.jsx("span",{}),t.jsx("span",{})]}),"Agent is working…"]})]})}const kt="_strip_5sm81_4",bt="_thumb_5sm81_11",wt="_remove_5sm81_28",T={strip:kt,thumb:bt,remove:wt};function Nt({images:e,onRemove:n}){return e.length===0?null:t.jsx("div",{className:T.strip,children:e.map((s,i)=>t.jsxs("div",{className:T.thumb,children:[t.jsx("img",{src:s.thumbUrl,alt:""}),t.jsx("button",{type:"button",className:T.remove,title:"Remove",onClick:()=>n(i),children:"×"})]},i))})}function It(e){const{promise:n,resolve:s,reject:i}=Promise.withResolvers(),a=new FileReader;return a.onload=()=>{const c=a.result;if(typeof c!="string"){i(new Error("Unexpected FileReader result"));return}const u=c.indexOf(","),d=u>=0?c.slice(u+1):c;s({mimeType:e.type,data:d,thumbUrl:c})},a.onerror=()=>i(a.error??new Error("Failed to read file")),a.readAsDataURL(e),n}const St="_composer_1ll3p_1",Ct="_inputArea_1ll3p_13",Dt="_textarea_1ll3p_21",Tt="_attachBtn_1ll3p_28",$t="_hiddenFileInput_1ll3p_32",Et="_actions_1ll3p_36",j={composer:St,inputArea:Ct,textarea:Dt,attachBtn:Tt,hiddenFileInput:$t,actions:Et},Rt=160;function P(e){e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,Rt)}px`}function At(e){return typeof e!="object"||e===null||!("type"in e)||e.type!=="agent_stream"?!1:"agentId"in e&&typeof e.agentId=="string"&&"event"in e}function Bt({sessionId:e}){const n=O(o=>o.client),s=x(o=>o.sessions[e]),i=x(o=>o.bindAgent),a=x(o=>o.addOptimisticUserMessage),c=x(o=>o.markUserMessageFailed),u=x(o=>o.setCwd),d=z(),[l,m]=h.useState(""),[p,y]=h.useState([]),[w,E]=h.useState(!1),N=h.useRef(null),R=h.useRef(null),K=(s==null?void 0:s.status)==="running",q=!!n&&!w&&(l.trim().length>0||p.length>0);async function A(o){if(o.type.startsWith("image/"))try{const g=await It(o);y(_=>[..._,g])}catch{}}function W(o){for(const g of o.target.files??[])A(g);o.target.value=""}function G(o){for(const g of o.clipboardData.items)if(g.type.startsWith("image/")){o.preventDefault();const _=g.getAsFile();_&&A(_)}}function V(o){y(g=>g.filter((_,v)=>v!==o))}function Q(o){m(o.target.value),P(o.target)}function X(o){o.key==="Enter"&&!o.shiftKey&&(o.preventDefault(),B())}async function B(){if(!n||!s||w)return;const o=l.trim();if(!o&&p.length===0)return;m(""),N.current&&P(N.current);const g=p;y([]);const _=o||"Describe this image",v=g.length>0?g.map(b=>({mimeType:b.mimeType,data:b.data})):void 0,k=crypto.randomUUID();a(e,k,_,v),E(!0);try{if(s.agentId)await n.agent(s.agentId).send(_,{clientMessageId:k,images:v});else{const b=s.cwd||"~";u(e,b);const J=Ce(k),Z=n.connection.onSessionMessage(I=>{!At(I)||!J(I)||L({sessionId:e,event:I.event,client:n,queryClient:d})});let F;try{F=await n.createAgent({config:{provider:"pi",cwd:b},initialPrompt:_,clientMessageId:k,images:v,labels:{}})}finally{Z()}i(e,F.agentId)}}catch{c(e,k)}finally{E(!1)}}function Y(){s!=null&&s.agentId&&(n==null||n.agent(s.agentId).interrupt())}return t.jsxs("div",{className:j.composer,children:[t.jsxs("div",{className:j.inputArea,children:[t.jsx(se,{ref:N,className:j.textarea,rows:1,value:l,placeholder:"Ask anything… (Enter to send, Shift+Enter for newline)",onChange:Q,onKeyDown:X,onPaste:G}),t.jsx(Nt,{images:p,onRemove:V})]}),t.jsx(S,{className:j.attachBtn,variant:"ghost",size:"md",iconOnly:!0,title:"Attach image",onClick:()=>{var o;return(o=R.current)==null?void 0:o.click()},children:t.jsx(de,{size:16})}),t.jsx("input",{ref:R,className:j.hiddenFileInput,type:"file",accept:"image/*",multiple:!0,onChange:W}),t.jsxs("div",{className:j.actions,children:[t.jsx(S,{size:"sm",disabled:!q,onClick:()=>void B(),leftIcon:t.jsx(me,{size:14}),children:"Send"}),K&&t.jsx(S,{size:"sm",variant:"destructive",onClick:Y,leftIcon:t.jsx(he,{size:14}),children:"Stop"})]})]})}const Ft="_panel_12s9l_1",Pt="_empty_12s9l_8",$={panel:Ft,empty:Pt};function Qt({tab:e}){const{sessionId:n}=e.data,s=x(i=>i.sessions[n]);return De(n),s?t.jsxs("div",{className:$.panel,children:[t.jsx(vt,{session:s}),t.jsx(Bt,{sessionId:s.id})]}):t.jsx("div",{className:$.panel,children:t.jsx("div",{className:$.empty,children:"Session not found."})})}export{Qt as ChatPanel};
3
- //# sourceMappingURL=ChatPanel-B0g334BE.js.map