@seed-ship/mcp-ui-solid 2.6.0 → 2.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,16 +5,16 @@ SolidJS components + chat toolkit for MCP-generated UI. Part of the [MCP UI ecos
5
5
  [![npm version](https://img.shields.io/npm/v/@seed-ship/mcp-ui-solid.svg)](https://www.npmjs.com/package/@seed-ship/mcp-ui-solid)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
7
 
8
- ## What's New in v2.5.0
8
+ ## What's New in v2.6.0
9
9
 
10
- - **Chat Bus** (`@experimental`) - Bidirectional event/command bus for agent interactions
10
+ - **Multi-select fields** - `{ type: 'select', multiple: true }` with dropdown checkboxes + removable chips
11
+ - **Autocomplete fields** - Debounced API fetch for large datasets (communes 35K+, SIRENE, addresses)
12
+ - **ChatPrompt form refactor** - All 10 field types now available in ChatPrompt (was 4)
13
+ - **ChatPrompt dismissLabel** - "Send as-is" button replaces X icon for better UX
14
+ - **Chat Bus** (`@experimental`) - Bidirectional event/command bus for agent interactions (15 events, 10 commands)
11
15
  - **ChatPrompt** (`@experimental`) - Structured interactions above chat input (choice, confirm, form)
12
16
  - **19 component renderers** - chart, table, metric, text, code, map, form, modal, image-gallery, video, iframe, image, link, action, action-group, grid, carousel, artifact, footer
13
- - **ExpandableWrapper** - Fullscreen expand for tables, charts, code (DOM reparenting)
14
- - **Table/Chart/Code export** - CSV/TSV/JSON download, PNG export, word wrap toggle
15
17
  - **Tiered iframe sandbox** - Trusted domains get `allow-same-origin`; untrusted get restrictive sandbox
16
- - **Complete validation** - All 19 types validated, scatter/bubble/time-series chart support
17
- - **ComponentToolbar** - Unified toolbar with copy, download, expand, wordwrap actions
18
18
 
19
19
  ## Installation
20
20
 
@@ -250,6 +250,37 @@ Three subtypes for common agent interaction patterns:
250
250
  submitLabel: 'Send',
251
251
  }
252
252
  }} onSubmit={handleResponse} />
