@forgeax/view 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/README.md +21 -7
  2. package/dist/build-revision.json +1 -1
  3. package/dist/modules/backend.mjs +11 -11
  4. package/dist/modules/browser.mjs +16 -16
  5. package/dist/modules/chunks/{App-E3M52XTQ.mjs → App-4XQ5SNNT.mjs} +2 -2
  6. package/dist/modules/chunks/{chunk-3GIGTM7E.mjs → chunk-27XASYEH.mjs} +2 -2
  7. package/dist/modules/chunks/{chunk-UAGQZPAB.mjs → chunk-2Z5KEV6L.mjs} +2 -2
  8. package/dist/modules/chunks/{chunk-4NGODRIE.mjs → chunk-46UEGAXY.mjs} +4 -4
  9. package/dist/modules/chunks/{chunk-UZHTLAIZ.mjs → chunk-47RJSHLM.mjs} +2 -2
  10. package/dist/modules/chunks/{chunk-L5EV6NEE.mjs → chunk-4JGCYD3Q.mjs} +3 -3
  11. package/dist/modules/chunks/{chunk-ACOMGSSB.mjs → chunk-5PHAXNFO.mjs} +2 -2
  12. package/dist/modules/chunks/{chunk-45ZU2HHR.mjs → chunk-B6QUJ33G.mjs} +27 -23
  13. package/dist/modules/chunks/chunk-B6QUJ33G.mjs.map +7 -0
  14. package/dist/modules/chunks/{chunk-FKLYSAVN.mjs → chunk-CXOD7FW6.mjs} +7 -4
  15. package/dist/modules/chunks/chunk-CXOD7FW6.mjs.map +7 -0
  16. package/dist/modules/chunks/{chunk-CRNEX7YH.mjs → chunk-D25SR5FS.mjs} +2 -2
  17. package/dist/modules/chunks/{chunk-PG4AJFDC.mjs → chunk-DJZGRO7W.mjs} +12 -12
  18. package/dist/modules/chunks/{chunk-MHE5EBU4.mjs → chunk-E3PJGTLI.mjs} +22 -14
  19. package/dist/modules/chunks/chunk-E3PJGTLI.mjs.map +7 -0
  20. package/dist/modules/chunks/{chunk-3Q26HNFS.mjs → chunk-FICPCJKR.mjs} +2 -2
  21. package/dist/modules/chunks/{chunk-CWNB67UF.mjs → chunk-FMCHH5R4.mjs} +2 -2
  22. package/dist/modules/chunks/{chunk-TTFLJHQZ.mjs → chunk-H4UIESCF.mjs} +6 -6
  23. package/dist/modules/chunks/{chunk-TTFLJHQZ.mjs.map → chunk-H4UIESCF.mjs.map} +1 -1
  24. package/dist/modules/chunks/{chunk-MO5LILCP.mjs → chunk-HWZCLROY.mjs} +6 -2
  25. package/dist/modules/chunks/chunk-HWZCLROY.mjs.map +7 -0
  26. package/dist/modules/chunks/{chunk-2VJPRNYB.mjs → chunk-IZAHIOFU.mjs} +4 -4
  27. package/dist/modules/chunks/{chunk-BGK4ZEQ5.mjs → chunk-KX2WU5Z6.mjs} +2 -2
  28. package/dist/modules/chunks/{chunk-TBZZ37VI.mjs → chunk-KYTG2MKV.mjs} +3 -3
  29. package/dist/modules/chunks/{chunk-M5X56JWH.mjs → chunk-PW5CE2Y6.mjs} +3 -3
  30. package/dist/modules/chunks/{chunk-OHVTNEQ2.mjs → chunk-PZIAKZJC.mjs} +2 -2
  31. package/dist/modules/chunks/{chunk-WHVPE2P6.mjs → chunk-Q2ZYLFJM.mjs} +4 -4
  32. package/dist/modules/chunks/{chunk-WHVPE2P6.mjs.map → chunk-Q2ZYLFJM.mjs.map} +1 -1
  33. package/dist/modules/chunks/{chunk-JZ3V27HQ.mjs → chunk-U64FRQKP.mjs} +3 -3
  34. package/dist/modules/chunks/{chunk-W46L4HSP.mjs → chunk-U6UMATPV.mjs} +3 -3
  35. package/dist/modules/chunks/{chunk-7ICJKZYO.mjs → chunk-VKNIYV2W.mjs} +26 -21
  36. package/dist/modules/chunks/chunk-VKNIYV2W.mjs.map +7 -0
  37. package/dist/modules/chunks/{chunk-7R6CGQDU.mjs → chunk-VW2ZF3P4.mjs} +4 -4
  38. package/dist/modules/chunks/{chunk-AIIYGGGC.mjs → chunk-X4NNZ5X6.mjs} +2 -2
  39. package/dist/modules/chunks/{chunk-BCTPTLA6.mjs → chunk-XEE3E42Q.mjs} +3 -3
  40. package/dist/modules/chunks/{chunk-CDO6LELS.mjs → chunk-Y2IAXE2C.mjs} +3 -3
  41. package/dist/modules/chunks/{chunk-6WCG6WPC.mjs → chunk-YNHEYXDG.mjs} +3 -3
  42. package/dist/modules/chunks/{chunk-7MJUWNVI.mjs → chunk-ZGOGO7SS.mjs} +1 -1
  43. package/dist/modules/chunks/{chunk-VXSD4FK5.mjs → chunk-ZHO2G4JR.mjs} +3 -3
  44. package/dist/modules/embedded.mjs +100 -21
  45. package/dist/modules/embedded.mjs.map +3 -3
  46. package/dist/modules/frontend-root.mjs +15 -15
  47. package/dist/modules/index.mjs +21 -21
  48. package/dist/modules/plugin.mjs +11 -11
  49. package/dist/modules/plugins/asset/frontend.mjs +4 -4
  50. package/dist/modules/plugins/asset/identity.mjs +3 -3
  51. package/dist/modules/plugins/asset/ui.mjs +2 -2
  52. package/dist/modules/plugins/content-browser/ui.mjs +2 -2
  53. package/dist/modules/plugins/inspector/ui.mjs +2 -2
  54. package/dist/modules/plugins/material/frontend.mjs +4 -4
  55. package/dist/modules/plugins/material/identity.mjs +3 -3
  56. package/dist/modules/plugins/material/ui.mjs +5 -5
  57. package/dist/modules/plugins/mesh/frontend.mjs +4 -4
  58. package/dist/modules/plugins/mesh/identity.mjs +3 -3
  59. package/dist/modules/plugins/mesh/ui.mjs +5 -5
  60. package/dist/modules/plugins/plugins/ui/panel.mjs +2 -2
  61. package/dist/modules/plugins/plugins/ui.mjs +3 -3
  62. package/dist/modules/plugins/scene-tree/ui.mjs +2 -2
  63. package/dist/modules/plugins/texture/frontend.mjs +4 -4
  64. package/dist/modules/plugins/texture/identity.mjs +3 -3
  65. package/dist/modules/plugins/texture/ui.mjs +5 -5
  66. package/dist/modules/plugins/viewport/frontend.mjs +1 -1
  67. package/dist/modules/product.mjs +11 -11
  68. package/dist/modules/shell/frontend.mjs +1 -1
  69. package/dist/modules/viewer/catalog/backend.mjs +10 -10
  70. package/dist/modules/viewer/catalog/frontend.mjs +14 -14
  71. package/dist/modules/viewer/catalog/shared.mjs +7 -7
  72. package/dist/modules/viewer/catalog.mjs +17 -17
  73. package/dist/modules/viewer-host/frontend.mjs +16 -16
  74. package/dist/modules/viewer.mjs +17 -17
  75. package/dist/modules/workspace/backend.mjs +2 -2
  76. package/dist/modules/workspace/broker.mjs +1 -1
  77. package/dist/modules/workspace/preview-surface.mjs +1 -1
  78. package/dist/modules/workspace/resource-page.mjs +2 -2
  79. package/dist/viewer/assets/{embedded-DWrXFZbD.js → embedded-Ch4NawY-.js} +2 -2
  80. package/dist/viewer/assets/{embedded-DWrXFZbD.js.map → embedded-Ch4NawY-.js.map} +1 -1
  81. package/dist/viewer/assets/main-DUQJ1NlR.js +22 -0
  82. package/dist/viewer/assets/main-DUQJ1NlR.js.map +1 -0
  83. package/dist/viewer/assets/{panels-lazy-CUTQACqc.js → panels-lazy-DbOAvYN1.js} +3 -3
  84. package/dist/viewer/assets/{panels-lazy-CUTQACqc.js.map → panels-lazy-DbOAvYN1.js.map} +1 -1
  85. package/dist/viewer/assets/panels-ui-DICIsCag.js +12 -0
  86. package/dist/viewer/assets/panels-ui-DICIsCag.js.map +1 -0
  87. package/dist/viewer/assets/style-gOtSMZif.css +2 -0
  88. package/dist/viewer/index.html +4 -4
  89. package/dist/viewer/panels.js +1 -1
  90. package/package.json +3 -4
  91. package/scripts/browser-proof-workload.mjs +0 -1
  92. package/scripts/verify-runtime-content-engine.mjs +12 -6
  93. package/dist/modules/chunks/chunk-45ZU2HHR.mjs.map +0 -7
  94. package/dist/modules/chunks/chunk-7ICJKZYO.mjs.map +0 -7
  95. package/dist/modules/chunks/chunk-FKLYSAVN.mjs.map +0 -7
  96. package/dist/modules/chunks/chunk-MHE5EBU4.mjs.map +0 -7
  97. package/dist/modules/chunks/chunk-MO5LILCP.mjs.map +0 -7
  98. package/dist/viewer/assets/main-D0JG9szD.js +0 -22
  99. package/dist/viewer/assets/main-D0JG9szD.js.map +0 -1
  100. package/dist/viewer/assets/panels-ui-Kvu5G7za.js +0 -12
  101. package/dist/viewer/assets/panels-ui-Kvu5G7za.js.map +0 -1
  102. package/dist/viewer/assets/style-BM0losky.css +0 -2
  103. package/scripts/verify-game3d-workspace.mjs +0 -318
  104. /package/dist/modules/chunks/{App-E3M52XTQ.mjs.map → App-4XQ5SNNT.mjs.map} +0 -0
  105. /package/dist/modules/chunks/{chunk-3GIGTM7E.mjs.map → chunk-27XASYEH.mjs.map} +0 -0
  106. /package/dist/modules/chunks/{chunk-UAGQZPAB.mjs.map → chunk-2Z5KEV6L.mjs.map} +0 -0
  107. /package/dist/modules/chunks/{chunk-4NGODRIE.mjs.map → chunk-46UEGAXY.mjs.map} +0 -0
  108. /package/dist/modules/chunks/{chunk-UZHTLAIZ.mjs.map → chunk-47RJSHLM.mjs.map} +0 -0
  109. /package/dist/modules/chunks/{chunk-L5EV6NEE.mjs.map → chunk-4JGCYD3Q.mjs.map} +0 -0
  110. /package/dist/modules/chunks/{chunk-ACOMGSSB.mjs.map → chunk-5PHAXNFO.mjs.map} +0 -0
  111. /package/dist/modules/chunks/{chunk-CRNEX7YH.mjs.map → chunk-D25SR5FS.mjs.map} +0 -0
  112. /package/dist/modules/chunks/{chunk-PG4AJFDC.mjs.map → chunk-DJZGRO7W.mjs.map} +0 -0
  113. /package/dist/modules/chunks/{chunk-3Q26HNFS.mjs.map → chunk-FICPCJKR.mjs.map} +0 -0
  114. /package/dist/modules/chunks/{chunk-CWNB67UF.mjs.map → chunk-FMCHH5R4.mjs.map} +0 -0
  115. /package/dist/modules/chunks/{chunk-2VJPRNYB.mjs.map → chunk-IZAHIOFU.mjs.map} +0 -0
  116. /package/dist/modules/chunks/{chunk-BGK4ZEQ5.mjs.map → chunk-KX2WU5Z6.mjs.map} +0 -0
  117. /package/dist/modules/chunks/{chunk-TBZZ37VI.mjs.map → chunk-KYTG2MKV.mjs.map} +0 -0
  118. /package/dist/modules/chunks/{chunk-M5X56JWH.mjs.map → chunk-PW5CE2Y6.mjs.map} +0 -0
  119. /package/dist/modules/chunks/{chunk-OHVTNEQ2.mjs.map → chunk-PZIAKZJC.mjs.map} +0 -0
  120. /package/dist/modules/chunks/{chunk-JZ3V27HQ.mjs.map → chunk-U64FRQKP.mjs.map} +0 -0
  121. /package/dist/modules/chunks/{chunk-W46L4HSP.mjs.map → chunk-U6UMATPV.mjs.map} +0 -0
  122. /package/dist/modules/chunks/{chunk-7R6CGQDU.mjs.map → chunk-VW2ZF3P4.mjs.map} +0 -0
  123. /package/dist/modules/chunks/{chunk-AIIYGGGC.mjs.map → chunk-X4NNZ5X6.mjs.map} +0 -0
  124. /package/dist/modules/chunks/{chunk-BCTPTLA6.mjs.map → chunk-XEE3E42Q.mjs.map} +0 -0
  125. /package/dist/modules/chunks/{chunk-CDO6LELS.mjs.map → chunk-Y2IAXE2C.mjs.map} +0 -0
  126. /package/dist/modules/chunks/{chunk-6WCG6WPC.mjs.map → chunk-YNHEYXDG.mjs.map} +0 -0
  127. /package/dist/modules/chunks/{chunk-7MJUWNVI.mjs.map → chunk-ZGOGO7SS.mjs.map} +0 -0
  128. /package/dist/modules/chunks/{chunk-VXSD4FK5.mjs.map → chunk-ZHO2G4JR.mjs.map} +0 -0
