Skip to content

Commit d0cf77a

Browse files
author
DavidQ
committed
Fix Object Vector Studio V2 scrolling, shape icons, grid zoom, palette validation, and Objects actions layout - PR_26132_021-object-vector-studio-v2-scroll-grid-palette-fixes
1 parent a4bfd83 commit d0cf77a

8 files changed

Lines changed: 547 additions & 80 deletions

File tree

docs/dev/reports/playwright_v8_coverage.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ Exercised tool entry points detected:
2020
(0%) Workspace Manager - not exercised by this Playwright run
2121

2222
Changed runtime JS files covered:
23-
(80%) tools/object-vector-studio-v2/js/bootstrap.js - executed lines 97/97; executed functions 4/5
24-
(89%) tools/object-vector-studio-v2/js/ToolStarterApp.js - executed lines 3110/3110; executed functions 322/363
23+
(80%) tools/object-vector-studio-v2/js/bootstrap.js - executed lines 98/98; executed functions 4/5
24+
(90%) tools/object-vector-studio-v2/js/ToolStarterApp.js - executed lines 3209/3209; executed functions 334/372
2525
(95%) tools/object-vector-studio-v2/js/services/ObjectVectorStudioV2SchemaService.js - executed lines 401/401; executed functions 52/55
2626
(98%) src/engine/rendering/ObjectVectorRuntimeAssetService.js - executed lines 914/914; executed functions 105/107
2727

