@fps-games/editor 0.2.0-beta.2 → 0.2.0-beta.3
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.
- package/dist/agent-bridge/capabilities/assets.js.map +1 -1
- package/dist/agent-bridge/capabilities/editor-state.js.map +1 -1
- package/dist/agent-bridge/capabilities/host-lifecycle.js.map +1 -1
- package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
- package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -1
- package/dist/agent-bridge/capabilities/selection.js.map +1 -1
- package/dist/agent-bridge/capabilities/shadows.js.map +1 -1
- package/dist/agent-bridge/capabilities/transform.js.map +1 -1
- package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
- package/dist/agent-bridge/capabilities/viewport.js.map +1 -1
- package/dist/agent-bridge/capability-sources.js.map +1 -1
- package/dist/agent-bridge/diagnostics.js.map +1 -1
- package/dist/agent-bridge/index.js.map +1 -1
- package/dist/agent-bridge/register.js.map +1 -1
- package/dist/agent-bridge/shared.js.map +1 -1
- package/dist/agent-bridge/source-types.js.map +1 -1
- package/dist/authoring-apply.js.map +1 -1
- package/dist/build-info.json +48 -48
- package/dist/editor-plugin-agent-capabilities.js.map +1 -1
- package/dist/editor-plugin-hierarchy-command.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/local-editor-lifecycle-operations.js.map +1 -1
- package/dist/local-editor-agent-actions.js.map +1 -1
- package/dist/local-editor-agent-bridge-transport.js.map +1 -1
- package/dist/local-editor-agent-bridge.js.map +1 -1
- package/dist/local-editor-agent-context.js.map +1 -1
- package/dist/local-editor-harness.d.ts +57 -1
- package/dist/local-editor-harness.d.ts.map +1 -1
- package/dist/local-editor-harness.js +129 -0
- package/dist/local-editor-harness.js.map +1 -1
- package/dist/local-editor-marker-graph.js.map +1 -1
- package/dist/local-editor-performance-stats.js.map +1 -1
- package/dist/local-editor-plugin-inspector.js.map +1 -1
- package/dist/local-editor-plugin-panel.js.map +1 -1
- package/dist/local-editor-scene-render-scheduler.js.map +1 -1
- package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
- package/dist/local-editor-viewport-render-coordinator.js.map +1 -1
- package/dist/playable-babylon-facade.js.map +1 -1
- package/dist/playable-babylon-outline-inspector.js.map +1 -1
- package/dist/playable-babylon-outline-runtime.js.map +1 -1
- package/dist/playable-babylon-rendering.js.map +1 -1
- package/dist/playable-local-editor-host.d.ts +36 -0
- package/dist/playable-local-editor-host.d.ts.map +1 -1
- package/dist/playable-local-editor-host.js.map +1 -1
- package/dist/playable-product-local-editor.js.map +1 -1
- package/dist/playable-product-projection-preview.js.map +1 -1
- package/dist/playable-product-rendering.js.map +1 -1
- package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
- package/dist/playable-product-scene-capabilities.js +49 -2
- package/dist/playable-product-scene-capabilities.js.map +1 -1
- package/dist/playable-runtime-babylon.js.map +1 -1
- package/dist/playable-runtime.js.map +1 -1
- package/dist/playable-sdk-upgrade-doctor.js.map +1 -1
- package/dist/playable-sdk-vite.js.map +1 -1
- package/dist/playable-sdk.js.map +1 -1
- package/dist/playable-standard-project.js.map +1 -1
- package/dist/static-shadow-cpu-worker.js.map +1 -1
- package/dist/vite.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/profile.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/lighting/directional-light-angles.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/apply.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/placement/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/placement/runtime-drop-position.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/profile.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/volume-stack.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/rendering/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/rendering/node-rendering.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-shaders.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-shaders.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-atlas.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-bake.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-options.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-rendering.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/package.json +7 -7
- package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/edit-session.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/editor-sky.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/editor-world.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/event-guard.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/infinite-grid-layer.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/infinite-grid.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/input-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/inspector-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/inspector-host.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/monitor.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/outline-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/primitive-projection-instancing.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-pick-resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-selection-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-source-owner-path.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/runtime-globals.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-camera-preview.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-input-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-measurement-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/selection-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/tool-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-solver.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/types.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/package.json +5 -5
- package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-clipboard.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-rendering-actions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-root-ownership.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-auto-scroll.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-plugin-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-auto-scroll.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-preview.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-session.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-camera-debug-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug-panel-shell.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-lighting-debug-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/package.json +4 -4
- package/node_modules/@fps-games/editor-core/dist/agent-bridge.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/agent-interaction.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/authoring-source.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/document-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +6 -1
- package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-session.js +9 -0
- package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/events.d.ts +1 -1
- package/node_modules/@fps-games/editor-core/dist/events.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/events.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/index.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/schema.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/types.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/validators.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/host-services.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/lifecycle.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/marker-graph.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/scene-view-input.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/selection-strategy.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/serialized-object.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-command.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-gizmo.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-operation-policy.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-operations.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/viewport-tools.js.map +1 -1
- package/node_modules/@fps-games/editor-core/package.json +6 -6
- package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js.map +1 -1
- package/node_modules/@fps-games/editor-forge-play/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/drop-cache.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js +28 -5
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/config.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/managed-facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js +13 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js +58 -23
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/identity.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/managed-runtime-instance.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/placement.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/runtime-scene.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js +3 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/transport.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js +7 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/constants.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/drift.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/runtime-transform-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/source.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/client.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/payload.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/response.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/adapter-dispatcher.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/payload.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/project-asset-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/readers.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/binding.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/math.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/pan.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-format.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-state.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-storage.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-text.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/rig.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/save-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/snapshot.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/commands/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/commands/transform.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/commands/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/core-contracts/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/camera-section.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-property.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/format.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-sections.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/marker-section.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/object-assembly.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/readonly.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-sections.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-summary.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/safe-value.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/validation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/internal/local-harness.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/binding.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/math.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/save-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/snapshot.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/storage.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/text.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/math.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/profile.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/loading-overlay.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts +18 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js +60 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/timing.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/game-objects.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/geometry.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/default-assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js +28 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/duplicate.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/paths.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/preview.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/profile.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js +26 -9
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js +0 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/text.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts +8 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/json-field.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/rendering-alpha-index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/transform.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js +18 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/shadow-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/source-structure-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/structure.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/asset-manager.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal-scene-feature.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +3 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-asset-actions.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/draft.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/route.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/import-plan.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +13 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/artifacts.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/companion-configs.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/validation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/object.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/classification.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/identity.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/object-command-facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/property-patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/system-defaults.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/transform.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shared/http.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shared/json.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/host.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/report.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/asset-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-core.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-node.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts +6 -5
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts +3 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js +37 -8
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/path-write-coordinator.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts +4 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +14 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +5 -4
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts +3 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js +2 -11
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts +8 -7
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +84 -6
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts +2 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts +4 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js +1 -4
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +0 -33
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/package.json +9 -6
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/marker-graph.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/package.json +2 -2
- package/node_modules/@fps-games/editor-tooling/dist/contributions.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/data-object.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/migration.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/vite.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/package.json +3 -3
- package/node_modules/@fps-games/playable-assets/dist/identity.js.map +1 -1
- package/node_modules/@fps-games/playable-assets/dist/index.d.ts +1 -0
- package/node_modules/@fps-games/playable-assets/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-assets/dist/index.js +1 -0
- package/node_modules/@fps-games/playable-assets/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts +2 -0
- package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts.map +1 -0
- package/node_modules/@fps-games/playable-assets/dist/portable-path.js +25 -0
- package/node_modules/@fps-games/playable-assets/dist/portable-path.js.map +1 -0
- package/node_modules/@fps-games/playable-assets/package.json +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/marker-graph-validation.js.map +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/marker-graph.js.map +1 -1
- package/node_modules/@fps-games/playable-contracts/package.json +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-authoring.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-types.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-values.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-quality.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-settings.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-types.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-validation.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/value.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/package.json +2 -2
- package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/runtime-data.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/standard-plugins.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/tokens.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/types.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/package.json +12 -12
- package/node_modules/@fps-games/playable-runtime-data/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
- package/node_modules/@fps-games/playable-scene/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-scene/dist/transform-math.js.map +1 -1
- package/node_modules/@fps-games/playable-scene/package.json +2 -2
- package/node_modules/@fps-games/plugin-api/dist/index.js.map +1 -1
- package/node_modules/@fps-games/plugin-api/package.json +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-assets/package.json +5 -5
- package/node_modules/@fps-games/plugin-host/dist/index.js.map +1 -1
- package/node_modules/@fps-games/plugin-host/package.json +2 -2
- package/node_modules/@fps-games/plugin-markers/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-markers/package.json +5 -5
- package/node_modules/@fps-games/plugin-materials/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-materials/package.json +5 -5
- package/node_modules/@fps-games/plugin-rendering/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
- package/node_modules/@fps-games/plugin-scene/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-scene/package.json +5 -5
- package/node_modules/@fps-games/plugin-shadows/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
- package/package.json +27 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-editor-ui-panels.js","sourceRoot":"","sources":["../src/local-editor-ui-panels.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"local-editor-ui-panels.js","sourceRoot":"","sources":["../src/local-editor-ui-panels.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n LocalEditorAssetBrowserTab,\n LocalEditorBrowserAssetPreview,\n LocalEditorBrowserAssetPreviewColorValue,\n LocalEditorBottomDockTab,\n LocalEditorBrowserHistoryEntry,\n LocalEditorBrowserHistoryView,\n LocalEditorBrowserInspectorConflictStrategy,\n LocalEditorBrowserInspectorControlBindingOptions,\n LocalEditorBrowserInspectorControlRegistration,\n LocalEditorBrowserInspectorControlRenderContext,\n LocalEditorBrowserInspectorEffectMode,\n LocalEditorBrowserInspectorObject,\n LocalEditorBrowserInspectorProperty,\n LocalEditorBrowserInspectorSection,\n LocalEditorBrowserRenderingPanelAction,\n LocalEditorBrowserMarkerPanelState,\n LocalEditorBrowserMarkerRelationEndpointItem,\n LocalEditorBrowserMarkerRelationItem,\n LocalEditorBrowserMarkerRelationTypeItem,\n LocalEditorBrowserMarkerTypeItem,\n LocalEditorBrowserRenderingPanelState,\n LocalEditorBrowserRenderingProperty,\n LocalEditorBrowserRenderingPropertyControlKind,\n LocalEditorBrowserRenderingSection,\n LocalEditorBrowserRenderingSystem,\n LocalEditorBrowserSceneGraphDropIntent,\n LocalEditorBrowserUiAssetItem,\n LocalEditorBrowserUiState,\n LocalEditorRightDockTab,\n LocalEditorWorkbenchPanelDescriptor,\n} from './local-editor-ui-types';\nimport {\n createLocalEditorIcon,\n isLocalEditorIconName,\n type LocalEditorIconName,\n} from './local-editor-ui-icons';\nimport {\n createBadge,\n createAssetList,\n createDockTab,\n createEditorInputStyle,\n createEmptyState,\n createListItemBlock,\n createPanelHeader,\n createPropertyRow,\n createToolbarButton,\n createTreeView,\n createTreeViewItem,\n} from './local-editor-ui-primitives';\nimport {\n configureLocalEditorDockPanelContent,\n createLocalEditorDockPanelViewport,\n renderLocalEditorDockTabStrip,\n} from './local-editor-ui-dock-panel';\nimport { clearElement, createButton, toTitle } from './local-editor-ui-shared';\nimport {\n resolveLocalEditorAssetBrowserTab,\n resolveLocalEditorBrowserAssetKind,\n} from './local-editor-ui-asset-kind';\nimport {\n createLocalEditorBrowserInspectorVectorCopyPayload,\n} from './local-editor-inspector-clipboard';\nimport {\n resolveLocalEditorBrowserInspectorVectorGroupPathFromProperties,\n} from './local-editor-inspector-groups';\n\nconst BOTTOM_DOCK_TAB_ICONS: Record<LocalEditorBottomDockTab, LocalEditorIconName> = {\n assets: 'asset',\n history: 'history',\n};\n\nconst RIGHT_DOCK_TAB_ICONS: Record<LocalEditorRightDockTab, LocalEditorIconName> = {\n inspector: 'inspector',\n rendering: 'world',\n markers: 'view-overlay',\n plugins: 'local',\n};\n\nconst LEFT_DOCK_TAB_ICONS = {\n hierarchy: 'hierarchy',\n} satisfies Record<'hierarchy', LocalEditorIconName>;\n\nconst ASSET_BROWSER_TABS: Array<{ id: LocalEditorAssetBrowserTab; label: string; title: string }> = [\n { id: 'all', label: '全部', title: '显示全部项目资产' },\n { id: 'models', label: '模型', title: '显示模型资产' },\n { id: 'prefabs', label: '预制体', title: '显示预制体资产' },\n { id: 'materials', label: '材质', title: '显示项目材质资产' },\n { id: 'textures', label: '贴图', title: '显示贴图资产' },\n];\n\nexport type LocalEditorAssetPreviewVariant = 'list' | 'grid' | 'modal';\n\nexport interface LocalEditorBrowserInspectorRenderOptions<TDocument = unknown> {\n title?: string;\n emptyText?: string;\n summaryTitle?: string;\n controls?: readonly LocalEditorBrowserInspectorControlRegistration<TDocument>[];\n controlConflict?: LocalEditorBrowserInspectorConflictStrategy;\n lockedVectorGroups?: ReadonlySet<string>;\n}\n\nexport function renderHierarchyPanel<TDocument>(\n doc: Document,\n panel: HTMLElement,\n state: LocalEditorBrowserUiState<TDocument>,\n rename: { id: string; value: string } | null,\n drop: LocalEditorBrowserSceneGraphDropIntent | null,\n): void {\n clearElement(panel);\n const createGroupButton = createToolbarButton(doc, '+ Empty', 'object');\n createGroupButton.dataset.editorHierarchyCreateGroup = 'true';\n createGroupButton.style.padding = '3px 7px';\n createGroupButton.style.fontSize = '11px';\n const createMarkerButton = createToolbarButton(doc, '+ Marker', 'view-overlay');\n createMarkerButton.dataset.editorHierarchyCreateMarker = 'true';\n createMarkerButton.style.padding = '3px 7px';\n createMarkerButton.style.fontSize = '11px';\n panel.appendChild(createPanelHeader(doc, 'Hierarchy', [createGroupButton, createMarkerButton], 'hierarchy'));\n\n const list = createTreeView(doc);\n for (const item of state.hierarchy) {\n const isRenaming = rename?.id === item.id;\n const selected = state.selectedIds.includes(item.id);\n const active = state.activeId === item.id;\n const dropPlacement = drop?.targetId === item.id ? drop.placement : null;\n const button = createTreeViewItem(doc, {\n id: item.id,\n label: item.label,\n depth: item.depth,\n selected,\n active,\n locked: item.locked,\n selectable: item.selectable,\n draggable: item.draggable,\n dropPlacement,\n });\n if (isRenaming) {\n const input = doc.createElement('input');\n input.dataset.editorHierarchyRenameInput = item.id;\n input.value = rename.value;\n input.style.cssText = [\n 'width:100%',\n 'height:22px',\n 'box-sizing:border-box',\n 'border:1px solid var(--fps-editor-accent-strong)',\n 'border-radius:2px',\n 'background:var(--fps-editor-field)',\n 'color:var(--fps-editor-text-strong)',\n 'font-size:12px',\n 'font-weight:700',\n 'padding:2px 5px',\n 'outline:none',\n ].join(';');\n button.appendChild(input);\n setTimeout(() => {\n input.focus();\n input.select();\n }, 0);\n } else {\n button.textContent = item.locked ? `${item.label} [locked]` : item.label;\n }\n list.appendChild(button);\n }\n panel.appendChild(list);\n}\n\nexport function renderBottomDockPanel<TDocument>(\n doc: Document,\n panel: HTMLElement,\n state: LocalEditorBrowserUiState<TDocument>,\n activeTab: LocalEditorBottomDockTab,\n activeAssetBrowserTab: LocalEditorAssetBrowserTab = 'all',\n): void {\n clearElement(panel);\n appendDockTabs(doc, panel, activeTab);\n if (activeTab === 'history') renderHistoryPanel(doc, panel, state.session?.history ?? null);\n else renderAssetBrowserContent(doc, panel, state, 'list', activeAssetBrowserTab);\n}\n\nexport function renderWorkbenchBottomDockPanel<TDocument>(\n doc: Document,\n panel: HTMLElement,\n state: LocalEditorBrowserUiState<TDocument>,\n activeTab: LocalEditorBottomDockTab,\n panels: LocalEditorWorkbenchPanelDescriptor[] = [],\n activeAssetBrowserTab: LocalEditorAssetBrowserTab = 'all',\n): void {\n clearElement(panel);\n const tabHeader = doc.createElement('div');\n renderLocalEditorDockTabStrip(doc, {\n activeId: activeTab,\n area: 'bottom',\n datasetKey: 'editorDockTab',\n fallbackTabs: [\n { id: 'assets', title: '资产', area: 'bottom' },\n { id: 'history', title: '历史', area: 'bottom' },\n ],\n iconById: BOTTOM_DOCK_TAB_ICONS,\n panel: tabHeader,\n panels,\n });\n panel.appendChild(tabHeader);\n const content = doc.createElement('div');\n content.dataset.editorPanelContent = 'true';\n content.dataset.editorPanelId = activeTab;\n content.style.cssText = 'flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:8px';\n panel.appendChild(content);\n if (activeTab === 'history') renderHistoryPanel(doc, content, state.session?.history ?? null);\n else renderAssetBrowserContent(doc, content, state, 'grid', activeAssetBrowserTab);\n}\n\nfunction appendDockTabs(\n doc: Document,\n panel: HTMLElement,\n activeTab: LocalEditorBottomDockTab,\n): void {\n const tabs = doc.createElement('div');\n tabs.style.cssText = [\n 'display:flex',\n 'align-items:center',\n 'gap:4px',\n 'margin:0 0 10px',\n 'border-bottom:1px solid var(--fps-editor-border-soft)',\n ].join(';');\n const labels: Record<LocalEditorBottomDockTab, string> = {\n assets: '资产',\n history: '历史',\n };\n for (const tab of ['assets', 'history'] as const) {\n const active = activeTab === tab;\n const button = createDockTab(doc, labels[tab], active, BOTTOM_DOCK_TAB_ICONS[tab]);\n button.dataset.editorDockTab = tab;\n button.style.border = '0';\n button.style.borderBottom = `2px solid ${active ? 'var(--fps-editor-accent-strong)' : 'transparent'}`;\n button.style.background = 'transparent';\n button.style.color = active ? 'var(--fps-editor-text-strong)' : 'var(--fps-editor-muted)';\n button.style.padding = '0 8px 8px';\n tabs.appendChild(button);\n }\n panel.appendChild(tabs);\n}\n\nexport function renderWorkbenchRightDockTabs(\n doc: Document,\n panel: HTMLElement,\n activeTab: LocalEditorRightDockTab,\n panels: LocalEditorWorkbenchPanelDescriptor[] = [],\n): void {\n renderLocalEditorDockTabStrip(doc, {\n activeId: activeTab,\n area: 'right',\n datasetKey: 'editorRightDockTab',\n fallbackTabs: [\n { id: 'inspector', title: '检查器', area: 'right' },\n { id: 'rendering', title: '渲染', area: 'right' },\n { id: 'markers', title: '标记', area: 'right' },\n { id: 'plugins', title: '插件', area: 'right' },\n ],\n iconById: RIGHT_DOCK_TAB_ICONS,\n panel,\n panels,\n tabStyle: tabHeaderButtonStyle,\n });\n}\n\nexport function renderMarkerPanel<TDocument>(\n doc: Document,\n panel: HTMLElement,\n state: LocalEditorBrowserUiState<TDocument>,\n): void {\n clearElement(panel);\n configureLocalEditorDockPanelContent(panel);\n const markerPanel = state.markerPanel ?? null;\n panel.appendChild(createPanelHeader(doc, markerPanel?.title ?? 'Markers', [], 'view-overlay'));\n const viewport = createLocalEditorDockPanelViewport(doc, 'editorMarkersScrollViewport', { gap: '8px' });\n if (!markerPanel) {\n viewport.appendChild(createEmptyState(doc, '当前项目没有提供 marker graph capability。'));\n panel.appendChild(viewport);\n return;\n }\n viewport.appendChild(createMarkerPanelSummary(doc, markerPanel));\n viewport.appendChild(createMarkerRelationCreateBlock(doc, markerPanel));\n viewport.appendChild(createMarkerRelationListBlock(doc, markerPanel.relations ?? []));\n viewport.appendChild(createMarkerTypeCreateBlock(doc));\n const list = doc.createElement('div');\n list.style.cssText = 'display:flex;flex-direction:column;gap:6px';\n for (const markerType of markerPanel.markerTypes) list.appendChild(createMarkerTypeRow(doc, markerType));\n if (markerPanel.markerTypes.length === 0) list.appendChild(createEmptyState(doc, '还没有 marker type。'));\n viewport.appendChild(list);\n panel.appendChild(viewport);\n}\n\nexport function renderWorkbenchLeftDockTabs(\n doc: Document,\n panel: HTMLElement,\n activeTab: 'hierarchy',\n panels: LocalEditorWorkbenchPanelDescriptor[] = [],\n): void {\n renderLocalEditorDockTabStrip(doc, {\n activeId: activeTab,\n area: 'left',\n datasetKey: 'editorLeftDockTab',\n fallbackTabs: [\n { id: 'hierarchy', title: '层级', area: 'left' },\n ],\n iconById: LEFT_DOCK_TAB_ICONS,\n panel,\n panels,\n tabStyle: tabHeaderButtonStyle,\n });\n}\n\nfunction createMarkerPanelSummary(\n doc: Document,\n panel: LocalEditorBrowserMarkerPanelState,\n): HTMLElement {\n const block = createListItemBlock(doc);\n block.style.cssText = [\n block.style.cssText,\n 'display:flex',\n 'flex-direction:column',\n 'gap:7px',\n ].filter(Boolean).join(';');\n const counters = doc.createElement('div');\n counters.style.cssText = 'display:flex;align-items:center;gap:5px;flex-wrap:wrap';\n counters.appendChild(createBadge(doc, `${panel.markersCount ?? 0} markers`, { compact: true, icon: 'view-overlay' }));\n counters.appendChild(createBadge(doc, `${panel.relationsCount ?? 0} relations`, { compact: true, icon: 'hierarchy' }));\n counters.appendChild(createBadge(doc, `${panel.markerTypes.length} types`, { compact: true, icon: 'object' }));\n block.appendChild(counters);\n if (panel.summary || panel.status) {\n const summary = doc.createElement('div');\n summary.textContent = panel.status ?? panel.summary ?? '';\n const statusColor = panel.statusTone === 'error'\n ? 'var(--fps-editor-danger-text)'\n : panel.statusTone === 'warning'\n ? 'var(--fps-editor-warn)'\n : panel.statusTone === 'success'\n ? 'var(--fps-editor-success)'\n : 'var(--fps-editor-muted)';\n summary.style.cssText = [\n `color:${statusColor}`,\n 'font-size:11px',\n 'font-weight:700',\n 'line-height:1.45',\n ].join(';');\n block.appendChild(summary);\n }\n return block;\n}\n\nfunction createMarkerRelationCreateBlock(\n doc: Document,\n panel: LocalEditorBrowserMarkerPanelState,\n): HTMLElement {\n const block = createListItemBlock(doc);\n block.dataset.editorMarkerRelationCreate = 'true';\n block.style.cssText = [\n block.style.cssText,\n 'display:flex',\n 'flex-direction:column',\n 'gap:7px',\n ].filter(Boolean).join(';');\n const header = createMarkerPanelSectionHeader(doc, '关系');\n header.appendChild(createBadge(doc, panel.activeMarkerId ? '当前标记' : '未选中标记', {\n compact: true,\n tone: panel.activeMarkerId ? 'success' : 'default',\n }));\n block.appendChild(header);\n if (panel.markersVisible === false) {\n block.appendChild(createMarkerRelationVisibilityHint(doc, '标记视图已关闭,关系线暂不显示'));\n }\n const endpoints = panel.relationEndpointOptions ?? [];\n const relationTypes = panel.relationTypes ?? [];\n const grid = doc.createElement('div');\n grid.style.cssText = 'display:grid;grid-template-columns:72px minmax(0,1fr);gap:6px 8px;align-items:center';\n grid.appendChild(createMarkerTypeFieldLabel(doc, '起点'));\n grid.appendChild(createMarkerRelationEndpointSelect(doc, 'from', endpoints, panel.activeMarkerId ?? null));\n grid.appendChild(createMarkerTypeFieldLabel(doc, '关系'));\n grid.appendChild(createMarkerRelationTypeSelect(doc, relationTypes));\n grid.appendChild(createMarkerTypeFieldLabel(doc, '终点'));\n grid.appendChild(createMarkerRelationEndpointSelect(doc, 'to', endpoints, null));\n grid.appendChild(createMarkerTypeFieldLabel(doc, '方向'));\n grid.appendChild(createMarkerRelationDirectionSelect(doc));\n block.appendChild(grid);\n if (panel.relationPick?.active) {\n block.appendChild(createMarkerRelationPickStatus(doc, panel));\n }\n const actions = doc.createElement('div');\n actions.style.cssText = 'display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap';\n const selectedRelationCount = (panel.relations ?? []).filter(relation => relation.selected).length;\n const deleteConnectedButton = createToolbarButton(doc, '删除当前标记全部关系', 'discard');\n deleteConnectedButton.type = 'button';\n deleteConnectedButton.dataset.editorMarkerRelationAction = 'delete-connected';\n if (panel.activeMarkerId) deleteConnectedButton.dataset.editorMarkerRelationMarkerId = panel.activeMarkerId;\n deleteConnectedButton.disabled = !panel.activeMarkerId || selectedRelationCount === 0;\n deleteConnectedButton.title = deleteConnectedButton.disabled\n ? '当前标记没有可删除的一跳关系。'\n : '删除当前标记的一跳关系,不删除标记或对象。';\n deleteConnectedButton.dataset.editorTooltip = deleteConnectedButton.title;\n deleteConnectedButton.style.padding = '4px 8px';\n actions.appendChild(deleteConnectedButton);\n const pickButton = createToolbarButton(doc, '视口拾取', 'view-overlay');\n pickButton.type = 'button';\n pickButton.dataset.editorMarkerRelationAction = 'pick-start';\n pickButton.disabled = endpoints.length === 0 || relationTypes.length === 0;\n pickButton.title = pickButton.disabled\n ? '至少需要一个端点和一个关系类型。'\n : '进入视口拾取关系端点模式。';\n pickButton.dataset.editorTooltip = pickButton.title;\n pickButton.style.padding = '4px 8px';\n actions.appendChild(pickButton);\n if (panel.relationPick?.active) {\n const cancelPickButton = createToolbarButton(doc, '取消拾取', 'discard');\n cancelPickButton.type = 'button';\n cancelPickButton.dataset.editorMarkerRelationAction = 'pick-cancel';\n cancelPickButton.title = '退出关系端点拾取。';\n cancelPickButton.dataset.editorTooltip = cancelPickButton.title;\n cancelPickButton.style.padding = '4px 8px';\n actions.appendChild(cancelPickButton);\n }\n const button = createToolbarButton(doc, '创建关系', 'hierarchy');\n button.type = 'button';\n button.dataset.editorMarkerRelationAction = 'create';\n button.disabled = endpoints.length < 2 || relationTypes.length === 0;\n button.title = button.disabled\n ? '至少需要两个端点和一个关系类型。'\n : '创建 marker 关系';\n button.dataset.editorTooltip = button.title;\n button.style.padding = '4px 8px';\n actions.appendChild(button);\n block.appendChild(actions);\n return block;\n}\n\nfunction createMarkerRelationVisibilityHint(doc: Document, text: string): HTMLElement {\n const hint = doc.createElement('div');\n hint.textContent = text;\n hint.style.cssText = [\n 'color:var(--fps-editor-warn)',\n 'border:1px solid rgba(251, 191, 36, 0.45)',\n 'border-radius:6px',\n 'background:rgba(251, 191, 36, 0.10)',\n 'padding:6px 8px',\n 'font-size:11px',\n 'font-weight:800',\n 'line-height:1.35',\n ].join(';');\n return hint;\n}\n\nfunction createMarkerRelationPickStatus(\n doc: Document,\n panel: LocalEditorBrowserMarkerPanelState,\n): HTMLElement {\n const relationPick = panel.relationPick;\n const status = doc.createElement('div');\n const tone = relationPick?.statusTone ?? 'success';\n const color = tone === 'warning'\n ? 'var(--fps-editor-warn)'\n : tone === 'error'\n ? 'var(--fps-editor-danger-text)'\n : tone === 'success'\n ? 'var(--fps-editor-success)'\n : 'var(--fps-editor-muted)';\n status.textContent = relationPick?.status\n ?? (relationPick?.from\n ? '正在拾取关系终点。'\n : '正在拾取关系起点。');\n status.style.cssText = [\n `color:${color}`,\n 'border:1px solid var(--fps-editor-border)',\n 'border-radius:6px',\n 'background:rgba(42, 125, 255, 0.10)',\n 'padding:6px 8px',\n 'font-size:11px',\n 'font-weight:800',\n 'line-height:1.35',\n ].join(';');\n return status;\n}\n\nfunction createMarkerRelationListBlock(\n doc: Document,\n relations: readonly LocalEditorBrowserMarkerRelationItem[],\n): HTMLElement {\n const block = createListItemBlock(doc);\n block.style.cssText = [\n block.style.cssText,\n 'display:flex',\n 'flex-direction:column',\n 'gap:7px',\n ].filter(Boolean).join(';');\n const header = createMarkerPanelSectionHeader(doc, '关系列表');\n header.appendChild(createBadge(doc, `${relations.length}`, { compact: true, icon: 'hierarchy' }));\n block.appendChild(header);\n if (relations.length === 0) {\n block.appendChild(createEmptyState(doc, '还没有关系。'));\n return block;\n }\n const list = doc.createElement('div');\n list.style.cssText = 'display:flex;flex-direction:column;gap:6px';\n const sortedRelations = [...relations].sort((left, right) => {\n if (left.selected !== right.selected) return left.selected ? -1 : 1;\n return left.typeLabel.localeCompare(right.typeLabel) || left.id.localeCompare(right.id);\n });\n for (const relation of sortedRelations) list.appendChild(createMarkerRelationRow(doc, relation));\n block.appendChild(list);\n return block;\n}\n\nfunction createMarkerRelationRow(\n doc: Document,\n relation: LocalEditorBrowserMarkerRelationItem,\n): HTMLElement {\n const row = doc.createElement('div');\n row.dataset.editorMarkerRelationRow = relation.id;\n row.dataset.editorMarkerRelationAction = 'select';\n row.tabIndex = 0;\n row.style.cssText = [\n `border:1px solid ${relation.active ? 'var(--fps-editor-accent-strong)' : 'var(--fps-editor-border)'}`,\n 'border-radius:6px',\n `background:${relation.active ? 'rgba(42, 125, 255, 0.16)' : 'var(--fps-editor-surface-subtle)'}`,\n 'padding:7px',\n 'display:flex',\n 'flex-direction:column',\n 'gap:6px',\n 'cursor:pointer',\n relation.selected ? 'box-shadow:inset 3px 0 0 var(--fps-editor-accent)' : '',\n relation.active ? 'outline:1px solid rgba(90, 170, 255, 0.35)' : '',\n ].filter(Boolean).join(';');\n row.title = '点击高亮这条关系线';\n row.dataset.editorTooltip = row.title;\n const header = doc.createElement('div');\n header.style.cssText = 'display:flex;align-items:center;gap:6px;min-width:0';\n const title = doc.createElement('div');\n title.textContent = relation.typeLabel;\n title.style.cssText = 'flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fps-editor-text-strong);font-size:12px;font-weight:900';\n header.appendChild(title);\n header.appendChild(createBadge(doc, relation.directed ? '有方向' : '无方向', { compact: true }));\n if (relation.selected) header.appendChild(createBadge(doc, '一跳', { compact: true, tone: 'success' }));\n if (relation.active) header.appendChild(createBadge(doc, '高亮', { compact: true, tone: 'success' }));\n row.appendChild(header);\n const body = doc.createElement('div');\n body.style.cssText = 'display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px;font-size:11px;font-weight:800';\n body.appendChild(createMarkerRelationEndpointPill(doc, relation.from));\n const arrow = doc.createElement('div');\n arrow.textContent = relation.directed ? '->' : '--';\n arrow.style.cssText = 'color:var(--fps-editor-muted);font-family:var(--fps-editor-mono-font);font-weight:900';\n body.appendChild(arrow);\n body.appendChild(createMarkerRelationEndpointPill(doc, relation.to));\n row.appendChild(body);\n if (relation.status) {\n const status = doc.createElement('div');\n status.textContent = relation.status;\n status.style.cssText = [\n `color:${relation.statusTone === 'warning' ? 'var(--fps-editor-warn)' : 'var(--fps-editor-danger-text)'}`,\n 'font-size:11px',\n 'font-weight:800',\n 'line-height:1.35',\n ].join(';');\n row.appendChild(status);\n }\n const actions = doc.createElement('div');\n actions.style.cssText = 'display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap';\n const reverseButton = createToolbarButton(doc, '反转', 'rotate');\n reverseButton.type = 'button';\n reverseButton.dataset.editorMarkerRelationAction = 'reverse';\n reverseButton.style.padding = '4px 8px';\n reverseButton.title = '交换关系起点和终点。';\n reverseButton.dataset.editorTooltip = reverseButton.title;\n actions.appendChild(reverseButton);\n const deleteButton = createToolbarButton(doc, '删除', 'discard');\n deleteButton.type = 'button';\n deleteButton.dataset.editorMarkerRelationAction = 'delete';\n deleteButton.style.padding = '4px 8px';\n actions.appendChild(deleteButton);\n row.appendChild(actions);\n return row;\n}\n\nfunction createMarkerRelationEndpointPill(\n doc: Document,\n endpoint: LocalEditorBrowserMarkerRelationEndpointItem,\n): HTMLElement {\n const pill = doc.createElement('div');\n const kindLabel = endpoint.kind === 'marker'\n ? '标记'\n : endpoint.kind === 'scene-object'\n ? '对象'\n : endpoint.kind;\n const hidden = endpoint.visibility === 'hidden';\n const label = `${kindLabel} · ${endpoint.label || endpoint.id}${hidden ? ' · 已隐藏' : ''}`;\n pill.textContent = label;\n pill.title = endpoint.status ? `${label} · ${endpoint.status}` : label;\n pill.dataset.editorTooltip = pill.title;\n pill.style.cssText = [\n 'min-width:0',\n 'overflow:hidden',\n 'text-overflow:ellipsis',\n 'white-space:nowrap',\n 'border:1px solid var(--fps-editor-border)',\n 'border-radius:999px',\n 'padding:3px 6px',\n `color:${endpoint.disabled ? 'var(--fps-editor-warn)' : hidden ? 'var(--fps-editor-muted)' : 'var(--fps-editor-text)'}`,\n `background:${hidden ? 'var(--fps-editor-surface-subtle)' : 'var(--fps-editor-surface)'}`,\n hidden ? 'opacity:0.72' : '',\n ].join(';');\n return pill;\n}\n\nfunction createMarkerRelationEndpointSelect(\n doc: Document,\n field: 'from' | 'to',\n endpoints: readonly LocalEditorBrowserMarkerRelationEndpointItem[],\n preferredMarkerId: string | null,\n): HTMLSelectElement {\n const select = doc.createElement('select');\n select.dataset.editorMarkerRelationField = field;\n select.style.cssText = createInspectorInputStyle();\n for (const endpoint of endpoints) {\n const option = doc.createElement('option');\n option.value = encodeMarkerRelationEndpointValue(endpoint.kind, endpoint.id);\n option.textContent = formatMarkerRelationEndpointOptionLabel(endpoint);\n option.dataset.editorMarkerRelationEndpointKind = endpoint.kind;\n option.dataset.editorMarkerRelationEndpointId = endpoint.id;\n option.disabled = endpoint.disabled === true;\n if (preferredMarkerId && endpoint.kind === 'marker' && endpoint.id === preferredMarkerId) option.selected = true;\n select.appendChild(option);\n }\n select.disabled = endpoints.length === 0;\n return select;\n}\n\nfunction createMarkerRelationTypeSelect(\n doc: Document,\n relationTypes: readonly LocalEditorBrowserMarkerRelationTypeItem[],\n): HTMLSelectElement {\n const select = doc.createElement('select');\n select.dataset.editorMarkerRelationField = 'type';\n select.style.cssText = createInspectorInputStyle();\n for (const relationType of relationTypes) {\n const option = doc.createElement('option');\n option.value = relationType.type;\n option.textContent = relationType.label || relationType.type;\n option.dataset.editorMarkerRelationDirected = String(relationType.directed ?? true);\n if (relationType.description) option.title = relationType.description;\n select.appendChild(option);\n }\n select.disabled = relationTypes.length === 0;\n return select;\n}\n\nfunction createMarkerRelationDirectionSelect(doc: Document): HTMLSelectElement {\n const select = doc.createElement('select');\n select.dataset.editorMarkerRelationField = 'directed';\n select.style.cssText = createInspectorInputStyle();\n for (const [value, label] of [\n ['default', '按类型默认'],\n ['true', '有方向'],\n ['false', '无方向'],\n ] as const) {\n const option = doc.createElement('option');\n option.value = value;\n option.textContent = label;\n select.appendChild(option);\n }\n return select;\n}\n\nfunction createMarkerPanelSectionHeader(doc: Document, text: string): HTMLElement {\n const header = doc.createElement('div');\n header.style.cssText = 'display:flex;align-items:center;gap:6px;min-width:0;color:var(--fps-editor-text-strong);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:0';\n const title = doc.createElement('div');\n title.textContent = text;\n title.style.cssText = 'flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap';\n header.appendChild(title);\n return header;\n}\n\nfunction formatMarkerRelationEndpointOptionLabel(endpoint: LocalEditorBrowserMarkerRelationEndpointItem): string {\n const kindLabel = endpoint.kind === 'marker'\n ? '标记'\n : endpoint.kind === 'scene-object'\n ? '对象'\n : endpoint.kind;\n return `${kindLabel} · ${endpoint.label || endpoint.id}${endpoint.status ? ` · ${endpoint.status}` : ''}`;\n}\n\nfunction encodeMarkerRelationEndpointValue(kind: string, id: string): string {\n return `${kind}:${encodeURIComponent(id)}`;\n}\n\nfunction createMarkerTypeCreateBlock(doc: Document): HTMLElement {\n const block = createListItemBlock(doc);\n block.dataset.editorMarkerTypeCreate = 'true';\n block.style.cssText = [\n block.style.cssText,\n 'display:flex',\n 'flex-direction:column',\n 'gap:7px',\n ].filter(Boolean).join(';');\n const header = doc.createElement('div');\n header.textContent = 'New Marker Type';\n header.style.cssText = 'color:var(--fps-editor-text-strong);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:0';\n block.appendChild(header);\n block.appendChild(createMarkerTypeFieldGrid(doc, {\n prefix: 'create',\n type: '',\n label: '',\n kind: 'region',\n description: '',\n typeReadOnly: false,\n }));\n const actions = doc.createElement('div');\n actions.style.cssText = 'display:flex;justify-content:flex-end';\n const button = createToolbarButton(doc, 'Create', 'object');\n button.type = 'button';\n button.dataset.editorMarkerTypeAction = 'create';\n button.style.padding = '4px 8px';\n actions.appendChild(button);\n block.appendChild(actions);\n return block;\n}\n\nfunction createMarkerTypeRow(doc: Document, markerType: LocalEditorBrowserMarkerTypeItem): HTMLElement {\n const block = createListItemBlock(doc);\n block.dataset.editorMarkerTypeRow = markerType.type;\n block.style.cssText = [\n block.style.cssText,\n 'display:flex',\n 'flex-direction:column',\n 'gap:7px',\n ].filter(Boolean).join(';');\n const header = doc.createElement('div');\n header.style.cssText = 'display:flex;align-items:center;gap:6px;min-width:0';\n const title = doc.createElement('div');\n title.textContent = markerType.type;\n title.style.cssText = 'flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fps-editor-text-strong);font-size:12px;font-weight:900';\n header.appendChild(title);\n if (markerType.builtIn) header.appendChild(createBadge(doc, 'BUILT IN', { compact: true, tone: 'warning' }));\n if ((markerType.usedByCount ?? 0) > 0) header.appendChild(createBadge(doc, `${markerType.usedByCount} used`, { compact: true }));\n block.appendChild(header);\n block.appendChild(createMarkerTypeFieldGrid(doc, {\n prefix: 'row',\n type: markerType.type,\n label: markerType.label,\n kind: markerType.kind ?? '',\n description: markerType.description ?? '',\n typeReadOnly: true,\n }));\n const actions = doc.createElement('div');\n actions.style.cssText = 'display:flex;align-items:center;justify-content:flex-end;gap:6px';\n const updateButton = createToolbarButton(doc, 'Update', 'save');\n updateButton.type = 'button';\n updateButton.dataset.editorMarkerTypeAction = 'update';\n updateButton.style.padding = '4px 8px';\n actions.appendChild(updateButton);\n const deleteButton = createToolbarButton(doc, 'Delete', 'discard');\n deleteButton.type = 'button';\n deleteButton.dataset.editorMarkerTypeAction = 'delete';\n deleteButton.disabled = markerType.deletable === false;\n deleteButton.title = markerType.deletable === false\n ? (markerType.builtIn ? 'Built-in marker types cannot be deleted.' : 'Marker types currently in use cannot be deleted.')\n : 'Delete marker type';\n deleteButton.dataset.editorTooltip = deleteButton.title;\n deleteButton.style.padding = '4px 8px';\n actions.appendChild(deleteButton);\n block.appendChild(actions);\n return block;\n}\n\nfunction createMarkerTypeFieldGrid(\n doc: Document,\n input: {\n prefix: string;\n type: string;\n label: string;\n kind: string;\n description: string;\n typeReadOnly: boolean;\n },\n): HTMLElement {\n const grid = doc.createElement('div');\n grid.style.cssText = 'display:grid;grid-template-columns:72px minmax(0,1fr);gap:6px 8px;align-items:center';\n grid.appendChild(createMarkerTypeFieldLabel(doc, 'Type'));\n grid.appendChild(createMarkerTypeTextInput(doc, input.prefix, 'type', input.type, input.typeReadOnly));\n grid.appendChild(createMarkerTypeFieldLabel(doc, 'Label'));\n grid.appendChild(createMarkerTypeTextInput(doc, input.prefix, 'label', input.label, false));\n grid.appendChild(createMarkerTypeFieldLabel(doc, 'Kind'));\n grid.appendChild(createMarkerTypeTextInput(doc, input.prefix, 'kind', input.kind, false));\n grid.appendChild(createMarkerTypeFieldLabel(doc, 'Description'));\n grid.appendChild(createMarkerTypeTextarea(doc, input.prefix, 'description', input.description));\n return grid;\n}\n\nfunction createMarkerTypeFieldLabel(doc: Document, text: string): HTMLElement {\n const label = doc.createElement('div');\n label.textContent = text;\n label.style.cssText = 'color:var(--fps-editor-muted);font-size:11px;font-weight:800';\n return label;\n}\n\nfunction createMarkerTypeTextInput(\n doc: Document,\n prefix: string,\n field: string,\n value: string,\n readOnly: boolean,\n): HTMLInputElement {\n const input = doc.createElement('input');\n input.type = 'text';\n input.value = value;\n input.dataset.editorMarkerTypeField = field;\n input.dataset.editorMarkerTypeFieldPrefix = prefix;\n input.readOnly = readOnly;\n input.style.cssText = [\n createInspectorInputStyle(),\n readOnly ? 'opacity:0.72' : '',\n ].filter(Boolean).join(';');\n return input;\n}\n\nfunction createMarkerTypeTextarea(\n doc: Document,\n prefix: string,\n field: string,\n value: string,\n): HTMLTextAreaElement {\n const input = doc.createElement('textarea');\n input.value = value;\n input.rows = 2;\n input.dataset.editorMarkerTypeField = field;\n input.dataset.editorMarkerTypeFieldPrefix = prefix;\n input.style.cssText = [\n createInspectorInputStyle(),\n 'height:auto',\n 'min-height:46px',\n 'resize:vertical',\n 'padding:6px',\n 'line-height:1.35',\n ].join(';');\n return input;\n}\n\nexport function renderRenderingPanel<TDocument>(\n doc: Document,\n panel: HTMLElement,\n state: LocalEditorBrowserUiState<TDocument>,\n): void {\n clearElement(panel);\n configureLocalEditorDockPanelContent(panel);\n const rendering = state.renderingPanel ?? null;\n panel.appendChild(createPanelHeader(doc, rendering?.title ?? 'Rendering', createRenderingPanelActions(doc, rendering), 'world'));\n const viewport = createLocalEditorDockPanelViewport(doc, 'editorRenderingScrollViewport');\n if (!rendering || rendering.sections.length === 0) {\n viewport.appendChild(createEmptyState(doc, '当前项目没有提供渲染设置。'));\n panel.appendChild(viewport);\n return;\n }\n if (rendering.dirty || rendering.status) {\n const status = doc.createElement('div');\n status.style.cssText = [\n 'display:flex',\n 'align-items:center',\n 'gap:6px',\n 'margin:0 0 8px',\n 'min-height:20px',\n ].join(';');\n if (rendering.dirty) status.appendChild(createBadge(doc, 'UNSAVED', { compact: true, tone: 'warning' }));\n if (rendering.status) {\n const message = doc.createElement('span');\n message.textContent = rendering.status;\n message.style.cssText = [\n `color:${rendering.statusTone === 'error' ? 'var(--fps-editor-danger-text)' : rendering.statusTone === 'warning' ? 'var(--fps-editor-warn)' : 'var(--fps-editor-muted)'}`,\n 'font-size:11px',\n 'font-weight:800',\n 'min-width:0',\n 'overflow:hidden',\n 'text-overflow:ellipsis',\n 'white-space:nowrap',\n ].join(';');\n status.appendChild(message);\n }\n panel.appendChild(status);\n }\n if (rendering.summary) {\n const summary = doc.createElement('div');\n summary.textContent = rendering.summary;\n summary.style.cssText = [\n 'margin:0 0 8px',\n 'color:var(--fps-editor-muted)',\n 'font-size:11px',\n 'line-height:1.45',\n ].join(';');\n panel.appendChild(summary);\n }\n for (const section of rendering.sections) {\n viewport.appendChild(createRenderingSectionBlock(doc, section));\n }\n panel.appendChild(viewport);\n}\n\nfunction createRenderingPanelActions(\n doc: Document,\n rendering: LocalEditorBrowserRenderingPanelState | null,\n): HTMLButtonElement[] {\n return (rendering?.actions ?? []).map(action => createRenderingActionButton(doc, action, {\n buttonKind: 'toolbar',\n }));\n}\n\ninterface LocalEditorRenderingActionButtonContext {\n sectionId?: string;\n systemId?: string;\n path?: string;\n buttonKind?: 'toolbar' | 'compact' | 'icon';\n}\n\nfunction createRenderingActionButton(\n doc: Document,\n action: LocalEditorBrowserRenderingPanelAction,\n context: LocalEditorRenderingActionButtonContext = {},\n): HTMLButtonElement {\n const icon = action.icon && isLocalEditorIconName(action.icon) ? action.icon : 'world';\n const button = context.buttonKind === 'icon'\n ? createButton(doc, action.label, {\n icon,\n labelMode: 'icon-only',\n tooltip: action.tooltip ?? action.label,\n ariaLabel: action.label,\n variant: 'toolbar-icon',\n })\n : createToolbarButton(doc, action.label, icon);\n button.type = 'button';\n button.dataset.editorRenderingAction = action.id;\n if (context.sectionId) button.dataset.renderingSectionId = context.sectionId;\n if (context.systemId) button.dataset.renderingSystemId = context.systemId;\n if (context.path) button.dataset.renderingPath = context.path;\n if (action.params) button.dataset.renderingActionParams = JSON.stringify(action.params);\n button.disabled = action.disabled === true;\n button.title = action.tooltip ?? action.label;\n button.dataset.editorTooltip = button.title;\n if (context.buttonKind === 'toolbar') {\n button.style.padding = '3px 7px';\n button.style.fontSize = '11px';\n } else if (context.buttonKind === 'compact') {\n button.style.padding = '2px 6px';\n button.style.height = '22px';\n button.style.fontSize = '11px';\n } else {\n button.style.width = '24px';\n button.style.minWidth = '24px';\n button.style.height = '24px';\n button.style.flexBasis = '24px';\n }\n return button;\n}\n\nfunction tabHeaderButtonStyle(button: HTMLButtonElement): void {\n button.style.borderTop = '0';\n button.style.borderLeft = '0';\n button.style.borderRadius = '0';\n button.style.minWidth = '0';\n}\n\nfunction createRenderingSectionBlock(\n doc: Document,\n section: LocalEditorBrowserRenderingPanelState['sections'][number],\n): HTMLDetailsElement {\n const isListLayout = section.layout === 'list';\n const systemGroups = groupRenderingSystems(section.systems);\n const hasSystemGroups = systemGroups.some(group => group.group);\n const block = doc.createElement('details');\n block.dataset.editorRenderingSection = section.id;\n block.open = section.collapsedByDefault !== true;\n block.style.cssText = [\n 'margin:0 0 10px',\n `padding:${isListLayout ? '6px' : '8px'}`,\n 'border:1px solid var(--fps-editor-border)',\n 'border-radius:3px',\n 'background:var(--fps-editor-panel-soft)',\n ].join(';');\n\n const header = doc.createElement('summary');\n header.style.cssText = [\n 'display:flex',\n 'align-items:flex-start',\n 'justify-content:space-between',\n 'gap:8px',\n 'cursor:pointer',\n 'list-style:none',\n 'margin:0',\n ].join(';');\n\n const titleGroup = doc.createElement('div');\n titleGroup.style.cssText = 'display:flex;align-items:flex-start;gap:6px;min-width:0';\n\n const disclosure = createRenderingDisclosureIcon(doc, block, section.id, 'editorRenderingSectionDisclosure');\n\n const title = doc.createElement('div');\n title.style.cssText = 'min-width:0';\n const heading = doc.createElement('h3');\n heading.textContent = section.title;\n heading.style.cssText = 'margin:0;color:var(--fps-editor-text-strong);font-size:12px;font-weight:900';\n title.appendChild(heading);\n if (section.summary) {\n const summary = doc.createElement('div');\n summary.textContent = section.summary;\n summary.style.cssText = 'margin-top:3px;color:var(--fps-editor-muted);font-size:11px;line-height:1.35';\n title.appendChild(summary);\n }\n titleGroup.appendChild(disclosure);\n titleGroup.appendChild(title);\n header.appendChild(titleGroup);\n header.appendChild(createBadge(doc, `${section.systems.length}`, { compact: true }));\n block.appendChild(header);\n\n const content = doc.createElement('div');\n content.dataset.editorRenderingSectionContent = section.id;\n content.style.cssText = 'margin-top:8px';\n const list = doc.createElement('div');\n list.style.cssText = [\n 'display:flex',\n 'flex-direction:column',\n `gap:${hasSystemGroups ? '8px' : isListLayout ? '0' : '8px'}`,\n ...(isListLayout && !hasSystemGroups ? [\n 'border:1px solid var(--fps-editor-border)',\n 'border-radius:3px',\n 'overflow:hidden',\n 'background:rgba(0,0,0,0.08)',\n ] : []),\n ].join(';');\n for (const group of systemGroups) {\n if (group.group) {\n list.appendChild(createRenderingSystemGroupBlock(\n doc,\n section.id,\n group.group,\n group.systems,\n section.layout,\n section.systemsCollapsible === true,\n ));\n continue;\n }\n for (const system of group.systems) {\n list.appendChild(createRenderingSystemBlock(\n doc,\n section.id,\n system,\n section.layout,\n section.systemsCollapsible === true,\n ));\n }\n }\n content.appendChild(list);\n block.appendChild(content);\n return block;\n}\n\ntype RenderingSystemGroupBucket = {\n key: string;\n group: LocalEditorBrowserRenderingSystem['group'] | null;\n systems: LocalEditorBrowserRenderingSystem[];\n};\n\nfunction groupRenderingSystems(\n systems: LocalEditorBrowserRenderingSystem[],\n): RenderingSystemGroupBucket[] {\n const groups: RenderingSystemGroupBucket[] = [];\n for (const system of systems) {\n const group = system.group ?? null;\n const key = group?.id ?? `system:${system.id}`;\n const activeGroup = groups[groups.length - 1];\n if (activeGroup?.key === key) {\n activeGroup.systems.push(system);\n continue;\n }\n groups.push({ key, group, systems: [system] });\n }\n return groups;\n}\n\nfunction createRenderingSystemGroupBlock(\n doc: Document,\n sectionId: string,\n group: NonNullable<LocalEditorBrowserRenderingSystem['group']>,\n systems: LocalEditorBrowserRenderingSystem[],\n layout: LocalEditorBrowserRenderingSection['layout'] = 'cards',\n systemsCollapsible = false,\n): HTMLElement {\n const isListLayout = layout === 'list';\n const block = doc.createElement('section');\n block.dataset.editorRenderingSystemGroup = group.id;\n block.style.cssText = [\n 'min-width:0',\n 'border:1px solid var(--fps-editor-border)',\n `border-left:3px solid ${getRenderingSystemGroupAccent(group.id)}`,\n 'border-radius:3px',\n 'background:rgba(0,0,0,0.08)',\n 'overflow:hidden',\n ].join(';');\n\n const header = doc.createElement('div');\n header.style.cssText = [\n 'display:flex',\n 'align-items:flex-start',\n 'justify-content:space-between',\n 'gap:8px',\n 'padding:8px',\n 'border-bottom:1px solid var(--fps-editor-divider)',\n 'background:rgba(255,255,255,0.025)',\n ].join(';');\n const title = doc.createElement('div');\n title.style.cssText = 'min-width:0;display:flex;flex-direction:column;gap:3px';\n const label = doc.createElement('div');\n label.textContent = group.label;\n label.style.cssText = [\n 'color:var(--fps-editor-text-strong)',\n 'font-size:12px',\n 'font-weight:900',\n 'line-height:1.25',\n 'min-width:0',\n 'overflow:hidden',\n 'text-overflow:ellipsis',\n 'white-space:nowrap',\n ].join(';');\n title.appendChild(label);\n if (group.summary) {\n const summary = doc.createElement('div');\n summary.textContent = group.summary;\n summary.style.cssText = [\n 'color:var(--fps-editor-muted)',\n 'font-size:10px',\n 'font-weight:700',\n 'line-height:1.35',\n 'overflow-wrap:anywhere',\n ].join(';');\n title.appendChild(summary);\n }\n header.appendChild(title);\n header.appendChild(createBadge(doc, `${systems.length}`, { compact: true }));\n block.appendChild(header);\n\n const body = doc.createElement('div');\n body.style.cssText = [\n 'display:flex',\n 'flex-direction:column',\n `gap:${isListLayout ? '0' : '8px'}`,\n isListLayout ? '' : 'padding:8px',\n ].filter(Boolean).join(';');\n systems.forEach((system, index) => {\n const systemBlock = createRenderingSystemBlock(doc, sectionId, system, layout, systemsCollapsible);\n if (isListLayout && index === systems.length - 1) systemBlock.style.borderBottom = '0';\n body.appendChild(systemBlock);\n });\n block.appendChild(body);\n return block;\n}\n\nfunction getRenderingSystemGroupAccent(groupId: string): string {\n if (groupId.includes('moving')) return 'var(--fps-editor-accent)';\n if (groupId.includes('static')) return 'var(--fps-editor-success)';\n if (groupId.includes('planar')) return 'var(--fps-editor-warn)';\n return 'var(--fps-editor-muted)';\n}\n\nfunction createRenderingSystemBlock(\n doc: Document,\n sectionId: string,\n system: LocalEditorBrowserRenderingSystem,\n layout: LocalEditorBrowserRenderingSection['layout'] = 'cards',\n collapsible = false,\n): HTMLElement {\n const isListLayout = layout === 'list';\n const block = collapsible ? doc.createElement('details') : createListItemBlock(doc);\n block.dataset.editorRenderingSystem = system.id;\n block.dataset.editorRenderingSystemKind = system.kind;\n if (collapsible) {\n const details = block as HTMLDetailsElement;\n details.open = system.collapsedByDefault !== true;\n details.style.cssText = [\n 'padding:7px 8px',\n 'border:1px solid var(--fps-editor-border-soft)',\n 'border-radius:3px',\n 'background:var(--fps-editor-panel-soft)',\n ].join(';');\n }\n if (isListLayout) {\n block.style.margin = '0';\n block.style.border = '0';\n block.style.borderRadius = '0';\n block.style.borderBottom = '1px solid var(--fps-editor-border)';\n block.style.background = 'transparent';\n block.style.padding = '8px';\n }\n const header = doc.createElement(collapsible ? 'summary' : 'div');\n header.style.cssText = [\n 'display:flex',\n 'align-items:flex-start',\n 'justify-content:space-between',\n 'gap:8px',\n 'min-width:0',\n `margin:${collapsible ? '0' : `0 0 ${isListLayout ? '6px' : '8px'}`}`,\n ...(collapsible ? [\n 'cursor:pointer',\n 'list-style:none',\n ] : []),\n ].join(';');\n const titleGroup = doc.createElement('div');\n titleGroup.style.cssText = collapsible\n ? 'display:flex;align-items:flex-start;gap:6px;min-width:0'\n : 'min-width:0';\n const title = doc.createElement('div');\n title.style.cssText = 'min-width:0;flex:1 1 auto;display:flex;flex-direction:column;gap:3px';\n const label = doc.createElement('div');\n label.textContent = system.label;\n label.style.cssText = [\n 'color:var(--fps-editor-text-strong)',\n 'font-size:12px',\n 'font-weight:900',\n 'line-height:1.25',\n 'min-width:0',\n 'overflow:hidden',\n 'text-overflow:ellipsis',\n 'white-space:nowrap',\n ].join(';');\n title.appendChild(label);\n if (system.summary) {\n const summary = doc.createElement('div');\n summary.textContent = system.summary;\n summary.style.cssText = 'color:var(--fps-editor-muted);font-size:11px;line-height:1.35';\n title.appendChild(summary);\n }\n if (collapsible) {\n titleGroup.appendChild(createRenderingDisclosureIcon(doc, block as HTMLDetailsElement, system.id, 'editorRenderingSystemDisclosure'));\n }\n titleGroup.appendChild(title);\n header.appendChild(titleGroup);\n const badges = doc.createElement('div');\n badges.style.cssText = 'display:flex;align-items:center;justify-content:flex-end;gap:4px;flex:0 0 auto;max-width:55%;flex-wrap:wrap';\n if (system.active != null) badges.appendChild(createBadge(doc, system.active ? 'ON' : 'OFF', { compact: true, tone: system.active ? 'success' : 'default' }));\n if (system.readOnly) badges.appendChild(createBadge(doc, 'READONLY', { compact: true }));\n if (system.status) badges.appendChild(createBadge(doc, system.status, { compact: true, tone: system.active === false ? 'warning' : 'default' }));\n for (const action of system.actions ?? []) {\n badges.appendChild(createRenderingActionButton(doc, action, {\n sectionId,\n systemId: system.id,\n buttonKind: 'compact',\n }));\n }\n header.appendChild(badges);\n block.appendChild(header);\n\n if (system.progress) {\n block.appendChild(createRenderingProgressBlock(doc, system.progress));\n }\n if (system.details?.length) {\n block.appendChild(createRenderingDetailsBlock(doc, system.details));\n }\n\n const propertyGrid = doc.createElement('div');\n propertyGrid.dataset.editorRenderingSystemContent = system.id;\n propertyGrid.style.cssText = [\n 'display:flex',\n 'flex-direction:column',\n `gap:${isListLayout ? '5px' : '6px'}`,\n ...(collapsible ? [\n `margin-top:${isListLayout ? '6px' : '8px'}`,\n ] : []),\n ...(isListLayout ? [\n 'padding-left:0',\n ] : []),\n ].join(';');\n for (const property of system.properties) {\n propertyGrid.appendChild(createRenderingPropertyRow(doc, sectionId, system.id, property, system.readOnly === true));\n }\n block.appendChild(propertyGrid);\n return block;\n}\n\nfunction createRenderingProgressBlock(\n doc: Document,\n progress: NonNullable<LocalEditorBrowserRenderingSystem['progress']>,\n): HTMLElement {\n const value = typeof progress.value === 'number' && Number.isFinite(progress.value)\n ? Math.max(0, Math.min(1, progress.value))\n : progress.indeterminate ? 0.42 : 0;\n const block = doc.createElement('div');\n block.dataset.editorRenderingProgress = 'true';\n block.style.cssText = [\n 'display:flex',\n 'flex-direction:column',\n 'gap:4px',\n 'margin:0 0 8px',\n ].join(';');\n const label = doc.createElement('div');\n label.textContent = progress.label;\n label.style.cssText = [\n 'color:var(--fps-editor-muted)',\n 'font-size:10px',\n 'font-weight:800',\n 'line-height:1.2',\n 'overflow:hidden',\n 'text-overflow:ellipsis',\n 'white-space:nowrap',\n ].join(';');\n const track = doc.createElement('div');\n track.style.cssText = [\n 'height:6px',\n 'border-radius:999px',\n 'border:1px solid var(--fps-editor-border)',\n 'background:rgba(0,0,0,0.22)',\n 'overflow:hidden',\n ].join(';');\n const fill = doc.createElement('div');\n fill.style.cssText = [\n `width:${Math.round(value * 100)}%`,\n 'height:100%',\n 'border-radius:999px',\n 'background:linear-gradient(90deg, var(--fps-editor-accent), var(--fps-editor-accent-strong))',\n 'transition:width 120ms linear',\n ].join(';');\n if (progress.indeterminate && progress.value == null) {\n fill.style.background = 'linear-gradient(90deg, transparent, var(--fps-editor-accent), transparent)';\n }\n track.appendChild(fill);\n block.appendChild(label);\n block.appendChild(track);\n return block;\n}\n\nfunction createRenderingDetailsBlock(\n doc: Document,\n details: NonNullable<LocalEditorBrowserRenderingSystem['details']>,\n): HTMLElement {\n const block = doc.createElement('div');\n block.dataset.editorRenderingDetails = 'true';\n block.style.cssText = [\n 'display:grid',\n 'grid-template-columns:repeat(2,minmax(0,1fr))',\n 'gap:4px',\n 'margin:0 0 8px',\n ].join(';');\n for (const detail of details) {\n const item = doc.createElement('div');\n item.style.cssText = [\n 'min-width:0',\n 'padding:5px 6px',\n 'border:1px solid var(--fps-editor-border)',\n 'border-radius:3px',\n 'background:rgba(0,0,0,0.12)',\n ].join(';');\n const label = doc.createElement('div');\n label.textContent = detail.label;\n label.style.cssText = [\n 'color:var(--fps-editor-muted)',\n 'font-size:9px',\n 'font-weight:800',\n 'line-height:1.1',\n 'overflow:hidden',\n 'text-overflow:ellipsis',\n 'white-space:nowrap',\n ].join(';');\n const value = doc.createElement('div');\n value.textContent = detail.value;\n value.style.cssText = [\n `color:${detail.tone === 'warning' ? 'var(--fps-editor-warn)' : detail.tone === 'error' ? 'var(--fps-editor-danger-text)' : detail.tone === 'success' ? 'var(--fps-editor-success)' : 'var(--fps-editor-text-strong)'}`,\n 'font-size:11px',\n 'font-weight:900',\n 'line-height:1.25',\n 'margin-top:2px',\n 'overflow:hidden',\n 'text-overflow:ellipsis',\n 'white-space:nowrap',\n ].join(';');\n item.appendChild(label);\n item.appendChild(value);\n block.appendChild(item);\n }\n return block;\n}\n\nfunction createRenderingDisclosureIcon(\n doc: Document,\n block: HTMLDetailsElement,\n id: string,\n datasetKey: 'editorRenderingSectionDisclosure' | 'editorRenderingSystemDisclosure',\n): HTMLSpanElement {\n const disclosure = doc.createElement('span');\n disclosure.dataset[datasetKey] = id;\n disclosure.style.cssText = [\n 'display:inline-flex',\n 'align-items:center',\n 'justify-content:center',\n 'width:14px',\n 'height:14px',\n 'margin-top:1px',\n 'flex:0 0 auto',\n 'color:var(--fps-editor-muted)',\n ].join(';');\n const syncDisclosureIcon = () => {\n clearElement(disclosure);\n disclosure.appendChild(createLocalEditorIcon(doc, block.open ? 'chevron-down' : 'chevron-right', {\n size: 14,\n strokeWidth: 2.4,\n }));\n };\n block.addEventListener('toggle', syncDisclosureIcon);\n syncDisclosureIcon();\n return disclosure;\n}\n\nfunction createRenderingPropertyRow(\n doc: Document,\n sectionId: string,\n systemId: string,\n property: LocalEditorBrowserRenderingProperty,\n systemReadOnly: boolean,\n): HTMLElement {\n const inspectorProperty = createInspectorPropertyFromRenderingProperty(property, systemReadOnly);\n let control = createRenderingPropertyControl(doc, sectionId, systemId, property, inspectorProperty);\n if (property.actions?.length) {\n const controlWithActions = doc.createElement('div');\n controlWithActions.style.cssText = 'display:flex;align-items:center;gap:5px;min-width:0';\n control.style.minWidth = '0';\n control.style.flex = '1 1 auto';\n controlWithActions.appendChild(control);\n for (const action of property.actions) {\n controlWithActions.appendChild(createRenderingActionButton(doc, action, {\n sectionId,\n systemId,\n path: property.path,\n buttonKind: 'icon',\n }));\n }\n control = controlWithActions;\n }\n const access = getInspectorPropertyAccess(inspectorProperty);\n const effect = getInspectorPropertyEffect(inspectorProperty);\n const row = createPropertyRow(doc, inspectorProperty.label, control);\n row.dataset.editorInspectorAccess = access;\n row.dataset.editorInspectorEffect = effect;\n row.title = createInspectorStatusTitle(access, effect, inspectorProperty.tooltip ?? inspectorProperty.disabledReason);\n row.dataset.editorTooltip = row.title;\n const label = row.firstElementChild as HTMLElement | null;\n if (label) label.style.cssText = createInspectorPropertyLabelStyle(access, effect);\n return row;\n}\n\nfunction createRenderingPropertyControl(\n doc: Document,\n sectionId: string,\n systemId: string,\n property: LocalEditorBrowserRenderingProperty,\n inspectorProperty: LocalEditorBrowserInspectorProperty,\n): HTMLElement {\n const target = createRenderingInspectorTarget(systemId);\n if (isInspectorPropertyEditable(inspectorProperty) && property.control === 'string-list') {\n return createRenderingStringListControl(doc, sectionId, systemId, property, inspectorProperty);\n }\n if (property.control === 'asset-picker-card') {\n return createInspectorAssetPickerCardControl(doc, target, inspectorProperty, (input) => {\n bindRenderingControl(input, sectionId, systemId, property, 'asset-picker-card');\n input.dataset.renderingEditSource = 'asset';\n });\n }\n let control = renderInspectorControl(\n doc,\n builtinInspectorControlRegistrations as readonly LocalEditorBrowserInspectorControlRegistration[],\n target,\n inspectorProperty,\n );\n bindRenderedInspectorControlsToRendering(control, sectionId, systemId, property);\n if (property.unit && isInspectorPropertyEditable(inspectorProperty) && property.control === 'number') {\n const wrapper = doc.createElement('div');\n wrapper.style.cssText = 'display:flex;align-items:center;gap:6px;min-width:0';\n control.style.minWidth = '0';\n control.style.flex = '1 1 auto';\n wrapper.appendChild(control);\n wrapper.appendChild(createPropertyUnitLabel(doc, property.unit));\n return wrapper;\n }\n return control;\n}\n\nfunction bindRenderingControl(\n element: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement,\n sectionId: string,\n systemId: string,\n property: LocalEditorBrowserRenderingProperty,\n control: LocalEditorBrowserRenderingPropertyControlKind,\n): void {\n element.dataset.editorRenderingProperty = 'true';\n element.dataset.renderingSectionId = sectionId;\n element.dataset.renderingSystemId = systemId;\n element.dataset.renderingPath = property.path;\n element.dataset.renderingControl = control;\n element.dataset.renderingValueType = property.valueType;\n element.dataset.renderingCommitMode = property.commitMode ?? (control === 'string-list' ? 'blur' : 'live');\n if (property.disabled) {\n element.disabled = true;\n element.title = property.disabledReason ?? '';\n }\n}\n\nfunction createInspectorPropertyFromRenderingProperty(\n property: LocalEditorBrowserRenderingProperty,\n systemReadOnly: boolean,\n): LocalEditorBrowserInspectorProperty {\n const readOnly = systemReadOnly || property.readOnly === true || property.control === 'readonly' || property.disabled === true;\n return {\n path: property.path,\n label: property.label,\n valueType: property.valueType === 'string-list' ? 'string' : property.valueType,\n control: property.control === 'asset-picker-card'\n ? readOnly ? 'readonly' : 'custom'\n : property.control === 'string-list'\n ? readOnly ? 'readonly' : 'string'\n : property.control,\n customControl: property.control === 'asset-picker-card' ? 'asset-picker-card' : undefined,\n value: property.value,\n readOnly,\n persistence: readOnly ? 'readonly' : 'document',\n commitMode: property.commitMode ?? (property.control === 'string-list' ? 'blur' : 'live'),\n tooltip: property.tooltip,\n effect: property.disabled ? 'unsupported' : undefined,\n disabledReason: property.disabledReason,\n placeholder: property.placeholder,\n min: property.min,\n max: property.max,\n step: property.step,\n options: property.options,\n controlOptions: property.controlOptions,\n tags: property.tags,\n };\n}\n\nfunction createRenderingInspectorTarget(systemId: string): LocalEditorBrowserInspectorObject {\n return {\n targetIds: [systemId],\n activeId: systemId,\n selection: {\n targetIds: [systemId],\n activeId: systemId,\n targetKind: 'rendering-system',\n },\n sections: [],\n };\n}\n\nfunction bindRenderedInspectorControlsToRendering(\n control: HTMLElement,\n sectionId: string,\n systemId: string,\n property: LocalEditorBrowserRenderingProperty,\n): void {\n const fields = control.matches('input, textarea, select')\n ? [control]\n : Array.from(control.querySelectorAll('input, textarea, select'));\n for (const field of fields) {\n if (!(field instanceof HTMLInputElement || field instanceof HTMLTextAreaElement || field instanceof HTMLSelectElement)) continue;\n bindRenderingControl(field, sectionId, systemId, property, property.control);\n }\n}\n\nfunction createRenderingStringListControl(\n doc: Document,\n sectionId: string,\n systemId: string,\n property: LocalEditorBrowserRenderingProperty,\n inspectorProperty: LocalEditorBrowserInspectorProperty,\n): HTMLTextAreaElement {\n const input = doc.createElement('textarea');\n input.value = Array.isArray(property.value) ? property.value.map(String).join('\\n') : String(property.value ?? '');\n input.placeholder = property.placeholder ?? 'One pattern per line';\n input.rows = 3;\n input.style.cssText = [\n createInspectorInputStyle(),\n 'height:auto',\n 'min-height:66px',\n 'resize:vertical',\n 'padding:6px 8px',\n 'line-height:1.35',\n ].join(';');\n input.title = inspectorProperty.tooltip ?? inspectorProperty.label;\n input.dataset.editorTooltip = input.title;\n bindRenderingControl(input, sectionId, systemId, property, 'string-list');\n return input;\n}\n\nfunction createPropertyUnitLabel(doc: Document, unit: string): HTMLElement {\n const label = doc.createElement('span');\n label.textContent = unit;\n label.style.cssText = 'flex:0 0 auto;color:var(--fps-editor-muted);font-size:10px;font-weight:800';\n return label;\n}\n\nfunction createHeadingLabel(doc: Document, text: string): HTMLSpanElement {\n const label = doc.createElement('span');\n label.textContent = text;\n label.style.cssText = 'min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap';\n return label;\n}\n\nfunction renderAssetBrowserContent<TDocument>(\n doc: Document,\n panel: HTMLElement,\n state: LocalEditorBrowserUiState<TDocument>,\n variant: 'list' | 'grid' = 'list',\n activeTab: LocalEditorAssetBrowserTab = 'all',\n): void {\n configureLocalEditorDockPanelContent(panel);\n const title = doc.createElement('h2');\n title.style.cssText = 'display:flex;align-items:center;gap:6px;font-size:13px;margin:0 0 8px;font-weight:800;color:var(--fps-editor-text-strong)';\n title.appendChild(createLocalEditorIcon(doc, 'asset'));\n title.appendChild(createHeadingLabel(doc, '资产浏览器'));\n panel.appendChild(title);\n\n appendAssetBrowserTabs(doc, panel, state, activeTab);\n if (activeTab === 'materials') {\n const createMaterialButton = createToolbarButton(doc, '+ 材质', 'asset');\n createMaterialButton.dataset.editorCreateMaterialAsset = 'true';\n createMaterialButton.title = '新建项目材质';\n createMaterialButton.style.cssText = [\n 'height:28px',\n 'margin:0 0 8px',\n 'padding:0 10px',\n 'font-size:12px',\n 'font-weight:800',\n 'align-self:flex-start',\n ].join(';');\n panel.appendChild(createMaterialButton);\n }\n\n const filter = doc.createElement('input');\n filter.type = 'search';\n filter.placeholder = '筛选资产';\n filter.value = state.assetFilter;\n filter.dataset.editorAssetFilter = 'true';\n filter.style.cssText = [\n 'width:100%',\n 'height:28px',\n 'border:1px solid var(--fps-editor-border)',\n 'border-radius:3px',\n 'background:var(--fps-editor-field)',\n 'color:var(--fps-editor-text)',\n 'font-size:12px',\n 'padding:0 8px',\n 'margin:0 0 8px',\n ].join(';');\n panel.appendChild(filter);\n\n const tabAssets = filterAssetsByBrowserTab(state.assets, activeTab);\n const normalizedFilter = state.assetFilter.trim().toLowerCase();\n const filteredAssets = tabAssets\n .filter((asset) => {\n if (!normalizedFilter) return true;\n return [\n asset.id,\n asset.assetId ?? '',\n asset.guid ?? '',\n asset.kind ?? '',\n asset.label,\n asset.meta ?? '',\n asset.external?.platformAssetId ?? '',\n asset.external?.assetPath ?? '',\n asset.external?.assetUrl ?? '',\n ]\n .some(value => value.toLowerCase().includes(normalizedFilter));\n })\n .slice(0, 80);\n\n const count = doc.createElement('div');\n const activeTabLabel = ASSET_BROWSER_TABS.find(tab => tab.id === activeTab)?.label ?? '资产';\n count.textContent = activeTab === 'all' && state.assetCountLabel\n ? `${filteredAssets.length} / ${state.assetCountLabel}`\n : `${filteredAssets.length} / ${tabAssets.length} 个${activeTabLabel}资产`;\n count.style.cssText = 'color:var(--fps-editor-muted);font-size:11px;margin-bottom:6px';\n panel.appendChild(count);\n\n const list = createAssetList(doc, variant === 'grid');\n list.dataset.editorAssetBrowserList = 'true';\n list.style.overflow = 'visible';\n list.style.paddingRight = '0';\n for (const asset of filteredAssets) {\n const selected = state.selectedAssetId === asset.id;\n const hasPreview = !!asset.preview;\n const button = doc.createElement('button');\n button.type = 'button';\n button.dataset.editorAssetId = asset.id;\n button.disabled = asset.disabled ?? false;\n button.setAttribute('aria-selected', selected ? 'true' : 'false');\n button.style.cssText = [\n 'width:100%',\n `min-height:${variant === 'grid' ? (hasPreview ? '66px' : '48px') : (hasPreview ? '38px' : '32px')}`,\n 'text-align:left',\n `padding:${hasPreview ? '7px 8px' : '6px 8px'}`,\n `border:1px solid ${selected ? 'var(--fps-editor-accent-strong)' : 'var(--fps-editor-border)'}`,\n 'border-radius:3px',\n `background:${selected ? 'var(--fps-editor-accent-soft)' : 'var(--fps-editor-asset-card-bg)'}`,\n 'color:var(--fps-editor-text)',\n 'display:flex',\n 'align-items:center',\n 'gap:8px',\n 'font-size:12px',\n asset.disabled ? 'cursor:not-allowed' : 'cursor:pointer',\n asset.disabled ? 'opacity:0.72' : '',\n ].join(';');\n\n const preview = createAssetPreviewElement(doc, asset, variant);\n const body = doc.createElement('div');\n body.style.cssText = 'min-width:0;flex:1';\n const label = doc.createElement('div');\n label.textContent = asset.label;\n label.style.cssText = 'font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap';\n const meta = doc.createElement('div');\n meta.textContent = asset.meta ?? asset.id;\n meta.style.cssText = 'color:var(--fps-editor-muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap';\n body.appendChild(label);\n body.appendChild(meta);\n button.appendChild(preview);\n button.appendChild(body);\n list.appendChild(button);\n }\n if (filteredAssets.length === 0) {\n list.appendChild(createEmptyState(doc, normalizedFilter ? '没有匹配的资产。' : '暂无该类型资产。'));\n }\n const viewport = createLocalEditorDockPanelViewport(doc, 'editorAssetBrowserScrollViewport');\n viewport.appendChild(list);\n panel.appendChild(viewport);\n}\n\nexport function createAssetPreviewElement(\n doc: Document,\n asset: LocalEditorBrowserUiAssetItem,\n variant: LocalEditorAssetPreviewVariant,\n): HTMLElement {\n const size = variant === 'modal' ? 220 : variant === 'grid' ? 46 : 24;\n const preview = asset.preview;\n if (!preview) {\n const kind = resolveLocalEditorBrowserAssetKind(asset);\n const icon = kind === 'prefab'\n ? 'prefab'\n : kind === 'material'\n ? 'material-slot'\n : kind === 'texture'\n ? 'asset'\n : 'object';\n return createLocalEditorIcon(doc, icon, { size: variant === 'grid' ? 18 : 16 });\n }\n\n const frame = doc.createElement('div');\n frame.style.cssText = [\n `width:${size}px`,\n `height:${size}px`,\n `flex:0 0 ${size}px`,\n 'display:flex',\n 'align-items:center',\n 'justify-content:center',\n 'overflow:hidden',\n 'border:1px solid var(--fps-editor-border)',\n `border-radius:${variant === 'modal' ? '6px' : '3px'}`,\n 'background:var(--fps-editor-field)',\n 'box-sizing:border-box',\n ].join(';');\n\n if (preview.kind === 'image') {\n const image = doc.createElement('img');\n image.src = preview.url;\n image.alt = preview.alt ?? asset.label;\n image.loading = 'lazy';\n image.style.cssText = [\n 'width:100%',\n 'height:100%',\n `object-fit:${preview.fit ?? 'cover'}`,\n 'display:block',\n ].join(';');\n frame.appendChild(image);\n return frame;\n }\n\n const sphere = doc.createElement('div');\n const metallic = clamp01(preview.metallic ?? 0);\n const roughness = clamp01(preview.roughness ?? 0.55);\n const emissionIntensity = clampNumber(preview.emissionIntensity ?? 0, 0, 8);\n const baseColor = formatAssetPreviewColor(preview.baseColor, '#8f9aa8');\n const emissionColor = formatAssetPreviewColor(preview.emissionColor, '#ffffff');\n sphere.style.cssText = [\n 'position:relative',\n 'width:82%',\n 'height:82%',\n 'overflow:hidden',\n 'border-radius:999px',\n `background:${baseColor}`,\n 'border:1px solid rgba(255,255,255,0.22)',\n 'box-shadow:' + [\n `inset -5px -7px 12px rgba(0,0,0,${(0.26 + roughness * 0.14).toFixed(2)})`,\n `inset 5px 5px 10px rgba(255,255,255,${(0.12 + metallic * 0.2).toFixed(2)})`,\n emissionIntensity > 0 ? `0 0 ${Math.round(6 + emissionIntensity * 5)}px ${emissionColor}` : '0 1px 2px rgba(0,0,0,0.4)',\n ].join(','),\n ].join(';');\n\n if (preview.textureUrl) {\n const image = doc.createElement('img');\n image.src = preview.textureUrl;\n image.alt = '';\n image.style.cssText = [\n 'position:absolute',\n 'inset:0',\n 'width:100%',\n 'height:100%',\n 'object-fit:cover',\n 'opacity:0.62',\n 'mix-blend-mode:multiply',\n ].join(';');\n sphere.appendChild(image);\n }\n\n const shading = doc.createElement('div');\n const highlightAlpha = clampNumber(0.86 - roughness * 0.48 + metallic * 0.12, 0.25, 0.92);\n const highlightEnd = Math.round(9 + roughness * 12);\n const shadowAlpha = clampNumber(0.28 + roughness * 0.14 + metallic * 0.16, 0.2, 0.62);\n const rimAlpha = clampNumber(0.12 + metallic * 0.36, 0.08, 0.52);\n shading.style.cssText = [\n 'position:absolute',\n 'inset:0',\n 'border-radius:inherit',\n 'pointer-events:none',\n 'background:' + [\n `radial-gradient(circle at 31% 23%, rgba(255,255,255,${highlightAlpha.toFixed(2)}) 0 ${highlightEnd}%, rgba(255,255,255,0) ${highlightEnd + 17}%)`,\n `radial-gradient(circle at 70% 82%, rgba(0,0,0,${shadowAlpha.toFixed(2)}) 0 26%, rgba(0,0,0,0) 58%)`,\n `radial-gradient(circle at 82% 22%, rgba(255,255,255,${rimAlpha.toFixed(2)}) 0 9%, rgba(255,255,255,0) 36%)`,\n `linear-gradient(135deg, rgba(255,255,255,${(0.08 + metallic * 0.16).toFixed(2)}), rgba(0,0,0,${(0.12 + roughness * 0.1).toFixed(2)}))`,\n ].join(','),\n ].join(';');\n sphere.appendChild(shading);\n frame.appendChild(sphere);\n return frame;\n}\n\nfunction formatAssetPreviewColor(\n value: LocalEditorBrowserAssetPreviewColorValue | undefined,\n fallback: string,\n): string {\n if (!value) return fallback;\n if (typeof value === 'string') return value;\n const r = normalizeAssetPreviewColorChannel(value.r);\n const g = normalizeAssetPreviewColorChannel(value.g);\n const b = normalizeAssetPreviewColorChannel(value.b);\n if (value.a === undefined) return `rgb(${r}, ${g}, ${b})`;\n return `rgba(${r}, ${g}, ${b}, ${clampNumber(value.a, 0, 1)})`;\n}\n\nfunction normalizeAssetPreviewColorChannel(value: number): number {\n if (!Number.isFinite(value)) return 0;\n return Math.round(clampNumber(value >= 0 && value <= 1 ? value * 255 : value, 0, 255));\n}\n\nfunction clamp01(value: number): number {\n return clampNumber(value, 0, 1);\n}\n\nfunction clampNumber(value: number, min: number, max: number): number {\n if (!Number.isFinite(value)) return min;\n return Math.min(max, Math.max(min, value));\n}\n\nfunction appendAssetBrowserTabs<TDocument>(\n doc: Document,\n panel: HTMLElement,\n state: LocalEditorBrowserUiState<TDocument>,\n activeTab: LocalEditorAssetBrowserTab,\n): void {\n const tabs = doc.createElement('div');\n tabs.style.cssText = [\n 'display:flex',\n 'align-items:center',\n 'gap:4px',\n 'margin:0 0 8px',\n 'min-height:26px',\n ].join(';');\n for (const tab of ASSET_BROWSER_TABS) {\n const button = doc.createElement('button');\n button.type = 'button';\n button.dataset.editorAssetBrowserTab = tab.id;\n button.title = tab.title;\n const active = activeTab === tab.id;\n const count = filterAssetsByBrowserTab(state.assets, tab.id).length;\n button.textContent = `${tab.label} ${count}`;\n button.style.cssText = [\n 'height:24px',\n 'padding:0 8px',\n 'border:1px solid var(--fps-editor-border)',\n 'border-radius:3px',\n `background:${active ? 'var(--fps-editor-accent)' : 'var(--fps-editor-button-bg)'}`,\n `color:${active ? 'var(--fps-editor-text-strong)' : 'var(--fps-editor-muted)'}`,\n 'font-size:11px',\n 'font-weight:800',\n 'cursor:pointer',\n ].join(';');\n tabs.appendChild(button);\n }\n panel.appendChild(tabs);\n}\n\nfunction filterAssetsByBrowserTab(\n assets: readonly LocalEditorBrowserUiAssetItem[],\n tab: LocalEditorAssetBrowserTab,\n): LocalEditorBrowserUiAssetItem[] {\n if (tab === 'all') return [...assets];\n return assets.filter(asset => resolveLocalEditorAssetBrowserTab(asset) === tab);\n}\n\nfunction renderHistoryPanel(\n doc: Document,\n panel: HTMLElement,\n history: LocalEditorBrowserHistoryView | null,\n): void {\n configureLocalEditorDockPanelContent(panel);\n const title = doc.createElement('h2');\n const entries = history?.entries ?? [];\n title.style.cssText = 'display:flex;align-items:center;gap:6px;font-size:13px;margin:0 0 8px;font-weight:800;color:var(--fps-editor-text-strong)';\n title.appendChild(createLocalEditorIcon(doc, 'history'));\n title.appendChild(createHeadingLabel(doc, `历史记录 (${entries.length})`));\n panel.appendChild(title);\n const viewport = createLocalEditorDockPanelViewport(doc, 'editorHistoryScrollViewport');\n appendHistoryEntries(doc, viewport, entries);\n panel.appendChild(viewport);\n}\n\nfunction appendHistoryEntries(\n doc: Document,\n panel: HTMLElement,\n entries: LocalEditorBrowserHistoryEntry[],\n): void {\n if (entries.length === 0) {\n panel.appendChild(createEmptyState(doc, '暂无文档修改。'));\n return;\n }\n const list = doc.createElement('div');\n list.style.cssText = 'display:flex;flex-direction:column;gap:4px';\n for (const entry of entries) {\n const item = createListItemBlock(doc);\n const label = doc.createElement('div');\n label.textContent = entry.label;\n label.style.cssText = 'font-size:12px;font-weight:900;color:var(--fps-editor-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap';\n const meta = doc.createElement('div');\n meta.textContent = `${formatHistoryTimestamp(entry.createdAt)} · ${entry.commandType}`;\n meta.style.cssText = 'font-size:11px;color:var(--fps-editor-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap';\n item.appendChild(label);\n item.appendChild(meta);\n list.appendChild(item);\n }\n panel.appendChild(list);\n}\n\nfunction formatHistoryTimestamp(createdAt: number): string {\n if (!Number.isFinite(createdAt)) return '';\n const date = new Date(createdAt);\n const pad = (value: number) => String(value).padStart(2, '0');\n return [\n date.getFullYear(),\n '-',\n pad(date.getMonth() + 1),\n '-',\n pad(date.getDate()),\n ' ',\n pad(date.getHours()),\n ':',\n pad(date.getMinutes()),\n ':',\n pad(date.getSeconds()),\n ].join('');\n}\n\nexport function renderInspectorPanel<TDocument>(\n doc: Document,\n panel: HTMLElement,\n state: LocalEditorBrowserUiState<TDocument>,\n filter = '',\n options: LocalEditorBrowserInspectorRenderOptions<TDocument> = {},\n): void {\n const renderSnapshot = captureInspectorPanelRenderSnapshot(doc, panel);\n clearElement(panel);\n configureLocalEditorDockPanelContent(panel);\n const title = doc.createElement('h2');\n title.style.cssText = 'display:flex;align-items:center;gap:6px;font-size:13px;margin:-8px -8px 8px;padding:7px 8px;border-bottom:1px solid var(--fps-editor-divider);background:var(--fps-editor-chrome-dark);font-weight:800;color:var(--fps-editor-text-strong)';\n title.appendChild(createLocalEditorIcon(doc, 'inspector'));\n title.appendChild(createHeadingLabel(doc, options.title ?? 'Inspector'));\n panel.appendChild(title);\n\n const search = createInspectorSearchInput(doc, filter);\n panel.appendChild(search);\n const viewport = createLocalEditorDockPanelViewport(doc, 'editorInspectorScrollViewport');\n\n const selectionCount = state.selectionSummary?.count ?? state.selectedIds.length;\n const inspectorObject = selectionCount > 1\n ? state.inspectorMultiObject ?? createSelectionSummaryInspectorObject(state)\n : state.inspectorObject;\n if (!inspectorObject) {\n const empty = doc.createElement('div');\n empty.textContent = options.emptyText ?? '请从层级树或 Scene View 中选择一个 GameObject 或 Marker。';\n empty.style.cssText = 'color:var(--fps-editor-muted);line-height:1.45';\n viewport.appendChild(empty);\n panel.appendChild(viewport);\n restoreInspectorPanelRenderSnapshot(panel, renderSnapshot);\n return;\n }\n\n const controlRegistry = createLocalEditorBrowserInspectorControlRegistry(options.controls, options.controlConflict);\n appendInspectorSummary(doc, viewport, inspectorObject, selectionCount, options.summaryTitle);\n const visibleSections = filterInspectorSections(\n inspectorObject.sections.filter(section => section.placement !== 'summary'),\n filter,\n );\n if (visibleSections.length === 0) {\n if (!filter.trim() && inspectorObject.sections.length === 0) {\n panel.appendChild(viewport);\n restoreInspectorPanelRenderSnapshot(panel, renderSnapshot);\n return;\n }\n const empty = doc.createElement('div');\n empty.textContent = '没有匹配的 Inspector 字段。';\n empty.style.cssText = 'color:var(--fps-editor-muted);line-height:1.45';\n viewport.appendChild(empty);\n panel.appendChild(viewport);\n restoreInspectorPanelRenderSnapshot(panel, renderSnapshot);\n return;\n }\n\n for (const section of visibleSections) {\n viewport.appendChild(createInspectorSectionBlock(doc, inspectorObject, section, controlRegistry, options));\n }\n panel.appendChild(viewport);\n restoreInspectorPanelRenderSnapshot(panel, renderSnapshot);\n}\n\ninterface InspectorPanelRenderSnapshot {\n preserveScroll: boolean;\n scrollTop: number;\n scrollLeft: number;\n}\n\nfunction captureInspectorPanelRenderSnapshot(doc: Document, panel: HTMLElement): InspectorPanelRenderSnapshot {\n const activeElement = doc.activeElement;\n const elementConstructor = doc.defaultView?.HTMLElement;\n const scrollContainer = panel.querySelector<HTMLElement>('[data-editor-inspector-scroll-viewport]') ?? panel;\n return {\n preserveScroll: !!activeElement\n && (elementConstructor ? activeElement instanceof elementConstructor : activeElement instanceof HTMLElement)\n && panel.contains(activeElement),\n scrollTop: scrollContainer.scrollTop,\n scrollLeft: scrollContainer.scrollLeft,\n };\n}\n\nfunction restoreInspectorPanelRenderSnapshot(panel: HTMLElement, snapshot: InspectorPanelRenderSnapshot): void {\n if (!snapshot.preserveScroll) return;\n const scrollContainer = panel.querySelector<HTMLElement>('[data-editor-inspector-scroll-viewport]') ?? panel;\n scrollContainer.scrollTop = snapshot.scrollTop;\n scrollContainer.scrollLeft = snapshot.scrollLeft;\n}\n\nfunction createInspectorSearchInput(doc: Document, value: string): HTMLInputElement {\n const input = doc.createElement('input');\n input.dataset.editorInspectorSearch = 'true';\n input.value = value;\n input.placeholder = 'Search...';\n input.style.cssText = [\n createEditorInputStyle(),\n 'width:100%',\n 'height:30px',\n 'margin:0 0 8px',\n 'outline:none',\n ].join(';');\n return input;\n}\n\nfunction appendInspectorSummary<TDocument>(\n doc: Document,\n panel: HTMLElement,\n inspectorObject: LocalEditorBrowserInspectorObject<TDocument>,\n selectionCount: number,\n summaryTitle?: string,\n): void {\n const block = createInspectorComponentBlock(doc);\n const header = doc.createElement('div');\n header.style.cssText = 'display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px';\n const title = doc.createElement('h3');\n const targetKind = inspectorObject.selection.targetKind;\n const markerLike = targetKind === 'marker' || targetKind === 'marker-graph';\n title.textContent = summaryTitle ?? (selectionCount > 1\n ? markerLike ? 'Markers' : 'Selection'\n : targetKind === 'marker-graph' ? 'Marker Graph' : targetKind === 'marker' ? 'Marker' : 'GameObject');\n title.style.cssText = 'font-size:12px;margin:0;font-weight:900;color:var(--fps-editor-text-strong)';\n header.appendChild(title);\n header.appendChild(createInspectorAccessBadge(doc, 'readonly'));\n block.appendChild(header);\n appendReadOnlyRow(\n doc,\n block,\n selectionCount > 1 ? 'Selected' : targetKind === 'marker' ? 'Label' : 'Name',\n inspectorObject.label ?? inspectorObject.activeId ?? inspectorObject.targetIds[0] ?? '无',\n );\n appendReadOnlyRow(doc, block, 'Active ID', inspectorObject.activeId ?? '无');\n if (selectionCount > 1) appendReadOnlyRow(doc, block, 'Count', String(selectionCount));\n panel.appendChild(block);\n}\n\nfunction filterInspectorSections<TDocument>(\n sections: LocalEditorBrowserInspectorSection<TDocument>[],\n filter: string,\n): LocalEditorBrowserInspectorSection<TDocument>[] {\n const needle = filter.trim().toLowerCase();\n if (!needle) return sections;\n return sections\n .map(section => ({\n ...section,\n properties: section.properties.filter(property => inspectorPropertyMatches(section, property, needle)),\n }))\n .filter(section => section.properties.length > 0 || inspectorSectionMatches(section, needle));\n}\n\nfunction inspectorSectionMatches<TDocument>(\n section: LocalEditorBrowserInspectorSection<TDocument>,\n needle: string,\n): boolean {\n return [section.id, section.title, section.summary ?? '', ...(section.tags ?? [])]\n .some(value => value.toLowerCase().includes(needle));\n}\n\nfunction inspectorPropertyMatches<TDocument>(\n section: LocalEditorBrowserInspectorSection<TDocument>,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n needle: string,\n): boolean {\n return inspectorSectionMatches(section, needle)\n || [property.path, property.label, property.control, property.valueType, ...(property.tags ?? [])]\n .some(value => String(value).toLowerCase().includes(needle));\n}\n\nfunction createInspectorSectionBlock<TDocument>(\n doc: Document,\n inspectorObject: LocalEditorBrowserInspectorObject<TDocument>,\n section: LocalEditorBrowserInspectorSection<TDocument>,\n controlRegistry: readonly LocalEditorBrowserInspectorControlRegistration<TDocument>[],\n options: LocalEditorBrowserInspectorRenderOptions<TDocument>,\n): HTMLDetailsElement {\n const block = doc.createElement('details');\n block.dataset.editorInspectorSection = section.id;\n block.open = section.collapsedByDefault !== true;\n const status = resolveLocalEditorBrowserInspectorSectionStatus(section);\n const { access, effect } = status;\n block.dataset.editorInspectorAccess = access;\n block.dataset.editorInspectorEffect = effect;\n block.style.cssText = createInspectorBlockStyle(access, effect);\n const sectionTitle = doc.createElement('summary');\n sectionTitle.style.cssText = [\n 'font-size:12px',\n 'margin:-2px 0 8px',\n 'font-weight:900',\n 'color:var(--fps-editor-text-strong)',\n 'display:flex',\n 'align-items:center',\n 'justify-content:space-between',\n 'gap:8px',\n 'cursor:pointer',\n 'list-style:none',\n ].join(';');\n const label = doc.createElement('span');\n label.textContent = section.title;\n sectionTitle.appendChild(label);\n const meta = doc.createElement('span');\n meta.style.cssText = 'display:flex;align-items:center;gap:6px;min-width:0;color:var(--fps-editor-muted);font-size:10px;text-transform:uppercase;letter-spacing:0';\n if (section.summary) {\n const summary = doc.createElement('span');\n summary.textContent = section.summary;\n summary.style.cssText = 'overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:none;font-size:11px';\n meta.appendChild(summary);\n }\n const badge = createInspectorAccessBadge(doc, access);\n badge.style.flex = '0 0 auto';\n meta.appendChild(badge);\n const effectBadge = createInspectorEffectBadge(doc, effect, section.disabledReason);\n if (effectBadge && status.showEffectBadge) {\n effectBadge.style.flex = '0 0 auto';\n meta.appendChild(effectBadge);\n }\n sectionTitle.appendChild(meta);\n block.appendChild(sectionTitle);\n const content = doc.createElement('div');\n content.dataset.editorInspectorSectionContent = section.id;\n for (const group of groupInspectorProperties(section.properties)) {\n if (group.kind === 'vector') appendInspectorVectorInputs(doc, content, inspectorObject, group.label, group.properties, group.layout, options);\n else appendInspectorPropertyRow(doc, content, inspectorObject, group.property, controlRegistry);\n }\n block.appendChild(content);\n return block;\n}\n\nfunction createInspectorComponentBlock(doc: Document): HTMLDivElement {\n const block = doc.createElement('div');\n block.dataset.editorInspectorAccess = 'readonly';\n block.dataset.editorInspectorEffect = 'active';\n block.style.cssText = createInspectorBlockStyle('readonly', 'active');\n return block;\n}\n\nexport type LocalEditorBrowserInspectorAccessMode = 'editable' | 'mixed' | 'readonly' | 'runtime';\n\nexport interface LocalEditorBrowserInspectorSectionStatus {\n access: LocalEditorBrowserInspectorAccessMode;\n effect: LocalEditorBrowserInspectorEffectMode;\n showEffectBadge: boolean;\n}\n\ntype InspectorAccessMode = LocalEditorBrowserInspectorAccessMode;\n\nexport function resolveLocalEditorBrowserInspectorSectionStatus<TDocument>(\n section: LocalEditorBrowserInspectorSection<TDocument>,\n): LocalEditorBrowserInspectorSectionStatus {\n const access = getInspectorSectionAccess(section);\n const effect = getInspectorSectionEffect(section);\n return {\n access,\n effect,\n showEffectBadge: effect !== 'active'\n && !(access === 'runtime' && effect === 'runtime')\n && !(effect === 'default' && inspectorSummaryLooksDefault(section.summary)),\n };\n}\n\nfunction createInspectorBlockStyle(\n _access: InspectorAccessMode,\n _effect: LocalEditorBrowserInspectorEffectMode = 'active',\n): string {\n return [\n 'margin:0 0 8px',\n 'padding:9px',\n 'border:1px solid var(--fps-editor-inspector-section-border, var(--fps-editor-border))',\n 'border-radius:3px',\n 'background:var(--fps-editor-panel-soft)',\n ].join(';');\n}\n\nfunction isInspectorPropertyEditable<TDocument>(property: LocalEditorBrowserInspectorProperty<TDocument>): boolean {\n return property.readOnly !== true\n && property.persistence === 'document'\n && getInspectorPropertyEffect(property) === 'active';\n}\n\nfunction getInspectorPropertyAccess<TDocument>(property: LocalEditorBrowserInspectorProperty<TDocument>): InspectorAccessMode {\n if (property.persistence === 'runtime') return 'runtime';\n if (getInspectorPropertyEffect(property) === 'runtime') return 'runtime';\n return isInspectorPropertyEditable(property) ? 'editable' : 'readonly';\n}\n\nfunction getInspectorSectionAccess<TDocument>(section: LocalEditorBrowserInspectorSection<TDocument>): InspectorAccessMode {\n if (section.runtimeOnly || section.persistence === 'runtime' || getInspectorSectionEffect(section) === 'runtime') return 'runtime';\n const editableCount = section.properties.filter(isInspectorPropertyEditable).length;\n if (editableCount === 0) return 'readonly';\n if (editableCount === section.properties.length) return 'editable';\n return 'mixed';\n}\n\nfunction getInspectorPropertyEffect<TDocument>(\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): LocalEditorBrowserInspectorEffectMode {\n if (property.effect) return property.effect;\n if (property.persistence === 'runtime') return 'runtime';\n return 'active';\n}\n\nfunction getInspectorSectionEffect<TDocument>(\n section: LocalEditorBrowserInspectorSection<TDocument>,\n): LocalEditorBrowserInspectorEffectMode {\n if (section.effect) return section.effect;\n if (section.runtimeOnly || section.persistence === 'runtime') return 'runtime';\n if (section.properties.some(isInspectorPropertyEditable)) return 'active';\n const effects = new Set(section.properties.map(getInspectorPropertyEffect));\n if (effects.size === 1) return [...effects][0] ?? 'active';\n if (effects.has('unsupported')) return 'unsupported';\n if (effects.has('default')) return 'default';\n if (effects.has('derived')) return 'derived';\n if (effects.has('runtime')) return 'runtime';\n return 'active';\n}\n\nfunction createInspectorAccessBadge(doc: Document, access: InspectorAccessMode): HTMLSpanElement {\n const labels: Record<InspectorAccessMode, string> = {\n editable: 'EDITABLE',\n mixed: 'MIXED',\n readonly: 'READONLY',\n runtime: 'RUNTIME',\n };\n const badge = createBadge(doc, labels[access], {\n compact: true,\n tone: access === 'editable' ? 'success' : access === 'mixed' || access === 'runtime' ? 'warning' : 'default',\n });\n badge.title = access === 'editable'\n ? 'This section writes to the document.'\n : access === 'mixed'\n ? 'This section contains both editable and read-only fields.'\n : access === 'runtime'\n ? 'Runtime-only context, not saved to the document.'\n : 'Read-only information.';\n return badge;\n}\n\nfunction createInspectorEffectBadge(\n doc: Document,\n effect: LocalEditorBrowserInspectorEffectMode,\n disabledReason?: string,\n): HTMLSpanElement | null {\n if (effect === 'active') return null;\n const labels: Record<Exclude<LocalEditorBrowserInspectorEffectMode, 'active'>, string> = {\n default: 'DEFAULTS',\n derived: 'DERIVED',\n runtime: 'RUNTIME',\n unsupported: 'NO EFFECT',\n };\n const badge = createBadge(doc, labels[effect], {\n compact: true,\n tone: effect === 'unsupported' ? 'danger' : 'warning',\n });\n badge.title = disabledReason ?? createInspectorEffectTitle(effect);\n return badge;\n}\n\nfunction createInspectorEffectTitle(effect: LocalEditorBrowserInspectorEffectMode): string {\n switch (effect) {\n case 'default':\n return 'Default values are being shown; edits do not affect this object until an override is configured.';\n case 'derived':\n return 'Derived from document or runtime state.';\n case 'runtime':\n return 'Runtime-only context, not saved to the document.';\n case 'unsupported':\n return 'This field is visible but editing is not supported for the current object.';\n default:\n return 'Editable field.';\n }\n}\n\nfunction inspectorSummaryLooksDefault(summary: string | undefined): boolean {\n return summary?.trim().toLowerCase() === 'defaults';\n}\n\ntype InspectorPropertyGroup<TDocument> =\n | { kind: 'property'; property: LocalEditorBrowserInspectorProperty<TDocument> }\n | { kind: 'vector'; label: string; properties: LocalEditorBrowserInspectorProperty<TDocument>[]; layout?: 'block' | 'inline' };\n\nfunction groupInspectorProperties<TDocument>(\n properties: LocalEditorBrowserInspectorProperty<TDocument>[],\n): InspectorPropertyGroup<TDocument>[] {\n const groups: InspectorPropertyGroup<TDocument>[] = [];\n const consumed = new Set<string>();\n for (const property of properties) {\n if (consumed.has(property.path)) continue;\n if (property.control === 'vec2' || property.control === 'vec3') {\n groups.push({ kind: 'property', property });\n consumed.add(property.path);\n continue;\n }\n const explicitGroup = createExplicitInspectorPropertyGroup(properties, consumed, property);\n if (explicitGroup) {\n groups.push(explicitGroup);\n continue;\n }\n const match = property.path.match(/^(.*)\\.(x|y|z|r|g|b)$/);\n if (!match || property.valueType !== 'number') {\n groups.push({ kind: 'property', property });\n consumed.add(property.path);\n continue;\n }\n const basePath = match[1]!;\n const axes = ['x', 'y', 'z'].every(axis => properties.some(candidate => candidate.path === `${basePath}.${axis}`))\n ? ['x', 'y', 'z']\n : ['r', 'g', 'b'];\n const vector = axes\n .map(axis => properties.find(candidate => candidate.path === `${basePath}.${axis}` && candidate.valueType === 'number'))\n .filter((candidate): candidate is LocalEditorBrowserInspectorProperty<TDocument> => !!candidate);\n if (vector.length === 3) {\n for (const entry of vector) consumed.add(entry.path);\n const parts = basePath.split('.');\n groups.push({ kind: 'vector', label: resolveInspectorVectorGroupLabel(vector, parts[parts.length - 1] ?? basePath), properties: vector });\n } else {\n groups.push({ kind: 'property', property });\n consumed.add(property.path);\n }\n }\n return groups;\n}\n\nfunction createExplicitInspectorPropertyGroup<TDocument>(\n properties: LocalEditorBrowserInspectorProperty<TDocument>[],\n consumed: Set<string>,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): InspectorPropertyGroup<TDocument> | null {\n const groupPath = readInspectorControlOptionString(property, 'groupPath');\n if (!groupPath) return null;\n const groupProperties = properties\n .filter(candidate => !consumed.has(candidate.path) && readInspectorControlOptionString(candidate, 'groupPath') === groupPath)\n .sort((left, right) => (\n readInspectorControlOptionNumber(left, 'groupOrder')\n - readInspectorControlOptionNumber(right, 'groupOrder')\n ));\n if (groupProperties.length <= 1) return null;\n for (const entry of groupProperties) consumed.add(entry.path);\n const label = readInspectorControlOptionString(property, 'groupLabel') || property.label;\n const layout = readInspectorControlOptionString(property, 'groupLayout') === 'inline' ? 'inline' : 'block';\n return { kind: 'vector', label, properties: groupProperties, layout };\n}\n\nfunction readInspectorControlOptionString<TDocument>(\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n key: string,\n): string {\n const value = property.controlOptions?.[key];\n return typeof value === 'string' ? value : '';\n}\n\nfunction readInspectorControlOptionNumber<TDocument>(\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n key: string,\n): number {\n const value = property.controlOptions?.[key];\n return typeof value === 'number' && Number.isFinite(value) ? value : 0;\n}\n\nfunction readInspectorControlOptionBoolean<TDocument>(\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n key: string,\n): boolean {\n return property.controlOptions?.[key] === true;\n}\n\nfunction readInspectorControlOptionRecord<TDocument>(\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n key: string,\n): Record<string, unknown> | null {\n const value = property.controlOptions?.[key];\n return value && typeof value === 'object' && !Array.isArray(value)\n ? value as Record<string, unknown>\n : null;\n}\n\nfunction readInspectorAssetPickerPreview<TDocument>(\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n key: string,\n): LocalEditorBrowserAssetPreview | undefined {\n const value = property.controlOptions?.[key];\n return isLocalEditorBrowserAssetPreview(value) ? value : undefined;\n}\n\nfunction isLocalEditorBrowserAssetPreview(value: unknown): value is LocalEditorBrowserAssetPreview {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return false;\n const preview = value as Record<string, unknown>;\n if (preview.kind === 'image') return typeof preview.url === 'string' && preview.url.length > 0;\n return preview.kind === 'material-sphere';\n}\n\nfunction resolveInspectorVectorGroupLabel<TDocument>(\n properties: LocalEditorBrowserInspectorProperty<TDocument>[],\n fallback: string,\n): string {\n const labels = properties.map(property => {\n const match = property.label.match(/^(.*)\\.(x|y|z|r|g|b)$/);\n return match?.[1]?.trim() ?? '';\n });\n const first = labels[0];\n if (first && labels.every(label => label === first)) return first;\n return toTitle(fallback);\n}\n\nconst builtinInspectorControlRegistrations: readonly LocalEditorBrowserInspectorControlRegistration[] = [\n {\n id: 'builtin.readonly',\n order: 100,\n control: 'readonly',\n render: ({ doc, target, property }) => createInspectorReadonlyControl(doc, target, property),\n },\n {\n id: 'builtin.string',\n order: 100,\n control: 'string',\n render: ({ doc, target, property }) => createInspectorTextControl(doc, target, property),\n },\n {\n id: 'builtin.number',\n order: 100,\n control: 'number',\n render: ({ doc, target, property }) => createInspectorNumberControl(doc, target, property),\n },\n {\n id: 'builtin.boolean',\n order: 100,\n control: 'boolean',\n render: ({ doc, target, property }) => createInspectorBooleanControl(doc, target, property),\n },\n {\n id: 'builtin.enum',\n order: 100,\n control: 'enum',\n render: ({ doc, target, property }) => createInspectorEnumControl(doc, target, property),\n },\n {\n id: 'builtin.vec2',\n order: 100,\n control: 'vec2',\n render: ({ doc, target, property }) => createInspectorVectorControl(doc, target, property),\n },\n {\n id: 'builtin.vec3',\n order: 100,\n control: 'vec3',\n render: ({ doc, target, property }) => createInspectorVectorControl(doc, target, property),\n },\n {\n id: 'builtin.color',\n order: 100,\n control: 'color',\n render: ({ doc, target, property }) => createInspectorColorControl(doc, target, property),\n },\n {\n id: 'builtin.open-right-dock-tab',\n order: 90,\n control: 'custom',\n customControl: 'open-right-dock-tab',\n render: ({ doc, property }) => createInspectorOpenRightDockTabControl(doc, property),\n },\n {\n id: 'builtin.rendering-action-button',\n order: 92,\n control: 'custom',\n customControl: 'rendering-action-button',\n render: ({ doc, property }) => createInspectorRenderingActionButtonControl(doc, property),\n },\n {\n id: 'builtin.inspector-action-button',\n order: 93,\n control: 'custom',\n customControl: 'inspector-action-button',\n render: ({ doc, target, property }) => createInspectorActionButtonControl(doc, target, property),\n },\n {\n id: 'builtin.marker-relation-editor',\n order: 91,\n control: 'custom',\n customControl: 'marker-relation-editor',\n render: ({ doc, property }) => createInspectorMarkerRelationEditorControl(doc, property),\n },\n {\n id: 'builtin.asset-picker-card',\n order: 95,\n control: 'custom',\n customControl: 'asset-picker-card',\n render: ({ doc, target, property, bindInput }) => createInspectorAssetPickerCardControl(doc, target, property, bindInput),\n },\n {\n id: 'builtin.ground-decal-layout',\n order: 96,\n control: 'custom',\n customControl: 'ground-decal-layout',\n render: ({ doc, target, property, bindInput }) => createInspectorGroundDecalLayoutControl(doc, target, property, bindInput),\n },\n {\n id: 'builtin.material-slot-list',\n order: 97,\n control: 'custom',\n customControl: 'material-slot-list',\n render: ({ doc, property }) => createInspectorMaterialSlotListControl(doc, property),\n },\n {\n id: 'builtin.asset',\n order: 100,\n control: 'asset',\n render: ({ doc, target, property }) => createInspectorTextControl(doc, target, property),\n },\n {\n id: 'builtin.object',\n order: 100,\n control: 'object',\n render: ({ doc, target, property }) => createInspectorReadonlyControl(doc, target, property),\n },\n {\n id: 'builtin.custom',\n order: 1000,\n control: 'custom',\n render: ({ doc, target, property }) => createInspectorReadonlyControl(doc, target, property),\n },\n];\n\nfunction appendInspectorPropertyRow<TDocument>(\n doc: Document,\n parent: HTMLElement,\n inspectorObject: LocalEditorBrowserInspectorObject<TDocument>,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n controlRegistry: readonly LocalEditorBrowserInspectorControlRegistration<TDocument>[],\n): void {\n const control = renderInspectorControl(doc, controlRegistry, inspectorObject, property);\n const access = getInspectorPropertyAccess(property);\n const effect = getInspectorPropertyEffect(property);\n if (property.customControl === 'material-slot-list' || property.customControl === 'marker-relation-editor') {\n control.dataset.editorInspectorAccess = access;\n control.dataset.editorInspectorEffect = effect;\n control.title = createInspectorStatusTitle(access, effect, property.tooltip ?? property.disabledReason);\n control.dataset.editorTooltip = control.title;\n parent.appendChild(control);\n return;\n }\n const row = createPropertyRow(doc, property.label, control);\n row.dataset.editorInspectorAccess = access;\n row.dataset.editorInspectorEffect = effect;\n applyInspectorPropertyRowHierarchyStyle(row, property);\n row.title = createInspectorStatusTitle(access, effect, property.tooltip ?? property.disabledReason);\n row.dataset.editorTooltip = row.title;\n const label = row.firstElementChild as HTMLElement | null;\n if (label) label.style.cssText = createInspectorPropertyLabelStyle(access, effect);\n parent.appendChild(row);\n}\n\nfunction applyInspectorPropertyRowHierarchyStyle<TDocument>(\n row: HTMLDivElement,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): void {\n const indentLevel = Math.max(0, Math.min(4, Math.floor(readInspectorControlOptionNumber(property, 'indentLevel'))));\n if (indentLevel <= 0) return;\n const parentPath = readInspectorControlOptionString(property, 'parentPath');\n row.dataset.editorInspectorIndentLevel = String(indentLevel);\n if (parentPath) row.dataset.editorInspectorParentPath = parentPath;\n row.style.cssText = [\n row.style.cssText,\n `margin-left:${indentLevel * 14}px`,\n 'padding-left:8px',\n 'border-left:2px solid var(--fps-editor-border)',\n `grid-template-columns:${Math.max(68, 92 - indentLevel * 12)}px 1fr`,\n ].filter(Boolean).join(';');\n}\n\nexport function createLocalEditorBrowserInspectorControlRegistry<TDocument>(\n controls: readonly LocalEditorBrowserInspectorControlRegistration<TDocument>[] = [],\n conflict: LocalEditorBrowserInspectorConflictStrategy = 'error',\n): LocalEditorBrowserInspectorControlRegistration<TDocument>[] {\n const registrations = new Map<string, LocalEditorBrowserInspectorControlRegistration<TDocument>>();\n for (const control of builtinInspectorControlRegistrations as readonly LocalEditorBrowserInspectorControlRegistration<TDocument>[]) {\n registerInspectorControl(registrations, control, 'error');\n }\n for (const control of controls) {\n registerInspectorControl(registrations, control, conflict);\n }\n return [...registrations.values()].sort(compareInspectorControlRegistrations);\n}\n\nfunction registerInspectorControl<TDocument>(\n registrations: Map<string, LocalEditorBrowserInspectorControlRegistration<TDocument>>,\n registration: LocalEditorBrowserInspectorControlRegistration<TDocument>,\n conflict: LocalEditorBrowserInspectorConflictStrategy,\n): void {\n const id = registration.id.trim();\n if (!id) throw new Error('Inspector control id is required.');\n const normalized = id === registration.id ? registration : { ...registration, id };\n if (registrations.has(id)) {\n if (conflict === 'error') throw new Error(`Inspector control \"${id}\" is already registered.`);\n if (conflict === 'ignore') return;\n }\n registrations.set(id, normalized);\n}\n\nfunction compareInspectorControlRegistrations<TDocument>(\n left: LocalEditorBrowserInspectorControlRegistration<TDocument>,\n right: LocalEditorBrowserInspectorControlRegistration<TDocument>,\n): number {\n return (left.order ?? 0) - (right.order ?? 0) || left.id.localeCompare(right.id);\n}\n\nfunction renderInspectorControl<TDocument>(\n doc: Document,\n registrations: readonly LocalEditorBrowserInspectorControlRegistration<TDocument>[],\n target: LocalEditorBrowserInspectorObject<TDocument>,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): HTMLElement {\n const normalizedProperty = normalizeInspectorRenderingActionProperty(property);\n const canRenderCustomAction = normalizedProperty.control === 'custom' && !!normalizedProperty.customControl;\n if (!isInspectorPropertyEditable(normalizedProperty) && !canRenderCustomAction) return createInspectorReadonlyControl(doc, target, normalizedProperty);\n const context: LocalEditorBrowserInspectorControlRenderContext<TDocument> = {\n doc,\n target,\n property: normalizedProperty,\n bindInput(element, options) {\n applyLocalEditorBrowserInspectorControlBinding(element, target, normalizedProperty, options);\n },\n };\n const registration = resolveLocalEditorBrowserInspectorControlRegistration(registrations, context);\n if (registration) return registration.render(context);\n if (!isInspectorPropertyEditable(normalizedProperty)) return createInspectorReadonlyControl(doc, target, normalizedProperty);\n return createInspectorReadonlyControl(doc, target, normalizedProperty);\n}\n\nexport function resolveLocalEditorBrowserInspectorControlRegistration<TDocument>(\n registrations: readonly LocalEditorBrowserInspectorControlRegistration<TDocument>[],\n context: LocalEditorBrowserInspectorControlRenderContext<TDocument>,\n): LocalEditorBrowserInspectorControlRegistration<TDocument> | null {\n for (const registration of registrations) {\n if (localEditorBrowserInspectorControlSupports(registration, context)) return registration;\n }\n return null;\n}\n\nfunction localEditorBrowserInspectorControlSupports<TDocument>(\n registration: LocalEditorBrowserInspectorControlRegistration<TDocument>,\n context: LocalEditorBrowserInspectorControlRenderContext<TDocument>,\n): boolean {\n const renderingActionFallback = registration.customControl === 'rendering-action-button'\n && !!readInspectorRenderingActionId(context.property);\n if (registration.control && registration.control !== context.property.control && !renderingActionFallback) return false;\n if (registration.customControl && registration.customControl !== context.property.customControl) {\n if (!isInspectorCustomControlFallback(registration.customControl, context.property)) return false;\n }\n return registration.supports?.(context) ?? true;\n}\n\nfunction normalizeInspectorRenderingActionProperty<TDocument>(\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): LocalEditorBrowserInspectorProperty<TDocument> {\n if (property.customControl && property.customControl !== 'rendering-action-button') return property;\n const actionId = readInspectorRenderingActionId(property);\n if (!actionId) return property;\n return {\n ...property,\n control: 'custom',\n customControl: 'rendering-action-button',\n controlOptions: {\n ...property.controlOptions,\n actionId,\n label: readInspectorControlOptionString(property, 'label') || property.label,\n icon: readInspectorControlOptionString(property, 'icon') || 'save',\n },\n readOnly: false,\n persistence: property.persistence === 'runtime' ? 'runtime' : 'document',\n };\n}\n\nfunction readInspectorRenderingActionId<TDocument>(\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): string {\n const explicit = readInspectorControlOptionString(property, 'actionId');\n if (explicit) return explicit;\n if (typeof property.value !== 'string') return '';\n const value = property.value.trim();\n return value && property.path.startsWith('actions.') ? value : '';\n}\n\nfunction isInspectorCustomControlFallback<TDocument>(\n customControl: string,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): boolean {\n if (customControl !== 'rendering-action-button') return false;\n if (property.customControl) return false;\n return !!readInspectorRenderingActionId(property);\n}\n\nfunction appendInspectorVectorInputs<TDocument>(\n doc: Document,\n parent: HTMLElement,\n inspectorObject: LocalEditorBrowserInspectorObject<TDocument>,\n label: string,\n properties: LocalEditorBrowserInspectorProperty<TDocument>[],\n layout: 'block' | 'inline' = 'block',\n options: LocalEditorBrowserInspectorRenderOptions<TDocument> = {},\n): void {\n const wrapper = doc.createElement('div');\n wrapper.style.cssText = 'margin:8px 0';\n const access = getInspectorPropertyGroupAccess(properties);\n const effect = getInspectorPropertyGroupEffect(properties);\n wrapper.dataset.editorInspectorAccess = access;\n wrapper.dataset.editorInspectorEffect = effect;\n wrapper.title = createInspectorStatusTitle(\n access,\n effect,\n getInspectorPropertyGroupTooltip(properties) ?? getInspectorPropertyGroupDisabledReason(properties),\n );\n wrapper.dataset.editorTooltip = wrapper.title;\n const labelElement = doc.createElement('div');\n labelElement.style.cssText = 'display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px';\n const labelText = doc.createElement('span');\n labelText.textContent = label;\n labelText.style.cssText = createInspectorPropertyLabelStyle(access, effect);\n labelElement.appendChild(labelText);\n const actions = doc.createElement('span');\n actions.style.cssText = 'display:inline-flex;align-items:center;gap:5px;flex:0 0 auto';\n labelElement.appendChild(actions);\n const groupPath = resolveLocalEditorBrowserInspectorVectorGroupPathFromProperties(properties);\n const forceLocked = properties.some(property => readInspectorControlOptionBoolean(property, 'forceVectorLock'));\n const locked = forceLocked || (!!groupPath && options.lockedVectorGroups?.has(groupPath) === true);\n if (groupPath && access === 'editable') {\n const lockButton = createInspectorVectorHeaderButton(\n doc,\n forceLocked ? `${label} axes are locked` : locked ? `Unlock ${label} axes` : `Lock ${label} axes`,\n locked,\n );\n if (!forceLocked) lockButton.dataset.editorInspectorVectorLock = groupPath;\n lockButton.disabled = forceLocked;\n lockButton.dataset.editorInspectorVectorLockState = locked ? 'locked' : 'unlocked';\n lockButton.setAttribute('aria-pressed', locked ? 'true' : 'false');\n lockButton.appendChild(createLocalEditorIcon(doc, 'lock', { size: 12, strokeWidth: 2.2 }));\n actions.appendChild(lockButton);\n }\n const copyPayload = createLocalEditorBrowserInspectorVectorCopyPayload(properties);\n if (copyPayload) {\n const copyButton = createInspectorVectorHeaderButton(doc, `Copy ${label}`, false);\n copyButton.dataset.editorInspectorVectorCopy = 'true';\n copyButton.dataset.editorInspectorVectorCopyValue = copyPayload;\n copyButton.appendChild(createLocalEditorIcon(doc, 'copy', { size: 12, strokeWidth: 2.2 }));\n actions.appendChild(copyButton);\n }\n if (access !== 'editable') {\n const badge = createInspectorAccessBadge(doc, access);\n badge.style.flex = '0 0 auto';\n actions.appendChild(badge);\n }\n const effectBadge = createInspectorEffectBadge(doc, effect, getInspectorPropertyGroupDisabledReason(properties));\n if (effectBadge && !(access === 'runtime' && effect === 'runtime')) {\n effectBadge.style.flex = '0 0 auto';\n actions.appendChild(effectBadge);\n }\n const fields = doc.createElement('div');\n if (groupPath) wrapper.dataset.editorInspectorVectorGroupPath = groupPath;\n fields.style.cssText = `display:grid;grid-template-columns:repeat(${Math.max(1, properties.length)},minmax(0,1fr));gap:6px;width:100%`;\n for (const property of properties) {\n fields.appendChild(isInspectorPropertyEditable(property)\n ? createInspectorNumberControl(doc, inspectorObject, property)\n : createInspectorReadonlyControl(doc, inspectorObject, property));\n }\n if (layout === 'inline') {\n const row = createPropertyRow(doc, label, fields);\n row.dataset.editorInspectorAccess = access;\n row.dataset.editorInspectorEffect = effect;\n row.title = wrapper.title;\n row.dataset.editorTooltip = wrapper.dataset.editorTooltip ?? wrapper.title;\n const rowLabel = row.firstElementChild as HTMLElement | null;\n if (rowLabel) rowLabel.style.cssText = createInspectorPropertyLabelStyle(access, effect);\n parent.appendChild(row);\n return;\n }\n wrapper.appendChild(labelElement);\n wrapper.appendChild(fields);\n parent.appendChild(wrapper);\n}\n\nfunction createInspectorVectorHeaderButton(\n doc: Document,\n title: string,\n active: boolean,\n): HTMLButtonElement {\n const button = doc.createElement('button');\n button.type = 'button';\n button.title = title;\n button.dataset.editorTooltip = title;\n button.style.cssText = [\n 'width:22px',\n 'height:22px',\n 'padding:0',\n `border:1px solid ${active ? 'var(--fps-editor-accent)' : 'var(--fps-editor-border)'}`,\n 'border-radius:3px',\n `background:${active ? 'var(--fps-editor-accent-soft)' : 'var(--fps-editor-button-bg)'}`,\n `color:${active ? 'var(--fps-editor-accent)' : 'var(--fps-editor-text)'}`,\n 'display:inline-flex',\n 'align-items:center',\n 'justify-content:center',\n 'cursor:pointer',\n 'flex:0 0 auto',\n ].join(';');\n return button;\n}\n\nfunction getInspectorPropertyGroupAccess<TDocument>(\n properties: LocalEditorBrowserInspectorProperty<TDocument>[],\n): InspectorAccessMode {\n if (properties.some(property => property.persistence === 'runtime')) return 'runtime';\n const editableCount = properties.filter(isInspectorPropertyEditable).length;\n if (editableCount === 0) return 'readonly';\n if (editableCount === properties.length) return 'editable';\n return 'mixed';\n}\n\nfunction getInspectorPropertyGroupEffect<TDocument>(\n properties: LocalEditorBrowserInspectorProperty<TDocument>[],\n): LocalEditorBrowserInspectorEffectMode {\n const effects = new Set(properties.map(getInspectorPropertyEffect));\n if (effects.size === 1) return [...effects][0] ?? 'active';\n if (effects.has('unsupported')) return 'unsupported';\n if (effects.has('default')) return 'default';\n if (effects.has('derived')) return 'derived';\n if (effects.has('runtime')) return 'runtime';\n return 'active';\n}\n\nfunction getInspectorPropertyGroupDisabledReason<TDocument>(\n properties: LocalEditorBrowserInspectorProperty<TDocument>[],\n): string | undefined {\n return properties.find(property => property.disabledReason)?.disabledReason;\n}\n\nfunction getInspectorPropertyGroupTooltip<TDocument>(\n properties: LocalEditorBrowserInspectorProperty<TDocument>[],\n): string | undefined {\n return properties.find(property => property.tooltip)?.tooltip;\n}\n\nfunction createInspectorPropertyLabelStyle(\n access: InspectorAccessMode,\n effect: LocalEditorBrowserInspectorEffectMode = 'active',\n): string {\n return [\n `color:${effect === 'unsupported' ? 'var(--fps-editor-danger-text)' : effect === 'default' || effect === 'derived' || access === 'runtime' ? 'var(--fps-editor-warn)' : access === 'editable' ? 'var(--fps-editor-muted-strong)' : 'var(--fps-editor-muted)'}`,\n 'font-weight:800',\n access === 'readonly' ? 'opacity:0.82' : '',\n ].filter(Boolean).join(';');\n}\n\nfunction createInspectorAccessTitle(access: InspectorAccessMode, tooltip?: string): string {\n const accessLabel = access === 'editable'\n ? 'Editable'\n : access === 'mixed'\n ? 'Mixed editable and read-only'\n : access === 'runtime'\n ? 'Runtime-only'\n : 'Read-only';\n return tooltip ? `${accessLabel}: ${tooltip}` : accessLabel;\n}\n\nfunction createInspectorStatusTitle(\n access: InspectorAccessMode,\n effect: LocalEditorBrowserInspectorEffectMode,\n detail?: string,\n): string {\n const parts = [createInspectorAccessTitle(access)];\n if (effect !== 'active') parts.push(createInspectorEffectTitle(effect));\n if (detail) parts.push(detail);\n return [...new Set(parts)].join(' ');\n}\n\nfunction createInspectorReadonlyValueShell(\n doc: Document,\n access: InspectorAccessMode,\n effect: LocalEditorBrowserInspectorEffectMode = 'active',\n title?: string,\n): HTMLDivElement {\n const valueElement = doc.createElement('div');\n valueElement.dataset.editorInspectorAccess = access;\n valueElement.dataset.editorInspectorEffect = effect;\n valueElement.title = title ?? createInspectorStatusTitle(access, effect);\n const warningLike = effect === 'default' || effect === 'derived' || access === 'runtime' || effect === 'runtime';\n const unsupported = effect === 'unsupported';\n valueElement.style.cssText = [\n 'min-width:0',\n 'min-height:24px',\n 'display:flex',\n 'align-items:center',\n 'gap:5px',\n 'padding:3px 6px',\n `border:1px solid ${unsupported ? 'var(--fps-editor-danger-border)' : warningLike ? 'var(--fps-editor-warn-border)' : 'var(--fps-editor-readonly-border)'}`,\n 'border-radius:3px',\n `background:${unsupported ? 'var(--fps-editor-danger-soft)' : warningLike ? 'var(--fps-editor-warn-soft)' : 'var(--fps-editor-readonly-bg)'}`,\n `color:${unsupported ? 'var(--fps-editor-danger-text)' : warningLike ? 'var(--fps-editor-warn)' : 'var(--fps-editor-readonly-text)'}`,\n warningLike ? 'font-style:italic' : '',\n ].filter(Boolean).join(';');\n const icon = createLocalEditorIcon(doc, 'lock', { size: 11, strokeWidth: 2.3 });\n icon.style.opacity = '0.78';\n valueElement.appendChild(icon);\n return valueElement;\n}\n\nfunction appendInspectorReadonlyTextValue(\n doc: Document,\n parent: HTMLElement,\n value: string,\n access: InspectorAccessMode,\n effect: LocalEditorBrowserInspectorEffectMode = 'active',\n title?: string,\n): void {\n const valueText = doc.createElement('span');\n valueText.textContent = value;\n valueText.style.cssText = 'min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap';\n parent.appendChild(valueText);\n parent.title = title ?? createInspectorStatusTitle(access, effect);\n}\n\nfunction createInspectorReadonlyCopyButton(\n doc: Document,\n value: string,\n label: string,\n): HTMLButtonElement {\n const button = doc.createElement('button');\n button.type = 'button';\n button.dataset.editorInspectorReadonlyCopy = 'true';\n button.dataset.editorInspectorReadonlyCopyValue = value;\n button.dataset.editorTooltip = `Copy ${label}`;\n button.setAttribute('aria-label', `Copy ${label}`);\n button.title = `Copy ${label}`;\n button.style.cssText = [\n 'width:20px',\n 'height:20px',\n 'min-width:20px',\n 'margin-left:auto',\n 'padding:0',\n 'border:1px solid transparent',\n 'border-radius:3px',\n 'background:transparent',\n 'color:currentColor',\n 'display:inline-flex',\n 'align-items:center',\n 'justify-content:center',\n 'cursor:pointer',\n 'opacity:0.72',\n 'flex:0 0 20px',\n ].join(';');\n button.appendChild(createLocalEditorIcon(doc, 'copy', { size: 12, strokeWidth: 2.2 }));\n return button;\n}\n\nfunction createInspectorReadonlyScalarControl(\n doc: Document,\n value: string,\n access: InspectorAccessMode,\n effect: LocalEditorBrowserInspectorEffectMode = 'active',\n title?: string,\n copyLabel = 'value',\n): HTMLDivElement {\n const valueElement = createInspectorReadonlyValueShell(doc, access, effect, title);\n appendInspectorReadonlyTextValue(doc, valueElement, value, access, effect, title);\n if (value) valueElement.appendChild(createInspectorReadonlyCopyButton(doc, value, copyLabel));\n return valueElement;\n}\n\nfunction createInspectorReadonlyDetailsShell<TDocument>(\n doc: Document,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n access: InspectorAccessMode,\n): HTMLDetailsElement {\n const effect = getInspectorPropertyEffect(property);\n const warningLike = effect === 'default' || effect === 'derived' || access === 'runtime' || effect === 'runtime';\n const unsupported = effect === 'unsupported';\n const details = doc.createElement('details');\n details.dataset.editorInspectorAccess = access;\n details.dataset.editorInspectorEffect = effect;\n details.title = createInspectorStatusTitle(access, effect, property.tooltip ?? property.disabledReason);\n details.style.cssText = [\n 'min-width:0',\n 'max-width:100%',\n 'padding:3px 6px',\n `border:1px solid ${unsupported ? 'var(--fps-editor-danger-border)' : warningLike ? 'var(--fps-editor-warn-border)' : 'var(--fps-editor-readonly-border)'}`,\n 'border-radius:3px',\n `background:${unsupported ? 'var(--fps-editor-danger-soft)' : warningLike ? 'var(--fps-editor-warn-soft)' : 'var(--fps-editor-readonly-bg)'}`,\n `color:${unsupported ? 'var(--fps-editor-danger-text)' : warningLike ? 'var(--fps-editor-warn)' : 'var(--fps-editor-readonly-text)'}`,\n ].join(';');\n return details;\n}\n\nfunction createInspectorInputBase<TDocument>(\n doc: Document,\n target: LocalEditorBrowserInspectorObject<TDocument>,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): HTMLInputElement {\n const input = doc.createElement('input');\n input.value = property.mixed ? '' : formatInspectorEditableValue(property.value, property);\n input.placeholder = property.mixed ? '--' : '';\n applyLocalEditorBrowserInspectorControlBinding(input, target, property);\n input.style.cssText = createInspectorInputStyle();\n return input;\n}\n\nfunction createInspectorNumberControl<TDocument>(\n doc: Document,\n target: LocalEditorBrowserInspectorObject<TDocument>,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): HTMLInputElement {\n const input = createInspectorInputBase(doc, target, property);\n input.type = 'text';\n input.inputMode = 'decimal';\n input.dataset.serializedNumberStep = String(property.step ?? 0.1);\n if (property.min != null) input.dataset.serializedNumberMin = String(property.min);\n if (property.max != null) input.dataset.serializedNumberMax = String(property.max);\n return input;\n}\n\nfunction createInspectorTextControl<TDocument>(\n doc: Document,\n target: LocalEditorBrowserInspectorObject<TDocument>,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): HTMLInputElement {\n const input = createInspectorInputBase(doc, target, property);\n input.type = 'text';\n return input;\n}\n\nfunction createInspectorBooleanControl<TDocument>(\n doc: Document,\n target: LocalEditorBrowserInspectorObject<TDocument>,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): HTMLInputElement {\n const input = createInspectorInputBase(doc, target, property);\n input.type = 'checkbox';\n input.checked = property.value === true;\n input.indeterminate = property.mixed === true;\n input.style.cssText = [\n 'width:16px',\n 'height:16px',\n 'accent-color:var(--fps-editor-accent)',\n 'justify-self:start',\n 'cursor:pointer',\n 'box-shadow:0 0 0 1px var(--fps-editor-editable-border)',\n ].join(';');\n return input;\n}\n\nfunction createInspectorEnumControl<TDocument>(\n doc: Document,\n target: LocalEditorBrowserInspectorObject<TDocument>,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): HTMLSelectElement {\n const select = doc.createElement('select');\n applyLocalEditorBrowserInspectorControlBinding(select, target, property);\n select.style.cssText = createInspectorInputStyle();\n for (const option of property.options ?? []) {\n const item = doc.createElement('option');\n item.value = String(option.value);\n item.dataset.serializedOptionValue = JSON.stringify(option.value);\n item.textContent = option.label;\n item.disabled = option.disabled === true;\n if (!property.mixed && option.value === property.value) item.selected = true;\n select.appendChild(item);\n }\n if (property.mixed) {\n const mixed = doc.createElement('option');\n mixed.value = '';\n mixed.textContent = '--';\n mixed.selected = true;\n select.prepend(mixed);\n }\n return select;\n}\n\nfunction createInspectorVectorControl<TDocument>(\n doc: Document,\n target: LocalEditorBrowserInspectorObject<TDocument>,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): HTMLDivElement {\n const wrapper = doc.createElement('div');\n wrapper.dataset.inspectorVectorControl = 'true';\n wrapper.style.cssText = 'display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%';\n const axes = property.control === 'vec2' ? ['x', 'y'] : ['x', 'y', 'z'];\n if (property.control === 'vec2') wrapper.style.gridTemplateColumns = 'repeat(2,minmax(0,1fr))';\n const value = isRecord(property.value) ? property.value : {};\n for (const axis of axes) {\n const input = createInspectorInputBase(doc, target, property);\n input.type = 'text';\n input.inputMode = 'decimal';\n input.dataset.serializedNumberStep = String(property.step ?? 0.1);\n if (property.min != null) input.dataset.serializedNumberMin = String(property.min);\n if (property.max != null) input.dataset.serializedNumberMax = String(property.max);\n input.dataset.serializedVectorAxis = axis;\n input.value = property.mixed ? '' : formatInspectorEditableValue(value[axis] ?? 0, property);\n input.title = property.tooltip ? `${axis.toUpperCase()}: ${property.tooltip}` : `${property.label}.${axis}`;\n input.dataset.editorTooltip = input.title;\n wrapper.appendChild(input);\n }\n return wrapper;\n}\n\nfunction createInspectorColorControl<TDocument>(\n doc: Document,\n target: LocalEditorBrowserInspectorObject<TDocument>,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): HTMLInputElement {\n const input = createInspectorInputBase(doc, target, property);\n input.type = 'color';\n input.value = colorValueToHex(property.value);\n input.style.cssText = 'width:34px;height:26px;border:1px solid var(--fps-editor-editable-border);border-radius:3px;background:var(--fps-editor-editable-bg);padding:0;box-shadow:var(--fps-editor-editable-shadow)';\n return input;\n}\n\nfunction createInspectorOpenRightDockTabControl<TDocument>(\n doc: Document,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): HTMLButtonElement {\n const targetTabOption = readInspectorControlOptionString(property, 'targetTab');\n const targetTab: LocalEditorRightDockTab = targetTabOption === 'inspector'\n ? 'inspector'\n : targetTabOption === 'markers'\n ? 'markers'\n : targetTabOption === 'plugins'\n ? 'plugins'\n : 'rendering';\n const label = readInspectorControlOptionString(property, 'label')\n || (typeof property.value === 'string' ? property.value : property.label);\n const button = createToolbarButton(doc, label, RIGHT_DOCK_TAB_ICONS[targetTab]);\n button.type = 'button';\n button.dataset.editorOpenRightDockTab = targetTab;\n button.title = property.tooltip ?? label;\n button.dataset.editorTooltip = button.title;\n button.style.cssText = [\n button.style.cssText,\n 'width:100%',\n 'justify-content:center',\n 'height:28px',\n ].filter(Boolean).join(';');\n return button;\n}\n\nfunction createInspectorRenderingActionButtonControl<TDocument>(\n doc: Document,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): HTMLButtonElement {\n const actionId = readInspectorControlOptionString(property, 'actionId')\n || (typeof property.value === 'string' ? property.value : '');\n const iconName = readInspectorControlOptionString(property, 'icon');\n const icon = isLocalEditorIconName(iconName) ? iconName : 'save';\n const label = readInspectorControlOptionString(property, 'label')\n || (typeof property.value === 'string' ? property.value : property.label);\n const button = createToolbarButton(doc, label, icon);\n button.type = 'button';\n if (actionId) button.dataset.editorRenderingAction = actionId;\n button.disabled = property.readOnly === true\n || property.effect === 'unsupported'\n || property.controlOptions?.disabled === true\n || !actionId;\n button.title = property.tooltip ?? label;\n button.dataset.editorTooltip = button.title;\n button.style.cssText = [\n button.style.cssText,\n 'width:100%',\n 'justify-content:center',\n 'height:28px',\n ].filter(Boolean).join(';');\n return button;\n}\n\nfunction createInspectorActionButtonControl<TDocument>(\n doc: Document,\n target: LocalEditorBrowserInspectorObject<TDocument>,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): HTMLButtonElement {\n const actionId = readInspectorControlOptionString(property, 'actionId')\n || (typeof property.value === 'string' ? property.value : '');\n const iconName = readInspectorControlOptionString(property, 'icon');\n const icon = isLocalEditorIconName(iconName) ? iconName : 'asset';\n const label = readInspectorControlOptionString(property, 'label')\n || (typeof property.value === 'string' ? property.value : property.label);\n const button = createToolbarButton(doc, label, icon);\n button.type = 'button';\n if (actionId) button.dataset.editorInspectorAction = actionId;\n button.dataset.editorInspectorActionTargetId = target.activeId ?? '';\n button.dataset.editorInspectorActionTargetIds = JSON.stringify(target.targetIds);\n button.dataset.editorInspectorActionPath = property.path;\n const params = readInspectorControlOptionRecord(property, 'params');\n if (params) button.dataset.editorInspectorActionParams = JSON.stringify(params);\n button.disabled = property.readOnly === true\n || property.effect === 'unsupported'\n || property.controlOptions?.disabled === true\n || !actionId;\n button.title = property.tooltip ?? label;\n button.dataset.editorTooltip = button.title;\n button.style.cssText = [\n button.style.cssText,\n 'width:100%',\n 'justify-content:center',\n 'height:28px',\n ].filter(Boolean).join(';');\n return button;\n}\n\nfunction createInspectorMarkerRelationEditorControl<TDocument>(\n doc: Document,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): HTMLElement {\n const panel = readInspectorMarkerRelationPanelState(property);\n const wrapper = doc.createElement('div');\n wrapper.style.cssText = 'display:flex;flex-direction:column;gap:8px;width:100%;min-width:0';\n if (!panel) {\n wrapper.appendChild(createEmptyState(doc, '当前 marker 没有可编辑的关系数据。'));\n return wrapper;\n }\n wrapper.appendChild(createMarkerRelationCreateBlock(doc, panel));\n wrapper.appendChild(createMarkerRelationListBlock(doc, (panel.relations ?? []).filter(relation => relation.selected)));\n return wrapper;\n}\n\nfunction readInspectorMarkerRelationPanelState<TDocument>(\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): LocalEditorBrowserMarkerPanelState | null {\n const value = property.controlOptions?.markerPanel ?? property.value;\n if (!value || typeof value !== 'object' || Array.isArray(value)) return null;\n const panel = value as LocalEditorBrowserMarkerPanelState;\n return Array.isArray(panel.markerTypes) ? panel : null;\n}\n\ntype InspectorMaterialSlotListItem = {\n key: string;\n label: string;\n selectionTargetId?: string;\n slotId?: string;\n ownerNodePath?: string;\n materialAssetId?: string;\n materialLabel?: string;\n materialMeta?: string;\n materialPreview?: LocalEditorBrowserAssetPreview;\n nodeIndex?: number;\n nodeIndexPath?: number[];\n meshIndex?: number;\n primitiveIndex?: number;\n sourceMaterialIndex?: number;\n sourceMaterialIndices?: number[];\n sourceMaterialName?: string;\n materialNames?: string[];\n triangleCount?: number;\n boundingBox?: {\n min?: [number, number, number];\n max?: [number, number, number];\n };\n bindingPath?: string;\n};\n\ntype InspectorMaterialSlotListLabels = {\n material: string;\n slotId: string;\n ownerNodePath: string;\n sourceMaterial: string;\n primitive: string;\n triangles: string;\n bounds: string;\n bindingPath: string;\n};\n\nfunction createInspectorMaterialSlotListControl<TDocument>(\n doc: Document,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): HTMLDivElement {\n const wrapper = doc.createElement('div');\n wrapper.dataset.editorInspectorMaterialSlotList = 'true';\n wrapper.style.cssText = [\n 'min-width:0',\n 'display:flex',\n 'flex-direction:column',\n 'gap:6px',\n ].join(';');\n\n const items = readInspectorMaterialSlotListItems(property);\n if (items.length === 0) {\n wrapper.appendChild(createEmptyState(doc, 'No material slots.'));\n return wrapper;\n }\n\n const labels = readInspectorMaterialSlotListLabels(property);\n for (const item of items) {\n wrapper.appendChild(createInspectorMaterialSlotListItem(doc, item, labels));\n }\n return wrapper;\n}\n\nfunction createInspectorMaterialSlotListItem(\n doc: Document,\n item: InspectorMaterialSlotListItem,\n labels: InspectorMaterialSlotListLabels,\n): HTMLDetailsElement {\n const details = doc.createElement('details');\n details.dataset.editorInspectorMaterialSlotItem = item.key;\n if (item.selectionTargetId) {\n details.dataset.editorInspectorMaterialSlotSelect = item.selectionTargetId;\n }\n details.dataset.editorInspectorAccess = 'readonly';\n details.dataset.editorInspectorEffect = 'active';\n details.style.cssText = [\n 'min-width:0',\n 'border:1px solid var(--fps-editor-readonly-border)',\n 'border-radius:3px',\n 'background:var(--fps-editor-readonly-bg)',\n 'color:var(--fps-editor-readonly-text)',\n 'overflow:hidden',\n ].join(';');\n\n const summary = doc.createElement('summary');\n summary.style.cssText = [\n 'min-width:0',\n 'min-height:44px',\n 'display:flex',\n 'align-items:center',\n 'gap:8px',\n 'padding:6px 8px',\n 'cursor:pointer',\n ].join(';');\n if (item.selectionTargetId) {\n summary.dataset.editorInspectorMaterialSlotSelect = item.selectionTargetId;\n summary.title = item.label;\n summary.dataset.editorTooltip = item.label;\n }\n\n summary.appendChild(createAssetPreviewElement(doc, {\n id: item.materialAssetId ? `material:${item.materialAssetId}` : `material-slot:${item.key}`,\n assetId: item.materialAssetId,\n kind: 'material',\n label: item.materialLabel || item.label,\n meta: item.materialMeta || labels.material,\n preview: item.materialPreview,\n }, 'list'));\n\n const body = doc.createElement('div');\n body.style.cssText = 'min-width:0;flex:1';\n const title = doc.createElement('div');\n title.textContent = item.label;\n title.style.cssText = 'font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fps-editor-text-strong)';\n const subtitle = doc.createElement('div');\n subtitle.textContent = item.materialLabel\n ? `${labels.material}: ${item.materialLabel}`\n : labels.material;\n subtitle.style.cssText = 'color:var(--fps-editor-muted);font-size:11px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap';\n body.appendChild(title);\n body.appendChild(subtitle);\n summary.appendChild(body);\n summary.appendChild(createBadge(doc, 'READONLY', { compact: true }));\n details.appendChild(summary);\n\n const content = doc.createElement('div');\n content.style.cssText = [\n 'display:flex',\n 'flex-direction:column',\n 'gap:4px',\n 'padding:0 8px 8px',\n ].join(';');\n appendMaterialSlotListDetailRow(doc, content, labels.material, item.materialMeta || item.materialAssetId || item.materialLabel || '');\n appendMaterialSlotListDetailRow(doc, content, labels.slotId, item.slotId ?? '');\n appendMaterialSlotListDetailRow(doc, content, labels.ownerNodePath, item.ownerNodePath ?? '');\n appendMaterialSlotListDetailRow(doc, content, labels.primitive, formatMaterialSlotPrimitiveDetail(item));\n appendMaterialSlotListDetailRow(\n doc,\n content,\n labels.sourceMaterial,\n [\n item.sourceMaterialIndex == null ? '' : `#${item.sourceMaterialIndex}`,\n item.sourceMaterialName ?? '',\n item.materialNames && item.materialNames.length > 1 ? `(${item.materialNames.join(', ')})` : '',\n ]\n .filter(Boolean)\n .join(' '),\n );\n appendMaterialSlotListDetailRow(doc, content, labels.triangles, item.triangleCount == null ? '' : String(item.triangleCount));\n appendMaterialSlotListDetailRow(doc, content, labels.bounds, formatMaterialSlotBounds(item.boundingBox));\n appendMaterialSlotListDetailRow(doc, content, labels.bindingPath, item.bindingPath ?? '');\n details.appendChild(content);\n\n return details;\n}\n\nfunction appendMaterialSlotListDetailRow(\n doc: Document,\n parent: HTMLElement,\n label: string,\n value: string,\n): void {\n if (!value) return;\n const row = doc.createElement('div');\n row.style.cssText = [\n 'display:grid',\n 'grid-template-columns:88px minmax(0,1fr)',\n 'gap:8px',\n 'align-items:start',\n 'font-size:11px',\n 'line-height:1.35',\n ].join(';');\n const labelElement = doc.createElement('div');\n labelElement.textContent = label;\n labelElement.style.cssText = 'color:var(--fps-editor-muted);font-weight:800';\n const valueElement = doc.createElement('div');\n valueElement.textContent = value;\n valueElement.style.cssText = [\n 'min-width:0',\n 'overflow:hidden',\n 'text-overflow:ellipsis',\n 'white-space:nowrap',\n 'font-family:var(--fps-editor-mono-font)',\n 'color:var(--fps-editor-readonly-text)',\n ].join(';');\n valueElement.title = value;\n valueElement.dataset.editorTooltip = value;\n row.appendChild(labelElement);\n row.appendChild(valueElement);\n parent.appendChild(row);\n}\n\nfunction readInspectorMaterialSlotListItems<TDocument>(\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): InspectorMaterialSlotListItem[] {\n const rawItems = property.controlOptions?.slots;\n if (!Array.isArray(rawItems)) return [];\n return rawItems\n .map(readInspectorMaterialSlotListItem)\n .filter((item): item is InspectorMaterialSlotListItem => !!item);\n}\n\nfunction readInspectorMaterialSlotListItem(value: unknown): InspectorMaterialSlotListItem | null {\n if (!isRecord(value)) return null;\n const key = readStringField(value, 'key') || readStringField(value, 'slotId') || readStringField(value, 'ownerNodePath');\n const label = readStringField(value, 'label') || key;\n if (!key || !label) return null;\n const sourceMaterialIndex = value.sourceMaterialIndex;\n const nodeIndex = value.nodeIndex;\n const meshIndex = value.meshIndex;\n const primitiveIndex = value.primitiveIndex;\n const triangleCount = value.triangleCount;\n return {\n key,\n label,\n selectionTargetId: readStringField(value, 'selectionTargetId') || undefined,\n slotId: readStringField(value, 'slotId') || undefined,\n ownerNodePath: readStringField(value, 'ownerNodePath') || undefined,\n materialAssetId: readStringField(value, 'materialAssetId') || undefined,\n materialLabel: readStringField(value, 'materialLabel') || undefined,\n materialMeta: readStringField(value, 'materialMeta') || undefined,\n materialPreview: isLocalEditorBrowserAssetPreview(value.materialPreview) ? value.materialPreview : undefined,\n nodeIndex: typeof nodeIndex === 'number' && Number.isFinite(nodeIndex) ? nodeIndex : undefined,\n nodeIndexPath: readNumberArrayField(value, 'nodeIndexPath'),\n meshIndex: typeof meshIndex === 'number' && Number.isFinite(meshIndex) ? meshIndex : undefined,\n primitiveIndex: typeof primitiveIndex === 'number' && Number.isFinite(primitiveIndex) ? primitiveIndex : undefined,\n sourceMaterialIndex: typeof sourceMaterialIndex === 'number' && Number.isFinite(sourceMaterialIndex) ? sourceMaterialIndex : undefined,\n sourceMaterialIndices: readNumberArrayField(value, 'sourceMaterialIndices'),\n sourceMaterialName: readStringField(value, 'sourceMaterialName') || undefined,\n materialNames: readStringArrayField(value, 'materialNames'),\n triangleCount: typeof triangleCount === 'number' && Number.isFinite(triangleCount) ? triangleCount : undefined,\n boundingBox: readMaterialSlotBoundsField(value, 'boundingBox'),\n bindingPath: readStringField(value, 'bindingPath') || undefined,\n };\n}\n\nfunction readInspectorMaterialSlotListLabels<TDocument>(\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): InspectorMaterialSlotListLabels {\n const labels = isRecord(property.controlOptions?.labels) ? property.controlOptions.labels : {};\n return {\n material: readStringField(labels, 'material') || 'Material',\n slotId: readStringField(labels, 'slotId') || 'Slot ID',\n ownerNodePath: readStringField(labels, 'ownerNodePath') || 'Owner Node Path',\n sourceMaterial: readStringField(labels, 'sourceMaterial') || 'Source Material',\n primitive: readStringField(labels, 'primitive') || 'Primitive',\n triangles: readStringField(labels, 'triangles') || 'Triangles',\n bounds: readStringField(labels, 'bounds') || 'Bounds',\n bindingPath: readStringField(labels, 'bindingPath') || 'Binding Path',\n };\n}\n\nfunction readStringField(record: Record<string, unknown>, key: string): string {\n const value = record[key];\n return typeof value === 'string' ? value : '';\n}\n\nfunction readStringArrayField(record: Record<string, unknown>, key: string): string[] | undefined {\n const value = record[key];\n if (!Array.isArray(value)) return undefined;\n const strings = value.filter((item): item is string => typeof item === 'string' && item.length > 0);\n return strings.length > 0 ? strings : undefined;\n}\n\nfunction readNumberArrayField(record: Record<string, unknown>, key: string): number[] | undefined {\n const value = record[key];\n if (!Array.isArray(value)) return undefined;\n const numbers = value.filter((item): item is number => typeof item === 'number' && Number.isFinite(item));\n return numbers.length > 0 ? numbers : undefined;\n}\n\nfunction readMaterialSlotBoundsField(\n record: Record<string, unknown>,\n key: string,\n): InspectorMaterialSlotListItem['boundingBox'] {\n const value = record[key];\n if (!isRecord(value)) return undefined;\n const min = readMaterialSlotVec3Tuple(value.min);\n const max = readMaterialSlotVec3Tuple(value.max);\n if (!min && !max) return undefined;\n return {\n ...(min ? { min } : {}),\n ...(max ? { max } : {}),\n };\n}\n\nfunction readMaterialSlotVec3Tuple(value: unknown): [number, number, number] | null {\n if (!Array.isArray(value) || value.length < 3) return null;\n const [x, y, z] = value;\n return typeof x === 'number' && Number.isFinite(x)\n && typeof y === 'number' && Number.isFinite(y)\n && typeof z === 'number' && Number.isFinite(z)\n ? [x, y, z]\n : null;\n}\n\nfunction formatMaterialSlotPrimitiveDetail(item: InspectorMaterialSlotListItem): string {\n const parts = [\n item.nodeIndex == null ? '' : `node #${item.nodeIndex}`,\n item.meshIndex == null ? '' : `mesh #${item.meshIndex}`,\n item.primitiveIndex == null ? '' : `primitive #${item.primitiveIndex}`,\n ].filter(Boolean);\n if (item.nodeIndexPath && item.nodeIndexPath.length > 0) parts.push(`path ${item.nodeIndexPath.join('/')}`);\n return parts.join(' / ');\n}\n\nfunction formatMaterialSlotBounds(bounds: InspectorMaterialSlotListItem['boundingBox']): string {\n if (!bounds) return '';\n const min = bounds.min ? bounds.min.join(', ') : '';\n const max = bounds.max ? bounds.max.join(', ') : '';\n if (min && max) return `min ${min}; max ${max}`;\n if (min) return `min ${min}`;\n if (max) return `max ${max}`;\n return '';\n}\n\ninterface InspectorGroundDecalLayoutRect {\n x: number;\n z: number;\n width: number;\n depth: number;\n}\n\ninterface InspectorGroundDecalLayoutColor {\n r: number;\n g: number;\n b: number;\n a?: number;\n}\n\ntype InspectorGroundDecalLayoutLayerPreview =\n | { kind: 'image'; url: string; alt?: string; tint?: InspectorGroundDecalLayoutColor }\n | {\n kind: 'text';\n text: string;\n fontFamily?: string;\n fontSize?: number;\n fontWeight?: string;\n color?: InspectorGroundDecalLayoutColor;\n strokeColor?: InspectorGroundDecalLayoutColor;\n strokeWidth?: number;\n align?: 'left' | 'center' | 'right';\n baseline?: 'top' | 'middle' | 'bottom';\n }\n | { kind: 'color'; color: InspectorGroundDecalLayoutColor }\n | {\n kind: 'progress';\n value: number;\n direction?: 'leftToRight' | 'rightToLeft' | 'bottomToTop' | 'topToBottom';\n color: InspectorGroundDecalLayoutColor;\n };\n\ninterface InspectorGroundDecalLayoutLayer {\n index: number;\n id: string;\n role: string;\n kind: string;\n label: string;\n rect: InspectorGroundDecalLayoutRect;\n enabled: boolean;\n editable: boolean;\n zOrder: number;\n opacity?: number;\n scaleMode?: 'free' | 'uniform';\n aspectRatio?: number;\n text?: string;\n preview?: InspectorGroundDecalLayoutLayerPreview;\n}\n\ninterface InspectorGroundDecalLayoutTextureSize {\n width: number;\n height: number;\n}\n\ninterface InspectorGroundDecalLayoutMask {\n enabled: boolean;\n source?: string;\n cornerRadius?: number;\n padding?: number;\n}\n\ninterface InspectorGroundDecalLayoutCompositeValue {\n layers: unknown[];\n previewLayers?: unknown[];\n textureSize?: unknown;\n mask?: unknown;\n}\n\nconst inspectorGroundDecalLayoutImageCache = new Map<string, Promise<HTMLImageElement | null>>();\nconst INSPECTOR_GROUND_DECAL_LAYOUT_MIN_SIZE = 0.02;\nconst INSPECTOR_GROUND_DECAL_LAYOUT_MAX_SIZE = 1.5;\n\nfunction createInspectorGroundDecalLayoutControl<TDocument>(\n doc: Document,\n _target: LocalEditorBrowserInspectorObject<TDocument>,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n bindInput: LocalEditorBrowserInspectorControlRenderContext<TDocument>['bindInput'],\n): HTMLDivElement {\n const editable = isInspectorPropertyEditable(property);\n const layers = readInspectorGroundDecalLayoutLayers(property);\n const previewLayers = readInspectorGroundDecalLayoutPreviewLayers(property, layers);\n const composite = isInspectorGroundDecalLayoutCompositeValue(property.value);\n const textureSize = readInspectorGroundDecalLayoutTextureSize(property.value);\n const mask = readInspectorGroundDecalLayoutMask(property.value);\n const aspectRatio = Math.max(0.2, Math.min(4, readInspectorControlOptionNumber(property, 'aspectRatio') || 1));\n const surfaceMaxWidth = Math.max(96, Math.round(220 * aspectRatio));\n const wrapper = doc.createElement('div');\n wrapper.dataset.editorInspectorGroundDecalLayout = 'true';\n wrapper.style.cssText = [\n 'display:flex',\n 'flex-direction:column',\n 'gap:8px',\n 'min-width:0',\n ].join(';');\n\n const input = doc.createElement('input');\n input.type = 'hidden';\n input.value = serializeInspectorGroundDecalLayoutValue(layers, composite);\n bindInput(input, { source: 'custom' });\n input.dataset.serializedJsonValue = 'true';\n wrapper.appendChild(input);\n\n const surface = doc.createElement('div');\n surface.dataset.editorInspectorGroundDecalLayoutSurface = 'true';\n surface.style.cssText = [\n 'position:relative',\n `width:min(100%, ${surfaceMaxWidth}px)`,\n 'max-width:100%',\n 'align-self:center',\n `aspect-ratio:${aspectRatio} / 1`,\n 'border:1px solid var(--fps-editor-editable-border)',\n 'border-radius:4px',\n 'background:linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(0deg, rgba(255,255,255,0.05) 1px, transparent 1px), var(--fps-editor-field)',\n 'background-size:20px 20px',\n 'overflow:hidden',\n editable ? 'cursor:grab' : 'cursor:not-allowed',\n ].join(';');\n wrapper.appendChild(surface);\n\n const previewCanvas = doc.createElement('canvas');\n previewCanvas.width = textureSize.width;\n previewCanvas.height = textureSize.height;\n previewCanvas.dataset.editorInspectorGroundDecalLayoutPreview = 'true';\n previewCanvas.style.cssText = [\n 'position:absolute',\n 'inset:0',\n 'width:100%',\n 'height:100%',\n 'pointer-events:none',\n ].join(';');\n surface.appendChild(previewCanvas);\n\n const guide = doc.createElement('div');\n guide.style.cssText = [\n 'position:absolute',\n 'inset:8px',\n 'border:1px solid var(--fps-editor-border-soft)',\n 'border-radius:8px',\n 'pointer-events:none',\n ].join(';');\n surface.appendChild(guide);\n\n const fields = doc.createElement('div');\n fields.style.cssText = [\n 'display:flex',\n 'flex-direction:column',\n 'gap:6px',\n 'min-width:0',\n ].join(';');\n wrapper.appendChild(fields);\n const boxByLayer = new Map<InspectorGroundDecalLayoutLayer, HTMLElement>();\n const fieldInputsByLayer = new Map<InspectorGroundDecalLayoutLayer, Map<keyof InspectorGroundDecalLayoutRect, HTMLInputElement>>();\n const editableLayers = layers.filter(isInspectorGroundDecalLayoutLayerEditable);\n const stackRankByLayer = new Map(\n sortInspectorGroundDecalLayoutLayersForStacking(editableLayers)\n .map((layer, index) => [layer, index + 1]),\n );\n const scaleLockedByLayer = new Map<InspectorGroundDecalLayoutLayer, boolean>();\n for (const layer of editableLayers) {\n scaleLockedByLayer.set(layer, isInspectorGroundDecalLayoutUniformScaleLayer(layer));\n }\n let previewRenderVersion = 0;\n\n const renderPreview = (): void => {\n const version = ++previewRenderVersion;\n void renderInspectorGroundDecalLayoutPreview(\n previewCanvas,\n previewLayers,\n textureSize,\n mask,\n () => version === previewRenderVersion,\n );\n };\n\n const updateLayerRect = (layer: InspectorGroundDecalLayoutLayer, rect: InspectorGroundDecalLayoutRect): void => {\n layer.rect = normalizeInspectorGroundDecalLayoutRect(rect);\n const previewLayer = findInspectorGroundDecalLayoutMatchingLayer(previewLayers, layer);\n if (previewLayer && previewLayer !== layer) previewLayer.rect = layer.rect;\n const layerFieldInputs = fieldInputsByLayer.get(layer);\n if (layerFieldInputs) updateInspectorGroundDecalLayoutFieldInputs(layerFieldInputs, layer.rect);\n const layerBox = boxByLayer.get(layer);\n if (layerBox) renderInspectorGroundDecalLayoutBox(layerBox, layer.rect);\n renderPreview();\n };\n\n const commitLayout = (eventType: 'input' | 'change' = 'change'): void => {\n commitInspectorGroundDecalLayoutValue(input, layers, fieldInputsByLayer, composite, eventType);\n };\n\n let dragActive = false;\n const beginDrag = (\n event: PointerEvent | MouseEvent,\n layer: InspectorGroundDecalLayoutLayer,\n box: HTMLElement,\n mode: 'move' | 'resize',\n ) => {\n if (!editable) return;\n if ('button' in event && event.button !== 0) return;\n event.preventDefault();\n event.stopPropagation();\n if (dragActive) return;\n dragActive = true;\n const bounds = surface.getBoundingClientRect();\n const startX = event.clientX;\n const startY = event.clientY;\n const start = layer.rect;\n const captureTarget = event.currentTarget instanceof HTMLElement ? event.currentTarget : box;\n const pointerId = 'pointerId' in event ? event.pointerId : null;\n if (pointerId !== null) {\n try {\n captureTarget.setPointerCapture(pointerId);\n } catch {\n // Capture can fail if the browser has already ended the pointer stream.\n }\n }\n surface.style.cursor = mode === 'move' ? 'grabbing' : 'nwse-resize';\n box.style.cursor = surface.style.cursor;\n\n const move = (moveEvent: PointerEvent | MouseEvent) => {\n moveEvent.preventDefault();\n const dx = bounds.width > 0 ? (moveEvent.clientX - startX) / bounds.width : 0;\n const dy = bounds.height > 0 ? (moveEvent.clientY - startY) / bounds.height : 0;\n const nextRect = mode === 'move'\n ? normalizeInspectorGroundDecalLayoutRect({\n ...start,\n x: start.x + dx,\n z: start.z - dy,\n })\n : resizeInspectorGroundDecalLayoutRect(layer, start, dx, dy, scaleLockedByLayer.get(layer) === true);\n updateLayerRect(layer, nextRect);\n commitLayout('input');\n };\n\n const end = () => {\n doc.defaultView?.removeEventListener('pointermove', move);\n doc.defaultView?.removeEventListener('mousemove', move);\n doc.defaultView?.removeEventListener('pointerup', end);\n doc.defaultView?.removeEventListener('mouseup', end);\n if (pointerId !== null) {\n try {\n captureTarget.releasePointerCapture(pointerId);\n } catch {\n // Ignore capture release errors after pointer cancellation.\n }\n }\n dragActive = false;\n surface.style.cursor = editable ? 'grab' : 'not-allowed';\n box.style.cursor = editable ? 'grab' : 'not-allowed';\n commitLayout();\n };\n\n doc.defaultView?.addEventListener('pointermove', move);\n doc.defaultView?.addEventListener('pointerup', end, { once: true });\n doc.defaultView?.addEventListener('mousemove', move);\n doc.defaultView?.addEventListener('mouseup', end, { once: true });\n };\n\n for (const layer of editableLayers) {\n const box = createInspectorGroundDecalLayoutBox(doc, layer, editable, stackRankByLayer.get(layer) ?? 1);\n surface.appendChild(box);\n boxByLayer.set(layer, box);\n\n const handle = box.querySelector<HTMLButtonElement>('[data-editor-inspector-ground-decal-layout-resize]');\n box.addEventListener('pointerdown', (event) => {\n const target = event.target instanceof HTMLElement ? event.target : null;\n if (target?.closest('[data-editor-inspector-ground-decal-layout-resize]')) return;\n beginDrag(event, layer, box, 'move');\n });\n box.addEventListener('mousedown', (event) => {\n const target = event.target instanceof HTMLElement ? event.target : null;\n if (target?.closest('[data-editor-inspector-ground-decal-layout-resize]')) return;\n beginDrag(event, layer, box, 'move');\n });\n handle?.addEventListener('pointerdown', (event) => beginDrag(event, layer, box, 'resize'));\n handle?.addEventListener('mousedown', (event) => beginDrag(event, layer, box, 'resize'));\n\n let layerInputs: Map<keyof InspectorGroundDecalLayoutRect, HTMLInputElement>;\n layerInputs = createInspectorGroundDecalLayoutLayerFields(doc, fields, layer, editable, (changedKey) => {\n const next = readRectFromLayoutFieldInputs(layerInputs, layer.rect, layer, changedKey, scaleLockedByLayer.get(layer) === true);\n if (!next) return;\n updateLayerRect(layer, next);\n commitLayout('input');\n }, (changedKey) => {\n const next = readRectFromLayoutFieldInputs(layerInputs, layer.rect, layer, changedKey, scaleLockedByLayer.get(layer) === true);\n if (!next) return;\n updateLayerRect(layer, next);\n commitLayout();\n }, isInspectorGroundDecalLayoutUniformScaleLayer(layer) ? {\n locked: scaleLockedByLayer.get(layer) === true,\n onChange: (locked) => {\n scaleLockedByLayer.set(layer, locked);\n if (!locked) return;\n updateLayerRect(layer, normalizeInspectorGroundDecalLayoutUniformRect(layer, layer.rect, 'width'));\n commitLayout();\n },\n } : undefined);\n fieldInputsByLayer.set(layer, layerInputs);\n renderInspectorGroundDecalLayoutBox(box, layer.rect);\n }\n renderPreview();\n\n return wrapper;\n}\n\nfunction readInspectorGroundDecalLayoutLayers<TDocument>(\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): InspectorGroundDecalLayoutLayer[] {\n if (isInspectorGroundDecalLayoutCompositeValue(property.value)) {\n const layers = property.value.layers\n .map((layer, fallbackIndex) => readInspectorGroundDecalLayoutLayer(layer, fallbackIndex))\n .filter((layer): layer is InspectorGroundDecalLayoutLayer => !!layer);\n if (layers.length > 0) return layers;\n }\n const label = readInspectorControlOptionString(property, 'layerLabel') || property.label || 'Ground decal layer';\n return [{\n index: 0,\n id: 'layer_0',\n role: 'layer',\n kind: 'unknown',\n label,\n rect: readInspectorGroundDecalLayoutRect(property.value),\n enabled: true,\n editable: true,\n zOrder: 0,\n }];\n}\n\nfunction readInspectorGroundDecalLayoutPreviewLayers<TDocument>(\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n editableLayers: readonly InspectorGroundDecalLayoutLayer[],\n): InspectorGroundDecalLayoutLayer[] {\n if (isInspectorGroundDecalLayoutCompositeValue(property.value) && Array.isArray(property.value.previewLayers)) {\n const previewLayers = property.value.previewLayers\n .map((layer, fallbackIndex) => readInspectorGroundDecalLayoutLayer(layer, fallbackIndex))\n .filter((layer): layer is InspectorGroundDecalLayoutLayer => !!layer);\n if (previewLayers.length > 0) {\n return previewLayers.map(layer => findInspectorGroundDecalLayoutMatchingLayer(editableLayers, layer) ?? layer);\n }\n }\n return [...editableLayers];\n}\n\nfunction findInspectorGroundDecalLayoutMatchingLayer(\n layers: readonly InspectorGroundDecalLayoutLayer[],\n target: InspectorGroundDecalLayoutLayer,\n): InspectorGroundDecalLayoutLayer | null {\n return layers.find(layer => layer.id === target.id) ?? layers.find(layer => layer.index === target.index) ?? null;\n}\n\nfunction isInspectorGroundDecalLayoutCompositeValue(value: unknown): value is InspectorGroundDecalLayoutCompositeValue {\n return isRecord(value) && Array.isArray(value.layers);\n}\n\nfunction readInspectorGroundDecalLayoutLayer(\n value: unknown,\n fallbackIndex: number,\n): InspectorGroundDecalLayoutLayer | null {\n if (!isRecord(value)) return null;\n const index = Number.isInteger(value.index) && typeof value.index === 'number' && value.index >= 0\n ? value.index\n : fallbackIndex;\n const label = readStringField(value, 'label') || `Layer ${index + 1}`;\n return {\n index,\n id: readStringField(value, 'id') || `layer_${index}`,\n role: readStringField(value, 'role') || 'layer',\n kind: readStringField(value, 'kind') || 'unknown',\n label,\n rect: readInspectorGroundDecalLayoutRect(value.rect),\n enabled: readOptionalBooleanField(value, 'enabled') ?? true,\n editable: readOptionalBooleanField(value, 'editable') ?? true,\n zOrder: readOptionalNumberField(value, 'zOrder') ?? index,\n opacity: readOptionalNumberField(value, 'opacity') ?? undefined,\n scaleMode: readInspectorGroundDecalLayoutScaleMode(value.scaleMode),\n aspectRatio: readInspectorGroundDecalLayoutAspectRatio(value.aspectRatio),\n text: readStringField(value, 'text') || undefined,\n preview: readInspectorGroundDecalLayoutPreview(value.preview),\n };\n}\n\nfunction readInspectorGroundDecalLayoutScaleMode(value: unknown): 'free' | 'uniform' | undefined {\n return value === 'uniform' || value === 'free' ? value : undefined;\n}\n\nfunction readInspectorGroundDecalLayoutAspectRatio(value: unknown): number | undefined {\n return typeof value === 'number' && Number.isFinite(value) && value > 0 ? value : undefined;\n}\n\nfunction readInspectorGroundDecalLayoutPreview(value: unknown): InspectorGroundDecalLayoutLayerPreview | undefined {\n if (!isRecord(value)) return undefined;\n if (value.kind === 'image') {\n const url = readStringField(value, 'url');\n if (!url) return undefined;\n return {\n kind: 'image',\n url,\n alt: readStringField(value, 'alt') || undefined,\n tint: readInspectorGroundDecalLayoutColor(value.tint),\n };\n }\n if (value.kind === 'text') {\n return {\n kind: 'text',\n text: readStringField(value, 'text'),\n fontFamily: readStringField(value, 'fontFamily') || undefined,\n fontSize: readOptionalNumberField(value, 'fontSize') ?? undefined,\n fontWeight: readStringField(value, 'fontWeight') || undefined,\n color: readInspectorGroundDecalLayoutColor(value.color),\n strokeColor: readInspectorGroundDecalLayoutColor(value.strokeColor),\n strokeWidth: readOptionalNumberField(value, 'strokeWidth') ?? undefined,\n align: readInspectorGroundDecalLayoutTextAlign(value.align),\n baseline: readInspectorGroundDecalLayoutTextBaseline(value.baseline),\n };\n }\n if (value.kind === 'color') {\n const color = readInspectorGroundDecalLayoutColor(value.color);\n return color ? { kind: 'color', color } : undefined;\n }\n if (value.kind === 'progress') {\n const color = readInspectorGroundDecalLayoutColor(value.color);\n if (!color) return undefined;\n return {\n kind: 'progress',\n value: readOptionalNumberField(value, 'value') ?? 0,\n direction: readInspectorGroundDecalLayoutProgressDirection(value.direction),\n color,\n };\n }\n return undefined;\n}\n\nfunction readInspectorGroundDecalLayoutTextureSize(value: unknown): InspectorGroundDecalLayoutTextureSize {\n if (!isRecord(value) || !isRecord(value.textureSize)) return { width: 512, height: 512 };\n const width = readOptionalNumberField(value.textureSize, 'width') ?? 512;\n const height = readOptionalNumberField(value.textureSize, 'height') ?? 512;\n return {\n width: Math.max(1, Math.round(width)),\n height: Math.max(1, Math.round(height)),\n };\n}\n\nfunction readInspectorGroundDecalLayoutMask(value: unknown): InspectorGroundDecalLayoutMask | undefined {\n if (!isRecord(value) || !isRecord(value.mask)) return undefined;\n return {\n enabled: readOptionalBooleanField(value.mask, 'enabled') ?? true,\n source: readStringField(value.mask, 'source') || undefined,\n cornerRadius: readOptionalNumberField(value.mask, 'cornerRadius') ?? undefined,\n padding: readOptionalNumberField(value.mask, 'padding') ?? undefined,\n };\n}\n\nfunction readInspectorGroundDecalLayoutColor(value: unknown): InspectorGroundDecalLayoutColor | undefined {\n if (!isRecord(value)) return undefined;\n const r = readOptionalNumberField(value, 'r');\n const g = readOptionalNumberField(value, 'g');\n const b = readOptionalNumberField(value, 'b');\n if (r === null || g === null || b === null) return undefined;\n const a = readOptionalNumberField(value, 'a');\n return {\n r,\n g,\n b,\n ...(a === null ? {} : { a }),\n };\n}\n\nfunction readOptionalNumberField(record: Record<string, unknown>, key: string): number | null {\n const value = record[key];\n return typeof value === 'number' && Number.isFinite(value) ? value : null;\n}\n\nfunction readOptionalBooleanField(record: Record<string, unknown>, key: string): boolean | null {\n const value = record[key];\n return typeof value === 'boolean' ? value : null;\n}\n\nfunction readInspectorGroundDecalLayoutTextAlign(value: unknown): 'left' | 'center' | 'right' | undefined {\n return value === 'left' || value === 'center' || value === 'right' ? value : undefined;\n}\n\nfunction readInspectorGroundDecalLayoutTextBaseline(value: unknown): 'top' | 'middle' | 'bottom' | undefined {\n return value === 'top' || value === 'middle' || value === 'bottom' ? value : undefined;\n}\n\nfunction readInspectorGroundDecalLayoutProgressDirection(\n value: unknown,\n): 'leftToRight' | 'rightToLeft' | 'bottomToTop' | 'topToBottom' | undefined {\n return value === 'leftToRight' || value === 'rightToLeft' || value === 'bottomToTop' || value === 'topToBottom'\n ? value\n : undefined;\n}\n\nfunction isInspectorGroundDecalLayoutLayerEditable(layer: InspectorGroundDecalLayoutLayer): boolean {\n return layer.enabled && layer.editable;\n}\n\nfunction isInspectorGroundDecalLayoutUniformScaleLayer(layer: InspectorGroundDecalLayoutLayer): boolean {\n return layer.scaleMode === 'uniform';\n}\n\nfunction createInspectorGroundDecalLayoutBox(\n doc: Document,\n layer: InspectorGroundDecalLayoutLayer,\n editable: boolean,\n stackRank: number,\n): HTMLDivElement {\n const box = doc.createElement('div');\n box.dataset.editorInspectorGroundDecalLayoutBox = 'true';\n box.dataset.editorInspectorGroundDecalLayoutLayer = layer.id;\n box.title = layer.label;\n box.style.cssText = [\n 'position:absolute',\n `z-index:${stackRank}`,\n 'box-sizing:border-box',\n 'border:2px solid var(--fps-editor-accent-strong)',\n 'background:rgba(65,145,255,0.08)',\n 'box-shadow:inset 0 0 0 1px rgba(0,0,0,0.32)',\n 'border-radius:3px',\n 'overflow:visible',\n editable ? 'cursor:grab' : 'cursor:not-allowed',\n 'touch-action:none',\n ].join(';');\n\n const handle = doc.createElement('button');\n handle.type = 'button';\n handle.dataset.editorInspectorGroundDecalLayoutResize = 'true';\n handle.disabled = !editable;\n handle.title = `Resize ${layer.label}`;\n handle.style.cssText = [\n 'position:absolute',\n 'right:0',\n 'bottom:0',\n 'width:10px',\n 'height:10px',\n 'box-sizing:border-box',\n 'padding:0',\n 'border:1px solid var(--fps-editor-accent-strong)',\n 'border-radius:3px',\n 'background:var(--fps-editor-panel)',\n editable ? 'cursor:nwse-resize' : 'cursor:not-allowed',\n 'touch-action:none',\n ].join(';');\n box.appendChild(handle);\n return box;\n}\n\nfunction createInspectorGroundDecalLayoutLayerFields(\n doc: Document,\n parent: HTMLElement,\n layer: InspectorGroundDecalLayoutLayer,\n editable: boolean,\n onInput: (changedKey: keyof InspectorGroundDecalLayoutRect) => void,\n onCommit: (changedKey: keyof InspectorGroundDecalLayoutRect) => void,\n scaleLock?: {\n locked: boolean;\n onChange: (locked: boolean) => void;\n },\n): Map<keyof InspectorGroundDecalLayoutRect, HTMLInputElement> {\n const row = doc.createElement('div');\n row.style.cssText = [\n 'display:grid',\n 'grid-template-columns:minmax(52px,0.9fr) repeat(4,minmax(0,1fr))',\n 'gap:6px',\n 'align-items:end',\n 'min-width:0',\n ].join(';');\n parent.appendChild(row);\n\n const name = doc.createElement('div');\n name.title = layer.label;\n name.style.cssText = [\n 'min-width:0',\n 'display:flex',\n 'align-items:center',\n 'gap:4px',\n 'color:var(--fps-editor-muted)',\n 'font-size:10px',\n 'font-weight:900',\n 'line-height:24px',\n ].join(';');\n const nameText = doc.createElement('span');\n nameText.textContent = layer.label;\n nameText.style.cssText = 'min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap';\n name.appendChild(nameText);\n if (scaleLock) {\n let locked = scaleLock.locked;\n const lockButton = createInspectorVectorHeaderButton(doc, '', locked);\n lockButton.style.width = '20px';\n lockButton.style.height = '20px';\n lockButton.style.flex = '0 0 auto';\n lockButton.disabled = !editable;\n lockButton.appendChild(createLocalEditorIcon(doc, 'lock', { size: 11, strokeWidth: 2.2 }));\n const applyLockState = (): void => {\n updateInspectorGroundDecalLayoutScaleLockButton(lockButton, layer, locked);\n };\n lockButton.addEventListener('click', (event) => {\n event.preventDefault();\n event.stopPropagation();\n if (!editable) return;\n locked = !locked;\n applyLockState();\n scaleLock.onChange(locked);\n });\n applyLockState();\n name.appendChild(lockButton);\n }\n row.appendChild(name);\n\n const inputs = new Map<keyof InspectorGroundDecalLayoutRect, HTMLInputElement>();\n for (const key of ['x', 'z', 'width', 'depth'] as const) {\n const fieldLabel = key === 'width' ? 'W' : key === 'depth' ? 'D' : key.toUpperCase();\n const accessibleLabel = `${layer.label} ${key === 'width' ? 'width' : key === 'depth' ? 'depth' : key}`;\n const field = doc.createElement('label');\n field.style.cssText = [\n 'display:flex',\n 'flex-direction:column',\n 'gap:3px',\n 'min-width:0',\n 'color:var(--fps-editor-muted)',\n 'font-size:10px',\n 'font-weight:900',\n 'text-transform:uppercase',\n 'letter-spacing:0',\n ].join(';');\n field.textContent = fieldLabel;\n const fieldInput = doc.createElement('input');\n fieldInput.type = 'text';\n fieldInput.inputMode = 'decimal';\n fieldInput.setAttribute('aria-label', accessibleLabel);\n fieldInput.title = accessibleLabel;\n fieldInput.disabled = !editable;\n fieldInput.value = formatLocalEditorBrowserInspectorNumberValue(layer.rect[key]);\n fieldInput.style.cssText = createInspectorInputStyle();\n fieldInput.addEventListener('input', () => onInput(key));\n fieldInput.addEventListener('change', () => onCommit(key));\n fieldInput.addEventListener('keydown', (event) => {\n if (event.key !== 'Enter' || event.isComposing) return;\n event.preventDefault();\n event.stopPropagation();\n onCommit(key);\n });\n field.appendChild(fieldInput);\n row.appendChild(field);\n inputs.set(key, fieldInput);\n }\n return inputs;\n}\n\nfunction updateInspectorGroundDecalLayoutScaleLockButton(\n button: HTMLButtonElement,\n layer: InspectorGroundDecalLayoutLayer,\n locked: boolean,\n): void {\n const title = locked ? `Unlock ${layer.label} size ratio` : `Lock ${layer.label} size ratio`;\n button.title = title;\n button.dataset.editorTooltip = title;\n button.dataset.editorInspectorVectorLockState = locked ? 'locked' : 'unlocked';\n button.setAttribute('aria-pressed', locked ? 'true' : 'false');\n button.style.borderColor = locked ? 'var(--fps-editor-accent)' : 'var(--fps-editor-border)';\n button.style.background = locked ? 'var(--fps-editor-accent-soft)' : 'var(--fps-editor-button-bg)';\n button.style.color = locked ? 'var(--fps-editor-accent)' : 'var(--fps-editor-text)';\n}\n\nasync function renderInspectorGroundDecalLayoutPreview(\n canvas: HTMLCanvasElement,\n layers: readonly InspectorGroundDecalLayoutLayer[],\n textureSize: InspectorGroundDecalLayoutTextureSize,\n mask: InspectorGroundDecalLayoutMask | undefined,\n shouldContinue: () => boolean,\n): Promise<void> {\n if (canvas.width !== textureSize.width) canvas.width = textureSize.width;\n if (canvas.height !== textureSize.height) canvas.height = textureSize.height;\n const imageByLayer = new Map<InspectorGroundDecalLayoutLayer, HTMLImageElement | null>();\n await Promise.all(layers.map(async (layer) => {\n if (layer.preview?.kind !== 'image') return;\n imageByLayer.set(layer, await loadInspectorGroundDecalLayoutImage(canvas.ownerDocument, layer.preview.url));\n }));\n if (!shouldContinue()) return;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n ctx.clearRect(0, 0, textureSize.width, textureSize.height);\n ctx.save();\n applyInspectorGroundDecalLayoutMask(ctx, textureSize, mask);\n const sortedLayers = sortInspectorGroundDecalLayoutLayersForStacking(layers.filter(layer => layer.enabled));\n for (const layer of sortedLayers) {\n drawInspectorGroundDecalLayoutLayer(ctx, layer, textureSize, imageByLayer.get(layer) ?? null);\n }\n ctx.restore();\n}\n\nfunction sortInspectorGroundDecalLayoutLayersForStacking<TLayer extends InspectorGroundDecalLayoutLayer>(\n layers: readonly TLayer[],\n): TLayer[] {\n return [...layers].sort((left, right) => left.zOrder - right.zOrder || left.index - right.index);\n}\n\nfunction applyInspectorGroundDecalLayoutMask(\n ctx: CanvasRenderingContext2D,\n textureSize: InspectorGroundDecalLayoutTextureSize,\n mask: InspectorGroundDecalLayoutMask | undefined,\n): void {\n if (mask?.enabled === false) return;\n const minSize = Math.min(textureSize.width, textureSize.height);\n const padding = Math.max(0, minSize * (mask?.padding ?? 0));\n const radius = Math.max(0, minSize * (mask?.cornerRadius ?? 0.18));\n roundedInspectorGroundDecalLayoutRectPath(\n ctx,\n padding,\n padding,\n textureSize.width - padding * 2,\n textureSize.height - padding * 2,\n radius,\n );\n ctx.clip();\n}\n\nfunction drawInspectorGroundDecalLayoutLayer(\n ctx: CanvasRenderingContext2D,\n layer: InspectorGroundDecalLayoutLayer,\n textureSize: InspectorGroundDecalLayoutTextureSize,\n image: HTMLImageElement | null,\n): void {\n const preview = layer.preview;\n if (!preview) return;\n const rect = resolveInspectorGroundDecalLayoutPixelRect(layer.rect, textureSize);\n ctx.save();\n ctx.globalAlpha = layer.opacity ?? 1;\n if (preview.kind === 'color') {\n ctx.fillStyle = inspectorGroundDecalLayoutColorToCss(preview.color);\n ctx.fillRect(rect.x, rect.y, rect.width, rect.height);\n } else if (preview.kind === 'progress') {\n drawInspectorGroundDecalLayoutProgress(ctx, preview, rect);\n } else if (preview.kind === 'image') {\n if (image) {\n drawInspectorGroundDecalLayoutImage(ctx, image, rect, preview.tint);\n } else {\n drawInspectorGroundDecalLayoutMissingTexture(ctx, rect);\n }\n } else if (preview.kind === 'text') {\n drawInspectorGroundDecalLayoutText(ctx, preview, rect);\n }\n ctx.restore();\n}\n\nfunction drawInspectorGroundDecalLayoutImage(\n ctx: CanvasRenderingContext2D,\n image: HTMLImageElement,\n rect: ReturnType<typeof resolveInspectorGroundDecalLayoutPixelRect>,\n tint: InspectorGroundDecalLayoutColor | undefined,\n): void {\n if (!tint) {\n ctx.drawImage(image, rect.x, rect.y, rect.width, rect.height);\n return;\n }\n const inheritedAlpha = ctx.globalAlpha;\n const tintAlpha = Math.max(0, Math.min(1, tint.a ?? 1));\n const totalAlpha = inheritedAlpha * tintAlpha;\n if (isInspectorGroundDecalLayoutWhiteTint(tint)) {\n ctx.globalAlpha = totalAlpha;\n ctx.drawImage(image, rect.x, rect.y, rect.width, rect.height);\n ctx.globalAlpha = inheritedAlpha;\n return;\n }\n const ownerDocument = ctx.canvas.ownerDocument;\n const canvas = ownerDocument.createElement('canvas');\n canvas.width = Math.max(1, Math.round(rect.width));\n canvas.height = Math.max(1, Math.round(rect.height));\n const tintContext = canvas.getContext('2d');\n if (!tintContext) {\n ctx.globalAlpha = totalAlpha;\n ctx.drawImage(image, rect.x, rect.y, rect.width, rect.height);\n ctx.globalAlpha = inheritedAlpha;\n return;\n }\n try {\n tintContext.drawImage(image, 0, 0, canvas.width, canvas.height);\n const imageData = tintContext.getImageData(0, 0, canvas.width, canvas.height);\n const data = imageData.data;\n const r = Math.max(0, Math.min(1, tint.r));\n const g = Math.max(0, Math.min(1, tint.g));\n const b = Math.max(0, Math.min(1, tint.b));\n for (let index = 0; index < data.length; index += 4) {\n data[index] = Math.round(data[index] * r);\n data[index + 1] = Math.round(data[index + 1] * g);\n data[index + 2] = Math.round(data[index + 2] * b);\n data[index + 3] = Math.round(data[index + 3] * totalAlpha);\n }\n tintContext.putImageData(imageData, 0, 0);\n ctx.globalAlpha = 1;\n ctx.drawImage(canvas, rect.x, rect.y, rect.width, rect.height);\n ctx.globalAlpha = inheritedAlpha;\n } catch {\n ctx.globalAlpha = totalAlpha;\n ctx.drawImage(image, rect.x, rect.y, rect.width, rect.height);\n ctx.globalAlpha = inheritedAlpha;\n }\n}\n\nfunction isInspectorGroundDecalLayoutWhiteTint(tint: InspectorGroundDecalLayoutColor): boolean {\n return tint.r >= 0.999 && tint.g >= 0.999 && tint.b >= 0.999;\n}\n\nfunction drawInspectorGroundDecalLayoutProgress(\n ctx: CanvasRenderingContext2D,\n preview: Extract<InspectorGroundDecalLayoutLayerPreview, { kind: 'progress' }>,\n rect: ReturnType<typeof resolveInspectorGroundDecalLayoutPixelRect>,\n): void {\n const value = Math.max(0, Math.min(1, preview.value));\n const direction = preview.direction ?? 'bottomToTop';\n ctx.fillStyle = inspectorGroundDecalLayoutColorToCss(preview.color);\n if (direction === 'leftToRight') {\n ctx.fillRect(rect.x, rect.y, rect.width * value, rect.height);\n } else if (direction === 'rightToLeft') {\n const width = rect.width * value;\n ctx.fillRect(rect.x + rect.width - width, rect.y, width, rect.height);\n } else if (direction === 'topToBottom') {\n ctx.fillRect(rect.x, rect.y, rect.width, rect.height * value);\n } else {\n const height = rect.height * value;\n ctx.fillRect(rect.x, rect.y + rect.height - height, rect.width, height);\n }\n}\n\nfunction drawInspectorGroundDecalLayoutText(\n ctx: CanvasRenderingContext2D,\n preview: Extract<InspectorGroundDecalLayoutLayerPreview, { kind: 'text' }>,\n rect: ReturnType<typeof resolveInspectorGroundDecalLayoutPixelRect>,\n): void {\n const fontSize = preview.fontSize ?? Math.floor(rect.height * 0.72);\n const fontWeight = preview.fontWeight ?? '800';\n const fontFamily = preview.fontFamily ?? 'system-ui, Arial, sans-serif';\n ctx.font = `${fontWeight} ${fontSize}px ${fontFamily}`;\n ctx.textAlign = preview.align ?? 'center';\n ctx.textBaseline = preview.baseline ?? 'middle';\n const x = resolveInspectorGroundDecalLayoutTextX(rect, ctx.textAlign);\n const y = resolveInspectorGroundDecalLayoutTextY(rect, ctx.textBaseline);\n if (preview.strokeColor && preview.strokeWidth) {\n ctx.lineWidth = preview.strokeWidth;\n ctx.strokeStyle = inspectorGroundDecalLayoutColorToCss(preview.strokeColor);\n ctx.strokeText(preview.text, x, y);\n }\n ctx.fillStyle = inspectorGroundDecalLayoutColorToCss(preview.color ?? { r: 1, g: 1, b: 1, a: 1 });\n ctx.fillText(preview.text, x, y);\n}\n\nfunction resolveInspectorGroundDecalLayoutPixelRect(\n rect: InspectorGroundDecalLayoutRect,\n textureSize: InspectorGroundDecalLayoutTextureSize,\n) {\n const width = rect.width * textureSize.width;\n const height = rect.depth * textureSize.height;\n const centerX = textureSize.width * (0.5 + rect.x);\n const centerY = textureSize.height * (0.5 - rect.z);\n return {\n x: centerX - width / 2,\n y: centerY - height / 2,\n width,\n height,\n };\n}\n\nfunction resolveInspectorGroundDecalLayoutTextX(\n rect: ReturnType<typeof resolveInspectorGroundDecalLayoutPixelRect>,\n align: CanvasTextAlign,\n): number {\n if (align === 'left' || align === 'start') return rect.x;\n if (align === 'right' || align === 'end') return rect.x + rect.width;\n return rect.x + rect.width / 2;\n}\n\nfunction resolveInspectorGroundDecalLayoutTextY(\n rect: ReturnType<typeof resolveInspectorGroundDecalLayoutPixelRect>,\n baseline: CanvasTextBaseline,\n): number {\n if (baseline === 'top' || baseline === 'hanging') return rect.y;\n if (baseline === 'bottom' || baseline === 'alphabetic' || baseline === 'ideographic') return rect.y + rect.height;\n return rect.y + rect.height / 2;\n}\n\nfunction drawInspectorGroundDecalLayoutMissingTexture(\n ctx: CanvasRenderingContext2D,\n rect: ReturnType<typeof resolveInspectorGroundDecalLayoutPixelRect>,\n): void {\n ctx.fillStyle = 'rgba(255,0,80,0.55)';\n ctx.fillRect(rect.x, rect.y, rect.width, rect.height);\n ctx.strokeStyle = 'rgba(255,255,255,0.9)';\n ctx.lineWidth = 4;\n ctx.strokeRect(rect.x, rect.y, rect.width, rect.height);\n}\n\nfunction roundedInspectorGroundDecalLayoutRectPath(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n width: number,\n height: number,\n radius: number,\n): void {\n const r = Math.max(0, Math.min(radius, width / 2, height / 2));\n ctx.beginPath();\n ctx.moveTo(x + r, y);\n ctx.lineTo(x + width - r, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + r);\n ctx.lineTo(x + width, y + height - r);\n ctx.quadraticCurveTo(x + width, y + height, x + width - r, y + height);\n ctx.lineTo(x + r, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - r);\n ctx.lineTo(x, y + r);\n ctx.quadraticCurveTo(x, y, x + r, y);\n ctx.closePath();\n}\n\nfunction inspectorGroundDecalLayoutColorToCss(color: InspectorGroundDecalLayoutColor): string {\n const r = Math.round(Math.max(0, Math.min(1, color.r)) * 255);\n const g = Math.round(Math.max(0, Math.min(1, color.g)) * 255);\n const b = Math.round(Math.max(0, Math.min(1, color.b)) * 255);\n const a = Math.max(0, Math.min(1, color.a ?? 1));\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n}\n\nfunction loadInspectorGroundDecalLayoutImage(doc: Document, url: string): Promise<HTMLImageElement | null> {\n const cached = inspectorGroundDecalLayoutImageCache.get(url);\n if (cached) return cached;\n const promise = new Promise<HTMLImageElement | null>((resolve) => {\n const image = doc.createElement('img');\n image.onload = () => resolve(image);\n image.onerror = () => resolve(null);\n image.src = url;\n });\n inspectorGroundDecalLayoutImageCache.set(url, promise);\n return promise;\n}\n\nfunction readInspectorGroundDecalLayoutRect(value: unknown): InspectorGroundDecalLayoutRect {\n if (!isRecord(value)) return { x: 0, z: 0, width: 0.25, depth: 0.25 };\n return normalizeInspectorGroundDecalLayoutRect({\n x: readFiniteRecordNumber(value, 'x', 0),\n z: readFiniteRecordNumber(value, 'z', 0),\n width: readFiniteRecordNumber(value, 'width', 0.25),\n depth: readFiniteRecordNumber(value, 'depth', 0.25),\n });\n}\n\nfunction readFiniteRecordNumber(record: Record<string, unknown>, key: string, fallback: number): number {\n const value = record[key];\n return typeof value === 'number' && Number.isFinite(value) ? value : fallback;\n}\n\nfunction normalizeInspectorGroundDecalLayoutRect(rect: InspectorGroundDecalLayoutRect): InspectorGroundDecalLayoutRect {\n return {\n x: clampNumber(roundInspectorGroundDecalLayoutValue(rect.x), -1, 1),\n z: clampNumber(roundInspectorGroundDecalLayoutValue(rect.z), -1, 1),\n width: clampNumber(roundInspectorGroundDecalLayoutValue(rect.width), INSPECTOR_GROUND_DECAL_LAYOUT_MIN_SIZE, INSPECTOR_GROUND_DECAL_LAYOUT_MAX_SIZE),\n depth: clampNumber(roundInspectorGroundDecalLayoutValue(rect.depth), INSPECTOR_GROUND_DECAL_LAYOUT_MIN_SIZE, INSPECTOR_GROUND_DECAL_LAYOUT_MAX_SIZE),\n };\n}\n\nfunction resizeInspectorGroundDecalLayoutRect(\n layer: InspectorGroundDecalLayoutLayer,\n start: InspectorGroundDecalLayoutRect,\n dx: number,\n dy: number,\n locked: boolean,\n): InspectorGroundDecalLayoutRect {\n if (!locked) {\n return normalizeInspectorGroundDecalLayoutRect({\n ...start,\n width: start.width + dx * 2,\n depth: start.depth + dy * 2,\n });\n }\n const source: 'width' | 'depth' = Math.abs(dx) >= Math.abs(dy) ? 'width' : 'depth';\n return normalizeInspectorGroundDecalLayoutUniformRect(layer, {\n ...start,\n width: start.width + dx * 2,\n depth: start.depth + dy * 2,\n }, source);\n}\n\nfunction normalizeInspectorGroundDecalLayoutUniformRect(\n layer: InspectorGroundDecalLayoutLayer,\n rect: InspectorGroundDecalLayoutRect,\n source: 'width' | 'depth',\n): InspectorGroundDecalLayoutRect {\n const aspectRatio = resolveInspectorGroundDecalLayoutAspectRatio(layer);\n const normalizedPosition = normalizeInspectorGroundDecalLayoutRect(rect);\n const candidateDepth = source === 'width' ? rect.width / aspectRatio : rect.depth;\n const minDepth = Math.max(INSPECTOR_GROUND_DECAL_LAYOUT_MIN_SIZE, INSPECTOR_GROUND_DECAL_LAYOUT_MIN_SIZE / aspectRatio);\n const maxDepth = Math.min(INSPECTOR_GROUND_DECAL_LAYOUT_MAX_SIZE, INSPECTOR_GROUND_DECAL_LAYOUT_MAX_SIZE / aspectRatio);\n const depth = clampNumber(candidateDepth, minDepth, maxDepth);\n return {\n ...normalizedPosition,\n width: roundInspectorGroundDecalLayoutValue(depth * aspectRatio),\n depth: roundInspectorGroundDecalLayoutValue(depth),\n };\n}\n\nfunction resolveInspectorGroundDecalLayoutAspectRatio(layer: InspectorGroundDecalLayoutLayer): number {\n if (typeof layer.aspectRatio === 'number' && Number.isFinite(layer.aspectRatio) && layer.aspectRatio > 0) {\n return layer.aspectRatio;\n }\n if (layer.rect.depth > 0) return Math.max(0.001, layer.rect.width / layer.rect.depth);\n return 1;\n}\n\nfunction roundInspectorGroundDecalLayoutValue(value: number): number {\n return Math.round(value * 1000) / 1000;\n}\n\nfunction renderInspectorGroundDecalLayoutBox(box: HTMLElement, rect: InspectorGroundDecalLayoutRect): void {\n const left = (0.5 + rect.x - rect.width / 2) * 100;\n const top = (0.5 - rect.z - rect.depth / 2) * 100;\n box.style.left = `${left}%`;\n box.style.top = `${top}%`;\n box.style.width = `${rect.width * 100}%`;\n box.style.height = `${rect.depth * 100}%`;\n}\n\nfunction updateInspectorGroundDecalLayoutFieldInputs(\n inputs: ReadonlyMap<keyof InspectorGroundDecalLayoutRect, HTMLInputElement>,\n rect: InspectorGroundDecalLayoutRect,\n): void {\n for (const key of ['x', 'z', 'width', 'depth'] as const) {\n const input = inputs.get(key);\n if (input) input.value = formatLocalEditorBrowserInspectorNumberValue(rect[key]);\n }\n}\n\nfunction readRectFromLayoutFieldInputs(\n inputs: ReadonlyMap<keyof InspectorGroundDecalLayoutRect, HTMLInputElement>,\n fallback: InspectorGroundDecalLayoutRect,\n layer: InspectorGroundDecalLayoutLayer,\n changedKey: keyof InspectorGroundDecalLayoutRect,\n locked: boolean,\n): InspectorGroundDecalLayoutRect | null {\n const next = { ...fallback };\n for (const key of ['x', 'z', 'width', 'depth'] as const) {\n const input = inputs.get(key);\n if (!input) continue;\n const value = parseLocalEditorBrowserInspectorNumberValue(input.value, 'final');\n if (value == null) return null;\n next[key] = value;\n }\n if (locked && (changedKey === 'width' || changedKey === 'depth')) {\n return normalizeInspectorGroundDecalLayoutUniformRect(layer, next, changedKey);\n }\n return normalizeInspectorGroundDecalLayoutRect(next);\n}\n\nfunction serializeInspectorGroundDecalLayoutValue(\n layers: readonly InspectorGroundDecalLayoutLayer[],\n composite: boolean,\n): string {\n if (!composite && layers.length === 1) return JSON.stringify(normalizeInspectorGroundDecalLayoutRect(layers[0]!.rect));\n return JSON.stringify({\n layers: layers.map(layer => ({\n index: layer.index,\n id: layer.id,\n role: layer.role,\n kind: layer.kind,\n label: layer.label,\n rect: normalizeInspectorGroundDecalLayoutRect(layer.rect),\n })),\n });\n}\n\nfunction commitInspectorGroundDecalLayoutValue(\n input: HTMLInputElement,\n layers: readonly InspectorGroundDecalLayoutLayer[],\n fieldInputsByLayer: ReadonlyMap<InspectorGroundDecalLayoutLayer, ReadonlyMap<keyof InspectorGroundDecalLayoutRect, HTMLInputElement>>,\n composite: boolean,\n eventType: 'input' | 'change',\n): void {\n for (const layer of layers) {\n layer.rect = normalizeInspectorGroundDecalLayoutRect(layer.rect);\n const fieldInputs = fieldInputsByLayer.get(layer);\n if (fieldInputs) updateInspectorGroundDecalLayoutFieldInputs(fieldInputs, layer.rect);\n }\n const nextValue = serializeInspectorGroundDecalLayoutValue(layers, composite);\n if (input.value === nextValue) return;\n input.value = nextValue;\n input.dispatchEvent(new Event(eventType, { bubbles: true }));\n}\n\nfunction createInspectorAssetPickerCardControl<TDocument>(\n doc: Document,\n _target: LocalEditorBrowserInspectorObject<TDocument>,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n bindInput: LocalEditorBrowserInspectorControlRenderContext<TDocument>['bindInput'],\n): HTMLDivElement {\n const wrapper = doc.createElement('div');\n wrapper.dataset.editorInspectorAssetPickerControl = 'true';\n const hasCopyAction = !!readInspectorControlOptionString(property, 'copyActionValue');\n const isEditable = isInspectorPropertyEditable(property);\n const actionDisabledReason = readInspectorControlOptionString(property, 'actionDisabledReason')\n || readInspectorControlOptionString(property, 'disabledReason')\n || property.disabledReason\n || '';\n const coverageLabel = readInspectorControlOptionString(property, 'coverageLabel')\n || readInspectorControlOptionString(property, 'batchCoverageLabel')\n || '';\n wrapper.style.cssText = [\n 'min-width:0',\n 'display:grid',\n hasCopyAction ? 'grid-template-columns:1fr auto auto' : 'grid-template-columns:1fr auto',\n 'align-items:stretch',\n 'gap:6px',\n ].join(';');\n\n const input = doc.createElement('input');\n input.type = 'hidden';\n input.value = property.mixed ? '' : String(property.value ?? '');\n bindInput(input, { source: 'asset' });\n wrapper.appendChild(input);\n\n const card = doc.createElement('button');\n card.type = 'button';\n card.dataset.editorInspectorAssetPicker = 'true';\n card.disabled = !isEditable;\n if (actionDisabledReason) card.title = actionDisabledReason;\n card.style.cssText = [\n 'min-width:0',\n 'min-height:42px',\n 'display:flex',\n 'align-items:center',\n 'gap:8px',\n 'padding:6px 7px',\n 'border:1px solid var(--fps-editor-editable-border)',\n 'border-radius:3px',\n 'background:var(--fps-editor-field)',\n 'color:var(--fps-editor-text)',\n 'text-align:left',\n card.disabled ? 'cursor:not-allowed' : 'cursor:pointer',\n card.disabled ? 'opacity:0.72' : '',\n ].filter(Boolean).join(';');\n\n const label = readInspectorControlOptionString(property, 'currentLabel')\n || readInspectorControlOptionString(property, 'placeholder')\n || (property.mixed ? '--' : String(property.value || 'None'));\n const meta = readInspectorControlOptionString(property, 'currentMeta')\n || readInspectorControlOptionString(property, 'pickerKind')\n || property.label;\n const preview = readInspectorAssetPickerPreview(property, 'currentPreview');\n card.appendChild(createAssetPreviewElement(doc, {\n id: `${property.path}:preview`,\n label,\n preview,\n }, 'list'));\n\n const body = doc.createElement('div');\n body.style.cssText = 'min-width:0;flex:1';\n const title = doc.createElement('div');\n title.textContent = label;\n title.style.cssText = 'font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap';\n const subtitle = doc.createElement('div');\n subtitle.textContent = meta;\n subtitle.style.cssText = 'color:var(--fps-editor-muted);font-size:11px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap';\n body.appendChild(title);\n body.appendChild(subtitle);\n card.appendChild(body);\n wrapper.appendChild(card);\n\n const action = doc.createElement('button');\n action.type = 'button';\n action.dataset.editorInspectorAssetPicker = 'true';\n action.disabled = card.disabled;\n action.textContent = readInspectorControlOptionString(property, 'actionLabel') || '替换';\n if (actionDisabledReason) action.title = actionDisabledReason;\n action.style.cssText = [\n 'width:54px',\n 'min-height:42px',\n 'padding:0 8px',\n 'border:1px solid var(--fps-editor-editable-border)',\n 'border-radius:3px',\n 'background:var(--fps-editor-button-bg)',\n 'color:var(--fps-editor-text)',\n 'font-size:11px',\n 'font-weight:900',\n action.disabled ? 'cursor:not-allowed' : 'cursor:pointer',\n action.disabled ? 'opacity:0.72' : '',\n ].filter(Boolean).join(';');\n wrapper.appendChild(action);\n\n const copyValue = readInspectorControlOptionString(property, 'copyActionValue');\n if (copyValue) {\n const copyAction = doc.createElement('button');\n copyAction.type = 'button';\n copyAction.dataset.editorInspectorAssetCopy = 'true';\n copyAction.dataset.editorInspectorAssetCopyValue = copyValue;\n copyAction.disabled = card.disabled;\n copyAction.textContent = readInspectorControlOptionString(property, 'copyActionLabel') || '复制';\n copyAction.title = readInspectorControlOptionString(property, 'copyActionTooltip');\n copyAction.style.cssText = [\n 'width:48px',\n 'min-height:42px',\n 'padding:0 8px',\n 'border:1px solid var(--fps-editor-editable-border)',\n 'border-radius:3px',\n 'background:var(--fps-editor-button-bg)',\n 'color:var(--fps-editor-text)',\n 'font-size:11px',\n 'font-weight:900',\n copyAction.disabled ? 'cursor:not-allowed' : 'cursor:pointer',\n copyAction.disabled ? 'opacity:0.72' : '',\n ].filter(Boolean).join(';');\n wrapper.appendChild(copyAction);\n }\n if (card.disabled && (coverageLabel || actionDisabledReason)) {\n const status = doc.createElement('div');\n status.dataset.editorInspectorActionStatus = 'true';\n status.textContent = [coverageLabel, actionDisabledReason].filter(Boolean).join(' · ');\n status.style.cssText = [\n 'grid-column:1/-1',\n 'min-width:0',\n 'padding:5px 7px',\n 'border:1px solid var(--fps-editor-warn-border)',\n 'border-radius:3px',\n 'background:var(--fps-editor-warn-soft)',\n 'color:var(--fps-editor-warn)',\n 'font-size:11px',\n 'font-weight:800',\n 'line-height:1.35',\n ].join(';');\n wrapper.appendChild(status);\n }\n return wrapper;\n}\n\nfunction createInspectorReadonlyControl<TDocument>(\n doc: Document,\n _target: LocalEditorBrowserInspectorObject<TDocument>,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): HTMLElement {\n if (!property.mixed && isExpandableInspectorValue(property.value)) {\n return createInspectorObjectReadonlyControl(doc, property);\n }\n const access = getInspectorPropertyAccess(property);\n const effect = getInspectorPropertyEffect(property);\n return createInspectorReadonlyScalarControl(\n doc,\n property.mixed ? '--' : formatLocalEditorBrowserInspectorValue(property.value),\n access,\n effect,\n createInspectorStatusTitle(access, effect, property.tooltip ?? property.disabledReason),\n property.label,\n );\n}\n\nfunction createInspectorObjectReadonlyControl<TDocument>(\n doc: Document,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): HTMLDetailsElement {\n const access = getInspectorPropertyAccess(property);\n const effect = getInspectorPropertyEffect(property);\n const details = createInspectorReadonlyDetailsShell(doc, property, access);\n const summary = doc.createElement('summary');\n summary.style.cssText = 'cursor:pointer;display:flex;align-items:center;gap:5px;overflow:hidden;white-space:nowrap';\n const icon = createLocalEditorIcon(doc, 'lock', { size: 11, strokeWidth: 2.3 });\n icon.style.opacity = '0.78';\n summary.appendChild(icon);\n const summaryText = doc.createElement('span');\n summaryText.textContent = formatInspectorObjectSummary(property.value);\n summaryText.style.cssText = 'min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap';\n summary.appendChild(summaryText);\n const formattedValue = formatLocalEditorBrowserInspectorValue(property.value);\n if (formattedValue) summary.appendChild(createInspectorReadonlyCopyButton(doc, formattedValue, property.label));\n details.appendChild(summary);\n const pre = doc.createElement('pre');\n pre.textContent = formattedValue;\n pre.style.cssText = [\n 'max-height:220px',\n 'overflow:auto',\n 'white-space:pre-wrap',\n 'word-break:break-word',\n 'margin:6px 0 0',\n 'padding:7px',\n `border:1px solid ${effect === 'unsupported' ? 'var(--fps-editor-danger-border)' : effect === 'default' || effect === 'derived' || effect === 'runtime' || access === 'runtime' ? 'var(--fps-editor-warn-border)' : 'var(--fps-editor-readonly-border)'}`,\n 'border-radius:3px',\n 'background:var(--fps-editor-field)',\n 'font-size:11px',\n 'line-height:1.45',\n ].join(';');\n details.appendChild(pre);\n return details;\n}\n\nexport function applyLocalEditorBrowserInspectorControlBinding<TDocument>(\n element: HTMLElement,\n target: LocalEditorBrowserInspectorObject<TDocument>,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n options?: LocalEditorBrowserInspectorControlBindingOptions,\n): void {\n element.dataset.serializedTargetId = target.activeId ?? target.targetIds[0] ?? '';\n if (target.targetIds.length > 1) element.dataset.serializedTargetIds = target.targetIds.join(',');\n element.dataset.serializedPath = property.path;\n element.dataset.serializedControl = property.control;\n element.dataset.serializedValueType = property.valueType;\n element.dataset.serializedCommitMode = property.commitMode;\n element.dataset.serializedPersistence = property.persistence;\n element.dataset.serializedEffect = getInspectorPropertyEffect(property);\n if (readInspectorControlOptionBoolean(property, 'forceVectorLock')) element.dataset.serializedForceVectorLock = 'true';\n if (property.disabledReason) element.dataset.serializedDisabledReason = property.disabledReason;\n if (options?.source) element.dataset.serializedEditSource = options.source;\n const access = getInspectorPropertyAccess(property);\n const effect = getInspectorPropertyEffect(property);\n element.title = access === 'editable' && effect === 'active'\n ? property.tooltip ?? property.label\n : createInspectorStatusTitle(access, effect, property.tooltip ?? property.disabledReason ?? property.label);\n element.dataset.editorTooltip = element.title;\n if ('disabled' in element) {\n (element as HTMLInputElement | HTMLSelectElement).disabled = !isInspectorPropertyEditable(property);\n }\n}\n\nfunction createInspectorInputStyle(): string {\n return [\n createEditorInputStyle(),\n 'padding:0 6px',\n 'background:var(--fps-editor-editable-bg)',\n 'border-color:var(--fps-editor-editable-border)',\n 'color:var(--fps-editor-text-strong)',\n 'box-shadow:var(--fps-editor-editable-shadow)',\n ].join(';');\n}\n\nfunction appendReadOnlyRow(doc: Document, parent: HTMLElement, label: string, value: string): void {\n const valueElement = createInspectorReadonlyScalarControl(doc, value, 'readonly', 'active', 'Read-only summary');\n const row = createPropertyRow(doc, label, valueElement);\n row.dataset.editorInspectorAccess = 'readonly';\n const labelElement = row.firstElementChild as HTMLElement | null;\n if (labelElement) labelElement.style.cssText = createInspectorPropertyLabelStyle('readonly', 'active');\n parent.appendChild(row);\n}\n\nfunction createSelectionSummaryInspectorObject<TDocument>(\n state: LocalEditorBrowserUiState<TDocument>,\n): LocalEditorBrowserInspectorObject<TDocument> | null {\n const targetIds = state.selectedIds;\n if (targetIds.length === 0) return null;\n const activeId = state.selectionSummary?.activeId ?? state.activeId ?? targetIds[0] ?? null;\n return {\n targetIds,\n activeId,\n label: `${targetIds.length} objects`,\n selection: {\n targetIds,\n activeId,\n },\n sections: [],\n };\n}\n\nexport function formatLocalEditorBrowserInspectorValue(value: unknown): string {\n if (value == null) return '';\n if (typeof value === 'number') return formatLocalEditorBrowserInspectorNumberValue(value);\n if (typeof value === 'object') return JSON.stringify(toStableInspectorJsonValue(value), null, 2);\n if (typeof value === 'function') return `[Function ${value.name || 'anonymous'}]`;\n if (typeof value === 'symbol') return String(value);\n return String(value);\n}\n\nexport function formatLocalEditorBrowserInspectorNumberValue(value: number): string {\n if (!Number.isFinite(value)) return String(value);\n const rounded = Math.round(value * 1000) / 1000;\n if (Object.is(rounded, -0)) return '0';\n return rounded.toFixed(3).replace(/\\.?0+$/, '');\n}\n\nexport function parseLocalEditorBrowserInspectorNumberValue(\n value: string,\n mode: 'live' | 'final',\n): number | null {\n const trimmed = value.trim();\n if (trimmed === '') return mode === 'final' ? 0 : null;\n if (mode === 'live' && !isCompleteInspectorNumberInput(trimmed)) return null;\n const numeric = Number(trimmed);\n return Number.isFinite(numeric) ? numeric : null;\n}\n\nfunction isCompleteInspectorNumberInput(value: string): boolean {\n return /^[+-]?(?:\\d+|\\d*\\.\\d+)(?:[eE][+-]?\\d+)?$/.test(value);\n}\n\nfunction formatInspectorEditableValue<TDocument>(\n value: unknown,\n property: LocalEditorBrowserInspectorProperty<TDocument>,\n): string {\n if (\n typeof value === 'number'\n && (property.control === 'number' || property.valueType === 'number' || property.control === 'vec2' || property.control === 'vec3')\n ) {\n return formatLocalEditorBrowserInspectorNumberValue(value);\n }\n return String(value);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction isExpandableInspectorValue(value: unknown): boolean {\n return !!value && typeof value === 'object';\n}\n\nfunction formatInspectorObjectSummary(value: unknown): string {\n if (Array.isArray(value)) return `Array(${value.length})`;\n if (!isRecord(value)) return 'Object';\n const keys = Object.keys(value).sort();\n if (keys.length === 0) return 'Object {}';\n const shown = keys.slice(0, 4).join(', ');\n return keys.length > 4 ? `Object { ${shown}, ... }` : `Object { ${shown} }`;\n}\n\nfunction toStableInspectorJsonValue(value: unknown, seen = new WeakSet<object>(), depth = 0): unknown {\n if (value == null || typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') return value;\n if (typeof value === 'bigint') return String(value);\n if (typeof value === 'function') return `[Function ${value.name || 'anonymous'}]`;\n if (typeof value === 'symbol') return String(value);\n if (typeof value !== 'object') return String(value);\n if (seen.has(value)) return '[Circular]';\n if (depth > 6) return '[MaxDepth]';\n seen.add(value);\n if (Array.isArray(value)) return value.map(item => toStableInspectorJsonValue(item, seen, depth + 1));\n const record = value as Record<string, unknown>;\n const output: Record<string, unknown> = {};\n for (const key of Object.keys(record).sort()) {\n output[key] = toStableInspectorJsonValue(record[key], seen, depth + 1);\n }\n return output;\n}\n\nfunction colorValueToHex(value: unknown): string {\n if (!value || typeof value !== 'object') return '#ffffff';\n const color = value as { r?: unknown; g?: unknown; b?: unknown };\n const toHex = (channel: unknown) => {\n const value = typeof channel === 'number' && Number.isFinite(channel) ? channel : 1;\n return Math.round(Math.max(0, Math.min(1, value)) * 255).toString(16).padStart(2, '0');\n };\n return `#${toHex(color.r)}${toHex(color.g)}${toHex(color.b)}`;\n}\n"]}
|