package/README.md CHANGED
@@ -242,17 +242,23 @@ Engine candidate commit and overlays the proposed View source. Engine's required
242
242
  `view-integration` lane tests the pinned consumer; `primary-pnpm` retains main ancestry
243
243
  verification. A candidate pass does not authorize an unmerged final gitlink.
244
244
 
245
- The CI workload companion uses Engine candidate `7f6db3492b5ca0a5bf1da9380db7d9cd6ff7205c`.
246
- Its diagnostic sky oracle samples the outer margin clear of both Game 3D HUD cards;
247
- the earlier pinned probe sampled the card at 320x180. The blue/gradient assertions
248
- and real frame capture remain unchanged.
245
+ The workflow's `FORGEAX_ENGINE_COMMIT` is the paired Engine candidate authority.
246
+ CI checks Engine out at the workspace root and overlays View at `tools/view`, so
247
+ Engine's composite build actions resolve their nested actions and source paths.
248
+ Node and pnpm versions come from Engine's `.nvmrc` and `.pnpm-version`; build and
249
+ browser lanes prepare the verified Rapier WASM payload before building Engine.
250
+ The diagnostic probe explicitly selects RHI Debug after refresh or service restart;
251
+ its sky oracle samples the outer margin clear of both Game 3D HUD cards, retaining
252
+ the blue/gradient assertions and real frame capture.
249
253
  The separate Runtime Capture UI proof explicitly retains its qualified 1280x720
