@seed-ship/mcp-ui-solid 4.1.0 → 4.2.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.
@@ -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 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 {/* Range/Slider */}\n <Match when={props.field.type === 'range'}>\n <div class=\"flex items-center gap-3\">\n <input\n id={fieldId()}\n type=\"range\"\n name={props.field.name}\n value={props.value ?? props.field.min ?? 0}\n onInput={(e) => props.onChange(Number(e.currentTarget.value))}\n min={props.field.min}\n max={props.field.max}\n step={props.field.step || 1}\n disabled={isFieldDisabled()}\n class=\"flex-1 h-2 bg-gray-200 dark:bg-gray-600 rounded-lg appearance-none cursor-pointer accent-blue-600\"\n />\n <span class=\"text-sm font-mono text-gray-700 dark:text-gray-300 min-w-[3rem] text-right\">{props.value ?? props.field.min ?? 0}</span>\n </div>\n </Match>\n\n {/* Tags/Chips Input */}\n <Match when={props.field.type === 'tags'}>\n <TagsField value={props.value || []} onChange={props.onChange} placeholder={props.field.placeholder} disabled={isFieldDisabled()} baseClass={baseInputClass()} />\n </Match>\n\n {/* Toggle */}\n <Match when={props.field.type === 'toggle'}>\n <label class=\"flex items-center gap-2 cursor-pointer\">\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={!!props.value}\n onClick={() => props.onChange(!props.value)}\n disabled={isFieldDisabled()}\n class={`relative inline-flex h-5 w-9 items-center rounded-full transition-colors ${props.value ? 'bg-blue-600' : 'bg-gray-300 dark:bg-gray-600'} ${isFieldDisabled() ? 'opacity-50 cursor-not-allowed' : ''}`}\n >\n <span class={`inline-block h-3.5 w-3.5 transform rounded-full bg-white transition-transform ${props.value ? 'translate-x-4' : 'translate-x-0.5'}`} />\n </button>\n <span class=\"text-sm text-gray-700 dark:text-gray-300\">{props.field.checkboxLabel || props.field.label}</span>\n </label>\n </Match>\n\n {/* Fieldset/Group */}\n <Match when={props.field.type === 'fieldset'}>\n <fieldset class=\"border border-gray-200 dark:border-gray-600 rounded-lg p-3\">\n <legend class=\"text-xs font-medium text-gray-500 dark:text-gray-400 px-1\">{props.field.label}</legend>\n <p class=\"text-xs text-gray-400\">{props.field.helpText || 'Group container'}</p>\n </fieldset>\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 &times;\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 // Only clear the stored value if user is actively changing the text\n // (not just focusing/blurring with the selected label intact)\n if (!isMultiple()) {\n // Check if the current query still matches the selected label\n const currentLabel = selectedLabels().get(String(props.value))\n if (currentLabel !== value) {\n props.onChange('')\n }\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 &times;\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\">&#10003;</span>\n </Show>\n </button>\n )\n }}\n </For>\n </div>\n </Show>\n </div>\n )\n}\n\n// ─── Tags/Chips Input ────────────────────────────────────────\n\nconst TagsField: Component<{\n value: string[]\n onChange: (value: string[]) => void\n placeholder?: string\n disabled?: boolean\n baseClass: string\n}> = (props) => {\n const [input, setInput] = createSignal('')\n\n const addTag = () => {\n const val = input().trim()\n if (val && !(props.value || []).includes(val)) {\n props.onChange([...(props.value || []), val])\n }\n setInput('')\n }\n\n const removeTag = (tag: string) => {\n props.onChange((props.value || []).filter(t => t !== tag))\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ',') {\n e.preventDefault()\n addTag()\n }\n if (e.key === 'Backspace' && !input() && (props.value || []).length > 0) {\n removeTag(props.value[props.value.length - 1])\n }\n }\n\n return (\n <div>\n <Show when={(props.value || []).length > 0}>\n <div class=\"flex flex-wrap gap-1 mb-1\">\n <For each={props.value || []}>\n {(tag) => (\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 {tag}\n <button type=\"button\" onClick={() => removeTag(tag)} class=\"hover:text-blue-900 dark:hover:text-blue-100\" aria-label={`Remove ${tag}`}>&times;</button>\n </span>\n )}\n </For>\n </div>\n </Show>\n <input\n type=\"text\"\n value={input()}\n onInput={(e) => setInput(e.currentTarget.value)}\n onKeyDown={handleKeyDown}\n onBlur={addTag}\n placeholder={props.placeholder || 'Type and press Enter...'}\n disabled={props.disabled}\n class={props.baseClass}\n />\n </div>\n )\n}\n"],"names":["FormFieldRenderer","props","isVisible","useConditionalField","condition","field","showWhen","formData","status","fieldStatus","isUnsupported","isFieldDisabled","disabled","baseInputClass","error","fieldId","name","errorId","_$createComponent","Show","when","children","_el$","_$getNextElement","_tmpl$19","_el$49","firstChild","_el$50","_co$0","_$getNextMarker","nextSibling","_el$51","_el$52","_co$1","_el$53","_el$54","_co$10","_el$55","_el$56","_co$11","_el$57","_el$58","_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","_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$59","_tmpl$20","_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$60","_tmpl$21","_el$61","_el$62","_v$74","_v$75","_v$76","_v$56","_v$57","_v$58","_el$31","_tmpl$11","_el$32","_el$33","_v$59","_v$60","_v$61","_v$62","_v$63","_v$64","TagsField","_el$34","_tmpl$12","_el$35","_el$36","_el$37","$$click","_v$65","_v$66","_v$67","_v$68","_el$38","_tmpl$13","_el$39","_el$40","helpText","_el$41","_tmpl$14","_v$69","_v$70","_v$71","_v$72","_v$73","_el$42","_tmpl$15","_el$43","_el$44","_el$45","_co$9","statusReason","_el$46","_tmpl$16","_el$47","_tmpl$17","_el$48","_tmpl$18","open","setOpen","createSignal","filter","setFilter","toggle","val","current","includes","v","removeChip","getLabel","find","filteredOptions","q","toLowerCase","_el$63","_tmpl$26","_el$78","_el$79","_co$16","_el$65","_el$66","_el$80","_el$81","_co$17","length","_el$64","_tmpl$22","_el$82","_tmpl$27","_el$84","_el$85","_co$18","_el$83","_c$","_el$67","_tmpl$25","_el$76","_el$77","_co$15","_el$70","_el$72","_el$73","_co$13","_el$74","_el$75","_co$14","_el$68","_tmpl$23","_el$69","_el$86","_tmpl$28","_el$87","_el$88","_tmpl$24","_v$77","_v$78","_v$79","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","currentLabel","get","setTimeout","selectSuggestion","prev","m","delete","onCleanup","_el$89","_tmpl$30","_el$93","_el$94","_co$19","_el$91","_el$95","_el$96","_co$20","_el$90","_el$97","_el$99","_el$100","_co$21","_el$98","_el$92","_tmpl$29","isSelected","_el$101","_tmpl$32","_el$103","_el$104","_co$22","_el$105","_el$106","_co$23","$$mousedown","preventDefault","_tmpl$31","_v$83","_v$84","_v$80","_v$81","_v$82","input","setInput","addTag","trim","removeTag","tag","handleKeyDown","key","_el$107","_tmpl$33","_el$110","_el$111","_co$24","_el$109","_el$108","_el$112","_el$114","_el$115","_co$25","_el$113","$$keydown","_v$85","_v$86","_v$87","_$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, PrefillSource } 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\n/** Badge config by prefill source */\nconst SOURCE_BADGES: Record<PrefillSource, { icon: string; title: string } | null> = {\n detected: { icon: '\\u2705', title: 'Detected from message' },\n inferred: { icon: '\\uD83D\\uDD17', title: 'Inferred from context' },\n user: { icon: '\\u270F\\uFE0F', title: 'Previously provided' },\n default: null,\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 // Muted state — starts muted if field says so, clears on focus/click\n const [isMuted, setIsMuted] = createSignal(!!props.field.muted)\n\n const handleFieldFocus = () => {\n if (isMuted()) setIsMuted(false)\n }\n\n const status = () => props.field.fieldStatus || 'optional'\n const isUnsupported = () => status() === 'unsupported'\n const isFieldDisabled = () => props.disabled || isUnsupported()\n\n const sourceBadge = () => {\n const src = props.field.source\n if (!src) return null\n return SOURCE_BADGES[src]\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 ${isUnsupported() ? 'opacity-50' : ''}\n ${isMuted() ? 'bg-gray-50 dark:bg-gray-700/50 text-gray-500 dark:text-gray-400' : ''}\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\" onFocusIn={handleFieldFocus} onClick={handleFieldFocus}>\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' : isMuted() ? 'text-gray-400 dark:text-gray-500' : 'text-gray-700 dark:text-gray-300'}`}\n >\n <Show when={sourceBadge()}>\n <span class=\"mr-1\" title={sourceBadge()!.title}>{sourceBadge()!.icon}</span>\n </Show>\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 {/* Range/Slider */}\n <Match when={props.field.type === 'range'}>\n <div class=\"flex items-center gap-3\">\n <input\n id={fieldId()}\n type=\"range\"\n name={props.field.name}\n value={props.value ?? props.field.min ?? 0}\n onInput={(e) => props.onChange(Number(e.currentTarget.value))}\n min={props.field.min}\n max={props.field.max}\n step={props.field.step || 1}\n disabled={isFieldDisabled()}\n class=\"flex-1 h-2 bg-gray-200 dark:bg-gray-600 rounded-lg appearance-none cursor-pointer accent-blue-600\"\n />\n <span class=\"text-sm font-mono text-gray-700 dark:text-gray-300 min-w-[3rem] text-right\">{props.value ?? props.field.min ?? 0}</span>\n </div>\n </Match>\n\n {/* Tags/Chips Input */}\n <Match when={props.field.type === 'tags'}>\n <TagsField value={props.value || []} onChange={props.onChange} placeholder={props.field.placeholder} disabled={isFieldDisabled()} baseClass={baseInputClass()} />\n </Match>\n\n {/* Toggle */}\n <Match when={props.field.type === 'toggle'}>\n <label class=\"flex items-center gap-2 cursor-pointer\">\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={!!props.value}\n onClick={() => props.onChange(!props.value)}\n disabled={isFieldDisabled()}\n class={`relative inline-flex h-5 w-9 items-center rounded-full transition-colors ${props.value ? 'bg-blue-600' : 'bg-gray-300 dark:bg-gray-600'} ${isFieldDisabled() ? 'opacity-50 cursor-not-allowed' : ''}`}\n >\n <span class={`inline-block h-3.5 w-3.5 transform rounded-full bg-white transition-transform ${props.value ? 'translate-x-4' : 'translate-x-0.5'}`} />\n </button>\n <span class=\"text-sm text-gray-700 dark:text-gray-300\">{props.field.checkboxLabel || props.field.label}</span>\n </label>\n </Match>\n\n {/* Fieldset/Group */}\n <Match when={props.field.type === 'fieldset'}>\n <fieldset class=\"border border-gray-200 dark:border-gray-600 rounded-lg p-3\">\n <legend class=\"text-xs font-medium text-gray-500 dark:text-gray-400 px-1\">{props.field.label}</legend>\n <p class=\"text-xs text-gray-400\">{props.field.helpText || 'Group container'}</p>\n </fieldset>\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.displayHint && props.field.prefill != null}>\n <p class={`text-xs italic ${isMuted() ? 'text-gray-400 dark:text-gray-500' : 'text-gray-500 dark:text-gray-400'}`}>\n {props.field.displayHint}\n </p>\n </Show>\n\n <Show when={props.field.helpText && !props.error && !props.field.statusReason && !props.field.displayHint}>\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 &times;\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 // Only clear the stored value if user is actively changing the text\n // (not just focusing/blurring with the selected label intact)\n if (!isMultiple()) {\n // Check if the current query still matches the selected label\n const currentLabel = selectedLabels().get(String(props.value))\n if (currentLabel !== value) {\n props.onChange('')\n }\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 &times;\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\">&#10003;</span>\n </Show>\n </button>\n )\n }}\n </For>\n </div>\n </Show>\n </div>\n )\n}\n\n// ─── Tags/Chips Input ────────────────────────────────────────\n\nconst TagsField: Component<{\n value: string[]\n onChange: (value: string[]) => void\n placeholder?: string\n disabled?: boolean\n baseClass: string\n}> = (props) => {\n const [input, setInput] = createSignal('')\n\n const addTag = () => {\n const val = input().trim()\n if (val && !(props.value || []).includes(val)) {\n props.onChange([...(props.value || []), val])\n }\n setInput('')\n }\n\n const removeTag = (tag: string) => {\n props.onChange((props.value || []).filter(t => t !== tag))\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ',') {\n e.preventDefault()\n addTag()\n }\n if (e.key === 'Backspace' && !input() && (props.value || []).length > 0) {\n removeTag(props.value[props.value.length - 1])\n }\n }\n\n return (\n <div>\n <Show when={(props.value || []).length > 0}>\n <div class=\"flex flex-wrap gap-1 mb-1\">\n <For each={props.value || []}>\n {(tag) => (\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 {tag}\n <button type=\"button\" onClick={() => removeTag(tag)} class=\"hover:text-blue-900 dark:hover:text-blue-100\" aria-label={`Remove ${tag}`}>&times;</button>\n </span>\n )}\n </For>\n </div>\n </Show>\n <input\n type=\"text\"\n value={input()}\n onInput={(e) => setInput(e.currentTarget.value)}\n onKeyDown={handleKeyDown}\n onBlur={addTag}\n placeholder={props.placeholder || 'Type and press Enter...'}\n disabled={props.disabled}\n class={props.baseClass}\n />\n </div>\n )\n}\n"],"names":["SOURCE_BADGES","detected","icon","title","inferred","user","default","FormFieldRenderer","props","isVisible","useConditionalField","condition","field","showWhen","formData","isMuted","setIsMuted","createSignal","muted","handleFieldFocus","status","fieldStatus","isUnsupported","isFieldDisabled","disabled","sourceBadge","src","source","baseInputClass","error","fieldId","name","errorId","_$createComponent","Show","when","children","_el$","_$getNextElement","_tmpl$20","_el$53","firstChild","_el$54","_co$1","_$getNextMarker","nextSibling","_el$55","_el$56","_co$10","_el$57","_el$58","_co$11","_el$59","_el$60","_co$12","_el$61","_el$62","_co$13","_el$63","_el$64","_co$14","$$click","$$focusin","_$insert","_$memo","label","type","_el$2","_tmpl$5","_el$7","_el$8","_co$","_el$9","_el$0","_co$2","_el$1","_el$10","_co$3","_el$11","_el$12","_co$4","_el$13","_el$14","_co$5","_el$3","_tmpl$","_$effect","_$setAttribute","required","_tmpl$2","_tmpl$3","_tmpl$4","_p$","_v$","_v$2","e","t","_$className","undefined","Switch","Match","_el$15","_tmpl$6","$$input","onChange","currentTarget","value","_v$3","_v$4","_v$5","_v$6","placeholder","_v$7","_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$16","_tmpl$7","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$17","_tmpl$8","_v$24","_v$25","_v$26","_v$27","_v$28","minDate","_v$29","maxDate","_v$30","_v$31","_v$32","_el$18","_tmpl$9","_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$19","_tmpl$1","_el$21","_el$22","_co$6","_el$23","_el$24","_co$7","addEventListener","_el$20","_tmpl$0","For","each","options","option","_el$65","_tmpl$21","_v$44","_v$45","_v$46","_v$47","_v$48","_v$49","_v$50","_el$25","_tmpl$10","_el$26","_el$27","_el$29","_el$30","_co$8","_el$31","_el$32","_co$9","checked","checkboxLabel","_v$51","_v$52","_v$53","_v$54","_v$55","MultiSelectField","baseClass","AutocompleteField","_el$33","_tmpl$11","index","_el$66","_tmpl$22","_el$67","_el$68","_v$74","_v$75","_v$76","_v$56","_v$57","_v$58","_el$34","_tmpl$12","_el$35","_el$36","_v$59","_v$60","_v$61","_v$62","_v$63","_v$64","TagsField","_el$37","_tmpl$13","_el$38","_el$39","_el$40","_v$65","_v$66","_v$67","_v$68","_el$41","_tmpl$14","_el$42","_el$43","helpText","_el$44","_tmpl$15","_v$69","_v$70","_v$71","_v$72","_v$73","_el$45","_tmpl$16","_el$46","_el$47","_el$48","_co$0","statusReason","_el$49","_tmpl$17","displayHint","prefill","_el$50","_el$51","_tmpl$18","_el$52","_tmpl$19","open","setOpen","filter","setFilter","toggle","val","current","includes","v","removeChip","getLabel","find","filteredOptions","q","toLowerCase","_el$69","_tmpl$27","_el$84","_el$85","_co$18","_el$71","_el$72","_el$86","_el$87","_co$19","length","_el$70","_tmpl$23","_el$88","_tmpl$28","_el$90","_el$91","_co$20","_el$89","_c$","_el$73","_tmpl$26","_el$82","_el$83","_co$17","_el$76","_el$78","_el$79","_co$15","_el$80","_el$81","_co$16","_el$74","_tmpl$24","_el$75","_el$92","_tmpl$29","_el$93","_el$94","_tmpl$25","_v$77","_v$78","_v$79","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","currentLabel","get","setTimeout","selectSuggestion","prev","m","delete","onCleanup","_el$95","_tmpl$31","_el$99","_el$100","_co$21","_el$97","_el$101","_el$102","_co$22","_el$96","_el$103","_el$105","_el$106","_co$23","_el$104","_el$98","_tmpl$30","isSelected","_el$107","_tmpl$33","_el$109","_el$110","_co$24","_el$111","_el$112","_co$25","$$mousedown","preventDefault","_tmpl$32","_v$83","_v$84","_v$80","_v$81","_v$82","input","setInput","addTag","trim","removeTag","tag","handleKeyDown","key","_el$113","_tmpl$34","_el$116","_el$117","_co$26","_el$115","_el$114","_el$118","_el$120","_el$121","_co$27","_el$119","$$keydown","_v$85","_v$86","_v$87","_$delegateEvents"],"mappings":"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"}
@@ -7,7 +7,7 @@ const useAction = require("../hooks/useAction.cjs");
7
7
  const validation = require("../services/validation.cjs");
