@adoptai/genui-components 0.1.56 → 0.1.58

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 (52) hide show
  1. package/dist/builders/BuilderForm.d.ts.map +1 -1
  2. package/dist/composites/decision-card/resolver.cjs +634 -0
  3. package/dist/composites/decision-card/resolver.cjs.map +1 -0
  4. package/dist/composites/decision-card/resolver.d.ts +13 -0
  5. package/dist/composites/decision-card/resolver.d.ts.map +1 -0
  6. package/dist/composites/decision-card/resolver.js +627 -0
  7. package/dist/composites/decision-card/resolver.js.map +1 -0
  8. package/dist/composites/document-field-extraction/FieldAuditLog.d.ts +27 -0
  9. package/dist/composites/document-field-extraction/FieldAuditLog.d.ts.map +1 -0
  10. package/dist/composites/document-field-extraction/FieldDetail.d.ts +22 -0
  11. package/dist/composites/document-field-extraction/FieldDetail.d.ts.map +1 -0
  12. package/dist/composites/document-field-extraction/FieldDetails.d.ts +18 -0
  13. package/dist/composites/document-field-extraction/FieldDetails.d.ts.map +1 -0
  14. package/dist/composites/document-field-extraction/bboxTransform.d.ts +25 -0
  15. package/dist/composites/document-field-extraction/bboxTransform.d.ts.map +1 -0
  16. package/dist/composites/document-field-extraction/fieldLabels.d.ts +2 -0
  17. package/dist/composites/document-field-extraction/fieldLabels.d.ts.map +1 -0
  18. package/dist/composites/document-field-extraction/resolver.d.ts +16 -0
  19. package/dist/composites/document-field-extraction/resolver.d.ts.map +1 -0
  20. package/dist/composites/workflow-stepper/resolver.cjs +4 -1
  21. package/dist/composites/workflow-stepper/resolver.cjs.map +1 -1
  22. package/dist/composites/workflow-stepper/resolver.js +4 -1
  23. package/dist/composites/workflow-stepper/resolver.js.map +1 -1
  24. package/dist/index.cjs +2735 -382
  25. package/dist/index.cjs.map +1 -1
  26. package/dist/index.d.ts +7 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +2530 -183
  29. package/dist/index.js.map +1 -1
  30. package/dist/renderer.cjs +2410 -178
  31. package/dist/renderer.cjs.map +1 -1
  32. package/dist/renderer.js +2267 -35
  33. package/dist/renderer.js.map +1 -1
  34. package/dist/resolver.cjs +2409 -177
  35. package/dist/resolver.cjs.map +1 -1
  36. package/dist/resolver.d.ts.map +1 -1
  37. package/dist/resolver.js +2267 -35
  38. package/dist/resolver.js.map +1 -1
  39. package/dist/schemas/decision-card.d.ts +149 -0
  40. package/dist/schemas/decision-card.d.ts.map +1 -0
  41. package/dist/schemas/document-field-extraction.d.ts +258 -0
  42. package/dist/schemas/document-field-extraction.d.ts.map +1 -0
  43. package/dist/schemas/index.cjs +283 -1
  44. package/dist/schemas/index.cjs.map +1 -1
  45. package/dist/schemas/index.d.ts +407 -0
  46. package/dist/schemas/index.d.ts.map +1 -1
  47. package/dist/schemas/index.js +283 -1
  48. package/dist/schemas/index.js.map +1 -1
  49. package/dist/shared/InteractionContext.d.ts +10 -0
  50. package/dist/shared/InteractionContext.d.ts.map +1 -1
  51. package/dist/tool-definitions.json +359 -3
  52. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/shared/theme.ts","../../../src/shared/ColumnSettingsPanel.tsx","../../../src/shared/ComponentActions.tsx","../../../src/shared/ThemeContext.tsx","../../../src/shared/InteractionContext.tsx","../../../src/composites/decision-card/resolver.tsx"],"names":["jsxs","jsx","createContext","useContext","React","BORDER","MUTED","ACCENT","ACCENT_SOFT","_a"],"mappings":"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","file":"resolver.js","sourcesContent":["export const BORDER = \"#dedede\";\nexport const MUTED = \"#777777\";\nexport const PAPER = \"#f6f6f6\";\nexport const ACCENT = \"#ff5000\";\nexport const ACCENT_SOFT = \"#cc4000\";\nexport const SECONDARY = \"#0364ff\";\n\nexport const ACCOUNT_TYPE_COLORS = {\n asset: { bg: \"#eff6ff\", color: \"#1d4ed8\" },\n liability: { bg: \"#fff7ed\", color: \"#92400e\" },\n equity: { bg: \"#f5f3ff\", color: \"#7c3aed\" },\n revenue: { bg: \"#dcfce7\", color: \"#15803d\" },\n expense: { bg: \"#fef2f2\", color: \"#dc2626\" },\n} as const;\n\nexport const STATUS_COLORS = {\n draft: { bg: \"#fff7ed\", color: \"#92400e\" },\n \"pending-review\": { bg: \"#eff6ff\", color: \"#1d4ed8\" },\n approved: { bg: \"#dcfce7\", color: \"#15803d\" },\n filed: { bg: \"#f5f3ff\", color: \"#7c3aed\" },\n} as const;\n\nexport const CHART_PALETTE = [\n \"#ff5000\",\n \"#0364ff\",\n \"#16a34a\",\n \"#dc2626\",\n \"#7c3aed\",\n \"#0891b2\",\n \"#f59e0b\",\n \"#6366f1\",\n \"#ec4899\",\n \"#84cc16\",\n \"#e11d48\",\n \"#0ea5e9\",\n];\n","\"use client\";\n\nimport React from \"react\";\nimport { BORDER, MUTED, ACCENT } from \"./theme\";\n\ninterface ColumnSettingsPanelProps {\n columns: { key: string; label: string }[];\n hidden: Set<string>;\n onToggle: (key: string) => void;\n onShowAll: () => void;\n onHideAll: () => void;\n}\n\nexport function ColumnSettingsPanel({ columns, hidden, onToggle, onShowAll, onHideAll }: ColumnSettingsPanelProps) {\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"6px\", minWidth: \"180px\" }}>\n <div style={{ display: \"flex\", justifyContent: \"space-between\", paddingBottom: \"4px\", borderBottom: `1px solid ${BORDER}` }}>\n <button\n onClick={onShowAll}\n style={{ background: \"none\", border: \"none\", cursor: \"pointer\", fontSize: \"11px\", color: ACCENT, fontWeight: 500, padding: 0 }}\n >\n Show all\n </button>\n <button\n onClick={onHideAll}\n style={{ background: \"none\", border: \"none\", cursor: \"pointer\", fontSize: \"11px\", color: MUTED, fontWeight: 500, padding: 0 }}\n >\n Hide all\n </button>\n </div>\n {columns.map((col) => (\n <label\n key={col.key}\n style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\", cursor: \"pointer\", fontSize: \"12px\", color: \"var(--foreground)\" }}\n >\n <input\n type=\"checkbox\"\n checked={!hidden.has(col.key)}\n onChange={() => onToggle(col.key)}\n style={{ accentColor: ACCENT, width: \"14px\", height: \"14px\", margin: 0, cursor: \"pointer\" }}\n />\n {col.label}\n </label>\n ))}\n </div>\n );\n}\n","\"use client\";\n\nimport React, { useState, useRef, useEffect, useCallback } from \"react\";\nimport { toPng } from \"html-to-image\";\nimport { ColumnSettingsPanel } from \"./ColumnSettingsPanel\";\nimport { BORDER, MUTED } from \"./theme\";\n\nconst DOT_COLOR = \"#aaaaaa\";\nconst DOT_HOVER = \"#555555\";\n\ninterface ColumnConfig {\n columns: { key: string; label: string }[];\n hidden: Set<string>;\n onToggle: (key: string) => void;\n onShowAll: () => void;\n onHideAll: () => void;\n}\n\ninterface ComponentActionsProps {\n children: React.ReactNode;\n onDownloadCSV?: () => void;\n columnConfig?: ColumnConfig;\n filename?: string;\n}\n\ntype MenuView = \"main\" | \"columns\";\n\nexport function ComponentActions({ children, onDownloadCSV, columnConfig, filename = \"component\" }: ComponentActionsProps) {\n const [open, setOpen] = useState(false);\n const [view, setView] = useState<MenuView>(\"main\");\n const contentRef = useRef<HTMLDivElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n const btnRef = useRef<HTMLButtonElement>(null);\n\n const close = useCallback(() => {\n setOpen(false);\n setView(\"main\");\n }, []);\n\n useEffect(() => {\n if (!open) return;\n const handler = (e: MouseEvent) => {\n if (menuRef.current?.contains(e.target as Node)) return;\n if (btnRef.current?.contains(e.target as Node)) return;\n close();\n };\n document.addEventListener(\"mousedown\", handler);\n return () => document.removeEventListener(\"mousedown\", handler);\n }, [open, close]);\n\n const handleDownloadPNG = useCallback(async () => {\n if (!contentRef.current) return;\n try {\n const url = await toPng(contentRef.current, { backgroundColor: \"white\", pixelRatio: 2 });\n const a = document.createElement(\"a\");\n a.href = url;\n a.download = `${filename}.png`;\n a.click();\n } catch {\n // silent fail\n }\n close();\n }, [filename, close]);\n\n const handleCSV = useCallback(() => {\n onDownloadCSV?.();\n close();\n }, [onDownloadCSV, close]);\n\n return (\n <div style={{ width: \"100%\", display: \"flex\", flexDirection: \"column\" }}>\n <div ref={contentRef} style={{ width: \"100%\" }}>\n {children}\n </div>\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", marginTop: \"4px\", position: \"relative\", zIndex: 10, flexShrink: 0 }}>\n <button\n ref={btnRef}\n onClick={() => { setOpen((o) => !o); setView(\"main\"); }}\n aria-label=\"Component actions\"\n style={{\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n padding: \"4px 8px\",\n display: \"flex\",\n gap: \"3px\",\n alignItems: \"center\",\n borderRadius: \"6px\",\n transition: \"background 0.15s\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = \"#f2f2f2\";\n e.currentTarget.querySelectorAll<SVGCircleElement>(\"circle\").forEach((c) => (c.style.fill = DOT_HOVER));\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"none\";\n e.currentTarget.querySelectorAll<SVGCircleElement>(\"circle\").forEach((c) => (c.style.fill = DOT_COLOR));\n }}\n >\n <svg width=\"20\" height=\"6\" viewBox=\"0 0 20 6\">\n <circle cx=\"3\" cy=\"3\" r=\"2\" style={{ fill: DOT_COLOR, transition: \"fill 0.15s\" }} />\n <circle cx=\"10\" cy=\"3\" r=\"2\" style={{ fill: DOT_COLOR, transition: \"fill 0.15s\" }} />\n <circle cx=\"17\" cy=\"3\" r=\"2\" style={{ fill: DOT_COLOR, transition: \"fill 0.15s\" }} />\n </svg>\n </button>\n\n {open && (\n <div\n ref={menuRef}\n style={{\n position: \"absolute\",\n bottom: \"100%\",\n right: 0,\n marginBottom: \"4px\",\n background: \"white\",\n border: `1px solid ${BORDER}`,\n borderRadius: \"0.75rem\",\n boxShadow: \"0 4px 12px rgba(0,0,0,0.06)\",\n zIndex: 50,\n padding: view === \"columns\" ? \"10px\" : \"4px\",\n minWidth: view === \"columns\" ? \"200px\" : \"160px\",\n }}\n >\n {view === \"main\" ? (\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n {columnConfig && (\n <MenuButton label=\"Customize columns\" onClick={() => setView(\"columns\")} />\n )}\n {onDownloadCSV && (\n <MenuButton label=\"Download CSV\" onClick={handleCSV} />\n )}\n <MenuButton label=\"Download PNG\" onClick={handleDownloadPNG} />\n </div>\n ) : (\n <div>\n <button\n onClick={() => setView(\"main\")}\n style={{ background: \"none\", border: \"none\", cursor: \"pointer\", fontSize: \"11px\", color: MUTED, marginBottom: \"6px\", padding: 0 }}\n >\n ← Back\n </button>\n <ColumnSettingsPanel\n columns={columnConfig!.columns}\n hidden={columnConfig!.hidden}\n onToggle={columnConfig!.onToggle}\n onShowAll={columnConfig!.onShowAll}\n onHideAll={columnConfig!.onHideAll}\n />\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nfunction MenuButton({ label, onClick }: { label: string; onClick: () => void }) {\n return (\n <button\n onClick={onClick}\n style={{\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n padding: \"8px 12px\",\n fontSize: \"12.5px\",\n color: \"var(--foreground)\",\n textAlign: \"left\",\n borderRadius: \"8px\",\n transition: \"background 0.15s\",\n whiteSpace: \"nowrap\",\n }}\n onMouseEnter={(e) => (e.currentTarget.style.background = \"#f2f2f2\")}\n onMouseLeave={(e) => (e.currentTarget.style.background = \"none\")}\n >\n {label}\n </button>\n );\n}\n","\"use client\";\n\nimport React, { createContext, useContext, useMemo } from \"react\";\nimport {\n BORDER,\n MUTED,\n PAPER,\n ACCENT,\n ACCENT_SOFT,\n SECONDARY,\n CHART_PALETTE,\n} from \"./theme\";\n\nexport interface ThemeTokens {\n BORDER: string;\n MUTED: string;\n PAPER: string;\n ACCENT: string;\n ACCENT_SOFT: string;\n SECONDARY: string;\n CHART_PALETTE: string[];\n}\n\nexport const DEFAULT_TOKENS: ThemeTokens = {\n BORDER,\n MUTED,\n PAPER,\n ACCENT,\n ACCENT_SOFT,\n SECONDARY,\n CHART_PALETTE: [...CHART_PALETTE],\n};\n\nconst GenUIThemeContext = createContext<ThemeTokens>(DEFAULT_TOKENS);\n\nexport interface GenUIThemeProviderProps {\n colors?: Partial<ThemeTokens>;\n children: React.ReactNode;\n}\n\nexport function GenUIThemeProvider({ colors, children }: GenUIThemeProviderProps) {\n const merged = useMemo(\n () => (colors ? { ...DEFAULT_TOKENS, ...colors } : DEFAULT_TOKENS),\n [colors]\n );\n return (\n <GenUIThemeContext.Provider value={merged}>\n {children}\n </GenUIThemeContext.Provider>\n );\n}\n\nexport function useTheme(): ThemeTokens {\n return useContext(GenUIThemeContext);\n}\n","\"use client\";\n\nimport React, { createContext, useContext } from \"react\";\n\n/**\n * Host-provided interaction channel for composites that support selection\n * (e.g. workflow-stepper step clicks driving a transcript filter).\n *\n * Mirrors ThemeContext: safe no-op defaults so composites render inert when\n * the host does not mount the provider (storybook, plain chat embeds).\n */\nexport interface GenUIInteraction {\n selectedStepId: string | null;\n onStepSelect?: (stepId: string | null) => void;\n /** Decision-card resolutions, keyed by decision id, so a resolved card\n * re-renders locked from host state (transcript replay). */\n resolvedDecisions?: Record<string, string>;\n /** Host callback when a decision-card option is chosen. */\n onDecisionResolve?: (decisionId: string, option: string) => void;\n /** Host callback when a decision-card \"view source\" link is activated. */\n onDecisionSource?: (decisionId: string, source?: { url?: string; label?: string }) => void;\n}\n\nexport const DEFAULT_INTERACTION: GenUIInteraction = {\n selectedStepId: null,\n onStepSelect: undefined,\n resolvedDecisions: undefined,\n onDecisionResolve: undefined,\n onDecisionSource: undefined,\n};\n\nconst GenUIInteractionContext = createContext<GenUIInteraction>(DEFAULT_INTERACTION);\n\nexport interface GenUIInteractionProviderProps {\n value: GenUIInteraction;\n children: React.ReactNode;\n}\n\nexport function GenUIInteractionProvider({ value, children }: GenUIInteractionProviderProps) {\n return (\n <GenUIInteractionContext.Provider value={value}>\n {children}\n </GenUIInteractionContext.Provider>\n );\n}\n\nexport function useGenUIInteraction(): GenUIInteraction {\n return useContext(GenUIInteractionContext);\n}\n","\"use client\";\n\nimport React from \"react\";\nimport type { SchemaPayload } from \"../../schemas\";\nimport { ComponentActions } from \"../../shared/ComponentActions\";\nimport { useTheme } from \"../../shared/ThemeContext\";\nimport { useGenUIInteraction } from \"../../shared/InteractionContext\";\n\ntype DecisionCardPayload = SchemaPayload<\"decision-card\">;\ntype Flag = NonNullable<DecisionCardPayload[\"flags\"]>[number];\ntype Severity = \"low\" | \"medium\" | \"high\";\n\nconst SEVERITY_COLORS: Record<Severity, { color: string; bg: string }> = {\n high: { color: \"#dc2626\", bg: \"#fef2f2\" },\n medium: { color: \"#f59e0b\", bg: \"#fff7ed\" },\n low: { color: \"#777777\", bg: \"#f2f2f2\" },\n};\n\nconst GREEN = \"#15803d\";\nconst GREEN_SOFT = \"#dcfce7\";\n\n// Below this measured width the option buttons stack full-width and the amount\n// drops under the title — the \"adaptive\" behaviour the host asked for.\nconst STACK_BELOW = 380;\n\nfunction formatAmount(amount: number, currency = \"USD\"): string {\n const abs = Math.abs(amount);\n const sign = amount < 0 ? \"-\" : \"\";\n let body: string;\n if (abs >= 1_000_000) body = `${(abs / 1_000_000).toFixed(abs >= 10_000_000 ? 0 : 1)}M`;\n else if (abs >= 1_000) body = `${(abs / 1_000).toFixed(abs >= 10_000 ? 0 : 1)}K`;\n else body = `${abs}`;\n let symbol = \"$\";\n try {\n const parts = new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency,\n maximumFractionDigits: 0,\n }).formatToParts(0);\n symbol = parts.find((p) => p.type === \"currency\")?.value ?? \"$\";\n } catch {\n symbol = \"$\";\n }\n return `${sign}${symbol}${body}`;\n}\n\n/** Container-width tracker for the adaptive layout. Pure ResizeObserver. */\nfunction useContainerWidth<T extends HTMLElement>(ref: React.RefObject<T | null>): number {\n const [w, setW] = React.useState(0);\n React.useLayoutEffect(() => {\n const el = ref.current;\n if (!el || typeof ResizeObserver === \"undefined\") return;\n const ro = new ResizeObserver((entries) => {\n const cr = entries[0]?.contentRect;\n if (cr) setW(cr.width);\n });\n ro.observe(el);\n setW(el.getBoundingClientRect().width);\n return () => ro.disconnect();\n }, [ref]);\n return w;\n}\n\nconst KEYFRAMES = `\n@keyframes dcRise{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}\n.dc-rise{animation:dcRise 0.28s cubic-bezier(0.22,1,0.36,1) both}\n@media (prefers-reduced-motion: reduce){\n .dc-rise{animation:none !important;opacity:1 !important;transform:none !important}\n}`;\n\nfunction SparkCheck({ size, color }: { size: number; color: string }) {\n return (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M5 13l4 4L19 7\"\n stroke={color}\n strokeWidth={2.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nfunction FlagPill({ flag }: { flag: Flag }) {\n const sev = (flag.severity ?? \"medium\") as Severity;\n const { color, bg } = SEVERITY_COLORS[sev];\n return (\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 5,\n fontSize: 11,\n fontWeight: 600,\n padding: \"3px 9px\",\n borderRadius: 9999,\n background: bg,\n color,\n lineHeight: 1.2,\n }}\n >\n <span\n aria-hidden=\"true\"\n style={{ width: 6, height: 6, borderRadius: \"50%\", background: color, flexShrink: 0 }}\n />\n {flag.field ? `${flag.field}: ${flag.issue}` : flag.issue}\n </span>\n );\n}\n\nexport interface DecisionCardRendererProps {\n data: DecisionCardPayload;\n /** Chosen option label when resolved (host- or self-controlled). */\n resolved?: string | null;\n onResolve?: (option: string) => void;\n onOpenSource?: () => void;\n}\n\nexport function DecisionCardRenderer({\n data,\n resolved = null,\n onResolve,\n onOpenSource,\n}: DecisionCardRendererProps) {\n const { BORDER, MUTED, ACCENT, ACCENT_SOFT } = useTheme();\n const rootRef = React.useRef<HTMLDivElement>(null);\n const width = useContainerWidth(rootRef);\n const stacked = width > 0 && width < STACK_BELOW;\n\n const options = data.options ?? [];\n const recommendedIdx = Math.max(\n 0,\n options.findIndex((o) => o.recommended)\n );\n const railColor = data.severity ? SEVERITY_COLORS[data.severity].color : ACCENT;\n const isResolved = Boolean(resolved);\n\n const amountNode =\n typeof data.amount === \"number\" ? (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: stacked ? \"flex-start\" : \"flex-end\",\n gap: 1,\n flexShrink: 0,\n }}\n >\n {data.amount_label && (\n <span\n style={{\n fontSize: 10,\n textTransform: \"uppercase\",\n letterSpacing: \"0.07em\",\n fontWeight: 700,\n color: MUTED,\n }}\n >\n {data.amount_label}\n </span>\n )}\n <span\n style={{\n fontSize: 18,\n fontWeight: 700,\n color: \"var(--foreground)\",\n fontVariantNumeric: \"tabular-nums\",\n letterSpacing: \"-0.01em\",\n lineHeight: 1.1,\n }}\n >\n {formatAmount(data.amount, data.currency)}\n </span>\n </div>\n ) : null;\n\n return (\n <div\n ref={rootRef}\n className=\"dc-rise\"\n data-testid=\"decision-card\"\n data-resolved={isResolved || undefined}\n style={{\n position: \"relative\",\n width: \"100%\",\n minWidth: 0,\n boxSizing: \"border-box\",\n borderRadius: \"0.75rem\",\n border: `1px solid ${isResolved ? GREEN_SOFT : BORDER}`,\n background: isResolved ? \"#f6fef9\" : \"white\",\n boxShadow: \"0 1px 2px rgba(0,0,0,0.03), 0 4px 12px rgba(0,0,0,0.04)\",\n padding: \"16px 18px 16px 20px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: 12,\n overflow: \"hidden\",\n }}\n >\n <style>{KEYFRAMES}</style>\n\n {/* Accent rail */}\n <div\n aria-hidden=\"true\"\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n bottom: 0,\n width: 4,\n background: isResolved ? GREEN : railColor,\n }}\n />\n\n {/* Header */}\n <div\n style={{\n display: \"flex\",\n flexDirection: stacked ? \"column\" : \"row\",\n alignItems: stacked ? \"flex-start\" : \"flex-start\",\n justifyContent: \"space-between\",\n gap: stacked ? 6 : 12,\n }}\n >\n <div style={{ minWidth: 0, display: \"flex\", flexDirection: \"column\", gap: 4 }}>\n <span\n style={{\n fontSize: 10.5,\n textTransform: \"uppercase\",\n letterSpacing: \"0.07em\",\n fontWeight: 700,\n color: ACCENT,\n }}\n >\n {data.decision_type ? `Decision needs you · ${data.decision_type}` : \"Decision needs you\"}\n </span>\n <p\n style={{\n fontFamily: \"var(--font-serif)\",\n fontSize: 17,\n fontWeight: 400,\n color: \"var(--foreground)\",\n letterSpacing: \"-0.01em\",\n margin: 0,\n lineHeight: 1.2,\n }}\n >\n {data.title}\n </p>\n </div>\n {amountNode}\n </div>\n\n {/* Question */}\n <p style={{ fontSize: 13, lineHeight: 1.5, color: MUTED, margin: 0 }}>{data.question}</p>\n\n {/* Flags */}\n {data.flags && data.flags.length > 0 && (\n <div style={{ display: \"flex\", flexWrap: \"wrap\", gap: 6 }}>\n {data.flags.map((flag, i) => (\n <FlagPill key={`${flag.field ?? \"flag\"}-${i}`} flag={flag} />\n ))}\n </div>\n )}\n\n {/* Resolution */}\n {isResolved ? (\n <div\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 7,\n fontSize: 13,\n fontWeight: 600,\n color: GREEN,\n }}\n >\n <SparkCheck size={16} color={GREEN} />\n Resolved · {resolved}\n </div>\n ) : (\n <>\n <div\n style={{\n display: \"flex\",\n flexDirection: stacked ? \"column\" : \"row\",\n flexWrap: stacked ? \"nowrap\" : \"wrap\",\n gap: 8,\n }}\n >\n {options.map((opt, idx) => {\n const primary = idx === recommendedIdx;\n return (\n <button\n key={opt.id ?? opt.label}\n type=\"button\"\n onClick={() => onResolve?.(opt.label)}\n style={{\n width: stacked ? \"100%\" : \"auto\",\n textAlign: stacked ? \"left\" : \"center\",\n border: `1px solid ${primary ? ACCENT : BORDER}`,\n background: primary ? ACCENT : \"white\",\n color: primary ? \"white\" : \"var(--foreground)\",\n borderRadius: 8,\n fontSize: 13,\n fontWeight: 600,\n padding: \"9px 14px\",\n cursor: \"pointer\",\n transition: \"background 0.15s, border-color 0.15s, color 0.15s\",\n }}\n onMouseEnter={(e) => {\n if (primary) {\n e.currentTarget.style.background = ACCENT_SOFT;\n } else {\n e.currentTarget.style.borderColor = ACCENT;\n e.currentTarget.style.background = \"#fafafa\";\n }\n }}\n onMouseLeave={(e) => {\n if (primary) {\n e.currentTarget.style.background = ACCENT;\n } else {\n e.currentTarget.style.borderColor = BORDER;\n e.currentTarget.style.background = \"white\";\n }\n }}\n >\n {opt.label}\n </button>\n );\n })}\n </div>\n\n {data.source && (\n <button\n type=\"button\"\n onClick={onOpenSource}\n style={{\n alignSelf: \"flex-start\",\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 5,\n border: \"none\",\n background: \"none\",\n padding: 0,\n cursor: \"pointer\",\n fontSize: 12,\n fontWeight: 600,\n color: MUTED,\n transition: \"color 0.15s\",\n }}\n onMouseEnter={(e) => (e.currentTarget.style.color = ACCENT)}\n onMouseLeave={(e) => (e.currentTarget.style.color = MUTED)}\n >\n <svg width={13} height={13} viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M14 3v4a1 1 0 001 1h4M5 4a1 1 0 011-1h8l5 5v11a1 1 0 01-1 1H6a1 1 0 01-1-1V4z\"\n stroke=\"currentColor\"\n strokeWidth={1.8}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n {data.source.label ?? \"View source for this figure\"}\n </button>\n )}\n </>\n )}\n </div>\n );\n}\n\nexport function DecisionCardResolver(p: DecisionCardPayload) {\n const { resolvedDecisions, onDecisionResolve, onDecisionSource } = useGenUIInteraction();\n const decisionId = p.id ?? p.title;\n\n const hostResolved = resolvedDecisions?.[decisionId];\n const initial = hostResolved ?? p.resolved?.option ?? null;\n const [localResolved, setLocalResolved] = React.useState<string | null>(initial);\n\n React.useEffect(() => {\n if (hostResolved !== undefined) setLocalResolved(hostResolved);\n }, [hostResolved]);\n\n const resolved = hostResolved ?? localResolved;\n\n const handleResolve = (option: string) => {\n setLocalResolved(option);\n onDecisionResolve?.(decisionId, option);\n };\n\n const handleSource = () => {\n onDecisionSource?.(decisionId, p.source);\n if (!onDecisionSource && p.source?.url && typeof window !== \"undefined\") {\n window.open(p.source.url, \"_blank\", \"noopener,noreferrer\");\n }\n };\n\n return (\n <ComponentActions filename={p.title ?? \"decision-card\"}>\n <DecisionCardRenderer\n data={p}\n resolved={resolved}\n onResolve={handleResolve}\n onOpenSource={handleSource}\n />\n </ComponentActions>\n );\n}\n"]}