250
254
  independent-run image under CI, including DOM/Shadow DOM pixels, reload and View loss.
251
255
 
252
256
  Contributor Game 3D and runtime-content probes bind the actual Engine source root.
253
257
  SDK npm/ZIP consumers separately run the installed View scripts, retaining JS/TS
254
- live publication and cold reopening plus the installed-package Game 3D journey.
255
- Source qualification cannot replace that independent package evidence.
258
+ live publication and cold reopening. SDK Project owns installed Game 3D build,
259
+ input and rendering; Engine/View integration owns its complete Play, cancellation
260
+ and View restart journey without repeating it in the installed View stages.
261
+ Source qualification cannot replace the retained independent package evidence.
256
262
 
257
263
  The integration gate retains startup, page/plugin lifecycle, independent AI run and
258
264
  ordinary game-3d browser probes. It also verifies diagnostic artifact pages in both
@@ -320,7 +326,12 @@ and repeated sampling. SDK/template inputs remain immutable.
320
326
  | Runtime scene window | 60 completed frames | 300 completed frames |
321
327
  | Dedicated preview open/capture/close | 2 complete cycles | 6 complete cycles |
322
328
  | Browser viewport | 1000x700 | Runtime 1440x1000; Game 3D 1440x900 |
323
- | Game 3D directional shadow map | 256, three cascades | 2048, three cascades |
329
+ | Game 3D directional shadow map | Shared Engine test profile: 256, two cascades | Authored template: 1024, three cascades |
330
+
331
+ Game 3D uses the selected Engine checkout's `scripts/test/reduce-test-project.mjs`
332
+ on its disposable copy. This shares shadow, procedural geometry and particle
333
+ budgets with Engine's other browser probes without depending on an old template
334
+ default. Entity identities, shader programs and material slots stay intact.
324
335
 
325
336
  Both JS and TS retain live admission and saved-source cold reopening. Every
326
337
  preview cycle creates one observed GPU device, renders real geometry, closes it,
@@ -815,3 +826,6 @@ entries, as well as their source closure. Native build metadata records a digest
815
826
  of the finalized viewer bytes. Engine integration checks the actual bytes and
816
827
  runs temporary served-only and native-entry mismatch falsifiers; matching
817
828
  metadata alone is not sufficient build identity.
