feat(portal): public-form component architecture

Replace monolithic register/[eventSlug].vue with composable field
renderer, conditional-logic engine, stepper, and per-field components
driven by Form Builder schema. Adds flatpickr for date fields.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-23 17:20:59 +02:00
parent 0cbdad70cd
commit 4074dce402
29 changed files with 2622 additions and 1574 deletions

View File

@@ -8,6 +8,8 @@
"build": "vite build",
"preview": "vite preview --port 5050",
"typecheck": "vue-tsc --noEmit",
"test": "vitest run",
"test:watch": "vitest",
"lint": "eslint . -c .eslintrc.cjs --fix --ext .ts,.js,.cjs,.vue,.tsx,.jsx",
"build:icons": "tsx src/plugins/iconify/build-icons.ts",
"msw:init": "msw init public/ --save",
@@ -36,6 +38,7 @@
"cookie-es": "1.2.2",
"destr": "2.0.5",
"eslint-plugin-regexp": "2.10.0",
"flatpickr": "^4.6.13",
"jwt-decode": "4.0.0",
"mapbox-gl": "3.5.2",
"ofetch": "1.5.0",
@@ -91,6 +94,7 @@
"@typescript-eslint/parser": "7.18.0",
"@vitejs/plugin-vue": "6.0.1",
"@vitejs/plugin-vue-jsx": "5.1.1",
"@vue/test-utils": "^2.4.6",
"eslint": "8.57.1",
"eslint-config-airbnb-base": "15.0.0",
"eslint-import-resolver-typescript": "3.10.1",
@@ -101,6 +105,7 @@
"eslint-plugin-sonarjs": "0.24.0",
"eslint-plugin-unicorn": "51.0.1",
"eslint-plugin-vue": "9.33.0",
"jsdom": "^29.0.2",
"msw": "2.6.8",
"postcss-html": "1.8.0",
"postcss-scss": "4.0.9",
@@ -121,6 +126,7 @@
"vite-plugin-vue-meta-layouts": "0.6.1",
"vite-plugin-vuetify": "2.1.2",
"vite-svg-loader": "5.1.0",
"vitest": "^3.2.4",
"vue-shepherd": "3.0.0",
"vue-tsc": "3.1.2"
},