@variantic/player 0.0.22 → 0.0.24

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,3 +1,4 @@
1
1
  export * from './lib/engine';
2
2
  export * from './lib/publication';
3
3
  export * from './lib/documentation';
4
+ export * from './lib/studio';
@@ -1,13 +1,22 @@
1
1
  import type { TObjectConfiguration, TInteractionMode, TVasFile } from '@variantic/schemas/file-types/vas';
2
2
  import type { TPublication } from './publication';
3
3
  import type { TDocumentation } from './documentation';
4
- type TValue = string | number | boolean;
4
+ import type { TStudioShadowMapType, TVsmShadowQuality } from './studio';
5
+ export type TValue = string | number | boolean;
5
6
  export { TInteractionMode };
6
7
  export type TSettings = TVasFile['set']['configuration']['settings'] & {
7
8
  sceneSettings?: TVasFile['set']['configuration']['sceneSettings'] & {
8
9
  backgroundColor?: string | null;
9
10
  studioId?: number | null;
10
11
  envMap?: string | null;
12
+ toneMapping?: {
13
+ mode?: 'None' | 'Linear' | 'Reinhard' | 'Cineon' | 'ACESFilmic' | 'AgX' | 'Neutral';
14
+ exposure?: number;
15
+ };
16
+ shadowMap?: {
17
+ type?: TStudioShadowMapType;
18
+ vsmQuality?: TVsmShadowQuality;
19
+ };
11
20
  };
12
21
  cameraSettings?: TVasFile['set']['configuration']['cameraSettings'];
13
22
  flowsSettings?: TVasFile['set']['configuration']['flowsSettings'];
@@ -32,6 +41,24 @@ export type TRootData = Partial<{
32
41
  documentation: TDocumentation;
33
42
  }>;
34
43
  export type TRenderDataObjectTag = `subcomponent:${string}`;
44
+ export type TAnimationRenderData = {
45
+ key: string;
46
+ clips: {
47
+ name: string;
48
+ duration: number;
49
+ channels: {
50
+ target: {
51
+ path: 'translation' | 'rotation';
52
+ };
53
+ sampler: {
54
+ start: 'current';
55
+ times: number[];
56
+ easings: string[];
57
+ values: TValue[][];
58
+ };
59
+ }[];
60
+ }[];
61
+ };
35
62
  export type TRenderDataObject = Partial<{
36
63
  controlledVisibility: boolean;
37
64
  inAvailableSpace: boolean;
@@ -61,6 +88,13 @@ export type TRenderDataObject = Partial<{
61
88
  collision: boolean;
62
89
  interact: boolean;
63
90
  occluder: boolean;
91
+ rangefinder: boolean;
92
+ };
93
+ rangefinder: {
94
+ tags: string[];
95
+ axis: Array<'x' | 'y' | 'z'>;
96
+ near: number;
97
+ far: number;
64
98
  };
65
99
  dynamicConfiguration: Record<string, number>;
66
100
  layers: number[];
@@ -86,9 +120,10 @@ export type TRenderDataObject = Partial<{
86
120
  shadow: [boolean, boolean];
87
121
  order: number;
88
122
  };
123
+ animation: TAnimationRenderData;
89
124
  tags: TRenderDataObjectTag[];
90
125
  }>;
91
- type TUniqueRenderDataObject = {
126
+ export type TUniqueRenderDataObject = {
92
127
  id: string;
93
128
  ref: string;
94
129
  } & TRenderDataObject;
@@ -114,17 +149,17 @@ export type TTreeObjectOverrides = Partial<{
114
149
  interaction: TInteractionMode;
115
150
  }>;
116
151
  export type TSnapType = 'point' | 'grid';
117
- type TSnapTypeMaker<T extends TSnapType, U extends Record<string, unknown>> = {
152
+ export type TSnapTypeMaker<T extends TSnapType, U extends Record<string, unknown>> = {
118
153
  id: string;
119
154
  type: T;
120
155
  data: U;
121
156
  snappedKeyPointIds: string[];
122
157
  };
123
- type TSnapPoint = TSnapTypeMaker<'point', {
158
+ export type TSnapPoint = TSnapTypeMaker<'point', {
124
159
  x: TValue;
125
160
  y: TValue;
126
161
  }>;
127
- type TSnapGrid = TSnapTypeMaker<'grid', {
162
+ export type TSnapGrid = TSnapTypeMaker<'grid', {
128
163
  cols: TValue;
129
164
  rows: TValue;
130
165
  }>;
@@ -140,21 +175,21 @@ export type TSnap = TSnapPoint | TSnapGrid;
140
175
  * Which means that we are referring to the grid (snaps array index 0) snap point
141
176
  * on row 0 and column 1
142
177
  */
143
- type TSnapIdentifierMaker<T extends TSnapType, U extends Record<string, unknown>> = {
178
+ export type TSnapIdentifierMaker<T extends TSnapType, U extends Record<string, unknown>> = {
144
179
  id: string;
145
180
  type: T;
146
181
  data: U;
147
182
  };
148
- type TSnapPointIdentifier = TSnapIdentifierMaker<'point', {
183
+ export type TSnapPointIdentifier = TSnapIdentifierMaker<'point', {
149
184
  x: number;
150
185
  y: number;
151
186
  }>;
152
- type TSnapGridIdentifier = TSnapIdentifierMaker<'grid', {
187
+ export type TSnapGridIdentifier = TSnapIdentifierMaker<'grid', {
153
188
  col: number;
154
189
  row: number;
155
190
  }>;
156
191
  export type TSnapIdentifier = TSnapPointIdentifier | TSnapGridIdentifier;
157
- type TCommonMaterialGroupProperties = {
192
+ export type TCommonMaterialGroupProperties = {
158
193
  hash: string;
159
194
  selected: string;
160
195
  alias: string;
@@ -166,7 +201,7 @@ export type TMaterialGroup = ({
166
201
  type: 'query';
167
202
  query: Record<string, any>;
168
203
  }) & TCommonMaterialGroupProperties;
169
- type TCommonSubcomponentGroupProperties = {
204
+ export type TCommonSubcomponentGroupProperties = {
170
205
  hash: string;
171
206
  selected: string;
172
207
  alias: string;
@@ -15,7 +15,7 @@ export type TPublicationBlock = {
15
15
  id: string;
16
16
  label: string;
17
17
  events: TEvents;
18
- kind: TBlockNumberRange | TBlockNumberPredefined | TBlockText | TBlockList;
18
+ kind: TBlockNumberRange | TBlockNumberPredefined | TBlockText | TBlockTextInput | TBlockBoolean | TBlockList;
19
19
  };
20
20
  export type TBlockNumberRange = {
21
21
  type: 'number-range';
@@ -30,12 +30,21 @@ export type TBlockNumberPredefined = {
30
30
  type: 'number-predefined';
31
31
  value: number;
32
32
  options: number[];
33
- preferred: number[];
34
33
  };
35
34
  export type TBlockText = {
36
35
  type: 'text';
37
36
  value: string;
38
37
  };
38
+ export type TBlockTextInput = {
39
+ type: 'text-input';
40
+ value: string;
41
+ maxLength: number;
42
+ placeholder: string;
43
+ };
44
+ export type TBlockBoolean = {
45
+ type: 'boolean';
46
+ value: boolean;
47
+ };
39
48
  export type TBlockList = {
40
49
  type: 'list';
41
50
  style: TBlockListDropdownStyle | TBlockListButtonsStyle | TBlockListDropdownImageStyle | TBlockListButtonsImageStyle;
@@ -0,0 +1,81 @@
1
+ export type TStudioId = 0 | 1 | 2;
2
+ export type TStudioToneMappingMode = 'None' | 'Linear' | 'Reinhard' | 'Cineon' | 'ACESFilmic' | 'AgX' | 'Neutral';
3
+ export type TStudioShadowMapType = 'Basic' | 'PCF' | 'VSM';
4
+ export type TVsmShadowQuality = 'Performance' | 'Balanced' | 'Quality';
5
+ export type TStudioShadowMapConfig = {
6
+ type: TStudioShadowMapType;
7
+ vsmQuality: TVsmShadowQuality;
8
+ };
9
+ export type TStudioSceneConfig = {
10
+ backgroundColor: string | null;
11
+ envMap: string | null;
12
+ backgroundMode: 'color' | 'environment';
13
+ backgroundBlurriness: number;
14
+ backgroundIntensity: number;
15
+ environmentIntensity: number;
16
+ environmentRotationY: number;
17
+ shadowMap: TStudioShadowMapConfig;
18
+ toneMapping: {
19
+ mode: TStudioToneMappingMode;
20
+ exposure: number;
21
+ };
22
+ };
23
+ export type TStudioFloorConfig = {
24
+ activeFloor: boolean;
25
+ activeFloorShadow: boolean;
26
+ useFloorInAR: boolean;
27
+ reflection: {
28
+ enabled: boolean;
29
+ opacity: number;
30
+ fadeDistance: number;
31
+ };
32
+ floorSize: {
33
+ x: number;
34
+ y: number;
35
+ };
36
+ floorSizeType: 'infinity' | 'likeObject' | 'custom';
37
+ selectedMaterialGroup: number | null;
38
+ selectedDefaultMaterial: number | null;
39
+ };
40
+ /**
41
+ * Settings a studio explicitly owns. Definitions only declare editable
42
+ * paths; the runtime fills in the remaining paths from compatibility defaults.
43
+ */
44
+ export type TStudioSceneSettings = Partial<Omit<TStudioSceneConfig, 'toneMapping' | 'shadowMap'>> & {
45
+ toneMapping?: Partial<TStudioSceneConfig['toneMapping']>;
46
+ shadowMap?: Partial<TStudioSceneConfig['shadowMap']>;
47
+ };
48
+ export type TStudioFloorSettings = Partial<Omit<TStudioFloorConfig, 'reflection' | 'floorSize'>> & {
49
+ reflection?: Partial<TStudioFloorConfig['reflection']>;
50
+ floorSize?: Partial<TStudioFloorConfig['floorSize']>;
51
+ };
52
+ export type TStudioSettings = {
53
+ scene?: TStudioSceneSettings;
54
+ floor?: TStudioFloorSettings;
55
+ };
56
+ /** Complete scene/floor settings after defaults and persisted overrides. */
57
+ export type TStudioResolvedSettings = {
58
+ scene: TStudioSceneConfig;
59
+ floor: TStudioFloorConfig;
60
+ };
61
+ /**
62
+ * Generic definition type keeps the schema package independent of Three.js.
63
+ * Viewer code supplies its builder context and light-group result types.
64
+ */
65
+ export type TStudioDefinition<TBuilderContext = unknown, TLightGroup = unknown> = {
66
+ id: TStudioId;
67
+ name: string;
68
+ settings: TStudioSettings;
69
+ configuration: {
70
+ createLights: (context: TBuilderContext) => TLightGroup;
71
+ };
72
+ };
73
+ /** Legacy persisted light override data is retained but never edited. */
74
+ export type TStudioLightsSettings = {
75
+ preset: 'directional' | 'area' | 'environment';
76
+ };
77
+ export type TStudioOverrides = {
78
+ scene?: TStudioSceneSettings;
79
+ lights?: Partial<TStudioLightsSettings>;
80
+ floor?: TStudioFloorSettings;
81
+ };
@@ -134,6 +134,7 @@ export declare const vasFileSchema: import("@sinclair/typebox").TObject<{
134
134
  settings: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
135
135
  general: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
136
136
  assemblyMode: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"multi-object">, import("@sinclair/typebox").TLiteral<"single-object">]>>;
137
+ editorMode: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"default">, import("@sinclair/typebox").TLiteral<"assembly">, import("@sinclair/typebox").TNull]>>;
137
138
  }>>;
138
139
  assetsPalette: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
139
140
  nodes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
@@ -171,6 +172,32 @@ export declare const vasFileSchema: import("@sinclair/typebox").TObject<{
171
172
  }>>;
172
173
  outline: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
173
174
  enabled: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
175
+ selected: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
176
+ enabled: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
177
+ thicknessPx: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
178
+ visible: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
179
+ color: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
180
+ alpha: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
181
+ }>>;
182
+ hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
183
+ color: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
184
+ alpha: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
185
+ }>>;
186
+ }>>;
187
+ hover: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
188
+ enabled: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
189
+ thicknessPx: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
190
+ visible: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
191
+ color: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
192
+ alpha: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
193
+ fillAlpha: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
194
+ }>>;
195
+ hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
196
+ color: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
197
+ alpha: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
198
+ fillAlpha: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
199
+ }>>;
200
+ }>>;
174
201
  edgeStrength: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
175
202
  edgeGlow: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
176
203
  edgeThickness: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
@@ -192,6 +219,11 @@ export declare const vasFileSchema: import("@sinclair/typebox").TObject<{
192
219
  offsetX: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
193
220
  offsetY: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
194
221
  offsetZ: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
222
+ rangefinder: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
223
+ lineColor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
224
+ textColor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
225
+ textBackgroundColor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
226
+ }>>;
195
227
  }>>;
196
228
  autoSnap: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
197
229
  enabled: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
@@ -256,6 +288,7 @@ export declare const vasFileSchema: import("@sinclair/typebox").TObject<{
256
288
  }>>;
257
289
  behavior: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
258
290
  onInsert: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"default">, import("@sinclair/typebox").TLiteral<"last">]>>;
291
+ applicationStrategy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"selected">, import("@sinclair/typebox").TLiteral<"all">]>>;
259
292
  }>>;
260
293
  }>>;
261
294
  subcomponents: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
@@ -285,16 +318,75 @@ export declare const vasFileSchema: import("@sinclair/typebox").TObject<{
285
318
  }>>;
286
319
  behavior: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
287
320
  onInsert: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"default">, import("@sinclair/typebox").TLiteral<"last">]>>;