8
8
  const useConditionalField = require("../hooks/useConditionalField.cjs");
9
9
  const useFormPersistence = require("../hooks/useFormPersistence.cjs");
10
- var _tmpl$ = /* @__PURE__ */ web.template(`<h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-4">`), _tmpl$2 = /* @__PURE__ */ web.template(`<div class="mt-4 p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-md"><p class="text-sm text-red-600 dark:text-red-400"role=alert>`), _tmpl$3 = /* @__PURE__ */ web.template(`<button type=button class="px-4 py-2 border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 rounded-md hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-gray-500 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed transition-colors">Reset`), _tmpl$4 = /* @__PURE__ */ web.template(`<div class="w-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 p-4"><!$><!/><form novalidate><div></div><!$><!/><div class="flex gap-2 pt-4 mt-4 border-t border-gray-200 dark:border-gray-700"><button type=submit class="px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed transition-colors"></button><!$><!/>`), _tmpl$5 = /* @__PURE__ */ web.template(`<span class="flex items-center gap-2"><span class="animate-spin h-4 w-4 border-2 border-white border-t-transparent rounded-full"></span>Submitting...`);
10
+ var _tmpl$ = /* @__PURE__ */ web.template(`<h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-4">`), _tmpl$2 = /* @__PURE__ */ web.template(`<div class="mt-4 p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-md"><p class="text-sm text-red-600 dark:text-red-400"role=alert>`), _tmpl$3 = /* @__PURE__ */ web.template(`<div class="mt-4 flex items-center gap-3 p-3 bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-md"><span class="text-sm text-blue-700 dark:text-blue-300"><!$><!/> in <!$><!/>s...</span><button type=button class="text-sm text-blue-600 dark:text-blue-400 underline hover:text-blue-800 dark:hover:text-blue-200">Cancel`), _tmpl$4 = /* @__PURE__ */ web.template(`<button type=button class="px-4 py-2 border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 rounded-md hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-gray-500 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed transition-colors">Reset`), _tmpl$5 = /* @__PURE__ */ web.template(`<div class="w-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 p-4"><!$><!/><form novalidate><div></div><!$><!/><!$><!/><div class="flex gap-2 pt-4 mt-4 border-t border-gray-200 dark:border-gray-700"><button type=submit class="px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed transition-colors"></button><!$><!/>`), _tmpl$6 = /* @__PURE__ */ web.template(`<span class="flex items-center gap-2"><span class="animate-spin h-4 w-4 border-2 border-white border-t-transparent rounded-full"></span>Submitting...`);
11
11
  function getFieldDefault(type) {
12
12
  switch (type) {
13
13
  case "checkbox":
@@ -36,10 +36,30 @@ const FormRenderer = (props) => {
36
36
  return useConditionalField.evaluateCondition(field.showWhen, formData());
37
37
  });
38
38
  };
