You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Query/type viewer: BaseNodeViewer-style title, drop count pill and Edit Query, gated Kanban tab, keep 'Default' on view switch #3261
Clicking a type in the sidebar opens viewers/query-node-viewer.svelte, the type's "Default" view, which saved query nodes also use. Five changes to it.
1. Title behaves like BaseNodeViewer
Today the title is a button ↔ input swap (startEditTitle / commitTitle). .query-title has a hover background, and .query-title-input has a 1px solid primary border, at 1.5rem/600. BaseNodeViewer instead uses one always-present <input class="header-input"> with border:none; outline:none; padding:0; background:transparent at 2rem/500: just click and type. Match that, ideally by extracting a shared header-input component both viewers use so they can't drift. Keep commit-on-blur/Enter.
2. Remove the "N items" count pill
The <span class="result-count"> and its CSS. This applies to saved queries too.
3. Remove "Edit Query" and the GUI edit mode
GUI query editing doesn't work yet. The "Edit Query" button is the only way into edit mode, so removing just the button would leave dead code. Delete the button, the edit-mode panel/state (isEditMode and what hangs off it), and their CSS. Rebuild when GUI editing actually works.
4. Kanban tab: disabled with an explanation when there's nothing to group by
Keep the tab visible but disabled when the type has no groupable property, with a hover explanation such as: "No properties to build a Kanban board from. Kanban groups by a choice (enum) property." Eligibility already exists: eligibleGroupByFields(schema) in query/kanban-grouping.ts (enum fields, excluding ones that use the __unassigned__ sentinel). kanban-view.svelte already computes noEnumField for its empty state, so lift that to the viewer. Edge case: a saved query whose lastView is kanban but whose type no longer has an eligible field opens in List.
5. "Default" stays "Default"; a view switch doesn't create a query node
Today, switching List/Table/Kanban on a type's Default view calls materializeQuery. That creates a new query node named MATERIALIZED_QUERY_TITLE = 'Untitled Query' and re-routes the tab to it, so the title flips from "Default" to "Untitled" and a stray query node is created (and, today, can't be found anywhere). Instead, persist the Default view's lastView / Kanban groupBy per type without creating a node. Only materialize a saved query on a real divergence: a filter edit, a rename, or an explicit "new query". The title reads "Default" until then.
Acceptance criteria
Title: no border or hover chrome; click-and-type like BaseNodeViewer, same font size/weight/color/padding; shared component or shared styles
No "N items" pill in any query view
"Edit Query" button, edit-mode UI and state deleted
Kanban tab disabled with a tooltip when eligibleGroupByFields is empty; a saved query with lastView: kanban in that state falls back to List
Switching view or group-by on a Default view doesn't create a query node, and the choice persists per type
Title stays "Default" until the user renames it or creates a new query
Tests for the Kanban gating and for "view switch doesn't materialize"
Activity
Query viewer: BaseNodeViewer-style title, gated Kanban, no materializ…