@@ -169,7 +169,7 @@ Files with executed line/function counts where available:
169169
(80%) src/engine/persistence/StorageService.js - executed lines 49/49; executed functions 4/5
170170
(80%) tools/asset-manager-v2/js/controls/AccordionSection.js - executed lines 27/27; executed functions 4/5
171171
(80%) tools/asset-manager-v2/js/controls/AssetFormControl.js - executed lines 563/563; executed functions 49/61
172-
(80%) tools/object-vector-studio-v2/js/bootstrap.js - executed lines 97/97; executed functions 4/5
172+
(80%) tools/object-vector-studio-v2/js/bootstrap.js - executed lines 98/98; executed functions 4/5
173173
(80%) tools/palette-manager-v2/modules/PaletteHistoryStack.js - executed lines 54/54; executed functions 8/10
174174
(80%) tools/preview-generator-v2/controls/AccordionSection.js - executed lines 31/31; executed functions 4/5
175175
(80%) tools/preview-generator-v2/PreviewGeneratorV2Logger.js - executed lines 19/19; executed functions 4/5
@@ -194,8 +194,8 @@ Files with executed line/function counts where available:
194194
(88%) tools/text2speech-V2/js/controls/TextInputControl.js - executed lines 24/24; executed functions 7/8
195195
(88%) tools/world-vector-studio-v2/js/controls/SourceInputControl.js - executed lines 33/33; executed functions 7/8
196196
(89%) tools/asset-manager-v2/js/services/AssetSchemaValidator.js - executed lines 295/295; executed functions 25/28
197-
(89%) tools/object-vector-studio-v2/js/ToolStarterApp.js - executed lines 3110/3110; executed functions 322/363
198197
(89%) tools/preview-generator-v2/controls/StatusLogControl.js - executed lines 32/32; executed functions 8/9
198+
(90%) tools/object-vector-studio-v2/js/ToolStarterApp.js - executed lines 3209/3209; executed functions 334/372
199199
(90%) tools/palette-manager-v2/modules/PaletteValidationService.js - executed lines 88/88; executed functions 9/10
200200
(90%) tools/text2speech-V2/js/controls/ActionNavControl.js - executed lines 117/117; executed functions 19/21
201201
(90%) tools/text2speech-V2/js/TextToSpeechToolApp.js - executed lines 807/807; executed functions 62/69
@@ -297,6 +297,6 @@ Changed JS files considered:
297297
(0%) tests/playwright/tools/WorkspaceManagerV2.spec.mjs - changed JS file not collected as browser runtime coverage
298298
(0%) tools/object-vector-studio-v2/tests/playwright/FirstClassToolStarter.spec.mjs - changed JS file not collected as browser runtime coverage
299299
(80%) tools/object-vector-studio-v2/js/bootstrap.js - changed JS file with browser V8 coverage
300-
(89%) tools/object-vector-studio-v2/js/ToolStarterApp.js - changed JS file with browser V8 coverage
300+
(90%) tools/object-vector-studio-v2/js/ToolStarterApp.js - changed JS file with browser V8 coverage
301301
(95%) tools/object-vector-studio-v2/js/services/ObjectVectorStudioV2SchemaService.js - changed JS file with browser V8 coverage
302302
(98%) src/engine/rendering/ObjectVectorRuntimeAssetService.js - changed JS file with browser V8 coverage
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# PR_26132_021-object-vector-studio-v2-scroll-grid-palette-fixes
2+
3+
## Scope
4+
5+
Updates Object Vector Studio V2 layout/control behavior and the Asteroids Object Vector asset tags only. No schema changes and no unrelated game changes.
6+
7+
## Changes
8+
9+
- Added left-column vertical scrolling.
10+
- Let `objectVectorStudioV2ShapeToolsContent` fill to the bottom of its accordion while preserving `accordion-v2__content object-vector-studio-v2__scroll-content`.
11+
- Added Words/Icons support and CSS icons for Bring Forward, Send Backward, Bring To Front, Send To Back, Group Shapes, and Ungroup.
12+
- Increased rectangle, circle, ellipse, arc, and polygon icon stroke weight and made those icons white.
13+
- Reworked the triangle icon to be unfilled with a white stroke matching rectangle stroke weight.
14+
- Removed the `asteroids` tag from Asteroids Object Vector Studio V2 asset library entries.
15+
- Removed the visible ` x` suffix from object tag pills and added numeric duplicate tag resolution.
16+
- Changed viewport zoom buttons and mouse wheel zoom to 10% steps, with clamped min/max reachability from 25% to 400%.
17+
- Moved grid rendering into SVG coordinates so it scales with the center dot and current viewBox.
18+
- Rejected non-palette paint/stroke colors with visible Status Log failures.
19+
- Kept Object action buttons inside the Objects accordion bottom and removed the separate Object Actions callout.
20+
- Kept Objects list overflow visible while the Objects container scrolls.
21+
- Put Tag Filter and Search labels/fields on one line.
22+
23+
## Validation
24+
25+
Playwright impacted: Yes.
26+
27+
Commands run:
28+
29+
- `node --check tools/object-vector-studio-v2/js/ToolStarterApp.js`
30+
- `node --check tools/object-vector-studio-v2/js/bootstrap.js`
31+
- `node --check tests/playwright/tools/WorkspaceManagerV2.spec.mjs`
32+
- `node --check tools/object-vector-studio-v2/tests/playwright/FirstClassToolStarter.spec.mjs`
33+
- `npx playwright test tests/playwright/tools/WorkspaceManagerV2.spec.mjs --project=playwright --workers=1 --reporter=list --grep "shows Object Vector Studio V2 layout shell"`
34+
- `npx playwright test tests/playwright/tools/WorkspaceManagerV2.spec.mjs --project=playwright --workers=1 --reporter=list --grep "expands Object Vector Studio V2 asset authoring"`
35+
- `npx playwright test --config tools/object-vector-studio-v2/playwright.config.mjs --reporter=list`
36+
- `npm run test:workspace-v2`
37+
38+
Result:
39+
40+
- Focused Object Vector Studio V2 layout/control coverage passed.
41+
- Tool-local Object Vector Studio V2 suite passed: 4 passed.
42+
- Full Workspace Manager V2 suite passed: 45 passed.
43+
- Playwright V8 coverage refreshed at `docs/dev/reports/playwright_v8_coverage.txt`.
44+
- Full samples smoke test skipped per request; this PR is limited to Object Vector Studio V2 layout/control behavior and Asteroids Object Vector asset tags.
45+
46+
## Playwright Coverage
47+
48+
Validates:
49+
50+
- Left column scrolling.
51+
- Shape/Tools content reaches the accordion bottom.
52+
- Words/Icons affects z-order/group buttons.
53+
- White, heavier shape icons and unfilled triangle styling.
54+
- Asteroids `asteroids` tag removal from Object Vector asset entries.
55+
- Tag creation does not append ` x`, and duplicate tags receive numeric suffixes.
56+
- 10% zoom steps and mouse-wheel min/max zoom reachability.
57+
- SVG grid scales in the same coordinate surface as the center dot.
58+
- Non-palette paint/stroke colors are rejected.
59+
- Object actions are inside the Objects accordion bottom.
60+
- Objects list overflow stays visible while the Objects container scrolls.
61+
- Tag Filter and Search controls render as inline rows.
62+
63+
Expected pass behavior:
64+
65+
- Object Vector Studio V2 shows the requested scroll, grid, icon, tag, palette, and Object action behavior without schema drift or hidden fallback behavior.
66+
67+
Expected fail behavior:
68+
69+
- Missing payloads, missing palette, locked object edits, invalid transforms, and non-palette paint/stroke colors log visible/actionable WARN/FAIL entries and avoid partial mutation.
70+
71+
## Manual Validation
72+
73+
1. Open `tools/object-vector-studio-v2/index.html`.
74+
2. Load a valid Object Vector payload and runtime palette.
75+
3. Confirm the left column scrolls when content exceeds its height.
76+
4. Toggle Words/Icons and confirm z-order/group buttons switch with the shape buttons.
77+
5. Confirm rectangle, circle, ellipse, arc, and polygon icons are white with heavier strokes, and triangle is outline-only.
78+
6. Add a tag, then add the same tag again; confirm the first tag has no ` x` suffix and the duplicate gets a numeric suffix.
79+
7. Use Zoom In/Out and mouse wheel to confirm 10% zoom steps and min/max clamp at 25% and 400%.
80+
8. Toggle Grid and confirm the SVG grid scales with the center dot while zooming.
81+
9. Try applying a non-palette color through runtime state and confirm the Status Log rejects it.
82+
10. Confirm Object actions remain at the bottom of the Objects accordion and the filter/search controls are inline.
83+
84+
Expected outcome:
85+
86+
- The Object Vector Studio V2 editing surface behaves as requested with constrained scroll regions, valid palette-only paint/stroke operations, SVG-coordinate grid scaling, and no Asteroids asset-library `asteroids` tag.
87+
88+
## Out Of Scope
89+
90+
- No schema changes.
91+
- No unrelated game changes.
92+
- No World Vector Studio V2 changes.
93+
- No full samples smoke test.

