babylonjs-gui-editor 8.12.1 → 8.13.1

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.
@@ -3039,7 +3039,9 @@ export class Vector3LineComponent extends React.Component<IVector3LineComponentP
3039
3039
  updateStateX(value: number): void;
3040
3040
  updateStateY(value: number): void;
3041
3041
  updateStateZ(value: number): void;
3042
- onCopyClick(): void;
3042
+ onCopyClick(): string;
3043
+
3044
+
3043
3045
 
3044
3046
  }
3045
3047
  export {};
@@ -3156,6 +3158,9 @@ interface ITextLineComponentProps {
3156
3158
  export class TextLineComponent extends React.Component<ITextLineComponentProps> {
3157
3159
  constructor(props: ITextLineComponentProps);
3158
3160
  onLink(): void;
3161
+ copyFn(): (() => string) | undefined;
3162
+
3163
+
3159
3164
 
3160
3165
 
3161
3166
  }
@@ -3163,7 +3168,8 @@ export {};
3163
3168
 
3164
3169
  }
3165
3170
  declare module "babylonjs-gui-editor/lines/textInputLineComponent" {
3166
- import * as React from "react";
3171
+ import { ReactNode, KeyboardEvent } from "react";
3172
+ import { Component } from "react";
3167
3173
  import { Observable } from "babylonjs/Misc/observable";
3168
3174
  import { PropertyChangedEvent } from "babylonjs-gui-editor/propertyChangedEvent";
3169
3175
  import { LockObject } from "babylonjs-gui-editor/tabs/propertyGrids/lockObject";
@@ -3188,14 +3194,14 @@ export interface ITextInputLineComponentProps {
3188
3194
  min?: number;
3189
3195
  max?: number;
3190
3196
  placeholder?: string;
3191
- unit?: React.ReactNode;
3197
+ unit?: ReactNode;
3192
3198
  validator?: (value: string) => boolean;
3193
3199
  multilines?: boolean;
3194
3200
  throttlePropertyChangedNotification?: boolean;
3195
3201
  throttlePropertyChangedNotificationDelay?: number;
3196
3202
  disabled?: boolean;
3197
3203
  }
3198
- export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
3204
+ export class TextInputLineComponent extends Component<ITextInputLineComponentProps, {
3199
3205
  value: string;
3200
3206
  dragging: boolean;
3201
3207
  }> {
@@ -3210,7 +3216,9 @@ export class TextInputLineComponent extends React.Component<ITextInputLineCompon
3210
3216
  getCurrentNumericValue(value: string): number;
3211
3217
  updateValue(value: string, valueToValidate?: string): void;
3212
3218
  incrementValue(amount: number): void;
3213
- onKeyDown(event: React.KeyboardEvent): void;
3219
+ onKeyDown(event: KeyboardEvent): void;
3220
+
3221
+
3214
3222
 
3215
3223
  }
3216
3224
 
@@ -3267,6 +3275,8 @@ export class SliderLineComponent extends React.Component<ISliderLineComponentPro
3267
3275
  prepareDataToRead(value: number): number;
3268
3276
  onCopyClick(): void;
3269
3277
 
3278
+
3279
+
3270
3280
  }
3271
3281
  export {};
3272
3282
 
@@ -3331,7 +3341,9 @@ export class OptionsLine extends React.Component<IOptionsLineProps, {
3331
3341
  raiseOnPropertyChanged(newValue: number, previousValue: number): void;
3332
3342
  setValue(value: string | number): void;
3333
3343
  updateValue(valueString: string): void;
3334
- onCopyClick(): void;
3344
+ onCopyClickStr(): string;
3345
+ private _renderFluent;
3346
+ private _renderOriginal;
3335
3347
 
3336
3348
  }
3337
3349
 
@@ -3692,6 +3704,8 @@ export class FileButtonLine extends React.Component<IFileButtonLineProps> {
3692
3704
  constructor(props: IFileButtonLineProps);
3693
3705
  onChange(evt: any): void;
3694
3706
 
3707
+
3708
+
3695
3709
  }
3696
3710
  export {};
3697
3711
 
@@ -3795,6 +3809,8 @@ export class ColorLine extends React.Component<IColorLineProps, IColorLineCompon
3795
3809
  private _toColor3;
3796
3810
  onCopyClick(): void;
3797
3811
 
3812
+
3813
+
3798
3814
  }
3799
3815
  export {};
3800
3816
 
@@ -3878,6 +3894,8 @@ export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponen
3878
3894
  onChange(): void;
3879
3895
  onCopyClick(): void;
3880
3896
 
3897
+
3898
+
3881
3899
  }
3882
3900
 
3883
3901
  }
@@ -3893,6 +3911,8 @@ export interface IButtonLineComponentProps {
3893
3911
  export class ButtonLineComponent extends React.Component<IButtonLineComponentProps> {
3894
3912
  constructor(props: IButtonLineComponentProps);
3895
3913
 
3914
+
3915
+
3896
3916
  }
3897
3917
 
3898
3918
  }
@@ -3909,6 +3929,432 @@ export class BooleanLineComponent extends React.Component<IBooleanLineComponentP
3909
3929
 
3910
3930
  }
3911
3931
 
