exodeui 6.3.13 → 6.3.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.
- package/dist/index.js +32 -30
- package/dist/index.mjs +3204 -2195
- package/dist/src/engine.d.ts +24 -0
- package/dist/src/types.d.ts +62 -3
- package/dist/src/utils/text.d.ts +3 -0
- package/package.json +1 -1
package/dist/src/engine.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export declare class ExodeUIEngine {
|
|
|
17
17
|
private maskCtx;
|
|
18
18
|
private lumaBuffer;
|
|
19
19
|
private lumaCtx;
|
|
20
|
+
private _noiseTileCanvas;
|
|
20
21
|
private layout;
|
|
21
22
|
private onTrigger?;
|
|
22
23
|
private onInputUpdate?;
|
|
@@ -47,6 +48,9 @@ export declare class ExodeUIEngine {
|
|
|
47
48
|
private _totalScroll;
|
|
48
49
|
private draggingBehaviors;
|
|
49
50
|
private isMouseDown;
|
|
51
|
+
private _layoutAnimCache;
|
|
52
|
+
private _springChainState;
|
|
53
|
+
private _emitterPools;
|
|
50
54
|
private objectVelocities;
|
|
51
55
|
private currentTime;
|
|
52
56
|
private frameCount;
|
|
@@ -151,6 +155,7 @@ export declare class ExodeUIEngine {
|
|
|
151
155
|
private handlePointerEvent;
|
|
152
156
|
handleKeyDown(e: KeyboardEvent): void;
|
|
153
157
|
private fireEventForObject;
|
|
158
|
+
private fireAnalyticsEvent;
|
|
154
159
|
private initGlobalAnimationTriggers;
|
|
155
160
|
private triggerGlobalAnimation;
|
|
156
161
|
private handleAnimationFinished;
|
|
@@ -179,6 +184,17 @@ export declare class ExodeUIEngine {
|
|
|
179
184
|
private applyAbsoluteTransform;
|
|
180
185
|
private applyObjectTransform;
|
|
181
186
|
private applyArtEffectOverlay;
|
|
187
|
+
/** Helper: shift the hue of a hex/hsl color by degrees, return as hsla */
|
|
188
|
+
private _shiftHue;
|
|
189
|
+
/**
|
|
190
|
+
* Simulate CSS `backdrop-filter: blur()` + glass overlay on Canvas2D.
|
|
191
|
+
* Since real backdrop-filter is not available in canvas, we:
|
|
192
|
+
* 1. Sample the canvas pixels behind this object's bounding box
|
|
193
|
+
* 2. Draw them into an offscreen canvas and apply a blur filter
|
|
194
|
+
* 3. Clip to the object shape and paint the blurred backdrop
|
|
195
|
+
* 4. Apply the overlay color tint, sheen highlight, noise grain, and glass border
|
|
196
|
+
*/
|
|
197
|
+
private applyBackgroundBlurGlass;
|
|
182
198
|
private applyPath;
|
|
183
199
|
private _tracePath;
|
|
184
200
|
private renderInputBox;
|
|
@@ -187,6 +203,11 @@ export declare class ExodeUIEngine {
|
|
|
187
203
|
private renderButton;
|
|
188
204
|
private renderToggleButton;
|
|
189
205
|
private renderToggle;
|
|
206
|
+
private renderCheckbox;
|
|
207
|
+
private renderRadioGroup;
|
|
208
|
+
private renderBarChart;
|
|
209
|
+
private renderPieChart;
|
|
210
|
+
private getRadioGroupItemIndexAtPointer;
|
|
190
211
|
private renderLineGraph;
|
|
191
212
|
private _catmullRom;
|
|
192
213
|
private normalizeOpacity;
|
|
@@ -199,6 +220,9 @@ export declare class ExodeUIEngine {
|
|
|
199
220
|
private drawListViewRect;
|
|
200
221
|
private solveBehaviors;
|
|
201
222
|
private applyBehaviorSensor;
|
|
223
|
+
private getObjectProperty;
|
|
224
|
+
private setObjectProperty;
|
|
225
|
+
private applyEasing;
|
|
202
226
|
private lerp;
|
|
203
227
|
private deepMerge;
|
|
204
228
|
private renderFittedImage;
|
package/dist/src/types.d.ts
CHANGED
|
@@ -166,6 +166,22 @@ export interface Adjustments {
|
|
|
166
166
|
shadows?: number;
|
|
167
167
|
blur?: number;
|
|
168
168
|
}
|
|
169
|
+
export interface AnalyticsParameter {
|
|
170
|
+
key: string;
|
|
171
|
+
value: string;
|
|
172
|
+
type: 'literal' | 'variable';
|
|
173
|
+
}
|
|
174
|
+
export interface AnalyticsConfig {
|
|
175
|
+
isEnabled: boolean;
|
|
176
|
+
eventName: string;
|
|
177
|
+
triggerType: 'click' | 'hover' | 'visible';
|
|
178
|
+
platforms: {
|
|
179
|
+
ga4: boolean;
|
|
180
|
+
meta: boolean;
|
|
181
|
+
mixpanel: boolean;
|
|
182
|
+
};
|
|
183
|
+
parameters: AnalyticsParameter[];
|
|
184
|
+
}
|
|
169
185
|
export interface Style {
|
|
170
186
|
fill?: Fill;
|
|
171
187
|
stroke?: {
|
|
@@ -191,6 +207,7 @@ export interface Style {
|
|
|
191
207
|
liquidFill?: LiquidFillConfig;
|
|
192
208
|
artEffect?: ArtEffectConfig;
|
|
193
209
|
palette?: string[];
|
|
210
|
+
analytics?: AnalyticsConfig;
|
|
194
211
|
}
|
|
195
212
|
export type Geometry = {
|
|
196
213
|
type: 'Rectangle';
|
|
@@ -232,6 +249,7 @@ export type Geometry = {
|
|
|
232
249
|
textDecoration?: 'none' | 'underline' | 'line-through';
|
|
233
250
|
textCase?: 'none' | 'uppercase' | 'lowercase' | 'capitalize';
|
|
234
251
|
paragraphSpacing?: number;
|
|
252
|
+
paragraphIndent?: number;
|
|
235
253
|
textInputId?: string;
|
|
236
254
|
segments?: {
|
|
237
255
|
text: string;
|
|
@@ -260,6 +278,38 @@ export type Geometry = {
|
|
|
260
278
|
isEnabled: boolean;
|
|
261
279
|
};
|
|
262
280
|
fontStyle?: 'normal' | 'italic';
|
|
281
|
+
isPointText?: boolean;
|
|
282
|
+
autoHeight?: boolean;
|
|
283
|
+
padding?: {
|
|
284
|
+
top?: number;
|
|
285
|
+
right?: number;
|
|
286
|
+
bottom?: number;
|
|
287
|
+
left?: number;
|
|
288
|
+
};
|
|
289
|
+
smallCaps?: boolean;
|
|
290
|
+
baselineShift?: number;
|
|
291
|
+
hyphenation?: boolean;
|
|
292
|
+
composer?: 'single-line' | 'every-line';
|
|
293
|
+
balanceRaggedLines?: boolean;
|
|
294
|
+
kerning?: 'auto' | 'optical' | 'manual' | 'none';
|
|
295
|
+
kerningValue?: number;
|
|
296
|
+
justifyMinWordSpacing?: number;
|
|
297
|
+
justifyMaxWordSpacing?: number;
|
|
298
|
+
justifyMinLetterSpacing?: number;
|
|
299
|
+
justifyMaxLetterSpacing?: number;
|
|
300
|
+
paragraphRule?: {
|
|
301
|
+
top?: {
|
|
302
|
+
width: number;
|
|
303
|
+
color: string;
|
|
304
|
+
offset: number;
|
|
305
|
+
};
|
|
306
|
+
bottom?: {
|
|
307
|
+
width: number;
|
|
308
|
+
color: string;
|
|
309
|
+
offset: number;
|
|
310
|
+
};
|
|
311
|
+
};
|
|
312
|
+
pathFlip?: boolean;
|
|
263
313
|
} | {
|
|
264
314
|
type: 'Triangle';
|
|
265
315
|
width: number;
|
|
@@ -398,7 +448,13 @@ export declare enum BehaviorType {
|
|
|
398
448
|
Lens = "Lens",
|
|
399
449
|
Gravity = "Gravity",
|
|
400
450
|
Velocity = "Velocity",
|
|
401
|
-
Shear = "Shear"
|
|
451
|
+
Shear = "Shear",
|
|
452
|
+
LayoutAnimation = "LayoutAnimation",
|
|
453
|
+
SpringChain = "SpringChain",
|
|
454
|
+
ParticleEmitter = "ParticleEmitter",
|
|
455
|
+
StateReactive = "StateReactive",
|
|
456
|
+
Fold = "Fold",
|
|
457
|
+
Crumple = "Crumple"
|
|
402
458
|
}
|
|
403
459
|
export declare enum BehaviorSensor {
|
|
404
460
|
Scale = "Scale",
|
|
@@ -498,7 +554,7 @@ export interface Constraint {
|
|
|
498
554
|
mass?: number;
|
|
499
555
|
}
|
|
500
556
|
export interface ShapeObject {
|
|
501
|
-
type: 'Shape' | 'Group' | 'Component' | 'Frame' | 'Button' | 'Bone' | 'Toggle' | 'Slider' | 'Dropdown' | 'ListView';
|
|
557
|
+
type: 'Shape' | 'Group' | 'Component' | 'Frame' | 'Button' | 'Bone' | 'Toggle' | 'Slider' | 'Dropdown' | 'ListView' | 'Checkbox' | 'RadioGroup' | 'BarChart' | 'PieChart';
|
|
502
558
|
id: string;
|
|
503
559
|
name: string;
|
|
504
560
|
transform: Transform;
|
|
@@ -701,7 +757,10 @@ export declare enum LogicOp {
|
|
|
701
757
|
IS_MOUSE_DOWN = "IS_MOUSE_DOWN",
|
|
702
758
|
EFFECTOR = "EFFECTOR",
|
|
703
759
|
MONITOR = "MONITOR",
|
|
704
|
-
DELAY = "DELAY"
|
|
760
|
+
DELAY = "DELAY",
|
|
761
|
+
SPRING_PULL = "SPRING_PULL",
|
|
762
|
+
SPRING_SETTLE = "SPRING_SETTLE",
|
|
763
|
+
EMIT = "EMIT"
|
|
705
764
|
}
|
|
706
765
|
export interface LogicNode {
|
|
707
766
|
id: string;
|
package/dist/src/utils/text.d.ts
CHANGED
|
@@ -12,6 +12,9 @@ export interface TextMeasurementOptions {
|
|
|
12
12
|
textCase?: 'uppercase' | 'lowercase' | 'capitalize' | 'none';
|
|
13
13
|
segments?: any[];
|
|
14
14
|
enableSegments?: boolean;
|
|
15
|
+
hyphenation?: boolean;
|
|
16
|
+
composer?: 'single-line' | 'every-line';
|
|
17
|
+
balanceRaggedLines?: boolean;
|
|
15
18
|
}
|
|
16
19
|
export declare function measureText(options: TextMeasurementOptions): {
|
|
17
20
|
width: number;
|