321
+ applicationStrategy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"selected">, import("@sinclair/typebox").TLiteral<"all">]>>;
288
322
  }>>;
289
323
  }>>;
290
324
  }>>;
291
325
  sceneSettings: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
326
+ studioId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>>;
327
+ studios: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
328
+ scene: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
329
+ backgroundColor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>>;
330
+ envMap: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>>;
331
+ backgroundMode: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"color">, import("@sinclair/typebox").TLiteral<"environment">]>>;
332
+ backgroundBlurriness: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
333
+ backgroundIntensity: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
334
+ environmentIntensity: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
335
+ environmentRotationY: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
336
+ shadowMap: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
337
+ type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"Basic">, import("@sinclair/typebox").TLiteral<"PCF">, import("@sinclair/typebox").TLiteral<"VSM">]>>;
338
+ vsmQuality: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"Performance">, import("@sinclair/typebox").TLiteral<"Balanced">, import("@sinclair/typebox").TLiteral<"Quality">]>>;
339
+ }>>;
340
+ toneMapping: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
341
+ mode: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"None">, import("@sinclair/typebox").TLiteral<"Linear">, import("@sinclair/typebox").TLiteral<"Reinhard">, import("@sinclair/typebox").TLiteral<"Cineon">, import("@sinclair/typebox").TLiteral<"ACESFilmic">, import("@sinclair/typebox").TLiteral<"AgX">, import("@sinclair/typebox").TLiteral<"Neutral">]>>;
342
+ exposure: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
343
+ }>>;
344
+ }>>;
345
+ lights: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
346
+ preset: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"directional">, import("@sinclair/typebox").TLiteral<"area">, import("@sinclair/typebox").TLiteral<"environment">]>>;
347
+ }>>;
348
+ floor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
349
+ activeFloor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
350
+ activeFloorShadow: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
351
+ useFloorInAR: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
352
+ reflection: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
353
+ enabled: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
354
+ opacity: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
355
+ fadeDistance: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
356
+ }>>;
357
+ floorSize: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
358
+ x: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
359
+ y: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
360
+ }>>;
361
+ floorSizeType: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"infinity">, import("@sinclair/typebox").TLiteral<"likeObject">, import("@sinclair/typebox").TLiteral<"custom">]>>;
362
+ selectedMaterialGroup: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>>;
363
+ selectedDefaultMaterial: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>>;
364
+ }>>;
365
+ }>>>;
292
366
  backgroundColor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>>;
