@babylonjs/inspector 8.45.0-preview → 8.45.1-preview

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.
@@ -1,9 +1,9 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { createContext, useContext, useMemo, useEffect, useState, useRef, useCallback, forwardRef, isValidElement, cloneElement, Children, useLayoutEffect, useImperativeHandle, createElement, Suspense, useReducer, lazy } from 'react';
2
+ import { createContext, useContext, useCallback, useMemo, useEffect, useState, useRef, forwardRef, isValidElement, cloneElement, Children, useLayoutEffect, useImperativeHandle, createElement, Suspense, useReducer, lazy } from 'react';
3
3
  import { Color3, Color4 } from '@babylonjs/core/Maths/math.color.js';
4
4
  import { Vector3, Quaternion, Matrix, Vector2, Vector4, TmpVectors } from '@babylonjs/core/Maths/math.vector.js';
5
5
  import { Observable } from '@babylonjs/core/Misc/observable.js';
6
- import { makeStyles, Link as Link$1, Body1, ToggleButton as ToggleButton$1, Button as Button$1, tokens, InfoLabel as InfoLabel$1, Body1Strong, Checkbox as Checkbox$1, mergeClasses, Accordion as Accordion$1, AccordionItem, AccordionHeader, Subtitle2Stronger, AccordionPanel, Divider, createLightTheme, createDarkTheme, FluentProvider, TeachingPopover, TeachingPopoverSurface, TeachingPopoverHeader, TeachingPopoverBody, Portal, RendererProvider, createDOMRenderer, Tooltip, Menu, MenuTrigger, SplitButton, MenuPopover, MenuList, MenuItem, Toolbar as Toolbar$1, ToolbarRadioButton, MenuGroup, MenuGroupHeader, SearchBox as SearchBox$1, FlatTree, FlatTreeItem, TreeItemLayout, MenuDivider, treeItemLevelToken, MenuItemCheckbox, Switch as Switch$1, PresenceBadge, useId, SpinButton as SpinButton$1, Slider, Input, Dropdown as Dropdown$1, Option, Popover as Popover$1, PopoverTrigger, PopoverSurface, ColorPicker, ColorArea, ColorSlider, AlphaSlider, ColorSwatch, MenuItemRadio, Dialog, DialogSurface, DialogBody, DialogTitle, DialogContent, DialogActions, List as List$1, ListItem, Spinner, Badge, MessageBar as MessageBar$1, MessageBarBody, MessageBarTitle, useComboboxFilter, Combobox, Textarea as Textarea$1, ToolbarButton, Label, ToolbarDivider, Field } from '@fluentui/react-components';
6
+ import { makeStyles, Link as Link$1, Body1, ToggleButton as ToggleButton$1, Button as Button$1, tokens, InfoLabel as InfoLabel$1, Body1Strong, Tooltip, Checkbox as Checkbox$1, mergeClasses, Accordion as Accordion$1, AccordionItem, AccordionHeader, Subtitle2Stronger, AccordionPanel, Divider, createLightTheme, createDarkTheme, FluentProvider, TeachingPopover, TeachingPopoverSurface, TeachingPopoverHeader, TeachingPopoverBody, Portal, RendererProvider, createDOMRenderer, Menu, MenuTrigger, SplitButton, MenuPopover, MenuList, MenuItem, Toolbar as Toolbar$1, ToolbarRadioButton, MenuGroup, MenuGroupHeader, SearchBox as SearchBox$1, FlatTree, FlatTreeItem, TreeItemLayout, MenuDivider, treeItemLevelToken, MenuItemCheckbox, Switch as Switch$1, PresenceBadge, useId, SpinButton as SpinButton$1, Slider, Input, Dropdown as Dropdown$1, Option, Popover as Popover$1, PopoverTrigger, PopoverSurface, ColorPicker, ColorArea, ColorSlider, AlphaSlider, ColorSwatch, MenuItemRadio, Dialog, DialogSurface, DialogBody, DialogTitle, DialogContent, DialogActions, List as List$1, ListItem, Spinner, Badge, MessageBar as MessageBar$1, MessageBarBody, MessageBarTitle, useComboboxFilter, Combobox, Textarea as Textarea$1, ToolbarButton, Label, ToolbarDivider, Field } from '@fluentui/react-components';
7
7
  import { ChevronCircleRight16Regular, ChevronCircleRight20Regular, ChevronCircleDown16Regular, ChevronCircleDown20Regular, Copy16Regular, Copy20Regular, PanelLeftExpandRegular, PanelRightExpandRegular, PanelLeftContractRegular, PanelRightContractRegular, PictureInPictureEnterRegular, MoreHorizontalRegular, LayoutColumnTwoFocusLeftFilled, LayoutColumnTwoSplitLeftFocusTopLeftFilled, LayoutColumnTwoSplitLeftFocusBottomLeftFilled, LayoutColumnTwoFocusRightFilled, LayoutColumnTwoSplitRightFocusTopRightFilled, LayoutColumnTwoSplitRightFocusBottomRightFilled, DocumentTextRegular, createFluentIcon, FilterRegular, GlobeRegular, ArrowExpandAllRegular, ArrowCollapseAllRegular, CubeTreeRegular, BugRegular, SettingsRegular, ArrowUploadRegular, DataBarHorizontalRegular, WrenchRegular, WeatherSunnyRegular, WeatherMoonRegular, ErrorCircleRegular, ArrowRotateClockwiseRegular, ArrowExpandRegular, SelectObjectRegular, CubeRegular, LinkDismissRegular, LinkEditRegular, SaveRegular, ArrowUndoRegular, BracesRegular, BracesDismiss16Regular, CopyRegular, DeleteRegular, EyeOffFilled, EyeFilled, ArrowMoveFilled, StopFilled, PlayFilled, EyeRegular, EyeOffRegular, LockOpenRegular, LockClosedRegular, ResizeRegular, ChevronUpRegular, ChevronDownRegular, ArrowResetRegular, CircleHalfFillRegular, EyedropperRegular, PaintBucketRegular, InkStrokeRegular, StackRegular, FilmstripRegular, PauseFilled, WeatherSunnyLowFilled, LayerRegular, FrameRegular, PlayRegular, AppGenericRegular, MyLocationRegular, CameraRegular, LightbulbRegular, BorderOutsideRegular, BorderNoneRegular, VideoFilled, VideoRegular, FlashlightRegular, FlashlightOffRegular, DropRegular, BlurRegular, PipelineRegular, PersonWalkingRegular, DataLineRegular, PersonSquareRegular, LayerDiagonalPersonRegular, ImageEditRegular, ImageRegular, TargetRegular, PersonFeedbackRegular, BranchRegular, DeleteFilled } from '@fluentui/react-icons';
