handler-playable-sdk 1.0.14 → 1.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/{chunk-NUN3J3M4.js → chunk-PJT377H6.js} +238 -230
  2. package/dist/cli/brand-dna.mjs +1 -1
  3. package/dist/cli/canva-import.mjs +1 -1
  4. package/dist/cli/cleanup-assets.mjs +1 -1
  5. package/dist/cli/fix-scales.mjs +1 -1
  6. package/dist/cli/index.js +1 -1
  7. package/dist/cli/screen-helper.mjs +1 -1
  8. package/dist/cli/setup-library.mjs +1 -1
  9. package/dist/cli/student-helper/add-logic.mjs +1 -1
  10. package/dist/cli/student-helper/add-object.mjs +1 -1
  11. package/dist/cli/student-helper/arg-parsing.mjs +1 -1
  12. package/dist/cli/student-helper/asset-registry.mjs +1 -1
  13. package/dist/cli/student-helper/bullet-system.mjs +1 -1
  14. package/dist/cli/student-helper/collectable-system.mjs +1 -1
  15. package/dist/cli/student-helper/constants.mjs +1 -1
  16. package/dist/cli/student-helper/drag-snap-couples.mjs +1 -1
  17. package/dist/cli/student-helper/endgame-screen.mjs +1 -1
  18. package/dist/cli/student-helper/fs-io.mjs +1 -1
  19. package/dist/cli/student-helper/logic-defaults.mjs +1 -1
  20. package/dist/cli/student-helper/print-help.mjs +1 -1
  21. package/dist/cli/student-helper/prompts.mjs +1 -1
  22. package/dist/cli/student-helper/scratch-card.mjs +1 -1
  23. package/dist/cli/student-helper/screen-utils.mjs +1 -1
  24. package/dist/cli/student-helper/snippets.mjs +1 -1
  25. package/dist/cli/student-helper/start-screen.mjs +1 -1
  26. package/dist/cli/student-helper/swerve-collect.mjs +1 -1
  27. package/dist/cli/student-helper/tap-destroy.mjs +1 -1
  28. package/dist/cli/student-helper/template-packs.mjs +1 -1
  29. package/dist/cli/student-helper.mjs +1 -1
  30. package/dist/cli/sync-screens.mjs +1 -1
  31. package/dist/cli/validate-assets.mjs +1 -1
  32. package/dist/cli/validate.mjs +1 -1
  33. package/dist/index.cjs +250 -242
  34. package/dist/index.css +49 -0
  35. package/dist/index.d.cts +27 -14
  36. package/dist/index.d.ts +27 -14
  37. package/dist/index.js +1 -1
  38. package/dist/{loader-object-centric-BeVsUAXI.d.cts → loader-object-centric-6vX0uv-j.d.cts} +1 -1
  39. package/dist/{loader-object-centric-BeVsUAXI.d.ts → loader-object-centric-6vX0uv-j.d.ts} +1 -1
  40. package/dist/pixi/index.cjs +10 -10
  41. package/dist/pixi/index.css +49 -0
  42. package/dist/pixi/index.d.cts +1 -1
  43. package/dist/pixi/index.d.ts +1 -1
  44. package/dist/pixi/index.js +1 -1
  45. package/dist/three/index.cjs +34 -34
  46. package/dist/three/index.css +49 -0
  47. package/dist/three/index.js +1 -1
  48. package/package.json +1 -1
package/dist/index.css CHANGED
@@ -5783,6 +5783,55 @@
5783
5783
  margin-top: 2px;
5784
5784
  }
5785
5785
 
