@dotcraft/avatar 0.6.3 → 0.6.5
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/LICENSE +201 -201
- package/README.md +46 -43
- package/dist/accessories.css +14 -14
- package/dist/avatar.css +62 -62
- package/dist/composer/ComposerMascot.d.ts +1 -1
- package/dist/composer/ComposerMascot.d.ts.map +1 -1
- package/dist/composer/ComposerMascot.js +33 -107
- package/dist/composer/ComposerMascot.js.map +1 -1
- package/dist/composer/MascotIdleStage.d.ts +11 -0
- package/dist/composer/MascotIdleStage.d.ts.map +1 -0
- package/dist/composer/MascotIdleStage.js +9 -0
- package/dist/composer/MascotIdleStage.js.map +1 -0
- package/dist/composer/constants.d.ts +12 -1
- package/dist/composer/constants.d.ts.map +1 -1
- package/dist/composer/constants.js +9 -4
- package/dist/composer/constants.js.map +1 -1
- package/dist/composer/styles/energy.css +99 -99
- package/dist/composer/styles/expressions.css +20 -20
- package/dist/composer/styles/feedback.css +188 -188
- package/dist/composer/styles/focus.css +72 -72
- package/dist/composer/styles/foundation.css +301 -287
- package/dist/composer/styles/idle.css +449 -438
- package/dist/composer/styles/overdrive.css +264 -264
- package/dist/composer/styles/props.css +21 -21
- package/dist/composer/types.d.ts +1 -0
- package/dist/composer/types.d.ts.map +1 -1
- package/dist/composer/useComposerAvatarBehavior.d.ts +1 -0
- package/dist/composer/useComposerAvatarBehavior.d.ts.map +1 -1
- package/dist/composer/useComposerAvatarBehavior.js +2 -2
- package/dist/composer/useComposerAvatarBehavior.js.map +1 -1
- package/dist/composer/useMascotActiveIdle.d.ts +33 -0
- package/dist/composer/useMascotActiveIdle.d.ts.map +1 -0
- package/dist/composer/useMascotActiveIdle.js +128 -0
- package/dist/composer/useMascotActiveIdle.js.map +1 -0
- package/dist/react.d.ts +5 -0
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +4 -0
- package/dist/react.js.map +1 -1
- package/dist/rig.css +265 -265
- package/dist/styles.css +13 -13
- package/package.json +56 -55
- package/src/AnimatedDecoration.tsx +43 -0
- package/src/AppearanceRig.tsx +15 -0
- package/src/Avatar.tsx +85 -0
- package/src/DecorationShapes.tsx +8 -0
- package/src/Decorations.tsx +31 -0
- package/src/Faces.tsx +37 -0
- package/src/HatDecorations.tsx +75 -0
- package/src/HeldDecorations.tsx +48 -0
- package/src/MascotRig.tsx +191 -0
- package/src/ObjectDecorations.tsx +55 -0
- package/src/accessories.css +14 -0
- package/src/appearanceModel.ts +65 -0
- package/src/avatar.css +62 -0
- package/src/characters.ts +5 -0
- package/src/composer/ComposerMascot.tsx +445 -0
- package/src/composer/ComposerMascotShadow.tsx +5 -0
- package/src/composer/MascotIdleStage.tsx +23 -0
- package/src/composer/constants.ts +89 -0
- package/src/composer/mascotHandoff.ts +19 -0
- package/src/composer/styles/energy.css +99 -0
- package/src/composer/styles/expressions.css +20 -0
- package/src/composer/styles/feedback.css +188 -0
- package/src/composer/styles/focus.css +72 -0
- package/src/composer/styles/foundation.css +301 -0
- package/src/composer/styles/idle.css +449 -0
- package/src/composer/styles/overdrive.css +264 -0
- package/src/composer/styles/props.css +21 -0
- package/src/composer/types.ts +32 -0
- package/src/composer/useComposerAvatarBehavior.ts +98 -0
- package/src/composer/useComposerMotion.ts +15 -0
- package/src/composer/useComposerProfile.ts +50 -0
- package/src/composer/useMascotActiveIdle.ts +170 -0
- package/src/decorationCatalog.ts +45 -0
- package/src/decorationMotion.ts +68 -0
- package/src/environment.ts +46 -0
- package/src/index.ts +5 -0
- package/src/palette.ts +52 -0
- package/src/react.ts +11 -0
- package/src/rig.css +265 -0
- package/src/styles.css +13 -0
- package/src/useEventReplay.ts +13 -0
- package/src/useGesture.ts +51 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type AnimationEvent } from 'react';
|
|
2
|
+
import { type MascotActiveIdle, type MascotActiveIdleMotion, type MascotActiveIdlePhase, type MascotActiveIdlePlan, type MascotIdleDirection } from './constants.js';
|
|
3
|
+
export interface MascotActiveIdleAttributes {
|
|
4
|
+
'data-mascot-active-idle'?: MascotActiveIdleMotion;
|
|
5
|
+
'data-mascot-idle-phase'?: MascotActiveIdlePhase;
|
|
6
|
+
'data-mascot-idle-direction'?: MascotIdleDirection;
|
|
7
|
+
'data-mascot-idle-travel'?: MascotIdleDirection;
|
|
8
|
+
}
|
|
9
|
+
export interface MascotActiveIdleOptions {
|
|
10
|
+
/** True while the character is free to wander: idle, awake, unfocused, and motion allowed. */
|
|
11
|
+
enabled: boolean;
|
|
12
|
+
onStart?: () => void;
|
|
13
|
+
/** Runs on user activity, before the schedule-reset throttle. */
|
|
14
|
+
onActivity?: () => void;
|
|
15
|
+
/** Decides direction and motion pool at launch; `null` skips this round. */
|
|
16
|
+
plan?: () => MascotActiveIdlePlan | null;
|
|
17
|
+
/** Whether pointer movement aborts a trip in flight; it always defers the next one. */
|
|
18
|
+
interruptOnPointerMove?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface MascotActiveIdleHandle {
|
|
21
|
+
activeIdle: MascotActiveIdle | null;
|
|
22
|
+
activityRevision: number;
|
|
23
|
+
className: 'composer-mascot-active-idle' | undefined;
|
|
24
|
+
attributes: MascotActiveIdleAttributes;
|
|
25
|
+
cancel: () => void;
|
|
26
|
+
onAnimationEnd: (event: AnimationEvent<Element>) => void;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Schedules the traveling idle antics (hop, rocket, hover) after a quiet stretch. Any host that
|
|
30
|
+
* renders the stage classes (see MascotIdleStage) can spread the returned attributes on its root.
|
|
31
|
+
*/
|
|
32
|
+
export declare function useMascotActiveIdle(options: MascotActiveIdleOptions): MascotActiveIdleHandle;
|
|
33
|
+
//# sourceMappingURL=useMascotActiveIdle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMascotActiveIdle.d.ts","sourceRoot":"","sources":["../../src/composer/useMascotActiveIdle.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,cAAc,EAAE,MAAM,OAAO,CAAA;AACrF,OAAO,EAOL,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,gBAAgB,CAAA;AAEvB,MAAM,WAAW,0BAA0B;IACzC,yBAAyB,CAAC,EAAE,sBAAsB,CAAA;IAClD,wBAAwB,CAAC,EAAE,qBAAqB,CAAA;IAChD,4BAA4B,CAAC,EAAE,mBAAmB,CAAA;IAClD,yBAAyB,CAAC,EAAE,mBAAmB,CAAA;CAChD;AAED,MAAM,WAAW,uBAAuB;IACtC,8FAA8F;IAC9F,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,oBAAoB,GAAG,IAAI,CAAA;IACxC,uFAAuF;IACvF,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAA;IACnC,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,6BAA6B,GAAG,SAAS,CAAA;IACpD,UAAU,EAAE,0BAA0B,CAAA;IACtC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,cAAc,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;CACzD;AAsBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CAsG5F"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { MASCOT_ACTIVE_IDLE_ACTIVITY_THROTTLE_MS, MASCOT_ACTIVE_IDLE_HOLD_MS, MASCOT_ACTIVE_IDLE_JITTER_MS, MASCOT_ACTIVE_IDLE_MIN_MS, MASCOT_ACTIVE_IDLE_TRAVEL_MS, pickMascotActiveIdle } from './constants.js';
|
|
3
|
+
const RETRY_MS = 5000;
|
|
4
|
+
const LEG_SETTLE_MS = 160;
|
|
5
|
+
function opposite(direction) {
|
|
6
|
+
return direction === 'left' ? 'right' : 'left';
|
|
7
|
+
}
|
|
8
|
+
function finisherOf(trip) {
|
|
9
|
+
if (trip.motion === 'hop')
|
|
10
|
+
return 'composer-mascot-idle-hop-travel';
|
|
11
|
+
if (trip.motion === 'rocket')
|
|
12
|
+
return 'composer-mascot-idle-rocket-flight-x';
|
|
13
|
+
return trip.phase === 'outbound' ? 'composer-mascot-idle-hover-launch-body' : 'composer-mascot-idle-hover-land-body';
|
|
14
|
+
}
|
|
15
|
+
function advance(trip) {
|
|
16
|
+
if (!trip)
|
|
17
|
+
return null;
|
|
18
|
+
if (trip.phase === 'outbound')
|
|
19
|
+
return { ...trip, phase: 'away' };
|
|
20
|
+
if (trip.phase === 'away')
|
|
21
|
+
return { ...trip, phase: 'inbound', travel: opposite(trip.direction) };
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Schedules the traveling idle antics (hop, rocket, hover) after a quiet stretch. Any host that
|
|
26
|
+
* renders the stage classes (see MascotIdleStage) can spread the returned attributes on its root.
|
|
27
|
+
*/
|
|
28
|
+
export function useMascotActiveIdle(options) {
|
|
29
|
+
const { enabled, interruptOnPointerMove = true } = options;
|
|
30
|
+
const [activeIdle, setActiveIdle] = useState(null);
|
|
31
|
+
const [activityRevision, setActivityRevision] = useState(0);
|
|
32
|
+
const optionsRef = useRef(options);
|
|
33
|
+
optionsRef.current = options;
|
|
34
|
+
const activeRef = useRef(activeIdle);
|
|
35
|
+
activeRef.current = activeIdle;
|
|
36
|
+
const lastActivityRef = useRef(0);
|
|
37
|
+
const lastMotionRef = useRef(null);
|
|
38
|
+
const cancel = useCallback(() => setActiveIdle(null), []);
|
|
39
|
+
const markActivity = useCallback((interrupt) => {
|
|
40
|
+
if (interrupt)
|
|
41
|
+
setActiveIdle(null);
|
|
42
|
+
optionsRef.current.onActivity?.();
|
|
43
|
+
const now = Date.now();
|
|
44
|
+
if (now - lastActivityRef.current < MASCOT_ACTIVE_IDLE_ACTIVITY_THROTTLE_MS)
|
|
45
|
+
return;
|
|
46
|
+
lastActivityRef.current = now;
|
|
47
|
+
setActivityRevision((value) => value + 1);
|
|
48
|
+
}, []);
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
const interrupt = () => markActivity(true);
|
|
51
|
+
const pointerMove = () => {
|
|
52
|
+
if (Date.now() - lastActivityRef.current >= MASCOT_ACTIVE_IDLE_ACTIVITY_THROTTLE_MS) {
|
|
53
|
+
markActivity(interruptOnPointerMove);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
window.addEventListener('keydown', interrupt);
|
|
57
|
+
window.addEventListener('pointerdown', interrupt);
|
|
58
|
+
window.addEventListener('pointermove', pointerMove, { passive: true });
|
|
59
|
+
window.addEventListener('wheel', interrupt, { passive: true });
|
|
60
|
+
window.addEventListener('focusin', interrupt);
|
|
61
|
+
return () => {
|
|
62
|
+
window.removeEventListener('keydown', interrupt);
|
|
63
|
+
window.removeEventListener('pointerdown', interrupt);
|
|
64
|
+
window.removeEventListener('pointermove', pointerMove);
|
|
65
|
+
window.removeEventListener('wheel', interrupt);
|
|
66
|
+
window.removeEventListener('focusin', interrupt);
|
|
67
|
+
};
|
|
68
|
+
}, [markActivity, interruptOnPointerMove]);
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
if (!enabled) {
|
|
71
|
+
setActiveIdle(null);
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
let timer = 0;
|
|
75
|
+
const wait = () => MASCOT_ACTIVE_IDLE_MIN_MS + Math.random() * MASCOT_ACTIVE_IDLE_JITTER_MS;
|
|
76
|
+
const start = () => {
|
|
77
|
+
if (document.hidden || activeRef.current) {
|
|
78
|
+
timer = window.setTimeout(start, RETRY_MS);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const plan = optionsRef.current.plan?.();
|
|
82
|
+
if (plan === null) {
|
|
83
|
+
timer = window.setTimeout(start, wait());
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const motion = pickMascotActiveIdle(Math.random(), lastMotionRef.current, plan?.motions);
|
|
87
|
+
lastMotionRef.current = motion;
|
|
88
|
+
optionsRef.current.onStart?.();
|
|
89
|
+
const direction = plan?.direction ?? 'left';
|
|
90
|
+
setActiveIdle({ motion, phase: 'outbound', direction, travel: direction });
|
|
91
|
+
};
|
|
92
|
+
timer = window.setTimeout(start, wait());
|
|
93
|
+
return () => window.clearTimeout(timer);
|
|
94
|
+
}, [enabled, activityRevision]);
|
|
95
|
+
useEffect(() => {
|
|
96
|
+
if (!activeIdle)
|
|
97
|
+
return undefined;
|
|
98
|
+
const delay = activeIdle.phase === 'away'
|
|
99
|
+
? MASCOT_ACTIVE_IDLE_HOLD_MS[activeIdle.motion]
|
|
100
|
+
: MASCOT_ACTIVE_IDLE_TRAVEL_MS[activeIdle.motion] + LEG_SETTLE_MS;
|
|
101
|
+
const timer = window.setTimeout(() => setActiveIdle(advance), delay);
|
|
102
|
+
return () => window.clearTimeout(timer);
|
|
103
|
+
}, [activeIdle]);
|
|
104
|
+
const onAnimationEnd = useCallback((event) => {
|
|
105
|
+
setActiveIdle((current) => {
|
|
106
|
+
if (!current || event.animationName !== finisherOf(current))
|
|
107
|
+
return current;
|
|
108
|
+
return current.phase === 'outbound' ? { ...current, phase: 'away' } : null;
|
|
109
|
+
});
|
|
110
|
+
}, []);
|
|
111
|
+
const attributes = activeIdle
|
|
112
|
+
? {
|
|
113
|
+
'data-mascot-active-idle': activeIdle.motion,
|
|
114
|
+
'data-mascot-idle-phase': activeIdle.phase,
|
|
115
|
+
'data-mascot-idle-direction': activeIdle.direction,
|
|
116
|
+
'data-mascot-idle-travel': activeIdle.travel
|
|
117
|
+
}
|
|
118
|
+
: {};
|
|
119
|
+
return {
|
|
120
|
+
activeIdle,
|
|
121
|
+
activityRevision,
|
|
122
|
+
className: activeIdle ? 'composer-mascot-active-idle' : undefined,
|
|
123
|
+
attributes,
|
|
124
|
+
cancel,
|
|
125
|
+
onAnimationEnd
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=useMascotActiveIdle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMascotActiveIdle.js","sourceRoot":"","sources":["../../src/composer/useMascotActiveIdle.ts"],"names":[],"mappings":"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"}
|
package/dist/react.d.ts
CHANGED
|
@@ -3,4 +3,9 @@ export { DecorationSwatch, PrimaryDecoration, SecondaryDecoration } from './Deco
|
|
|
3
3
|
export { ComposerMascot } from './composer/ComposerMascot.js';
|
|
4
4
|
export type { ComposerMascotProps, ComposerMascotContext, MascotExpression, MascotLight } from './composer/types.js';
|
|
5
5
|
export { ComposerMascotShadow } from './composer/ComposerMascotShadow.js';
|
|
6
|
+
export { useComposerAvatarBehavior } from './composer/useComposerAvatarBehavior.js';
|
|
7
|
+
export { useMascotActiveIdle, type MascotActiveIdleAttributes, type MascotActiveIdleHandle, type MascotActiveIdleOptions } from './composer/useMascotActiveIdle.js';
|
|
8
|
+
export { MascotIdleStage } from './composer/MascotIdleStage.js';
|
|
9
|
+
export { MASCOT_SLEEP_AFTER_MS } from './composer/constants.js';
|
|
10
|
+
export type { MascotActiveIdle, MascotActiveIdleMotion, MascotActiveIdlePhase, MascotActiveIdlePlan, MascotIdleDirection } from './composer/constants.js';
|
|
6
11
|
//# sourceMappingURL=react.d.ts.map
|
package/dist/react.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACpG,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3F,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,YAAY,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACpH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA"}
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACpG,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3F,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,YAAY,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACpH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAA;AACnF,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,KAAK,sBAAsB,EAAE,KAAK,uBAAuB,EAAE,MAAM,mCAAmC,CAAA;AACnK,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA"}
|
package/dist/react.js
CHANGED
|
@@ -2,4 +2,8 @@ export { Avatar, AppearanceAvatar } from './Avatar.js';
|
|
|
2
2
|
export { DecorationSwatch, PrimaryDecoration, SecondaryDecoration } from './Decorations.js';
|
|
3
3
|
export { ComposerMascot } from './composer/ComposerMascot.js';
|
|
4
4
|
export { ComposerMascotShadow } from './composer/ComposerMascotShadow.js';
|
|
5
|
+
export { useComposerAvatarBehavior } from './composer/useComposerAvatarBehavior.js';
|
|
6
|
+
export { useMascotActiveIdle } from './composer/useMascotActiveIdle.js';
|
|
7
|
+
export { MascotIdleStage } from './composer/MascotIdleStage.js';
|
|
8
|
+
export { MASCOT_SLEEP_AFTER_MS } from './composer/constants.js';
|
|
5
9
|
//# sourceMappingURL=react.js.map
|
package/dist/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAgD,MAAM,aAAa,CAAA;AACpG,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3F,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA"}
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAgD,MAAM,aAAa,CAAA;AACpG,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3F,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAA;AACnF,OAAO,EAAE,mBAAmB,EAA8F,MAAM,mCAAmC,CAAA;AACnK,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA"}
|