@seed-ship/mcp-ui-solid 2.13.0 → 2.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/components/ScratchpadPanel.cjs +221 -2
- package/dist/components/ScratchpadPanel.cjs.map +1 -1
- package/dist/components/ScratchpadPanel.d.ts +4 -0
- package/dist/components/ScratchpadPanel.d.ts.map +1 -1
- package/dist/components/ScratchpadPanel.js +221 -2
- package/dist/components/ScratchpadPanel.js.map +1 -1
- package/dist/types/chat-bus.d.ts +3 -1
- package/dist/types/chat-bus.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/ScratchpadPanel.tsx +130 -2
- package/src/types/chat-bus.ts +3 -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 /** Dedicated callback for form submissions (cleaner than onAction) */\n onSubmit?: (sectionId: string, values: Record<string, unknown>) => void\n /** Called when user clicks retry on error state */\n onRetry?: () => 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-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-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 error: { label: 'Error', class: 'bg-red-100 text-red-600 dark:bg-red-900/30 dark:text-red-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 // Action aliases that auto-close the scratchpad\n const CLOSE_ALIASES = new Set(['done', 'close', 'dismiss', 'validate', 'cancel', 'sufficient'])\n\n const handleAction = (action: string, data?: unknown) => {\n props.onAction?.(action, data)\n if (CLOSE_ALIASES.has(action) && props.onClose) {\n props.onClose()\n }\n }\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: props.state.previewMethod || 'POST',\n headers: { 'Content-Type': 'application/json', ...props.state.previewHeaders },\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={handleAction}\n onSectionEdit={props.onSectionEdit}\n onSubmit={props.onSubmit}\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 {/* Error state with retry */}\n <Show when={props.state.status === 'error' && props.state.error}>\n <div class=\"px-4 py-3 border-t border-red-100 dark:border-red-900/30 bg-red-50 dark:bg-red-900/10\">\n <div class=\"flex items-start gap-2 text-sm text-red-700 dark:text-red-400\">\n <span class=\"flex-shrink-0 mt-0.5\">⚠️</span>\n <div class=\"flex-1\">\n <p class=\"font-medium\">{props.state.error!.message}</p>\n <Show when={props.state.error!.code}>\n <p class=\"text-xs text-red-500 dark:text-red-500 mt-0.5\">Code: {props.state.error!.code}</p>\n </Show>\n </div>\n </div>\n <div class=\"flex gap-2 mt-2\">\n <Show when={props.state.error!.retryable !== false}>\n <button type=\"button\" onClick={() => props.onRetry?.()}\n class=\"px-3 py-1.5 text-sm font-medium rounded-lg bg-red-600 text-white hover:bg-red-700 transition-colors flex items-center gap-1\">\n 🔄 Retry\n </button>\n </Show>\n <Show when={props.onClose}>\n <button type=\"button\" onClick={() => props.onClose?.()}\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\">\n Close\n </button>\n </Show>\n </div>\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={() => handleAction('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 onSubmit?: (sectionId: string, values: Record<string, 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} onSubmit={props.onSubmit} /></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={props.section.type === 'stepper'}><StepperProgressSection content={props.section.content} /></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 onSubmit?: (sectionId: string, values: Record<string, 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\n // Filter out unsupported fields, keep only values with content\n const values = Object.fromEntries(\n Object.entries(formData())\n .filter(([key]) => {\n const field = config().fields.find((f: any) => f.name === key)\n return field?.fieldStatus !== 'unsupported'\n })\n .filter(([, v]) => v !== undefined && v !== '' && !(Array.isArray(v) && v.length === 0))\n )\n\n if (props.onSubmit) {\n props.onSubmit(props.sectionId, values)\n } else {\n props.onAction?.('submit_form', { sectionId: props.sectionId, values })\n }\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 [showComment, setShowComment] = createSignal(false)\n const data = () => {\n const c = props.content as any\n // Support both formats: options array (universal) and approve/reject (simple)\n const options = c?.options || [\n { value: c?.approve?.value || 'approve', label: c?.approve?.label || 'Yes', icon: '👍', variant: 'primary' },\n { value: c?.reject?.value || 'reject', label: c?.reject?.label || 'No', icon: '👎' },\n ]\n return {\n question: c?.question || '',\n options: options as Array<{ value: string; label: string; icon?: string; variant?: string; needsComment?: boolean }>,\n allowFreeText: c?.allowFreeText ?? c?.allowComment ?? false,\n placeholder: c?.placeholder || c?.commentPlaceholder || 'Add a comment...',\n }\n }\n\n const handleOption = (option: any) => {\n if (option.needsComment) {\n setShowComment(true)\n return\n }\n props.onAction?.('feedback', { option: option.value, comment: comment() })\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 flex-wrap gap-2\">\n <For each={data().options}>\n {(option) => (\n <button type=\"button\" onClick={() => handleOption(option)}\n class={`px-3 py-1.5 text-sm font-medium rounded-lg transition-colors flex items-center gap-1 ${\n option.variant === 'primary' ? 'bg-blue-600 text-white hover:bg-blue-700'\n : option.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={option.icon}><span>{option.icon}</span></Show>\n {option.label}\n </button>\n )}\n </For>\n </div>\n <Show when={data().allowFreeText || showComment()}>\n <div class=\"flex gap-1\">\n <input type=\"text\" value={comment()} onInput={(e) => setComment(e.currentTarget.value)}\n placeholder={data().placeholder} autofocus={showComment()}\n class=\"flex-1 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 <button type=\"button\" onClick={() => props.onAction?.('feedback', { option: 'comment', comment: comment() })}\n class=\"px-3 py-2 text-sm bg-blue-600 text-white rounded-lg hover:bg-blue-700\">Send</button>\n </div>\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\n// ─── Stepper Progress Section (multi-source) ─────────────────\n\nconst StepperProgressSection: Component<{ content: unknown }> = (props) => {\n const data = () => {\n const c = props.content as any\n return {\n steps: (c?.steps || []) as Array<{ id: string; label: string; status: string; summary?: string; duration_ms?: number }>,\n orientation: c?.orientation || 'horizontal',\n }\n }\n\n const statusIcon = (status: string) => {\n switch (status) {\n case 'done': return '✅'\n case 'active': return '🔄'\n case 'error': return '❌'\n default: return '⏳'\n }\n }\n\n const isHorizontal = () => data().orientation === 'horizontal'\n\n return (\n <Show when={isHorizontal()} fallback={\n <div class=\"space-y-2\">\n <For each={data().steps}>\n {(step) => (\n <div class={`flex items-start gap-2 text-sm ${step.status === 'active' ? 'font-medium' : ''} ${step.status === 'pending' ? 'text-gray-400' : 'text-gray-700 dark:text-gray-300'}`}>\n <span class=\"flex-shrink-0\">{statusIcon(step.status)}</span>\n <div>\n <span>{step.label}</span>\n <Show when={step.summary}>\n <span class=\"ml-1 text-xs text-gray-500 dark:text-gray-400\">— {step.summary}</span>\n </Show>\n <Show when={step.duration_ms}>\n <span class=\"ml-1 text-xs text-gray-400\">({step.duration_ms}ms)</span>\n </Show>\n </div>\n </div>\n )}\n </For>\n </div>\n }>\n <div class=\"flex items-center gap-1 flex-wrap\">\n <For each={data().steps}>\n {(step, 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 <div class={`flex items-center gap-1 px-2 py-1 rounded text-xs ${\n step.status === 'done' ? 'bg-green-50 dark:bg-green-900/20 text-green-700 dark:text-green-400'\n : step.status === 'active' ? 'bg-blue-50 dark:bg-blue-900/20 text-blue-700 dark:text-blue-400 font-medium'\n : step.status === 'error' ? 'bg-red-50 dark:bg-red-900/20 text-red-700 dark:text-red-400'\n : 'text-gray-400'\n }`}>\n <span>{statusIcon(step.status)}</span>\n <span>{step.label}</span>\n <Show when={step.summary}>\n <span class=\"text-[10px] opacity-75\">{step.summary}</span>\n </Show>\n </div>\n </>\n )}\n </For>\n </div>\n </Show>\n )\n}\n"],"names":["STATUS_BADGES","loading","label","class","ready","waiting_human","processing","complete","error","ScratchpadPanel","props","collapsed","setCollapsed","createSignal","localPreview","setLocalPreview","undefined","previewTimer","badge","state","status","isClosable","closable","isCollapsible","collapsible","preview","hasFilters","Object","keys","filters","length","CLOSE_ALIASES","Set","handleAction","action","data","onAction","has","onClose","createEffect","autoCloseDelay","timer","setTimeout","onCleanup","clearTimeout","endpoint","previewEndpoint","res","fetch","method","previewMethod","headers","previewHeaders","credentials","body","JSON","stringify","ok","json","previewDebounce","_el$","_$getNextElement","_tmpl$11","_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$52","_el$53","_co$10","$$click","_$insert","title","_$createComponent","Show","when","children","_el$6","_tmpl$","_$effect","_$setAttribute","_$memo","_el$1","_tmpl$2","e","stopPropagation","_$runHydrationEvents","_el$12","_tmpl$10","_el$41","_el$42","_co$7","_el$14","_el$43","_el$44","_co$8","_el$45","_el$46","_co$9","_el$47","_el$48","_co$0","_el$49","_el$50","_co$1","turnHistory","_el$13","_tmpl$3","For","each","turn","i","_tmpl$12","_el$55","_tmpl$14","_el$61","_el$62","_co$12","_el$56","_el$63","_el$64","_co$13","_el$65","_el$66","_co$14","_c$","summary","_el$57","_tmpl$13","_el$58","_el$59","_el$60","_co$11","_$className","sections","section","SectionRenderer","onFilterChange","onSectionEdit","onSubmit","agentMessages","_el$15","_tmpl$4","msg","_el$67","_tmpl$15","_el$68","_el$69","_c$2","type","text","_el$16","_tmpl$6","count","fallback","_el$70","_tmpl$16","_el$71","_el$72","toLocaleString","_el$73","_tmpl$17","rows","_el$74","_tmpl$18","_el$75","_el$76","_el$77","_el$78","k","_el$79","_tmpl$19","slice","row","_el$80","_tmpl$20","values","v","_el$81","_tmpl$21","String","_el$17","_tmpl$5","_el$18","_el$19","_el$20","_el$21","_tmpl$0","_el$22","_el$23","_el$24","_el$25","_el$30","_el$31","_co$4","_el$32","_el$35","_el$36","_co$5","_el$37","_el$38","_co$6","message","code","_el$26","_tmpl$7","_el$27","_el$28","_el$29","_co$3","retryable","_el$33","_tmpl$8","onRetry","_el$34","_tmpl$9","_el$39","_tmpl$1","_el$40","_$p","_$setStyleProperty","maxHeight","_p$","_v$","_v$2","_v$3","t","a","_el$82","_tmpl$23","_el$83","_el$86","_el$87","_co$15","Switch","Match","DataSection","content","InteractiveFilterSection","_el$84","ActionSection","EnrichedStepsSection","EmbeddedFormSection","sectionId","id","UnderstandingSection","FeedbackSection","PromptSection","StepperProgressSection","_el$85","_tmpl$22","entries","_el$88","_tmpl$24","_el$89","_tmpl$25","_el$90","_el$92","_el$93","_co$16","_el$94","_c$3","Array","isArray","join","editingKey","setEditingKey","editValue","setEditValue","filterDefs","allKeys","fromContent","fromFilters","removeFilter","key","next","setFilter","value","getDef","_el$95","_tmpl$27","_el$97","_el$98","_co$17","_el$99","_el$100","_co$18","def","hasValue","_el$101","_tmpl$33","_el$117","_el$118","_co$22","_el$119","_el$120","_co$23","_el$121","_tmpl$34","_el$122","_el$123","_el$124","_co$24","_el$102","_tmpl$29","_el$103","_el$104","_el$106","_el$107","_co$19","_el$108","_el$109","_el$110","_co$20","_el$112","_el$113","_co$21","_c$4","_el$111","_tmpl$28","_el$114","_tmpl$32","options","_el$125","_tmpl$35","_el$126","_el$127","_el$128","addEventListener","preventDefault","$$input","currentTarget","placeholder","_$setProperty","_el$115","_tmpl$30","opt","_el$129","_tmpl$37","_el$131","_el$132","_co$25","_el$133","_el$134","_co$26","_tmpl$36","_el$116","_tmpl$31","_tmpl$26","formData","setFormData","dynamicOptions","setDynamicOptions","config","c","fields","submitLabel","updateField","name","prev","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","fromEntries","filter","find","f","fieldStatus","_el$135","_tmpl$38","_el$138","_el$139","_co$27","_el$136","_el$137","FormFieldRenderer","onChange","val","stepsData","steps","currentStep","_el$140","_tmpl$40","_el$143","_el$144","_co$28","_el$145","_el$146","_co$29","step","_el$147","_tmpl$43","_el$148","_el$149","_el$154","_el$155","_co$31","_el$156","_el$157","_co$32","_el$159","_el$160","_co$33","_c$5","description","_el$150","_tmpl$41","_el$151","_el$152","_el$153","_co$30","_el$158","_tmpl$42","_v$4","_v$5","some","s","_el$141","_tmpl$39","_el$142","actions","_el$161","_tmpl$44","item","_el$162","_el$164","_el$165","_co$34","_el$166","_el$167","_co$35","icon","_el$163","_tmpl$45","variant","detections","warnings","confidenceClass","conf","_el$168","_tmpl$46","_el$169","_el$171","_el$172","_co$36","det","_el$173","_tmpl$47","_el$174","_el$175","confidence","_el$170","w","_el$176","_tmpl$48","_el$177","_el$178","comment","setComment","showComment","setShowComment","approve","reject","question","allowFreeText","allowComment","commentPlaceholder","handleOption","option","needsComment","_el$179","_tmpl$50","_el$180","_el$181","_el$185","_el$186","_co$37","_el$187","_el$189","_el$190","_co$38","_el$191","_el$192","_co$39","_el$188","_tmpl$51","_el$182","_tmpl$49","_el$183","_el$184","_v$6","_v$7","originalQuery","interpretation","extracted","plan","editable","_el$193","_tmpl$55","_el$206","_el$207","_co$42","_el$199","_el$208","_el$209","_co$43","_el$210","_el$211","_co$44","_el$194","_tmpl$52","_el$195","_el$197","_el$198","_co$40","_el$212","_tmpl$56","_el$213","_el$215","_el$216","_co$45","_el$217","_el$200","_tmpl$53","_el$201","_el$202","_el$203","_el$204","_co$41","_el$205","_tmpl$54","orientation","statusIcon","isHorizontal","_el$219","_tmpl$58","_el$220","_tmpl$61","_el$221","_el$222","_el$223","_el$233","_el$234","_co$48","_el$235","_el$236","_co$49","_el$224","_tmpl$59","_el$225","_el$226","_el$227","_co$46","duration_ms","_el$228","_tmpl$60","_el$229","_el$231","_el$232","_co$47","_el$218","_tmpl$57","_el$238","_tmpl$63","_el$239","_el$240","_el$242","_el$243","_co$50","_el$241","_tmpl$62","_$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 /** Dedicated callback for form submissions (cleaner than onAction) */\n onSubmit?: (sectionId: string, values: Record<string, unknown>) => void\n /** Called when user clicks retry on error state */\n onRetry?: () => void\n onClose?: () => void\n /** When true, action buttons show loading spinner and stay open until next server update */\n asyncAction?: boolean\n /** When true (set by server), scratchpad stays visible during stream */\n pinned?: boolean\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-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-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 error: { label: 'Error', class: 'bg-red-100 text-red-600 dark:bg-red-900/30 dark:text-red-400' },\n}\n\nexport const ScratchpadPanel: Component<ScratchpadPanelProps> = (props) => {\n const [collapsed, setCollapsed] = createSignal(false)\n const [localPreview, setLocalPreview] = createSignal<ScratchpadState['preview']>(undefined)\n const [loadingAction, setLoadingAction] = createSignal<string | null>(null)\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 // Action aliases that auto-close the scratchpad\n const CLOSE_ALIASES = new Set(['done', 'close', 'dismiss', 'validate', 'cancel', 'sufficient'])\n\n const handleAction = (action: string, data?: unknown) => {\n if (props.asyncAction && !CLOSE_ALIASES.has(action)) {\n setLoadingAction(action)\n }\n props.onAction?.(action, data)\n if (CLOSE_ALIASES.has(action) && props.onClose) {\n props.onClose()\n }\n }\n\n // Auto-close on complete (unless pinned)\n createEffect(() => {\n if (props.state.status === 'complete' && props.autoCloseDelay && !props.pinned) {\n const timer = setTimeout(() => props.onClose?.(), props.autoCloseDelay)\n onCleanup(() => clearTimeout(timer))\n }\n // Clear loading action when server responds\n if (props.state.status !== 'processing' && loadingAction()) {\n setLoadingAction(null)\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: props.state.previewMethod || 'POST',\n headers: { 'Content-Type': 'application/json', ...props.state.previewHeaders },\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={handleAction}\n onSectionEdit={props.onSectionEdit}\n onSubmit={props.onSubmit}\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 {/* Error state with retry */}\n <Show when={props.state.status === 'error' && props.state.error}>\n <div class=\"px-4 py-3 border-t border-red-100 dark:border-red-900/30 bg-red-50 dark:bg-red-900/10\">\n <div class=\"flex items-start gap-2 text-sm text-red-700 dark:text-red-400\">\n <span class=\"flex-shrink-0 mt-0.5\">⚠️</span>\n <div class=\"flex-1\">\n <p class=\"font-medium\">{props.state.error!.message}</p>\n <Show when={props.state.error!.code}>\n <p class=\"text-xs text-red-500 dark:text-red-500 mt-0.5\">Code: {props.state.error!.code}</p>\n </Show>\n </div>\n </div>\n <div class=\"flex gap-2 mt-2\">\n <Show when={props.state.error!.retryable !== false}>\n <button type=\"button\" onClick={() => props.onRetry?.()}\n class=\"px-3 py-1.5 text-sm font-medium rounded-lg bg-red-600 text-white hover:bg-red-700 transition-colors flex items-center gap-1\">\n 🔄 Retry\n </button>\n </Show>\n <Show when={props.onClose}>\n <button type=\"button\" onClick={() => props.onClose?.()}\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\">\n Close\n </button>\n </Show>\n </div>\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={() => handleAction('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 onSubmit?: (sectionId: string, values: Record<string, 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} onSubmit={props.onSubmit} /></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={props.section.type === 'stepper'}><StepperProgressSection content={props.section.content} /></Match>\n <Match when={props.section.type === 'error'}><ErrorSectionRenderer content={props.section.content} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'source_card'}><SourceCardSection content={props.section.content} /></Match>\n <Match when={props.section.type === 'diff'}><DiffSection content={props.section.content} /></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 onSubmit?: (sectionId: string, values: Record<string, 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\n // Filter out unsupported fields, keep only values with content\n const values = Object.fromEntries(\n Object.entries(formData())\n .filter(([key]) => {\n const field = config().fields.find((f: any) => f.name === key)\n return field?.fieldStatus !== 'unsupported'\n })\n .filter(([, v]) => v !== undefined && v !== '' && !(Array.isArray(v) && v.length === 0))\n )\n\n if (props.onSubmit) {\n props.onSubmit(props.sectionId, values)\n } else {\n props.onAction?.('submit_form', { sectionId: props.sectionId, values })\n }\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 [showComment, setShowComment] = createSignal(false)\n const data = () => {\n const c = props.content as any\n // Support both formats: options array (universal) and approve/reject (simple)\n const options = c?.options || [\n { value: c?.approve?.value || 'approve', label: c?.approve?.label || 'Yes', icon: '👍', variant: 'primary' },\n { value: c?.reject?.value || 'reject', label: c?.reject?.label || 'No', icon: '👎' },\n ]\n return {\n question: c?.question || '',\n options: options as Array<{ value: string; label: string; icon?: string; variant?: string; needsComment?: boolean }>,\n allowFreeText: c?.allowFreeText ?? c?.allowComment ?? false,\n placeholder: c?.placeholder || c?.commentPlaceholder || 'Add a comment...',\n }\n }\n\n const handleOption = (option: any) => {\n if (option.needsComment) {\n setShowComment(true)\n return\n }\n props.onAction?.('feedback', { option: option.value, comment: comment() })\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 flex-wrap gap-2\">\n <For each={data().options}>\n {(option) => (\n <button type=\"button\" onClick={() => handleOption(option)}\n class={`px-3 py-1.5 text-sm font-medium rounded-lg transition-colors flex items-center gap-1 ${\n option.variant === 'primary' ? 'bg-blue-600 text-white hover:bg-blue-700'\n : option.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={option.icon}><span>{option.icon}</span></Show>\n {option.label}\n </button>\n )}\n </For>\n </div>\n <Show when={data().allowFreeText || showComment()}>\n <div class=\"flex gap-1\">\n <input type=\"text\" value={comment()} onInput={(e) => setComment(e.currentTarget.value)}\n placeholder={data().placeholder} autofocus={showComment()}\n class=\"flex-1 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 <button type=\"button\" onClick={() => props.onAction?.('feedback', { option: 'comment', comment: comment() })}\n class=\"px-3 py-2 text-sm bg-blue-600 text-white rounded-lg hover:bg-blue-700\">Send</button>\n </div>\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\n// ─── Stepper Progress Section (multi-source) ─────────────────\n\nconst StepperProgressSection: Component<{ content: unknown }> = (props) => {\n const data = () => {\n const c = props.content as any\n return {\n steps: (c?.steps || []) as Array<{ id: string; label: string; status: string; summary?: string; duration_ms?: number }>,\n orientation: c?.orientation || 'horizontal',\n }\n }\n\n const statusIcon = (status: string) => {\n switch (status) {\n case 'done': return '✅'\n case 'active': return '🔄'\n case 'error': return '❌'\n default: return '⏳'\n }\n }\n\n const isHorizontal = () => data().orientation === 'horizontal'\n\n return (\n <Show when={isHorizontal()} fallback={\n <div class=\"space-y-2\">\n <For each={data().steps}>\n {(step) => (\n <div class={`flex items-start gap-2 text-sm ${step.status === 'active' ? 'font-medium' : ''} ${step.status === 'pending' ? 'text-gray-400' : 'text-gray-700 dark:text-gray-300'}`}>\n <span class=\"flex-shrink-0\">{statusIcon(step.status)}</span>\n <div>\n <span>{step.label}</span>\n <Show when={step.summary}>\n <span class=\"ml-1 text-xs text-gray-500 dark:text-gray-400\">— {step.summary}</span>\n </Show>\n <Show when={step.duration_ms}>\n <span class=\"ml-1 text-xs text-gray-400\">({step.duration_ms}ms)</span>\n </Show>\n </div>\n </div>\n )}\n </For>\n </div>\n }>\n <div class=\"flex items-center gap-1 flex-wrap\">\n <For each={data().steps}>\n {(step, 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 <div class={`flex items-center gap-1 px-2 py-1 rounded text-xs ${\n step.status === 'done' ? 'bg-green-50 dark:bg-green-900/20 text-green-700 dark:text-green-400'\n : step.status === 'active' ? 'bg-blue-50 dark:bg-blue-900/20 text-blue-700 dark:text-blue-400 font-medium'\n : step.status === 'error' ? 'bg-red-50 dark:bg-red-900/20 text-red-700 dark:text-red-400'\n : 'text-gray-400'\n }`}>\n <span>{statusIcon(step.status)}</span>\n <span>{step.label}</span>\n <Show when={step.summary}>\n <span class=\"text-[10px] opacity-75\">{step.summary}</span>\n </Show>\n </div>\n </>\n )}\n </For>\n </div>\n </Show>\n )\n}\n\n// ─── Error Section (F6) ──────────────────────────────────────\n\nconst ErrorSectionRenderer: Component<{\n content: unknown\n onAction?: (action: string, data?: unknown) => void\n}> = (props) => {\n const [showDetails, setShowDetails] = createSignal(false)\n const data = () => {\n const c = props.content as any\n return { message: c?.message || 'Error', severity: c?.severity || 'error', retryAction: c?.retryAction, retryLabel: c?.retryLabel || 'Retry', details: c?.details, timestamp: c?.timestamp }\n }\n const isWarning = () => data().severity === 'warning'\n\n return (\n <div class={`rounded-lg px-3 py-2 text-sm ${isWarning() ? 'bg-amber-50 dark:bg-amber-900/10 text-amber-700 dark:text-amber-400 border border-amber-200 dark:border-amber-800' : 'bg-red-50 dark:bg-red-900/10 text-red-700 dark:text-red-400 border border-red-200 dark:border-red-800'}`}>\n <div class=\"flex items-start gap-2\">\n <span class=\"flex-shrink-0\">{isWarning() ? '⚠️' : '❌'}</span>\n <div class=\"flex-1\">\n <p>{data().message}</p>\n <div class=\"flex gap-2 mt-2\">\n <Show when={data().retryAction}>\n <button type=\"button\" onClick={() => props.onAction?.(data().retryAction!)} class={`px-2 py-1 text-xs font-medium rounded ${isWarning() ? 'bg-amber-600 text-white hover:bg-amber-700' : 'bg-red-600 text-white hover:bg-red-700'} transition-colors`}>🔄 {data().retryLabel}</button>\n </Show>\n <Show when={data().details}>\n <button type=\"button\" onClick={() => setShowDetails(!showDetails())} class=\"px-2 py-1 text-xs opacity-70 hover:opacity-100\">▶ Details</button>\n </Show>\n </div>\n <Show when={showDetails() && data().details}>\n <pre class=\"mt-2 text-xs opacity-70 overflow-x-auto\">{data().details}</pre>\n </Show>\n </div>\n </div>\n </div>\n )\n}\n\n// ─── Source Card Section (F9) ────────────────────────────────\n\nconst SourceCardSection: Component<{ content: unknown }> = (props) => {\n const data = () => {\n const c = props.content as any\n return { name: c?.name || 'Source', status: c?.status || 'available', capabilities: c?.capabilities || [], latency_ms: c?.latency_ms, freshness: c?.freshness, row_count: c?.row_count }\n }\n const statusIcon = () => ({ queried: '✅', available: '📦', error: '❌' } as Record<string, string>)[data().status] || '📦'\n\n return (\n <div class=\"rounded-lg border border-gray-200 dark:border-gray-700 px-3 py-2\">\n <div class=\"flex items-center justify-between mb-1.5\">\n <span class=\"text-sm font-medium text-gray-900 dark:text-white\">{statusIcon()} {data().name}</span>\n <Show when={data().row_count !== undefined}>\n <span class=\"text-xs font-bold text-blue-600 dark:text-blue-400\">{data().row_count?.toLocaleString()} results</span>\n </Show>\n </div>\n <div class=\"flex flex-wrap gap-1.5 mb-1\">\n <For each={data().capabilities}>\n {(cap: any) => (\n <span class={`text-[10px] px-1.5 py-0.5 rounded ${cap.supported ? 'bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400' : 'bg-red-100 dark:bg-red-900/30 text-red-600 dark:text-red-400'}`}>\n {cap.supported ? '✅' : '❌'} {cap.label}\n </span>\n )}\n </For>\n </div>\n <Show when={data().freshness || data().latency_ms}>\n <p class=\"text-[10px] text-gray-400\">{[data().freshness, data().latency_ms ? `${data().latency_ms}ms` : ''].filter(Boolean).join(' · ')}</p>\n </Show>\n </div>\n )\n}\n\n// ─── Diff Section (F10) ──────────────────────────────────────\n\nconst DiffSection: Component<{ content: unknown }> = (props) => {\n const data = () => {\n const c = props.content as any\n return { left: c?.left || { label: 'A', rows: [] }, right: c?.right || { label: 'B', rows: [] }, highlight: c?.highlight_columns || [] }\n }\n const allKeys = () => {\n const l = data().left.rows[0] || {}\n const r = data().right.rows[0] || {}\n return [...new Set([...Object.keys(l), ...Object.keys(r)])]\n }\n\n return (\n <div class=\"overflow-x-auto\">\n <table class=\"min-w-full text-xs\">\n <thead>\n <tr>\n <th class=\"px-2 py-1 text-left text-gray-500 dark:text-gray-400\"></th>\n <th class=\"px-2 py-1 text-left font-medium text-blue-600 dark:text-blue-400\">{data().left.label}</th>\n <th class=\"px-2 py-1 text-left font-medium text-purple-600 dark:text-purple-400\">{data().right.label}</th>\n </tr>\n </thead>\n <tbody>\n <For each={allKeys()}>\n {(key) => {\n const lVal = () => data().left.rows[0]?.[key]\n const rVal = () => data().right.rows[0]?.[key]\n const isDiff = () => String(lVal()) !== String(rVal()) && data().highlight.includes(key)\n return (\n <tr class={`border-t border-gray-100 dark:border-gray-700 ${isDiff() ? 'bg-yellow-50 dark:bg-yellow-900/10' : ''}`}>\n <td class=\"px-2 py-1 font-mono text-gray-500 dark:text-gray-400\">{key}</td>\n <td class=\"px-2 py-1 text-gray-900 dark:text-white\">{lVal() !== undefined ? String(lVal()) : '—'}</td>\n <td class=\"px-2 py-1 text-gray-900 dark:text-white\">{rVal() !== undefined ? String(rVal()) : '—'}</td>\n </tr>\n )\n }}\n </For>\n </tbody>\n </table>\n </div>\n )\n}\n"],"names":["STATUS_BADGES","loading","label","class","ready","waiting_human","processing","complete","error","ScratchpadPanel","props","collapsed","setCollapsed","createSignal","localPreview","setLocalPreview","undefined","loadingAction","setLoadingAction","previewTimer","badge","state","status","isClosable","closable","isCollapsible","collapsible","preview","hasFilters","Object","keys","filters","length","CLOSE_ALIASES","Set","handleAction","action","data","asyncAction","has","onAction","onClose","createEffect","autoCloseDelay","pinned","timer","setTimeout","onCleanup","clearTimeout","endpoint","previewEndpoint","res","fetch","method","previewMethod","headers","previewHeaders","credentials","body","JSON","stringify","ok","json","previewDebounce","_el$","_$getNextElement","_tmpl$11","_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$52","_el$53","_co$10","$$click","_$insert","title","_$createComponent","Show","when","children","_el$6","_tmpl$","_$effect","_$setAttribute","_$memo","_el$1","_tmpl$2","e","stopPropagation","_$runHydrationEvents","_el$12","_tmpl$10","_el$41","_el$42","_co$7","_el$14","_el$43","_el$44","_co$8","_el$45","_el$46","_co$9","_el$47","_el$48","_co$0","_el$49","_el$50","_co$1","turnHistory","_el$13","_tmpl$3","For","each","turn","i","_tmpl$12","_el$55","_tmpl$14","_el$61","_el$62","_co$12","_el$56","_el$63","_el$64","_co$13","_el$65","_el$66","_co$14","_c$","summary","_el$57","_tmpl$13","_el$58","_el$59","_el$60","_co$11","_$className","sections","section","SectionRenderer","onFilterChange","onSectionEdit","onSubmit","agentMessages","_el$15","_tmpl$4","msg","_el$67","_tmpl$15","_el$68","_el$69","_c$2","type","text","_el$16","_tmpl$6","count","fallback","_el$70","_tmpl$16","_el$71","_el$72","toLocaleString","_el$73","_tmpl$17","rows","_el$74","_tmpl$18","_el$75","_el$76","_el$77","_el$78","k","_el$79","_tmpl$19","slice","row","_el$80","_tmpl$20","values","v","_el$81","_tmpl$21","String","_el$17","_tmpl$5","_el$18","_el$19","_el$20","_el$21","_tmpl$0","_el$22","_el$23","_el$24","_el$25","_el$30","_el$31","_co$4","_el$32","_el$35","_el$36","_co$5","_el$37","_el$38","_co$6","message","code","_el$26","_tmpl$7","_el$27","_el$28","_el$29","_co$3","retryable","_el$33","_tmpl$8","onRetry","_el$34","_tmpl$9","_el$39","_tmpl$1","_el$40","_$p","_$setStyleProperty","maxHeight","_p$","_v$","_v$2","_v$3","t","a","_el$82","_tmpl$23","_el$83","_el$86","_el$87","_co$15","Switch","Match","DataSection","content","InteractiveFilterSection","_el$84","ActionSection","EnrichedStepsSection","EmbeddedFormSection","sectionId","id","UnderstandingSection","FeedbackSection","PromptSection","StepperProgressSection","ErrorSectionRenderer","SourceCardSection","DiffSection","_el$85","_tmpl$22","entries","_el$88","_tmpl$24","_el$89","_tmpl$25","_el$90","_el$92","_el$93","_co$16","_el$94","_c$3","Array","isArray","join","editingKey","setEditingKey","editValue","setEditValue","filterDefs","allKeys","fromContent","fromFilters","removeFilter","key","next","setFilter","value","getDef","_el$95","_tmpl$27","_el$97","_el$98","_co$17","_el$99","_el$100","_co$18","def","hasValue","_el$101","_tmpl$33","_el$117","_el$118","_co$22","_el$119","_el$120","_co$23","_el$121","_tmpl$34","_el$122","_el$123","_el$124","_co$24","_el$102","_tmpl$29","_el$103","_el$104","_el$106","_el$107","_co$19","_el$108","_el$109","_el$110","_co$20","_el$112","_el$113","_co$21","_c$4","_el$111","_tmpl$28","_el$114","_tmpl$32","options","_el$125","_tmpl$35","_el$126","_el$127","_el$128","addEventListener","preventDefault","$$input","currentTarget","placeholder","_$setProperty","_el$115","_tmpl$30","opt","_el$129","_tmpl$37","_el$131","_el$132","_co$25","_el$133","_el$134","_co$26","_tmpl$36","_el$116","_tmpl$31","_tmpl$26","formData","setFormData","dynamicOptions","setDynamicOptions","config","c","fields","submitLabel","updateField","name","prev","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","fromEntries","filter","find","f","fieldStatus","_el$135","_tmpl$38","_el$138","_el$139","_co$27","_el$136","_el$137","FormFieldRenderer","onChange","val","stepsData","steps","currentStep","_el$140","_tmpl$40","_el$143","_el$144","_co$28","_el$145","_el$146","_co$29","step","_el$147","_tmpl$43","_el$148","_el$149","_el$154","_el$155","_co$31","_el$156","_el$157","_co$32","_el$159","_el$160","_co$33","_c$5","description","_el$150","_tmpl$41","_el$151","_el$152","_el$153","_co$30","_el$158","_tmpl$42","_v$4","_v$5","some","s","_el$141","_tmpl$39","_el$142","actions","_el$161","_tmpl$44","item","_el$162","_el$164","_el$165","_co$34","_el$166","_el$167","_co$35","icon","_el$163","_tmpl$45","variant","detections","warnings","confidenceClass","conf","_el$168","_tmpl$46","_el$169","_el$171","_el$172","_co$36","det","_el$173","_tmpl$47","_el$174","_el$175","confidence","_el$170","w","_el$176","_tmpl$48","_el$177","_el$178","comment","setComment","showComment","setShowComment","approve","reject","question","allowFreeText","allowComment","commentPlaceholder","handleOption","option","needsComment","_el$179","_tmpl$50","_el$180","_el$181","_el$185","_el$186","_co$37","_el$187","_el$189","_el$190","_co$38","_el$191","_el$192","_co$39","_el$188","_tmpl$51","_el$182","_tmpl$49","_el$183","_el$184","_v$6","_v$7","originalQuery","interpretation","extracted","plan","editable","_el$193","_tmpl$55","_el$206","_el$207","_co$42","_el$199","_el$208","_el$209","_co$43","_el$210","_el$211","_co$44","_el$194","_tmpl$52","_el$195","_el$197","_el$198","_co$40","_el$212","_tmpl$56","_el$213","_el$215","_el$216","_co$45","_el$217","_el$200","_tmpl$53","_el$201","_el$202","_el$203","_el$204","_co$41","_el$205","_tmpl$54","orientation","statusIcon","isHorizontal","_el$219","_tmpl$58","_el$220","_tmpl$61","_el$221","_el$222","_el$223","_el$233","_el$234","_co$48","_el$235","_el$236","_co$49","_el$224","_tmpl$59","_el$225","_el$226","_el$227","_co$46","duration_ms","_el$228","_tmpl$60","_el$229","_el$231","_el$232","_co$47","_el$218","_tmpl$57","_el$238","_tmpl$63","_el$239","_el$240","_el$242","_el$243","_co$50","_el$241","_tmpl$62","showDetails","setShowDetails","severity","retryAction","retryLabel","details","timestamp","isWarning","_el$244","_tmpl$67","_el$245","_el$246","_el$247","_el$248","_el$249","_el$255","_el$256","_co$52","_el$257","_el$258","_co$53","_el$260","_el$261","_co$54","_el$250","_tmpl$64","_el$251","_el$252","_el$253","_co$51","_el$254","_tmpl$65","_el$259","_tmpl$66","capabilities","latency_ms","freshness","row_count","queried","available","_el$262","_tmpl$70","_el$263","_el$264","_el$266","_el$267","_co$55","_el$265","_el$268","_el$269","_co$56","_el$274","_el$275","_co$58","_el$276","_el$278","_el$279","_co$59","_el$270","_tmpl$68","_el$272","_el$273","_co$57","cap","_el$280","_tmpl$71","_el$282","_el$283","_co$60","_el$281","_el$284","_el$285","_co$61","supported","_el$277","_tmpl$69","Boolean","left","right","highlight","highlight_columns","l","_el$286","_tmpl$72","_el$287","_el$288","_el$289","_el$290","_el$291","_el$292","_el$293","lVal","rVal","isDiff","_el$294","_tmpl$73","_el$295","_el$296","_el$297","_c$6","_c$7","_$delegateEvents"],"mappings":";;;;;;;;AAgCA,MAAMA,gBAAqF;AAAA,EACzFC,SAAS;AAAA,IAAEC,OAAO;AAAA,IAAcC,OAAO;AAAA,EAAA;AAAA,EACvCC,OAAO;AAAA,IAAEF,OAAO;AAAA,IAASC,OAAO;AAAA,EAAA;AAAA,EAChCE,eAAe;AAAA,IAAEH,OAAO;AAAA,IAAaC,OAAO;AAAA,EAAA;AAAA,EAC5CG,YAAY;AAAA,IAAEJ,OAAO;AAAA,IAAiBC,OAAO;AAAA,EAAA;AAAA,EAC7CI,UAAU;AAAA,IAAEL,OAAO;AAAA,IAAYC,OAAO;AAAA,EAAA;AAAA,EACtCK,OAAO;AAAA,IAAEN,OAAO;AAAA,IAASC,OAAO;AAAA,EAAA;AAClC;AAEO,MAAMM,kBAAoDC,CAAAA,UAAU;AACzE,QAAM,CAACC,WAAWC,YAAY,IAAIC,QAAAA,aAAa,KAAK;AACpD,QAAM,CAACC,cAAcC,eAAe,IAAIF,QAAAA,aAAyCG,MAAS;AAC1F,QAAM,CAACC,eAAeC,gBAAgB,IAAIL,QAAAA,aAA4B,IAAI;AAC1E,MAAIM,eAAqD;AACzD,QAAMC,QAAQA,MAAMpB,cAAcU,MAAMW,MAAMC,MAAM,KAAKtB,cAAcC;AACvE,QAAMsB,aAAaA,MAAMb,MAAMc,aAAa;AAC5C,QAAMC,gBAAgBA,MAAMf,MAAMgB,gBAAgB;AAClD,QAAMC,UAAUA,MAAMb,aAAAA,KAAkBJ,MAAMW,MAAMM;AACpD,QAAMC,aAAaA,MAAMC,OAAOC,KAAKpB,MAAMW,MAAMU,WAAW,CAAA,CAAE,EAAEC,SAAS;AAGzE,QAAMC,gBAAgB,oBAAIC,IAAI,CAAC,QAAQ,SAAS,WAAW,YAAY,UAAU,YAAY,CAAC;AAE9F,QAAMC,eAAeA,CAACC,QAAgBC,SAAmB;;AACvD,QAAI3B,MAAM4B,eAAe,CAACL,cAAcM,IAAIH,MAAM,GAAG;AACnDlB,uBAAiBkB,MAAM;AAAA,IACzB;AACA1B,gBAAM8B,aAAN9B,+BAAiB0B,QAAQC;AACzB,QAAIJ,cAAcM,IAAIH,MAAM,KAAK1B,MAAM+B,SAAS;AAC9C/B,YAAM+B,QAAAA;AAAAA,IACR;AAAA,EACF;AAGAC,UAAAA,aAAa,MAAM;AACjB,QAAIhC,MAAMW,MAAMC,WAAW,cAAcZ,MAAMiC,kBAAkB,CAACjC,MAAMkC,QAAQ;AAC9E,YAAMC,QAAQC,WAAW,MAAA;;AAAMpC,2BAAM+B,YAAN/B;AAAAA,SAAmBA,MAAMiC,cAAc;AACtEI,wBAAU,MAAMC,aAAaH,KAAK,CAAC;AAAA,IACrC;AAEA,QAAInC,MAAMW,MAAMC,WAAW,gBAAgBL,iBAAiB;AAC1DC,uBAAiB,IAAI;AAAA,IACvB;AAAA,EACF,CAAC;AAGDwB,UAAAA,aAAa,MAAM;AACjB,UAAMO,WAAWvC,MAAMW,MAAM6B;AAC7B,QAAI,CAACD,SAAU;AACf,UAAMlB,UAAUrB,MAAMW,MAAMU;AAC5B,QAAI,CAACA,WAAWF,OAAOC,KAAKC,OAAO,EAAEC,WAAW,EAAG;AAEnD,QAAIb,2BAA2BA,YAAY;AAC3CA,mBAAe2B,WAAW,YAAY;AACpC,UAAI;AACF,cAAMK,MAAM,MAAMC,MAAMH,UAAU;AAAA,UAChCI,QAAQ3C,MAAMW,MAAMiC,iBAAiB;AAAA,UACrCC,SAAS;AAAA,YAAE,gBAAgB;AAAA,YAAoB,GAAG7C,MAAMW,MAAMmC;AAAAA,UAAAA;AAAAA,UAC9DC,aAAa;AAAA,UACbC,MAAMC,KAAKC,UAAU;AAAA,YAAE7B;AAAAA,UAAAA,CAAS;AAAA,QAAA,CACjC;AACD,YAAIoB,IAAIU,GAAI9C,iBAAgB,MAAMoC,IAAIW,MAAM;AAAA,MAC9C,QAAQ;AAAA,MAAE;AAAA,IACZ,GAAGpD,MAAMW,MAAM0C,mBAAmB,GAAG;AAAA,EACvC,CAAC;AAEDhB,UAAAA,UAAU,MAAM;AAAE,QAAI5B,2BAA2BA,YAAY;AAAA,EAAE,CAAC;AAEhE,UAAA,MAAA;AAAA,QAAA6C,OAAAC,IAAAA,eAAAC,QAAA,GAAAC,QAAAH,KAAAI,YAAAC,QAAAF,MAAAC,YAAAE,QAAAD,MAAAD,YAAAG,QAAAD,MAAAE,aAAAC,QAAAF,MAAAC,aAAA,CAAAE,OAAAC,IAAA,IAAAC,IAAAA,cAAAH,MAAAD,WAAA,GAAAK,QAAAR,MAAAG,aAAAM,QAAAD,MAAAT,YAAAW,SAAAD,MAAAN,aAAA,CAAAQ,QAAAC,KAAA,IAAAL,IAAAA,cAAAG,OAAAP,WAAA,GAAAU,SAAAf,MAAAK,aAAA,CAAAW,QAAAC,MAAA,IAAAR,IAAAA,cAAAM,OAAAV,WAAA;AAAAW,WAAAX;AAAAL,UAAAkB,UAYe,MAAM5D,cAAAA,KAAmBb,aAAa,CAACD,WAAW;AAAC2E,QAAAA,OAAAf,OAAA,MAIO7D,MAAMW,MAAMkE,KAAK;AAAAD,eAAAjB,OAAAmB,IAAAA,gBACjFC,cAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEjE,cAAAA;AAAAA,MAAe;AAAA,MAAA,IAAAkE,WAAA;AAAA,YAAAC,QAAA3B,IAAAA,eAAA4B,MAAA;AAAAC,YAAAA,OAAA,MAAAC,IAAAA,aAAAH,OAAA,SACb,kDAAkDjF,cAAc,eAAe,EAAE,EAAE,CAAA;AAAA,eAAAiF;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAAlB,OAAAC,IAAA;AAAAW,QAAAA,OAAAR,OAAA,MAMlB1D,MAAAA,EAAQlB,KAAK;AAAAoF,eAAAT,OAAAW,IAAAA,gBAC3FC,cAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEM,IAAAA,aAAAzE,YAAY,EAAA,KAAIb,MAAM+B;AAAAA,MAAO;AAAA,MAAA,IAAAkD,WAAA;AAAA,YAAAM,QAAAhC,IAAAA,eAAAiC,OAAA;AAAAD,cAAAZ,UACrBc,CAAAA,MAAM;;AAAEA,YAAEC,gBAAAA;AAAmB1F,sBAAM+B,YAAN/B;AAAAA,QAAkB;AAAC2F,+BAAAA;AAAA,eAAAJ;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAAjB,QAAAC,KAAA;AAAAK,eAAAtB,MAAAwB,IAAAA,gBAQvEC,cAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAE,CAAC/E,UAAAA;AAAAA,MAAW;AAAA,MAAA,IAAAgF,WAAA;AAAA,YAAAW,SAAArC,IAAAA,eAAAsC,QAAA,GAAAC,SAAAF,OAAAlC,YAAA,CAAAqC,QAAAC,KAAA,IAAA9B,IAAAA,cAAA4B,OAAAhC,WAAA,GAAAmC,SAAAF,OAAAjC,aAAAoC,SAAAD,OAAAnC,aAAA,CAAAqC,QAAAC,KAAA,IAAAlC,IAAAA,cAAAgC,OAAApC,WAAA,GAAAuC,SAAAF,OAAArC,aAAA,CAAAwC,QAAAC,KAAA,IAAArC,IAAAA,cAAAmC,OAAAvC,WAAA,GAAA0C,SAAAF,OAAAxC,aAAA,CAAA2C,QAAAC,KAAA,IAAAxC,IAAAA,cAAAsC,OAAA1C,WAAA,GAAA6C,SAAAF,OAAA3C,aAAA,CAAA8C,QAAAC,KAAA,IAAA3C,kBAAAyC,OAAA7C,WAAA;AAAAc,mBAAAgB,QAAAd,IAAAA,gBAGnBC,cAAI;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAEM,SAAA,MAAA,CAAA,CAAAtF,MAAMW,MAAMmG,WAAW,EAAA,KAAI9G,MAAMW,MAAMmG,YAAYxF,SAAS;AAAA,UAAC;AAAA,UAAA,IAAA2D,WAAA;AAAA,gBAAA8B,SAAAxD,IAAAA,eAAAyD,OAAA;AAAApC,uBAAAmC,QAAAjC,IAAAA,gBAEpEmC,aAAG;AAAA,cAAA,IAACC,OAAI;AAAA,uBAAElH,MAAMW,MAAMmG;AAAAA,cAAW;AAAA,cAAA7B,UAC/BA,CAACkC,MAAMC,MAAC,CAAAtC,IAAAA,gBAEJC,QAAAA,MAAI;AAAA,gBAAA,IAACC,OAAI;AAAA,yBAAEoC,MAAM;AAAA,gBAAC;AAAA,gBAAA,IAAAnC,WAAA;AAAA,yBAAA1B,IAAAA,eAAA8D,QAAA;AAAA,gBAAA;AAAA,cAAA,CAAA,IAAA,MAAA;AAAA,oBAAAC,SAAA/D,IAAAA,eAAAgE,QAAA,GAAAC,SAAAF,OAAA5D,YAAA,CAAA+D,QAAAC,MAAA,IAAAxD,IAAAA,cAAAsD,OAAA1D,WAAA,GAAA6D,SAAAF,OAAA3D,aAAA8D,SAAAD,OAAA7D,aAAA,CAAA+D,QAAAC,MAAA,IAAA5D,IAAAA,cAAA0D,OAAA9D,WAAA,GAAAiE,SAAAF,OAAA/D,aAAA,CAAAkE,QAAAC,MAAA,IAAA/D,IAAAA,cAAA6D,OAAAjE,WAAA;AAAAc,oBAAAA,OAAA0C,SAAA,MAAA;AAAA,sBAAAY,MAAA5C,IAAAA,KAAA,MAShB6B,KAAKvG,WAAW,MAAM;AAAA,yBAAA,MAAtBsH,IAAAA,IAAyB,MAAMf,KAAKvG,WAAW,WAAW,MAAM;AAAA,gBAAG,GAAA,GAAA6G,QAAAC,MAAA;AAAA9C,oBAAAA,OAAA0C,QAAA,MAAGH,KAAK3H,OAAKqI,QAAAC,MAAA;AAAAlD,2BAAA0C,QAAAxC,IAAAA,gBAChFC,cAAI;AAAA,kBAAA,IAACC,OAAI;AAAA,2BAAEmC,KAAKgB;AAAAA,kBAAO;AAAA,kBAAA,IAAAlD,WAAA;AAAA,wBAAAmD,SAAA7E,IAAAA,eAAA8E,QAAA,GAAAC,SAAAF,OAAA1E,YAAA6E,SAAAD,OAAAxE,aAAA,CAAA0E,QAAAC,MAAA,IAAAvE,IAAAA,cAAAqE,OAAAzE,WAAA;AAAAc,wBAAAA,OAAAwD,QAAA,MAA+CjB,KAAKgB,SAAOK,QAAAC,MAAA;AAAA,2BAAAL;AAAAA,kBAAA;AAAA,gBAAA,CAAA,GAAAJ,QAAAC,MAAA;AAAA7C,2BAAA,MAAAsD,IAAAA,UAAApB,QAPxE,gDACXH,KAAKvG,WAAW,SAAS,yEACvBuG,KAAKvG,WAAW,WAAW,qEAC3BuG,KAAKvG,WAAW,YAAY,4DAC5B,4CAA4C,EAC9C,CAAA;AAAA,uBAAA0G;AAAAA,cAAA,IAAA;AAAA,YAAA,CAKL,CAAA;AAAA,mBAAAP;AAAAA,UAAA;AAAA,QAAA,CAAA,GAAAhB,QAAAC,KAAA;AAAApB,mBAAAqB,QAAAnB,IAAAA,gBAOJmC,aAAG;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAElH,MAAMW,MAAMgI;AAAAA,UAAQ;AAAA,UAAA1D,UAC3B2D,CAAAA,YAAO9D,IAAAA,gBACN+D,iBAAe;AAAA,YACdD;AAAAA,YAAgB,IAChBvH,UAAO;AAAA,qBAAErB,MAAMW,MAAMU;AAAAA,YAAO;AAAA,YAAA,IAC5ByH,iBAAc;AAAA,qBAAE9I,MAAM8I;AAAAA,YAAc;AAAA,YACpChH,UAAUL;AAAAA,YAAY,IACtBsH,gBAAa;AAAA,qBAAE/I,MAAM+I;AAAAA,YAAa;AAAA,YAAA,IAClCC,WAAQ;AAAA,qBAAEhJ,MAAMgJ;AAAAA,YAAQ;AAAA,UAAA,CAAA;AAAA,QAAA,CAE3B,CAAA;AAAApE,mBAAAgB,QAAAd,IAAAA,gBAKJC,cAAI;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAEhF,MAAMW,MAAMsI,cAAc3H,SAAS;AAAA,UAAC;AAAA,UAAA,IAAA2D,WAAA;AAAA,gBAAAiE,SAAA3F,IAAAA,eAAA4F,OAAA;AAAAvE,uBAAAsE,QAAApE,IAAAA,gBAE3CmC,aAAG;AAAA,cAAA,IAACC,OAAI;AAAA,uBAAElH,MAAMW,MAAMsI;AAAAA,cAAa;AAAA,cAAAhE,UAChCmE,UAAG,MAAA;AAAA,oBAAAC,SAAA9F,mBAAA+F,QAAA,GAAAC,SAAAF,OAAA3F,YAAA8F,SAAAD,OAAAzF;AAAAc,oBAAAA,OAAA2E,SAAA,MAAA;AAAA,sBAAAE,OAAAnE,IAAAA,KAAA,MAMmC8D,IAAIM,SAAS,SAAS;AAAA,yBAAA,MAAtBD,KAAAA,IAAyB,OAAOL,IAAIM,SAAS,aAAa,MAAM;AAAA,gBAAI,IAAA;AAAA9E,oBAAAA,OAAA4E,QAAA,MACpGJ,IAAIO,IAAI;AAAAvE,oBAAAA,OAAA,MAAAsD,IAAAA,UAAAW,QANF,uDACVD,IAAIM,SAAS,YAAY,wEACvBN,IAAIM,SAAS,aAAa,gHAC1B,iEAAiE,EACnE,CAAA;AAAA,uBAAAL;AAAAA,cAAA,GAAA;AAAA,YAAA,CAIH,CAAA;AAAA,mBAAAH;AAAAA,UAAA;AAAA,QAAA,CAAA,GAAA/C,QAAAC,KAAA;AAAAxB,mBAAAgB,QAAAd,IAAAA,gBAMNC,cAAI;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAE/D,QAAAA;AAAAA,UAAS;AAAA,UAAA,IAAAgE,WAAA;AAAA,gBAAA2E,SAAArG,IAAAA,eAAAsG,OAAA;AAAAjF,uBAAAgF,QAAA9E,IAAAA,gBAEhBC,cAAI;AAAA,cAAA,IAACC,OAAI;AAAA,uBAAE/D,QAAAA,EAAW6I,UAAU;AAAA,cAAC;AAAA,cAAA,IAAEC,WAAQ;AAAA,uBAAA,EAAA,MAAA;AAAA,sBAAAC,SAAAzG,mBAAA0G,QAAA,GAAAC,SAAAF,OAAAtG,YAAAyG,SAAAD,OAAApG;AAAAc,sBAAAA,OAAAuF,QAAA,MAIkFlJ,QAAAA,EAAW6I,MAAMM,gBAAgB;AAAA,yBAAAJ;AAAAA,gBAAA,GAAA,IAAA,MAAA;AAAA,sBAAAK,SAAA9G,IAAAA,eAAA+G,QAAA;AAAA1F,sBAAAA,OAAAyF,QAAA,MAEtGpJ,QAAAA,EAAWkH,OAAO;AAAA,yBAAAkC;AAAAA,gBAAA,GAAA,GAAAvF,IAAAA,gBACtEC,cAAI;AAAA,kBAAA,IAACC,OAAI;AAAA,2BAAEM,SAAA,MAAA,CAAA,CAAArE,UAAWsJ,IAAI,EAAA,KAAItJ,QAAAA,EAAWsJ,KAAMjJ,SAAS;AAAA,kBAAC;AAAA,kBAAA,IAAA2D,WAAA;AAAA,wBAAAuF,SAAAjH,IAAAA,eAAAkH,QAAA,GAAAC,SAAAF,OAAA9G,YAAAiH,SAAAD,OAAAhH,YAAAkH,SAAAD,OAAAjH,YAAAmH,SAAAF,OAAA7G;AAAAc,+BAAAgG,QAAA9F,IAAAA,gBAGxCmC,aAAG;AAAA,sBAAA,IAACC,OAAI;AAAA,+BAAE/F,OAAOC,KAAKH,QAAAA,EAAWsJ,KAAM,CAAC,CAAC;AAAA,sBAAC;AAAA,sBAAAtF,UAAI6F,QAAC,MAAA;AAAA,4BAAAC,SAAAxH,IAAAA,eAAAyH,QAAA;AAAApG,4BAAAA,OAAAmG,QAAmFD,CAAC;AAAA,+BAAAC;AAAAA,sBAAA,GAAA;AAAA,oBAAA,CAAM,CAAA;AAAAnG,+BAAAiG,QAAA/F,IAAAA,gBAC7ImC,aAAG;AAAA,sBAAA,IAACC,OAAI;AAAA,+BAAEjG,QAAAA,EAAWsJ,KAAMU,MAAM,GAAG,CAAC;AAAA,sBAAC;AAAA,sBAAAhG,UAAIiG,UAAG,MAAA;AAAA,4BAAAC,SAAA5H,IAAAA,eAAA6H,QAAA;AAAAxG,mCAAAuG,QAAArG,IAAAA,gBAAgEmC,aAAG;AAAA,0BAAA,IAACC,OAAI;AAAA,mCAAE/F,OAAOkK,OAAOH,GAAG;AAAA,0BAAC;AAAA,0BAAAjG,UAAIqG,QAAC,MAAA;AAAA,gCAAAC,SAAAhI,IAAAA,eAAAiI,QAAA;AAAA5G,gCAAAA,OAAA2G,QAAA,MAA6DE,OAAOH,CAAC,CAAC;AAAA,mCAAAC;AAAAA,0BAAA,GAAA;AAAA,wBAAA,CAAM,CAAA;AAAA,+BAAAJ;AAAAA,sBAAA,GAAA;AAAA,oBAAA,CAAY,CAAA;AAAA,2BAAAX;AAAAA,kBAAA;AAAA,gBAAA,CAAA,CAAA;AAAA,cAAA;AAAA,cAAA,IAAAvF,WAAA;AAAA,oBAAAyG,SAAAnI,IAAAA,eAAAoI,OAAA,GAAAC,SAAAF,OAAAhI,YAAAmI,SAAAD,OAAA9H,aAAAgI,SAAAD,OAAA/H;AAAAgI,uBAAAnH,UASrN,MAAA;;AAAM3E,qCAAM8B,aAAN9B,+BAAiB;AAAA;AAAiB2F,uCAAAA;AAAA,uBAAA+F;AAAAA,cAAA;AAAA,YAAA,CAAA,CAAA;AAAA,mBAAA9B;AAAAA,UAAA;AAAA,QAAA,CAAA,GAAAtD,QAAAC,KAAA;AAAA3B,mBAAAgB,QAAAd,IAAAA,gBAO9EC,cAAI;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAEM,IAAAA,KAAA,MAAAtF,MAAMW,MAAMC,WAAW,OAAO,EAAA,KAAIZ,MAAMW,MAAMb;AAAAA,UAAK;AAAA,UAAA,IAAAmF,WAAA;AAAA,gBAAA8G,SAAAxI,IAAAA,eAAAyI,OAAA,GAAAC,SAAAF,OAAArI,YAAAwI,SAAAD,OAAAvI,YAAAyI,SAAAD,OAAApI,aAAAsI,SAAAD,OAAAzI,YAAA2I,SAAAD,OAAAtI,aAAA,CAAAwI,QAAAC,KAAA,IAAArI,IAAAA,cAAAmI,OAAAvI,WAAA,GAAA0I,SAAAP,OAAAnI,aAAA2I,SAAAD,OAAA9I,YAAA,CAAAgJ,QAAAC,KAAA,IAAAzI,IAAAA,cAAAuI,OAAA3I,WAAA,GAAA8I,SAAAF,OAAA5I,aAAA,CAAA+I,QAAAC,KAAA,IAAA5I,kBAAA0I,OAAA9I,WAAA;AAAAc,gBAAAA,OAAAwH,QAAA,MAK/BpM,MAAMW,MAAMb,MAAOiN,OAAO;AAAAnI,uBAAAuH,QAAArH,IAAAA,gBACjDC,cAAI;AAAA,cAAA,IAACC,OAAI;AAAA,uBAAEhF,MAAMW,MAAMb,MAAOkN;AAAAA,cAAI;AAAA,cAAA,IAAA/H,WAAA;AAAA,oBAAAgI,SAAA1J,IAAAA,eAAA2J,OAAA,GAAAC,SAAAF,OAAAvJ,YAAA0J,SAAAD,OAAArJ,aAAA,CAAAuJ,QAAAC,KAAA,IAAApJ,IAAAA,cAAAkJ,OAAAtJ,WAAA;AAAAc,2BAAAqI,QAAA,MAC+BjN,MAAMW,MAAMb,MAAOkN,MAAIK,QAAAC,KAAA;AAAA,uBAAAL;AAAAA,cAAA;AAAA,YAAA,CAAA,GAAAX,QAAAC,KAAA;AAAA3H,uBAAA4H,QAAA1H,IAAAA,gBAK1FC,cAAI;AAAA,cAAA,IAACC,OAAI;AAAA,uBAAEhF,MAAMW,MAAMb,MAAOyN,cAAc;AAAA,cAAK;AAAA,cAAA,IAAAtI,WAAA;AAAA,oBAAAuI,SAAAjK,IAAAA,eAAAkK,OAAA;AAAAD,uBAAA7I,UACjB;;AAAM3E,qCAAM0N,YAAN1N;AAAAA;AAAiB2F,uCAAAA;AAAA,uBAAA6H;AAAAA,cAAA;AAAA,YAAA,CAAA,GAAAd,QAAAC,KAAA;AAAA/H,uBAAA4H,QAAA1H,IAAAA,gBAKvDC,cAAI;AAAA,cAAA,IAACC,OAAI;AAAA,uBAAEhF,MAAM+B;AAAAA,cAAO;AAAA,cAAA,IAAAkD,WAAA;AAAA,oBAAA0I,SAAApK,IAAAA,eAAAqK,OAAA;AAAAD,uBAAAhJ,UACQ;;AAAM3E,qCAAM+B,YAAN/B;AAAAA;AAAiB2F,uCAAAA;AAAA,uBAAAgI;AAAAA,cAAA;AAAA,YAAA,CAAA,GAAAd,QAAAC,KAAA;AAAA,mBAAAf;AAAAA,UAAA;AAAA,QAAA,CAAA,GAAAtF,QAAAC,KAAA;AAAA9B,mBAAAgB,QAAAd,IAAAA,gBAU7DC,cAAI;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAEM,IAAAA,KAAA,MAAAtF,MAAMW,MAAMC,WAAW,eAAe,EAAA,KAAIM,WAAAA;AAAAA,UAAY;AAAA,UAAA,IAAA+D,WAAA;AAAA,gBAAA4I,SAAAtK,IAAAA,eAAAuK,OAAA,GAAAC,SAAAF,OAAAnK;AAAAqK,mBAAApJ,UAInD,MAAMlD,aAAa,UAAU;AAAA,cAAEJ,SAASrB,MAAMW,MAAMU;AAAAA,YAAAA,CAAS;AAACsE,mCAAAA;AAAA,mBAAAkI;AAAAA,UAAA;AAAA,QAAA,CAAA,GAAAjH,QAAAC,KAAA;AAAAzB,mBAAA4I,SAAAC,qBAAArI,QAAA,cA1HnD5F,MAAMkO,aAAa,OAAO,CAAA;AAAA,eAAAtI;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAAnB,QAAAC,MAAA;AAAAU,QAAAA,OAAA+I,CAAAA,QAAA;AAAA,UAAAC,MAjCjD,iFACLpO,MAAMW,MAAMC,WAAW,kBACnB,yCACA,sCAAsC,IAC1CyN,OAKO,6FAA6FtN,cAAAA,IAAkB,uEAAuE,EAAE,IAAEuN,OAalL,gDAAgD5N,QAAQjB,KAAK;AAAE2O,cAAAD,IAAA1I,KAAAiD,IAAAA,UAAApF,MAAA6K,IAAA1I,IAAA2I,GAAA;AAAAC,eAAAF,IAAAI,KAAA7F,IAAAA,UAAAjF,OAAA0K,IAAAI,IAAAF,IAAA;AAAAC,eAAAH,IAAAK,KAAA9F,IAAAA,UAAAtE,OAAA+J,IAAAK,IAAAF,IAAA;AAAA,aAAAH;AAAAA,IAAA,GAAA;AAAA,MAAA1I,GAAAnF;AAAAA,MAAAiO,GAAAjO;AAAAA,MAAAkO,GAAAlO;AAAAA,IAAAA,CAAA;AAAAqF,2BAAAA;AAAA,WAAArC;AAAAA,EAAA,GAAA;AAqJtF;AAIA,MAAMuF,kBAOA7I,CAAAA,UAAU;AACd,UAAA,MAAA;AAAA,QAAAyO,SAAAlL,IAAAA,eAAAmL,QAAA,GAAAC,SAAAF,OAAA/K,YAAAkL,SAAAD,OAAA7K,aAAA,CAAA+K,QAAAC,MAAA,IAAA5K,IAAAA,cAAA0K,OAAA9K,WAAA;AAAAc,QAAAA,OAAA+J,QAAA,MAEmG3O,MAAM4I,QAAQ/D,KAAK;AAAAD,eAAA6J,QAAA3J,IAAAA,gBACjHiK,gBAAM;AAAA,MAAA,IAAA9J,WAAA;AAAA,eAAA,CAAAH,IAAAA,gBACJkK,eAAK;AAAA,UAAA,IAAChK,OAAI;AAAA,mBAAEhF,MAAM4I,QAAQc,SAAS;AAAA,UAAM;AAAA,UAAA,IAAAzE,WAAA;AAAA,mBAAAH,IAAAA,gBAAGmK,aAAW;AAAA,cAAA,IAACC,UAAO;AAAA,uBAAElP,MAAM4I,QAAQsG;AAAAA,cAAO;AAAA,YAAA,CAAA;AAAA,UAAA;AAAA,QAAA,CAAA,GAAApK,IAAAA,gBACtFkK,eAAK;AAAA,UAAA,IAAChK,OAAI;AAAA,mBAAEhF,MAAM4I,QAAQc,SAAS;AAAA,UAAQ;AAAA,UAAA,IAAAzE,WAAA;AAAA,mBAAAH,IAAAA,gBAAGqK,0BAAwB;AAAA,cAAA,IAACD,UAAO;AAAA,uBAAElP,MAAM4I,QAAQsG;AAAAA,cAAO;AAAA,cAAA,IAAE7N,UAAO;AAAA,uBAAErB,MAAMqB;AAAAA,cAAO;AAAA,cAAA,IAAEyH,iBAAc;AAAA,uBAAE9I,MAAM8I;AAAAA,cAAc;AAAA,YAAA,CAAA;AAAA,UAAA;AAAA,QAAA,CAAA,GAAAhE,IAAAA,gBACnKkK,eAAK;AAAA,UAAA,IAAChK,OAAI;AAAA,mBAAEhF,MAAM4I,QAAQc,SAAS;AAAA,UAAS;AAAA,UAAA,IAAAzE,WAAA;AAAA,gBAAAmK,SAAA7L,IAAAA,eAAA+G,QAAA;AAAA1F,gBAAAA,OAAAwK,QAAA,MAAuD3D,OAAOzL,MAAM4I,QAAQsG,OAAO,CAAC;AAAA,mBAAAE;AAAAA,UAAA;AAAA,QAAA,CAAA,GAAAtK,IAAAA,gBAChIkK,eAAK;AAAA,UAAA,IAAChK,OAAI;AAAA,mBAAEhF,MAAM4I,QAAQc,SAAS;AAAA,UAAQ;AAAA,UAAA,IAAAzE,WAAA;AAAA,mBAAAH,IAAAA,gBAAGuK,eAAa;AAAA,cAAA,IAACH,UAAO;AAAA,uBAAElP,MAAM4I,QAAQsG;AAAAA,cAAO;AAAA,cAAA,IAAEpN,WAAQ;AAAA,uBAAE9B,MAAM8B;AAAAA,cAAQ;AAAA,YAAA,CAAA;AAAA,UAAA;AAAA,QAAA,CAAA,GAAAgD,IAAAA,gBACpHkK,eAAK;AAAA,UAAA,IAAChK,OAAI;AAAA,mBAAEhF,MAAM4I,QAAQc,SAAS;AAAA,UAAO;AAAA,UAAA,IAAAzE,WAAA;AAAA,mBAAAH,IAAAA,gBAAGwK,sBAAoB;AAAA,cAAA,IAACJ,UAAO;AAAA,uBAAElP,MAAM4I,QAAQsG;AAAAA,cAAO;AAAA,cAAA,IAAEpN,WAAQ;AAAA,uBAAE9B,MAAM8B;AAAAA,cAAQ;AAAA,cAAA,IAAEgH,iBAAc;AAAA,uBAAE9I,MAAM8I;AAAAA,cAAc;AAAA,YAAA,CAAA;AAAA,UAAA;AAAA,QAAA,CAAA,GAAAhE,IAAAA,gBAChKkK,eAAK;AAAA,UAAA,IAAChK,OAAI;AAAA,mBAAEhF,MAAM4I,QAAQc,SAAS;AAAA,UAAM;AAAA,UAAA,IAAAzE,WAAA;AAAA,mBAAAH,IAAAA,gBAAGyK,qBAAmB;AAAA,cAAA,IAACL,UAAO;AAAA,uBAAElP,MAAM4I,QAAQsG;AAAAA,cAAO;AAAA,cAAA,IAAEM,YAAS;AAAA,uBAAExP,MAAM4I,QAAQ6G;AAAAA,cAAE;AAAA,cAAA,IAAE3N,WAAQ;AAAA,uBAAE9B,MAAM8B;AAAAA,cAAQ;AAAA,cAAA,IAAEkH,WAAQ;AAAA,uBAAEhJ,MAAMgJ;AAAAA,cAAQ;AAAA,YAAA,CAAA;AAAA,UAAA;AAAA,QAAA,CAAA,GAAAlE,IAAAA,gBAC/KkK,eAAK;AAAA,UAAA,IAAChK,OAAI;AAAA,mBAAEhF,MAAM4I,QAAQc,SAAS;AAAA,UAAe;AAAA,UAAA,IAAAzE,WAAA;AAAA,mBAAAH,IAAAA,gBAAG4K,sBAAoB;AAAA,cAAA,IAACR,UAAO;AAAA,uBAAElP,MAAM4I,QAAQsG;AAAAA,cAAO;AAAA,YAAA,CAAA;AAAA,UAAA;AAAA,QAAA,CAAA,GAAApK,IAAAA,gBACxGkK,eAAK;AAAA,UAAA,IAAChK,OAAI;AAAA,mBAAEhF,MAAM4I,QAAQc,SAAS;AAAA,UAAU;AAAA,UAAA,IAAAzE,WAAA;AAAA,mBAAAH,IAAAA,gBAAG6K,iBAAe;AAAA,cAAA,IAACT,UAAO;AAAA,uBAAElP,MAAM4I,QAAQsG;AAAAA,cAAO;AAAA,cAAA,IAAEpN,WAAQ;AAAA,uBAAE9B,MAAM8B;AAAAA,cAAQ;AAAA,YAAA,CAAA;AAAA,UAAA;AAAA,QAAA,CAAA,GAAAgD,IAAAA,gBACxHkK,eAAK;AAAA,UAAA,IAAChK,OAAI;AAAA,mBAAEhF,MAAM4I,QAAQc,SAAS;AAAA,UAAQ;AAAA,UAAA,IAAAzE,WAAA;AAAA,mBAAAH,IAAAA,gBAAG8K,eAAa;AAAA,cAAA,IAACV,UAAO;AAAA,uBAAElP,MAAM4I,QAAQsG;AAAAA,cAAO;AAAA,cAAA,IAAEpN,WAAQ;AAAA,uBAAE9B,MAAM8B;AAAAA,cAAQ;AAAA,YAAA,CAAA;AAAA,UAAA;AAAA,QAAA,CAAA,GAAAgD,IAAAA,gBACpHkK,eAAK;AAAA,UAAA,IAAChK,OAAI;AAAA,mBAAEhF,MAAM4I,QAAQc,SAAS;AAAA,UAAS;AAAA,UAAA,IAAAzE,WAAA;AAAA,mBAAAH,IAAAA,gBAAG+K,wBAAsB;AAAA,cAAA,IAACX,UAAO;AAAA,uBAAElP,MAAM4I,QAAQsG;AAAAA,cAAO;AAAA,YAAA,CAAA;AAAA,UAAA;AAAA,QAAA,CAAA,GAAApK,IAAAA,gBACpGkK,eAAK;AAAA,UAAA,IAAChK,OAAI;AAAA,mBAAEhF,MAAM4I,QAAQc,SAAS;AAAA,UAAO;AAAA,UAAA,IAAAzE,WAAA;AAAA,mBAAAH,IAAAA,gBAAGgL,sBAAoB;AAAA,cAAA,IAACZ,UAAO;AAAA,uBAAElP,MAAM4I,QAAQsG;AAAAA,cAAO;AAAA,cAAA,IAAEpN,WAAQ;AAAA,uBAAE9B,MAAM8B;AAAAA,cAAQ;AAAA,YAAA,CAAA;AAAA,UAAA;AAAA,QAAA,CAAA,GAAAgD,IAAAA,gBAC1HkK,eAAK;AAAA,UAAA,IAAChK,OAAI;AAAA,mBAAEhF,MAAM4I,QAAQc,SAAS;AAAA,UAAa;AAAA,UAAA,IAAAzE,WAAA;AAAA,mBAAAH,IAAAA,gBAAGiL,mBAAiB;AAAA,cAAA,IAACb,UAAO;AAAA,uBAAElP,MAAM4I,QAAQsG;AAAAA,cAAO;AAAA,YAAA,CAAA;AAAA,UAAA;AAAA,QAAA,CAAA,GAAApK,IAAAA,gBACnGkK,eAAK;AAAA,UAAA,IAAChK,OAAI;AAAA,mBAAEhF,MAAM4I,QAAQc,SAAS;AAAA,UAAM;AAAA,UAAA,IAAAzE,WAAA;AAAA,mBAAAH,IAAAA,gBAAGkL,aAAW;AAAA,cAAA,IAACd,UAAO;AAAA,uBAAElP,MAAM4I,QAAQsG;AAAAA,cAAO;AAAA,YAAA,CAAA;AAAA,UAAA;AAAA,QAAA,CAAA,GAAApK,IAAAA,gBACtFkK,eAAK;AAAA,UAAChK,MAAM;AAAA,UAAI,IAAAC,WAAA;AAAA,gBAAAgL,SAAA1M,IAAAA,eAAA2M,QAAA;AAAAtL,uBAAAqL,QAAA,MAAoDhN,KAAKC,UAAUlD,MAAM4I,QAAQsG,SAAS,MAAM,CAAC,CAAC;AAAA,mBAAAe;AAAAA,UAAA;AAAA,QAAA,CAAA,CAAA;AAAA,MAAA;AAAA,IAAA,CAAA,GAAApB,QAAAC,MAAA;AAAA,WAAAL;AAAAA,EAAA,GAAA;AAI3H;AAIA,MAAMQ,cAAgDjP,CAAAA,UAAU;AAC9D,QAAMmQ,UAAUA,MAAM,OAAOnQ,MAAMkP,YAAY,YAAYlP,MAAMkP,UAAU/N,OAAOgP,QAAQnQ,MAAMkP,OAAkC,IAAI,CAAA;AACtI,UAAA,MAAA;AAAA,QAAAkB,SAAA7M,IAAAA,eAAA8M,QAAA;AAAAzL,eAAAwL,QAAAtL,IAAAA,gBAEKmC,aAAG;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEiJ,QAAAA;AAAAA,MAAS;AAAA,MAAAlL,UAAGA,CAAC,CAAC6F,GAAGQ,CAAC,OAAC,MAAA;AAAA,YAAAgF,SAAA/M,IAAAA,eAAAgN,QAAA,GAAAC,SAAAF,OAAA5M,YAAA+M,SAAAD,OAAA9M,YAAA,CAAAgN,QAAAC,MAAA,IAAAzM,IAAAA,cAAAuM,OAAA3M,WAAA;AAAA4M,eAAA5M;AAAAA,YAAA8M,SAAAJ,OAAA1M;AAAAc,YAAAA,OAAA4L,QAA6G1F,GAAC4F,QAAAC,MAAA;AAAA/L,YAAAA,OAAAgM,SAAA,MAAA;AAAA,cAAAC,OAAAvL,IAAAA,KAAA,MAAA,CAAA,CAAsDwL,MAAMC,QAAQzF,CAAC,CAAC;AAAA,iBAAA,MAAhBuF,SAAmBvF,EAAE0F,KAAK,IAAI,IAAIvF,OAAOH,CAAC;AAAA,QAAC,IAAA;AAAA,eAAAgF;AAAAA,MAAA,GAAA;AAAA,IAAA,CAAc,CAAA;AAAA,WAAAF;AAAAA,EAAA,GAAA;AAGjQ;AAIA,MAAMjB,2BAIAnP,CAAAA,UAAU;AACd,QAAM,CAACiR,YAAYC,aAAa,IAAI/Q,QAAAA,aAA4B,IAAI;AACpE,QAAM,CAACgR,WAAWC,YAAY,IAAIjR,QAAAA,aAAa,EAAE;AAGjD,QAAMkR,aAAaA,MAAM;AACvB,QAAI,OAAOrR,MAAMkP,YAAY,YAAYlP,MAAMkP,gBAAgBlP,MAAMkP;AACrE,WAAO,CAAA;AAAA,EACT;AAEA,QAAMoC,UAAUA,MAAM;AACpB,UAAMC,cAAcpQ,OAAOC,KAAKiQ,WAAAA,CAAY;AAC5C,UAAMG,cAAcrQ,OAAOC,KAAKpB,MAAMqB,WAAW,CAAA,CAAE;AACnD,WAAO,CAAC,GAAG,oBAAIG,IAAI,CAAC,GAAG+P,aAAa,GAAGC,WAAW,CAAC,CAAC;AAAA,EACtD;AAEA,QAAMC,eAAeA,CAACC,QAAgB;;AACpC,UAAMC,OAAO;AAAA,MAAE,GAAG3R,MAAMqB;AAAAA,IAAAA;AACxB,WAAOsQ,KAAKD,GAAG;AACf1R,gBAAM8I,mBAAN9I,+BAAuB2R;AAAAA,EACzB;AAEA,QAAMC,YAAYA,CAACF,KAAaG,UAAkB;;AAChD7R,gBAAM8I,mBAAN9I,+BAAuB;AAAA,MAAE,GAAGA,MAAMqB;AAAAA,MAAS,CAACqQ,GAAG,GAAGG;AAAAA,IAAAA;AAClDX,kBAAc,IAAI;AAClBE,iBAAa,EAAE;AAAA,EACjB;AAEA,QAAMU,SAASA,CAACJ,QAAgBL,aAAaK,GAAG,KAAK,CAAA;AAErD,UAAA,MAAA;AAAA,QAAAK,SAAAxO,IAAAA,eAAAyO,QAAA,GAAAC,SAAAF,OAAArO,YAAA,CAAAwO,QAAAC,MAAA,IAAAjO,IAAAA,cAAA+N,OAAAnO,WAAA,GAAAsO,SAAAF,OAAApO,aAAA,CAAAuO,SAAAC,MAAA,IAAApO,IAAAA,cAAAkO,OAAAtO,WAAA;AAAAc,eAAAmN,QAAAjN,IAAAA,gBAEKmC,aAAG;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEoK,QAAAA;AAAAA,MAAS;AAAA,MAAArM,UAChByM,CAAAA,QAAQ;AACR,cAAMa,MAAMA,MAAMT,OAAOJ,GAAG;AAC5B,cAAMG,QAAQA,MAAM7R,MAAMqB,QAAQqQ,GAAG;AACrC,cAAMc,WAAWA,MAAMX,MAAAA,MAAYvR,UAAauR,YAAY;AAE5D,gBAAA,MAAA;AAAA,cAAAY,UAAAlP,IAAAA,eAAAmP,QAAA,GAAAC,UAAAF,QAAA/O,YAAA,CAAAkP,SAAAC,MAAA,IAAA3O,IAAAA,cAAAyO,QAAA7O,WAAA,GAAAgP,UAAAF,QAAA9O,aAAA,CAAAiP,SAAAC,MAAA,IAAA9O,IAAAA,cAAA4O,QAAAhP,WAAA;AAAAc,qBAAA6N,SAAA3N,IAAAA,gBAEKC,cAAI;AAAA,YAAA,IAACC,OAAI;AAAA,qBAAEwN,SAAAA;AAAAA,YAAU;AAAA,YAAA,IAAEzI,WAAQ;AAAA,sBAAA,MAAA;AAAA,oBAAAkJ,UAAA1P,IAAAA,eAAA2P,QAAA,GAAAC,UAAAF,QAAAvP,YAAA0P,UAAAD,QAAArP,aAAA,CAAAuP,SAAAC,MAAA,IAAApP,IAAAA,cAAAkP,QAAAtP,WAAA;AAAAmP,wBAAAtO,UACC,MAAM;AAAEuM,gCAAcQ,GAAG;AAAGN,+BAAa,EAAE;AAAA,gBAAE;AAACxM,oBAAAA,OAAAqO,SAAA;;AAExEV,oCAAAA,MAAAA,mBAAO/S,UAASkS;AAAAA,mBAAG2B,SAAAC,MAAA;AAAA3N,uCAAAA;AAAA,uBAAAsN;AAAAA,cAAA,GAAA;AAAA,YAAA;AAAA,YAAA,IAAAhO,WAAA;AAAA,kBAAAsO,UAAAhQ,IAAAA,eAAAiQ,QAAA,GAAAC,UAAAF,QAAA7P,YAAAgQ,UAAAD,QAAA/P,YAAAiQ,UAAAD,QAAAhQ,YAAA,CAAAkQ,SAAAC,MAAA,IAAA3P,IAAAA,cAAAyP,QAAA7P,WAAA;AAAA8P,sBAAA9P;kBAAAgQ,UAAAJ,QAAA5P,aAAAiQ,UAAAD,QAAAhQ,aAAA,CAAAkQ,SAAAC,MAAA,IAAA/P,IAAAA,cAAA6P,QAAAjQ,WAAA,GAAAoQ,UAAAT,QAAA3P,aAAA,CAAAqQ,SAAAC,MAAA,IAAAlQ,IAAAA,cAAAgQ,QAAApQ,WAAA;AAAA2P,sBAAA9O,UAIS,MAAM;AAAEuM,8BAAcQ,GAAG;AAAGN,6BAAa3F,OAAOoG,MAAAA,KAAW,EAAE,CAAC;AAAA,cAAE;AAACjN,kBAAAA,OAAA8O,SAAA;;AAC9CnB,kCAAAA,MAAAA,mBAAO/S,UAASkS;AAAAA,iBAAGkC,SAAAC,MAAA;AAAAjP,kBAAAA,OAAA6O,UAAA,MAAA;AAAA,oBAAAY,OAAA/O,IAAAA,KAAA,MAAA,CAAA,CAAWwL,MAAMC,QAAQc,MAAAA,CAAO,CAAC;AAAA,uBAAA,MAAtBwC,KAAAA,IAA0BxC,MAAAA,EAAqBb,KAAK,IAAI,IAAIvF,OAAOoG,OAAO;AAAA,cAAC,GAAA,GAAAmC,SAAAC,MAAA;AAAArP,yBAAA2O,SAAAzO,IAAAA,gBAE1JC,cAAI;AAAA,gBAAA,IAACC,OAAI;AAAA,yBAAEhF,MAAM8I;AAAAA,gBAAc;AAAA,gBAAA,IAAA7D,WAAA;AAAA,sBAAAqP,UAAA/Q,IAAAA,eAAAgR,QAAA;AAAAD,0BAAA3P,UACC,MAAM8M,aAAaC,GAAG;AAACrM,sBAAAA,aAAAiP,SAAA,cAA0E,UAAU5C,GAAG,EAAE;AAAA/L,yCAAAA;AAAA,yBAAA2O;AAAAA,gBAAA;AAAA,cAAA,CAAA,GAAAH,SAAAC,MAAA;AAAAzO,qCAAAA;AAAA,qBAAA4N;AAAAA,YAAA;AAAA,UAAA,CAAA,GAAAX,SAAAC,MAAA;AAAAjO,qBAAA6N,SAAA3N,IAAAA,gBAMpJC,cAAI;AAAA,YAAA,IAACC,OAAI;AAAA,qBAAEiM,iBAAiBS;AAAAA,YAAG;AAAA,YAAA,IAAAzM,WAAA;AAAA,kBAAAuP,UAAAjR,IAAAA,eAAAkR,QAAA;AAAA7P,yBAAA4P,SAAA1P,IAAAA,gBAE3BC,cAAI;AAAA,gBAAA,IAACC,OAAI;;AAAA,0BAAEuN,eAAAA,mBAAOmC;AAAAA,gBAAO;AAAA,gBAAA,IAAE3K,WAAQ;AAAA,0BAAA,MAAA;AAAA,wBAAA4K,UAAApR,IAAAA,eAAAqR,QAAA,GAAAC,UAAAF,QAAAjR,YAAAoR,UAAAD,QAAA/Q,aAAAiR,UAAAD,QAAAhR;AAAA6Q,4BAAAK,iBAAA,UACjBvP,CAAAA,MAAM;AAAEA,wBAAEwP,eAAAA;AAAkBrD,gCAAUF,KAAKP,WAAW;AAAA,oBAAE,CAAC;AAAA0D,4BAAAK,UACvBzP,CAAAA,MAAM2L,aAAa3L,EAAE0P,cAActD,KAAK;AAACkD,4BAAApQ,UAG3D,MAAMuM,cAAc,IAAI;AAAC9L,+BAAA,MAAA;;AAAAC,iCAAAA,aAAAwP,SAAA,iBAHiDtC,eAAAA,mBAAO6C,gBAAe1D,GAAG;AAAA,qBAAA;AAAAtM,wBAAAA,aAAAiQ,IAAAA,YAAAR,SAAA,SAAxG1D,UAAAA,CAAW,CAAA;AAAAxL,2CAAAA;AAAA,2BAAAgP;AAAAA,kBAAA,GAAA;AAAA,gBAAA;AAAA,gBAAA,IAAA1P,WAAA;AAAA,yBAAA,EAAA,MAAA;AAAA,wBAAAqQ,UAAA/R,IAAAA,eAAAgS,QAAA;AAAA3Q,+BAAA0Q,SAAAxQ,IAAAA,gBAOpCmC,aAAG;AAAA,sBAAA,IAACC,OAAI;AAAA,+BAAEqL,MAAMmC;AAAAA,sBAAkD;AAAA,sBAAAzP,UAC/DuQ,UAAG,MAAA;AAAA,4BAAAC,UAAAlS,IAAAA,eAAAmS,QAAA,GAAAC,UAAAF,QAAA/R,YAAA,CAAAkS,SAAAC,MAAA,IAAA3R,IAAAA,cAAAyR,QAAA7R,WAAA,GAAAgS,UAAAF,QAAA9R,aAAA,CAAAiS,SAAAC,MAAA,IAAA9R,IAAAA,cAAA4R,QAAAhS,WAAA;AAAA2R,gCAAA9Q,UAC4B,MAAMiN,UAAUF,KAAK8D,IAAI3D,KAAK;AAACjN,4BAAAA,OAAA6Q,SAAA,MAI3DD,IAAIhW,OAAKoW,SAAAC,MAAA;AAAAjR,mCAAA6Q,SAAA3Q,IAAAA,gBACTC,cAAI;AAAA,0BAAA,IAACC,OAAI;AAAA,mCAAEyG,OAAOoG,OAAO,MAAM2D,IAAI3D;AAAAA,0BAAK;AAAA,0BAAA,IAAA5M,WAAA;AAAA,mCAAA1B,IAAAA,eAAA0S,QAAA;AAAA,0BAAA;AAAA,wBAAA,CAAA,GAAAF,SAAAC,MAAA;AAAA5Q,4BAAAA,OAAA,MAAAsD,IAAAA,UAAA+M,SAJlC,2FACLhK,OAAOoG,OAAO,MAAM2D,IAAI3D,QAAQ,uEAAuE,+BAA+B,EACtI,CAAA;AAAAlM,+CAAAA;AAAA,+BAAA8P;AAAAA,sBAAA,GAAA;AAAA,oBAAA,CAIL,CAAA;AAAA,2BAAAH;AAAAA,kBAAA,GAAA,IAAA,MAAA;AAAA,wBAAAY,UAAA3S,IAAAA,eAAA4S,QAAA;AAAAD,4BAAAvR,UAG0B,MAAMuM,cAAc,IAAI;AAACvL,2CAAAA;AAAA,2BAAAuQ;AAAAA,kBAAA,IAAA;AAAA,gBAAA;AAAA,cAAA,CAAA,CAAA;AAAA,qBAAA1B;AAAAA,YAAA;AAAA,UAAA,CAAA,GAAAzB,SAAAC,MAAA;AAAA,iBAAAP;AAAAA,QAAA,GAAA;AAAA,MAMpE;AAAA,IAAA,CAAC,GAAAP,QAAAC,MAAA;AAAAvN,eAAAmN,QAAAjN,IAAAA,gBAEFC,cAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEsM,QAAAA,EAAUhQ,WAAW;AAAA,MAAC;AAAA,MAAA,IAAA2D,WAAA;AAAA,eAAA1B,IAAAA,eAAA6S,QAAA;AAAA,MAAA;AAAA,IAAA,CAAA,GAAA/D,SAAAC,MAAA;AAAA,WAAAP;AAAAA,EAAA,GAAA;AAKxC;AAIA,MAAMxC,sBAKAvP,CAAAA,UAAU;AACd,QAAM,CAACqW,UAAUC,WAAW,IAAInW,QAAAA,aAAkC,CAAA,CAAE;AACpE,QAAM,CAACoW,gBAAgBC,iBAAiB,IAAIrW,QAAAA,aAAsE,CAAA,CAAE;AAEpH,QAAMsW,SAASA,MAAM;AACnB,UAAMC,IAAI1W,MAAMkP;AAChB,WAAO;AAAA,MAAEyH,SAAQD,uBAAGC,WAAU,CAAA;AAAA,MAAIC,cAAaF,uBAAGE,gBAAe;AAAA,IAAA;AAAA,EACnE;AAEA,QAAMC,cAAcA,CAACC,MAAcjF,UAAeyE,YAAYS,CAAAA,UAAS;AAAA,IAAE,GAAGA;AAAAA,IAAM,CAACD,IAAI,GAAGjF;AAAAA,EAAAA,EAAQ;AAGlG7P,UAAAA,aAAa,MAAM;AACjB,UAAML,OAAO0U,SAAAA;AACb,eAAWW,SAASP,OAAAA,EAASE,QAAQ;AACnC,YAAMM,MAAMD,MAAME,cAAcF,MAAMG;AACtC,UAAI,CAACF,IAAK;AACV,YAAMG,cAAczV,KAAKsV,IAAID,KAAK;AAClC,UAAI,CAACI,YAAa;AAClB,YAAMC,OAAOJ,IAAIK,oBAAoBL,IAAIM,UAAU,IAAIC,QAAQ,WAAWC,mBAAmBL,WAAW,CAAC;AACzG,UAAI,CAACC,IAAK;AACV,YAAMK,SAAS,IAAIC,gBAAgBV,IAAIW,eAAeX,IAAIY,gBAAgB,EAAE;AAC5EnV,YAAM,GAAG2U,GAAG,GAAGA,IAAIS,SAAS,GAAG,IAAI,MAAM,GAAG,GAAGJ,MAAM,EAAE,EACpDK,KAAKC,CAAAA,MAAKA,EAAE5U,MAAM,EAClB2U,KAAKE,CAAAA,UAAS;AACb,cAAMC,MAAMpH,MAAMC,QAAQkH,KAAK,IAAIA,QAAQA,MAAME,WAAWF,MAAMG,YAAY,CAAA;AAC9E,cAAMC,KAAKpB,IAAIqB,eAAerB,IAAIsB,cAAc;AAChD,cAAMC,KAAKvB,IAAIwB,eAAexB,IAAIyB,cAAc;AAChDlC,0BAAkBO,CAAAA,UAAS;AAAA,UAAE,GAAGA;AAAAA,UAAM,CAACC,MAAMF,IAAI,GAAGoB,IAAIS,IAAI,CAACvR,OAAY;AAAA,YAAE5H,OAAO4H,EAAEiR,EAAE,KAAK5M,OAAOrE,CAAC;AAAA,YAAGyK,OAAOpG,OAAOrE,EAAEoR,EAAE,KAAKpR,EAAEiR,EAAE,KAAKjR,CAAC;AAAA,UAAA,EAAI;AAAA,QAAA,EAAI;AAAA,MACjJ,CAAC,EACAwR,MAAM,MAAM;AAAA,MAAC,CAAC;AAAA,IACnB;AAAA,EACF,CAAC;AAED,QAAMC,WAAWA,CAAC7B,UAAgC;AAChD,UAAM8B,UAAUvC,iBAAiBS,MAAMF,IAAI;AAC3C,WAAOgC,UAAU;AAAA,MAAE,GAAG9B;AAAAA,MAAOtC,SAASoE;AAAAA,IAAAA,IAA+B9B;AAAAA,EACvE;AAEA,QAAM+B,eAAeA,CAACtT,MAAa;;AACjCA,MAAEwP,eAAAA;AAGF,UAAM5J,SAASlK,OAAO6X,YACpB7X,OAAOgP,QAAQkG,SAAAA,CAAU,EACtB4C,OAAO,CAAC,CAACvH,GAAG,MAAM;AACjB,YAAMsF,QAAQP,SAASE,OAAOuC,KAAK,CAACC,MAAWA,EAAErC,SAASpF,GAAG;AAC7D,cAAOsF,+BAAOoC,iBAAgB;AAAA,IAChC,CAAC,EACAH,OAAO,CAAC,CAAA,EAAG3N,CAAC,MAAMA,MAAMhL,UAAagL,MAAM,MAAM,EAAEwF,MAAMC,QAAQzF,CAAC,KAAKA,EAAEhK,WAAW,EAAE,CAC3F;AAEA,QAAItB,MAAMgJ,UAAU;AAClBhJ,YAAMgJ,SAAShJ,MAAMwP,WAAWnE,MAAM;AAAA,IACxC,OAAO;AACLrL,kBAAM8B,aAAN9B,+BAAiB,eAAe;AAAA,QAAEwP,WAAWxP,MAAMwP;AAAAA,QAAWnE;AAAAA,MAAAA;AAAAA,IAChE;AAAA,EACF;AAEA,UAAA,MAAA;AAAA,QAAAgO,UAAA9V,IAAAA,eAAA+V,QAAA,GAAAC,UAAAF,QAAA3V,YAAA,CAAA8V,SAAAC,MAAA,IAAAvV,kBAAAqV,QAAAzV,WAAA,GAAA4V,UAAAF,QAAA1V,aAAA6V,UAAAD,QAAAhW;AAAA2V,YAAArE,iBAAA,UACkB+D,YAAY;AAAAnU,eAAAyU,SAAAvU,IAAAA,gBACzBmC,aAAG;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEuP,SAASE;AAAAA,MAAM;AAAA,MAAA1R,UACtB+R,CAAAA,UAAKlS,IAAAA,gBACJ8U,qCAAiB;AAAA,QAAA,IAChB5C,QAAK;AAAA,iBAAE6B,SAAS7B,KAAK;AAAA,QAAC;AAAA,QAAA,IACtBnF,QAAK;AAAA,iBAAEwE,SAAAA,EAAWW,MAAMF,IAAI;AAAA,QAAC;AAAA,QAC7B+C,UAAWC,CAAAA,QAAQjD,YAAYG,MAAMF,MAAMgD,GAAG;AAAA,QAC9CzD;AAAAA,MAAAA,CAAkB;AAAA,IAAA,CAErB,GAAAmD,SAAAC,MAAA;AAAA7U,QAAAA,OAAA+U,SAAA,MAIElD,OAAAA,EAASG,WAAW;AAAA,WAAAyC;AAAAA,EAAA,GAAA;AAK/B;AAIA,MAAM/J,uBAIAtP,CAAAA,UAAU;AACd,QAAM+Z,YAAYA,MAAM;AACtB,UAAMrD,IAAI1W,MAAMkP;AAChB,WAAO;AAAA,MAAE8K,QAAOtD,uBAAGsD,UAAS,CAAA;AAAA,MAAIC,cAAavD,uBAAGuD,gBAAe;AAAA,IAAA;AAAA,EACjE;AAEA,UAAA,MAAA;AAAA,QAAAC,UAAA3W,IAAAA,eAAA4W,QAAA,GAAAC,UAAAF,QAAAxW,YAAA,CAAA2W,SAAAC,MAAA,IAAApW,IAAAA,cAAAkW,QAAAtW,WAAA,GAAAyW,UAAAF,QAAAvW,aAAA,CAAA0W,SAAAC,MAAA,IAAAvW,IAAAA,cAAAqW,QAAAzW,WAAA;AAAAc,eAAAsV,SAAApV,IAAAA,gBAEKmC,aAAG;AAAA,MAAA,IAACC,OAAI;AAAA,eAAE6S,YAAYC;AAAAA,MAAK;AAAA,MAAA/U,UACzBA,CAACyV,UAAS,MAAA;AAAA,YAAAC,UAAApX,IAAAA,eAAAqX,QAAA,GAAAC,UAAAF,QAAAjX,YAAAoX,UAAAD,QAAAnX,YAAAqX,UAAAD,QAAAhX,aAAA,CAAAkX,SAAAC,MAAA,IAAA/W,IAAAA,cAAA6W,QAAAjX,WAAA,GAAAoX,UAAAF,QAAAlX,aAAA,CAAAqX,SAAAC,MAAA,IAAAlX,IAAAA,cAAAgX,QAAApX,WAAA,GAAAuX,UAAAR,QAAA/W,aAAA,CAAAwX,SAAAC,MAAA,IAAArX,IAAAA,cAAAmX,QAAAvX,WAAA;AAAAc,YAAAA,OAAAkW,UAAA,MAAA;AAAA,cAAAU,OAAAlW,IAAAA,KAAA,MAOEoV,KAAK9Z,WAAW,MAAM;AAAA,iBAAA,MAAtB4a,KAAAA,IAAyB,MAAMd,KAAK9Z,WAAW,WAAW,MAAM;AAAA,QAAG,IAAA;AAAAgE,YAAAA,OAAAiW,SAAA,MACzEH,KAAKlb,OAAKwb,SAAAC,MAAA;AAAArW,mBAAAiW,SAAA/V,IAAAA,gBACVC,cAAI;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAEM,IAAAA,KAAA,MAAA,CAAA,CAAAoV,KAAKe,WAAW,OAAIf,KAAK9Z,WAAW;AAAA,UAAQ;AAAA,UAAA,IAAAqE,WAAA;AAAA,gBAAAyW,UAAAnY,IAAAA,eAAAoY,QAAA,GAAAC,UAAAF,QAAAhY,YAAAmY,UAAAD,QAAA9X,aAAA,CAAAgY,SAAAC,MAAA,IAAA7X,IAAAA,cAAA2X,QAAA/X,WAAA;AAAAc,gBAAAA,OAAA8W,SAAA,MACgBhB,KAAKe,aAAWK,SAAAC,MAAA;AAAA,mBAAAL;AAAAA,UAAA;AAAA,QAAA,CAAA,GAAAP,SAAAC,MAAA;AAAAxW,mBAAA+V,SAAA7V,IAAAA,gBAKzFC,cAAI;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAEM,IAAAA,KAAA,MAAAoV,KAAK9Z,WAAW,QAAQ,EAAA,KAAI8Z,KAAKxL;AAAAA,UAAO;AAAA,UAAA,IAAAjK,WAAA;AAAA,gBAAA+W,UAAAzY,IAAAA,eAAA0Y,QAAA;AAAArX,uBAAAoX,SAAAlX,IAAAA,gBAE/C+D,iBAAe;AAAA,cAAA,IACdD,UAAO;AAAA,uBAAE8R,KAAKxL;AAAAA,cAAO;AAAA,cACrB7N,SAAS,CAAA;AAAA,cAAE,IACXyH,iBAAc;AAAA,uBAAE9I,MAAM8I;AAAAA,cAAc;AAAA,cAAA,IACpChH,WAAQ;AAAA,uBAAE9B,MAAM8B;AAAAA,cAAQ;AAAA,YAAA,CAAA,CAAA;AAAA,mBAAAka;AAAAA,UAAA;AAAA,QAAA,CAAA,GAAAV,SAAAC,MAAA;AAAAnW,YAAAA,OAAA+I,CAAAA,QAAA;AAAA,cAAA+N,OApBpB,cAAcxB,KAAK9Z,WAAW,WAAW,sFAAsF,MAAM,IAAEub,OACrI,+CACVzB,KAAK9Z,WAAW,SAAS,uCACvB8Z,KAAK9Z,WAAW,WAAW,qCAC3B,eAAe;AACjBsb,mBAAA/N,IAAA1I,KAAAiD,IAAAA,UAAAiS,SAAAxM,IAAA1I,IAAAyW,IAAA;AAAAC,mBAAAhO,IAAAI,KAAA7F,IAAAA,UAAAmS,SAAA1M,IAAAI,IAAA4N,IAAA;AAAA,iBAAAhO;AAAAA,QAAA,GAAA;AAAA,UAAA1I,GAAAnF;AAAAA,UAAAiO,GAAAjO;AAAAA,QAAAA,CAAA;AAAA,eAAAqa;AAAAA,MAAA,GAAA;AAAA,IAAA,CAoBL,GAAAN,SAAAC,MAAA;AAAA1V,eAAAsV,SAAApV,IAAAA,gBAIFC,cAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAE+U,UAAAA,EAAYC,MAAMoC,KAAK,CAACC,MAAWA,EAAEzb,WAAW,QAAQ;AAAA,MAAC;AAAA,MAAA,IAAAqE,WAAA;AAAA,YAAAqX,UAAA/Y,IAAAA,eAAAgZ,QAAA,GAAAC,UAAAF,QAAA5Y;AAAA8Y,gBAAA7X,UAElC,MAAA;;AAAM3E,6BAAM8B,aAAN9B,+BAAiB,aAAa;AAAA,YAAE0a,MAAMX,YAAYE;AAAAA,UAAAA;AAAAA;AAActU,+BAAAA;AAAA,eAAA2W;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAA9B,SAAAC,MAAA;AAAA,WAAAP;AAAAA,EAAA,GAAA;AAQ/G;AAIA,MAAM7K,gBAGArP,CAAAA,UAAU;AACd,QAAMyc,UAAUA,MAAM3L,MAAMC,QAAQ/Q,MAAMkP,OAAO,IAAIlP,MAAMkP,UAAwG,CAAA;AACnK,UAAA,MAAA;AAAA,QAAAwN,UAAAnZ,IAAAA,eAAAoZ,QAAA;AAAA/X,eAAA8X,SAAA5X,IAAAA,gBAEKmC,aAAG;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEuV,QAAAA;AAAAA,MAAS;AAAA,MAAAxX,UAChB2X,WAAI,MAAA;AAAA,YAAAC,UAAAtZ,IAAAA,eAAAmS,QAAA,GAAAoH,UAAAD,QAAAnZ,YAAA,CAAAqZ,SAAAC,MAAA,IAAA9Y,IAAAA,cAAA4Y,QAAAhZ,WAAA,GAAAmZ,UAAAF,QAAAjZ,aAAA,CAAAoZ,SAAAC,MAAA,IAAAjZ,IAAAA,cAAA+Y,QAAAnZ,WAAA;AAAA+Y,gBAAAlY,UAC2B;;AAAM3E,6BAAM8B,aAAN9B,+BAAiB4c,KAAK/K,SAAS+K,KAAKlb,UAAUkb,KAAKpd,OAAOod;AAAAA;AAAKhY,mBAAAiY,SAAA/X,IAAAA,gBAMjGC,cAAI;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAE4X,KAAKQ;AAAAA,UAAI;AAAA,UAAA,IAAAnY,WAAA;AAAA,gBAAAoY,UAAA9Z,IAAAA,eAAA+Z,QAAA;AAAA1Y,gBAAAA,OAAAyY,SAAA,MAAsBT,KAAKQ,IAAI;AAAA,mBAAAC;AAAAA,UAAA;AAAA,QAAA,CAAA,GAAAN,SAAAC,MAAA;AAAApY,YAAAA,OAAAiY,SAAA,MACnDD,KAAKpd,OAAK0d,SAAAC,MAAA;AAAA/X,YAAAA,OAAA,MAAAsD,IAAAA,UAAAmU,SANJ,gEACLD,KAAKW,YAAY,YAAY,6CAC3BX,KAAKW,YAAY,WAAW,2CAC5B,uHAAuH,EACzH,CAAA;AAAA5X,+BAAAA;AAAA,eAAAkX;AAAAA,MAAA,GAAA;AAAA,IAAA,CAIL,CAAA;AAAA,WAAAH;AAAAA,EAAA,GAAA;AAIT;AAIA,MAAMhN,uBAAyD1P,CAAAA,UAAU;AACvE,QAAM2B,OAAOA,MAAM;AACjB,UAAM+U,IAAI1W,MAAMkP;AAChB,WAAO;AAAA,MAAEsO,aAAY9G,uBAAG8G,eAAc,CAAA;AAAA,MAAIC,WAAU/G,uBAAG+G,aAAY,CAAA;AAAA,IAAA;AAAA,EACrE;AAEA,QAAMC,kBAAkBA,CAACC,SAAkB;AACzC,YAAQA,MAAAA;AAAAA,MACN,KAAK;AAAQ,eAAO;AAAA,MACpB,KAAK;AAAU,eAAO;AAAA,MACtB,KAAK;AAAO,eAAO;AAAA,MACnB;AAAS,eAAO;AAAA,IAAA;AAAA,EAEpB;AAEA,UAAA,MAAA;AAAA,QAAAC,UAAAra,IAAAA,eAAAsa,QAAA,GAAAC,UAAAF,QAAAla,YAAAqa,UAAAD,QAAAha,aAAA,CAAAka,SAAAC,MAAA,IAAA/Z,IAAAA,cAAA6Z,QAAAja,WAAA;AAAAc,eAAAkZ,SAAAhZ,IAAAA,gBAGOmC,aAAG;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEvF,OAAO6b;AAAAA,MAAU;AAAA,MAAAvY,UACzBA,CAACiZ,SAAQ,MAAA;AAAA,YAAAC,UAAA5a,mBAAA6a,QAAA,GAAAC,UAAAF,QAAAza,YAAA4a,UAAAD,QAAAva;AAAAc,YAAAA,OAAAyZ,SAAA,MAGHH,IAAI1e,KAAK;AAAAoF,YAAAA,OAAA0Z,SAAA,MAEiCJ,IAAIrM,KAAK;AAAAzM,mBAAA,MAAAsD,cAAA2V,SAHzC,6CAA6CX,gBAAgBQ,IAAIK,UAAU,CAAC,EAAE,CAAA;AAAA,eAAAJ;AAAAA,MAAA,GAAA;AAAA,IAAA,CAK9F,CAAA;AAAAvZ,eAAAgZ,SAAA9Y,IAAAA,gBAGJC,cAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAErD,KAAAA,EAAO8b,SAASnc,SAAS;AAAA,MAAC;AAAA,MAAA,IAAA2D,WAAA;AAAA,YAAAuZ,UAAAjb,IAAAA,eAAA8M,QAAA;AAAAzL,mBAAA4Z,SAAA1Z,IAAAA,gBAEjCmC,aAAG;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAEvF,OAAO8b;AAAAA,UAAQ;AAAA,UAAAxY,UACvBA,CAACwZ,OAAS,MAAA;AAAA,gBAAAC,UAAAnb,mBAAAob,QAAA,GAAAC,UAAAF,QAAAhb,YAAAmb,UAAAD,QAAA9a;AAAAc,gBAAAA,OAAAia,SAGAJ,CAAC;AAAA,mBAAAC;AAAAA,UAAA,GAAA;AAAA,QAAA,CAEX,CAAA;AAAA,eAAAF;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAAR,SAAAC,MAAA;AAAA,WAAAL;AAAAA,EAAA,GAAA;AAMb;AAIA,MAAMjO,kBAGA3P,CAAAA,UAAU;AACd,QAAM,CAAC8e,SAASC,UAAU,IAAI5e,QAAAA,aAAa,EAAE;AAC7C,QAAM,CAAC6e,aAAaC,cAAc,IAAI9e,QAAAA,aAAa,KAAK;AACxD,QAAMwB,OAAOA,MAAM;;AACjB,UAAM+U,IAAI1W,MAAMkP;AAEhB,UAAMwF,WAAUgC,uBAAGhC,YAAW,CAC5B;AAAA,MAAE7C,SAAO6E,4BAAGwI,YAAHxI,mBAAY7E,UAAS;AAAA,MAAWrS,SAAOkX,4BAAGwI,YAAHxI,mBAAYlX,UAAS;AAAA,MAAO4d,MAAM;AAAA,MAAMG,SAAS;AAAA,IAAA,GACjG;AAAA,MAAE1L,SAAO6E,4BAAGyI,WAAHzI,mBAAW7E,UAAS;AAAA,MAAUrS,SAAOkX,4BAAGyI,WAAHzI,mBAAWlX,UAAS;AAAA,MAAM4d,MAAM;AAAA,IAAA,CAAM;AAEtF,WAAO;AAAA,MACLgC,WAAU1I,uBAAG0I,aAAY;AAAA,MACzB1K;AAAAA,MACA2K,gBAAe3I,uBAAG2I,mBAAiB3I,uBAAG4I,iBAAgB;AAAA,MACtDlK,cAAasB,uBAAGtB,iBAAesB,uBAAG6I,uBAAsB;AAAA,IAAA;AAAA,EAE5D;AAEA,QAAMC,eAAeA,CAACC,WAAgB;;AACpC,QAAIA,OAAOC,cAAc;AACvBT,qBAAe,IAAI;AACnB;AAAA,IACF;AACAjf,gBAAM8B,aAAN9B,+BAAiB,YAAY;AAAA,MAAEyf,QAAQA,OAAO5N;AAAAA,MAAOiN,SAASA,QAAAA;AAAAA,IAAQ;AAAA,EACxE;AAEA,UAAA,MAAA;AAAA,QAAAa,UAAApc,IAAAA,eAAAqc,QAAA,GAAAC,UAAAF,QAAAjc,YAAAoc,UAAAD,QAAA/b,aAAAic,UAAAD,QAAAhc,aAAA,CAAAkc,SAAAC,MAAA,IAAA/b,IAAAA,cAAA6b,QAAAjc,WAAA;AAAAc,QAAAA,OAAAib,SAAA,MAEyDle,KAAAA,EAAOyd,QAAQ;AAAAxa,eAAAkb,SAAAhb,IAAAA,gBAEjEmC,aAAG;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEvF,OAAO+S;AAAAA,MAAO;AAAA,MAAAzP,UACrBwa,aAAM,MAAA;AAAA,YAAAS,UAAA3c,IAAAA,eAAAmS,QAAA,GAAAyK,UAAAD,QAAAxc,YAAA,CAAA0c,SAAAC,MAAA,IAAAnc,IAAAA,cAAAic,QAAArc,WAAA,GAAAwc,UAAAF,QAAAtc,aAAA,CAAAyc,SAAAC,MAAA,IAAAtc,IAAAA,cAAAoc,QAAAxc,WAAA;AAAAoc,gBAAAvb,UACyB,MAAM6a,aAAaC,MAAM;AAAC7a,mBAAAsb,SAAApb,IAAAA,gBAMtDC,cAAI;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAEya,OAAOrC;AAAAA,UAAI;AAAA,UAAA,IAAAnY,WAAA;AAAA,gBAAAwb,UAAAld,IAAAA,eAAAmd,QAAA;AAAA9b,gBAAAA,OAAA6b,SAAA,MAAShB,OAAOrC,IAAI;AAAA,mBAAAqD;AAAAA,UAAA;AAAA,QAAA,CAAA,GAAAL,SAAAC,MAAA;AAAAzb,YAAAA,OAAAsb,SAAA,MAC1CT,OAAOjgB,OAAK+gB,SAAAC,MAAA;AAAApb,YAAAA,OAAA,MAAAsD,IAAAA,UAAAwX,SANN,wFACLT,OAAOlC,YAAY,YAAY,6CAC7BkC,OAAOlC,YAAY,WAAW,2CAC9B,uHAAuH,EACzH,CAAA;AAAA5X,+BAAAA;AAAA,eAAAua;AAAAA,MAAA,GAAA;AAAA,IAAA,CAIL,CAAA;AAAAtb,eAAA+a,SAAA7a,IAAAA,gBAGJC,cAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAErD,KAAAA,EAAO0d,iBAAiBL,YAAAA;AAAAA,MAAa;AAAA,MAAA,IAAA/Z,WAAA;AAAA,YAAA0b,UAAApd,mBAAAqd,QAAA,GAAAC,UAAAF,QAAAjd,YAAAod,UAAAD,QAAA/c;AAAA+c,gBAAA3L,UAEEzP,CAAAA,MAAMsZ,WAAWtZ,EAAE0P,cAActD,KAAK;AAACiP,gBAAAnc,UAGvD,MAAA;;AAAM3E,6BAAM8B,aAAN9B,+BAAiB,YAAY;AAAA,YAAEyf,QAAQ;AAAA,YAAWX,SAASA,QAAAA;AAAAA,UAAQ;AAAA;AAAI1Z,YAAAA,OAAA+I,CAAAA,QAAA;AAAA,cAAA4S,OAF7Fpf,KAAAA,EAAOyT,aAAW4L,OAAahC,YAAAA;AAAa+B,mBAAA5S,IAAA1I,KAAAJ,IAAAA,aAAAwb,SAAA,eAAA1S,IAAA1I,IAAAsb,IAAA;AAAAC,mBAAA7S,IAAAI,KAAA8G,IAAAA,YAAAwL,SAAA,aAAA1S,IAAAI,IAAAyS,IAAA;AAAA,iBAAA7S;AAAAA,QAAA,GAAA;AAAA,UAAA1I,GAAAnF;AAAAA,UAAAiO,GAAAjO;AAAAA,QAAAA,CAAA;AAAA8E,YAAAA,aAAAiQ,IAAAA,YAAAwL,SAAA,SADjC/B,QAAAA,CAAS,CAAA;AAAAnZ,+BAAAA;AAAA,eAAAgb;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAAX,SAAAC,MAAA;AAAA,WAAAN;AAAAA,EAAA,GAAA;AAS7C;AAIA,MAAM/P,gBAGA5P,CAAAA,UAAU;AACd,QAAM2B,OAAOA,MAAM;AACjB,UAAM+U,IAAI1W,MAAMkP;AAChB,WAAO;AAAA,MACL+R,gBAAevK,uBAAGuK,kBAAiB;AAAA,MACnCC,iBAAgBxK,uBAAGwK,mBAAkB;AAAA,MACrCC,YAAWzK,uBAAGyK,cAAa,CAAA;AAAA,MAC3BC,OAAM1K,uBAAG0K,SAAQ;AAAA,MACjBC,WAAU3K,uBAAG2K,aAAY;AAAA,IAAA;AAAA,EAE7B;AAEA,UAAA,MAAA;AAAA,QAAAC,UAAA/d,IAAAA,eAAAge,QAAA,GAAAC,UAAAF,QAAA5d,YAAA,CAAA+d,SAAAC,MAAA,IAAAxd,IAAAA,cAAAsd,QAAA1d,WAAA,GAAA6d,UAAAF,QAAA3d,aAAA8d,UAAAD,QAAA7d,aAAA,CAAA+d,SAAAC,MAAA,IAAA5d,IAAAA,cAAA0d,QAAA9d,WAAA,GAAAie,UAAAF,QAAA/d,aAAA,CAAAke,SAAAC,MAAA,IAAA/d,IAAAA,cAAA6d,QAAAje,WAAA;AAAAc,eAAA0c,SAAAxc,IAAAA,gBAEKC,cAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAErD,OAAOsf;AAAAA,MAAa;AAAA,MAAA,IAAAhc,WAAA;AAAA,YAAAid,UAAA3e,IAAAA,eAAA4e,QAAA,GAAAC,UAAAF,QAAAxe,YAAA2e,UAAAD,QAAAte,aAAA,CAAAwe,SAAAC,MAAA,IAAAre,IAAAA,cAAAme,QAAAve,WAAA;AAAAwe,gBAAAxe;AAAAc,YAAAA,OAAAsd,SAAA,MAC+BvgB,KAAAA,EAAOsf,eAAaqB,SAAAC,MAAA;AAAA,eAAAL;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAAT,SAAAC,MAAA;AAAA9c,eAAA+c,SAAA7c,IAAAA,gBAGhFmC,aAAG;AAAA,MAAA,IAACC,OAAI;AAAA,eAAE/F,OAAOgP,QAAQxO,KAAAA,EAAOwf,SAAS;AAAA,MAAC;AAAA,MAAAlc,UACxCA,CAAC,CAACyM,KAAKG,KAAK,OAAC,MAAA;AAAA,YAAA2Q,UAAAjf,IAAAA,eAAAkf,QAAA,GAAAC,UAAAF,QAAA9e,YAAAif,UAAAD,QAAAhf,YAAA,CAAAkf,SAAAC,MAAA,IAAA3e,IAAAA,cAAAye,QAAA7e,WAAA;AAAA8e,gBAAA9e;AAAAA,YAAAgf,UAAAJ,QAAA5e;AAAAc,YAAAA,OAAA8d,SAE+DhR,KAAGkR,SAAAC,MAAA;AAAAje,YAAAA,OAAAke,SAAA,MAC/BrX,OAAOoG,KAAK,CAAC;AAAA,eAAA2Q;AAAAA,MAAA,GAAA;AAAA,IAAA,CAE7D,CAAA;AAAA5d,eAAA0c,SAAAxc,IAAAA,gBAGJC,cAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAErD,OAAOyf;AAAAA,MAAI;AAAA,MAAA,IAAAnc,WAAA;AAAA,YAAA8d,UAAAxf,IAAAA,eAAAyf,QAAA,GAAAC,UAAAF,QAAArf,YAAAwf,UAAAD,QAAAnf,aAAAqf,UAAAD,QAAApf,aAAA,CAAAsf,SAAAC,MAAA,IAAAnf,IAAAA,cAAAif,QAAArf,WAAA;AAAAc,YAAAA,OAAAme,SAAA,MAEqBphB,KAAAA,EAAOyf,MAAIgC,SAAAC,MAAA;AAAA,eAAAN;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAAlB,SAAAC,MAAA;AAAAld,eAAA0c,SAAAxc,IAAAA,gBAGtDC,cAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAErD,OAAO0f;AAAAA,MAAQ;AAAA,MAAA,IAAApc,WAAA;AAAA,YAAAqe,UAAA/f,IAAAA,eAAAggB,QAAA;AAAAD,gBAAA3e,UACM,MAAA;;AAAM3E,6BAAM8B,aAAN9B,+BAAiB,eAAe2B;;AAAOgE,+BAAAA;AAAA,eAAA2d;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAAtB,SAAAC,MAAA;AAAA,WAAAX;AAAAA,EAAA,GAAA;AAOpF;AAIA,MAAMzR,yBAA2D7P,CAAAA,UAAU;AACzE,QAAM2B,OAAOA,MAAM;AACjB,UAAM+U,IAAI1W,MAAMkP;AAChB,WAAO;AAAA,MACL8K,QAAQtD,uBAAGsD,UAAS,CAAA;AAAA,MACpBwJ,cAAa9M,uBAAG8M,gBAAe;AAAA,IAAA;AAAA,EAEnC;AAEA,QAAMC,aAAaA,CAAC7iB,WAAmB;AACrC,YAAQA,QAAAA;AAAAA,MACN,KAAK;AAAQ,eAAO;AAAA,MACpB,KAAK;AAAU,eAAO;AAAA,MACtB,KAAK;AAAS,eAAO;AAAA,MACrB;AAAS,eAAO;AAAA,IAAA;AAAA,EAEpB;AAEA,QAAM8iB,eAAeA,MAAM/hB,KAAAA,EAAO6hB,gBAAgB;AAElD,SAAA1e,IAAAA,gBACGC,QAAAA,MAAI;AAAA,IAAA,IAACC,OAAI;AAAA,aAAE0e,aAAAA;AAAAA,IAAc;AAAA,IAAA,IAAE3Z,WAAQ;AAAA,cAAA,MAAA;AAAA,YAAA4Z,UAAApgB,IAAAA,eAAAqgB,QAAA;AAAAhf,mBAAA+e,SAAA7e,IAAAA,gBAE/BmC,aAAG;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAEvF,OAAOqY;AAAAA,UAAK;AAAA,UAAA/U,UACnByV,WAAI,MAAA;AAAA,gBAAAmJ,UAAAtgB,IAAAA,eAAAugB,QAAA,GAAAC,UAAAF,QAAAngB,YAAAsgB,UAAAD,QAAAjgB,aAAAmgB,UAAAD,QAAAtgB,YAAAwgB,UAAAD,QAAAngB,aAAA,CAAAqgB,SAAAC,MAAA,IAAAlgB,IAAAA,cAAAggB,QAAApgB,WAAA,GAAAugB,UAAAF,QAAArgB,aAAA,CAAAwgB,SAAAC,MAAA,IAAArgB,IAAAA,cAAAmgB,QAAAvgB,WAAA;AAAAc,gBAAAA,OAAAmf,SAAA,MAE2BN,WAAW/I,KAAK9Z,MAAM,CAAC;AAAAgE,gBAAAA,OAAAqf,SAAA,MAE3CvJ,KAAKlb,KAAK;AAAAoF,uBAAAof,SAAAlf,IAAAA,gBAChBC,cAAI;AAAA,cAAA,IAACC,OAAI;AAAA,uBAAE0V,KAAKvS;AAAAA,cAAO;AAAA,cAAA,IAAAlD,WAAA;AAAA,oBAAAuf,UAAAjhB,IAAAA,eAAAkhB,QAAA,GAAAC,UAAAF,QAAA9gB,YAAAihB,UAAAD,QAAA5gB,aAAA,CAAA8gB,SAAAC,MAAA,IAAA3gB,IAAAA,cAAAygB,QAAA7gB,WAAA;AAAAc,oBAAAA,OAAA4f,SAAA,MACyC9J,KAAKvS,SAAOyc,SAAAC,MAAA;AAAA,uBAAAL;AAAAA,cAAA;AAAA,YAAA,CAAA,GAAAL,SAAAC,MAAA;AAAAxf,uBAAAof,SAAAlf,IAAAA,gBAE5EC,cAAI;AAAA,cAAA,IAACC,OAAI;AAAA,uBAAE0V,KAAKoK;AAAAA,cAAW;AAAA,cAAA,IAAA7f,WAAA;AAAA,oBAAA8f,UAAAxhB,IAAAA,eAAAyhB,QAAA,GAAAC,UAAAF,QAAArhB,YAAAwhB,UAAAD,QAAAnhB,aAAA,CAAAqhB,SAAAC,MAAA,IAAAlhB,IAAAA,cAAAghB,QAAAphB,WAAA;AAAAqhB,wBAAArhB;AAAAc,oBAAAA,OAAAmgB,SAAA,MACiBrK,KAAKoK,aAAWK,SAAAC,MAAA;AAAA,uBAAAL;AAAAA,cAAA;AAAA,YAAA,CAAA,GAAAT,SAAAC,MAAA;AAAAnf,gBAAAA,OAAA,MAAAsD,IAAAA,UAAAmb,SARrD,kCAAkCnJ,KAAK9Z,WAAW,WAAW,gBAAgB,EAAE,IAAI8Z,KAAK9Z,WAAW,YAAY,kBAAkB,kCAAkC,EAAE,CAAA;AAAA,mBAAAijB;AAAAA,UAAA,GAAA;AAAA,QAAA,CAYlL,CAAA;AAAA,eAAAF;AAAAA,MAAA,GAAA;AAAA,IAAA;AAAA,IAAA,IAAA1e,WAAA;AAAA,UAAAogB,UAAA9hB,IAAAA,eAAA+hB,QAAA;AAAA1gB,iBAAAygB,SAAAvgB,IAAAA,gBAKFmC,aAAG;AAAA,QAAA,IAACC,OAAI;AAAA,iBAAEvF,OAAOqY;AAAAA,QAAK;AAAA,QAAA/U,UACpBA,CAACyV,MAAMtT,MAAC,CAAAtC,IAAAA,gBAEJC,QAAAA,MAAI;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAEoC,MAAM;AAAA,UAAC;AAAA,UAAA,IAAAnC,WAAA;AAAA,mBAAA1B,IAAAA,eAAA8D,QAAA;AAAA,UAAA;AAAA,QAAA,CAAA,IAAA,MAAA;AAAA,cAAAke,UAAAhiB,IAAAA,eAAAiiB,QAAA,GAAAC,UAAAF,QAAA7hB,YAAAgiB,UAAAD,QAAA3hB,aAAA6hB,UAAAD,QAAA5hB,aAAA,CAAA8hB,SAAAC,MAAA,IAAA3hB,IAAAA,cAAAyhB,QAAA7hB,WAAA;AAAAc,cAAAA,OAAA6gB,SAAA,MASVhC,WAAW/I,KAAK9Z,MAAM,CAAC;AAAAgE,cAAAA,OAAA8gB,SAAA,MACvBhL,KAAKlb,KAAK;AAAAoF,qBAAA2gB,SAAAzgB,IAAAA,gBAChBC,cAAI;AAAA,YAAA,IAACC,OAAI;AAAA,qBAAE0V,KAAKvS;AAAAA,YAAO;AAAA,YAAA,IAAAlD,WAAA;AAAA,kBAAA6gB,UAAAviB,IAAAA,eAAAwiB,QAAA;AAAAnhB,kBAAAA,OAAAkhB,SAAA,MACgBpL,KAAKvS,OAAO;AAAA,qBAAA2d;AAAAA,YAAA;AAAA,UAAA,CAAA,GAAAF,SAAAC,MAAA;AAAAzgB,qBAAA,MAAAsD,IAAAA,UAAA6c,SAT1C,qDACV7K,KAAK9Z,WAAW,SAAS,wEACvB8Z,KAAK9Z,WAAW,WAAW,gFAC3B8Z,KAAK9Z,WAAW,UAAU,gEAC1B,eAAe,EACjB,CAAA;AAAA,iBAAA2kB;AAAAA,QAAA,IAAA;AAAA,MAAA,CAQL,CAAA;AAAA,aAAAF;AAAAA,IAAA;AAAA,EAAA,CAAA;AAKX;AAIA,MAAMvV,uBAGA9P,CAAAA,UAAU;AACd,QAAM,CAACgmB,aAAaC,cAAc,IAAI9lB,QAAAA,aAAa,KAAK;AACxD,QAAMwB,OAAOA,MAAM;AACjB,UAAM+U,IAAI1W,MAAMkP;AAChB,WAAO;AAAA,MAAEnC,UAAS2J,uBAAG3J,YAAW;AAAA,MAASmZ,WAAUxP,uBAAGwP,aAAY;AAAA,MAASC,aAAazP,uBAAGyP;AAAAA,MAAaC,aAAY1P,uBAAG0P,eAAc;AAAA,MAASC,SAAS3P,uBAAG2P;AAAAA,MAASC,WAAW5P,uBAAG4P;AAAAA,IAAAA;AAAAA,EACnL;AACA,QAAMC,YAAYA,MAAM5kB,KAAAA,EAAOukB,aAAa;AAE5C,UAAA,MAAA;AAAA,QAAAM,UAAAjjB,IAAAA,eAAAkjB,QAAA,GAAAC,UAAAF,QAAA9iB,YAAAijB,UAAAD,QAAAhjB,YAAAkjB,UAAAD,QAAA7iB,aAAA+iB,UAAAD,QAAAljB,YAAAojB,UAAAD,QAAA/iB,aAAAijB,UAAAD,QAAApjB,YAAA,CAAAsjB,SAAAC,MAAA,IAAA/iB,IAAAA,cAAA6iB,QAAAjjB,WAAA,GAAAojB,UAAAF,QAAAljB,aAAA,CAAAqjB,SAAAC,MAAA,IAAAljB,IAAAA,cAAAgjB,QAAApjB,WAAA,GAAAujB,UAAAP,QAAAhjB,aAAA,CAAAwjB,SAAAC,MAAA,IAAArjB,kBAAAmjB,QAAAvjB,WAAA;AAAAc,QAAAA,OAAA+hB,SAAA,MAGmCJ,UAAAA,IAAc,OAAO,GAAG;AAAA3hB,QAAAA,OAAAiiB,SAAA,MAE/CllB,KAAAA,EAAOoL,OAAO;AAAAnI,eAAAkiB,SAAAhiB,IAAAA,gBAEfC,cAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAErD,OAAOwkB;AAAAA,MAAW;AAAA,MAAA,IAAAlhB,WAAA;AAAA,YAAAuiB,UAAAjkB,IAAAA,eAAAkkB,QAAA,GAAAC,UAAAF,QAAA9jB,YAAAikB,UAAAD,QAAA5jB,aAAA,CAAA8jB,SAAAC,MAAA,IAAA3jB,IAAAA,cAAAyjB,QAAA7jB,WAAA;AAAA0jB,gBAAA7iB,UACG,MAAA;;AAAM3E,6BAAM8B,aAAN9B,+BAAiB2B,KAAAA,EAAOwkB;AAAAA;AAAavhB,YAAAA,OAAA4iB,SAAA,MAAwL7lB,KAAAA,EAAOykB,YAAUwB,SAAAC,MAAA;AAAAziB,YAAAA,OAAA,MAAAsD,IAAAA,UAAA8e,SAAhM,yCAAyCjB,cAAc,+CAA+C,wCAAwC,oBAAoB,CAAA;AAAA5gB,+BAAAA;AAAA,eAAA6hB;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAAR,SAAAC,MAAA;AAAAriB,eAAAkiB,SAAAhiB,IAAAA,gBAEtPC,cAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAErD,OAAO0kB;AAAAA,MAAO;AAAA,MAAA,IAAAphB,WAAA;AAAA,YAAA6iB,UAAAvkB,IAAAA,eAAAwkB,QAAA;AAAAD,gBAAAnjB,UACO,MAAMshB,eAAe,CAACD,aAAa;AAACrgB,+BAAAA;AAAA,eAAAmiB;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAAX,SAAAC,MAAA;AAAAxiB,eAAAgiB,SAAA9hB,IAAAA,gBAGtEC,cAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEM,IAAAA,KAAA,MAAA,CAAA,CAAA0gB,aAAa,EAAA,KAAIrkB,KAAAA,EAAO0kB;AAAAA,MAAO;AAAA,MAAA,IAAAphB,WAAA;AAAA,YAAA+iB,UAAAzkB,IAAAA,eAAA0kB,QAAA;AAAArjB,YAAAA,OAAAojB,SAAA,MACarmB,KAAAA,EAAO0kB,OAAO;AAAA,eAAA2B;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAAV,SAAAC,MAAA;AAAAniB,eAAA,MAAAsD,cAAA8d,SAdhE,gCAAgCD,cAAc,sHAAsH,uGAAuG,EAAE,CAAA;AAAA,WAAAC;AAAAA,EAAA,GAAA;AAoB7R;AAIA,MAAMzW,oBAAsD/P,CAAAA,UAAU;AACpE,QAAM2B,OAAOA,MAAM;AACjB,UAAM+U,IAAI1W,MAAMkP;AAChB,WAAO;AAAA,MAAE4H,OAAMJ,uBAAGI,SAAQ;AAAA,MAAUlW,SAAQ8V,uBAAG9V,WAAU;AAAA,MAAasnB,eAAcxR,uBAAGwR,iBAAgB,CAAA;AAAA,MAAIC,YAAYzR,uBAAGyR;AAAAA,MAAYC,WAAW1R,uBAAG0R;AAAAA,MAAWC,WAAW3R,uBAAG2R;AAAAA,IAAAA;AAAAA,EAC/K;AACA,QAAM5E,aAAaA,OAAO;AAAA,IAAE6E,SAAS;AAAA,IAAKC,WAAW;AAAA,IAAMzoB,OAAO;AAAA,EAAA,GAAiC6B,KAAAA,EAAOf,MAAM,KAAK;AAErH,UAAA,MAAA;AAAA,QAAA4nB,UAAAjlB,IAAAA,eAAAklB,QAAA,GAAAC,UAAAF,QAAA9kB,YAAAilB,UAAAD,QAAAhlB,YAAAklB,UAAAD,QAAAjlB,YAAA,CAAAmlB,SAAAC,MAAA,IAAA5kB,kBAAA0kB,QAAA9kB,WAAA,GAAAilB,UAAAF,QAAA/kB,aAAAklB,UAAAD,QAAAjlB,aAAA,CAAAmlB,SAAAC,MAAA,IAAAhlB,IAAAA,cAAA8kB,QAAAllB,WAAA,GAAAqlB,UAAAR,QAAA7kB,aAAA,CAAAslB,SAAAC,MAAA,IAAAnlB,IAAAA,cAAAilB,QAAArlB,WAAA,GAAAwlB,UAAAZ,QAAA5kB,aAAAylB,UAAAD,QAAAxlB,aAAA,CAAA0lB,SAAAC,MAAA,IAAAvlB,kBAAAqlB,QAAAzlB,WAAA;AAAAc,QAAAA,OAAA+jB,SAGuElF,YAAUoF,SAAAC,MAAA;AAAAlkB,QAAAA,OAAA+jB,SAAA,MAAKhnB,KAAAA,EAAOmV,MAAImS,SAAAC,MAAA;AAAAtkB,eAAA8jB,SAAA5jB,IAAAA,gBAC1FC,cAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAErD,KAAAA,EAAO0mB,cAAc/nB;AAAAA,MAAS;AAAA,MAAA,IAAA2E,WAAA;AAAA,YAAAykB,UAAAnmB,IAAAA,eAAAomB,QAAA,GAAAC,UAAAF,QAAAhmB,YAAA,CAAAmmB,SAAAC,MAAA,IAAA5lB,IAAAA,cAAA0lB,QAAA9lB,WAAA;AAAA+lB,gBAAA/lB;AAAAc,mBAAA8kB,SAAA,MAAA;;AAC0B/nB,4BAAAA,EAAO0mB,cAAP1mB,mBAAkByI;AAAAA,WAAgByf,SAAAC,MAAA;AAAA,eAAAJ;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAAN,SAAAC,MAAA;AAAAzkB,eAAA0kB,SAAAxkB,IAAAA,gBAIrGmC,aAAG;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEvF,OAAOumB;AAAAA,MAAY;AAAA,MAAAjjB,UAC3BA,CAAC8kB,SAAQ,MAAA;AAAA,YAAAC,UAAAzmB,IAAAA,eAAA0mB,QAAA,GAAAC,UAAAF,QAAAtmB,YAAA,CAAAymB,SAAAC,MAAA,IAAAlmB,IAAAA,cAAAgmB,QAAApmB,WAAA,GAAAumB,UAAAF,QAAArmB,aAAAwmB,UAAAD,QAAAvmB,aAAA,CAAAymB,SAAAC,MAAA,IAAAtmB,kBAAAomB,QAAAxmB,WAAA;AAAAc,mBAAAolB,SAAA,MAELD,IAAIU,YAAY,MAAM,KAAGN,SAAAC,MAAA;AAAAxlB,YAAAA,OAAAolB,SAAA,MAAGD,IAAIvqB,OAAK+qB,SAAAC,MAAA;AAAAplB,YAAAA,OAAA,MAAAsD,IAAAA,UAAAshB,SAD3B,qCAAqCD,IAAIU,YAAY,yEAAyE,8DAA8D,EAAE,CAAA;AAAA,eAAAT;AAAAA,MAAA,GAAA;AAAA,IAAA,CAG5M,CAAA;AAAAplB,eAAA4jB,SAAA1jB,IAAAA,gBAGJC,cAAI;AAAA,MAAA,IAACC,OAAI;AAAA,eAAErD,KAAAA,EAAOymB,aAAazmB,KAAAA,EAAOwmB;AAAAA,MAAU;AAAA,MAAA,IAAAljB,WAAA;AAAA,YAAAylB,UAAAnnB,IAAAA,eAAAonB,QAAA;AAAA/lB,mBAAA8lB,SAAA,MACT,CAAC/oB,KAAAA,EAAOymB,WAAWzmB,KAAAA,EAAOwmB,aAAa,GAAGxmB,OAAOwmB,UAAU,OAAO,EAAE,EAAElP,OAAO2R,OAAO,EAAE5Z,KAAK,KAAK,CAAC;AAAA,eAAA0Z;AAAAA,MAAA;AAAA,IAAA,CAAA,GAAAlB,SAAAC,MAAA;AAAA,WAAAjB;AAAAA,EAAA,GAAA;AAI/I;AAIA,MAAMxY,cAAgDhQ,CAAAA,UAAU;AAC9D,QAAM2B,OAAOA,MAAM;AACjB,UAAM+U,IAAI1W,MAAMkP;AAChB,WAAO;AAAA,MAAE2b,OAAMnU,uBAAGmU,SAAQ;AAAA,QAAErrB,OAAO;AAAA,QAAK+K,MAAM,CAAA;AAAA,MAAA;AAAA,MAAMugB,QAAOpU,uBAAGoU,UAAS;AAAA,QAAEtrB,OAAO;AAAA,QAAK+K,MAAM,CAAA;AAAA,MAAA;AAAA,MAAMwgB,YAAWrU,uBAAGsU,sBAAqB,CAAA;AAAA,IAAA;AAAA,EACtI;AACA,QAAM1Z,UAAUA,MAAM;AACpB,UAAM2Z,IAAItpB,KAAAA,EAAOkpB,KAAKtgB,KAAK,CAAC,KAAK,CAAA;AACjC,UAAMyN,IAAIrW,KAAAA,EAAOmpB,MAAMvgB,KAAK,CAAC,KAAK,CAAA;AAClC,WAAO,CAAC,GAAG,oBAAI/I,IAAI,CAAC,GAAGL,OAAOC,KAAK6pB,CAAC,GAAG,GAAG9pB,OAAOC,KAAK4W,CAAC,CAAC,CAAC,CAAC;AAAA,EAC5D;AAEA,UAAA,MAAA;AAAA,QAAAkT,UAAA3nB,IAAAA,eAAA4nB,QAAA,GAAAC,UAAAF,QAAAxnB,YAAA2nB,UAAAD,QAAA1nB,YAAA4nB,UAAAD,QAAA3nB,YAAA6nB,UAAAD,QAAA5nB,YAAA8nB,UAAAD,QAAAznB,aAAA2nB,UAAAD,QAAA1nB,aAAA4nB,UAAAL,QAAAvnB;AAAAc,QAAAA,OAAA4mB,SAAA,MAMwF7pB,KAAAA,EAAOkpB,KAAKrrB,KAAK;AAAAoF,QAAAA,OAAA6mB,SAAA,MACb9pB,KAAAA,EAAOmpB,MAAMtrB,KAAK;AAAAoF,eAAA8mB,SAAA5mB,IAAAA,gBAIrGmC,aAAG;AAAA,MAAA,IAACC,OAAI;AAAA,eAAEoK,QAAAA;AAAAA,MAAS;AAAA,MAAArM,UAChByM,CAAAA,QAAQ;AACR,cAAMia,OAAOA,MAAAA;;AAAMhqB,4BAAAA,EAAOkpB,KAAKtgB,KAAK,CAAC,MAAlB5I,mBAAsB+P;AAAAA;AACzC,cAAMka,OAAOA,MAAAA;;AAAMjqB,4BAAAA,EAAOmpB,MAAMvgB,KAAK,CAAC,MAAnB5I,mBAAuB+P;AAAAA;AAC1C,cAAMma,SAASA,MAAMpgB,OAAOkgB,KAAAA,CAAM,MAAMlgB,OAAOmgB,KAAAA,CAAM,KAAKjqB,KAAAA,EAAOopB,UAAUjT,SAASpG,GAAG;AACvF,gBAAA,MAAA;AAAA,cAAAoa,UAAAvoB,IAAAA,eAAAwoB,QAAA,GAAAC,UAAAF,QAAApoB,YAAAuoB,UAAAD,QAAAloB,aAAAooB,UAAAD,QAAAnoB;AAAAc,cAAAA,OAAAonB,SAEsEta,GAAG;AAAA9M,cAAAA,OAAAqnB,UAAA,MAAA;AAAA,gBAAAE,OAAA7mB,IAAAA,KAAA,MAChBqmB,KAAAA,MAAWrrB,MAAS;AAAA,mBAAA,MAApB6rB,KAAAA,IAAuB1gB,OAAOkgB,KAAAA,CAAM,IAAI;AAAA,UAAG,IAAA;AAAA/mB,cAAAA,OAAAsnB,UAAA,MAAA;AAAA,gBAAAE,OAAA9mB,IAAAA,KAAA,MAC3CsmB,KAAAA,MAAWtrB,MAAS;AAAA,mBAAA,MAApB8rB,KAAAA,IAAuB3gB,OAAOmgB,KAAAA,CAAM,IAAI;AAAA,UAAG,IAAA;AAAAxmB,qBAAA,MAAAsD,cAAAojB,SAHvF,iDAAiDD,WAAW,uCAAuC,EAAE,EAAE,CAAA;AAAA,iBAAAC;AAAAA,QAAA,GAAA;AAAA,MAMtH;AAAA,IAAA,CAAC,CAAA;AAAA,WAAAZ;AAAAA,EAAA,GAAA;AAMb;AAACmB,IAAAA,eAAA,CAAA,SAAA,OAAA,CAAA;;"}
|
|
@@ -16,6 +16,10 @@ export interface ScratchpadPanelProps {
|
|
|
16
16
|
/** Called when user clicks retry on error state */
|
|
17
17
|
onRetry?: () => void;
|
|
18
18
|
onClose?: () => void;
|
|
19
|
+
/** When true, action buttons show loading spinner and stay open until next server update */
|
|
20
|
+
asyncAction?: boolean;
|
|
21
|
+
/** When true (set by server), scratchpad stays visible during stream */
|
|
22
|
+
pinned?: boolean;
|
|
19
23
|
closable?: boolean;
|
|
20
24
|
autoCloseDelay?: number;
|
|
21
25
|
collapsible?: boolean;
|
|
@@ -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,sEAAsE;IACtE,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IACvE,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,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;AAWD,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,sEAAsE;IACtE,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IACvE,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,4FAA4F;IAC5F,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAWD,eAAO,MAAM,eAAe,EAAE,SAAS,CAAC,oBAAoB,CAwO3D,CAAA"}
|