5786
+ /* Tabs for Spawner Modal */
5787
+ .add-menu-modal-tabs {
5788
+ display: flex;
5789
+ gap: 4px;
5790
+ padding: 0 18px;
5791
+ border-bottom: 1px solid var(--ui-border);
5792
+ background: var(--ui-surface-2);
5793
+ }
5794
+
5795
+ .add-menu-modal-tab {
5796
+ padding: 10px 16px;
5797
+ font-size: 13px;
5798
+ font-weight: 500;
5799
+ color: var(--ui-muted);
5800
+ cursor: pointer;
5801
+ border: none;
5802
+ background: none;
5803
+ border-bottom: 2px solid transparent;
5804
+ transition: all 0.2s ease;
5805
+ }
5806
+
5807
+ .add-menu-modal-tab:hover {
5808
+ color: var(--ui-text);
5809
+ background: var(--ui-accent-overlay-1);
5810
+ }
5811
+
5812
+ .add-menu-modal-tab.active {
5813
+ color: var(--ui-accent);
5814
+ border-bottom-color: var(--ui-accent);
5815
+ }
5816
+
5817
+ .add-menu-modal-tab-content {
5818
+ display: none;
5819
+ padding: 18px;
5820
+ flex-direction: column;
5821
+ gap: 12px;
5822
+ min-height: 300px;
5823
+ }
5824
+
5825
+ .add-menu-modal-tab-content.active {
5826
+ display: flex;
5827
+ }
5828
+
5829
+ .add-menu-modal-grid-2 {
5830
+ display: grid;
5831
+ grid-template-columns: 1fr 1fr;
5832
+ gap: 12px;
5833
+ }
5834
+
5786
5835
  .add-menu-modal-footer {
5787
5836
  display: flex;
5788
5837
  align-items: center;
package/dist/index.d.cts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Graphics } from 'pixi.js';
2
- import { O as ObjectCentricConfig } from './loader-object-centric-BeVsUAXI.cjs';
3
- export { g as applyDefaults, c as loadAllObjectConfigs, a as loadComponentSchemas, d as loadEngineConfig, e as loadGamePromptConfig, l as loadObjectCentricConfig, b as loadObjectConfig, f as loadSceneConfig, t as toLegacyFormat, v as validateObjectConfig } from './loader-object-centric-BeVsUAXI.cjs';
2
+ import { O as ObjectCentricConfig } from './loader-object-centric-6vX0uv-j.cjs';
3
+ export { a as applyDefaults, l as loadAllObjectConfigs, b as loadComponentSchemas, c as loadEngineConfig, d as loadGamePromptConfig, e as loadObjectCentricConfig, f as loadObjectConfig, g as loadSceneConfig, t as toLegacyFormat, v as validateObjectConfig } from './loader-object-centric-6vX0uv-j.cjs';
4
4
 
