Skip to content

Commit 54e0512

Browse files
committed
Polish Project Workspace actions and prepare Game Design rebuild - PR_26155_058-060-project-workspace-polish
1 parent 7aadf9d commit 54e0512

6 files changed

Lines changed: 156 additions & 21 deletions

File tree

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Project Workspace Button Style
2+
3+
Stacked PR:
4+
- PR_26155_058-project-workspace-button-style
5+
6+
## Summary
7+
8+
Updated the Project Workspace `Project Setup` action buttons so `Create Project` and `Delete Open Project` use the same existing Theme V2 button style.
9+
10+
Changed:
11+
- `Create Project`: `class="btn primary"` to `class="btn"`
12+
- `Delete Open Project`: unchanged, already `class="btn"`
13+
14+
No create/delete behavior changed.
15+
16+
## Validation
17+
18+
Impacted lane:
19+
- `project-workspace`
20+
21+
Skipped lanes:
22+
- `workspace-contract` / `npm run test:workspace-v2` skipped because no shared launch, navigation, or layout wiring changed.
23+
- Full suite skipped because this bundle changed one Project Workspace page, its narrow script copy, and targeted Project Workspace assertions only.
24+
25+
Commands run:
26+
- `node --check toolbox/project-workspace/project-workspace.js`
27+
- `node --check tests/playwright/tools/ProjectWorkspaceMockRepository.spec.mjs`
28+
- `npm run test:lane:project-workspace`
29+
- `git diff --check`
30+
31+
Results:
32+
- Targeted Project Workspace lane passed: 6 tests.
33+
- `git diff --check` passed.
34+
35+
Manual notes:
36+
- Verified `Create Project` and `Delete Open Project` both use `btn`.
37+
- Verified create/open/delete behavior through the targeted Playwright lane.
38+
- Verified no inline styles or new CSS were introduced.
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Project Workspace Layout Cleanup
2+
3+
Stacked PR:
4+
- PR_26155_059-project-workspace-layout-cleanup
5+
6+
## Summary
7+
8+
Reviewed Project Workspace after the wide layout rollout and kept the existing wide left/center/right tool shell intact.
9+
10+
No layout CSS was added or modified.
11+
12+
The center panel remains dominant through the existing approved Theme V2 wide layout classes:
13+
- `container--tool-wide`
14+
- `tool-workspace--wide`
15+
16+
## User-Facing Copy Cleanup
17+
18+
Reduced prominent implementation wording in user-facing areas:
19+
- Replaced the meta description with plain Project Workspace purpose text.
20+
- Replaced the page lede with project action/readiness copy.
21+
- Replaced the overview paragraph with local project list copy.
22+
- Renamed the project list aria label from `Mock projects` to `Projects`.
23+
- Removed the left-column `Mock Repository Contract` accordion from the setup/workflow area.
24+
- Replaced prominent `Mock` status/kicker/caption wording with plain project/readiness wording.
25+
- Kept technical table/status information in the center output/report area, including `Repository Tables`.
26+
27+
Kept technical mock repository terminology in implementation/test-facing names where it is still accurate:
28+
- `project-workspace-mock-repository.js`
29+
- Project Workspace test lane/spec names
30+
31+
## Validation
32+
33+
Impacted lane:
34+
- `project-workspace`
35+
36+
Skipped lanes:
37+
- `workspace-contract` / `npm run test:workspace-v2` skipped because shared launch/layout wiring did not change.
38+
- Full samples smoke test skipped because no games/samples changed.
39+
40+
Commands run:
41+
- `node --check toolbox/project-workspace/project-workspace.js`
42+
- `node --check tests/playwright/tools/ProjectWorkspaceMockRepository.spec.mjs`
43+
- `npm run test:lane:project-workspace`
44+
- `git diff --check`
45+
46+
Results:
47+
- Targeted Project Workspace lane passed: 6 tests.
48+
- `git diff --check` passed.
49+
50+
Manual notes:
51+
- Project Workspace still loads without console errors.
52+
- Create, open, and delete behavior still works.
53+
- Technical project table details remain available in the output/report area.
54+
- No new CSS, page-local CSS, inline styles, or tool-local CSS were added.
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Project Workspace Ready For Game Design
2+
3+
Stacked PR:
4+
- PR_26155_060-project-workspace-ready-for-game-design
5+
6+
## Ready Gate
7+
8+
Project Workspace remains the active root for the next Toolbox rebuild sequence.
9+
10+
Current Project Workspace state:
11+
- Active route: `toolbox/project-workspace/index.html`
12+
- Uses the approved Theme V2 tool shell.
13+
- Supports create/open/delete against the mock SQL-shaped repository.
14+
- Shows project status, project progress, publishing progress, current focus, and recommended next tool.
15+
- Keeps admin-oriented Project Data controls outside this page in the Toolbox role banner flow.
16+
- Keeps real DB/auth/cloud/persistence out of scope.
17+
18+
## Next Rebuild
19+
20+
The next tool rebuild should be:
21+
22+
- Game Design
23+
24+
Game Design should build on Project Workspace state and treat Project Workspace as the source for:
25+
- active project identity
26+
- project status
27+
- project progress
28+
- publishing progress
29+
- recommended next tool routing
30+
31+
This PR bundle does not start Game Design implementation.
32+
33+
## Validation Notes
34+
35+
Impacted lane:
36+
- `project-workspace`
37+
38+
Skipped lanes:
39+
- `workspace-contract` / `npm run test:workspace-v2` skipped because no shared launch/navigation/layout wiring changed.
40+
- Full suite skipped because this bundle is limited to Project Workspace presentation, copy, and targeted assertions.
41+
42+
Commands run:
43+
- `node --check toolbox/project-workspace/project-workspace.js`
44+
- `node --check tests/playwright/tools/ProjectWorkspaceMockRepository.spec.mjs`
45+
- `npm run test:lane:project-workspace`
46+
- `git diff --check`
47+
48+
Results:
49+
- Targeted Project Workspace lane passed: 6 tests.
50+
- `git diff --check` passed.

