@omnipad/core 0.4.5 → 0.6.0

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.d.ts CHANGED
@@ -1,5 +1,37 @@
1
- import { I as ICoreEntity, a as InputActionSignal, V as Vec2, G as GamepadMappingConfig, b as ISpatial, c as IResettable, d as IConfigurable, e as IStateful, E as EntityType, A as AbstractRect, B as ButtonConfig, f as IPointerHandler, g as IProgrammatic, h as AbstractPointerEvent, D as DPadConfig, i as InputZoneConfig, j as IDependencyBindable, k as AnyFunction, J as JoystickConfig, l as BaseConfig, T as TargetZoneConfig, m as ISignalReceiver, n as TrackpadConfig } from './index-CT1fDlB9.js';
2
- export { o as ACTION_TYPES, p as ActionMapping, q as AnchorPoint, r as AnyConfig, s as AnyEntityType, t as BuiltInActionType, C as CMP_TYPES, u as CONTEXT, v as ConfigTreeNode, w as CssUnit, F as FlatConfigItem, x as FlexibleLength, y as GamepadProfile, z as IIdentifiable, H as ILifecycle, K as InputActionType, L as KEYS, M as KeyMapping, N as LayoutBox, P as ParsedLength, S as StageId, O as StandardButton, Q as VALID_UNITS, W as WidgetId, R as WidgetType, Z as ZoneId, U as ZoneType } from './index-CT1fDlB9.js';
1
+ import { I as InputActionSignal, V as Vec2, A as AnyFunction, C as ConfigTreeNode, B as BaseConfig, E as EntityType, a as AbstractRect, G as GamepadMappingConfig, O as OmniPadProfile, b as ButtonConfig, c as AbstractPointerEvent, D as DPadConfig, d as InputZoneConfig, J as JoystickConfig, T as TargetZoneConfig, e as TrackpadConfig } from './index-Dd0aHJaA.js';
2
+ export { f as ACTION_TYPES, g as ActionMapping, h as AnchorPoint, i as AnyConfig, j as AnyEntityType, k as BuiltInActionType, l as CMP_TYPES, m as CONTEXT, n as CssUnit, F as FlatConfigItem, o as FlexibleLength, p as InputActionType, K as KEYS, q as KeyMapping, L as LayoutBox, P as ParsedLength, S as StageId, r as StandardButton, s as VALID_UNITS, W as WidgetId, t as WidgetType, Z as ZoneId, u as ZoneType } from './index-Dd0aHJaA.js';
3
+ import { I as ICoreEntity, a as IElementObserver, S as StickyProvider, b as ISpatial, c as IResettable, d as IConfigurable, e as IStateful, f as IPointerHandler, g as IProgrammatic, h as IDependencyBindable, i as ISignalReceiver } from './sticky-d_z_GU83.js';
4
+ export { j as IIdentifiable, k as ILifecycle, l as StickyController } from './sticky-d_z_GU83.js';
5
+
6
+ /**
7
+ * A unique signature used to identify and verify that messages received via
8
+ * window.postMessage originate from the OmniPad system.
9
+ */
10
+ declare const OMNIPAD_IPC_SIGNATURE = "__OMNIPAD_IPC_V1__";
11
+ /**
12
+ * Represents the structure of a data packet used for Inter-Process Communication (IPC)
13
+ * between the Host (main window) and the Guest (iframe).
14
+ */
15
+ interface IpcMessage {
16
+ /** Verification string to filter out external third-party messages */
17
+ signature: typeof OMNIPAD_IPC_SIGNATURE;
18
+ /**
19
+ * The broad category of the input event.
20
+ * Distinguishes between spatial interactions and discrete key signals.
21
+ */
22
+ type: 'pointer' | 'keyboard';
23
+ /**
24
+ * The specific event action name.
25
+ * Corresponds to standard browser event types like 'pointerdown', 'mousemove', 'keydown', etc.
26
+ */
27
+ action: string;
28
+ /**
29
+ * The data payload for the event.
30
+ * For 'pointer' type: Contains relative coordinates {x, y} and event options.
31
+ * For 'keyboard' type: Contains key mapping data {key, code, keyCode}.
32
+ */
33
+ payload: any;
34
+ }
3
35
 
4
36
  /**
5
37
  * Interface for the global Registry singleton.
@@ -171,125 +203,136 @@ interface JoystickState extends InteractionState, AxisLogicState, ButtonLogicSta
171
203
  }
172
204
 
173
205
  /**
174
- * GamepadManager
206
+ * Binds a map of delegate functions to a core entity instance.
207
+ *
208
+ * @param entity - The target entity instance.
209
+ * @param delegates - A key-value map of functions to bind.
210
+ */
211
+ declare function bindEntityDelegates(entity: any, delegates?: Record<string, AnyFunction>): void;
212
+ /**
213
+ * Orchestrates environment-agnostic spatial and visibility logic for an entity.
175
214
  *
176
- * A singleton service that polls the browser Gamepad API via requestAnimationFrame.
177
- * It translates physical hardware inputs into programmatic signals sent to
178
- * virtual entities registered in the system.
215
+ * @template T - The type of the physical element (e.g., HTMLElement, Element).
216
+ * @param entity - The logic core entity instance (must implement ICoreEntity).
217
+ * @param element - The physical element target to be observed.
218
+ * @param observer - The unified observer singleton (RO/IO) to track the element.
219
+ * @param getRect - An environment-specific function to retrieve the element's current Rect.
220
+ * @param stickyProvider - Optional. If provided, its cache will be invalidated alongside the entity's.
179
221
  *
180
- * Handles:
181
- * 1. Button edge detection (Down/Up).
182
- * 2. D-Pad to vector conversion.
183
- * 3. Analog stick deadzone processing.
222
+ * @returns A cleanup function to disconnect all registered observers.
184
223
  */
