alpha
Login
or
Join now
eagraf.dev
/
textile
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
A local-first note taking app
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
textile
/
src
/
workspaces
/
at
markdown-live-preview-node-types
2 folders
2 files
Ethan Graf
Move split controls to the title bar + title-bar/sidebar polish
3w ago
aa77d352
tiling
Move split controls to the title bar + title-bar/sidebar polish - Split Right / Split Down move from the bottom bar to the top bar as icon buttons (SplitRightIcon / SplitDownIcon) with hover tooltips, left of the workspace selector, shown only in tiling mode. Wired through the tiling handle (App.handleSplitRight/Down). - Title bar: compact fixed-height buttons (size-5) with header padding so hover highlights no longer reach the screen edge; tooltip + pointer cursor on the sidebar toggle, split buttons, and workspace menu. - Sidebar: fix asymmetric collapse animation — the open state now also transitions width, so re-opening animates instead of snapping. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3 weeks ago
zen
Tabs per tile (phase 2) + per-vault workspace state Tab strip UI and per-vault layout persistence on top of the phase-1 tab model. - TileTabStrip: per-tile tab chips (select/close, middle-click, +). Empty tabs are not chips — they render TileStartView, a quick-actions start page whose only action is "New File" (wired to App.handleNewFile: createFile + open). + reuses an existing empty tab (findEmptyTab). - tiling.tsx: render the strip + active tab; close-the-last-tab collapses the split via model.removeLeaf / planTileRemoval (pure, tested). - Per-vault state: WorkspaceHost mounts one instance per (kind x vault) and shows only the active one, preserving each vault's tile layout, tabs, and open documents across vault/mode switches. Inactive instances are gated by `active` (ignore opens, suppress bottom bar, no split handle) via WorkspaceProps.active + barSlot WorkspaceActiveProvider. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 month ago
barSlot.tsx
Move split controls to the title bar + title-bar/sidebar polish - Split Right / Split Down move from the bottom bar to the top bar as icon buttons (SplitRightIcon / SplitDownIcon) with hover tooltips, left of the workspace selector, shown only in tiling mode. Wired through the tiling handle (App.handleSplitRight/Down). - Title bar: compact fixed-height buttons (size-5) with header padding so hover highlights no longer reach the screen edge; tooltip + pointer cursor on the sidebar toggle, split buttons, and workspace menu. - Sidebar: fix asymmetric collapse animation — the open state now also transitions width, so re-opening animates instead of snapping. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3 weeks ago
workspace.tsx
Tabs per tile (phase 5c): persist layout + selection to localStorage Each vault's tile layout and tabs now survive an app restart, along with the selected vault and (pre-existing) workspace kind. - tilingPersistence: serializeLayout / buildInitialTileTabs / maxIdSuffix (pure + tested) and load/save to localStorage under textile.tiling.<vaultId>. Persists the split tree, active tile, and each tile's documents + active index; not handles or load state. - useTilingDocumentSlots: accept initialTiles, seed the tab map with loading tabs, and re-open the documents in a mount-only effect (cancelled on unmount). Exposes tileTabs for serialization. - TilingWorkspace: lazy-init tree/activeTile/id-counter from the persisted layout (keyed by instanceKey = vault provider id) and write on change (skipping no-op rewrites). - App: persist + restore selectedProviderId (textile.selectedVault); the registry loads vaults synchronously so the restored vault survives the auto-select effects. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
4 weeks ago