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

@@ -0,0 +1,4 @@
name: Badge
form: ~/plugins/acme/catalog/models/badge/fields.yaml
modelClass: Badge
defaultRedirect: acme/catalog/badges

View File

@@ -0,0 +1,7 @@
list: ~/plugins/acme/catalog/models/badge/columns.yaml
modelClass: Badge
title: Badges
recordUrl: acme/catalog/badges/update/:id
recordsPerPage: 20
toolbar:
buttons: [create]

View File

@@ -0,0 +1,7 @@
columns:
name:
label: Name
searchable: true
sort_order:
label: Order
sortable: true

View File

@@ -0,0 +1,11 @@
fields:
name:
label: Name
type: text
required: true
tags:
label: Tags
type: taglist
mode: array
span: full
options: [alpha, beta, gamma]