webclient: W4 — chat empty state -> GnEmptyState, card modal -> GnModal
- ChatArea: .empty-chat custom icon+text -> GnEmptyState card
  (keep .empty-chat wrapper only for centering)
- CardGrid: inline Teleport modal (overlay/close/scroll bespoke chrome
  removed) -> GnModal; .card-modal/.card-modal-title class names kept
  inside the new DOM (test contract); kit header slot renders the title
- WelcomeScreen: typography aligned to kit (30px h1, 14px base),
  profile cards get -radius-md, dead .profile-icon style dropped
- CardGrid test: mount with the kit plugin (GnModal resolves),
  two nextTicks for the post-flush open watcher

Verified: vitest 111 passed, build OK, welcome screenshot unchanged
(modal/empty-state visually checked after final build)
1 parent bcf3a9a commit a52780390949777a70b207f2c424d5db55829d5f
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 2 days ago
Showing 4 changed files
View
webclient/src/components/chat/ChatArea.vue
View
webclient/src/components/ui/CardGrid.vue
View
webclient/src/styles/app.scss
View
webclient/tests/unit/components/ui/CardGrid.test.js