185
- declare class GamepadManager {
186
- private isRunning;
187
- private config;
188
- private lastButtonStates;
189
- private constructor();
190
- /**
191
- * Retrieves the global singleton instance of the GamepadManager.
192
- */
193
- static getInstance(): GamepadManager;
194
- /**
195
- * Updates the current gamepad mapping configuration.
196
- *
197
- * @param config - The mapping of physical inputs to virtual component IDs (UID).
198
- */
199
- setConfig(config: GamepadMappingConfig[]): void;
200
- /** Return the current gamepad mapping configuration. */
201
- getConfig(): Readonly<GamepadMappingConfig[] | null>;
202
- /**
203
- * Starts the polling loop and listens for gamepad connection events.
204
- */
205
- start(): void;
206
- /**
207
- * Stops the polling loop.
208
- */
209
- stop(): void;
210
- /**
211
- * The core polling loop executing at the browser's refresh rate.
212
- */
213
- private loop;
214
- /**
215
- * Process binary button inputs with edge detection.
216
- */
217
- private processButtons;
218
- /**
219
- * Translates physical D-Pad buttons into a normalized vector.
220
- */
221
- private processDPad;
222
- /**
223
- * Process analog stick movements with deadzone logic.
224
- */
225
- private processAxes;
226
- /**
227
- * Locates a virtual entity and triggers its programmatic interface.
228
- *
229
- * @param uid - The Entity ID (UID) of the target.
230
- * @param action - The type of trigger ('down', 'up', or 'vector').
231
- * @param payload - Optional data for vector movements.
232
- */
233
- private triggerVirtualEntity;
234
- }
235
-
224
+ declare function setupSpatialLogic<T>(entity: any, element: T, observer: IElementObserver<T>, getRect: (el: T) => AbstractRect, stickyProvider?: StickyProvider<T> | null): () => void;
225
+ /**
226
+ * Filters out a specific dynamic child node from the tree by its ID (UID).
227
+ *
228
+ * @param children - The array of tree nodes to filter.
229
+ * @param dynamicWidgetId - The UID of the widget to be removed.
230
+ * @returns A new array excluding the specified dynamic child, or an empty array.
231
+ */
232
+ declare function filterNotDynamicChildren(children: ConfigTreeNode[] | undefined, dynamicWidgetId: string): ConfigTreeNode[];
233
+ /**
234
+ * Extract filtered override configurations.
235
+ * @param props Original Props object (e.g. Vue's props)
236
+ * @param skipKeys Ignore key set
237
+ */
238
+ declare function getOverrideProps(props: Record<string, any>, skipKeys: Set<string>): Record<string, any>;
236
239
  /**
237
- * A centralized observation pool for DOM elements.
240
+ * Merges multiple configuration sources into a unified widget configuration object.
238
241
  *
239
- * This class provides a high-performance wrapper around `ResizeObserver` (RO) and
240
- * `IntersectionObserver` (IO). By pooling all element observations into single
241
- * native observer instances and utilizing `requestAnimationFrame` (rAF) throttling,
242
- * it significantly reduces memory footprint and prevents layout thrashing.
242
+ * @description
243
+ * This function performs a shallow merge of the provided configuration objects with a
244
+ * specific precedence order (Right-most takes priority). It also performs a one-level
245
+ * deep merge specifically for the `layout` property to ensure layout settings are
246
+ * preserved across different sources.
243
247
  *
244
- * It supports deterministic unregistration via UIDs, making it ideal for
245
- * framework adapters (like Vue or React) where DOM references may become unstable
246
- * during unmounting.
248
+ * **Merge Priority (Highest to Lowest):**
249
+ * 1. Fixed metadata (`id`, `baseType`, `parentId`) - *Guaranteed overrides*
250
+ * 2. `overrideProps`
251
+ * 3. `treeConfig`
252
+ * 4. `defaultProps`
253
+ *
254
+ * @param requiredType - The formal entity type (e.g., 'button', 'input-zone') assigned to `baseType`.
255
+ * @param uid - The unique identifier to be assigned to the `id` property.
256
+ * @param parentId - The unique identifier of the parent container, if any.
257
+ * @param defaultProps - The baseline fallback configuration.
258
+ * @param treeConfig - Configuration derived from the widget tree structure.
259
+ * @param overrideProps - Domain-specific or instance-specific property overrides.
260
+ *
261
+ * @returns A complete configuration object of type `T`.
247
262
  */
