@seed-ship/mcp-ui-solid 3.0.3 → 3.0.5

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 if (!isMultiple()) {\n props.onChange('')\n }\n\n if (debounceTimer) clearTimeout(debounceTimer)\n if (value.length < minChars()) {\n setSuggestions([])\n setIsOpen(false)\n return\n }\n debounceTimer = setTimeout(() => fetchSuggestions(value), debounceMs())\n }\n\n const selectSuggestion = (item: { label: string; value: string }) => {\n if (isMultiple()) {\n const current = selectedValues()\n if (!current.includes(item.value)) {\n props.onChange([...current, item.value])\n setSelectedLabels((prev) => new Map(prev).set(item.value, item.label))\n }\n setQuery('')\n setSuggestions([])\n setIsOpen(false)\n } else {\n props.onChange(item.value)\n setSelectedLabels((prev) => new Map(prev).set(item.value, item.label))\n setQuery(item.label)\n setIsOpen(false)\n setSuggestions([])\n }\n }\n\n const removeChip = (val: string) => {\n props.onChange(selectedValues().filter((v) => v !== val))\n setSelectedLabels((prev) => { const m = new Map(prev); m.delete(val); return m })\n }\n\n const getLabel = (val: string) => selectedLabels().get(val) || val\n\n onCleanup(() => { if (debounceTimer) clearTimeout(debounceTimer) })\n\n return (\n <div class=\"relative\">\n {/* Multi chips */}\n <Show when={isMultiple() && selectedValues().length > 0}>\n <div class=\"flex flex-wrap gap-1 mb-1\">\n <For each={selectedValues()}>\n {(val) => (\n <span class=\"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded-full\">\n {getLabel(val)}\n <button\n type=\"button\"\n onClick={() => removeChip(val)}\n class=\"hover:text-blue-900 dark:hover:text-blue-100\"\n aria-label={`Remove ${getLabel(val)}`}\n >\n &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","setTimeout","selectSuggestion","prev","m","delete","get","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 } 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seed-ship/mcp-ui-solid",
3
- "version": "3.0.3",
3
+ "version": "3.0.5",
4
4
  "description": "SolidJS components for rendering MCP-generated UI resources",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -506,8 +506,14 @@ const AutocompleteField: Component<{
506
506
 
507
507
  const handleInput = (value: string) => {
508
508
  setQuery(value)
509
+ // Only clear the stored value if user is actively changing the text
510
+ // (not just focusing/blurring with the selected label intact)
509
511
  if (!isMultiple()) {
510
- props.onChange('')
512
+ // Check if the current query still matches the selected label
513
+ const currentLabel = selectedLabels().get(String(props.value))
514
+ if (currentLabel !== value) {
515
+ props.onChange('')
516
+ }
511
517
  }
512
518
 
513
519
  if (debounceTimer) clearTimeout(debounceTimer)