synops/frontend
vegard 3be2a57f88 Fullfører oppgave 19.1: Canvas-primitiv Svelte-komponent
Implementerer det felles canvas-underlaget som whiteboard, storyboard
og fremtidige canvas-views skal bruke. Ren Svelte 5 komponent uten
backend-avhengigheter.

Funksjoner:
- Pan/zoom kamera med CSS transforms (transform-origin: 0 0)
- Viewport culling med 200px margin for smooth scrolling
- Pointer events (unified mus + touch)
- Pinch-zoom og to-finger-pan for touch
- Snap-to-grid (toggle med G-tast eller toolbar)
- Fullskjermsmodus (fixed positioning)
- Lasso-seleksjon og shift+klikk multi-select
- Edge-pan ved drag nær kanter
- Responsivt: 44px touch targets på mobil, tilpasset toolbar
- zoomToFit() for å sentrere alle objekter
- Consumer-rendering via Svelte 5 snippets

Filer:
- frontend/src/lib/components/canvas/Canvas.svelte
- frontend/src/lib/components/canvas/types.ts
- frontend/src/lib/components/canvas/index.ts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 07:18:29 +00:00
..
src Fullfører oppgave 19.1: Canvas-primitiv Svelte-komponent 2026-03-18 07:18:29 +00:00
static Fullfører oppgave 16.7: Stemmeeffekter med robot og monster voice 2026-03-18 05:34:59 +00:00
.env.example Mottaksflaten v0: vis noder koblet til innlogget bruker (oppgave 3.4) 2026-03-17 14:13:36 +01:00
.gitignore SvelteKit frontend-skjelett (oppgave 3.1) 2026-03-17 13:37:41 +01:00
.npmrc SvelteKit frontend-skjelett (oppgave 3.1) 2026-03-17 13:37:41 +01:00
package-lock.json Fullfører oppgave 16.1: LiveKit-klient i frontend 2026-03-18 04:49:02 +00:00
package.json Fullfører oppgave 16.1: LiveKit-klient i frontend 2026-03-18 04:49:02 +00:00
svelte.config.js SvelteKit frontend-skjelett (oppgave 3.1) 2026-03-17 13:37:41 +01:00
tsconfig.json SvelteKit frontend-skjelett (oppgave 3.1) 2026-03-17 13:37:41 +01:00
vite.config.ts TipTap-editor med create_node-intensjon (oppgave 3.5) 2026-03-17 14:24:25 +01:00