293
367
  envMap: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>>;
368
+ backgroundMode: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"color">, import("@sinclair/typebox").TLiteral<"environment">]>>;
369
+ backgroundBlurriness: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
370
+ backgroundIntensity: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
371
+ environmentIntensity: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
372
+ environmentRotationY: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
373
+ shadowMap: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
374
+ type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"Basic">, import("@sinclair/typebox").TLiteral<"PCF">, import("@sinclair/typebox").TLiteral<"VSM">]>>;
375
+ vsmQuality: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"Performance">, import("@sinclair/typebox").TLiteral<"Balanced">, import("@sinclair/typebox").TLiteral<"Quality">]>>;
376
+ }>>;
377
+ toneMapping: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
378
+ mode: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"None">, import("@sinclair/typebox").TLiteral<"Linear">, import("@sinclair/typebox").TLiteral<"Reinhard">, import("@sinclair/typebox").TLiteral<"Cineon">, import("@sinclair/typebox").TLiteral<"ACESFilmic">, import("@sinclair/typebox").TLiteral<"AgX">, import("@sinclair/typebox").TLiteral<"Neutral">]>>;
379
+ exposure: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
380
+ }>>;
294
381
  floor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
295
382
  activeFloor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
296
383
  activeFloorShadow: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
297
384
  useFloorInAR: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