3932
+ }
3933
+ declare module "babylonjs-gui-editor/fluent/primitives/textarea" {
3934
+
3935
+ import { FunctionComponent } from "react";
3936
+ import { BaseComponentProps } from "babylonjs-gui-editor/fluent/hoc/propertyLine";
3937
+ export type TextareaProps = BaseComponentProps<string> & {
3938
+ placeholder?: string;
3939
+ };
3940
+ /**
3941
+ * This is a texarea box that stops propagation of change/keydown events
3942
+ * @param props
3943
+ * @returns
3944
+ */
3945
+ export const Textarea: FunctionComponent<any>;
3946
+
3947
+ }
3948
+ declare module "babylonjs-gui-editor/fluent/primitives/syncedSlider" {
3949
+ import { FunctionComponent } from "react";
3950
+ import { BaseComponentProps } from "babylonjs-gui-editor/fluent/hoc/propertyLine";
3951
+ export type SyncedSliderProps = BaseComponentProps<number> & {
3952
+ min?: number;
3953
+ max?: number;
3954
+ step?: number;
3955
+ };
3956
+ /**
3957
+ * Component which synchronizes a slider and an input field, allowing the user to change a value using either control
3958
+ * @param props
3959
+ * @returns SyncedSlider component
3960
+ */
3961
+ export const SyncedSliderInput: FunctionComponent<SyncedSliderProps>;
3962
+
3963
+ }
3964
+ declare module "babylonjs-gui-editor/fluent/primitives/switch" {
3965
+ import { FunctionComponent } from "react";
3966
+ import { BaseComponentProps } from "babylonjs-gui-editor/fluent/hoc/propertyLine";
3967
+ export type SwitchProps = BaseComponentProps<boolean>;
3968
+ /**
3969
+ * This is a primitive fluent boolean switch component whose only knowledge is the shared styling across all tools
3970
+ * @param props
3971
+ * @returns Switch component
3972
+ */
3973
+ export const Switch: FunctionComponent<SwitchProps>;
3974
+
3975
+ }
3976
+ declare module "babylonjs-gui-editor/fluent/primitives/spinButton" {
3977
+ import { FunctionComponent } from "react";
3978
+ import { BaseComponentProps } from "babylonjs-gui-editor/fluent/hoc/propertyLine";
3979
+ export type SpinButtonProps = BaseComponentProps<number>;
3980
+ export const SpinButton: FunctionComponent<SpinButtonProps>;
3981
+
3982
+ }
3983
+ declare module "babylonjs-gui-editor/fluent/primitives/link" {
3984
+
3985
+
3986
+ }
3987
+ declare module "babylonjs-gui-editor/fluent/primitives/input" {
3988
+ import { FunctionComponent } from "react";
3989
+ import { BaseComponentProps } from "babylonjs-gui-editor/fluent/hoc/propertyLine";
3990
+ export type InputProps<T extends string | number> = BaseComponentProps<T> & {
3991
+ step?: number;
3992
+ placeholder?: string;
3993
+ min?: number;
3994
+ max?: number;
3995
+ };
3996
+ /**
3997
+ * This is an input text box that stops propagation of change events and sets its width based on the type of input (text or number)
3998
+ * @param props
3999
+ * @returns
4000
+ */
4001
+ export const Input: FunctionComponent<InputProps<string | number>>;
4002
+
4003
+ }
4004
+ declare module "babylonjs-gui-editor/fluent/primitives/dropdown" {
4005
+ import { FunctionComponent } from "react";
4006
+ import { BaseComponentProps } from "babylonjs-gui-editor/fluent/hoc/propertyLine";
4007
+ export type AcceptedDropdownValue = string | number;
4008
+ export type DropdownOption = {
4009
+ /**
4010
+ * Defines the visible part of the option
4011
+ */
4012
+ label: string;
4013
+ /**
4014
+ * Defines the value part of the option
4015
+ */
4016
+ value: AcceptedDropdownValue;
4017
+ };
4018
+ export type DropdownProps = BaseComponentProps<AcceptedDropdownValue | undefined> & {
4019
+ options: DropdownOption[];
4020
+ includeUndefined?: boolean;
4021
+ };
4022
+ /**
4023
+ * Renders a fluent UI dropdown component for the options passed in, and an additional 'Not Defined' option if includeUndefined is set to true
4024
+ * @param props
4025
+ * @returns dropdown component
4026
+ */
4027
+ export const Dropdown: FunctionComponent<DropdownProps>;
4028
+
4029
+ }
4030
+ declare module "babylonjs-gui-editor/fluent/primitives/colorPicker" {
4031
+ import { FunctionComponent } from "react";
4032
+ import { Color3, Color4 } from "babylonjs/Maths/math.color";
4033
+ import { BaseComponentProps } from "babylonjs-gui-editor/fluent/hoc/propertyLine";
4034
+ export type ColorPickerProps<C extends Color3 | Color4> = {
4035
+ isLinearMode?: boolean;
4036
+ } & BaseComponentProps<C>;
4037
+ export const ColorPickerPopup: FunctionComponent<ColorPickerProps<Color3 | Color4>>;
4038
+ type HsvKey = "h" | "s" | "v";
4039
+ export type InputHexProps = BaseComponentProps<Color3 | Color4> & {
4040
+ label?: string;
4041
+ linearHex?: boolean;
4042
+ isLinearMode?: boolean;
4043
+ };
4044
+ /**
4045
+ * Component which displays the passed in color's HEX value, either in linearSpace (if linearHex is true) or in gamma space
4046
+ * When the hex color is changed by user, component calculates the new Color3/4 value and calls onChange
4047
+ *
4048
+ * Component uses the isLinearMode boolean to display an informative label regarding linear / gamma space
4049
+ * @param props - The properties for the InputHexField component.
4050
+ * @returns
4051
+ */
4052
+ export const InputHexField: FunctionComponent<InputHexProps>;
4053
+ type InputHsvFieldProps = {
4054
+ color: Color3 | Color4;
4055
+ label: string;
4056
+ hsvKey: HsvKey;
4057
+ onChange: (color: Color3 | Color4) => void;
4058
+ max: number;
4059
+ scale?: number;
4060
+ };
4061
+ /**
4062
+ * In the HSV (Hue, Saturation, Value) color model, Hue (H) ranges from 0 to 360 degrees, representing the color's position on the color wheel.
4063
+ * Saturation (S) ranges from 0 to 100%, indicating the intensity or purity of the color, with 0 being shades of gray and 100 being a fully saturated color.
4064
+ * Value (V) ranges from 0 to 100%, representing the brightness of the color, with 0 being black and 100 being the brightest.
4065
+ * @param props - The properties for the InputHsvField component.
4066
+ */
4067
+ export const InputHsvField: FunctionComponent<InputHsvFieldProps>;
4068
+ export {};
4069
+
4070
+ }
4071
+ declare module "babylonjs-gui-editor/fluent/primitives/checkbox" {
4072
+ import { FunctionComponent } from "react";
4073
+ import { BaseComponentProps } from "babylonjs-gui-editor/fluent/hoc/propertyLine";
4074
+ export type CheckboxProps = BaseComponentProps<boolean>;
4075
+ /**
4076
+ * This is a primitive fluent checkbox that can both read and write checked state
4077
+ * @param props
4078
+ * @returns Checkbox component
4079
+ */
4080
+ export const Checkbox: FunctionComponent<CheckboxProps>;
4081
+
4082
+ }
4083
+ declare module "babylonjs-gui-editor/fluent/primitives/accordion" {
4084
+ import { FunctionComponent, PropsWithChildren } from "react";
4085
+ export type AccordionSectionProps = {
4086
+ title: string;
4087
+ };
4088
+ export const AccordionSection: FunctionComponent<PropsWithChildren<AccordionSectionProps>>;
4089
+ export const Accordion: FunctionComponent<PropsWithChildren>;
4090
+
4091
+ }
4092
+ declare module "babylonjs-gui-editor/fluent/hoc/vectorPropertyLine" {
4093
+ import { FunctionComponent } from "react";
4094
+ import { BaseComponentProps, PropertyLineProps } from "babylonjs-gui-editor/fluent/hoc/propertyLine";
4095
+ import { Vector4 } from "babylonjs/Maths/math.vector";
4096
+ import { Vector3 } from "babylonjs/Maths/math.vector";
4097
+ export type VectorPropertyLineProps<V extends Vector3 | Vector4> = BaseComponentProps<V> & PropertyLineProps & {
4098
+ /**
4099
+ * If passed, all sliders will use this for the min value
4100
+ */
4101
+ min?: number;
4102
+ /**
4103
+ * If passed, all sliders will use this for the max value
4104
+ */
4105
+ max?: number;
4106
+ /**
4107
+ * If passed, the UX will use the conversion functions to display/update values
4108
+ */
4109
+ valueConverter?: {
4110
+ /**
4111
+ * Will call from(val) before displaying in the UX
4112
+ */
4113
+ from: (val: number) => number;
4114
+ /**
4115
+ * Will call to(val) before calling onChange
4116
+ */
4117
+ to: (val: number) => number;
4118
+ };
4119
+ };
4120
+ type RotationVectorPropertyLineProps = VectorPropertyLineProps<Vector3> & {
4121
+ /**
4122
+ * Display angles as degrees instead of radians
4123
+ */
4124
+ useDegrees?: boolean;
4125
+ };
4126
+ export const RotationVectorPropertyLine: FunctionComponent<RotationVectorPropertyLineProps>;
4127
+ export const Vector3PropertyLine: FunctionComponent<VectorPropertyLineProps<Vector3>>;
4128
+ export const Vector4PropertyLine: FunctionComponent<VectorPropertyLineProps<Vector4>>;
4129
+ export {};
4130
+
4131
+ }
4132
+ declare module "babylonjs-gui-editor/fluent/hoc/textPropertyLine" {
4133
+ import { PropertyLineProps } from "babylonjs-gui-editor/fluent/hoc/propertyLine";
4134
+ import { FunctionComponent } from "react";
4135
+ type TextProps = {
4136
+ value: string;
4137
+ tooltip?: string;
4138
+ };
4139
+ /**
4140
+ * Wraps text in a property line
4141
+ * @param props - PropertyLineProps and TextProps
4142
+ * @returns property-line wrapped text
4143
+ */
4144
+ export const TextPropertyLine: FunctionComponent<PropertyLineProps & TextProps>;
4145
+ export {};
4146
+
4147
+ }
4148
+ declare module "babylonjs-gui-editor/fluent/hoc/syncedSliderLine" {
4149
+ import { PropertyLineProps } from "babylonjs-gui-editor/fluent/hoc/propertyLine";
4150
+ import { SyncedSliderProps } from "babylonjs-gui-editor/fluent/primitives/syncedSlider";
4151
+ import { FunctionComponent } from "react";
4152
+ type SyncedSliderLineProps = SyncedSliderProps & PropertyLineProps;
4153
+ /**
4154
+ * Renders a simple wrapper around the SyncedSliderInput
4155
+ * @param props
4156
+ * @returns
4157
+ */
4158
+ export const SyncedSliderLine: FunctionComponent<SyncedSliderLineProps>;
4159
+ export {};
4160
+
4161
+ }
4162
+ declare module "babylonjs-gui-editor/fluent/hoc/switchPropertyLine" {
4163
+ import { PropertyLineProps } from "babylonjs-gui-editor/fluent/hoc/propertyLine";
4164
+ import { FunctionComponent } from "react";
4165
+ import { SwitchProps } from "babylonjs-gui-editor/fluent/primitives/switch";
4166
+ /**
4167
+ * Wraps a switch in a property line
4168
+ * @param props - The properties for the switch and property line
4169
+ * @returns A React element representing the property line with a switch
4170
+ */
4171
+ export const SwitchPropertyLine: FunctionComponent<PropertyLineProps & SwitchProps>;
4172
+
4173
+ }
4174
+ declare module "babylonjs-gui-editor/fluent/hoc/propertyLine" {
4175
+ import { FunctionComponent } from "react";
4176
+ export type PropertyLineProps = {
4177
+ /**
4178
+ * The name of the property to display in the property line.
4179
+ */
4180
+ label: string;
4181
+ /**
4182
+ * Optional description for the property, shown on hover of the info icon
4183
+ */
4184
+ description?: string;
4185
+ /**
4186
+ * Optional function returning a string to copy to clipboard.
4187
+ */
4188
+ onCopy?: () => string;
4189
+ /**
4190
+ * If supplied, an 'expand' icon will be shown which, when clicked, renders this component within the property line.
4191
+ */
4192
+ expandedContent?: JSX.Element;
4193
+ /**
4194
+ * Link to the documentation for this property, available from the info icon either linked from the description (if provided) or defalt 'docs' text
4195
+ */
4196
+ docLink?: string;
4197
+ };
4198
+ export const LineContainer: import("react").ForwardRefExoticComponent<{
4199
+ children?: import("react").ReactNode | undefined;
4200
+ } & import("react").RefAttributes<HTMLDivElement>>;
4201
+ export type BaseComponentProps<T> = {
4202
+ /**
4203
+ * The value of the property to be displayed and modified.
4204
+ */
4205
+ value: T;
4206
+ /**
4207
+ * Callback function to handle changes to the value
4208
+ */
4209
+ onChange: (value: T) => void;
4210
+ /**
4211
+ * Optional flag to disable the component, preventing any interaction.
4212
+ */
4213
+ disabled?: boolean;
4214
+ /**
4215
+ * Optional class name to apply custom styles to the component.
4216
+ */
4217
+ className?: string;
4218
+ };
4219
+ /**
4220
+ * A reusable component that renders a property line with a label and child content, and an optional description, copy button, and expandable section.
4221
+ *
4222
+ * @param props - The properties for the PropertyLine component.
4223
+ * @returns A React element representing the property line.
4224
+ *
4225
+ */
4226
+ export const PropertyLine: import("react").ForwardRefExoticComponent<PropertyLineProps & {
4227
+ children?: import("react").ReactNode | undefined;
4228
+ } & import("react").RefAttributes<HTMLDivElement>>;
4229
+ export const PlaceholderPropertyLine: FunctionComponent<BaseComponentProps<any> & PropertyLineProps>;
4230
+
4231
+ }
4232
+ declare module "babylonjs-gui-editor/fluent/hoc/linkPropertyLine" {
4233
+ import { PropertyLineProps } from "babylonjs-gui-editor/fluent/hoc/propertyLine";
4234
+ import { FunctionComponent } from "react";
4235
+ type LinkProps = {
4236
+ value: string;
4237
+ tooltip?: string;
4238
+ onLink?: () => void;
4239
+ url?: string;
4240
+ };
4241
+ /**
4242
+ * Wraps a link in a property line
4243
+ * @param props - PropertyLineProps and LinkProps
4244
+ * @returns property-line wrapped link
4245
+ */
4246
+ export const LinkPropertyLine: FunctionComponent<PropertyLineProps & LinkProps>;
4247
+ export {};
4248
+
4249
+ }
4250
+ declare module "babylonjs-gui-editor/fluent/hoc/inputPropertyLine" {
4251
+ import { PropertyLineProps } from "babylonjs-gui-editor/fluent/hoc/propertyLine";
4252
+ import { FunctionComponent } from "react";
4253
+ import { InputProps } from "babylonjs-gui-editor/fluent/primitives/input";
4254
+ export const TextInputPropertyLine: FunctionComponent<InputProps<string> & PropertyLineProps>;
4255
+ export const FloatInputPropertyLine: FunctionComponent<InputProps<number> & PropertyLineProps>;
4256
+
4257
+ }
4258
+ declare module "babylonjs-gui-editor/fluent/hoc/hexLineComponent" {
4259
+ import { PropertyLineProps } from "babylonjs-gui-editor/fluent/hoc/propertyLine";
4260
+ import { FunctionComponent } from "react";
4261
+ import { InputHexProps } from "babylonjs-gui-editor/fluent/primitives/colorPicker";
4262
+ /**
4263
+ * Wraps a hex input in a property line
4264
+ * @param props - PropertyLineProps and InputHexProps
4265
+ * @returns property-line wrapped input hex component
4266
+ */
4267
+ export const HexPropertyLine: FunctionComponent<InputHexProps & PropertyLineProps>;
4268
+
4269
+ }
4270
+ declare module "babylonjs-gui-editor/fluent/hoc/fluentToolWrapper" {
4271
+ import { PropsWithChildren, FunctionComponent } from "react";
4272
+
4273
+ export type ToolHostProps = {
4274
+ /**
4275
+ * Allows host to pass in a theme
4276
+ */
4277
+ customTheme?: any;
4278
+ /**
4279
+ * Can be set to true to disable the copy button in the tool's property lines. Default is false (copy enabled)
4280
+ */
4281
+ disableCopy?: boolean;
4282
+ };
4283
+ export const ToolContext: import("react").Context<{
4284
+ readonly useFluent: boolean;
4285
+ readonly disableCopy: boolean;
4286
+ }>;
4287
+ /**
4288
+ * For tools which are ready to move over the fluent, wrap the root of the tool (or the panel which you want fluentized) with this component
4289
+ * Today we will only enable fluent if the URL has the `newUX` query parameter is truthy
4290
+ * @param props
4291
+ * @returns
4292
+ */
4293
+ export const FluentToolWrapper: FunctionComponent<PropsWithChildren<ToolHostProps>>;
4294
+
4295
+ }
4296
+ declare module "babylonjs-gui-editor/fluent/hoc/fileUploadLine" {
4297
+ import { FunctionComponent } from "react";
4298
+ import { ButtonLineProps } from "babylonjs-gui-editor/fluent/hoc/buttonLine";
4299
+ type FileUploadLineProps = Omit<ButtonLineProps, "onClick"> & {
4300
+ onClick: (file: File) => void;
4301
+ accept: string;
4302
+ };
4303
+ export const FileUploadLine: FunctionComponent<FileUploadLineProps>;
4304
+ export {};
4305
+
4306
+ }
4307
+ declare module "babylonjs-gui-editor/fluent/hoc/dropdownPropertyLine" {
4308
+ import { DropdownProps } from "babylonjs-gui-editor/fluent/primitives/dropdown";
4309
+ import { PropertyLineProps } from "babylonjs-gui-editor/fluent/hoc/propertyLine";
4310
+ import { FunctionComponent } from "react";
4311
+ /**
4312
+ * Wraps a dropdown in a property line
4313
+ * @param props - PropertyLineProps and DropdownProps
4314
+ * @returns property-line wrapped dropdown
4315
+ */
4316
+ export const DropdownPropertyLine: FunctionComponent<PropertyLineProps & DropdownProps>;
4317
+
4318
+ }
4319
+ declare module "babylonjs-gui-editor/fluent/hoc/colorPropertyLine" {
4320
+ import { FunctionComponent } from "react";
4321
+ import { PropertyLineProps } from "babylonjs-gui-editor/fluent/hoc/propertyLine";
4322
+ import { Color3 } from "babylonjs/Maths/math.color";
4323
+ import { Color4 } from "babylonjs/Maths/math.color";
4324
+ import { ColorPickerProps } from "babylonjs-gui-editor/fluent/primitives/colorPicker";
4325
+ export type ColorPropertyLineProps = ColorPickerProps<Color3 | Color4> & PropertyLineProps;
4326
+ export const Color3PropertyLine: FunctionComponent<ColorPickerProps<Color3> & PropertyLineProps>;
4327
+ export const Color4PropertyLine: FunctionComponent<ColorPickerProps<Color4> & PropertyLineProps>;
4328
+
4329
+ }
4330
+ declare module "babylonjs-gui-editor/fluent/hoc/checkboxPropertyLine" {
4331
+ import { PropertyLineProps } from "babylonjs-gui-editor/fluent/hoc/propertyLine";
4332
+ import { FunctionComponent } from "react";
4333
+ import { CheckboxProps } from "babylonjs-gui-editor/fluent/primitives/checkbox";
4334
+ /**
4335
+ * Wraps a checkbox in a property line
4336
+ * @param props - PropertyLineProps and CheckboxProps
4337
+ * @returns property-line wrapped checkbox
4338
+ */
4339
+ export const CheckboxPropertyLine: FunctionComponent<PropertyLineProps & CheckboxProps>;
4340
+
4341
+ }
4342
+ declare module "babylonjs-gui-editor/fluent/hoc/buttonLine" {
4343
+ import { FunctionComponent } from "react";
4344
+ export type ButtonLineProps = {
4345
+ label: string;
4346
+ onClick: () => void;
4347
+ disabled?: boolean;
4348
+ icon?: string;
4349
+ title?: string;
4350
+ };
4351
+ /**
4352
+ * Wraps a button with a label in a line container
4353
+ * @param props Button props plus a label
4354
+ * @returns A button inside a line
4355
+ */
4356
+ export const ButtonLine: FunctionComponent<ButtonLineProps>;
4357
+
3912
4358
  }
