handler-playable-sdk 0.5.38 → 0.5.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css CHANGED
@@ -622,7 +622,7 @@
622
622
  }
623
623
 
624
624
  /* Icon-only mode when collapsed */
625
- .scene-tools-corner-panel.collapsed .scene-tools-title-wrapper {
625
+ .scene-tools-corner-panel.collapsed .scene-tools-title {
626
626
  display: none;
627
627
  }
628
628
 
@@ -636,89 +636,6 @@
636
636
  order: -1;
637
637
  }
638
638
 
639
- .scene-tools-title-wrapper {
640
- display: flex;
641
- align-items: center;
642
- gap: 6px;
643
- }
644
-
645
- .scene-tools-title {
646
- font-size: 12px;
647
- font-weight: var(--font-weight-semibold);
648
- color: var(--ui-text);
649
- letter-spacing: 0.4px;
650
- text-transform: uppercase;
651
- }
652
-
653
- .scene-tools-unsaved-star {
654
- font-size: 14px;
655
- color: var(--ui-accent);
656
- animation: scene-tools-star-pulse 2s ease-in-out infinite;
657
- display: inline-block;
658
- margin-left: 4px;
659
- }
660
-
661
- @keyframes scene-tools-star-pulse {
662
- 0%, 100% {
663
- opacity: 1;
664
- transform: scale(1);
665
- }
666
- 50% {
667
- opacity: 0.7;
668
- transform: scale(1.1);
669
- }
670
- }
671
-
672
- .scene-tools-save-btn {
673
- display: flex;
674
- align-items: center;
675
- gap: 6px;
676
- padding: 6px 10px;
677
- background: linear-gradient(135deg, var(--ui-accent), var(--ui-accent-overlay-3));
678
- color: var(--ui-black);
679
- border: none;
680
- border-radius: 6px;
681
- font-size: 11px;
682
- font-weight: 700;
683
- letter-spacing: 0.02em;
684
- cursor: pointer;
685
- box-shadow: 0 2px 8px var(--ui-accent-overlay-1);
686
- transition: all var(--ui-duration-fast) var(--ui-ease);
687
- white-space: nowrap;
688
- }
689
-
690
- .scene-tools-save-btn:hover {
691
- transform: translateY(-1px);
692
- box-shadow: 0 4px 12px var(--ui-accent-overlay-2);
693
- }
694
-
695
- .scene-tools-save-btn:active {
696
- transform: translateY(0);
697
- }
698
-
699
- .scene-tools-save-btn svg {
700
- width: 14px;
701
- height: 14px;
702
- stroke-width: 2.5;
703
- }
704
-
705
- .scene-tools-save-text {
706
- display: flex;
707
- align-items: center;
708
- gap: 4px;
709
- }
710
-
711
- .scene-tools-save-shortcut {
712
- font-size: 9px;
713
- opacity: 0.7;
714
- font-weight: 600;
715
- letter-spacing: 0.5px;
716
- }
717
-
718
- /* Hide save button when collapsed */
719
- .scene-tools-corner-panel.collapsed .scene-tools-save-btn {
720
- display: none;
721
- }
722
639
 
723
640
  .scene-tools-collapse-btn {
724
641
  width: 24px;
@@ -922,6 +839,68 @@
922
839
  gap: 8px;
923
840
  }
924
841
 
