@adoptai/genui-components 0.1.66 → 0.1.68

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/index.d.ts CHANGED
@@ -45,6 +45,7 @@ export { WorkflowStepperResolver, WorkflowStepperRenderer } from "./composites/w
45
45
  export type { WorkflowStepperRendererProps } from "./composites/workflow-stepper/resolver";
46
46
  export { DecisionCardResolver, DecisionCardRenderer } from "./composites/decision-card/resolver";
47
47
  export type { DecisionCardRendererProps } from "./composites/decision-card/resolver";
48
+ export { EscalationCardResolver } from "./composites/escalation-card/resolver";
48
49
  export { GenUIInteractionProvider, useGenUIInteraction, DEFAULT_INTERACTION, } from "./shared/InteractionContext";
49
50
  export type { GenUIInteraction, GenUIInteractionProviderProps } from "./shared/InteractionContext";
50
51
  export { BORDER, BORDER_SOFT, MUTED, PAPER, SURFACE, SURFACE_MUTED, SHADOW, FOREGROUND, SCRIM, ACCENT, ACCENT_SOFT, SECONDARY, SEMANTIC, ACCOUNT_TYPE_COLORS, STATUS_COLORS, CHART_PALETTE, } from "./shared/theme";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1271,13 +1271,74 @@ var init_FlowGraph = __esm({
1271
1271
  renderSeq = 0;
1272
1272
  }
1273
1273
  });
1274
+ function resolvePdfWorkerSrc(pdfjs2) {
1275
+ const override = typeof window !== "undefined" ? window.__GENUI_PDF_WORKER_SRC__ : void 0;
1276
+ const current = pdfjs2.GlobalWorkerOptions.workerSrc;
1277
+ const isConfigured = !!current && current !== "pdf.worker.mjs";
1278
+ if (override) {
1279
+ pdfjs2.GlobalWorkerOptions.workerSrc = override;
1280
+ } else if (!isConfigured) {
1281
+ pdfjs2.GlobalWorkerOptions.workerSrc = `https://cdn.jsdelivr.net/npm/pdfjs-dist@${pdfjs2.version}/build/pdf.worker.min.mjs`;
1282
+ }
1283
+ return pdfjs2.GlobalWorkerOptions.workerSrc;
1284
+ }
1285
+ function probePdfWorker() {
1286
+ if (probe) return probe;
1287
+ probe = (async () => {
1288
+ if (typeof window === "undefined") return false;
1289
+ try {
1290
+ const { pdfjs: pdfjs2 } = await import('react-pdf');
1291
+ resolvePdfWorkerSrc(pdfjs2);
1292
+ const task = pdfjs2.getDocument({ data: new TextEncoder().encode(TINY_PDF) });
1293
+ const doc = await Promise.race([
1294
+ task.promise,
1295
+ new Promise(
1296
+ (_, reject) => setTimeout(() => reject(new Error("pdf worker probe timed out")), PROBE_TIMEOUT_MS)
1297
+ )
1298
+ ]);
1299
+ await doc.destroy();
1300
+ return true;
1301
+ } catch (e) {
1302
+ probe = null;
1303
+ return false;
1304
+ }
1305
+ })();
1306
+ return probe;
1307
+ }
1308
+ function usePdfWorkerReady(enabled) {
1309
+ const [ready, setReady] = useState(null);
1310
+ useEffect(() => {
1311
+ if (!enabled) return;
1312
+ let cancelled = false;
1313
+ probePdfWorker().then((ok) => {
1314
+ if (!cancelled) setReady(ok);
1315
+ });
1316
+ return () => {
1317
+ cancelled = true;
1318
+ };
1319
+ }, [enabled]);
1320
+ return enabled ? ready : null;
1321
+ }
1322
+ var TINY_PDF, PROBE_TIMEOUT_MS, probe;
1323
+ var init_pdfWorkerProbe = __esm({
1324
+ "src/shared/viewers/pdfWorkerProbe.ts"() {
1325
+ "use client";
1326
+ TINY_PDF = `%PDF-1.1
1327
+ 1 0 obj<</Type/Catalog/Pages 2 0 R>>endobj
1328
+ 2 0 obj<</Type/Pages/Kids[3 0 R]/Count 1>>endobj
1329
+ 3 0 obj<</Type/Page/Parent 2 0 R/MediaBox[0 0 3 3]>>endobj
1330
+ trailer<</Root 1 0 R>>`;
1331
+ PROBE_TIMEOUT_MS = 5e3;
1332
+ probe = null;
1333
+ }
1334
+ });
1274
1335
 
