Asset panel grouped by kind with icons, icons in tabs, + menu and scene objects: Concepts, assetGroups and assetIcons in Architecture, check sum 1102 (#176)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
adminandClaude Opus 5 committed 2026-09-19 18:36:21 +02:00
1 parent ff4b219bd3
commit 212d6c28fc
3 files changed
+14 -5

No files matched your search

+3 -1
@@ -116,7 +116,9 @@ src/editor/inspector/ Inspector panel, host (what a section builds into), field
(where a value lives — shared with the List tab),
one section per selection kind (asset/object/node/frame), variableRows (one row shape for
every variable), portSection, aspectAction, objectQueries/vectorRows/parentRow
src/editor/panels/ AssetPanel, assetMenu (the two groups of the + menu), HierarchyPanel, Toolbar,
src/editor/panels/ AssetPanel, assetGroups (groups by type and their order, #176), assetIcons (one SVG per
asset type in icons/, shared by the panel, the + menu, the tabs and Scene objects),
assetMenu (the two groups of the + menu), HierarchyPanel, Toolbar,
TilemapPanel (tools, tiles and layers of the one selected tilemap, beside the scene view, #142;
painting itself is SceneViewport)
src/editor/graph/ GraphEditor (header, breadcrumb), GraphCanvas, graphView (zoom limits, grid, panAndZoom – shared with NodeBoard and the Tile tab's TileCanvas), EdgeLayer (curves and fold marks), graphMenus,
+10 -3
@@ -44,6 +44,13 @@ scene**), Play/Pause, and on the right the notice line, the save status and the
rate. The **Assets** panel's `+` creates an asset and opens its tab; its menu lists the types in
two alphabetical groups, first what can be placed into a scene, then what only lives in the library
(#43) — the line between them answers the question that follows right after "which type?".
Every type has an **icon** of its own, the same wherever the type shows: in the `+` menu, on the
asset panel's groups, on a document's tab and at the end of a row in **Scene objects** (#176).
The asset panel **groups by type** (#176): one heading per type that has assets, with its icon and
the count at the right, groups and the assets inside them sorted by name. Every group starts
**folded** when a project opens; a click anywhere on a heading folds or unfolds it, and a heading
is never selected. Selecting an asset from elsewhere (a picker, a graph, a new asset) unfolds its
group; folding the group the selected asset sits in lets go of the selection.
A click on a row only
selects (the inspector shows it, no tab moves); a **double-click** opens the asset as a document
in a tab of its own (see **The tab row**) — a behavior, state machine, shader, particles,
@@ -65,9 +72,9 @@ asset panel, create one, or open a list from its row. An open document only come
one gets its tab right of the document on screen (or last, from a fixed tab). Several assets of
one kind can be open at once — two textures, three behaviors — each with its own tab.
- The tab reads the kind in muted type, then the name: `Behavior · Player`, `Texture · Player`,
so assets of the same name stay apart. A long name is cut with an ellipsis. Renaming an asset
renames its tab.
- The tab shows the **icon** of its kind, then the name, so a behavior and a texture both called
`Player` stay apart; the `»` menu lists hidden documents the same way. A long name is cut with an
ellipsis. Renaming an asset renames its tab.
- A document tab always shows its own asset. Selecting something elsewhere never changes it; there
is no picker in the tab's header any more. Selecting what lives only inside a document — a node,
a frame, an object of a container — brings that document up.
+1 -1
@@ -12,7 +12,7 @@ npm run check # typecheck + lint + format:check + tests, the gate CI runs
# code is lost (tail's is reported), so a red run reads as green
npm run build # writes dist/ and regenerates index.html
./build.sh # the same under `set -o pipefail`, for callers that pipe the output
node tools/seed-e2e.mjs && node tools/e2e.mjs # 1093 editor checks, screenshots in /tmp/gm-e2e-*.png
node tools/seed-e2e.mjs && node tools/e2e.mjs # 1102 editor checks, screenshots in /tmp/gm-e2e-*.png
GM_STEPS=20 node tools/e2e.mjs # or 1-12, or 6,20 — a subset while working on one step
./e2e.sh start [GM_STEPS] # the same run detached, see below
./e2e.sh status # live progress, or the last run's result