842
+ /* Unsaved changes indicator */
843
+ .preview-unsaved-indicator {
844
+ font-size: 16px;
845
+ color: var(--ui-accent);
846
+ animation: preview-star-pulse 2s ease-in-out infinite;
847
+ display: inline-block;
848
+ margin-right: 4px;
849
+ line-height: 1;
850
+ }
851
+
852
+ @keyframes preview-star-pulse {
853
+ 0%, 100% {
854
+ opacity: 1;
855
+ transform: scale(1);
856
+ }
857
+ 50% {
858
+ opacity: 0.7;
859
+ transform: scale(1.1);
860
+ }
861
+ }
862
+
863
+ /* Save button in toolbar */
864
+ .preview-save-btn {
865
+ display: inline-flex;
866
+ align-items: center;
867
+ gap: 6px;
868
+ padding: 8px 12px;
869
+ background: linear-gradient(135deg, var(--ui-accent), var(--ui-accent-overlay-3));
870
+ color: var(--ui-black);
871
+ border: none;
872
+ border-radius: 6px;
873
+ font-size: 11px;
874
+ font-weight: 700;
875
+ letter-spacing: 0.02em;
876
+ cursor: pointer;
877
+ box-shadow: 0 2px 8px var(--ui-accent-overlay-1);
878
+ transition: all var(--ui-duration-fast) var(--ui-ease);
879
+ }
880
+
881
+ .preview-save-btn:hover {
882
+ transform: translateY(-1px);
883
+ box-shadow: 0 4px 12px var(--ui-accent-overlay-2);
884
+ }
885
+
886
+ .preview-save-btn:active {
887
+ transform: translateY(0);
888
+ }
889
+
890
+ .preview-save-btn svg {
891
+ width: 14px;
892
+ height: 14px;
893
+ stroke-width: 2.5;
894
+ }
895
+
896
+ .preview-save-shortcut {
897
+ font-size: 9px;
898
+ opacity: 0.7;
899
+ font-weight: 600;
900
+ letter-spacing: 0.5px;
901
+ margin-left: 2px;
902
+ }
903
+
925
904
  .view-toggle {
926
905
  display: flex;
927
906
  flex-direction: row;
@@ -1129,6 +1108,25 @@
1129
1108
  color: #ff9500;
1130
1109
  }
1131
1110
 
1111
+ .scene-object-badge.template {
1112
+ background: rgba(168, 85, 247, 0.18);
1113
+ color: #c084fc;
1114
+ }
1115
+
1116
+ .scene-templates-toggle {
1117
+ display: inline-flex;
1118
+ align-items: center;
1119
+ gap: 6px;
1120
+ font-size: 12px;
1121
+ color: var(--ui-text-secondary);
1122
+ margin-left: 10px;
1123
+ user-select: none;
1124
+ }
1125
+
1126
+ .scene-templates-toggle input[type="checkbox"] {
1127
+ accent-color: var(--ui-accent);
1128
+ }
1129
+
1132
1130
  .scene-object-group-system {
1133
1131
  border-left: 3px solid #ff9500;
1134
1132
  padding-left: 8px;
@@ -2667,6 +2665,7 @@
2667
2665
  display: none;
2668
2666
  }
2669
2667
 
2668
+
2670
2669
  /* ========== 04-device-frame.css ========== */
2671
2670
  /* 04 Device Frame */
2672
2671
  /* Auto-generated from preview.css */
@@ -5308,6 +5307,166 @@
5308
5307
  word-wrap: break-word;
5309
5308
  }
5310
5309
 
