@forgeax/view 0.5.0-dev.13598.ab27e992befc → 0.5.0-dev.13604.c415409c3b9d

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 (41) hide show
  1. package/dist/build-revision.json +1 -1
  2. package/dist/modules/backend.mjs +3 -3
  3. package/dist/modules/browser.mjs +4 -4
  4. package/dist/modules/chunks/{chunk-SYE5RTD4.mjs → chunk-D2RCKG7Q.mjs} +3 -3
  5. package/dist/modules/chunks/{chunk-D5GUFI74.mjs → chunk-DWT3TA6M.mjs} +3 -3
  6. package/dist/modules/chunks/{chunk-I5KQUTEE.mjs → chunk-IJPWKKIU.mjs} +2 -2
  7. package/dist/modules/chunks/{chunk-I5KQUTEE.mjs.map → chunk-IJPWKKIU.mjs.map} +1 -1
  8. package/dist/modules/chunks/{chunk-DZRJQVJF.mjs → chunk-LZ57Y73Z.mjs} +3 -3
  9. package/dist/modules/chunks/{chunk-BGWAT7SI.mjs → chunk-RJVOH7G2.mjs} +2 -2
  10. package/dist/modules/chunks/{chunk-RJ4PIQRU.mjs → chunk-XMP4THLF.mjs} +3 -3
  11. package/dist/modules/chunks/{chunk-7725LLBM.mjs → chunk-XQYF2P6M.mjs} +2 -2
  12. package/dist/modules/frontend-root.mjs +3 -3
  13. package/dist/modules/index.mjs +7 -7
  14. package/dist/modules/plugin.mjs +3 -3
  15. package/dist/modules/product.mjs +3 -3
  16. package/dist/modules/viewer/catalog/backend.mjs +2 -2
  17. package/dist/modules/viewer/catalog/frontend.mjs +2 -2
  18. package/dist/modules/viewer/catalog/shared.mjs +1 -1
  19. package/dist/modules/viewer/catalog.mjs +3 -3
  20. package/dist/modules/viewer-host/frontend.mjs +4 -4
  21. package/dist/modules/viewer.mjs +3 -3
  22. package/dist/viewer/assets/{embedded-Ch4NawY-.js → embedded-DXSSFAyM.js} +2 -2
  23. package/dist/viewer/assets/{embedded-Ch4NawY-.js.map → embedded-DXSSFAyM.js.map} +1 -1
  24. package/dist/viewer/assets/{main-DUQJ1NlR.js → main-CI6ZQziX.js} +4 -4
  25. package/dist/viewer/assets/main-CI6ZQziX.js.map +1 -0
  26. package/dist/viewer/assets/{panels-lazy-DbOAvYN1.js → panels-lazy-DqCwhGd9.js} +2 -2
  27. package/dist/viewer/assets/{panels-lazy-DbOAvYN1.js.map → panels-lazy-DqCwhGd9.js.map} +1 -1
  28. package/dist/viewer/assets/{panels-ui-DICIsCag.js → panels-ui-CfUtl68h.js} +4 -4
  29. package/dist/viewer/assets/{panels-ui-DICIsCag.js.map → panels-ui-CfUtl68h.js.map} +1 -1
  30. package/dist/viewer/assets/{wgpu_wasm-DZKPZXEq.js → wgpu_wasm--oeqTwVY.js} +1 -1
  31. package/dist/viewer/assets/{wgpu_wasm_bg-C1seepuF.wasm → wgpu_wasm_bg-WoZ1YI1I.wasm} +0 -0
  32. package/dist/viewer/index.html +3 -3
  33. package/dist/viewer/panels.js +1 -1
  34. package/package.json +2 -2
  35. package/dist/viewer/assets/main-DUQJ1NlR.js.map +0 -1
  36. /package/dist/modules/chunks/{chunk-SYE5RTD4.mjs.map → chunk-D2RCKG7Q.mjs.map} +0 -0
  37. /package/dist/modules/chunks/{chunk-D5GUFI74.mjs.map → chunk-DWT3TA6M.mjs.map} +0 -0
  38. /package/dist/modules/chunks/{chunk-DZRJQVJF.mjs.map → chunk-LZ57Y73Z.mjs.map} +0 -0
  39. /package/dist/modules/chunks/{chunk-BGWAT7SI.mjs.map → chunk-RJVOH7G2.mjs.map} +0 -0
  40. /package/dist/modules/chunks/{chunk-RJ4PIQRU.mjs.map → chunk-XMP4THLF.mjs.map} +0 -0
  41. /package/dist/modules/chunks/{chunk-7725LLBM.mjs.map → chunk-XQYF2P6M.mjs.map} +0 -0
@@ -1 +1 @@
1
- {"codeRevision":"3d257ebc122817030cb1001d516e574c7997013439f0e83bb2fa5ac2e93cd3cd","viewerDigest":"1105ba217f8a6b62aedf41d8a31fe5c68a14be078cd01aa4d67466b6f58c922b"}
1
+ {"codeRevision":"1803fe06a4440233ec0495ef340afc9f8b0e350ce211dd66b15412f48dfecad1","viewerDigest":"20561802de9394166c9b84b8d6909d09e6c4940e20735f0f12f854374a228d9a"}
@@ -2,8 +2,8 @@ import {
2
2
  createViewBackend,
3
3
  createViewHostBinding,
4
4
  createViewPlatformBinding
5
- } from "./chunks/chunk-DZRJQVJF.mjs";
6
- import "./chunks/chunk-7725LLBM.mjs";
5
+ } from "./chunks/chunk-LZ57Y73Z.mjs";
6
+ import "./chunks/chunk-XQYF2P6M.mjs";
7
7
  import "./chunks/chunk-YLCJNKIW.mjs";
8
8
  import "./chunks/chunk-GQANC3HH.mjs";
9
9
  import "./chunks/chunk-YY4G5LVX.mjs";
@@ -12,7 +12,7 @@ import "./chunks/chunk-27XASYEH.mjs";
12
12
  import "./chunks/chunk-HWZCLROY.mjs";
13
13
  import "./chunks/chunk-55F55BQY.mjs";
14
14
  import "./chunks/chunk-U5J7OTEB.mjs";
15
- import "./chunks/chunk-I5KQUTEE.mjs";
15
+ import "./chunks/chunk-IJPWKKIU.mjs";
16
16
  import "./chunks/chunk-D25SR5FS.mjs";
17
17
  import "./chunks/chunk-AGVLPYVE.mjs";
18
18
  import "./chunks/chunk-7IGFAI5H.mjs";
@@ -11,9 +11,9 @@ import {
11
11
  connectViewFrontend,
12
12
  mountViewViewer,
13
13
  mountViewWorkspace
14
- } from "./chunks/chunk-SYE5RTD4.mjs";
15
- import "./chunks/chunk-RJ4PIQRU.mjs";
16
- import "./chunks/chunk-BGWAT7SI.mjs";
14
+ } from "./chunks/chunk-D2RCKG7Q.mjs";
15
+ import "./chunks/chunk-XMP4THLF.mjs";
16
+ import "./chunks/chunk-RJVOH7G2.mjs";
17
17
  import "./chunks/chunk-E3PJGTLI.mjs";
18
18
  import "./chunks/chunk-YNHEYXDG.mjs";
19
19
  import "./chunks/chunk-U64FRQKP.mjs";
@@ -36,7 +36,7 @@ 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-I5KQUTEE.mjs";
39
+ import "./chunks/chunk-IJPWKKIU.mjs";
40
40
  import "./chunks/chunk-D25SR5FS.mjs";
41
41
  import {
42
42
  DISPLAY_SURFACE_ID
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createViewFrontendRoot
3
- } from "./chunk-RJ4PIQRU.mjs";
3
+ } from "./chunk-XMP4THLF.mjs";
4
4
  import {
5
5
  createViewPageHost,
6
6
  createViewPageTypeRegistry
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-GQOXQ4AV.mjs";
11
11
  import {
12
12
  VIEW_FRONTEND_ROOT_PROGRAM
13
- } from "./chunk-I5KQUTEE.mjs";
13
+ } from "./chunk-IJPWKKIU.mjs";
14
14
  import {
15
15
  workspaceBrowserEndpoint
16
16
  } from "./chunk-FNRGLCZW.mjs";