1275
1336
  // src/composites/document-preview/PdfViewer.tsx
1276
1337
  var PdfViewer_exports = {};
1277
1338
  __export(PdfViewer_exports, {
1278
1339
  PdfViewer: () => PdfViewer
1279
1340
  });
1280
- function PdfViewer({ url, base64, onLoadSuccess }) {
1341
+ function PdfViewer({ url, base64, onLoadSuccess, onLoadError }) {
1281
1342
  const { BORDER: BORDER3, MUTED: MUTED2, SURFACE: SURFACE2 } = useTheme();
1282
1343
  const [numPages, setNumPages] = useState(0);
1283
1344
  const [currentPage, setCurrentPage] = useState(1);
@@ -1357,23 +1418,34 @@ function PdfViewer({ url, base64, onLoadSuccess }) {
1357
1418
  ] }),
1358
1419
  /* @__PURE__ */ jsxs("div", { style: { overflow: "auto", width: "100%", display: "flex", justifyContent: "center", padding: "16px" }, children: [
1359
1420
  loading && /* @__PURE__ */ jsx("div", { style: { display: "flex", alignItems: "center", justifyContent: "center", height: "200px", color: MUTED2, fontSize: "13px" }, children: "Loading PDF..." }),
1360
- /* @__PURE__ */ jsx(Document, { file: base64 ? `data:application/pdf;base64,${base64}` : url, onLoadSuccess: handleLoad, loading: "", children: /* @__PURE__ */ jsx(
1361
- Page,
1421
+ /* @__PURE__ */ jsx(
1422
+ Document,
1362
1423
  {
1363
- pageNumber: currentPage,
1364
- width: 540,
1365
- renderTextLayer: true,
1366
- renderAnnotationLayer: true
1424
+ file: base64 ? `data:application/pdf;base64,${base64}` : url,
1425
+ onLoadSuccess: handleLoad,
1426
+ onLoadError,
1427
+ loading: "",
1428
+ error: "",
1429
+ children: /* @__PURE__ */ jsx(
1430
+ Page,
1431
+ {
1432
+ pageNumber: currentPage,
1433
+ width: 540,
1434
+ renderTextLayer: true,
1435
+ renderAnnotationLayer: true
1436
+ }
1437
+ )
1367
1438
  }
1368
- ) })
1439
+ )
1369
1440
  ] })
1370
1441
  ] });
1371
1442
  }
1372
1443
  var init_PdfViewer = __esm({
1373
1444
  "src/composites/document-preview/PdfViewer.tsx"() {
1374
1445
  "use client";
1446
+ init_pdfWorkerProbe();
1375
1447
  init_ThemeContext();
1376
- pdfjs.GlobalWorkerOptions.workerSrc = `https://unpkg.com/pdfjs-dist@${pdfjs.version}/build/pdf.worker.min.mjs`;
1448
+ resolvePdfWorkerSrc(pdfjs);
1377
1449
  }
1378
1450
  });
1379
1451
 
