@yumiai/chat-widget 0.1.2 → 0.2.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/CHANGELOG.md +92 -0
- package/README.md +119 -22
- package/dist/ExcelCore-DJOIVQMI.js +11 -0
- package/dist/ExcelCore-DJOIVQMI.js.map +1 -0
- package/dist/ExcelViewer-3YLLYYIQ.js +65 -0
- package/dist/ExcelViewer-3YLLYYIQ.js.map +1 -0
- package/dist/GerberViewerA2UI-7CNT7HX4.css +693 -0
- package/dist/GerberViewerA2UI-7CNT7HX4.css.map +1 -0
- package/dist/GerberViewerA2UI-X5FWAD5M.js +57 -0
- package/dist/GerberViewerA2UI-X5FWAD5M.js.map +1 -0
- package/dist/GraphStatsLegend-D5bPeXB_.d.cts +607 -0
- package/dist/GraphStatsLegend-D5bPeXB_.d.ts +607 -0
- package/dist/JsonRenderStandalone-EIZM62JU.js +18 -0
- package/dist/JsonRenderStandalone-EIZM62JU.js.map +1 -0
- package/dist/JsonRenderStandalone-POB4Q3N3.css +2384 -0
- package/dist/JsonRenderStandalone-POB4Q3N3.css.map +1 -0
- package/dist/JsonRenderStandalone-UsTcST4G.d.cts +23 -0
- package/dist/JsonRenderStandalone-UsTcST4G.d.ts +23 -0
- package/dist/KicadViewer-GV6ZC4AQ.js +124 -0
- package/dist/KicadViewer-GV6ZC4AQ.js.map +1 -0
- package/dist/KicadViewerCore-U7BWZHKJ.js +11 -0
- package/dist/KicadViewerCore-U7BWZHKJ.js.map +1 -0
- package/dist/PdfViewer-CHPDRK46.js +51 -0
- package/dist/PdfViewer-CHPDRK46.js.map +1 -0
- package/dist/PdfViewer-LPYGQETK.css +1899 -0
- package/dist/PdfViewer-LPYGQETK.css.map +1 -0
- package/dist/PdfViewerCore-HJPEHSRA.js +364 -0
- package/dist/PdfViewerCore-HJPEHSRA.js.map +1 -0
- package/dist/PowerPointCore-FPDR2BL4.js +11 -0
- package/dist/PowerPointCore-FPDR2BL4.js.map +1 -0
- package/dist/PowerPointViewer-LQTO6UCU.js +61 -0
- package/dist/PowerPointViewer-LQTO6UCU.js.map +1 -0
- package/dist/StepViewerCore-7W3L3R4E.js +285 -0
- package/dist/StepViewerCore-7W3L3R4E.js.map +1 -0
- package/dist/ThreeViewerCore-N3QJD5QI.js +161 -0
- package/dist/ThreeViewerCore-N3QJD5QI.js.map +1 -0
- package/dist/WordCore-JKSXK2XD.js +11 -0
- package/dist/WordCore-JKSXK2XD.js.map +1 -0
- package/dist/WordViewer-ZHCQMHOH.js +61 -0
- package/dist/WordViewer-ZHCQMHOH.js.map +1 -0
- package/dist/chunk-2SKA3F5U.js +88 -0
- package/dist/chunk-2SKA3F5U.js.map +1 -0
- package/dist/chunk-2UC7YLVX.js +318 -0
- package/dist/chunk-2UC7YLVX.js.map +1 -0
- package/dist/chunk-3R6T3LBR.js +24 -0
- package/dist/chunk-3R6T3LBR.js.map +1 -0
- package/dist/chunk-56WRZM3R.js +398 -0
- package/dist/chunk-56WRZM3R.js.map +1 -0
- package/dist/chunk-7A4FY6FK.js +10226 -0
- package/dist/chunk-7A4FY6FK.js.map +1 -0
- package/dist/chunk-7D4SUZUM.js +38 -0
- package/dist/chunk-7D4SUZUM.js.map +1 -0
- package/dist/chunk-7S67DOHQ.js +436 -0
- package/dist/chunk-7S67DOHQ.js.map +1 -0
- package/dist/chunk-CFKGNAJM.js +14013 -0
- package/dist/chunk-CFKGNAJM.js.map +1 -0
- package/dist/chunk-GAMA3VA7.js +99 -0
- package/dist/chunk-GAMA3VA7.js.map +1 -0
- package/dist/chunk-GYXTSY22.js +639 -0
- package/dist/chunk-GYXTSY22.js.map +1 -0
- package/dist/chunk-K4KGNVL5.js +77 -0
- package/dist/chunk-K4KGNVL5.js.map +1 -0
- package/dist/chunk-KQV7IKET.js +1621 -0
- package/dist/chunk-KQV7IKET.js.map +1 -0
- package/dist/chunk-O3NXUM6C.js +1871 -0
- package/dist/chunk-O3NXUM6C.js.map +1 -0
- package/dist/chunk-PZXSASDY.js +83 -0
- package/dist/chunk-PZXSASDY.js.map +1 -0
- package/dist/chunk-QLVPIM6R.js +595 -0
- package/dist/chunk-QLVPIM6R.js.map +1 -0
- package/dist/chunk-VXJWGLZ7.js +21 -0
- package/dist/chunk-VXJWGLZ7.js.map +1 -0
- package/dist/chunk-XQ562W7I.js +116 -0
- package/dist/chunk-XQ562W7I.js.map +1 -0
- package/dist/components/JsonRender/standalone.cjs +39368 -0
- package/dist/components/JsonRender/standalone.cjs.map +1 -0
- package/dist/components/JsonRender/standalone.css +2384 -0
- package/dist/components/JsonRender/standalone.css.map +1 -0
- package/dist/components/JsonRender/standalone.d.cts +16 -0
- package/dist/components/JsonRender/standalone.d.ts +16 -0
- package/dist/components/JsonRender/standalone.js +38 -0
- package/dist/components/JsonRender/standalone.js.map +1 -0
- package/dist/gerber-2d-entry-OQ4SQRBY.js +3950 -0
- package/dist/gerber-2d-entry-OQ4SQRBY.js.map +1 -0
- package/dist/gerber-3d-entry-DEHDBOO2.js +3679 -0
- package/dist/gerber-3d-entry-DEHDBOO2.js.map +1 -0
- package/dist/gerber-simulation-entry-EBDX72XE.js +1801 -0
- package/dist/gerber-simulation-entry-EBDX72XE.js.map +1 -0
- package/dist/index.cjs +60113 -2970
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +11342 -1708
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +3275 -77
- package/dist/index.d.ts +3275 -77
- package/dist/index.js +18078 -2540
- package/dist/index.js.map +1 -1
- package/dist/provenance/index.cjs +2248 -0
- package/dist/provenance/index.cjs.map +1 -0
- package/dist/provenance/index.css +52 -0
- package/dist/provenance/index.css.map +1 -0
- package/dist/provenance/index.d.cts +12 -0
- package/dist/provenance/index.d.ts +12 -0
- package/dist/provenance/index.js +27 -0
- package/dist/provenance/index.js.map +1 -0
- package/dist/resolveToArrayBuffer-AQIDZHSQ.js +23 -0
- package/dist/resolveToArrayBuffer-AQIDZHSQ.js.map +1 -0
- package/package.json +96 -17
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// src/contexts/ResourceContext.tsx
|
|
2
|
+
import { createContext, useContext } from "react";
|
|
3
|
+
var ResourceContext = createContext(null);
|
|
4
|
+
function useResourceContext() {
|
|
5
|
+
return useContext(ResourceContext);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
// src/components/JsonRender/domain/injectStyles.ts
|
|
9
|
+
function injectStyles(id, css) {
|
|
10
|
+
if (typeof document === "undefined") return;
|
|
11
|
+
let el = document.getElementById(id);
|
|
12
|
+
if (!el) {
|
|
13
|
+
el = document.createElement("style");
|
|
14
|
+
el.id = id;
|
|
15
|
+
document.head.appendChild(el);
|
|
16
|
+
}
|
|
17
|
+
if (el.textContent !== css) {
|
|
18
|
+
el.textContent = css;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// src/hooks/useResource.ts
|
|
23
|
+
import { useState, useEffect, useRef } from "react";
|
|
24
|
+
var cache = /* @__PURE__ */ new Map();
|
|
25
|
+
var inflight = /* @__PURE__ */ new Map();
|
|
26
|
+
function useResource(input) {
|
|
27
|
+
const ctx = useResourceContext();
|
|
28
|
+
const [state, setState] = useState(() => {
|
|
29
|
+
if (input.url) return { loading: false, url: input.url };
|
|
30
|
+
if (input.content) return { loading: false, content: input.content };
|
|
31
|
+
if (input.resource_id) {
|
|
32
|
+
const cached = cache.get(input.resource_id);
|
|
33
|
+
if (cached) return cached;
|
|
34
|
+
return { loading: true };
|
|
35
|
+
}
|
|
36
|
+
return { loading: false, error: "No resource input provided" };
|
|
37
|
+
});
|
|
38
|
+
const prevIdRef = useRef(void 0);
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
if (input.url) {
|
|
41
|
+
setState({ loading: false, url: input.url });
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (!input.resource_id) {
|
|
45
|
+
if (input.content) setState({ loading: false, content: input.content });
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (prevIdRef.current === input.resource_id && !state.loading) return;
|
|
49
|
+
prevIdRef.current = input.resource_id;
|
|
50
|
+
const cached = cache.get(input.resource_id);
|
|
51
|
+
if (cached) {
|
|
52
|
+
setState(cached);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (!ctx) {
|
|
56
|
+
setState({ loading: false, error: "No ResourceProvider in tree" });
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
let cancelled = false;
|
|
60
|
+
setState({ loading: true });
|
|
61
|
+
const resourceId = input.resource_id;
|
|
62
|
+
let promise = inflight.get(resourceId);
|
|
63
|
+
if (!promise) {
|
|
64
|
+
promise = ctx.resolveResource(resourceId).then((result) => {
|
|
65
|
+
const resolved = {
|
|
66
|
+
loading: false,
|
|
67
|
+
url: result.url ?? result.contentUrl,
|
|
68
|
+
content: result.content,
|
|
69
|
+
mimeType: result.mimeType,
|
|
70
|
+
fileName: result.fileName,
|
|
71
|
+
gitPath: result.gitPath
|
|
72
|
+
};
|
|
73
|
+
cache.set(resourceId, resolved);
|
|
74
|
+
return resolved;
|
|
75
|
+
}).catch((err) => {
|
|
76
|
+
return { loading: false, error: String(err?.message ?? err) };
|
|
77
|
+
}).finally(() => {
|
|
78
|
+
inflight.delete(resourceId);
|
|
79
|
+
});
|
|
80
|
+
inflight.set(resourceId, promise);
|
|
81
|
+
}
|
|
82
|
+
promise.then((resolved) => {
|
|
83
|
+
if (cancelled) return;
|
|
84
|
+
setState(resolved);
|
|
85
|
+
});
|
|
86
|
+
return () => {
|
|
87
|
+
cancelled = true;
|
|
88
|
+
};
|
|
89
|
+
}, [input.url, input.resource_id, input.content, ctx]);
|
|
90
|
+
return state;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export {
|
|
94
|
+
ResourceContext,
|
|
95
|
+
useResourceContext,
|
|
96
|
+
injectStyles,
|
|
97
|
+
useResource
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=chunk-GAMA3VA7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/contexts/ResourceContext.tsx","../src/components/JsonRender/domain/injectStyles.ts","../src/hooks/useResource.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { ResourceResolveResult, DirectoryFileEntry, ListDirectoryFilesOptions } from '../types.js'\n\nexport interface ResourceContextValue {\n resolveResource(resourceId: string): Promise<ResourceResolveResult>\n resolvePreviewUrl?(resourceId: string, format: 'html' | 'pdf'): Promise<string>\n listDirectoryFiles?(dirPrefix: string, options?: ListDirectoryFilesOptions): Promise<DirectoryFileEntry[]>\n sessionId?: number\n}\n\nexport const ResourceContext = createContext<ResourceContextValue | null>(null)\n\nexport function useResourceContext(): ResourceContextValue | null {\n return useContext(ResourceContext)\n}\n","/**\n * Inject or update a <style> element in document.head.\n * Unlike the old ensureStyles pattern, this always updates textContent\n * so that HMR/hot-reload picks up CSS changes during development.\n */\nexport function injectStyles(id: string, css: string): void {\n if (typeof document === 'undefined') return\n let el = document.getElementById(id) as HTMLStyleElement | null\n if (!el) {\n el = document.createElement('style')\n el.id = id\n document.head.appendChild(el)\n }\n if (el.textContent !== css) {\n el.textContent = css\n }\n}\n","import { useState, useEffect, useRef } from 'react'\nimport { useResourceContext } from '../contexts/ResourceContext.js'\n\nexport interface ResourceInput {\n resource_id?: string\n url?: string\n content?: string\n}\n\nexport interface ResourceState {\n loading: boolean\n error?: string\n url?: string\n content?: string\n mimeType?: string\n fileName?: string\n gitPath?: string\n}\n\nconst cache = new Map<string, ResourceState>()\nconst inflight = new Map<string, Promise<ResourceState>>()\n\n/**\n * Resolve a resource from url, resource_id, or inline content.\n * Priority: url > resource_id > content.\n */\nexport function useResource(input: ResourceInput): ResourceState {\n const ctx = useResourceContext()\n const [state, setState] = useState<ResourceState>(() => {\n if (input.url) return { loading: false, url: input.url }\n if (input.content) return { loading: false, content: input.content }\n if (input.resource_id) {\n const cached = cache.get(input.resource_id)\n if (cached) return cached\n return { loading: true }\n }\n return { loading: false, error: 'No resource input provided' }\n })\n\n const prevIdRef = useRef<string | undefined>(undefined)\n\n useEffect(() => {\n if (input.url) {\n setState({ loading: false, url: input.url })\n return\n }\n if (!input.resource_id) {\n if (input.content) setState({ loading: false, content: input.content })\n return\n }\n\n if (prevIdRef.current === input.resource_id && !state.loading) return\n prevIdRef.current = input.resource_id\n\n const cached = cache.get(input.resource_id)\n if (cached) {\n setState(cached)\n return\n }\n\n if (!ctx) {\n setState({ loading: false, error: 'No ResourceProvider in tree' })\n return\n }\n\n let cancelled = false\n setState({ loading: true })\n\n const resourceId = input.resource_id\n\n let promise = inflight.get(resourceId)\n if (!promise) {\n promise = ctx.resolveResource(resourceId).then(result => {\n const resolved: ResourceState = {\n loading: false,\n url: result.url ?? result.contentUrl,\n content: result.content,\n mimeType: result.mimeType,\n fileName: result.fileName,\n gitPath: result.gitPath,\n }\n cache.set(resourceId, resolved)\n return resolved\n }).catch(err => {\n return { loading: false, error: String(err?.message ?? err) } as ResourceState\n }).finally(() => {\n inflight.delete(resourceId)\n })\n inflight.set(resourceId, promise)\n }\n\n promise.then(resolved => {\n if (cancelled) return\n setState(resolved)\n })\n\n return () => { cancelled = true }\n }, [input.url, input.resource_id, input.content, ctx])\n\n return state\n}\n"],"mappings":";AAAA,SAAS,eAAe,kBAAkB;AAUnC,IAAM,kBAAkB,cAA2C,IAAI;AAEvE,SAAS,qBAAkD;AAChE,SAAO,WAAW,eAAe;AACnC;;;ACTO,SAAS,aAAa,IAAY,KAAmB;AAC1D,MAAI,OAAO,aAAa,YAAa;AACrC,MAAI,KAAK,SAAS,eAAe,EAAE;AACnC,MAAI,CAAC,IAAI;AACP,SAAK,SAAS,cAAc,OAAO;AACnC,OAAG,KAAK;AACR,aAAS,KAAK,YAAY,EAAE;AAAA,EAC9B;AACA,MAAI,GAAG,gBAAgB,KAAK;AAC1B,OAAG,cAAc;AAAA,EACnB;AACF;;;AChBA,SAAS,UAAU,WAAW,cAAc;AAmB5C,IAAM,QAAQ,oBAAI,IAA2B;AAC7C,IAAM,WAAW,oBAAI,IAAoC;AAMlD,SAAS,YAAY,OAAqC;AAC/D,QAAM,MAAM,mBAAmB;AAC/B,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,MAAM;AACtD,QAAI,MAAM,IAAK,QAAO,EAAE,SAAS,OAAO,KAAK,MAAM,IAAI;AACvD,QAAI,MAAM,QAAS,QAAO,EAAE,SAAS,OAAO,SAAS,MAAM,QAAQ;AACnE,QAAI,MAAM,aAAa;AACrB,YAAM,SAAS,MAAM,IAAI,MAAM,WAAW;AAC1C,UAAI,OAAQ,QAAO;AACnB,aAAO,EAAE,SAAS,KAAK;AAAA,IACzB;AACA,WAAO,EAAE,SAAS,OAAO,OAAO,6BAA6B;AAAA,EAC/D,CAAC;AAED,QAAM,YAAY,OAA2B,MAAS;AAEtD,YAAU,MAAM;AACd,QAAI,MAAM,KAAK;AACb,eAAS,EAAE,SAAS,OAAO,KAAK,MAAM,IAAI,CAAC;AAC3C;AAAA,IACF;AACA,QAAI,CAAC,MAAM,aAAa;AACtB,UAAI,MAAM,QAAS,UAAS,EAAE,SAAS,OAAO,SAAS,MAAM,QAAQ,CAAC;AACtE;AAAA,IACF;AAEA,QAAI,UAAU,YAAY,MAAM,eAAe,CAAC,MAAM,QAAS;AAC/D,cAAU,UAAU,MAAM;AAE1B,UAAM,SAAS,MAAM,IAAI,MAAM,WAAW;AAC1C,QAAI,QAAQ;AACV,eAAS,MAAM;AACf;AAAA,IACF;AAEA,QAAI,CAAC,KAAK;AACR,eAAS,EAAE,SAAS,OAAO,OAAO,8BAA8B,CAAC;AACjE;AAAA,IACF;AAEA,QAAI,YAAY;AAChB,aAAS,EAAE,SAAS,KAAK,CAAC;AAE1B,UAAM,aAAa,MAAM;AAEzB,QAAI,UAAU,SAAS,IAAI,UAAU;AACrC,QAAI,CAAC,SAAS;AACZ,gBAAU,IAAI,gBAAgB,UAAU,EAAE,KAAK,YAAU;AACvD,cAAM,WAA0B;AAAA,UAC9B,SAAS;AAAA,UACT,KAAK,OAAO,OAAO,OAAO;AAAA,UAC1B,SAAS,OAAO;AAAA,UAChB,UAAU,OAAO;AAAA,UACjB,UAAU,OAAO;AAAA,UACjB,SAAS,OAAO;AAAA,QAClB;AACA,cAAM,IAAI,YAAY,QAAQ;AAC9B,eAAO;AAAA,MACT,CAAC,EAAE,MAAM,SAAO;AACd,eAAO,EAAE,SAAS,OAAO,OAAO,OAAO,KAAK,WAAW,GAAG,EAAE;AAAA,MAC9D,CAAC,EAAE,QAAQ,MAAM;AACf,iBAAS,OAAO,UAAU;AAAA,MAC5B,CAAC;AACD,eAAS,IAAI,YAAY,OAAO;AAAA,IAClC;AAEA,YAAQ,KAAK,cAAY;AACvB,UAAI,UAAW;AACf,eAAS,QAAQ;AAAA,IACnB,CAAC;AAED,WAAO,MAAM;AAAE,kBAAY;AAAA,IAAK;AAAA,EAClC,GAAG,CAAC,MAAM,KAAK,MAAM,aAAa,MAAM,SAAS,GAAG,CAAC;AAErD,SAAO;AACT;","names":[]}
|