@@ -135,4 +135,4 @@ export {
135
135
  mountViewWorkspace,
136
136
  mountViewViewer
137
137
  };
138
- //# sourceMappingURL=chunk-SYE5RTD4.mjs.map
138
+ //# sourceMappingURL=chunk-D2RCKG7Q.mjs.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-XE6ITXHT.mjs";
8
8
  import {
9
9
  VIEW_PRODUCT_BACKEND_CATALOG
10
- } from "./chunk-7725LLBM.mjs";
10
+ } from "./chunk-XQYF2P6M.mjs";
11
11
  import {
12
12
  startViewHostServer
13
13
  } from "./chunk-U5J7OTEB.mjs";
@@ -19,7 +19,7 @@ import {
19
19
  VIEW_FRONTEND_MODULE,
20
20
  createViewProductPlan,
21
21
  viewFrontendRoot
22
- } from "./chunk-I5KQUTEE.mjs";
22
+ } from "./chunk-IJPWKKIU.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-D5GUFI74.mjs.map
286
+ //# sourceMappingURL=chunk-DWT3TA6M.mjs.map
@@ -48,7 +48,7 @@ import {
48
48
  } from "./chunk-QAXALJEY.mjs";
49
49
 
50
50
  // view-revision:revision
51
- var revision_default = "3d257ebc122817030cb1001d516e574c7997013439f0e83bb2fa5ac2e93cd3cd";
51
+ var revision_default = "1803fe06a4440233ec0495ef340afc9f8b0e350ce211dd66b15412f48dfecad1";
52
52
 
53
53
  // packages/viewer/src/catalog-shared.ts
54
54
  var VIEW_PLUGIN_VERSION = "0.2.0";
@@ -125,4 +125,4 @@ export {
125
125
  VIEW_PRODUCT_PLUGINS,
126
126
  createViewProductPlan
127
127
  };