829
+
830
+ The required project dialog is modeless: Scene still requires a confirmed project,
831
+ while artifact pages and workspace navigation remain available before opening one.
@@ -1 +1 @@
1
- {"codeRevision":"e12a08a46206522734144b820f19473089520d9844dad428d9bfdda324acfbe5","viewerDigest":"f01fe8a0d19fe0d229a043fbb7fd0f10bc8ae2271e2fff576387839b15d5e5d2"}
1
+ {"codeRevision":"92a9f98a182bc24c5e570237d659d9fcc6a2093d3a2ba34b5e2bc2f763c0dbf9","viewerDigest":"8a1efe679e83a4f857238f3e4b299c7dec2d5a931a06af674ef173292ce56c37"}
@@ -2,31 +2,31 @@ import {
2
2
  createViewBackend,
3
3
  createViewHostBinding,
4
4
  createViewPlatformBinding
5
- } from "./chunks/chunk-TBZZ37VI.mjs";
6
- import "./chunks/chunk-BCTPTLA6.mjs";
5
+ } from "./chunks/chunk-KYTG2MKV.mjs";
6
+ import "./chunks/chunk-XEE3E42Q.mjs";
7
7
  import "./chunks/chunk-YLCJNKIW.mjs";
8
8
  import "./chunks/chunk-GQANC3HH.mjs";
9
9
  import "./chunks/chunk-YY4G5LVX.mjs";
10
10
  import "./chunks/chunk-6KM24NH6.mjs";
11
- import "./chunks/chunk-3GIGTM7E.mjs";
12
- import "./chunks/chunk-MO5LILCP.mjs";
11
+ import "./chunks/chunk-27XASYEH.mjs";
12
+ import "./chunks/chunk-HWZCLROY.mjs";
13
13
  import "./chunks/chunk-55F55BQY.mjs";
14
14
  import "./chunks/chunk-N2GEQFFK.mjs";
15
- import "./chunks/chunk-TTFLJHQZ.mjs";
16
- import "./chunks/chunk-CRNEX7YH.mjs";
15
+ import "./chunks/chunk-H4UIESCF.mjs";
16
+ import "./chunks/chunk-D25SR5FS.mjs";
17
17
  import "./chunks/chunk-AGVLPYVE.mjs";
18
18
  import "./chunks/chunk-7IGFAI5H.mjs";
19
19
  import "./chunks/chunk-OKQ5RBKO.mjs";
20
20
  import "./chunks/chunk-EZSGDSCC.mjs";
21
21
  import "./chunks/chunk-EWSCJF77.mjs";
22
- import "./chunks/chunk-AIIYGGGC.mjs";
23
- import "./chunks/chunk-CWNB67UF.mjs";
22
+ import "./chunks/chunk-X4NNZ5X6.mjs";
23
+ import "./chunks/chunk-FMCHH5R4.mjs";
24
24
  import "./chunks/chunk-STQPRNEO.mjs";
25
- import "./chunks/chunk-OHVTNEQ2.mjs";
25
+ import "./chunks/chunk-PZIAKZJC.mjs";
26
26
  import "./chunks/chunk-QUFVUMSY.mjs";
27
27
  import "./chunks/chunk-HRKW766Y.mjs";
28
- import "./chunks/chunk-BGK4ZEQ5.mjs";
29
- import "./chunks/chunk-45ZU2HHR.mjs";
28
+ import "./chunks/chunk-KX2WU5Z6.mjs";
29
+ import "./chunks/chunk-B6QUJ33G.mjs";
30
30
  import "./chunks/chunk-PJFFCRRD.mjs";
31
31
  import "./chunks/chunk-IM3H4F4X.mjs";
32
32
  import "./chunks/chunk-K2QZRFLE.mjs";
@@ -11,15 +11,15 @@ import {
11
11
  connectViewFrontend,
12
12
  mountViewViewer,
13
13
  mountViewWorkspace
14
- } from "./chunks/chunk-CDO6LELS.mjs";
15
- import "./chunks/chunk-WHVPE2P6.mjs";
16
- import "./chunks/chunk-PG4AJFDC.mjs";
17
- import "./chunks/chunk-MHE5EBU4.mjs";
18
- import "./chunks/chunk-6WCG6WPC.mjs";
19
- import "./chunks/chunk-JZ3V27HQ.mjs";
20
- import "./chunks/chunk-W46L4HSP.mjs";
14
+ } from "./chunks/chunk-Y2IAXE2C.mjs";
15
+ import "./chunks/chunk-Q2ZYLFJM.mjs";
16
+ import "./chunks/chunk-DJZGRO7W.mjs";
17
+ import "./chunks/chunk-E3PJGTLI.mjs";
18
+ import "./chunks/chunk-YNHEYXDG.mjs";
19
+ import "./chunks/chunk-U64FRQKP.mjs";
20
+ import "./chunks/chunk-U6UMATPV.mjs";
21
21
  import "./chunks/chunk-YFQGSDK3.mjs";
22
- import "./chunks/chunk-VXSD4FK5.mjs";
22
+ import "./chunks/chunk-ZHO2G4JR.mjs";
23
23
  import "./chunks/chunk-CX5WREJC.mjs";
24
24
  import "./chunks/chunk-TTRUYO7Q.mjs";
25
25
  import "./chunks/chunk-F5RLQAPN.mjs";
