Skip to content

desktop/src/components/Panel.svelte

Comment 1, line 4

desktop/src/components/Panel.svelte:4

/** Height drag range in pixels, matching lib/panels.ts persisted-value validation. */

Comment 2, line 16

desktop/src/components/Panel.svelte:16

/** Layout group and index used by the parent's drag hit testing. */

Comment 3, line 21

desktop/src/components/Panel.svelte:21

/** Final edit-mode resize dimensions; undefined height fits content. */

Comment 4, line 26

desktop/src/components/Panel.svelte:26

/** Columns occupied in a six-column grid, from 1 to 6. */

Comment 5, line 28

desktop/src/components/Panel.svelte:28

/** Height in pixels; absent height fits content. */

Comment 6, line 31

desktop/src/components/Panel.svelte:31

/** Edit mode displays drag/toggle controls and permits dragging. */

Comment 7, line 38

desktop/src/components/Panel.svelte:38

/** Start edit-mode dragging on header areas outside buttons. */

Comment 8, line 47

desktop/src/components/Panel.svelte:47

// The visibility button does not start a drag.

Comment 9, line 49

desktop/src/components/Panel.svelte:49

// Request pointer capture so moves/releases outside this element still reach it and bubble to window.

Comment 10, line 54

desktop/src/components/Panel.svelte:54

// ---- Pointer resize: preview edge movement, commit on release. ----

Comment 11, line 55

desktop/src/components/Panel.svelte:55

/**
* Resize updated 2026-09-26 follows pointer movement. The earlier stepped widths 1/2/3/4 and
* heights 200/300/400/500 did not follow the edge or reach columns 5/6.
* - pointerdown reads .panel-grid computed tracks/gap, column pitch and panel origin.
* - pointermove derives span 1-6 from pointer x, limited by remaining grid columns,
* and height from starting height plus dy.
* - pointerup commits integer span and rounded height in the 120-800 pixel range.
*/

Comment 12, line 67

desktop/src/components/Panel.svelte:67

/** Column width plus gap in pixels; zero leaves width unchanged outside a six-track layout. */

Comment 13, line 69

desktop/src/components/Panel.svelte:69

/** Maximum columns available between panel origin and the grid's right edge, at most six. */

Comment 14, line 71

desktop/src/components/Panel.svelte:71

/** Starting height; auto uses the current content height. */

Comment 15, line 76

desktop/src/components/Panel.svelte:76

/** Live resize preview; null uses the supplied props. */

Comment 16, line 88

desktop/src/components/Panel.svelte:88

// Request pointer capture to retain handle events when the pointer leaves the panel.

Comment 17, line 99

desktop/src/components/Panel.svelte:99

// Computed tracks in pixels, including fractions; fewer than six tracks leaves width unchanged.

Comment 18, line 135

desktop/src/components/Panel.svelte:135

// Add half a column pitch, then round the pointer's column position to the target span.

Comment 19, line 146

desktop/src/components/Panel.svelte:146

// Preserve each unchanged axis: span for width, and auto/original height for height.

Comment 20, line 224

desktop/src/components/Panel.svelte:224

/* Position the resize handle at bottom right; style:height includes the entire card. */

Comment 21, line 242

desktop/src/components/Panel.svelte:242

/* Editable headers use grab and disable touch scrolling during pointer dragging. */

Comment 22, line 283

desktop/src/components/Panel.svelte:283

/* Sized content fills remaining height and scrolls overflowing charts/tables. */

Comment 23, line 291

desktop/src/components/Panel.svelte:291

/* Edit-only resize handle: 8x8 triangle inside a 24x24 hit area. */