128
- //# sourceMappingURL=chunk-I5KQUTEE.mjs.map
128
+ //# sourceMappingURL=chunk-IJPWKKIU.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["view-revision:revision", "../../../packages/viewer/src/catalog-shared.ts"],
4
- "sourcesContent": ["export default \"3d257ebc122817030cb1001d516e574c7997013439f0e83bb2fa5ac2e93cd3cd\"", "import type { ViewFrontendConfig } from './config.ts';\nimport type { EngineWorkspaceProvider } from '@forgeax/engine/app';\nimport type { ViewPlatform, CarrierCapabilities } from '@forgeax/view-plugin-display/carrier-contract';\nimport type { ViewWorkspaceBroker } from '@forgeax/view-workspace-core/broker';\nexport type ViewBackendProductConfig = {\n platform?: ViewPlatform; capabilities?: Partial<CarrierCapabilities>; workspaceEngine?: EngineWorkspaceProvider;\n workspaceAccessToken?: string; workspaceAuthorize?: NonNullable<ConstructorParameters<typeof ViewWorkspaceBroker>[0]>['authorize'];\n};\nimport buildRevision from './build-identity.ts';\nimport * as display from '@forgeax/view-plugin-display/identity';\nimport * as plugins from '@forgeax/view-plugin-plugins/identity';\nimport * as inspector from '@forgeax/view-plugin-inspector/identity';\nimport * as contentBrowser from '@forgeax/view-plugin-content-browser/identity';\nimport * as sceneTree from '@forgeax/view-plugin-scene-tree/identity';\nimport * as material from '@forgeax/view-plugin-material/identity';\nimport * as mesh from '@forgeax/view-plugin-mesh/identity';\nimport * as texture from '@forgeax/view-plugin-texture/identity';\nimport * as asset from '@forgeax/view-plugin-asset/identity';\nimport * as viewport from '@forgeax/view-plugin-viewport/identity';\nimport * as scene from '@forgeax/view-plugin-scene/identity';\n\nimport { SHELL_MODULE, SHELL_PLUGIN_ID } from './plugins/shell-identity.ts';\nimport { PRESENTATION_MODULE, PRESENTATION_PLUGIN_ID } from '@forgeax/view-plugin-viewport/presentation-identity';\n\nexport const VIEW_PLUGIN_VERSION = '0.2.0';\nexport const VIEW_FRONTEND_ROOT_PROGRAM = '@forgeax/view/frontend-root';\nexport const VIEW_FRONTEND_MODULE = Object.freeze({ specifier: VIEW_FRONTEND_ROOT_PROGRAM });\n\nexport function viewFrontendRoot(frontendConfig: ViewFrontendConfig | undefined, disabledPages: readonly string[] = []) {\n return Object.freeze({\n program: VIEW_FRONTEND_ROOT_PROGRAM,\n codeRevision: buildRevision,\n config: { frontendConfig, disabledPages },\n });\n}\n\nexport const VIEW_WORKSPACE_CORE = Object.freeze({\n BACKEND_PLUGIN_ID: 'forgeax.view.service.workspace.backend',\n FRONTEND_PLUGIN_ID: 'forgeax.view.service.workspace-client.frontend',\n BACKEND_MODULE: '@forgeax/view-workspace-core/backend',\n FRONTEND_MODULE: '@forgeax/view/workspace-frontend',\n});\n\nexport const VIEW_PRODUCT_PLUGINS = Object.freeze([\n scene,\n display,\n viewport,\n contentBrowser,\n plugins,\n inspector,\n sceneTree,\n material,\n mesh,\n texture,\n asset,\n]);\n\n/** Static native composition. Pack assets own game plugin identity; View owns only its UI policy. */\nexport function createViewProductPlan({ backendConfig, frontendConfig, disabledPages = [] }: { backendConfig?: ViewBackendProductConfig; frontendConfig?: ViewFrontendConfig; disabledPages?: readonly string[] } = {}) {\n const pages = new Set<string>(VIEW_PRODUCT_PLUGINS.map(plugin => plugin.PAGE_TYPE));\n for (const page of disabledPages) {\n if (!pages.has(page)) throw new TypeError(`Unknown View page: ${page}`);\n }\n const disabled = new Set(disabledPages);\n const displayBackendConfig = {\n platform: backendConfig?.platform,\n capabilities: backendConfig?.capabilities,\n };\n const workspaceBackendConfig = {\n workspaceEngine: backendConfig?.workspaceEngine,\n workspaceAccessToken: backendConfig?.workspaceAccessToken,\n workspaceAuthorize: backendConfig?.workspaceAuthorize,\n capabilities: backendConfig?.capabilities,\n };\n const backend = [\n { id: VIEW_WORKSPACE_CORE.BACKEND_PLUGIN_ID, module: VIEW_WORKSPACE_CORE.BACKEND_MODULE, config: workspaceBackendConfig },\n { id: display.BACKEND_PLUGIN_ID, module: display.BACKEND_MODULE, config: displayBackendConfig },\n { id: plugins.BACKEND_PLUGIN_ID, module: plugins.BACKEND_MODULE, config: {} },\n ];\n const frontend = [\n { id: SHELL_PLUGIN_ID, module: SHELL_MODULE },\n { id: VIEW_WORKSPACE_CORE.FRONTEND_PLUGIN_ID, module: VIEW_WORKSPACE_CORE.FRONTEND_MODULE },\n ...(!disabled.has(scene.PAGE_TYPE) ? [{ id: scene.FRONTEND_PLUGIN_ID, module: scene.FRONTEND_MODULE }] : []),\n { id: PRESENTATION_PLUGIN_ID, module: PRESENTATION_MODULE },\n ...VIEW_PRODUCT_PLUGINS.filter(plugin => plugin !== scene && !disabled.has(plugin.PAGE_TYPE))\n .map(plugin => ({ id: plugin.FRONTEND_PLUGIN_ID, module: plugin.FRONTEND_MODULE })),\n ];\n return Object.freeze({\n backend: Object.freeze(backend),\n frontend: Object.freeze(frontend),\n frontendConfig,\n disabledPages: Object.freeze([...disabled]),\n });\n}\n"],
4
+ "sourcesContent": ["export default \"1803fe06a4440233ec0495ef340afc9f8b0e350ce211dd66b15412f48dfecad1\"", "import type { ViewFrontendConfig } from './config.ts';\nimport type { EngineWorkspaceProvider } from '@forgeax/engine/app';\nimport type { ViewPlatform, CarrierCapabilities } from '@forgeax/view-plugin-display/carrier-contract';\nimport type { ViewWorkspaceBroker } from '@forgeax/view-workspace-core/broker';\nexport type ViewBackendProductConfig = {\n platform?: ViewPlatform; capabilities?: Partial<CarrierCapabilities>; workspaceEngine?: EngineWorkspaceProvider;\n workspaceAccessToken?: string; workspaceAuthorize?: NonNullable<ConstructorParameters<typeof ViewWorkspaceBroker>[0]>['authorize'];\n};\nimport buildRevision from './build-identity.ts';\nimport * as display from '@forgeax/view-plugin-display/identity';\nimport * as plugins from '@forgeax/view-plugin-plugins/identity';\nimport * as inspector from '@forgeax/view-plugin-inspector/identity';\nimport * as contentBrowser from '@forgeax/view-plugin-content-browser/identity';\nimport * as sceneTree from '@forgeax/view-plugin-scene-tree/identity';\nimport * as material from '@forgeax/view-plugin-material/identity';\nimport * as mesh from '@forgeax/view-plugin-mesh/identity';\nimport * as texture from '@forgeax/view-plugin-texture/identity';\nimport * as asset from '@forgeax/view-plugin-asset/identity';\nimport * as viewport from '@forgeax/view-plugin-viewport/identity';\nimport * as scene from '@forgeax/view-plugin-scene/identity';\n\nimport { SHELL_MODULE, SHELL_PLUGIN_ID } from './plugins/shell-identity.ts';\nimport { PRESENTATION_MODULE, PRESENTATION_PLUGIN_ID } from '@forgeax/view-plugin-viewport/presentation-identity';\n\nexport const VIEW_PLUGIN_VERSION = '0.2.0';\nexport const VIEW_FRONTEND_ROOT_PROGRAM = '@forgeax/view/frontend-root';\nexport const VIEW_FRONTEND_MODULE = Object.freeze({ specifier: VIEW_FRONTEND_ROOT_PROGRAM });\n\nexport function viewFrontendRoot(frontendConfig: ViewFrontendConfig | undefined, disabledPages: readonly string[] = []) {\n return Object.freeze({\n program: VIEW_FRONTEND_ROOT_PROGRAM,\n codeRevision: buildRevision,\n config: { frontendConfig, disabledPages },\n });\n}\n\nexport const VIEW_WORKSPACE_CORE = Object.freeze({\n BACKEND_PLUGIN_ID: 'forgeax.view.service.workspace.backend',\n FRONTEND_PLUGIN_ID: 'forgeax.view.service.workspace-client.frontend',\n BACKEND_MODULE: '@forgeax/view-workspace-core/backend',\n FRONTEND_MODULE: '@forgeax/view/workspace-frontend',\n});\n\nexport const VIEW_PRODUCT_PLUGINS = Object.freeze([\n scene,\n display,\n viewport,\n contentBrowser,\n plugins,\n inspector,\n sceneTree,\n material,\n mesh,\n texture,\n asset,\n]);\n\n/** Static native composition. Pack assets own game plugin identity; View owns only its UI policy. */\nexport function createViewProductPlan({ backendConfig, frontendConfig, disabledPages = [] }: { backendConfig?: ViewBackendProductConfig; frontendConfig?: ViewFrontendConfig; disabledPages?: readonly string[] } = {}) {\n const pages = new Set<string>(VIEW_PRODUCT_PLUGINS.map(plugin => plugin.PAGE_TYPE));\n for (const page of disabledPages) {\n if (!pages.has(page)) throw new TypeError(`Unknown View page: ${page}`);\n }\n const disabled = new Set(disabledPages);\n const displayBackendConfig = {\n platform: backendConfig?.platform,\n capabilities: backendConfig?.capabilities,\n };\n const workspaceBackendConfig = {\n workspaceEngine: backendConfig?.workspaceEngine,\n workspaceAccessToken: backendConfig?.workspaceAccessToken,\n workspaceAuthorize: backendConfig?.workspaceAuthorize,\n capabilities: backendConfig?.capabilities,\n };\n const backend = [\n { id: VIEW_WORKSPACE_CORE.BACKEND_PLUGIN_ID, module: VIEW_WORKSPACE_CORE.BACKEND_MODULE, config: workspaceBackendConfig },\n { id: display.BACKEND_PLUGIN_ID, module: display.BACKEND_MODULE, config: displayBackendConfig },\n { id: plugins.BACKEND_PLUGIN_ID, module: plugins.BACKEND_MODULE, config: {} },\n ];\n const frontend = [\n { id: SHELL_PLUGIN_ID, module: SHELL_MODULE },\n { id: VIEW_WORKSPACE_CORE.FRONTEND_PLUGIN_ID, module: VIEW_WORKSPACE_CORE.FRONTEND_MODULE },\n ...(!disabled.has(scene.PAGE_TYPE) ? [{ id: scene.FRONTEND_PLUGIN_ID, module: scene.FRONTEND_MODULE }] : []),\n { id: PRESENTATION_PLUGIN_ID, module: PRESENTATION_MODULE },\n ...VIEW_PRODUCT_PLUGINS.filter(plugin => plugin !== scene && !disabled.has(plugin.PAGE_TYPE))\n .map(plugin => ({ id: plugin.FRONTEND_PLUGIN_ID, module: plugin.FRONTEND_MODULE })),\n ];\n return Object.freeze({\n backend: Object.freeze(backend),\n frontend: Object.freeze(frontend),\n frontendConfig,\n disabledPages: Object.freeze([...disabled]),\n });\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAO,mBAAQ;;;ACwBR,IAAM,sBAAsB;AAC5B,IAAM,6BAA6B;AACnC,IAAM,uBAAuB,OAAO,OAAO,EAAE,WAAW,2BAA2B,CAAC;AAEpF,SAAS,iBAAiB,gBAAgD,gBAAmC,CAAC,GAAG;AACtH,SAAO,OAAO,OAAO;AAAA,IACnB,SAAS;AAAA,IACT,cAAc;AAAA,IACd,QAAQ,EAAE,gBAAgB,cAAc;AAAA,EAC1C,CAAC;AACH;AAEO,IAAM,sBAAsB,OAAO,OAAO;AAAA,EAC/C,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,iBAAiB;AACnB,CAAC;AAEM,IAAM,uBAAuB,OAAO,OAAO;AAAA,EAChDA;AAAA,EACA;AAAA,EACAA;AAAA,EACAA;AAAA,EACAA;AAAA,EACAA;AAAA,EACAA;AAAA,EACAA;AAAA,EACAA;AAAA,EACAA;AAAA,EACAA;AACF,CAAC;AAGM,SAAS,sBAAsB,EAAE,eAAe,gBAAgB,gBAAgB,CAAC,EAAE,IAA0H,CAAC,GAAG;AACtN,QAAM,QAAQ,IAAI,IAAY,qBAAqB,IAAI,YAAU,OAAO,SAAS,CAAC;AAClF,aAAW,QAAQ,eAAe;AAChC,QAAI,CAAC,MAAM,IAAI,IAAI,EAAG,OAAM,IAAI,UAAU,sBAAsB,IAAI,EAAE;AAAA,EACxE;AACA,QAAM,WAAW,IAAI,IAAI,aAAa;AACtC,QAAM,uBAAuB;AAAA,IAC3B,UAAU,eAAe;AAAA,IACzB,cAAc,eAAe;AAAA,EAC/B;AACA,QAAM,yBAAyB;AAAA,IAC7B,iBAAiB,eAAe;AAAA,IAChC,sBAAsB,eAAe;AAAA,IACrC,oBAAoB,eAAe;AAAA,IACnC,cAAc,eAAe;AAAA,EAC/B;AACA,QAAM,UAAU;AAAA,IACd,EAAE,IAAI,oBAAoB,mBAAmB,QAAQ,oBAAoB,gBAAgB,QAAQ,uBAAuB;AAAA,IACxH,EAAE,IAAY,mBAAmB,QAAgB,gBAAgB,QAAQ,qBAAqB;AAAA,IAC9F,EAAE,IAAYC,oBAAmB,QAAgBC,iBAAgB,QAAQ,CAAC,EAAE;AAAA,EAC9E;AACA,QAAM,WAAW;AAAA,IACf,EAAE,IAAI,iBAAiB,QAAQ,aAAa;AAAA,IAC5C,EAAE,IAAI,oBAAoB,oBAAoB,QAAQ,oBAAoB,gBAAgB;AAAA,IAC1F,GAAI,CAAC,SAAS,IAAU,SAAS,IAAI,CAAC,EAAE,IAAU,oBAAoB,QAAc,gBAAgB,CAAC,IAAI,CAAC;AAAA,IAC1G,EAAE,IAAI,wBAAwB,QAAQ,oBAAoB;AAAA,IAC1D,GAAG,qBAAqB,OAAO,YAAU,WAAWF,sBAAS,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,EACzF,IAAI,aAAW,EAAE,IAAI,OAAO,oBAAoB,QAAQ,OAAO,gBAAgB,EAAE;AAAA,EACtF;AACA,SAAO,OAAO,OAAO;AAAA,IACnB,SAAS,OAAO,OAAO,OAAO;AAAA,IAC9B,UAAU,OAAO,OAAO,QAAQ;AAAA,IAChC;AAAA,IACA,eAAe,OAAO,OAAO,CAAC,GAAG,QAAQ,CAAC;AAAA,EAC5C,CAAC;AACH;",
6
6
  "names": ["identity_exports", "BACKEND_PLUGIN_ID", "BACKEND_MODULE"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VIEW_PRODUCT_BACKEND_CATALOG
3
- } from "./chunk-7725LLBM.mjs";
3
+ } from "./chunk-XQYF2P6M.mjs";
4
4
  import {
5
5
  startViewHostServer
6
6
  } from "./chunk-U5J7OTEB.mjs";