tests/playwright/tools/ProjectWorkspaceMockRepository.spec.mjs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ test("Project Workspace creates, opens, and deletes mock projects", async ({ pag
5252
try {
5353
await expect(page.locator(".tool-workspace")).toBeVisible();
5454
await expect(page.locator("style, [style], script:not([src])")).toHaveCount(0);
55+
await expect(page.getByRole("button", { name: "Create Project" })).toHaveClass("btn");
56+
await expect(page.getByRole("button", { name: "Delete Open Project" })).toHaveClass("btn");
5557
await expect(page.locator("[data-active-project-name]")).toHaveText("Demo Project");
5658
await expect(page.locator("[data-project-list]")).toContainText("Demo Project");
5759
const demoProjectRow = page.locator("[data-project-row='demo-project']");

toolbox/project-workspace/index.html

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<base href="/">
77
<meta name="viewport" content="width=device-width, initial-scale=1">
88
<title>Project Workspace - GameFoundryStudio</title>
9-
<meta name="description" content="Project Workspace Toolbox mock repository for project identity, progress, and publish readiness without real database or persistence behavior.">
9+
<meta name="description" content="Project Workspace Toolbox page for project identity, progress, and publish readiness.">
1010
<link rel="icon" href="/favicon.svg">
1111
<link rel="stylesheet" href="assets/theme-v2/css/theme.css">
1212
</head>
@@ -18,7 +18,7 @@
1818
<div class="container">
1919
<div class="kicker">Toolbox / Project Workspace</div>
2020
<h1>Project Workspace</h1>
21-
<p class="lede">Create, open, and delete mock projects against an in-memory SQL-shaped repository while preserving the multi-user-ready table contract.</p>
21+
<p class="lede">Create, open, and delete projects while reviewing progress and publish readiness.</p>
2222
</div>
2323
</section>
2424
<section class="section">
@@ -34,24 +34,15 @@ <h2>Project Workspace</h2>
3434
<div class="accordion-body content-stack">
3535
<form class="content-stack content-stack--compact" data-project-form>
3636
<label for="projectNameInput">Project Name <input id="projectNameInput" type="text" placeholder="Untitled game project" data-project-name-input></label>
37-
<button class="btn primary" type="submit">Create Project</button>
37+
<button class="btn" type="submit">Create Project</button>
3838
</form>
3939
<button class="btn" type="button" data-project-delete-active>Delete Open Project</button>
4040
</div>
4141
</details>
4242
<details class="vertical-accordion" open>
4343
<summary>Open Projects</summary>
4444
<div class="accordion-body">
45-
<div class="content-stack content-stack--compact" aria-label="Mock projects" data-project-list></div>
46-
</div>
47-
</details>
48-
<details class="vertical-accordion">
49-
<summary>Mock Repository Contract</summary>
50-
<div class="accordion-body">
51-
<p><span class="pill">users</span> id, displayName, email, role.</p>
52-
<p><span class="pill">projects</span> id, ownerUserId, name, status.</p>
53-
<p><span class="pill">project_members</span> projectId, userId, permission.</p>
54-
<p><span class="pill">Permissions</span> Owner, Editor, Viewer, Admin.</p>
45+
<div class="content-stack content-stack--compact" aria-label="Projects" data-project-list></div>
5546
</div>
5647
</details>
5748
</div>
@@ -60,7 +51,7 @@ <h2>Project Workspace</h2>
6051
<section class="tool-center-panel">
6152
<img src="assets/theme-v2/images/image-missing.svg" alt="Project Workspace preview">
6253
<h2>Workspace Overview</h2>
63-
<p>Project Workspace now runs against the in-memory mock repository approved for the first real rebuild slice. It does not persist data or connect to a real database.</p>
54+
<p>Project Workspace now manages the local project list for the first real rebuild slice. It does not persist data or connect to external services.</p>
6455
<article class="card">
6556
<div class="card-body content-stack">
6657
<div>
@@ -90,7 +81,7 @@ <h3>Project Progress</h3>
9081
<article class="callout"><h3>Recommended Next Tool</h3><p data-recommended-next-tool>Game Configuration</p></article>
9182
<article class="callout"><h3>Checklist</h3><ul data-project-progress-checklist><li>Project identity: Complete</li></ul></article>
9283
</div>
93-
<div class="status" role="status" data-project-workspace-log>Mock repository seeded with Demo Project.</div>
84+
<div class="status" role="status" data-project-workspace-log>Demo Project seeded.</div>
9485
</div>
9586
</article>
9687
<div class="accordion-stack" data-project-output-panels>
@@ -99,7 +90,7 @@ <h3>Project Progress</h3>
9990
<div class="accordion-body">
10091
<div class="table-wrapper">
10192
<table class="data-table">
102-
<caption>Mock readiness output</caption>
93+
<caption>Readiness output</caption>
10394
<thead>
10495
<tr><th scope="col">Path</th><th scope="col">Status</th><th scope="col">Next Tool</th></tr>
10596
</thead>
@@ -117,7 +108,7 @@ <h3>Project Progress</h3>
117108
<div class="accordion-body">
118109
<div class="table-wrapper">
119110
<table class="data-table">
120-
<caption>Mock repository row counts</caption>
111+
<caption>Project data row counts</caption>
121112
<thead>
122113
<tr><th scope="col">Table</th><th scope="col">Rows</th></tr>
123114
</thead>
@@ -150,7 +141,7 @@ <h3>Project Progress</h3>
150141
<article class="card" role="dialog" aria-labelledby="project-workspace-missing-requirements-title" data-missing-requirements>
151142
<div class="card-body content-stack">
152143
<div>
153-
<div class="kicker">Mock Requirements</div>
144+
<div class="kicker">Requirements</div>
154145
<h3 id="project-workspace-missing-requirements-title">Missing Requirements</h3>
155146
</div>
156147
<p>This card remains a static review surface for the next required tools. It does not block, save, or validate runtime state.</p>
@@ -159,7 +150,7 @@ <h3 id="project-workspace-missing-requirements-title">Missing Requirements</h3>
159150
<article class="callout"><h3>Game Configuration</h3><p><span class="pill">Planned</span> Choose release profile and debug policy.</p></article>
160151
<article class="callout"><h3>Publish</h3><p><span class="pill">Planned</span> Prepare share metadata later.</p></article>
161152
</div>
162-
<div class="status" role="status">Mock-only: Project Workspace does not run real publish gating yet.</div>
153+
<div class="status" role="status">Project Workspace does not run real publish gating yet.</div>
163154
</div>
164155
</article>
165156
</section>
@@ -172,7 +163,7 @@ <h2>Inspector</h2>
172163
<summary>Status Log</summary>
173164
<div class="accordion-body">
174165
<p>Project Workspace operations report status in the center panel while the right column stays reserved for inspector status and diagnostics.</p>
175-
<div class="status" role="status">Mock repository ready.</div>
166+
<div class="status" role="status">Project data ready.</div>
176167
</div>
177168
</details>
178169
</div>

toolbox/project-workspace/project-workspace.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ function renderProjectList() {
6767
if (projects.length === 0) {
6868
const emptyState = document.createElement("p");
6969
emptyState.className = "status";
70-
emptyState.textContent = "No mock projects. Create or seed a project to continue.";
70+
emptyState.textContent = "No projects. Create or seed a project to continue.";
7171
elements.projectList.append(emptyState);
7272
return;
7373
}

0 commit comments

Comments
 (0)