5310
+ /* Add Object Menu modals – Screen picker & name prompt (hierarchy + Add) */
5311
+ .add-menu-modal-overlay {
5312
+ position: fixed;
5313
+ top: 0;
5314
+ left: 0;
5315
+ width: 100%;
5316
+ height: 100%;
5317
+ background-color: var(--ui-overlay-dark-4);
5318
+ z-index: 10002;
5319
+ display: flex;
5320
+ align-items: center;
5321
+ justify-content: center;
5322
+ }
5323
+
5324
+ .add-menu-modal {
5325
+ background-color: var(--ui-surface);
5326
+ border: 1px solid var(--ui-border);
5327
+ border-radius: 10px;
5328
+ box-shadow: var(--ui-shadow-strong);
5329
+ width: 90%;
5330
+ max-width: 380px;
5331
+ display: flex;
5332
+ flex-direction: column;
5333
+ }
5334
+
5335
+ .add-menu-modal-header {
5336
+ display: flex;
5337
+ align-items: center;
5338
+ justify-content: space-between;
5339
+ padding: 14px 18px;
5340
+ border-bottom: 1px solid var(--ui-border);
5341
+ }
5342
+
5343
+ .add-menu-modal-title {
5344
+ margin: 0;
5345
+ color: var(--ui-text);
5346
+ font-size: 15px;
5347
+ font-weight: 600;
5348
+ }
5349
+
5350
+ .add-menu-modal-close {
5351
+ background: none;
5352
+ border: none;
5353
+ color: var(--ui-muted);
5354
+ font-size: 20px;
5355
+ line-height: 1;
5356
+ padding: 0;
5357
+ width: 28px;
5358
+ height: 28px;
5359
+ display: flex;
5360
+ align-items: center;
5361
+ justify-content: center;
5362
+ border-radius: 6px;
5363
+ cursor: pointer;
5364
+ transition: color 0.15s var(--ui-ease), background 0.15s var(--ui-ease);
5365
+ }
5366
+
5367
+ .add-menu-modal-close:hover {
5368
+ color: var(--ui-text);
5369
+ background: var(--ui-accent-overlay-1);
5370
+ }
5371
+
5372
+ .add-menu-modal-body {
5373
+ padding: 18px;
5374
+ display: flex;
5375
+ flex-direction: column;
5376
+ gap: 10px;
5377
+ }
5378
+
5379
+ .add-menu-modal-label {
5380
+ display: block;
5381
+ color: var(--ui-text);
5382
+ font-size: 13px;
5383
+ font-weight: 500;
5384
+ margin-bottom: 2px;
5385
+ }
5386
+
5387
+ .add-menu-modal-select,
5388
+ .add-menu-modal-input {
5389
+ width: 100%;
5390
+ background-color: var(--ui-surface);
5391
+ color: var(--ui-text);
5392
+ border: 1px solid var(--ui-border);
5393
+ border-radius: 6px;
5394
+ padding: 8px 12px;
5395
+ font-size: 13px;
5396
+ transition: border-color var(--ui-duration-fast) var(--ui-ease),
5397
+ box-shadow var(--ui-duration-fast) var(--ui-ease);
5398
+ appearance: none;
5399
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M6 8L2 4h8z'/%3E%3C/svg%3E");
5400
+ background-repeat: no-repeat;
5401
+ background-position: right 10px center;
5402
+ padding-right: 32px;
5403
+ }
5404
+
5405
+ .add-menu-modal-input {
5406
+ background-image: none;
5407
+ padding-right: 12px;
5408
+ }
5409
+
5410
+ .add-menu-modal-select:hover,
5411
+ .add-menu-modal-input:hover {
5412
+ border-color: var(--ui-terracotta);
5413
+ background-color: var(--ui-accent-overlay-1);
5414
+ }
5415
+
5416
+ .add-menu-modal-select:focus,
5417
+ .add-menu-modal-input:focus {
5418
+ outline: none;
5419
+ border-color: var(--ui-accent);
5420
+ box-shadow: 0 0 0 2px var(--ui-accent-overlay-1);
5421
+ }
5422
+
5423
+ .add-menu-modal-hint {
5424
+ font-size: 11px;
5425
+ color: var(--ui-muted);
5426
+ margin-top: 2px;
5427
+ }
5428
+
5429
+ .add-menu-modal-footer {
5430
+ display: flex;
5431
+ align-items: center;
5432
+ justify-content: flex-end;
5433
+ gap: 10px;
5434
+ padding: 14px 18px;
5435
+ border-top: 1px solid var(--ui-border);
5436
+ }
5437
+
5438
+ .add-menu-modal-btn {
5439
+ padding: 8px 16px;
5440
+ border-radius: 6px;
5441
+ font-size: 13px;
5442
+ font-weight: 500;
5443
+ cursor: pointer;
5444
+ transition: all 0.15s var(--ui-ease);
5445
+ border: 1px solid transparent;
5446
+ }
5447
+
5448
+ .add-menu-modal-btn-secondary {
5449
+ background: var(--ui-surface);
5450
+ color: var(--ui-text);
5451
+ border-color: var(--ui-border);
5452
+ }
5453
+
5454
+ .add-menu-modal-btn-secondary:hover {
5455
+ background: var(--ui-surface-2);
5456
+ border-color: var(--ui-accent);
5457
+ }
5458
+
5459
+ .add-menu-modal-btn-primary {
5460
+ background: var(--ui-accent);
5461
+ color: var(--ui-text-white);
5462
+ border-color: var(--ui-accent);
5463
+ }
5464
+
5465
+ .add-menu-modal-btn-primary:hover {
5466
+ background: var(--ui-terracotta-hover);
5467
+ border-color: var(--ui-terracotta-hover);
5468
+ }
5469
+
5311
5470
  /* ========== 11-wizard.css ========== */