@@ -8,7 +8,7 @@ import {
8
8
  VIEW_FRONTEND_MODULE,
9
9
  createViewProductPlan,
10
10
  viewFrontendRoot
11
- } from "./chunk-I5KQUTEE.mjs";
11
+ } from "./chunk-IJPWKKIU.mjs";
12
12
  import {
13
13
  workspaceDiagnosticRecord
14
14
  } from "./chunk-U5R6MVM4.mjs";
@@ -171,4 +171,4 @@ export {
171
171
  createViewHostBinding,
172
172
  createViewBackend
173
173
  };
174
- //# sourceMappingURL=chunk-DZRJQVJF.mjs.map
174
+ //# sourceMappingURL=chunk-LZ57Y73Z.mjs.map
@@ -35,7 +35,7 @@ import {
35
35
  VIEW_PLUGIN_VERSION,
36
36
  VIEW_PRODUCT_PLUGINS,
37
37
  VIEW_WORKSPACE_CORE
38
- } from "./chunk-I5KQUTEE.mjs";
38
+ } from "./chunk-IJPWKKIU.mjs";
39
39
  import {
40
40
  FRONTEND_MODULE as FRONTEND_MODULE9
41
41
  } from "./chunk-D25SR5FS.mjs";
@@ -132,4 +132,4 @@ for (const [name, plugin] of [[SHELL_MODULE, shell_default], [PRESENTATION_MODUL
132
132
  export {
133
133
  VIEW_PRODUCT_FRONTEND_CATALOG
134
134
  };
135
- //# sourceMappingURL=chunk-BGWAT7SI.mjs.map
135
+ //# sourceMappingURL=chunk-RJVOH7G2.mjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  VIEW_PRODUCT_FRONTEND_CATALOG
3
- } from "./chunk-BGWAT7SI.mjs";
3
+ } from "./chunk-RJVOH7G2.mjs";
4
4
  import {
5
5
  VIEW_FRONTEND_ROOT_PROGRAM,
6
6
  createViewProductPlan
7
- } from "./chunk-I5KQUTEE.mjs";
7
+ } from "./chunk-IJPWKKIU.mjs";
8
8
  import {
9
9
  viewInspectorFrontendPlugin
10
10
  } from "./chunk-7IGFAI5H.mjs";
@@ -150,4 +150,4 @@ export {
150
150
  createViewFrontendRoot,
151
151
  frontend_root_default
152
152
  };
153
- //# sourceMappingURL=chunk-RJ4PIQRU.mjs.map
153
+ //# sourceMappingURL=chunk-XMP4THLF.mjs.map
@@ -11,7 +11,7 @@ import {
11
11
  VIEW_PLUGIN_VERSION,
12
12
  VIEW_PRODUCT_PLUGINS,
13
13
  VIEW_WORKSPACE_CORE
14
- } from "./chunk-I5KQUTEE.mjs";
14
+ } from "./chunk-IJPWKKIU.mjs";
15
15
  import {
16
16
  BACKEND_MODULE
17
17
  } from "./chunk-AGVLPYVE.mjs";
@@ -43,4 +43,4 @@ var VIEW_PRODUCT_BACKEND_CATALOG = new Map(
43
43
  export {
44
44
  VIEW_PRODUCT_BACKEND_CATALOG
45
45
  };
46
- //# sourceMappingURL=chunk-7725LLBM.mjs.map
46
+ //# sourceMappingURL=chunk-XQYF2P6M.mjs.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  createViewFrontendRoot,
3
3
  frontend_root_default
4
- } from "./chunks/chunk-RJ4PIQRU.mjs";
5
- import "./chunks/chunk-BGWAT7SI.mjs";
4
+ } from "./chunks/chunk-XMP4THLF.mjs";
5
+ import "./chunks/chunk-RJVOH7G2.mjs";
6
6
  import "./chunks/chunk-E3PJGTLI.mjs";
7
7
  import "./chunks/chunk-YNHEYXDG.mjs";
8
8
  import "./chunks/chunk-U64FRQKP.mjs";
@@ -19,7 +19,7 @@ import "./chunks/chunk-Q2NO32WU.mjs";
19
19
  import "./chunks/chunk-OQXDADAS.mjs";
20
20
  import {
21
21
  VIEW_FRONTEND_ROOT_PROGRAM
22
- } from "./chunks/chunk-I5KQUTEE.mjs";
22
+ } from "./chunks/chunk-IJPWKKIU.mjs";
23
23
  import "./chunks/chunk-D25SR5FS.mjs";
24
24
  import "./chunks/chunk-AGVLPYVE.mjs";
25
25
  import "./chunks/chunk-7IGFAI5H.mjs";
@@ -23,7 +23,7 @@ import {
23
23
  createViewBackend,
24
24
  createViewHostBinding,
25
25
  createViewPlatformBinding
26
- } from "./chunks/chunk-DZRJQVJF.mjs";
26
+ } from "./chunks/chunk-LZ57Y73Z.mjs";
27
27
  import {
28
28
  runViewWorkspaceCli
29
29
  } from "./chunks/chunk-JK7K7RG3.mjs";
@@ -33,10 +33,10 @@ import "./chunks/chunk-TNYITXOZ.mjs";
33
33
  import "./chunks/chunk-VGCFVNFW.mjs";
34
34
  import {
35
35
  product_default
36
- } from "./chunks/chunk-D5GUFI74.mjs";
36
+ } from "./chunks/chunk-DWT3TA6M.mjs";
37
37
  import "./chunks/chunk-OVJ3UJJB.mjs";
38
38
  import "./chunks/chunk-XE6ITXHT.mjs";
39
- import "./chunks/chunk-7725LLBM.mjs";
39
+ import "./chunks/chunk-XQYF2P6M.mjs";
40
40
  import "./chunks/chunk-YLCJNKIW.mjs";
41
41
  import {
42
42
  DEFAULT_CAPABILITIES,
@@ -63,9 +63,9 @@ import {
63
63
  connectViewFrontend,
64
64
  mountViewViewer,
65
65
  mountViewWorkspace
66
- } from "./chunks/chunk-SYE5RTD4.mjs";
67
- import "./chunks/chunk-RJ4PIQRU.mjs";
68
- import "./chunks/chunk-BGWAT7SI.mjs";
66
+ } from "./chunks/chunk-D2RCKG7Q.mjs";
67
+ import "./chunks/chunk-XMP4THLF.mjs";
68
+ import "./chunks/chunk-RJVOH7G2.mjs";
69
69
  import "./chunks/chunk-E3PJGTLI.mjs";