@@ -0,0 +1,27 @@
1
+ /** One row of the document's field-change history. Shape mirrors the docstore
2
+ * audit endpoint (GET .../extraction/audit), newest first. */
3
+ export interface AuditEvent {
4
+ id: string;
5
+ field_key: string;
6
+ previous_value?: string | null;
7
+ new_value?: string | null;
8
+ actor_type?: string | null;
9
+ actor_name?: string | null;
10
+ event_type?: string | null;
11
+ created_at?: string | null;
12
+ reason?: string | null;
13
+ }
14
+ /**
15
+ * Flat chronological audit trail for all fields in a document. Ported from
16
+ * adoptwebui's file-explorer review pane (documentViewer/AuditTrailPanel.jsx)
17
+ * to inline styles + theme tokens. Read-only.
18
+ */
19
+ export declare function FieldAuditLog({ events, loading, fields, }: {
20
+ events?: AuditEvent[];
21
+ loading?: boolean;
22
+ fields?: {
23
+ field_key: string;
24
+ label?: string;
25
+ }[];
26
+ }): import("react/jsx-runtime").JSX.Element;
27
+ //# sourceMappingURL=FieldAuditLog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldAuditLog.d.ts","sourceRoot":"","sources":["../../../src/composites/document-field-extraction/FieldAuditLog.tsx"],"names":[],"mappings":"AAMA;+DAC+D;AAC/D,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAwBD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,MAAW,EACX,OAAe,EACf,MAAW,GACZ,EAAE;IACD,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClD,2CA8KA"}
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+ import type { SchemaPayload } from "../../schemas";
3
+ type Field = NonNullable<SchemaPayload<"document-field-extraction">["fields"]>[number];
4
+ /**
5
+ * One editable field card in the extraction modal's right-hand list. Ported from
6
+ * adoptwebui's file-explorer review pane (documentViewer/FieldCard.jsx) so chat
7
+ * and the explorer behave identically: click to select (drives two-way bbox
8
+ * highlight), pencil to edit, Save (⌘↵) / Cancel (Esc).
9
+ *
10
+ * `onSave` is host-provided and async; it throws on failure (surfaced inline).
11
+ * When `onSave` is absent the card is read-only (legacy / non-docstore payloads).
12
+ */
13
+ export declare function FieldDetail({ field, selected, onSelect, onSave, correctionCount, cardRef, }: {
14
+ field: Field;
15
+ selected: boolean;
16
+ onSelect: (key: string | null) => void;
17
+ onSave?: (fieldKey: string, value: string) => Promise<void>;
18
+ correctionCount?: number;
19
+ cardRef?: React.Ref<HTMLDivElement>;
20
+ }): import("react/jsx-runtime").JSX.Element;
21
+ export {};
22
+ //# sourceMappingURL=FieldDetail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldDetail.d.ts","sourceRoot":"","sources":["../../../src/composites/document-field-extraction/FieldDetail.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,KAAK,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AA+DvF;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,eAAmB,EACnB,OAAO,GACR,EAAE;IACD,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACvC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACrC,2CAiTA"}
@@ -0,0 +1,18 @@
1
+ import type { SchemaPayload } from "../../schemas";
2
+ type Payload = SchemaPayload<"document-field-extraction">;
3
+ type Summary = NonNullable<Payload["summary"]>;
4
+ /**
5
+ * "Details" tab — a read-only summary of one document's extracted data. Ported
6
+ * from adoptwebui's file-explorer review pane (documentViewer/DocumentDetails.jsx)
7
+ * so chat and the explorer show the identical document summary. Driven entirely
8
+ * by the deterministic `summary` projection the extraction pipeline produced
9
+ * (no client-side inference); shows an empty state when absent.
10
+ */
11
+ export declare function FieldDetails({ summary, fileName, pageCount, pagesProcessed, }: {
12
+ summary?: Summary | null;
13
+ fileName?: string;
14
+ pageCount?: number;
15
+ pagesProcessed?: number;
16
+ }): import("react/jsx-runtime").JSX.Element;
17
+ export {};
18
+ //# sourceMappingURL=FieldDetails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldDetails.d.ts","sourceRoot":"","sources":["../../../src/composites/document-field-extraction/FieldDetails.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,KAAK,OAAO,GAAG,aAAa,CAAC,2BAA2B,CAAC,CAAC;AAC1D,KAAK,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAc/C;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,QAAQ,EACR,SAAS,EACT,cAAc,GACf,EAAE;IACD,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,2CAkOA"}
@@ -0,0 +1,25 @@
1
+ export type Bbox = [number, number, number, number];
2
+ /** Page size in PDF points (from PageDimension.width_pt / height_pt). */
3
+ export interface PagePoints {
4
+ wPts: number;
5
+ hPts: number;
6
+ }
7
+ /** Rendered size of the page image in CSS pixels (measured at runtime). */
8
+ export interface RenderPx {
9
+ wPx: number;
10
+ hPx: number;
11
+ }
12
+ /** A top-left-origin pixel rectangle ready for absolute positioning. */
13
+ export interface Rect {
14
+ left: number;
15
+ top: number;
16
+ width: number;
17
+ height: number;
18
+ }
19
+ /**
20
+ * Convert a PDF-point, bottom-left bbox into a top-left pixel rect scaled to the
21
+ * rendered page image. Returns `null` for a missing/degenerate bbox or page size
22
+ * (callers skip rendering a box in that case).
23
+ */
24
+ export declare function bboxToRect(bbox: Bbox | null | undefined, page: PagePoints, px: RenderPx): Rect | null;
25
+ //# sourceMappingURL=bboxTransform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bboxTransform.d.ts","sourceRoot":"","sources":["../../../src/composites/document-field-extraction/bboxTransform.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEpD,yEAAyE;AACzE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,2EAA2E;AAC3E,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wEAAwE;AACxE,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,EAC7B,IAAI,EAAE,UAAU,EAChB,EAAE,EAAE,QAAQ,GACX,IAAI,GAAG,IAAI,CAkBb"}
@@ -0,0 +1,2 @@
1
+ export declare function prettyLabel(label: string): string;
2
+ //# sourceMappingURL=fieldLabels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldLabels.d.ts","sourceRoot":"","sources":["../../../src/composites/document-field-extraction/fieldLabels.ts"],"names":[],"mappings":"AAmBA,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKjD"}
@@ -0,0 +1,16 @@
1
+ import type { SchemaPayload } from "../../schemas";
2
+ import { type AuditEvent } from "./FieldAuditLog";
3
+ type Payload = SchemaPayload<"document-field-extraction">;
4
+ /** Handler/data props the HOST injects after resolveUI (NOT part of the LLM
5
+ * payload). When `onFieldSave` is present the field cards become editable and
6
+ * the audit tab is shown; otherwise the card stays read-only. */
7
+ export interface DocumentFieldExtractionHandlers {
8
+ onFieldSave?: (fieldKey: string, value: string) => Promise<void>;
9
+ auditEvents?: AuditEvent[];
10
+ auditLoading?: boolean;
11
+ onLoadAudit?: () => void;
12
+ }
13
+ export declare function DocumentFieldExtractionResolver(p: Payload & DocumentFieldExtractionHandlers): import("react/jsx-runtime").JSX.Element;
14
+ export declare function DocumentFieldExtractionSkeleton(): import("react/jsx-runtime").JSX.Element;
15
+ export {};
16
+ //# sourceMappingURL=resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/composites/document-field-extraction/resolver.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAOnD,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEjE,KAAK,OAAO,GAAG,aAAa,CAAC,2BAA2B,CAAC,CAAC;AAI1D;;kEAEkE;AAClE,MAAM,WAAW,+BAA+B;IAC9C,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AA+dD,wBAAgB,+BAA+B,CAC7C,CAAC,EAAE,OAAO,GAAG,+BAA+B,2CAqO7C;AAED,wBAAgB,+BAA+B,4CAiG9C"}
@@ -252,7 +252,10 @@ function useTheme() {
252
252
  }
253
253
  var DEFAULT_INTERACTION = {
254
254
  selectedStepId: null,
255
- onStepSelect: void 0
255
+ onStepSelect: void 0,
256
+ resolvedDecisions: void 0,
257
+ onDecisionResolve: void 0,
258
+ onDecisionSource: void 0
256
259
  };
257
260
  var GenUIInteractionContext = React4.createContext(DEFAULT_INTERACTION);
258
261
  function useGenUIInteraction() {