Commit Graph

1064 Commits

Author SHA1 Message Date
Philipinho abd42fd007 chore(server): add duckdb dependency and query-cache env getters 2026-04-19 20:48:16 +01:00
Philipinho eb0f37bfe5 update packages 2026-04-19 02:05:48 +01:00
Philipinho 4c0348e46a docs(base): add working plans for recent base feature work 2026-04-19 02:05:34 +01:00
Philipinho cac4774641 fix(base): stop runaway pagination loop caused by browser scroll anchoring
Browser overflow-anchor silently bumped scrollTop by one page's worth
of pixels every time a new page of rows committed — anchoring on the
AddRowButton that sits below paddingBottom. This kept the near-bottom
threshold satisfied and re-fired onFetchNextPage indefinitely, even
after the user released the scrollbar. Disabling scroll anchoring on
the grid scroll container stops the browser from adjusting scrollTop
in response to content growth.
2026-04-19 02:05:30 +01:00
Philipinho c4d8b6c300 fix(base): stop infinite fetch loop when sorted list scrolled to bottom 2026-04-19 00:27:52 +01:00
Philipinho 95d0457a7e refactor(base): drop /list suffix from base endpoints to match codebase convention 2026-04-18 23:36:52 +01:00
Philipinho 83d28a8505 perf(base): defer rows query until base info loads to avoid bland first request 2026-04-18 23:34:02 +01:00
Philipinho f9bbbc7ebf fix(base): ignore nested listbox and portal clicks so select doesnt close toolbar popover 2026-04-18 23:31:53 +01:00
Philipinho d9e2d7ba3d chore(server): one-shot script to clean poisoned base view configs 2026-04-18 23:27:03 +01:00
Philipinho 44ec2dbe88 fix(base): stop jsonb char-key corruption in seed and guard view config spread 2026-04-18 23:26:03 +01:00
Philipinho a6e9e66bbd fix(base): don't override server sort with client-side position sort 2026-04-18 22:55:15 +01:00
Philipinho a9ea2a99b4 chore(server): let seed-base-rows script take row count via env var 2026-04-18 22:44:52 +01:00
Philipinho 2f6bad141c feat(base): draft flow with save and cancel for new view filters 2026-04-18 22:39:30 +01:00
Philipinho fd1257f61c feat(base): draft flow with save and cancel for new view sorts 2026-04-18 22:38:28 +01:00
Philipinho 321184394d feat(base): show table skeleton instead of centered loader on load 2026-04-18 22:22:49 +01:00
Philipinho b01f6e9af9 feat(base): add layout-matching skeleton loading component 2026-04-18 22:22:11 +01:00
Philipinho 93b1fc534b fix(base): adopt server view state when no local edit is pending 2026-04-18 22:03:25 +01:00
Philipinho 1aa92b1bb5 fix(base): stop synthesized switch input click from re-firing hide toggle 2026-04-18 21:57:28 +01:00
Philipinho d385099eb1 fix(base): fire hide toggle once per click instead of twice 2026-04-18 21:51:43 +01:00
Philipinho d4fe0e0a69 fix(base): re-render grid header and rows when column visibility changes 2026-04-18 21:41:32 +01:00
Philipinho ab9b00f91c fix(base): include new properties in local column state so the grid can scroll to them 2026-04-18 21:11:09 +01:00
Philipinho 64dafe5ac0 fix(base): prompt unsaved changes when discarding dirty rename 2026-04-18 20:58:59 +01:00
Philipinho 097b1c76d4 feat(base): add save and cancel buttons to property rename panel 2026-04-18 20:52:26 +01:00
Philipinho 2c1f66b603 fix(base): refresh hide-fields popover when a property is renamed 2026-04-18 20:52:24 +01:00
Philipinho f812162a26 fix(base): refresh grid headers when a property is renamed 2026-04-18 20:51:14 +01:00
Philipinho b88c060df8 fix(base): escape on dirty property options triggers discard prompt 2026-04-18 20:39:02 +01:00
Philipinho 97cd88405d fix(base): close property menu on escape from main and options panels 2026-04-18 20:35:30 +01:00
Philipinho 5de9a69130 fix(base): close toolbar popovers on escape via document keydown 2026-04-18 20:31:54 +01:00
Philipinho 83d55d9bd3 fix(base): close toolbar popovers on outside click via custom listener 2026-04-18 20:26:57 +01:00
Philipinho 9c71a90637 fix(base): dismiss hide-fields popover on escape and outside click 2026-04-18 19:49:13 +01:00
Philipinho c6f993b610 fix(base): only re-seed column state when view identity changes 2026-04-18 19:23:56 +01:00
Philipinho c331e0ffd3 fix(base): merge live table state into sort and filter mutations 2026-04-18 19:22:41 +01:00
Philipinho 53ee685874 refactor(base): extract buildViewConfigFromTable helper 2026-04-18 19:21:17 +01:00
Philipinho 082a32faa0 fix(client): exempt base csv export from response interceptor unwrap 2026-04-18 18:51:49 +01:00
Philipinho 5c11e59128 fix(base): stabilize properties identity to break render loop 2026-04-18 18:48:41 +01:00
Philipinho 5a4d10081d feat(base): add csv export button to base toolbar 2026-04-18 18:24:24 +01:00
Philipinho 18668c7bcf feat(base): add client csv export service call 2026-04-18 18:23:43 +01:00
Philipinho f119d728a8 fix(base): handle csv export client abort and mid-stream errors 2026-04-18 18:18:34 +01:00
Philipinho 66f9194e96 feat(base): add csv export http endpoint 2026-04-18 18:14:41 +01:00
Philipinho 19b3f26cbb feat(base): register csv export service in module 2026-04-18 18:14:01 +01:00
Philipinho 56c57afff3 feat(base): add streaming csv export service 2026-04-18 18:13:20 +01:00
Philipinho d84aadadbb feat(base): add export base csv dto 2026-04-18 18:11:34 +01:00
Philipinho da0321b468 feat(base): add csv cell serializer with per-type rules 2026-04-18 18:10:47 +01:00
Philipinho db6f82ff7a chore(server): add csv-stringify dependency 2026-04-18 18:08:09 +01:00
Philipinho 207c74427d style(base): unify hover state across selected row cells 2026-04-18 17:15:57 +01:00
Philipinho c53d70b64e style(base): darken select option hover for better visibility 2026-04-18 17:15:23 +01:00
Philipinho 9a1cbc8ea9 style(base): nudge row drag grip past left table border 2026-04-18 17:14:49 +01:00
Philipinho 8b343d25f0 style(base): push row drag grip flush to left table border 2026-04-18 17:13:03 +01:00
Philipinho 2d47ffb25a style(base): align row drag grip flush with cell left edge 2026-04-18 17:12:42 +01:00
Philipinho b6882d774b fix(base): widen row-number column so drag grip sits left of checkbox 2026-04-18 17:09:00 +01:00