@epam/ai-dial-celebrations 1.2.0-dev.176 → 1.2.0-dev.181

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.
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+ /** Filled bones with a darker edge; lit from the top left. */
3
+ export declare const SkeletonArt: FC<{
4
+ partner?: boolean;
5
+ headless?: boolean;
6
+ }>;
7
+ /** The detached skull, drawn in a square box centred on the cranium. */
8
+ export declare const SkeletonSkullArt: FC;
9
+ //# sourceMappingURL=HalloweenSkeletonArt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HalloweenSkeletonArt.d.ts","sourceRoot":"","sources":["../../../../src/halloween/components/Halloween/HalloweenSkeletonArt.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AA0CvC,8DAA8D;AAC9D,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAiErE,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,EAAE,EAoB9B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ /** Two dancers on the composer edge lose, chase and restore a skull. */
3
+ declare const HalloweenSkeletons: FC;
4
+ export default HalloweenSkeletons;
5
+ //# sourceMappingURL=HalloweenSkeletons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HalloweenSkeletons.d.ts","sourceRoot":"","sources":["../../../../src/halloween/components/Halloween/HalloweenSkeletons.tsx"],"names":[],"mappings":"AACA,OAAO,EAA4C,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAc1E,wEAAwE;AACxE,QAAA,MAAM,kBAAkB,EAAE,EA4LzB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"halloween.d.ts","sourceRoot":"","sources":["../../../src/halloween/constants/halloween.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD;;;GAGG;AAEH,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,mBAAmB,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,QAAQ,CAAC;AAEjD,8EAA8E;AAC9E,eAAO,MAAM,+BAA+B,QAAQ,CAAC;AAErD,yFAAyF;AACzF,eAAO,MAAM,+BAA+B,QAAQ,CAAC;AAErD,kEAAkE;AAClE,eAAO,MAAM,iCAAiC,QAAQ,CAAC;AAEvD,4EAA4E;AAC5E,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD,2DAA2D;AAC3D,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,8EAA8E;AAC9E,eAAO,MAAM,8BAA8B,yBAA0B,CAAC;AAEtE,8DAA8D;AAC9D,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,yEAAyE;AACzE,eAAO,MAAM,8BAA8B,oBAAqB,CAAC;AAEjE,+EAA+E;AAC/E,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,gCAAgC,MAAM,CAAC;AAEpD,yEAAyE;AACzE,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,uEAAuE;AACvE,eAAO,MAAM,sBAAsB,qQAYzB,CAAC;AAEX,qEAAqE;AACrE,eAAO,MAAM,uBAAuB,gIAM1B,CAAC;AAEX,2EAA2E;AAC3E,eAAO,MAAM,yBAAyB,EAAE,OAAO,CAC7C,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAe/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AAEnD,uEAAuE;AACvE,eAAO,MAAM,wBAAwB,MAAM,CAAC"}
1
+ {"version":3,"file":"halloween.d.ts","sourceRoot":"","sources":["../../../src/halloween/constants/halloween.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIpD;;;GAGG;AAEH,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,mBAAmB,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,QAAQ,CAAC;AAEjD,8EAA8E;AAC9E,eAAO,MAAM,+BAA+B,QAAQ,CAAC;AAErD,yFAAyF;AACzF,eAAO,MAAM,+BAA+B,QAAQ,CAAC;AAErD,kEAAkE;AAClE,eAAO,MAAM,iCAAiC,QAAQ,CAAC;AAEvD,4EAA4E;AAC5E,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD,2DAA2D;AAC3D,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,8EAA8E;AAC9E,eAAO,MAAM,8BAA8B,yBAA0B,CAAC;AAEtE,8DAA8D;AAC9D,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,yEAAyE;AACzE,eAAO,MAAM,8BAA8B,oBAAqB,CAAC;AAEjE,+EAA+E;AAC/E,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,gCAAgC,MAAM,CAAC;AAEpD,yEAAyE;AACzE,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,uEAAuE;AACvE,eAAO,MAAM,sBAAsB,qQAYzB,CAAC;AAEX,qEAAqE;AACrE,eAAO,MAAM,uBAAuB,gIAM1B,CAAC;AAEX,2EAA2E;AAC3E,eAAO,MAAM,yBAAyB,EAAE,OAAO,CAC7C,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAe/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AAEnD,uEAAuE;AACvE,eAAO,MAAM,wBAAwB,MAAM,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { SkeletonPlan } from './halloween-skeleton-plan';
2
+ /** One finite clock; the measured composer is observed, never animated. */
3
+ export declare const animateSkeletons: (plan: SkeletonPlan, host: HTMLElement, onStop: () => void) => (() => void);
4
+ //# sourceMappingURL=halloween-skeleton-animation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"halloween-skeleton-animation.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-skeleton-animation.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,2BAA2B,CAAC;AAGnC,2EAA2E;AAC3E,eAAO,MAAM,gBAAgB,GAC3B,MAAM,YAAY,EAClB,MAAM,WAAW,EACjB,QAAQ,MAAM,IAAI,KACjB,CAAC,MAAM,IAAI,CA2Lb,CAAC"}
@@ -0,0 +1,127 @@
1
+ import { CelebrationSnapshotTarget } from '../../utils/celebration-snapshots';
2
+ import { SkeletonGreetingWord, SkeletonTargets } from './halloween-skeleton-targets';
3
+ /** Includes both skeletons dropping below the viewport. */
4
+ export declare const SKELETON_MS = 11500;
5
+ export declare const SKELETON_DEADLINE_MS: number;
6
+ /** Maximum precomputed frames in any one track. */
7
+ export declare const SKELETON_FRAME_LIMIT = 80;
8
+ /** Showman 9 + partner 8 + free skull 3 + composer outline 1 + stolen word 1. */
9
+ export declare const SKELETON_ANIMATION_LIMIT = 22;
10
+ /** Raised arm direction used to grab the greeting word. */
11
+ export declare const SKELETON_GRAB_ARM = -75;
12
+ /** Smallest hop, in art units, when the word is within standing reach. */
13
+ export declare const SKELETON_MIN_HOP = 12;
14
+ /** Forward arm direction while running off with the word. */
15
+ export declare const SKELETON_CARRY_ARM = -12;
16
+ /** The stolen word hides at the grab contact. */
17
+ export declare const SKELETON_WORD_HIDE = 10450;
18
+ /** The thrown-back word lands in place and the original reappears. */
19
+ export declare const SKELETON_WORD_RESTORE = 11400;
20
+ /** Independently animated groups of the skeleton artwork. */
21
+ export declare enum SkeletonPart {
22
+ Body = "body",
23
+ Skull = "skull",
24
+ Face = "face",
25
+ ArmLeft = "arm-left",
26
+ ArmRight = "arm-right",
27
+ LegLeft = "leg-left",
28
+ LegRight = "leg-right"
29
+ }
30
+ /** Moments where one actor or prop visibly causes another to move. */
31
+ export declare enum SkeletonContactKind {
32
+ Landing = "landing",
33
+ Launch = "launch",
34
+ Impact = "impact",
35
+ Catch = "catch",
36
+ Place = "place",
37
+ Grab = "grab"
38
+ }
39
+ /** Pivots and contact points in the 100×170 skeleton viewBox. */
40
+ export declare const SKELETON_ART: {
41
+ readonly width: 100;
42
+ readonly height: 170;
43
+ readonly feetY: 158;
44
+ readonly shoulder: {
45
+ readonly x: 64;
46
+ readonly y: 58;
47
+ };
48
+ readonly hand: {
49
+ readonly x: 78;
50
+ readonly y: 96;
51
+ };
52
+ readonly skull: {
53
+ readonly x: 50;
54
+ readonly y: 25;
55
+ };
56
+ readonly skullRadius: 20;
57
+ /** Side of the free skull's square viewBox, centred on `skull`. */
58
+ readonly skullBox: 44;
59
+ };
60
+ /** Direction of the resting right arm from its shoulder. */
61
+ export declare const SKELETON_ARM_REST: number;
62
+ export interface SkeletonPoint {
63
+ x: number;
64
+ y: number;
65
+ }
66
+ /**
67
+ * Scene position of the right hand. `armDeg` is the arm's direction in the
68
+ * unmirrored drawing; the emitted rotation is `armDeg - SKELETON_ARM_REST`.
69
+ */
70
+ export declare const skeletonHandPoint: (root: SkeletonPoint, scale: number, facing: number, bodyDy: number, armDeg: number) => SkeletonPoint;
71
+ export interface SkeletonContact extends SkeletonPoint {
72
+ time: number;
73
+ kind: SkeletonContactKind;
74
+ }
75
+ /** Hand and skull centre while the partner holds it; evidence for tests. */
76
+ export interface SkeletonHold {
77
+ time: number;
78
+ hand: SkeletonPoint;
79
+ skull: SkeletonPoint;
80
+ }
81
+ export interface SkeletonActorTracks {
82
+ scale: number;
83
+ root: Keyframe[];
84
+ facing: Keyframe[];
85
+ parts: Partial<Record<SkeletonPart, Keyframe[]>>;
86
+ }
87
+ /** Plan-space rectangle of the decorative composer outline. */
88
+ export interface SkeletonLedge {
89
+ left: number;
90
+ top: number;
91
+ width: number;
92
+ height: number;
93
+ borderRadius?: string;
94
+ }
95
+ /** Immutable choreography; RTL mirrors the whole artwork layer. */
96
+ export interface SkeletonPlan {
97
+ targets: SkeletonTargets;
98
+ anchors: CelebrationSnapshotTarget[];
99
+ ledge?: SkeletonLedge;
100
+ stageY: number;
101
+ skullSize: number;
102
+ showman: SkeletonActorTracks;
103
+ partner: SkeletonActorTracks;
104
+ skull: {
105
+ root: Keyframe[];
106
+ turn: Keyframe[];
107
+ face: Keyframe[];
108
+ };
109
+ outline: Keyframe[];
110
+ contacts: SkeletonContact[];
111
+ holds: SkeletonHold[];
112
+ /** The greeting word the partner steals, when it is reachable. */
113
+ word?: SkeletonWordPlan;
114
+ }
115
+ /** Decorative copy of the greeting's last word and its restoration schedule. */
116
+ export interface SkeletonWordPlan {
117
+ target: SkeletonGreetingWord;
118
+ width: number;
119
+ height: number;
120
+ frames: Keyframe[];
121
+ holds: SkeletonHold[];
122
+ hideAt: number;
123
+ restoreAt: number;
124
+ }
125
+ /** Deterministic finite choreography; all geometry work precedes playback. */
126
+ export declare const buildSkeletonPlan: (targets: SkeletonTargets, mobile: boolean) => SkeletonPlan;
127
+ //# sourceMappingURL=halloween-skeleton-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"halloween-skeleton-plan.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-skeleton-plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { CelebrationAnchors } from '../../models/celebration';
2
+ import { CelebrationSnapshotTarget } from '../../utils/celebration-snapshots';
3
+ /** Maximum composer candidates measured during one preparation. */
4
+ export declare const SKELETON_COMPOSER_LIMIT = 4;
5
+ /** Maximum ancestors inspected for each candidate. */
6
+ export declare const SKELETON_ANCESTOR_LIMIT = 32;
7
+ /** Maximum text nodes visited in the greeting heading. */
8
+ export declare const SKELETON_TEXT_NODE_LIMIT = 16;
9
+ /** A measured input edge; it is never copied, hidden or animated. */
10
+ export interface SkeletonComposer extends CelebrationSnapshotTarget {
11
+ borderRadius?: string;
12
+ }
13
+ /** Computed text presentation copied onto the decorative word. */
14
+ export interface SkeletonWordFont {
15
+ fontFamily: string;
16
+ fontSize: string;
17
+ fontWeight: string;
18
+ fontStyle: string;
19
+ letterSpacing: string;
20
+ color: string;
21
+ textTransform: string;
22
+ }
23
+ /** The last word of the greeting heading; hidden only through a highlight. */
24
+ export interface SkeletonGreetingWord {
25
+ heading: HTMLElement;
26
+ headingRect: DOMRect;
27
+ range: Range;
28
+ rect: DOMRect;
29
+ text: string;
30
+ font: SkeletonWordFont;
31
+ }
32
+ /** Measured viewport and the optional stage for the dancing pair. */
33
+ export interface SkeletonTargets {
34
+ width: number;
35
+ height: number;
36
+ rtl: boolean;
37
+ composer?: SkeletonComposer;
38
+ word?: SkeletonGreetingWord;
39
+ }
40
+ /** Highlight name whose stylesheet rule hides the borrowed word's glyphs. */
41
+ export declare const SKELETON_WORD_HIGHLIGHT = "celebration-skeleton-word";
42
+ /** Bounded cached discovery; a focused composer with a draft is only measured. */
43
+ export declare const getSkeletonTargets: (anchors: CelebrationAnchors) => SkeletonTargets;
44
+ //# sourceMappingURL=halloween-skeleton-targets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"halloween-skeleton-targets.d.ts","sourceRoot":"","sources":["../../../src/halloween/utils/halloween-skeleton-targets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAGnF,mEAAmE;AACnE,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,sDAAsD;AACtD,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,0DAA0D;AAC1D,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,qEAAqE;AACrE,MAAM,WAAW,gBAAiB,SAAQ,yBAAyB;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,kEAAkE;AAClE,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,8EAA8E;AAC9E,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,IAAI,CAAC,EAAE,oBAAoB,CAAC;CAC7B;AAED,6EAA6E;AAC7E,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AAOnE,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,kBAAkB,KAC1B,eAsJF,CAAC"}