games/Asteroids/game.manifest.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -218,37 +218,37 @@
218218
"id": "asset.asteroids.ship",
219219
"name": "Asteroids Ship",
220220
"objectId": "object.asteroids.ship",
221-
"tags": ["asteroids", "player", "ship"]
221+
"tags": ["player", "ship"]
222222
},
223223
{
224224
"id": "asset.asteroids.asteroid.large",
225225
"name": "Large Asteroid",
226226
"objectId": "object.asteroids.asteroid.large",
227-
"tags": ["asteroids", "asteroid", "large"]
227+
"tags": ["asteroid", "large"]
228228
},
229229
{
230230
"id": "asset.asteroids.asteroid.medium",
231231
"name": "Medium Asteroid",
232232
"objectId": "object.asteroids.asteroid.medium",
233-
"tags": ["asteroids", "asteroid", "medium"]
233+
"tags": ["asteroid", "medium"]
234234
},
235235
{
236236
"id": "asset.asteroids.asteroid.small",
237237
"name": "Small Asteroid",
238238
"objectId": "object.asteroids.asteroid.small",
239-
"tags": ["asteroids", "asteroid", "small"]
239+
"tags": ["asteroid", "small"]
240240
},
241241
{
242242
"id": "asset.asteroids.ufo.large",
243243
"name": "Large UFO",
244244
"objectId": "object.asteroids.ufo.large",
245-
"tags": ["asteroids", "ufo", "large"]
245+
"tags": ["ufo", "large"]
246246
},
247247
{
248248
"id": "asset.asteroids.ufo.small",
249249
"name": "Small UFO",
250250
"objectId": "object.asteroids.ufo.small",
251-
"tags": ["asteroids", "ufo", "small"]
251+
"tags": ["ufo", "small"]
252252
}
253253
]
254254
},

0 commit comments

Comments
 (0)