5312
5471
  /* Wizard Modal Overlay */
5313
5472
  .wizard-modal {
package/dist/index.d.cts CHANGED
@@ -115,6 +115,8 @@ declare class PreviewShell {
115
115
  private gameReady;
116
116
  private resizeListenersDisabled;
117
117
  private compareSnapshotTimer;
118
+ private hasUnsavedChanges;
119
+ private getShortcutKey;
118
120
  constructor(options?: PreviewOptions);
119
121
  mount(target?: HTMLElement): void;
120
122
  destroy(): void;
@@ -152,6 +154,8 @@ declare class PreviewShell {
152
154
  private setupSpaceKeyListener;
153
155
  private isInputFocused;
154
156
  private setupShortcutListeners;
157
+ private setupUnsavedChangesIndicator;
158
+ private updateUnsavedChangesIndicator;
155
159
  private updateDragCursor;
156
160
  private onFrameDragMove;
157
161
  private onFrameDragEnd;
@@ -181,20 +185,28 @@ declare function createPreviewShell(options?: PreviewOptions): PreviewShell;
181
185
 
182
186
  type SceneObjectsPanelOptions = {
183
187
  onSelect: (objectId: string) => void;
188
+ onMultiSelect?: (objectIds: string[]) => void;
184
189
  };
185
190
  declare class SceneObjectsPanel {
186
191
  private root;
187
192
  private listContainer;
188
193
  private searchInput;
189
194
  private selectedId;
195
+ private selectedIds;
196
+ private lastSelectedIndex;
197
+ private objectEntries;
190
198
  private options;
191
199
  private retryTimer;
192
200
  private screenFilter;
201
+ private showTemplates;
193
202
  private isContextMenuOpen;
194
203
  private getScreenFilterStorageKey;
204
+ private getShowTemplatesStorageKey;
195
205
  render(): string;
196
206
  initialize(container: HTMLElement, options: SceneObjectsPanelOptions): void;
197
207
  setSelected(objectId: string | null): void;
208
+ getSelectedIds(): string[];
209
+ private updateSelectionUI;
198
210
  refreshObjects(): void;
199
211
  /**
200
212
  * Format display name: removes json. prefix, converts underscores to spaces, title case
@@ -214,6 +226,9 @@ declare class SceneObjectsPanel {
214
226
  private getMetadata;
215
227
  private scheduleRetry;
216
228
  private select;
229
+ private toggleSelect;
230
+ private selectRange;
231
+ private updateLastSelectedIndex;
217
232
  private getDefaultScreenForCreate;
218
233
  private openAddObjectMenu;
219
234
  /**
@@ -222,7 +237,10 @@ declare class SceneObjectsPanel {
222
237
  private openAddObjectWizard;
223
238
  private showContextMenu;
224
239
  private deleteObject;
240
+ private deleteMultipleObjects;
225
241
  private deleteSystemGroup;
242
+ private moveObject;
243
+ private moveMultipleObjects;
226
244
  private syncScreens;
227
245
  }
228
246
 
@@ -237,11 +255,8 @@ declare class SceneToolsPanel {
237
255
  private root;
238
256
  private options;
239
257
  private isCollapsed;
240
- private hasUnsavedChanges;
241
- private getShortcutKey;
242
258
  render(): string;
243
259
  initialize(container: HTMLElement, options: SceneToolsPanelOptions): void;
244
- private refreshUnsavedState;
245
260
  updateInfo(info: {
246
261
  instanceId: string;
247
262
  worldX: number;
@@ -688,7 +703,7 @@ declare class DebugPanel implements DebugPanelContext {
688
703
  toggleDebug(force?: boolean): void;
689
704
  updateDebugBadge(): void;
690
705
  private handleObjectSelect;
691
- nudgeSelectedObject(dx: number, dy: number): void;
706
+ nudgeSelectedObject(dx: number, dy: number): Promise<void>;
692
707
  }
693
708
 
694
709
  /**
@@ -812,6 +827,8 @@ interface ConfigChange {
812
827
  oldValue: any;
813
828
  newValue: any;
814
829
  ts: number;
830
+ changeType?: 'property' | 'object_create' | 'object_delete';
831
+ metadata?: any;
815
832
  }
816
833
  interface ConfigOverrideOptions {
817
834
  silent?: boolean;
@@ -858,6 +875,14 @@ declare function undoLastConfigChange(): boolean;
858
875
  * Returns true if redo was successful, false if no changes to redo
859
876
  */
860
877
  declare function redoLastConfigChange(): boolean;
878
+ /**
879
+ * Track object creation in undo history
880
+ */
881
+ declare function trackObjectCreation(objectId: string, screenId: string, objectConfig: any): void;
882
+ /**
883
+ * Track object deletion in undo history
884
+ */
885
+ declare function trackObjectDeletion(objectId: string, screenId: string, objectConfig: any): void;
861
886
  /**
862
887
  * Deep clone utility for baseline copying
863
888
  */
@@ -1034,4 +1059,4 @@ declare const Handler: {
1034
1059
  resize(width?: number, height?: number): void;
1035
1060
  };
1036
1061
 
1037
- export { COLORS, type ConfigChange, type ConfigChangeEvent, type ConfigOverride, type ConfigOverrideOptions, ConfigWatcher, DebugPanel, DefaultReloadStrategy, type DeviceCategory, type DeviceGroup, type DevicePreset, Handler, type HotReloadDependencies, type HotReloadWatcher, type LiveEditBridge, ObjectCentricConfig, PlayableLoadingScreen, type PreviewOptions, PreviewShell, type ReloadStrategy, STROKE_WIDTH, type SetupLiveEditBridgeOptions, THEME, applyConfigOverride, applyConfigOverrides, applyConfigsToDisk, baseLottie, bootstrap, clearConfigOverrides, clearConfigOverridesForObject, configOverrideManager, createPreviewShell, deepClone, Handler as default, defaultPreset, deviceGroups, devicePresets, diffConfigs, exportConfigsAsJSON, getConfigOverrides, getConfigStateSummary, getOverrideMode, getPresetById, getPresetsByCategory, redoLastConfigChange, rehydrateObject, removeConfigOverride, resetToApplied, resetToOriginal, setBootstrapDependencies, setOverrideMode, setupHotReload, setupLiveEditBridge, undoLastConfigChange };
1062
+ export { COLORS, type ConfigChange, type ConfigChangeEvent, type ConfigOverride, type ConfigOverrideOptions, ConfigWatcher, DebugPanel, DefaultReloadStrategy, type DeviceCategory, type DeviceGroup, type DevicePreset, Handler, type HotReloadDependencies, type HotReloadWatcher, type LiveEditBridge, ObjectCentricConfig, PlayableLoadingScreen, type PreviewOptions, PreviewShell, type ReloadStrategy, STROKE_WIDTH, type SetupLiveEditBridgeOptions, THEME, applyConfigOverride, applyConfigOverrides, applyConfigsToDisk, baseLottie, bootstrap, clearConfigOverrides, clearConfigOverridesForObject, configOverrideManager, createPreviewShell, deepClone, Handler as default, defaultPreset, deviceGroups, devicePresets, diffConfigs, exportConfigsAsJSON, getConfigOverrides, getConfigStateSummary, getOverrideMode, getPresetById, getPresetsByCategory, redoLastConfigChange, rehydrateObject, removeConfigOverride, resetToApplied, resetToOriginal, setBootstrapDependencies, setOverrideMode, setupHotReload, setupLiveEditBridge, trackObjectCreation, trackObjectDeletion, undoLastConfigChange };
package/dist/index.d.ts CHANGED
@@ -115,6 +115,8 @@ declare class PreviewShell {
115
115
  private gameReady;
116
116
  private resizeListenersDisabled;
117
117
  private compareSnapshotTimer;
118
+ private hasUnsavedChanges;
119
+ private getShortcutKey;
118
120
  constructor(options?: PreviewOptions);
119
121
  mount(target?: HTMLElement): void;
120
122
  destroy(): void;
@@ -152,6 +154,8 @@ declare class PreviewShell {
152
154
  private setupSpaceKeyListener;
153
155
  private isInputFocused;
154
156
  private setupShortcutListeners;
157
+ private setupUnsavedChangesIndicator;
158
+ private updateUnsavedChangesIndicator;
155
159
  private updateDragCursor;
156
160
  private onFrameDragMove;
157
161
  private onFrameDragEnd;
@@ -181,20 +185,28 @@ declare function createPreviewShell(options?: PreviewOptions): PreviewShell;
181
185
 
182
186
  type SceneObjectsPanelOptions = {
183
187
  onSelect: (objectId: string) => void;
188
+ onMultiSelect?: (objectIds: string[]) => void;
184
189
  };
185
190
  declare class SceneObjectsPanel {
186
191
  private root;
187
192
  private listContainer;
188
193
  private searchInput;
189
194
  private selectedId;
195
+ private selectedIds;
196
+ private lastSelectedIndex;
197
+ private objectEntries;
190
198
  private options;
191
199
  private retryTimer;
192
200
  private screenFilter;
201
+ private showTemplates;
193
202
  private isContextMenuOpen;
194
203
  private getScreenFilterStorageKey;
204
+ private getShowTemplatesStorageKey;
195
205
  render(): string;
196
206
  initialize(container: HTMLElement, options: SceneObjectsPanelOptions): void;
197
207
  setSelected(objectId: string | null): void;
208
+ getSelectedIds(): string[];
209
+ private updateSelectionUI;
198
210
  refreshObjects(): void;
199
211
  /**
200
212
  * Format display name: removes json. prefix, converts underscores to spaces, title case
@@ -214,6 +226,9 @@ declare class SceneObjectsPanel {
214
226
  private getMetadata;
215
227
  private scheduleRetry;
216
228
  private select;
229
+ private toggleSelect;
230
+ private selectRange;
231
+ private updateLastSelectedIndex;
217
232
  private getDefaultScreenForCreate;
218
233
  private openAddObjectMenu;
219
234
  /**
@@ -222,7 +237,10 @@ declare class SceneObjectsPanel {
222
237
  private openAddObjectWizard;
223
238
  private showContextMenu;
224
239
  private deleteObject;
240
+ private deleteMultipleObjects;
225
241
  private deleteSystemGroup;
242
+ private moveObject;
243
+ private moveMultipleObjects;
226
244
  private syncScreens;
227
245
  }
228
246
 
@@ -237,11 +255,8 @@ declare class SceneToolsPanel {
237
255
  private root;
238
256
  private options;
239
257
  private isCollapsed;
240
- private hasUnsavedChanges;
241
- private getShortcutKey;
242
258
  render(): string;
243
259
  initialize(container: HTMLElement, options: SceneToolsPanelOptions): void;
244
- private refreshUnsavedState;
245
260
  updateInfo(info: {
246
261
  instanceId: string;
247
262
  worldX: number;
@@ -688,7 +703,7 @@ declare class DebugPanel implements DebugPanelContext {
688
703
  toggleDebug(force?: boolean): void;
689
704
  updateDebugBadge(): void;
690
705
  private handleObjectSelect;
691
- nudgeSelectedObject(dx: number, dy: number): void;
706
+ nudgeSelectedObject(dx: number, dy: number): Promise<void>;
692
707
  }
693
708
 
694
709
  /**
@@ -812,6 +827,8 @@ interface ConfigChange {
812
827
  oldValue: any;
813
828
  newValue: any;
814
829
  ts: number;
830
+ changeType?: 'property' | 'object_create' | 'object_delete';
831
+ metadata?: any;
815
832
  }
816
833
  interface ConfigOverrideOptions {
817
834
  silent?: boolean;
@@ -858,6 +875,14 @@ declare function undoLastConfigChange(): boolean;
858
875
  * Returns true if redo was successful, false if no changes to redo
859
876
  */
860
877
  declare function redoLastConfigChange(): boolean;
878
+ /**
879
+ * Track object creation in undo history
880
+ */
881
+ declare function trackObjectCreation(objectId: string, screenId: string, objectConfig: any): void;
882
+ /**
883
+ * Track object deletion in undo history
884
+ */
885
+ declare function trackObjectDeletion(objectId: string, screenId: string, objectConfig: any): void;
861
886
  /**
862
887
  * Deep clone utility for baseline copying
863
888
  */
@@ -1034,4 +1059,4 @@ declare const Handler: {
1034
1059
  resize(width?: number, height?: number): void;
1035
1060
  };
1036
1061
 
1037
- export { COLORS, type ConfigChange, type ConfigChangeEvent, type ConfigOverride, type ConfigOverrideOptions, ConfigWatcher, DebugPanel, DefaultReloadStrategy, type DeviceCategory, type DeviceGroup, type DevicePreset, Handler, type HotReloadDependencies, type HotReloadWatcher, type LiveEditBridge, ObjectCentricConfig, PlayableLoadingScreen, type PreviewOptions, PreviewShell, type ReloadStrategy, STROKE_WIDTH, type SetupLiveEditBridgeOptions, THEME, applyConfigOverride, applyConfigOverrides, applyConfigsToDisk, baseLottie, bootstrap, clearConfigOverrides, clearConfigOverridesForObject, configOverrideManager, createPreviewShell, deepClone, Handler as default, defaultPreset, deviceGroups, devicePresets, diffConfigs, exportConfigsAsJSON, getConfigOverrides, getConfigStateSummary, getOverrideMode, getPresetById, getPresetsByCategory, redoLastConfigChange, rehydrateObject, removeConfigOverride, resetToApplied, resetToOriginal, setBootstrapDependencies, setOverrideMode, setupHotReload, setupLiveEditBridge, undoLastConfigChange };
1062
+ export { COLORS, type ConfigChange, type ConfigChangeEvent, type ConfigOverride, type ConfigOverrideOptions, ConfigWatcher, DebugPanel, DefaultReloadStrategy, type DeviceCategory, type DeviceGroup, type DevicePreset, Handler, type HotReloadDependencies, type HotReloadWatcher, type LiveEditBridge, ObjectCentricConfig, PlayableLoadingScreen, type PreviewOptions, PreviewShell, type ReloadStrategy, STROKE_WIDTH, type SetupLiveEditBridgeOptions, THEME, applyConfigOverride, applyConfigOverrides, applyConfigsToDisk, baseLottie, bootstrap, clearConfigOverrides, clearConfigOverridesForObject, configOverrideManager, createPreviewShell, deepClone, Handler as default, defaultPreset, deviceGroups, devicePresets, diffConfigs, exportConfigsAsJSON, getConfigOverrides, getConfigStateSummary, getOverrideMode, getPresetById, getPresetsByCategory, redoLastConfigChange, rehydrateObject, removeConfigOverride, resetToApplied, resetToOriginal, setBootstrapDependencies, setOverrideMode, setupHotReload, setupLiveEditBridge, trackObjectCreation, trackObjectDeletion, undoLastConfigChange };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{E as H,F as I,G as J,H as K,I as L,J as M,K as N,L as O,M as P,N as Q,O as R,P as S,Q as T,R as U,S as V,T as W,U as X,a}from"./chunk-FWI4XZGW.js";import"./chunk-I5OOVR5U.js";import{a as s,b as t,c as u,d as v,e as w,f as x,g as y,h as z,i as A,j as B,k as C,l as D,m as E,n as F,o as G}from"./chunk-NHKCXBUZ.js";import{a as b,b as c,c as d,d as e,e as f,f as g,g as h,h as i,i as j,j as k,k as l,l as m,m as n,n as o,o as p,p as q,q as r}from"./chunk-C4GAOSNW.js";import"./chunk-E6WJCS24.js";import"./chunk-JXBG6UFL.js";export{S as COLORS,D as ConfigWatcher,M as DebugPanel,C as DefaultReloadStrategy,W as Handler,V as PlayableLoadingScreen,N as PreviewShell,T as STROKE_WIDTH,U as THEME,d as applyConfigOverride,e as applyConfigOverrides,p as applyConfigsToDisk,z as applyDefaults,a as baseLottie,R as bootstrap,f as clearConfigOverrides,g as clearConfigOverridesForObject,j as configOverrideManager,O as createPreviewShell,m as deepClone,X as default,J as defaultPreset,I as deviceGroups,H as devicePresets,E as diffConfigs,n as exportConfigsAsJSON,i as getConfigOverrides,o as getConfigStateSummary,b as getOverrideMode,K as getPresetById,L as getPresetsByCategory,u as loadAllObjectConfigs,s as loadComponentSchemas,v as loadEngineConfig,w as loadGamePromptConfig,A as loadObjectCentricConfig,t as loadObjectConfig,x as loadSceneConfig,l as redoLastConfigChange,F as rehydrateObject,h as removeConfigOverride,q as resetToApplied,r as resetToOriginal,Q as setBootstrapDependencies,c as setOverrideMode,G as setupHotReload,P as setupLiveEditBridge,B as toLegacyFormat,k as undoLastConfigChange,y as validateObjectConfig};
1
+ import{E as J,F as K,G as L,H as M,I as N,J as O,K as P,L as Q,M as R,N as S,O as T,P as U,Q as V,R as W,S as X,T as Y,U as Z,a}from"./chunk-WTWSWRFR.js";import"./chunk-I5OOVR5U.js";import{a as u,b as v,c as w,d as x,e as y,f as z,g as A,h as B,i as C,j as D,k as E,l as F,m as G,n as H,o as I}from"./chunk-PW2FGMCO.js";import{a as b,b as c,c as d,d as e,e as f,f as g,g as h,h as i,i as j,j as k,k as l,l as m,m as n,n as o,o as p,p as q,q as r,r as s,s as t}from"./chunk-HVKF2KYL.js";import"./chunk-E6WJCS24.js";import"./chunk-JXBG6UFL.js";export{U as COLORS,F as ConfigWatcher,O as DebugPanel,E as DefaultReloadStrategy,Y as Handler,X as PlayableLoadingScreen,P as PreviewShell,V as STROKE_WIDTH,W as THEME,d as applyConfigOverride,e as applyConfigOverrides,r as applyConfigsToDisk,B as applyDefaults,a as baseLottie,T as bootstrap,f as clearConfigOverrides,g as clearConfigOverridesForObject,j as configOverrideManager,Q as createPreviewShell,o as deepClone,Z as default,L as defaultPreset,K as deviceGroups,J as devicePresets,G as diffConfigs,p as exportConfigsAsJSON,i as getConfigOverrides,q as getConfigStateSummary,b as getOverrideMode,M as getPresetById,N as getPresetsByCategory,w as loadAllObjectConfigs,u as loadComponentSchemas,x as loadEngineConfig,y as loadGamePromptConfig,C as loadObjectCentricConfig,v as loadObjectConfig,z as loadSceneConfig,l as redoLastConfigChange,H as rehydrateObject,h as removeConfigOverride,s as resetToApplied,t as resetToOriginal,S as setBootstrapDependencies,c as setOverrideMode,I as setupHotReload,R as setupLiveEditBridge,D as toLegacyFormat,m as trackObjectCreation,n as trackObjectDeletion,k as undoLastConfigChange,A as validateObjectConfig};