@@ -36,8 +36,8 @@ import {
36
36
  import "./chunks/chunk-INTTYJVW.mjs";
37
37
  import "./chunks/chunk-Q2NO32WU.mjs";
38
38
  import "./chunks/chunk-OQXDADAS.mjs";
39
- import "./chunks/chunk-TTFLJHQZ.mjs";
40
- import "./chunks/chunk-CRNEX7YH.mjs";
39
+ import "./chunks/chunk-H4UIESCF.mjs";
40
+ import "./chunks/chunk-D25SR5FS.mjs";
41
41
  import {
42
42
  DISPLAY_SURFACE_ID
43
43
  } from "./chunks/chunk-AGVLPYVE.mjs";
@@ -54,14 +54,14 @@ import {
54
54
  import "./chunks/chunk-OKQ5RBKO.mjs";
55
55
  import "./chunks/chunk-EZSGDSCC.mjs";
56
56
  import "./chunks/chunk-EWSCJF77.mjs";
57
- import "./chunks/chunk-AIIYGGGC.mjs";
58
- import "./chunks/chunk-CWNB67UF.mjs";
57
+ import "./chunks/chunk-X4NNZ5X6.mjs";
58
+ import "./chunks/chunk-FMCHH5R4.mjs";
59
59
  import "./chunks/chunk-STQPRNEO.mjs";
60
- import "./chunks/chunk-OHVTNEQ2.mjs";
60
+ import "./chunks/chunk-PZIAKZJC.mjs";
61
61
  import "./chunks/chunk-QUFVUMSY.mjs";
62
62
  import "./chunks/chunk-HRKW766Y.mjs";
63
- import "./chunks/chunk-BGK4ZEQ5.mjs";
64
- import "./chunks/chunk-45ZU2HHR.mjs";
63
+ import "./chunks/chunk-KX2WU5Z6.mjs";
64
+ import "./chunks/chunk-B6QUJ33G.mjs";
65
65
  import "./chunks/chunk-PJFFCRRD.mjs";
66
66
  import "./chunks/chunk-IM3H4F4X.mjs";
67
67
  import "./chunks/chunk-K2QZRFLE.mjs";
@@ -117,7 +117,7 @@ import {
117
117
  workspaceUiFingerprint
118
118
  } from "./chunks/chunk-E3Z7GLFU.mjs";
119
119
  import "./chunks/chunk-4XEXLHX4.mjs";
120
- import "./chunks/chunk-7MJUWNVI.mjs";
120
+ import "./chunks/chunk-ZGOGO7SS.mjs";
121
121
  import "./chunks/chunk-QAXALJEY.mjs";
122
122
  import "./chunks/chunk-FLGC65SR.mjs";
123
123
  export {
@@ -8,7 +8,7 @@ import {
8
8
  Spinner,
9
9
  Switch,
10
10
  TextInput
11
- } from "./chunk-FKLYSAVN.mjs";
11
+ } from "./chunk-CXOD7FW6.mjs";
12
12
  import "./chunk-FLGC65SR.mjs";
13
13
 
14
14
  // ../../apps/rhi-debug-viewer/src/App.tsx
@@ -39066,4 +39066,4 @@ dockview-react/dist/package/main.esm.mjs:
39066
39066
  * @license MIT
39067
39067
  *)
39068
39068
  */
39069
- //# sourceMappingURL=App-E3M52XTQ.mjs.map
39069
+ //# sourceMappingURL=App-4XQ5SNNT.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ViewWorkspaceBroker
3
- } from "./chunk-MO5LILCP.mjs";
3
+ } from "./chunk-HWZCLROY.mjs";
4
4
  import {
5
5
  createWorkspaceToolContributions,
6
6
  defineWorkspaceOperations
@@ -75,4 +75,4 @@ export {
75
75
  viewWorkspaceCoreBackendPlugin,
76
76
  backend_default
77
77
  };
78
- //# sourceMappingURL=chunk-3GIGTM7E.mjs.map
78
+ //# sourceMappingURL=chunk-27XASYEH.mjs.map
@@ -8,7 +8,7 @@ import {
8
8
  InspectorForm,
9
9
  OverlayRootProvider,
10
10
  PanelHeader
11
- } from "./chunk-FKLYSAVN.mjs";
11
+ } from "./chunk-CXOD7FW6.mjs";
12
12
  import {
13
13
  unwrapWorkspaceInspection
14
14
  } from "./chunk-ZYTHV373.mjs";
@@ -118,4 +118,4 @@ async function mountAssetPropertiesPanel(props) {
118
118
  export {
119
119
  mountAssetPropertiesPanel
120
120
  };
121
- //# sourceMappingURL=chunk-UAGQZPAB.mjs.map
121
+ //# sourceMappingURL=chunk-2Z5KEV6L.mjs.map
@@ -9,16 +9,16 @@ import {
9
9
  OverlayRootProvider,
10
10
  PanelHeader,
11
11
  PropertyRow
12
- } from "./chunk-FKLYSAVN.mjs";
12
+ } from "./chunk-CXOD7FW6.mjs";
13
13
  import {
14
14
  unwrapWorkspaceInspection
15
15
  } from "./chunk-ZYTHV373.mjs";
16
16
  import {
17
17
  RESOURCE_KINDS
18
- } from "./chunk-AIIYGGGC.mjs";
18
+ } from "./chunk-X4NNZ5X6.mjs";
19
19
  import {
20
20
  bindWorkspacePreviewSurface
21
- } from "./chunk-45ZU2HHR.mjs";
21
+ } from "./chunk-B6QUJ33G.mjs";
22
22
  import {
23
23
  selectWorkspaceResourcePreview,
24
24
  selectWorkspaceResourceSubject
@@ -241,4 +241,4 @@ export {
241
241
  mountMeshPreviewPanel,
242
242
  mountMeshPropertiesPanel
243
243
  };
244
- //# sourceMappingURL=chunk-4NGODRIE.mjs.map
244
+ //# sourceMappingURL=chunk-46UEGAXY.mjs.map
@@ -25,7 +25,7 @@ import {
25
25
  resolveInspectorFieldKind,
26
26
  useOverlayRoot,
27
27
  useWorkspaceClientConnected
28
- } from "./chunk-FKLYSAVN.mjs";
28
+ } from "./chunk-CXOD7FW6.mjs";
29
29
  import {
30
30
  createWorkspaceObservation,
31
31
  createWorkspaceStateReader
@@ -431,4 +431,4 @@ async function mountInspectorPanel(props) {
431
431
  export {
432
432
  mountInspectorPanel
433
433
  };
434
- //# sourceMappingURL=chunk-UZHTLAIZ.mjs.map
434
+ //# sourceMappingURL=chunk-47RJSHLM.mjs.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-5AKXNYKX.mjs";
8
8
  import {
9
9
  VIEW_PRODUCT_BACKEND_CATALOG
10
- } from "./chunk-BCTPTLA6.mjs";
10
+ } from "./chunk-XEE3E42Q.mjs";
11
11
  import {
12
12
  startViewHostServer
13
13
  } from "./chunk-N2GEQFFK.mjs";
@@ -19,7 +19,7 @@ import {
19
19
  VIEW_FRONTEND_MODULE,
20
20
  createViewProductPlan,
21
21
  viewFrontendRoot
22
- } from "./chunk-TTFLJHQZ.mjs";
22
+ } from "./chunk-H4UIESCF.mjs";
23
23
  import {
24
24
  workspaceDiagnosticRecord
25
25
  } from "./chunk-U5R6MVM4.mjs";
