feat(18.1-01): task 1 taglist field in array mode end to end

- cabana: core type taglist (mode string|array, separator, customTags,
  options as a list of tags), column type gate, save-time normalisation
  (trim, drop empties, dedupe) and taglist.invalid 422, record hydration
- FormField gains separator and customTags (omitempty); OpenAPI and
  schema.d.ts regenerated
- admin: TaglistField chip input with suggestions, registry entry, vitest
- acme.catalog fixture with TestTaglistFieldCompile and TestTaglistFieldSmoke
- docs: forms.md Taglist section, cabana README; rebuilt dist
This commit is contained in:
Jakub Zych
2026-10-14 15:47:30 +02:00
parent 43d2fdd54a
commit 349bad5596
30 changed files with 1089 additions and 29 deletions

View File

@@ -144,6 +144,10 @@ money:
too_precise: "Use at most :scale decimal places. Amounts are never rounded."
too_large: "This amount is larger than the field can store (at most :max)."
currency: "Currency: :code"
taglist:
invalid: "The :field field must be a list of tags."
add: "Add a tag"
remove: "Remove :tag"
secret:
stored: "A value is stored. Leave the field empty to keep it."
env: "Nothing is stored here, so the value from the server configuration is used."

View File

@@ -154,6 +154,10 @@ money:
too_precise: "Użyj najwyżej :scale miejsc po przecinku. Kwoty nie są zaokrąglane."
too_large: "Ta kwota jest większa, niż pole może zapisać (najwyżej :max)."
currency: "Waluta: :code"
taglist:
invalid: "Pole :field musi być listą tagów."
add: "Dodaj tag"
remove: "Usuń :tag"
secret:
stored: "Wartość jest zapisana. Pozostaw pole puste, aby jej nie zmieniać."
env: "Nic tu nie zapisano, więc używana jest wartość z konfiguracji serwera."