@av-pi-studio/web-client 0.0.45 → 0.0.46
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/dist/.tsbuildinfo +1 -1
- package/dist/web/assets/{BinaryFallbackViewer-DN2oT6N7.js → BinaryFallbackViewer-C8VjuRB5.js} +2 -2
- package/dist/web/assets/{BinaryFallbackViewer-DN2oT6N7.js.map → BinaryFallbackViewer-C8VjuRB5.js.map} +1 -1
- package/dist/web/assets/ChatPanel-EEteI2qS.js +3 -0
- package/dist/web/assets/ChatPanel-EEteI2qS.js.map +1 -0
- package/dist/web/assets/{CodeView-DwUKpXwU.js → CodeView-CKUKYQ4A.js} +2 -2
- package/dist/web/assets/{CodeView-DwUKpXwU.js.map → CodeView-CKUKYQ4A.js.map} +1 -1
- package/dist/web/assets/FilePanel-Dg4iw-OH.js +2 -0
- package/dist/web/assets/FilePanel-Dg4iw-OH.js.map +1 -0
- package/dist/web/assets/{ImageViewer-BKflylHn.js → ImageViewer-CiKV0OZI.js} +2 -2
- package/dist/web/assets/{ImageViewer-BKflylHn.js.map → ImageViewer-CiKV0OZI.js.map} +1 -1
- package/dist/web/assets/MarkdownFileViewer-DHWrkv5i.js +2 -0
- package/dist/web/assets/{MarkdownFileViewer-BDmo3la-.js.map → MarkdownFileViewer-DHWrkv5i.js.map} +1 -1
- package/dist/web/assets/{MoleculeViewerPanel-BZA00vSx.js → MoleculeViewerPanel-DS2USK0p.js} +2 -2
- package/dist/web/assets/{MoleculeViewerPanel-BZA00vSx.js.map → MoleculeViewerPanel-DS2USK0p.js.map} +1 -1
- package/dist/web/assets/{TerminalPanel-qx_HdM7y.js → TerminalPanel-qCs6c5HO.js} +2 -2
- package/dist/web/assets/{TerminalPanel-qx_HdM7y.js.map → TerminalPanel-qCs6c5HO.js.map} +1 -1
- package/dist/web/assets/{TextViewer-CDXNfUrU.js → TextViewer-DwAXmSeZ.js} +2 -2
- package/dist/web/assets/{TextViewer-CDXNfUrU.js.map → TextViewer-DwAXmSeZ.js.map} +1 -1
- package/dist/web/assets/{VideoViewer-D4XJC0lT.js → VideoViewer-CIgPlKOT.js} +2 -2
- package/dist/web/assets/{VideoViewer-D4XJC0lT.js.map → VideoViewer-CIgPlKOT.js.map} +1 -1
- package/dist/web/assets/index-CL9Q4aRP.js +3 -0
- package/dist/web/assets/index-CL9Q4aRP.js.map +1 -0
- package/dist/web/assets/markdown-CbV5mRfd.js +2 -0
- package/dist/web/assets/markdown-CbV5mRfd.js.map +1 -0
- package/dist/web/assets/markdown-JJHL50c6.css +1 -0
- package/dist/web/assets/paths--dEDMUm1.js +2 -0
- package/dist/web/assets/paths--dEDMUm1.js.map +1 -0
- package/dist/web/assets/{use-file-download-DsIqcxhB.js → use-file-download-DqpI1O5G.js} +2 -2
- package/dist/web/assets/{use-file-download-DsIqcxhB.js.map → use-file-download-DqpI1O5G.js.map} +1 -1
- package/dist/web/assets/{use-file-watch-ld_2lbTl.js → use-file-watch-ChUc4oqE.js} +2 -2
- package/dist/web/assets/{use-file-watch-ld_2lbTl.js.map → use-file-watch-ChUc4oqE.js.map} +1 -1
- package/dist/web/index.html +1 -1
- package/package.json +3 -3
- package/dist/web/assets/ChatPanel-YUfYdTdZ.js +0 -3
- package/dist/web/assets/ChatPanel-YUfYdTdZ.js.map +0 -1
- package/dist/web/assets/FilePanel-DCZ6Vntr.js +0 -2
- package/dist/web/assets/FilePanel-DCZ6Vntr.js.map +0 -1
- package/dist/web/assets/MarkdownFileViewer-BDmo3la-.js +0 -2
- package/dist/web/assets/index-DneBC_ta.js +0 -3
- package/dist/web/assets/index-DneBC_ta.js.map +0 -1
- package/dist/web/assets/markdown-BQwXm0MF.css +0 -1
- package/dist/web/assets/markdown-BVrzq29V.js +0 -2
- package/dist/web/assets/markdown-BVrzq29V.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
._prose_1ovsl_1{font-size:var(--pi-fontSize-base, 14px);line-height:1.5;color:var(--pi-color-foreground, #fafafa);word-break:break-word}._prose_1ovsl_1>:first-child{margin-top:0}._prose_1ovsl_1>:last-child{margin-bottom:0}._prose_1ovsl_1 p{margin:.5em 0}._prose_1ovsl_1 a{color:var(--pi-color-accentBright, #a2b4d7)}._prose_1ovsl_1 pre{margin:.5em 0;padding:10px 12px;border-radius:var(--pi-borderRadius-md, 6px);overflow-x:auto;background:var(--pi-color-surfaceSunken, #111)}._prose_1ovsl_1 pre code{font-family:var(--pi-font-mono, ui-monospace, monospace);font-size:var(--pi-fontSize-code, 13px);background:none;padding:0}._inlineCode_1ovsl_32{font-family:var(--pi-font-mono, ui-monospace, monospace);font-size:.9em;background:var(--pi-color-surfaceSunken, #111);border-radius:3px;padding:.1em .35em}._prose_1ovsl_1 table{border-collapse:collapse;margin:.5em 0}._prose_1ovsl_1 th,._prose_1ovsl_1 td{border:1px solid var(--pi-color-border, #353b46);padding:4px 8px}._prose_1ovsl_1 blockquote{margin:.5em 0;padding-left:10px;border-left:2px solid var(--pi-color-border, #353b46);color:var(--pi-color-foregroundMuted, #9aa0a6)}._prose_1ovsl_1 ul,._prose_1ovsl_1 ol{padding-left:1.4em}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as l,j as o}from"./vendor-react-p-LLqNcx.js";import{c as h}from"./vendor-highlight-Cry4x-mr.js";import{M as m,r as g}from"./vendor-markdown-ePgMI45n.js";const d="github-dark";let a=null;const u=new Set(["plaintext"]);function f(){return a||(a=h({themes:[d],langs:["plaintext"]})),a}async function p(t,e){if(u.has(e))return e;try{return await t.loadLanguage(e),u.add(e),e}catch{return"plaintext"}}async function x(t,e){const n=await f(),r=await p(n,e);return n.codeToHtml(t,{lang:r,theme:d})}const j="_prose_1ovsl_1",k="_inlineCode_1ovsl_32",c={prose:j,inlineCode:k};function w({language:t,code:e}){const[n,r]=l.useState(null);return l.useEffect(()=>{let s=!1;return x(e,t).then(i=>{s||r(i)}),()=>{s=!0}},[e,t]),n?o.jsx("div",{className:c.prose,dangerouslySetInnerHTML:{__html:n}}):o.jsx("pre",{children:o.jsx("code",{children:e})})}function _({className:t,children:e,...n}){const r=/language-(\w+)/.exec(t??""),s=!!r,i=String(e).replace(/\n$/,"");return s&&r?o.jsx(w,{language:r[1]??"plaintext",code:i}):o.jsx("code",{className:c.inlineCode,...n,children:e})}const C=l.memo(function({text:e}){return o.jsx("div",{className:c.prose,children:o.jsx(m,{remarkPlugins:[g],components:{code:_},children:e})})});export{C as M};
|
|
2
|
-
//# sourceMappingURL=markdown-BVrzq29V.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-BVrzq29V.js","sources":["../../../src/timeline/highlight.ts","../../../src/timeline/markdown.tsx"],"sourcesContent":["/**\n * Shiki wrapper + lang-from-path map. Replaces the POC's CDN `highlight.js`\n * (POC_TO_APP_PLAN_UI.md §2, §4.8). Grammars/themes are loaded lazily and cached — the\n * highlighter is not paid for until a code block/file view actually renders.\n */\n\nimport { createHighlighter, type Highlighter } from \"shiki\";\n\n/** POC `getLangFromPath` extension → language map, ported verbatim. */\nconst EXT_TO_LANG: Record<string, string> = {\n js: \"javascript\",\n ts: \"typescript\",\n jsx: \"javascript\",\n tsx: \"typescript\",\n py: \"python\",\n rb: \"ruby\",\n rs: \"rust\",\n go: \"go\",\n java: \"java\",\n c: \"c\",\n cpp: \"cpp\",\n h: \"c\",\n hpp: \"cpp\",\n cs: \"csharp\",\n html: \"html\",\n css: \"css\",\n scss: \"scss\",\n json: \"json\",\n yaml: \"yaml\",\n yml: \"yaml\",\n toml: \"toml\",\n xml: \"xml\",\n md: \"markdown\",\n sh: \"bash\",\n bash: \"bash\",\n sql: \"sql\",\n swift: \"swift\",\n kt: \"kotlin\",\n dart: \"dart\",\n vue: \"xml\",\n svelte: \"xml\",\n};\n\nexport function langFromPath(path: string): string {\n const ext = path.split(\".\").pop()?.toLowerCase() ?? \"\";\n return EXT_TO_LANG[ext] ?? \"plaintext\";\n}\n\nconst THEME = \"github-dark\";\n\nlet highlighterPromise: Promise<Highlighter> | null = null;\nconst loadedLangs = new Set<string>([\"plaintext\"]);\n\nfunction getHighlighter(): Promise<Highlighter> {\n if (!highlighterPromise) {\n highlighterPromise = createHighlighter({ themes: [THEME], langs: [\"plaintext\"] });\n }\n return highlighterPromise;\n}\n\nasync function ensureLang(highlighter: Highlighter, lang: string): Promise<string> {\n if (loadedLangs.has(lang)) return lang;\n try {\n await highlighter.loadLanguage(lang as never);\n loadedLangs.add(lang);\n return lang;\n } catch {\n return \"plaintext\"; // unknown grammar to Shiki — fall back rather than throw\n }\n}\n\n/** Highlight `code` for `lang` (or a path via `langFromPath`) to sanitized HTML. */\nexport async function highlightToHtml(code: string, lang: string): Promise<string> {\n const highlighter = await getHighlighter();\n const resolved = await ensureLang(highlighter, lang);\n return highlighter.codeToHtml(code, { lang: resolved, theme: THEME });\n}\n","/**\n * react-markdown + remark-gfm rendering, replacing the POC's CDN `marked` + `innerHTML`\n * (POC_TO_APP_PLAN_UI.md §4.8). Sanitized by default — react-markdown never injects raw HTML.\n * Fenced code blocks highlight asynchronously via Shiki (`highlight.ts`).\n */\n\nimport { memo, useEffect, useState, type ComponentPropsWithoutRef } from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport remarkGfm from \"remark-gfm\";\nimport { highlightToHtml } from \"./highlight.js\";\nimport styles from \"./markdown.module.css\";\n\ninterface CodeBlockProps {\n language: string;\n code: string;\n}\n\nfunction CodeBlock({ language, code }: CodeBlockProps) {\n const [html, setHtml] = useState<string | null>(null);\n\n useEffect(() => {\n let cancelled = false;\n void highlightToHtml(code, language).then((result) => {\n if (!cancelled) setHtml(result);\n });\n return () => {\n cancelled = true;\n };\n }, [code, language]);\n\n if (html) {\n // Shiki's output is generated HTML from a trusted local highlighter (no user HTML is ever\n // injected) — the only risk is `code`, which Shiki escapes internally before tokenizing.\n return <div className={styles.prose} dangerouslySetInnerHTML={{ __html: html }} />;\n }\n return (\n <pre>\n <code>{code}</code>\n </pre>\n );\n}\n\ntype MarkdownCodeProps = ComponentPropsWithoutRef<\"code\"> & { className?: string };\n\nfunction CodeRenderer({ className, children, ...rest }: MarkdownCodeProps) {\n const match = /language-(\\w+)/.exec(className ?? \"\");\n const isBlock = Boolean(match);\n const code = String(children).replace(/\\n$/, \"\");\n if (isBlock && match) {\n return <CodeBlock language={match[1] ?? \"plaintext\"} code={code} />;\n }\n return (\n <code className={styles.inlineCode} {...rest}>\n {children}\n </code>\n );\n}\n\nexport interface MarkdownProps {\n text: string;\n}\n\n/** Renders assistant/tool markdown text. Memoized — text is immutable once a turn finalizes. */\nexport const Markdown = memo(function Markdown({ text }: MarkdownProps) {\n return (\n <div className={styles.prose}>\n <ReactMarkdown remarkPlugins={[remarkGfm]} components={{ code: CodeRenderer }}>\n {text}\n </ReactMarkdown>\n </div>\n );\n});\n"],"names":["THEME","highlighterPromise","loadedLangs","getHighlighter","createHighlighter","ensureLang","highlighter","lang","highlightToHtml","code","resolved","CodeBlock","language","html","setHtml","useState","useEffect","cancelled","result","jsx","styles","CodeRenderer","className","children","rest","match","isBlock","Markdown","memo","text","ReactMarkdown","remarkGfm"],"mappings":"kKAgDA,MAAMA,EAAQ,cAEd,IAAIC,EAAkD,KACtD,MAAMC,EAAc,IAAI,IAAY,CAAC,WAAW,CAAC,EAEjD,SAASC,GAAuC,CAC9C,OAAKF,IACHA,EAAqBG,EAAkB,CAAE,OAAQ,CAACJ,CAAK,EAAG,MAAO,CAAC,WAAW,EAAG,GAE3EC,CACT,CAEA,eAAeI,EAAWC,EAA0BC,EAA+B,CACjF,GAAIL,EAAY,IAAIK,CAAI,EAAG,OAAOA,EAClC,GAAI,CACF,aAAMD,EAAY,aAAaC,CAAa,EAC5CL,EAAY,IAAIK,CAAI,EACbA,CACT,MAAQ,CACN,MAAO,WACT,CACF,CAGA,eAAsBC,EAAgBC,EAAcF,EAA+B,CACjF,MAAMD,EAAc,MAAMH,EAAA,EACpBO,EAAW,MAAML,EAAWC,EAAaC,CAAI,EACnD,OAAOD,EAAY,WAAWG,EAAM,CAAE,KAAMC,EAAU,MAAOV,EAAO,CACtE,4EC3DA,SAASW,EAAU,CAAE,SAAAC,EAAU,KAAAH,GAAwB,CACrD,KAAM,CAACI,EAAMC,CAAO,EAAIC,EAAAA,SAAwB,IAAI,EAYpD,OAVAC,EAAAA,UAAU,IAAM,CACd,IAAIC,EAAY,GAChB,OAAKT,EAAgBC,EAAMG,CAAQ,EAAE,KAAMM,GAAW,CAC/CD,GAAWH,EAAQI,CAAM,CAChC,CAAC,EACM,IAAM,CACXD,EAAY,EACd,CACF,EAAG,CAACR,EAAMG,CAAQ,CAAC,EAEfC,EAGKM,MAAC,OAAI,UAAWC,EAAO,MAAO,wBAAyB,CAAE,OAAQP,CAAA,EAAQ,EAGhFM,EAAAA,IAAC,MAAA,CACC,SAAAA,EAAAA,IAAC,OAAA,CAAM,WAAK,EACd,CAEJ,CAIA,SAASE,EAAa,CAAE,UAAAC,EAAW,SAAAC,EAAU,GAAGC,GAA2B,CACzE,MAAMC,EAAQ,iBAAiB,KAAKH,GAAa,EAAE,EAC7CI,EAAU,EAAQD,EAClBhB,EAAO,OAAOc,CAAQ,EAAE,QAAQ,MAAO,EAAE,EAC/C,OAAIG,GAAWD,QACLd,EAAA,CAAU,SAAUc,EAAM,CAAC,GAAK,YAAa,KAAAhB,EAAY,QAGhE,OAAA,CAAK,UAAWW,EAAO,WAAa,GAAGI,EACrC,SAAAD,EACH,CAEJ,CAOO,MAAMI,EAAWC,EAAAA,KAAK,SAAkB,CAAE,KAAAC,GAAuB,CACtE,aACG,MAAA,CAAI,UAAWT,EAAO,MACrB,eAACU,EAAA,CAAc,cAAe,CAACC,CAAS,EAAG,WAAY,CAAE,KAAMV,CAAA,EAC5D,WACH,EACF,CAEJ,CAAC"}
|