@seed-ship/mcp-ui-solid 2.11.0 → 2.13.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 +4 -5
- package/dist/components/FormFieldRenderer.cjs +261 -223
- package/dist/components/FormFieldRenderer.cjs.map +1 -1
- package/dist/components/FormFieldRenderer.d.ts.map +1 -1
- package/dist/components/FormFieldRenderer.js +262 -224
- package/dist/components/FormFieldRenderer.js.map +1 -1
- package/dist/components/ScratchpadPanel.cjs +130 -13
- package/dist/components/ScratchpadPanel.cjs.map +1 -1
- package/dist/components/ScratchpadPanel.d.ts.map +1 -1
- package/dist/components/ScratchpadPanel.js +130 -13
- package/dist/components/ScratchpadPanel.js.map +1 -1
- package/dist/index.cjs +1 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/services/chat-bus.cjs +23 -0
- package/dist/services/chat-bus.cjs.map +1 -1
- package/dist/services/chat-bus.d.ts +13 -1
- package/dist/services/chat-bus.d.ts.map +1 -1
- package/dist/services/chat-bus.js +24 -1
- package/dist/services/chat-bus.js.map +1 -1
- package/dist/services/index.d.ts +1 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/types/chat-bus.d.ts +3 -1
- package/dist/types/chat-bus.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types.d.cts +4 -0
- package/dist/types.d.ts +4 -0
- package/package.json +1 -1
- package/src/components/FormFieldRenderer.tsx +25 -3
- package/src/components/ScratchpadPanel.tsx +97 -6
- package/src/index.ts +1 -0
- package/src/services/chat-bus.ts +44 -0
- package/src/services/index.ts +1 -1
- package/src/types/chat-bus.ts +3 -1
- package/src/types/index.ts +6 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormFieldRenderer.js","sources":["../../src/components/FormFieldRenderer.tsx"],"sourcesContent":["/**\n * FormFieldRenderer - Individual form field component\n * Sprint 1: Form Foundation\n * Sprint 2: Conditional field visibility (showWhen)\n */\n\nimport { Component, Show, For, Switch, Match, Accessor, createSignal, createEffect, onCleanup } from 'solid-js'\nimport type { FormFieldParams } from '../types'\nimport { useConditionalField } from '../hooks/useConditionalField'\n\nexport interface FormFieldRendererProps {\n field: FormFieldParams\n value: any\n error?: string\n onChange: (value: any) => void\n disabled?: boolean\n /**\n * Form data accessor for conditional field visibility\n */\n formData?: Accessor<Record<string, any>>\n}\n\nexport const FormFieldRenderer: Component<FormFieldRendererProps> = (props) => {\n // Conditional visibility based on showWhen\n const { isVisible } = useConditionalField({\n condition: props.field.showWhen,\n formData: props.formData || (() => ({})),\n })\n\n const baseInputClass = () => `\n w-full px-3 py-2 border rounded-md\n focus:ring-2 focus:ring-blue-500 focus:border-blue-500\n disabled:bg-gray-100 disabled:cursor-not-allowed\n ${props.error\n ? 'border-red-500 focus:ring-red-500'\n : 'border-gray-300 dark:border-gray-600'}\n dark:bg-gray-700 dark:text-white\n `\n\n const fieldId = () => `field-${props.field.name}`\n const errorId = () => `${props.field.name}-error`\n\n return (\n <Show when={isVisible()}>\n <div class=\"space-y-1\">\n <Show when={props.field.label && props.field.type !== 'checkbox'}>\n <label\n for={fieldId()}\n class=\"block text-sm font-medium text-gray-700 dark:text-gray-300\"\n >\n {props.field.label}\n <Show when={props.field.required}>\n <span class=\"text-red-500 ml-1\" aria-hidden=\"true\">*</span>\n </Show>\n </label>\n </Show>\n\n <Switch>\n {/* Text Input */}\n <Match when={props.field.type === 'text' || props.field.type === 'email' || props.field.type === 'password'}>\n <input\n id={fieldId()}\n type={props.field.type}\n name={props.field.name}\n value={props.value || ''}\n onInput={(e) => props.onChange(e.currentTarget.value)}\n placeholder={props.field.placeholder}\n disabled={props.disabled}\n required={props.field.required}\n minLength={props.field.minLength}\n maxLength={props.field.maxLength}\n pattern={props.field.pattern}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n />\n </Match>\n\n {/* Number Input */}\n <Match when={props.field.type === 'number'}>\n <input\n id={fieldId()}\n type=\"number\"\n name={props.field.name}\n value={props.value ?? ''}\n onInput={(e) => props.onChange(e.currentTarget.value === '' ? undefined : Number(e.currentTarget.value))}\n placeholder={props.field.placeholder}\n disabled={props.disabled}\n required={props.field.required}\n min={props.field.min}\n max={props.field.max}\n step={props.field.step}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n />\n </Match>\n\n {/* Date Input */}\n <Match when={props.field.type === 'date'}>\n <input\n id={fieldId()}\n type=\"date\"\n name={props.field.name}\n value={props.value || ''}\n onInput={(e) => props.onChange(e.currentTarget.value)}\n disabled={props.disabled}\n required={props.field.required}\n min={props.field.minDate}\n max={props.field.maxDate}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n />\n </Match>\n\n {/* Textarea */}\n <Match when={props.field.type === 'textarea'}>\n <textarea\n id={fieldId()}\n name={props.field.name}\n value={props.value || ''}\n onInput={(e) => props.onChange(e.currentTarget.value)}\n placeholder={props.field.placeholder}\n disabled={props.disabled}\n required={props.field.required}\n rows={props.field.rows || 4}\n minLength={props.field.minLength}\n maxLength={props.field.maxLength}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n />\n </Match>\n\n {/* Select (single) */}\n <Match when={props.field.type === 'select' && !props.field.multiple}>\n <select\n id={fieldId()}\n name={props.field.name}\n value={props.value || ''}\n onChange={(e) => props.onChange(e.currentTarget.value)}\n disabled={props.disabled}\n required={props.field.required}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n >\n <Show when={props.field.placeholder}>\n <option value=\"\" disabled>{props.field.placeholder}</option>\n </Show>\n <For each={props.field.options}>\n {(option) => (\n <option value={option.value} disabled={option.disabled}>\n {option.label}\n </option>\n )}\n </For>\n </select>\n </Match>\n\n {/* Checkbox */}\n <Match when={props.field.type === 'checkbox'}>\n <label class=\"flex items-center gap-2 cursor-pointer\">\n <input\n id={fieldId()}\n type=\"checkbox\"\n name={props.field.name}\n checked={props.value || false}\n onChange={(e) => props.onChange(e.currentTarget.checked)}\n disabled={props.disabled}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class=\"w-4 h-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700\"\n />\n <span class=\"text-sm text-gray-700 dark:text-gray-300\">\n {props.field.checkboxLabel || props.field.label}\n <Show when={props.field.required}>\n <span class=\"text-red-500 ml-1\" aria-hidden=\"true\">*</span>\n </Show>\n </span>\n </label>\n </Match>\n\n {/* Multi-Select with chips */}\n <Match when={props.field.type === 'select' && props.field.multiple}>\n <MultiSelectField\n field={props.field}\n value={props.value || []}\n onChange={props.onChange}\n disabled={props.disabled}\n baseClass={baseInputClass()}\n />\n </Match>\n\n {/* Autocomplete with API fetch */}\n <Match when={props.field.type === 'autocomplete'}>\n <AutocompleteField\n field={props.field}\n value={props.value || ''}\n onChange={props.onChange}\n disabled={props.disabled}\n baseClass={baseInputClass()}\n />\n </Match>\n\n {/* Radio Group */}\n <Match when={props.field.type === 'radio'}>\n <div\n class=\"space-y-2\"\n role=\"radiogroup\"\n aria-labelledby={props.field.label ? `${fieldId()}-label` : undefined}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n >\n <For each={props.field.options}>\n {(option, index) => (\n <label class=\"flex items-center gap-2 cursor-pointer\">\n <input\n type=\"radio\"\n name={props.field.name}\n id={`${fieldId()}-${index()}`}\n value={option.value}\n checked={props.value === option.value}\n onChange={() => props.onChange(option.value)}\n disabled={props.disabled || option.disabled}\n class=\"w-4 h-4 border-gray-300 text-blue-600 focus:ring-blue-500 dark:border-gray-600\"\n />\n <span class=\"text-sm text-gray-700 dark:text-gray-300\">\n {option.label}\n </span>\n </label>\n )}\n </For>\n </div>\n </Match>\n\n {/* Fallback for unknown field types — renders as text input with warning */}\n <Match when={true}>\n <input\n id={fieldId()}\n type=\"text\"\n name={props.field.name}\n value={props.value || ''}\n onInput={(e) => props.onChange(e.currentTarget.value)}\n placeholder={props.field.placeholder || `(${props.field.type})`}\n disabled={props.disabled}\n class={baseInputClass()}\n />\n <p class=\"text-xs text-amber-500 mt-0.5\">Unknown field type: {props.field.type}</p>\n </Match>\n </Switch>\n\n <Show when={props.field.helpText && !props.error}>\n <p class=\"text-xs text-gray-500 dark:text-gray-400\">{props.field.helpText}</p>\n </Show>\n\n <Show when={props.error}>\n <p id={errorId()} role=\"alert\" class=\"text-xs text-red-600 dark:text-red-400\">\n {props.error}\n </p>\n </Show>\n </div>\n </Show>\n )\n}\n\n// ─── Multi-Select with Chips ─────────────────────────────────\n\nconst MultiSelectField: Component<{\n field: FormFieldParams\n value: string[]\n onChange: (value: string[]) => void\n disabled?: boolean\n baseClass: string\n}> = (props) => {\n const [open, setOpen] = createSignal(false)\n const [filter, setFilter] = createSignal('')\n\n const toggle = (val: string) => {\n const current = props.value || []\n if (current.includes(val)) {\n props.onChange(current.filter((v) => v !== val))\n } else {\n props.onChange([...current, val])\n }\n }\n\n const removeChip = (val: string) => {\n props.onChange((props.value || []).filter((v) => v !== val))\n }\n\n const getLabel = (val: string) =>\n props.field.options?.find((o) => o.value === val)?.label || val\n\n const filteredOptions = () => {\n const q = filter().toLowerCase()\n if (!q) return props.field.options || []\n return (props.field.options || []).filter(\n (o) => o.label.toLowerCase().includes(q) || o.value.toLowerCase().includes(q)\n )\n }\n\n return (\n <div class=\"relative\">\n {/* Selected chips */}\n <Show when={props.value.length > 0}>\n <div class=\"flex flex-wrap gap-1 mb-1\">\n <For each={props.value}>\n {(val) => (\n <span class=\"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded-full\">\n {getLabel(val)}\n <button\n type=\"button\"\n onClick={() => removeChip(val)}\n class=\"hover:text-blue-900 dark:hover:text-blue-100\"\n aria-label={`Remove ${getLabel(val)}`}\n >\n ×\n </button>\n </span>\n )}\n </For>\n </div>\n </Show>\n\n {/* Trigger button */}\n <button\n type=\"button\"\n onClick={() => { setOpen(!open()); if (!open()) setFilter('') }}\n disabled={props.disabled}\n class={`${props.baseClass} text-left flex items-center justify-between`}\n >\n <span class={props.value.length ? 'text-gray-900 dark:text-white' : 'text-gray-400'}>\n {props.value.length\n ? `${props.value.length} selected`\n : props.field.placeholder || 'Select...'}\n </span>\n <svg class=\"w-4 h-4 text-gray-400\" 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 </button>\n\n {/* Dropdown with filter */}\n <Show when={open()}>\n <div\n class=\"absolute z-50 mt-1 w-full bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-md shadow-lg\"\n style={{ \"max-height\": \"320px\", display: \"flex\", \"flex-direction\": \"column\" }}\n >\n {/* Search filter */}\n <Show when={(props.field.options?.length || 0) > 10}>\n <div class=\"p-2 border-b border-gray-200 dark:border-gray-600 flex-shrink-0\">\n <input\n type=\"text\"\n value={filter()}\n onInput={(e) => setFilter(e.currentTarget.value)}\n placeholder=\"Filter...\"\n class=\"w-full 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 autofocus\n />\n </div>\n </Show>\n {/* Options list — scrollable */}\n <div style={{ \"overflow-y\": \"auto\", \"flex\": \"1\", \"-webkit-overflow-scrolling\": \"touch\" }}>\n <For each={filteredOptions()}>\n {(option) => (\n <label class=\"flex items-center gap-2 px-3 py-2 hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer text-sm\">\n <input\n type=\"checkbox\"\n checked={(props.value || []).includes(option.value)}\n onChange={() => toggle(option.value)}\n class=\"w-4 h-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500 dark:border-gray-600\"\n />\n <span class=\"text-gray-900 dark:text-white\">{option.label}</span>\n </label>\n )}\n </For>\n <Show when={filteredOptions().length === 0}>\n <p class=\"px-3 py-2 text-sm text-gray-400\">No matches</p>\n </Show>\n </div>\n </div>\n </Show>\n </div>\n )\n}\n\n// ─── Autocomplete with API fetch ─────────────────────────────\n\nconst AutocompleteField: Component<{\n field: FormFieldParams\n value: string | string[]\n onChange: (value: string | string[]) => void\n disabled?: boolean\n baseClass: string\n}> = (props) => {\n const [query, setQuery] = createSignal('')\n const [suggestions, setSuggestions] = createSignal<Array<{ label: string; value: string }>>([])\n const [isOpen, setIsOpen] = createSignal(false)\n const [selectedLabels, setSelectedLabels] = createSignal<Map<string, string>>(new Map())\n let debounceTimer: ReturnType<typeof setTimeout> | null = null\n\n const isMultiple = () => props.field.multiple === true\n const selectedValues = () => isMultiple() ? (Array.isArray(props.value) ? props.value : []) : []\n const minChars = () => props.field.minChars ?? 2\n const debounceMs = () => props.field.debounceMs ?? 300\n\n const fetchSuggestions = async (q: string) => {\n if (!props.field.apiUrl || !props.field.searchParam) return\n\n try {\n const params = new URLSearchParams({ [props.field.searchParam]: q })\n if (props.field.extraParams) {\n for (const [k, v] of Object.entries(props.field.extraParams)) {\n params.set(k, v)\n }\n }\n const res = await fetch(`${props.field.apiUrl}?${params}`)\n if (!res.ok) return\n\n const data = await res.json()\n const items = Array.isArray(data) ? data : data.results || data.features || []\n const labelField = props.field.labelField || 'label'\n const valueField = props.field.valueField || 'value'\n\n setSuggestions(items.slice(0, 10).map((item: any) => ({\n label: item[labelField] || String(item),\n value: String(item[valueField] || item[labelField] || item),\n })))\n setIsOpen(true)\n } catch {\n setSuggestions([])\n }\n }\n\n const handleInput = (value: string) => {\n setQuery(value)\n if (!isMultiple()) {\n props.onChange('')\n }\n\n if (debounceTimer) clearTimeout(debounceTimer)\n if (value.length < minChars()) {\n setSuggestions([])\n setIsOpen(false)\n return\n }\n debounceTimer = setTimeout(() => fetchSuggestions(value), debounceMs())\n }\n\n const selectSuggestion = (item: { label: string; value: string }) => {\n if (isMultiple()) {\n const current = selectedValues()\n if (!current.includes(item.value)) {\n props.onChange([...current, item.value])\n setSelectedLabels((prev) => new Map(prev).set(item.value, item.label))\n }\n setQuery('')\n setSuggestions([])\n setIsOpen(false)\n } else {\n props.onChange(item.value)\n setSelectedLabels((prev) => new Map(prev).set(item.value, item.label))\n setQuery(item.label)\n setIsOpen(false)\n setSuggestions([])\n }\n }\n\n const removeChip = (val: string) => {\n props.onChange(selectedValues().filter((v) => v !== val))\n setSelectedLabels((prev) => { const m = new Map(prev); m.delete(val); return m })\n }\n\n const getLabel = (val: string) => selectedLabels().get(val) || val\n\n onCleanup(() => { if (debounceTimer) clearTimeout(debounceTimer) })\n\n return (\n <div class=\"relative\">\n {/* Multi chips */}\n <Show when={isMultiple() && selectedValues().length > 0}>\n <div class=\"flex flex-wrap gap-1 mb-1\">\n <For each={selectedValues()}>\n {(val) => (\n <span class=\"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded-full\">\n {getLabel(val)}\n <button\n type=\"button\"\n onClick={() => removeChip(val)}\n class=\"hover:text-blue-900 dark:hover:text-blue-100\"\n aria-label={`Remove ${getLabel(val)}`}\n >\n ×\n </button>\n </span>\n )}\n </For>\n </div>\n </Show>\n\n <input\n type=\"text\"\n value={query()}\n onInput={(e) => handleInput(e.currentTarget.value)}\n onFocus={() => { if (suggestions().length) setIsOpen(true) }}\n onBlur={() => setTimeout(() => setIsOpen(false), 200)}\n placeholder={isMultiple() && selectedValues().length\n ? 'Add more...'\n : props.field.placeholder}\n disabled={props.disabled}\n class={props.baseClass}\n autocomplete=\"off\"\n />\n\n <Show when={isOpen() && suggestions().length > 0}>\n <div class=\"absolute z-20 mt-1 w-full bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-md shadow-lg max-h-72 overflow-y-auto\">\n <For each={suggestions()}>\n {(item) => {\n const isSelected = () => isMultiple() && selectedValues().includes(item.value)\n return (\n <button\n type=\"button\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => selectSuggestion(item)}\n class={`w-full text-left px-3 py-2 text-sm hover:bg-blue-50 dark:hover:bg-blue-900/20 ${\n isSelected() ? 'text-blue-600 dark:text-blue-400 bg-blue-50/50 dark:bg-blue-900/10' : 'text-gray-900 dark:text-white'\n }`}\n disabled={isSelected()}\n >\n {item.label}\n <Show when={isSelected()}>\n <span class=\"ml-2 text-xs\">✓</span>\n </Show>\n </button>\n )\n }}\n </For>\n </div>\n </Show>\n </div>\n )\n}\n"],"names":["FormFieldRenderer","props","isVisible","useConditionalField","condition","field","showWhen","formData","baseInputClass","error","fieldId","name","errorId","_$createComponent","Show","when","children","_el$","_$getNextElement","_tmpl$13","_el$32","firstChild","_el$33","_co$8","_$getNextMarker","nextSibling","_el$34","_el$35","_co$9","_el$36","_el$37","_co$0","_el$38","_el$39","_co$1","_$insert","_$memo","label","type","_el$2","_tmpl$2","_el$4","_el$5","_co$","_el$6","_el$7","_co$2","required","_tmpl$","_$effect","_$setAttribute","Switch","Match","_el$8","_tmpl$3","$$input","e","onChange","currentTarget","value","_p$","_v$","_v$2","_v$3","_v$4","placeholder","_v$5","disabled","_v$6","_v$7","minLength","_v$8","maxLength","_v$9","pattern","_v$0","_v$1","undefined","_v$10","t","a","o","i","_$setProperty","n","s","h","r","d","l","u","_$className","_$runHydrationEvents","_el$9","_tmpl$4","Number","_v$11","_v$12","_v$13","_v$14","_v$15","_v$16","min","_v$17","max","_v$18","step","_v$19","_v$20","_v$21","_el$0","_tmpl$5","_v$22","_v$23","_v$24","_v$25","_v$26","minDate","_v$27","maxDate","_v$28","_v$29","_v$30","_el$1","_tmpl$6","_v$31","_v$32","_v$33","_v$34","_v$35","_v$36","rows","_v$37","_v$38","_v$39","_v$40","_v$41","multiple","_el$10","_tmpl$8","_el$12","_el$13","_co$3","_el$14","_el$15","_co$4","addEventListener","_el$11","_tmpl$7","For","each","options","option","_el$40","_tmpl$14","_v$42","_v$43","_v$44","_v$45","_v$46","_v$47","_v$48","_el$16","_tmpl$9","_el$17","_el$18","_el$20","_el$21","_co$5","_el$22","_el$23","_co$6","checked","checkboxLabel","_v$49","_v$50","_v$51","_v$52","_v$53","MultiSelectField","baseClass","AutocompleteField","_el$24","_tmpl$0","index","_el$41","_tmpl$15","_el$42","_el$43","_v$62","_v$63","_v$64","_v$54","_v$55","_v$56","_el$25","_tmpl$1","_v$57","_v$58","_v$59","_v$60","_v$61","_el$26","_tmpl$10","_el$27","_el$28","_el$29","_co$7","helpText","_el$30","_tmpl$11","_el$31","_tmpl$12","open","setOpen","createSignal","filter","setFilter","toggle","val","current","includes","v","removeChip","getLabel","find","filteredOptions","q","toLowerCase","_el$44","_tmpl$20","_el$59","_el$60","_co$13","_el$46","_el$47","_el$61","_el$62","_co$14","length","_el$45","_tmpl$16","_el$63","_tmpl$21","_el$65","_el$66","_co$15","_el$64","$$click","_c$","_el$48","_tmpl$19","_el$57","_el$58","_co$12","_el$51","_el$53","_el$54","_co$10","_el$55","_el$56","_co$11","_el$49","_tmpl$17","_el$50","_el$67","_tmpl$22","_el$68","_el$69","_tmpl$18","_v$65","_v$66","_v$67","query","setQuery","suggestions","setSuggestions","isOpen","setIsOpen","selectedLabels","setSelectedLabels","Map","debounceTimer","isMultiple","selectedValues","Array","isArray","minChars","debounceMs","fetchSuggestions","apiUrl","searchParam","params","URLSearchParams","extraParams","k","Object","entries","set","res","fetch","ok","data","json","items","results","features","labelField","valueField","slice","map","item","String","handleInput","setTimeout","selectSuggestion","prev","m","delete","get","onCleanup","_el$70","_tmpl$24","_el$74","_el$75","_co$16","_el$72","_el$76","_el$77","_co$17","_el$71","_el$78","_el$80","_el$81","_co$18","_el$79","_el$73","_tmpl$23","isSelected","_el$82","_tmpl$26","_el$84","_el$85","_co$19","_el$86","_el$87","_co$20","$$mousedown","preventDefault","_tmpl$25","_v$71","_v$72","_v$68","_v$69","_v$70","_$delegateEvents"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FormFieldRenderer.js","sources":["../../src/components/FormFieldRenderer.tsx"],"sourcesContent":["/**\n * FormFieldRenderer - Individual form field component\n * Sprint 1: Form Foundation\n * Sprint 2: Conditional field visibility (showWhen)\n */\n\nimport { Component, Show, For, Switch, Match, Accessor, createSignal, createEffect, onCleanup } from 'solid-js'\nimport type { FormFieldParams } from '../types'\nimport { useConditionalField } from '../hooks/useConditionalField'\n\nexport interface FormFieldRendererProps {\n field: FormFieldParams\n value: any\n error?: string\n onChange: (value: any) => void\n disabled?: boolean\n /**\n * Form data accessor for conditional field visibility\n */\n formData?: Accessor<Record<string, any>>\n}\n\nexport const FormFieldRenderer: Component<FormFieldRendererProps> = (props) => {\n // Conditional visibility based on showWhen\n const { isVisible } = useConditionalField({\n condition: props.field.showWhen,\n formData: props.formData || (() => ({})),\n })\n\n const status = () => props.field.fieldStatus || 'optional'\n const isUnsupported = () => status() === 'unsupported'\n const isFieldDisabled = () => props.disabled || isUnsupported()\n\n const baseInputClass = () => `\n w-full px-3 py-2 border rounded-md\n focus:ring-2 focus:ring-blue-500 focus:border-blue-500\n disabled:bg-gray-100 disabled:cursor-not-allowed\n ${props.error\n ? 'border-red-500 focus:ring-red-500'\n : 'border-gray-300 dark:border-gray-600'}\n dark:bg-gray-700 dark:text-white\n ${isUnsupported() ? 'opacity-50' : ''}\n `\n\n const fieldId = () => `field-${props.field.name}`\n const errorId = () => `${props.field.name}-error`\n\n return (\n <Show when={isVisible()}>\n <div class=\"space-y-1\">\n <Show when={props.field.label && props.field.type !== 'checkbox'}>\n <label\n for={fieldId()}\n class={`block text-sm font-medium ${isUnsupported() ? 'text-gray-400 dark:text-gray-500' : 'text-gray-700 dark:text-gray-300'}`}\n >\n {props.field.label}\n <Show when={props.field.required || status() === 'required'}>\n <span class=\"text-red-500 ml-1\" aria-hidden=\"true\">*</span>\n </Show>\n <Show when={isUnsupported()}>\n <span class=\"ml-2 text-[10px] font-medium bg-orange-100 dark:bg-orange-900/30 text-orange-600 dark:text-orange-400 px-1.5 py-0.5 rounded\">Not supported</span>\n </Show>\n <Show when={status() === 'unknown'}>\n <span class=\"ml-2 text-[10px] font-medium bg-yellow-100 dark:bg-yellow-900/30 text-yellow-600 dark:text-yellow-400 px-1.5 py-0.5 rounded\">?</span>\n </Show>\n </label>\n </Show>\n\n <Switch>\n {/* Text Input */}\n <Match when={props.field.type === 'text' || props.field.type === 'email' || props.field.type === 'password'}>\n <input\n id={fieldId()}\n type={props.field.type}\n name={props.field.name}\n value={props.value || ''}\n onInput={(e) => props.onChange(e.currentTarget.value)}\n placeholder={props.field.placeholder}\n disabled={props.disabled}\n required={props.field.required}\n minLength={props.field.minLength}\n maxLength={props.field.maxLength}\n pattern={props.field.pattern}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n />\n </Match>\n\n {/* Number Input */}\n <Match when={props.field.type === 'number'}>\n <input\n id={fieldId()}\n type=\"number\"\n name={props.field.name}\n value={props.value ?? ''}\n onInput={(e) => props.onChange(e.currentTarget.value === '' ? undefined : Number(e.currentTarget.value))}\n placeholder={props.field.placeholder}\n disabled={props.disabled}\n required={props.field.required}\n min={props.field.min}\n max={props.field.max}\n step={props.field.step}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n />\n </Match>\n\n {/* Date Input */}\n <Match when={props.field.type === 'date'}>\n <input\n id={fieldId()}\n type=\"date\"\n name={props.field.name}\n value={props.value || ''}\n onInput={(e) => props.onChange(e.currentTarget.value)}\n disabled={props.disabled}\n required={props.field.required}\n min={props.field.minDate}\n max={props.field.maxDate}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n />\n </Match>\n\n {/* Textarea */}\n <Match when={props.field.type === 'textarea'}>\n <textarea\n id={fieldId()}\n name={props.field.name}\n value={props.value || ''}\n onInput={(e) => props.onChange(e.currentTarget.value)}\n placeholder={props.field.placeholder}\n disabled={props.disabled}\n required={props.field.required}\n rows={props.field.rows || 4}\n minLength={props.field.minLength}\n maxLength={props.field.maxLength}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n />\n </Match>\n\n {/* Select (single) */}\n <Match when={props.field.type === 'select' && !props.field.multiple}>\n <select\n id={fieldId()}\n name={props.field.name}\n value={props.value || ''}\n onChange={(e) => props.onChange(e.currentTarget.value)}\n disabled={props.disabled}\n required={props.field.required}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n >\n <Show when={props.field.placeholder}>\n <option value=\"\" disabled>{props.field.placeholder}</option>\n </Show>\n <For each={props.field.options}>\n {(option) => (\n <option value={option.value} disabled={option.disabled}>\n {option.label}\n </option>\n )}\n </For>\n </select>\n </Match>\n\n {/* Checkbox */}\n <Match when={props.field.type === 'checkbox'}>\n <label class=\"flex items-center gap-2 cursor-pointer\">\n <input\n id={fieldId()}\n type=\"checkbox\"\n name={props.field.name}\n checked={props.value || false}\n onChange={(e) => props.onChange(e.currentTarget.checked)}\n disabled={props.disabled}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class=\"w-4 h-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700\"\n />\n <span class=\"text-sm text-gray-700 dark:text-gray-300\">\n {props.field.checkboxLabel || props.field.label}\n <Show when={props.field.required}>\n <span class=\"text-red-500 ml-1\" aria-hidden=\"true\">*</span>\n </Show>\n </span>\n </label>\n </Match>\n\n {/* Multi-Select with chips */}\n <Match when={props.field.type === 'select' && props.field.multiple}>\n <MultiSelectField\n field={props.field}\n value={props.value || []}\n onChange={props.onChange}\n disabled={props.disabled}\n baseClass={baseInputClass()}\n />\n </Match>\n\n {/* Autocomplete with API fetch */}\n <Match when={props.field.type === 'autocomplete'}>\n <AutocompleteField\n field={props.field}\n value={props.value || ''}\n onChange={props.onChange}\n disabled={props.disabled}\n baseClass={baseInputClass()}\n />\n </Match>\n\n {/* Radio Group */}\n <Match when={props.field.type === 'radio'}>\n <div\n class=\"space-y-2\"\n role=\"radiogroup\"\n aria-labelledby={props.field.label ? `${fieldId()}-label` : undefined}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n >\n <For each={props.field.options}>\n {(option, index) => (\n <label class=\"flex items-center gap-2 cursor-pointer\">\n <input\n type=\"radio\"\n name={props.field.name}\n id={`${fieldId()}-${index()}`}\n value={option.value}\n checked={props.value === option.value}\n onChange={() => props.onChange(option.value)}\n disabled={props.disabled || option.disabled}\n class=\"w-4 h-4 border-gray-300 text-blue-600 focus:ring-blue-500 dark:border-gray-600\"\n />\n <span class=\"text-sm text-gray-700 dark:text-gray-300\">\n {option.label}\n </span>\n </label>\n )}\n </For>\n </div>\n </Match>\n\n {/* Fallback for unknown field types — renders as text input with warning */}\n <Match when={true}>\n <input\n id={fieldId()}\n type=\"text\"\n name={props.field.name}\n value={props.value || ''}\n onInput={(e) => props.onChange(e.currentTarget.value)}\n placeholder={props.field.placeholder || `(${props.field.type})`}\n disabled={props.disabled}\n class={baseInputClass()}\n />\n <p class=\"text-xs text-amber-500 mt-0.5\">Unknown field type: {props.field.type}</p>\n </Match>\n </Switch>\n\n <Show when={props.field.statusReason}>\n <p class={`text-xs ${\n isUnsupported() ? 'text-orange-500 dark:text-orange-400'\n : status() === 'unknown' ? 'text-yellow-500 dark:text-yellow-400'\n : status() === 'required' ? 'text-blue-500 dark:text-blue-400'\n : 'text-gray-500 dark:text-gray-400'\n }`}>\n {props.field.statusReason}\n </p>\n </Show>\n\n <Show when={props.field.helpText && !props.error && !props.field.statusReason}>\n <p class=\"text-xs text-gray-500 dark:text-gray-400\">{props.field.helpText}</p>\n </Show>\n\n <Show when={props.error}>\n <p id={errorId()} role=\"alert\" class=\"text-xs text-red-600 dark:text-red-400\">\n {props.error}\n </p>\n </Show>\n </div>\n </Show>\n )\n}\n\n// ─── Multi-Select with Chips ─────────────────────────────────\n\nconst MultiSelectField: Component<{\n field: FormFieldParams\n value: string[]\n onChange: (value: string[]) => void\n disabled?: boolean\n baseClass: string\n}> = (props) => {\n const [open, setOpen] = createSignal(false)\n const [filter, setFilter] = createSignal('')\n\n const toggle = (val: string) => {\n const current = props.value || []\n if (current.includes(val)) {\n props.onChange(current.filter((v) => v !== val))\n } else {\n props.onChange([...current, val])\n }\n }\n\n const removeChip = (val: string) => {\n props.onChange((props.value || []).filter((v) => v !== val))\n }\n\n const getLabel = (val: string) =>\n props.field.options?.find((o) => o.value === val)?.label || val\n\n const filteredOptions = () => {\n const q = filter().toLowerCase()\n if (!q) return props.field.options || []\n return (props.field.options || []).filter(\n (o) => o.label.toLowerCase().includes(q) || o.value.toLowerCase().includes(q)\n )\n }\n\n return (\n <div class=\"relative\">\n {/* Selected chips */}\n <Show when={props.value.length > 0}>\n <div class=\"flex flex-wrap gap-1 mb-1\">\n <For each={props.value}>\n {(val) => (\n <span class=\"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded-full\">\n {getLabel(val)}\n <button\n type=\"button\"\n onClick={() => removeChip(val)}\n class=\"hover:text-blue-900 dark:hover:text-blue-100\"\n aria-label={`Remove ${getLabel(val)}`}\n >\n ×\n </button>\n </span>\n )}\n </For>\n </div>\n </Show>\n\n {/* Trigger button */}\n <button\n type=\"button\"\n onClick={() => { setOpen(!open()); if (!open()) setFilter('') }}\n disabled={props.disabled}\n class={`${props.baseClass} text-left flex items-center justify-between`}\n >\n <span class={props.value.length ? 'text-gray-900 dark:text-white' : 'text-gray-400'}>\n {props.value.length\n ? `${props.value.length} selected`\n : props.field.placeholder || 'Select...'}\n </span>\n <svg class=\"w-4 h-4 text-gray-400\" 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 </button>\n\n {/* Dropdown with filter */}\n <Show when={open()}>\n <div\n class=\"absolute z-50 mt-1 w-full bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-md shadow-lg\"\n style={{ \"max-height\": \"320px\", display: \"flex\", \"flex-direction\": \"column\" }}\n >\n {/* Search filter */}\n <Show when={(props.field.options?.length || 0) > 10}>\n <div class=\"p-2 border-b border-gray-200 dark:border-gray-600 flex-shrink-0\">\n <input\n type=\"text\"\n value={filter()}\n onInput={(e) => setFilter(e.currentTarget.value)}\n placeholder=\"Filter...\"\n class=\"w-full 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 autofocus\n />\n </div>\n </Show>\n {/* Options list — scrollable */}\n <div style={{ \"overflow-y\": \"auto\", \"flex\": \"1\", \"-webkit-overflow-scrolling\": \"touch\" }}>\n <For each={filteredOptions()}>\n {(option) => (\n <label class=\"flex items-center gap-2 px-3 py-2 hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer text-sm\">\n <input\n type=\"checkbox\"\n checked={(props.value || []).includes(option.value)}\n onChange={() => toggle(option.value)}\n class=\"w-4 h-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500 dark:border-gray-600\"\n />\n <span class=\"text-gray-900 dark:text-white\">{option.label}</span>\n </label>\n )}\n </For>\n <Show when={filteredOptions().length === 0}>\n <p class=\"px-3 py-2 text-sm text-gray-400\">No matches</p>\n </Show>\n </div>\n </div>\n </Show>\n </div>\n )\n}\n\n// ─── Autocomplete with API fetch ─────────────────────────────\n\nconst AutocompleteField: Component<{\n field: FormFieldParams\n value: string | string[]\n onChange: (value: string | string[]) => void\n disabled?: boolean\n baseClass: string\n}> = (props) => {\n const [query, setQuery] = createSignal('')\n const [suggestions, setSuggestions] = createSignal<Array<{ label: string; value: string }>>([])\n const [isOpen, setIsOpen] = createSignal(false)\n const [selectedLabels, setSelectedLabels] = createSignal<Map<string, string>>(new Map())\n let debounceTimer: ReturnType<typeof setTimeout> | null = null\n\n const isMultiple = () => props.field.multiple === true\n const selectedValues = () => isMultiple() ? (Array.isArray(props.value) ? props.value : []) : []\n const minChars = () => props.field.minChars ?? 2\n const debounceMs = () => props.field.debounceMs ?? 300\n\n const fetchSuggestions = async (q: string) => {\n if (!props.field.apiUrl || !props.field.searchParam) return\n\n try {\n const params = new URLSearchParams({ [props.field.searchParam]: q })\n if (props.field.extraParams) {\n for (const [k, v] of Object.entries(props.field.extraParams)) {\n params.set(k, v)\n }\n }\n const res = await fetch(`${props.field.apiUrl}?${params}`)\n if (!res.ok) return\n\n const data = await res.json()\n const items = Array.isArray(data) ? data : data.results || data.features || []\n const labelField = props.field.labelField || 'label'\n const valueField = props.field.valueField || 'value'\n\n setSuggestions(items.slice(0, 10).map((item: any) => ({\n label: item[labelField] || String(item),\n value: String(item[valueField] || item[labelField] || item),\n })))\n setIsOpen(true)\n } catch {\n setSuggestions([])\n }\n }\n\n const handleInput = (value: string) => {\n setQuery(value)\n if (!isMultiple()) {\n props.onChange('')\n }\n\n if (debounceTimer) clearTimeout(debounceTimer)\n if (value.length < minChars()) {\n setSuggestions([])\n setIsOpen(false)\n return\n }\n debounceTimer = setTimeout(() => fetchSuggestions(value), debounceMs())\n }\n\n const selectSuggestion = (item: { label: string; value: string }) => {\n if (isMultiple()) {\n const current = selectedValues()\n if (!current.includes(item.value)) {\n props.onChange([...current, item.value])\n setSelectedLabels((prev) => new Map(prev).set(item.value, item.label))\n }\n setQuery('')\n setSuggestions([])\n setIsOpen(false)\n } else {\n props.onChange(item.value)\n setSelectedLabels((prev) => new Map(prev).set(item.value, item.label))\n setQuery(item.label)\n setIsOpen(false)\n setSuggestions([])\n }\n }\n\n const removeChip = (val: string) => {\n props.onChange(selectedValues().filter((v) => v !== val))\n setSelectedLabels((prev) => { const m = new Map(prev); m.delete(val); return m })\n }\n\n const getLabel = (val: string) => selectedLabels().get(val) || val\n\n onCleanup(() => { if (debounceTimer) clearTimeout(debounceTimer) })\n\n return (\n <div class=\"relative\">\n {/* Multi chips */}\n <Show when={isMultiple() && selectedValues().length > 0}>\n <div class=\"flex flex-wrap gap-1 mb-1\">\n <For each={selectedValues()}>\n {(val) => (\n <span class=\"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded-full\">\n {getLabel(val)}\n <button\n type=\"button\"\n onClick={() => removeChip(val)}\n class=\"hover:text-blue-900 dark:hover:text-blue-100\"\n aria-label={`Remove ${getLabel(val)}`}\n >\n ×\n </button>\n </span>\n )}\n </For>\n </div>\n </Show>\n\n <input\n type=\"text\"\n value={query()}\n onInput={(e) => handleInput(e.currentTarget.value)}\n onFocus={() => { if (suggestions().length) setIsOpen(true) }}\n onBlur={() => setTimeout(() => setIsOpen(false), 200)}\n placeholder={isMultiple() && selectedValues().length\n ? 'Add more...'\n : props.field.placeholder}\n disabled={props.disabled}\n class={props.baseClass}\n autocomplete=\"off\"\n />\n\n <Show when={isOpen() && suggestions().length > 0}>\n <div class=\"absolute z-20 mt-1 w-full bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-md shadow-lg max-h-72 overflow-y-auto\">\n <For each={suggestions()}>\n {(item) => {\n const isSelected = () => isMultiple() && selectedValues().includes(item.value)\n return (\n <button\n type=\"button\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => selectSuggestion(item)}\n class={`w-full text-left px-3 py-2 text-sm hover:bg-blue-50 dark:hover:bg-blue-900/20 ${\n isSelected() ? 'text-blue-600 dark:text-blue-400 bg-blue-50/50 dark:bg-blue-900/10' : 'text-gray-900 dark:text-white'\n }`}\n disabled={isSelected()}\n >\n {item.label}\n <Show when={isSelected()}>\n <span class=\"ml-2 text-xs\">✓</span>\n </Show>\n </button>\n )\n }}\n </For>\n </div>\n </Show>\n </div>\n )\n}\n"],"names":["FormFieldRenderer","props","isVisible","useConditionalField","condition","field","showWhen","formData","status","fieldStatus","isUnsupported","baseInputClass","error","fieldId","name","errorId","_$createComponent","Show","when","children","_el$","_$getNextElement","_tmpl$16","_el$39","firstChild","_el$40","_co$0","_$getNextMarker","nextSibling","_el$41","_el$42","_co$1","_el$43","_el$44","_co$10","_el$45","_el$46","_co$11","_el$47","_el$48","_co$12","_$insert","_$memo","label","type","_el$2","_tmpl$4","_el$6","_el$7","_co$","_el$8","_el$9","_co$2","_el$0","_el$1","_co$3","_el$10","_el$11","_co$4","required","_tmpl$","_tmpl$2","_tmpl$3","_$effect","_p$","_v$","_v$2","e","_$setAttribute","t","_$className","undefined","Switch","Match","_el$12","_tmpl$5","$$input","onChange","currentTarget","value","_v$3","_v$4","_v$5","_v$6","placeholder","_v$7","disabled","_v$8","_v$9","minLength","_v$0","maxLength","_v$1","pattern","_v$10","_v$11","_v$12","a","o","i","_$setProperty","n","s","h","r","d","l","u","_$runHydrationEvents","_el$13","_tmpl$6","Number","_v$13","_v$14","_v$15","_v$16","_v$17","_v$18","min","_v$19","max","_v$20","step","_v$21","_v$22","_v$23","_el$14","_tmpl$7","_v$24","_v$25","_v$26","_v$27","_v$28","minDate","_v$29","maxDate","_v$30","_v$31","_v$32","_el$15","_tmpl$8","_v$33","_v$34","_v$35","_v$36","_v$37","_v$38","rows","_v$39","_v$40","_v$41","_v$42","_v$43","multiple","_el$16","_tmpl$0","_el$18","_el$19","_co$5","_el$20","_el$21","_co$6","addEventListener","_el$17","_tmpl$9","For","each","options","option","_el$49","_tmpl$17","_v$44","_v$45","_v$46","_v$47","_v$48","_v$49","_v$50","_el$22","_tmpl$1","_el$23","_el$24","_el$26","_el$27","_co$7","_el$28","_el$29","_co$8","checked","checkboxLabel","_v$51","_v$52","_v$53","_v$54","_v$55","MultiSelectField","baseClass","AutocompleteField","_el$30","_tmpl$10","index","_el$50","_tmpl$18","_el$51","_el$52","_v$64","_v$65","_v$66","_v$56","_v$57","_v$58","_el$31","_tmpl$11","_v$59","_v$60","_v$61","_v$62","_v$63","_el$32","_tmpl$12","_el$33","_el$34","_el$35","_co$9","statusReason","_el$36","_tmpl$13","helpText","_el$37","_tmpl$14","_el$38","_tmpl$15","open","setOpen","createSignal","filter","setFilter","toggle","val","current","includes","v","removeChip","getLabel","find","filteredOptions","q","toLowerCase","_el$53","_tmpl$23","_el$68","_el$69","_co$16","_el$55","_el$56","_el$70","_el$71","_co$17","length","_el$54","_tmpl$19","_el$72","_tmpl$24","_el$74","_el$75","_co$18","_el$73","$$click","_c$","_el$57","_tmpl$22","_el$66","_el$67","_co$15","_el$60","_el$62","_el$63","_co$13","_el$64","_el$65","_co$14","_el$58","_tmpl$20","_el$59","_el$76","_tmpl$25","_el$77","_el$78","_tmpl$21","_v$67","_v$68","_v$69","query","setQuery","suggestions","setSuggestions","isOpen","setIsOpen","selectedLabels","setSelectedLabels","Map","debounceTimer","isMultiple","selectedValues","Array","isArray","minChars","debounceMs","fetchSuggestions","apiUrl","searchParam","params","URLSearchParams","extraParams","k","Object","entries","set","res","fetch","ok","data","json","items","results","features","labelField","valueField","slice","map","item","String","handleInput","setTimeout","selectSuggestion","prev","m","delete","get","onCleanup","_el$79","_tmpl$27","_el$83","_el$84","_co$19","_el$81","_el$85","_el$86","_co$20","_el$80","_el$87","_el$89","_el$90","_co$21","_el$88","_el$82","_tmpl$26","isSelected","_el$91","_tmpl$29","_el$93","_el$94","_co$22","_el$95","_el$96","_co$23","$$mousedown","preventDefault","_tmpl$28","_v$73","_v$74","_v$70","_v$71","_v$72","_$delegateEvents"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ const solidJs = require("solid-js");
|
|
|
5
5
|
const FormFieldRenderer = require("./FormFieldRenderer.cjs");
|
|
6
6
|
var _tmpl$ = /* @__PURE__ */ web.template(`<svg fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M19 9l-7 7-7-7">`), _tmpl$2 = /* @__PURE__ */ web.template(`<button 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><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">`), _tmpl$3 = /* @__PURE__ */ web.template(`<div class="px-4 py-2 border-b border-gray-100 dark:border-gray-700 flex flex-wrap items-center gap-1.5">`), _tmpl$4 = /* @__PURE__ */ web.template(`<div class="px-4 py-3 border-t border-gray-100 dark:border-gray-700 space-y-2">`), _tmpl$5 = /* @__PURE__ */ web.template(`<div class="flex flex-col items-center gap-2 py-4 text-center"><span class=text-2xl>🔍</span><p class="text-sm text-gray-500 dark:text-gray-400">No results for these filters</p><button type=button 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`), _tmpl$6 = /* @__PURE__ */ web.template(`<div class="px-4 py-3 border-t border-gray-100 dark:border-gray-700">`), _tmpl$7 = /* @__PURE__ */ web.template(`<p class="text-xs text-red-500 dark:text-red-500 mt-0.5">Code: <!$><!/>`), _tmpl$8 = /* @__PURE__ */ web.template(`<button type=button 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">🔄 Retry`), _tmpl$9 = /* @__PURE__ */ web.template(`<button type=button 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">Close`), _tmpl$0 = /* @__PURE__ */ web.template(`<div class="px-4 py-3 border-t border-red-100 dark:border-red-900/30 bg-red-50 dark:bg-red-900/10"><div class="flex items-start gap-2 text-sm text-red-700 dark:text-red-400"><span class="flex-shrink-0 mt-0.5">⚠️</span><div class=flex-1><p class=font-medium></p><!$><!/></div></div><div class="flex gap-2 mt-2"><!$><!/><!$><!/>`), _tmpl$1 = /* @__PURE__ */ web.template(`<div class="px-4 py-3 border-t border-gray-100 dark:border-gray-700"><button type=button 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"><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"></path></svg>Search`), _tmpl$10 = /* @__PURE__ */ web.template(`<div style=overflow-y:auto><!$><!/><div class="divide-y divide-gray-100 dark:divide-gray-700"></div><!$><!/><!$><!/><!$><!/><!$><!/>`), _tmpl$11 = /* @__PURE__ */ web.template(`<div style="animation:scratchpad-slide-down 0.2s ease-out"><div><div class="flex items-center gap-2"><span class=text-base>📝</span><h3 class="text-sm font-semibold text-gray-900 dark:text-white"></h3><!$><!/></div><div class="flex items-center gap-2"><span></span><!$><!/></div></div><!$><!/><style>
|
|
7
7
|
@keyframes scratchpad-slide-down { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
|
|
8
|
-
`), _tmpl$12 = /* @__PURE__ */ web.template(`<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">`), _tmpl$13 = /* @__PURE__ */ web.template(`<span class="ml-1 font-normal opacity-75">— <!$><!/>`), _tmpl$14 = /* @__PURE__ */ web.template(`<span><!$><!/> <!$><!/><!$><!/>`), _tmpl$15 = /* @__PURE__ */ web.template(`<div><span class="flex-shrink-0 mt-0.5"></span><p>`), _tmpl$16 = /* @__PURE__ */ web.template(`<div class="flex items-center gap-2 mb-2"><span class="text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide">Preview</span><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">`), _tmpl$17 = /* @__PURE__ */ web.template(`<p class="text-sm text-gray-700 dark:text-gray-300">`), _tmpl$18 = /* @__PURE__ */ web.template(`<div class="mt-2 overflow-x-auto"><table class="min-w-full text-xs"><thead><tr></tr></thead><tbody>`), _tmpl$19 = /* @__PURE__ */ web.template(`<th class="px-2 py-1 text-left font-medium text-gray-500 dark:text-gray-400">`), _tmpl$20 = /* @__PURE__ */ web.template(`<tr class="border-t border-gray-100 dark:border-gray-700">`), _tmpl$21 = /* @__PURE__ */ web.template(`<td class="px-2 py-1 text-gray-700 dark:text-gray-300">`), _tmpl$22 = /* @__PURE__ */ web.template(`<pre class="text-xs text-gray-500 overflow-auto">`), _tmpl$23 = /* @__PURE__ */ web.template(`<div class="px-4 py-3"><h4 class="text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide mb-2"></h4><!$><!/>`), _tmpl$24 = /* @__PURE__ */ web.template(`<div class=space-y-1>`), _tmpl$25 = /* @__PURE__ */ web.template(`<div class="flex gap-2 text-xs"><span class="text-gray-500 dark:text-gray-400 font-mono min-w-[120px]"><!$><!/>:</span><span class="text-gray-900 dark:text-white">`), _tmpl$26 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-400 italic">No filters`), _tmpl$27 = /* @__PURE__ */ web.template(`<div class="flex flex-wrap gap-1.5"><!$><!/><!$><!/>`), _tmpl$28 = /* @__PURE__ */ web.template(`<button type=button class="ml-0.5 hover:text-blue-900 dark:hover:text-blue-100">×`), _tmpl$29 = /* @__PURE__ */ web.template(`<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"><button type=button class=hover:underline><span class="text-blue-500 dark:text-blue-400"><!$><!/>:</span> <!$><!/></button><!$><!/>`), _tmpl$30 = /* @__PURE__ */ web.template(`<div class="max-h-48 overflow-y-auto">`), _tmpl$31 = /* @__PURE__ */ web.template(`<button type=button class="mt-1 w-full px-2 py-1 text-xs text-gray-500 hover:text-gray-700 text-center">Cancel`), _tmpl$32 = /* @__PURE__ */ web.template(`<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]">`), _tmpl$33 = /* @__PURE__ */ web.template(`<div class=relative><!$><!/><!$><!/>`), _tmpl$34 = /* @__PURE__ */ web.template(`<button type=button 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">+ <!$><!/>`), _tmpl$35 = /* @__PURE__ */ web.template(`<form class="flex gap-1"><input type=text autofocus 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"><button type=submit class="px-2 py-1 text-xs bg-blue-600 text-white rounded hover:bg-blue-700">OK</button><button type=button class="px-2 py-1 text-xs text-gray-500 hover:text-gray-700">Cancel`), _tmpl$36 = /* @__PURE__ */ web.template(`<span class=ml-1>✓`), _tmpl$37 = /* @__PURE__ */ web.template(`<button type=button><!$><!/><!$><!/>`), _tmpl$38 = /* @__PURE__ */ web.template(`<form class="flex flex-col gap-3"><!$><!/><div class="flex justify-end"><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">`), _tmpl$39 = /* @__PURE__ */ web.template(`<div class="flex justify-end"><button type=button 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">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">`), _tmpl$40 = /* @__PURE__ */ web.template(`<div class=space-y-3><!$><!/><!$><!/>`), _tmpl$41 = /* @__PURE__ */ web.template(`<span class="text-xs font-normal text-gray-500 dark:text-gray-400">— <!$><!/>`), _tmpl$42 = /* @__PURE__ */ web.template(`<div class="mt-2 ml-6">`), _tmpl$43 = /* @__PURE__ */ web.template(`<div><div><span></span><!$><!/><!$><!/></div><!$><!/>`), _tmpl$44 = /* @__PURE__ */ web.template(`<div class="flex flex-wrap gap-2">`), _tmpl$45 = /* @__PURE__ */ web.template(`<span class=mr-1>`), _tmpl$46 = /* @__PURE__ */ web.template(`<div class=space-y-2><div class=space-y-1.5></div><!$><!/>`), _tmpl$47 = /* @__PURE__ */ web.template(`<div class="flex items-center gap-2 text-sm"><span></span><span class="text-gray-900 dark:text-white">`), _tmpl$48 = /* @__PURE__ */ web.template(`<div class="flex items-start gap-1.5 text-xs text-amber-600 dark:text-amber-400"><span class=flex-shrink-0>⚠️</span><span>`), _tmpl$49 = /* @__PURE__ */ web.template(`<div class="flex gap-1"><input type=text 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"><button type=button class="px-3 py-2 text-sm bg-blue-600 text-white rounded-lg hover:bg-blue-700">Send`), _tmpl$50 = /* @__PURE__ */ web.template(`<div class=space-y-3><p class="text-sm text-gray-700 dark:text-gray-300"></p><div class="flex flex-wrap gap-2"></div><!$><!/>`), _tmpl$51 = /* @__PURE__ */ web.template(`<span>`), _tmpl$52 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-500 dark:text-gray-400 italic">"<!$><!/>"`), _tmpl$53 = /* @__PURE__ */ web.template(`<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"><span class=font-medium>Plan:</span> <!$><!/>`), _tmpl$54 = /* @__PURE__ */ web.template(`<button type=button class="text-xs text-blue-600 dark:text-blue-400 hover:underline flex items-center gap-1">✎ Modify`), _tmpl$55 = /* @__PURE__ */ web.template(`<div class=space-y-2><!$><!/><div class=space-y-1></div><!$><!/><!$><!/>`), _tmpl$56 = /* @__PURE__ */ web.template(`<div class="flex gap-2 text-sm"><span class="text-gray-500 dark:text-gray-400 font-medium min-w-[80px]"><!$><!/>:</span><span class="text-gray-900 dark:text-white">`);
|
|
8
|
+
`), _tmpl$12 = /* @__PURE__ */ web.template(`<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">`), _tmpl$13 = /* @__PURE__ */ web.template(`<span class="ml-1 font-normal opacity-75">— <!$><!/>`), _tmpl$14 = /* @__PURE__ */ web.template(`<span><!$><!/> <!$><!/><!$><!/>`), _tmpl$15 = /* @__PURE__ */ web.template(`<div><span class="flex-shrink-0 mt-0.5"></span><p>`), _tmpl$16 = /* @__PURE__ */ web.template(`<div class="flex items-center gap-2 mb-2"><span class="text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide">Preview</span><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">`), _tmpl$17 = /* @__PURE__ */ web.template(`<p class="text-sm text-gray-700 dark:text-gray-300">`), _tmpl$18 = /* @__PURE__ */ web.template(`<div class="mt-2 overflow-x-auto"><table class="min-w-full text-xs"><thead><tr></tr></thead><tbody>`), _tmpl$19 = /* @__PURE__ */ web.template(`<th class="px-2 py-1 text-left font-medium text-gray-500 dark:text-gray-400">`), _tmpl$20 = /* @__PURE__ */ web.template(`<tr class="border-t border-gray-100 dark:border-gray-700">`), _tmpl$21 = /* @__PURE__ */ web.template(`<td class="px-2 py-1 text-gray-700 dark:text-gray-300">`), _tmpl$22 = /* @__PURE__ */ web.template(`<pre class="text-xs text-gray-500 overflow-auto">`), _tmpl$23 = /* @__PURE__ */ web.template(`<div class="px-4 py-3"><h4 class="text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide mb-2"></h4><!$><!/>`), _tmpl$24 = /* @__PURE__ */ web.template(`<div class=space-y-1>`), _tmpl$25 = /* @__PURE__ */ web.template(`<div class="flex gap-2 text-xs"><span class="text-gray-500 dark:text-gray-400 font-mono min-w-[120px]"><!$><!/>:</span><span class="text-gray-900 dark:text-white">`), _tmpl$26 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-400 italic">No filters`), _tmpl$27 = /* @__PURE__ */ web.template(`<div class="flex flex-wrap gap-1.5"><!$><!/><!$><!/>`), _tmpl$28 = /* @__PURE__ */ web.template(`<button type=button class="ml-0.5 hover:text-blue-900 dark:hover:text-blue-100">×`), _tmpl$29 = /* @__PURE__ */ web.template(`<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"><button type=button class=hover:underline><span class="text-blue-500 dark:text-blue-400"><!$><!/>:</span> <!$><!/></button><!$><!/>`), _tmpl$30 = /* @__PURE__ */ web.template(`<div class="max-h-48 overflow-y-auto">`), _tmpl$31 = /* @__PURE__ */ web.template(`<button type=button class="mt-1 w-full px-2 py-1 text-xs text-gray-500 hover:text-gray-700 text-center">Cancel`), _tmpl$32 = /* @__PURE__ */ web.template(`<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]">`), _tmpl$33 = /* @__PURE__ */ web.template(`<div class=relative><!$><!/><!$><!/>`), _tmpl$34 = /* @__PURE__ */ web.template(`<button type=button 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">+ <!$><!/>`), _tmpl$35 = /* @__PURE__ */ web.template(`<form class="flex gap-1"><input type=text autofocus 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"><button type=submit class="px-2 py-1 text-xs bg-blue-600 text-white rounded hover:bg-blue-700">OK</button><button type=button class="px-2 py-1 text-xs text-gray-500 hover:text-gray-700">Cancel`), _tmpl$36 = /* @__PURE__ */ web.template(`<span class=ml-1>✓`), _tmpl$37 = /* @__PURE__ */ web.template(`<button type=button><!$><!/><!$><!/>`), _tmpl$38 = /* @__PURE__ */ web.template(`<form class="flex flex-col gap-3"><!$><!/><div class="flex justify-end"><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">`), _tmpl$39 = /* @__PURE__ */ web.template(`<div class="flex justify-end"><button type=button 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">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">`), _tmpl$40 = /* @__PURE__ */ web.template(`<div class=space-y-3><!$><!/><!$><!/>`), _tmpl$41 = /* @__PURE__ */ web.template(`<span class="text-xs font-normal text-gray-500 dark:text-gray-400">— <!$><!/>`), _tmpl$42 = /* @__PURE__ */ web.template(`<div class="mt-2 ml-6">`), _tmpl$43 = /* @__PURE__ */ web.template(`<div><div><span></span><!$><!/><!$><!/></div><!$><!/>`), _tmpl$44 = /* @__PURE__ */ web.template(`<div class="flex flex-wrap gap-2">`), _tmpl$45 = /* @__PURE__ */ web.template(`<span class=mr-1>`), _tmpl$46 = /* @__PURE__ */ web.template(`<div class=space-y-2><div class=space-y-1.5></div><!$><!/>`), _tmpl$47 = /* @__PURE__ */ web.template(`<div class="flex items-center gap-2 text-sm"><span></span><span class="text-gray-900 dark:text-white">`), _tmpl$48 = /* @__PURE__ */ web.template(`<div class="flex items-start gap-1.5 text-xs text-amber-600 dark:text-amber-400"><span class=flex-shrink-0>⚠️</span><span>`), _tmpl$49 = /* @__PURE__ */ web.template(`<div class="flex gap-1"><input type=text 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"><button type=button class="px-3 py-2 text-sm bg-blue-600 text-white rounded-lg hover:bg-blue-700">Send`), _tmpl$50 = /* @__PURE__ */ web.template(`<div class=space-y-3><p class="text-sm text-gray-700 dark:text-gray-300"></p><div class="flex flex-wrap gap-2"></div><!$><!/>`), _tmpl$51 = /* @__PURE__ */ web.template(`<span>`), _tmpl$52 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-500 dark:text-gray-400 italic">"<!$><!/>"`), _tmpl$53 = /* @__PURE__ */ web.template(`<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"><span class=font-medium>Plan:</span> <!$><!/>`), _tmpl$54 = /* @__PURE__ */ web.template(`<button type=button class="text-xs text-blue-600 dark:text-blue-400 hover:underline flex items-center gap-1">✎ Modify`), _tmpl$55 = /* @__PURE__ */ web.template(`<div class=space-y-2><!$><!/><div class=space-y-1></div><!$><!/><!$><!/>`), _tmpl$56 = /* @__PURE__ */ web.template(`<div class="flex gap-2 text-sm"><span class="text-gray-500 dark:text-gray-400 font-medium min-w-[80px]"><!$><!/>:</span><span class="text-gray-900 dark:text-white">`), _tmpl$57 = /* @__PURE__ */ web.template(`<div class="flex items-center gap-1 flex-wrap">`), _tmpl$58 = /* @__PURE__ */ web.template(`<div class=space-y-2>`), _tmpl$59 = /* @__PURE__ */ web.template(`<span class="ml-1 text-xs text-gray-500 dark:text-gray-400">— <!$><!/>`), _tmpl$60 = /* @__PURE__ */ web.template(`<span class="ml-1 text-xs text-gray-400">(<!$><!/>ms)`), _tmpl$61 = /* @__PURE__ */ web.template(`<div><span class=flex-shrink-0></span><div><span></span><!$><!/><!$><!/>`), _tmpl$62 = /* @__PURE__ */ web.template(`<span class="text-[10px] opacity-75">`), _tmpl$63 = /* @__PURE__ */ web.template(`<div><span></span><span></span><!$><!/>`);
|
|
9
9
|
const STATUS_BADGES = {
|
|
10
10
|
loading: {
|
|
11
11
|
label: "Loading...",
|
|
@@ -13,7 +13,7 @@ const STATUS_BADGES = {
|
|
|
13
13
|
},
|
|
14
14
|
ready: {
|
|
15
15
|
label: "Ready",
|
|
16
|
-
class: "bg-
|
|
16
|
+
class: "bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400"
|
|
17
17
|
},
|
|
18
18
|
waiting_human: {
|
|
19
19
|
label: "Your turn",
|
|
@@ -41,6 +41,14 @@ const ScratchpadPanel = (props) => {
|
|
|
41
41
|
const isCollapsible = () => props.collapsible !== false;
|
|
42
42
|
const preview = () => localPreview() || props.state.preview;
|
|
43
43
|
const hasFilters = () => Object.keys(props.state.filters || {}).length > 0;
|
|
44
|
+
const CLOSE_ALIASES = /* @__PURE__ */ new Set(["done", "close", "dismiss", "validate", "cancel", "sufficient"]);
|
|
45
|
+
const handleAction = (action, data) => {
|
|
46
|
+
var _a;
|
|
47
|
+
(_a = props.onAction) == null ? void 0 : _a.call(props, action, data);
|
|
48
|
+
if (CLOSE_ALIASES.has(action) && props.onClose) {
|
|
49
|
+
props.onClose();
|
|
50
|
+
}
|
|
51
|
+
};
|
|
44
52
|
solidJs.createEffect(() => {
|
|
45
53
|
if (props.state.status === "complete" && props.autoCloseDelay) {
|
|
46
54
|
const timer = setTimeout(() => {
|
|
@@ -167,9 +175,7 @@ const ScratchpadPanel = (props) => {
|
|
|
167
175
|
get onFilterChange() {
|
|
168
176
|
return props.onFilterChange;
|
|
169
177
|
},
|
|
170
|
-
|
|
171
|
-
return props.onAction;
|
|
172
|
-
},
|
|
178
|
+
onAction: handleAction,
|
|
173
179
|
get onSectionEdit() {
|
|
174
180
|
return props.onSectionEdit;
|
|
175
181
|
},
|
|
@@ -327,12 +333,9 @@ const ScratchpadPanel = (props) => {
|
|
|
327
333
|
},
|
|
328
334
|
get children() {
|
|
329
335
|
var _el$39 = web.getNextElement(_tmpl$1), _el$40 = _el$39.firstChild;
|
|
330
|
-
_el$40.$$click = () => {
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
filters: props.state.filters
|
|
334
|
-
});
|
|
335
|
-
};
|
|
336
|
+
_el$40.$$click = () => handleAction("search", {
|
|
337
|
+
filters: props.state.filters
|
|
338
|
+
});
|
|
336
339
|
web.runHydrationEvents();
|
|
337
340
|
return _el$39;
|
|
338
341
|
}
|
|
@@ -489,6 +492,17 @@ const SectionRenderer = (props) => {
|
|
|
489
492
|
}
|
|
490
493
|
});
|
|
491
494
|
}
|
|
495
|
+
}), web.createComponent(solidJs.Match, {
|
|
496
|
+
get when() {
|
|
497
|
+
return props.section.type === "stepper";
|
|
498
|
+
},
|
|
499
|
+
get children() {
|
|
500
|
+
return web.createComponent(StepperProgressSection, {
|
|
501
|
+
get content() {
|
|
502
|
+
return props.section.content;
|
|
503
|
+
}
|
|
504
|
+
});
|
|
505
|
+
}
|
|
492
506
|
}), web.createComponent(solidJs.Match, {
|
|
493
507
|
when: true,
|
|
494
508
|
get children() {
|
|
@@ -747,12 +761,16 @@ const EmbeddedFormSection = (props) => {
|
|
|
747
761
|
const handleSubmit = (e) => {
|
|
748
762
|
var _a;
|
|
749
763
|
e.preventDefault();
|
|
764
|
+
const values = Object.fromEntries(Object.entries(formData()).filter(([key]) => {
|
|
765
|
+
const field = config().fields.find((f) => f.name === key);
|
|
766
|
+
return (field == null ? void 0 : field.fieldStatus) !== "unsupported";
|
|
767
|
+
}).filter(([, v]) => v !== void 0 && v !== "" && !(Array.isArray(v) && v.length === 0)));
|
|
750
768
|
if (props.onSubmit) {
|
|
751
|
-
props.onSubmit(props.sectionId,
|
|
769
|
+
props.onSubmit(props.sectionId, values);
|
|
752
770
|
} else {
|
|
753
771
|
(_a = props.onAction) == null ? void 0 : _a.call(props, "submit_form", {
|
|
754
772
|
sectionId: props.sectionId,
|
|
755
|
-
values
|
|
773
|
+
values
|
|
756
774
|
});
|
|
757
775
|
}
|
|
758
776
|
};
|
|
@@ -1105,6 +1123,105 @@ const PromptSection = (props) => {
|
|
|
1105
1123
|
return _el$193;
|
|
1106
1124
|
})();
|
|
1107
1125
|
};
|
|
1126
|
+
const StepperProgressSection = (props) => {
|
|
1127
|
+
const data = () => {
|
|
1128
|
+
const c = props.content;
|
|
1129
|
+
return {
|
|
1130
|
+
steps: (c == null ? void 0 : c.steps) || [],
|
|
1131
|
+
orientation: (c == null ? void 0 : c.orientation) || "horizontal"
|
|
1132
|
+
};
|
|
1133
|
+
};
|
|
1134
|
+
const statusIcon = (status) => {
|
|
1135
|
+
switch (status) {
|
|
1136
|
+
case "done":
|
|
1137
|
+
return "✅";
|
|
1138
|
+
case "active":
|
|
1139
|
+
return "🔄";
|
|
1140
|
+
case "error":
|
|
1141
|
+
return "❌";
|
|
1142
|
+
default:
|
|
1143
|
+
return "⏳";
|
|
1144
|
+
}
|
|
1145
|
+
};
|
|
1146
|
+
const isHorizontal = () => data().orientation === "horizontal";
|
|
1147
|
+
return web.createComponent(solidJs.Show, {
|
|
1148
|
+
get when() {
|
|
1149
|
+
return isHorizontal();
|
|
1150
|
+
},
|
|
1151
|
+
get fallback() {
|
|
1152
|
+
return (() => {
|
|
1153
|
+
var _el$219 = web.getNextElement(_tmpl$58);
|
|
1154
|
+
web.insert(_el$219, web.createComponent(solidJs.For, {
|
|
1155
|
+
get each() {
|
|
1156
|
+
return data().steps;
|
|
1157
|
+
},
|
|
1158
|
+
children: (step) => (() => {
|
|
1159
|
+
var _el$220 = web.getNextElement(_tmpl$61), _el$221 = _el$220.firstChild, _el$222 = _el$221.nextSibling, _el$223 = _el$222.firstChild, _el$233 = _el$223.nextSibling, [_el$234, _co$48] = web.getNextMarker(_el$233.nextSibling), _el$235 = _el$234.nextSibling, [_el$236, _co$49] = web.getNextMarker(_el$235.nextSibling);
|
|
1160
|
+
web.insert(_el$221, () => statusIcon(step.status));
|
|
1161
|
+
web.insert(_el$223, () => step.label);
|
|
1162
|
+
web.insert(_el$222, web.createComponent(solidJs.Show, {
|
|
1163
|
+
get when() {
|
|
1164
|
+
return step.summary;
|
|
1165
|
+
},
|
|
1166
|
+
get children() {
|
|
1167
|
+
var _el$224 = web.getNextElement(_tmpl$59), _el$225 = _el$224.firstChild, _el$226 = _el$225.nextSibling, [_el$227, _co$46] = web.getNextMarker(_el$226.nextSibling);
|
|
1168
|
+
web.insert(_el$224, () => step.summary, _el$227, _co$46);
|
|
1169
|
+
return _el$224;
|
|
1170
|
+
}
|
|
1171
|
+
}), _el$234, _co$48);
|
|
1172
|
+
web.insert(_el$222, web.createComponent(solidJs.Show, {
|
|
1173
|
+
get when() {
|
|
1174
|
+
return step.duration_ms;
|
|
1175
|
+
},
|
|
1176
|
+
get children() {
|
|
1177
|
+
var _el$228 = web.getNextElement(_tmpl$60), _el$229 = _el$228.firstChild, _el$231 = _el$229.nextSibling, [_el$232, _co$47] = web.getNextMarker(_el$231.nextSibling);
|
|
1178
|
+
_el$232.nextSibling;
|
|
1179
|
+
web.insert(_el$228, () => step.duration_ms, _el$232, _co$47);
|
|
1180
|
+
return _el$228;
|
|
1181
|
+
}
|
|
1182
|
+
}), _el$236, _co$49);
|
|
1183
|
+
web.effect(() => web.className(_el$220, `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"}`));
|
|
1184
|
+
return _el$220;
|
|
1185
|
+
})()
|
|
1186
|
+
}));
|
|
1187
|
+
return _el$219;
|
|
1188
|
+
})();
|
|
1189
|
+
},
|
|
1190
|
+
get children() {
|
|
1191
|
+
var _el$218 = web.getNextElement(_tmpl$57);
|
|
1192
|
+
web.insert(_el$218, web.createComponent(solidJs.For, {
|
|
1193
|
+
get each() {
|
|
1194
|
+
return data().steps;
|
|
1195
|
+
},
|
|
1196
|
+
children: (step, i) => [web.createComponent(solidJs.Show, {
|
|
1197
|
+
get when() {
|
|
1198
|
+
return i() > 0;
|
|
1199
|
+
},
|
|
1200
|
+
get children() {
|
|
1201
|
+
return web.getNextElement(_tmpl$12);
|
|
1202
|
+
}
|
|
1203
|
+
}), (() => {
|
|
1204
|
+
var _el$238 = web.getNextElement(_tmpl$63), _el$239 = _el$238.firstChild, _el$240 = _el$239.nextSibling, _el$242 = _el$240.nextSibling, [_el$243, _co$50] = web.getNextMarker(_el$242.nextSibling);
|
|
1205
|
+
web.insert(_el$239, () => statusIcon(step.status));
|
|
1206
|
+
web.insert(_el$240, () => step.label);
|
|
1207
|
+
web.insert(_el$238, web.createComponent(solidJs.Show, {
|
|
1208
|
+
get when() {
|
|
1209
|
+
return step.summary;
|
|
1210
|
+
},
|
|
1211
|
+
get children() {
|
|
1212
|
+
var _el$241 = web.getNextElement(_tmpl$62);
|
|
1213
|
+
web.insert(_el$241, () => step.summary);
|
|
1214
|
+
return _el$241;
|
|
1215
|
+
}
|
|
1216
|
+
}), _el$243, _co$50);
|
|
1217
|
+
web.effect(() => web.className(_el$238, `flex items-center gap-1 px-2 py-1 rounded text-xs ${step.status === "done" ? "bg-green-50 dark:bg-green-900/20 text-green-700 dark:text-green-400" : step.status === "active" ? "bg-blue-50 dark:bg-blue-900/20 text-blue-700 dark:text-blue-400 font-medium" : step.status === "error" ? "bg-red-50 dark:bg-red-900/20 text-red-700 dark:text-red-400" : "text-gray-400"}`));
|
|
1218
|
+
return _el$238;
|
|
1219
|
+
})()]
|
|
1220
|
+
}));
|
|
1221
|
+
return _el$218;
|
|
1222
|
+
}
|
|
1223
|
+
});
|
|
1224
|
+
};
|
|
1108
1225
|
web.delegateEvents(["click", "input"]);
|
|
1109
1226
|
exports.ScratchpadPanel = ScratchpadPanel;
|
|
1110
1227
|
//# sourceMappingURL=ScratchpadPanel.cjs.map
|