fix: wide-table full-screen button placement & clone chrome#20
Conversation
… in clone Two wide-table issues: - The full-screen button floated off-screen at the table's hidden far-right edge: under a shrink-to-fit / horizontally-scrolling ancestor (Obsidian's `.cm-table-widget`), `.lookout-table-host` ballooned to the table's intrinsic width and the absolutely-positioned button went with it. The host is now a 1x1 grid (`minmax(0, 1fr)` + scroller `min-width: 0`) so it caps at the visible column width; the button shares the cell, pinned top-right with `position: sticky` as a safety net. - Full-screen tables showed stray "⋮" marks per cell: Obsidian's Live Preview table-editor chrome (`.table-col-btn`, `.table-row-drag-handle`) was carried into the clone by cloneNode. Strip it from the clone only (the live inline table is untouched). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013zhPq4Kj3TYSkPCuY4ovmj
…clone The earlier table-chrome fix stripped only `.table-col-btn` and `.table-row-drag-handle`, so the horizontal ":::" column drag grip (`.table-col-drag-handle`) and the row "+" menu button (`.table-row-btn`) survived the clone and still showed as stray marks in full-screen. Verified the full control set against the running Obsidian 1.12.7 table widget; strip all four editor-chrome classes on both axes (clone only, the live inline table is untouched). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
E2E in a real vault — follow-up fixVerified in the DOT vault ( Finding: fix #2 was incomplete. The earlier strip selector ( Confirmed the full control set against the running Obsidian 1.12.7 table widget (
Pushed |
What
Fixes two wide-table issues reported against the inline/full-screen table view.
1. Full-screen button floated off-screen (right side hidden)
When a table is wider than the column and an ancestor is shrink-to-fit or horizontally scrolling (Obsidian's Live Preview
.cm-table-widget),.lookout-table-hostballooned to the table's full intrinsic width, taking the absolutely-positioned button with it — so it ended up at the table's hidden far-right edge.The host is now a 1×1 grid (
grid-template-columns: minmax(0, 1fr)) with the scroller atmin-width: 0, which caps the host at the visible column width and keeps the table's overflow inside our own scroller. The button shares the same grid cell, pinned to the top-right viajustify-self/align-self, withposition: stickyas a safety net.2. Stray "⋮" marks in each cell in full-screen
Those were Obsidian's Live Preview table-editor controls — the column handle button (
.table-col-btn) and the row drag grip (.table-row-drag-handle) — carried into the full-screen clone bycloneNode(true). They're now stripped from the clone only; the live inline table is untouched.Verification
npm run lint,npm run build(type-check + bundle),node --check main.js,node scripts/validate.mjs— all green.Notes
.table-col-btn,.table-row-drag-handle) were confirmed against Obsidian's official CSS-variable docs and the kepano/obsidian-minimal theme rather than guessed.🤖 Generated with Claude Code