Commit graph

18 commits

Author SHA1 Message Date
3cc17c5784 Fix: Canvas stjeler ikke klikk fra panel-innhold lenger
Canvas handlePointerDown ignorerer klikk inne i .blockshell-content.
Inputs, knapper, selects og lister i paneler fungerer normalt.
Bare headeren starter Canvas-drag.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 03:14:56 +00:00
8675ba0b5d Zoom-reset ankret til viewport-sentrum
Reset til 100% justerer kameraposisjon slik at det du ser i
midten forblir i midten. Gjelder dobbeltklikk og toolbar-knapp.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 03:08:51 +00:00
e94c22fcb8 Navigasjon: scroll=pan, Ctrl+scroll=zoom, piltaster, viewport-plassering
Canvas: scroll=pan, Ctrl+scroll=zoom, piltaster, dblclick=100%.
BlockShell: Ctrl+scroll zoomer panel-innhold.
Nye paneler plasseres i viewport-sentrum, ikke utenfor bildet.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 02:58:25 +00:00
0d9837a917 Klikk på zoom-prosent tilbakestiller til 100%
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 02:46:46 +00:00
00b0dc42bf Fiks workspace-modifikatorer i canvas toolbar
- Legg til stopPropagation på toolbar-div for å hindre at pointer/click-events
  bobler opp til canvas-container og starter pan/lasso
- Zoom-knapper zoomer nå mot viewport-senter (som musehjul) med ±15% steg
- Fullskjerm z-index økt til 9999 (over header)
- Grid-linjer doblet i opacity (6% → 12%) for synlighet i mørkt tema
- Toolbar-separator bruker CSS-variabel i stedet for hardkodet lys farge
2026-03-19 19:45:54 +00:00
58d77756df Zoom-toolbar: − til venstre, + til høyre
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 08:18:30 +00:00
e520b8037c Canvas: sist berørt boks forblir øverst (persistent z-order)
Hver gang en boks klikkes/dras økes en global z-teller og boksen
får høyeste verdi. Rekkefølgen bevares etter at boksen deselekteres.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 07:21:51 +00:00
cf992b6f58 Canvas: valgt/aktiv boks alltid på topp (z-index 10)
Når en boks velges eller dras, får den z-index: 10 slik at den
alltid vises over andre bokser. Uvalgte bokser har z-index: 1.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 07:19:06 +00:00
88dd490d07 Zoom +/- knapper: 1% inkrement for finjustering
Musehjul er fortsatt rask zoom (20% per steg).
Toolbar-knappene gir nå presis kontroll: ±1% per klikk.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 07:17:04 +00:00
ebcacf4847 Globale farger via CSS vars: toolbar, traits og Tailwind-overrides
Alle Tailwind-overrides i app.css bruker nå var(--color-*) i stedet for
hardkodede hex. Dette betyr at temaendringer påvirker alt innhold —
inkludert trait-komponenter, inputs, scrollbar, toolbar og statusfarger.
Canvas-toolbar bruker også CSS vars nå.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 07:04:23 +00:00
bf744639c1 Forenklet fargevelger: én aksentfarge + lys/mørk
Erstattet 9 slidere (3 per farge × 3 farger) med 3 intuitive kontroller:
- Farge: hue-stripe for aksentfarge
- Intensitet: saturation
- Lys/mørk: brightness slider (0=svart, 100=hvit)

Systemet utleder bg, surface, border, text automatisk fra disse.
Canvas-bakgrunn styres nå av --color-bg (var ikke det før).
Presets med emoji-ikoner. Rosa og lys preset lagt til.
Bakoverkompatibel med alle tidligere tema-formater.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 06:50:16 +00:00
fa85d29c35 Canvas: gruppe-drag, grid-persistering, ZOOM_MIN 5%
- Lasso-seleksjon → dra flytter alle valgte paneler sammen
- Grid on/off lagres i workspace-metadata (huskes mellom besøk)
- Zoom lagres allerede via kameraposisjon (x, y, zoom)
- ZOOM_MIN senket til 5% for spredte layouts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 06:18:28 +00:00
79371c20ac Canvas: venstreklikk-dra for pan + kameraposisjon lagres
- Klikk-hold-dra på tom bakgrunn = pan (erstatter midtre museknapp)
- Shift+dra = lasso-seleksjon (som før)
- Kameraposisjon (x, y, zoom) lagres i workspace-metadata og
  gjenopprettes ved neste besøk
- Senket ZOOM_MIN til 5% for å tillate zoom ut på store canvas

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 06:13:02 +00:00
6101bf00b1 Canvas: toolbar fungerer, dobbeltklikk = tilpass visning, diskret seleksjon
- Toolbar-knapper (zoom, tilpass, grid, fullskjerm) blokkert av Canvas
  sin pointerdown-handler. Fikset med closest('.canvas-toolbar')-sjekk.
- Dobbeltklikk på tom flate kjører zoomToFit() for rask navigasjon.
- Seleksjon-ramme dempet: 1px rgba(accent, 0.4) i stedet for 2px solid.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 06:01:10 +00:00
1c9cf66960 Canvas: overflow visible på canvas-object for resize-handles
Resize-handlene i BlockShell bruker negative offsets (-3px) som stikker
utenfor canvas-object divens bounds. Uten overflow: visible fanges ikke
pointer events på kantene.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 05:45:55 +00:00
b190c79fb3 Mørk canvas-bakgrunn + subtile indigo grid-linjer
Canvas var #f8f9fa (nesten hvit). Nå #0a0a0b.
Grid-linjer fra svart 5% til indigo 6% for synlighet på mørk bakgrunn.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 02:29:18 +00:00
543b0ca29f Mørkt tema på alle sider: workspace, canvas, blockshell, traits, collection
Erstattet alle hardkodede lyse farger (white, #f0f2f5, #f3f4f6)
med mørke (#0a0a0b, #1c1c20, #242428) i alle Svelte-komponenter.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 02:27:15 +00:00
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