70
70
  import "./chunks/chunk-YNHEYXDG.mjs";
71
71
  import "./chunks/chunk-U64FRQKP.mjs";
@@ -93,7 +93,7 @@ import "./chunks/chunk-OQXDADAS.mjs";
93
93
  import {
94
94
  createViewProductPlan,
95
95
  viewFrontendRoot
96
- } from "./chunks/chunk-I5KQUTEE.mjs";
96
+ } from "./chunks/chunk-IJPWKKIU.mjs";
97
97
  import "./chunks/chunk-D25SR5FS.mjs";
98
98
  import {
99
99
  DISPLAY_SURFACE_ID,
@@ -4,10 +4,10 @@ import {
4
4
  } from "./chunks/chunk-K73ED3AD.mjs";
5
5
  import {
6
6
  product_default
7
- } from "./chunks/chunk-D5GUFI74.mjs";
7
+ } from "./chunks/chunk-DWT3TA6M.mjs";
8
8
  import "./chunks/chunk-OVJ3UJJB.mjs";
9
9
  import "./chunks/chunk-XE6ITXHT.mjs";
10
- import "./chunks/chunk-7725LLBM.mjs";
10
+ import "./chunks/chunk-XQYF2P6M.mjs";
11
11
  import "./chunks/chunk-YLCJNKIW.mjs";
12
12
  import "./chunks/chunk-GQANC3HH.mjs";
13
13
  import "./chunks/chunk-YY4G5LVX.mjs";
@@ -17,7 +17,7 @@ import "./chunks/chunk-HWZCLROY.mjs";
17
17
  import "./chunks/chunk-55F55BQY.mjs";
18
18
  import "./chunks/chunk-U5J7OTEB.mjs";
19
19
  import "./chunks/chunk-YCMZAYBM.mjs";
20
- import "./chunks/chunk-I5KQUTEE.mjs";
20
+ import "./chunks/chunk-IJPWKKIU.mjs";
21
21
  import "./chunks/chunk-D25SR5FS.mjs";
22
22
  import "./chunks/chunk-AGVLPYVE.mjs";
23
23
  import "./chunks/chunk-7IGFAI5H.mjs";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  product_default
3
- } from "./chunks/chunk-D5GUFI74.mjs";
3
+ } from "./chunks/chunk-DWT3TA6M.mjs";
4
4
  import "./chunks/chunk-OVJ3UJJB.mjs";
5
5
  import "./chunks/chunk-XE6ITXHT.mjs";
6
- import "./chunks/chunk-7725LLBM.mjs";
6
+ import "./chunks/chunk-XQYF2P6M.mjs";
7
7
  import "./chunks/chunk-YLCJNKIW.mjs";
8
8
  import "./chunks/chunk-GQANC3HH.mjs";
9
9
  import "./chunks/chunk-YY4G5LVX.mjs";
@@ -13,7 +13,7 @@ import "./chunks/chunk-HWZCLROY.mjs";
13
13
  import "./chunks/chunk-55F55BQY.mjs";
14
14
  import "./chunks/chunk-U5J7OTEB.mjs";
15
15
  import "./chunks/chunk-YCMZAYBM.mjs";
16
- import "./chunks/chunk-I5KQUTEE.mjs";
16
+ import "./chunks/chunk-IJPWKKIU.mjs";
17
17
  import "./chunks/chunk-D25SR5FS.mjs";
18
18
  import "./chunks/chunk-AGVLPYVE.mjs";
19
19
  import "./chunks/chunk-7IGFAI5H.mjs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VIEW_PRODUCT_BACKEND_CATALOG
3
- } from "../../chunks/chunk-7725LLBM.mjs";
3
+ } from "../../chunks/chunk-XQYF2P6M.mjs";
4
4
  import "../../chunks/chunk-YLCJNKIW.mjs";
5
5
  import "../../chunks/chunk-GQANC3HH.mjs";
6
6
  import "../../chunks/chunk-YY4G5LVX.mjs";
@@ -8,7 +8,7 @@ import "../../chunks/chunk-6KM24NH6.mjs";
8
8
  import "../../chunks/chunk-27XASYEH.mjs";
9
9
  import "../../chunks/chunk-HWZCLROY.mjs";
10
10
  import "../../chunks/chunk-55F55BQY.mjs";
11
- import "../../chunks/chunk-I5KQUTEE.mjs";
11
+ import "../../chunks/chunk-IJPWKKIU.mjs";
12
12
  import "../../chunks/chunk-D25SR5FS.mjs";
13
13
  import "../../chunks/chunk-AGVLPYVE.mjs";
14
14
  import "../../chunks/chunk-7IGFAI5H.mjs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VIEW_PRODUCT_FRONTEND_CATALOG
3
- } from "../../chunks/chunk-BGWAT7SI.mjs";
3
+ } from "../../chunks/chunk-RJVOH7G2.mjs";
4
4
  import "../../chunks/chunk-E3PJGTLI.mjs";
5
5
  import "../../chunks/chunk-YNHEYXDG.mjs";
6
6
  import "../../chunks/chunk-U64FRQKP.mjs";
@@ -15,7 +15,7 @@ import "../../chunks/chunk-4D3Q7K44.mjs";
15
15
  import "../../chunks/chunk-INTTYJVW.mjs";
16
16
  import "../../chunks/chunk-Q2NO32WU.mjs";
17
17
  import "../../chunks/chunk-OQXDADAS.mjs";
18
- import "../../chunks/chunk-I5KQUTEE.mjs";
18
+ import "../../chunks/chunk-IJPWKKIU.mjs";
19
19
  import "../../chunks/chunk-D25SR5FS.mjs";
20
20
  import "../../chunks/chunk-AGVLPYVE.mjs";
21
21
  import "../../chunks/chunk-EWSCJF77.mjs";
@@ -6,7 +6,7 @@ import {
6
6
  VIEW_WORKSPACE_CORE,
7
7
  createViewProductPlan,
8
8
  viewFrontendRoot
9
- } from "../../chunks/chunk-I5KQUTEE.mjs";
9
+ } from "../../chunks/chunk-IJPWKKIU.mjs";
10
10
  import "../../chunks/chunk-D25SR5FS.mjs";
11
11
  import "../../chunks/chunk-AGVLPYVE.mjs";
12
12
  import "../../chunks/chunk-EWSCJF77.mjs";
@@ -1,7 +1,7 @@
1
1
  import "../chunks/chunk-QS7W5TKY.mjs";
2
2
  import {
3
3
  VIEW_PRODUCT_BACKEND_CATALOG
4
- } from "../chunks/chunk-7725LLBM.mjs";
4
+ } from "../chunks/chunk-XQYF2P6M.mjs";
5
5
  import "../chunks/chunk-YLCJNKIW.mjs";
6
6
  import "../chunks/chunk-GQANC3HH.mjs";
7
7
  import "../chunks/chunk-YY4G5LVX.mjs";
@@ -11,7 +11,7 @@ import "../chunks/chunk-HWZCLROY.mjs";
11
11
  import "../chunks/chunk-55F55BQY.mjs";
12
12
  import {
13
13
  VIEW_PRODUCT_FRONTEND_CATALOG
14
- } from "../chunks/chunk-BGWAT7SI.mjs";
14
+ } from "../chunks/chunk-RJVOH7G2.mjs";
15
15
  import "../chunks/chunk-E3PJGTLI.mjs";
16
16
  import "../chunks/chunk-YNHEYXDG.mjs";
17
17
  import "../chunks/chunk-U64FRQKP.mjs";
@@ -33,7 +33,7 @@ import {
33
33
  VIEW_PRODUCT_PLUGINS,
34
34
  createViewProductPlan,
35
35
  viewFrontendRoot
36
- } from "../chunks/chunk-I5KQUTEE.mjs";
36
+ } from "../chunks/chunk-IJPWKKIU.mjs";
37
37
  import "../chunks/chunk-D25SR5FS.mjs";
38
38
  import "../chunks/chunk-AGVLPYVE.mjs";
39
39
  import "../chunks/chunk-7IGFAI5H.mjs";
