@adoptai/genui-components 0.1.58 → 0.1.60
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/builders/BlockForm.d.ts +5 -1
- package/dist/builders/BlockForm.d.ts.map +1 -1
- package/dist/builders/BuilderForm.d.ts +22 -1
- package/dist/builders/BuilderForm.d.ts.map +1 -1
- package/dist/builders/index.d.ts +1 -1
- package/dist/builders/index.d.ts.map +1 -1
- package/dist/composites/decision-card/resolver.cjs +289 -13
- package/dist/composites/decision-card/resolver.cjs.map +1 -1
- package/dist/composites/decision-card/resolver.d.ts +2 -1
- package/dist/composites/decision-card/resolver.d.ts.map +1 -1
- package/dist/composites/decision-card/resolver.js +289 -13
- package/dist/composites/decision-card/resolver.js.map +1 -1
- package/dist/composites/document-field-extraction/resolver.cjs +1920 -0
- package/dist/composites/document-field-extraction/resolver.cjs.map +1 -0
- package/dist/composites/document-field-extraction/resolver.js +1913 -0
- package/dist/composites/document-field-extraction/resolver.js.map +1 -0
- package/dist/composites/tabby-auth/resolver.cjs +597 -0
- package/dist/composites/tabby-auth/resolver.cjs.map +1 -0
- package/dist/composites/tabby-auth/resolver.d.ts +3 -0
- package/dist/composites/tabby-auth/resolver.d.ts.map +1 -0
- package/dist/composites/tabby-auth/resolver.js +595 -0
- package/dist/composites/tabby-auth/resolver.js.map +1 -0
- package/dist/composites/workflow-stepper/resolver.cjs +86 -18
- package/dist/composites/workflow-stepper/resolver.cjs.map +1 -1
- package/dist/composites/workflow-stepper/resolver.d.ts.map +1 -1
- package/dist/composites/workflow-stepper/resolver.js +86 -18
- package/dist/composites/workflow-stepper/resolver.js.map +1 -1
- package/dist/index.cjs +901 -63
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +901 -63
- package/dist/index.js.map +1 -1
- package/dist/renderer.cjs +810 -45
- package/dist/renderer.cjs.map +1 -1
- package/dist/renderer.js +810 -45
- package/dist/renderer.js.map +1 -1
- package/dist/resolver.cjs +810 -45
- package/dist/resolver.cjs.map +1 -1
- package/dist/resolver.d.ts.map +1 -1
- package/dist/resolver.js +810 -45
- package/dist/resolver.js.map +1 -1
- package/dist/schemas/decision-card.d.ts +37 -0
- package/dist/schemas/decision-card.d.ts.map +1 -1
- package/dist/schemas/index.cjs +113 -8
- package/dist/schemas/index.cjs.map +1 -1
- package/dist/schemas/index.d.ts +155 -0
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +113 -8
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/tabby-auth.d.ts +58 -0
- package/dist/schemas/tabby-auth.d.ts.map +1 -0
- package/dist/schemas/workflow-stepper.d.ts +60 -0
- package/dist/schemas/workflow-stepper.d.ts.map +1 -1
- package/dist/tool-definitions.json +135 -4
- 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/brandIcons.ts","../../../src/composites/tabby-auth/resolver.tsx"],"names":["jsxs","jsx","BORDER","MUTED","ACCENT","ACCENT_SOFT","useState"],"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","// Built-in brand logos for well-known integrations. Used as a fallback when a\n// payload has no explicit iconUrl (e.g. agent-synthesized \"connect Gmail / Outlook\"\n// suggestions that aren't backed by a catalog row with an image_url). Catalog\n// integrations should still pass their real image_url; this only fills the gap.\n//\n// Logos are served by the simple-icons CDN (https://simpleicons.org) as brand-\n// colored SVGs addressed by slug. Unknown names fall back to a monogram tile.\n\nconst SLUGS: Record<string, string> = {\n gmail: \"gmail\",\n googlemail: \"gmail\",\n outlook: \"microsoftoutlook\",\n microsoftoutlook: \"microsoftoutlook\",\n office365: \"microsoftoffice\",\n slack: \"slack\",\n googledrive: \"googledrive\",\n drive: \"googledrive\",\n googlesheets: \"googlesheets\",\n googledocs: \"googledocs\",\n googlecalendar: \"googlecalendar\",\n gcal: \"googlecalendar\",\n notion: \"notion\",\n salesforce: \"salesforce\",\n hubspot: \"hubspot\",\n github: \"github\",\n gitlab: \"gitlab\",\n jira: \"jira\",\n confluence: \"confluence\",\n atlassian: \"atlassian\",\n asana: \"asana\",\n trello: \"trello\",\n linear: \"linear\",\n zoom: \"zoom\",\n dropbox: \"dropbox\",\n box: \"box\",\n zendesk: \"zendesk\",\n intercom: \"intercom\",\n stripe: \"stripe\",\n shopify: \"shopify\",\n perplexity: \"perplexity\",\n openai: \"openai\",\n anthropic: \"anthropic\",\n fireflies: \"fireflies\",\n zohodesk: \"zoho\",\n zoho: \"zoho\",\n pipedrive: \"pipedrive\",\n workday: \"workday\",\n sap: \"sap\",\n odoo: \"odoo\",\n superset: \"apachesuperset\",\n highradius: \"\",\n zoominfo: \"\",\n};\n\n/** Normalize a display name to a lookup key: lowercase, strip non-alphanumerics. */\nfunction normalize(name: string): string {\n return (name || \"\").toLowerCase().replace(/[^a-z0-9]/g, \"\");\n}\n\n/** Return a brand-logo URL for a known integration name, or undefined. */\nexport function brandIconUrl(name: string): string | undefined {\n const slug = SLUGS[normalize(name)];\n if (!slug) return undefined;\n return `https://cdn.simpleicons.org/${slug}`;\n}\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport type { SchemaPayload } from \"../../schemas\";\nimport { ComponentActions } from \"../../shared/ComponentActions\";\nimport { useTheme } from \"../../shared/ThemeContext\";\nimport { brandIconUrl } from \"../../shared/brandIcons\";\n\nconst CONNECTED_GREEN = \"#15803d\";\nconst CONNECTED_GREEN_BG = \"#dcfce7\";\nconst PENDING_AMBER = \"#92400e\";\nconst PENDING_AMBER_BG = \"#fff7ed\";\n\n// Hardcoded brand constants — never model-supplied. The trust assurance is a\n// structural element of this card, not free text the LLM owns.\nconst CARD_TITLE = \"Authentication required\";\nconst TRUST_FOOTER = \"Credentials not stored by Adopt\";\n\nconst DEFAULT_STEPS = (app: string, ctaLabel: string, connected: boolean) =>\n connected\n ? [\n `Click ${ctaLabel} below to open ${app} in a new tab.`,\n \"Confirm you are signed in — re-authenticate if prompted.\",\n \"Return here — the request continues automatically.\",\n ]\n : [\n `Click ${ctaLabel} below to open the sign-in page.`,\n `Sign in with your ${app} credentials — SSO is supported.`,\n \"Return here — the request resumes automatically.\",\n ];\n\n// Safety net: call_web_api passes a profile slug (\"sage_intacct\", \"airbnb\").\n// The model is instructed to humanize it, but title-case any slug-looking\n// value here so the card never shows a lowercase / snake-case app name.\nfunction humanizeApp(raw: string): string {\n const v = raw.trim();\n if (!v) return v;\n const looksLikeSlug = /^[a-z0-9]+([_-][a-z0-9]+)*$/.test(v);\n if (!looksLikeSlug) return v; // already has caps / spaces — trust it\n return v\n .split(/[_-]+/)\n .map((w) => w.charAt(0).toUpperCase() + w.slice(1))\n .join(\" \");\n}\n\nfunction ShieldIcon({ color }: { color: string }) {\n return (\n <svg\n width=\"13\"\n height=\"13\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke={color}\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n style={{ flexShrink: 0 }}\n >\n <path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\" />\n <path d=\"m9 12 2 2 4-4\" />\n </svg>\n );\n}\n\nfunction ExternalIcon() {\n return (\n <svg\n width=\"13\"\n height=\"13\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n style={{ flexShrink: 0 }}\n >\n <path d=\"M15 3h6v6\" />\n <path d=\"M10 14 21 3\" />\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" />\n </svg>\n );\n}\n\nexport function TabbyAuthResolver(p: SchemaPayload<\"tabby-auth\">) {\n const { BORDER, MUTED, ACCENT, ACCENT_SOFT } = useTheme();\n const [cardHovered, setCardHovered] = useState(false);\n const [btnHovered, setBtnHovered] = useState(false);\n const [imgFailed, setImgFailed] = useState(false);\n\n const app = humanizeApp(p.app || \"the app\");\n const connected = p.state === \"connected\";\n const accent = connected ? CONNECTED_GREEN : ACCENT;\n\n const ctaLabel = p.ctaLabel ?? (connected ? `Open ${app}` : `Connect ${app}`);\n const subtitle = p.workspace ? `${app} · ${p.workspace} workspace` : app;\n const steps = p.steps?.length ? p.steps : DEFAULT_STEPS(app, ctaLabel, connected);\n const description =\n p.description ??\n (connected\n ? `Your ${app} session is active. Open ${app} to continue, or re-authenticate if prompted.`\n : `Your ${app} account is not yet connected to this workspace. Complete sign-in once to enable automatic access.`);\n\n const iconSrc = p.iconUrl || brandIconUrl(app);\n const showImg = Boolean(iconSrc) && !imgFailed;\n const initial = app.charAt(0).toUpperCase();\n\n const badge = connected\n ? { label: \"Connected\", bg: CONNECTED_GREEN_BG, color: CONNECTED_GREEN }\n : { label: \"Pending sign-in\", bg: PENDING_AMBER_BG, color: PENDING_AMBER };\n\n const sectionPad = \"13px 16px\";\n\n return (\n <ComponentActions filename={`${app} authentication`}>\n <div style={{ width: \"100%\", display: \"flex\", flexDirection: \"column\", gap: \"10px\" }}>\n <div\n onMouseEnter={() => setCardHovered(true)}\n onMouseLeave={() => setCardHovered(false)}\n style={{\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"stretch\",\n borderRadius: \"0.75rem\",\n border: `1px solid ${cardHovered ? \"#d2d2d2\" : BORDER}`,\n background: \"white\",\n overflow: \"hidden\",\n boxShadow: cardHovered\n ? \"0 1px 3px rgba(0,0,0,0.05), 0 6px 18px rgba(0,0,0,0.06)\"\n : \"0 1px 2px rgba(0,0,0,0.03)\",\n transition: \"box-shadow 0.18s ease, border-color 0.18s ease\",\n }}\n >\n {/* Left accent rail */}\n <div style={{ width: \"3px\", flexShrink: 0, background: accent }} />\n\n <div style={{ flex: 1, minWidth: 0, display: \"flex\", flexDirection: \"column\" }}>\n {/* Header: title + subtitle (left), status badge (right) */}\n <div\n style={{\n display: \"flex\",\n alignItems: \"flex-start\",\n gap: \"12px\",\n padding: sectionPad,\n }}\n >\n <div\n style={{\n position: \"relative\",\n width: \"34px\",\n height: \"34px\",\n borderRadius: \"9px\",\n flexShrink: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n background: showImg ? \"white\" : \"#fff3ee\",\n boxShadow: \"inset 0 0 0 1px rgba(0,0,0,0.06)\",\n overflow: \"hidden\",\n }}\n >\n {showImg ? (\n <img\n src={iconSrc}\n alt={app}\n onError={() => setImgFailed(true)}\n style={{ width: \"22px\", height: \"22px\", objectFit: \"contain\" }}\n />\n ) : (\n <span\n style={{\n fontFamily: \"var(--font-serif)\",\n fontSize: \"17px\",\n fontWeight: 400,\n color: ACCENT,\n lineHeight: 1,\n }}\n >\n {initial}\n </span>\n )}\n </div>\n\n <div style={{ flex: 1, minWidth: 0, display: \"flex\", flexDirection: \"column\", gap: \"2px\" }}>\n <span\n style={{\n fontFamily: \"var(--font-serif)\",\n fontSize: \"15px\",\n fontWeight: 400,\n color: \"var(--foreground)\",\n letterSpacing: \"-0.01em\",\n lineHeight: 1.2,\n }}\n >\n {CARD_TITLE}\n </span>\n <span\n style={{\n fontSize: \"12px\",\n color: MUTED,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n }}\n >\n {subtitle}\n </span>\n </div>\n\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"5px\",\n flexShrink: 0,\n fontSize: \"10.5px\",\n fontWeight: 600,\n padding: \"3px 9px\",\n borderRadius: \"9999px\",\n background: badge.bg,\n color: badge.color,\n whiteSpace: \"nowrap\",\n }}\n >\n <span\n style={{\n width: \"6px\",\n height: \"6px\",\n borderRadius: \"9999px\",\n background: badge.color,\n }}\n />\n {badge.label}\n </span>\n </div>\n\n {/* Body: optional description + numbered steps */}\n <div\n style={{\n borderTop: `1px solid ${BORDER}`,\n padding: sectionPad,\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"12px\",\n }}\n >\n {description && (\n <p style={{ margin: 0, fontSize: \"12.5px\", lineHeight: 1.5, color: \"var(--foreground)\" }}>\n {description}\n </p>\n )}\n <ol style={{ margin: 0, padding: 0, listStyle: \"none\", display: \"flex\", flexDirection: \"column\", gap: \"8px\" }}>\n {steps.map((step, i) => (\n <li key={i} style={{ display: \"flex\", alignItems: \"flex-start\", gap: \"10px\" }}>\n <span\n style={{\n flexShrink: 0,\n width: \"18px\",\n height: \"18px\",\n borderRadius: \"9999px\",\n background: accent,\n color: \"white\",\n fontSize: \"10.5px\",\n fontWeight: 600,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginTop: \"1px\",\n }}\n >\n {i + 1}\n </span>\n <span style={{ fontSize: \"12.5px\", lineHeight: 1.45, color: \"var(--foreground)\" }}>{step}</span>\n </li>\n ))}\n </ol>\n </div>\n\n {/* Footer: trust note (left) + CTA (right) */}\n <div\n style={{\n borderTop: `1px solid ${BORDER}`,\n padding: sectionPad,\n background: \"#fbfbfb\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: \"12px\",\n flexWrap: \"wrap\",\n }}\n >\n <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: \"6px\", color: MUTED, fontSize: \"11.5px\" }}>\n <ShieldIcon color={CONNECTED_GREEN} />\n {TRUST_FOOTER}\n </span>\n\n <a\n href={p.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onMouseEnter={() => setBtnHovered(true)}\n onMouseLeave={() => setBtnHovered(false)}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"7px\",\n flexShrink: 0,\n borderRadius: \"8px\",\n padding: \"8px 15px\",\n fontSize: \"12.5px\",\n fontWeight: 600,\n textDecoration: \"none\",\n whiteSpace: \"nowrap\",\n cursor: \"pointer\",\n color: \"white\",\n border: \"1px solid transparent\",\n background: btnHovered\n ? connected\n ? \"#126a33\"\n : ACCENT_SOFT\n : accent,\n transition: \"background 0.15s ease\",\n }}\n >\n <ExternalIcon />\n {ctaLabel}\n </a>\n </div>\n </div>\n </div>\n </div>\n </ComponentActions>\n );\n}\n"]}
|
|
@@ -265,6 +265,8 @@ var STATUS_COLORS = {
|
|
|
265
265
|
done: "#15803d",
|
|
266
266
|
active: "",
|
|
267
267
|
// filled from theme ACCENT at render time
|
|
268
|
+
running: "",
|
|
269
|
+
// filled from theme ACCENT at render time (executor in flight)
|
|
268
270
|
review: "#f59e0b",
|
|
269
271
|
pending: "#9ca3af",
|
|
270
272
|
blocked: "#b45309",
|
|
@@ -273,6 +275,7 @@ var STATUS_COLORS = {
|
|
|
273
275
|
var STATUS_LABELS = {
|
|
274
276
|
done: "Complete",
|
|
275
277
|
active: "In progress",
|
|
278
|
+
running: "Running",
|
|
276
279
|
review: "In review",
|
|
277
280
|
pending: "Pending",
|
|
278
281
|
blocked: "Blocked",
|
|
@@ -376,6 +379,26 @@ function IndexDot({ step, index, accent }) {
|
|
|
376
379
|
if (step.status === "failed") {
|
|
377
380
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { style: __spreadProps(__spreadValues({}, base), { background: "#dc2626", color: "white" }), children: /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: 10 }, children: "!" }) });
|
|
378
381
|
}
|
|
382
|
+
if (step.status === "running") {
|
|
383
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: __spreadProps(__spreadValues({}, base), { position: "relative", background: `${accent}1f`, color: accent }), children: [
|
|
384
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
385
|
+
"span",
|
|
386
|
+
{
|
|
387
|
+
className: "wfs-anim",
|
|
388
|
+
"aria-hidden": "true",
|
|
389
|
+
style: {
|
|
390
|
+
position: "absolute",
|
|
391
|
+
inset: 0,
|
|
392
|
+
borderRadius: "50%",
|
|
393
|
+
border: `1.5px solid ${accent}33`,
|
|
394
|
+
borderTopColor: accent,
|
|
395
|
+
animation: "wfsSpin 0.8s linear infinite"
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
),
|
|
399
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: 9 }, children: n })
|
|
400
|
+
] });
|
|
401
|
+
}
|
|
379
402
|
if (step.status === "active") {
|
|
380
403
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { style: __spreadProps(__spreadValues({}, base), { background: accent, color: "white" }), children: n });
|
|
381
404
|
}
|
|
@@ -384,6 +407,44 @@ function IndexDot({ step, index, accent }) {
|
|
|
384
407
|
}
|
|
385
408
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { style: __spreadProps(__spreadValues({}, base), { background: "#f2f2f2", color: "#9ca3af" }), children: n });
|
|
386
409
|
}
|
|
410
|
+
function EvalBadge({ step }) {
|
|
411
|
+
var _a;
|
|
412
|
+
const ev = step.eval;
|
|
413
|
+
if (!ev || ev.judge_ok === false) return null;
|
|
414
|
+
const score = typeof ev.score === "number" ? ev.score : null;
|
|
415
|
+
const flags = (_a = ev.data_quality_flags) != null ? _a : [];
|
|
416
|
+
const bad = ev.verdict === "bad" || score !== null && score < 0.8;
|
|
417
|
+
const tip = flags.length > 0 ? flags.map((f) => {
|
|
418
|
+
var _a2;
|
|
419
|
+
return `${(_a2 = f.severity) != null ? _a2 : "?"}: ${f.details || f.issue || f.field || "issue"}`;
|
|
420
|
+
}).join("\n") : ev.reasoning || void 0;
|
|
421
|
+
const label = score !== null ? score.toFixed(2) : bad ? "flagged" : "ok";
|
|
422
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
423
|
+
"span",
|
|
424
|
+
{
|
|
425
|
+
title: tip,
|
|
426
|
+
"data-testid": `workflow-stepper-eval-${step.id}`,
|
|
427
|
+
style: {
|
|
428
|
+
display: "inline-flex",
|
|
429
|
+
alignItems: "center",
|
|
430
|
+
gap: 3,
|
|
431
|
+
fontSize: 9,
|
|
432
|
+
fontWeight: 700,
|
|
433
|
+
padding: "1px 6px",
|
|
434
|
+
borderRadius: 9999,
|
|
435
|
+
background: bad ? "#fff7ed" : "#dcfce7",
|
|
436
|
+
color: bad ? "#b45309" : "#15803d",
|
|
437
|
+
whiteSpace: "nowrap",
|
|
438
|
+
flexShrink: 0
|
|
439
|
+
},
|
|
440
|
+
children: [
|
|
441
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", children: bad ? "\u26A0" : "\u2713" }),
|
|
442
|
+
label,
|
|
443
|
+
flags.length > 0 ? ` \xB7 ${flags.length}` : ""
|
|
444
|
+
]
|
|
445
|
+
}
|
|
446
|
+
);
|
|
447
|
+
}
|
|
387
448
|
var CARD_MIN = 132;
|
|
388
449
|
var CARD_GAP = 16;
|
|
389
450
|
var AUTO_COMPACT_BELOW = 360;
|
|
@@ -408,6 +469,7 @@ var KEYFRAMES = `
|
|
|
408
469
|
@keyframes wfsLampPulse{0%,100%{box-shadow:0 0 0 0 var(--wfs-accent,#6366f1)73}50%{box-shadow:0 0 0 4px transparent}}
|
|
409
470
|
@keyframes wfsRise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
|
|
410
471
|
@keyframes wfsShimmer{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}
|
|
472
|
+
@keyframes wfsSpin{to{transform:rotate(360deg)}}
|
|
411
473
|
.wfs-rise{animation:wfsRise 0.32s cubic-bezier(0.22,1,0.36,1) both}
|
|
412
474
|
@media (prefers-reduced-motion: reduce){
|
|
413
475
|
.wfs-anim,.wfs-rise,.wfs-shim{animation:none !important}
|
|
@@ -488,7 +550,7 @@ function WorkflowStepperRenderer({
|
|
|
488
550
|
const steps = (_a = data.steps) != null ? _a : [];
|
|
489
551
|
const activeStepId = (_d = (_c = data.active_step) != null ? _c : (_b = steps.find((s) => s.status === "active")) == null ? void 0 : _b.id) != null ? _d : null;
|
|
490
552
|
const interactive = typeof onSelectStep === "function";
|
|
491
|
-
const statusColor = (s) => s === "active" ? ACCENT2 : STATUS_COLORS[s];
|
|
553
|
+
const statusColor = (s) => s === "active" || s === "running" ? ACCENT2 : STATUS_COLORS[s];
|
|
492
554
|
const doneCount = steps.filter((s) => s.status === "done").length;
|
|
493
555
|
const rootRef = React4__default.default.useRef(null);
|
|
494
556
|
const containerW = useContainerWidth(rootRef);
|
|
@@ -716,6 +778,7 @@ function WorkflowStepperRenderer({
|
|
|
716
778
|
var _a2;
|
|
717
779
|
const isSelected = selectedStep === step.id;
|
|
718
780
|
const isActive = step.status === "active";
|
|
781
|
+
const isRunning = step.status === "running";
|
|
719
782
|
const reached = step.status !== "pending";
|
|
720
783
|
const clickable = interactive && reached;
|
|
721
784
|
const color = statusColor(step.status);
|
|
@@ -812,36 +875,41 @@ function WorkflowStepperRenderer({
|
|
|
812
875
|
}
|
|
813
876
|
}
|
|
814
877
|
),
|
|
815
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between" }, children: [
|
|
816
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", alignItems: "center", gap: 6 }, children: [
|
|
878
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 4 }, children: [
|
|
879
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", alignItems: "center", gap: 6, minWidth: 0 }, children: [
|
|
817
880
|
/* @__PURE__ */ jsxRuntime.jsx(IndexDot, { step, index: i, accent: ACCENT2 }),
|
|
818
881
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
819
882
|
"span",
|
|
820
883
|
{
|
|
821
|
-
className: isActive ? "wfs-anim" : void 0,
|
|
884
|
+
className: isActive || isRunning ? "wfs-anim" : void 0,
|
|
822
885
|
style: {
|
|
823
886
|
width: 6,
|
|
824
887
|
height: 6,
|
|
825
888
|
borderRadius: "50%",
|
|
826
889
|
background: color,
|
|
827
|
-
|
|
890
|
+
flexShrink: 0,
|
|
891
|
+
animation: isActive || isRunning ? "wfsLampPulse 1.8s ease-in-out infinite" : "none"
|
|
828
892
|
}
|
|
829
893
|
}
|
|
830
894
|
)
|
|
831
895
|
] }),
|
|
832
|
-
/* @__PURE__ */ jsxRuntime.
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
896
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", alignItems: "center", gap: 4, minWidth: 0 }, children: [
|
|
897
|
+
/* @__PURE__ */ jsxRuntime.jsx(EvalBadge, { step }),
|
|
898
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
899
|
+
"span",
|
|
900
|
+
{
|
|
901
|
+
style: {
|
|
902
|
+
fontSize: 9,
|
|
903
|
+
fontWeight: 600,
|
|
904
|
+
letterSpacing: "0.05em",
|
|
905
|
+
textTransform: "uppercase",
|
|
906
|
+
color,
|
|
907
|
+
whiteSpace: "nowrap"
|
|
908
|
+
},
|
|
909
|
+
children: STATUS_LABELS[step.status]
|
|
910
|
+
}
|
|
911
|
+
)
|
|
912
|
+
] })
|
|
845
913
|
] }),
|
|
846
914
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { minWidth: 0 }, children: [
|
|
847
915
|
/* @__PURE__ */ jsxRuntime.jsx(
|