39
+ const [countdown, setCountdown] = solidJs.createSignal(null);
40
+ let countdownTimer = null;
41
+ const [userInteracted, setUserInteracted] = solidJs.createSignal(false);
42
+ const cancelCountdown = () => {
43
+ if (countdownTimer) {
44
+ clearInterval(countdownTimer);
45
+ countdownTimer = null;
46
+ }
47
+ setCountdown(null);
48
+ };
49
+ const handleUserInteraction = () => {
50
+ if (!userInteracted()) {
51
+ setUserInteracted(true);
52
+ cancelCountdown();
53
+ }
54
+ };
55
+ solidJs.onCleanup(() => cancelCountdown());
56
+ const allRequiredPrefilled = () => {
57
+ return params().fields.filter((f) => f.required).every((f) => f.prefill != null);
58
+ };
39
59
  const initializeForm = (clearStorage = false) => {
40
60
  const initial = {};
41
61
  for (const field of params().fields) {
42
- initial[field.name] = field.defaultValue ?? getFieldDefault(field.type);
62
+ initial[field.name] = field.prefill ?? field.defaultValue ?? getFieldDefault(field.type);
43
63
  }
44
64
  setFormData(initial);
45
65
  setErrors({});
@@ -63,7 +83,24 @@ const FormRenderer = (props) => {
63
83
  clearPersisted = persistence.clearPersisted;
64
84
  }
65
85
  });
