Repository navigation
Release v1.3.0 — split panes, block selection, staged deletes & more - #18
Merged
Merged
Conversation
Geist Mono renders arrow sequences (->>, -->>) as ligatures that overlap the preceding word, producing a strikethrough-like artifact over participant names in the diagram editor/creator. Disable liga/calt and font-variant-ligatures on the code textarea so raw Mermaid syntax renders literally.
|
…ogress, FK scroll - DataTable: stage row deletes as a red diff (minus + strikethrough), batched into Apply with a syntax-highlighted (ShikiBlock) SQL preview - Preserve staged edits/deletes across tab switches & unmount via a module cache (pending-table-edits.js); stable persist-key survives teardown - Warn before closing a tab or quitting with unsaved changes - StatusBar: go-to-first/last-column controls + ⌘⌥←/→ shortcuts (shown only on horizontal overflow) - Export: chunked async CSV/JSON builders + loading toast so large exports no longer freeze the UI - AiChat: diagram Save↔Check toggle instead of a permanent 'saved' check; drop silent auto-save - FkSubviewPanel: shift+scroll now scrolls the sub-view, not the main grid
- Drag, Shift+Arrow, and Shift+Click select a rectangular range of cells - Blue block highlight + border drawn on the canvas - Cmd/Ctrl+C copies the range as TSV; Escape collapses it - Range collapses on plain click/arrow and resets on tab switch
Add a resizable split-pane workspace for the main content tabs. Tabs can be dragged from a pane's tab strip and dropped on another pane's edge to split (left/right/top/bottom) or center to move between groups. Each pane has its own tab strip and active tab; the focused pane drives the existing global data pipeline while background panes render read-only snapshots from tab.state. - pane-layout.js: pure binary split-tree model + immutable ops - PaneLayout.svelte: recursive renderer, draggable splitters, drop zones - PaneSnapshot.svelte: read-only DataTable for background panes - TabBar.svelte: draggable tabs emitting drag start/end - StudioShell.svelte: pane state, reconciliation effect, group-aware activate/close/focus, DnD + resize handlers, snippet-based rendering
…n, in-app confirm - Round scrollLeft/Top to whole pixels (canvas sub-pixel shimmer on horizontal scroll) - Intercept pinch/ctrl-wheel → route to crisp app zoom instead of blurry webview page-zoom - JSON-expand overlay: position:sticky instead of reactive translateX (fixes vibration) - Replace window.confirm (blocked in Tauri) with an in-app confirm dialog for close-guards
…tures - Merge worktree-agent-a40d66183bcdde46c (VS Code-style split panes: drag-tab-to-split, resizable splitters, per-pane tab strips, side-by-side tables) - Add unsaved-changes guard to closeTabInGroup (the new primary close path) so the in-app confirm isn't bypassed by pane tab strips / Mod+W - DataTable bindings (dialect, horizontal-scroll, stage-delete-selected) and the in-app confirm dialog verified intact through the merge
…tint, single-cell Cmd+C, clear range on reload
…zone hints Replace HTML5 drag-and-drop (unreliable in Tauri WebKit) with pointer-based dragging: - TabBar: pointerdown+threshold drag detection, click-suppression after drag - Floating tab ghost follows the cursor; live drop-zone hint highlights the target region (left/right/top/bottom half or center) via elementFromPoint hit-testing - PaneLayout: data-pane-group marker + translucent hint overlay driven by dropTarget
Make the table toolbar a @container and progressively hide non-essential controls as the pane narrows: row-range readout (<600px), page-count (<500px), Add label (<440px). Fixes the cramped/overlapping pagination when tables sit in split panes.
…ing, narrow-pane icon collapse 1. Splitter: slim track + always-on hairline + hover grip bar + wider hit area 2. Focused-pane accent: top primary line on the active pane (only when >1 pane) 3. Toolbar: divider + gap before the pagination cluster for breathing room 4. Narrow panes: progressively hide Sort/Columns/Jump/Virtual/Open-in-SQL via container queries so ultra-thin panes stay uncluttered
… underline, icon states)
- Move copy to document-capture (gated by table focus) so it fires regardless of which grid element holds focus — the container onkeydown path could miss it - Add execCommand fallback for clipboard writes when the async Clipboard API is blocked in the Tauri webview
Changing rows-per-page (preset or custom limit input) now saves to localStorage and becomes the default for every new table tab, surviving restarts.
…ransitions - New persisted reduceMotion setting; applySettings toggles [data-reduce-motion] on <html>. Global app.css rule neutralizes transitions/animations (1ms so transitionend still fires) and disables smooth scrolling. - Also honors OS prefers-reduced-motion unconditionally. - Toggle added under Settings → Behavior.
draw() runs in the rAF loop (outside any reactive context); reading a $derived there trips Svelte's derived_inert warning and can return stale values after teardown. computeCellRange() reads only $state, which is safe to read anywhere.
…ations/transitions" This reverts commit b43080e.
Feature release covering this cycle's work: - Split-pane workspace: drag a tab to a pane edge to split, resizable panes, per-pane tab strips, focused-pane accent, pointer-based drag with ghost + hints - Rectangular block cell selection: drag / Shift+Click / Shift+Arrow, Cmd+C copies as TSV (with execCommand fallback) - Staged row deletes shown as a red diff, batched with edits behind a syntax- highlighted DML preview/confirm (Preview-SQL setting) - Pending edits/deletes preserved across tab switches; unsaved-changes close guards - Table toolbar responsiveness via container queries for narrow/split panes - Persisted default rows-per-page - Canvas fixes: horizontal-scroll jitter, pinch-zoom blur, JSON-expand vibration, FK sub-view shift-scroll, derived_inert hardening - Export progress indicator for large CSV/JSON exports - AI chat diagram save toggle; Mermaid editor ligature fix - Cleaner SQL history/saved/charts tab bar
broisnischal
marked this pull request as ready for review
July 4, 2026 19:18
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release v1.3.0
Bumps the product version 1.2.0 → 1.3.0 (
package.json,src-tauri/tauri.conf.json).Highlights
execCommandfallback for the Tauri webview); Esc collapses.Fixes & polish
Notes