@@ -9036,6 +9108,7 @@ function useFullscreen(ref) {
9036
9108
  // src/composites/document-preview/resolver.tsx
9037
9109
  init_theme();
9038
9110
  init_ThemeContext();
9111
+ init_pdfWorkerProbe();
9039
9112
  var PdfViewer2 = React45.lazy(
9040
9113
  () => Promise.resolve().then(() => (init_PdfViewer(), PdfViewer_exports)).then((m) => ({ default: m.PdfViewer }))
9041
9114
  );
@@ -9099,8 +9172,14 @@ function DocumentPreviewResolver(p) {
9099
9172
  const totalPages = ((_c = p.pages) != null ? _c : []).length;
9100
9173
  const page = p.pages[currentPage];
9101
9174
  const pageHighlights = ((_d = p.highlights) != null ? _d : []).filter((h) => h.pageIndex === currentPage);
9175
+ const [pdfFailed, setPdfFailed] = useState(false);
9176
+ const pdfWorkerReady = usePdfWorkerReady(hasRealFile && isPdf);
9177
+ const pdfReady = pdfFailed ? false : pdfWorkerReady;
9178
+ const showPdfViewer = hasRealFile && isPdf && pdfReady === true;
9179
+ const pdfPending = hasRealFile && isPdf && pdfReady === null;
9102
9180
  const handlePdfLoad = useCallback(() => {
9103
9181
  }, []);
9182
+ const handlePdfError = useCallback(() => setPdfFailed(true), []);
9104
9183
  const handleExcelLoad = useCallback(() => {
9105
9184
  }, []);
9106
9185
  return /* @__PURE__ */ jsx(ComponentActions, { filename: (_e = p.title) != null ? _e : "document-preview", children: /* @__PURE__ */ jsxs(
@@ -9194,7 +9273,7 @@ function DocumentPreviewResolver(p) {
9194
9273
  children: pg.label
9195
9274
  },
9196
9275
  i
9197
- )) }) : !hasRealFile && totalPages > 1 && /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px", padding: "6px 14px", borderLeft: `1px solid ${BORDER3}`, borderRight: `1px solid ${BORDER3}`, background: SURFACE2 }, children: [
9276
+ )) }) : (!hasRealFile || pdfReady === false) && totalPages > 1 && /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px", padding: "6px 14px", borderLeft: `1px solid ${BORDER3}`, borderRight: `1px solid ${BORDER3}`, background: SURFACE2 }, children: [
9198
9277
  /* @__PURE__ */ jsx("button", { onClick: () => setCurrentPage(Math.max(0, currentPage - 1)), disabled: currentPage === 0, style: { border: `1px solid ${BORDER3}`, borderRadius: "4px", padding: "2px 8px", background: SURFACE2, cursor: "pointer", fontSize: "12px", color: currentPage === 0 ? BORDER3 : MUTED2 }, children: "\u2190" }),
9199
9278
  /* @__PURE__ */ jsxs("span", { style: { fontSize: "12px", color: MUTED2 }, children: [
9200
9279
  currentPage + 1,
@@ -9214,7 +9293,7 @@ function DocumentPreviewResolver(p) {
9214
9293
  display: "flex",
9215
9294
  flexDirection: "column"
9216
9295
  }, children: [
9217
- hasRealFile && isPdf ? /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(PdfViewer2, { url: (_q = p.source) == null ? void 0 : _q.url, base64: (_r = p.source) == null ? void 0 : _r.base64, onLoadSuccess: handlePdfLoad }) }) : hasRealFile && isExcel ? /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(ExcelViewer2, { url: (_s = p.source) == null ? void 0 : _s.url, base64: (_t = p.source) == null ? void 0 : _t.base64, onLoadSuccess: handleExcelLoad }) }) : (page == null ? void 0 : page.imageUrl) ? /* @__PURE__ */ jsx("div", { style: { padding: "20px" }, children: /* @__PURE__ */ jsx("img", { src: page.imageUrl, alt: page.label, style: { maxWidth: "100%", borderRadius: "4px" } }) }) : (page == null ? void 0 : page.content) ? /* @__PURE__ */ jsx("div", { style: { fontFamily: "var(--font-sans, system-ui)", fontSize: "13px", color: "var(--foreground)", lineHeight: 1.6, margin: 0, padding: "20px" }, children: /* @__PURE__ */ jsx(Markdown, { content: page.content }) }) : /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", justifyContent: "center", height: "120px", color: MUTED2, fontSize: "13px" }, children: [
9296
+ showPdfViewer ? /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(PdfViewer2, { url: (_q = p.source) == null ? void 0 : _q.url, base64: (_r = p.source) == null ? void 0 : _r.base64, onLoadSuccess: handlePdfLoad, onLoadError: handlePdfError }) }) : pdfPending ? /* @__PURE__ */ jsx("div", { style: { display: "flex", alignItems: "center", justifyContent: "center", height: "200px", color: MUTED2, fontSize: "13px" }, children: "Loading preview\u2026" }) : hasRealFile && isExcel ? /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(ExcelViewer2, { url: (_s = p.source) == null ? void 0 : _s.url, base64: (_t = p.source) == null ? void 0 : _t.base64, onLoadSuccess: handleExcelLoad }) }) : (page == null ? void 0 : page.imageUrl) ? /* @__PURE__ */ jsx("div", { style: { padding: "20px" }, children: /* @__PURE__ */ jsx("img", { src: page.imageUrl, alt: page.label, style: { maxWidth: "100%", borderRadius: "4px" } }) }) : (page == null ? void 0 : page.content) ? /* @__PURE__ */ jsx("div", { style: { fontFamily: "var(--font-sans, system-ui)", fontSize: "13px", color: "var(--foreground)", lineHeight: 1.6, margin: 0, padding: "20px" }, children: /* @__PURE__ */ jsx(Markdown, { content: page.content }) }) : /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", justifyContent: "center", height: "120px", color: MUTED2, fontSize: "13px" }, children: [
9218
9297
  "No content available for ",