385
+ reflection: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
386
+ enabled: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
387
+ opacity: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
388
+ fadeDistance: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
389
+ }>>;
298
390
  floorSize: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
299
391
  x: import("@sinclair/typebox").TNumber;
300
392
  y: import("@sinclair/typebox").TNumber;
@@ -309,6 +401,11 @@ export declare const vasFileSchema: import("@sinclair/typebox").TObject<{
309
401
  secondaryColor: import("@sinclair/typebox").TString;
310
402
  }>>;
311
403
  defaultLayoutMode: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"configuration">, import("@sinclair/typebox").TLiteral<"materials">]>>;
404
+ layersButtons: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
405
+ label: import("@sinclair/typebox").TString;
406
+ layers: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TInteger>;
407
+ defaultState: import("@sinclair/typebox").TBoolean;
408
+ }>>>;
312
409
  }>>;
313
410
  }>>;
314
411
  pricingSettings: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
@@ -352,7 +352,7 @@ export type TUnit = {
352
352
  unit: string;
353
353
  label: string;
354
354
  };
355
- export type TParameterTypes = 'number-range' | 'number-predefined' | 'number-constant' | 'text-constant' | 'list-options' | 'list-buttons' | 'list-image-options' | 'list-image-buttons' | 'list-images' | 'button';
355
+ export type TParameterTypes = 'number-range' | 'number-predefined' | 'number-constant' | 'text-constant' | 'text-input' | 'boolean' | 'list-options' | 'list-buttons' | 'list-image-options' | 'list-image-buttons' | 'list-images' | 'button';
356
356
  export type TParameterEvents = {
357
357
  [K in keyof GlobalEventHandlersEventMap]?: (event: GlobalEventHandlersEventMap[K]) => void;
358
358
  };
@@ -436,8 +436,13 @@ export type TParameterListImages = TParameterBase<'list-images', {
436
436
  }>;
437
437
  }>;
438
438
  export type TParameterText = TParameterBase<'text-constant'>;
439
+ export type TParameterTextInput = TParameterBase<'text-input', {
440
+ maxLength: number;
441
+ placeholder: string;
442
+ }>;
443
+ export type TParameterBoolean = TParameterBase<'boolean'>;
439
444
  export type TParameterButton = TParameterBase<'button'>;
440
- export type TParameter = TParameterNumberRange | TParameterNumberPredefined | TParameterNumberConstant | TParameterListOptions | TParameterListButtons | TParameterListImageOptions | TParameterListImageButtons | TParameterListImages | TParameterText | TParameterButton;
445
+ export type TParameter = TParameterNumberRange | TParameterNumberPredefined | TParameterNumberConstant | TParameterListOptions | TParameterListButtons | TParameterListImageOptions | TParameterListImageButtons | TParameterListImages | TParameterText | TParameterTextInput | TParameterBoolean | TParameterButton;
441
446
  export type TCategory = {
442
447
  id: number;
443
448
  name: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@variantic/player",
3
- "version": "0.0.22",
3
+ "version": "0.0.24",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public"