@jamesyong42/infinite-canvas 1.2.0 → 1.3.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/README.md +65 -0
- package/dist/advanced.cjs +61 -24
- package/dist/advanced.cjs.map +1 -1
- package/dist/advanced.d.cts +180 -64
- package/dist/advanced.d.cts.map +1 -1
- package/dist/advanced.d.mts +180 -64
- package/dist/advanced.d.mts.map +1 -1
- package/dist/advanced.mjs +29 -12
- package/dist/advanced.mjs.map +1 -1
- package/dist/devtools.cjs +22 -22
- package/dist/devtools.cjs.map +1 -1
- package/dist/devtools.d.cts +2 -2
- package/dist/devtools.d.cts.map +1 -1
- package/dist/devtools.d.mts +2 -2
- package/dist/devtools.d.mts.map +1 -1
- package/dist/devtools.mjs +2 -2
- package/dist/devtools.mjs.map +1 -1
- package/dist/{hooks-BwY7rRHg.mjs → ecs-3kimUV5Z.mjs} +238 -74
- package/dist/ecs-3kimUV5Z.mjs.map +1 -0
- package/dist/{hooks-DHShH86C.cjs → ecs-B4QrqfvQ.cjs} +320 -108
- package/dist/ecs-B4QrqfvQ.cjs.map +1 -0
- package/dist/hooks-CtP02JNt.cjs +3762 -0
- package/dist/hooks-CtP02JNt.cjs.map +1 -0
- package/dist/hooks-gsQDDE56.mjs +3494 -0
- package/dist/hooks-gsQDDE56.mjs.map +1 -0
- package/dist/index-3GY7T8JM.d.mts +480 -0
- package/dist/index-3GY7T8JM.d.mts.map +1 -0
- package/dist/index-B7B1tRPl.d.cts +480 -0
- package/dist/index-B7B1tRPl.d.cts.map +1 -0
- package/dist/index-DSdbSQ_t.d.cts +1451 -0
- package/dist/index-DSdbSQ_t.d.cts.map +1 -0
- package/dist/index-Dj9odADH.d.mts +1451 -0
- package/dist/index-Dj9odADH.d.mts.map +1 -0
- package/dist/index.cjs +3865 -643
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +315 -138
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +315 -138
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +3767 -571
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/SelectionRenderer-CR2PBQwx.d.cts +0 -105
- package/dist/SelectionRenderer-CR2PBQwx.d.cts.map +0 -1
- package/dist/SelectionRenderer-DlsBstAq.d.mts +0 -105
- package/dist/SelectionRenderer-DlsBstAq.d.mts.map +0 -1
- package/dist/WebGLWidgetLayer-BBMuwzHq.cjs +0 -3560
- package/dist/WebGLWidgetLayer-BBMuwzHq.cjs.map +0 -1
- package/dist/WebGLWidgetLayer-C3p1tnpm.mjs +0 -3375
- package/dist/WebGLWidgetLayer-C3p1tnpm.mjs.map +0 -1
- package/dist/engine-BfbvWXSk.d.mts +0 -982
- package/dist/engine-BfbvWXSk.d.mts.map +0 -1
- package/dist/engine-CCjuFMC-.d.cts +0 -982
- package/dist/engine-CCjuFMC-.d.cts.map +0 -1
- package/dist/hooks-BwY7rRHg.mjs.map +0 -1
- package/dist/hooks-DHShH86C.cjs.map +0 -1
package/package.json
CHANGED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { F as DomWidgetProps, L as R3FWidgetProps, b as EqualSpacingIndicator, n as LayoutEngine, x as SnapGuide } from "./engine-CCjuFMC-.cjs";
|
|
2
|
-
import { EntityId } from "@jamesyong42/reactive-ecs";
|
|
3
|
-
import * as _$react from "react";
|
|
4
|
-
import * as THREE from "three";
|
|
5
|
-
|
|
6
|
-
//#region src/react/context.d.ts
|
|
7
|
-
declare const EngineProvider: _$react.Provider<LayoutEngine | null>;
|
|
8
|
-
declare const ContainerRefProvider: _$react.Provider<_$react.RefObject<HTMLDivElement | null> | null>;
|
|
9
|
-
declare function useContainerRef(): React.RefObject<HTMLDivElement | null> | null;
|
|
10
|
-
/**
|
|
11
|
-
* Returns the LayoutEngine instance from the nearest InfiniteCanvas context.
|
|
12
|
-
* Throws if used outside an InfiniteCanvas provider.
|
|
13
|
-
*/
|
|
14
|
-
declare function useLayoutEngine(): LayoutEngine;
|
|
15
|
-
/**
|
|
16
|
-
* Discriminated resolution of a widget by type. The surface determines which
|
|
17
|
-
* layer renders the component and with what prop shape.
|
|
18
|
-
*/
|
|
19
|
-
type ResolvedWidget = {
|
|
20
|
-
surface: 'dom';
|
|
21
|
-
component: React.ComponentType<DomWidgetProps>;
|
|
22
|
-
} | {
|
|
23
|
-
surface: 'webgl';
|
|
24
|
-
component: React.ComponentType<R3FWidgetProps>;
|
|
25
|
-
};
|
|
26
|
-
type WidgetResolver = (entityId: EntityId, widgetType: string) => ResolvedWidget | null;
|
|
27
|
-
declare const WidgetResolverProvider: _$react.Provider<WidgetResolver | null>;
|
|
28
|
-
declare function useWidgetResolver(): WidgetResolver | null;
|
|
29
|
-
//#endregion
|
|
30
|
-
//#region src/react/webgl/GridRenderer.d.ts
|
|
31
|
-
interface GridConfig {
|
|
32
|
-
/** World-unit spacings for up to 3 grid levels [fine, medium, coarse]. */
|
|
33
|
-
spacings: [number, number, number];
|
|
34
|
-
/** Dot RGB color as [r, g, b] in 0–1 range. */
|
|
35
|
-
dotColor: [number, number, number];
|
|
36
|
-
/** Base dot opacity multiplier (0–1). */
|
|
37
|
-
dotAlpha: number;
|
|
38
|
-
/** CSS-pixel range where a grid level fades in: [start, end]. */
|
|
39
|
-
fadeIn: [number, number];
|
|
40
|
-
/** CSS-pixel range where a grid level fades out: [start, end]. */
|
|
41
|
-
fadeOut: [number, number];
|
|
42
|
-
/** Dot radius range in CSS pixels [min, max]. Scaled by DPR internally. */
|
|
43
|
-
dotRadius: [number, number];
|
|
44
|
-
/** Per-level opacity weight: level i gets (base + i * step). */
|
|
45
|
-
levelWeight: [number, number];
|
|
46
|
-
}
|
|
47
|
-
declare const DEFAULT_GRID_CONFIG: GridConfig;
|
|
48
|
-
declare class GridRenderer {
|
|
49
|
-
private renderer;
|
|
50
|
-
private scene;
|
|
51
|
-
private camera;
|
|
52
|
-
private material;
|
|
53
|
-
private mesh;
|
|
54
|
-
constructor(canvas: HTMLCanvasElement);
|
|
55
|
-
/** Apply a (partial) grid config. Only provided fields are updated. */
|
|
56
|
-
setConfig(config: Partial<GridConfig>): void;
|
|
57
|
-
setSize(width: number, height: number, dpr?: number): void;
|
|
58
|
-
render(cameraX: number, cameraY: number, zoom: number): void;
|
|
59
|
-
dispose(): void;
|
|
60
|
-
/** Expose for future WebGL widget rendering */
|
|
61
|
-
getWebGLRenderer(): THREE.WebGLRenderer;
|
|
62
|
-
}
|
|
63
|
-
//#endregion
|
|
64
|
-
//#region src/react/webgl/SelectionRenderer.d.ts
|
|
65
|
-
interface SelectionConfig {
|
|
66
|
-
/** Selection outline color [r,g,b] 0-1. Default: Figma blue. */
|
|
67
|
-
outlineColor: [number, number, number];
|
|
68
|
-
/** Selection outline width in screen px. */
|
|
69
|
-
outlineWidth: number;
|
|
70
|
-
/** Hover outline color [r,g,b] 0-1. */
|
|
71
|
-
hoverColor: [number, number, number];
|
|
72
|
-
/** Hover outline width in screen px. */
|
|
73
|
-
hoverWidth: number;
|
|
74
|
-
/** Handle size in screen px. */
|
|
75
|
-
handleSize: number;
|
|
76
|
-
/** Handle fill color [r,g,b] 0-1 (white). */
|
|
77
|
-
handleFill: [number, number, number];
|
|
78
|
-
/** Handle border color [r,g,b] 0-1 (same as outline). */
|
|
79
|
-
handleBorder: [number, number, number];
|
|
80
|
-
/** Handle border width in screen px. */
|
|
81
|
-
handleBorderWidth: number;
|
|
82
|
-
/** Group bbox dash length in screen px (0 = solid). */
|
|
83
|
-
groupDash: number;
|
|
84
|
-
}
|
|
85
|
-
declare const DEFAULT_SELECTION_CONFIG: SelectionConfig;
|
|
86
|
-
interface SelectionBounds {
|
|
87
|
-
x: number;
|
|
88
|
-
y: number;
|
|
89
|
-
width: number;
|
|
90
|
-
height: number;
|
|
91
|
-
}
|
|
92
|
-
declare class SelectionRenderer {
|
|
93
|
-
private material;
|
|
94
|
-
private mesh;
|
|
95
|
-
private scene;
|
|
96
|
-
private camera;
|
|
97
|
-
constructor();
|
|
98
|
-
setConfig(config: Partial<SelectionConfig>): void;
|
|
99
|
-
setSize(resolution: THREE.Vector2, dpr: number): void;
|
|
100
|
-
render(renderer: THREE.WebGLRenderer, cameraX: number, cameraY: number, zoom: number, selected: SelectionBounds[], hovered: SelectionBounds | null, guides?: SnapGuide[], spacings?: EqualSpacingIndicator[]): void;
|
|
101
|
-
dispose(): void;
|
|
102
|
-
}
|
|
103
|
-
//#endregion
|
|
104
|
-
export { DEFAULT_GRID_CONFIG as a, ContainerRefProvider as c, WidgetResolverProvider as d, useContainerRef as f, SelectionRenderer as i, EngineProvider as l, useWidgetResolver as m, SelectionBounds as n, GridConfig as o, useLayoutEngine as p, SelectionConfig as r, GridRenderer as s, DEFAULT_SELECTION_CONFIG as t, ResolvedWidget as u };
|
|
105
|
-
//# sourceMappingURL=SelectionRenderer-CR2PBQwx.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionRenderer-CR2PBQwx.d.cts","names":[],"sources":["../src/react/context.ts","../src/react/webgl/GridRenderer.ts","../src/react/webgl/SelectionRenderer.ts"],"mappings":";;;;;;cASa,cAAA,EAAc,OAAA,CAAA,QAAA,CAAA,YAAA;AAAA,cAOd,oBAAA,EAAoB,OAAA,CAAA,QAAA,CAAA,OAAA,CAAA,SAAA,CAAA,cAAA;AAAA,iBAEjB,eAAA,CAAA,GAAmB,KAAA,CAAM,SAAA,CAAU,cAAA;AATnD;;;;AAAA,iBAiBgB,eAAA,CAAA,GAAmB,YAAA;;;;;KAgBvB,cAAA;EACP,OAAA;EAAgB,SAAA,EAAW,KAAA,CAAM,aAAA,CAAc,cAAA;AAAA;EAC/C,OAAA;EAAkB,SAAA,EAAW,KAAA,CAAM,aAAA,CAAc,cAAA;AAAA;AAAA,KAE1C,cAAA,IAAkB,QAAA,EAAU,QAAA,EAAU,UAAA,aAAuB,cAAA;AAAA,cAI5D,sBAAA,EAAsB,OAAA,CAAA,QAAA,CAAA,cAAA;AAAA,iBAEnB,iBAAA,CAAA,GAAqB,cAAA;;;UChDpB,UAAA;;EAEhB,QAAA;;EAEA,QAAA;EDCY;ECCZ,QAAA;;EAEA,MAAA;EDH0B;ECK1B,OAAA;EDE+D;ECA/D,SAAA;EDAgC;ECEhC,WAAA;AAAA;AAAA,cAGY,mBAAA,EAAqB,UAAA;AAAA,cAoFrB,YAAA;EAAA,QACJ,QAAA;EAAA,QACA,KAAA;EAAA,QACA,MAAA;EAAA,QACA,QAAA;EAAA,QACA,IAAA;cAEI,MAAA,EAAQ,iBAAA;ED9FU;EC8I9B,SAAA,CAAU,MAAA,EAAQ,OAAA,CAAQ,UAAA;EAW1B,OAAA,CAAQ,KAAA,UAAe,MAAA,UAAgB,GAAA;EAQvC,MAAA,CAAO,OAAA,UAAiB,OAAA,UAAiB,IAAA;EAOzC,OAAA,CAAA;EDxKkD;EC+KlD,gBAAA,CAAA,GAAoB,KAAA,CAAM,aAAA;AAAA;;;UC3LV,eAAA;;EAEhB,YAAA;;EAEA,YAAA;EFDmD;EEGnD,UAAA;EFH0B;EEK1B,UAAA;EFEY;EEAZ,UAAA;;EAEA,UAAA;EFFgC;EEIhC,YAAA;EFJgC;EEMhC,iBAAA;EFNgC;EEQhC,SAAA;AAAA;AAAA,cAGY,wBAAA,EAA0B,eAAA;AAAA,UActB,eAAA;EAChB,CAAA;EACA,CAAA;EACA,KAAA;EACA,MAAA;AAAA;AAAA,cAoOY,iBAAA;EAAA,QACJ,QAAA;EAAA,QACA,IAAA;EAAA,QACA,KAAA;EAAA,QACA,MAAA;;EAsDR,SAAA,CAAU,MAAA,EAAQ,OAAA,CAAQ,eAAA;EAc1B,OAAA,CAAQ,UAAA,EAAY,KAAA,CAAM,OAAA,EAAS,GAAA;EAKnC,MAAA,CACC,QAAA,EAAU,KAAA,CAAM,aAAA,EAChB,OAAA,UACA,OAAA,UACA,IAAA,UACA,QAAA,EAAU,eAAA,IACV,OAAA,EAAS,eAAA,SACT,MAAA,GAAQ,SAAA,IACR,QAAA,GAAU,qBAAA;EAiFX,OAAA,CAAA;AAAA"}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { F as DomWidgetProps, L as R3FWidgetProps, b as EqualSpacingIndicator, n as LayoutEngine, x as SnapGuide } from "./engine-BfbvWXSk.mjs";
|
|
2
|
-
import { EntityId } from "@jamesyong42/reactive-ecs";
|
|
3
|
-
import * as _$react from "react";
|
|
4
|
-
import * as THREE from "three";
|
|
5
|
-
|
|
6
|
-
//#region src/react/context.d.ts
|
|
7
|
-
declare const EngineProvider: _$react.Provider<LayoutEngine | null>;
|
|
8
|
-
declare const ContainerRefProvider: _$react.Provider<_$react.RefObject<HTMLDivElement | null> | null>;
|
|
9
|
-
declare function useContainerRef(): React.RefObject<HTMLDivElement | null> | null;
|
|
10
|
-
/**
|
|
11
|
-
* Returns the LayoutEngine instance from the nearest InfiniteCanvas context.
|
|
12
|
-
* Throws if used outside an InfiniteCanvas provider.
|
|
13
|
-
*/
|
|
14
|
-
declare function useLayoutEngine(): LayoutEngine;
|
|
15
|
-
/**
|
|
16
|
-
* Discriminated resolution of a widget by type. The surface determines which
|
|
17
|
-
* layer renders the component and with what prop shape.
|
|
18
|
-
*/
|
|
19
|
-
type ResolvedWidget = {
|
|
20
|
-
surface: 'dom';
|
|
21
|
-
component: React.ComponentType<DomWidgetProps>;
|
|
22
|
-
} | {
|
|
23
|
-
surface: 'webgl';
|
|
24
|
-
component: React.ComponentType<R3FWidgetProps>;
|
|
25
|
-
};
|
|
26
|
-
type WidgetResolver = (entityId: EntityId, widgetType: string) => ResolvedWidget | null;
|
|
27
|
-
declare const WidgetResolverProvider: _$react.Provider<WidgetResolver | null>;
|
|
28
|
-
declare function useWidgetResolver(): WidgetResolver | null;
|
|
29
|
-
//#endregion
|
|
30
|
-
//#region src/react/webgl/GridRenderer.d.ts
|
|
31
|
-
interface GridConfig {
|
|
32
|
-
/** World-unit spacings for up to 3 grid levels [fine, medium, coarse]. */
|
|
33
|
-
spacings: [number, number, number];
|
|
34
|
-
/** Dot RGB color as [r, g, b] in 0–1 range. */
|
|
35
|
-
dotColor: [number, number, number];
|
|
36
|
-
/** Base dot opacity multiplier (0–1). */
|
|
37
|
-
dotAlpha: number;
|
|
38
|
-
/** CSS-pixel range where a grid level fades in: [start, end]. */
|
|
39
|
-
fadeIn: [number, number];
|
|
40
|
-
/** CSS-pixel range where a grid level fades out: [start, end]. */
|
|
41
|
-
fadeOut: [number, number];
|
|
42
|
-
/** Dot radius range in CSS pixels [min, max]. Scaled by DPR internally. */
|
|
43
|
-
dotRadius: [number, number];
|
|
44
|
-
/** Per-level opacity weight: level i gets (base + i * step). */
|
|
45
|
-
levelWeight: [number, number];
|
|
46
|
-
}
|
|
47
|
-
declare const DEFAULT_GRID_CONFIG: GridConfig;
|
|
48
|
-
declare class GridRenderer {
|
|
49
|
-
private renderer;
|
|
50
|
-
private scene;
|
|
51
|
-
private camera;
|
|
52
|
-
private material;
|
|
53
|
-
private mesh;
|
|
54
|
-
constructor(canvas: HTMLCanvasElement);
|
|
55
|
-
/** Apply a (partial) grid config. Only provided fields are updated. */
|
|
56
|
-
setConfig(config: Partial<GridConfig>): void;
|
|
57
|
-
setSize(width: number, height: number, dpr?: number): void;
|
|
58
|
-
render(cameraX: number, cameraY: number, zoom: number): void;
|
|
59
|
-
dispose(): void;
|
|
60
|
-
/** Expose for future WebGL widget rendering */
|
|
61
|
-
getWebGLRenderer(): THREE.WebGLRenderer;
|
|
62
|
-
}
|
|
63
|
-
//#endregion
|
|
64
|
-
//#region src/react/webgl/SelectionRenderer.d.ts
|
|
65
|
-
interface SelectionConfig {
|
|
66
|
-
/** Selection outline color [r,g,b] 0-1. Default: Figma blue. */
|
|
67
|
-
outlineColor: [number, number, number];
|
|
68
|
-
/** Selection outline width in screen px. */
|
|
69
|
-
outlineWidth: number;
|
|
70
|
-
/** Hover outline color [r,g,b] 0-1. */
|
|
71
|
-
hoverColor: [number, number, number];
|
|
72
|
-
/** Hover outline width in screen px. */
|
|
73
|
-
hoverWidth: number;
|
|
74
|
-
/** Handle size in screen px. */
|
|
75
|
-
handleSize: number;
|
|
76
|
-
/** Handle fill color [r,g,b] 0-1 (white). */
|
|
77
|
-
handleFill: [number, number, number];
|
|
78
|
-
/** Handle border color [r,g,b] 0-1 (same as outline). */
|
|
79
|
-
handleBorder: [number, number, number];
|
|
80
|
-
/** Handle border width in screen px. */
|
|
81
|
-
handleBorderWidth: number;
|
|
82
|
-
/** Group bbox dash length in screen px (0 = solid). */
|
|
83
|
-
groupDash: number;
|
|
84
|
-
}
|
|
85
|
-
declare const DEFAULT_SELECTION_CONFIG: SelectionConfig;
|
|
86
|
-
interface SelectionBounds {
|
|
87
|
-
x: number;
|
|
88
|
-
y: number;
|
|
89
|
-
width: number;
|
|
90
|
-
height: number;
|
|
91
|
-
}
|
|
92
|
-
declare class SelectionRenderer {
|
|
93
|
-
private material;
|
|
94
|
-
private mesh;
|
|
95
|
-
private scene;
|
|
96
|
-
private camera;
|
|
97
|
-
constructor();
|
|
98
|
-
setConfig(config: Partial<SelectionConfig>): void;
|
|
99
|
-
setSize(resolution: THREE.Vector2, dpr: number): void;
|
|
100
|
-
render(renderer: THREE.WebGLRenderer, cameraX: number, cameraY: number, zoom: number, selected: SelectionBounds[], hovered: SelectionBounds | null, guides?: SnapGuide[], spacings?: EqualSpacingIndicator[]): void;
|
|
101
|
-
dispose(): void;
|
|
102
|
-
}
|
|
103
|
-
//#endregion
|
|
104
|
-
export { DEFAULT_GRID_CONFIG as a, ContainerRefProvider as c, WidgetResolverProvider as d, useContainerRef as f, SelectionRenderer as i, EngineProvider as l, useWidgetResolver as m, SelectionBounds as n, GridConfig as o, useLayoutEngine as p, SelectionConfig as r, GridRenderer as s, DEFAULT_SELECTION_CONFIG as t, ResolvedWidget as u };
|
|
105
|
-
//# sourceMappingURL=SelectionRenderer-DlsBstAq.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionRenderer-DlsBstAq.d.mts","names":[],"sources":["../src/react/context.ts","../src/react/webgl/GridRenderer.ts","../src/react/webgl/SelectionRenderer.ts"],"mappings":";;;;;;cASa,cAAA,EAAc,OAAA,CAAA,QAAA,CAAA,YAAA;AAAA,cAOd,oBAAA,EAAoB,OAAA,CAAA,QAAA,CAAA,OAAA,CAAA,SAAA,CAAA,cAAA;AAAA,iBAEjB,eAAA,CAAA,GAAmB,KAAA,CAAM,SAAA,CAAU,cAAA;AATnD;;;;AAAA,iBAiBgB,eAAA,CAAA,GAAmB,YAAA;;;;;KAgBvB,cAAA;EACP,OAAA;EAAgB,SAAA,EAAW,KAAA,CAAM,aAAA,CAAc,cAAA;AAAA;EAC/C,OAAA;EAAkB,SAAA,EAAW,KAAA,CAAM,aAAA,CAAc,cAAA;AAAA;AAAA,KAE1C,cAAA,IAAkB,QAAA,EAAU,QAAA,EAAU,UAAA,aAAuB,cAAA;AAAA,cAI5D,sBAAA,EAAsB,OAAA,CAAA,QAAA,CAAA,cAAA;AAAA,iBAEnB,iBAAA,CAAA,GAAqB,cAAA;;;UChDpB,UAAA;;EAEhB,QAAA;;EAEA,QAAA;EDCY;ECCZ,QAAA;;EAEA,MAAA;EDH0B;ECK1B,OAAA;EDE+D;ECA/D,SAAA;EDAgC;ECEhC,WAAA;AAAA;AAAA,cAGY,mBAAA,EAAqB,UAAA;AAAA,cAoFrB,YAAA;EAAA,QACJ,QAAA;EAAA,QACA,KAAA;EAAA,QACA,MAAA;EAAA,QACA,QAAA;EAAA,QACA,IAAA;cAEI,MAAA,EAAQ,iBAAA;ED9FU;EC8I9B,SAAA,CAAU,MAAA,EAAQ,OAAA,CAAQ,UAAA;EAW1B,OAAA,CAAQ,KAAA,UAAe,MAAA,UAAgB,GAAA;EAQvC,MAAA,CAAO,OAAA,UAAiB,OAAA,UAAiB,IAAA;EAOzC,OAAA,CAAA;EDxKkD;EC+KlD,gBAAA,CAAA,GAAoB,KAAA,CAAM,aAAA;AAAA;;;UC3LV,eAAA;;EAEhB,YAAA;;EAEA,YAAA;EFDmD;EEGnD,UAAA;EFH0B;EEK1B,UAAA;EFEY;EEAZ,UAAA;;EAEA,UAAA;EFFgC;EEIhC,YAAA;EFJgC;EEMhC,iBAAA;EFNgC;EEQhC,SAAA;AAAA;AAAA,cAGY,wBAAA,EAA0B,eAAA;AAAA,UActB,eAAA;EAChB,CAAA;EACA,CAAA;EACA,KAAA;EACA,MAAA;AAAA;AAAA,cAoOY,iBAAA;EAAA,QACJ,QAAA;EAAA,QACA,IAAA;EAAA,QACA,KAAA;EAAA,QACA,MAAA;;EAsDR,SAAA,CAAU,MAAA,EAAQ,OAAA,CAAQ,eAAA;EAc1B,OAAA,CAAQ,UAAA,EAAY,KAAA,CAAM,OAAA,EAAS,GAAA;EAKnC,MAAA,CACC,QAAA,EAAU,KAAA,CAAM,aAAA,EAChB,OAAA,UACA,OAAA,UACA,IAAA,UACA,QAAA,EAAU,eAAA,IACV,OAAA,EAAS,eAAA,SACT,MAAA,GAAQ,SAAA,IACR,QAAA,GAAU,qBAAA;EAiFX,OAAA,CAAA;AAAA"}
|