253
+
254
+ // Multi-select — dropdown checkboxes + chips (v2.6.0)
255
+ <ChatPrompt config={{
256
+ type: 'form',
257
+ title: 'DVF Parameters',
258
+ config: {
259
+ fields: [
260
+ { name: 'years', label: 'Years', type: 'select', multiple: true,
261
+ options: [{ label: '2024', value: '2024' }, { label: '2023', value: '2023' }, { label: '2022', value: '2022' }] },
262
+ ],
263
+ submitLabel: 'Search',
264
+ }
265
+ }} onSubmit={handleResponse} />
266
+ // → response.value = { years: ["2024", "2023"] }
267
+
268
+ // Autocomplete — API fetch for large datasets (v2.6.0)
269
+ <ChatPrompt config={{
270
+ type: 'form',
271
+ title: 'Select commune',
272
+ config: {
273
+ fields: [
274
+ { name: 'commune', label: 'Commune', type: 'autocomplete',
275
+ apiUrl: 'https://geo.api.gouv.fr/communes', searchParam: 'nom',
276
+ labelField: 'nom', valueField: 'code',
277
+ extraParams: { fields: 'nom,code', limit: '10' }, minChars: 2 },
278
+ ],
279
+ submitLabel: 'Search',
280
+ }
281
+ }} onSubmit={handleResponse} />
282
+ // → type "Mont" → dropdown [Montpellier, Montreuil, ...]
283
+ // → response.value = { commune: "34172" }
253
284
  ```
254
285
 
255
286
  ## Component Renderers (19 types)
@@ -3,7 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const web = require("solid-js/web");
4
4
  const solidJs = require("solid-js");
5
5
  const useConditionalField = require("../hooks/useConditionalField.cjs");
6
- var _tmpl$ = /* @__PURE__ */ web.template(`<span class="text-red-500 ml-1"aria-hidden=true>*`), _tmpl$2 = /* @__PURE__ */ web.template(`<label class="block text-sm font-medium text-gray-700 dark:text-gray-300"><!$><!/><!$><!/>`), _tmpl$3 = /* @__PURE__ */ web.template(`<input>`), _tmpl$4 = /* @__PURE__ */ web.template(`<input type=number>`), _tmpl$5 = /* @__PURE__ */ web.template(`<input type=date>`), _tmpl$6 = /* @__PURE__ */ web.template(`<textarea>`), _tmpl$7 = /* @__PURE__ */ web.template(`<option value disabled>`), _tmpl$8 = /* @__PURE__ */ web.template(`<select><!$><!/><!$><!/>`), _tmpl$9 = /* @__PURE__ */ web.template(`<label class="flex items-center gap-2 cursor-pointer"><input type=checkbox class="w-4 h-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700"><span class="text-sm text-gray-700 dark:text-gray-300"><!$><!/><!$><!/>`), _tmpl$0 = /* @__PURE__ */ web.template(`<div class=space-y-2 role=radiogroup>`), _tmpl$1 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-500 dark:text-gray-400">`), _tmpl$10 = /* @__PURE__ */ web.template(`<p role=alert class="text-xs text-red-600 dark:text-red-400">`), _tmpl$11 = /* @__PURE__ */ web.template(`<div class=space-y-1><!$><!/><!$><!/><!$><!/><!$><!/>`), _tmpl$12 = /* @__PURE__ */ web.template(`<option>`), _tmpl$13 = /* @__PURE__ */ web.template(`<label class="flex items-center gap-2 cursor-pointer"><input type=radio class="w-4 h-4 border-gray-300 text-blue-600 focus:ring-blue-500 dark:border-gray-600"><span class="text-sm text-gray-700 dark:text-gray-300">`), _tmpl$14 = /* @__PURE__ */ web.template(`<div class="flex flex-wrap gap-1 mb-1">`), _tmpl$15 = /* @__PURE__ */ web.template(`<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-48 overflow-auto">`), _tmpl$16 = /* @__PURE__ */ web.template(`<div class=relative><!$><!/><button type=button><span></span><svg class="w-4 h-4 text-gray-400"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M19 9l-7 7-7-7"></path></svg></button><!$><!/>`), _tmpl$17 = /* @__PURE__ */ web.template(`<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"><!$><!/><button type=button class="hover:text-blue-900 dark:hover:text-blue-100">&times;`), _tmpl$18 = /* @__PURE__ */ web.template(`<label class="flex items-center gap-2 px-3 py-2 hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer text-sm"><input type=checkbox class="w-4 h-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500 dark:border-gray-600"><span class="text-gray-900 dark:text-white">`), _tmpl$19 = /* @__PURE__ */ web.template(`<div class=relative><input type=text autocomplete=off><!$><!/>`), _tmpl$20 = /* @__PURE__ */ web.template(`<button type=button class="w-full text-left px-3 py-2 text-sm hover:bg-blue-50 dark:hover:bg-blue-900/20 text-gray-900 dark:text-white">`);
6
+ var _tmpl$ = /* @__PURE__ */ web.template(`<span class="text-red-500 ml-1"aria-hidden=true>*`), _tmpl$2 = /* @__PURE__ */ web.template(`<label class="block text-sm font-medium text-gray-700 dark:text-gray-300"><!$><!/><!$><!/>`), _tmpl$3 = /* @__PURE__ */ web.template(`<input>`), _tmpl$4 = /* @__PURE__ */ web.template(`<input type=number>`), _tmpl$5 = /* @__PURE__ */ web.template(`<input type=date>`), _tmpl$6 = /* @__PURE__ */ web.template(`<textarea>`), _tmpl$7 = /* @__PURE__ */ web.template(`<option value disabled>`), _tmpl$8 = /* @__PURE__ */ web.template(`<select><!$><!/><!$><!/>`), _tmpl$9 = /* @__PURE__ */ web.template(`<label class="flex items-center gap-2 cursor-pointer"><input type=checkbox class="w-4 h-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700"><span class="text-sm text-gray-700 dark:text-gray-300"><!$><!/><!$><!/>`), _tmpl$0 = /* @__PURE__ */ web.template(`<div class=space-y-2 role=radiogroup>`), _tmpl$1 = /* @__PURE__ */ web.template(`<input type=text>`), _tmpl$10 = /* @__PURE__ */ web.template(`<p class="text-xs text-amber-500 mt-0.5">Unknown field type: <!$><!/>`), _tmpl$11 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-500 dark:text-gray-400">`), _tmpl$12 = /* @__PURE__ */ web.template(`<p role=alert class="text-xs text-red-600 dark:text-red-400">`), _tmpl$13 = /* @__PURE__ */ web.template(`<div class=space-y-1><!$><!/><!$><!/><!$><!/><!$><!/>`), _tmpl$14 = /* @__PURE__ */ web.template(`<option>`), _tmpl$15 = /* @__PURE__ */ web.template(`<label class="flex items-center gap-2 cursor-pointer"><input type=radio class="w-4 h-4 border-gray-300 text-blue-600 focus:ring-blue-500 dark:border-gray-600"><span class="text-sm text-gray-700 dark:text-gray-300">`), _tmpl$16 = /* @__PURE__ */ web.template(`<div class="flex flex-wrap gap-1 mb-1">`), _tmpl$17 = /* @__PURE__ */ web.template(`<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-48 overflow-auto">`), _tmpl$18 = /* @__PURE__ */ web.template(`<div class=relative><!$><!/><button type=button><span></span><svg class="w-4 h-4 text-gray-400"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M19 9l-7 7-7-7"></path></svg></button><!$><!/>`), _tmpl$19 = /* @__PURE__ */ web.template(`<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"><!$><!/><button type=button class="hover:text-blue-900 dark:hover:text-blue-100">&times;`), _tmpl$20 = /* @__PURE__ */ web.template(`<label class="flex items-center gap-2 px-3 py-2 hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer text-sm"><input type=checkbox class="w-4 h-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500 dark:border-gray-600"><span class="text-gray-900 dark:text-white">`), _tmpl$21 = /* @__PURE__ */ web.template(`<div class=relative><input type=text autocomplete=off><!$><!/>`), _tmpl$22 = /* @__PURE__ */ web.template(`<button type=button class="w-full text-left px-3 py-2 text-sm hover:bg-blue-50 dark:hover:bg-blue-900/20 text-gray-900 dark:text-white">`);
7
7
  const FormFieldRenderer = (props) => {
8
8
  const {
9
9
  isVisible
@@ -25,7 +25,7 @@ const FormFieldRenderer = (props) => {
25
25
  return isVisible();
26
26
  },
27
27
  get children() {
28
- var _el$ = web.getNextElement(_tmpl$11), _el$27 = _el$.firstChild, [_el$28, _co$7] = web.getNextMarker(_el$27.nextSibling), _el$29 = _el$28.nextSibling, [_el$30, _co$8] = web.getNextMarker(_el$29.nextSibling), _el$31 = _el$30.nextSibling, [_el$32, _co$9] = web.getNextMarker(_el$31.nextSibling), _el$33 = _el$32.nextSibling, [_el$34, _co$0] = web.getNextMarker(_el$33.nextSibling);
28
+ var _el$ = web.getNextElement(_tmpl$13), _el$32 = _el$.firstChild, [_el$33, _co$8] = web.getNextMarker(_el$32.nextSibling), _el$34 = _el$33.nextSibling, [_el$35, _co$9] = web.getNextMarker(_el$34.nextSibling), _el$36 = _el$35.nextSibling, [_el$37, _co$0] = web.getNextMarker(_el$36.nextSibling), _el$38 = _el$37.nextSibling, [_el$39, _co$1] = web.getNextMarker(_el$38.nextSibling);
29
29
  web.insert(_el$, web.createComponent(solidJs.Show, {
30
30
  get when() {
31
31
  return web.memo(() => !!props.field.label)() && props.field.type !== "checkbox";
@@ -44,7 +44,7 @@ const FormFieldRenderer = (props) => {
44
44
  web.effect(() => web.setAttribute(_el$2, "for", fieldId()));
45
45
  return _el$2;
46
46
  }
47
- }), _el$28, _co$7);
47
+ }), _el$33, _co$8);
48
48
  web.insert(_el$, web.createComponent(solidJs.Switch, {
49
49
  get children() {
50
50
  return [web.createComponent(solidJs.Match, {
@@ -219,11 +219,11 @@ const FormFieldRenderer = (props) => {
219
219
  return props.field.options;
220
220
  },
221
221
  children: (option) => (() => {
222
- var _el$35 = web.getNextElement(_tmpl$12);
223
- web.insert(_el$35, () => option.label);
224
- web.effect(() => web.setProperty(_el$35, "disabled", option.disabled));
225
- web.effect(() => web.setProperty(_el$35, "value", option.value));
226
- return _el$35;
222
+ var _el$40 = web.getNextElement(_tmpl$14);
223
+ web.insert(_el$40, () => option.label);
224
+ web.effect(() => web.setProperty(_el$40, "disabled", option.disabled));
225
+ web.effect(() => web.setProperty(_el$40, "value", option.value));
226
+ return _el$40;
227
227
  })()
228
228
  }), _el$15, _co$4);
229
229
  web.effect((_p$) => {
@@ -339,23 +339,23 @@ const FormFieldRenderer = (props) => {
339
339
  return props.field.options;
340
340
  },
341
341
  children: (option, index) => (() => {
342
- var _el$36 = web.getNextElement(_tmpl$13), _el$37 = _el$36.firstChild, _el$38 = _el$37.nextSibling;
343
- _el$37.addEventListener("change", () => props.onChange(option.value));
344
- web.insert(_el$38, () => option.label);
342
+ var _el$41 = web.getNextElement(_tmpl$15), _el$42 = _el$41.firstChild, _el$43 = _el$42.nextSibling;
343
+ _el$42.addEventListener("change", () => props.onChange(option.value));
344
+ web.insert(_el$43, () => option.label);
345
345
  web.effect((_p$) => {
346
- var _v$57 = props.field.name, _v$58 = `${fieldId()}-${index()}`, _v$59 = props.disabled || option.disabled;
347
- _v$57 !== _p$.e && web.setAttribute(_el$37, "name", _p$.e = _v$57);
348
- _v$58 !== _p$.t && web.setAttribute(_el$37, "id", _p$.t = _v$58);
349
- _v$59 !== _p$.a && web.setProperty(_el$37, "disabled", _p$.a = _v$59);
346
+ var _v$62 = props.field.name, _v$63 = `${fieldId()}-${index()}`, _v$64 = props.disabled || option.disabled;
347
+ _v$62 !== _p$.e && web.setAttribute(_el$42, "name", _p$.e = _v$62);
348
+ _v$63 !== _p$.t && web.setAttribute(_el$42, "id", _p$.t = _v$63);
349
+ _v$64 !== _p$.a && web.setProperty(_el$42, "disabled", _p$.a = _v$64);
350
350
  return _p$;
351
351
  }, {
352
352
  e: void 0,
353
353
  t: void 0,
354
354
  a: void 0
355
355
  });
356
- web.effect(() => web.setProperty(_el$37, "value", option.value));
357
- web.effect(() => web.setProperty(_el$37, "checked", props.value === option.value));
358
- return _el$36;
356
+ web.effect(() => web.setProperty(_el$42, "value", option.value));
357
+ web.effect(() => web.setProperty(_el$42, "checked", props.value === option.value));
358
+ return _el$41;
359
359
  })()
360
360
  }));
361
361
  web.effect((_p$) => {
@@ -371,30 +371,60 @@ const FormFieldRenderer = (props) => {
371
371
  });
372
372
  return _el$24;
373
373
  }
374
+ }), web.createComponent(solidJs.Match, {
375
+ when: true,
376
+ get children() {
377
+ return [(() => {
378
+ var _el$25 = web.getNextElement(_tmpl$1);
379
+ _el$25.$$input = (e) => props.onChange(e.currentTarget.value);
380
+ web.effect((_p$) => {
381
+ var _v$57 = fieldId(), _v$58 = props.field.name, _v$59 = props.field.placeholder || `(${props.field.type})`, _v$60 = props.disabled, _v$61 = baseInputClass();
382
+ _v$57 !== _p$.e && web.setAttribute(_el$25, "id", _p$.e = _v$57);
383
+ _v$58 !== _p$.t && web.setAttribute(_el$25, "name", _p$.t = _v$58);
384
+ _v$59 !== _p$.a && web.setAttribute(_el$25, "placeholder", _p$.a = _v$59);
385
+ _v$60 !== _p$.o && web.setProperty(_el$25, "disabled", _p$.o = _v$60);
386
+ _v$61 !== _p$.i && web.className(_el$25, _p$.i = _v$61);
387
+ return _p$;
388
+ }, {
389
+ e: void 0,
390
+ t: void 0,
391
+ a: void 0,
392
+ o: void 0,
393
+ i: void 0
394
+ });
395
+ web.effect(() => web.setProperty(_el$25, "value", props.value || ""));
396
+ web.runHydrationEvents();
397
+ return _el$25;
398
+ })(), (() => {
399
+ var _el$26 = web.getNextElement(_tmpl$10), _el$27 = _el$26.firstChild, _el$28 = _el$27.nextSibling, [_el$29, _co$7] = web.getNextMarker(_el$28.nextSibling);
400
+ web.insert(_el$26, () => props.field.type, _el$29, _co$7);
401
+ return _el$26;
402
+ })()];
403
+ }
374
404
  })];
375
405
  }
376
- }), _el$30, _co$8);
406
+ }), _el$35, _co$9);
377
407
  web.insert(_el$, web.createComponent(solidJs.Show, {
378
408
  get when() {
379
409
  return web.memo(() => !!props.field.helpText)() && !props.error;
380
410
  },
381
411
  get children() {
382
- var _el$25 = web.getNextElement(_tmpl$1);
383
- web.insert(_el$25, () => props.field.helpText);
384
- return _el$25;
412
+ var _el$30 = web.getNextElement(_tmpl$11);
413
+ web.insert(_el$30, () => props.field.helpText);
414
+ return _el$30;
385
415
  }
386
- }), _el$32, _co$9);
416
+ }), _el$37, _co$0);
387
417
  web.insert(_el$, web.createComponent(solidJs.Show, {
388
418
  get when() {
389
419
  return props.error;
390
420
  },
391
421
  get children() {
392
- var _el$26 = web.getNextElement(_tmpl$10);
393
- web.insert(_el$26, () => props.error);
394
- web.effect(() => web.setAttribute(_el$26, "id", errorId()));
395
- return _el$26;
422
+ var _el$31 = web.getNextElement(_tmpl$12);
423
+ web.insert(_el$31, () => props.error);
424
+ web.effect(() => web.setAttribute(_el$31, "id", errorId()));
425
+ return _el$31;
396
426
  }
397
- }), _el$34, _co$0);
427
+ }), _el$39, _co$1);
398
428
  return _el$;
399
429
  }
400
430
  });
@@ -417,60 +447,60 @@ const MultiSelectField = (props) => {
417
447
  return ((_b = (_a = props.field.options) == null ? void 0 : _a.find((o) => o.value === val)) == null ? void 0 : _b.label) || val;
418
448
  };
419
449
  return (() => {
420
- var _el$39 = web.getNextElement(_tmpl$16), _el$44 = _el$39.firstChild, [_el$45, _co$1] = web.getNextMarker(_el$44.nextSibling), _el$41 = _el$45.nextSibling, _el$42 = _el$41.firstChild, _el$46 = _el$41.nextSibling, [_el$47, _co$10] = web.getNextMarker(_el$46.nextSibling);
421
- web.insert(_el$39, web.createComponent(solidJs.Show, {
450
+ var _el$44 = web.getNextElement(_tmpl$18), _el$49 = _el$44.firstChild, [_el$50, _co$10] = web.getNextMarker(_el$49.nextSibling), _el$46 = _el$50.nextSibling, _el$47 = _el$46.firstChild, _el$51 = _el$46.nextSibling, [_el$52, _co$11] = web.getNextMarker(_el$51.nextSibling);
451
+ web.insert(_el$44, web.createComponent(solidJs.Show, {
422
452
  get when() {
423
453
  return props.value.length > 0;
424
454
  },
425
455
  get children() {
426
- var _el$40 = web.getNextElement(_tmpl$14);
427
- web.insert(_el$40, web.createComponent(solidJs.For, {
456
+ var _el$45 = web.getNextElement(_tmpl$16);
457
+ web.insert(_el$45, web.createComponent(solidJs.For, {
428
458
  get each() {
429
459
  return props.value;
430
460
  },
431
461
  children: (val) => (() => {
432
- var _el$48 = web.getNextElement(_tmpl$17), _el$50 = _el$48.firstChild, [_el$51, _co$11] = web.getNextMarker(_el$50.nextSibling), _el$49 = _el$51.nextSibling;
433
- web.insert(_el$48, () => getLabel(val), _el$51, _co$11);
434
- _el$49.$$click = () => removeChip(val);
435
- web.effect(() => web.setAttribute(_el$49, "aria-label", `Remove ${getLabel(val)}`));
462
+ var _el$53 = web.getNextElement(_tmpl$19), _el$55 = _el$53.firstChild, [_el$56, _co$12] = web.getNextMarker(_el$55.nextSibling), _el$54 = _el$56.nextSibling;
463
+ web.insert(_el$53, () => getLabel(val), _el$56, _co$12);
464
+ _el$54.$$click = () => removeChip(val);
465
+ web.effect(() => web.setAttribute(_el$54, "aria-label", `Remove ${getLabel(val)}`));
436
466
  web.runHydrationEvents();
437
- return _el$48;
467
+ return _el$53;
438
468
  })()
439
469
  }));
440
- return _el$40;
470
+ return _el$45;
441
471
  }
442
- }), _el$45, _co$1);
443
- _el$41.$$click = () => setOpen(!open());
444
- web.insert(_el$42, (() => {
472
+ }), _el$50, _co$10);
473
+ _el$46.$$click = () => setOpen(!open());
474
+ web.insert(_el$47, (() => {
445
475
  var _c$ = web.memo(() => !!props.value.length);
446
476
  return () => _c$() ? `${props.value.length} selected` : props.field.placeholder || "Select...";
447
477
  })());
448
- web.insert(_el$39, web.createComponent(solidJs.Show, {
478
+ web.insert(_el$44, web.createComponent(solidJs.Show, {
449
479
  get when() {
450
480
  return open();
451
481
  },
452
482
  get children() {
453
- var _el$43 = web.getNextElement(_tmpl$15);
454
- web.insert(_el$43, web.createComponent(solidJs.For, {
483
+ var _el$48 = web.getNextElement(_tmpl$17);
484
+ web.insert(_el$48, web.createComponent(solidJs.For, {
455
485
  get each() {
456
486
  return props.field.options;
457
487
  },
458
488
  children: (option) => (() => {
459
- var _el$52 = web.getNextElement(_tmpl$18), _el$53 = _el$52.firstChild, _el$54 = _el$53.nextSibling;
460
- _el$53.addEventListener("change", () => toggle(option.value));
461
- web.insert(_el$54, () => option.label);
462
- web.effect(() => web.setProperty(_el$53, "checked", (props.value || []).includes(option.value)));
463
- return _el$52;
489
+ var _el$57 = web.getNextElement(_tmpl$20), _el$58 = _el$57.firstChild, _el$59 = _el$58.nextSibling;
490
+ _el$58.addEventListener("change", () => toggle(option.value));
491
+ web.insert(_el$59, () => option.label);
492
+ web.effect(() => web.setProperty(_el$58, "checked", (props.value || []).includes(option.value)));
493
+ return _el$57;
464
494
  })()
465
495
  }));
466
- return _el$43;
496
+ return _el$48;
467
497
  }
468
- }), _el$47, _co$10);
498
+ }), _el$52, _co$11);
469
499
  web.effect((_p$) => {
470
- var _v$60 = props.disabled, _v$61 = `${props.baseClass} text-left flex items-center justify-between`, _v$62 = props.value.length ? "text-gray-900 dark:text-white" : "text-gray-400";
471
- _v$60 !== _p$.e && web.setProperty(_el$41, "disabled", _p$.e = _v$60);
472
- _v$61 !== _p$.t && web.className(_el$41, _p$.t = _v$61);
473
- _v$62 !== _p$.a && web.className(_el$42, _p$.a = _v$62);
500
+ var _v$65 = props.disabled, _v$66 = `${props.baseClass} text-left flex items-center justify-between`, _v$67 = props.value.length ? "text-gray-900 dark:text-white" : "text-gray-400";
501
+ _v$65 !== _p$.e && web.setProperty(_el$46, "disabled", _p$.e = _v$65);
502
+ _v$66 !== _p$.t && web.className(_el$46, _p$.t = _v$66);
503
+ _v$67 !== _p$.a && web.className(_el$47, _p$.a = _v$67);
474
504
  return _p$;
475
505
  }, {
476
506
  e: void 0,
@@ -478,7 +508,7 @@ const MultiSelectField = (props) => {
478
508
  a: void 0
479
509
  });
480
510
  web.runHydrationEvents();
481
- return _el$39;
511
+ return _el$44;
482
512
  })();
483
513
  };
484
514
  const AutocompleteField = (props) => {
@@ -538,48 +568,48 @@ const AutocompleteField = (props) => {
538
568
  if (debounceTimer) clearTimeout(debounceTimer);
539
569
  });
540
570
  return (() => {
541
- var _el$55 = web.getNextElement(_tmpl$19), _el$56 = _el$55.firstChild, _el$58 = _el$56.nextSibling, [_el$59, _co$12] = web.getNextMarker(_el$58.nextSibling);
542
- _el$56.addEventListener("blur", () => setTimeout(() => setIsOpen(false), 200));
543
- _el$56.addEventListener("focus", () => {
571
+ var _el$60 = web.getNextElement(_tmpl$21), _el$61 = _el$60.firstChild, _el$63 = _el$61.nextSibling, [_el$64, _co$13] = web.getNextMarker(_el$63.nextSibling);
572
+ _el$61.addEventListener("blur", () => setTimeout(() => setIsOpen(false), 200));
573
+ _el$61.addEventListener("focus", () => {
544
574
  if (suggestions().length) setIsOpen(true);
545
575
  });
546
- _el$56.$$input = (e) => handleInput(e.currentTarget.value);
547
- web.insert(_el$55, web.createComponent(solidJs.Show, {
576
+ _el$61.$$input = (e) => handleInput(e.currentTarget.value);
577
+ web.insert(_el$60, web.createComponent(solidJs.Show, {
548
578
  get when() {
549
579
  return web.memo(() => !!isOpen())() && suggestions().length > 0;
550
580
  },
551
581
  get children() {
552
- var _el$57 = web.getNextElement(_tmpl$15);
553
- web.insert(_el$57, web.createComponent(solidJs.For, {
582
+ var _el$62 = web.getNextElement(_tmpl$17);
583
+ web.insert(_el$62, web.createComponent(solidJs.For, {
554
584
  get each() {
555
585
  return suggestions();
556
586
  },
557
587
  children: (item) => (() => {
558
- var _el$60 = web.getNextElement(_tmpl$20);
559
- _el$60.$$click = () => selectSuggestion(item);
560
- _el$60.$$mousedown = (e) => e.preventDefault();
561
- web.insert(_el$60, () => item.label);
588
+ var _el$65 = web.getNextElement(_tmpl$22);
589
+ _el$65.$$click = () => selectSuggestion(item);
590
+ _el$65.$$mousedown = (e) => e.preventDefault();
591
+ web.insert(_el$65, () => item.label);
562
592
  web.runHydrationEvents();
563
- return _el$60;
593
+ return _el$65;
564
594
  })()
565
595
  }));
566
- return _el$57;
596
+ return _el$62;
567
597
  }
568
- }), _el$59, _co$12);
598
+ }), _el$64, _co$13);
569
599
  web.effect((_p$) => {
570
- var _v$63 = props.field.placeholder, _v$64 = props.disabled, _v$65 = props.baseClass;
571
- _v$63 !== _p$.e && web.setAttribute(_el$56, "placeholder", _p$.e = _v$63);
572
- _v$64 !== _p$.t && web.setProperty(_el$56, "disabled", _p$.t = _v$64);
573
- _v$65 !== _p$.a && web.className(_el$56, _p$.a = _v$65);
600
+ var _v$68 = props.field.placeholder, _v$69 = props.disabled, _v$70 = props.baseClass;
601
+ _v$68 !== _p$.e && web.setAttribute(_el$61, "placeholder", _p$.e = _v$68);
602
+ _v$69 !== _p$.t && web.setProperty(_el$61, "disabled", _p$.t = _v$69);
603
+ _v$70 !== _p$.a && web.className(_el$61, _p$.a = _v$70);
574
604
  return _p$;
575
605
  }, {
576
606
  e: void 0,
577
607
  t: void 0,
578
608
  a: void 0
579
609
  });
580
- web.effect(() => web.setProperty(_el$56, "value", query()));
610
+ web.effect(() => web.setProperty(_el$61, "value", query()));
581
611
  web.runHydrationEvents();
582
- return _el$55;
612
+ return _el$60;
583
613
  })();
584
614
  };
585
615
  web.delegateEvents(["input", "click", "mousedown"]);
@@ -1 +1 @@
1
- {"version":3,"file":"FormFieldRenderer.cjs","sources":["../../src/components/FormFieldRenderer.tsx"],"sourcesContent":["/**\n * FormFieldRenderer - Individual form field component\n * Sprint 1: Form Foundation\n * Sprint 2: Conditional field visibility (showWhen)\n */\n\nimport { Component, Show, For, Switch, Match, Accessor, createSignal, createEffect, onCleanup } from 'solid-js'\nimport type { FormFieldParams } from '../types'\nimport { useConditionalField } from '../hooks/useConditionalField'\n\nexport interface FormFieldRendererProps {\n field: FormFieldParams\n value: any\n error?: string\n onChange: (value: any) => void\n disabled?: boolean\n /**\n * Form data accessor for conditional field visibility\n */\n formData?: Accessor<Record<string, any>>\n}\n\nexport const FormFieldRenderer: Component<FormFieldRendererProps> = (props) => {\n // Conditional visibility based on showWhen\n const { isVisible } = useConditionalField({\n condition: props.field.showWhen,\n formData: props.formData || (() => ({})),\n })\n\n const baseInputClass = () => `\n w-full px-3 py-2 border rounded-md\n focus:ring-2 focus:ring-blue-500 focus:border-blue-500\n disabled:bg-gray-100 disabled:cursor-not-allowed\n ${props.error\n ? 'border-red-500 focus:ring-red-500'\n : 'border-gray-300 dark:border-gray-600'}\n dark:bg-gray-700 dark:text-white\n `\n\n const fieldId = () => `field-${props.field.name}`\n const errorId = () => `${props.field.name}-error`\n\n return (\n <Show when={isVisible()}>\n <div class=\"space-y-1\">\n <Show when={props.field.label && props.field.type !== 'checkbox'}>\n <label\n for={fieldId()}\n class=\"block text-sm font-medium text-gray-700 dark:text-gray-300\"\n >\n {props.field.label}\n <Show when={props.field.required}>\n <span class=\"text-red-500 ml-1\" aria-hidden=\"true\">*</span>\n </Show>\n </label>\n </Show>\n\n <Switch>\n {/* Text Input */}\n <Match when={props.field.type === 'text' || props.field.type === 'email' || props.field.type === 'password'}>\n <input\n id={fieldId()}\n type={props.field.type}\n name={props.field.name}\n value={props.value || ''}\n onInput={(e) => props.onChange(e.currentTarget.value)}\n placeholder={props.field.placeholder}\n disabled={props.disabled}\n required={props.field.required}\n minLength={props.field.minLength}\n maxLength={props.field.maxLength}\n pattern={props.field.pattern}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n />\n </Match>\n\n {/* Number Input */}\n <Match when={props.field.type === 'number'}>\n <input\n id={fieldId()}\n type=\"number\"\n name={props.field.name}\n value={props.value ?? ''}\n onInput={(e) => props.onChange(e.currentTarget.value === '' ? undefined : Number(e.currentTarget.value))}\n placeholder={props.field.placeholder}\n disabled={props.disabled}\n required={props.field.required}\n min={props.field.min}\n max={props.field.max}\n step={props.field.step}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n />\n </Match>\n\n {/* Date Input */}\n <Match when={props.field.type === 'date'}>\n <input\n id={fieldId()}\n type=\"date\"\n name={props.field.name}\n value={props.value || ''}\n onInput={(e) => props.onChange(e.currentTarget.value)}\n disabled={props.disabled}\n required={props.field.required}\n min={props.field.minDate}\n max={props.field.maxDate}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n />\n </Match>\n\n {/* Textarea */}\n <Match when={props.field.type === 'textarea'}>\n <textarea\n id={fieldId()}\n name={props.field.name}\n value={props.value || ''}\n onInput={(e) => props.onChange(e.currentTarget.value)}\n placeholder={props.field.placeholder}\n disabled={props.disabled}\n required={props.field.required}\n rows={props.field.rows || 4}\n minLength={props.field.minLength}\n maxLength={props.field.maxLength}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n />\n </Match>\n\n {/* Select (single) */}\n <Match when={props.field.type === 'select' && !props.field.multiple}>\n <select\n id={fieldId()}\n name={props.field.name}\n value={props.value || ''}\n onChange={(e) => props.onChange(e.currentTarget.value)}\n disabled={props.disabled}\n required={props.field.required}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n >\n <Show when={props.field.placeholder}>\n <option value=\"\" disabled>{props.field.placeholder}</option>\n </Show>\n <For each={props.field.options}>\n {(option) => (\n <option value={option.value} disabled={option.disabled}>\n {option.label}\n </option>\n )}\n </For>\n </select>\n </Match>\n\n {/* Checkbox */}\n <Match when={props.field.type === 'checkbox'}>\n <label class=\"flex items-center gap-2 cursor-pointer\">\n <input\n id={fieldId()}\n type=\"checkbox\"\n name={props.field.name}\n checked={props.value || false}\n onChange={(e) => props.onChange(e.currentTarget.checked)}\n disabled={props.disabled}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class=\"w-4 h-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700\"\n />\n <span class=\"text-sm text-gray-700 dark:text-gray-300\">\n {props.field.checkboxLabel || props.field.label}\n <Show when={props.field.required}>\n <span class=\"text-red-500 ml-1\" aria-hidden=\"true\">*</span>\n </Show>\n </span>\n </label>\n </Match>\n\n {/* Multi-Select with chips */}\n <Match when={props.field.type === 'select' && props.field.multiple}>\n <MultiSelectField\n field={props.field}\n value={props.value || []}\n onChange={props.onChange}\n disabled={props.disabled}\n baseClass={baseInputClass()}\n />\n </Match>\n\n {/* Autocomplete with API fetch */}\n <Match when={props.field.type === 'autocomplete'}>\n <AutocompleteField\n field={props.field}\n value={props.value || ''}\n onChange={props.onChange}\n disabled={props.disabled}\n baseClass={baseInputClass()}\n />\n </Match>\n\n {/* Radio Group */}\n <Match when={props.field.type === 'radio'}>\n <div\n class=\"space-y-2\"\n role=\"radiogroup\"\n aria-labelledby={props.field.label ? `${fieldId()}-label` : undefined}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n >\n <For each={props.field.options}>\n {(option, index) => (\n <label class=\"flex items-center gap-2 cursor-pointer\">\n <input\n type=\"radio\"\n name={props.field.name}\n id={`${fieldId()}-${index()}`}\n value={option.value}\n checked={props.value === option.value}\n onChange={() => props.onChange(option.value)}\n disabled={props.disabled || option.disabled}\n class=\"w-4 h-4 border-gray-300 text-blue-600 focus:ring-blue-500 dark:border-gray-600\"\n />\n <span class=\"text-sm text-gray-700 dark:text-gray-300\">\n {option.label}\n </span>\n </label>\n )}\n </For>\n </div>\n </Match>\n </Switch>\n\n <Show when={props.field.helpText && !props.error}>\n <p class=\"text-xs text-gray-500 dark:text-gray-400\">{props.field.helpText}</p>\n </Show>\n\n <Show when={props.error}>\n <p id={errorId()} role=\"alert\" class=\"text-xs text-red-600 dark:text-red-400\">\n {props.error}\n </p>\n </Show>\n </div>\n </Show>\n )\n}\n\n// ─── Multi-Select with Chips ─────────────────────────────────\n\nconst MultiSelectField: Component<{\n field: FormFieldParams\n value: string[]\n onChange: (value: string[]) => void\n disabled?: boolean\n baseClass: string\n}> = (props) => {\n const [open, setOpen] = createSignal(false)\n\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 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())}\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 */}\n <Show when={open()}>\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-48 overflow-auto\">\n <For each={props.field.options}>\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 </div>\n </Show>\n </div>\n )\n}\n\n// ─── Autocomplete with API fetch ─────────────────────────────\n\nconst AutocompleteField: Component<{\n field: FormFieldParams\n value: string\n onChange: (value: 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 [selectedLabel, setSelectedLabel] = createSignal('')\n let debounceTimer: ReturnType<typeof setTimeout> | null = null\n\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 setSelectedLabel('')\n props.onChange('')\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 props.onChange(item.value)\n setSelectedLabel(item.label)\n setQuery(item.label)\n setIsOpen(false)\n setSuggestions([])\n }\n\n onCleanup(() => { if (debounceTimer) clearTimeout(debounceTimer) })\n\n return (\n <div class=\"relative\">\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={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-48 overflow-auto\">\n <For each={suggestions()}>\n {(item) => (\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 text-gray-900 dark:text-white\"\n >\n {item.label}\n </button>\n )}\n </For>\n </div>\n </Show>\n </div>\n )\n}\n"],"names":["FormFieldRenderer","props","isVisible","useConditionalField","condition","field","showWhen","formData","baseInputClass","error","fieldId","name","errorId","_$createComponent","Show","when","children","_el$","_$getNextElement","_tmpl$11","_el$27","firstChild","_el$28","_co$7","_$getNextMarker","nextSibling","_el$29","_el$30","_co$8","_el$31","_el$32","_co$9","_el$33","_el$34","_co$0","_$insert","_$memo","label","type","_el$2","_tmpl$2","_el$4","_el$5","_co$","_el$6","_el$7","_co$2","required","_tmpl$","_$effect","_$setAttribute","Switch","Match","_el$8","_tmpl$3","$$input","e","onChange","currentTarget","value","_p$","_v$","_v$2","_v$3","_v$4","placeholder","_v$5","disabled","_v$6","_v$7","minLength","_v$8","maxLength","_v$9","pattern","_v$0","_v$1","undefined","_v$10","t","a","o","i","_$setProperty","n","s","h","r","d","l","u","_$className","_$runHydrationEvents","_el$9","_tmpl$4","Number","_v$11","_v$12","_v$13","_v$14","_v$15","_v$16","min","_v$17","max","_v$18","step","_v$19","_v$20","_v$21","_el$0","_tmpl$5","_v$22","_v$23","_v$24","_v$25","_v$26","minDate","_v$27","maxDate","_v$28","_v$29","_v$30","_el$1","_tmpl$6","_v$31","_v$32","_v$33","_v$34","_v$35","_v$36","rows","_v$37","_v$38","_v$39","_v$40","_v$41","multiple","_el$10","_tmpl$8","_el$12","_el$13","_co$3","_el$14","_el$15","_co$4","addEventListener","_el$11","_tmpl$7","For","each","options","option","_el$35","_tmpl$12","_v$42","_v$43","_v$44","_v$45","_v$46","_v$47","_v$48","_el$16","_tmpl$9","_el$17","_el$18","_el$20","_el$21","_co$5","_el$22","_el$23","_co$6","checked","checkboxLabel","_v$49","_v$50","_v$51","_v$52","_v$53","MultiSelectField","baseClass","AutocompleteField","_el$24","_tmpl$0","index","_el$36","_tmpl$13","_el$37","_el$38","_v$57","_v$58","_v$59","_v$54","_v$55","_v$56","helpText","_el$25","_tmpl$1","_el$26","_tmpl$10","open","setOpen","createSignal","toggle","val","current","includes","filter","v","removeChip","getLabel","find","_el$39","_tmpl$16","_el$44","_el$45","_co$1","_el$41","_el$42","_el$46","_el$47","_co$10","length","_el$40","_tmpl$14","_el$48","_tmpl$17","_el$50","_el$51","_co$11","_el$49","$$click","_c$","_el$43","_tmpl$15","_el$52","_tmpl$18","_el$53","_el$54","_v$60","_v$61","_v$62","query","setQuery","suggestions","setSuggestions","isOpen","setIsOpen","selectedLabel","setSelectedLabel","debounceTimer","minChars","debounceMs","fetchSuggestions","q","apiUrl","searchParam","params","URLSearchParams","extraParams","k","Object","entries","set","res","fetch","ok","data","json","items","Array","isArray","results","features","labelField","valueField","slice","map","item","String","handleInput","setTimeout","selectSuggestion","onCleanup","_el$55","_tmpl$19","_el$56","_el$58","_el$59","_co$12","_el$57","_el$60","_tmpl$20","$$mousedown","preventDefault","_v$63","_v$64","_v$65","_$delegateEvents"],"mappings":"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"}
1
+ {"version":3,"file":"FormFieldRenderer.cjs","sources":["../../src/components/FormFieldRenderer.tsx"],"sourcesContent":["/**\n * FormFieldRenderer - Individual form field component\n * Sprint 1: Form Foundation\n * Sprint 2: Conditional field visibility (showWhen)\n */\n\nimport { Component, Show, For, Switch, Match, Accessor, createSignal, createEffect, onCleanup } from 'solid-js'\nimport type { FormFieldParams } from '../types'\nimport { useConditionalField } from '../hooks/useConditionalField'\n\nexport interface FormFieldRendererProps {\n field: FormFieldParams\n value: any\n error?: string\n onChange: (value: any) => void\n disabled?: boolean\n /**\n * Form data accessor for conditional field visibility\n */\n formData?: Accessor<Record<string, any>>\n}\n\nexport const FormFieldRenderer: Component<FormFieldRendererProps> = (props) => {\n // Conditional visibility based on showWhen\n const { isVisible } = useConditionalField({\n condition: props.field.showWhen,\n formData: props.formData || (() => ({})),\n })\n\n const baseInputClass = () => `\n w-full px-3 py-2 border rounded-md\n focus:ring-2 focus:ring-blue-500 focus:border-blue-500\n disabled:bg-gray-100 disabled:cursor-not-allowed\n ${props.error\n ? 'border-red-500 focus:ring-red-500'\n : 'border-gray-300 dark:border-gray-600'}\n dark:bg-gray-700 dark:text-white\n `\n\n const fieldId = () => `field-${props.field.name}`\n const errorId = () => `${props.field.name}-error`\n\n return (\n <Show when={isVisible()}>\n <div class=\"space-y-1\">\n <Show when={props.field.label && props.field.type !== 'checkbox'}>\n <label\n for={fieldId()}\n class=\"block text-sm font-medium text-gray-700 dark:text-gray-300\"\n >\n {props.field.label}\n <Show when={props.field.required}>\n <span class=\"text-red-500 ml-1\" aria-hidden=\"true\">*</span>\n </Show>\n </label>\n </Show>\n\n <Switch>\n {/* Text Input */}\n <Match when={props.field.type === 'text' || props.field.type === 'email' || props.field.type === 'password'}>\n <input\n id={fieldId()}\n type={props.field.type}\n name={props.field.name}\n value={props.value || ''}\n onInput={(e) => props.onChange(e.currentTarget.value)}\n placeholder={props.field.placeholder}\n disabled={props.disabled}\n required={props.field.required}\n minLength={props.field.minLength}\n maxLength={props.field.maxLength}\n pattern={props.field.pattern}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n />\n </Match>\n\n {/* Number Input */}\n <Match when={props.field.type === 'number'}>\n <input\n id={fieldId()}\n type=\"number\"\n name={props.field.name}\n value={props.value ?? ''}\n onInput={(e) => props.onChange(e.currentTarget.value === '' ? undefined : Number(e.currentTarget.value))}\n placeholder={props.field.placeholder}\n disabled={props.disabled}\n required={props.field.required}\n min={props.field.min}\n max={props.field.max}\n step={props.field.step}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n />\n </Match>\n\n {/* Date Input */}\n <Match when={props.field.type === 'date'}>\n <input\n id={fieldId()}\n type=\"date\"\n name={props.field.name}\n value={props.value || ''}\n onInput={(e) => props.onChange(e.currentTarget.value)}\n disabled={props.disabled}\n required={props.field.required}\n min={props.field.minDate}\n max={props.field.maxDate}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n />\n </Match>\n\n {/* Textarea */}\n <Match when={props.field.type === 'textarea'}>\n <textarea\n id={fieldId()}\n name={props.field.name}\n value={props.value || ''}\n onInput={(e) => props.onChange(e.currentTarget.value)}\n placeholder={props.field.placeholder}\n disabled={props.disabled}\n required={props.field.required}\n rows={props.field.rows || 4}\n minLength={props.field.minLength}\n maxLength={props.field.maxLength}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n />\n </Match>\n\n {/* Select (single) */}\n <Match when={props.field.type === 'select' && !props.field.multiple}>\n <select\n id={fieldId()}\n name={props.field.name}\n value={props.value || ''}\n onChange={(e) => props.onChange(e.currentTarget.value)}\n disabled={props.disabled}\n required={props.field.required}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class={baseInputClass()}\n >\n <Show when={props.field.placeholder}>\n <option value=\"\" disabled>{props.field.placeholder}</option>\n </Show>\n <For each={props.field.options}>\n {(option) => (\n <option value={option.value} disabled={option.disabled}>\n {option.label}\n </option>\n )}\n </For>\n </select>\n </Match>\n\n {/* Checkbox */}\n <Match when={props.field.type === 'checkbox'}>\n <label class=\"flex items-center gap-2 cursor-pointer\">\n <input\n id={fieldId()}\n type=\"checkbox\"\n name={props.field.name}\n checked={props.value || false}\n onChange={(e) => props.onChange(e.currentTarget.checked)}\n disabled={props.disabled}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n class=\"w-4 h-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700\"\n />\n <span class=\"text-sm text-gray-700 dark:text-gray-300\">\n {props.field.checkboxLabel || props.field.label}\n <Show when={props.field.required}>\n <span class=\"text-red-500 ml-1\" aria-hidden=\"true\">*</span>\n </Show>\n </span>\n </label>\n </Match>\n\n {/* Multi-Select with chips */}\n <Match when={props.field.type === 'select' && props.field.multiple}>\n <MultiSelectField\n field={props.field}\n value={props.value || []}\n onChange={props.onChange}\n disabled={props.disabled}\n baseClass={baseInputClass()}\n />\n </Match>\n\n {/* Autocomplete with API fetch */}\n <Match when={props.field.type === 'autocomplete'}>\n <AutocompleteField\n field={props.field}\n value={props.value || ''}\n onChange={props.onChange}\n disabled={props.disabled}\n baseClass={baseInputClass()}\n />\n </Match>\n\n {/* Radio Group */}\n <Match when={props.field.type === 'radio'}>\n <div\n class=\"space-y-2\"\n role=\"radiogroup\"\n aria-labelledby={props.field.label ? `${fieldId()}-label` : undefined}\n aria-invalid={!!props.error}\n aria-describedby={props.error ? errorId() : undefined}\n >\n <For each={props.field.options}>\n {(option, index) => (\n <label class=\"flex items-center gap-2 cursor-pointer\">\n <input\n type=\"radio\"\n name={props.field.name}\n id={`${fieldId()}-${index()}`}\n value={option.value}\n checked={props.value === option.value}\n onChange={() => props.onChange(option.value)}\n disabled={props.disabled || option.disabled}\n class=\"w-4 h-4 border-gray-300 text-blue-600 focus:ring-blue-500 dark:border-gray-600\"\n />\n <span class=\"text-sm text-gray-700 dark:text-gray-300\">\n {option.label}\n </span>\n </label>\n )}\n </For>\n </div>\n </Match>\n\n {/* Fallback for unknown field types — renders as text input with warning */}\n <Match when={true}>\n <input\n id={fieldId()}\n type=\"text\"\n name={props.field.name}\n value={props.value || ''}\n onInput={(e) => props.onChange(e.currentTarget.value)}\n placeholder={props.field.placeholder || `(${props.field.type})`}\n disabled={props.disabled}\n class={baseInputClass()}\n />\n <p class=\"text-xs text-amber-500 mt-0.5\">Unknown field type: {props.field.type}</p>\n </Match>\n </Switch>\n\n <Show when={props.field.helpText && !props.error}>\n <p class=\"text-xs text-gray-500 dark:text-gray-400\">{props.field.helpText}</p>\n </Show>\n\n <Show when={props.error}>\n <p id={errorId()} role=\"alert\" class=\"text-xs text-red-600 dark:text-red-400\">\n {props.error}\n </p>\n </Show>\n </div>\n </Show>\n )\n}\n\n// ─── Multi-Select with Chips ─────────────────────────────────\n\nconst MultiSelectField: Component<{\n field: FormFieldParams\n value: string[]\n onChange: (value: string[]) => void\n disabled?: boolean\n baseClass: string\n}> = (props) => {\n const [open, setOpen] = createSignal(false)\n\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 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())}\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 */}\n <Show when={open()}>\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-48 overflow-auto\">\n <For each={props.field.options}>\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 </div>\n </Show>\n </div>\n )\n}\n\n// ─── Autocomplete with API fetch ─────────────────────────────\n\nconst AutocompleteField: Component<{\n field: FormFieldParams\n value: string\n onChange: (value: 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 [selectedLabel, setSelectedLabel] = createSignal('')\n let debounceTimer: ReturnType<typeof setTimeout> | null = null\n\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 setSelectedLabel('')\n props.onChange('')\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 props.onChange(item.value)\n setSelectedLabel(item.label)\n setQuery(item.label)\n setIsOpen(false)\n setSuggestions([])\n }\n\n onCleanup(() => { if (debounceTimer) clearTimeout(debounceTimer) })\n\n return (\n <div class=\"relative\">\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={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-48 overflow-auto\">\n <For each={suggestions()}>\n {(item) => (\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 text-gray-900 dark:text-white\"\n >\n {item.label}\n </button>\n )}\n </For>\n </div>\n </Show>\n </div>\n )\n}\n"],"names":["FormFieldRenderer","props","isVisible","useConditionalField","condition","field","showWhen","formData","baseInputClass","error","fieldId","name","errorId","_$createComponent","Show","when","children","_el$","_$getNextElement","_tmpl$13","_el$32","firstChild","_el$33","_co$8","_$getNextMarker","nextSibling","_el$34","_el$35","_co$9","_el$36","_el$37","_co$0","_el$38","_el$39","_co$1","_$insert","_$memo","label","type","_el$2","_tmpl$2","_el$4","_el$5","_co$","_el$6","_el$7","_co$2","required","_tmpl$","_$effect","_$setAttribute","Switch","Match","_el$8","_tmpl$3","$$input","e","onChange","currentTarget","value","_p$","_v$","_v$2","_v$3","_v$4","placeholder","_v$5","disabled","_v$6","_v$7","minLength","_v$8","maxLength","_v$9","pattern","_v$0","_v$1","undefined","_v$10","t","a","o","i","_$setProperty","n","s","h","r","d","l","u","_$className","_$runHydrationEvents","_el$9","_tmpl$4","Number","_v$11","_v$12","_v$13","_v$14","_v$15","_v$16","min","_v$17","max","_v$18","step","_v$19","_v$20","_v$21","_el$0","_tmpl$5","_v$22","_v$23","_v$24","_v$25","_v$26","minDate","_v$27","maxDate","_v$28","_v$29","_v$30","_el$1","_tmpl$6","_v$31","_v$32","_v$33","_v$34","_v$35","_v$36","rows","_v$37","_v$38","_v$39","_v$40","_v$41","multiple","_el$10","_tmpl$8","_el$12","_el$13","_co$3","_el$14","_el$15","_co$4","addEventListener","_el$11","_tmpl$7","For","each","options","option","_el$40","_tmpl$14","_v$42","_v$43","_v$44","_v$45","_v$46","_v$47","_v$48","_el$16","_tmpl$9","_el$17","_el$18","_el$20","_el$21","_co$5","_el$22","_el$23","_co$6","checked","checkboxLabel","_v$49","_v$50","_v$51","_v$52","_v$53","MultiSelectField","baseClass","AutocompleteField","_el$24","_tmpl$0","index","_el$41","_tmpl$15","_el$42","_el$43","_v$62","_v$63","_v$64","_v$54","_v$55","_v$56","_el$25","_tmpl$1","_v$57","_v$58","_v$59","_v$60","_v$61","_el$26","_tmpl$10","_el$27","_el$28","_el$29","_co$7","helpText","_el$30","_tmpl$11","_el$31","_tmpl$12","open","setOpen","createSignal","toggle","val","current","includes","filter","v","removeChip","getLabel","find","_el$44","_tmpl$18","_el$49","_el$50","_co$10","_el$46","_el$47","_el$51","_el$52","_co$11","length","_el$45","_tmpl$16","_el$53","_tmpl$19","_el$55","_el$56","_co$12","_el$54","$$click","_c$","_el$48","_tmpl$17","_el$57","_tmpl$20","_el$58","_el$59","_v$65","_v$66","_v$67","query","setQuery","suggestions","setSuggestions","isOpen","setIsOpen","selectedLabel","setSelectedLabel","debounceTimer","minChars","debounceMs","fetchSuggestions","q","apiUrl","searchParam","params","URLSearchParams","extraParams","k","Object","entries","set","res","fetch","ok","data","json","items","Array","isArray","results","features","labelField","valueField","slice","map","item","String","handleInput","setTimeout","selectSuggestion","onCleanup","_el$60","_tmpl$21","_el$61","_el$63","_el$64","_co$13","_el$62","_el$65","_tmpl$22","$$mousedown","preventDefault","_v$68","_v$69","_v$70","_$delegateEvents"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormFieldRenderer.d.ts","sourceRoot":"","sources":["../../src/components/FormFieldRenderer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAA4B,QAAQ,EAAyC,MAAM,UAAU,CAAA;AAC/G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG/C,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,eAAe,CAAA;IACtB,KAAK,EAAE,GAAG,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;CACzC;AAED,eAAO,MAAM,iBAAiB,EAAE,SAAS,CAAC,sBAAsB,CAoO/D,CAAA"}
1
+ {"version":3,"file":"FormFieldRenderer.d.ts","sourceRoot":"","sources":["../../src/components/FormFieldRenderer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAA4B,QAAQ,EAAyC,MAAM,UAAU,CAAA;AAC/G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAG/C,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,eAAe,CAAA;IACtB,KAAK,EAAE,GAAG,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;CACzC;AAED,eAAO,MAAM,iBAAiB,EAAE,SAAS,CAAC,sBAAsB,CAmP/D,CAAA"}