3913
4359
  declare module "babylonjs-gui-editor/components/classNames" {
3914
4360
  export function ClassNames(names: any, styleObject: any): string;
@@ -7811,7 +8257,9 @@ declare module BABYLON.GuiEditor.SharedUIComponents {
7811
8257
  updateStateX(value: number): void;
7812
8258
  updateStateY(value: number): void;
7813
8259
  updateStateZ(value: number): void;
7814
- onCopyClick(): void;
8260
+ onCopyClick(): string;
8261
+ renderFluent(): import("react/jsx-runtime").JSX.Element;
8262
+ renderOriginal(): import("react/jsx-runtime").JSX.Element;
7815
8263
  render(): import("react/jsx-runtime").JSX.Element;
7816
8264
  }
7817
8265
 
@@ -7943,7 +8391,10 @@ declare module BABYLON.GuiEditor.SharedUIComponents {
7943
8391
  export class TextLineComponent extends React.Component<ITextLineComponentProps> {
7944
8392
  constructor(props: ITextLineComponentProps);
7945
8393
  onLink(): void;
7946
- renderContent(): import("react/jsx-runtime").JSX.Element | null;
8394
+ copyFn(): (() => string) | undefined;
8395
+ renderContent(isLink: boolean, tooltip: string): import("react/jsx-runtime").JSX.Element | null;
8396
+ renderOriginal(isLink: boolean, tooltip: string): import("react/jsx-runtime").JSX.Element;
8397
+ renderFluent(isLink: boolean, tooltip: string): import("react/jsx-runtime").JSX.Element;
7947
8398
  render(): import("react/jsx-runtime").JSX.Element;
7948
8399
  }
7949
8400
 
@@ -7999,6 +8450,8 @@ declare module BABYLON.GuiEditor.SharedUIComponents {
7999
8450
  updateValue(value: string, valueToValidate?: string): void;
8000
8451
  incrementValue(amount: number): void;
8001
8452
  onKeyDown(event: React.KeyboardEvent): void;
8453
+ renderFluent(value: string, placeholder: string, step: number): import("react/jsx-runtime").JSX.Element;
8454
+ renderOriginal(value: string, placeholder: string, step: number): import("react/jsx-runtime").JSX.Element;
8002
8455
  render(): import("react/jsx-runtime").JSX.Element;
8003
8456
  }
8004
8457
 
@@ -8060,6 +8513,8 @@ declare module BABYLON.GuiEditor.SharedUIComponents {
8060
8513
  onInput(newValueString: any): void;
8061
8514
  prepareDataToRead(value: number): number;
8062
8515
  onCopyClick(): void;
8516
+ renderFluent(): import("react/jsx-runtime").JSX.Element;
8517
+ renderOriginal(): import("react/jsx-runtime").JSX.Element;
8063
8518
  render(): import("react/jsx-runtime").JSX.Element;
8064
8519
  }
8065
8520
 
@@ -8129,7 +8584,9 @@ declare module BABYLON.GuiEditor.SharedUIComponents {
8129
8584
  raiseOnPropertyChanged(newValue: number, previousValue: number): void;
8130
8585
  setValue(value: string | number): void;
8131
8586
  updateValue(valueString: string): void;
8132
- onCopyClick(): void;
8587
+ onCopyClickStr(): string;
8588
+ private _renderFluent;
8589
+ private _renderOriginal;
8133
8590
  render(): import("react/jsx-runtime").JSX.Element;
8134
8591
  }
8135
8592
 
@@ -8538,6 +8995,8 @@ declare module BABYLON.GuiEditor.SharedUIComponents {
8538
8995
  private _uploadInputRef;
8539
8996
  constructor(props: IFileButtonLineProps);
8540
8997
  onChange(evt: any): void;
8998
+ renderFluent(): import("react/jsx-runtime").JSX.Element;
8999
+ renderOriginal(): import("react/jsx-runtime").JSX.Element;
8541
9000
  render(): import("react/jsx-runtime").JSX.Element;
8542
9001
  }
8543
9002
 
@@ -8653,6 +9112,8 @@ declare module BABYLON.GuiEditor.SharedUIComponents {
8653
9112
  private _convertToColor;
8654
9113
  private _toColor3;
8655
9114
  onCopyClick(): void;
9115
+ renderFluent(): import("react/jsx-runtime").JSX.Element;
9116
+ renderOriginal(): import("react/jsx-runtime").JSX.Element;
8656
9117
  render(): import("react/jsx-runtime").JSX.Element;
8657
9118
  }
8658
9119
 
@@ -8741,6 +9202,8 @@ declare module BABYLON.GuiEditor.SharedUIComponents {
8741
9202
  }): boolean;
8742
9203
  onChange(): void;
8743
9204
  onCopyClick(): void;
9205
+ renderOriginal(): import("react/jsx-runtime").JSX.Element;
9206
+ renderFluent(): import("react/jsx-runtime").JSX.Element;
8744
9207
  render(): import("react/jsx-runtime").JSX.Element;
8745
9208
  }
