Skip to content

Commit ebd1dbe

Browse files
committed
Regroup Toolbox by creator goals and polish role banner tiles - PR_26155_025-027-toolbox-creator-groups-polish
1 parent b7292c7 commit ebd1dbe

10 files changed

Lines changed: 505 additions & 302 deletions

File tree

assets/theme-v2/css/panels.css

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
display: grid;
7474
place-items: center;
7575
background: var(--panel-overlay);
76-
overflow: hidden
76+
overflow: visible
7777
}
7878

7979
.card-media img {
@@ -86,10 +86,14 @@
8686
display: block;
8787
width: 100%;
8888
height: 100%;
89-
overflow: hidden;
89+
overflow: visible;
9090
border-radius: inherit
9191
}
9292

93+
.control-card:has(.card-media-link) {
94+
overflow: visible
95+
}
96+
9397
.card-media-link img {
9498
transition: transform var(--transition-duration-fast) ease
9599
}

assets/theme-v2/partials/header-nav.html

Lines changed: 25 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,12 @@
99
<a data-nav-link data-route="toolbox" href="toolbox/index.html">Toolbox &#9662;</a>
1010
<div class="sub-menu sub-menu--toolbox" data-toolbox-menu aria-label="Toolbox menu">
1111
<div class="nav-item nav-popout-item" data-toolbox-menu-group>
12-
<a data-toolbox-menu-group-label data-route="toolbox" href="toolbox/index.html" aria-haspopup="true">AI &#9656;</a>
13-
<div class="sub-menu sub-menu--nested" data-toolbox-submenu aria-label="AI tools">
12+
<a data-toolbox-menu-group-label data-route="toolbox" href="toolbox/index.html" aria-haspopup="true">Build &#9656;</a>
13+
<div class="sub-menu sub-menu--nested" data-toolbox-submenu aria-label="Build tools">
1414
<a data-nav-link data-toolbox-menu-item data-route="ai-assistant" href="toolbox/ai-assistant/index.html">AI Assistant</a>
15-
</div>
16-
</div>
17-
<div class="nav-item nav-popout-item" data-toolbox-menu-group>
18-
<a data-toolbox-menu-group-label data-route="toolbox" href="toolbox/index.html" aria-haspopup="true">Planning &#9656;</a>
19-
<div class="sub-menu sub-menu--nested" data-toolbox-submenu aria-label="Planning tools">
2015
<a data-nav-link data-toolbox-menu-item data-route="project-workspace" href="toolbox/project-workspace/index.html">Project Workspace</a>
2116
<a data-nav-link data-toolbox-menu-item data-route="game-design" href="toolbox/game-design/index.html">Game Design</a>
2217
<a data-nav-link data-toolbox-menu-item data-route="game-configuration" href="toolbox/game-configuration/index.html">Game Configuration</a>
23-
</div>
24-
</div>
25-
<div class="nav-item nav-popout-item" data-toolbox-menu-group>
26-
<a data-toolbox-menu-group-label data-route="toolbox" href="toolbox/index.html" aria-haspopup="true">Content &#9656;</a>
27-
<div class="sub-menu sub-menu--nested" data-toolbox-submenu aria-label="Content tools">
2818
<a data-nav-link data-toolbox-menu-item data-route="tool-assets" href="toolbox/assets/index.html">Assets</a>
2919
<a data-nav-link data-toolbox-menu-item data-route="colors" href="toolbox/colors/index.html">Colors</a>
3020
<a data-nav-link data-toolbox-menu-item data-route="fonts" href="toolbox/fonts/index.html">Fonts</a>
@@ -33,57 +23,57 @@
3323
<a data-nav-link data-toolbox-menu-item data-route="objects" href="toolbox/objects/index.html">Objects</a>
3424
<a data-nav-link data-toolbox-menu-item data-route="worlds" href="toolbox/worlds/index.html">Worlds</a>
3525
<a data-nav-link data-toolbox-menu-item data-route="animations" href="toolbox/animations/index.html">Animations</a>
26+
<a data-nav-link data-toolbox-menu-item data-route="build-game" href="toolbox/build-game/index.html">Build Game</a>
27+
<a data-nav-link data-toolbox-menu-item data-route="code" href="toolbox/code/index.html">Custom Extensions</a>
3628
</div>
3729
</div>
3830
<div class="nav-item nav-popout-item" data-toolbox-menu-group>
39-
<a data-toolbox-menu-group-label data-route="toolbox" href="toolbox/index.html" aria-haspopup="true">Media & Audio &#9656;</a>
40-
<div class="sub-menu sub-menu--nested" data-toolbox-submenu aria-label="Media & Audio tools">
31+
<a data-toolbox-menu-group-label data-route="toolbox" href="toolbox/index.html" aria-haspopup="true">Media &#9656;</a>
32+
<div class="sub-menu sub-menu--nested" data-toolbox-submenu aria-label="Media tools">
4133
<a data-nav-link data-toolbox-menu-item data-route="audio" href="toolbox/audio/index.html">Audio</a>
4234
<a data-nav-link data-toolbox-menu-item data-route="music" href="toolbox/music/index.html">Music</a>
4335
<a data-nav-link data-toolbox-menu-item data-route="voices" href="toolbox/voices/index.html">Voices</a>
4436
<a data-nav-link data-toolbox-menu-item data-route="videos" href="toolbox/videos/index.html">Videos</a>
37+
<a data-nav-link data-toolbox-menu-item data-route="midi" href="toolbox/midi/index.html">MIDI</a>
38+
<a data-nav-link data-toolbox-menu-item data-route="particles" href="toolbox/particles/index.html">Particles</a>
39+
<a data-nav-link data-toolbox-menu-item data-route="audio-effects" href="toolbox/audio-effects/index.html">Audio Effects</a>
40+
<a data-nav-link data-toolbox-menu-item data-route="speech-to-text" href="toolbox/speech-to-text/index.html">Voice Capture</a>
41+
<a data-nav-link data-toolbox-menu-item data-route="text-to-speech" href="toolbox/text-to-speech/index.html">Voice Output</a>
4542
</div>
4643
</div>
4744
<div class="nav-item nav-popout-item" data-toolbox-menu-group>
48-
<a data-toolbox-menu-group-label data-route="toolbox" href="toolbox/index.html" aria-haspopup="true">Build & Test &#9656;</a>
49-
<div class="sub-menu sub-menu--nested" data-toolbox-submenu aria-label="Build & Test tools">
50-
<a data-nav-link data-toolbox-menu-item data-route="build-game" href="toolbox/build-game/index.html">Build Game</a>
45+
<a data-toolbox-menu-group-label data-route="toolbox" href="toolbox/index.html" aria-haspopup="true">Test &#9656;</a>
46+
<div class="sub-menu sub-menu--nested" data-toolbox-submenu aria-label="Test tools">
5147
<a data-nav-link data-toolbox-menu-item data-route="game-testing" href="toolbox/game-testing/index.html">Game Testing</a>
5248
<a data-nav-link data-toolbox-menu-item data-route="tool-controls" href="toolbox/controls/index.html">Controls</a>
5349
<a data-nav-link data-toolbox-menu-item data-route="hitboxes" href="toolbox/hitboxes/index.html">Hitboxes</a>
54-
<a data-nav-link data-toolbox-menu-item data-route="saved-data" href="toolbox/saved-data/index.html">Saved Data</a>
5550
<a data-nav-link data-toolbox-menu-item data-route="debug" href="toolbox/debug/index.html">Debug</a>
5651
<a data-nav-link data-toolbox-menu-item data-route="performance" href="toolbox/performance/index.html">Performance</a>
5752
<a data-nav-link data-toolbox-menu-item data-route="events" href="toolbox/events/index.html">Events</a>
5853
</div>
5954
</div>
6055
<div class="nav-item nav-popout-item" data-toolbox-menu-group>
61-
<a data-toolbox-menu-group-label data-route="toolbox" href="toolbox/index.html" aria-haspopup="true">Share & Community &#9656;</a>
62-
<div class="sub-menu sub-menu--nested" data-toolbox-submenu aria-label="Share & Community tools">
56+
<a data-toolbox-menu-group-label data-route="toolbox" href="toolbox/index.html" aria-haspopup="true">Share &#9656;</a>
57+
<div class="sub-menu sub-menu--nested" data-toolbox-submenu aria-label="Share tools">
6358
<a data-nav-link data-toolbox-menu-item data-route="tool-publish" href="toolbox/publish/index.html">Publish</a>
6459
<a data-nav-link data-toolbox-menu-item data-route="tool-marketplace" href="toolbox/marketplace/index.html">Marketplace</a>
6560
<a data-nav-link data-toolbox-menu-item data-route="tool-community" href="toolbox/community/index.html">Community</a>
6661
<a data-nav-link data-toolbox-menu-item data-route="languages" href="toolbox/languages/index.html">Languages</a>
67-
<a data-nav-link data-toolbox-menu-item data-route="achievements" href="toolbox/achievements/index.html">Achievements</a>
68-
<a data-nav-link data-toolbox-menu-item data-route="ratings" href="toolbox/ratings/index.html">Ratings</a>
69-
</div>
70-
</div>
71-
<div class="nav-item nav-popout-item" data-toolbox-menu-group>
72-
<a data-toolbox-menu-group-label data-route="toolbox" href="toolbox/index.html" aria-haspopup="true">Hidden Capability &#9656;</a>
73-
<div class="sub-menu sub-menu--nested" data-toolbox-submenu aria-label="Hidden Capability tools">
7462
<a data-nav-link data-toolbox-menu-item data-route="cloud" href="toolbox/cloud/index.html">Cloud</a>
75-
<a data-nav-link data-toolbox-menu-item data-route="code" href="toolbox/code/index.html">Custom Extensions</a>
7663
<a data-nav-link data-toolbox-menu-item data-route="tool-learn" href="toolbox/learn/index.html">Creator Learning</a>
77-
<a data-nav-link data-toolbox-menu-item data-route="midi" href="toolbox/midi/index.html">MIDI</a>
78-
<a data-nav-link data-toolbox-menu-item data-route="particles" href="toolbox/particles/index.html">Particles</a>
79-
<a data-nav-link data-toolbox-menu-item data-route="audio-effects" href="toolbox/audio-effects/index.html">Audio Effects</a>
80-
<a data-nav-link data-toolbox-menu-item data-route="speech-to-text" href="toolbox/speech-to-text/index.html">Voice Capture</a>
81-
<a data-nav-link data-toolbox-menu-item data-route="text-to-speech" href="toolbox/text-to-speech/index.html">Voice Output</a>
8264
</div>
8365
</div>
8466
<div class="nav-item nav-popout-item" data-toolbox-menu-group>
85-
<a data-toolbox-menu-group-label data-route="toolbox" href="toolbox/index.html" aria-haspopup="true">Admin Tools &#9656;</a>
86-
<div class="sub-menu sub-menu--nested" data-toolbox-submenu aria-label="Admin Tools tools">
67+
<a data-toolbox-menu-group-label data-route="toolbox" href="toolbox/index.html" aria-haspopup="true">Account &#9656;</a>
68+
<div class="sub-menu sub-menu--nested" data-toolbox-submenu aria-label="Account tools">
69+
<a data-nav-link data-toolbox-menu-item data-route="saved-data" href="toolbox/saved-data/index.html">Saved Data</a>
70+
<a data-nav-link data-toolbox-menu-item data-route="achievements" href="toolbox/achievements/index.html">Achievements</a>
71+
<a data-nav-link data-toolbox-menu-item data-route="ratings" href="toolbox/ratings/index.html">Ratings</a>
72+
</div>
73+
</div>
74+
<div class="nav-item nav-popout-item" data-toolbox-menu-group data-toolbox-admin-nav-group hidden>
75+
<a data-toolbox-menu-group-label data-route="toolbox" href="toolbox/index.html" aria-haspopup="true">Admin &#9656;</a>
76+
<div class="sub-menu sub-menu--nested" data-toolbox-submenu aria-label="Admin tools">
8777
<a data-nav-link data-toolbox-menu-item data-route="users" href="toolbox/users/index.html">Users</a>
8878
<a data-nav-link data-toolbox-menu-item data-route="environments" href="toolbox/environments/index.html">Environments</a>
8979
<a data-nav-link data-toolbox-menu-item data-route="game-migration" href="toolbox/game-migration/index.html">Game Migration</a>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Toolbox Banner And Image Polish
2+
3+
Stack item: `PR_26155_027-toolbox-banner-and-image-polish`
4+
5+
## Summary
6+
7+
- Added the existing Theme V2 `callout` class to the role banner container.
8+
- Preserved the single-line clickable banner text for Guest, Creator, and Admin roles.
9+
- Kept preview images linked to the same route as the Open Tool button.
10+
- Updated shared Theme V2 card media overflow so hover scale/rotate is not clipped.
11+
12+
## Theme V2 Gap Findings
13+
14+
- Banner background did not require new CSS; existing Theme V2 `callout` styling covered it.
15+
- Existing preview hover styling already lived in shared Theme V2 `panels.css`, but the media/link containers clipped the hover transform.
16+
- Adjusted the reusable Theme V2 card media pattern in `assets/theme-v2/css/panels.css`.
17+
- No inline styles, style blocks, page-local CSS, or tool-local CSS were added.
18+
19+
## Validation Notes
20+
21+
- Targeted Playwright checks verify Guest, Creator, and Admin banners render with a non-transparent background.
22+
- Targeted Playwright checks verify preview image hover applies scale/rotate and the relevant containers use visible overflow.
23+
- Targeted Playwright checks verify preview image click opens the same tool route as Open Tool.
24+
- `npm run test:workspace-v2` passed.
25+
26+
## Manual Test Notes
27+
28+
- Guest banner: `GUEST VIEW • Preview only • Sign in to create`.
29+
- Creator banner: `CREATOR VIEW • Project tools enabled • Switch to Admin View`.
30+
- Admin banner: `ADMIN VIEW • Planned tools visible • Switch to Creator View`.
31+
- The Assets preview image routes to `/toolbox/assets/index.html`, matching Open Tool.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Toolbox Creator Grouping
2+
3+
Stack item: `PR_26155_025-toolbox-creator-grouping`
4+
5+
## Summary
6+
7+
- Reworked Toolbox groupings around creator goals:
8+
- Build
9+
- Media
10+
- Test
11+
- Share
12+
- Account
13+
- Admin
14+
- Updated `toolbox/tools-page-accordions.js` rendering data to use the six groups.
15+
- Updated `toolbox/toolRegistry.js` category metadata to match the six groups.
16+
- Updated the shared Toolbox header menu to use the same creator-goal group labels.
17+
- Preserved existing role simulation for `?role=guest`, `?role=user`, and `?role=admin`.
18+
19+
## Role Behavior
20+
21+
- Guest and Creator views show the public preview-safe tool groups: Build, Media, Test, Share, and Account.
22+
- Admin view shows Build, Media, Test, Share, Account, and Admin.
23+
- The Admin group remains hidden outside admin role view.
24+
- Arcade remains outside Toolbox.
25+
26+
## Validation Notes
27+
28+
- Read `docs_build/dev/PROJECT_INSTRUCTIONS.md` before changes.
29+
- Ran `node scripts/validate-active-tools-surface.mjs`: passed.
30+
- Ran `node scripts/validate-tool-registry.mjs`: passed.
31+
- Ran `npm run test:workspace-v2`: passed. This is the legacy command name for the Project Workspace validation lane.
32+
33+
## Manual Test Notes
34+
35+
- `/toolbox/index.html?role=guest` shows Build, Media, Test, Share, and Account groups.
36+
- `/toolbox/index.html?role=user` keeps Admin hidden.
37+
- `/toolbox/index.html?role=admin` shows the Admin group and planned/admin tiles.
38+
- Banner switch links continue Guest -> Creator, Creator -> Admin, and Admin -> Creator.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Toolbox Worlds Objects Naming
2+
3+
Stack item: `PR_26155_026-toolbox-worlds-objects-naming`
4+
5+
## Summary
6+
7+
- Verified creator-facing labels remain:
8+
- Objects
9+
- Worlds
10+
- Controls
11+
- Hitboxes
12+
- Saved Data
13+
- Preserved `Worlds` as the parent tool label.
14+
- Preserved `Objects` as the parent tool label.
15+
- Kept technical child capability terms beneath the relevant parent cards instead of top-level Toolbox groups.
16+
17+
## Planned Child Capabilities
18+
19+
- Worlds card now lists planned world types:
20+
- Vector
21+
- Tilemap
22+
- Isometric
23+
- Hex
24+
- Objects card now lists planned object types:
25+
- Character
26+
- Enemy
27+
- Decoration
28+
- Interactive
29+
- Vector Object
30+
- Sprite Object
31+
32+
## Validation Notes
33+
34+
- Targeted validation confirms old labels are not active top-level tool labels:
35+
- Object Vector
36+
- World Vector
37+
- Input Mapping
38+
- Collision Inspector
39+
- Storage Inspector
40+
- Save Data
41+
- Targeted Playwright checks confirm Objects and Worlds render as parent cards and planned child capability text remains beneath them.
42+
- No DB, auth, persistence, or real tool implementation was added.
43+
44+
## Manual Test Notes
45+
46+
- `/toolbox/index.html` shows Objects and Worlds as creator-facing parent cards.
47+
- Vector, Tilemap, Isometric, and Hex appear only as planned world-type child capability text beneath Worlds.
48+
- Character, Enemy, Decoration, Interactive, Vector Object, and Sprite Object appear only as planned object-type child capability text beneath Objects.

