@seed-ship/mcp-ui-solid 2.9.0 → 2.10.1
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/README.md +17 -11
- package/dist/components/ScratchpadPanel.cjs +426 -175
- package/dist/components/ScratchpadPanel.cjs.map +1 -1
- package/dist/components/ScratchpadPanel.d.ts.map +1 -1
- package/dist/components/ScratchpadPanel.js +426 -175
- package/dist/components/ScratchpadPanel.js.map +1 -1
- package/dist/types/chat-bus.d.ts +12 -1
- package/dist/types/chat-bus.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/ScratchpadPanel.tsx +174 -0
- package/src/types/chat-bus.ts +12 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScratchpadPanel.cjs","sources":["../../src/components/ScratchpadPanel.tsx"],"sourcesContent":["/**\n * ScratchpadPanel v3 — Full HITL/AITL workspace\n * v2.9.0: Interactive filters, form sections, stepper, preview auto-refresh\n *\n * @experimental\n */\n\nimport { Component, Show, For, Switch, Match, createSignal, createEffect, onCleanup } from 'solid-js'\nimport type { ScratchpadState, ScratchpadSection } from '../types/chat-bus'\nimport type { FormFieldParams } from '../types'\nimport { FormFieldRenderer } from './FormFieldRenderer'\n\nexport interface ScratchpadPanelProps {\n state: ScratchpadState\n onFilterChange?: (filters: Record<string, string | string[]>) => void\n onAction?: (action: string, data?: unknown) => void\n onSectionEdit?: (sectionId: string, content: unknown) => void\n onClose?: () => void\n closable?: boolean\n autoCloseDelay?: number\n collapsible?: boolean\n maxHeight?: string\n}\n\nconst STATUS_BADGES: Record<ScratchpadState['status'], { label: string; class: string }> = {\n loading: { label: 'Loading...', class: 'bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400' },\n ready: { label: 'Ready', class: 'bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400' },\n waiting_human: { label: 'Your turn', class: 'bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400 animate-pulse' },\n processing: { label: 'Processing...', class: 'bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-400' },\n complete: { label: 'Complete', class: 'bg-green-100 text-green-600 dark:bg-green-900/30 dark:text-green-400' },\n}\n\nexport const ScratchpadPanel: Component<ScratchpadPanelProps> = (props) => {\n const [collapsed, setCollapsed] = createSignal(false)\n const [localPreview, setLocalPreview] = createSignal<ScratchpadState['preview']>(undefined)\n let previewTimer: ReturnType<typeof setTimeout> | null = null\n const badge = () => STATUS_BADGES[props.state.status] || STATUS_BADGES.loading\n const isClosable = () => props.closable !== false\n const isCollapsible = () => props.collapsible !== false\n const preview = () => localPreview() || props.state.preview\n const hasFilters = () => Object.keys(props.state.filters || {}).length > 0\n\n // Auto-close on complete\n createEffect(() => {\n if (props.state.status === 'complete' && props.autoCloseDelay) {\n const timer = setTimeout(() => props.onClose?.(), props.autoCloseDelay)\n onCleanup(() => clearTimeout(timer))\n }\n })\n\n // Preview auto-refresh when filters change\n createEffect(() => {\n const endpoint = props.state.previewEndpoint\n if (!endpoint) return\n const filters = props.state.filters\n if (!filters || Object.keys(filters).length === 0) return\n\n if (previewTimer) clearTimeout(previewTimer)\n previewTimer = setTimeout(async () => {\n try {\n const res = await fetch(endpoint, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n credentials: 'include',\n body: JSON.stringify({ filters }),\n })\n if (res.ok) setLocalPreview(await res.json())\n } catch { /* ignore */ }\n }, props.state.previewDebounce || 500)\n })\n\n onCleanup(() => { if (previewTimer) clearTimeout(previewTimer) })\n\n return (\n <div\n class={`w-full bg-white dark:bg-gray-800 rounded-xl border shadow-lg overflow-visible ${\n props.state.status === 'waiting_human'\n ? 'border-blue-300 dark:border-blue-600'\n : 'border-gray-200 dark:border-gray-700'\n }`}\n style={{ animation: 'scratchpad-slide-down 0.2s ease-out' }}\n >\n {/* Header */}\n <div\n class={`flex items-center justify-between px-4 py-3 border-b border-gray-100 dark:border-gray-700 ${isCollapsible() ? 'cursor-pointer select-none hover:bg-gray-50 dark:hover:bg-gray-750' : ''}`}\n onClick={() => isCollapsible() && setCollapsed(!collapsed())}\n >\n <div class=\"flex items-center gap-2\">\n <span class=\"text-base\">📝</span>\n <h3 class=\"text-sm font-semibold text-gray-900 dark:text-white\">{props.state.title}</h3>\n <Show when={isCollapsible()}>\n <svg class={`w-3.5 h-3.5 text-gray-400 transition-transform ${collapsed() ? '-rotate-90' : ''}`} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n </Show>\n </div>\n <div class=\"flex items-center gap-2\">\n <span class={`px-2 py-0.5 text-xs font-medium rounded-full ${badge().class}`}>{badge().label}</span>\n <Show when={isClosable() && props.onClose}>\n <button onClick={(e) => { e.stopPropagation(); props.onClose?.() }} class=\"p-1 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors\" aria-label=\"Close\">\n <svg class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" /></svg>\n </button>\n </Show>\n </div>\n </div>\n\n {/* Body */}\n <Show when={!collapsed()}>\n <div style={{ \"max-height\": props.maxHeight || \"500px\", \"overflow-y\": \"auto\" }}>\n {/* Sections */}\n <div class=\"divide-y divide-gray-100 dark:divide-gray-700\">\n <For each={props.state.sections}>\n {(section) => (\n <SectionRenderer\n section={section}\n filters={props.state.filters}\n onFilterChange={props.onFilterChange}\n onAction={props.onAction}\n onSectionEdit={props.onSectionEdit}\n />\n )}\n </For>\n </div>\n\n {/* Agent messages */}\n <Show when={props.state.agentMessages.length > 0}>\n <div class=\"px-4 py-3 border-t border-gray-100 dark:border-gray-700 space-y-2\">\n <For each={props.state.agentMessages}>\n {(msg) => (\n <div class={`flex items-start gap-2 text-sm rounded-lg px-3 py-2 ${\n msg.type === 'warning' ? 'bg-amber-50 dark:bg-amber-900/10 text-amber-700 dark:text-amber-400'\n : msg.type === 'question' ? 'bg-blue-50 dark:bg-blue-900/10 text-blue-700 dark:text-blue-400 border border-blue-200 dark:border-blue-800'\n : 'bg-gray-50 dark:bg-gray-700/50 text-gray-600 dark:text-gray-400'\n }`}>\n <span class=\"flex-shrink-0 mt-0.5\">{msg.type === 'warning' ? '⚠️' : msg.type === 'question' ? '❓' : 'ℹ️'}</span>\n <p>{msg.text}</p>\n </div>\n )}\n </For>\n </div>\n </Show>\n\n {/* Preview */}\n <Show when={preview()}>\n <div class=\"px-4 py-3 border-t border-gray-100 dark:border-gray-700\">\n <Show when={preview()!.count === 0} fallback={\n <>\n <div class=\"flex items-center gap-2 mb-2\">\n <span class=\"text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide\">Preview</span>\n <span class=\"px-1.5 py-0.5 text-xs font-bold bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded\">{preview()!.count.toLocaleString()}</span>\n </div>\n <p class=\"text-sm text-gray-700 dark:text-gray-300\">{preview()!.summary}</p>\n <Show when={preview()!.rows && preview()!.rows!.length > 0}>\n <div class=\"mt-2 overflow-x-auto\">\n <table class=\"min-w-full text-xs\">\n <thead><tr><For each={Object.keys(preview()!.rows![0])}>{(k) => <th class=\"px-2 py-1 text-left font-medium text-gray-500 dark:text-gray-400\">{k}</th>}</For></tr></thead>\n <tbody><For each={preview()!.rows!.slice(0, 5)}>{(row) => <tr class=\"border-t border-gray-100 dark:border-gray-700\"><For each={Object.values(row)}>{(v) => <td class=\"px-2 py-1 text-gray-700 dark:text-gray-300\">{String(v)}</td>}</For></tr>}</For></tbody>\n </table>\n </div>\n </Show>\n </>\n }>\n <div class=\"flex flex-col items-center gap-2 py-4 text-center\">\n <span class=\"text-2xl\">🔍</span>\n <p class=\"text-sm text-gray-500 dark:text-gray-400\">No results for these filters</p>\n <button type=\"button\" onClick={() => props.onAction?.('refine_filters')} class=\"px-3 py-1.5 text-xs font-medium text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/20 rounded-lg transition-colors\">Modify filters</button>\n </div>\n </Show>\n </div>\n </Show>\n\n {/* Search button when waiting_human */}\n <Show when={props.state.status === 'waiting_human' && hasFilters()}>\n <div class=\"px-4 py-3 border-t border-gray-100 dark:border-gray-700\">\n <button\n type=\"button\"\n onClick={() => props.onAction?.('search', { filters: props.state.filters })}\n class=\"w-full px-4 py-2.5 text-sm font-semibold rounded-lg text-white bg-blue-600 hover:bg-blue-700 transition-colors flex items-center justify-center gap-2\"\n >\n <svg class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" /></svg>\n Search\n </button>\n </div>\n </Show>\n </div>\n </Show>\n\n <style>{`\n @keyframes scratchpad-slide-down { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }\n `}</style>\n </div>\n )\n}\n\n// ─── Section Renderer ────────────────────────────────────────\n\nconst SectionRenderer: Component<{\n section: ScratchpadSection\n filters: Record<string, string | string[]>\n onFilterChange?: (filters: Record<string, string | string[]>) => void\n onAction?: (action: string, data?: unknown) => void\n onSectionEdit?: (sectionId: string, content: unknown) => void\n}> = (props) => {\n return (\n <div class=\"px-4 py-3\">\n <h4 class=\"text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide mb-2\">{props.section.title}</h4>\n <Switch>\n <Match when={props.section.type === 'data'}><DataSection content={props.section.content} /></Match>\n <Match when={props.section.type === 'filter'}><InteractiveFilterSection content={props.section.content} filters={props.filters} onFilterChange={props.onFilterChange} /></Match>\n <Match when={props.section.type === 'message'}><p class=\"text-sm text-gray-700 dark:text-gray-300\">{String(props.section.content)}</p></Match>\n <Match when={props.section.type === 'action'}><ActionSection content={props.section.content} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'steps'}><EnrichedStepsSection content={props.section.content} onAction={props.onAction} onFilterChange={props.onFilterChange} /></Match>\n <Match when={props.section.type === 'form'}><EmbeddedFormSection content={props.section.content} sectionId={props.section.id} onAction={props.onAction} /></Match>\n <Match when={true}><pre class=\"text-xs text-gray-500 overflow-auto\">{JSON.stringify(props.section.content, null, 2)}</pre></Match>\n </Switch>\n </div>\n )\n}\n\n// ─── Data Section ────────────────────────────────────────────\n\nconst DataSection: Component<{ content: unknown }> = (props) => {\n const entries = () => typeof props.content === 'object' && props.content ? Object.entries(props.content as Record<string, unknown>) : []\n return (\n <div class=\"space-y-1\">\n <For each={entries()}>{([k, v]) => <div class=\"flex gap-2 text-xs\"><span class=\"text-gray-500 dark:text-gray-400 font-mono min-w-[120px]\">{k}:</span><span class=\"text-gray-900 dark:text-white\">{Array.isArray(v) ? v.join(', ') : String(v)}</span></div>}</For>\n </div>\n )\n}\n\n// ─── Interactive Filter Section (#4, #5) ─────────────────────\n\nconst InteractiveFilterSection: Component<{\n content: unknown\n filters: Record<string, string | string[]>\n onFilterChange?: (filters: Record<string, string | string[]>) => void\n}> = (props) => {\n const [editingKey, setEditingKey] = createSignal<string | null>(null)\n const [editValue, setEditValue] = createSignal('')\n\n // Content can be a filter definition or just use props.filters\n const filterDefs = () => {\n if (typeof props.content === 'object' && props.content) return props.content as Record<string, any>\n return {}\n }\n\n const allKeys = () => {\n const fromContent = Object.keys(filterDefs())\n const fromFilters = Object.keys(props.filters || {})\n return [...new Set([...fromContent, ...fromFilters])]\n }\n\n const removeFilter = (key: string) => {\n const next = { ...props.filters }\n delete next[key]\n props.onFilterChange?.(next)\n }\n\n const setFilter = (key: string, value: string) => {\n props.onFilterChange?.({ ...props.filters, [key]: value })\n setEditingKey(null)\n setEditValue('')\n }\n\n const getDef = (key: string) => filterDefs()[key] || {}\n\n return (\n <div class=\"flex flex-wrap gap-1.5\">\n <For each={allKeys()}>\n {(key) => {\n const def = () => getDef(key)\n const value = () => props.filters[key]\n const hasValue = () => value() !== undefined && value() !== ''\n\n return (\n <div class=\"relative\">\n <Show when={hasValue()} fallback={\n <button type=\"button\" onClick={() => { setEditingKey(key); setEditValue('') }}\n class=\"inline-flex items-center gap-1 px-2.5 py-1 text-xs font-medium border border-dashed border-gray-300 dark:border-gray-600 text-gray-500 dark:text-gray-400 rounded-full hover:border-blue-400 hover:text-blue-500 transition-colors\">\n + {def()?.label || key}\n </button>\n }>\n <span class=\"inline-flex items-center gap-1 px-2.5 py-1 text-xs font-medium bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded-full\">\n <button type=\"button\" onClick={() => { setEditingKey(key); setEditValue(String(value() || '')) }} class=\"hover:underline\">\n <span class=\"text-blue-500 dark:text-blue-400\">{def()?.label || key}:</span> {Array.isArray(value()) ? (value() as string[]).join(', ') : String(value())}\n </button>\n <Show when={props.onFilterChange}>\n <button type=\"button\" onClick={() => removeFilter(key)} class=\"ml-0.5 hover:text-blue-900 dark:hover:text-blue-100\" aria-label={`Remove ${key}`}>×</button>\n </Show>\n </span>\n </Show>\n\n {/* Inline editor */}\n <Show when={editingKey() === key}>\n <div class=\"absolute z-50 mt-1 left-0 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-lg shadow-lg p-2 min-w-[200px]\">\n <Show when={def()?.options} fallback={\n <form onSubmit={(e) => { e.preventDefault(); setFilter(key, editValue()) }} class=\"flex gap-1\">\n <input type=\"text\" value={editValue()} onInput={(e) => setEditValue(e.currentTarget.value)} placeholder={def()?.placeholder || key} autofocus\n class=\"flex-1 px-2 py-1 text-sm border border-gray-200 dark:border-gray-600 rounded bg-white dark:bg-gray-700 text-gray-900 dark:text-white focus:border-blue-400 outline-none\" />\n <button type=\"submit\" class=\"px-2 py-1 text-xs bg-blue-600 text-white rounded hover:bg-blue-700\">OK</button>\n <button type=\"button\" onClick={() => setEditingKey(null)} class=\"px-2 py-1 text-xs text-gray-500 hover:text-gray-700\">Cancel</button>\n </form>\n }>\n <div class=\"max-h-48 overflow-y-auto\">\n <For each={def().options as Array<{ value: string; label: string }>}>\n {(opt) => (\n <button type=\"button\" onClick={() => setFilter(key, opt.value)}\n class={`w-full text-left px-2 py-1.5 text-sm rounded hover:bg-blue-50 dark:hover:bg-blue-900/20 ${\n String(value()) === opt.value ? 'text-blue-600 dark:text-blue-400 bg-blue-50/50 dark:bg-blue-900/10' : 'text-gray-900 dark:text-white'\n }`}>\n {opt.label}\n <Show when={String(value()) === opt.value}><span class=\"ml-1\">✓</span></Show>\n </button>\n )}\n </For>\n </div>\n <button type=\"button\" onClick={() => setEditingKey(null)} class=\"mt-1 w-full px-2 py-1 text-xs text-gray-500 hover:text-gray-700 text-center\">Cancel</button>\n </Show>\n </div>\n </Show>\n </div>\n )\n }}\n </For>\n <Show when={allKeys().length === 0}>\n <p class=\"text-xs text-gray-400 italic\">No filters</p>\n </Show>\n </div>\n )\n}\n\n// ─── Embedded Form Section (#7, #8) ──────────────────────────\n\nconst EmbeddedFormSection: Component<{\n content: unknown\n sectionId: string\n onAction?: (action: string, data?: unknown) => void\n}> = (props) => {\n const [formData, setFormData] = createSignal<Record<string, any>>({})\n const [dynamicOptions, setDynamicOptions] = createSignal<Record<string, Array<{ label: string; value: string }>>>({})\n\n const config = () => {\n const c = props.content as any\n return { fields: c?.fields || [], submitLabel: c?.submitLabel || 'Submit' }\n }\n\n const updateField = (name: string, value: any) => setFormData(prev => ({ ...prev, [name]: value }))\n\n // depends_on reactive (#9)\n createEffect(() => {\n const data = formData()\n for (const field of config().fields) {\n const dep = field.depends_on || field.dependsOn\n if (!dep) continue\n const parentValue = data[dep.field]\n if (!parentValue) continue\n const url = (dep.options_endpoint || dep.apiUrl || '').replace('{value}', encodeURIComponent(parentValue))\n if (!url) continue\n const params = new URLSearchParams(dep.extraParams || dep.extra_params || {})\n fetch(`${url}${url.includes('?') ? '&' : '?'}${params}`)\n .then(r => r.json())\n .then(items => {\n const arr = Array.isArray(items) ? items : items.results || items.features || []\n const lf = dep.label_field || dep.labelField || 'label'\n const vf = dep.value_field || dep.valueField || 'value'\n setDynamicOptions(prev => ({ ...prev, [field.name]: arr.map((i: any) => ({ label: i[lf] || String(i), value: String(i[vf] || i[lf] || i) })) }))\n })\n .catch(() => {})\n }\n })\n\n const getField = (field: any): FormFieldParams => {\n const dynOpts = dynamicOptions()[field.name]\n return dynOpts ? { ...field, options: dynOpts } as FormFieldParams : field as FormFieldParams\n }\n\n const handleSubmit = (e: Event) => {\n e.preventDefault()\n props.onAction?.('submit_form', { sectionId: props.sectionId, values: formData() })\n }\n\n return (\n <form onSubmit={handleSubmit} class=\"flex flex-col gap-3\">\n <For each={config().fields}>\n {(field) => (\n <FormFieldRenderer\n field={getField(field)}\n value={formData()[field.name]}\n onChange={(val) => updateField(field.name, val)}\n formData={formData}\n />\n )}\n </For>\n <div class=\"flex justify-end\">\n <button type=\"submit\" class=\"px-4 py-2 text-sm font-medium rounded-lg text-white bg-blue-600 hover:bg-blue-700 transition-colors\">\n {config().submitLabel}\n </button>\n </div>\n </form>\n )\n}\n\n// ─── Enriched Steps Section (#6) ─────────────────────────────\n\nconst EnrichedStepsSection: Component<{\n content: unknown\n onAction?: (action: string, data?: unknown) => void\n onFilterChange?: (filters: Record<string, string | string[]>) => void\n}> = (props) => {\n const stepsData = () => {\n const c = props.content as any\n return { steps: c?.steps || [], currentStep: c?.currentStep ?? 0 }\n }\n\n return (\n <div class=\"space-y-3\">\n <For each={stepsData().steps}>\n {(step: any) => (\n <div class={`rounded-lg ${step.status === 'active' ? 'bg-blue-50/50 dark:bg-blue-900/10 border border-blue-200 dark:border-blue-800 p-3' : 'px-1'}`}>\n <div class={`flex items-center gap-2 text-sm font-medium ${\n step.status === 'done' ? 'text-green-600 dark:text-green-400'\n : step.status === 'active' ? 'text-blue-600 dark:text-blue-400'\n : 'text-gray-400'\n }`}>\n <span>{step.status === 'done' ? '✅' : step.status === 'active' ? '●' : '○'}</span>\n {step.label}\n <Show when={step.description && step.status === 'active'}>\n <span class=\"text-xs font-normal text-gray-500 dark:text-gray-400\">— {step.description}</span>\n </Show>\n </div>\n\n {/* Embedded content for active step */}\n <Show when={step.status === 'active' && step.content}>\n <div class=\"mt-2 ml-6\">\n <SectionRenderer\n section={step.content}\n filters={{}}\n onFilterChange={props.onFilterChange}\n onAction={props.onAction}\n />\n </div>\n </Show>\n </div>\n )}\n </For>\n\n {/* Next button */}\n <Show when={stepsData().steps.some((s: any) => s.status === 'active')}>\n <div class=\"flex justify-end\">\n <button type=\"button\" onClick={() => props.onAction?.('next_step', { step: stepsData().currentStep })}\n class=\"px-3 py-1.5 text-sm font-medium text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/20 rounded-lg transition-colors flex items-center gap-1\">\n Next <svg class=\"w-3.5 h-3.5\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\" /></svg>\n </button>\n </div>\n </Show>\n </div>\n )\n}\n\n// ─── Action Section ──────────────────────────────────────────\n\nconst ActionSection: Component<{\n content: unknown\n onAction?: (action: string, data?: unknown) => void\n}> = (props) => {\n const actions = () => Array.isArray(props.content) ? props.content as Array<{ label: string; value?: string; action?: string; variant?: string; icon?: string }> : []\n return (\n <div class=\"flex flex-wrap gap-2\">\n <For each={actions()}>\n {(item) => (\n <button type=\"button\" onClick={() => props.onAction?.(item.value || item.action || item.label, item)}\n class={`px-3 py-1.5 text-sm font-medium rounded-lg transition-colors ${\n item.variant === 'primary' ? 'bg-blue-600 text-white hover:bg-blue-700'\n : item.variant === 'danger' ? 'bg-red-600 text-white hover:bg-red-700'\n : 'border border-gray-200 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700'\n }`}>\n <Show when={item.icon}><span class=\"mr-1\">{item.icon}</span></Show>\n {item.label}\n </button>\n )}\n </For>\n </div>\n )\n}\n"],"names":["STATUS_BADGES","loading","label","class","ready","waiting_human","processing","complete","ScratchpadPanel","props","collapsed","setCollapsed","createSignal","localPreview","setLocalPreview","undefined","previewTimer","badge","state","status","isClosable","closable","isCollapsible","collapsible","preview","hasFilters","Object","keys","filters","length","createEffect","autoCloseDelay","timer","setTimeout","onClose","onCleanup","clearTimeout","endpoint","previewEndpoint","res","fetch","method","headers","credentials","body","JSON","stringify","ok","json","previewDebounce","_el$","_$getNextElement","_tmpl$8","_el$2","firstChild","_el$3","_el$4","_el$5","nextSibling","_el$7","_el$8","_co$","_$getNextMarker","_el$9","_el$0","_el$10","_el$11","_co$2","_el$29","_el$30","_co$6","$$click","_$insert","title","_$createComponent","Show","when","children","_el$6","_tmpl$","_$effect","_$setAttribute","_$memo","_el$1","_tmpl$2","e","stopPropagation","_$runHydrationEvents","_el$12","_tmpl$7","_el$13","_el$22","_el$23","_co$3","_el$24","_el$25","_co$4","_el$26","_el$27","_co$5","For","each","sections","section","SectionRenderer","onFilterChange","onAction","onSectionEdit","agentMessages","_el$14","_tmpl$3","msg","_el$31","_tmpl$9","_el$32","_el$33","_c$","type","text","_$className","_el$15","_tmpl$5","count","fallback","_el$34","_tmpl$0","_el$35","_el$36","toLocaleString","_el$37","_tmpl$1","summary","rows","_el$38","_tmpl$10","_el$39","_el$40","_el$41","_el$42","k","_el$43","_tmpl$11","slice","row","_el$44","_tmpl$12","values","v","_el$45","_tmpl$13","String","_el$16","_tmpl$4","_el$17","_el$18","_el$19","_el$20","_tmpl$6","_el$21","_$p","_$setStyleProperty","maxHeight","_p$","_v$","_v$2","_v$3","t","a","_el$46","_tmpl$15","_el$47","_el$50","_el$51","_co$7","Switch","Match","DataSection","content","InteractiveFilterSection","_el$48","ActionSection","EnrichedStepsSection","EmbeddedFormSection","sectionId","id","_el$49","_tmpl$14","entries","_el$52","_tmpl$16","_el$53","_tmpl$17","_el$54","_el$56","_el$57","_co$8","_el$58","_c$2","Array","isArray","join","editingKey","setEditingKey","editValue","setEditValue","filterDefs","allKeys","fromContent","fromFilters","Set","removeFilter","key","next","setFilter","value","getDef","_el$59","_tmpl$19","_el$61","_el$62","_co$9","_el$63","_el$64","_co$0","def","hasValue","_el$65","_tmpl$25","_el$81","_el$82","_co$12","_el$83","_el$84","_co$13","_el$85","_tmpl$26","_el$86","_el$87","_el$88","_co$14","_el$66","_tmpl$21","_el$67","_el$68","_el$70","_el$71","_co$1","_el$72","_el$73","_el$74","_co$10","_el$76","_el$77","_co$11","_c$3","_el$75","_tmpl$20","_el$78","_tmpl$24","options","_el$89","_tmpl$27","_el$90","_el$91","_el$92","addEventListener","preventDefault","$$input","currentTarget","placeholder","_$setProperty","_el$79","_tmpl$22","opt","_el$93","_tmpl$29","_el$95","_el$96","_co$15","_el$97","_el$98","_co$16","_tmpl$28","_el$80","_tmpl$23","_tmpl$18","formData","setFormData","dynamicOptions","setDynamicOptions","config","c","fields","submitLabel","updateField","name","prev","data","field","dep","depends_on","dependsOn","parentValue","url","options_endpoint","apiUrl","replace","encodeURIComponent","params","URLSearchParams","extraParams","extra_params","includes","then","r","items","arr","results","features","lf","label_field","labelField","vf","value_field","valueField","map","i","catch","getField","dynOpts","handleSubmit","_el$99","_tmpl$30","_el$102","_el$103","_co$17","_el$100","_el$101","FormFieldRenderer","onChange","val","stepsData","steps","currentStep","_el$104","_tmpl$32","_el$107","_el$108","_co$18","_el$109","_el$110","_co$19","step","_el$111","_tmpl$35","_el$112","_el$113","_el$118","_el$119","_co$21","_el$120","_el$121","_co$22","_el$123","_el$124","_co$23","_c$4","description","_el$114","_tmpl$33","_el$115","_el$116","_el$117","_co$20","_el$122","_tmpl$34","_v$4","_v$5","some","s","_el$105","_tmpl$31","_el$106","actions","_el$125","_tmpl$36","item","_el$126","_el$128","_el$129","_co$24","_el$130","_el$131","_co$25","action","icon","_el$127","_tmpl$37","variant","_$delegateEvents"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ScratchpadPanel.cjs","sources":["../../src/components/ScratchpadPanel.tsx"],"sourcesContent":["/**\n * ScratchpadPanel v3 — Full HITL/AITL workspace\n * v2.9.0: Interactive filters, form sections, stepper, preview auto-refresh\n *\n * @experimental\n */\n\nimport { Component, Show, For, Switch, Match, createSignal, createEffect, onCleanup } from 'solid-js'\nimport type { ScratchpadState, ScratchpadSection } from '../types/chat-bus'\nimport type { FormFieldParams } from '../types'\nimport { FormFieldRenderer } from './FormFieldRenderer'\n\nexport interface ScratchpadPanelProps {\n state: ScratchpadState\n onFilterChange?: (filters: Record<string, string | string[]>) => void\n onAction?: (action: string, data?: unknown) => void\n onSectionEdit?: (sectionId: string, content: unknown) => void\n onClose?: () => void\n closable?: boolean\n autoCloseDelay?: number\n collapsible?: boolean\n maxHeight?: string\n}\n\nconst STATUS_BADGES: Record<ScratchpadState['status'], { label: string; class: string }> = {\n loading: { label: 'Loading...', class: 'bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400' },\n ready: { label: 'Ready', class: 'bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400' },\n waiting_human: { label: 'Your turn', class: 'bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400 animate-pulse' },\n processing: { label: 'Processing...', class: 'bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-400' },\n complete: { label: 'Complete', class: 'bg-green-100 text-green-600 dark:bg-green-900/30 dark:text-green-400' },\n}\n\nexport const ScratchpadPanel: Component<ScratchpadPanelProps> = (props) => {\n const [collapsed, setCollapsed] = createSignal(false)\n const [localPreview, setLocalPreview] = createSignal<ScratchpadState['preview']>(undefined)\n let previewTimer: ReturnType<typeof setTimeout> | null = null\n const badge = () => STATUS_BADGES[props.state.status] || STATUS_BADGES.loading\n const isClosable = () => props.closable !== false\n const isCollapsible = () => props.collapsible !== false\n const preview = () => localPreview() || props.state.preview\n const hasFilters = () => Object.keys(props.state.filters || {}).length > 0\n\n // Auto-close on complete\n createEffect(() => {\n if (props.state.status === 'complete' && props.autoCloseDelay) {\n const timer = setTimeout(() => props.onClose?.(), props.autoCloseDelay)\n onCleanup(() => clearTimeout(timer))\n }\n })\n\n // Preview auto-refresh when filters change\n createEffect(() => {\n const endpoint = props.state.previewEndpoint\n if (!endpoint) return\n const filters = props.state.filters\n if (!filters || Object.keys(filters).length === 0) return\n\n if (previewTimer) clearTimeout(previewTimer)\n previewTimer = setTimeout(async () => {\n try {\n const res = await fetch(endpoint, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n credentials: 'include',\n body: JSON.stringify({ filters }),\n })\n if (res.ok) setLocalPreview(await res.json())\n } catch { /* ignore */ }\n }, props.state.previewDebounce || 500)\n })\n\n onCleanup(() => { if (previewTimer) clearTimeout(previewTimer) })\n\n return (\n <div\n class={`w-full bg-white dark:bg-gray-800 rounded-xl border shadow-lg overflow-visible ${\n props.state.status === 'waiting_human'\n ? 'border-blue-300 dark:border-blue-600'\n : 'border-gray-200 dark:border-gray-700'\n }`}\n style={{ animation: 'scratchpad-slide-down 0.2s ease-out' }}\n >\n {/* Header */}\n <div\n class={`flex items-center justify-between px-4 py-3 border-b border-gray-100 dark:border-gray-700 ${isCollapsible() ? 'cursor-pointer select-none hover:bg-gray-50 dark:hover:bg-gray-750' : ''}`}\n onClick={() => isCollapsible() && setCollapsed(!collapsed())}\n >\n <div class=\"flex items-center gap-2\">\n <span class=\"text-base\">📝</span>\n <h3 class=\"text-sm font-semibold text-gray-900 dark:text-white\">{props.state.title}</h3>\n <Show when={isCollapsible()}>\n <svg class={`w-3.5 h-3.5 text-gray-400 transition-transform ${collapsed() ? '-rotate-90' : ''}`} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n </Show>\n </div>\n <div class=\"flex items-center gap-2\">\n <span class={`px-2 py-0.5 text-xs font-medium rounded-full ${badge().class}`}>{badge().label}</span>\n <Show when={isClosable() && props.onClose}>\n <button onClick={(e) => { e.stopPropagation(); props.onClose?.() }} class=\"p-1 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors\" aria-label=\"Close\">\n <svg class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" /></svg>\n </button>\n </Show>\n </div>\n </div>\n\n {/* Body */}\n <Show when={!collapsed()}>\n <div style={{ \"max-height\": props.maxHeight || \"500px\", \"overflow-y\": \"auto\" }}>\n {/* Turn history header */}\n <Show when={props.state.turnHistory && props.state.turnHistory.length > 0}>\n <div class=\"px-4 py-2 border-b border-gray-100 dark:border-gray-700 flex flex-wrap items-center gap-1.5\">\n <For each={props.state.turnHistory}>\n {(turn, i) => (\n <>\n <Show when={i() > 0}>\n <svg class=\"w-3 h-3 text-gray-300 dark:text-gray-600 flex-shrink-0\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\" /></svg>\n </Show>\n <span class={`text-xs font-medium px-2 py-0.5 rounded-full ${\n turn.status === 'done' ? 'bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400'\n : turn.status === 'active' ? 'bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-400'\n : turn.status === 'skipped' ? 'bg-gray-100 dark:bg-gray-700 text-gray-400 line-through'\n : 'bg-gray-100 dark:bg-gray-700 text-gray-400'\n }`}>\n {turn.status === 'done' ? '✅' : turn.status === 'active' ? '●' : '○'} {turn.label}\n <Show when={turn.summary}><span class=\"ml-1 font-normal opacity-75\">— {turn.summary}</span></Show>\n </span>\n </>\n )}\n </For>\n </div>\n </Show>\n\n {/* Sections */}\n <div class=\"divide-y divide-gray-100 dark:divide-gray-700\">\n <For each={props.state.sections}>\n {(section) => (\n <SectionRenderer\n section={section}\n filters={props.state.filters}\n onFilterChange={props.onFilterChange}\n onAction={props.onAction}\n onSectionEdit={props.onSectionEdit}\n />\n )}\n </For>\n </div>\n\n {/* Agent messages */}\n <Show when={props.state.agentMessages.length > 0}>\n <div class=\"px-4 py-3 border-t border-gray-100 dark:border-gray-700 space-y-2\">\n <For each={props.state.agentMessages}>\n {(msg) => (\n <div class={`flex items-start gap-2 text-sm rounded-lg px-3 py-2 ${\n msg.type === 'warning' ? 'bg-amber-50 dark:bg-amber-900/10 text-amber-700 dark:text-amber-400'\n : msg.type === 'question' ? 'bg-blue-50 dark:bg-blue-900/10 text-blue-700 dark:text-blue-400 border border-blue-200 dark:border-blue-800'\n : 'bg-gray-50 dark:bg-gray-700/50 text-gray-600 dark:text-gray-400'\n }`}>\n <span class=\"flex-shrink-0 mt-0.5\">{msg.type === 'warning' ? '⚠️' : msg.type === 'question' ? '❓' : 'ℹ️'}</span>\n <p>{msg.text}</p>\n </div>\n )}\n </For>\n </div>\n </Show>\n\n {/* Preview */}\n <Show when={preview()}>\n <div class=\"px-4 py-3 border-t border-gray-100 dark:border-gray-700\">\n <Show when={preview()!.count === 0} fallback={\n <>\n <div class=\"flex items-center gap-2 mb-2\">\n <span class=\"text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide\">Preview</span>\n <span class=\"px-1.5 py-0.5 text-xs font-bold bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded\">{preview()!.count.toLocaleString()}</span>\n </div>\n <p class=\"text-sm text-gray-700 dark:text-gray-300\">{preview()!.summary}</p>\n <Show when={preview()!.rows && preview()!.rows!.length > 0}>\n <div class=\"mt-2 overflow-x-auto\">\n <table class=\"min-w-full text-xs\">\n <thead><tr><For each={Object.keys(preview()!.rows![0])}>{(k) => <th class=\"px-2 py-1 text-left font-medium text-gray-500 dark:text-gray-400\">{k}</th>}</For></tr></thead>\n <tbody><For each={preview()!.rows!.slice(0, 5)}>{(row) => <tr class=\"border-t border-gray-100 dark:border-gray-700\"><For each={Object.values(row)}>{(v) => <td class=\"px-2 py-1 text-gray-700 dark:text-gray-300\">{String(v)}</td>}</For></tr>}</For></tbody>\n </table>\n </div>\n </Show>\n </>\n }>\n <div class=\"flex flex-col items-center gap-2 py-4 text-center\">\n <span class=\"text-2xl\">🔍</span>\n <p class=\"text-sm text-gray-500 dark:text-gray-400\">No results for these filters</p>\n <button type=\"button\" onClick={() => props.onAction?.('refine_filters')} class=\"px-3 py-1.5 text-xs font-medium text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/20 rounded-lg transition-colors\">Modify filters</button>\n </div>\n </Show>\n </div>\n </Show>\n\n {/* Search button when waiting_human */}\n <Show when={props.state.status === 'waiting_human' && hasFilters()}>\n <div class=\"px-4 py-3 border-t border-gray-100 dark:border-gray-700\">\n <button\n type=\"button\"\n onClick={() => props.onAction?.('search', { filters: props.state.filters })}\n class=\"w-full px-4 py-2.5 text-sm font-semibold rounded-lg text-white bg-blue-600 hover:bg-blue-700 transition-colors flex items-center justify-center gap-2\"\n >\n <svg class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" /></svg>\n Search\n </button>\n </div>\n </Show>\n </div>\n </Show>\n\n <style>{`\n @keyframes scratchpad-slide-down { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }\n `}</style>\n </div>\n )\n}\n\n// ─── Section Renderer ────────────────────────────────────────\n\nconst SectionRenderer: Component<{\n section: ScratchpadSection\n filters: Record<string, string | string[]>\n onFilterChange?: (filters: Record<string, string | string[]>) => void\n onAction?: (action: string, data?: unknown) => void\n onSectionEdit?: (sectionId: string, content: unknown) => void\n}> = (props) => {\n return (\n <div class=\"px-4 py-3\">\n <h4 class=\"text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide mb-2\">{props.section.title}</h4>\n <Switch>\n <Match when={props.section.type === 'data'}><DataSection content={props.section.content} /></Match>\n <Match when={props.section.type === 'filter'}><InteractiveFilterSection content={props.section.content} filters={props.filters} onFilterChange={props.onFilterChange} /></Match>\n <Match when={props.section.type === 'message'}><p class=\"text-sm text-gray-700 dark:text-gray-300\">{String(props.section.content)}</p></Match>\n <Match when={props.section.type === 'action'}><ActionSection content={props.section.content} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'steps'}><EnrichedStepsSection content={props.section.content} onAction={props.onAction} onFilterChange={props.onFilterChange} /></Match>\n <Match when={props.section.type === 'form'}><EmbeddedFormSection content={props.section.content} sectionId={props.section.id} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'understanding'}><UnderstandingSection content={props.section.content} /></Match>\n <Match when={props.section.type === 'feedback'}><FeedbackSection content={props.section.content} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'prompt'}><PromptSection content={props.section.content} onAction={props.onAction} /></Match>\n <Match when={true}><pre class=\"text-xs text-gray-500 overflow-auto\">{JSON.stringify(props.section.content, null, 2)}</pre></Match>\n </Switch>\n </div>\n )\n}\n\n// ─── Data Section ────────────────────────────────────────────\n\nconst DataSection: Component<{ content: unknown }> = (props) => {\n const entries = () => typeof props.content === 'object' && props.content ? Object.entries(props.content as Record<string, unknown>) : []\n return (\n <div class=\"space-y-1\">\n <For each={entries()}>{([k, v]) => <div class=\"flex gap-2 text-xs\"><span class=\"text-gray-500 dark:text-gray-400 font-mono min-w-[120px]\">{k}:</span><span class=\"text-gray-900 dark:text-white\">{Array.isArray(v) ? v.join(', ') : String(v)}</span></div>}</For>\n </div>\n )\n}\n\n// ─── Interactive Filter Section (#4, #5) ─────────────────────\n\nconst InteractiveFilterSection: Component<{\n content: unknown\n filters: Record<string, string | string[]>\n onFilterChange?: (filters: Record<string, string | string[]>) => void\n}> = (props) => {\n const [editingKey, setEditingKey] = createSignal<string | null>(null)\n const [editValue, setEditValue] = createSignal('')\n\n // Content can be a filter definition or just use props.filters\n const filterDefs = () => {\n if (typeof props.content === 'object' && props.content) return props.content as Record<string, any>\n return {}\n }\n\n const allKeys = () => {\n const fromContent = Object.keys(filterDefs())\n const fromFilters = Object.keys(props.filters || {})\n return [...new Set([...fromContent, ...fromFilters])]\n }\n\n const removeFilter = (key: string) => {\n const next = { ...props.filters }\n delete next[key]\n props.onFilterChange?.(next)\n }\n\n const setFilter = (key: string, value: string) => {\n props.onFilterChange?.({ ...props.filters, [key]: value })\n setEditingKey(null)\n setEditValue('')\n }\n\n const getDef = (key: string) => filterDefs()[key] || {}\n\n return (\n <div class=\"flex flex-wrap gap-1.5\">\n <For each={allKeys()}>\n {(key) => {\n const def = () => getDef(key)\n const value = () => props.filters[key]\n const hasValue = () => value() !== undefined && value() !== ''\n\n return (\n <div class=\"relative\">\n <Show when={hasValue()} fallback={\n <button type=\"button\" onClick={() => { setEditingKey(key); setEditValue('') }}\n class=\"inline-flex items-center gap-1 px-2.5 py-1 text-xs font-medium border border-dashed border-gray-300 dark:border-gray-600 text-gray-500 dark:text-gray-400 rounded-full hover:border-blue-400 hover:text-blue-500 transition-colors\">\n + {def()?.label || key}\n </button>\n }>\n <span class=\"inline-flex items-center gap-1 px-2.5 py-1 text-xs font-medium bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded-full\">\n <button type=\"button\" onClick={() => { setEditingKey(key); setEditValue(String(value() || '')) }} class=\"hover:underline\">\n <span class=\"text-blue-500 dark:text-blue-400\">{def()?.label || key}:</span> {Array.isArray(value()) ? (value() as string[]).join(', ') : String(value())}\n </button>\n <Show when={props.onFilterChange}>\n <button type=\"button\" onClick={() => removeFilter(key)} class=\"ml-0.5 hover:text-blue-900 dark:hover:text-blue-100\" aria-label={`Remove ${key}`}>×</button>\n </Show>\n </span>\n </Show>\n\n {/* Inline editor */}\n <Show when={editingKey() === key}>\n <div class=\"absolute z-50 mt-1 left-0 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-lg shadow-lg p-2 min-w-[200px]\">\n <Show when={def()?.options} fallback={\n <form onSubmit={(e) => { e.preventDefault(); setFilter(key, editValue()) }} class=\"flex gap-1\">\n <input type=\"text\" value={editValue()} onInput={(e) => setEditValue(e.currentTarget.value)} placeholder={def()?.placeholder || key} autofocus\n class=\"flex-1 px-2 py-1 text-sm border border-gray-200 dark:border-gray-600 rounded bg-white dark:bg-gray-700 text-gray-900 dark:text-white focus:border-blue-400 outline-none\" />\n <button type=\"submit\" class=\"px-2 py-1 text-xs bg-blue-600 text-white rounded hover:bg-blue-700\">OK</button>\n <button type=\"button\" onClick={() => setEditingKey(null)} class=\"px-2 py-1 text-xs text-gray-500 hover:text-gray-700\">Cancel</button>\n </form>\n }>\n <div class=\"max-h-48 overflow-y-auto\">\n <For each={def().options as Array<{ value: string; label: string }>}>\n {(opt) => (\n <button type=\"button\" onClick={() => setFilter(key, opt.value)}\n class={`w-full text-left px-2 py-1.5 text-sm rounded hover:bg-blue-50 dark:hover:bg-blue-900/20 ${\n String(value()) === opt.value ? 'text-blue-600 dark:text-blue-400 bg-blue-50/50 dark:bg-blue-900/10' : 'text-gray-900 dark:text-white'\n }`}>\n {opt.label}\n <Show when={String(value()) === opt.value}><span class=\"ml-1\">✓</span></Show>\n </button>\n )}\n </For>\n </div>\n <button type=\"button\" onClick={() => setEditingKey(null)} class=\"mt-1 w-full px-2 py-1 text-xs text-gray-500 hover:text-gray-700 text-center\">Cancel</button>\n </Show>\n </div>\n </Show>\n </div>\n )\n }}\n </For>\n <Show when={allKeys().length === 0}>\n <p class=\"text-xs text-gray-400 italic\">No filters</p>\n </Show>\n </div>\n )\n}\n\n// ─── Embedded Form Section (#7, #8) ──────────────────────────\n\nconst EmbeddedFormSection: Component<{\n content: unknown\n sectionId: string\n onAction?: (action: string, data?: unknown) => void\n}> = (props) => {\n const [formData, setFormData] = createSignal<Record<string, any>>({})\n const [dynamicOptions, setDynamicOptions] = createSignal<Record<string, Array<{ label: string; value: string }>>>({})\n\n const config = () => {\n const c = props.content as any\n return { fields: c?.fields || [], submitLabel: c?.submitLabel || 'Submit' }\n }\n\n const updateField = (name: string, value: any) => setFormData(prev => ({ ...prev, [name]: value }))\n\n // depends_on reactive (#9)\n createEffect(() => {\n const data = formData()\n for (const field of config().fields) {\n const dep = field.depends_on || field.dependsOn\n if (!dep) continue\n const parentValue = data[dep.field]\n if (!parentValue) continue\n const url = (dep.options_endpoint || dep.apiUrl || '').replace('{value}', encodeURIComponent(parentValue))\n if (!url) continue\n const params = new URLSearchParams(dep.extraParams || dep.extra_params || {})\n fetch(`${url}${url.includes('?') ? '&' : '?'}${params}`)\n .then(r => r.json())\n .then(items => {\n const arr = Array.isArray(items) ? items : items.results || items.features || []\n const lf = dep.label_field || dep.labelField || 'label'\n const vf = dep.value_field || dep.valueField || 'value'\n setDynamicOptions(prev => ({ ...prev, [field.name]: arr.map((i: any) => ({ label: i[lf] || String(i), value: String(i[vf] || i[lf] || i) })) }))\n })\n .catch(() => {})\n }\n })\n\n const getField = (field: any): FormFieldParams => {\n const dynOpts = dynamicOptions()[field.name]\n return dynOpts ? { ...field, options: dynOpts } as FormFieldParams : field as FormFieldParams\n }\n\n const handleSubmit = (e: Event) => {\n e.preventDefault()\n props.onAction?.('submit_form', { sectionId: props.sectionId, values: formData() })\n }\n\n return (\n <form onSubmit={handleSubmit} class=\"flex flex-col gap-3\">\n <For each={config().fields}>\n {(field) => (\n <FormFieldRenderer\n field={getField(field)}\n value={formData()[field.name]}\n onChange={(val) => updateField(field.name, val)}\n formData={formData}\n />\n )}\n </For>\n <div class=\"flex justify-end\">\n <button type=\"submit\" class=\"px-4 py-2 text-sm font-medium rounded-lg text-white bg-blue-600 hover:bg-blue-700 transition-colors\">\n {config().submitLabel}\n </button>\n </div>\n </form>\n )\n}\n\n// ─── Enriched Steps Section (#6) ─────────────────────────────\n\nconst EnrichedStepsSection: Component<{\n content: unknown\n onAction?: (action: string, data?: unknown) => void\n onFilterChange?: (filters: Record<string, string | string[]>) => void\n}> = (props) => {\n const stepsData = () => {\n const c = props.content as any\n return { steps: c?.steps || [], currentStep: c?.currentStep ?? 0 }\n }\n\n return (\n <div class=\"space-y-3\">\n <For each={stepsData().steps}>\n {(step: any) => (\n <div class={`rounded-lg ${step.status === 'active' ? 'bg-blue-50/50 dark:bg-blue-900/10 border border-blue-200 dark:border-blue-800 p-3' : 'px-1'}`}>\n <div class={`flex items-center gap-2 text-sm font-medium ${\n step.status === 'done' ? 'text-green-600 dark:text-green-400'\n : step.status === 'active' ? 'text-blue-600 dark:text-blue-400'\n : 'text-gray-400'\n }`}>\n <span>{step.status === 'done' ? '✅' : step.status === 'active' ? '●' : '○'}</span>\n {step.label}\n <Show when={step.description && step.status === 'active'}>\n <span class=\"text-xs font-normal text-gray-500 dark:text-gray-400\">— {step.description}</span>\n </Show>\n </div>\n\n {/* Embedded content for active step */}\n <Show when={step.status === 'active' && step.content}>\n <div class=\"mt-2 ml-6\">\n <SectionRenderer\n section={step.content}\n filters={{}}\n onFilterChange={props.onFilterChange}\n onAction={props.onAction}\n />\n </div>\n </Show>\n </div>\n )}\n </For>\n\n {/* Next button */}\n <Show when={stepsData().steps.some((s: any) => s.status === 'active')}>\n <div class=\"flex justify-end\">\n <button type=\"button\" onClick={() => props.onAction?.('next_step', { step: stepsData().currentStep })}\n class=\"px-3 py-1.5 text-sm font-medium text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/20 rounded-lg transition-colors flex items-center gap-1\">\n Next <svg class=\"w-3.5 h-3.5\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\" /></svg>\n </button>\n </div>\n </Show>\n </div>\n )\n}\n\n// ─── Action Section ──────────────────────────────────────────\n\nconst ActionSection: Component<{\n content: unknown\n onAction?: (action: string, data?: unknown) => void\n}> = (props) => {\n const actions = () => Array.isArray(props.content) ? props.content as Array<{ label: string; value?: string; action?: string; variant?: string; icon?: string }> : []\n return (\n <div class=\"flex flex-wrap gap-2\">\n <For each={actions()}>\n {(item) => (\n <button type=\"button\" onClick={() => props.onAction?.(item.value || item.action || item.label, item)}\n class={`px-3 py-1.5 text-sm font-medium rounded-lg transition-colors ${\n item.variant === 'primary' ? 'bg-blue-600 text-white hover:bg-blue-700'\n : item.variant === 'danger' ? 'bg-red-600 text-white hover:bg-red-700'\n : 'border border-gray-200 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700'\n }`}>\n <Show when={item.icon}><span class=\"mr-1\">{item.icon}</span></Show>\n {item.label}\n </button>\n )}\n </For>\n </div>\n )\n}\n\n// ─── Understanding Section — agent comprehension ─────────────\n\nconst UnderstandingSection: Component<{ content: unknown }> = (props) => {\n const data = () => {\n const c = props.content as any\n return { detections: c?.detections || [], warnings: c?.warnings || [] }\n }\n\n const confidenceClass = (conf?: string) => {\n switch (conf) {\n case 'high': return 'bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400'\n case 'medium': return 'bg-yellow-100 dark:bg-yellow-900/30 text-yellow-700 dark:text-yellow-400'\n case 'low': return 'bg-red-100 dark:bg-red-900/30 text-red-700 dark:text-red-400'\n default: return 'bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400'\n }\n }\n\n return (\n <div class=\"space-y-2\">\n <div class=\"space-y-1.5\">\n <For each={data().detections}>\n {(det: any) => (\n <div class=\"flex items-center gap-2 text-sm\">\n <span class={`px-1.5 py-0.5 text-xs font-medium rounded ${confidenceClass(det.confidence)}`}>\n {det.label}\n </span>\n <span class=\"text-gray-900 dark:text-white\">{det.value}</span>\n </div>\n )}\n </For>\n </div>\n <Show when={data().warnings.length > 0}>\n <div class=\"space-y-1\">\n <For each={data().warnings}>\n {(w: string) => (\n <div class=\"flex items-start gap-1.5 text-xs text-amber-600 dark:text-amber-400\">\n <span class=\"flex-shrink-0\">⚠️</span>\n <span>{w}</span>\n </div>\n )}\n </For>\n </div>\n </Show>\n </div>\n )\n}\n\n// ─── Feedback Section — thumbs up/down ───────────────────────\n\nconst FeedbackSection: Component<{\n content: unknown\n onAction?: (action: string, data?: unknown) => void\n}> = (props) => {\n const [comment, setComment] = createSignal('')\n const data = () => {\n const c = props.content as any\n return {\n question: c?.question || '',\n approve: c?.approve || { label: 'Yes', value: 'approve' },\n reject: c?.reject || { label: 'No', value: 'reject' },\n allowComment: c?.allowComment ?? false,\n commentPlaceholder: c?.commentPlaceholder || 'Add a comment...',\n }\n }\n\n const handleFeedback = (approved: boolean) => {\n const d = data()\n props.onAction?.('feedback', {\n approved,\n value: approved ? d.approve.value : d.reject.value,\n comment: comment(),\n })\n }\n\n return (\n <div class=\"space-y-3\">\n <p class=\"text-sm text-gray-700 dark:text-gray-300\">{data().question}</p>\n <div class=\"flex gap-2\">\n <button type=\"button\" onClick={() => handleFeedback(true)}\n class=\"px-3 py-1.5 text-sm font-medium rounded-lg bg-green-600 text-white hover:bg-green-700 transition-colors flex items-center gap-1\">\n 👍 {data().approve.label}\n </button>\n <button type=\"button\" onClick={() => handleFeedback(false)}\n class=\"px-3 py-1.5 text-sm font-medium rounded-lg border border-gray-200 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors flex items-center gap-1\">\n 👎 {data().reject.label}\n </button>\n </div>\n <Show when={data().allowComment}>\n <input\n type=\"text\"\n value={comment()}\n onInput={(e) => setComment(e.currentTarget.value)}\n placeholder={data().commentPlaceholder}\n class=\"w-full px-3 py-2 text-sm border border-gray-200 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white focus:border-blue-400 outline-none\"\n />\n </Show>\n </div>\n )\n}\n\n// ─── Prompt Section — agent interpretation ───────────────────\n\nconst PromptSection: Component<{\n content: unknown\n onAction?: (action: string, data?: unknown) => void\n}> = (props) => {\n const data = () => {\n const c = props.content as any\n return {\n originalQuery: c?.originalQuery || '',\n interpretation: c?.interpretation || '',\n extracted: c?.extracted || {},\n plan: c?.plan || '',\n editable: c?.editable ?? false,\n }\n }\n\n return (\n <div class=\"space-y-2\">\n <Show when={data().originalQuery}>\n <p class=\"text-xs text-gray-500 dark:text-gray-400 italic\">\"{data().originalQuery}\"</p>\n </Show>\n <div class=\"space-y-1\">\n <For each={Object.entries(data().extracted)}>\n {([key, value]) => (\n <div class=\"flex gap-2 text-sm\">\n <span class=\"text-gray-500 dark:text-gray-400 font-medium min-w-[80px]\">{key}:</span>\n <span class=\"text-gray-900 dark:text-white\">{String(value)}</span>\n </div>\n )}\n </For>\n </div>\n <Show when={data().plan}>\n <div class=\"mt-2 px-3 py-2 bg-blue-50 dark:bg-blue-900/10 rounded-lg text-sm text-blue-700 dark:text-blue-300\">\n <span class=\"font-medium\">Plan:</span> {data().plan}\n </div>\n </Show>\n <Show when={data().editable}>\n <button type=\"button\" onClick={() => props.onAction?.('edit_prompt', data())}\n class=\"text-xs text-blue-600 dark:text-blue-400 hover:underline flex items-center gap-1\">\n ✎ Modify\n </button>\n </Show>\n </div>\n )\n}\n"],"names":["STATUS_BADGES","loading","label","class","ready","waiting_human","processing","complete","ScratchpadPanel","props","collapsed","setCollapsed","createSignal","localPreview","setLocalPreview","undefined","previewTimer","badge","state","status","isClosable","closable","isCollapsible","collapsible","preview","hasFilters","Object","keys","filters","length","createEffect","autoCloseDelay","timer","setTimeout","onClose","onCleanup","clearTimeout","endpoint","previewEndpoint","res","fetch","method","headers","credentials","body","JSON","stringify","ok","json","previewDebounce","_el$","_$getNextElement","_tmpl$9","_el$2","firstChild","_el$3","_el$4","_el$5","nextSibling","_el$7","_el$8","_co$","_$getNextMarker","_el$9","_el$0","_el$10","_el$11","_co$2","_el$32","_el$33","_co$7","$$click","_$insert","title","_$createComponent","Show","when","children","_el$6","_tmpl$","_$effect","_$setAttribute","_$memo","_el$1","_tmpl$2","e","stopPropagation","_$runHydrationEvents","_el$12","_tmpl$8","_el$23","_el$24","_co$3","_el$14","_el$25","_el$26","_co$4","_el$27","_el$28","_co$5","_el$29","_el$30","_co$6","turnHistory","_el$13","_tmpl$3","For","each","turn","i","_tmpl$0","_el$35","_tmpl$10","_el$41","_el$42","_co$9","_el$36","_el$43","_el$44","_co$0","_el$45","_el$46","_co$1","_c$","summary","_el$37","_tmpl$1","_el$38","_el$39","_el$40","_co$8","_$className","sections","section","SectionRenderer","onFilterChange","onAction","onSectionEdit","agentMessages","_el$15","_tmpl$4","msg","_el$47","_tmpl$11","_el$48","_el$49","_c$2","type","text","_el$16","_tmpl$6","count","fallback","_el$50","_tmpl$12","_el$51","_el$52","toLocaleString","_el$53","_tmpl$13","rows","_el$54","_tmpl$14","_el$55","_el$56","_el$57","_el$58","k","_el$59","_tmpl$15","slice","row","_el$60","_tmpl$16","values","v","_el$61","_tmpl$17","String","_el$17","_tmpl$5","_el$18","_el$19","_el$20","_el$21","_tmpl$7","_el$22","_$p","_$setStyleProperty","maxHeight","_p$","_v$","_v$2","_v$3","t","a","_el$62","_tmpl$19","_el$63","_el$66","_el$67","_co$10","Switch","Match","DataSection","content","InteractiveFilterSection","_el$64","ActionSection","EnrichedStepsSection","EmbeddedFormSection","sectionId","id","UnderstandingSection","FeedbackSection","PromptSection","_el$65","_tmpl$18","entries","_el$68","_tmpl$20","_el$69","_tmpl$21","_el$70","_el$72","_el$73","_co$11","_el$74","_c$3","Array","isArray","join","editingKey","setEditingKey","editValue","setEditValue","filterDefs","allKeys","fromContent","fromFilters","Set","removeFilter","key","next","setFilter","value","getDef","_el$75","_tmpl$23","_el$77","_el$78","_co$12","_el$79","_el$80","_co$13","def","hasValue","_el$81","_tmpl$29","_el$97","_el$98","_co$17","_el$99","_el$100","_co$18","_el$101","_tmpl$30","_el$102","_el$103","_el$104","_co$19","_el$82","_tmpl$25","_el$83","_el$84","_el$86","_el$87","_co$14","_el$88","_el$89","_el$90","_co$15","_el$92","_el$93","_co$16","_c$4","_el$91","_tmpl$24","_el$94","_tmpl$28","options","_el$105","_tmpl$31","_el$106","_el$107","_el$108","addEventListener","preventDefault","$$input","currentTarget","placeholder","_$setProperty","_el$95","_tmpl$26","opt","_el$109","_tmpl$33","_el$111","_el$112","_co$20","_el$113","_el$114","_co$21","_tmpl$32","_el$96","_tmpl$27","_tmpl$22","formData","setFormData","dynamicOptions","setDynamicOptions","config","c","fields","submitLabel","updateField","name","prev","data","field","dep","depends_on","dependsOn","parentValue","url","options_endpoint","apiUrl","replace","encodeURIComponent","params","URLSearchParams","extraParams","extra_params","includes","then","r","items","arr","results","features","lf","label_field","labelField","vf","value_field","valueField","map","catch","getField","dynOpts","handleSubmit","_el$115","_tmpl$34","_el$118","_el$119","_co$22","_el$116","_el$117","FormFieldRenderer","onChange","val","stepsData","steps","currentStep","_el$120","_tmpl$36","_el$123","_el$124","_co$23","_el$125","_el$126","_co$24","step","_el$127","_tmpl$39","_el$128","_el$129","_el$134","_el$135","_co$26","_el$136","_el$137","_co$27","_el$139","_el$140","_co$28","_c$5","description","_el$130","_tmpl$37","_el$131","_el$132","_el$133","_co$25","_el$138","_tmpl$38","_v$4","_v$5","some","s","_el$121","_tmpl$35","_el$122","actions","_el$141","_tmpl$40","item","_el$142","_el$144","_el$145","_co$29","_el$146","_el$147","_co$30","action","icon","_el$143","_tmpl$41","variant","detections","warnings","confidenceClass","conf","_el$148","_tmpl$42","_el$149","_el$151","_el$152","_co$31","det","_el$153","_tmpl$43","_el$154","_el$155","confidence","_el$150","w","_el$156","_tmpl$44","_el$157","_el$158","comment","setComment","question","approve","reject","allowComment","commentPlaceholder","handleFeedback","approved","d","_el$159","_tmpl$46","_el$160","_el$161","_el$162","_el$163","_el$164","_el$165","_co$32","_el$166","_el$167","_el$168","_el$169","_co$33","_el$171","_el$172","_co$34","_el$170","_tmpl$45","originalQuery","interpretation","extracted","plan","editable","_el$173","_tmpl$50","_el$186","_el$187","_co$37","_el$179","_el$188","_el$189","_co$38","_el$190","_el$191","_co$39","_el$174","_tmpl$47","_el$175","_el$177","_el$178","_co$35","_el$192","_tmpl$51","_el$193","_el$195","_el$196","_co$40","_el$197","_el$180","_tmpl$48","_el$181","_el$182","_el$183","_el$184","_co$36","_el$185","_tmpl$49","_$delegateEvents"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScratchpadPanel.d.ts","sourceRoot":"","sources":["../../src/components/ScratchpadPanel.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAmE,MAAM,UAAU,CAAA;AACrG,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,mBAAmB,CAAA;AAI3E,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,eAAe,CAAA;IACtB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,IAAI,CAAA;IACrE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IACnD,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAC7D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAUD,eAAO,MAAM,eAAe,EAAE,SAAS,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"ScratchpadPanel.d.ts","sourceRoot":"","sources":["../../src/components/ScratchpadPanel.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAmE,MAAM,UAAU,CAAA;AACrG,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,mBAAmB,CAAA;AAI3E,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,eAAe,CAAA;IACtB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,IAAI,CAAA;IACrE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IACnD,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAC7D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAUD,eAAO,MAAM,eAAe,EAAE,SAAS,CAAC,oBAAoB,CAwL3D,CAAA"}
|