8746
9209
 
@@ -8761,6 +9224,8 @@ declare module BABYLON.GuiEditor.SharedUIComponents {
8761
9224
  }
8762
9225
  export class ButtonLineComponent extends React.Component<IButtonLineComponentProps> {
8763
9226
  constructor(props: IButtonLineComponentProps);
9227
+ renderFluent(): import("react/jsx-runtime").JSX.Element;
9228
+ renderOriginal(): import("react/jsx-runtime").JSX.Element;
8764
9229
  render(): import("react/jsx-runtime").JSX.Element;
8765
9230
  }
8766
9231
 
@@ -8785,6 +9250,513 @@ declare module BABYLON.GuiEditor.SharedUIComponents {
8785
9250
 
8786
9251
 
8787
9252
 
9253
+ }
9254
+ declare module BABYLON {
9255
+
9256
+
9257
+ }
9258
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9259
+ export type TextareaProps = BABYLON.GuiEditor.SharedUIComponents.BaseComponentProps<string> & {
9260
+ placeholder?: string;
9261
+ };
9262
+ /**
9263
+ * This is a texarea box that stops propagation of change/keydown events
9264
+ * @param props
9265
+ * @returns
9266
+ */
9267
+ export var Textarea: React.FunctionComponent<any>;
9268
+
9269
+
9270
+
9271
+ }
9272
+ declare module BABYLON {
9273
+
9274
+
9275
+ }
9276
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9277
+ export type SyncedSliderProps = BABYLON.GuiEditor.SharedUIComponents.BaseComponentProps<number> & {
9278
+ min?: number;
9279
+ max?: number;
9280
+ step?: number;
9281
+ };
9282
+ /**
9283
+ * Component which synchronizes a slider and an input field, allowing the user to change a value using either control
9284
+ * @param props
9285
+ * @returns SyncedSlider component
9286
+ */
9287
+ export var SyncedSliderInput: React.FunctionComponent<SyncedSliderProps>;
9288
+
9289
+
9290
+
9291
+ }
9292
+ declare module BABYLON {
9293
+
9294
+
9295
+ }
9296
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9297
+ export type SwitchProps = BABYLON.GuiEditor.SharedUIComponents.BaseComponentProps<boolean>;
9298
+ /**
9299
+ * This is a primitive fluent boolean switch component whose only knowledge is the shared styling across all tools
9300
+ * @param props
9301
+ * @returns Switch component
9302
+ */
9303
+ export var Switch: React.FunctionComponent<SwitchProps>;
9304
+
9305
+
9306
+
9307
+ }
9308
+ declare module BABYLON {
9309
+
9310
+
9311
+ }
9312
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9313
+ export type SpinButtonProps = BABYLON.GuiEditor.SharedUIComponents.BaseComponentProps<number>;
9314
+ export var SpinButton: React.FunctionComponent<SpinButtonProps>;
9315
+
9316
+
9317
+
9318
+ }
9319
+ declare module BABYLON {
9320
+
9321
+
9322
+ }
9323
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9324
+
9325
+
9326
+
9327
+ }
9328
+ declare module BABYLON {
9329
+
9330
+
9331
+ }
9332
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9333
+ export type InputProps<T extends string | number> = BABYLON.GuiEditor.SharedUIComponents.BaseComponentProps<T> & {
9334
+ step?: number;
9335
+ placeholder?: string;
9336
+ min?: number;
9337
+ max?: number;
9338
+ };
9339
+ /**
9340
+ * This is an input text box that stops propagation of change events and sets its width based on the type of input (text or number)
9341
+ * @param props
9342
+ * @returns
9343
+ */
9344
+ export var Input: React.FunctionComponent<InputProps<string | number>>;
9345
+
9346
+
9347
+
9348
+ }
9349
+ declare module BABYLON {
9350
+
9351
+
9352
+ }
9353
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9354
+ export type AcceptedDropdownValue = string | number;
9355
+ export type DropdownOption = {
9356
+ /**
9357
+ * Defines the visible part of the option
9358
+ */
9359
+ label: string;
9360
+ /**
9361
+ * Defines the value part of the option
9362
+ */
9363
+ value: AcceptedDropdownValue;
9364
+ };
9365
+ export type DropdownProps = BABYLON.GuiEditor.SharedUIComponents.BaseComponentProps<AcceptedDropdownValue | undefined> & {
9366
+ options: DropdownOption[];
9367
+ includeUndefined?: boolean;
9368
+ };
9369
+ /**
9370
+ * Renders a fluent UI dropdown component for the options passed in, and an additional 'Not Defined' option if includeUndefined is set to true
9371
+ * @param props
9372
+ * @returns dropdown component
9373
+ */
9374
+ export var Dropdown: React.FunctionComponent<DropdownProps>;
9375
+
9376
+
9377
+
9378
+ }
9379
+ declare module BABYLON {
9380
+
9381
+
9382
+ }
9383
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9384
+ export type ColorPickerProps<C extends Color3 | Color4> = {
9385
+ isLinearMode?: boolean;
9386
+ } & BABYLON.GuiEditor.SharedUIComponents.BaseComponentProps<C>;
9387
+ export var ColorPickerPopup: React.FunctionComponent<ColorPickerProps<Color3 | Color4>>;
9388
+ type HsvKey = "h" | "s" | "v";
9389
+ export type InputHexProps = BABYLON.GuiEditor.SharedUIComponents.BaseComponentProps<Color3 | Color4> & {
9390
+ label?: string;
9391
+ linearHex?: boolean;
9392
+ isLinearMode?: boolean;
9393
+ };
9394
+ /**
9395
+ * Component which displays the passed in color's HEX value, either in linearSpace (if linearHex is true) or in gamma space
9396
+ * When the hex color is changed by user, component calculates the new Color3/4 value and calls onChange
9397
+ *
9398
+ * Component uses the isLinearMode boolean to display an informative label regarding linear / gamma space
9399
+ * @param props - The properties for the InputHexField component.
9400
+ * @returns
9401
+ */
9402
+ export var InputHexField: React.FunctionComponent<InputHexProps>;
9403
+ type InputHsvFieldProps = {
9404
+ color: Color3 | Color4;
9405
+ label: string;
9406
+ hsvKey: HsvKey;
9407
+ onChange: (color: Color3 | Color4) => void;
9408
+ max: number;
9409
+ scale?: number;
9410
+ };
9411
+ /**
9412
+ * In the HSV (Hue, Saturation, Value) color model, Hue (H) ranges from 0 to 360 degrees, representing the color's position on the color wheel.
9413
+ * Saturation (S) ranges from 0 to 100%, indicating the intensity or purity of the color, with 0 being shades of gray and 100 being a fully saturated color.
9414
+ * Value (V) ranges from 0 to 100%, representing the brightness of the color, with 0 being black and 100 being the brightest.
9415
+ * @param props - The properties for the InputHsvField component.
9416
+ */
9417
+ export var InputHsvField: React.FunctionComponent<InputHsvFieldProps>;
9418
+
9419
+
9420
+
9421
+ }
9422
+ declare module BABYLON {
9423
+
9424
+
9425
+ }
9426
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9427
+ export type CheckboxProps = BABYLON.GuiEditor.SharedUIComponents.BaseComponentProps<boolean>;
9428
+ /**
9429
+ * This is a primitive fluent checkbox that can both read and write checked state
9430
+ * @param props
9431
+ * @returns Checkbox component
9432
+ */
9433
+ export var Checkbox: React.FunctionComponent<CheckboxProps>;
9434
+
9435
+
9436
+
9437
+ }
9438
+ declare module BABYLON {
9439
+
9440
+
9441
+ }
9442
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9443
+ export type AccordionSectionProps = {
9444
+ title: string;
9445
+ };
9446
+ export var AccordionSection: React.FunctionComponent<React.PropsWithChildren<AccordionSectionProps>>;
9447
+ export var Accordion: React.FunctionComponent<React.PropsWithChildren>;
9448
+
9449
+
9450
+
9451
+ }
9452
+ declare module BABYLON {
9453
+
9454
+
9455
+ }
9456
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9457
+ export type VectorPropertyLineProps<V extends Vector3 | Vector4> = BABYLON.GuiEditor.SharedUIComponents.BaseComponentProps<V> & BABYLON.GuiEditor.SharedUIComponents.PropertyLineProps & {
9458
+ /**
9459
+ * If passed, all sliders will use this for the min value
9460
+ */
9461
+ min?: number;
9462
+ /**
9463
+ * If passed, all sliders will use this for the max value
9464
+ */
9465
+ max?: number;
9466
+ /**
9467
+ * If passed, the UX will use the conversion functions to display/update values
9468
+ */
9469
+ valueConverter?: {
9470
+ /**
9471
+ * Will call from(val) before displaying in the UX
9472
+ */
9473
+ from: (val: number) => number;
9474
+ /**
9475
+ * Will call to(val) before calling onChange
9476
+ */
9477
+ to: (val: number) => number;
9478
+ };
9479
+ };
9480
+ type RotationVectorPropertyLineProps = VectorPropertyLineProps<Vector3> & {
9481
+ /**
9482
+ * Display angles as degrees instead of radians
9483
+ */
9484
+ useDegrees?: boolean;
9485
+ };
9486
+ export var RotationVectorPropertyLine: React.FunctionComponent<RotationVectorPropertyLineProps>;
9487
+ export var Vector3PropertyLine: React.FunctionComponent<VectorPropertyLineProps<Vector3>>;
9488
+ export var Vector4PropertyLine: React.FunctionComponent<VectorPropertyLineProps<Vector4>>;
9489
+
9490
+
9491
+
9492
+ }
9493
+ declare module BABYLON {
9494
+
9495
+
9496
+ }
9497
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9498
+ type TextProps = {
9499
+ value: string;
9500
+ tooltip?: string;
9501
+ };
9502
+ /**
9503
+ * Wraps text in a property line
9504
+ * @param props - BABYLON.GuiEditor.SharedUIComponents.PropertyLineProps and TextProps
9505
+ * @returns property-line wrapped text
9506
+ */
9507
+ export var TextPropertyLine: React.FunctionComponent<BABYLON.GuiEditor.SharedUIComponents.PropertyLineProps & TextProps>;
9508
+
9509
+
9510
+
9511
+ }
9512
+ declare module BABYLON {
9513
+
9514
+
9515
+ }
9516
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9517
+ type SyncedSliderLineProps = BABYLON.GuiEditor.SharedUIComponents.SyncedSliderProps & BABYLON.GuiEditor.SharedUIComponents.PropertyLineProps;
9518
+ /**
9519
+ * Renders a simple wrapper around the SyncedSliderInput
9520
+ * @param props
9521
+ * @returns
9522
+ */
9523
+ export var SyncedSliderLine: React.FunctionComponent<SyncedSliderLineProps>;
9524
+
9525
+
9526
+
9527
+ }
9528
+ declare module BABYLON {
9529
+
9530
+
9531
+ }
9532
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9533
+ /**
9534
+ * Wraps a switch in a property line
9535
+ * @param props - The properties for the switch and property line
9536
+ * @returns A React element representing the property line with a switch
9537
+ */
9538
+ export var SwitchPropertyLine: React.FunctionComponent<BABYLON.GuiEditor.SharedUIComponents.PropertyLineProps & BABYLON.GuiEditor.SharedUIComponents.SwitchProps>;
9539
+
9540
+
9541
+
9542
+ }
9543
+ declare module BABYLON {
9544
+
9545
+
9546
+ }
9547
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9548
+ export type PropertyLineProps = {
9549
+ /**
9550
+ * The name of the property to display in the property line.
9551
+ */
9552
+ label: string;
9553
+ /**
9554
+ * Optional description for the property, shown on hover of the info icon
9555
+ */
9556
+ description?: string;
9557
+ /**
9558
+ * Optional function returning a string to copy to clipboard.
9559
+ */
9560
+ onCopy?: () => string;
9561
+ /**
9562
+ * If supplied, an 'expand' icon will be shown which, when clicked, renders this component within the property line.
9563
+ */
9564
+ expandedContent?: JSX.Element;
9565
+ /**
9566
+ * Link to the documentation for this property, available from the info icon either linked from the description (if provided) or defalt 'docs' text
9567
+ */
9568
+ docLink?: string;
9569
+ };
9570
+ export var LineContainer: import("react").ForwardRefExoticComponent<{
9571
+ children?: import("react").ReactNode | undefined;
9572
+ } & import("react").RefAttributes<HTMLDivElement>>;
9573
+ export type BaseComponentProps<T> = {
9574
+ /**
9575
+ * The value of the property to be displayed and modified.
9576
+ */
9577
+ value: T;
9578
+ /**
9579
+ * Callback function to handle changes to the value
9580
+ */
9581
+ onChange: (value: T) => void;
9582
+ /**
9583
+ * Optional flag to disable the component, preventing any interaction.
9584
+ */
9585
+ disabled?: boolean;
9586
+ /**
9587
+ * Optional class name to apply custom styles to the component.
9588
+ */
9589
+ className?: string;
9590
+ };
9591
+ /**
9592
+ * A reusable component that renders a property line with a label and child content, and an optional description, copy button, and expandable section.
9593
+ *
9594
+ * @param props - The properties for the PropertyLine component.
9595
+ * @returns A React element representing the property line.
9596
+ *
9597
+ */
9598
+ export var PropertyLine: import("react").ForwardRefExoticComponent<PropertyLineProps & {
9599
+ children?: import("react").ReactNode | undefined;
9600
+ } & import("react").RefAttributes<HTMLDivElement>>;
9601
+ export var PlaceholderPropertyLine: React.FunctionComponent<BaseComponentProps<any> & PropertyLineProps>;
9602
+
9603
+
9604
+
9605
+ }
9606
+ declare module BABYLON {
9607
+
9608
+
9609
+ }
9610
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9611
+ type LinkProps = {
9612
+ value: string;
9613
+ tooltip?: string;
9614
+ onLink?: () => void;
9615
+ url?: string;
9616
+ };
9617
+ /**
9618
+ * Wraps a link in a property line
9619
+ * @param props - BABYLON.GuiEditor.SharedUIComponents.PropertyLineProps and LinkProps
9620
+ * @returns property-line wrapped link
9621
+ */
9622
+ export var LinkPropertyLine: React.FunctionComponent<BABYLON.GuiEditor.SharedUIComponents.PropertyLineProps & LinkProps>;
9623
+
9624
+
9625
+
9626
+ }
9627
+ declare module BABYLON {
9628
+
9629
+
9630
+ }
9631
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9632
+ export var TextInputPropertyLine: React.FunctionComponent<BABYLON.GuiEditor.SharedUIComponents.InputProps<string> & BABYLON.GuiEditor.SharedUIComponents.PropertyLineProps>;
9633
+ export var FloatInputPropertyLine: React.FunctionComponent<BABYLON.GuiEditor.SharedUIComponents.InputProps<number> & BABYLON.GuiEditor.SharedUIComponents.PropertyLineProps>;
9634
+
9635
+
9636
+
9637
+ }
9638
+ declare module BABYLON {
9639
+
9640
+
9641
+ }
9642
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9643
+ /**
9644
+ * Wraps a hex input in a property line
9645
+ * @param props - BABYLON.GuiEditor.SharedUIComponents.PropertyLineProps and BABYLON.GuiEditor.SharedUIComponents.InputHexProps
9646
+ * @returns property-line wrapped input hex component
9647
+ */
9648
+ export var HexPropertyLine: React.FunctionComponent<BABYLON.GuiEditor.SharedUIComponents.InputHexProps & BABYLON.GuiEditor.SharedUIComponents.PropertyLineProps>;
9649
+
9650
+
9651
+
9652
+ }
9653
+ declare module BABYLON {
9654
+
9655
+
9656
+ }
9657
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9658
+ export type ToolHostProps = {
9659
+ /**
9660
+ * Allows host to pass in a theme
9661
+ */
9662
+ customTheme?: any;
9663
+ /**
9664
+ * Can be set to true to disable the copy button in the tool's property lines. Default is false (copy enabled)
9665
+ */
9666
+ disableCopy?: boolean;
9667
+ };
9668
+ export var ToolContext: import("react").Context<{
9669
+ readonly useFluent: boolean;
9670
+ readonly disableCopy: boolean;
9671
+ }>;
9672
+ /**
9673
+ * For tools which are ready to move over the fluent, wrap the root of the tool (or the panel which you want fluentized) with this component
9674
+ * Today we will only enable fluent if the URL has the `newUX` query parameter is truthy
9675
+ * @param props
9676
+ * @returns
9677
+ */
9678
+ export var FluentToolWrapper: React.FunctionComponent<React.PropsWithChildren<ToolHostProps>>;
9679
+
9680
+
9681
+
9682
+ }
9683
+ declare module BABYLON {
9684
+
9685
+
9686
+ }
9687
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9688
+ type FileUploadLineProps = Omit<BABYLON.GuiEditor.SharedUIComponents.ButtonLineProps, "onClick"> & {
9689
+ onClick: (file: File) => void;
9690
+ accept: string;
9691
+ };
9692
+ export var FileUploadLine: React.FunctionComponent<FileUploadLineProps>;
9693
+
9694
+
9695
+
9696
+ }
9697
+ declare module BABYLON {
9698
+
9699
+
9700
+ }
9701
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9702
+ /**
9703
+ * Wraps a dropdown in a property line
9704
+ * @param props - BABYLON.GuiEditor.SharedUIComponents.PropertyLineProps and BABYLON.GuiEditor.SharedUIComponents.DropdownProps
9705
+ * @returns property-line wrapped dropdown
9706
+ */
9707
+ export var DropdownPropertyLine: React.FunctionComponent<BABYLON.GuiEditor.SharedUIComponents.PropertyLineProps & BABYLON.GuiEditor.SharedUIComponents.DropdownProps>;
9708
+
9709
+
9710
+
9711
+ }
9712
+ declare module BABYLON {
9713
+
9714
+
9715
+ }
9716
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9717
+ export type ColorPropertyLineProps = BABYLON.GuiEditor.SharedUIComponents.ColorPickerProps<Color3 | Color4> & BABYLON.GuiEditor.SharedUIComponents.PropertyLineProps;
9718
+ export var Color3PropertyLine: React.FunctionComponent<BABYLON.GuiEditor.SharedUIComponents.ColorPickerProps<Color3> & BABYLON.GuiEditor.SharedUIComponents.PropertyLineProps>;
9719
+ export var Color4PropertyLine: React.FunctionComponent<BABYLON.GuiEditor.SharedUIComponents.ColorPickerProps<Color4> & BABYLON.GuiEditor.SharedUIComponents.PropertyLineProps>;
9720
+
9721
+
9722
+
9723
+ }
9724
+ declare module BABYLON {
9725
+
9726
+
9727
+ }
9728
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9729
+ /**
9730
+ * Wraps a checkbox in a property line
9731
+ * @param props - BABYLON.GuiEditor.SharedUIComponents.PropertyLineProps and BABYLON.GuiEditor.SharedUIComponents.CheckboxProps
9732
+ * @returns property-line wrapped checkbox
9733
+ */
9734
+ export var CheckboxPropertyLine: React.FunctionComponent<BABYLON.GuiEditor.SharedUIComponents.PropertyLineProps & BABYLON.GuiEditor.SharedUIComponents.CheckboxProps>;
9735
+
9736
+
9737
+
9738
+ }
9739
+ declare module BABYLON {
9740
+
9741
+
9742
+ }
9743
+ declare module BABYLON.GuiEditor.SharedUIComponents {
9744
+ export type ButtonLineProps = {
9745
+ label: string;
9746
+ onClick: () => void;
9747
+ disabled?: boolean;
9748
+ icon?: string;
9749
+ title?: string;
9750
+ };
9751
+ /**
9752
+ * Wraps a button with a label in a line container
9753
+ * @param props Button props plus a label
9754
+ * @returns A button inside a line
9755
+ */
9756
+ export var ButtonLine: React.FunctionComponent<ButtonLineProps>;
9757
+
9758
+
9759
+
8788
9760
  }
8789
9761
  declare module BABYLON {
8790
9762