86
+ solidJs.createEffect(() => {
87
+ const delay = params().autoSubmitDelay;
88
+ if (!delay || !allRequiredPrefilled() || userInteracted()) return;
89
+ let remaining = Math.ceil(delay / 1e3);
90
+ setCountdown(remaining);
91
+ countdownTimer = setInterval(() => {
92
+ remaining--;
93
+ if (remaining <= 0) {
94
+ cancelCountdown();
95
+ const form = document.querySelector(`#form-${props.component.id}`);
96
+ if (form) form.requestSubmit();
97
+ } else {
98
+ setCountdown(remaining);
99
+ }
100
+ }, 1e3);
101
+ });
66
102
  const handleFieldChange = (name, value) => {
103
+ handleUserInteraction();
67
104
  setFormData((prev) => ({
68
105
  ...prev,
69
106
  [name]: value
@@ -143,7 +180,7 @@ const FormRenderer = (props) => {
143
180
  }
144
181
  };
145
182
  return (() => {
146
- var _el$ = web.getNextElement(_tmpl$4), _el$12 = _el$.firstChild, [_el$13, _co$3] = web.getNextMarker(_el$12.nextSibling), _el$3 = _el$13.nextSibling, _el$4 = _el$3.firstChild, _el$10 = _el$4.nextSibling, [_el$11, _co$2] = web.getNextMarker(_el$10.nextSibling), _el$7 = _el$11.nextSibling, _el$8 = _el$7.firstChild, _el$0 = _el$8.nextSibling, [_el$1, _co$] = web.getNextMarker(_el$0.nextSibling);
183
+ var _el$ = web.getNextElement(_tmpl$5), _el$23 = _el$.firstChild, [_el$24, _co$6] = web.getNextMarker(_el$23.nextSibling), _el$3 = _el$24.nextSibling, _el$4 = _el$3.firstChild, _el$19 = _el$4.nextSibling, [_el$20, _co$4] = web.getNextMarker(_el$19.nextSibling), _el$21 = _el$20.nextSibling, [_el$22, _co$5] = web.getNextMarker(_el$21.nextSibling), _el$14 = _el$22.nextSibling, _el$15 = _el$14.firstChild, _el$17 = _el$15.nextSibling, [_el$18, _co$3] = web.getNextMarker(_el$17.nextSibling);
147
184
  web.insert(_el$, web.createComponent(solidJs.Show, {
148
185
  get when() {
149
186
  return params().title;
@@ -153,7 +190,7 @@ const FormRenderer = (props) => {
153
190
  web.insert(_el$2, () => params().title);
154
191
  return _el$2;
155
192
  }
156
- }), _el$13, _co$3);
193
+ }), _el$24, _co$6);
157
194
  _el$3.addEventListener("submit", handleSubmit);
158
195
  web.insert(_el$4, web.createComponent(solidJs.For, {
159
196
  get each() {
@@ -183,31 +220,51 @@ const FormRenderer = (props) => {
183
220
  web.insert(_el$6, () => errors()._form);
184
221
  return _el$5;
185
222
  }
186
- }), _el$11, _co$2);
187
- web.insert(_el$8, (() => {
223
+ }), _el$20, _co$4);
224
+ web.insert(_el$3, web.createComponent(solidJs.Show, {
225
+ get when() {
226
+ return countdown() != null;
227
+ },
228
+ get children() {
229
+ var _el$7 = web.getNextElement(_tmpl$3), _el$8 = _el$7.firstChild, _el$1 = _el$8.firstChild, [_el$10, _co$] = web.getNextMarker(_el$1.nextSibling), _el$9 = _el$10.nextSibling, _el$11 = _el$9.nextSibling, [_el$12, _co$2] = web.getNextMarker(_el$11.nextSibling);
230
+ _el$12.nextSibling;
231
+ var _el$13 = _el$8.nextSibling;
232
+ web.insert(_el$8, () => params().submitLabel || "Submit", _el$10, _co$);
233
+ web.insert(_el$8, countdown, _el$12, _co$2);
234
+ _el$13.$$click = () => {
235
+ cancelCountdown();
236
+ setUserInteracted(true);
237
+ };
238
+ web.runHydrationEvents();
239
+ return _el$7;
240
+ }
241
+ }), _el$22, _co$5);
242
+ web.insert(_el$15, (() => {
188
243
  var _c$ = web.memo(() => !!isSubmitting());
189
- return () => _c$() ? web.getNextElement(_tmpl$5) : params().submitLabel || "Submit";
244
+ return () => _c$() ? web.getNextElement(_tmpl$6) : params().submitLabel || "Submit";
190
245
  })());
191
- web.insert(_el$7, web.createComponent(solidJs.Show, {
246
+ web.insert(_el$14, web.createComponent(solidJs.Show, {
192
247
  get when() {
193
248
  return params().showReset;
194
249
  },
195
250
  get children() {
196
- var _el$9 = web.getNextElement(_tmpl$3);
197
- _el$9.$$click = () => initializeForm(true);
198
- web.effect(() => web.setProperty(_el$9, "disabled", isSubmitting()));
251
+ var _el$16 = web.getNextElement(_tmpl$4);
252
+ _el$16.$$click = () => initializeForm(true);
253
+ web.effect(() => web.setProperty(_el$16, "disabled", isSubmitting()));
199
254
  web.runHydrationEvents();
200
- return _el$9;
255
+ return _el$16;
201
256
  }
202
- }), _el$1, _co$);
257
+ }), _el$18, _co$3);
203
258
  web.effect((_p$) => {
204
- var _v$ = layoutClass(), _v$2 = isSubmitting();
205
- _v$ !== _p$.e && web.className(_el$4, _p$.e = _v$);
206
- _v$2 !== _p$.t && web.setProperty(_el$8, "disabled", _p$.t = _v$2);
259
+ var _v$ = `form-${props.component.id}`, _v$2 = layoutClass(), _v$3 = isSubmitting();
260
+ _v$ !== _p$.e && web.setAttribute(_el$3, "id", _p$.e = _v$);
261
+ _v$2 !== _p$.t && web.className(_el$4, _p$.t = _v$2);
262
+ _v$3 !== _p$.a && web.setProperty(_el$15, "disabled", _p$.a = _v$3);
207
263
  return _p$;
208
264
  }, {
209
265
  e: void 0,
210
- t: void 0
266
+ t: void 0,
267
+ a: void 0
211
268
  });
212
269
  return _el$;
213
270
  })();
@@ -1 +1 @@
1
- {"version":3,"file":"FormRenderer.cjs","sources":["../../src/components/FormRenderer.tsx"],"sourcesContent":["/**\n * FormRenderer - Main form component\n * Sprint 1: Form Foundation\n * Sprint 2: Conditional field visibility (showWhen)\n * Sprint 4: Form state persistence\n */\n\nimport { Component, createSignal, For, Show, onMount, createEffect } from 'solid-js'\nimport { FormFieldRenderer } from './FormFieldRenderer'\nimport type { UIComponent, FormComponentParams, FormFieldParams } from '../types'\nimport { useAction } from '../hooks/useAction'\nimport { validateFormData } from '../services/validation'\nimport { evaluateCondition } from '../hooks/useConditionalField'\nimport { useFormPersistence } from '../hooks/useFormPersistence'\n\nexport interface FormRendererProps {\n component: UIComponent\n onSubmit?: (data: Record<string, any>) => void\n onError?: (errors: Record<string, string>) => void\n}\n\n/**\n * Get default value for a field type\n */\nfunction getFieldDefault(type: FormFieldParams['type']): any {\n switch (type) {\n case 'checkbox':\n return false\n case 'number':\n return undefined\n case 'select':\n case 'radio':\n return ''\n default:\n return ''\n }\n}\n\nexport const FormRenderer: Component<FormRendererProps> = (props) => {\n const params = () => props.component.params as FormComponentParams\n const [formData, setFormData] = createSignal<Record<string, any>>({})\n const [errors, setErrors] = createSignal<Record<string, string>>({})\n const [isSubmitting, setIsSubmitting] = createSignal(false)\n const { execute } = useAction()\n\n // Form persistence (Sprint 4)\n let clearPersisted: (() => void) | undefined\n\n /**\n * Get fields that are currently visible based on showWhen conditions\n */\n const getVisibleFields = (): FormFieldParams[] => {\n return params().fields.filter((field) => {\n if (!field.showWhen) return true\n return evaluateCondition(field.showWhen, formData())\n })\n }\n\n // Initialize form data with default values\n const initializeForm = (clearStorage = false) => {\n const initial: Record<string, any> = {}\n for (const field of params().fields) {\n initial[field.name] = field.defaultValue ?? getFieldDefault(field.type)\n }\n setFormData(initial)\n setErrors({})\n\n // Clear persisted data if requested\n if (clearStorage && clearPersisted) {\n clearPersisted()\n }\n }\n\n // Initialize on mount\n onMount(() => {\n initializeForm()\n })\n\n // Setup persistence if persistKey is provided (Sprint 4)\n createEffect(() => {\n const persistKey = params().persistKey\n if (persistKey) {\n const persistence = useFormPersistence({\n persistKey,\n formData,\n setFormData,\n excludeFields: params().excludeFromPersistence,\n expiresIn: params().persistExpiresIn,\n })\n clearPersisted = persistence.clearPersisted\n }\n })\n\n const handleFieldChange = (name: string, value: any) => {\n setFormData((prev) => ({ ...prev, [name]: value }))\n // Clear error on change\n if (errors()[name]) {\n setErrors((prev) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [name]: _removed, ...rest } = prev\n return rest\n })\n }\n }\n\n const handleSubmit = async (e: Event) => {\n e.preventDefault()\n setIsSubmitting(true)\n setErrors({})\n\n // Get only visible fields for validation and submission\n const visibleFields = getVisibleFields()\n const visibleFieldNames = new Set(visibleFields.map((f) => f.name))\n\n // Filter form data to only include visible fields\n const visibleFormData: Record<string, any> = {}\n for (const [key, value] of Object.entries(formData())) {\n if (visibleFieldNames.has(key)) {\n visibleFormData[key] = value\n }\n }\n\n // Validate only visible fields\n const validationResult = validateFormData(visibleFormData, visibleFields)\n if (!validationResult.valid) {\n setErrors(validationResult.errors)\n setIsSubmitting(false)\n props.onError?.(validationResult.errors)\n return\n }\n\n // Submit via tool call if specified\n if (params().submitAction?.toolName) {\n try {\n const result = await execute(params().submitAction!.toolName, {\n ...params().submitAction!.params,\n formData: visibleFormData,\n })\n if (!result.success) {\n setErrors({ _form: result.error || 'Submission failed' })\n setIsSubmitting(false)\n props.onError?.({ _form: result.error || 'Submission failed' })\n return\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Submission failed'\n setErrors({ _form: errorMessage })\n setIsSubmitting(false)\n props.onError?.({ _form: errorMessage })\n return\n }\n }\n\n // Clear persisted data on successful submit\n if (clearPersisted) {\n clearPersisted()\n }\n\n props.onSubmit?.(visibleFormData)\n setIsSubmitting(false)\n }\n\n const layoutClass = () => {\n switch (params().layout) {\n case 'horizontal':\n return 'grid grid-cols-2 gap-4'\n case 'inline':\n return 'flex flex-wrap gap-4 items-end'\n default:\n return 'space-y-4'\n }\n }\n\n return (\n <div class=\"w-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 p-4\">\n <Show when={params().title}>\n <h3 class=\"text-lg font-semibold text-gray-900 dark:text-white mb-4\">\n {params().title}\n </h3>\n </Show>\n\n <form onSubmit={handleSubmit} noValidate>\n <div class={layoutClass()}>\n <For each={params().fields}>\n {(field) => (\n <FormFieldRenderer\n field={field}\n value={formData()[field.name]}\n error={errors()[field.name]}\n onChange={(value) => handleFieldChange(field.name, value)}\n disabled={isSubmitting() || field.disabled}\n formData={formData}\n />\n )}\n </For>\n </div>\n\n <Show when={errors()._form}>\n <div class=\"mt-4 p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-md\">\n <p class=\"text-sm text-red-600 dark:text-red-400\" role=\"alert\">\n {errors()._form}\n </p>\n </div>\n </Show>\n\n <div class=\"flex gap-2 pt-4 mt-4 border-t border-gray-200 dark:border-gray-700\">\n <button\n type=\"submit\"\n disabled={isSubmitting()}\n class=\"px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed transition-colors\"\n >\n {isSubmitting() ? (\n <span class=\"flex items-center gap-2\">\n <span class=\"animate-spin h-4 w-4 border-2 border-white border-t-transparent rounded-full\" />\n Submitting...\n </span>\n ) : (\n params().submitLabel || 'Submit'\n )}\n </button>\n <Show when={params().showReset}>\n <button\n type=\"button\"\n onClick={() => initializeForm(true)}\n disabled={isSubmitting()}\n class=\"px-4 py-2 border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 rounded-md hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-gray-500 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed transition-colors\"\n >\n Reset\n </button>\n </Show>\n </div>\n </form>\n </div>\n )\n}\n"],"names":["getFieldDefault","type","undefined","FormRenderer","props","params","component","formData","setFormData","createSignal","errors","setErrors","isSubmitting","setIsSubmitting","execute","useAction","clearPersisted","getVisibleFields","fields","filter","field","showWhen","evaluateCondition","initializeForm","clearStorage","initial","name","defaultValue","onMount","createEffect","persistKey","persistence","useFormPersistence","excludeFields","excludeFromPersistence","expiresIn","persistExpiresIn","handleFieldChange","value","prev","_removed","rest","handleSubmit","e","preventDefault","visibleFields","visibleFieldNames","Set","map","f","visibleFormData","key","Object","entries","has","validationResult","validateFormData","valid","onError","submitAction","toolName","result","success","_form","error","errorMessage","Error","message","onSubmit","layoutClass","layout","_el$","_$getNextElement","_tmpl$4","_el$12","firstChild","_el$13","_co$3","_$getNextMarker","nextSibling","_el$3","_el$4","_el$10","_el$11","_co$2","_el$7","_el$8","_el$0","_el$1","_co$","_$insert","_$createComponent","Show","when","title","children","_el$2","_tmpl$","addEventListener","For","each","FormFieldRenderer","onChange","disabled","_el$5","_tmpl$2","_el$6","_c$","_$memo","_tmpl$5","submitLabel","showReset","_el$9","_tmpl$3","$$click","_$effect","_$setProperty","_$runHydrationEvents","_p$","_v$","_v$2","_$className","t","_$delegateEvents"],"mappings":"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"}
1
+ {"version":3,"file":"FormRenderer.cjs","sources":["../../src/components/FormRenderer.tsx"],"sourcesContent":["/**\n * FormRenderer - Main form component\n * Sprint 1: Form Foundation\n * Sprint 2: Conditional field visibility (showWhen)\n * Sprint 4: Form state persistence\n */\n\nimport { Component, createSignal, For, Show, onMount, createEffect, onCleanup } from 'solid-js'\nimport { FormFieldRenderer } from './FormFieldRenderer'\nimport type { UIComponent, FormComponentParams, FormFieldParams } from '../types'\nimport { useAction } from '../hooks/useAction'\nimport { validateFormData } from '../services/validation'\nimport { evaluateCondition } from '../hooks/useConditionalField'\nimport { useFormPersistence } from '../hooks/useFormPersistence'\n\nexport interface FormRendererProps {\n component: UIComponent\n onSubmit?: (data: Record<string, any>) => void\n onError?: (errors: Record<string, string>) => void\n}\n\n/**\n * Get default value for a field type\n */\nfunction getFieldDefault(type: FormFieldParams['type']): any {\n switch (type) {\n case 'checkbox':\n return false\n case 'number':\n return undefined\n case 'select':\n case 'radio':\n return ''\n default:\n return ''\n }\n}\n\nexport const FormRenderer: Component<FormRendererProps> = (props) => {\n const params = () => props.component.params as FormComponentParams\n const [formData, setFormData] = createSignal<Record<string, any>>({})\n const [errors, setErrors] = createSignal<Record<string, string>>({})\n const [isSubmitting, setIsSubmitting] = createSignal(false)\n const { execute } = useAction()\n\n // Form persistence (Sprint 4)\n let clearPersisted: (() => void) | undefined\n\n /**\n * Get fields that are currently visible based on showWhen conditions\n */\n const getVisibleFields = (): FormFieldParams[] => {\n return params().fields.filter((field) => {\n if (!field.showWhen) return true\n return evaluateCondition(field.showWhen, formData())\n })\n }\n\n // Auto-submit countdown state (v4.2.0)\n const [countdown, setCountdown] = createSignal<number | null>(null)\n let countdownTimer: ReturnType<typeof setInterval> | null = null\n const [userInteracted, setUserInteracted] = createSignal(false)\n\n const cancelCountdown = () => {\n if (countdownTimer) {\n clearInterval(countdownTimer)\n countdownTimer = null\n }\n setCountdown(null)\n }\n\n const handleUserInteraction = () => {\n if (!userInteracted()) {\n setUserInteracted(true)\n cancelCountdown()\n }\n }\n\n onCleanup(() => cancelCountdown())\n\n /**\n * Check if all required fields have prefill values\n */\n const allRequiredPrefilled = (): boolean => {\n return params().fields\n .filter((f) => f.required)\n .every((f) => f.prefill != null)\n }\n\n // Initialize form data with default values, applying prefill (v4.2.0)\n const initializeForm = (clearStorage = false) => {\n const initial: Record<string, any> = {}\n for (const field of params().fields) {\n // prefill takes priority over defaultValue\n initial[field.name] = field.prefill ?? field.defaultValue ?? getFieldDefault(field.type)\n }\n setFormData(initial)\n setErrors({})\n\n // Clear persisted data if requested\n if (clearStorage && clearPersisted) {\n clearPersisted()\n }\n }\n\n // Initialize on mount\n onMount(() => {\n initializeForm()\n })\n\n // Setup persistence if persistKey is provided (Sprint 4)\n createEffect(() => {\n const persistKey = params().persistKey\n if (persistKey) {\n const persistence = useFormPersistence({\n persistKey,\n formData,\n setFormData,\n excludeFields: params().excludeFromPersistence,\n expiresIn: params().persistExpiresIn,\n })\n clearPersisted = persistence.clearPersisted\n }\n })\n\n // Auto-submit countdown (v4.2.0)\n createEffect(() => {\n const delay = params().autoSubmitDelay\n if (!delay || !allRequiredPrefilled() || userInteracted()) return\n\n let remaining = Math.ceil(delay / 1000)\n setCountdown(remaining)\n\n countdownTimer = setInterval(() => {\n remaining--\n if (remaining <= 0) {\n cancelCountdown()\n // Trigger submit programmatically\n const form = document.querySelector(`#form-${props.component.id}`) as HTMLFormElement | null\n if (form) form.requestSubmit()\n } else {\n setCountdown(remaining)\n }\n }, 1000)\n })\n\n const handleFieldChange = (name: string, value: any) => {\n handleUserInteraction()\n setFormData((prev) => ({ ...prev, [name]: value }))\n // Clear error on change\n if (errors()[name]) {\n setErrors((prev) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [name]: _removed, ...rest } = prev\n return rest\n })\n }\n }\n\n const handleSubmit = async (e: Event) => {\n e.preventDefault()\n setIsSubmitting(true)\n setErrors({})\n\n // Get only visible fields for validation and submission\n const visibleFields = getVisibleFields()\n const visibleFieldNames = new Set(visibleFields.map((f) => f.name))\n\n // Filter form data to only include visible fields\n const visibleFormData: Record<string, any> = {}\n for (const [key, value] of Object.entries(formData())) {\n if (visibleFieldNames.has(key)) {\n visibleFormData[key] = value\n }\n }\n\n // Validate only visible fields\n const validationResult = validateFormData(visibleFormData, visibleFields)\n if (!validationResult.valid) {\n setErrors(validationResult.errors)\n setIsSubmitting(false)\n props.onError?.(validationResult.errors)\n return\n }\n\n // Submit via tool call if specified\n if (params().submitAction?.toolName) {\n try {\n const result = await execute(params().submitAction!.toolName, {\n ...params().submitAction!.params,\n formData: visibleFormData,\n })\n if (!result.success) {\n setErrors({ _form: result.error || 'Submission failed' })\n setIsSubmitting(false)\n props.onError?.({ _form: result.error || 'Submission failed' })\n return\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Submission failed'\n setErrors({ _form: errorMessage })\n setIsSubmitting(false)\n props.onError?.({ _form: errorMessage })\n return\n }\n }\n\n // Clear persisted data on successful submit\n if (clearPersisted) {\n clearPersisted()\n }\n\n props.onSubmit?.(visibleFormData)\n setIsSubmitting(false)\n }\n\n const layoutClass = () => {\n switch (params().layout) {\n case 'horizontal':\n return 'grid grid-cols-2 gap-4'\n case 'inline':\n return 'flex flex-wrap gap-4 items-end'\n default:\n return 'space-y-4'\n }\n }\n\n return (\n <div class=\"w-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 p-4\">\n <Show when={params().title}>\n <h3 class=\"text-lg font-semibold text-gray-900 dark:text-white mb-4\">\n {params().title}\n </h3>\n </Show>\n\n <form id={`form-${props.component.id}`} onSubmit={handleSubmit} noValidate>\n <div class={layoutClass()}>\n <For each={params().fields}>\n {(field) => (\n <FormFieldRenderer\n field={field}\n value={formData()[field.name]}\n error={errors()[field.name]}\n onChange={(value) => handleFieldChange(field.name, value)}\n disabled={isSubmitting() || field.disabled}\n formData={formData}\n />\n )}\n </For>\n </div>\n\n <Show when={errors()._form}>\n <div class=\"mt-4 p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-md\">\n <p class=\"text-sm text-red-600 dark:text-red-400\" role=\"alert\">\n {errors()._form}\n </p>\n </div>\n </Show>\n\n {/* Auto-submit countdown (v4.2.0) */}\n <Show when={countdown() != null}>\n <div class=\"mt-4 flex items-center gap-3 p-3 bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-md\">\n <span class=\"text-sm text-blue-700 dark:text-blue-300\">\n {params().submitLabel || 'Submit'} in {countdown()}s...\n </span>\n <button\n type=\"button\"\n onClick={() => { cancelCountdown(); setUserInteracted(true) }}\n class=\"text-sm text-blue-600 dark:text-blue-400 underline hover:text-blue-800 dark:hover:text-blue-200\"\n >\n Cancel\n </button>\n </div>\n </Show>\n\n <div class=\"flex gap-2 pt-4 mt-4 border-t border-gray-200 dark:border-gray-700\">\n <button\n type=\"submit\"\n disabled={isSubmitting()}\n class=\"px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed transition-colors\"\n >\n {isSubmitting() ? (\n <span class=\"flex items-center gap-2\">\n <span class=\"animate-spin h-4 w-4 border-2 border-white border-t-transparent rounded-full\" />\n Submitting...\n </span>\n ) : (\n params().submitLabel || 'Submit'\n )}\n </button>\n <Show when={params().showReset}>\n <button\n type=\"button\"\n onClick={() => initializeForm(true)}\n disabled={isSubmitting()}\n class=\"px-4 py-2 border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 rounded-md hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-gray-500 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed transition-colors\"\n >\n Reset\n </button>\n </Show>\n </div>\n </form>\n </div>\n )\n}\n"],"names":["getFieldDefault","type","undefined","FormRenderer","props","params","component","formData","setFormData","createSignal","errors","setErrors","isSubmitting","setIsSubmitting","execute","useAction","clearPersisted","getVisibleFields","fields","filter","field","showWhen","evaluateCondition","countdown","setCountdown","countdownTimer","userInteracted","setUserInteracted","cancelCountdown","clearInterval","handleUserInteraction","onCleanup","allRequiredPrefilled","f","required","every","prefill","initializeForm","clearStorage","initial","name","defaultValue","onMount","createEffect","persistKey","persistence","useFormPersistence","excludeFields","excludeFromPersistence","expiresIn","persistExpiresIn","delay","autoSubmitDelay","remaining","Math","ceil","setInterval","form","document","querySelector","id","requestSubmit","handleFieldChange","value","prev","_removed","rest","handleSubmit","e","preventDefault","visibleFields","visibleFieldNames","Set","map","visibleFormData","key","Object","entries","has","validationResult","validateFormData","valid","onError","submitAction","toolName","result","success","_form","error","errorMessage","Error","message","onSubmit","layoutClass","layout","_el$","_$getNextElement","_tmpl$5","_el$23","firstChild","_el$24","_co$6","_$getNextMarker","nextSibling","_el$3","_el$4","_el$19","_el$20","_co$4","_el$21","_el$22","_co$5","_el$14","_el$15","_el$17","_el$18","_co$3","_$insert","_$createComponent","Show","when","title","children","_el$2","_tmpl$","addEventListener","For","each","FormFieldRenderer","onChange","disabled","_el$5","_tmpl$2","_el$6","_el$7","_tmpl$3","_el$8","_el$1","_el$10","_co$","_el$9","_el$11","_el$12","_co$2","_el$13","submitLabel","$$click","_$runHydrationEvents","_c$","_$memo","_tmpl$6","showReset","_el$16","_tmpl$4","_$effect","_$setProperty","_p$","_v$","_v$2","_v$3","_$setAttribute","t","_$className","a","_$delegateEvents"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormRenderer.d.ts","sourceRoot":"","sources":["../../src/components/FormRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAkD,MAAM,UAAU,CAAA;AAEpF,OAAO,KAAK,EAAE,WAAW,EAAwC,MAAM,UAAU,CAAA;AAMjF,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,WAAW,CAAA;IACtB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA;IAC9C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAA;CACnD;AAmBD,eAAO,MAAM,YAAY,EAAE,SAAS,CAAC,iBAAiB,CAoMrD,CAAA"}
1
+ {"version":3,"file":"FormRenderer.d.ts","sourceRoot":"","sources":["../../src/components/FormRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAA6D,MAAM,UAAU,CAAA;AAE/F,OAAO,KAAK,EAAE,WAAW,EAAwC,MAAM,UAAU,CAAA;AAMjF,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,WAAW,CAAA;IACtB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA;IAC9C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAA;CACnD;AAmBD,eAAO,MAAM,YAAY,EAAE,SAAS,CAAC,iBAAiB,CA0QrD,CAAA"}