canvasengine 2.0.0-beta.6 → 2.0.0-beta.61
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/DebugRenderer-DkjTAc48.js +1384 -0
- package/dist/DebugRenderer-DkjTAc48.js.map +1 -0
- package/dist/components/Button.d.ts +185 -0
- package/dist/components/Button.d.ts.map +1 -0
- package/dist/components/Canvas.d.ts +17 -0
- package/dist/components/Canvas.d.ts.map +1 -0
- package/dist/components/DOMElement.d.ts +54 -0
- package/dist/components/DOMElement.d.ts.map +1 -0
- package/dist/components/DOMSprite.d.ts +127 -0
- package/dist/components/DOMSprite.d.ts.map +1 -0
- package/dist/components/FocusContainer.d.ts +129 -0
- package/dist/components/FocusContainer.d.ts.map +1 -0
- package/dist/components/Graphic.d.ts +64 -0
- package/dist/components/Graphic.d.ts.map +1 -0
- package/dist/components/Joystick.d.ts +36 -0
- package/dist/components/Joystick.d.ts.map +1 -0
- package/dist/components/NineSliceSprite.d.ts +16 -0
- package/dist/components/NineSliceSprite.d.ts.map +1 -0
- package/dist/components/ParticleEmitter.d.ts +4 -0
- package/dist/components/ParticleEmitter.d.ts.map +1 -0
- package/dist/components/Scene.d.ts +2 -0
- package/dist/components/Scene.d.ts.map +1 -0
- package/dist/components/Text.d.ts +24 -0
- package/dist/components/Text.d.ts.map +1 -0
- package/dist/components/TilingSprite.d.ts +17 -0
- package/dist/components/TilingSprite.d.ts.map +1 -0
- package/dist/components/Video.d.ts +14 -0
- package/dist/components/Video.d.ts.map +1 -0
- package/dist/components/index.d.ts +20 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/types/DisplayObject.d.ts +118 -0
- package/dist/components/types/DisplayObject.d.ts.map +1 -0
- package/dist/components/types/MouseEvent.d.ts +4 -0
- package/dist/components/types/MouseEvent.d.ts.map +1 -0
- package/dist/components/types/Spritesheet.d.ts +248 -0
- package/dist/components/types/Spritesheet.d.ts.map +1 -0
- package/dist/components/types/index.d.ts +4 -0
- package/dist/components/types/index.d.ts.map +1 -0
- package/dist/directives/Controls.d.ts +112 -0
- package/dist/directives/Controls.d.ts.map +1 -0
- package/dist/directives/ControlsBase.d.ts +199 -0
- package/dist/directives/ControlsBase.d.ts.map +1 -0
- package/dist/directives/Drag.d.ts +69 -0
- package/dist/directives/Drag.d.ts.map +1 -0
- package/dist/directives/Flash.d.ts +116 -0
- package/dist/directives/Flash.d.ts.map +1 -0
- package/dist/directives/FocusNavigation.d.ts +52 -0
- package/dist/directives/FocusNavigation.d.ts.map +1 -0
- package/dist/directives/FogVisibility.d.ts +47 -0
- package/dist/directives/FogVisibility.d.ts.map +1 -0
- package/dist/directives/GamepadControls.d.ts +224 -0
- package/dist/directives/GamepadControls.d.ts.map +1 -0
- package/dist/directives/JoystickControls.d.ts +171 -0
- package/dist/directives/JoystickControls.d.ts.map +1 -0
- package/dist/directives/KeyboardControls.d.ts +219 -0
- package/dist/directives/KeyboardControls.d.ts.map +1 -0
- package/dist/directives/Scheduler.d.ts +36 -0
- package/dist/directives/Scheduler.d.ts.map +1 -0
- package/dist/directives/Shake.d.ts +98 -0
- package/dist/directives/Shake.d.ts.map +1 -0
- package/dist/directives/Sound.d.ts +25 -0
- package/dist/directives/Sound.d.ts.map +1 -0
- package/dist/directives/Transition.d.ts +10 -0
- package/dist/directives/Transition.d.ts.map +1 -0
- package/dist/directives/ViewportCull.d.ts +11 -0
- package/dist/directives/ViewportCull.d.ts.map +1 -0
- package/dist/directives/ViewportFollow.d.ts +18 -0
- package/dist/directives/ViewportFollow.d.ts.map +1 -0
- package/dist/directives/index.d.ts +14 -0
- package/dist/directives/index.d.ts.map +1 -0
- package/dist/dist-BOOc43Qm.js +778 -0
- package/dist/dist-BOOc43Qm.js.map +1 -0
- package/dist/engine/FocusManager.d.ts +174 -0
- package/dist/engine/FocusManager.d.ts.map +1 -0
- package/dist/engine/animation.d.ts +72 -0
- package/dist/engine/animation.d.ts.map +1 -0
- package/dist/engine/bootstrap.d.ts +52 -0
- package/dist/engine/bootstrap.d.ts.map +1 -0
- package/dist/engine/directive.d.ts +13 -0
- package/dist/engine/directive.d.ts.map +1 -0
- package/dist/engine/reactive.d.ts +135 -0
- package/dist/engine/reactive.d.ts.map +1 -0
- package/dist/engine/signal.d.ts +73 -0
- package/dist/engine/signal.d.ts.map +1 -0
- package/dist/engine/trigger.d.ts +54 -0
- package/dist/engine/trigger.d.ts.map +1 -0
- package/dist/engine/utils.d.ts +89 -0
- package/dist/engine/utils.d.ts.map +1 -0
- package/dist/hooks/addContext.d.ts +2 -0
- package/dist/hooks/addContext.d.ts.map +1 -0
- package/dist/hooks/useFocus.d.ts +60 -0
- package/dist/hooks/useFocus.d.ts.map +1 -0
- package/dist/hooks/useProps.d.ts +42 -0
- package/dist/hooks/useProps.d.ts.map +1 -0
- package/dist/hooks/useRef.d.ts +4 -0
- package/dist/hooks/useRef.d.ts.map +1 -0
- package/dist/index.d.ts +19 -1107
- package/dist/index.d.ts.map +1 -0
- package/dist/index.global.js +8 -0
- package/dist/index.global.js.map +1 -0
- package/dist/index.js +14708 -3135
- package/dist/index.js.map +1 -1
- package/dist/utils/Ease.d.ts +17 -0
- package/dist/utils/Ease.d.ts.map +1 -0
- package/dist/utils/GlobalAssetLoader.d.ts +141 -0
- package/dist/utils/GlobalAssetLoader.d.ts.map +1 -0
- package/dist/utils/RadialGradient.d.ts +57 -0
- package/dist/utils/RadialGradient.d.ts.map +1 -0
- package/dist/utils/functions.d.ts +2 -0
- package/dist/utils/functions.d.ts.map +1 -0
- package/dist/utils/tabindex.d.ts +16 -0
- package/dist/utils/tabindex.d.ts.map +1 -0
- package/package.json +16 -9
- package/src/components/Button.ts +399 -0
- package/src/components/Canvas.ts +82 -51
- package/src/components/Container.ts +21 -2
- package/src/components/DOMContainer.ts +379 -0
- package/src/components/DOMElement.ts +556 -0
- package/src/components/DOMSprite.ts +1040 -0
- package/src/components/DisplayObject.ts +422 -201
- package/src/components/FocusContainer.ts +368 -0
- package/src/components/Graphic.ts +239 -73
- package/src/components/Joystick.ts +363 -0
- package/src/components/Mesh.ts +222 -0
- package/src/components/NineSliceSprite.ts +4 -1
- package/src/components/ParticleEmitter.ts +12 -8
- package/src/components/Sprite.ts +418 -52
- package/src/components/Text.ts +270 -26
- package/src/components/Viewport.ts +122 -63
- package/src/components/index.ts +9 -2
- package/src/components/types/DisplayObject.ts +53 -5
- package/src/components/types/Spritesheet.ts +0 -118
- package/src/directives/Controls.ts +254 -0
- package/src/directives/ControlsBase.ts +267 -0
- package/src/directives/Drag.ts +357 -52
- package/src/directives/Flash.ts +419 -0
- package/src/directives/FocusNavigation.ts +113 -0
- package/src/directives/FogVisibility.ts +273 -0
- package/src/directives/GamepadControls.ts +537 -0
- package/src/directives/JoystickControls.ts +396 -0
- package/src/directives/KeyboardControls.ts +85 -430
- package/src/directives/Scheduler.ts +21 -5
- package/src/directives/Shake.ts +298 -0
- package/src/directives/Sound.ts +94 -31
- package/src/directives/ViewportFollow.ts +40 -9
- package/src/directives/index.ts +13 -6
- package/src/engine/FocusManager.ts +510 -0
- package/src/engine/animation.ts +175 -21
- package/src/engine/bootstrap.ts +140 -6
- package/src/engine/directive.ts +4 -4
- package/src/engine/reactive.ts +980 -177
- package/src/engine/signal.ts +241 -47
- package/src/engine/trigger.ts +34 -7
- package/src/engine/utils.ts +19 -3
- package/src/hooks/useFocus.ts +91 -0
- package/src/hooks/useProps.ts +1 -1
- package/src/index.ts +8 -2
- package/src/types/pixi-cull.d.ts +7 -0
- package/src/utils/GlobalAssetLoader.ts +257 -0
- package/src/utils/functions.ts +7 -0
- package/src/utils/tabindex.ts +70 -0
- package/testing/index.ts +35 -4
- package/tsconfig.json +18 -0
- package/vite.config.ts +39 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
export interface ControlOptions {
|
|
2
|
+
repeat?: boolean;
|
|
3
|
+
bind: string | string[];
|
|
4
|
+
keyUp?: Function;
|
|
5
|
+
keyDown?: Function;
|
|
6
|
+
throttle?: number;
|
|
7
|
+
delay?: number | {
|
|
8
|
+
duration: number;
|
|
9
|
+
otherControls?: (string)[];
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export interface Controls {
|
|
13
|
+
[controlName: string]: ControlOptions;
|
|
14
|
+
}
|
|
15
|
+
export type BoundKey = {
|
|
16
|
+
actionName: string;
|
|
17
|
+
options: ControlOptions;
|
|
18
|
+
parameters?: any;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Abstract base class for control systems (keyboard, gamepad, etc.)
|
|
22
|
+
*
|
|
23
|
+
* This class provides common functionality shared across all control implementations:
|
|
24
|
+
* - Input binding and management
|
|
25
|
+
* - Control configuration
|
|
26
|
+
* - Input state management
|
|
27
|
+
* - Common methods for querying and triggering controls
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* class MyControls extends ControlsBase {
|
|
32
|
+
* protected setupListeners() {
|
|
33
|
+
* // Setup specific input listeners
|
|
34
|
+
* }
|
|
35
|
+
*
|
|
36
|
+
* protected cleanup() {
|
|
37
|
+
* // Cleanup specific resources
|
|
38
|
+
* }
|
|
39
|
+
*
|
|
40
|
+
* protected preStep() {
|
|
41
|
+
* // Process inputs each frame
|
|
42
|
+
* }
|
|
43
|
+
* }
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare abstract class ControlsBase {
|
|
47
|
+
protected boundKeys: {
|
|
48
|
+
[keyName: string]: BoundKey;
|
|
49
|
+
};
|
|
50
|
+
protected stop: boolean;
|
|
51
|
+
protected _controlsOptions: Controls;
|
|
52
|
+
protected interval: any;
|
|
53
|
+
protected serverFps: number;
|
|
54
|
+
/**
|
|
55
|
+
* Setup input listeners specific to this control implementation
|
|
56
|
+
* Must be implemented by subclasses
|
|
57
|
+
*/
|
|
58
|
+
protected abstract setupListeners(): void;
|
|
59
|
+
/**
|
|
60
|
+
* Cleanup resources specific to this control implementation
|
|
61
|
+
* Must be implemented by subclasses
|
|
62
|
+
*/
|
|
63
|
+
protected abstract cleanup(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Process inputs each step/frame
|
|
66
|
+
* Must be implemented by subclasses
|
|
67
|
+
*/
|
|
68
|
+
protected abstract preStep(): void;
|
|
69
|
+
/**
|
|
70
|
+
* Start the control processing loop
|
|
71
|
+
* Initializes listeners and starts the interval
|
|
72
|
+
*/
|
|
73
|
+
start(): void;
|
|
74
|
+
/**
|
|
75
|
+
* Stop the control processing and cleanup resources
|
|
76
|
+
*/
|
|
77
|
+
destroy(): void;
|
|
78
|
+
/**
|
|
79
|
+
* Bind a key/input to a control action
|
|
80
|
+
*
|
|
81
|
+
* @param keys - Single key or array of keys to bind
|
|
82
|
+
* @param actionName - Name of the control action
|
|
83
|
+
* @param options - Control options (repeat, keyDown, keyUp, etc.)
|
|
84
|
+
* @param parameters - Optional parameters to pass to the control callbacks
|
|
85
|
+
*/
|
|
86
|
+
protected bindKey(keys: string | string[], actionName: string, options: ControlOptions, parameters?: object): void;
|
|
87
|
+
/**
|
|
88
|
+
* Apply an input action for a bound key
|
|
89
|
+
* Can be overridden by subclasses for custom behavior
|
|
90
|
+
*
|
|
91
|
+
* @param keyName - Name of the key/input to process
|
|
92
|
+
*/
|
|
93
|
+
protected applyInput(keyName: string): void;
|
|
94
|
+
/**
|
|
95
|
+
* Get a control by input name
|
|
96
|
+
*
|
|
97
|
+
* @param inputName - Name of the input/key
|
|
98
|
+
* @returns BoundKey if found, undefined otherwise
|
|
99
|
+
* @example
|
|
100
|
+
* ```ts
|
|
101
|
+
* const control = controls.getControl('up');
|
|
102
|
+
* if (control) {
|
|
103
|
+
* console.log(control.actionName); // 'up'
|
|
104
|
+
* }
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
getControl(inputName: string): BoundKey | undefined;
|
|
108
|
+
/**
|
|
109
|
+
* Get all bound controls
|
|
110
|
+
*
|
|
111
|
+
* @returns Object mapping input names to BoundKey objects
|
|
112
|
+
* @example
|
|
113
|
+
* ```ts
|
|
114
|
+
* const allControls = controls.getControls();
|
|
115
|
+
* console.log(Object.keys(allControls)); // ['up', 'down', 'left', 'right', ...]
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
getControls(): {
|
|
119
|
+
[key: string]: BoundKey;
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* Apply a control action programmatically
|
|
123
|
+
*
|
|
124
|
+
* Must be implemented by subclasses to provide input-specific behavior
|
|
125
|
+
*
|
|
126
|
+
* @param controlName - Name or identifier of the control
|
|
127
|
+
* @param isDown - Whether the control is pressed down (true) or released (false)
|
|
128
|
+
* @returns Promise that resolves when the control action is complete
|
|
129
|
+
* @example
|
|
130
|
+
* ```ts
|
|
131
|
+
* // Press a control
|
|
132
|
+
* await controls.applyControl('action', true);
|
|
133
|
+
*
|
|
134
|
+
* // Release a control
|
|
135
|
+
* await controls.applyControl('action', false);
|
|
136
|
+
*
|
|
137
|
+
* // Press and release (default)
|
|
138
|
+
* await controls.applyControl('action');
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
abstract applyControl(controlName: string | number, isDown?: boolean): Promise<void>;
|
|
142
|
+
/**
|
|
143
|
+
* Stop listening to inputs
|
|
144
|
+
* Input events will be ignored until listenInputs() is called
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* ```ts
|
|
148
|
+
* controls.stopInputs();
|
|
149
|
+
* // ... later
|
|
150
|
+
* controls.listenInputs();
|
|
151
|
+
* ```
|
|
152
|
+
*/
|
|
153
|
+
stopInputs(): void;
|
|
154
|
+
/**
|
|
155
|
+
* Resume listening to inputs after stopInputs() was called
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```ts
|
|
159
|
+
* controls.stopInputs();
|
|
160
|
+
* // ... later
|
|
161
|
+
* controls.listenInputs();
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
listenInputs(): void;
|
|
165
|
+
/**
|
|
166
|
+
* Configure controls with input mappings
|
|
167
|
+
*
|
|
168
|
+
* This method sets up the binding between input keys/buttons and control actions.
|
|
169
|
+
* It clears existing bindings and creates new ones based on the provided configuration.
|
|
170
|
+
*
|
|
171
|
+
* @param inputs - Control configuration object
|
|
172
|
+
* @example
|
|
173
|
+
* ```ts
|
|
174
|
+
* controls.setInputs({
|
|
175
|
+
* up: {
|
|
176
|
+
* repeat: true,
|
|
177
|
+
* bind: 'up',
|
|
178
|
+
* keyDown() {
|
|
179
|
+
* console.log('Up pressed');
|
|
180
|
+
* }
|
|
181
|
+
* },
|
|
182
|
+
* action: {
|
|
183
|
+
* bind: ['space', 'enter'],
|
|
184
|
+
* keyDown() {
|
|
185
|
+
* console.log('Action triggered');
|
|
186
|
+
* }
|
|
187
|
+
* }
|
|
188
|
+
* });
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
191
|
+
setInputs(inputs: Controls): void;
|
|
192
|
+
/**
|
|
193
|
+
* Get the current controls configuration
|
|
194
|
+
*
|
|
195
|
+
* @returns The controls options object
|
|
196
|
+
*/
|
|
197
|
+
get options(): Controls;
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=ControlsBase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControlsBase.d.ts","sourceRoot":"","sources":["../../src/directives/ControlsBase.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;KAC9B,CAAC;CACL;AAED,MAAM,WAAW,QAAQ;IACrB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAAC;CACzC;AAED,MAAM,MAAM,QAAQ,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,cAAc,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC;AAEzF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,8BAAsB,YAAY;IAC9B,SAAS,CAAC,SAAS,EAAE;QACjB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAA;KAC9B,CAAK;IACN,SAAS,CAAC,IAAI,EAAE,OAAO,CAAQ;IAC/B,SAAS,CAAC,gBAAgB,EAAE,QAAQ,CAAK;IACzC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAA;IACvB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAK;IAEhC;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,IAAI,IAAI;IAEzC;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI;IAElC;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI;IAElC;;;OAGG;IACH,KAAK;IAOL;;OAEG;IACH,OAAO;IAOP;;;;;;;OAOG;IACH,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,MAAM;IAU3G;;;;;OAKG;IACH,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM;IAepC;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAInD;;;;;;;;;OASG;IACH,WAAW,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE;IAI1C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAEpF;;;;;;;;;;OAUG;IACH,UAAU;IAIV;;;;;;;;;OASG;IACH,YAAY;IAIZ;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,SAAS,CAAC,MAAM,EAAE,QAAQ;IAiB1B;;;;OAIG;IACH,IAAI,OAAO,IAAI,QAAQ,CAEtB;CACJ"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Container, FederatedPointerEvent } from 'pixi.js';
|
|
2
|
+
import { Directive } from '../engine/directive';
|
|
3
|
+
import { Element } from '../engine/reactive';
|
|
4
|
+
import { SignalOrPrimitive } from '../components/types';
|
|
5
|
+
export type DragProps = {
|
|
6
|
+
move?: (event: FederatedPointerEvent) => void;
|
|
7
|
+
start?: () => void;
|
|
8
|
+
end?: () => void;
|
|
9
|
+
snap?: SignalOrPrimitive<number>;
|
|
10
|
+
direction?: SignalOrPrimitive<'x' | 'y' | 'all'>;
|
|
11
|
+
keyToPress?: SignalOrPrimitive<string[]>;
|
|
12
|
+
viewport?: {
|
|
13
|
+
edgeThreshold?: SignalOrPrimitive<number>;
|
|
14
|
+
maxSpeed?: SignalOrPrimitive<number>;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export declare class Drop extends Directive {
|
|
18
|
+
private elementRef;
|
|
19
|
+
onInit(element: Element<Container>): void;
|
|
20
|
+
onMount(element: Element<Container>): void;
|
|
21
|
+
onUpdate(): void;
|
|
22
|
+
onDestroy(): void;
|
|
23
|
+
}
|
|
24
|
+
export declare class Drag extends Directive {
|
|
25
|
+
private elementRef;
|
|
26
|
+
private stageRef;
|
|
27
|
+
private offsetInParent;
|
|
28
|
+
private isDragging;
|
|
29
|
+
private viewport;
|
|
30
|
+
private animationFrameId;
|
|
31
|
+
private lastPointerPosition;
|
|
32
|
+
private pressedKeys;
|
|
33
|
+
private pointerIsDown;
|
|
34
|
+
private onDragMoveHandler;
|
|
35
|
+
private onDragEndHandler;
|
|
36
|
+
private onDragStartHandler;
|
|
37
|
+
private onKeyDownHandler;
|
|
38
|
+
private onKeyUpHandler;
|
|
39
|
+
private subscriptions;
|
|
40
|
+
onInit(element: Element<Container>): void;
|
|
41
|
+
onMount(element: Element<Container>): void;
|
|
42
|
+
get dragProps(): any;
|
|
43
|
+
get axis(): {
|
|
44
|
+
x: boolean;
|
|
45
|
+
y: boolean;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Updates element position when dragging and starts continuous viewport movement
|
|
49
|
+
* @param event The pointer event that triggered the drag move
|
|
50
|
+
*/
|
|
51
|
+
private onDragMove;
|
|
52
|
+
/**
|
|
53
|
+
* Moves the viewport if the dragged element is near screen edges
|
|
54
|
+
* @param globalPosition The global pointer position
|
|
55
|
+
*/
|
|
56
|
+
private updateViewportPosition;
|
|
57
|
+
/**
|
|
58
|
+
* Handles drag end event and stops viewport movement
|
|
59
|
+
*/
|
|
60
|
+
private onDragEnd;
|
|
61
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
62
|
+
onKeyUp(event: KeyboardEvent): void;
|
|
63
|
+
private areRequiredKeysPressed;
|
|
64
|
+
private onPointerDown;
|
|
65
|
+
private startDrag;
|
|
66
|
+
onUpdate(props: any): void;
|
|
67
|
+
onDestroy(): void;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=Drag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Drag.d.ts","sourceRoot":"","sources":["../../src/directives/Drag.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAoB,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAqB,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAK7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,MAAM,SAAS,GAAG;IACpB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC9C,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,iBAAiB,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;IACjD,UAAU,CAAC,EAAE,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE;QACP,aAAa,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1C,QAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;KACxC,CAAC;CACL,CAAA;AAED,qBAAa,IAAK,SAAQ,SAAS;IAC/B,OAAO,CAAC,UAAU,CAAmC;IAErD,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;IAIlC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;IAInC,QAAQ;IAER,SAAS;CAGZ;AAED,qBAAa,IAAK,SAAQ,SAAS;IAC/B,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,iBAAiB,CAAoD;IAC7E,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,kBAAkB,CAAoD;IAC9E,OAAO,CAAC,gBAAgB,CAA4C;IACpE,OAAO,CAAC,cAAc,CAA4C;IAElE,OAAO,CAAC,aAAa,CAAsB;IAE3C,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;IASlC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;IA6CnC,IAAI,SAAS,QAaZ;IAED,IAAI,IAAI;;;MAaP;IAED;;;OAGG;IACH,OAAO,CAAC,UAAU;IA2ClB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA4D9B;;OAEG;IACH,OAAO,CAAC,SAAS;IAejB,SAAS,CAAC,KAAK,EAAE,aAAa;IAS9B,OAAO,CAAC,KAAK,EAAE,aAAa;IAQ5B,OAAO,CAAC,sBAAsB;IAqC9B,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,SAAS;IASjB,QAAQ,CAAC,KAAK,KAAA;IAOd,SAAS;CAqBZ"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { Container } from 'pixi.js';
|
|
2
|
+
import { Directive } from '../engine/directive';
|
|
3
|
+
import { Element } from '../engine/reactive';
|
|
4
|
+
import { Trigger } from '../engine/trigger';
|
|
5
|
+
import { SignalOrPrimitive } from '../components/types';
|
|
6
|
+
export type FlashType = 'alpha' | 'tint' | 'both';
|
|
7
|
+
export type FlashProps = {
|
|
8
|
+
/**
|
|
9
|
+
* Trigger that activates the flash animation
|
|
10
|
+
* When the trigger is activated, the flash animation will start
|
|
11
|
+
*/
|
|
12
|
+
trigger?: Trigger<any>;
|
|
13
|
+
/**
|
|
14
|
+
* Type of flash effect: 'alpha' (opacity), 'tint' (color), or 'both'
|
|
15
|
+
* @default 'alpha'
|
|
16
|
+
*/
|
|
17
|
+
type?: SignalOrPrimitive<FlashType>;
|
|
18
|
+
/**
|
|
19
|
+
* Duration of the flash animation in milliseconds
|
|
20
|
+
* @default 300
|
|
21
|
+
*/
|
|
22
|
+
duration?: SignalOrPrimitive<number>;
|
|
23
|
+
/**
|
|
24
|
+
* Number of flash cycles (flash on/off)
|
|
25
|
+
* @default 1
|
|
26
|
+
*/
|
|
27
|
+
cycles?: SignalOrPrimitive<number>;
|
|
28
|
+
/**
|
|
29
|
+
* Alpha value when flashing (0 to 1)
|
|
30
|
+
* Only used when type is 'alpha' or 'both'
|
|
31
|
+
* @default 0.3
|
|
32
|
+
*/
|
|
33
|
+
alpha?: SignalOrPrimitive<number>;
|
|
34
|
+
/**
|
|
35
|
+
* Tint color when flashing (hex color value)
|
|
36
|
+
* Only used when type is 'tint' or 'both'
|
|
37
|
+
* @default 0xffffff (white)
|
|
38
|
+
*/
|
|
39
|
+
tint?: SignalOrPrimitive<number>;
|
|
40
|
+
/**
|
|
41
|
+
* Original alpha value to restore after flash
|
|
42
|
+
* If not provided, uses the current alpha value
|
|
43
|
+
*/
|
|
44
|
+
originalAlpha?: number;
|
|
45
|
+
/**
|
|
46
|
+
* Original tint value to restore after flash
|
|
47
|
+
* If not provided, uses the current tint value
|
|
48
|
+
*/
|
|
49
|
+
originalTint?: number;
|
|
50
|
+
/**
|
|
51
|
+
* Callback function called when flash starts
|
|
52
|
+
*/
|
|
53
|
+
onStart?: () => void;
|
|
54
|
+
/**
|
|
55
|
+
* Callback function called when flash completes
|
|
56
|
+
*/
|
|
57
|
+
onComplete?: () => void;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Flash directive that animates a display object's alpha and/or tint when a trigger is activated.
|
|
61
|
+
* Creates a flash effect by rapidly changing opacity or color.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* // Basic usage with trigger
|
|
66
|
+
* const flashTrigger = trigger();
|
|
67
|
+
*
|
|
68
|
+
* onMount(element) {
|
|
69
|
+
* // Element will flash when trigger is activated
|
|
70
|
+
* element.props.flash = { trigger: flashTrigger };
|
|
71
|
+
* }
|
|
72
|
+
*
|
|
73
|
+
* // Trigger the flash
|
|
74
|
+
* flashTrigger.start();
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export declare class Flash extends Directive {
|
|
78
|
+
private elementRef;
|
|
79
|
+
private progressSignal;
|
|
80
|
+
private flashSubscription;
|
|
81
|
+
private alphaEffect;
|
|
82
|
+
private tintEffect;
|
|
83
|
+
private originalAlpha;
|
|
84
|
+
private originalTint;
|
|
85
|
+
private currentFlashConfig;
|
|
86
|
+
/**
|
|
87
|
+
* Initializes the flash directive
|
|
88
|
+
* @param element - The element to attach the flash effect to
|
|
89
|
+
*/
|
|
90
|
+
onInit(element: Element<Container>): void;
|
|
91
|
+
/**
|
|
92
|
+
* Mounts the flash directive and sets up trigger listener
|
|
93
|
+
* @param element - The element being mounted
|
|
94
|
+
*/
|
|
95
|
+
onMount(element: Element<Container>): void;
|
|
96
|
+
/**
|
|
97
|
+
* Gets the flash props with default values
|
|
98
|
+
* @returns FlashProps with defaults applied
|
|
99
|
+
*/
|
|
100
|
+
get flashProps(): FlashProps;
|
|
101
|
+
/**
|
|
102
|
+
* Performs the flash animation using animatedSignal
|
|
103
|
+
* @param data - Optional data passed from the trigger that can override default options
|
|
104
|
+
*/
|
|
105
|
+
private performFlash;
|
|
106
|
+
/**
|
|
107
|
+
* Updates the flash directive when props change
|
|
108
|
+
* @param props - Updated props
|
|
109
|
+
*/
|
|
110
|
+
onUpdate(props: any): void;
|
|
111
|
+
/**
|
|
112
|
+
* Cleans up the flash directive
|
|
113
|
+
*/
|
|
114
|
+
onDestroy(): void;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=Flash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Flash.d.ts","sourceRoot":"","sources":["../../src/directives/Flash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,SAAS,EAAqB,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAiB,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACrC;;;OAGG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACnC;;;;OAIG;IACH,KAAK,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAClC;;;;OAIG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,KAAM,SAAQ,SAAS;IAChC,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,kBAAkB,CAMV;IAEhB;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;IAIlC;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;IAgCnC;;;OAGG;IACH,IAAI,UAAU,IAAI,UAAU,CAS3B;IAED;;;OAGG;YACW,YAAY;IAgM1B;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG;IAUnB;;OAEG;IACH,SAAS;CA4CZ"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Directive } from '../engine/directive';
|
|
2
|
+
import { Element } from '../engine/reactive';
|
|
3
|
+
import { CanvasFocusContainer } from '../components/FocusContainer';
|
|
4
|
+
/**
|
|
5
|
+
* FocusNavigation directive for wiring Controls with FocusContainer
|
|
6
|
+
*
|
|
7
|
+
* This directive integrates with the Controls system and lets external
|
|
8
|
+
* control handlers update the FocusContainer tabindex signal.
|
|
9
|
+
*
|
|
10
|
+
* The directive is automatically applied when a FocusContainer has a `controls` prop.
|
|
11
|
+
* It keeps the Controls directive in sync with the provided controls config.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* // Automatic navigation with Controls
|
|
16
|
+
* <FocusContainer tabindex={0} controls={controlsConfig}>
|
|
17
|
+
* <Button tabindex={0} text="Button 1" />
|
|
18
|
+
* <Button tabindex={1} text="Button 2" />
|
|
19
|
+
* </FocusContainer>
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare class FocusNavigationDirective extends Directive {
|
|
23
|
+
private element;
|
|
24
|
+
private controlsDirective;
|
|
25
|
+
private controlsSubscription;
|
|
26
|
+
/**
|
|
27
|
+
* Initialize the focus navigation directive
|
|
28
|
+
*
|
|
29
|
+
* @param element - FocusContainer element
|
|
30
|
+
*/
|
|
31
|
+
onInit(element: Element<CanvasFocusContainer>): void;
|
|
32
|
+
/**
|
|
33
|
+
* Mount hook
|
|
34
|
+
*
|
|
35
|
+
* @param element - FocusContainer element
|
|
36
|
+
*/
|
|
37
|
+
onMount(element: Element<CanvasFocusContainer>): void;
|
|
38
|
+
/**
|
|
39
|
+
* Update hook
|
|
40
|
+
*
|
|
41
|
+
* @param props - Updated properties
|
|
42
|
+
* @param element - FocusContainer element
|
|
43
|
+
*/
|
|
44
|
+
onUpdate(props: any, element: Element<CanvasFocusContainer>): void;
|
|
45
|
+
/**
|
|
46
|
+
* Destroy hook
|
|
47
|
+
*
|
|
48
|
+
* @param element - FocusContainer element
|
|
49
|
+
*/
|
|
50
|
+
onDestroy(element: Element<CanvasFocusContainer>): void;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=FocusNavigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FocusNavigation.d.ts","sourceRoot":"","sources":["../../src/directives/FocusNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqC,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAIlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,wBAAyB,SAAQ,SAAS;IACrD,OAAO,CAAC,OAAO,CAA8C;IAC7D,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,oBAAoB,CAAa;IAEzC;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAI7C;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAmC9C;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAU3D;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC;CAUjD"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Container } from 'pixi.js';
|
|
2
|
+
import { SignalOrPrimitive } from '../components/types';
|
|
3
|
+
import { Directive } from '../engine/directive';
|
|
4
|
+
import { Element } from '../engine/reactive';
|
|
5
|
+
export type FogVisibilityState = "visible" | "explored" | "unknown";
|
|
6
|
+
export type FogVisibilityMode = "visible" | "explored";
|
|
7
|
+
export type FogVisibilityHideAs = "visible" | "alpha";
|
|
8
|
+
export type FogVisibilityController = {
|
|
9
|
+
version?: () => number;
|
|
10
|
+
clarityAt?: (x: number, y: number) => number;
|
|
11
|
+
isVisibleAt?: (x: number, y: number, threshold?: number) => boolean;
|
|
12
|
+
isExploredAt?: (x: number, y: number) => boolean;
|
|
13
|
+
stateAt?: (x: number, y: number, clearThreshold?: number) => FogVisibilityState | string;
|
|
14
|
+
};
|
|
15
|
+
export type FogVisibilityPoint = {
|
|
16
|
+
x: SignalOrPrimitive<number>;
|
|
17
|
+
y: SignalOrPrimitive<number>;
|
|
18
|
+
};
|
|
19
|
+
export type FogVisibilityProps = {
|
|
20
|
+
controller?: SignalOrPrimitive<FogVisibilityController | null | undefined>;
|
|
21
|
+
mode?: SignalOrPrimitive<FogVisibilityMode>;
|
|
22
|
+
threshold?: SignalOrPrimitive<number>;
|
|
23
|
+
point?: SignalOrPrimitive<FogVisibilityPoint>;
|
|
24
|
+
hideAs?: SignalOrPrimitive<FogVisibilityHideAs>;
|
|
25
|
+
hiddenAlpha?: SignalOrPrimitive<number>;
|
|
26
|
+
sampleHz?: SignalOrPrimitive<number>;
|
|
27
|
+
};
|
|
28
|
+
export declare class FogVisibility extends Directive {
|
|
29
|
+
private elementRef;
|
|
30
|
+
private tickSubscription;
|
|
31
|
+
private sampleAccumulatorMs;
|
|
32
|
+
private managesAlpha;
|
|
33
|
+
onInit(element: Element<Container>): void;
|
|
34
|
+
onMount(element: Element<Container>): void;
|
|
35
|
+
onUpdate(): void;
|
|
36
|
+
onDestroy(): void;
|
|
37
|
+
private bindTick;
|
|
38
|
+
private resolveSignalValue;
|
|
39
|
+
private readOptions;
|
|
40
|
+
private readBaseVisible;
|
|
41
|
+
private readBaseAlpha;
|
|
42
|
+
private samplePoint;
|
|
43
|
+
private resolveVisibleState;
|
|
44
|
+
private resolveExploredState;
|
|
45
|
+
private evaluateVisibility;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=FogVisibility.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FogVisibility.d.ts","sourceRoot":"","sources":["../../src/directives/FogVisibility.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAqB,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,CAAC;AACvD,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,OAAO,CAAC;AAEtD,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACpE,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,KAAK,kBAAkB,GAAG,MAAM,CAAC;CAC1F,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,iBAAiB,CAAC,uBAAuB,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC3E,IAAI,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IAChD,WAAW,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;CACtC,CAAC;AAeF,qBAAa,aAAc,SAAQ,SAAS;IAC1C,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,YAAY,CAAS;IAE7B,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;IAIlC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;IAMnC,QAAQ;IAKR,SAAS;IAiBT,OAAO,CAAC,QAAQ;IAqBhB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,WAAW;IA2CnB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,kBAAkB;CA+C3B"}
|