9219
9298
  (_u = page == null ? void 0 : page.label) != null ? _u : "this page"
9220
9299
  ] }),
@@ -11796,6 +11875,7 @@ function isExpirySoon(expiresAt) {
11796
11875
 
11797
11876
  // src/shared/viewers/PreviewHost.tsx
11798
11877
  init_ThemeContext();
11878
+ init_pdfWorkerProbe();
11799
11879
  var PdfViewer3 = lazy(
11800
11880
  () => Promise.resolve().then(() => (init_PdfViewer(), PdfViewer_exports)).then((m) => ({ default: m.PdfViewer }))
11801
11881
  );
@@ -11807,6 +11887,19 @@ var TextViewer2 = lazy(() => Promise.resolve().then(() => (init_TextViewer(), Te
11807
11887
  var DocxViewer2 = lazy(() => Promise.resolve().then(() => (init_DocxViewer(), DocxViewer_exports)).then((m) => ({ default: m.DocxViewer })));
11808
11888
  var PEEK_ROWS = 20;
11809
11889
  var PEEK_LINES = 40;
11890
+ function GatedPdfViewer({ source }) {
11891
+ const { MUTED: MUTED2 } = useTheme();
11892
+ const [failed, setFailed] = useState(false);
11893
+ const workerReady = usePdfWorkerReady(true);
11894
+ const ready = failed ? false : workerReady;
11895
+ if (ready === null) {
11896
+ return /* @__PURE__ */ jsx("div", { style: { padding: "24px", color: MUTED2, fontSize: "13px", textAlign: "center" }, children: "Loading preview\u2026" });
11897
+ }
11898
+ if (ready === false) {
11899
+ return /* @__PURE__ */ jsx("div", { style: { padding: "24px", color: MUTED2, fontSize: "13px", textAlign: "center" }, children: "Preview unavailable \u2014 download the file to view it." });
11900
+ }
11901
+ return /* @__PURE__ */ jsx(PdfViewer3, { url: source.url, base64: source.base64, onLoadError: () => setFailed(true) });
11902
+ }
11810
11903
  function PreviewHost({ kind, source, mode = "full" }) {
11811
11904
  const { MUTED: MUTED2 } = useTheme();
11812
11905
  const peek = mode === "peek";
@@ -11814,7 +11907,7 @@ function PreviewHost({ kind, source, mode = "full" }) {
11814
11907
  let viewer = null;
11815
11908
  switch (kind) {
11816
11909
  case "pdf":
11817
- viewer = /* @__PURE__ */ jsx(PdfViewer3, { url: source.url, base64: source.base64 });
11910
+ viewer = /* @__PURE__ */ jsx(GatedPdfViewer, { source });
11818
11911
  break;
11819
11912
  case "excel":
11820
11913
  viewer = /* @__PURE__ */ jsx(ExcelViewer3, { url: source.url, base64: source.base64 });
@@ -23633,6 +23726,6 @@ function resolveBuilder(payload, callbacks) {
23633
23726
  // src/index.ts
23634
23727
  init_Markdown();
23635
23728
 
23636
- export { ACCENT, ACCENT_SOFT, ACCOUNT_TYPE_COLORS, AgingReportResolver, AlertResolver, AllocationDonutResolver, AreaChartResolver, AuditTrailResolver, BORDER, BORDER_SOFT, BUILDER_FIELD_TYPES, BuilderFormResolver, BuilderRecap, CHART_PALETTE, ComparativeBarChartResolver, ComplianceChecklistResolver, ComponentActions, ContextSlot, DEFAULT_INTERACTION, DEFAULT_TOKENS, DataTableResolver, DecisionCardRenderer, DecisionCardResolver, DocumentFieldExtractionResolver, DocumentFieldExtractionSkeleton, DocumentPreviewResolver, EngagementPipelineResolver, FIELD_REGISTRY, FOREGROUND, FieldAuditLog, FieldDetails, FieldRenderer, FileCard, FitText, FlowCanvasRenderer, FlowCanvasResolver, GenUIInteractionProvider, GenUIRenderer, GenUIThemeProvider, GroupedTableResolver, HeatmapTableResolver, JournalEntryResolver, LegalTestResultResolver, MUTED, Markdown, NUMERIC_CELL, NewsFeedResolver, PAPER, PreviewHost, PreviewModal, ProvenanceChainResolver, ReconciliationViewResolver, SCRIM, SECONDARY, SEMANTIC, SHADOW, STATUS_COLORS, SURFACE, SURFACE_MUTED, ScreenerTableResolver, SearchResultsResolver, SparklineTableResolver, StackedBreakdownResolver, StatGridResolver, StatusCardResolver, TRUNCATE, TabsPanelResolver, TrialBalanceResolver, VarianceAnalysisResolver, WaterfallChartResolver, WorkflowStepperRenderer, WorkflowStepperResolver, buildRenderUITool, builderBlockSchema, builderFieldSchema, builderSchema, coercePayload, downloadCSV, fileTypeMeta, formatExpiry, isExpirySoon, isPreviewable, previewKindFor, resolveBuilder, resolveUI, schemaRegistry, useBuilderState, useGenUIInteraction, useTheme, validateBuilderPayload, validatePayload };
23729
+ export { ACCENT, ACCENT_SOFT, ACCOUNT_TYPE_COLORS, AgingReportResolver, AlertResolver, AllocationDonutResolver, AreaChartResolver, AuditTrailResolver, BORDER, BORDER_SOFT, BUILDER_FIELD_TYPES, BuilderFormResolver, BuilderRecap, CHART_PALETTE, ComparativeBarChartResolver, ComplianceChecklistResolver, ComponentActions, ContextSlot, DEFAULT_INTERACTION, DEFAULT_TOKENS, DataTableResolver, DecisionCardRenderer, DecisionCardResolver, DocumentFieldExtractionResolver, DocumentFieldExtractionSkeleton, DocumentPreviewResolver, EngagementPipelineResolver, EscalationCardResolver, FIELD_REGISTRY, FOREGROUND, FieldAuditLog, FieldDetails, FieldRenderer, FileCard, FitText, FlowCanvasRenderer, FlowCanvasResolver, GenUIInteractionProvider, GenUIRenderer, GenUIThemeProvider, GroupedTableResolver, HeatmapTableResolver, JournalEntryResolver, LegalTestResultResolver, MUTED, Markdown, NUMERIC_CELL, NewsFeedResolver, PAPER, PreviewHost, PreviewModal, ProvenanceChainResolver, ReconciliationViewResolver, SCRIM, SECONDARY, SEMANTIC, SHADOW, STATUS_COLORS, SURFACE, SURFACE_MUTED, ScreenerTableResolver, SearchResultsResolver, SparklineTableResolver, StackedBreakdownResolver, StatGridResolver, StatusCardResolver, TRUNCATE, TabsPanelResolver, TrialBalanceResolver, VarianceAnalysisResolver, WaterfallChartResolver, WorkflowStepperRenderer, WorkflowStepperResolver, buildRenderUITool, builderBlockSchema, builderFieldSchema, builderSchema, coercePayload, downloadCSV, fileTypeMeta, formatExpiry, isExpirySoon, isPreviewable, previewKindFor, resolveBuilder, resolveUI, schemaRegistry, useBuilderState, useGenUIInteraction, useTheme, validateBuilderPayload, validatePayload };
23637
23730
  //# sourceMappingURL=index.js.map
23638
23731
  //# sourceMappingURL=index.js.map