@@ -3,9 +3,9 @@ import {
3
3
  mountViewViewer,
4
4
  mountViewWorkspace,
5
5
  resolveViewFrontendRoot
6
- } from "../chunks/chunk-SYE5RTD4.mjs";
7
- import "../chunks/chunk-RJ4PIQRU.mjs";
8
- import "../chunks/chunk-BGWAT7SI.mjs";
6
+ } from "../chunks/chunk-D2RCKG7Q.mjs";
7
+ import "../chunks/chunk-XMP4THLF.mjs";
8
+ import "../chunks/chunk-RJVOH7G2.mjs";
9
9
  import "../chunks/chunk-E3PJGTLI.mjs";
10
10
  import "../chunks/chunk-YNHEYXDG.mjs";
11
11
  import "../chunks/chunk-U64FRQKP.mjs";
@@ -22,7 +22,7 @@ import "../chunks/chunk-GQOXQ4AV.mjs";
22
22
  import "../chunks/chunk-INTTYJVW.mjs";
23
23
  import "../chunks/chunk-Q2NO32WU.mjs";
24
24
  import "../chunks/chunk-OQXDADAS.mjs";
25
- import "../chunks/chunk-I5KQUTEE.mjs";
25
+ import "../chunks/chunk-IJPWKKIU.mjs";
26
26
  import "../chunks/chunk-D25SR5FS.mjs";
27
27
  import "../chunks/chunk-AGVLPYVE.mjs";
28
28
  import "../chunks/chunk-7IGFAI5H.mjs";
@@ -1,7 +1,7 @@
1
1
  import "./chunks/chunk-QS7W5TKY.mjs";
2
2
  import {
3
3
  VIEW_PRODUCT_BACKEND_CATALOG
4
- } from "./chunks/chunk-7725LLBM.mjs";
4
+ } from "./chunks/chunk-XQYF2P6M.mjs";
5
5
  import "./chunks/chunk-YLCJNKIW.mjs";
6
6
  import "./chunks/chunk-GQANC3HH.mjs";
7
7
  import "./chunks/chunk-YY4G5LVX.mjs";
@@ -11,7 +11,7 @@ import "./chunks/chunk-HWZCLROY.mjs";
11
11
  import "./chunks/chunk-55F55BQY.mjs";
12
12
  import {
13
13
  VIEW_PRODUCT_FRONTEND_CATALOG
14
- } from "./chunks/chunk-BGWAT7SI.mjs";
14
+ } from "./chunks/chunk-RJVOH7G2.mjs";
15
15
  import "./chunks/chunk-E3PJGTLI.mjs";
16
16
  import "./chunks/chunk-YNHEYXDG.mjs";
17
17
  import "./chunks/chunk-U64FRQKP.mjs";
@@ -33,7 +33,7 @@ import {
33
33
  VIEW_PRODUCT_PLUGINS,
34
34
  createViewProductPlan,
35
35
  viewFrontendRoot
36
- } from "./chunks/chunk-I5KQUTEE.mjs";
36
+ } from "./chunks/chunk-IJPWKKIU.mjs";
37
37
  import "./chunks/chunk-D25SR5FS.mjs";
38
38
  import "./chunks/chunk-AGVLPYVE.mjs";
39
39
  import "./chunks/chunk-7IGFAI5H.mjs";
