@epam/ai-dial-celebrations 1.1.6
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/CelebrationEnvironmentContext-BxzY78Zg.js +14 -0
- package/components/CelebrationDecor/CelebrationDecor.d.ts +3 -0
- package/components/CelebrationDecor/CelebrationDecor.d.ts.map +1 -0
- package/components/FlyingCharacters/FlyingCharacters.d.ts +8 -0
- package/components/FlyingCharacters/FlyingCharacters.d.ts.map +1 -0
- package/constants/public-class-names.d.ts +10 -0
- package/constants/public-class-names.d.ts.map +1 -0
- package/context/CelebrationContext.d.ts +7 -0
- package/context/CelebrationContext.d.ts.map +1 -0
- package/context/CelebrationEnvironmentContext.d.ts +19 -0
- package/context/CelebrationEnvironmentContext.d.ts.map +1 -0
- package/flying-characters-2UJGx5Nh.js +36 -0
- package/halloween/components/Halloween/HalloweenBat.d.ts +6 -0
- package/halloween/components/Halloween/HalloweenBat.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenBats.d.ts +5 -0
- package/halloween/components/Halloween/HalloweenBats.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenBowling.d.ts +5 -0
- package/halloween/components/Halloween/HalloweenBowling.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenBurstOverlay.d.ts +10 -0
- package/halloween/components/Halloween/HalloweenBurstOverlay.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenCandy.d.ts +5 -0
- package/halloween/components/Halloween/HalloweenCandy.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenCandyArt.d.ts +13 -0
- package/halloween/components/Halloween/HalloweenCandyArt.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenCat.d.ts +3 -0
- package/halloween/components/Halloween/HalloweenCat.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenCatScene.d.ts +5 -0
- package/halloween/components/Halloween/HalloweenCatScene.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenCornerSpider.d.ts +12 -0
- package/halloween/components/Halloween/HalloweenCornerSpider.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenDecor.d.ts +4 -0
- package/halloween/components/Halloween/HalloweenDecor.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenExtras.d.ts +4 -0
- package/halloween/components/Halloween/HalloweenExtras.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenFootprints.d.ts +5 -0
- package/halloween/components/Halloween/HalloweenFootprints.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenGhost.d.ts +10 -0
- package/halloween/components/Halloween/HalloweenGhost.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenGhosts.d.ts +5 -0
- package/halloween/components/Halloween/HalloweenGhosts.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenMimic.d.ts +5 -0
- package/halloween/components/Halloween/HalloweenMimic.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenMummy.d.ts +5 -0
- package/halloween/components/Halloween/HalloweenMummy.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenNightFlight.d.ts +3 -0
- package/halloween/components/Halloween/HalloweenNightFlight.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenPortal.d.ts +3 -0
- package/halloween/components/Halloween/HalloweenPortal.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenPumpkin.d.ts +3 -0
- package/halloween/components/Halloween/HalloweenPumpkin.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenPumpkinSilk.d.ts +8 -0
- package/halloween/components/Halloween/HalloweenPumpkinSilk.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenRaven.d.ts +5 -0
- package/halloween/components/Halloween/HalloweenRaven.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenRavens.d.ts +5 -0
- package/halloween/components/Halloween/HalloweenRavens.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenSecrets.d.ts +4 -0
- package/halloween/components/Halloween/HalloweenSecrets.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenSpider.d.ts +7 -0
- package/halloween/components/Halloween/HalloweenSpider.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenSpiderTheft.d.ts +5 -0
- package/halloween/components/Halloween/HalloweenSpiderTheft.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenTrain.d.ts +9 -0
- package/halloween/components/Halloween/HalloweenTrain.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenTrainArtwork.d.ts +7 -0
- package/halloween/components/Halloween/HalloweenTrainArtwork.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenWebScene.d.ts +3 -0
- package/halloween/components/Halloween/HalloweenWebScene.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenWitch.d.ts +11 -0
- package/halloween/components/Halloween/HalloweenWitch.d.ts.map +1 -0
- package/halloween/components/Halloween/HalloweenWitches.d.ts +5 -0
- package/halloween/components/Halloween/HalloweenWitches.d.ts.map +1 -0
- package/halloween/constants/halloween.d.ts +76 -0
- package/halloween/constants/halloween.d.ts.map +1 -0
- package/halloween/constants/labels.d.ts +4 -0
- package/halloween/constants/labels.d.ts.map +1 -0
- package/halloween/event.d.ts +11 -0
- package/halloween/event.d.ts.map +1 -0
- package/halloween/index.d.ts +8 -0
- package/halloween/index.d.ts.map +1 -0
- package/halloween/models/labels.d.ts +40 -0
- package/halloween/models/labels.d.ts.map +1 -0
- package/halloween/types/halloween.d.ts +65 -0
- package/halloween/types/halloween.d.ts.map +1 -0
- package/halloween/utils/halloween-bat-animation.d.ts +10 -0
- package/halloween/utils/halloween-bat-animation.d.ts.map +1 -0
- package/halloween/utils/halloween-bat-plan.d.ts +53 -0
- package/halloween/utils/halloween-bat-plan.d.ts.map +1 -0
- package/halloween/utils/halloween-bat-targets.d.ts +13 -0
- package/halloween/utils/halloween-bat-targets.d.ts.map +1 -0
- package/halloween/utils/halloween-bowling.d.ts +24 -0
- package/halloween/utils/halloween-bowling.d.ts.map +1 -0
- package/halloween/utils/halloween-candy-animation.d.ts +4 -0
- package/halloween/utils/halloween-candy-animation.d.ts.map +1 -0
- package/halloween/utils/halloween-candy-plan.d.ts +68 -0
- package/halloween/utils/halloween-candy-plan.d.ts.map +1 -0
- package/halloween/utils/halloween-candy-targets.d.ts +12 -0
- package/halloween/utils/halloween-candy-targets.d.ts.map +1 -0
- package/halloween/utils/halloween-cat-animation.d.ts +11 -0
- package/halloween/utils/halloween-cat-animation.d.ts.map +1 -0
- package/halloween/utils/halloween-cat-plan.d.ts +69 -0
- package/halloween/utils/halloween-cat-plan.d.ts.map +1 -0
- package/halloween/utils/halloween-cat-targets.d.ts +13 -0
- package/halloween/utils/halloween-cat-targets.d.ts.map +1 -0
- package/halloween/utils/halloween-footprint-animation.d.ts +12 -0
- package/halloween/utils/halloween-footprint-animation.d.ts.map +1 -0
- package/halloween/utils/halloween-footprint-plan.d.ts +52 -0
- package/halloween/utils/halloween-footprint-plan.d.ts.map +1 -0
- package/halloween/utils/halloween-footprint-targets.d.ts +22 -0
- package/halloween/utils/halloween-footprint-targets.d.ts.map +1 -0
- package/halloween/utils/halloween-ghost-animation.d.ts +12 -0
- package/halloween/utils/halloween-ghost-animation.d.ts.map +1 -0
- package/halloween/utils/halloween-ghost-plan.d.ts +41 -0
- package/halloween/utils/halloween-ghost-plan.d.ts.map +1 -0
- package/halloween/utils/halloween-ghost-targets.d.ts +12 -0
- package/halloween/utils/halloween-ghost-targets.d.ts.map +1 -0
- package/halloween/utils/halloween-mimic.d.ts +21 -0
- package/halloween/utils/halloween-mimic.d.ts.map +1 -0
- package/halloween/utils/halloween-mummy.d.ts +17 -0
- package/halloween/utils/halloween-mummy.d.ts.map +1 -0
- package/halloween/utils/halloween-portal.d.ts +22 -0
- package/halloween/utils/halloween-portal.d.ts.map +1 -0
- package/halloween/utils/halloween-raven-animation.d.ts +19 -0
- package/halloween/utils/halloween-raven-animation.d.ts.map +1 -0
- package/halloween/utils/halloween-raven-plan.d.ts +68 -0
- package/halloween/utils/halloween-raven-plan.d.ts.map +1 -0
- package/halloween/utils/halloween-raven-targets.d.ts +24 -0
- package/halloween/utils/halloween-raven-targets.d.ts.map +1 -0
- package/halloween/utils/halloween-secret-history.d.ts +8 -0
- package/halloween/utils/halloween-secret-history.d.ts.map +1 -0
- package/halloween/utils/halloween-spider-theft.d.ts +25 -0
- package/halloween/utils/halloween-spider-theft.d.ts.map +1 -0
- package/halloween/utils/halloween-spider-wrap.d.ts +78 -0
- package/halloween/utils/halloween-spider-wrap.d.ts.map +1 -0
- package/halloween/utils/halloween-train.d.ts +29 -0
- package/halloween/utils/halloween-train.d.ts.map +1 -0
- package/halloween/utils/halloween-web-animation.d.ts +10 -0
- package/halloween/utils/halloween-web-animation.d.ts.map +1 -0
- package/halloween/utils/halloween-web-plan.d.ts +46 -0
- package/halloween/utils/halloween-web-plan.d.ts.map +1 -0
- package/halloween/utils/halloween-web-targets.d.ts +10 -0
- package/halloween/utils/halloween-web-targets.d.ts.map +1 -0
- package/halloween/utils/halloween-witch-animation.d.ts +12 -0
- package/halloween/utils/halloween-witch-animation.d.ts.map +1 -0
- package/halloween/utils/halloween-witch-plan.d.ts +69 -0
- package/halloween/utils/halloween-witch-plan.d.ts.map +1 -0
- package/halloween/utils/halloween-witch-targets.d.ts +20 -0
- package/halloween/utils/halloween-witch-targets.d.ts.map +1 -0
- package/halloween/utils/halloween.d.ts +101 -0
- package/halloween/utils/halloween.d.ts.map +1 -0
- package/halloween.js +11671 -0
- package/hooks/useReducedMotion.d.ts +3 -0
- package/hooks/useReducedMotion.d.ts.map +1 -0
- package/index.css +2 -0
- package/index.d.ts +5 -0
- package/index.d.ts.map +1 -0
- package/index.js +146 -0
- package/models/celebration.d.ts +123 -0
- package/models/celebration.d.ts.map +1 -0
- package/new-year/components/NewYear/NewYearDecor.d.ts +4 -0
- package/new-year/components/NewYear/NewYearDecor.d.ts.map +1 -0
- package/new-year/components/NewYear/NewYearParticles.d.ts +10 -0
- package/new-year/components/NewYear/NewYearParticles.d.ts.map +1 -0
- package/new-year/components/NewYear/NewYearSleigh.d.ts +3 -0
- package/new-year/components/NewYear/NewYearSleigh.d.ts.map +1 -0
- package/new-year/components/NewYear/particles.d.ts +5 -0
- package/new-year/components/NewYear/particles.d.ts.map +1 -0
- package/new-year/components/NewYear/types.d.ts +10 -0
- package/new-year/components/NewYear/types.d.ts.map +1 -0
- package/new-year/constants/labels.d.ts +4 -0
- package/new-year/constants/labels.d.ts.map +1 -0
- package/new-year/event.d.ts +4 -0
- package/new-year/event.d.ts.map +1 -0
- package/new-year/index.d.ts +7 -0
- package/new-year/index.d.ts.map +1 -0
- package/new-year/models/labels.d.ts +14 -0
- package/new-year/models/labels.d.ts.map +1 -0
- package/new-year.js +382 -0
- package/package.json +43 -0
- package/utils/celebration-history.d.ts +8 -0
- package/utils/celebration-history.d.ts.map +1 -0
- package/utils/celebration-snapshots.d.ts +21 -0
- package/utils/celebration-snapshots.d.ts.map +1 -0
- package/utils/celebration.d.ts +18 -0
- package/utils/celebration.d.ts.map +1 -0
- package/utils/flying-characters.d.ts +11 -0
- package/utils/flying-characters.d.ts.map +1 -0
- package/utils/host-anchors.d.ts +12 -0
- package/utils/host-anchors.d.ts.map +1 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CelebrationAnchors } from '../../models/celebration';
|
|
2
|
+
import { CelebrationSnapshotTarget } from '../../utils/celebration-snapshots';
|
|
3
|
+
export interface GhostTargets {
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
pumpkin?: CelebrationSnapshotTarget;
|
|
7
|
+
homes: CelebrationSnapshotTarget[];
|
|
8
|
+
}
|
|
9
|
+
export declare const GHOST_HOME_NODE_LIMIT = 60;
|
|
10
|
+
/** Borrow only small idle surfaces, using existing host-addressable page anchors. */
|
|
11
|
+
export declare const getGhostTargets: (anchors: CelebrationAnchors, limit?: number) => GhostTargets;
|
|
12
|
+
//# sourceMappingURL=halloween-ghost-targets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halloween-ghost-targets.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-ghost-targets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAQnF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,KAAK,EAAE,yBAAyB,EAAE,CAAC;CACpC;AAED,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAyBxC,qFAAqF;AACrF,eAAO,MAAM,eAAe,GAC1B,SAAS,kBAAkB,EAC3B,cAAS,KACR,YA4KF,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { CelebrationSnapshotTarget } from '../../utils/celebration-snapshots';
|
|
2
|
+
export interface MimicPlan {
|
|
3
|
+
targets: readonly CelebrationSnapshotTarget[];
|
|
4
|
+
mouth: {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
};
|
|
8
|
+
grab: {
|
|
9
|
+
x: number;
|
|
10
|
+
y: number;
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
};
|
|
14
|
+
length: number;
|
|
15
|
+
angle: number;
|
|
16
|
+
}
|
|
17
|
+
/** Capture a neighboring pair as one bundle centered on the tongue tip. */
|
|
18
|
+
export declare const buildMimicPlan: (targets: readonly CelebrationSnapshotTarget[], stage: DOMRect) => MimicPlan | null;
|
|
19
|
+
/** One progress value drives the tongue, wrapping loop and each captured row. */
|
|
20
|
+
export declare const animateMimic: (plan: MimicPlan, host: HTMLElement, tongue: SVGElement, loop: SVGElement, onStop?: () => void, backGrip?: SVGElement) => (() => void);
|
|
21
|
+
//# sourceMappingURL=halloween-mimic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halloween-mimic.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-mimic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAGnF,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC9C,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,2EAA2E;AAC3E,eAAO,MAAM,cAAc,GACzB,SAAS,SAAS,yBAAyB,EAAE,EAC7C,OAAO,OAAO,KACb,SAAS,GAAG,IAuBd,CAAC;AAUF,iFAAiF;AACjF,eAAO,MAAM,YAAY,GACvB,MAAM,SAAS,EACf,MAAM,WAAW,EACjB,QAAQ,UAAU,EAClB,MAAM,UAAU,EAChB,SAAS,MAAM,IAAI,EACnB,WAAW,UAAU,KACpB,CAAC,MAAM,IAAI,CA+Fb,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CelebrationSnapshotTarget } from '../../utils/celebration-snapshots';
|
|
2
|
+
export declare const MUMMY_ANIMATION_MS = 12000;
|
|
3
|
+
export interface MummyPushLayout {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
width: number;
|
|
7
|
+
direction: 1 | -1;
|
|
8
|
+
entrance: number;
|
|
9
|
+
distance: number;
|
|
10
|
+
}
|
|
11
|
+
/** Read the input library's public class without changing its markup or focus. */
|
|
12
|
+
export declare const getMummyComposerTarget: (wrapperClass: string) => CelebrationSnapshotTarget | null;
|
|
13
|
+
/** Physical geometry also works in RTL: enter from whichever side has room. */
|
|
14
|
+
export declare const buildMummyPushLayout: (rect: DOMRect, viewportWidth: number, viewportHeight: number) => MummyPushLayout;
|
|
15
|
+
/** The same contact trajectory drives both palms and input, including the failed shoves. */
|
|
16
|
+
export declare const animateMummyPush: (target: CelebrationSnapshotTarget, host: HTMLElement, actor: HTMLElement, layout: MummyPushLayout, onStop?: () => void) => (() => void);
|
|
17
|
+
//# sourceMappingURL=halloween-mummy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halloween-mummy.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-mummy.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,mCAAmC,CAAC;AAE3C,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,GACjC,cAAc,MAAM,KACnB,yBAAyB,GAAG,IAwD9B,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,oBAAoB,GAC/B,MAAM,OAAO,EACb,eAAe,MAAM,EACrB,gBAAgB,MAAM,KACrB,eAsCF,CAAC;AAEF,4FAA4F;AAC5F,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,yBAAyB,EACjC,MAAM,WAAW,EACjB,OAAO,WAAW,EAClB,QAAQ,eAAe,EACvB,SAAS,MAAM,IAAI,KAClB,CAAC,MAAM,IAAI,CAqCb,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CelebrationHistoryRow } from '../../utils/celebration-history';
|
|
2
|
+
export interface PortalPoint {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
}
|
|
6
|
+
export interface PortalLayout {
|
|
7
|
+
center: PortalPoint;
|
|
8
|
+
grab: PortalPoint;
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
size: number;
|
|
12
|
+
}
|
|
13
|
+
/** Randomly position the rift inside the viewport, opposite the borrowed rows. */
|
|
14
|
+
export declare const buildPortalLayout: (width: number, height: number, rows: readonly CelebrationHistoryRow[], isMobile: boolean) => PortalLayout;
|
|
15
|
+
/** A random neighbouring pair fits in one claw; never duplicate a short list. */
|
|
16
|
+
export declare const pickPortalRows: (rows: readonly CelebrationHistoryRow[]) => CelebrationHistoryRow[];
|
|
17
|
+
/**
|
|
18
|
+
* Borrow only visual copies. Animation.cancel restores the originals without
|
|
19
|
+
* touching React's DOM ownership, virtual-list layout, data, or focus order.
|
|
20
|
+
*/
|
|
21
|
+
export declare const animatePortalRows: (rows: readonly CelebrationHistoryRow[], host: HTMLElement, destination: PortalPoint) => (() => void);
|
|
22
|
+
//# sourceMappingURL=halloween-portal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halloween-portal.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-portal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AACD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,GAC5B,OAAO,MAAM,EACb,QAAQ,MAAM,EACd,MAAM,SAAS,qBAAqB,EAAE,EACtC,UAAU,OAAO,KAChB,YAkCF,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,cAAc,GAAI,MAAM,SAAS,qBAAqB,EAAE,4BAIpE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,SAAS,qBAAqB,EAAE,EACtC,MAAM,WAAW,EACjB,aAAa,WAAW,KACvB,CAAC,MAAM,IAAI,CA4Hb,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { RavenCargoFrame, RavenPlan } from './halloween-raven-plan';
|
|
2
|
+
interface RavenElements {
|
|
3
|
+
host: HTMLElement;
|
|
4
|
+
copies: HTMLElement;
|
|
5
|
+
birds: HTMLElement[];
|
|
6
|
+
nest: HTMLElement;
|
|
7
|
+
fallback: HTMLElement | null;
|
|
8
|
+
}
|
|
9
|
+
/** Sections and beaks share cargo coordinates, including the two grip endpoints. */
|
|
10
|
+
export declare const ravenSectionTransform: (frame: RavenCargoFrame, section: number, original: {
|
|
11
|
+
left: number;
|
|
12
|
+
top: number;
|
|
13
|
+
width: number;
|
|
14
|
+
height: number;
|
|
15
|
+
}) => string;
|
|
16
|
+
/** One measured plan, one timeline and bounded copies; playback never reads layout. */
|
|
17
|
+
export declare const animateRavens: (plan: RavenPlan, { host, copies, birds, nest, fallback }: RavenElements, onStop: () => void) => (() => void);
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=halloween-raven-animation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halloween-raven-animation.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-raven-animation.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,eAAe,EACpB,KAAK,SAAS,EACf,MAAM,wBAAwB,CAAC;AAGhC,UAAU,aAAa;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;CAC9B;AAED,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,GAChC,OAAO,eAAe,EACtB,SAAS,MAAM,EACf,UAAU;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,WAUvE,CAAC;AAsCF,uFAAuF;AACvF,eAAO,MAAM,aAAa,GACxB,MAAM,SAAS,EACf,yCAAyC,aAAa,EACtD,QAAQ,MAAM,IAAI,KACjB,CAAC,MAAM,IAAI,CAoZb,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { RavenFragment, RavenSurface, RavenTargets } from './halloween-raven-targets';
|
|
2
|
+
export declare const RAVEN_SCENE_MS = 12000;
|
|
3
|
+
export declare const RAVEN_ROW_SECTIONS = 5;
|
|
4
|
+
export declare const RAVEN_GRAB = 0.25;
|
|
5
|
+
export declare const RAVEN_RELEASE = 0.56;
|
|
6
|
+
export declare const RAVEN_SHAKE = 0.77;
|
|
7
|
+
export declare const RAVEN_RESTORE = 0.95;
|
|
8
|
+
export interface RavenPoint {
|
|
9
|
+
x: number;
|
|
10
|
+
y: number;
|
|
11
|
+
}
|
|
12
|
+
export interface RavenFrame extends RavenPoint {
|
|
13
|
+
offset: number;
|
|
14
|
+
rotation: number;
|
|
15
|
+
scale: number;
|
|
16
|
+
opacity: number;
|
|
17
|
+
/** Whether the segment arriving at this keyframe is airborne. */
|
|
18
|
+
flying: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface RavenCargoFrame extends RavenPoint {
|
|
21
|
+
offset: number;
|
|
22
|
+
width: number;
|
|
23
|
+
height: number;
|
|
24
|
+
rotation: number;
|
|
25
|
+
bend: number;
|
|
26
|
+
opacity: number;
|
|
27
|
+
}
|
|
28
|
+
export interface RavenBird {
|
|
29
|
+
facing: number;
|
|
30
|
+
size: number;
|
|
31
|
+
frames: RavenFrame[];
|
|
32
|
+
perch: RavenPoint;
|
|
33
|
+
pickup?: number;
|
|
34
|
+
delivery?: number;
|
|
35
|
+
material?: number;
|
|
36
|
+
}
|
|
37
|
+
export interface RavenFacingFrame {
|
|
38
|
+
offset: number;
|
|
39
|
+
facing: number;
|
|
40
|
+
rotation: number;
|
|
41
|
+
}
|
|
42
|
+
export interface RavenMaterial extends RavenPoint {
|
|
43
|
+
width: number;
|
|
44
|
+
height: number;
|
|
45
|
+
fragment?: RavenFragment;
|
|
46
|
+
color: string;
|
|
47
|
+
background: string;
|
|
48
|
+
}
|
|
49
|
+
export interface RavenPlan {
|
|
50
|
+
width: number;
|
|
51
|
+
height: number;
|
|
52
|
+
nest: RavenPoint;
|
|
53
|
+
nestWidth: number;
|
|
54
|
+
birds: RavenBird[];
|
|
55
|
+
cargo: RavenCargoFrame[];
|
|
56
|
+
materials: RavenMaterial[];
|
|
57
|
+
conversation: RavenSurface | null;
|
|
58
|
+
pumpkin: RavenSurface | null;
|
|
59
|
+
anchors: HTMLElement[];
|
|
60
|
+
active: boolean;
|
|
61
|
+
}
|
|
62
|
+
/** Orient the artwork along both axes; braced birds still face the prize they pull. */
|
|
63
|
+
export declare const ravenFacingFrames: (bird: RavenBird) => RavenFacingFrame[];
|
|
64
|
+
/** Every grip, section and carrier uses this same bowed row, including its rotation. */
|
|
65
|
+
export declare const ravenCargoPoint: (frame: RavenCargoFrame, fraction: number) => RavenPoint;
|
|
66
|
+
/** Geometry and timings are rolled once; the browser runs the resulting keyframes. */
|
|
67
|
+
export declare const buildRavenPlan: (targets: RavenTargets, isMobile: boolean) => RavenPlan;
|
|
68
|
+
//# sourceMappingURL=halloween-raven-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halloween-raven-plan.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-raven-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACb,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,UAAU,OAAO,CAAC;AAC/B,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,WAAW,OAAO,CAAC;AAChC,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AACD,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,MAAM,EAAE,OAAO,CAAC;CACjB;AACD,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB;AAOD,uFAAuF;AACvF,eAAO,MAAM,iBAAiB,GAAI,MAAM,SAAS,KAAG,gBAAgB,EAsCnE,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,eAAe,GAC1B,OAAO,eAAe,EACtB,UAAU,MAAM,KACf,UAQF,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,cAAc,GACzB,SAAS,YAAY,EACrB,UAAU,OAAO,KAChB,SAmZF,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CelebrationAnchors } from '../../models/celebration';
|
|
2
|
+
import { CelebrationSnapshotTarget } from '../../utils/celebration-snapshots';
|
|
3
|
+
export interface RavenSurface extends CelebrationSnapshotTarget {
|
|
4
|
+
color: string;
|
|
5
|
+
background: string;
|
|
6
|
+
}
|
|
7
|
+
export interface RavenFragment extends RavenSurface {
|
|
8
|
+
crop: DOMRect;
|
|
9
|
+
}
|
|
10
|
+
export interface RavenTargets {
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
composer: RavenSurface | null;
|
|
14
|
+
pumpkin: RavenSurface | null;
|
|
15
|
+
conversation: RavenSurface | null;
|
|
16
|
+
edges: RavenSurface[];
|
|
17
|
+
fragments: RavenFragment[];
|
|
18
|
+
}
|
|
19
|
+
export declare const RAVEN_ROW_NODE_LIMIT = 80;
|
|
20
|
+
export declare const RAVEN_FRAGMENT_NODE_LIMIT = 16;
|
|
21
|
+
export declare const RAVEN_FRAGMENT_CLIP = "polygon(3% 8%, 21% 0%, 35% 7%, 52% 0%, 68% 6%, 94% 0%, 100% 24%, 95% 52%, 100% 84%, 80% 100%, 59% 94%, 40% 100%, 23% 92%, 0% 100%, 5% 68%, 0% 33%)";
|
|
22
|
+
/** A bounded read-only snapshot; no page component needs to know about ravens. */
|
|
23
|
+
export declare const getRavenTargets: (anchors: CelebrationAnchors) => RavenTargets;
|
|
24
|
+
//# sourceMappingURL=halloween-raven-targets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halloween-raven-targets.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-raven-targets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAQnF,MAAM,WAAW,YAAa,SAAQ,yBAAyB;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;AAMD,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,mBAAmB,uJACsH,CAAC;AAEvJ,kFAAkF;AAClF,eAAO,MAAM,eAAe,GAAI,SAAS,kBAAkB,KAAG,YAkN7D,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CelebrationAnchors } from '../../models/celebration';
|
|
2
|
+
import { CelebrationHistoryRow } from '../../utils/celebration-history';
|
|
3
|
+
import { HalloweenScene } from '../types/halloween';
|
|
4
|
+
/** Read the existing app-owned marker; the panel itself knows nothing of these scenes. */
|
|
5
|
+
export declare const getSecretSceneTargets: (anchors: CelebrationAnchors) => CelebrationHistoryRow[];
|
|
6
|
+
/** Animate inert history copies while keeping original rows under React ownership. */
|
|
7
|
+
export declare const animateSecretSceneHistory: (scene: HalloweenScene, targets: readonly CelebrationHistoryRow[], host: HTMLElement, stage: DOMRect, onStop?: () => void) => (() => void);
|
|
8
|
+
//# sourceMappingURL=halloween-secret-history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halloween-secret-history.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-secret-history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB,GAChC,SAAS,kBAAkB,KAC1B,qBAAqB,EAGvB,CAAC;AAsCF,sFAAsF;AACtF,eAAO,MAAM,yBAAyB,GACpC,OAAO,cAAc,EACrB,SAAS,SAAS,qBAAqB,EAAE,EACzC,MAAM,WAAW,EACjB,OAAO,OAAO,EACd,SAAS,MAAM,IAAI,KAClB,CAAC,MAAM,IAAI,CAgBV,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { CelebrationAnchors } from '../../models/celebration';
|
|
2
|
+
import { CelebrationSnapshotTarget } from '../../utils/celebration-snapshots';
|
|
3
|
+
import { HalloweenSpiderDrop } from './halloween';
|
|
4
|
+
/** Existing public composer classes and the welcome region give us safe, host-owned targets. */
|
|
5
|
+
export declare const getSpiderTheftTargets: (anchors: CelebrationAnchors) => CelebrationSnapshotTarget[];
|
|
6
|
+
export interface SpiderTheftPlan {
|
|
7
|
+
x: number;
|
|
8
|
+
depth: number;
|
|
9
|
+
size: number;
|
|
10
|
+
grab: number;
|
|
11
|
+
leave: number;
|
|
12
|
+
exitDistance: number;
|
|
13
|
+
target?: CelebrationSnapshotTarget;
|
|
14
|
+
}
|
|
15
|
+
export declare const SPIDER_THEFT_MS = 11000;
|
|
16
|
+
/** Keep nine varied drops; up to three carriers land precisely above their prizes. */
|
|
17
|
+
export declare const buildSpiderTheftPlans: (targets: readonly CelebrationSnapshotTarget[], drops: readonly HalloweenSpiderDrop[], width: number, height: number) => SpiderTheftPlan[];
|
|
18
|
+
export interface SpiderTheftActor {
|
|
19
|
+
carrier: HTMLElement;
|
|
20
|
+
cargo: HTMLElement;
|
|
21
|
+
web: SVGElement | null;
|
|
22
|
+
}
|
|
23
|
+
/** Carrier and cargo share a parent transform, so the spider cannot leave its prize behind. */
|
|
24
|
+
export declare const animateSpiderTheft: (plans: readonly SpiderTheftPlan[], actors: readonly SpiderTheftActor[], host: HTMLElement, onStop?: () => void) => (() => void);
|
|
25
|
+
//# sourceMappingURL=halloween-spider-theft.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halloween-spider-theft.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-spider-theft.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAiEvD,gGAAgG;AAChG,eAAO,MAAM,qBAAqB,GAChC,SAAS,kBAAkB,KAC1B,yBAAyB,EAsC3B,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,yBAAyB,CAAC;CACpC;AAED,eAAO,MAAM,eAAe,QAAQ,CAAC;AAErC,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,GAChC,SAAS,SAAS,yBAAyB,EAAE,EAC7C,OAAO,SAAS,mBAAmB,EAAE,EACrC,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,eAAe,EAuBd,CAAC;AAEL,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;CACxB;AAED,+FAA+F;AAC/F,eAAO,MAAM,kBAAkB,GAC7B,OAAO,SAAS,eAAe,EAAE,EACjC,QAAQ,SAAS,gBAAgB,EAAE,EACnC,MAAM,WAAW,EACjB,SAAS,MAAM,IAAI,KAClB,CAAC,MAAM,IAAI,CAoFb,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { HalloweenSpiderMood } from '../types/halloween';
|
|
2
|
+
import { HalloweenSpiderDanglePose } from './halloween';
|
|
3
|
+
interface Point {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
}
|
|
7
|
+
interface Box {
|
|
8
|
+
left: number;
|
|
9
|
+
top: number;
|
|
10
|
+
width: number;
|
|
11
|
+
height: number;
|
|
12
|
+
}
|
|
13
|
+
/** One silk strand across the pumpkin, in the pumpkin's 160×160 viewBox. */
|
|
14
|
+
export interface HalloweenSilkStrand {
|
|
15
|
+
d: string;
|
|
16
|
+
from: Point;
|
|
17
|
+
control: Point;
|
|
18
|
+
to: Point;
|
|
19
|
+
}
|
|
20
|
+
/** The silk the spider spins, drawn over the pumpkin in its own viewBox. */
|
|
21
|
+
export declare const HALLOWEEN_PUMPKIN_SILK: {
|
|
22
|
+
viewBox: number;
|
|
23
|
+
cocoon: {
|
|
24
|
+
cx: number;
|
|
25
|
+
cy: number;
|
|
26
|
+
rx: number;
|
|
27
|
+
ry: number;
|
|
28
|
+
};
|
|
29
|
+
strands: HalloweenSilkStrand[];
|
|
30
|
+
};
|
|
31
|
+
export interface HalloweenSpiderWrapGeometry {
|
|
32
|
+
/** Screen point the thread hangs from: the resting spider's head. */
|
|
33
|
+
pivot: Point;
|
|
34
|
+
/** Rendered spider height, for placing its body rather than its head. */
|
|
35
|
+
spiderHeight: number;
|
|
36
|
+
/** Rendered pumpkin box, which the silk viewBox fills. */
|
|
37
|
+
pumpkin: Box;
|
|
38
|
+
}
|
|
39
|
+
export interface HalloweenSpiderWrapPlan {
|
|
40
|
+
durationMs: number;
|
|
41
|
+
dangle: Keyframe[];
|
|
42
|
+
thread: Keyframe[];
|
|
43
|
+
strands: Keyframe[][];
|
|
44
|
+
cocoon: Keyframe[];
|
|
45
|
+
silk: Keyframe[];
|
|
46
|
+
pumpkin: Keyframe[];
|
|
47
|
+
/** Mood changes as `[ms, mood]`, in order. */
|
|
48
|
+
moods: [number, HalloweenSpiderMood][];
|
|
49
|
+
/** Where the spider is at `ms`, so an interrupted story reels in from there. */
|
|
50
|
+
poseAt: (ms: number) => HalloweenSpiderDanglePose;
|
|
51
|
+
}
|
|
52
|
+
/** Precompute the whole wrap on one timeline; nothing is measured while it plays. */
|
|
53
|
+
export declare const buildHalloweenSpiderWrapPlan: ({ pivot, spiderHeight, pumpkin, }: HalloweenSpiderWrapGeometry) => HalloweenSpiderWrapPlan;
|
|
54
|
+
export interface HalloweenSpiderWrapElements {
|
|
55
|
+
dangle: Element;
|
|
56
|
+
thread: Element;
|
|
57
|
+
strands: Element[];
|
|
58
|
+
cocoon: Element;
|
|
59
|
+
silk: Element;
|
|
60
|
+
pumpkin: Element;
|
|
61
|
+
}
|
|
62
|
+
export interface HalloweenSpiderWrapCallbacks {
|
|
63
|
+
onMood: (mood: HalloweenSpiderMood) => void;
|
|
64
|
+
/** Called once when the story finishes on its own. */
|
|
65
|
+
onEnd: () => void;
|
|
66
|
+
}
|
|
67
|
+
export interface HalloweenSpiderWrapPlayback {
|
|
68
|
+
/** Milliseconds into the story. */
|
|
69
|
+
elapsed: () => number;
|
|
70
|
+
/** Stops the story at once; the caller reels the spider in. */
|
|
71
|
+
cancel: () => void;
|
|
72
|
+
/** Fades the silk away quickly, then stops the story. */
|
|
73
|
+
abort: () => void;
|
|
74
|
+
}
|
|
75
|
+
/** Play every part of the wrap on one clock. */
|
|
76
|
+
export declare const playHalloweenSpiderWrap: (plan: HalloweenSpiderWrapPlan, elements: HalloweenSpiderWrapElements, { onMood, onEnd }: HalloweenSpiderWrapCallbacks) => HalloweenSpiderWrapPlayback;
|
|
77
|
+
export {};
|
|
78
|
+
//# sourceMappingURL=halloween-spider-wrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halloween-spider-wrap.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-spider-wrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,aAAa,CAAC;AAErB,UAAU,KAAK;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,UAAU,GAAG;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4EAA4E;AAC5E,MAAM,WAAW,mBAAmB;IAClC,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,KAAK,CAAC;CACX;AAwBD,4EAA4E;AAC5E,eAAO,MAAM,sBAAsB;;;;;;;;;CAqBlC,CAAC;AA+BF,MAAM,WAAW,2BAA2B;IAC1C,qEAAqE;IACrE,KAAK,EAAE,KAAK,CAAC;IACb,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,OAAO,EAAE,GAAG,CAAC;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC;IACtB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,8CAA8C;IAC9C,KAAK,EAAE,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,CAAC;IACvC,gFAAgF;IAChF,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,yBAAyB,CAAC;CACnD;AAED,qFAAqF;AACrF,eAAO,MAAM,4BAA4B,GAAI,mCAI1C,2BAA2B,KAAG,uBA+HhC,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC5C,sDAAsD;IACtD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,2BAA2B;IAC1C,mCAAmC;IACnC,OAAO,EAAE,MAAM,MAAM,CAAC;IACtB,+DAA+D;IAC/D,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,yDAAyD;IACzD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,gDAAgD;AAChD,eAAO,MAAM,uBAAuB,GAClC,MAAM,uBAAuB,EAC7B,UAAU,2BAA2B,EACrC,mBAAmB,4BAA4B,KAC9C,2BA2CF,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export declare const HALLOWEEN_TRAIN_MS = 11000;
|
|
2
|
+
export interface HalloweenTrainPlan {
|
|
3
|
+
mirrored: boolean;
|
|
4
|
+
enter: number;
|
|
5
|
+
exit: number;
|
|
6
|
+
passenger?: {
|
|
7
|
+
left: number;
|
|
8
|
+
top: number;
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
dx: number;
|
|
12
|
+
dy: number;
|
|
13
|
+
scale: number;
|
|
14
|
+
arc: number;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/** Measure the seasonal SVG, leaving its labelled button in place and focusable. */
|
|
18
|
+
export declare const getTrainPumpkin: () => SVGSVGElement | null;
|
|
19
|
+
/** Artwork coordinates stay in one carrier; only the locomotive is mirrored. */
|
|
20
|
+
export declare const buildHalloweenTrainPlan: (train: DOMRect, viewportWidth: number, source?: DOMRect) => HalloweenTrainPlan | null;
|
|
21
|
+
interface TrainActors {
|
|
22
|
+
carrier: HTMLElement;
|
|
23
|
+
passenger: HTMLElement;
|
|
24
|
+
source: SVGSVGElement | null;
|
|
25
|
+
}
|
|
26
|
+
/** All borrowed artwork, optional sound and scene animations share one lifetime. */
|
|
27
|
+
export declare const animateHalloweenTrain: (plan: HalloweenTrainPlan, actors: TrainActors, onStop: () => void, audioSrc?: string) => (() => void);
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=halloween-train.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halloween-train.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-train.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,oFAAoF;AACpF,eAAO,MAAM,eAAe,QAAO,aAAa,GAAG,IA8BlD,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,uBAAuB,GAClC,OAAO,OAAO,EACd,eAAe,MAAM,EACrB,SAAS,OAAO,KACf,kBAAkB,GAAG,IAyBvB,CAAC;AAEF,UAAU,WAAW;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;CAC9B;AAED,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,GAChC,MAAM,kBAAkB,EACxB,QAAQ,WAAW,EACnB,QAAQ,MAAM,IAAI,EAClB,WAAW,MAAM,KAChB,CAAC,MAAM,IAAI,CAiKb,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { HalloweenWebPlan } from './halloween-web-plan';
|
|
2
|
+
interface Options {
|
|
3
|
+
reducedMotion: boolean;
|
|
4
|
+
color: string;
|
|
5
|
+
pixelRatio?: number;
|
|
6
|
+
}
|
|
7
|
+
/** One scene clock, an incremental silk cache and bounded bitmap compositing. */
|
|
8
|
+
export declare const animateHalloweenWeb: (canvas: HTMLCanvasElement, plan: HalloweenWebPlan, { reducedMotion, color, pixelRatio }: Options) => (() => void);
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=halloween-web-animation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halloween-web-animation.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-web-animation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,sBAAsB,CAAC;AAwF9B,UAAU,OAAO;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,iFAAiF;AACjF,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,iBAAiB,EACzB,MAAM,gBAAgB,EACtB,sCAA0C,OAAO,KAChD,CAAC,MAAM,IAAI,CAwKb,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export interface Point {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
}
|
|
5
|
+
export interface HalloweenWebThread {
|
|
6
|
+
points: Point[];
|
|
7
|
+
delayMs: number;
|
|
8
|
+
durationMs: number;
|
|
9
|
+
from?: number;
|
|
10
|
+
to?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface HalloweenWeavingSpider extends Point {
|
|
13
|
+
spiderSize: number;
|
|
14
|
+
delayMs: number;
|
|
15
|
+
weaveMs: number;
|
|
16
|
+
escapeDelayMs: number;
|
|
17
|
+
escapeMs: number;
|
|
18
|
+
escape: Point;
|
|
19
|
+
spokes: Point[][];
|
|
20
|
+
silk: Point[];
|
|
21
|
+
targetIndex?: number;
|
|
22
|
+
}
|
|
23
|
+
export interface HalloweenWebPlan {
|
|
24
|
+
width: number;
|
|
25
|
+
height: number;
|
|
26
|
+
webs: HalloweenWeavingSpider[];
|
|
27
|
+
strands: HalloweenWebThread[];
|
|
28
|
+
}
|
|
29
|
+
interface TargetRect {
|
|
30
|
+
left: number;
|
|
31
|
+
top: number;
|
|
32
|
+
width: number;
|
|
33
|
+
height: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Build the whole connected viewport mesh without DOM reads or per-frame work.
|
|
37
|
+
* Reposition at most two anchors per UI rectangle; retain all grid graph edges.
|
|
38
|
+
*/
|
|
39
|
+
export declare const buildHalloweenWebPlan: ({ width, height, isMobile, targets, }: {
|
|
40
|
+
width: number;
|
|
41
|
+
height: number;
|
|
42
|
+
isMobile: boolean;
|
|
43
|
+
targets?: readonly TargetRect[];
|
|
44
|
+
}) => HalloweenWebPlan;
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=halloween-web-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halloween-web-plan.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-web-plan.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,sBAAuB,SAAQ,KAAK;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;IAClB,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,sBAAsB,EAAE,CAAC;IAC/B,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAwMD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,uCAKnC;IACD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CACjC,KAAG,gBA8EH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CelebrationAnchors } from '../../models/celebration';
|
|
2
|
+
export interface HalloweenWebTarget {
|
|
3
|
+
left: number;
|
|
4
|
+
top: number;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
}
|
|
8
|
+
/** Read existing app geometry once; seasonal webs never alter the real controls. */
|
|
9
|
+
export declare const getHalloweenWebTargets: (anchors: CelebrationAnchors) => HalloweenWebTarget[];
|
|
10
|
+
//# sourceMappingURL=halloween-web-targets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halloween-web-targets.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-web-targets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAOnE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAWD,oFAAoF;AACpF,eAAO,MAAM,sBAAsB,GACjC,SAAS,kBAAkB,KAC1B,kBAAkB,EAmKpB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { WitchPlan } from './halloween-witch-plan';
|
|
2
|
+
interface WitchElements {
|
|
3
|
+
host: HTMLElement;
|
|
4
|
+
copies: HTMLElement;
|
|
5
|
+
actors: HTMLElement[];
|
|
6
|
+
spells: Element[];
|
|
7
|
+
frog: SVGSVGElement;
|
|
8
|
+
}
|
|
9
|
+
/** Play bounded, synchronized artwork and snapshots; stopping restores every original. */
|
|
10
|
+
export declare const animateWitches: (plan: WitchPlan, { host, copies, actors, spells, frog }: WitchElements, onStop: () => void) => (() => void);
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=halloween-witch-animation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halloween-witch-animation.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-witch-animation.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,wBAAwB,CAAC;AAEhC,UAAU,aAAa;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,0FAA0F;AAC1F,eAAO,MAAM,cAAc,GACzB,MAAM,SAAS,EACf,wCAAwC,aAAa,EACrD,QAAQ,MAAM,IAAI,KACjB,CAAC,MAAM,IAAI,CA0Mb,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { CelebrationSnapshotTarget } from '../../utils/celebration-snapshots';
|
|
2
|
+
import { WitchTargets } from './halloween-witch-targets';
|
|
3
|
+
/** Finite story duration, before the provider's cleanup margin. */
|
|
4
|
+
export declare const WITCH_SCENE_MS = 20000;
|
|
5
|
+
/** Normalized instant when the original controls reappear. */
|
|
6
|
+
export declare const WITCH_RESTORE = 0.83;
|
|
7
|
+
/** The snapshot helper finishes restoring source opacity four percent later. */
|
|
8
|
+
export declare const WITCH_HANDOFF_END: number;
|
|
9
|
+
/** Hard budget for all scene and snapshot animations together. */
|
|
10
|
+
export declare const WITCH_ANIMATION_LIMIT = 48;
|
|
11
|
+
/** Hard budget for an individual precomputed track. */
|
|
12
|
+
export declare const WITCH_KEYFRAME_LIMIT = 160;
|
|
13
|
+
/** Articulated parts of each decorative witch. */
|
|
14
|
+
export declare enum WitchPart {
|
|
15
|
+
Arm = "arm",
|
|
16
|
+
Head = "head",
|
|
17
|
+
Hat = "hat",
|
|
18
|
+
Cloak = "cloak",
|
|
19
|
+
Gaze = "gaze",
|
|
20
|
+
Broom = "broom",
|
|
21
|
+
Frog = "frog",
|
|
22
|
+
Rider = "rider"
|
|
23
|
+
}
|
|
24
|
+
interface Point {
|
|
25
|
+
x: number;
|
|
26
|
+
y: number;
|
|
27
|
+
}
|
|
28
|
+
interface Hop {
|
|
29
|
+
from: number;
|
|
30
|
+
to: number;
|
|
31
|
+
start: Point;
|
|
32
|
+
end: Point;
|
|
33
|
+
height: number;
|
|
34
|
+
}
|
|
35
|
+
interface WitchActor {
|
|
36
|
+
mentor: boolean;
|
|
37
|
+
size: number;
|
|
38
|
+
facing: number;
|
|
39
|
+
rest: Point;
|
|
40
|
+
frames: Keyframe[];
|
|
41
|
+
parts: Record<WitchPart, Keyframe[]>;
|
|
42
|
+
}
|
|
43
|
+
interface WitchButton {
|
|
44
|
+
target: CelebrationSnapshotTarget;
|
|
45
|
+
entry: number;
|
|
46
|
+
frames: Keyframe[];
|
|
47
|
+
frogFrames: Keyframe[];
|
|
48
|
+
legFrames: Keyframe[];
|
|
49
|
+
hops: Hop[];
|
|
50
|
+
}
|
|
51
|
+
interface Spell {
|
|
52
|
+
frames: Keyframe[];
|
|
53
|
+
mentor: boolean;
|
|
54
|
+
}
|
|
55
|
+
/** All immutable geometry/tracks for one spell lesson. */
|
|
56
|
+
export interface WitchPlan {
|
|
57
|
+
/** Measured composer and borrowed controls to watch for changes. */
|
|
58
|
+
anchors: CelebrationSnapshotTarget[];
|
|
59
|
+
/** Two independently articulated characters. */
|
|
60
|
+
actors: WitchActor[];
|
|
61
|
+
/** Bounded button copies, empty for the broom-only story. */
|
|
62
|
+
buttons: WitchButton[];
|
|
63
|
+
/** Small travelling spell marks, without particles or filters. */
|
|
64
|
+
spells: Spell[];
|
|
65
|
+
}
|
|
66
|
+
/** Precompute a complete lesson, including a broom-only fallback and exact returns. */
|
|
67
|
+
export declare const buildWitchPlan: (targets: WitchTargets, isMobile: boolean) => WitchPlan;
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=halloween-witch-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halloween-witch-plan.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-witch-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAEnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,mEAAmE;AACnE,eAAO,MAAM,cAAc,QAAoC,CAAC;AAChE,8DAA8D;AAC9D,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,gFAAgF;AAChF,eAAO,MAAM,iBAAiB,QAAuB,CAAC;AACtD,kEAAkE;AAClE,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,uDAAuD;AACvD,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,kDAAkD;AAClD,oBAAY,SAAS;IACnB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,UAAU,KAAK;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAcD,UAAU,GAAG;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,KAAK,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,UAAU,UAAU;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;CACtC;AACD,UAAU,WAAW;IACnB,MAAM,EAAE,yBAAyB,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AACD,UAAU,KAAK;IACb,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,0DAA0D;AAC1D,MAAM,WAAW,SAAS;IACxB,oEAAoE;IACpE,OAAO,EAAE,yBAAyB,EAAE,CAAC;IACrC,gDAAgD;IAChD,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,6DAA6D;IAC7D,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,kEAAkE;IAClE,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AA+MD,uFAAuF;AACvF,eAAO,MAAM,cAAc,GACzB,SAAS,YAAY,EACrB,UAAU,OAAO,KAChB,SA2VF,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { CelebrationAnchors } from '../../models/celebration';
|
|
2
|
+
import { CelebrationSnapshotTarget } from '../../utils/celebration-snapshots';
|
|
3
|
+
/** A bounded set of idle buttons and the measured stage around them. */
|
|
4
|
+
export interface WitchTargets {
|
|
5
|
+
/** Viewport width in CSS pixels. */
|
|
6
|
+
width: number;
|
|
7
|
+
/** Viewport height in CSS pixels. */
|
|
8
|
+
height: number;
|
|
9
|
+
/** Composer geometry, never copied. */
|
|
10
|
+
composer?: CelebrationSnapshotTarget;
|
|
11
|
+
/** Safe small buttons, nearest to the stage first. */
|
|
12
|
+
buttons: CelebrationSnapshotTarget[];
|
|
13
|
+
}
|
|
14
|
+
/** Maximum descendants copied from a single button. */
|
|
15
|
+
export declare const WITCH_NODE_LIMIT = 40;
|
|
16
|
+
/** Maximum number of candidate buttons inspected per activation. */
|
|
17
|
+
export declare const WITCH_SCAN_LIMIT = 24;
|
|
18
|
+
/** Measure a small, safe selection once; never discover host classes or routes. */
|
|
19
|
+
export declare const getWitchTargets: (anchors: CelebrationAnchors, isMobile: boolean) => WitchTargets;
|
|
20
|
+
//# sourceMappingURL=halloween-witch-targets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"halloween-witch-targets.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-witch-targets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAGnF,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,sDAAsD;IACtD,OAAO,EAAE,yBAAyB,EAAE,CAAC;CACtC;AAED,uDAAuD;AACvD,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,oEAAoE;AACpE,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAQnC,mFAAmF;AACnF,eAAO,MAAM,eAAe,GAC1B,SAAS,kBAAkB,EAC3B,UAAU,OAAO,KAChB,YA2HF,CAAC"}
|