@babylonjs/inspector 9.0.0 → 9.1.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.
Files changed (278) hide show
  1. package/lib/components/curveEditor/bottomBar/rangeSelector.d.ts +6 -0
  2. package/lib/components/curveEditor/bottomBar.d.ts +6 -0
  3. package/lib/components/curveEditor/canvas/canvas.d.ts +6 -0
  4. package/lib/components/curveEditor/canvas/curve.d.ts +14 -0
  5. package/lib/components/curveEditor/canvas/curveData.d.ts +40 -0
  6. package/lib/components/curveEditor/canvas/frameBar.d.ts +12 -0
  7. package/lib/components/curveEditor/canvas/graph.d.ts +11 -0
  8. package/lib/components/curveEditor/canvas/keyPoint.d.ts +34 -0
  9. package/lib/components/curveEditor/canvas/playHead.d.ts +12 -0
  10. package/lib/components/curveEditor/canvas/rangeFrameBar.d.ts +10 -0
  11. package/lib/components/curveEditor/curveEditor.d.ts +29 -0
  12. package/lib/components/curveEditor/curveEditorButton.d.ts +31 -0
  13. package/lib/components/curveEditor/curveEditorColors.d.ts +56 -0
  14. package/lib/components/curveEditor/curveEditorContext.d.ts +267 -0
  15. package/lib/components/curveEditor/rangeSelector.d.ts +6 -0
  16. package/lib/components/curveEditor/sideBar/addAnimationPanel.d.ts +10 -0
  17. package/lib/components/curveEditor/sideBar/animationList.d.ts +6 -0
  18. package/lib/components/curveEditor/sideBar/editAnimationPanel.d.ts +12 -0
  19. package/lib/components/curveEditor/sideBar/loadAnimationPanel.d.ts +10 -0
  20. package/lib/components/curveEditor/sideBar/saveAnimationPanel.d.ts +10 -0
  21. package/lib/components/curveEditor/sideBar.d.ts +6 -0
  22. package/lib/components/curveEditor/topBar.d.ts +6 -0
  23. package/lib/components/debug/debugPane.d.ts +6 -0
  24. package/lib/components/errorBoundary.d.ts +31 -0
  25. package/lib/components/extensibleAccordion.d.ts +67 -0
  26. package/lib/components/gizmoToolbar.d.ts +7 -0
  27. package/lib/components/pane.d.ts +4 -0
  28. package/lib/components/performanceViewer/canvasGraph.d.ts +16 -0
  29. package/lib/components/performanceViewer/canvasGraphService.d.ts +238 -0
  30. package/lib/components/performanceViewer/graphSupportingTypes.d.ts +90 -0
  31. package/lib/components/performanceViewer/performanceSidebar.d.ts +10 -0
  32. package/lib/components/performanceViewer/performanceViewer.d.ts +15 -0
  33. package/lib/components/pickingToolbar.d.ts +11 -0
  34. package/lib/components/properties/animation/animationGroupProperties.d.ts +8 -0
  35. package/lib/components/properties/animation/animationsProperties.d.ts +21 -0
  36. package/lib/components/properties/animation/targetedAnimationProperties.d.ts +7 -0
  37. package/lib/components/properties/atmosphereProperties.d.ts +20 -0
  38. package/lib/components/properties/audio/soundProperties.d.ts +8 -0
  39. package/lib/components/properties/boundProperty.d.ts +80 -0
  40. package/lib/components/properties/cameras/arcRotateCameraProperties.d.ts +17 -0
  41. package/lib/components/properties/cameras/cameraProperties.d.ts +10 -0
  42. package/lib/components/properties/cameras/followCameraProperties.d.ts +8 -0
  43. package/lib/components/properties/cameras/freeCameraProperties.d.ts +11 -0
  44. package/lib/components/properties/cameras/geospatialCameraProperties.d.ts +11 -0
  45. package/lib/components/properties/cameras/targetCameraProperties.d.ts +8 -0
  46. package/lib/components/properties/commonGeneralProperties.d.ts +16 -0
  47. package/lib/components/properties/frameGraph/frameGraphProperties.d.ts +8 -0
  48. package/lib/components/properties/generateCopyString.d.ts +7 -0
  49. package/lib/components/properties/lights/areaLightProperties.d.ts +5 -0
  50. package/lib/components/properties/lights/clusteredLightContainerProperties.d.ts +10 -0
  51. package/lib/components/properties/lights/directionalLightProperties.d.ts +8 -0
  52. package/lib/components/properties/lights/hemisphericLightProperties.d.ts +5 -0
  53. package/lib/components/properties/lights/lightProperties.d.ts +7 -0
  54. package/lib/components/properties/lights/pointLightProperties.d.ts +5 -0
  55. package/lib/components/properties/lights/shadowGeneratorProperties.d.ts +6 -0
  56. package/lib/components/properties/lights/shadowLightProperties.d.ts +5 -0
  57. package/lib/components/properties/lights/spotLightProperties.d.ts +5 -0
  58. package/lib/components/properties/linkToEntityPropertyLine.d.ts +27 -0
  59. package/lib/components/properties/materials/materialProperties.d.ts +11 -0
  60. package/lib/components/properties/materials/multiMaterialProperties.d.ts +7 -0
  61. package/lib/components/properties/materials/nodeMaterialProperties.d.ts +8 -0
  62. package/lib/components/properties/materials/normalMapProperties.d.ts +19 -0
  63. package/lib/components/properties/materials/openpbrMaterialProperties.d.ts +61 -0
  64. package/lib/components/properties/materials/pbrBaseMaterialProperties.d.ts +285 -0
  65. package/lib/components/properties/materials/skyMaterialProperties.d.ts +5 -0
  66. package/lib/components/properties/materials/standardMaterialProperties.d.ts +29 -0
  67. package/lib/components/properties/metadataProperties.d.ts +12 -0
  68. package/lib/components/properties/nodes/abstractMeshProperties.d.ts +27 -0
  69. package/lib/components/properties/nodes/gaussianSplattingProperties.d.ts +5 -0
  70. package/lib/components/properties/nodes/meshProperties.d.ts +11 -0
  71. package/lib/components/properties/nodes/nodeProperties.d.ts +7 -0
  72. package/lib/components/properties/particles/attractor.d.ts +23 -0
  73. package/lib/components/properties/particles/attractorAdapter.d.ts +56 -0
  74. package/lib/components/properties/particles/attractorList.d.ts +15 -0
  75. package/lib/components/properties/particles/attractorProperties.d.ts +11 -0
  76. package/lib/components/properties/particles/colorProperties.d.ts +11 -0
  77. package/lib/components/properties/particles/commandsProperties.d.ts +13 -0
  78. package/lib/components/properties/particles/emissionProperties.d.ts +11 -0
  79. package/lib/components/properties/particles/emitterProperties.d.ts +13 -0
  80. package/lib/components/properties/particles/lifetimeProperties.d.ts +11 -0
  81. package/lib/components/properties/particles/nodeEditorProperties.d.ts +12 -0
  82. package/lib/components/properties/particles/rotationProperties.d.ts +11 -0
  83. package/lib/components/properties/particles/sizeProperties.d.ts +11 -0
  84. package/lib/components/properties/particles/spritesheetProperties.d.ts +11 -0
  85. package/lib/components/properties/particles/systemProperties.d.ts +13 -0
  86. package/lib/components/properties/physics/physicsProperties.d.ts +6 -0
  87. package/lib/components/properties/postProcesses/postProcessProperties.d.ts +10 -0
  88. package/lib/components/properties/propertiesPane.d.ts +2 -0
  89. package/lib/components/properties/renderingPipelines/defaultRenderingPipelineProperties.d.ts +23 -0
  90. package/lib/components/properties/renderingPipelines/iblShadowsRenderPipelineProperties.d.ts +11 -0
  91. package/lib/components/properties/renderingPipelines/lensRenderingPipelineProperties.d.ts +8 -0
  92. package/lib/components/properties/renderingPipelines/postProcessRenderPipelineProperties.d.ts +5 -0
  93. package/lib/components/properties/renderingPipelines/ssao2RenderingPipelineProperties.d.ts +8 -0
  94. package/lib/components/properties/renderingPipelines/ssaoRenderingPipelineProperties.d.ts +5 -0
  95. package/lib/components/properties/renderingPipelines/ssrRenderingPipelineProperties.d.ts +17 -0
  96. package/lib/components/properties/skeleton/boneProperties.d.ts +7 -0
  97. package/lib/components/properties/skeleton/skeletonProperties.d.ts +8 -0
  98. package/lib/components/properties/sprites/spriteManagerProperties.d.ts +25 -0
  99. package/lib/components/properties/sprites/spriteProperties.d.ts +19 -0
  100. package/lib/components/properties/textures/advancedDynamicTextureProperties.d.ts +11 -0
  101. package/lib/components/properties/textures/baseTextureProperties.d.ts +16 -0
  102. package/lib/components/properties/textures/cubeTextureProperties.d.ts +5 -0
  103. package/lib/components/properties/textures/multiRenderTargetProperties.d.ts +5 -0
  104. package/lib/components/properties/textures/renderTargetTextureProperties.d.ts +5 -0
  105. package/lib/components/properties/textures/textureFormatUtils.d.ts +48 -0
  106. package/lib/components/properties/textures/texturePreview.d.ts +17 -0
  107. package/lib/components/properties/textures/textureProperties.d.ts +11 -0
  108. package/lib/components/properties/textures/thinTextureProperties.d.ts +8 -0
  109. package/lib/components/properties/transformProperties.d.ts +11 -0
  110. package/lib/components/scene/sceneExplorer.d.ts +182 -0
  111. package/lib/components/scene/sceneExplorerDragDrop.d.ts +38 -0
  112. package/lib/components/scene/sceneProperties.d.ts +19 -0
  113. package/lib/components/stats/countStats.d.ts +5 -0
  114. package/lib/components/stats/frameStepStats.d.ts +8 -0
  115. package/lib/components/stats/performanceStats.d.ts +6 -0
  116. package/lib/components/stats/statsPane.d.ts +3 -0
  117. package/lib/components/stats/systemStats.d.ts +5 -0
  118. package/lib/components/teachingMoment.d.ts +20 -0
  119. package/lib/components/textureEditor/canvasManager.d.ts +113 -0
  120. package/lib/components/textureEditor/canvasShader.d.ts +10 -0
  121. package/lib/components/textureEditor/channels.d.ts +25 -0
  122. package/lib/components/textureEditor/properties.d.ts +23 -0
  123. package/lib/components/textureEditor/status.d.ts +13 -0
  124. package/lib/components/textureEditor/textureEditor.d.ts +113 -0
  125. package/lib/components/textureEditor/tools.d.ts +20 -0
  126. package/lib/components/theme.d.ts +10 -0
  127. package/lib/components/tools/capture/equirectangularCaptureTool.d.ts +5 -0
  128. package/lib/components/tools/capture/gifCaptureTool.d.ts +7 -0
  129. package/lib/components/tools/capture/sceneReplayTool.d.ts +5 -0
  130. package/lib/components/tools/capture/screenshotTool.d.ts +5 -0
  131. package/lib/components/tools/capture/videoCaptureTool.d.ts +5 -0
  132. package/lib/components/tools/exportTools.d.ts +11 -0
  133. package/lib/components/tools/import/gltfAnimationImportTool.d.ts +5 -0
  134. package/lib/components/tools/import/gltfLoaderOptionsTool.d.ts +8 -0
  135. package/lib/components/tools/import/gltfValidationTool.d.ts +5 -0
  136. package/lib/components/tools/reflectorTools.d.ts +5 -0
  137. package/lib/components/tools/toolsPane.d.ts +3 -0
  138. package/lib/components/uxContextProvider.d.ts +2 -0
  139. package/lib/contexts/extensionManagerContext.d.ts +6 -0
  140. package/lib/contexts/propertyContext.d.ts +30 -0
  141. package/lib/contexts/settingsContext.d.ts +3 -0
  142. package/lib/contexts/watcherContext.d.ts +3 -0
  143. package/lib/extensibility/builtInsExtensionFeed.d.ts +21 -0
  144. package/lib/extensibility/defaultInspectorExtensionFeed.d.ts +5 -0
  145. package/lib/extensibility/extensionFeed.d.ts +113 -0
  146. package/lib/extensibility/extensionManager.d.ts +111 -0
  147. package/lib/extensions/quickCreate/cameras.d.ts +14 -0
  148. package/lib/extensions/quickCreate/frameGraphs.d.ts +14 -0
  149. package/lib/extensions/quickCreate/lights.d.ts +14 -0
  150. package/lib/extensions/quickCreate/materials.d.ts +14 -0
  151. package/lib/extensions/quickCreate/meshes.d.ts +10 -0
  152. package/lib/extensions/quickCreate/particles.d.ts +15 -0
  153. package/lib/extensions/quickCreate/quickCreateLayout.d.ts +44 -0
  154. package/lib/extensions/quickCreate/quickCreateToolsService.d.ts +11 -0
  155. package/lib/extensions/quickCreate/renderingPipelines.d.ts +14 -0
  156. package/lib/extensions/quickCreate/settingsPopover.d.ts +14 -0
  157. package/lib/extensions/quickCreate/spriteManagers.d.ts +14 -0
  158. package/lib/{extensionsListService-zYdKn8uM.js → extensionsListService-BmiNjZiw.js} +7 -7
  159. package/lib/extensionsListService-BmiNjZiw.js.map +1 -0
  160. package/lib/hooks/compoundPropertyHooks.d.ts +24 -0
  161. package/lib/hooks/instrumentationHooks.d.ts +9 -0
  162. package/lib/hooks/observableHooks.d.ts +35 -0
  163. package/lib/hooks/pollingHooks.d.ts +7 -0
  164. package/lib/hooks/resourceHooks.d.ts +20 -0
  165. package/lib/hooks/settingsHooks.d.ts +13 -0
  166. package/lib/hooks/teachingMomentHooks.d.ts +34 -0
  167. package/lib/hooks/themeHooks.d.ts +17 -0
  168. package/lib/hooks/useObservableArray.d.ts +11 -0
  169. package/lib/hooks/useResizeHandle.d.ts +35 -0
  170. package/lib/{index-DuVF9zYN.js → index-BCbXjPTn.js} +791 -758
  171. package/lib/index-BCbXjPTn.js.map +1 -0
  172. package/lib/index.d.ts +108 -74767
  173. package/lib/index.js +5 -5
  174. package/lib/inspector.d.ts +41 -0
  175. package/lib/instrumentation/functionInstrumentation.d.ts +20 -0
  176. package/lib/instrumentation/propertyInstrumentation.d.ts +33 -0
  177. package/lib/legacy/debugLayer.d.ts +24 -0
  178. package/lib/legacy/inspectableCustomPropertiesService.d.ts +3 -0
  179. package/lib/legacy/inspector.d.ts +39 -0
  180. package/lib/legacy/legacy.d.ts +9 -0
  181. package/lib/legacy/propertiesSectionMapping.d.ts +99 -0
  182. package/lib/misc/arrayUtils.d.ts +4 -0
  183. package/lib/misc/assert.d.ts +5 -0
  184. package/lib/misc/graphUtils.d.ts +44 -0
  185. package/lib/misc/nodeGeometryEditor.d.ts +3 -0
  186. package/lib/misc/nodeMaterialEditor.d.ts +2 -0
  187. package/lib/misc/nodeParticleEditor.d.ts +2 -0
  188. package/lib/misc/nodeRenderGraphEditor.d.ts +2 -0
  189. package/lib/misc/observableCollection.d.ts +23 -0
  190. package/lib/misc/snippetUtils.d.ts +74 -0
  191. package/lib/misc/textureTools.d.ts +34 -0
  192. package/lib/modularTool.d.ts +37 -0
  193. package/lib/modularity/serviceContainer.d.ts +41 -0
  194. package/lib/modularity/serviceDefinition.d.ts +64 -0
  195. package/lib/{quickCreateToolsService-BtsSLeMY.js → quickCreateToolsService-BoqrJqoM.js} +6 -6
  196. package/lib/quickCreateToolsService-BoqrJqoM.js.map +1 -0
  197. package/lib/{reflectorService-Bzs-Ykos.js → reflectorService-CFTva2GG.js} +6 -6
  198. package/lib/reflectorService-CFTva2GG.js.map +1 -0
  199. package/lib/services/defaultToolbarMetadata.d.ts +5 -0
  200. package/lib/services/extensionsListService.d.ts +3 -0
  201. package/lib/services/gizmoService.d.ts +84 -0
  202. package/lib/services/gizmoToolbarService.d.ts +5 -0
  203. package/lib/services/globalSettings.d.ts +5 -0
  204. package/lib/services/highlightService.d.ts +8 -0
  205. package/lib/services/miniStatsService.d.ts +4 -0
  206. package/lib/services/panes/debugService.d.ts +25 -0
  207. package/lib/services/panes/properties/animationGroupPropertiesService.d.ts +4 -0
  208. package/lib/services/panes/properties/animationPropertiesService.d.ts +5 -0
  209. package/lib/services/panes/properties/atmospherePropertiesService.d.ts +5 -0
  210. package/lib/services/panes/properties/audioPropertiesService.d.ts +3 -0
  211. package/lib/services/panes/properties/cameraPropertiesService.d.ts +7 -0
  212. package/lib/services/panes/properties/commonPropertiesService.d.ts +3 -0
  213. package/lib/services/panes/properties/effectLayerPropertiesService.d.ts +3 -0
  214. package/lib/services/panes/properties/frameGraphPropertiesService.d.ts +3 -0
  215. package/lib/services/panes/properties/lightPropertiesServices.d.ts +4 -0
  216. package/lib/services/panes/properties/materialPropertiesService.d.ts +4 -0
  217. package/lib/services/panes/properties/metadataPropertiesService.d.ts +3 -0
  218. package/lib/services/panes/properties/nodePropertiesService.d.ts +4 -0
  219. package/lib/services/panes/properties/particleSystemPropertiesService.d.ts +4 -0
  220. package/lib/services/panes/properties/physicsPropertiesService.d.ts +3 -0
  221. package/lib/services/panes/properties/postProcessPropertiesService.d.ts +3 -0
  222. package/lib/services/panes/properties/propertiesService.d.ts +53 -0
  223. package/lib/services/panes/properties/renderingPipelinePropertiesService.d.ts +3 -0
  224. package/lib/services/panes/properties/scenePropertiesService.d.ts +4 -0
  225. package/lib/services/panes/properties/skeletonPropertiesService.d.ts +4 -0
  226. package/lib/services/panes/properties/spritePropertiesService.d.ts +4 -0
  227. package/lib/services/panes/properties/texturePropertiesService.d.ts +4 -0
  228. package/lib/services/panes/properties/transformPropertiesService.d.ts +3 -0
  229. package/lib/services/panes/scene/animationGroupExplorerService.d.ts +5 -0
  230. package/lib/services/panes/scene/atmosphereExplorerService.d.ts +5 -0
  231. package/lib/services/panes/scene/defaultSectionsMetadata.d.ts +33 -0
  232. package/lib/services/panes/scene/disposableCommandService.d.ts +4 -0
  233. package/lib/services/panes/scene/effectLayersExplorerService.d.ts +5 -0
  234. package/lib/services/panes/scene/frameGraphExplorerService.d.ts +5 -0
  235. package/lib/services/panes/scene/guiExplorerService.d.ts +5 -0
  236. package/lib/services/panes/scene/materialExplorerService.d.ts +5 -0
  237. package/lib/services/panes/scene/nodeExplorerService.d.ts +7 -0
  238. package/lib/services/panes/scene/particleSystemExplorerService.d.ts +5 -0
  239. package/lib/services/panes/scene/postProcessExplorerService.d.ts +5 -0
  240. package/lib/services/panes/scene/renderingPipelinesExplorerService.d.ts +5 -0
  241. package/lib/services/panes/scene/sceneExplorerService.d.ts +34 -0
  242. package/lib/services/panes/scene/skeletonExplorerService.d.ts +5 -0
  243. package/lib/services/panes/scene/soundExplorerService.d.ts +5 -0
  244. package/lib/services/panes/scene/spriteManagerExplorerService.d.ts +6 -0
  245. package/lib/services/panes/scene/texturesExplorerService.d.ts +5 -0
  246. package/lib/services/panes/settingsService.d.ts +25 -0
  247. package/lib/services/panes/statsService.d.ts +28 -0
  248. package/lib/services/panes/tools/captureService.d.ts +3 -0
  249. package/lib/services/panes/tools/exportService.d.ts +3 -0
  250. package/lib/services/panes/tools/import/gltfAnimationImportService.d.ts +3 -0
  251. package/lib/services/panes/tools/import/gltfLoaderOptionsDefaults.d.ts +46 -0
  252. package/lib/services/panes/tools/import/gltfLoaderOptionsService.d.ts +4 -0
  253. package/lib/services/panes/tools/import/gltfValidationService.d.ts +3 -0
  254. package/lib/services/panes/tools/reflectorService.d.ts +7 -0
  255. package/lib/services/panes/toolsService.d.ts +29 -0
  256. package/lib/services/pickingService.d.ts +7 -0
  257. package/lib/services/reactContextService.d.ts +18 -0
  258. package/lib/services/sceneContext.d.ts +19 -0
  259. package/lib/services/selectionService.d.ts +24 -0
  260. package/lib/services/settingsStore.d.ts +55 -0
  261. package/lib/services/shellService.d.ts +256 -0
  262. package/lib/services/shellSettingsService.d.ts +3 -0
  263. package/lib/services/textureEditor/textureEditorService.d.ts +21 -0
  264. package/lib/services/textureEditor/tools/contrast.d.ts +2 -0
  265. package/lib/services/textureEditor/tools/eyedropper.d.ts +5 -0
  266. package/lib/services/textureEditor/tools/floodfill.d.ts +5 -0
  267. package/lib/services/textureEditor/tools/paintbrush.d.ts +2 -0
  268. package/lib/services/textureEditor/tools/rectangularSelect.d.ts +5 -0
  269. package/lib/services/themeSelectorService.d.ts +3 -0
  270. package/lib/services/themeService.d.ts +60 -0
  271. package/lib/services/userFeedbackService.d.ts +3 -0
  272. package/lib/services/watcherService.d.ts +38 -0
  273. package/lib/themes/babylonTheme.d.ts +3 -0
  274. package/package.json +2 -2
  275. package/lib/extensionsListService-zYdKn8uM.js.map +0 -1
  276. package/lib/index-DuVF9zYN.js.map +0 -1
  277. package/lib/quickCreateToolsService-BtsSLeMY.js.map +0 -1
  278. package/lib/reflectorService-Bzs-Ykos.js.map +0 -1