scripts/validate-active-tools-surface.mjs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,28 @@ async function main() {
125125
if (!/GUEST VIEW/.test(toolboxIndex + "\n" + toolsAccordions) || !/"guest"/.test(toolsAccordions)) {
126126
issues.push("Toolbox role simulation must support an explicit Guest view.");
127127
}
128-
if (!/"group": "Content"/.test(toolsAccordions) || /"group": "Assets"/.test(toolsAccordions)) {
129-
issues.push("Toolbox Content group must replace the old Assets group label while keeping the Assets tool label.");
128+
for (const groupName of ["Build", "Media", "Test", "Share", "Account", "Admin"]) {
129+
if (!toolsAccordions.includes(`"group": "${groupName}"`) || !headerNav.includes(`${groupName} &#9656;`)) {
130+
issues.push(`Toolbox creator-goal group is missing from active wiring: ${groupName}.`);
131+
}
132+
}
133+
if (/"group": "(?:AI|Planning|Content|Media & Audio|Build & Test|Share & Community|Hidden Capability|Admin Tools)"/.test(toolsAccordions)) {
134+
issues.push("Toolbox index must use creator-goal groups instead of legacy technical grouping labels.");
135+
}
136+
if (!/data-toolbox-admin-nav-group hidden/.test(headerNav) || !/data-toolbox-admin-nav-group/.test(toolsAccordions)) {
137+
issues.push("Toolbox Admin navigation group must be role-gated for the admin role view.");
138+
}
139+
if (!/Planned world types/.test(toolsAccordions) || !/Vector/.test(toolsAccordions) || !/Tilemap/.test(toolsAccordions) || !/Isometric/.test(toolsAccordions) || !/Hex/.test(toolsAccordions)) {
140+
issues.push("Worlds must preserve planned world-type child capabilities: Vector, Tilemap, Isometric, and Hex.");
141+
}
142+
if (!/Planned object types/.test(toolsAccordions) || !/Character/.test(toolsAccordions) || !/Enemy/.test(toolsAccordions) || !/Decoration/.test(toolsAccordions) || !/Interactive/.test(toolsAccordions) || !/Vector Object/.test(toolsAccordions) || !/Sprite Object/.test(toolsAccordions)) {
143+
issues.push("Objects must preserve planned object-type child capabilities.");
144+
}
145+
if (!/container callout/.test(toolboxIndex)) {
146+
issues.push("Toolbox role banner container must use an existing Theme V2 background panel class.");
147+
}
148+
if (/Object Vector|World Vector|Input Mapping|Collision Inspector|Storage Inspector|Save Data/.test(toolsAccordions + "\n" + headerNav)) {
149+
issues.push("Toolbox must use current creator-facing tool labels for Objects, Worlds, Controls, Hitboxes, and Saved Data.");
130150
}
131151
if (!/card-media-link/.test(toolsAccordions)) {
132152
issues.push("Toolbox preview images must be linked through the shared card media link pattern.");

0 commit comments

Comments
 (0)