@@ -283,4 +283,4 @@ var product_default = {
283
283
  export {
284
284
  product_default
285
285
  };
286
- //# sourceMappingURL=chunk-L5EV6NEE.mjs.map
286
+ //# sourceMappingURL=chunk-4JGCYD3Q.mjs.map
@@ -8,7 +8,7 @@ import {
8
8
  Surface,
9
9
  Text,
10
10
  Toolbar
11
- } from "./chunk-FKLYSAVN.mjs";
11
+ } from "./chunk-CXOD7FW6.mjs";
12
12
  import {
13
13
  PLUGINS_ACTIONS
14
14
  } from "./chunk-UMKHEGRE.mjs";
@@ -441,4 +441,4 @@ function PluginsPanel(props) {
441
441
  export {
442
442
  PluginsPanel
443
443
  };
444
- //# sourceMappingURL=chunk-ACOMGSSB.mjs.map
444
+ //# sourceMappingURL=chunk-5PHAXNFO.mjs.map
@@ -3,7 +3,6 @@ import {
3
3
  } from "./chunk-PJFFCRRD.mjs";
4
4
  import {
5
5
  keepSurfaceInContainer,
6
- placeSurface,
7
6
  watchUntilReady
8
7
  } from "./chunk-QW3ZY2AD.mjs";
9
8
  import {
@@ -46,9 +45,6 @@ function isEditorOwnerSurface(surface, container, { target, editorTargetId } = {
46
45
  if (container === viewport || container?.contains?.(viewport)) return false;
47
46
  return true;
48
47
  }
49
- function adoptSurface(container, surface) {
50
- placeSurface(container, surface, { replace: true });
51
- }
52
48
  function fillPresentationSurface(surface) {
53
49
  if (!surface?.style) return;
54
50
  Object.assign(surface.style, {
@@ -159,7 +155,12 @@ function bindWorkspacePreviewSurface({
159
155
  container.dataset.forgeaxPreviewPanel = surfaceOwner.panelId;
160
156
  container.dataset.forgeaxPreviewPage = surfaceOwner.pageType;
161
157
  container.dataset.forgeaxAssetPreview = String(target.targetId);
162
- adoptSurface(container, surface);
158
+ const stopKeep = keepSurfaceInContainer({
159
+ document: container.ownerDocument,
160
+ getContainer: () => container,
161
+ getSurface: () => surface,
162
+ replace: true
163
+ });
163
164
  fillPresentationSurface(surface);
164
165
  const canvasNode = surfaceCanvas(surface);
165
166
  fillPresentationSurface(canvasNode);
@@ -177,26 +178,29 @@ function bindWorkspacePreviewSurface({
177
178
  targetId: String(target.targetId),
178
179
  surfaceTag: surface.tagName ?? null
179
180
  });
180
- const attachment = typeof presentation.attach === "function" ? Promise.resolve(presentation.attach({ target, element: surface, owner: surfaceOwner })) : Promise.resolve();
181
- const stopKeep = keepSurfaceInContainer({
182
- document: container.ownerDocument,
183
- getContainer: () => container,
184
- getSurface: () => surface,
185
- replace: true
186
- });
181
+ const releasePlacement = () => {
182
+ stopKeep();
183
+ detachResize();
184
+ if (surface.parentNode === container) {
185
+ if (typeof container.removeChild === "function") container.removeChild(surface);
186
+ else container.replaceChildren?.();
187
+ }
188
+ if (containerOwners.get(container) === surfaceOwner) containerOwners.delete(container);
189
+ delete container.dataset.forgeaxPreviewPanel;
190
+ delete container.dataset.forgeaxPreviewPage;
191
+ delete container.dataset.forgeaxAssetPreview;
192
+ };
193
+ let attachment;
194
+ try {
195
+ attachment = typeof presentation.attach === "function" ? Promise.resolve(presentation.attach({ target, element: surface, owner: surfaceOwner })) : Promise.resolve();
196
+ } catch (cause) {
197
+ releasePlacement();
198
+ throw cause;
199
+ }
187
200
  return {
188
201
  ok: true,
189
202
  dispose: async () => {
190
- stopKeep();
191
- detachResize();
192
- if (surface.parentNode === container) {
193
- if (typeof container.removeChild === "function") container.removeChild(surface);
194
- else container.replaceChildren?.();
195
- }
196
- if (containerOwners.get(container) === surfaceOwner) containerOwners.delete(container);
197
- delete container.dataset.forgeaxPreviewPanel;
198
- delete container.dataset.forgeaxPreviewPage;
199
- delete container.dataset.forgeaxAssetPreview;
203
+ releasePlacement();
200
204
  const detach = await attachment;
201
205
  await detach?.();
202
206
  }
@@ -236,4 +240,4 @@ export {
236
240
  dedicatedPreviewPresentation,
237
241
  bindWorkspacePreviewSurface
238
242
  };
239
- //# sourceMappingURL=chunk-45ZU2HHR.mjs.map
243
+ //# sourceMappingURL=chunk-B6QUJ33G.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/view-workspace-core/src/preview-surface.ts"],
4
+ "sourcesContent": ["import type { EngineWorkspaceTarget } from '@forgeax/engine/app';\nimport type { WorkspaceTarget } from './contract.ts';\nimport type { ViewWorkspaceClient } from './client.ts';\nimport type { ViewPresentation, PreviewOwner } from './engine-presentation.ts';\nexport type PreviewSurfaceResult = { ok: true; dispose?: () => void | Promise<void> } | { ok: false; error: { code: string; expected: string; hint: string } };\nexport type PreviewSurfaceOptions = { presentation?: ViewPresentation; target?: WorkspaceTarget; container?: HTMLElement | null; canvas?: unknown; owner?: PreviewOwner; editorTargetId?: string; api?: Pick<ViewWorkspaceClient, 'resizePreview'> };\n\nimport { keepSurfaceInContainer, watchUntilReady } from './adopt-surface.ts';\nimport { logResourceOpen } from './resource-open.ts';\nimport { attachPreviewRenderResizeSync } from './render-resize-sync.ts';\n\nconst OWNER_PLACEMENT = 'owner';\nconst containerOwners = new WeakMap<HTMLElement, PreviewOwner>();\n\nfunction previewSurfaceError(code: string, expected: string, hint: string): Extract<PreviewSurfaceResult, { ok: false }> {\n return Object.freeze({\n ok: false,\n error: Object.freeze({ code, expected, hint }),\n });\n}\n\nfunction placementOf(presentation: ViewPresentation | undefined) {\n return presentation?.surfacePlacement === OWNER_PLACEMENT ? OWNER_PLACEMENT : 'shell';\n}\n\nfunction isCanvasNode(node: unknown): node is HTMLCanvasElement {\n return node != null && typeof node === 'object' && 'tagName' in node && typeof node.tagName === 'string' && node.tagName.toLowerCase() === 'canvas';\n}\n\nfunction isPanelContainer(node: unknown): node is HTMLElement {\n if (!node || typeof node !== 'object' || isCanvasNode(node)) return false;\n return ('replaceChildren' in node && typeof node.replaceChildren === 'function') || ('append' in node && typeof node.append === 'function');\n}\n\nfunction surfaceCanvas(surface: HTMLElement) {\n if (isCanvasNode(surface)) return surface;\n return typeof surface?.querySelector === 'function' ? surface.querySelector('canvas') : null;\n}\n\nfunction isEditorOwnerSurface(surface: HTMLElement, container: HTMLElement, { target, editorTargetId }: Pick<PreviewSurfaceOptions, 'target' | 'editorTargetId'> = {}) {\n if (surface?.id === 'app-shell' || surface?.id === 'app') return true;\n if (\n editorTargetId != null &&\n target?.targetId != null &&\n String(editorTargetId) === String(target.targetId)\n ) {\n return true;\n }\n const marker = surface?.dataset?.forgeaxViewSurface;\n if (marker === 'engine-canvas' || marker === 'engine-target') return true;\n if (typeof surface?.closest !== 'function') return false;\n const viewport = surface.closest('[data-forgeax-view-mount-host=\"viewport\"]');\n if (!viewport) return false;\n if (container === viewport || container?.contains?.(viewport)) return false;\n return true;\n}\n\nfunction fillPresentationSurface(surface: HTMLElement | null) {\n if (!surface?.style) return;\n Object.assign(surface.style, {\n width: '100%',\n height: '100%',\n maxWidth: '100%',\n maxHeight: '100%',\n transform: 'none',\n position: 'relative',\n overflow: 'hidden',\n flex: '1 1 auto',\n minWidth: '0',\n minHeight: '0',\n display: 'block',\n });\n}\n\n/**\n * Stamp a panel/page owner onto presentation. Asset pages only host the\n * Engine type-preview surface; they do not create a canvas.\n */\nexport function dedicatedPreviewPresentation(presentation: ViewPresentation | undefined, owner: PreviewOwner): ViewPresentation | undefined {\n if (!presentation || typeof presentation !== 'object') return undefined;\n return {\n get surfacePlacement() {\n return presentation.surfacePlacement;\n },\n get owner() {\n return owner ?? presentation.owner;\n },\n createSurface(input) {\n return presentation.createSurface?.(input);\n },\n attach(input) {\n return presentation.attach?.({ ...input, owner });\n },\n detach(input) {\n return presentation.detach?.(input);\n },\n };\n}\n\n/**\n * Place an Engine type-preview surface into the container owned by one asset\n * panel. The panel never creates a canvas; Engine `createSurface` returns the\n * live surface. Editor owner canvases are refused.\n *\n * @param {{\n * presentation?: object,\n * target?: { targetId?: string | number },\n * container?: HTMLElement,\n * owner?: { panelId?: string, pageType?: string },\n * editorTargetId?: string | number,\n * api?: { resizePreview?: (input: object) => Promise<unknown> },\n * }} [options]\n * @returns {{ ok: true, dispose?: () => unknown } | { ok: false, error: { code: string, expected: string, hint: string } }}\n */\nexport function bindWorkspacePreviewSurface({\n presentation,\n target,\n container,\n canvas,\n owner,\n editorTargetId,\n api,\n}: PreviewSurfaceOptions = {}): PreviewSurfaceResult {\n if (canvas !== undefined || isCanvasNode(container)) {\n throw new TypeError('bindWorkspacePreviewSurface requires a panel-owned container, not a canvas');\n }\n if (!isPanelContainer(container)) {\n throw new TypeError('bindWorkspacePreviewSurface requires a panel-owned container');\n }\n if (!target || (typeof target.targetId !== 'string' && typeof target.targetId !== 'number')) {\n return previewSurfaceError(\n 'view-preview-target-unavailable',\n 'an Engine preview target identity',\n 'Open the asset through Engine asset.open before attaching a preview surface.',\n );\n }\n if (placementOf(presentation) === OWNER_PLACEMENT) {\n return previewSurfaceError(\n 'view-preview-surface-unavailable',\n 'a shell-placed Engine preview surface dedicated to this panel',\n 'The Engine owner surface stays on the Editor viewport; asset preview cannot relocate that iframe.',\n );\n }\n if (!presentation || typeof presentation.createSurface !== 'function') {\n return previewSurfaceError(\n 'view-preview-surface-unavailable',\n 'an Engine presentation that can create a type-preview surface',\n 'The asset tab hosts a DOM container; Engine createSurface places the live canvas into it.',\n );\n }\n const surfaceOwner = owner ?? presentation.owner;\n if (!surfaceOwner?.panelId || !surfaceOwner?.pageType) {\n return previewSurfaceError(\n 'view-preview-owner-unavailable',\n 'a stable asset preview panel owner',\n 'Bind the preview through its PageType panel contribution.',\n );\n }\n const claimedBy = containerOwners.get(container);\n if (claimedBy !== undefined && claimedBy !== surfaceOwner) {\n return previewSurfaceError(\n 'view-preview-canvas-owned',\n 'a container used by exactly one asset preview panel',\n 'Create a new container for this asset preview panel.',\n );\n }\n\n const missingSurface = () => previewSurfaceError(\n 'view-preview-surface-unavailable',\n 'an Engine type-preview surface for this target',\n 'Engine must expose a type-preview surface via createSurface; the tab does not create a canvas.',\n );\n const refuseEditor = () => previewSurfaceError(\n 'view-preview-surface-unavailable',\n 'a shell-placed Engine preview surface dedicated to this panel',\n 'The Engine owner surface stays on the Editor viewport; asset preview cannot relocate that iframe.',\n );\n\n const resolveSurface = () => {\n const surface = presentation.createSurface!({\n target: target as EngineWorkspaceTarget,\n document: container.ownerDocument,\n });\n return surface && typeof surface === 'object' && 'tagName' in surface && typeof surface.tagName === 'string' ? surface as HTMLElement : null;\n };\n\n const installSurface = (surface: HTMLElement): Extract<PreviewSurfaceResult, { ok: true }> => {\n containerOwners.set(container, surfaceOwner);\n container.dataset.forgeaxPreviewPanel = surfaceOwner.panelId;\n container.dataset.forgeaxPreviewPage = surfaceOwner.pageType;\n container.dataset.forgeaxAssetPreview = String(target.targetId);\n const stopKeep = keepSurfaceInContainer({\n document: container.ownerDocument,\n getContainer: () => container,\n getSurface: () => surface,\n replace: true,\n });\n fillPresentationSurface(surface);\n const canvasNode = surfaceCanvas(surface);\n fillPresentationSurface(canvasNode);\n const resizeTarget = Number.isSafeInteger(target.generation)\n ? { targetId: String(target.targetId), generation: target.generation }\n : null;\n const detachResize = resizeTarget && api\n ? attachPreviewRenderResizeSync({ api, surface: container, target: resizeTarget })\n : () => {};\n if (canvasNode?.dataset) {\n canvasNode.dataset.forgeaxAssetPreview = String(target.targetId);\n canvasNode.dataset.forgeaxPreviewPanel = surfaceOwner.panelId;\n canvasNode.dataset.forgeaxPreviewPage = surfaceOwner.pageType;\n }\n logResourceOpen('preview-surface-hosted', {\n pageType: surfaceOwner.pageType,\n panelId: surfaceOwner.panelId,\n targetId: String(target.targetId),\n surfaceTag: surface.tagName ?? null,\n });\n const releasePlacement = () => {\n // Return the borrowed surface to Engine parking before awaiting cleanup.\n stopKeep();\n detachResize();\n // React may bind this same Engine surface again before detach resolves.\n // Release this placement synchronously so old cleanup cannot remove it.\n if (surface.parentNode === container) {\n if (typeof container.removeChild === 'function') container.removeChild(surface);\n else container.replaceChildren?.();\n }\n if (containerOwners.get(container) === surfaceOwner) containerOwners.delete(container);\n delete container.dataset.forgeaxPreviewPanel;\n delete container.dataset.forgeaxPreviewPage;\n delete container.dataset.forgeaxAssetPreview;\n };\n let attachment: Promise<void | (() => void)>;\n try {\n attachment = typeof presentation.attach === 'function'\n ? Promise.resolve(presentation.attach({ target: target as EngineWorkspaceTarget, element: surface, owner: surfaceOwner }))\n : Promise.resolve();\n } catch (cause) {\n releasePlacement();\n throw cause;\n }\n return {\n ok: true,\n dispose: async () => {\n releasePlacement();\n const detach = await attachment;\n await detach?.();\n },\n };\n };\n\n const first = resolveSurface();\n if (first) {\n if (isEditorOwnerSurface(first, container, { target, editorTargetId })) return refuseEditor();\n return installSurface(first);\n }\n\n const document = container.ownerDocument;\n const win = document?.defaultView ?? globalThis;\n const Observer = document?.defaultView?.MutationObserver ?? globalThis.MutationObserver;\n const canWatch = typeof Observer === 'function' || typeof win.requestAnimationFrame === 'function';\n if (!canWatch) return missingSurface();\n\n let hosted: Extract<PreviewSurfaceResult, { ok: true }> | undefined;\n const stopWatch = watchUntilReady({\n document,\n probe: () => {\n if (hosted) return true;\n const surface = resolveSurface();\n if (!surface || isEditorOwnerSurface(surface, container, { target, editorTargetId })) return false;\n hosted = installSurface(surface);\n return true;\n },\n });\n return {\n ok: true,\n dispose: async () => {\n stopWatch();\n await hosted?.dispose?.();\n },\n };\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -694,6 +694,7 @@ function ContextMenu({
694
694
  }
695
695
  function Dialog({
696
696
  open,
697
+ modal = true,
697
698
  title,
698
699
  children,
699
700
  footer,
@@ -711,14 +712,15 @@ function Dialog({
711
712
  if (!dialog) return;
712
713
  if (open && !dialog.open) {
713
714
  returnFocusRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;
714
- dialog.showModal();
715
+ if (modal) dialog.showModal();
716
+ else dialog.show();
715
717
  requestAnimationFrame(() => initialFocusRef?.current?.focus());
716
718
  }
717
719
  if (!open && dialog.open) {
718
720
  dialog.close();
719
721
  returnFocusRef.current?.focus();
720
722
  }
721
- }, [initialFocusRef, open]);
723
+ }, [initialFocusRef, modal, open]);
722
724
  return /* @__PURE__ */ jsxs(
723
725
  "dialog",
724
726
  {
@@ -739,7 +741,8 @@ function Dialog({
739
741
  requestAnimationFrame(() => {
740
742
  const dialog = ref.current;
741
743
  if (open && dialog && !dialog.open) {
742
- dialog.showModal();
744
+ if (modal) dialog.showModal();
745
+ else dialog.show();
743
746
  initialFocusRef?.current?.focus();
744
747
  }
745
748
  });
@@ -2088,4 +2091,4 @@ export {
2088
2091
  ThemeProvider,
2089
2092
  useTheme
2090
2093
  };
2091
- //# sourceMappingURL=chunk-FKLYSAVN.mjs.map
2094
+ //# sourceMappingURL=chunk-CXOD7FW6.mjs.map