248
- declare class ElementObserver {
249
- private _ro;
250
- private _roRegistry;
251
- private _elToRoCb;
252
- private _io;
253
- private _ioRegistry;
254
- private _elToIoCb;
255
- private constructor();
256
- static getInstance(): ElementObserver;
257
- /**
258
- * Starts observing size changes for a specific element.
259
- *
260
- * @param uid - The unique entity ID associated with the observation.
261
- * @param el - The target DOM element to observe.
262
- * @param cb - Callback triggered when the element's size changes.
263
- */
264
- observeResize(uid: string, el: Element, cb: () => void): void;
265
- /**
266
- * Stops observing size changes for the entity identified by the UID.
267
- *
268
- * @param uid - The unique entity ID to unregister.
269
- */
270
- unobserveResize(uid: string): void;
271
- /**
272
- * Starts observing visibility (intersection) changes for a specific element.
273
- *
274
- * @param uid - The unique entity ID associated with the observation.
275
- * @param el - The target DOM element to observe.
276
- * @param cb - Callback triggered when visibility enters or exits the viewport.
277
- */
278
- observeIntersect(uid: string, el: Element, cb: (isIntersecting: boolean) => void): void;
279
- /**
280
- * Stops observing intersection changes for the entity identified by the UID.
281
- *
282
- * @param uid - The unique entity ID to unregister.
283
- */
284
- unobserveIntersect(uid: string): void;
263
+ declare function mergeWidgetConfig<T extends BaseConfig>(requiredType: EntityType, uid: string, parentId: string | undefined, defaultProps: Record<string, any>, treeConfig: Record<string, any>, overrideProps: Record<string, any>): T;
264
+ /**
265
+ * Resolves the dynamic widget instance to be rendered based on priority and exclusivity rules.
266
+ *
267
+ * This utility handles conflicts between manual components provided via slots and template
268
+ * components defined in the configuration. It implements a "Slot-First" strategy:
269
+ * 1. If slot nodes are present, the first valid node is chosen, and configuration templates are ignored.
270
+ * 2. If no slot nodes are present, it fallbacks to searching the configuration children for the matching UID.
271
+ * 3. Enforces uniqueness by ensuring only one component is rendered even if multiple are provided.
272
+ *
273
+ * @template T - The type of the node provided by the adapter (e.g., Vue VNode).
274
+ * @param slotNodes - An array of nodes retrieved from the dynamic widget slot.
275
+ * @param children - The array of child nodes from the current ConfigTreeNode.
276
+ * @param dynamicId - The UID assigned to the dynamic widget template.
277
+ * @returns An object containing the resolved node to render and its source origin.
278
+ */
279
+ declare function resolveDynamicWidget<T>(slotNodes: T[], children: ConfigTreeNode[] | undefined, dynamicId: string): {
280
+ nodeToRender: T | ConfigTreeNode | null;
281
+ isFromSlot: boolean;
282
+ };
283
+ /**
284
+ * Validates that the provided node exists and is non-empty.
285
+ *
286
+ * It matches the node against the `requiredType` by checking both the protocol-level `config.baseType`
287
+ * and the potentially custom `type`.
288
+ *
289
+ * @param node - The configuration node to validate. Can be `undefined`.
290
+ * @param requiredType - The expected {@link EntityType} the node should represent.
291
+ *
292
+ * @returns The original `node` if validation passes; otherwise, `undefined`.
293
+ */
294
+ declare function validateWidgetNode(node: ConfigTreeNode | undefined, requiredType: EntityType): ConfigTreeNode | undefined;
295
+
296
+ /**
297
+ * Validates and normalizes raw JSON data into a standard OmniPadProfile.
298
+ * Performs structural checks and injects default metadata.
299
+ *
300
+ * @param raw - The raw JSON object from disk or network.
301
+ * @returns A validated OmniPadProfile object.
302
+ * @throws Error if the core structure is invalid.
303
+ */
304
+ declare function parseProfileJson(raw: any): OmniPadProfile;
305
+ /**
306
+ * The resulting structure after parsing a OmniPadProfile.
307
+ * Contains a map of root nodes and a runtime-ready gamepad mapping table.
308
+ */
309
+ interface ParsedProfileForest {
310
+ /** Root nodes indexed by their original Config ID. */
311
+ roots: Record<string, ConfigTreeNode>;
285
312
  /**
286
- * Disconnects all observers (RO and IO) associated with a specific UID.
287
- * Usually called during component destruction for thorough cleanup.
288
- *
289
- * @param uid - The unique entity ID to fully disconnect.
313
+ * Processed gamepad mapping where all CIDs have been
314
+ * translated into unique runtime UIDs.
290
315
  */
291
- disconnect(uid: string): void;
316
+ runtimeGamepadMappings: GamepadMappingConfig[];
292
317
  }
318
+ /**
319
+ * Converts a flat OmniPadProfile into a forest of ConfigTreeNodes for runtime rendering.
320
+ * Automatically identifies all items without a parentId as root nodes.
321
+ *
322
+ * @param profile - The normalized profile data.
323
+ * @returns A record map of root nodes, keyed by their original configuration ID.
324
+ */
325
+ declare function parseProfileTrees(profile: OmniPadProfile): ParsedProfileForest;
326
+ /**
327
+ * Serializes the specified runtime entities into a flat OmniPadProfile.
328
+ * If no rootUids are provided, exports all entities currently in the registry.
329
+ *
330
+ * @param meta - Metadata for the exported profile.
331
+ * @param rootUid - The Entity ID of the node to be treated as the root.
332
+ * @param runtimeGamepadMapping - The current mapping from GamepadManager (using UIDs).
333
+ * @returns A flat OmniPadProfile ready for storage.
334
+ */
335
+ declare function exportProfile(meta: OmniPadProfile['meta'], rootUids?: string[], runtimeGamepadMappings?: Readonly<GamepadMappingConfig[]>): OmniPadProfile;
293
336
 
294
337
  /**
295
338
  * Configures the global fallback handler for action signals.
@@ -334,51 +377,6 @@ declare class Registry implements IRegistry {
334
377
  broadcastSignal(signal: InputActionSignal): void;
335
378
  }
336
379
 
337
- /**
338
- * Global Input Manager Singleton.
339
- *
340
- * Responsible for monitoring global browser events (resize, blur, visibility)
341
- * and coordinating system-wide resets to prevent stuck inputs.
342
- */
343
- declare class WindowManager {
344
- /** Internal flag to prevent multiple event registrations */
345
- private _isListening;
346
- /** A throttled version of the reset logic */
347
- private throttledReset;
348
- private constructor();
349
- /**
350
- * Retrieves the global instance of the WindowManager.
351
- * Ensures uniqueness across multiple bundles or modules.
352
- */
353
- static getInstance(): WindowManager;
354
- /**
355
- * Manually triggers a system-wide input reset via Registry.
356
- */
357
- private handleGlobalReset;
358
- private handleResizeReset;
359
- private handleBlurReset;
360
- private handleScrollReset;
361
- private handleVisibilityChangeReset;
362
- /**
363
- * Initializes global safety listeners.
364
- * Should be called once at the root component lifecycle (e.g., VirtualLayer).
365
- */
366
- init(): void;
367
- /**
368
- * Toggle full-screen state of the page.
369
- * @param element Target HTMLElement
370
- */
371
- toggleFullscreen(element?: HTMLElement): Promise<void>;
372
- /**
373
- * Full-screen status query provided to the UI layer.
374
- */
375
- isFullscreen(): boolean;
376
- /**
377
- * Detaches all global listeners.
378
- */
379
- destroy(): void;
380
- }
381
-
382
380
  /**
383
381
  * Represents a callback function for the emitter.
384
382
  * @template T - The type of data being broadcasted.
@@ -689,500 +687,615 @@ declare const OmniPad: {
689
687
  };
690
688
  Keys: {
691
689
  readonly Backspace: {
690
+ readonly type: "keyboard";
692
691
  readonly key: "Backspace";
693
692
  readonly code: "Backspace";
694
693
  readonly keyCode: 8;
695
694
  };
696
695
  readonly Tab: {
696
+ readonly type: "keyboard";
697
697
  readonly key: "Tab";
698
698
  readonly code: "Tab";
699
699
  readonly keyCode: 9;
700
700
  };
701
701
  readonly Enter: {
702
+ readonly type: "keyboard";
702
703
  readonly key: "Enter";
703
704
  readonly code: "Enter";
704
705
  readonly keyCode: 13;
705
706
  };
706
707
  readonly ShiftLeft: {
708
+ readonly type: "keyboard";
707
709
  readonly key: "Shift";
708
710
  readonly code: "ShiftLeft";
709
711
  readonly keyCode: 16;
710
712
  };
711
713
  readonly ControlLeft: {
714
+ readonly type: "keyboard";
712
715
  readonly key: "Control";
713
716
  readonly code: "ControlLeft";
714
717
  readonly keyCode: 17;
715
718
  };
716
719
  readonly AltLeft: {
720
+ readonly type: "keyboard";
717
721
  readonly key: "Alt";
718
722
  readonly code: "AltLeft";
719
723
  readonly keyCode: 18;
720
724
  };
721
725
  readonly Pause: {
726
+ readonly type: "keyboard";
722
727
  readonly key: "Pause";
723
728
  readonly code: "Pause";
724
729
  readonly keyCode: 19;
725
730
  };
726
731
  readonly CapsLock: {
732
+ readonly type: "keyboard";
727
733
  readonly key: "CapsLock";
728
734
  readonly code: "CapsLock";
729
735
  readonly keyCode: 20;
730
736
  };
731
737
  readonly Escape: {
738
+ readonly type: "keyboard";
732
739
  readonly key: "Escape";
733
740
  readonly code: "Escape";
734
741
  readonly keyCode: 27;
735
742
  };
736
743
  readonly Space: {
744
+ readonly type: "keyboard";
737
745
  readonly key: " ";
738
746
  readonly code: "Space";
739
747
  readonly keyCode: 32;
740
748
  };
741
749
  readonly PageUp: {
750
+ readonly type: "keyboard";
742
751
  readonly key: "PageUp";
743
752
  readonly code: "PageUp";
744
753
  readonly keyCode: 33;
745
754
  };
746
755
  readonly PageDown: {
756
+ readonly type: "keyboard";
747
757
  readonly key: "PageDown";
748
758
  readonly code: "PageDown";
749
759
  readonly keyCode: 34;
750
760
  };
751
761
  readonly End: {
762
+ readonly type: "keyboard";
752
763
  readonly key: "End";
753
764
  readonly code: "End";
754
765
  readonly keyCode: 35;
755
766
  };
756
767
  readonly Home: {
768
+ readonly type: "keyboard";
757
769
  readonly key: "Home";
758
770
  readonly code: "Home";
759
771
  readonly keyCode: 36;
760
772
  };
761
773
  readonly ArrowLeft: {
774
+ readonly type: "keyboard";
762
775
  readonly key: "ArrowLeft";
763
776
  readonly code: "ArrowLeft";
764
777
  readonly keyCode: 37;
765
778
  };
766
779
  readonly ArrowUp: {
780
+ readonly type: "keyboard";
767
781
  readonly key: "ArrowUp";
768
782
  readonly code: "ArrowUp";
769
783
  readonly keyCode: 38;
770
784
  };
771
785
  readonly ArrowRight: {
786
+ readonly type: "keyboard";
772
787
  readonly key: "ArrowRight";
773
788
  readonly code: "ArrowRight";
774
789
  readonly keyCode: 39;
775
790
  };
776
791
  readonly ArrowDown: {
792
+ readonly type: "keyboard";
777
793
  readonly key: "ArrowDown";
778
794
  readonly code: "ArrowDown";
779
795
  readonly keyCode: 40;
780
796
  };
781
797
  readonly PrintScreen: {
798
+ readonly type: "keyboard";
782
799
  readonly key: "PrintScreen";
783
800
  readonly code: "PrintScreen";
784
801
  readonly keyCode: 44;
785
802
  };
786
803
  readonly Insert: {
804
+ readonly type: "keyboard";
787
805
  readonly key: "Insert";
788
806
  readonly code: "Insert";
789
807
  readonly keyCode: 45;
790
808
  };
791
809
  readonly Delete: {
810
+ readonly type: "keyboard";
792
811
  readonly key: "Delete";
793
812
  readonly code: "Delete";
794
813
  readonly keyCode: 46;
795
814
  };
796
815
  readonly Digit0: {
816
+ readonly type: "keyboard";
797
817
  readonly key: "0";
798
818
  readonly code: "Digit0";
799
819
  readonly keyCode: 48;
800
820
  };
801
821
  readonly Digit1: {
822
+ readonly type: "keyboard";
802
823
  readonly key: "1";
803
824
  readonly code: "Digit1";
804
825
  readonly keyCode: 49;
805
826
  };
806
827
  readonly Digit2: {
828
+ readonly type: "keyboard";
807
829
  readonly key: "2";
808
830
  readonly code: "Digit2";
809
831
  readonly keyCode: 50;
810
832
  };
811
833
  readonly Digit3: {
834
+ readonly type: "keyboard";
812
835
  readonly key: "3";
813
836
  readonly code: "Digit3";
814
837
  readonly keyCode: 51;
815
838
  };
816
839
  readonly Digit4: {
840
+ readonly type: "keyboard";
817
841
  readonly key: "4";
818
842
  readonly code: "Digit4";
819
843
  readonly keyCode: 52;
820
844
  };
821
845
  readonly Digit5: {
846
+ readonly type: "keyboard";
822
847
  readonly key: "5";
823
848
  readonly code: "Digit5";
824
849
  readonly keyCode: 53;
825
850
  };
826
851
  readonly Digit6: {
852
+ readonly type: "keyboard";
827
853
  readonly key: "6";
828
854
  readonly code: "Digit6";
829
855
  readonly keyCode: 54;
830
856
  };
831
857
  readonly Digit7: {
858
+ readonly type: "keyboard";
832
859
  readonly key: "7";
833
860
  readonly code: "Digit7";
834
861
  readonly keyCode: 55;
835
862
  };
836
863
  readonly Digit8: {
864
+ readonly type: "keyboard";
837
865
  readonly key: "8";
838
866
  readonly code: "Digit8";
839
867
  readonly keyCode: 56;
840
868
  };
841
869
  readonly Digit9: {
870
+ readonly type: "keyboard";
842
871
  readonly key: "9";
843
872
  readonly code: "Digit9";
844
873
  readonly keyCode: 57;
845
874
  };
846
875
  readonly KeyA: {
876
+ readonly type: "keyboard";
847
877
  readonly key: "a";
848
878
  readonly code: "KeyA";
849
879
  readonly keyCode: 65;
850
880
  };
851
881
  readonly KeyB: {
882
+ readonly type: "keyboard";
852
883
  readonly key: "b";
853
884
  readonly code: "KeyB";
854
885
  readonly keyCode: 66;
855
886
  };
856
887
  readonly KeyC: {
888
+ readonly type: "keyboard";
857
889
  readonly key: "c";
858
890
  readonly code: "KeyC";
859
891
  readonly keyCode: 67;
860
892
  };
861
893
  readonly KeyD: {
894
+ readonly type: "keyboard";
862
895
  readonly key: "d";
863
896
  readonly code: "KeyD";
864
897
  readonly keyCode: 68;
865
898
  };
866
899
  readonly KeyE: {
900
+ readonly type: "keyboard";
867
901
  readonly key: "e";
868
902
  readonly code: "KeyE";
869
903
  readonly keyCode: 69;
870
904
  };
871
905
  readonly KeyF: {
906
+ readonly type: "keyboard";
872
907
  readonly key: "f";
873
908
  readonly code: "KeyF";
874
909
  readonly keyCode: 70;
875
910
  };
876
911
  readonly KeyG: {
912
+ readonly type: "keyboard";
877
913
  readonly key: "g";
878
914
  readonly code: "KeyG";
879
915
  readonly keyCode: 71;
880
916
  };
881
917
  readonly KeyH: {
918
+ readonly type: "keyboard";
882
919
  readonly key: "h";
883
920
  readonly code: "KeyH";
884
921
  readonly keyCode: 72;
885
922
  };
886
923
  readonly KeyI: {
924
+ readonly type: "keyboard";
887
925
  readonly key: "i";
888
926
  readonly code: "KeyI";
889
927
  readonly keyCode: 73;
890
928
  };
891
929
  readonly KeyJ: {
930
+ readonly type: "keyboard";
892
931
  readonly key: "j";
893
932
  readonly code: "KeyJ";
894
933
  readonly keyCode: 74;
895
934
  };
896
935
  readonly KeyK: {
936
+ readonly type: "keyboard";
897
937
  readonly key: "k";
898
938
  readonly code: "KeyK";
899
939
  readonly keyCode: 75;
900
940
  };
901
941
  readonly KeyL: {
942
+ readonly type: "keyboard";
902
943
  readonly key: "l";
903
944
  readonly code: "KeyL";
904
945
  readonly keyCode: 76;
905
946
  };
906
947
  readonly KeyM: {
948
+ readonly type: "keyboard";
907
949
  readonly key: "m";
908
950
  readonly code: "KeyM";
909
951
  readonly keyCode: 77;
910
952
  };
911
953
  readonly KeyN: {
954
+ readonly type: "keyboard";
912
955
  readonly key: "n";
913
956
  readonly code: "KeyN";
914
957
  readonly keyCode: 78;
915
958
  };
916
959
  readonly KeyO: {
960
+ readonly type: "keyboard";
917
961
  readonly key: "o";
918
962
  readonly code: "KeyO";
919
963
  readonly keyCode: 79;
920
964
  };
921
965
  readonly KeyP: {
966
+ readonly type: "keyboard";
922
967
  readonly key: "p";
923
968
  readonly code: "KeyP";
924
969
  readonly keyCode: 80;
925
970
  };
926
971
  readonly KeyQ: {
972
+ readonly type: "keyboard";
927
973
  readonly key: "q";
928
974
  readonly code: "KeyQ";
929
975
  readonly keyCode: 81;
930
976
  };
931
977
  readonly KeyR: {
978
+ readonly type: "keyboard";
932
979
  readonly key: "r";
933
980
  readonly code: "KeyR";
934
981
  readonly keyCode: 82;
935
982
  };
936
983
  readonly KeyS: {
984
+ readonly type: "keyboard";
937
985
  readonly key: "s";
938
986
  readonly code: "KeyS";
939
987
  readonly keyCode: 83;
940
988
  };
941
989
  readonly KeyT: {
990
+ readonly type: "keyboard";
942
991
  readonly key: "t";
943
992
  readonly code: "KeyT";
944
993
  readonly keyCode: 84;
945
994
  };
946
995
  readonly KeyU: {
996
+ readonly type: "keyboard";
947
997
  readonly key: "u";
948
998
  readonly code: "KeyU";
949
999
  readonly keyCode: 85;
950
1000
  };
951
1001
  readonly KeyV: {
1002
+ readonly type: "keyboard";
952
1003
  readonly key: "v";
953
1004
  readonly code: "KeyV";
954
1005
  readonly keyCode: 86;
955
1006
  };
956
1007
  readonly KeyW: {
1008
+ readonly type: "keyboard";
957
1009
  readonly key: "w";
958
1010
  readonly code: "KeyW";
959
1011
  readonly keyCode: 87;
960
1012
  };
961
1013
  readonly KeyX: {
1014
+ readonly type: "keyboard";
962
1015
  readonly key: "x";
963
1016
  readonly code: "KeyX";
964
1017
  readonly keyCode: 88;
965
1018
  };
966
1019
  readonly KeyY: {
1020
+ readonly type: "keyboard";
967
1021
  readonly key: "y";
968
1022
  readonly code: "KeyY";
969
1023
  readonly keyCode: 89;
970
1024
  };
971
1025
  readonly KeyZ: {
1026
+ readonly type: "keyboard";
972
1027
  readonly key: "z";
973
1028
  readonly code: "KeyZ";
974
1029
  readonly keyCode: 90;
975
1030
  };
976
1031
  readonly MetaLeft: {
1032
+ readonly type: "keyboard";
977
1033
  readonly key: "Meta";
978
1034
  readonly code: "MetaLeft";
979
1035
  readonly keyCode: 91;
980
1036
  };
981
1037
  readonly ContextMenu: {
1038
+ readonly type: "keyboard";
982
1039
  readonly key: "ContextMenu";
983
1040
  readonly code: "ContextMenu";
984
1041
  readonly keyCode: 93;
985
1042
  };
986
1043
  readonly Numpad0: {
1044
+ readonly type: "keyboard";
987
1045
  readonly key: "0";
988
1046
  readonly code: "Numpad0";
989
1047
  readonly keyCode: 96;
990
1048
  };
991
1049
  readonly Numpad1: {
1050
+ readonly type: "keyboard";
992
1051
  readonly key: "1";
993
1052
  readonly code: "Numpad1";
994
1053
  readonly keyCode: 97;
995
1054
  };
996
1055
  readonly Numpad2: {
1056
+ readonly type: "keyboard";
997
1057
  readonly key: "2";
998
1058
  readonly code: "Numpad2";
999
1059
  readonly keyCode: 98;
1000
1060
  };
1001
1061
  readonly Numpad3: {
1062
+ readonly type: "keyboard";
1002
1063
  readonly key: "3";
1003
1064
  readonly code: "Numpad3";
1004
1065
  readonly keyCode: 99;
1005
1066
  };
1006
1067
  readonly Numpad4: {
1068
+ readonly type: "keyboard";
1007
1069
  readonly key: "4";
1008
1070
  readonly code: "Numpad4";
1009
1071
  readonly keyCode: 100;
1010
1072
  };
1011
1073
  readonly Numpad5: {
1074
+ readonly type: "keyboard";
1012
1075
  readonly key: "5";
1013
1076
  readonly code: "Numpad5";
1014
1077
  readonly keyCode: 101;
1015
1078
  };
1016
1079
  readonly Numpad6: {
1080
+ readonly type: "keyboard";
1017
1081
  readonly key: "6";
1018
1082
  readonly code: "Numpad6";
1019
1083
  readonly keyCode: 102;
1020
1084
  };
1021
1085
  readonly Numpad7: {
1086
+ readonly type: "keyboard";
1022
1087
  readonly key: "7";
1023
1088
  readonly code: "Numpad7";
1024
1089
  readonly keyCode: 103;
1025
1090
  };
1026
1091
  readonly Numpad8: {
1092
+ readonly type: "keyboard";
1027
1093
  readonly key: "8";
1028
1094
  readonly code: "Numpad8";
1029
1095
  readonly keyCode: 104;
1030
1096
  };
1031
1097
  readonly Numpad9: {
1098
+ readonly type: "keyboard";
1032
1099
  readonly key: "9";
1033
1100
  readonly code: "Numpad9";
1034
1101
  readonly keyCode: 105;
1035
1102
  };
1036
1103
  readonly NumpadMultiply: {
1104
+ readonly type: "keyboard";
1037
1105
  readonly key: "*";
1038
1106
  readonly code: "NumpadMultiply";
1039
1107
  readonly keyCode: 106;
1040
1108
  };
1041
1109
  readonly NumpadAdd: {
1110
+ readonly type: "keyboard";
1042
1111
  readonly key: "+";
1043
1112
  readonly code: "NumpadAdd";
1044
1113
  readonly keyCode: 107;
1045
1114
  };
1046
1115
  readonly NumpadSubtract: {
1116
+ readonly type: "keyboard";
1047
1117
  readonly key: "-";
1048
1118
  readonly code: "NumpadSubtract";
1049
1119
  readonly keyCode: 109;
1050
1120
  };
1051
1121
  readonly NumpadDecimal: {
1122
+ readonly type: "keyboard";
1052
1123
  readonly key: ".";
1053
1124
  readonly code: "NumpadDecimal";
1054
1125
  readonly keyCode: 110;
1055
1126
  };
1056
1127
  readonly NumpadDivide: {
1128
+ readonly type: "keyboard";
1057
1129
  readonly key: "/";
1058
1130
  readonly code: "NumpadDivide";
1059
1131
  readonly keyCode: 111;
1060
1132
  };
1061
1133
  readonly F1: {
1134
+ readonly type: "keyboard";
1062
1135
  readonly key: "F1";
1063
1136
  readonly code: "F1";
1064
1137
  readonly keyCode: 112;
1065
1138
  };
1066
1139
  readonly F2: {
1140
+ readonly type: "keyboard";
1067
1141
  readonly key: "F2";
1068
1142
  readonly code: "F2";
1069
1143
  readonly keyCode: 113;
1070
1144
  };
1071
1145
  readonly F3: {
1146
+ readonly type: "keyboard";
1072
1147
  readonly key: "F3";
1073
1148
  readonly code: "F3";
1074
1149
  readonly keyCode: 114;
1075
1150
  };
1076
1151
  readonly F4: {
1152
+ readonly type: "keyboard";
1077
1153
  readonly key: "F4";
1078
1154
  readonly code: "F4";
1079
1155
  readonly keyCode: 115;
1080
1156
  };
1081
1157
  readonly F5: {
1158
+ readonly type: "keyboard";
1082
1159
  readonly key: "F5";
1083
1160
  readonly code: "F5";
1084
1161
  readonly keyCode: 116;
1085
1162
  };
1086
1163
  readonly F6: {
1164
+ readonly type: "keyboard";
1087
1165
  readonly key: "F6";
1088
1166
  readonly code: "F6";
1089
1167
  readonly keyCode: 117;
1090
1168
  };
1091
1169
  readonly F7: {
1170
+ readonly type: "keyboard";
1092
1171
  readonly key: "F7";
1093
1172
  readonly code: "F7";
1094
1173
  readonly keyCode: 118;
1095
1174
  };
1096
1175
  readonly F8: {
1176
+ readonly type: "keyboard";
1097
1177
  readonly key: "F8";
1098
1178
  readonly code: "F8";
1099
1179
  readonly keyCode: 119;
1100
1180
  };
1101
1181
  readonly F9: {
1182
+ readonly type: "keyboard";
1102
1183
  readonly key: "F9";
1103
1184
  readonly code: "F9";
1104
1185
  readonly keyCode: 120;
1105
1186
  };
1106
1187
  readonly F10: {
1188
+ readonly type: "keyboard";
1107
1189
  readonly key: "F10";
1108
1190
  readonly code: "F10";
1109
1191
  readonly keyCode: 121;
1110
1192
  };
1111
1193
  readonly F11: {
1194
+ readonly type: "keyboard";
1112
1195
  readonly key: "F11";
1113
1196
  readonly code: "F11";
1114
1197
  readonly keyCode: 122;
1115
1198
  };
1116
1199
  readonly F12: {
1200
+ readonly type: "keyboard";
1117
1201
  readonly key: "F12";
1118
1202
  readonly code: "F12";
1119
1203
  readonly keyCode: 123;
1120
1204
  };
1121
1205
  readonly NumLock: {
1206
+ readonly type: "keyboard";
1122
1207
  readonly key: "NumLock";
1123
1208
  readonly code: "NumLock";
1124
1209
  readonly keyCode: 144;
1125
1210
  };
1126
1211
  readonly ScrollLock: {
1212
+ readonly type: "keyboard";
1127
1213
  readonly key: "ScrollLock";
1128
1214
  readonly code: "ScrollLock";
1129
1215
  readonly keyCode: 145;
1130
1216
  };
1131
1217
  readonly Semicolon: {
1218
+ readonly type: "keyboard";
1132
1219
  readonly key: ";";
1133
1220
  readonly code: "Semicolon";
1134
1221
  readonly keyCode: 186;
1135
1222
  };
1136
1223
  readonly Equal: {
1224
+ readonly type: "keyboard";
1137
1225
  readonly key: "=";
1138
1226
  readonly code: "Equal";
1139
1227
  readonly keyCode: 187;
1140
1228
  };
1141
1229
  readonly Comma: {
1230
+ readonly type: "keyboard";
1142
1231
  readonly key: ",";
1143
1232
  readonly code: "Comma";
1144
1233
  readonly keyCode: 188;
1145
1234
  };
1146
1235
  readonly Minus: {
1236
+ readonly type: "keyboard";
1147
1237
  readonly key: "-";
1148
1238
  readonly code: "Minus";
1149
1239
  readonly keyCode: 189;
1150
1240
  };
1151
1241
  readonly Period: {
1242
+ readonly type: "keyboard";
1152
1243
  readonly key: ".";
1153
1244
  readonly code: "Period";
1154
1245
  readonly keyCode: 190;
1155
1246
  };
1156
1247
  readonly Slash: {
1248
+ readonly type: "keyboard";
1157
1249
  readonly key: "/";
1158
1250
  readonly code: "Slash";
1159
1251
  readonly keyCode: 191;
1160
1252
  };
1161
1253
  readonly Backquote: {
1254
+ readonly type: "keyboard";
1162
1255
  readonly key: "`";
1163
1256
  readonly code: "Backquote";
1164
1257
  readonly keyCode: 192;
1165
1258
  };
1166
1259
  readonly BracketLeft: {
1260
+ readonly type: "keyboard";
1167
1261
  readonly key: "[";
1168
1262
  readonly code: "BracketLeft";
1169
1263
  readonly keyCode: 219;
1170
1264
  };
1171
1265
  readonly Backslash: {
1266
+ readonly type: "keyboard";
1172
1267
  readonly key: "\\";
1173
1268
  readonly code: "Backslash";
1174
1269
  readonly keyCode: 220;
1175
1270
  };
1176
1271
  readonly BracketRight: {
1272
+ readonly type: "keyboard";
1177
1273
  readonly key: "]";
1178
1274
  readonly code: "BracketRight";
1179
1275
  readonly keyCode: 221;
1180
1276
  };
1181
1277
  readonly Quote: {
1278
+ readonly type: "keyboard";
1182
1279
  readonly key: "'";
1183
1280
  readonly code: "Quote";
1184
1281
  readonly keyCode: 222;
1185
1282
  };
1283
+ readonly Mouse: {
1284
+ readonly type: "mouse";
1285
+ readonly button: 0;
1286
+ };
1287
+ readonly MouseLeft: {
1288
+ readonly type: "mouse";
1289
+ readonly button: 0;
1290
+ };
1291
+ readonly MouseMiddle: {
1292
+ readonly type: "mouse";
1293
+ readonly button: 1;
1294
+ };
1295
+ readonly MouseRight: {
1296
+ readonly type: "mouse";
1297
+ readonly button: 2;
1298
+ };
1186
1299
  };
1187
1300
  Types: {
1188
1301
  readonly INPUT_ZONE: "input-zone";
@@ -1198,4 +1311,4 @@ declare const OmniPad: {
1198
1311
  };
1199
1312
  };
1200
1313
 
1201
- export { AbstractPointerEvent, AbstractRect, AnyFunction, type AxisLogicState, BaseConfig, BaseEntity, ButtonConfig, ButtonCore, type ButtonLogicState, type ButtonState, type CursorState, DPadConfig, DPadCore, type DPadState, ElementObserver, EntityType, GamepadManager, GamepadMappingConfig, IConfigurable, ICoreEntity, IDependencyBindable, IPointerHandler, IProgrammatic, type IRegistry, IResettable, ISignalReceiver, ISpatial, IStateful, InputActionSignal, InputZoneConfig, InputZoneCore, type InputZoneState, type InteractionState, JoystickConfig, JoystickCore, type JoystickState, type KeyboardButtonState, type LayerState, type MouseButtonState, OmniPad, Registry, RootLayerCore, TargetZoneConfig, TargetZoneCore, TrackpadConfig, TrackpadCore, type TrackpadState, Vec2, WindowManager, setGlobalSignalHandler };
1314
+ export { AbstractPointerEvent, AbstractRect, AnyFunction, type AxisLogicState, BaseConfig, BaseEntity, ButtonConfig, ButtonCore, type ButtonLogicState, type ButtonState, ConfigTreeNode, type CursorState, DPadConfig, DPadCore, type DPadState, EntityType, GamepadMappingConfig, IConfigurable, ICoreEntity, IDependencyBindable, IElementObserver, IPointerHandler, IProgrammatic, type IRegistry, IResettable, ISignalReceiver, ISpatial, IStateful, InputActionSignal, InputZoneConfig, InputZoneCore, type InputZoneState, type InteractionState, type IpcMessage, JoystickConfig, JoystickCore, type JoystickState, type KeyboardButtonState, type LayerState, type MouseButtonState, OMNIPAD_IPC_SIGNATURE, OmniPad, OmniPadProfile, type ParsedProfileForest, Registry, RootLayerCore, StickyProvider, TargetZoneConfig, TargetZoneCore, TrackpadConfig, TrackpadCore, type TrackpadState, Vec2, bindEntityDelegates, exportProfile, filterNotDynamicChildren, getOverrideProps, mergeWidgetConfig, parseProfileJson, parseProfileTrees, resolveDynamicWidget, setGlobalSignalHandler, setupSpatialLogic, validateWidgetNode };