@babylonjs/inspector 9.0.0 → 9.2.0
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/bin/inspector-bridge.mjs +4734 -0
- package/bin/inspector-cli.mjs +4931 -0
- package/lib/cli/protocol.d.ts +180 -0
- package/lib/components/curveEditor/bottomBar/rangeSelector.d.ts +6 -0
- package/lib/components/curveEditor/bottomBar.d.ts +6 -0
- package/lib/components/curveEditor/canvas/canvas.d.ts +6 -0
- package/lib/components/curveEditor/canvas/curve.d.ts +14 -0
- package/lib/components/curveEditor/canvas/curveData.d.ts +40 -0
- package/lib/components/curveEditor/canvas/frameBar.d.ts +12 -0
- package/lib/components/curveEditor/canvas/graph.d.ts +11 -0
- package/lib/components/curveEditor/canvas/keyPoint.d.ts +34 -0
- package/lib/components/curveEditor/canvas/playHead.d.ts +12 -0
- package/lib/components/curveEditor/canvas/rangeFrameBar.d.ts +10 -0
- package/lib/components/curveEditor/curveEditor.d.ts +29 -0
- package/lib/components/curveEditor/curveEditorButton.d.ts +31 -0
- package/lib/components/curveEditor/curveEditorColors.d.ts +56 -0
- package/lib/components/curveEditor/curveEditorContext.d.ts +267 -0
- package/lib/components/curveEditor/rangeSelector.d.ts +6 -0
- package/lib/components/curveEditor/sideBar/addAnimationPanel.d.ts +10 -0
- package/lib/components/curveEditor/sideBar/animationList.d.ts +6 -0
- package/lib/components/curveEditor/sideBar/editAnimationPanel.d.ts +12 -0
- package/lib/components/curveEditor/sideBar/loadAnimationPanel.d.ts +10 -0
- package/lib/components/curveEditor/sideBar/saveAnimationPanel.d.ts +10 -0
- package/lib/components/curveEditor/sideBar.d.ts +6 -0
- package/lib/components/curveEditor/topBar.d.ts +6 -0
- package/lib/components/debug/debugPane.d.ts +6 -0
- package/lib/components/errorBoundary.d.ts +31 -0
- package/lib/components/extensibleAccordion.d.ts +67 -0
- package/lib/components/gizmoToolbar.d.ts +7 -0
- package/lib/components/pane.d.ts +4 -0
- package/lib/components/performanceViewer/canvasGraph.d.ts +16 -0
- package/lib/components/performanceViewer/canvasGraphService.d.ts +238 -0
- package/lib/components/performanceViewer/graphSupportingTypes.d.ts +90 -0
- package/lib/components/performanceViewer/performanceSidebar.d.ts +10 -0
- package/lib/components/performanceViewer/performanceViewer.d.ts +15 -0
- package/lib/components/pickingToolbar.d.ts +11 -0
- package/lib/components/properties/animation/animationGroupProperties.d.ts +8 -0
- package/lib/components/properties/animation/animationsProperties.d.ts +21 -0
- package/lib/components/properties/animation/targetedAnimationProperties.d.ts +7 -0
- package/lib/components/properties/atmosphereProperties.d.ts +20 -0
- package/lib/components/properties/audio/soundProperties.d.ts +8 -0
- package/lib/components/properties/boundProperty.d.ts +80 -0
- package/lib/components/properties/cameras/arcRotateCameraProperties.d.ts +17 -0
- package/lib/components/properties/cameras/cameraProperties.d.ts +10 -0
- package/lib/components/properties/cameras/followCameraProperties.d.ts +8 -0
- package/lib/components/properties/cameras/freeCameraProperties.d.ts +11 -0
- package/lib/components/properties/cameras/geospatialCameraProperties.d.ts +11 -0
- package/lib/components/properties/cameras/targetCameraProperties.d.ts +8 -0
- package/lib/components/properties/commonGeneralProperties.d.ts +16 -0
- package/lib/components/properties/frameGraph/frameGraphProperties.d.ts +8 -0
- package/lib/components/properties/generateCopyString.d.ts +7 -0
- package/lib/components/properties/lights/areaLightProperties.d.ts +5 -0
- package/lib/components/properties/lights/clusteredLightContainerProperties.d.ts +10 -0
- package/lib/components/properties/lights/directionalLightProperties.d.ts +8 -0
- package/lib/components/properties/lights/hemisphericLightProperties.d.ts +5 -0
- package/lib/components/properties/lights/lightProperties.d.ts +7 -0
- package/lib/components/properties/lights/pointLightProperties.d.ts +5 -0
- package/lib/components/properties/lights/shadowGeneratorProperties.d.ts +6 -0
- package/lib/components/properties/lights/shadowLightProperties.d.ts +5 -0
- package/lib/components/properties/lights/spotLightProperties.d.ts +5 -0
- package/lib/components/properties/linkToEntityPropertyLine.d.ts +27 -0
- package/lib/components/properties/materials/materialProperties.d.ts +11 -0
- package/lib/components/properties/materials/multiMaterialProperties.d.ts +7 -0
- package/lib/components/properties/materials/nodeMaterialProperties.d.ts +8 -0
- package/lib/components/properties/materials/normalMapProperties.d.ts +19 -0
- package/lib/components/properties/materials/openpbrMaterialProperties.d.ts +64 -0
- package/lib/components/properties/materials/pbrBaseMaterialProperties.d.ts +285 -0
- package/lib/components/properties/materials/skyMaterialProperties.d.ts +5 -0
- package/lib/components/properties/materials/standardMaterialProperties.d.ts +29 -0
- package/lib/components/properties/metadataProperties.d.ts +12 -0
- package/lib/components/properties/nodes/abstractMeshProperties.d.ts +27 -0
- package/lib/components/properties/nodes/gaussianSplattingProperties.d.ts +5 -0
- package/lib/components/properties/nodes/meshProperties.d.ts +11 -0
- package/lib/components/properties/nodes/nodeProperties.d.ts +7 -0
- package/lib/components/properties/particles/attractor.d.ts +23 -0
- package/lib/components/properties/particles/attractorAdapter.d.ts +56 -0
- package/lib/components/properties/particles/attractorList.d.ts +15 -0
- package/lib/components/properties/particles/attractorProperties.d.ts +11 -0
- package/lib/components/properties/particles/colorProperties.d.ts +11 -0
- package/lib/components/properties/particles/commandsProperties.d.ts +13 -0
- package/lib/components/properties/particles/emissionProperties.d.ts +11 -0
- package/lib/components/properties/particles/emitterProperties.d.ts +13 -0
- package/lib/components/properties/particles/lifetimeProperties.d.ts +11 -0
- package/lib/components/properties/particles/nodeEditorProperties.d.ts +12 -0
- package/lib/components/properties/particles/rotationProperties.d.ts +11 -0
- package/lib/components/properties/particles/sizeProperties.d.ts +11 -0
- package/lib/components/properties/particles/spritesheetProperties.d.ts +11 -0
- package/lib/components/properties/particles/systemProperties.d.ts +13 -0
- package/lib/components/properties/physics/physicsProperties.d.ts +6 -0
- package/lib/components/properties/postProcesses/postProcessProperties.d.ts +10 -0
- package/lib/components/properties/propertiesPane.d.ts +2 -0
- package/lib/components/properties/renderingPipelines/defaultRenderingPipelineProperties.d.ts +23 -0
- package/lib/components/properties/renderingPipelines/iblShadowsRenderPipelineProperties.d.ts +11 -0
- package/lib/components/properties/renderingPipelines/lensRenderingPipelineProperties.d.ts +8 -0
- package/lib/components/properties/renderingPipelines/postProcessRenderPipelineProperties.d.ts +5 -0
- package/lib/components/properties/renderingPipelines/ssao2RenderingPipelineProperties.d.ts +8 -0
- package/lib/components/properties/renderingPipelines/ssaoRenderingPipelineProperties.d.ts +5 -0
- package/lib/components/properties/renderingPipelines/ssrRenderingPipelineProperties.d.ts +17 -0
- package/lib/components/properties/skeleton/boneProperties.d.ts +7 -0
- package/lib/components/properties/skeleton/skeletonProperties.d.ts +8 -0
- package/lib/components/properties/sprites/spriteManagerProperties.d.ts +25 -0
- package/lib/components/properties/sprites/spriteProperties.d.ts +19 -0
- package/lib/components/properties/textures/advancedDynamicTextureProperties.d.ts +11 -0
- package/lib/components/properties/textures/baseTextureProperties.d.ts +16 -0
- package/lib/components/properties/textures/cubeTextureProperties.d.ts +5 -0
- package/lib/components/properties/textures/multiRenderTargetProperties.d.ts +5 -0
- package/lib/components/properties/textures/renderTargetTextureProperties.d.ts +5 -0
- package/lib/components/properties/textures/textureFormatUtils.d.ts +48 -0
- package/lib/components/properties/textures/texturePreview.d.ts +17 -0
- package/lib/components/properties/textures/textureProperties.d.ts +11 -0
- package/lib/components/properties/textures/thinTextureProperties.d.ts +8 -0
- package/lib/components/properties/transformProperties.d.ts +11 -0
- package/lib/components/scene/sceneExplorer.d.ts +182 -0
- package/lib/components/scene/sceneExplorerDragDrop.d.ts +38 -0
- package/lib/components/scene/sceneProperties.d.ts +19 -0
- package/lib/components/stats/countStats.d.ts +5 -0
- package/lib/components/stats/frameStepStats.d.ts +8 -0
- package/lib/components/stats/performanceStats.d.ts +6 -0
- package/lib/components/stats/statsPane.d.ts +3 -0
- package/lib/components/stats/systemStats.d.ts +5 -0
- package/lib/components/teachingMoment.d.ts +20 -0
- package/lib/components/textureEditor/canvasManager.d.ts +113 -0
- package/lib/components/textureEditor/canvasShader.d.ts +10 -0
- package/lib/components/textureEditor/channels.d.ts +25 -0
- package/lib/components/textureEditor/properties.d.ts +23 -0
- package/lib/components/textureEditor/status.d.ts +13 -0
- package/lib/components/textureEditor/textureEditor.d.ts +113 -0
- package/lib/components/textureEditor/tools.d.ts +20 -0
- package/lib/components/theme.d.ts +10 -0
- package/lib/components/tools/capture/equirectangularCaptureTool.d.ts +5 -0
- package/lib/components/tools/capture/gifCaptureTool.d.ts +7 -0
- package/lib/components/tools/capture/sceneReplayTool.d.ts +5 -0
- package/lib/components/tools/capture/screenshotTool.d.ts +5 -0
- package/lib/components/tools/capture/videoCaptureTool.d.ts +5 -0
- package/lib/components/tools/exportTools.d.ts +11 -0
- package/lib/components/tools/import/gltfAnimationImportTool.d.ts +5 -0
- package/lib/components/tools/import/gltfLoaderOptionsTool.d.ts +8 -0
- package/lib/components/tools/import/gltfValidationTool.d.ts +5 -0
- package/lib/components/tools/reflectorTools.d.ts +5 -0
- package/lib/components/tools/toolsPane.d.ts +3 -0
- package/lib/components/uxContextProvider.d.ts +2 -0
- package/lib/contexts/extensionManagerContext.d.ts +6 -0
- package/lib/contexts/propertyContext.d.ts +30 -0
- package/lib/contexts/settingsContext.d.ts +3 -0
- package/lib/contexts/watcherContext.d.ts +3 -0
- package/lib/extensibility/builtInsExtensionFeed.d.ts +21 -0
- package/lib/extensibility/defaultInspectorExtensionFeed.d.ts +5 -0
- package/lib/extensibility/extensionFeed.d.ts +113 -0
- package/lib/extensibility/extensionManager.d.ts +111 -0
- package/lib/extensions/quickCreate/cameras.d.ts +14 -0
- package/lib/extensions/quickCreate/frameGraphs.d.ts +14 -0
- package/lib/extensions/quickCreate/lights.d.ts +14 -0
- package/lib/extensions/quickCreate/materials.d.ts +14 -0
- package/lib/extensions/quickCreate/meshes.d.ts +10 -0
- package/lib/extensions/quickCreate/particles.d.ts +15 -0
- package/lib/extensions/quickCreate/quickCreateLayout.d.ts +44 -0
- package/lib/extensions/quickCreate/quickCreateToolsService.d.ts +11 -0
- package/lib/extensions/quickCreate/renderingPipelines.d.ts +14 -0
- package/lib/extensions/quickCreate/settingsPopover.d.ts +14 -0
- package/lib/extensions/quickCreate/spriteManagers.d.ts +14 -0
- package/lib/{extensionsListService-zYdKn8uM.js → extensionsListService-eRZtqcfj.js} +8 -8
- package/lib/extensionsListService-eRZtqcfj.js.map +1 -0
- package/lib/hooks/compoundPropertyHooks.d.ts +24 -0
- package/lib/hooks/instrumentationHooks.d.ts +9 -0
- package/lib/hooks/observableHooks.d.ts +35 -0
- package/lib/hooks/pollingHooks.d.ts +7 -0
- package/lib/hooks/resourceHooks.d.ts +20 -0
- package/lib/hooks/settingsHooks.d.ts +13 -0
- package/lib/hooks/teachingMomentHooks.d.ts +34 -0
- package/lib/hooks/themeHooks.d.ts +17 -0
- package/lib/hooks/useObservableArray.d.ts +11 -0
- package/lib/hooks/useResizeHandle.d.ts +35 -0
- package/lib/{index-DuVF9zYN.js → index-FWuITINA.js} +1932 -1031
- package/lib/index-FWuITINA.js.map +1 -0
- package/lib/index.d.ts +111 -74767
- package/lib/index.js +6 -6
- package/lib/inspectable.d.ts +67 -0
- package/lib/inspector.d.ts +41 -0
- package/lib/instrumentation/functionInstrumentation.d.ts +20 -0
- package/lib/instrumentation/propertyInstrumentation.d.ts +33 -0
- package/lib/legacy/debugLayer.d.ts +24 -0
- package/lib/legacy/inspectableCustomPropertiesService.d.ts +3 -0
- package/lib/legacy/inspector.d.ts +39 -0
- package/lib/legacy/legacy.d.ts +9 -0
- package/lib/legacy/propertiesSectionMapping.d.ts +99 -0
- package/lib/misc/arrayUtils.d.ts +4 -0
- package/lib/misc/assert.d.ts +5 -0
- package/lib/misc/defaultPerfStrategies.d.ts +16 -0
- package/lib/misc/graphUtils.d.ts +44 -0
- package/lib/misc/nodeGeometryEditor.d.ts +3 -0
- package/lib/misc/nodeMaterialEditor.d.ts +2 -0
- package/lib/misc/nodeParticleEditor.d.ts +2 -0
- package/lib/misc/nodeRenderGraphEditor.d.ts +2 -0
- package/lib/misc/observableCollection.d.ts +23 -0
- package/lib/misc/snippetUtils.d.ts +74 -0
- package/lib/misc/textureTools.d.ts +34 -0
- package/lib/modularTool.d.ts +42 -0
- package/lib/modularity/serviceContainer.d.ts +64 -0
- package/lib/modularity/serviceDefinition.d.ts +64 -0
- package/lib/{quickCreateToolsService-BtsSLeMY.js → quickCreateToolsService-MzZbVrvr.js} +7 -7
- package/lib/quickCreateToolsService-MzZbVrvr.js.map +1 -0
- package/lib/{reflectorService-Bzs-Ykos.js → reflectorService-DdPEZLjO.js} +7 -7
- package/lib/reflectorService-DdPEZLjO.js.map +1 -0
- package/lib/services/cli/cliConnectionStatus.d.ts +19 -0
- package/lib/services/cli/entityQueryService.d.ts +8 -0
- package/lib/services/cli/inspectableBridgeService.d.ts +22 -0
- package/lib/services/cli/inspectableCommandRegistry.d.ts +58 -0
- package/lib/services/cli/perfTraceCommandService.d.ts +9 -0
- package/lib/services/cli/screenshotCommandService.d.ts +8 -0
- package/lib/services/cli/shaderCommandService.d.ts +7 -0
- package/lib/services/cli/statsCommandService.d.ts +9 -0
- package/lib/services/cliConnectionStatusService.d.ts +4 -0
- package/lib/services/defaultToolbarMetadata.d.ts +6 -0
- package/lib/services/extensionsListService.d.ts +3 -0
- package/lib/services/gizmoService.d.ts +84 -0
- package/lib/services/gizmoToolbarService.d.ts +5 -0
- package/lib/services/globalSettings.d.ts +5 -0
- package/lib/services/highlightService.d.ts +8 -0
- package/lib/services/miniStatsService.d.ts +4 -0
- package/lib/services/panes/debugService.d.ts +25 -0
- package/lib/services/panes/properties/animationGroupPropertiesService.d.ts +4 -0
- package/lib/services/panes/properties/animationPropertiesService.d.ts +5 -0
- package/lib/services/panes/properties/atmospherePropertiesService.d.ts +5 -0
- package/lib/services/panes/properties/audioPropertiesService.d.ts +3 -0
- package/lib/services/panes/properties/cameraPropertiesService.d.ts +7 -0
- package/lib/services/panes/properties/commonPropertiesService.d.ts +3 -0
- package/lib/services/panes/properties/effectLayerPropertiesService.d.ts +3 -0
- package/lib/services/panes/properties/frameGraphPropertiesService.d.ts +3 -0
- package/lib/services/panes/properties/lightPropertiesServices.d.ts +4 -0
- package/lib/services/panes/properties/materialPropertiesService.d.ts +4 -0
- package/lib/services/panes/properties/metadataPropertiesService.d.ts +3 -0
- package/lib/services/panes/properties/nodePropertiesService.d.ts +4 -0
- package/lib/services/panes/properties/particleSystemPropertiesService.d.ts +4 -0
- package/lib/services/panes/properties/physicsPropertiesService.d.ts +3 -0
- package/lib/services/panes/properties/postProcessPropertiesService.d.ts +3 -0
- package/lib/services/panes/properties/propertiesService.d.ts +53 -0
- package/lib/services/panes/properties/renderingPipelinePropertiesService.d.ts +3 -0
- package/lib/services/panes/properties/scenePropertiesService.d.ts +4 -0
- package/lib/services/panes/properties/skeletonPropertiesService.d.ts +4 -0
- package/lib/services/panes/properties/spritePropertiesService.d.ts +4 -0
- package/lib/services/panes/properties/texturePropertiesService.d.ts +4 -0
- package/lib/services/panes/properties/transformPropertiesService.d.ts +3 -0
- package/lib/services/panes/scene/animationGroupExplorerService.d.ts +5 -0
- package/lib/services/panes/scene/atmosphereExplorerService.d.ts +5 -0
- package/lib/services/panes/scene/defaultSectionsMetadata.d.ts +33 -0
- package/lib/services/panes/scene/disposableCommandService.d.ts +4 -0
- package/lib/services/panes/scene/effectLayersExplorerService.d.ts +5 -0
- package/lib/services/panes/scene/frameGraphExplorerService.d.ts +5 -0
- package/lib/services/panes/scene/guiExplorerService.d.ts +5 -0
- package/lib/services/panes/scene/materialExplorerService.d.ts +5 -0
- package/lib/services/panes/scene/nodeExplorerService.d.ts +7 -0
- package/lib/services/panes/scene/particleSystemExplorerService.d.ts +5 -0
- package/lib/services/panes/scene/postProcessExplorerService.d.ts +5 -0
- package/lib/services/panes/scene/renderingPipelinesExplorerService.d.ts +5 -0
- package/lib/services/panes/scene/sceneExplorerService.d.ts +34 -0
- package/lib/services/panes/scene/skeletonExplorerService.d.ts +5 -0
- package/lib/services/panes/scene/soundExplorerService.d.ts +5 -0
- package/lib/services/panes/scene/spriteManagerExplorerService.d.ts +6 -0
- package/lib/services/panes/scene/texturesExplorerService.d.ts +5 -0
- package/lib/services/panes/settingsService.d.ts +25 -0
- package/lib/services/panes/statsService.d.ts +28 -0
- package/lib/services/panes/tools/captureService.d.ts +3 -0
- package/lib/services/panes/tools/exportService.d.ts +3 -0
- package/lib/services/panes/tools/import/gltfAnimationImportService.d.ts +3 -0
- package/lib/services/panes/tools/import/gltfLoaderOptionsDefaults.d.ts +46 -0
- package/lib/services/panes/tools/import/gltfLoaderOptionsService.d.ts +4 -0
- package/lib/services/panes/tools/import/gltfValidationService.d.ts +3 -0
- package/lib/services/panes/tools/reflectorService.d.ts +7 -0
- package/lib/services/panes/toolsService.d.ts +29 -0
- package/lib/services/pickingService.d.ts +7 -0
- package/lib/services/reactContextService.d.ts +18 -0
- package/lib/services/sceneContext.d.ts +19 -0
- package/lib/services/selectionService.d.ts +24 -0
- package/lib/services/settingsStore.d.ts +55 -0
- package/lib/services/shellService.d.ts +256 -0
- package/lib/services/shellSettingsService.d.ts +3 -0
- package/lib/services/textureEditor/textureEditorService.d.ts +21 -0
- package/lib/services/textureEditor/tools/contrast.d.ts +2 -0
- package/lib/services/textureEditor/tools/eyedropper.d.ts +5 -0
- package/lib/services/textureEditor/tools/floodfill.d.ts +5 -0
- package/lib/services/textureEditor/tools/paintbrush.d.ts +2 -0
- package/lib/services/textureEditor/tools/rectangularSelect.d.ts +5 -0
- package/lib/services/themeSelectorService.d.ts +3 -0
- package/lib/services/themeService.d.ts +60 -0
- package/lib/services/userFeedbackService.d.ts +3 -0
- package/lib/services/watcherService.d.ts +38 -0
- package/lib/themes/babylonTheme.d.ts +3 -0
- package/package.json +12 -5
- package/readme.md +27 -0
- package/lib/extensionsListService-zYdKn8uM.js.map +0 -1
- package/lib/index-DuVF9zYN.js.map +0 -1
- package/lib/quickCreateToolsService-BtsSLeMY.js.map +0 -1
- package/lib/reflectorService-Bzs-Ykos.js.map +0 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { type Theme } from "@fluentui/react-components";
|
|
2
|
+
import { type IDisposable, type IReadonlyObservable } from "@babylonjs/core/index.js";
|
|
3
|
+
import { type IService, type ServiceDefinition } from "../modularity/serviceDefinition";
|
|
4
|
+
import { type ISettingsStore, type SettingDescriptor } from "./settingsStore";
|
|
5
|
+
/**
|
|
6
|
+
* Represents the theme mode preference.
|
|
7
|
+
*/
|
|
8
|
+
export type ThemeMode = "system" | "light" | "dark";
|
|
9
|
+
/**
|
|
10
|
+
* The setting descriptor for persisting the theme mode preference.
|
|
11
|
+
*/
|
|
12
|
+
export declare const ThemeModeSettingDescriptor: SettingDescriptor<ThemeMode>;
|
|
13
|
+
/**
|
|
14
|
+
* Resolves the current theme based on user preference and system settings.
|
|
15
|
+
* Listens for changes to both the persisted theme mode and the OS-level dark mode preference.
|
|
16
|
+
*/
|
|
17
|
+
export declare class ThemeResolver implements IDisposable {
|
|
18
|
+
private readonly _settingsStore;
|
|
19
|
+
private readonly _darkModeMediaQuery;
|
|
20
|
+
private readonly _onChanged;
|
|
21
|
+
private readonly _onDarkModeMediaQueryChange;
|
|
22
|
+
private readonly _settingsStoreObserver;
|
|
23
|
+
constructor(_settingsStore: ISettingsStore);
|
|
24
|
+
get onChanged(): IReadonlyObservable<void>;
|
|
25
|
+
get mode(): ThemeMode;
|
|
26
|
+
set mode(value: ThemeMode);
|
|
27
|
+
get isDark(): boolean;
|
|
28
|
+
toggle(): void;
|
|
29
|
+
dispose(): void;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The unique identity symbol for the theme service.
|
|
33
|
+
*/
|
|
34
|
+
export declare const ThemeServiceIdentity: unique symbol;
|
|
35
|
+
/**
|
|
36
|
+
* Exposes the current theme used by the application.
|
|
37
|
+
*/
|
|
38
|
+
export interface IThemeService extends IService<typeof ThemeServiceIdentity> {
|
|
39
|
+
/**
|
|
40
|
+
* Whether the current theme is the dark variant or not.
|
|
41
|
+
*/
|
|
42
|
+
readonly isDark: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* The current theme mode, which can be either "light", "dark" or "system". When set to "system", the theme will match the user's OS-level preference and update automatically when it changes.
|
|
45
|
+
*/
|
|
46
|
+
mode: ThemeMode;
|
|
47
|
+
/**
|
|
48
|
+
* Toggles the theme mode between light and dark. If the current mode is "system", it will toggle based on the current OS-level preference.
|
|
49
|
+
*/
|
|
50
|
+
toggle(): void;
|
|
51
|
+
/**
|
|
52
|
+
* The current theme used by the application.
|
|
53
|
+
*/
|
|
54
|
+
readonly theme: Theme;
|
|
55
|
+
/**
|
|
56
|
+
* Observable that fires whenever the theme changes.
|
|
57
|
+
*/
|
|
58
|
+
readonly onChanged: IReadonlyObservable<void>;
|
|
59
|
+
}
|
|
60
|
+
export declare const ThemeServiceDefinition: ServiceDefinition<[IThemeService], [ISettingsStore]>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type IDisposable } from "@babylonjs/core/index.js";
|
|
2
|
+
import { type IService, type ServiceDefinition } from "../modularity/serviceDefinition";
|
|
3
|
+
import { type ISettingsService } from "./panes/settingsService";
|
|
4
|
+
import { type ISettingsStore } from "./settingsStore";
|
|
5
|
+
import { type IShellService } from "./shellService";
|
|
6
|
+
import { type IReactContextService } from "./reactContextService";
|
|
7
|
+
/**
|
|
8
|
+
* The unique identity symbol for the watcher service.
|
|
9
|
+
*/
|
|
10
|
+
export declare const WatcherServiceIdentity: unique symbol;
|
|
11
|
+
/**
|
|
12
|
+
* Watches for property changes on objects, using either interception, polling, or manual refresh.
|
|
13
|
+
*/
|
|
14
|
+
export interface IWatcherService extends IService<typeof WatcherServiceIdentity> {
|
|
15
|
+
/**
|
|
16
|
+
* Watches a property on an object and calls the callback whenever it changes.
|
|
17
|
+
* @param target The object containing the property to watch.
|
|
18
|
+
* @param propertyKey The key of the property to watch.
|
|
19
|
+
* @param onChanged A callback that is called with the new value when the property changes.
|
|
20
|
+
* @returns A disposable that stops watching when disposed.
|
|
21
|
+
*/
|
|
22
|
+
watchProperty<T extends object, K extends keyof T>(target: T, propertyKey: string extends K ? never : number extends K ? never : symbol extends K ? never : K, onChanged: (value: NonNullable<T[K]>) => void): IDisposable;
|
|
23
|
+
/**
|
|
24
|
+
* Watches a property on an object and calls the callback whenever it changes.
|
|
25
|
+
* @param target The object containing the property to watch.
|
|
26
|
+
* @param propertyKey The key of the property to watch.
|
|
27
|
+
* @param onChanged A callback that is called with the new value when the property changes.
|
|
28
|
+
* @returns A disposable that stops watching when disposed.
|
|
29
|
+
*/
|
|
30
|
+
watchProperty<T extends object>(target: T, propertyKey: keyof T, onChanged: (value: unknown) => void): IDisposable;
|
|
31
|
+
/**
|
|
32
|
+
* Manually triggers a refresh of all watched properties.
|
|
33
|
+
*/
|
|
34
|
+
refresh(): void;
|
|
35
|
+
}
|
|
36
|
+
export declare const WatcherServiceDefinition: ServiceDefinition<[IWatcherService], [ISettingsStore, IReactContextService]>;
|
|
37
|
+
export declare const WatcherSettingsServiceDefinition: ServiceDefinition<[], [ISettingsService]>;
|
|
38
|
+
export declare const WatcherRefreshToolbarServiceDefinition: ServiceDefinition<[], [IWatcherService, ISettingsStore, IShellService]>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@babylonjs/inspector",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.2.0",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"module": "lib/index.js",
|
|
6
6
|
"esnext": "lib/index.js",
|
|
@@ -12,7 +12,11 @@
|
|
|
12
12
|
},
|
|
13
13
|
"./package.json": "./package.json"
|
|
14
14
|
},
|
|
15
|
+
"bin": {
|
|
16
|
+
"babylon-inspector": "./bin/inspector-cli.mjs"
|
|
17
|
+
},
|
|
15
18
|
"files": [
|
|
19
|
+
"bin/**/*.mjs",
|
|
16
20
|
"lib/**/*.js",
|
|
17
21
|
"lib/**/*.d.ts",
|
|
18
22
|
"lib/**/*.map",
|
|
@@ -21,9 +25,10 @@
|
|
|
21
25
|
],
|
|
22
26
|
"scripts": {
|
|
23
27
|
"build": "npm run clean && npm run bundle",
|
|
24
|
-
"clean": "rimraf lib && rimraf dist && rimraf *.tsbuildinfo -g",
|
|
25
|
-
"bundle": "npm run bundle:lib",
|
|
26
|
-
"bundle:lib": "rollup -c rollup.config.lib.mjs",
|
|
28
|
+
"clean": "rimraf lib && rimraf bin && rimraf dist && rimraf *.tsbuildinfo -g",
|
|
29
|
+
"bundle": "npm run bundle:lib && npm run bundle:cli",
|
|
30
|
+
"bundle:lib": "rollup -c rollup.config.lib.mjs && tsc -p tsconfig.build.dts.json && build-tools -c tp --outDir ./lib --buildType es6 --basePackage @babylonjs/inspector --appendJS",
|
|
31
|
+
"bundle:cli": "rollup -c rollup.config.cli.mjs",
|
|
27
32
|
"pack": "npm run build && npm pack"
|
|
28
33
|
},
|
|
29
34
|
"peerDependencies": {
|
|
@@ -48,9 +53,11 @@
|
|
|
48
53
|
"@rollup/plugin-commonjs": "^26.0.1",
|
|
49
54
|
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
50
55
|
"@rollup/plugin-typescript": "^11.1.6",
|
|
56
|
+
"@types/ws": "^8.5.0",
|
|
51
57
|
"chalk": "^5.3.0",
|
|
52
58
|
"rollup": "^4.59.0",
|
|
53
|
-
"rollup-plugin-dts": "^6.1.1"
|
|
59
|
+
"rollup-plugin-dts": "^6.1.1",
|
|
60
|
+
"ws": "^8.18.0"
|
|
54
61
|
},
|
|
55
62
|
"keywords": [
|
|
56
63
|
"3D",
|
package/readme.md
CHANGED
|
@@ -21,3 +21,30 @@ import { ShowInspector } from "@babylonjs/inspector";
|
|
|
21
21
|
|
|
22
22
|
ShowInspector(scene);
|
|
23
23
|
```
|
|
24
|
+
|
|
25
|
+
## Headless Inspectable (No UI)
|
|
26
|
+
|
|
27
|
+
You can make a scene inspectable for the CLI without showing the Inspector UI by calling `StartInspectable`:
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
import { StartInspectable } from "@babylonjs/inspector";
|
|
31
|
+
|
|
32
|
+
// Your code that sets up a Babylon.js scene...
|
|
33
|
+
|
|
34
|
+
const token = StartInspectable(scene);
|
|
35
|
+
|
|
36
|
+
// When you're done, dispose the token to disconnect:
|
|
37
|
+
token.dispose();
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
`StartInspectable` connects the scene to the Inspector CLI bridge, enabling CLI commands like querying entities, taking screenshots, and capturing performance traces — all without rendering any Inspector UI. `ShowInspector` automatically calls `StartInspectable` internally.
|
|
41
|
+
|
|
42
|
+
## Inspector CLI
|
|
43
|
+
|
|
44
|
+
While the Inspector UI is designed for humans, the Inspector CLI is designed for AI agents. It provides machine-friendly JSON output for querying scene entities, capturing screenshots, collecting performance data, and more.
|
|
45
|
+
|
|
46
|
+
To get started:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npx babylon-inspector --help
|
|
50
|
+
```
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extensionsListService-zYdKn8uM.js","sources":["../../../../../../../../dev/inspector-v2/src/services/extensionsListService.tsx"],"sourcesContent":["import type { SelectTabData, SelectTabEvent } from \"@fluentui/react-components\";\r\nimport type { TriggerProps } from \"@fluentui/react-utilities\";\r\nimport type { FunctionComponent } from \"react\";\r\nimport type { PersonMetadata } from \"../extensibility/extensionFeed\";\r\nimport type { IExtension } from \"../extensibility/extensionManager\";\r\nimport type { ServiceDefinition } from \"../modularity/serviceDefinition\";\r\nimport type { IShellService } from \"./shellService\";\r\n\r\nimport {\r\n Accordion,\r\n AccordionHeader,\r\n AccordionItem,\r\n AccordionPanel,\r\n AvatarGroup,\r\n AvatarGroupItem,\r\n Body1,\r\n Body1Strong,\r\n Button,\r\n Caption1,\r\n Card,\r\n CardFooter,\r\n CardHeader,\r\n CardPreview,\r\n Dialog,\r\n DialogBody,\r\n DialogContent,\r\n DialogSurface,\r\n DialogTitle,\r\n DialogTrigger,\r\n makeStyles,\r\n Persona,\r\n Popover,\r\n PopoverSurface,\r\n PopoverTrigger,\r\n PresenceBadge,\r\n Spinner,\r\n Tab,\r\n TabList,\r\n tokens,\r\n Tooltip,\r\n} from \"@fluentui/react-components\";\r\nimport {\r\n AppsAddInRegular,\r\n ArrowDownloadRegular,\r\n BranchForkRegular,\r\n BugRegular,\r\n DeleteRegular,\r\n DismissRegular,\r\n LinkRegular,\r\n MailRegular,\r\n PeopleCommunityRegular,\r\n} from \"@fluentui/react-icons\";\r\nimport { Fade } from \"@fluentui/react-motion-components-preview\";\r\nimport { memo, useCallback, useEffect, useMemo, useState } from \"react\";\r\n\r\nimport { Logger } from \"core/Misc/logger\";\r\n\r\nimport { Link } from \"shared-ui-components/fluent/primitives/link\";\r\nimport { useExtensionManager } from \"../contexts/extensionManagerContext\";\r\nimport { ShellServiceIdentity } from \"./shellService\";\r\n\r\nconst useStyles = makeStyles({\r\n extensionButton: {},\r\n extensionsDialogSurface: {\r\n height: \"auto\",\r\n width: \"70vw\",\r\n maxWidth: \"600px\",\r\n maxHeight: \"70vh\",\r\n backgroundColor: tokens.colorNeutralBackground2,\r\n },\r\n extensionDialogBody: {\r\n maxWidth: \"100%\",\r\n maxHeight: \"100%\",\r\n },\r\n extensionDialogContent: {\r\n marginLeft: `calc(-1 * ${tokens.spacingHorizontalM})`,\r\n marginRight: `calc(-1 * ${tokens.spacingHorizontalS})`,\r\n },\r\n extensionHeader: {},\r\n extensionItem: {},\r\n extensionCardPreview: {\r\n padding: `${tokens.spacingVerticalM} ${tokens.spacingHorizontalM}`,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n rowGap: tokens.spacingVerticalL,\r\n },\r\n extensionIntro: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n columnGap: tokens.spacingHorizontalM,\r\n },\r\n extensionDescription: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n columnGap: tokens.spacingHorizontalS,\r\n },\r\n extensionButtonContainer: {\r\n marginLeft: \"auto\",\r\n alignSelf: \"flex-start\",\r\n },\r\n spinner: {\r\n animationDuration: \"1s\",\r\n animationName: {\r\n from: { opacity: 0 },\r\n to: { opacity: 1 },\r\n },\r\n },\r\n webResourceDiv: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n },\r\n webResourceLink: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n columnGap: tokens.spacingHorizontalS,\r\n alignItems: \"center\",\r\n },\r\n personPopoverSurfaceDiv: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n rowGap: tokens.spacingVerticalS,\r\n },\r\n accordionHeaderDiv: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n columnGap: tokens.spacingHorizontalS,\r\n alignItems: \"center\",\r\n },\r\n resourceDetailsDiv: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n rowGap: tokens.spacingVerticalS,\r\n },\r\n peopleDetailsDiv: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n columnGap: tokens.spacingHorizontalXL,\r\n },\r\n avatarGroupItem: {\r\n cursor: \"pointer\",\r\n },\r\n});\r\n\r\nfunction AsPersonMetadata(person: string | PersonMetadata): PersonMetadata {\r\n if (typeof person === \"string\") {\r\n return { name: person } satisfies PersonMetadata;\r\n }\r\n return person;\r\n}\r\n\r\nfunction GetAvatarImage(person: PersonMetadata): { src: string } | undefined {\r\n return person.avatar ? { src: `data:image/png;base64,${person.avatar}` } : undefined;\r\n}\r\n\r\nfunction usePeopleMetadata(people?: readonly (string | PersonMetadata | undefined)[]): PersonMetadata[] {\r\n const definedPeople = useMemo(() => (people ? people.filter((person): person is string | PersonMetadata => !!person) : []), [people]);\r\n return useMemo(() => definedPeople.map(AsPersonMetadata), [definedPeople]);\r\n}\r\n\r\nconst WebResource: FunctionComponent<{ url: string; urlDisplay?: string; icon: JSX.Element; label: string }> = (props) => {\r\n const { url, urlDisplay, icon, label } = props;\r\n const classes = useStyles();\r\n\r\n return (\r\n <div className={classes.webResourceDiv}>\r\n <Tooltip content={label} relationship=\"label\" positioning=\"before\" withArrow>\r\n <div className={classes.webResourceLink}>\r\n {icon}\r\n <Link url={url} value={urlDisplay || url} />\r\n </div>\r\n </Tooltip>\r\n </div>\r\n );\r\n};\r\n\r\nconst PersonDetailsPopover: FunctionComponent<TriggerProps & { person: PersonMetadata; title: string; disabled?: boolean }> = (props) => {\r\n const { person, title, disabled, children } = props;\r\n const classes = useStyles();\r\n\r\n if (disabled) {\r\n return <>{children}</>;\r\n }\r\n\r\n return (\r\n <Popover withArrow>\r\n <PopoverTrigger disableButtonEnhancement>{children}</PopoverTrigger>\r\n <PopoverSurface>\r\n <div className={classes.personPopoverSurfaceDiv}>\r\n <Persona name={person.name} secondaryText={title} avatar={{ image: GetAvatarImage(person) }} />\r\n {person.email && <WebResource url={`mailto:${person.email}`} urlDisplay={person.email} icon={<MailRegular />} label=\"Email\" />}\r\n {person.url && <WebResource url={person.url} urlDisplay={person.url} icon={<LinkRegular />} label=\"Website\" />}\r\n {person.forumUserName && (\r\n <WebResource\r\n url={`https://forum.babylonjs.com/u/${person.forumUserName}`}\r\n urlDisplay={person.forumUserName}\r\n icon={<PeopleCommunityRegular />}\r\n label=\"Forum\"\r\n />\r\n )}\r\n </div>\r\n </PopoverSurface>\r\n </Popover>\r\n );\r\n};\r\n\r\nconst ExtensionDetails: FunctionComponent<{ extension: IExtension }> = memo((props) => {\r\n const { extension } = props;\r\n const { metadata } = extension;\r\n\r\n const classes = useStyles();\r\n\r\n const [canInstall, setCanInstall] = useState(false);\r\n const [canUninstall, setCanUninstall] = useState(false);\r\n const [isStateChanging, setIsStateChanging] = useState(false);\r\n\r\n useEffect(() => {\r\n const updateState = () => {\r\n setCanInstall(!extension.isInstalled && !extension.isStateChanging);\r\n setCanUninstall(extension.isInstalled && !extension.isStateChanging);\r\n setIsStateChanging(extension.isStateChanging);\r\n };\r\n\r\n const stateChangedHandlerRegistration = extension.addStateChangedHandler(updateState);\r\n updateState();\r\n\r\n return stateChangedHandlerRegistration.dispose;\r\n }, [extension]);\r\n\r\n const [author] = usePeopleMetadata(useMemo(() => [metadata.author], [metadata.author]));\r\n const contributors = usePeopleMetadata(metadata.contributors);\r\n\r\n const hasResourceDetails = metadata.homepage || metadata.repository || metadata.bugs;\r\n const hasPeopleDetails = author || contributors.length > 0;\r\n const hasPreviewDetails = hasResourceDetails || hasPeopleDetails;\r\n const hasAuthorDetails = author?.email || author?.url || author?.forumUserName;\r\n const subHeader = [metadata.version ? `${metadata.version}` : null, metadata.license ? `${metadata.license}` : null].filter(Boolean).join(\" | \");\r\n\r\n const install = useCallback(async () => {\r\n try {\r\n await extension.installAsync();\r\n } catch {\r\n // Ignore errors. Other parts of the infrastructure handle them and communicate them to the user.\r\n }\r\n }, [extension]);\r\n\r\n const uninstall = useCallback(async () => {\r\n try {\r\n await extension.uninstallAsync();\r\n } catch {\r\n // Ignore errors. Other parts of the infrastructure handle them and communicate them to the user.\r\n }\r\n }, [extension]);\r\n\r\n return (\r\n <AccordionItem className={classes.extensionItem} value={extension.metadata.name}>\r\n <AccordionHeader className={classes.extensionHeader} expandIconPosition=\"end\">\r\n <div className={classes.accordionHeaderDiv}>\r\n <Body1Strong>{extension.metadata.name}</Body1Strong>\r\n <Fade visible={extension.isInstalled}>\r\n <PresenceBadge size=\"small\" />\r\n </Fade>\r\n </div>\r\n </AccordionHeader>\r\n <AccordionPanel>\r\n <Card>\r\n <CardHeader header={<Body1>{metadata.description}</Body1>} description={<Caption1 italic>{subHeader}</Caption1>} />\r\n {hasPreviewDetails && (\r\n <CardPreview className={classes.extensionCardPreview}>\r\n {hasResourceDetails && (\r\n <div className={classes.resourceDetailsDiv} style={{ display: \"flex\" }}>\r\n {metadata.homepage && <WebResource url={metadata.homepage} icon={<LinkRegular />} label=\"Website\" />}\r\n {metadata.repository && <WebResource url={metadata.repository} icon={<BranchForkRegular />} label=\"Repository\" />}\r\n {metadata.bugs && <WebResource url={metadata.bugs} icon={<BugRegular />} label=\"Report Issues\" />}\r\n </div>\r\n )}\r\n {hasPeopleDetails && (\r\n <div className={classes.peopleDetailsDiv} style={{ display: \"flex\" }}>\r\n {author && (\r\n <PersonDetailsPopover person={author} title=\"Author\" disabled={!hasAuthorDetails}>\r\n <Persona\r\n name={author.name}\r\n secondaryText=\"Author\"\r\n avatar={{ image: GetAvatarImage(author) }}\r\n style={{ cursor: hasAuthorDetails ? \"pointer\" : \"default\" }}\r\n />\r\n </PersonDetailsPopover>\r\n )}\r\n {contributors.length > 0 && (\r\n <AvatarGroup layout=\"stack\">\r\n {contributors.map((contributor) => {\r\n return (\r\n <PersonDetailsPopover key={contributor.name} person={contributor} title=\"Contributor\">\r\n <AvatarGroupItem name={contributor.name} className={classes.avatarGroupItem} image={GetAvatarImage(contributor)} />\r\n </PersonDetailsPopover>\r\n );\r\n })}\r\n </AvatarGroup>\r\n )}\r\n </div>\r\n )}\r\n </CardPreview>\r\n )}\r\n <CardFooter>\r\n {canInstall && (\r\n <Button appearance=\"primary\" size=\"small\" icon={<ArrowDownloadRegular />} onClick={install}>\r\n Get\r\n </Button>\r\n )}\r\n {canUninstall && (\r\n <Button appearance=\"secondary\" size=\"small\" icon={<DeleteRegular />} onClick={uninstall}>\r\n Remove\r\n </Button>\r\n )}\r\n {isStateChanging && <Spinner className={classes.spinner} size=\"extra-small\" />}\r\n </CardFooter>\r\n </Card>\r\n </AccordionPanel>\r\n </AccordionItem>\r\n );\r\n});\r\n\r\ntype TabValue = \"available\" | \"installed\";\r\n\r\nexport const ExtensionListServiceDefinition: ServiceDefinition<[], [IShellService]> = {\r\n friendlyName: \"ExtensionList\",\r\n consumes: [ShellServiceIdentity],\r\n factory: (shellService) => {\r\n const registration = shellService.addToolbarItem({\r\n key: \"ExtensionList\",\r\n horizontalLocation: \"right\",\r\n verticalLocation: \"top\",\r\n teachingMoment: {\r\n title: \"Extensions\",\r\n description: \"Extensions provide new optional features that can be useful to your specific task or workflow. Click this button to manage extensions.\",\r\n },\r\n order: -200,\r\n component: () => {\r\n const classes = useStyles();\r\n\r\n const [selectedTab, setSelectedTab] = useState<TabValue>(\"available\");\r\n const extensionManager = useExtensionManager();\r\n const [extensions, setExtensions] = useState<IExtension[]>([]);\r\n\r\n useEffect(() => {\r\n if (extensionManager) {\r\n const populateExtensionsAsync = async () => {\r\n const query = await extensionManager.queryExtensionsAsync(undefined, undefined, selectedTab === \"installed\");\r\n const extensions = await query.getExtensionsAsync(0, query.totalCount);\r\n setExtensions(extensions);\r\n };\r\n\r\n // eslint-disable-next-line github/no-then\r\n populateExtensionsAsync().catch((error) => {\r\n Logger.Warn(`Failed to populate extensions: ${error}`);\r\n });\r\n }\r\n }, [extensionManager, selectedTab]);\r\n\r\n return (\r\n <Dialog>\r\n <DialogTrigger disableButtonEnhancement>\r\n <Tooltip content=\"Manage Extensions\" relationship=\"label\">\r\n <Button className={classes.extensionButton} appearance=\"subtle\" icon={<AppsAddInRegular />} />\r\n </Tooltip>\r\n </DialogTrigger>\r\n <DialogSurface className={classes.extensionsDialogSurface}>\r\n <DialogBody className={classes.extensionDialogBody}>\r\n <DialogTitle\r\n action={\r\n <DialogTrigger action=\"close\">\r\n <Button appearance=\"subtle\" aria-label=\"close\" icon={<DismissRegular />} />\r\n </DialogTrigger>\r\n }\r\n >\r\n <>\r\n Extensions\r\n <TabList\r\n className={classes.extensionDialogContent}\r\n selectedValue={selectedTab}\r\n onTabSelect={(event: SelectTabEvent, data: SelectTabData) => {\r\n setSelectedTab(data.value as TabValue);\r\n }}\r\n >\r\n <Tab value={\"available\" satisfies TabValue}>Available</Tab>\r\n <Tab value={\"installed\" satisfies TabValue}>Installed</Tab>\r\n </TabList>\r\n </>\r\n </DialogTitle>\r\n <DialogContent className={classes.extensionDialogContent}>\r\n <Accordion collapsible>\r\n {extensions.map((extension) => (\r\n <ExtensionDetails key={extension.metadata.name} extension={extension} />\r\n ))}\r\n </Accordion>\r\n </DialogContent>\r\n </DialogBody>\r\n </DialogSurface>\r\n </Dialog>\r\n );\r\n },\r\n });\r\n\r\n return {\r\n dispose: () => registration.dispose(),\r\n };\r\n },\r\n};\r\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|