8
8
  import { Collapse as Collapse$1, Fade } from '@fluentui/react-motion-components-preview';
9
9
  import '@babylonjs/core/Misc/typeStore.js';
@@ -125,9 +125,9 @@ import { Lazy } from '@babylonjs/core/Misc/lazy.js';
125
125
  const PropertyContext = createContext(undefined);
126
126
  function usePropertyChangedNotifier() {
127
127
  const propertyContext = useContext(PropertyContext);
128
- return (entity, propertyKey, oldValue, newValue) => {
128
+ return useCallback((entity, propertyKey, oldValue, newValue) => {
129
129
  propertyContext?.onPropertyChanged.notifyObservers({ entity, propertyKey, oldValue, newValue });
130
- };
130
+ }, [propertyContext]);
131
131
  }
132
132
 
133
133
  const InterceptorHooksMaps$1 = new WeakMap();
@@ -680,6 +680,13 @@ const Link = forwardRef((props, ref) => {
680
680
  });
681
681
  Link.displayName = "Link";
682
682
 
683
+ const useStyles$t = makeStyles({
684
+ button: {
685
+ display: "flex",
686
+ alignItems: "center",
687
+ justifyContent: "center",
688
+ },
689
+ });
683
690
  /**
684
691
  * Toggles between two states using a button with icons.
685
692
  * If no disabledIcon is provided, the button will toggle between visual enabled/disabled states without an icon change
@@ -691,6 +698,7 @@ const ToggleButton = (props) => {
691
698
  ToggleButton.displayName = "ToggleButton";
692
699
  const { value, onChange, title, appearance = "subtle" } = props;
693
700
  const { size } = useContext(ToolContext);
701
+ const classes = useStyles$t();
694
702
  const [checked, setChecked] = useState(value);
695
703
  const toggle = useCallback(() => {
696
704
  setChecked((prev) => {
@@ -702,7 +710,7 @@ const ToggleButton = (props) => {
702
710
  useEffect(() => {
703
711
  setChecked(props.value);
704
712
  }, [props.value]);
705
- return (jsx(ToggleButton$1, { title: title, size: size, icon: checked ? jsx(props.checkedIcon, {}) : props.uncheckedIcon ? jsx(props.uncheckedIcon, {}) : jsx(props.checkedIcon, {}), appearance: appearance, checked: checked, onClick: toggle }));
713
+ return (jsx(ToggleButton$1, { className: classes.button, title: title, size: size, icon: checked ? jsx(props.checkedIcon, {}) : props.uncheckedIcon ? jsx(props.uncheckedIcon, {}) : jsx(props.checkedIcon, {}), appearance: appearance, checked: checked, onClick: toggle }));
706
714
  };
707
715
 
708
716
  const Button = forwardRef((props, ref) => {
@@ -828,6 +836,10 @@ const usePropertyLineStyles = makeStyles({
828
836
  expandedContentDiv: {
829
837
  overflow: "hidden",
830
838
  },
839
+ checkbox: {
840
+ display: "flex",
841
+ alignItems: "center",
842
+ },
831
843
  });
832
844
  /**
833
845
  * A reusable component that renders a property line with a label and child content, and an optional description, copy button, and expandable section.
@@ -855,17 +867,17 @@ const PropertyLine = forwardRef((props, ref) => {
855
867
  : children;
856
868
  return (jsxs(LineContainer, { ref: ref, children: [jsxs("div", { className: classes.baseLine, children: [jsx(InfoLabel$1, { size: size, className: classes.infoLabel, label: { className: classes.labelSlot }, info: description ? jsx("div", { className: classes.infoPopup, children: description }) : undefined, title: label, children: jsx(Body1Strong, { className: classes.labelText, children: label }) }), jsxs("div", { className: classes.rightContent, children: [expandedContent && (jsx(ToggleButton, { title: "Expand/Collapse property", appearance: "transparent", checkedIcon: size === "small" ? ChevronCircleDown16Regular : ChevronCircleDown20Regular, uncheckedIcon: size === "small" ? ChevronCircleRight16Regular : ChevronCircleRight20Regular, value: expanded === true, onChange: setExpanded })), nullable && !ignoreNullable && (
857
869
  // If this is a nullableProperty and ignoreNullable was not sent, display a checkbox used to toggle null ('checked' means 'non null')
858
- jsx(Checkbox$1, { checked: !(props.value == null), onChange: (_, data) => {
859
- if (data.checked) {
860
- // if checked this means we are returning to non-null, use cached value if exists. If no cached value, use default value
861
- cachedVal.current != null ? props.onChange(cachedVal.current) : props.onChange(props.defaultValue);
862
- }
863
- else {
864
- // if moving to un-checked state, this means moving to null value. Cache the old value and tell props.onChange(null)
865
- cachedVal.current = props.value;
866
- props.onChange(null);
867
- }
868
- }, title: "Toggle null state" })), jsx("div", { className: classes.childWrapper, children: processedChildren }), onCopy && !disableCopy && (jsx(Button, { className: classes.copy, title: "Copy to clipboard", appearance: "transparent", icon: size === "small" ? Copy16Regular : Copy20Regular, onClick: () => copyCommandToClipboard(onCopy()) }))] })] }), expandedContent && (jsx(Collapse, { visible: !!expanded, children: jsx("div", { className: classes.expandedContentDiv, children: expandedContent }) }))] }));
870
+ jsx(Tooltip, { relationship: "label", content: props.value == null ? "Enable property" : "Disable property (set to null)", children: jsx(Checkbox$1, { className: classes.checkbox, checked: !(props.value == null), onChange: (_, data) => {
871
+ if (data.checked) {
872
+ // if checked this means we are returning to non-null, use cached value if exists. If no cached value, use default value
873
+ cachedVal.current != null ? props.onChange(cachedVal.current) : props.onChange(props.defaultValue);
874
+ }
875
+ else {
876
+ // if moving to un-checked state, this means moving to null value. Cache the old value and tell props.onChange(null)
877
+ cachedVal.current = props.value;
878
+ props.onChange(null);
879
+ }
880
+ } }) })), jsx("div", { className: classes.childWrapper, children: processedChildren }), onCopy && !disableCopy && (jsx(Button, { className: classes.copy, title: "Copy to clipboard", appearance: "transparent", icon: size === "small" ? Copy16Regular : Copy20Regular, onClick: () => copyCommandToClipboard(onCopy()) }))] })] }), expandedContent && (jsx(Collapse, { visible: !!expanded, children: jsx("div", { className: classes.expandedContentDiv, children: expandedContent }) }))] }));
869
881
  });
870
882
  const useLineStyles = makeStyles({
871
883
  container: {
@@ -3827,7 +3839,7 @@ const DefaultInspectorExtensionFeed = new BuiltInsExtensionFeed("Inspector", [
3827
3839
  keywords: ["export", "gltf", "glb", "babylon", "exporter", "tools"],
3828
3840
  ...BabylonWebResources,
3829
3841
  author: { name: "Alex Chuber", forumUserName: "alexchuber" },
3830
- getExtensionModuleAsync: async () => await import('./exportService-bnHVeuTp.js'),
3842
+ getExtensionModuleAsync: async () => await import('./exportService-Ds9cCJKY.js'),
3831
3843
  },
3832
3844
  {
3833
3845
  name: "Capture Tools",
@@ -3835,7 +3847,7 @@ const DefaultInspectorExtensionFeed = new BuiltInsExtensionFeed("Inspector", [
3835
3847
  keywords: ["capture", "screenshot", "gif", "video", "tools"],
3836
3848
  ...BabylonWebResources,
3837
3849
  author: { name: "Alex Chuber", forumUserName: "alexchuber" },
3838
- getExtensionModuleAsync: async () => await import('./captureService-BRFdjxFs.js'),
3850
+ getExtensionModuleAsync: async () => await import('./captureService-BljpAUY0.js'),
3839
3851
  },
3840
3852
  {
3841
3853
  name: "Import Tools",
@@ -3843,7 +3855,7 @@ const DefaultInspectorExtensionFeed = new BuiltInsExtensionFeed("Inspector", [
3843
3855
  keywords: ["import", "tools"],
3844
3856
  ...BabylonWebResources,
3845
3857
  author: { name: "Alex Chuber", forumUserName: "alexchuber" },
3846
- getExtensionModuleAsync: async () => await import('./importService-CGjLAv9b.js'),
3858
+ getExtensionModuleAsync: async () => await import('./importService-DjRpoPdx.js'),
3847
3859
  },
3848
3860
  {
3849
3861
  name: "Quick Creation Tools (Preview)",
@@ -3851,7 +3863,7 @@ const DefaultInspectorExtensionFeed = new BuiltInsExtensionFeed("Inspector", [
3851
3863
  keywords: ["creation", "tools"],
3852
3864
  ...BabylonWebResources,
3853
3865
  author: { name: "Babylon.js", forumUserName: "" },
3854
- getExtensionModuleAsync: async () => await import('./quickCreateToolsService-B_KvGvkG.js'),
3866
+ getExtensionModuleAsync: async () => await import('./quickCreateToolsService-B1GLLyqj.js'),
3855
3867
  },
3856
3868
  ]);
3857
3869
 
@@ -4138,6 +4150,10 @@ const useColorPickerStyles = makeStyles({
4138
4150
  minWidth: 0,
4139
4151
  gap: tokens.spacingVerticalSNudge, // 6px
4140
4152
  },
4153
+ trigger: {
4154
+ display: "flex",
4155
+ alignItems: "center",
4156
+ },
4141
4157
  });
4142
4158
  const ColorPickerPopup = forwardRef((props, ref) => {
4143
4159
  ColorPickerPopup.displayName = "ColorPickerPopup";
@@ -4161,7 +4177,7 @@ const ColorPickerPopup = forwardRef((props, ref) => {
4161
4177
  setColor(newColor);
4162
4178
  onChange(newColor); // Ensures the parent is notified when color changes from within colorPicker
4163
4179
  };
4164
- return (jsx(Popover, { trigger: jsx(ColorSwatch, { ref: ref, ...rest, borderColor: tokens.colorNeutralShadowKeyDarker, size: size === "small" ? "extra-small" : "small", shape: "rounded", color: color.toHexString(), value: color.toHexString().slice(1) }), children: jsxs("div", { className: classes.container, children: [jsxs(ColorPicker, { className: classes.colorPicker, color: rgbaToHsv(color), onColorChange: handleColorPickerChange, children: [jsx(ColorArea, { inputX: { "aria-label": "Saturation" }, inputY: { "aria-label": "Brightness" } }), jsx(ColorSlider, { "aria-label": "Hue" }), color instanceof Color4 && jsx(AlphaSlider, { "aria-label": "Alpha" })] }), jsxs("div", { className: classes.row, children: [jsx("div", { className: classes.previewColor, style: { backgroundColor: color.toHexString() } }), jsx(NumberDropdown, { className: classes.inputField, infoLabel: {
4180
+ return (jsx(Popover, { trigger: jsx(ColorSwatch, { className: classes.trigger, ref: ref, ...rest, borderColor: tokens.colorNeutralShadowKeyDarker, size: size === "small" ? "extra-small" : "small", shape: "rounded", color: color.toHexString(), value: color.toHexString().slice(1) }), children: jsxs("div", { className: classes.container, children: [jsxs(ColorPicker, { className: classes.colorPicker, color: rgbaToHsv(color), onColorChange: handleColorPickerChange, children: [jsx(ColorArea, { inputX: { "aria-label": "Saturation" }, inputY: { "aria-label": "Brightness" } }), jsx(ColorSlider, { "aria-label": "Hue" }), color instanceof Color4 && jsx(AlphaSlider, { "aria-label": "Alpha" })] }), jsxs("div", { className: classes.row, children: [jsx("div", { className: classes.previewColor, style: { backgroundColor: color.toHexString() } }), jsx(NumberDropdown, { className: classes.inputField, infoLabel: {
4165
4181
  label: "Color Space",
4166
4182
  info: jsx(Body1, { children: "Today this is not mutable as the color space is determined by the entity. Soon we will allow swapping" }),
4167
4183
  }, options: [
@@ -4288,8 +4304,9 @@ const ColorPropertyLine = forwardRef((props, ref) => {
4288
4304
  setColor(newColor);
4289
4305
  props.onChange(newColor);
4290
4306
  };
4291
- return (jsx(PropertyLine, { ref: ref, ...props, expandedContent: jsxs(Fragment, { children: [jsx(SyncedSliderPropertyLine, { label: "R", value: color.r * 255, min: 0, max: 255, onChange: (value) => onSliderChange(value, "r") }), jsx(SyncedSliderPropertyLine, { label: "G", value: color.g * 255, min: 0, max: 255, onChange: (value) => onSliderChange(value, "g") }), jsx(SyncedSliderPropertyLine, { label: "B", value: color.b * 255, min: 0, max: 255, onChange: (value) => onSliderChange(value, "b") }), color instanceof Color4 && jsx(SyncedSliderPropertyLine, { label: "A", value: color.a, min: 0, max: 1, step: 0.01, onChange: (value) => onSliderChange(value, "a") })] }), children: jsx(ColorPickerPopup, { ...props, onChange: onColorPickerChange, value: color }) }));
4307
+ return (jsx(PropertyLine, { ref: ref, ...props, expandedContent: color ? jsx(ColorSliders, { color: color, onSliderChange: onSliderChange }) : undefined, children: jsx(ColorPickerPopup, { ...props, onChange: onColorPickerChange, value: color }) }));
4292
4308
  });
4309
+ const ColorSliders = ({ color, onSliderChange }) => (jsxs(Fragment, { children: [jsx(SyncedSliderPropertyLine, { label: "R", value: color.r * 255, min: 0, max: 255, onChange: (value) => onSliderChange(value, "r") }), jsx(SyncedSliderPropertyLine, { label: "G", value: color.g * 255, min: 0, max: 255, onChange: (value) => onSliderChange(value, "g") }), jsx(SyncedSliderPropertyLine, { label: "B", value: color.b * 255, min: 0, max: 255, onChange: (value) => onSliderChange(value, "b") }), color instanceof Color4 && jsx(SyncedSliderPropertyLine, { label: "A", value: color.a, min: 0, max: 1, step: 0.01, onChange: (value) => onSliderChange(value, "a") })] }));
4293
4310
  const Color3PropertyLine = ColorPropertyLine;
4294
4311
  const Color4PropertyLine = ColorPropertyLine;
4295
4312
 
@@ -4361,8 +4378,9 @@ const TensorPropertyLine = (props) => {
4361
4378
  useEffect(() => {
4362
4379
  setVector(props.value);
4363
4380
  }, [props.value, props.expandedContent]);
4364
- return (jsx(PropertyLine, { ...props, onCopy: () => `new ${props.value.getClassName()}(${vector.x},${vector.y}${HasZ(vector) ? `,${vector.z}` : ""}${HasW(vector) ? `,${vector.w}` : ""})`, expandedContent: jsxs(Fragment, { children: [jsx(SyncedSliderPropertyLine, { label: "X", value: converted(vector.x), min: min, max: max, onChange: (val) => onChange(val, "x"), unit: props.unit, step: props.step }), jsx(SyncedSliderPropertyLine, { label: "Y", value: converted(vector.y), min: min, max: max, onChange: (val) => onChange(val, "y"), unit: props.unit, step: props.step }), HasZ(vector) && (jsx(SyncedSliderPropertyLine, { label: "Z", value: converted(vector.z), min: min, max: max, onChange: (val) => onChange(val, "z"), unit: props.unit, step: props.step })), HasW(vector) && (jsx(SyncedSliderPropertyLine, { label: "W", value: converted(vector.w), min: min, max: max, onChange: (val) => onChange(val, "w"), unit: props.unit, step: props.step }))] }), children: jsx(Body1, { children: `[${formatted(props.value.x)}, ${formatted(props.value.y)}${HasZ(props.value) ? `, ${formatted(props.value.z)}` : ""}${HasW(props.value) ? `, ${formatted(props.value.w)}` : ""}]` }) }));
4381
+ return (jsx(PropertyLine, { ...props, onCopy: () => `new ${props.value.getClassName()}(${vector.x},${vector.y}${HasZ(vector) ? `,${vector.z}` : ""}${HasW(vector) ? `,${vector.w}` : ""})`, expandedContent: vector ? jsx(VectorSliders, { vector: vector, min: min, max: max, unit: props.unit, step: props.step, converted: converted, onChange: onChange }) : undefined, children: jsx(Body1, { children: `[${formatted(props.value.x)}, ${formatted(props.value.y)}${HasZ(props.value) ? `, ${formatted(props.value.z)}` : ""}${HasW(props.value) ? `, ${formatted(props.value.w)}` : ""}]` }) }));
4365
4382
  };
4383
+ const VectorSliders = ({ vector, min, max, unit, step, converted, onChange }) => (jsxs(Fragment, { children: [jsx(SyncedSliderPropertyLine, { label: "X", value: converted(vector.x), min: min, max: max, onChange: (val) => onChange(val, "x"), unit: unit, step: step }), jsx(SyncedSliderPropertyLine, { label: "Y", value: converted(vector.y), min: min, max: max, onChange: (val) => onChange(val, "y"), unit: unit, step: step }), HasZ(vector) && jsx(SyncedSliderPropertyLine, { label: "Z", value: converted(vector.z), min: min, max: max, onChange: (val) => onChange(val, "z"), unit: unit, step: step }), HasW(vector) && jsx(SyncedSliderPropertyLine, { label: "W", value: converted(vector.w), min: min, max: max, onChange: (val) => onChange(val, "w"), unit: unit, step: step })] }));
4366
4384
  const ToDegreesConverter = { from: Tools.ToDegrees, to: Tools.ToRadians };
4367
4385
  const RotationVectorPropertyLine = (props) => {
4368
4386
  RotationVectorPropertyLine.displayName = "RotationVectorPropertyLine";
@@ -4978,7 +4996,7 @@ function MakeModularTool(options) {
4978
4996
  });
4979
4997
  // Register the extension list service (for browsing/installing extensions) if extension feeds are provided.
4980
4998
  if (extensionFeeds.length > 0) {
4981
- const { ExtensionListServiceDefinition } = await import('./extensionsListService-CbClUfJa.js');
4999
+ const { ExtensionListServiceDefinition } = await import('./extensionsListService-ClfCMwL9.js');
4982
5000
  await serviceContainer.addServiceAsync(ExtensionListServiceDefinition);
4983
5001
  }
4984
5002
  // Register the theme selector service (for selecting the theme) if theming is configured.
@@ -13203,4 +13221,4 @@ const TextAreaPropertyLine = (props) => {
13203
13221
  AttachDebugLayer();
13204
13222
 
13205
13223
  export { useSidePaneDockOverrides as $, Accordion as A, ButtonLine as B, Collapse as C, DebugServiceIdentity as D, ExtensibleAccordion as E, FileUploadLine as F, useVector3Property as G, useColor3Property as H, Inspector as I, useColor4Property as J, useQuaternionProperty as K, Link as L, MakeLazyComponent as M, NumberDropdownPropertyLine as N, MakePropertyHook as O, Popover as P, useInterceptObservable as Q, useEventfulState as R, SwitchPropertyLine as S, ToolsServiceIdentity as T, useObservableCollection as U, Vector3PropertyLine as V, useOrderedObservableCollection as W, usePollingObservable as X, useResource as Y, useAsyncResource as Z, useCompactMode as _, SyncedSliderPropertyLine as a, useAngleConverters as a0, MakeTeachingMoment as a1, MakeDialogTeachingMoment as a2, InterceptFunction as a3, GetPropertyDescriptor as a4, IsPropertyReadonly as a5, InterceptProperty as a6, ObservableCollection as a7, ConstructorFactory as a8, SelectionServiceIdentity as a9, TextInput as aA, ToggleButton as aB, ChildWindow as aC, FactorGradientList as aD, Color3GradientList as aE, Color4GradientList as aF, Pane as aG, BooleanBadgePropertyLine as aH, Color3PropertyLine as aI, Color4PropertyLine as aJ, HexPropertyLine as aK, NumberInputPropertyLine as aL, LinkPropertyLine as aM, PropertyLine as aN, LineContainer as aO, PlaceholderPropertyLine as aP, StringifiedPropertyLine as aQ, TextAreaPropertyLine as aR, TextPropertyLine as aS, RotationVectorPropertyLine as aT, QuaternionPropertyLine as aU, Vector2PropertyLine as aV, Vector4PropertyLine as aW, SelectionServiceDefinition as aa, SettingsContextIdentity as ab, ShowInspector as ac, Checkbox as ad, ColorPickerPopup as ae, InputHexField as af, InputHsvField as ag, ComboBox as ah, DraggableLine as ai, Dropdown as aj, NumberDropdown as ak, StringDropdown as al, FactorGradientComponent as am, Color3GradientComponent as an, Color4GradientComponent as ao, ColorStepGradientComponent as ap, InfoLabel as aq, List as ar, MessageBar as as, PositionedPopover as at, SearchBar as au, SearchBox as av, SpinButton as aw, Switch as ax, SyncedSliderInput as ay, Textarea as az, Button as b, TextInputPropertyLine as c, SpinButtonPropertyLine as d, CheckboxPropertyLine as e, ShellServiceIdentity as f, SceneContextIdentity as g, AccordionSection as h, useExtensionManager as i, MakePopoverTeachingMoment as j, TeachingMoment as k, SidePaneContainer as l, PropertiesServiceIdentity as m, SceneExplorerServiceIdentity as n, SettingsServiceIdentity as o, StatsServiceIdentity as p, ConvertOptions as q, AttachDebugLayer as r, DetachDebugLayer as s, StringDropdownPropertyLine as t, useObservableState as u, BoundProperty as v, LinkToEntityPropertyLine as w, Theme as x, BuiltInsExtensionFeed as y, useProperty as z };
13206
- //# sourceMappingURL=index-bFqtVcnb.js.map
13224
+ //# sourceMappingURL=index-DShP7wwE.js.map