Commit Graph

7 Commits (b077c8652b393837eb67393fd20d42c1829d08f4)

Author SHA1 Message Date
boban c67bde8fc5 feat: Toaster, button-component, 10 new modals, links-page fix, vite-tuning
- Toaster Livewire component (toast event, dismiss, auto-hide, 6 tests)
- <x-ui.button> Blade component with wire:loading indicator + variants
- QR modals: CreateQrCode, EditQrCode, DeleteQrCode (TDD, 8 tests)
- Bio modals: CreateBioPage, EditBioPage, DeleteBioPage (TDD, 7 tests)
- Domain modals: AddDomain, VerifyDomain, DeleteDomain (TDD, 7 tests)
- Profile modal: DeleteAccount with password confirm (TDD, 4 tests)
- Links page: fix openModal event name, wire up Edit/Delete to modals, toast on all CRUD
- vite.config.js: add chart.js/auto + optimizeDeps.force
- QrCode model: add newFactory() + QrCodeFactory
- Layout: Toaster embedded before </body>
- 141 tests / 296 assertions all green, verify 29/29

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 13:55:25 +02:00
boban 502a777afd fix: Chart.js global, Vite 504, test DB isolation, verify script green
- bootstrap.js: Chart.js registered components + window.Chart; Alpine stores moved here
- app.js: minimal (CSS + bootstrap import only)
- vite.config.js: optimizeDeps pre-bundle axios/laravel-echo/pusher-js/chart.js
- nginx: proxy_connect_timeout + proxy_buffering off for Vite asset location
- nimuli-app.blade.php: swap @livewire(wire-elements-modal) before @livewireScripts (rule #7)
- PlanLimitsServiceTest: add RefreshDatabase (SQLite unit test had no migrations)
- verify-modals.sh: fix grep pattern, add Chart.js/optimizeDeps checks, set -e safe

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 13:36:40 +02:00
boban b86bdd772a fix: Tailwind v4 CSS-Loading unter Vite dev mode
Problem: Vite 7 serviert CSS-Entry-Points als JavaScript-Module
(Content-Type: text/javascript). Browser ignoriert JS-Response bei
<link rel="stylesheet"> — CSS wurde nie angewandt.

Lösung:
- CSS aus @vite()-Aufrufen entfernt (kein <link>-Tag mehr)
- CSS aus vite.config.js input entfernt
- import '../css/app.css' zu resources/js/app.js hinzugefügt
- Vite injiziert CSS via JS-Modul → <style>-Tags im Browser

In Prod: CSS wird aus JS-Import extrahiert, Manifest linkt sie korrekt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 11:00:17 +02:00
boban 5ac6a198b4 fix: tailwind v4 plugin order + opcache revalidate_freq=0 + npm scripts
- vite.config.js: tailwindcss() vor laravel() Plugin-Reihenfolge (Tailwind v4)
- vite.config.js: refresh-Globs für Livewire + Blade + Lang + CSS
- docker/app/php.ini: opcache.revalidate_freq=0, jit=tracing, memory 512M
- docker/app/Dockerfile: COPY php.ini zu zz-app.ini
- package.json: build:watch + preview + lint scripts ergänzt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 10:26:15 +02:00
boban e551fb62ac fix: Vite-HMR-Websocket via /vite-hmr path + DevUserSeeder
- Add hmr.path '/vite-hmr' to vite.config.js for WSS routing
- Improve nginx /vite-hmr location with full proxy headers
- Add DevUserSeeder (nexxo@nimuli.com) for local dev login
- Register DevUserSeeder in DatabaseSeeder

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 09:45:40 +02:00
boban 2924ec4bf6 chore(vite): remove PostCSS, route HMR through app.nimuli.com
Tailwind v4 uses its own Vite plugin — PostCSS/autoprefixer not needed.
Nginx now proxies Vite dev paths to host:5173 so HMR works without a
separate vite.nimuli.com proxy host.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 08:47:25 +02:00
boban 25dddf5293 feat: initial Nimuli scaffold with Laravel 12, Livewire 3, Octane, Reverb, Docker
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 23:51:57 +02:00