@@ -0,0 +1,256 @@
1
+ import { type ComponentType } from "react";
2
+ import { type IDisposable, type Nullable } from "@babylonjs/core/index.js";
3
+ import { type IService, type ServiceDefinition } from "../modularity/serviceDefinition";
4
+ import { type SettingDescriptor } from "./settingsStore";
5
+ /**
6
+ * Setting descriptor for persisting side pane dock location overrides.
7
+ */
8
+ export declare const SidePaneDockOverridesSettingDescriptor: SettingDescriptor<Record<string, Readonly<{
9
+ horizontalLocation: HorizontalLocation;
10
+ verticalLocation: VerticalLocation;
11
+ }> | undefined>>;
12
+ /**
13
+ * Setting descriptor for persisting the left side pane width adjustment.
14
+ */
15
+ export declare const LeftSidePaneWidthAdjustSettingDescriptor: SettingDescriptor<number>;
16
+ /**
17
+ * Setting descriptor for persisting the left side pane height adjustment.
18
+ */
19
+ export declare const LeftSidePaneHeightAdjustSettingDescriptor: SettingDescriptor<number>;
20
+ /**
21
+ * Setting descriptor for persisting the right side pane width adjustment.
22
+ */
23
+ export declare const RightSidePaneWidthAdjustSettingDescriptor: SettingDescriptor<number>;
24
+ /**
25
+ * Setting descriptor for persisting the right side pane height adjustment.
26
+ */
27
+ export declare const RightSidePaneHeightAdjustSettingDescriptor: SettingDescriptor<number>;
28
+ /**
29
+ * Represents a horizontal location in the shell layout.
30
+ */
31
+ export type HorizontalLocation = "left" | "right";
32
+ /**
33
+ * Represents a vertical location in the shell layout.
34
+ */
35
+ export type VerticalLocation = "top" | "bottom";
36
+ type TeachingMomentInfo = boolean | {
37
+ readonly title: string;
38
+ readonly description: string;
39
+ };
40
+ /**
41
+ * Describes an item that can be added to one of the shell's toolbars.
42
+ */
43
+ export type ToolbarItemDefinition = {
44
+ /**
45
+ * A unique key for the toolbar item.
46
+ */
47
+ key: string;
48
+ /**
49
+ * The component to render for the toolbar item.
50
+ */
51
+ component: ComponentType;
52
+ /**
53
+ * An optional order for the toolbar item, relative to other items.
54
+ * Defaults to 0.
55
+ */
56
+ order?: number;
57
+ /**
58
+ * The horizontal location of the toolbar item.
59
+ * Can be either "left" or "right".
60
+ * In "compact" toolbar mode, "left" and "right" mean the "compact" toolbars at the top/bottom of the left/right side panes.
61
+ * In "full" toolbar mode, "left" and "right" mean the left side and right side of the full width toolbars above/below the side panes.
62
+ */
63
+ horizontalLocation: HorizontalLocation;
64
+ /**
65
+ * The vertical location of the toolbar item.
66
+ * Can be either "top" or "bottom".
67
+ */
68
+ verticalLocation: VerticalLocation;
69
+ /**
70
+ * An optional display name for the toolbar item, used for teaching moments, tooltips, etc.
71
+ */
72
+ displayName?: string;
73
+ /**
74
+ * An optional teaching moment info. The default assumes the toolbar item was added by an extension and provides a generic title and description based on the display name or id, which is helpful for discoverability of new items.
75
+ * Set this to false to suppress the teaching moment, which may be desirable for built in items or items that are added in a non-dynamic way.
76
+ * Set it to an object with a title and description to provide a custom teaching moment, which may be desirable if the generic title and description are not sufficient.
77
+ * Teaching moments are more helpful for dynamically added items, possibly from extensions.
78
+ */
79
+ teachingMoment?: TeachingMomentInfo;
80
+ };
81
+ /**
82
+ * Describes a side pane that can be added to the shell's left or right side.
83
+ */
84
+ export type SidePaneDefinition = {
85
+ /**
86
+ * A unique key for the side pane.
87
+ */
88
+ key: string;
89
+ /**
90
+ * An icon component to render for the pane tab.
91
+ */
92
+ icon: ComponentType;
93
+ /**
94
+ * The component to render for the side pane's content.
95
+ */
96
+ content: ComponentType;
97
+ /**
98
+ * An optional order for the side pane, relative to other panes.
99
+ * Defaults to 0.
100
+ */
101
+ order?: number;
102
+ /**
103
+ * The horizontal location of the side pane.
104
+ * Can be either "left" or "right".
105
+ */
106
+ horizontalLocation: HorizontalLocation;
107
+ /**
108
+ * The vertical location of the side pane.
109
+ * Can be either "top" or "bottom".
110
+ */
111
+ verticalLocation: VerticalLocation;
112
+ /**
113
+ * The title of the side pane, displayed as a standardized header at the top of the pane.
114
+ */
115
+ title: string;
116
+ /**
117
+ * An optional teaching moment info. The default assumes the side pane was added by an extension and provides a generic title and description based on the display name or id, which is helpful for discoverability of new items.
118
+ * Set this to false to suppress the teaching moment, which may be desirable for built in items or items that are added in a non-dynamic way.
119
+ * Set it to an object with a title and description to provide a custom teaching moment, which may be desirable if the generic title and description are not sufficient.
120
+ * Teaching moments are more helpful for dynamically added panes, possibly from extensions.
121
+ */
122
+ teachingMoment?: TeachingMomentInfo;
123
+ /**
124
+ * Keep the pane mounted even when it is not visible. This is useful if you don't want the
125
+ * user to lose the complex visual state when switching between tabs.
126
+ */
127
+ keepMounted?: boolean;
128
+ };
129
+ type RegisteredSidePane = {
130
+ readonly key: string;
131
+ select(): void;
132
+ };
133
+ type SidePaneContainer = {
134
+ readonly isDocked: boolean;
135
+ dock(): void;
136
+ undock(): void;
137
+ readonly isCollapsed: boolean;
138
+ collapse(): void;
139
+ expand(): void;
140
+ };
141
+ /**
142
+ * Describes content that can be added to the shell's central area (between the side panes and toolbars - e.g. the main content).
143
+ */
144
+ export type CentralContentDefinition = {
145
+ /**
146
+ * A unique key for the central content.
147
+ */
148
+ key: string;
149
+ /**
150
+ * The component to render for the central content.
151
+ */
152
+ component: ComponentType;
153
+ /**
154
+ * An optional order for content, relative to other central content.
155
+ * Defaults to 0.
156
+ */
157
+ order?: number;
158
+ };
159
+ /**
160
+ * The unique identity symbol for the root component service.
161
+ */
162
+ export declare const RootComponentServiceIdentity: unique symbol;
163
+ /**
164
+ * Exposes a top level component that should be rendered as the React root.
165
+ */
166
+ export interface IRootComponentService extends IService<typeof RootComponentServiceIdentity> {
167
+ /**
168
+ * The root component that should be rendered as the React root.
169
+ */
170
+ readonly rootComponent: ComponentType;
171
+ }
172
+ /**
173
+ * The unique identity symbol for the shell service.
174
+ */
175
+ export declare const ShellServiceIdentity: unique symbol;
176
+ /**
177
+ * Provides a shell for the application, including toolbars, side panes, and central content.
178
+ * This service allows adding toolbar items, side panes, and central content dynamically.
179
+ */
180
+ export interface IShellService extends IService<typeof ShellServiceIdentity> {
181
+ /**
182
+ * Adds a new item to one of the shell's toolbars.
183
+ * @param item Defines the item to add.
184
+ */
185
+ addToolbarItem(item: Readonly<ToolbarItemDefinition>): IDisposable;
186
+ /**
187
+ * Adds a new side pane to the shell.
188
+ * @param pane Defines the side pane to add.
189
+ */
190
+ addSidePane(pane: Readonly<SidePaneDefinition>): IDisposable;
191
+ /**
192
+ * Adds new central content to the shell.
193
+ * @param content Defines the content area to add.
194
+ */
195
+ addCentralContent(content: Readonly<CentralContentDefinition>): IDisposable;
196
+ /**
197
+ * The left side pane container.
198
+ */
199
+ readonly leftSidePaneContainer: Nullable<SidePaneContainer>;
200
+ /**
201
+ * The right side pane container.
202
+ */
203
+ readonly rightSidePaneContainer: Nullable<SidePaneContainer>;
204
+ /**
205
+ * The side panes currently present in the shell.
206
+ */
207
+ readonly sidePanes: readonly RegisteredSidePane[];
208
+ }
209
+ type ToolbarMode = "full" | "compact";
210
+ /**
211
+ * Options for configuring the shell service.
212
+ */
213
+ export type ShellServiceOptions = {
214
+ /**
215
+ * The default width of the left side pane.
216
+ */
217
+ leftPaneDefaultWidth?: number;
218
+ /**
219
+ * The minimum width of the left side pane.
220
+ */
221
+ leftPaneMinWidth?: number;
222
+ /**
223
+ * The default width of the right side pane.
224
+ */
225
+ rightPaneDefaultWidth?: number;
226
+ /**
227
+ * The minimum width of the right side pane.
228
+ */
229
+ rightPaneMinWidth?: number;
230
+ /**
231
+ * The mode of the toolbars.
232
+ * Can be either "full" (default) or "compact".
233
+ * In "full" mode, toolbars are displayed above and below the side panes.
234
+ * In "compact" mode, toolbars are displayed at the top and bottom of the left and right side panes.
235
+ */
236
+ toolbarMode?: ToolbarMode;
237
+ /**
238
+ * Whether the left side pane should start collapsed. Default is false.
239
+ */
240
+ leftPaneDefaultCollapsed?: boolean;
241
+ /**
242
+ * Whether the right side pane should start collapsed. Default is false.
243
+ */
244
+ rightPaneDefaultCollapsed?: boolean;
245
+ /**
246
+ * A function that can remap the default location of side panes.
247
+ * @param sidePane The side pane to remap.
248
+ * @returns The new location for the side pane.
249
+ */
250
+ sidePaneRemapper?: (sidePane: Readonly<SidePaneDefinition>) => Nullable<{
251
+ horizontalLocation: HorizontalLocation;
252
+ verticalLocation: VerticalLocation;
253
+ }>;
254
+ };
255
+ export declare function MakeShellServiceDefinition({ leftPaneDefaultWidth, leftPaneMinWidth, rightPaneDefaultWidth, rightPaneMinWidth, leftPaneDefaultCollapsed, rightPaneDefaultCollapsed, toolbarMode, sidePaneRemapper, }?: ShellServiceOptions): ServiceDefinition<[IShellService, IRootComponentService], []>;
256
+ export {};
@@ -0,0 +1,3 @@
1
+ import { type ServiceDefinition } from "../modularity/serviceDefinition";
2
+ import { type ISettingsService } from "./panes/settingsService";
3
+ export declare const ShellSettingsServiceDefinition: ServiceDefinition<[], [ISettingsService]>;
@@ -0,0 +1,21 @@
1
+ import { type ComponentType } from "react";
2
+ import { type IDisposable } from "@babylonjs/core/index.js";
3
+ import { type TextureEditorProps, type TextureEditorToolProvider } from "../../components/textureEditor/textureEditor";
4
+ import { type IService, type ServiceDefinition } from "../../modularity/serviceDefinition";
5
+ export declare const TextureEditorServiceIdentity: unique symbol;
6
+ /**
7
+ * Allows tools to be added to the texture editor, and also exposes a React component that is the texture editor with all the tools configured.
8
+ */
9
+ export interface ITextureEditorService extends IService<typeof TextureEditorServiceIdentity> {
10
+ /**
11
+ * Adds a new tool to the texture editor.
12
+ * @param toolProvider A provider that can create instances of the tool.
13
+ * @returns A disposable that removes the tool from the texture editor when disposed.
14
+ */
15
+ addTool(toolProvider: TextureEditorToolProvider): IDisposable;
16
+ /**
17
+ * The texture editor component with all the registered tools.
18
+ */
19
+ readonly component: ComponentType<TextureEditorProps>;
20
+ }
21
+ export declare const TextureEditorServiceDefinition: ServiceDefinition<[ITextureEditorService], []>;
@@ -0,0 +1,2 @@
1
+ import { type TextureEditorToolProvider } from "../../../components/textureEditor/textureEditor";
2
+ export declare const Contrast: TextureEditorToolProvider;
@@ -0,0 +1,5 @@
1
+ import { type TextureEditorToolProvider } from "../../../components/textureEditor/textureEditor";
2
+ /**
3
+ * Eyedropper tool for picking colors from the texture
4
+ */
5
+ export declare const Eyedropper: TextureEditorToolProvider;
@@ -0,0 +1,5 @@
1
+ import { type TextureEditorToolProvider } from "../../../components/textureEditor/textureEditor";
2
+ /**
3
+ * Floodfill tool for filling regions with a solid color
4
+ */
5
+ export declare const Floodfill: TextureEditorToolProvider;
@@ -0,0 +1,2 @@
1
+ import { type TextureEditorToolProvider } from "../../../components/textureEditor/textureEditor";
2
+ export declare const Paintbrush: TextureEditorToolProvider;
@@ -0,0 +1,5 @@
1
+ import { type TextureEditorToolProvider } from "../../../components/textureEditor/textureEditor";
2
+ /**
3
+ * Rectangle selection tool for selecting regions of the texture
4
+ */
5
+ export declare const RectangleSelect: TextureEditorToolProvider;
@@ -0,0 +1,3 @@
1
+ import { type ServiceDefinition } from "../modularity/serviceDefinition";
2
+ import { type IShellService } from "../services/shellService";
3
+ export declare const ThemeSelectorServiceDefinition: ServiceDefinition<[], [IShellService]>;
@@ -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,3 @@
1
+ import { type ServiceDefinition } from "../modularity/serviceDefinition";
2
+ import { type IShellService } from "./shellService";
3
+ export declare const UserFeedbackServiceDefinition: ServiceDefinition<[], [IShellService]>;
@@ -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]>;
@@ -0,0 +1,3 @@
1
+ import { type Theme } from "@fluentui/react-components";
2
+ export declare const LightTheme: Theme;
3
+ export declare const DarkTheme: Theme;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@babylonjs/inspector",
3
- "version": "9.0.0",
3
+ "version": "9.1.0",
4
4
  "main": "lib/index.js",
5
5
  "module": "lib/index.js",
6
6
  "esnext": "lib/index.js",
@@ -23,7 +23,7 @@
23
23
  "build": "npm run clean && npm run bundle",
24
24
  "clean": "rimraf lib && rimraf dist && rimraf *.tsbuildinfo -g",
25
25
  "bundle": "npm run bundle:lib",
26
- "bundle:lib": "rollup -c rollup.config.lib.mjs",
26
+ "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",
27
27
  "pack": "npm run build && npm pack"
28
28
  },
29
29
  "peerDependencies": {
@@ -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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"}