diff --git a/.gitignore b/.gitignore index e5d4875..7099806 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,9 @@ tmp/ .idea/ .vscode/ +# JS deps +ui-kit/node_modules/ + # Dev data and local state /data/ *.sqlite diff --git a/README.md b/README.md index 8ff548c..d850813 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,22 @@ Boilerplate riusabile per: In ambiente `develop`, le email vengono salvate in `./data/emails` (sink locale). +## UI Kit (Vite + Svelte CE) + +Comandi: + +```bash +cd ui-kit +npm install +npm run dev +npm run build +``` + +La build scrive direttamente in `web/static/ui`: + +- `ui.esm.js` +- `ui.css` + ## Struttura iniziale ```text @@ -32,6 +48,7 @@ In ambiente `develop`, le email vengono salvate in `./data/emails` (sink locale) │ ├── models/ │ ├── repo/ │ └── services/ +├── ui-kit/ ├── web/ │ ├── emails/ │ │ └── templates/ @@ -43,29 +60,5 @@ In ambiente `develop`, le email vengono salvate in `./data/emails` (sink locale) │ ├── admin/ │ ├── private/ │ └── public/ -├── ui-kit/ └── data/ # solo sviluppo locale ``` - -## TODO Checklist - -- [ ] Definire bootstrap server in `cmd/server` (entrypoint + lifecycle). -- [ ] Configurare loader config (`env`, `flags`) in `internal/config`. -- [ ] Impostare `internal/db` con supporto SQLite (dev) e Postgres (prod). -- [ ] Definire modelli base GORM in `internal/models` (User, Role, Session, ecc.). -- [ ] Implementare repository layer in `internal/repo`. -- [ ] Implementare service layer in `internal/services`. -- [ ] Implementare controller layer in `internal/controllers`. -- [ ] Configurare router HTTP in `internal/http` (gruppi public/private/admin). -- [ ] Aggiungere middleware comuni in `internal/middleware` (logging, recovery, auth, cors). -- [ ] Implementare auth in `internal/auth` (login/logout/session o token). -- [ ] Implementare RBAC con ruolo `admin`. -- [ ] Configurare mailer + email sink in `internal/mailer`. -- [ ] Definire template rendering per `web/templates/public`, `web/templates/private`, `web/templates/admin`. -- [ ] Preparare template email in `web/emails/templates`. -- [ ] Definire static assets pipeline e convenzioni in `web/static`. -- [ ] Impostare `ui-kit` con Svelte Custom Elements e output in `web/static/ui`. -- [ ] Definire integrazione HTMX lato template/partials. -- [ ] Aggiungere migrazioni DB iniziali e seed minimo. -- [ ] Aggiungere test base (unit + integrazione) per router/auth/repo. -- [ ] Aggiungere script Makefile/task runner per setup e run locale. diff --git a/codex-prompt/prompt-9.txt b/codex-prompt/prompt-9.txt new file mode 100644 index 0000000..b3a2ee2 --- /dev/null +++ b/codex-prompt/prompt-9.txt @@ -0,0 +1,33 @@ +Crea /ui-kit come progetto Vite + Svelte per custom elements. + +Requisiti: +- build deve scrivere direttamente in ../web/static/ui: + - ui.esm.js + - ui.css (tokens+base) +- src/index.ts registra: + - ui-modal + - ui-drop-down + - ui-data-table-shell (driver htmx per aggiornare un target) + +Componenti: +1) UiModal.svelte: + - + - attributi: title, open (boolean presence) + - close on ESC, backdrop click + - focus trap minimale + - emette evento "ui:close" (bubbles+composed) + - slot contenuto (HTMX swappa dentro al tag) + +2) UiDropDown.svelte: + - usa