@seed-ship/mcp-ui-solid 4.2.1 → 4.3.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, 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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"}
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 const [resolving, setResolving] = createSignal(false)\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 // Proposal 1: prefillMode \"resolve\" — call apiUrl to resolve display name → code\n const resolvePrefill = async (prefillValues: string[]) => {\n if (!props.field.apiUrl || !props.field.searchParam) return\n setResolving(true)\n const labelField = props.field.labelField || 'label'\n const valueField = props.field.valueField || 'value'\n\n try {\n const resolvedValues: string[] = []\n for (const pv of prefillValues) {\n const params = new URLSearchParams({ [props.field.searchParam]: pv, limit: '1' })\n if (props.field.extraParams) {\n for (const [k, v] of Object.entries(props.field.extraParams)) params.set(k, v)\n }\n const res = await fetch(`${props.field.apiUrl}?${params}`)\n if (!res.ok) { resolvedValues.push(pv); continue }\n const data = await res.json()\n const items = Array.isArray(data) ? data : data.results || data.features || []\n if (items.length > 0) {\n const code = String(items[0][valueField] || pv)\n const label = items[0][labelField] || pv\n resolvedValues.push(code)\n setSelectedLabels((prev) => new Map(prev).set(code, label))\n } else {\n resolvedValues.push(pv)\n setSelectedLabels((prev) => new Map(prev).set(pv, pv))\n }\n }\n if (isMultiple()) {\n props.onChange(resolvedValues)\n } else {\n props.onChange(resolvedValues[0] || '')\n const label = selectedLabels().get(resolvedValues[0])\n if (label) setQuery(label)\n }\n } catch {\n // Fallback: use raw prefill values\n } finally {\n setResolving(false)\n }\n }\n\n // On mount: handle prefill\n createEffect(() => {\n const prefill = props.field.prefill\n if (!prefill) return\n const values = Array.isArray(prefill) ? prefill : [prefill]\n if (values.length === 0) return\n\n if (props.field.prefillMode === 'resolve') {\n // Proposal 1: resolve display names to codes via API\n resolvePrefill(values)\n } else {\n // Proposal 2 + 6: exact mode — prefill is a code, show displayHint or label as tag\n for (const v of values) {\n if (!selectedLabels().has(v)) {\n setSelectedLabels((prev) => new Map(prev).set(v, props.field.displayHint || v))\n }\n }\n if (!isMultiple() && values[0]) {\n const label = props.field.displayHint || values[0]\n setQuery(label)\n }\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 // Proposal 6: always store valueField (item.value), display labelField\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 // Proposal 6: on blur without selection, auto-resolve typed text to first API result\n const handleBlur = () => {\n setTimeout(() => {\n setIsOpen(false)\n // If user typed but didn't select, and field has valueField, resolve first match\n if (!isMultiple() && query() && !props.value && props.field.valueField && suggestions().length > 0) {\n selectSuggestion(suggestions()[0])\n }\n }, 200)\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 {/* Resolving indicator */}\n <Show when={resolving()}>\n <div class=\"flex items-center gap-1 mb-1 text-xs text-gray-400\">\n <span class=\"animate-spin h-3 w-3 border border-gray-400 border-t-transparent rounded-full\" />\n Resolving...\n </div>\n </Show>\n\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={handleBlur}\n placeholder={isMultiple() && selectedValues().length\n ? 'Add more...'\n : props.field.placeholder}\n disabled={props.disabled || resolving()}\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","resolving","setResolving","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","resolvePrefill","prefillValues","resolvedValues","pv","limit","push","code","prev","get","createEffect","values","prefillMode","has","handleInput","currentLabel","setTimeout","selectSuggestion","handleBlur","m","delete","onCleanup","_el$95","_tmpl$32","_el$100","_el$101","_co$21","_el$102","_el$103","_co$22","_el$98","_el$104","_el$105","_co$23","_tmpl$30","_el$97","_el$106","_el$108","_el$109","_co$24","_el$107","_el$99","_tmpl$31","isSelected","_el$110","_tmpl$34","_el$112","_el$113","_co$25","_el$114","_el$115","_co$26","$$mousedown","preventDefault","_tmpl$33","_v$83","_v$84","_v$80","_v$81","_v$82","input","setInput","addTag","trim","removeTag","tag","handleKeyDown","key","_el$116","_tmpl$35","_el$119","_el$120","_co$27","_el$118","_el$117","_el$121","_el$123","_el$124","_co$28","_el$122","$$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(`<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...`);
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(`<p class="text-xs text-gray-500 dark:text-gray-400 mb-3"><!$><!/> champ<!$><!/> pré-rempli<!$><!/> sur <!$><!/>`), _tmpl$7 = /* @__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":
@@ -180,7 +180,7 @@ const FormRenderer = (props) => {
180
180
  }
181
181
  };
182
182
  return (() => {
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);
183
+ var _el$ = web.getNextElement(_tmpl$5), _el$25 = _el$.firstChild, [_el$26, _co$7] = web.getNextMarker(_el$25.nextSibling), _el$3 = _el$26.nextSibling, _el$19 = _el$3.firstChild, [_el$20, _co$4] = web.getNextMarker(_el$19.nextSibling), _el$4 = _el$20.nextSibling, _el$21 = _el$4.nextSibling, [_el$22, _co$5] = web.getNextMarker(_el$21.nextSibling), _el$23 = _el$22.nextSibling, [_el$24, _co$6] = web.getNextMarker(_el$23.nextSibling), _el$14 = _el$24.nextSibling, _el$15 = _el$14.firstChild, _el$17 = _el$15.nextSibling, [_el$18, _co$3] = web.getNextMarker(_el$17.nextSibling);
184
184
  web.insert(_el$, web.createComponent(solidJs.Show, {
185
185
  get when() {
186
186
  return params().title;
@@ -190,8 +190,27 @@ const FormRenderer = (props) => {
190
190
  web.insert(_el$2, () => params().title);
191
191
  return _el$2;
192
192
  }
193
- }), _el$24, _co$6);
193
+ }), _el$26, _co$7);
194
194
  _el$3.addEventListener("submit", handleSubmit);
195
+ web.insert(_el$3, web.createComponent(solidJs.Show, {
196
+ get when() {
197
+ return params().fields.some((f) => f.prefill != null);
198
+ },
199
+ get children() {
200
+ return (() => {
201
+ const prefilled = params().fields.filter((f) => f.prefill != null).length;
202
+ const total = params().fields.length;
203
+ return (() => {
204
+ var _el$27 = web.getNextElement(_tmpl$6), _el$31 = _el$27.firstChild, [_el$32, _co$8] = web.getNextMarker(_el$31.nextSibling), _el$28 = _el$32.nextSibling, _el$33 = _el$28.nextSibling, [_el$34, _co$9] = web.getNextMarker(_el$33.nextSibling), _el$29 = _el$34.nextSibling, _el$35 = _el$29.nextSibling, [_el$36, _co$0] = web.getNextMarker(_el$35.nextSibling), _el$30 = _el$36.nextSibling, _el$37 = _el$30.nextSibling, [_el$38, _co$1] = web.getNextMarker(_el$37.nextSibling);
205
+ web.insert(_el$27, prefilled, _el$32, _co$8);
206
+ web.insert(_el$27, prefilled > 1 ? "s" : "", _el$34, _co$9);
207
+ web.insert(_el$27, prefilled > 1 ? "s" : "", _el$36, _co$0);
208
+ web.insert(_el$27, total, _el$38, _co$1);
209
+ return _el$27;
210
+ })();
211
+ })();
212
+ }
213
+ }), _el$20, _co$4);
195
214
  web.insert(_el$4, web.createComponent(solidJs.For, {
196
215
  get each() {
197
216
  return params().fields;
@@ -220,7 +239,7 @@ const FormRenderer = (props) => {
220
239
  web.insert(_el$6, () => errors()._form);
221
240
  return _el$5;
222
241
  }
223
- }), _el$20, _co$4);
242
+ }), _el$22, _co$5);
224
243
  web.insert(_el$3, web.createComponent(solidJs.Show, {
225
244
  get when() {
226
245
  return countdown() != null;
@@ -238,10 +257,10 @@ const FormRenderer = (props) => {
238
257
  web.runHydrationEvents();
239
258
  return _el$7;
240
259
  }
241
- }), _el$22, _co$5);
260
+ }), _el$24, _co$6);
242
261
  web.insert(_el$15, (() => {
243
262
  var _c$ = web.memo(() => !!isSubmitting());
244
- return () => _c$() ? web.getNextElement(_tmpl$6) : params().submitLabel || "Submit";
263
+ return () => _c$() ? web.getNextElement(_tmpl$7) : params().submitLabel || "Submit";
245
264
  })());
246
265
  web.insert(_el$14, web.createComponent(solidJs.Show, {
247
266
  get when() {
@@ -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, 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
+ {"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 {/* Proposal 3: prefill summary */}\n <Show when={params().fields.some((f) => f.prefill != null)}>\n {(() => {\n const prefilled = params().fields.filter((f) => f.prefill != null).length\n const total = params().fields.length\n return (\n <p class=\"text-xs text-gray-500 dark:text-gray-400 mb-3\">\n {prefilled} champ{prefilled > 1 ? 's' : ''} pré-rempli{prefilled > 1 ? 's' : ''} sur {total}\n </p>\n )\n })()}\n </Show>\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$25","firstChild","_el$26","_co$7","_$getNextMarker","nextSibling","_el$3","_el$19","_el$20","_co$4","_el$4","_el$21","_el$22","_co$5","_el$23","_el$24","_co$6","_el$14","_el$15","_el$17","_el$18","_co$3","_$insert","_$createComponent","Show","when","title","children","_el$2","_tmpl$","addEventListener","some","prefilled","length","total","_el$27","_tmpl$6","_el$31","_el$32","_co$8","_el$28","_el$33","_el$34","_co$9","_el$29","_el$35","_el$36","_co$0","_el$30","_el$37","_el$38","_co$1","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$7","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,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"}
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,CAsRrD,CAAA"}