@@ -1,2 +1,2 @@
1
- import{r as e}from"./rolldown-runtime-S-ySWqyJ.js";import{B as t,L as n,lt as r,ut as i}from"./panels-lazy-DbOAvYN1.js";import{Mt as a,Nt as o,St as s,ft as c,st as l}from"./panels-ui-DICIsCag.js";import{a as u,c as d,i as f,n as p,o as m,r as h,s as g,t as _}from"./main-DUQJ1NlR.js";import{t as v}from"../panels.js";var y=e(i(),1),b=s();function x(e,t){return t({connected:e.connected}),e.onDisconnect(e=>{t({connected:!1,detail:e?.message})})}function S(e,t={}){let[n,r]=(0,y.useState)(()=>e?.connected===!0),[i,a]=(0,y.useState)(),o=(0,y.useRef)(e?.connected===!0);return(0,y.useEffect)(()=>{if(!e){r(!1),a(void 0),o.current=!1;return}return x(e,e=>{if(e.connected){o.current=!0,r(!0),a(void 0);return}r(!1),a(e.detail)})},[e]),e?n?{phase:`connected`,onReconnect:t.onReconnect}:o.current?{phase:`disconnected`,detail:i,onReconnect:t.onReconnect}:{phase:`unconfigured`,detail:i}:{phase:`unconfigured`}}var C=r(),w={name:`forgeax.view.shell.workspace.mount`,provide:[`panelHost`,`viewSlotRegistry`,`pageHost`],apply(e,r={}){u(),p();let i=globalThis,s=i.__forgeaxViewPanelsPromise;i.__forgeaxViewPanelsPromise=Promise.resolve(v);let x=f(document),w=g(),T=m({registry:w}),E=document.createElement(`div`),D=d({registry:x,overlayRoot:E});E.id=`forgeax-view-root`,E.style.cssText=`position:absolute;inset:0`,document.body.append(E);let O=(0,b.createRoot)(E);O.render((0,C.jsx)(a,{defaultTheme:o(`light`),className:`fx-view-root`,children:(0,C.jsx)(n,{title:h(`view.projectOpen.busy`)})})),e.effect(()=>()=>{O.unmount(),E.remove(),i.__forgeaxViewPanelsPromise=s,delete i.__forgeaxViewReady});let k=e.get?.(`hostTransport`,!1);e.plugin({name:`forgeax.view.shell.workspace.render`,inject:[`viewOperationClient`],apply(e){let n=e.get(`viewOperationClient`);function s(){(0,y.useEffect)(()=>{i.__forgeaxViewReady={mounted:!0}},[]);let[e,s]=(0,y.useState)(c),u=S(k===!1?void 0:k,{onReconnect:()=>{n.projectSession?.reconnectHost?.()}});return(0,y.useEffect)(()=>{if(typeof n?.subscribe==`function`)return n.subscribe(e=>{e.selectedTabId&&s(e.selectedTabId)})},[n]),(0,C.jsx)(t,{root:E,children:(0,C.jsx)(a,{defaultTheme:o(`light`),persist:!0,applyToDocument:!0,className:`fx-view-root`,children:(0,C.jsx)(_,{slotRegistry:x,pageRegistry:w,pageHost:T,responsiveAutoTuck:r.layout?.responsiveAutoTuck,hostConnection:u,workspaceClient:n,selectedPageType:e===`forgeax-cli-display`?`display`:`editor`,onSelectPageType:e=>{(e===`display`||e===`editor`)&&n.selectTab(e===`display`?l:c).catch(e=>{i.__forgeaxViewReady={mounted:!1,error:String(e)}})}})})})}O.render((0,C.jsx)(s,{}))}}),e.provide(`viewSlotRegistry`,x),e.provide(`panelHost`,D),e.provide(`pageHost`,T)}};export{w as default};
2
- //# sourceMappingURL=embedded-Ch4NawY-.js.map
1
+ import{r as e}from"./rolldown-runtime-S-ySWqyJ.js";import{B as t,L as n,lt as r,ut as i}from"./panels-lazy-DqCwhGd9.js";import{Mt as a,Nt as o,St as s,ft as c,st as l}from"./panels-ui-CfUtl68h.js";import{a as u,c as d,i as f,n as p,o as m,r as h,s as g,t as _}from"./main-CI6ZQziX.js";import{t as v}from"../panels.js";var y=e(i(),1),b=s();function x(e,t){return t({connected:e.connected}),e.onDisconnect(e=>{t({connected:!1,detail:e?.message})})}function S(e,t={}){let[n,r]=(0,y.useState)(()=>e?.connected===!0),[i,a]=(0,y.useState)(),o=(0,y.useRef)(e?.connected===!0);return(0,y.useEffect)(()=>{if(!e){r(!1),a(void 0),o.current=!1;return}return x(e,e=>{if(e.connected){o.current=!0,r(!0),a(void 0);return}r(!1),a(e.detail)})},[e]),e?n?{phase:`connected`,onReconnect:t.onReconnect}:o.current?{phase:`disconnected`,detail:i,onReconnect:t.onReconnect}:{phase:`unconfigured`,detail:i}:{phase:`unconfigured`}}var C=r(),w={name:`forgeax.view.shell.workspace.mount`,provide:[`panelHost`,`viewSlotRegistry`,`pageHost`],apply(e,r={}){u(),p();let i=globalThis,s=i.__forgeaxViewPanelsPromise;i.__forgeaxViewPanelsPromise=Promise.resolve(v);let x=f(document),w=g(),T=m({registry:w}),E=document.createElement(`div`),D=d({registry:x,overlayRoot:E});E.id=`forgeax-view-root`,E.style.cssText=`position:absolute;inset:0`,document.body.append(E);let O=(0,b.createRoot)(E);O.render((0,C.jsx)(a,{defaultTheme:o(`light`),className:`fx-view-root`,children:(0,C.jsx)(n,{title:h(`view.projectOpen.busy`)})})),e.effect(()=>()=>{O.unmount(),E.remove(),i.__forgeaxViewPanelsPromise=s,delete i.__forgeaxViewReady});let k=e.get?.(`hostTransport`,!1);e.plugin({name:`forgeax.view.shell.workspace.render`,inject:[`viewOperationClient`],apply(e){let n=e.get(`viewOperationClient`);function s(){(0,y.useEffect)(()=>{i.__forgeaxViewReady={mounted:!0}},[]);let[e,s]=(0,y.useState)(c),u=S(k===!1?void 0:k,{onReconnect:()=>{n.projectSession?.reconnectHost?.()}});return(0,y.useEffect)(()=>{if(typeof n?.subscribe==`function`)return n.subscribe(e=>{e.selectedTabId&&s(e.selectedTabId)})},[n]),(0,C.jsx)(t,{root:E,children:(0,C.jsx)(a,{defaultTheme:o(`light`),persist:!0,applyToDocument:!0,className:`fx-view-root`,children:(0,C.jsx)(_,{slotRegistry:x,pageRegistry:w,pageHost:T,responsiveAutoTuck:r.layout?.responsiveAutoTuck,hostConnection:u,workspaceClient:n,selectedPageType:e===`forgeax-cli-display`?`display`:`editor`,onSelectPageType:e=>{(e===`display`||e===`editor`)&&n.selectTab(e===`display`?l:c).catch(e=>{i.__forgeaxViewReady={mounted:!1,error:String(e)}})}})})})}O.render((0,C.jsx)(s,{}))}}),e.provide(`viewSlotRegistry`,x),e.provide(`panelHost`,D),e.provide(`pageHost`,T)}};export{w as default};
2
+ //# sourceMappingURL=embedded-DXSSFAyM.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"embedded-Ch4NawY-.js","names":[],"sources":["../../../packages/viewer/src/shell/host-ws-transport.ts","../../../packages/viewer/src/shell/use-host-ws-connection.ts","../../../packages/viewer/src/shell/embedded.tsx"],"sourcesContent":["export type HostWsTransport = {\n readonly connected: boolean;\n onDisconnect(listener: (error: { message?: string }) => void): () => void;\n};\n\nexport function attachHostWsTransport(\n transport: HostWsTransport,\n onChange: (state: { connected: boolean; detail?: string }) => void,\n): () => void {\n onChange({ connected: transport.connected });\n return transport.onDisconnect((error) => {\n onChange({ connected: false, detail: error?.message });\n });\n}\n","import { useEffect, useRef, useState } from 'react';\n\nimport type { HostConnection } from './HostConnectionIndicator';\nimport { attachHostWsTransport } from './host-ws-transport';\n\nexport function useHostWsConnection(\n transport: HostWsTransport | null | undefined,\n options: { onReconnect?: () => void } = {},\n): HostConnection {\n const [connected, setConnected] = useState(() => transport?.connected === true);\n const [detail, setDetail] = useState<string | undefined>();\n const hadConnectedRef = useRef(transport?.connected === true);\n\n useEffect(() => {\n if (!transport) {\n setConnected(false);\n setDetail(undefined);\n hadConnectedRef.current = false;\n return;\n }\n return attachHostWsTransport(transport, (state) => {\n if (state.connected) {\n hadConnectedRef.current = true;\n setConnected(true);\n setDetail(undefined);\n return;\n }\n setConnected(false);\n setDetail(state.detail);\n });\n }, [transport]);\n\n if (!transport) {\n return { phase: 'unconfigured' };\n }\n if (connected) {\n return { phase: 'connected', onReconnect: options.onReconnect };\n }\n if (hadConnectedRef.current) {\n return {\n phase: 'disconnected',\n detail,\n onReconnect: options.onReconnect,\n };\n }\n return { phase: 'unconfigured', detail };\n}\n\ntype HostWsTransport = import('./host-ws-transport').HostWsTransport;\n","import { useEffect, useState } from 'react';\nimport { LoadingState, OverlayRootProvider } from '@forgeax/view-components';\nimport { VIEW_DISPLAY_TAB_ID, VIEW_WORKSPACE_TAB_ID } from '@forgeax/view-workspace-core/contract';\nimport { restoreProjectPreferences } from '@forgeax/view-workspace-core/project-session';\nimport { createRoot } from 'react-dom/client';\nimport { ThemeProvider, initializeTheme } from '@forgeax/view-components/theme';\nimport type { Plugin } from '@forgeax/engine/plugin';\nimport type { ViewFrontendConfig } from '../config.ts';\nimport { createViewPanelHost } from '../host/panel-bridge.ts';\nimport { createViewPageHost, createViewPageTypeRegistry } from '../host/page-registry.ts';\nimport { createViewSlotRegistry } from '../host/slot-registry.ts';\nimport { initI18n, t } from '../i18n';\nimport { ViewerShell } from './ViewerShell';\nimport { useHostWsConnection } from './use-host-ws-connection';\nimport * as panels from '../panels-entry';\nimport '@forgeax/view-components/styles.css';\nimport '../styles.css';\n\n/** Same-document UI plugin. Engine supplies only its exact live surface. */\nconst embeddedShell: Plugin = {\n name: 'forgeax.view.shell.workspace.mount',\n provide: ['panelHost', 'viewSlotRegistry', 'pageHost'],\n apply(ctx, config: ViewFrontendConfig = {}) {\n restoreProjectPreferences();\n initI18n();\n const state = globalThis;\n const previousPanels = state.__forgeaxViewPanelsPromise;\n state.__forgeaxViewPanelsPromise = Promise.resolve(panels);\n const registry = createViewSlotRegistry(document);\n const pageRegistry = createViewPageTypeRegistry();\n const pageHost = createViewPageHost({ registry: pageRegistry });\n const element = document.createElement('div');\n const panelHost = createViewPanelHost({ registry, overlayRoot: element });\n element.id = 'forgeax-view-root';\n // Do not trap every UI overlay in a stacking context below the borrowed\n // Engine surface. Panels, surfaces and portaled overlays share one stack.\n element.style.cssText = 'position:absolute;inset:0';\n document.body.append(element);\n const root = createRoot(element);\n root.render(<ThemeProvider defaultTheme={initializeTheme('light')} className=\"fx-view-root\">\n <LoadingState title={t('view.projectOpen.busy')} />\n </ThemeProvider>);\n ctx.effect(() => () => {\n root.unmount();\n element.remove();\n state.__forgeaxViewPanelsPromise = previousPanels;\n delete state.__forgeaxViewReady;\n });\n const hostTransport = ctx.get?.('hostTransport', false) as\n | import('./host-ws-transport').HostWsTransport\n | false;\n\n void ctx.plugin({\n name: 'forgeax.view.shell.workspace.render',\n inject: ['viewOperationClient'],\n apply(renderContext) {\n const client = renderContext.get('viewOperationClient')!;\n function ConnectedShell() {\n useEffect(() => { state.__forgeaxViewReady = { mounted: true }; }, []);\n const [selectedTabId, setSelectedTabId] = useState(VIEW_WORKSPACE_TAB_ID);\n const hostConnection = useHostWsConnection(\n hostTransport === false ? undefined : hostTransport,\n { onReconnect: () => { void client.projectSession?.reconnectHost?.(); } },\n );\n useEffect(() => {\n if (typeof client?.subscribe !== 'function') return undefined;\n return client.subscribe(state => {\n if (state.selectedTabId) setSelectedTabId(state.selectedTabId);\n });\n }, [client]);\n return <OverlayRootProvider root={element}><ThemeProvider defaultTheme={initializeTheme('light')} persist applyToDocument className=\"fx-view-root\">\n <ViewerShell slotRegistry={registry} pageRegistry={pageRegistry} pageHost={pageHost}\n responsiveAutoTuck={config.layout?.responsiveAutoTuck}\n hostConnection={hostConnection}\n workspaceClient={client}\n selectedPageType={selectedTabId === VIEW_DISPLAY_TAB_ID ? 'display' : 'editor'}\n onSelectPageType={typeId => {\n if (typeId === 'display' || typeId === 'editor') {\n void client.selectTab(typeId === 'display' ? VIEW_DISPLAY_TAB_ID : VIEW_WORKSPACE_TAB_ID).catch(error => {\n state.__forgeaxViewReady = { mounted: false, error: String(error) };\n });\n }\n }} />\n </ThemeProvider></OverlayRootProvider>;\n }\n root.render(<ConnectedShell />);\n },\n });\n ctx.provide('viewSlotRegistry', registry);\n ctx.provide('panelHost', panelHost);\n ctx.provide('pageHost', pageHost);\n },\n};\nexport default embeddedShell;\n"],"mappings":"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"}
1
+ {"version":3,"file":"embedded-DXSSFAyM.js","names":[],"sources":["../../../packages/viewer/src/shell/host-ws-transport.ts","../../../packages/viewer/src/shell/use-host-ws-connection.ts","../../../packages/viewer/src/shell/embedded.tsx"],"sourcesContent":["export type HostWsTransport = {\n readonly connected: boolean;\n onDisconnect(listener: (error: { message?: string }) => void): () => void;\n};\n\nexport function attachHostWsTransport(\n transport: HostWsTransport,\n onChange: (state: { connected: boolean; detail?: string }) => void,\n): () => void {\n onChange({ connected: transport.connected });\n return transport.onDisconnect((error) => {\n onChange({ connected: false, detail: error?.message });\n });\n}\n","import { useEffect, useRef, useState } from 'react';\n\nimport type { HostConnection } from './HostConnectionIndicator';\nimport { attachHostWsTransport } from './host-ws-transport';\n\nexport function useHostWsConnection(\n transport: HostWsTransport | null | undefined,\n options: { onReconnect?: () => void } = {},\n): HostConnection {\n const [connected, setConnected] = useState(() => transport?.connected === true);\n const [detail, setDetail] = useState<string | undefined>();\n const hadConnectedRef = useRef(transport?.connected === true);\n\n useEffect(() => {\n if (!transport) {\n setConnected(false);\n setDetail(undefined);\n hadConnectedRef.current = false;\n return;\n }\n return attachHostWsTransport(transport, (state) => {\n if (state.connected) {\n hadConnectedRef.current = true;\n setConnected(true);\n setDetail(undefined);\n return;\n }\n setConnected(false);\n setDetail(state.detail);\n });\n }, [transport]);\n\n if (!transport) {\n return { phase: 'unconfigured' };\n }\n if (connected) {\n return { phase: 'connected', onReconnect: options.onReconnect };\n }\n if (hadConnectedRef.current) {\n return {\n phase: 'disconnected',\n detail,\n onReconnect: options.onReconnect,\n };\n }\n return { phase: 'unconfigured', detail };\n}\n\ntype HostWsTransport = import('./host-ws-transport').HostWsTransport;\n","import { useEffect, useState } from 'react';\nimport { LoadingState, OverlayRootProvider } from '@forgeax/view-components';\nimport { VIEW_DISPLAY_TAB_ID, VIEW_WORKSPACE_TAB_ID } from '@forgeax/view-workspace-core/contract';\nimport { restoreProjectPreferences } from '@forgeax/view-workspace-core/project-session';\nimport { createRoot } from 'react-dom/client';\nimport { ThemeProvider, initializeTheme } from '@forgeax/view-components/theme';\nimport type { Plugin } from '@forgeax/engine/plugin';\nimport type { ViewFrontendConfig } from '../config.ts';\nimport { createViewPanelHost } from '../host/panel-bridge.ts';\nimport { createViewPageHost, createViewPageTypeRegistry } from '../host/page-registry.ts';\nimport { createViewSlotRegistry } from '../host/slot-registry.ts';\nimport { initI18n, t } from '../i18n';\nimport { ViewerShell } from './ViewerShell';\nimport { useHostWsConnection } from './use-host-ws-connection';\nimport * as panels from '../panels-entry';\nimport '@forgeax/view-components/styles.css';\nimport '../styles.css';\n\n/** Same-document UI plugin. Engine supplies only its exact live surface. */\nconst embeddedShell: Plugin = {\n name: 'forgeax.view.shell.workspace.mount',\n provide: ['panelHost', 'viewSlotRegistry', 'pageHost'],\n apply(ctx, config: ViewFrontendConfig = {}) {\n restoreProjectPreferences();\n initI18n();\n const state = globalThis;\n const previousPanels = state.__forgeaxViewPanelsPromise;\n state.__forgeaxViewPanelsPromise = Promise.resolve(panels);\n const registry = createViewSlotRegistry(document);\n const pageRegistry = createViewPageTypeRegistry();\n const pageHost = createViewPageHost({ registry: pageRegistry });\n const element = document.createElement('div');\n const panelHost = createViewPanelHost({ registry, overlayRoot: element });\n element.id = 'forgeax-view-root';\n // Do not trap every UI overlay in a stacking context below the borrowed\n // Engine surface. Panels, surfaces and portaled overlays share one stack.\n element.style.cssText = 'position:absolute;inset:0';\n document.body.append(element);\n const root = createRoot(element);\n root.render(<ThemeProvider defaultTheme={initializeTheme('light')} className=\"fx-view-root\">\n <LoadingState title={t('view.projectOpen.busy')} />\n </ThemeProvider>);\n ctx.effect(() => () => {\n root.unmount();\n element.remove();\n state.__forgeaxViewPanelsPromise = previousPanels;\n delete state.__forgeaxViewReady;\n });\n const hostTransport = ctx.get?.('hostTransport', false) as\n | import('./host-ws-transport').HostWsTransport\n | false;\n\n void ctx.plugin({\n name: 'forgeax.view.shell.workspace.render',\n inject: ['viewOperationClient'],\n apply(renderContext) {\n const client = renderContext.get('viewOperationClient')!;\n function ConnectedShell() {\n useEffect(() => { state.__forgeaxViewReady = { mounted: true }; }, []);\n const [selectedTabId, setSelectedTabId] = useState(VIEW_WORKSPACE_TAB_ID);\n const hostConnection = useHostWsConnection(\n hostTransport === false ? undefined : hostTransport,\n { onReconnect: () => { void client.projectSession?.reconnectHost?.(); } },\n );\n useEffect(() => {\n if (typeof client?.subscribe !== 'function') return undefined;\n return client.subscribe(state => {\n if (state.selectedTabId) setSelectedTabId(state.selectedTabId);\n });\n }, [client]);\n return <OverlayRootProvider root={element}><ThemeProvider defaultTheme={initializeTheme('light')} persist applyToDocument className=\"fx-view-root\">\n <ViewerShell slotRegistry={registry} pageRegistry={pageRegistry} pageHost={pageHost}\n responsiveAutoTuck={config.layout?.responsiveAutoTuck}\n hostConnection={hostConnection}\n workspaceClient={client}\n selectedPageType={selectedTabId === VIEW_DISPLAY_TAB_ID ? 'display' : 'editor'}\n onSelectPageType={typeId => {\n if (typeId === 'display' || typeId === 'editor') {\n void client.selectTab(typeId === 'display' ? VIEW_DISPLAY_TAB_ID : VIEW_WORKSPACE_TAB_ID).catch(error => {\n state.__forgeaxViewReady = { mounted: false, error: String(error) };\n });\n }\n }} />\n </ThemeProvider></OverlayRootProvider>;\n }\n root.render(<ConnectedShell />);\n },\n });\n ctx.provide('viewSlotRegistry', registry);\n ctx.provide('panelHost', panelHost);\n ctx.provide('pageHost', pageHost);\n },\n};\nexport default embeddedShell;\n"],"mappings":"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"}