5
5
  type TelemetryConfig = {
6
6
  endpoint: string;
@@ -123,9 +123,11 @@ declare class PreviewShell {
123
123
  private resizeListenersDisabled;
124
124
  private compareSnapshotTimer;
125
125
  private hasUnsavedChanges;
126
+ private hasForceSynced;
126
127
  private getShortcutKey;
127
128
  constructor(options?: PreviewOptions);
128
129
  mount(target?: HTMLElement): void;
130
+ private scheduleForceSync;
129
131
  destroy(): void;
130
132
  getGameContainer(): HTMLElement;
131
133
  getScreen(): {
@@ -213,18 +215,23 @@ declare class SceneObjectsPanel {
213
215
  private options;
214
216
  private retryTimer;
215
217
  private screenFilter;
216
- private showTemplates;
217
218
  private isContextMenuOpen;
218
219
  private systemBundles;
220
+ private collapsedGroups;
219
221
  private getScreenFilterStorageKey;
220
- private getShowTemplatesStorageKey;
222
+ private getCollapseStorageKey;
223
+ private loadCollapsedGroups;
224
+ private persistCollapsedGroups;
225
+ private isCollapsed;
226
+ private setCollapsed;
227
+ private getCollapseKey;
228
+ private getSystemBundleKey;
221
229
  render(): string;
222
230
  initialize(container: HTMLElement, options: SceneObjectsPanelOptions): void;
223
231
  setSelected(objectId: string | null): void;
224
232
  getSelectedIds(): string[];
225
233
  private updateSelectionUI;
226
234
  refreshObjects(): void;
227
- private renderSystemBundlesGroup;
228
235
  private renderSystemBundle;
229
236
  private renderEntryItem;
230
237
  private escapeHtml;
@@ -242,13 +249,9 @@ declare class SceneObjectsPanel {
242
249
  * Get object type for icon display
243
250
  */
244
251
  private getObjectType;
245
- private renderGroup;
246
- private renderSystemGroup;
247
- private getTypeIconByType;
248
- private getTypeIcon;
249
- private getAssetPreview;
250
- private getColorIndicator;
251
- private getMetadata;
252
+ private renderEntriesList;
253
+ private renderCollapsibleGroup;
254
+ private renderScreenGroup;
252
255
  private scheduleRetry;
253
256
  private select;
254
257
  private toggleBatchSelect;
@@ -268,6 +271,7 @@ declare class SceneObjectsPanel {
268
271
  private moveObject;
269
272
  private moveMultipleObjects;
270
273
  private syncScreens;
274
+ private getActiveScreenForSync;
271
275
  }
272
276
 
273
277
  type SceneToolsPanelOptions = {
@@ -318,9 +322,15 @@ type LibraryPanelOptions = {
318
322
  declare class LibraryPanel {
319
323
  private root;
320
324
  private slotsContainer;
325
+ private assetsContainer;
326
+ private assetSearchInput;
327
+ private slotSearchInput;
321
328
  private options;
322
329
  private registry;
323
- private expandedSlot;
330
+ private selectedSlotId;
331
+ private cachedAssets;
332
+ private pendingAssetFetches;
333
+ private cacheBust;
324
334
  private mergeRegistries;
325
335
  /**
326
336
  * Render the library panel HTML template (called by DebugPanel)
@@ -336,11 +346,14 @@ declare class LibraryPanel {
336
346
  private loadAssetRegistry;
337
347
  private renderSlots;
338
348
  private createSlotElement;
339
- private createLibraryElement;
349
+ private renderAssets;
350
+ private getCategoryAssets;
340
351
  private fetchFolderAssets;
341
352
  private handleApply;
342
353
  private handleReset;
343
354
  private formatCategoryName;
355
+ private getCategories;
356
+ private getSelectedSlot;
344
357
  /**
345
358
  * Handle AI Edit for existing asset
346
359
  */
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Graphics } from 'pixi.js';
2
- import { O as ObjectCentricConfig } from './loader-object-centric-BeVsUAXI.js';
3
- export { g as applyDefaults, c as loadAllObjectConfigs, a as loadComponentSchemas, d as loadEngineConfig, e as loadGamePromptConfig, l as loadObjectCentricConfig, b as loadObjectConfig, f as loadSceneConfig, t as toLegacyFormat, v as validateObjectConfig } from './loader-object-centric-BeVsUAXI.js';
2
+ import { O as ObjectCentricConfig } from './loader-object-centric-6vX0uv-j.js';
3
+ export { a as applyDefaults, l as loadAllObjectConfigs, b as loadComponentSchemas, c as loadEngineConfig, d as loadGamePromptConfig, e as loadObjectCentricConfig, f as loadObjectConfig, g as loadSceneConfig, t as toLegacyFormat, v as validateObjectConfig } from './loader-object-centric-6vX0uv-j.js';
4
4
 
5
5
  type TelemetryConfig = {
6
6
  endpoint: string;
@@ -123,9 +123,11 @@ declare class PreviewShell {
123
123
  private resizeListenersDisabled;
124
124
  private compareSnapshotTimer;
125
125
  private hasUnsavedChanges;
126
+ private hasForceSynced;
126
127
  private getShortcutKey;
127
128
  constructor(options?: PreviewOptions);
128
129
  mount(target?: HTMLElement): void;
130
+ private scheduleForceSync;
129
131
  destroy(): void;
130
132
  getGameContainer(): HTMLElement;
131
133
  getScreen(): {
@@ -213,18 +215,23 @@ declare class SceneObjectsPanel {
213
215
  private options;
214
216
  private retryTimer;
215
217
  private screenFilter;
216
- private showTemplates;
217
218
  private isContextMenuOpen;
218
219
  private systemBundles;
220
+ private collapsedGroups;
219
221
  private getScreenFilterStorageKey;
220
- private getShowTemplatesStorageKey;
222
+ private getCollapseStorageKey;
223
+ private loadCollapsedGroups;
224
+ private persistCollapsedGroups;
225
+ private isCollapsed;
226
+ private setCollapsed;
227
+ private getCollapseKey;
228
+ private getSystemBundleKey;
221
229
  render(): string;
222
230
  initialize(container: HTMLElement, options: SceneObjectsPanelOptions): void;
223
231
  setSelected(objectId: string | null): void;
224
232
  getSelectedIds(): string[];
225
233
  private updateSelectionUI;
226
234
  refreshObjects(): void;
227
- private renderSystemBundlesGroup;
228
235
  private renderSystemBundle;
229
236
  private renderEntryItem;
230
237
  private escapeHtml;
@@ -242,13 +249,9 @@ declare class SceneObjectsPanel {
242
249
  * Get object type for icon display
243
250
  */
244
251
  private getObjectType;
245
- private renderGroup;
246
- private renderSystemGroup;
247
- private getTypeIconByType;
248
- private getTypeIcon;
249
- private getAssetPreview;
250
- private getColorIndicator;
251
- private getMetadata;
252
+ private renderEntriesList;
253
+ private renderCollapsibleGroup;
254
+ private renderScreenGroup;
252
255
  private scheduleRetry;
253
256
  private select;
254
257
  private toggleBatchSelect;
@@ -268,6 +271,7 @@ declare class SceneObjectsPanel {
268
271
  private moveObject;
269
272
  private moveMultipleObjects;
270
273
  private syncScreens;
274
+ private getActiveScreenForSync;
271
275
  }
272
276
 
273
277
  type SceneToolsPanelOptions = {
@@ -318,9 +322,15 @@ type LibraryPanelOptions = {
318
322
  declare class LibraryPanel {
319
323
  private root;
320
324
  private slotsContainer;
325
+ private assetsContainer;
326
+ private assetSearchInput;
327
+ private slotSearchInput;
321
328
  private options;
322
329
  private registry;
323
- private expandedSlot;
330
+ private selectedSlotId;
331
+ private cachedAssets;
332
+ private pendingAssetFetches;
333
+ private cacheBust;
324
334
  private mergeRegistries;
325
335
  /**
326
336
  * Render the library panel HTML template (called by DebugPanel)
@@ -336,11 +346,14 @@ declare class LibraryPanel {
336
346
  private loadAssetRegistry;
337
347
  private renderSlots;
338
348
  private createSlotElement;
339
- private createLibraryElement;
349
+ private renderAssets;
350
+ private getCategoryAssets;
340
351
  private fetchFolderAssets;
341
352
  private handleApply;
342
353
  private handleReset;
343
354
  private formatCategoryName;
355
+ private getCategories;
356
+ private getSelectedSlot;
344
357
  /**
345
358
  * Handle AI Edit for existing asset
346
359
  */
package/dist/index.js CHANGED
@@ -1 +1 @@
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-NUN3J3M4.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};
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-PJT377H6.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};
@@ -82,4 +82,4 @@ declare function loadObjectCentricConfig(sceneId?: string, overrides?: Partial<O
82
82
  */
83
83
  declare function toLegacyFormat(config: ObjectCentricConfig): any;
84
84
 
85
- export { type ObjectCentricConfig as O, loadComponentSchemas as a, loadObjectConfig as b, loadAllObjectConfigs as c, loadEngineConfig as d, loadGamePromptConfig as e, loadSceneConfig as f, applyDefaults as g, loadObjectCentricConfig as l, toLegacyFormat as t, validateObjectConfig as v };
85
+ export { type ObjectCentricConfig as O, applyDefaults as a, loadComponentSchemas as b, loadEngineConfig as c, loadGamePromptConfig as d, loadObjectCentricConfig as e, loadObjectConfig as f, loadSceneConfig as g, loadAllObjectConfigs as l, toLegacyFormat as t, validateObjectConfig as v };
@@ -82,4 +82,4 @@ declare function loadObjectCentricConfig(sceneId?: string, overrides?: Partial<O
82
82
  */
83
83
  declare function toLegacyFormat(config: ObjectCentricConfig): any;
84
84
 
85
- export { type ObjectCentricConfig as O, loadComponentSchemas as a, loadObjectConfig as b, loadAllObjectConfigs as c, loadEngineConfig as d, loadGamePromptConfig as e, loadSceneConfig as f, applyDefaults as g, loadObjectCentricConfig as l, toLegacyFormat as t, validateObjectConfig as v };
85
+ export { type ObjectCentricConfig as O, applyDefaults as a, loadComponentSchemas as b, loadEngineConfig as c, loadGamePromptConfig as d, loadObjectCentricConfig as e, loadObjectConfig as f, loadSceneConfig as g, loadAllObjectConfigs as l, toLegacyFormat as t, validateObjectConfig as v };