funnel-gfx-wc 0.1.82 → 0.1.84
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.
|
@@ -428,14 +428,14 @@ const DataValues = props => {
|
|
|
428
428
|
|
|
429
429
|
/**
|
|
430
430
|
* anime.js - ESM
|
|
431
|
-
* @version v4.1.
|
|
431
|
+
* @version v4.1.3
|
|
432
432
|
* @author Julian Garnier
|
|
433
433
|
* @license MIT
|
|
434
434
|
* @copyright (c) 2025 Julian Garnier
|
|
435
435
|
* @see https://animejs.com
|
|
436
436
|
*/
|
|
437
437
|
|
|
438
|
-
// Global types
|
|
438
|
+
// Global types ////////////////////////////////////////////////////////////////
|
|
439
439
|
|
|
440
440
|
/**
|
|
441
441
|
* @typedef {Object} DefaultsParams
|
|
@@ -466,17 +466,18 @@ const DataValues = props => {
|
|
|
466
466
|
/** @typedef {JSAnimation|Timeline} Renderable */
|
|
467
467
|
/** @typedef {Timer|Renderable} Tickable */
|
|
468
468
|
/** @typedef {Timer&JSAnimation&Timeline} CallbackArgument */
|
|
469
|
-
/** @typedef {Animatable|Tickable|Draggable|ScrollObserver|TextSplitter|Scope} Revertible */
|
|
469
|
+
/** @typedef {Animatable|Tickable|WAAPIAnimation|Draggable|ScrollObserver|TextSplitter|Scope} Revertible */
|
|
470
470
|
|
|
471
|
-
// Stagger types
|
|
471
|
+
// Stagger types ///////////////////////////////////////////////////////////////
|
|
472
472
|
|
|
473
473
|
/**
|
|
474
|
+
* @template T
|
|
474
475
|
* @callback StaggerFunction
|
|
475
476
|
* @param {Target} [target]
|
|
476
477
|
* @param {Number} [index]
|
|
477
478
|
* @param {Number} [length]
|
|
478
479
|
* @param {Timeline} [tl]
|
|
479
|
-
* @return {
|
|
480
|
+
* @return {T}
|
|
480
481
|
*/
|
|
481
482
|
|
|
482
483
|
/**
|
|
@@ -486,13 +487,13 @@ const DataValues = props => {
|
|
|
486
487
|
* @property {Boolean} [reversed]
|
|
487
488
|
* @property {Array.<Number>} [grid]
|
|
488
489
|
* @property {('x'|'y')} [axis]
|
|
489
|
-
* @property {String|
|
|
490
|
+
* @property {String|((target: Target, i: Number, length: Number) => Number)} [use]
|
|
490
491
|
* @property {Number} [total]
|
|
491
492
|
* @property {EasingParam} [ease]
|
|
492
493
|
* @property {TweenModifier} [modifier]
|
|
493
494
|
*/
|
|
494
495
|
|
|
495
|
-
// Eases types
|
|
496
|
+
// Eases types /////////////////////////////////////////////////////////////////
|
|
496
497
|
|
|
497
498
|
/**
|
|
498
499
|
* @callback EasingFunction
|
|
@@ -520,7 +521,17 @@ const DataValues = props => {
|
|
|
520
521
|
/** @typedef {Array.<TargetSelector>|TargetSelector} TargetsParam */
|
|
521
522
|
/** @typedef {Array.<Target>} TargetsArray */
|
|
522
523
|
|
|
523
|
-
|
|
524
|
+
// Spring types ////////////////////////////////////////////////////////////////
|
|
525
|
+
|
|
526
|
+
/**
|
|
527
|
+
* @typedef {Object} SpringParams
|
|
528
|
+
* @property {Number} [mass=1] - Mass, default 1
|
|
529
|
+
* @property {Number} [stiffness=100] - Stiffness, default 100
|
|
530
|
+
* @property {Number} [damping=10] - Damping, default 10
|
|
531
|
+
* @property {Number} [velocity=0] - Initial velocity, default 0
|
|
532
|
+
*/
|
|
533
|
+
|
|
534
|
+
// Callback types //////////////////////////////////////////////////////////////
|
|
524
535
|
|
|
525
536
|
/**
|
|
526
537
|
* @template T
|
|
@@ -547,7 +558,7 @@ const DataValues = props => {
|
|
|
547
558
|
* @property {Callback<T>} [onRender]
|
|
548
559
|
*/
|
|
549
560
|
|
|
550
|
-
// Timer types
|
|
561
|
+
// Timer types /////////////////////////////////////////////////////////////////
|
|
551
562
|
|
|
552
563
|
/**
|
|
553
564
|
* @typedef {Object} TimerOptions
|
|
@@ -569,7 +580,7 @@ const DataValues = props => {
|
|
|
569
580
|
* @typedef {TimerOptions & TickableCallbacks<Timer>} TimerParams
|
|
570
581
|
*/
|
|
571
582
|
|
|
572
|
-
// Tween types
|
|
583
|
+
// Tween types /////////////////////////////////////////////////////////////////
|
|
573
584
|
|
|
574
585
|
/**
|
|
575
586
|
* @callback FunctionValue
|
|
@@ -640,7 +651,7 @@ const DataValues = props => {
|
|
|
640
651
|
/** @typedef {WeakMap.<Target, TweenLookups>} TweenReplaceLookups */
|
|
641
652
|
/** @typedef {Map.<Target, TweenLookups>} TweenAdditiveLookups */
|
|
642
653
|
|
|
643
|
-
//
|
|
654
|
+
// JSAnimation types ///////////////////////////////////////////////////////////
|
|
644
655
|
|
|
645
656
|
/**
|
|
646
657
|
* @typedef {Number|String|FunctionValue} TweenParamValue
|
|
@@ -714,7 +725,36 @@ const DataValues = props => {
|
|
|
714
725
|
* @typedef {Record<String, TweenOptions | Callback<JSAnimation> | TweenModifier | boolean | PercentageKeyframes | DurationKeyframes | ScrollObserver> & TimerOptions & AnimationOptions & TweenParamsOptions & TickableCallbacks<JSAnimation> & RenderableCallbacks<JSAnimation>} AnimationParams
|
|
715
726
|
*/
|
|
716
727
|
|
|
717
|
-
// Timeline types
|
|
728
|
+
// Timeline types //////////////////////////////////////////////////////////////
|
|
729
|
+
|
|
730
|
+
/**
|
|
731
|
+
* Accepts:<br>
|
|
732
|
+
* - `Number` - Absolute position in milliseconds (e.g., `500` places element at exactly 500ms)<br>
|
|
733
|
+
* - `'+=Number'` - Addition: Position element X ms after the last element (e.g., `'+=100'`)<br>
|
|
734
|
+
* - `'-=Number'` - Subtraction: Position element X ms before the last element's end (e.g., `'-=100'`)<br>
|
|
735
|
+
* - `'*=Number'` - Multiplier: Position element at a fraction of the total duration (e.g., `'*=.5'` for halfway)<br>
|
|
736
|
+
* - `'<'` - Previous end: Position element at the end position of the previous element<br>
|
|
737
|
+
* - `'<<'` - Previous start: Position element at the start position of the previous element<br>
|
|
738
|
+
* - `'<<+=Number'` - Combined: Position element relative to previous element's start (e.g., `'<<+=250'`)<br>
|
|
739
|
+
* - `'label'` - Label: Position element at a named label position (e.g., `'My Label'`)
|
|
740
|
+
*
|
|
741
|
+
* @typedef {Number|`+=${Number}`|`-=${Number}`|`*=${Number}`|'<'|'<<'|`<<+=${Number}`|`<<-=${Number}`|String} TimelinePosition
|
|
742
|
+
*/
|
|
743
|
+
|
|
744
|
+
/**
|
|
745
|
+
* Accepts:<br>
|
|
746
|
+
* - `Number` - Absolute position in milliseconds (e.g., `500` places animation at exactly 500ms)<br>
|
|
747
|
+
* - `'+=Number'` - Addition: Position animation X ms after the last animation (e.g., `'+=100'`)<br>
|
|
748
|
+
* - `'-=Number'` - Subtraction: Position animation X ms before the last animation's end (e.g., `'-=100'`)<br>
|
|
749
|
+
* - `'*=Number'` - Multiplier: Position animation at a fraction of the total duration (e.g., `'*=.5'` for halfway)<br>
|
|
750
|
+
* - `'<'` - Previous end: Position animation at the end position of the previous animation<br>
|
|
751
|
+
* - `'<<'` - Previous start: Position animation at the start position of the previous animation<br>
|
|
752
|
+
* - `'<<+=Number'` - Combined: Position animation relative to previous animation's start (e.g., `'<<+=250'`)<br>
|
|
753
|
+
* - `'label'` - Label: Position animation at a named label position (e.g., `'My Label'`)<br>
|
|
754
|
+
* - `stagger(String|Nummber)` - Stagger multi-elements animation positions (e.g., 10, 20, 30...)
|
|
755
|
+
*
|
|
756
|
+
* @typedef {TimelinePosition | StaggerFunction<Number|String>} TimelineAnimationPosition
|
|
757
|
+
*/
|
|
718
758
|
|
|
719
759
|
/**
|
|
720
760
|
* @typedef {Object} TimelineOptions
|
|
@@ -726,7 +766,57 @@ const DataValues = props => {
|
|
|
726
766
|
* @typedef {TimerOptions & TimelineOptions & TickableCallbacks<Timeline> & RenderableCallbacks<Timeline>} TimelineParams
|
|
727
767
|
*/
|
|
728
768
|
|
|
729
|
-
//
|
|
769
|
+
// WAAPIAnimation types ////////////////////////////////////////////////////////
|
|
770
|
+
|
|
771
|
+
/**
|
|
772
|
+
* @typedef {String|Number|Array<String>|Array<Number>} WAAPITweenValue
|
|
773
|
+
*/
|
|
774
|
+
|
|
775
|
+
/**
|
|
776
|
+
* @callback WAAPIFunctionValue
|
|
777
|
+
* @param {DOMTarget} target - The animated target
|
|
778
|
+
* @param {Number} index - The target index
|
|
779
|
+
* @param {Number} length - The total number of animated targets
|
|
780
|
+
* @return {WAAPITweenValue}
|
|
781
|
+
*/
|
|
782
|
+
|
|
783
|
+
/**
|
|
784
|
+
* @typedef {WAAPITweenValue|WAAPIFunctionValue|Array<String|Number|WAAPIFunctionValue>} WAAPIKeyframeValue
|
|
785
|
+
*/
|
|
786
|
+
|
|
787
|
+
/**
|
|
788
|
+
* @typedef {(animation: WAAPIAnimation) => void} WAAPICallback
|
|
789
|
+
*/
|
|
790
|
+
|
|
791
|
+
/**
|
|
792
|
+
* @typedef {Object} WAAPITweenOptions
|
|
793
|
+
* @property {WAAPIKeyframeValue} [to]
|
|
794
|
+
* @property {WAAPIKeyframeValue} [from]
|
|
795
|
+
* @property {Number|WAAPIFunctionValue} [duration]
|
|
796
|
+
* @property {Number|WAAPIFunctionValue} [delay]
|
|
797
|
+
* @property {EasingParam} [ease]
|
|
798
|
+
* @property {CompositeOperation} [composition]
|
|
799
|
+
*/
|
|
800
|
+
|
|
801
|
+
/**
|
|
802
|
+
* @typedef {Object} WAAPIAnimationOptions
|
|
803
|
+
* @property {Number|Boolean} [loop]
|
|
804
|
+
* @property {Boolean} [Reversed]
|
|
805
|
+
* @property {Boolean} [Alternate]
|
|
806
|
+
* @property {Boolean|ScrollObserver} [autoplay]
|
|
807
|
+
* @property {Number} [playbackRate]
|
|
808
|
+
* @property {Number|WAAPIFunctionValue} [duration]
|
|
809
|
+
* @property {Number|WAAPIFunctionValue} [delay]
|
|
810
|
+
* @property {EasingParam} [ease]
|
|
811
|
+
* @property {CompositeOperation} [composition]
|
|
812
|
+
* @property {WAAPICallback} [onComplete]
|
|
813
|
+
*/
|
|
814
|
+
|
|
815
|
+
/**
|
|
816
|
+
* @typedef {Record<String, WAAPIKeyframeValue | WAAPIAnimationOptions | Boolean | ScrollObserver | WAAPICallback | EasingParam | WAAPITweenOptions> & WAAPIAnimationOptions} WAAPIAnimationParams
|
|
817
|
+
*/
|
|
818
|
+
|
|
819
|
+
// Animatable types ////////////////////////////////////////////////////////////
|
|
730
820
|
|
|
731
821
|
/**
|
|
732
822
|
* @callback AnimatablePropertySetter
|
|
@@ -762,7 +852,7 @@ const DataValues = props => {
|
|
|
762
852
|
* @typedef {Record<String, TweenParamValue | EasingParam | TweenModifier | TweenComposition | AnimatablePropertyParamsOptions> & AnimatablePropertyParamsOptions} AnimatableParams
|
|
763
853
|
*/
|
|
764
854
|
|
|
765
|
-
// Scope types
|
|
855
|
+
// Scope types /////////////////////////////////////////////////////////////////
|
|
766
856
|
|
|
767
857
|
/**
|
|
768
858
|
* @typedef {Object} ReactRef
|
|
@@ -805,7 +895,52 @@ const DataValues = props => {
|
|
|
805
895
|
* @return {ScopeCleanupCallback|void}
|
|
806
896
|
*/
|
|
807
897
|
|
|
808
|
-
//
|
|
898
|
+
// Scroll types ////////////////////////////////////////////////////////////////
|
|
899
|
+
|
|
900
|
+
/**
|
|
901
|
+
* @typedef {String|Number} ScrollThresholdValue
|
|
902
|
+
*/
|
|
903
|
+
|
|
904
|
+
/**
|
|
905
|
+
* @typedef {Object} ScrollThresholdParam
|
|
906
|
+
* @property {ScrollThresholdValue} [target]
|
|
907
|
+
* @property {ScrollThresholdValue} [container]
|
|
908
|
+
*/
|
|
909
|
+
|
|
910
|
+
/**
|
|
911
|
+
* @callback ScrollObserverAxisCallback
|
|
912
|
+
* @param {ScrollObserver} self
|
|
913
|
+
* @return {'x'|'y'}
|
|
914
|
+
*/
|
|
915
|
+
|
|
916
|
+
/**
|
|
917
|
+
* @callback ScrollThresholdCallback
|
|
918
|
+
* @param {ScrollObserver} self
|
|
919
|
+
* @return {ScrollThresholdValue|ScrollThresholdParam}
|
|
920
|
+
*/
|
|
921
|
+
|
|
922
|
+
/**
|
|
923
|
+
* @typedef {Object} ScrollObserverParams
|
|
924
|
+
* @property {Number|String} [id]
|
|
925
|
+
* @property {Boolean|Number|String|EasingParam} [sync]
|
|
926
|
+
* @property {TargetsParam} [container]
|
|
927
|
+
* @property {TargetsParam} [target]
|
|
928
|
+
* @property {'x'|'y'|ScrollObserverAxisCallback|((observer: ScrollObserver) => 'x'|'y'|ScrollObserverAxisCallback)} [axis]
|
|
929
|
+
* @property {ScrollThresholdValue|ScrollThresholdParam|ScrollThresholdCallback|((observer: ScrollObserver) => ScrollThresholdValue|ScrollThresholdParam|ScrollThresholdCallback)} [enter]
|
|
930
|
+
* @property {ScrollThresholdValue|ScrollThresholdParam|ScrollThresholdCallback|((observer: ScrollObserver) => ScrollThresholdValue|ScrollThresholdParam|ScrollThresholdCallback)} [leave]
|
|
931
|
+
* @property {Boolean|((observer: ScrollObserver) => Boolean)} [repeat]
|
|
932
|
+
* @property {Boolean} [debug]
|
|
933
|
+
* @property {Callback<ScrollObserver>} [onEnter]
|
|
934
|
+
* @property {Callback<ScrollObserver>} [onLeave]
|
|
935
|
+
* @property {Callback<ScrollObserver>} [onEnterForward]
|
|
936
|
+
* @property {Callback<ScrollObserver>} [onLeaveForward]
|
|
937
|
+
* @property {Callback<ScrollObserver>} [onEnterBackward]
|
|
938
|
+
* @property {Callback<ScrollObserver>} [onLeaveBackward]
|
|
939
|
+
* @property {Callback<ScrollObserver>} [onUpdate]
|
|
940
|
+
* @property {Callback<ScrollObserver>} [onSyncComplete]
|
|
941
|
+
*/
|
|
942
|
+
|
|
943
|
+
// Draggable types /////////////////////////////////////////////////////////////
|
|
809
944
|
|
|
810
945
|
/**
|
|
811
946
|
* @typedef {Object} DraggableAxisParam
|
|
@@ -854,7 +989,7 @@ const DataValues = props => {
|
|
|
854
989
|
* @property {Callback<Draggable>} [onAfterResize]
|
|
855
990
|
*/
|
|
856
991
|
|
|
857
|
-
// Text types
|
|
992
|
+
// Text types //////////////////////////////////////////////////////////////////
|
|
858
993
|
|
|
859
994
|
/**
|
|
860
995
|
* @typedef {Object} splitTemplateParams
|
|
@@ -883,7 +1018,7 @@ const DataValues = props => {
|
|
|
883
1018
|
* @property {Boolean} [debug]
|
|
884
1019
|
*/
|
|
885
1020
|
|
|
886
|
-
// SVG types
|
|
1021
|
+
// SVG types ///////////////////////////////////////////////////////////////////
|
|
887
1022
|
|
|
888
1023
|
/**
|
|
889
1024
|
* @typedef {SVGGeometryElement & {
|
|
@@ -1043,13 +1178,13 @@ const globals = {
|
|
|
1043
1178
|
defaults,
|
|
1044
1179
|
/** @type {Number} */
|
|
1045
1180
|
precision: 4,
|
|
1046
|
-
/** @type {Number} */
|
|
1181
|
+
/** @type {Number} equals 1 in ms mode, 0.001 in s mode */
|
|
1047
1182
|
timeScale: 1,
|
|
1048
1183
|
/** @type {Number} */
|
|
1049
1184
|
tickThreshold: 200,
|
|
1050
1185
|
};
|
|
1051
1186
|
|
|
1052
|
-
const globalVersions = { version: '4.1.
|
|
1187
|
+
const globalVersions = { version: '4.1.3', engine: null };
|
|
1053
1188
|
|
|
1054
1189
|
if (isBrowser) {
|
|
1055
1190
|
if (!win.AnimeJS) win.AnimeJS = [];
|
|
@@ -1072,7 +1207,6 @@ const toLowerCase = str => str.replace(lowerCaseRgx, '$1-$2').toLowerCase();
|
|
|
1072
1207
|
*/
|
|
1073
1208
|
const stringStartsWith = (str, sub) => str.indexOf(sub) === 0;
|
|
1074
1209
|
|
|
1075
|
-
// Time
|
|
1076
1210
|
// Note: Date.now is used instead of performance.now since it is precise enough for timings calculations, performs slightly faster and works in Node.js environement.
|
|
1077
1211
|
const now = Date.now;
|
|
1078
1212
|
|
|
@@ -1774,9 +1908,10 @@ class Engine extends Clock {
|
|
|
1774
1908
|
this.pauseOnDocumentHidden = true;
|
|
1775
1909
|
/** @type {DefaultsParams} */
|
|
1776
1910
|
this.defaults = defaults;
|
|
1777
|
-
this.paused = isBrowser && doc.hidden ? true : false;
|
|
1911
|
+
// this.paused = isBrowser && doc.hidden ? true : false;
|
|
1912
|
+
this.paused = true;
|
|
1778
1913
|
/** @type {Number|NodeJS.Immediate} */
|
|
1779
|
-
this.reqId =
|
|
1914
|
+
this.reqId = 0;
|
|
1780
1915
|
}
|
|
1781
1916
|
|
|
1782
1917
|
update() {
|
|
@@ -1811,13 +1946,16 @@ class Engine extends Clock {
|
|
|
1811
1946
|
}
|
|
1812
1947
|
|
|
1813
1948
|
wake() {
|
|
1814
|
-
if (this.useDefaultMainLoop && !this.reqId
|
|
1949
|
+
if (this.useDefaultMainLoop && !this.reqId) {
|
|
1950
|
+
// Imediatly request a tick to update engine._elapsedTime and get accurate offsetPosition calculation in timer.js
|
|
1951
|
+
this.requestTick(now());
|
|
1815
1952
|
this.reqId = engineTickMethod(tickEngine);
|
|
1816
1953
|
}
|
|
1817
1954
|
return this;
|
|
1818
1955
|
}
|
|
1819
1956
|
|
|
1820
1957
|
pause() {
|
|
1958
|
+
if (!this.reqId) return;
|
|
1821
1959
|
this.paused = true;
|
|
1822
1960
|
return killEngine();
|
|
1823
1961
|
}
|
|
@@ -1958,6 +2096,7 @@ function getNodeList(v) {
|
|
|
1958
2096
|
*/
|
|
1959
2097
|
function parseTargets(targets) {
|
|
1960
2098
|
if (isNil(targets)) return /** @type {TargetsArray} */([]);
|
|
2099
|
+
if (!isBrowser) return /** @type {JSTargetsArray} */(isArr(targets) && targets.flat(Infinity) || [targets]);
|
|
1961
2100
|
if (isArr(targets)) {
|
|
1962
2101
|
const flattened = targets.flat(Infinity);
|
|
1963
2102
|
/** @type {TargetsArray} */
|
|
@@ -1998,7 +2137,6 @@ function parseTargets(targets) {
|
|
|
1998
2137
|
}
|
|
1999
2138
|
return parsed;
|
|
2000
2139
|
}
|
|
2001
|
-
if (!isBrowser) return /** @type {JSTargetsArray} */([targets]);
|
|
2002
2140
|
const nodeList = getNodeList(targets);
|
|
2003
2141
|
if (nodeList) return /** @type {DOMTargetsArray} */(Array.from(nodeList));
|
|
2004
2142
|
return /** @type {TargetsArray} */([targets]);
|
|
@@ -2437,12 +2575,16 @@ const composeTween = (tween, siblings) => {
|
|
|
2437
2575
|
|
|
2438
2576
|
const prevChangeStartTime = prevSibling._startTime;
|
|
2439
2577
|
const prevTLOffset = prevAbsEndTime - (prevChangeStartTime + prevSibling._updateDuration);
|
|
2578
|
+
// Rounding is necessary here to minimize floating point errors when working in seconds
|
|
2579
|
+
const updatedPrevChangeDuration = round(absoluteUpdateStartTime - prevTLOffset - prevChangeStartTime, 12);
|
|
2440
2580
|
|
|
2441
|
-
prevSibling._changeDuration =
|
|
2442
|
-
prevSibling._currentTime =
|
|
2581
|
+
prevSibling._changeDuration = updatedPrevChangeDuration;
|
|
2582
|
+
prevSibling._currentTime = updatedPrevChangeDuration;
|
|
2443
2583
|
prevSibling._isOverlapped = 1;
|
|
2444
2584
|
|
|
2445
|
-
if
|
|
2585
|
+
// Override the previous tween if its new _changeDuration is lower than minValue
|
|
2586
|
+
// TODO: See if it's even neceseeary to test against minValue, checking for 0 might be enough
|
|
2587
|
+
if (updatedPrevChangeDuration < minValue) {
|
|
2446
2588
|
overrideTween(prevSibling);
|
|
2447
2589
|
}
|
|
2448
2590
|
}
|
|
@@ -2473,7 +2615,7 @@ const composeTween = (tween, siblings) => {
|
|
|
2473
2615
|
prevParent.cancel();
|
|
2474
2616
|
// Previously, calling .cancel() on a timeline child would affect the render order of other children
|
|
2475
2617
|
// Worked around this by marking it as .completed and using .pause() for safe removal in the engine loop
|
|
2476
|
-
// This is no longer needed since timeline tween composition is now handled
|
|
2618
|
+
// This is no longer needed since timeline tween composition is now handled separately
|
|
2477
2619
|
// Keeping this here for reference
|
|
2478
2620
|
// prevParent.completed = true;
|
|
2479
2621
|
// prevParent.pause();
|
|
@@ -2670,18 +2812,17 @@ class Timer extends Clock {
|
|
|
2670
2812
|
/** @type {Number} */(timerLoop) < 0 ? Infinity :
|
|
2671
2813
|
/** @type {Number} */(timerLoop) + 1;
|
|
2672
2814
|
|
|
2815
|
+
|
|
2673
2816
|
let offsetPosition = 0;
|
|
2674
2817
|
|
|
2675
2818
|
if (parent) {
|
|
2676
2819
|
offsetPosition = parentPosition;
|
|
2677
2820
|
} else {
|
|
2678
|
-
|
|
2679
|
-
//
|
|
2680
|
-
if (engine.
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
}
|
|
2684
|
-
offsetPosition = startTime - engine._startTime;
|
|
2821
|
+
// Make sure to tick the engine once if not currently running to get up to date engine._elapsedTime
|
|
2822
|
+
// to avoid big gaps with the following offsetPosition calculation
|
|
2823
|
+
if (!engine.reqId) engine.requestTick(now());
|
|
2824
|
+
// Make sure to scale the offset position with globals.timeScale to properly handle seconds unit
|
|
2825
|
+
offsetPosition = (engine._elapsedTime - engine._startTime) * globals.timeScale;
|
|
2685
2826
|
}
|
|
2686
2827
|
|
|
2687
2828
|
// Timer's parameters
|
|
@@ -2882,6 +3023,9 @@ class Timer extends Clock {
|
|
|
2882
3023
|
/** @return {this} */
|
|
2883
3024
|
resetTime() {
|
|
2884
3025
|
const timeScale = 1 / (this._speed * engine._speed);
|
|
3026
|
+
// TODO: See if we can safely use engine._elapsedTime here
|
|
3027
|
+
// if (!engine.reqId) engine.requestTick(now())
|
|
3028
|
+
// this._startTime = engine._elapsedTime - (this._currentTime + this._delay) * timeScale;
|
|
2885
3029
|
this._startTime = now() - (this._currentTime + this._delay) * timeScale;
|
|
2886
3030
|
return this;
|
|
2887
3031
|
}
|
|
@@ -3080,10 +3224,10 @@ const binarySubdivide = (aX, mX1, mX2) => {
|
|
|
3080
3224
|
};
|
|
3081
3225
|
|
|
3082
3226
|
/**
|
|
3083
|
-
* @param {Number} [mX1]
|
|
3084
|
-
* @param {Number} [mY1]
|
|
3085
|
-
* @param {Number} [mX2]
|
|
3086
|
-
* @param {Number} [mY2]
|
|
3227
|
+
* @param {Number} [mX1] The x coordinate of the first point
|
|
3228
|
+
* @param {Number} [mY1] The y coordinate of the first point
|
|
3229
|
+
* @param {Number} [mX2] The x coordinate of the second point
|
|
3230
|
+
* @param {Number} [mY2] The y coordinate of the second point
|
|
3087
3231
|
* @return {EasingFunction}
|
|
3088
3232
|
*/
|
|
3089
3233
|
|
|
@@ -3106,7 +3250,7 @@ const steps = (steps = 10, fromStart) => {
|
|
|
3106
3250
|
/**
|
|
3107
3251
|
* Without parameters, the linear function creates a non-eased transition.
|
|
3108
3252
|
* Parameters, if used, creates a piecewise linear easing by interpolating linearly between the specified points.
|
|
3109
|
-
* @param {...String|Number}
|
|
3253
|
+
* @param {...(String|Number)} args - Points
|
|
3110
3254
|
* @return {EasingFunction}
|
|
3111
3255
|
*/
|
|
3112
3256
|
const linear = (...args) => {
|
|
@@ -3753,7 +3897,8 @@ class JSAnimation extends Timer {
|
|
|
3753
3897
|
const isFromToArray = isArr(tweenToValue);
|
|
3754
3898
|
const isFromToValue = isFromToArray || (hasFromvalue && hasToValue);
|
|
3755
3899
|
const tweenStartTime = prevTween ? lastTweenChangeEndTime + tweenDelay : tweenDelay;
|
|
3756
|
-
|
|
3900
|
+
// Rounding is necessary here to minimize floating point errors when working in seconds
|
|
3901
|
+
const absoluteStartTime = round(absoluteOffsetTime + tweenStartTime, 12);
|
|
3757
3902
|
|
|
3758
3903
|
// Force a onRender callback if the animation contains at least one from value and autoplay is set to false
|
|
3759
3904
|
if (!shouldTriggerRender && (hasFromvalue || isFromToArray)) shouldTriggerRender = 1;
|
|
@@ -3881,7 +4026,7 @@ class JSAnimation extends Timer {
|
|
|
3881
4026
|
|
|
3882
4027
|
// Tween factory
|
|
3883
4028
|
|
|
3884
|
-
// Rounding is necessary here to minimize floating point errors
|
|
4029
|
+
// Rounding is necessary here to minimize floating point errors when working in seconds
|
|
3885
4030
|
const tweenUpdateDuration = round(+tweenDuration || minValue, 12);
|
|
3886
4031
|
|
|
3887
4032
|
/** @type {Tween} */
|
|
@@ -3930,7 +4075,7 @@ class JSAnimation extends Timer {
|
|
|
3930
4075
|
if (isNaN(firstTweenChangeStartTime)) {
|
|
3931
4076
|
firstTweenChangeStartTime = tween._startTime;
|
|
3932
4077
|
}
|
|
3933
|
-
// Rounding is necessary here to minimize floating point errors
|
|
4078
|
+
// Rounding is necessary here to minimize floating point errors when working in seconds
|
|
3934
4079
|
lastTweenChangeEndTime = round(tweenStartTime + tweenUpdateDuration, 12);
|
|
3935
4080
|
prevTween = tween;
|
|
3936
4081
|
animationAnimationLength++;
|
|
@@ -426,14 +426,14 @@ const DataValues = props => {
|
|
|
426
426
|
|
|
427
427
|
/**
|
|
428
428
|
* anime.js - ESM
|
|
429
|
-
* @version v4.1.
|
|
429
|
+
* @version v4.1.3
|
|
430
430
|
* @author Julian Garnier
|
|
431
431
|
* @license MIT
|
|
432
432
|
* @copyright (c) 2025 Julian Garnier
|
|
433
433
|
* @see https://animejs.com
|
|
434
434
|
*/
|
|
435
435
|
|
|
436
|
-
// Global types
|
|
436
|
+
// Global types ////////////////////////////////////////////////////////////////
|
|
437
437
|
|
|
438
438
|
/**
|
|
439
439
|
* @typedef {Object} DefaultsParams
|
|
@@ -464,17 +464,18 @@ const DataValues = props => {
|
|
|
464
464
|
/** @typedef {JSAnimation|Timeline} Renderable */
|
|
465
465
|
/** @typedef {Timer|Renderable} Tickable */
|
|
466
466
|
/** @typedef {Timer&JSAnimation&Timeline} CallbackArgument */
|
|
467
|
-
/** @typedef {Animatable|Tickable|Draggable|ScrollObserver|TextSplitter|Scope} Revertible */
|
|
467
|
+
/** @typedef {Animatable|Tickable|WAAPIAnimation|Draggable|ScrollObserver|TextSplitter|Scope} Revertible */
|
|
468
468
|
|
|
469
|
-
// Stagger types
|
|
469
|
+
// Stagger types ///////////////////////////////////////////////////////////////
|
|
470
470
|
|
|
471
471
|
/**
|
|
472
|
+
* @template T
|
|
472
473
|
* @callback StaggerFunction
|
|
473
474
|
* @param {Target} [target]
|
|
474
475
|
* @param {Number} [index]
|
|
475
476
|
* @param {Number} [length]
|
|
476
477
|
* @param {Timeline} [tl]
|
|
477
|
-
* @return {
|
|
478
|
+
* @return {T}
|
|
478
479
|
*/
|
|
479
480
|
|
|
480
481
|
/**
|
|
@@ -484,13 +485,13 @@ const DataValues = props => {
|
|
|
484
485
|
* @property {Boolean} [reversed]
|
|
485
486
|
* @property {Array.<Number>} [grid]
|
|
486
487
|
* @property {('x'|'y')} [axis]
|
|
487
|
-
* @property {String|
|
|
488
|
+
* @property {String|((target: Target, i: Number, length: Number) => Number)} [use]
|
|
488
489
|
* @property {Number} [total]
|
|
489
490
|
* @property {EasingParam} [ease]
|
|
490
491
|
* @property {TweenModifier} [modifier]
|
|
491
492
|
*/
|
|
492
493
|
|
|
493
|
-
// Eases types
|
|
494
|
+
// Eases types /////////////////////////////////////////////////////////////////
|
|
494
495
|
|
|
495
496
|
/**
|
|
496
497
|
* @callback EasingFunction
|
|
@@ -518,7 +519,17 @@ const DataValues = props => {
|
|
|
518
519
|
/** @typedef {Array.<TargetSelector>|TargetSelector} TargetsParam */
|
|
519
520
|
/** @typedef {Array.<Target>} TargetsArray */
|
|
520
521
|
|
|
521
|
-
|
|
522
|
+
// Spring types ////////////////////////////////////////////////////////////////
|
|
523
|
+
|
|
524
|
+
/**
|
|
525
|
+
* @typedef {Object} SpringParams
|
|
526
|
+
* @property {Number} [mass=1] - Mass, default 1
|
|
527
|
+
* @property {Number} [stiffness=100] - Stiffness, default 100
|
|
528
|
+
* @property {Number} [damping=10] - Damping, default 10
|
|
529
|
+
* @property {Number} [velocity=0] - Initial velocity, default 0
|
|
530
|
+
*/
|
|
531
|
+
|
|
532
|
+
// Callback types //////////////////////////////////////////////////////////////
|
|
522
533
|
|
|
523
534
|
/**
|
|
524
535
|
* @template T
|
|
@@ -545,7 +556,7 @@ const DataValues = props => {
|
|
|
545
556
|
* @property {Callback<T>} [onRender]
|
|
546
557
|
*/
|
|
547
558
|
|
|
548
|
-
// Timer types
|
|
559
|
+
// Timer types /////////////////////////////////////////////////////////////////
|
|
549
560
|
|
|
550
561
|
/**
|
|
551
562
|
* @typedef {Object} TimerOptions
|
|
@@ -567,7 +578,7 @@ const DataValues = props => {
|
|
|
567
578
|
* @typedef {TimerOptions & TickableCallbacks<Timer>} TimerParams
|
|
568
579
|
*/
|
|
569
580
|
|
|
570
|
-
// Tween types
|
|
581
|
+
// Tween types /////////////////////////////////////////////////////////////////
|
|
571
582
|
|
|
572
583
|
/**
|
|
573
584
|
* @callback FunctionValue
|
|
@@ -638,7 +649,7 @@ const DataValues = props => {
|
|
|
638
649
|
/** @typedef {WeakMap.<Target, TweenLookups>} TweenReplaceLookups */
|
|
639
650
|
/** @typedef {Map.<Target, TweenLookups>} TweenAdditiveLookups */
|
|
640
651
|
|
|
641
|
-
//
|
|
652
|
+
// JSAnimation types ///////////////////////////////////////////////////////////
|
|
642
653
|
|
|
643
654
|
/**
|
|
644
655
|
* @typedef {Number|String|FunctionValue} TweenParamValue
|
|
@@ -712,7 +723,36 @@ const DataValues = props => {
|
|
|
712
723
|
* @typedef {Record<String, TweenOptions | Callback<JSAnimation> | TweenModifier | boolean | PercentageKeyframes | DurationKeyframes | ScrollObserver> & TimerOptions & AnimationOptions & TweenParamsOptions & TickableCallbacks<JSAnimation> & RenderableCallbacks<JSAnimation>} AnimationParams
|
|
713
724
|
*/
|
|
714
725
|
|
|
715
|
-
// Timeline types
|
|
726
|
+
// Timeline types //////////////////////////////////////////////////////////////
|
|
727
|
+
|
|
728
|
+
/**
|
|
729
|
+
* Accepts:<br>
|
|
730
|
+
* - `Number` - Absolute position in milliseconds (e.g., `500` places element at exactly 500ms)<br>
|
|
731
|
+
* - `'+=Number'` - Addition: Position element X ms after the last element (e.g., `'+=100'`)<br>
|
|
732
|
+
* - `'-=Number'` - Subtraction: Position element X ms before the last element's end (e.g., `'-=100'`)<br>
|
|
733
|
+
* - `'*=Number'` - Multiplier: Position element at a fraction of the total duration (e.g., `'*=.5'` for halfway)<br>
|
|
734
|
+
* - `'<'` - Previous end: Position element at the end position of the previous element<br>
|
|
735
|
+
* - `'<<'` - Previous start: Position element at the start position of the previous element<br>
|
|
736
|
+
* - `'<<+=Number'` - Combined: Position element relative to previous element's start (e.g., `'<<+=250'`)<br>
|
|
737
|
+
* - `'label'` - Label: Position element at a named label position (e.g., `'My Label'`)
|
|
738
|
+
*
|
|
739
|
+
* @typedef {Number|`+=${Number}`|`-=${Number}`|`*=${Number}`|'<'|'<<'|`<<+=${Number}`|`<<-=${Number}`|String} TimelinePosition
|
|
740
|
+
*/
|
|
741
|
+
|
|
742
|
+
/**
|
|
743
|
+
* Accepts:<br>
|
|
744
|
+
* - `Number` - Absolute position in milliseconds (e.g., `500` places animation at exactly 500ms)<br>
|
|
745
|
+
* - `'+=Number'` - Addition: Position animation X ms after the last animation (e.g., `'+=100'`)<br>
|
|
746
|
+
* - `'-=Number'` - Subtraction: Position animation X ms before the last animation's end (e.g., `'-=100'`)<br>
|
|
747
|
+
* - `'*=Number'` - Multiplier: Position animation at a fraction of the total duration (e.g., `'*=.5'` for halfway)<br>
|
|
748
|
+
* - `'<'` - Previous end: Position animation at the end position of the previous animation<br>
|
|
749
|
+
* - `'<<'` - Previous start: Position animation at the start position of the previous animation<br>
|
|
750
|
+
* - `'<<+=Number'` - Combined: Position animation relative to previous animation's start (e.g., `'<<+=250'`)<br>
|
|
751
|
+
* - `'label'` - Label: Position animation at a named label position (e.g., `'My Label'`)<br>
|
|
752
|
+
* - `stagger(String|Nummber)` - Stagger multi-elements animation positions (e.g., 10, 20, 30...)
|
|
753
|
+
*
|
|
754
|
+
* @typedef {TimelinePosition | StaggerFunction<Number|String>} TimelineAnimationPosition
|
|
755
|
+
*/
|
|
716
756
|
|
|
717
757
|
/**
|
|
718
758
|
* @typedef {Object} TimelineOptions
|
|
@@ -724,7 +764,57 @@ const DataValues = props => {
|
|
|
724
764
|
* @typedef {TimerOptions & TimelineOptions & TickableCallbacks<Timeline> & RenderableCallbacks<Timeline>} TimelineParams
|
|
725
765
|
*/
|
|
726
766
|
|
|
727
|
-
//
|
|
767
|
+
// WAAPIAnimation types ////////////////////////////////////////////////////////
|
|
768
|
+
|
|
769
|
+
/**
|
|
770
|
+
* @typedef {String|Number|Array<String>|Array<Number>} WAAPITweenValue
|
|
771
|
+
*/
|
|
772
|
+
|
|
773
|
+
/**
|
|
774
|
+
* @callback WAAPIFunctionValue
|
|
775
|
+
* @param {DOMTarget} target - The animated target
|
|
776
|
+
* @param {Number} index - The target index
|
|
777
|
+
* @param {Number} length - The total number of animated targets
|
|
778
|
+
* @return {WAAPITweenValue}
|
|
779
|
+
*/
|
|
780
|
+
|
|
781
|
+
/**
|
|
782
|
+
* @typedef {WAAPITweenValue|WAAPIFunctionValue|Array<String|Number|WAAPIFunctionValue>} WAAPIKeyframeValue
|
|
783
|
+
*/
|
|
784
|
+
|
|
785
|
+
/**
|
|
786
|
+
* @typedef {(animation: WAAPIAnimation) => void} WAAPICallback
|
|
787
|
+
*/
|
|
788
|
+
|
|
789
|
+
/**
|
|
790
|
+
* @typedef {Object} WAAPITweenOptions
|
|
791
|
+
* @property {WAAPIKeyframeValue} [to]
|
|
792
|
+
* @property {WAAPIKeyframeValue} [from]
|
|
793
|
+
* @property {Number|WAAPIFunctionValue} [duration]
|
|
794
|
+
* @property {Number|WAAPIFunctionValue} [delay]
|
|
795
|
+
* @property {EasingParam} [ease]
|
|
796
|
+
* @property {CompositeOperation} [composition]
|
|
797
|
+
*/
|
|
798
|
+
|
|
799
|
+
/**
|
|
800
|
+
* @typedef {Object} WAAPIAnimationOptions
|
|
801
|
+
* @property {Number|Boolean} [loop]
|
|
802
|
+
* @property {Boolean} [Reversed]
|
|
803
|
+
* @property {Boolean} [Alternate]
|
|
804
|
+
* @property {Boolean|ScrollObserver} [autoplay]
|
|
805
|
+
* @property {Number} [playbackRate]
|
|
806
|
+
* @property {Number|WAAPIFunctionValue} [duration]
|
|
807
|
+
* @property {Number|WAAPIFunctionValue} [delay]
|
|
808
|
+
* @property {EasingParam} [ease]
|
|
809
|
+
* @property {CompositeOperation} [composition]
|
|
810
|
+
* @property {WAAPICallback} [onComplete]
|
|
811
|
+
*/
|
|
812
|
+
|
|
813
|
+
/**
|
|
814
|
+
* @typedef {Record<String, WAAPIKeyframeValue | WAAPIAnimationOptions | Boolean | ScrollObserver | WAAPICallback | EasingParam | WAAPITweenOptions> & WAAPIAnimationOptions} WAAPIAnimationParams
|
|
815
|
+
*/
|
|
816
|
+
|
|
817
|
+
// Animatable types ////////////////////////////////////////////////////////////
|
|
728
818
|
|
|
729
819
|
/**
|
|
730
820
|
* @callback AnimatablePropertySetter
|
|
@@ -760,7 +850,7 @@ const DataValues = props => {
|
|
|
760
850
|
* @typedef {Record<String, TweenParamValue | EasingParam | TweenModifier | TweenComposition | AnimatablePropertyParamsOptions> & AnimatablePropertyParamsOptions} AnimatableParams
|
|
761
851
|
*/
|
|
762
852
|
|
|
763
|
-
// Scope types
|
|
853
|
+
// Scope types /////////////////////////////////////////////////////////////////
|
|
764
854
|
|
|
765
855
|
/**
|
|
766
856
|
* @typedef {Object} ReactRef
|
|
@@ -803,7 +893,52 @@ const DataValues = props => {
|
|
|
803
893
|
* @return {ScopeCleanupCallback|void}
|
|
804
894
|
*/
|
|
805
895
|
|
|
806
|
-
//
|
|
896
|
+
// Scroll types ////////////////////////////////////////////////////////////////
|
|
897
|
+
|
|
898
|
+
/**
|
|
899
|
+
* @typedef {String|Number} ScrollThresholdValue
|
|
900
|
+
*/
|
|
901
|
+
|
|
902
|
+
/**
|
|
903
|
+
* @typedef {Object} ScrollThresholdParam
|
|
904
|
+
* @property {ScrollThresholdValue} [target]
|
|
905
|
+
* @property {ScrollThresholdValue} [container]
|
|
906
|
+
*/
|
|
907
|
+
|
|
908
|
+
/**
|
|
909
|
+
* @callback ScrollObserverAxisCallback
|
|
910
|
+
* @param {ScrollObserver} self
|
|
911
|
+
* @return {'x'|'y'}
|
|
912
|
+
*/
|
|
913
|
+
|
|
914
|
+
/**
|
|
915
|
+
* @callback ScrollThresholdCallback
|
|
916
|
+
* @param {ScrollObserver} self
|
|
917
|
+
* @return {ScrollThresholdValue|ScrollThresholdParam}
|
|
918
|
+
*/
|
|
919
|
+
|
|
920
|
+
/**
|
|
921
|
+
* @typedef {Object} ScrollObserverParams
|
|
922
|
+
* @property {Number|String} [id]
|
|
923
|
+
* @property {Boolean|Number|String|EasingParam} [sync]
|
|
924
|
+
* @property {TargetsParam} [container]
|
|
925
|
+
* @property {TargetsParam} [target]
|
|
926
|
+
* @property {'x'|'y'|ScrollObserverAxisCallback|((observer: ScrollObserver) => 'x'|'y'|ScrollObserverAxisCallback)} [axis]
|
|
927
|
+
* @property {ScrollThresholdValue|ScrollThresholdParam|ScrollThresholdCallback|((observer: ScrollObserver) => ScrollThresholdValue|ScrollThresholdParam|ScrollThresholdCallback)} [enter]
|
|
928
|
+
* @property {ScrollThresholdValue|ScrollThresholdParam|ScrollThresholdCallback|((observer: ScrollObserver) => ScrollThresholdValue|ScrollThresholdParam|ScrollThresholdCallback)} [leave]
|
|
929
|
+
* @property {Boolean|((observer: ScrollObserver) => Boolean)} [repeat]
|
|
930
|
+
* @property {Boolean} [debug]
|
|
931
|
+
* @property {Callback<ScrollObserver>} [onEnter]
|
|
932
|
+
* @property {Callback<ScrollObserver>} [onLeave]
|
|
933
|
+
* @property {Callback<ScrollObserver>} [onEnterForward]
|
|
934
|
+
* @property {Callback<ScrollObserver>} [onLeaveForward]
|
|
935
|
+
* @property {Callback<ScrollObserver>} [onEnterBackward]
|
|
936
|
+
* @property {Callback<ScrollObserver>} [onLeaveBackward]
|
|
937
|
+
* @property {Callback<ScrollObserver>} [onUpdate]
|
|
938
|
+
* @property {Callback<ScrollObserver>} [onSyncComplete]
|
|
939
|
+
*/
|
|
940
|
+
|
|
941
|
+
// Draggable types /////////////////////////////////////////////////////////////
|
|
807
942
|
|
|
808
943
|
/**
|
|
809
944
|
* @typedef {Object} DraggableAxisParam
|
|
@@ -852,7 +987,7 @@ const DataValues = props => {
|
|
|
852
987
|
* @property {Callback<Draggable>} [onAfterResize]
|
|
853
988
|
*/
|
|
854
989
|
|
|
855
|
-
// Text types
|
|
990
|
+
// Text types //////////////////////////////////////////////////////////////////
|
|
856
991
|
|
|
857
992
|
/**
|
|
858
993
|
* @typedef {Object} splitTemplateParams
|
|
@@ -881,7 +1016,7 @@ const DataValues = props => {
|
|
|
881
1016
|
* @property {Boolean} [debug]
|
|
882
1017
|
*/
|
|
883
1018
|
|
|
884
|
-
// SVG types
|
|
1019
|
+
// SVG types ///////////////////////////////////////////////////////////////////
|
|
885
1020
|
|
|
886
1021
|
/**
|
|
887
1022
|
* @typedef {SVGGeometryElement & {
|
|
@@ -1041,13 +1176,13 @@ const globals = {
|
|
|
1041
1176
|
defaults,
|
|
1042
1177
|
/** @type {Number} */
|
|
1043
1178
|
precision: 4,
|
|
1044
|
-
/** @type {Number} */
|
|
1179
|
+
/** @type {Number} equals 1 in ms mode, 0.001 in s mode */
|
|
1045
1180
|
timeScale: 1,
|
|
1046
1181
|
/** @type {Number} */
|
|
1047
1182
|
tickThreshold: 200,
|
|
1048
1183
|
};
|
|
1049
1184
|
|
|
1050
|
-
const globalVersions = { version: '4.1.
|
|
1185
|
+
const globalVersions = { version: '4.1.3', engine: null };
|
|
1051
1186
|
|
|
1052
1187
|
if (isBrowser) {
|
|
1053
1188
|
if (!win.AnimeJS) win.AnimeJS = [];
|
|
@@ -1070,7 +1205,6 @@ const toLowerCase = str => str.replace(lowerCaseRgx, '$1-$2').toLowerCase();
|
|
|
1070
1205
|
*/
|
|
1071
1206
|
const stringStartsWith = (str, sub) => str.indexOf(sub) === 0;
|
|
1072
1207
|
|
|
1073
|
-
// Time
|
|
1074
1208
|
// Note: Date.now is used instead of performance.now since it is precise enough for timings calculations, performs slightly faster and works in Node.js environement.
|
|
1075
1209
|
const now = Date.now;
|
|
1076
1210
|
|
|
@@ -1772,9 +1906,10 @@ class Engine extends Clock {
|
|
|
1772
1906
|
this.pauseOnDocumentHidden = true;
|
|
1773
1907
|
/** @type {DefaultsParams} */
|
|
1774
1908
|
this.defaults = defaults;
|
|
1775
|
-
this.paused = isBrowser && doc.hidden ? true : false;
|
|
1909
|
+
// this.paused = isBrowser && doc.hidden ? true : false;
|
|
1910
|
+
this.paused = true;
|
|
1776
1911
|
/** @type {Number|NodeJS.Immediate} */
|
|
1777
|
-
this.reqId =
|
|
1912
|
+
this.reqId = 0;
|
|
1778
1913
|
}
|
|
1779
1914
|
|
|
1780
1915
|
update() {
|
|
@@ -1809,13 +1944,16 @@ class Engine extends Clock {
|
|
|
1809
1944
|
}
|
|
1810
1945
|
|
|
1811
1946
|
wake() {
|
|
1812
|
-
if (this.useDefaultMainLoop && !this.reqId
|
|
1947
|
+
if (this.useDefaultMainLoop && !this.reqId) {
|
|
1948
|
+
// Imediatly request a tick to update engine._elapsedTime and get accurate offsetPosition calculation in timer.js
|
|
1949
|
+
this.requestTick(now());
|
|
1813
1950
|
this.reqId = engineTickMethod(tickEngine);
|
|
1814
1951
|
}
|
|
1815
1952
|
return this;
|
|
1816
1953
|
}
|
|
1817
1954
|
|
|
1818
1955
|
pause() {
|
|
1956
|
+
if (!this.reqId) return;
|
|
1819
1957
|
this.paused = true;
|
|
1820
1958
|
return killEngine();
|
|
1821
1959
|
}
|
|
@@ -1956,6 +2094,7 @@ function getNodeList(v) {
|
|
|
1956
2094
|
*/
|
|
1957
2095
|
function parseTargets(targets) {
|
|
1958
2096
|
if (isNil(targets)) return /** @type {TargetsArray} */([]);
|
|
2097
|
+
if (!isBrowser) return /** @type {JSTargetsArray} */(isArr(targets) && targets.flat(Infinity) || [targets]);
|
|
1959
2098
|
if (isArr(targets)) {
|
|
1960
2099
|
const flattened = targets.flat(Infinity);
|
|
1961
2100
|
/** @type {TargetsArray} */
|
|
@@ -1996,7 +2135,6 @@ function parseTargets(targets) {
|
|
|
1996
2135
|
}
|
|
1997
2136
|
return parsed;
|
|
1998
2137
|
}
|
|
1999
|
-
if (!isBrowser) return /** @type {JSTargetsArray} */([targets]);
|
|
2000
2138
|
const nodeList = getNodeList(targets);
|
|
2001
2139
|
if (nodeList) return /** @type {DOMTargetsArray} */(Array.from(nodeList));
|
|
2002
2140
|
return /** @type {TargetsArray} */([targets]);
|
|
@@ -2435,12 +2573,16 @@ const composeTween = (tween, siblings) => {
|
|
|
2435
2573
|
|
|
2436
2574
|
const prevChangeStartTime = prevSibling._startTime;
|
|
2437
2575
|
const prevTLOffset = prevAbsEndTime - (prevChangeStartTime + prevSibling._updateDuration);
|
|
2576
|
+
// Rounding is necessary here to minimize floating point errors when working in seconds
|
|
2577
|
+
const updatedPrevChangeDuration = round(absoluteUpdateStartTime - prevTLOffset - prevChangeStartTime, 12);
|
|
2438
2578
|
|
|
2439
|
-
prevSibling._changeDuration =
|
|
2440
|
-
prevSibling._currentTime =
|
|
2579
|
+
prevSibling._changeDuration = updatedPrevChangeDuration;
|
|
2580
|
+
prevSibling._currentTime = updatedPrevChangeDuration;
|
|
2441
2581
|
prevSibling._isOverlapped = 1;
|
|
2442
2582
|
|
|
2443
|
-
if
|
|
2583
|
+
// Override the previous tween if its new _changeDuration is lower than minValue
|
|
2584
|
+
// TODO: See if it's even neceseeary to test against minValue, checking for 0 might be enough
|
|
2585
|
+
if (updatedPrevChangeDuration < minValue) {
|
|
2444
2586
|
overrideTween(prevSibling);
|
|
2445
2587
|
}
|
|
2446
2588
|
}
|
|
@@ -2471,7 +2613,7 @@ const composeTween = (tween, siblings) => {
|
|
|
2471
2613
|
prevParent.cancel();
|
|
2472
2614
|
// Previously, calling .cancel() on a timeline child would affect the render order of other children
|
|
2473
2615
|
// Worked around this by marking it as .completed and using .pause() for safe removal in the engine loop
|
|
2474
|
-
// This is no longer needed since timeline tween composition is now handled
|
|
2616
|
+
// This is no longer needed since timeline tween composition is now handled separately
|
|
2475
2617
|
// Keeping this here for reference
|
|
2476
2618
|
// prevParent.completed = true;
|
|
2477
2619
|
// prevParent.pause();
|
|
@@ -2668,18 +2810,17 @@ class Timer extends Clock {
|
|
|
2668
2810
|
/** @type {Number} */(timerLoop) < 0 ? Infinity :
|
|
2669
2811
|
/** @type {Number} */(timerLoop) + 1;
|
|
2670
2812
|
|
|
2813
|
+
|
|
2671
2814
|
let offsetPosition = 0;
|
|
2672
2815
|
|
|
2673
2816
|
if (parent) {
|
|
2674
2817
|
offsetPosition = parentPosition;
|
|
2675
2818
|
} else {
|
|
2676
|
-
|
|
2677
|
-
//
|
|
2678
|
-
if (engine.
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
}
|
|
2682
|
-
offsetPosition = startTime - engine._startTime;
|
|
2819
|
+
// Make sure to tick the engine once if not currently running to get up to date engine._elapsedTime
|
|
2820
|
+
// to avoid big gaps with the following offsetPosition calculation
|
|
2821
|
+
if (!engine.reqId) engine.requestTick(now());
|
|
2822
|
+
// Make sure to scale the offset position with globals.timeScale to properly handle seconds unit
|
|
2823
|
+
offsetPosition = (engine._elapsedTime - engine._startTime) * globals.timeScale;
|
|
2683
2824
|
}
|
|
2684
2825
|
|
|
2685
2826
|
// Timer's parameters
|
|
@@ -2880,6 +3021,9 @@ class Timer extends Clock {
|
|
|
2880
3021
|
/** @return {this} */
|
|
2881
3022
|
resetTime() {
|
|
2882
3023
|
const timeScale = 1 / (this._speed * engine._speed);
|
|
3024
|
+
// TODO: See if we can safely use engine._elapsedTime here
|
|
3025
|
+
// if (!engine.reqId) engine.requestTick(now())
|
|
3026
|
+
// this._startTime = engine._elapsedTime - (this._currentTime + this._delay) * timeScale;
|
|
2883
3027
|
this._startTime = now() - (this._currentTime + this._delay) * timeScale;
|
|
2884
3028
|
return this;
|
|
2885
3029
|
}
|
|
@@ -3078,10 +3222,10 @@ const binarySubdivide = (aX, mX1, mX2) => {
|
|
|
3078
3222
|
};
|
|
3079
3223
|
|
|
3080
3224
|
/**
|
|
3081
|
-
* @param {Number} [mX1]
|
|
3082
|
-
* @param {Number} [mY1]
|
|
3083
|
-
* @param {Number} [mX2]
|
|
3084
|
-
* @param {Number} [mY2]
|
|
3225
|
+
* @param {Number} [mX1] The x coordinate of the first point
|
|
3226
|
+
* @param {Number} [mY1] The y coordinate of the first point
|
|
3227
|
+
* @param {Number} [mX2] The x coordinate of the second point
|
|
3228
|
+
* @param {Number} [mY2] The y coordinate of the second point
|
|
3085
3229
|
* @return {EasingFunction}
|
|
3086
3230
|
*/
|
|
3087
3231
|
|
|
@@ -3104,7 +3248,7 @@ const steps = (steps = 10, fromStart) => {
|
|
|
3104
3248
|
/**
|
|
3105
3249
|
* Without parameters, the linear function creates a non-eased transition.
|
|
3106
3250
|
* Parameters, if used, creates a piecewise linear easing by interpolating linearly between the specified points.
|
|
3107
|
-
* @param {...String|Number}
|
|
3251
|
+
* @param {...(String|Number)} args - Points
|
|
3108
3252
|
* @return {EasingFunction}
|
|
3109
3253
|
*/
|
|
3110
3254
|
const linear = (...args) => {
|
|
@@ -3751,7 +3895,8 @@ class JSAnimation extends Timer {
|
|
|
3751
3895
|
const isFromToArray = isArr(tweenToValue);
|
|
3752
3896
|
const isFromToValue = isFromToArray || (hasFromvalue && hasToValue);
|
|
3753
3897
|
const tweenStartTime = prevTween ? lastTweenChangeEndTime + tweenDelay : tweenDelay;
|
|
3754
|
-
|
|
3898
|
+
// Rounding is necessary here to minimize floating point errors when working in seconds
|
|
3899
|
+
const absoluteStartTime = round(absoluteOffsetTime + tweenStartTime, 12);
|
|
3755
3900
|
|
|
3756
3901
|
// Force a onRender callback if the animation contains at least one from value and autoplay is set to false
|
|
3757
3902
|
if (!shouldTriggerRender && (hasFromvalue || isFromToArray)) shouldTriggerRender = 1;
|
|
@@ -3879,7 +4024,7 @@ class JSAnimation extends Timer {
|
|
|
3879
4024
|
|
|
3880
4025
|
// Tween factory
|
|
3881
4026
|
|
|
3882
|
-
// Rounding is necessary here to minimize floating point errors
|
|
4027
|
+
// Rounding is necessary here to minimize floating point errors when working in seconds
|
|
3883
4028
|
const tweenUpdateDuration = round(+tweenDuration || minValue, 12);
|
|
3884
4029
|
|
|
3885
4030
|
/** @type {Tween} */
|
|
@@ -3928,7 +4073,7 @@ class JSAnimation extends Timer {
|
|
|
3928
4073
|
if (isNaN(firstTweenChangeStartTime)) {
|
|
3929
4074
|
firstTweenChangeStartTime = tween._startTime;
|
|
3930
4075
|
}
|
|
3931
|
-
// Rounding is necessary here to minimize floating point errors
|
|
4076
|
+
// Rounding is necessary here to minimize floating point errors when working in seconds
|
|
3932
4077
|
lastTweenChangeEndTime = round(tweenStartTime + tweenUpdateDuration, 12);
|
|
3933
4078
|
prevTween = tween;
|
|
3934
4079
|
animationAnimationLength++;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p,b as a}from"./p-CSbg7fpQ.js";export{s as setNonce}from"./p-CSbg7fpQ.js";import{g as t}from"./p-DQuL1Twl.js";(()=>{const
|
|
1
|
+
import{p,b as a}from"./p-CSbg7fpQ.js";export{s as setNonce}from"./p-CSbg7fpQ.js";import{g as t}from"./p-DQuL1Twl.js";(()=>{const s=import.meta.url,a={};return""!==s&&(a.resourcesUrl=new URL(".",s).href),p(a)})().then((async p=>(await t(),a([["p-560b6c39",[[257,"funnel-app",{tag:[1]}]]]],p))));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as t,g as e,f as n,r as s}from"./p-CSbg7fpQ.js";const r=e=>{const n=e.hex||"currentColor",s=e.selected||!1,r=e.size||24;return t("svg",{class:e.class,width:r,height:r,viewBox:"0 0 24 24",role:"img","aria-label":"title"},t("title",null,e.label||"radio")," ",t("g",{fill:n},t("path",s?{d:"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}:{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"})),t("path",{d:"M0 0h24v24H0z",fill:"none"}))},i=[{id:1,height:400,width:100,x:10,y:10,drop:20},{id:2,height:356,width:100,x:120,y:32,drop:20},{id:3,height:312,width:100,x:230,y:54,drop:20},{id:4,height:268,width:100,x:340,y:76,drop:20},{id:5,height:224,width:100,x:450,y:98,drop:20}],o=i.map((()=>0)),l={bada55:"#bada55",navy:"#001f3f",blue:"#0074d9",aqua:"#7fdbff",teal:"#39cccc",olive:"#3d9970",green:"#2ecc40",lime:"#01ff70",yellow:"#ffdc00",orange:"#ff851b",red:"#ff4136",maroon:"#85144b",fuchsia:"#f012be",purple:"#b10dc9",black:"#111111",gray:"#aaaaaa",silver:"#dddddd"},a={slate:"#708090",slate4:"#4e5964",white:"#ffffff"},c=t=>l[t]||a[t],h=Object.keys(l),u=t=>!("isConnected"in t)||t.isConnected,d=(()=>{let t;return(...e)=>{t&&clearTimeout(t),t=setTimeout((()=>{t=0,(t=>{for(let e of t.keys())t.set(e,t.get(e).filter(u))})(...e)}),2e3)}})(),f=t=>"function"==typeof t?t():t,p=(t,e)=>{const n=t.indexOf(e);n>=0&&(t[n]=t[t.length-1],t.length--)},g="funnel-gfx-wc::app-data",b=(()=>{const t=((t,e=(t,e)=>t!==e)=>{const n=f(t);let s=new Map(Object.entries(n??{}));const r={dispose:[],get:[],set:[],reset:[]},i=new Map,o=()=>{s=new Map(Object.entries(f(t)??{})),r.reset.forEach((t=>t()))},l=t=>(r.get.forEach((e=>e(t))),s.get(t)),a=(t,n)=>{const i=s.get(t);e(n,i,t)&&(s.set(t,n),r.set.forEach((e=>e(t,n,i))))},c="undefined"==typeof Proxy?{}:new Proxy(n,{get:(t,e)=>l(e),ownKeys:()=>Array.from(s.keys()),getOwnPropertyDescriptor:()=>({enumerable:!0,configurable:!0}),has:(t,e)=>s.has(e),set:(t,e,n)=>(a(e,n),!0)}),h=(t,e)=>(r[t].push(e),()=>{p(r[t],e)});return{state:c,get:l,set:a,on:h,onChange:(e,n)=>{const s=(t,s)=>{t===e&&n(s)},r=()=>n(f(t)[e]),o=h("set",s),l=h("reset",r);return i.set(n,{setHandler:s,resetHandler:r,propName:e}),()=>{o(),l(),i.delete(n)}},use:(...t)=>{const e=t.reduce(((t,e)=>(e.set&&t.push(h("set",e.set)),e.get&&t.push(h("get",e.get)),e.reset&&t.push(h("reset",e.reset)),e.dispose&&t.push(h("dispose",e.dispose)),t)),[]);return()=>e.forEach((t=>t()))},dispose:()=>{r.dispose.forEach((t=>t())),o()},reset:o,forceUpdate:t=>{const e=s.get(t);r.set.forEach((n=>n(t,e,e)))},removeListener:(t,e)=>{const n=i.get(e);n&&n.propName===t&&(p(r.set,n.setHandler),p(r.reset,n.resetHandler),i.delete(e))}}})({count:0,pick:"bada55",values:[...o]},void 0);return t.use((()=>{if("function"!=typeof e)return{};const t=new Map;return{dispose:()=>t.clear(),get:n=>{const s=e();s&&((t,e,n)=>{const s=t.get(e);s?s.includes(n)||s.push(n):t.set(e,[n])})(t,n,s)},set:e=>{const s=t.get(e);s&&t.set(e,s.filter(n)),d(t)},reset:()=>{t.forEach((t=>t.forEach(n))),d(t)}}})()),t})(),{state:m,onChange:v}=b,x=()=>{const{count:t,pick:e,values:n}=m;(t=>{const e=JSON.stringify(t);localStorage.setItem(g,e)})({count:t,pick:e,values:n})},y={initApp:()=>{const t=(()=>{const t=localStorage.getItem(g);return t?JSON.parse(t):void 0})();if(t){const{count:e,pick:n,values:s}=t;m.count=e,m.pick=n,m.values=s}},refresh:()=>{const t=o.map((()=>Math.floor(100*Math.random())));m.count=m.count+1,m.values=t,x()},reset:()=>{m.count=0,m.values=[...o],x()},updatePick:t=>{m.pick=t,x()}},w=e=>{const{actions:n,state:s}=e,{pick:i}=s;return t("div",{id:"toolbar",class:"flex flex-wrap",role:"radiogroup"},h.map((e=>{const s=c(e),o=i==e;return t("div",{"aria-label":e,"aria-checked":o?"true":"false",role:"radio",onClick:()=>{n.updatePick(e)}},t(r,{hex:s,selected:o,label:e}))})))},C=e=>{const n=e.hex||"currentColor",s=e.size||24;return t("svg",{class:e.class,width:s,height:s,viewBox:"0 0 24 24",role:"img","aria-label":"title"},t("title",null,e.label||"chevron-double-left"),t("g",{fill:n},t("path",{d:"M18.41,7.41L17,6L11,12L17,18L18.41,16.59L13.83,12L18.41,7.41M12.41,7.41L11,6L5,12L11,18L12.41,16.59L7.83,12L12.41,7.41Z"})),t("path",{d:"M0 0h24v24H0z",fill:"none"}))},k=e=>{const n=e.hex||"currentColor",s=e.size||24;return t("svg",{class:e.class,width:s,height:s,viewBox:"0 0 24 24",role:"img","aria-label":"title"},t("title",null,e.label||"close"),t("g",{fill:n},t("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})),t("path",{d:"M0 0h24v24H0z",fill:"none"}))},_=e=>{const n=e.hex||"currentColor",s=e.size||24;return t("svg",{class:e.class,width:s,height:s,viewBox:"0 0 24 24",role:"img","aria-label":"title"},t("title",null,e.label||"refresh"),t("g",{fill:n},t("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99\n 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65\n 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35\n 2.35z"})),t("path",{d:"M0 0h24v24H0z",fill:"none"}))},M=e=>{const{actions:n,state:s}=e,{count:r}=s;return t("div",{class:"mb-10px mt-3 flex items-center"},t("button",{"aria-label":"Refresh",class:"ds1-button data-button bg-clrs-blue",onClick:()=>{n.refresh()}},t(_,{label:"Refresh"})),t("button",{"aria-label":"Reset",class:"ds1-button data-button bg-clrs-red",onClick:()=>{n.reset()}},t(k,{label:"Reset"})),t("span",{class:"flex items-center"},t(C,{size:28}),t("span",{class:"italic"},"click a button... ",t("sup",null,r))))},N=()=>t("label",{class:"ml-auto align-top text-xs italic text-clrs-slate4"},"Tailwind ","4.1.11"),$=e=>{const{state:n}=e,{values:s,pick:r,count:i}=n;return t("div",{class:"flex"},t("div",{class:"flex flex-col"},t("div",{class:"flex"},t("span",{class:"mr-10px font-bold"},"color:"),t("span",{class:"italic text-clrs-slate4"},r)),t("div",{class:"mt-5px flex"},t("span",{class:"mr-10px font-bold"},"sample:"),t("span",{class:"italic text-clrs-slate4"},`${i>0?s:"..."}`))),t(N,null))},A="undefined"!=typeof window,L=A?window:null,S=A?document:null,z={replace:0,none:1,blend:2},T=Symbol(),R=Symbol(),B=Symbol(),O=Symbol(),j=Symbol(),U=1e-11,E=1e12,D=1e3,I="",P=(()=>{const t=new Map;return t.set("x","translateX"),t.set("y","translateY"),t.set("z","translateZ"),t})(),H=["translateX","translateY","translateZ","rotate","rotateX","rotateY","rotateZ","scale","scaleX","scaleY","scaleZ","skew","skewX","skewY","perspective","matrix","matrix3d"],Z=H.reduce(((t,e)=>({...t,[e]:e+"("})),{}),X=()=>{},Y=/(^#([\da-f]{3}){1,2}$)|(^#([\da-f]{4}){1,2}$)/i,F=/rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i,Q=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(-?\d+|-?\d*.\d+)\s*\)/i,q=/hsl\(\s*(-?\d+|-?\d*.\d+)\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)%\s*\)/i,J=/hsla\(\s*(-?\d+|-?\d*.\d+)\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)\s*\)/i,V=/[-+]?\d*\.?\d+(?:e[-+]?\d)?/gi,G=/^([-+]?\d*\.?\d+(?:e[-+]?\d+)?)([a-z]+|%)$/i,K=/([a-z])([A-Z])/g,W=/(\w+)(\([^)]+\)+)/g,tt={id:null,keyframes:null,playbackEase:null,playbackRate:1,frameRate:120,loop:0,reversed:!1,alternate:!1,autoplay:!0,duration:D,delay:0,loopDelay:0,ease:"out(2)",composition:z.replace,modifier:t=>t,onBegin:X,onBeforeUpdate:X,onUpdate:X,onLoop:X,onPause:X,onComplete:X,onRender:X},et={root:S},nt={defaults:tt,precision:4,timeScale:1,tickThreshold:200},st={version:"4.1.3",engine:null};A&&(L.AnimeJS||(L.AnimeJS=[]),L.AnimeJS.push(st));const rt=(t,e)=>0===t.indexOf(e),it=Date.now,ot=Array.isArray,lt=t=>t&&t.constructor===Object,at=t=>"string"==typeof t,ct=t=>"function"==typeof t,ht=t=>void 0===t,ut=t=>ht(t)||null===t,dt=t=>A&&t instanceof SVGElement,ft=t=>Y.test(t),pt=t=>rt(t,"rgb"),gt=t=>rt(t,"hsl"),bt=t=>!nt.defaults.hasOwnProperty(t),mt=t=>at(t)?parseFloat(t):t,vt=Math.pow,xt=Math.sqrt,yt=Math.sin,wt=Math.cos,Ct=Math.abs,kt=Math.ceil,_t=Math.floor,Mt=Math.asin,Nt=Math.PI,$t=Math.round,At=(t,e,n)=>t<e?e:t>n?n:t,Lt={},St=(t,e)=>{if(e<0)return t;if(!e)return $t(t);let n=Lt[e];return n||(n=Lt[e]=10**e),$t(t*n)/n},zt=(t,e,n)=>t+(e-t)*n,Tt=t=>t===1/0?E:t===-1/0?-1e12:t,Rt=t=>t<=U?U:Tt(St(t,11)),Bt=t=>ot(t)?[...t]:t,Ot=(t,e,n,s="_prev",r="_next")=>{let i=t._head,o=r;for(n&&(i=t._tail,o=s);i;){const t=i[o];e(i),i=t}},jt=(t,e,n="_prev",s="_next")=>{const r=e[n],i=e[s];r?r[s]=i:t._head=i,i?i[n]=r:t._tail=r,e[n]=null,e[s]=null},Ut=(t,e,n,s="_prev",r="_next")=>{let i=t._tail;for(;i&&n&&n(i,e);)i=i[s];const o=i?i[r]:t._head;i?i[r]=e:t._head=e,o?o[s]=e:t._tail=e,e[s]=i,e[r]=o};class Et{constructor(t=0){this.deltaTime=0,this._currentTime=t,this._elapsedTime=t,this._startTime=t,this._lastTime=t,this._scheduledTime=0,this._frameDuration=St(D/120,0),this._fps=120,this._speed=1,this._hasChildren=!1,this._head=null,this._tail=null}get fps(){return this._fps}set fps(t){const e=this._frameDuration,n=+t,s=n<U?U:n,r=St(D/s,0);this._fps=s,this._frameDuration=r,this._scheduledTime+=r-e}get speed(){return this._speed}set speed(t){const e=+t;this._speed=e<U?U:e}requestTick(t){const e=this._scheduledTime,n=this._elapsedTime;if(this._elapsedTime+=t-n,n<e)return 0;const s=this._frameDuration,r=n-e;return this._scheduledTime+=r<s?s:r,1}computeDeltaTime(t){const e=t-this._lastTime;return this.deltaTime=e,this._lastTime=t,e}}const Dt=(t,e,n,s,r)=>{const i=t.parent,o=t.duration,l=t.completed,a=t.iterationDuration,c=t.iterationCount,h=t._currentIteration,u=t._loopDelay,d=t._reversed,f=t._alternate,p=t._hasChildren,g=t._delay,b=t._currentTime,m=g+a,v=e-g,x=At(b,-g,o),y=At(v,-g,o),w=v-b,C=y>0,k=y>=o,_=o<=U,M=2===r;let N=0,$=v,A=0;c>1&&(t._currentIteration=At(~~(y/(a+(k?0:u))),0,c),k&&t._currentIteration--,N=t._currentIteration%2,$=y%(a+u)||0);const L=d^(f&&N),S=t._ease;let T=k?L?0:o:L?a-$:$;S&&(T=a*S(T/a)||0);const R=(i?i.backwards:v<b)?!L:!!L;if(t._currentTime=v,t._iterationTime=T,t.backwards=R,C&&!t.began?(t.began=!0,n||i&&(R||!i.began)||t.onBegin(t)):v<=0&&(t.began=!1),n||p||!C||t._currentIteration===h||t.onLoop(t),M||1===r&&(e>=g&&e<=m||e<=g&&x>g||e>=m&&x!==o)||T>=m&&x!==o||T<=g&&x>0||e<=x&&x===o&&l||k&&!l&&_){if(C&&(t.computeDeltaTime(x),n||t.onBeforeUpdate(t)),!p){const e=M||(R?-1*w:w)>=nt.tickThreshold,r=t._offset+(i?i._offset:0)+g+T;let o,l,a,c,h=t._head,u=0;for(;h;){const t=h._composition,n=h._currentTime,i=h._changeDuration,d=h._absoluteStartTime+h._changeDuration,f=h._nextRep,p=h._prevRep,g=t!==z.none;if((e||(n!==i||r<=d+(f?f._delay:0))&&(0!==n||r>=h._absoluteStartTime))&&(!g||!h._isOverridden&&(!h._isOverlapped||r<=d)&&(!f||f._isOverridden||r<=f._absoluteStartTime)&&(!p||p._isOverridden||r>=p._absoluteStartTime+p._changeDuration+h._delay))){const e=h._currentTime=At(T-h._startTime,0,i),n=h._ease(e/h._updateDuration),r=h._modifier,d=h._valueType,f=h._tweenType,p=0===f,b=0===d,m=b&&p||0===n||1===n?-1:nt.precision;let v,x;if(b)v=x=r(St(zt(h._fromNumber,h._toNumber,n),m));else if(1===d)x=r(St(zt(h._fromNumber,h._toNumber,n),m)),v=`${x}${h._unit}`;else if(2===d){const t=h._fromNumbers,e=h._toNumbers,s=St(At(r(zt(t[0],e[0],n)),0,255),0),i=St(At(r(zt(t[1],e[1],n)),0,255),0),o=St(At(r(zt(t[2],e[2],n)),0,255),0),l=At(r(St(zt(t[3],e[3],n),m)),0,1);if(v=`rgba(${s},${i},${o},${l})`,g){const t=h._numbers;t[0]=s,t[1]=i,t[2]=o,t[3]=l}}else if(3===d){v=h._strings[0];for(let t=0,e=h._toNumbers.length;t<e;t++){const e=r(St(zt(h._fromNumbers[t],h._toNumbers[t],n),m)),s=h._strings[t+1];v+=`${s?e+s:e}`,g&&(h._numbers[t]=e)}}if(g&&(h._number=x),s||t===z.blend)h._value=v;else{const t=h.property;o=h.target,p?o[t]=v:1===f?o.setAttribute(t,v):(l=o.style,3===f?(o!==a&&(a=o,c=o[O]),c[t]=v,u=1):2===f?l[t]=v:4===f&&l.setProperty(t,v)),C&&(A=1)}}if(u&&h._renderTransforms){let t=I;for(let e in c)t+=`${Z[e]}${c[e]}) `;l.transform=t,u=0}h=h._next}!n&&A&&t.onRender(t)}!n&&C&&t.onUpdate(t)}return i&&_?!n&&(i.began&&!R&&v>=o&&!l||R&&v<=U&&l)&&(t.onComplete(t),t.completed=!R):C&&k?c===1/0?t._startTime+=t.duration:t._currentIteration>=c-1&&(t.paused=!0,l||p||(t.completed=!0,n||i&&(R||!i.began)||(t.onComplete(t),t._resolve(t)))):t.completed=!1,A},It=(t,e,n,s,r)=>{const i=t._currentIteration;if(Dt(t,e,n,s,r),t._hasChildren){const o=t,l=o.backwards,a=s?e:o._iterationTime,c=it();let h=0,u=!0;if(!s&&o._currentIteration!==i){const t=o.iterationDuration;Ot(o,(e=>{if(l){const s=e.duration,r=e._offset+e._delay;n||!(s<=U)||r&&r+s!==t||e.onComplete(e)}else!e.completed&&!e.backwards&&e._currentTime<e.iterationDuration&&Dt(e,t,n,1,2),e.began=!1,e.completed=!1})),n||o.onLoop(o)}Ot(o,(t=>{const e=St((a-t._offset)*t._speed,12),i=t._fps<o._fps?t.requestTick(c):r;h+=Dt(t,e,n,s,i),!t.completed&&u&&(u=!1)}),l),!n&&h&&o.onRender(o),(u||l)&&o._currentTime>=o.duration&&(o.paused=!0,o.completed||(o.completed=!0,n||(o.onComplete(o),o._resolve(o))))}},Pt={animation:null,update:X},Ht=(()=>A?requestAnimationFrame:setImmediate)(),Zt=(()=>A?cancelAnimationFrame:clearImmediate)();class Xt extends Et{constructor(t){super(t),this.useDefaultMainLoop=!0,this.pauseOnDocumentHidden=!0,this.defaults=tt,this.paused=!0,this.reqId=0}update(){const t=this._currentTime=it();if(this.requestTick(t)){this.computeDeltaTime(t);const e=this._speed,n=this._fps;let s=this._head;for(;s;){const r=s._next;s.paused?(jt(this,s),this._hasChildren=!!this._tail,s._running=!1,s.completed&&!s._cancelled&&s.cancel()):It(s,(t-s._startTime)*s._speed*e,0,0,s._fps<n?s.requestTick(t):1),s=r}Pt.update()}}wake(){return this.useDefaultMainLoop&&!this.reqId&&(this.requestTick(it()),this.reqId=Ht(Ft)),this}pause(){if(this.reqId)return this.paused=!0,Qt()}resume(){if(this.paused)return this.paused=!1,Ot(this,(t=>t.resetTime())),this.wake()}get speed(){return this._speed*(1===nt.timeScale?1:D)}set speed(t){this._speed=t*nt.timeScale,Ot(this,(t=>t.speed=t._speed))}get timeUnit(){return 1===nt.timeScale?"ms":"s"}set timeUnit(t){const e="s"===t,n=e?.001:1;if(nt.timeScale!==n){nt.timeScale=n,nt.tickThreshold=200*n;const t=e?.001:D;this.defaults.duration*=t,this._speed*=t}}get precision(){return nt.precision}set precision(t){nt.precision=t}}const Yt=(()=>{const t=new Xt(it());return A&&(st.engine=t,S.addEventListener("visibilitychange",(()=>{t.pauseOnDocumentHidden&&(S.hidden?t.pause():t.resume())}))),t})(),Ft=()=>{Yt._head?(Yt.reqId=Ht(Ft),Yt.update()):Yt.reqId=0},Qt=()=>(Zt(Yt.reqId),Yt.reqId=0,Yt);function qt(t){const e=at(t)?et.root.querySelectorAll(t):t;if(e instanceof NodeList||e instanceof HTMLCollection)return e}const Jt=["opacity","rotate","overflow","color"],Vt=(t,e,n)=>(n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t),Gt=(t,e)=>ht(t)?e:t,Kt=(t,e,n,s,r)=>{if(ct(t)){const i=()=>{const r=t(e,n,s);return isNaN(+r)?r||0:+r};return r&&(r.func=i),i()}return t},Wt=(t,e)=>t[R]?t[B]&&((t,e)=>{if(Jt.includes(e))return!1;if(t.getAttribute(e)||e in t){if("scale"===e){const e=t.parentNode;return e&&"filter"===e.tagName}return!0}})(t,e)?1:H.includes(e)||P.get(e)?3:rt(e,"--")?4:e in t.style?2:e in t?0:1:0,te=(t,e,n)=>{const s=t.style[e];s&&n&&(n[e]=s);const r=s||getComputedStyle(t[j]||t).getPropertyValue(e);return"auto"===r?"0":r},ee=(t,e,n,s)=>{const r=ht(n)?Wt(t,e):n;return 0===r?t[e]||0:1===r?t.getAttribute(e):3===r?((t,e,n)=>{const s=t.style.transform;let r;if(s){const i=t[O];let o;for(;o=W.exec(s);){const t=o[1],s=o[2].slice(1,-1);i[t]=s,t===e&&(r=s,n&&(n[e]=s))}}return s&&!ht(r)?r:rt(e,"scale")?"1":rt(e,"rotate")||rt(e,"skew")?"0deg":"0px"})(t,e,s):4===r?te(t,e,s).trimStart():te(t,e,s)},ne=(t,e,n)=>"-"===n?t-e:"+"===n?t+e:t*e,se=(t,e)=>{if(e.t=0,e.n=0,e.u=null,e.o=null,e.d=null,e.s=null,!t)return e;const n=+t;if(isNaN(n)){let n=t;"="===n[1]&&(e.o=n[0],n=n.slice(2));const i=!n.includes(" ")&&G.exec(n);if(i)return e.t=1,e.n=+i[1],e.u=i[2],e;if(e.o)return e.n=+n,e;if(ft(r=n)||pt(r)||gt(r))return e.t=2,e.d=pt(s=n)?(t=>{const e=F.exec(t)||Q.exec(t),n=ht(e[4])?1:+e[4];return[+e[1],+e[2],+e[3],n]})(s):ft(s)?(t=>{const e=t.length,n=4===e||5===e;return[+("0x"+t[1]+t[n?1:2]),+("0x"+t[n?2:3]+t[n?2:4]),+("0x"+t[n?3:5]+t[n?3:6]),5===e||9===e?+(+("0x"+t[n?4:7]+t[n?4:8])/255).toFixed(3):1]})(s):gt(s)?(t=>{const e=q.exec(t)||J.exec(t),n=+e[1]/360,s=+e[2]/100,r=+e[3]/100,i=ht(e[4])?1:+e[4];let o,l,a;if(0===s)o=l=a=r;else{const t=r<.5?r*(1+s):r+s-r*s,e=2*r-t;o=St(255*Vt(e,t,n+1/3),0),l=St(255*Vt(e,t,n),0),a=St(255*Vt(e,t,n-1/3),0)}return[o,l,a,i]})(s):[0,0,0,1],e;{const t=n.match(V);return e.t=3,e.d=t?t.map(Number):[],e.s=n.split(V)||[],e}}var s,r;return e.n=n,e},re=(t,e)=>(e.t=t._valueType,e.n=t._toNumber,e.u=t._unit,e.o=null,e.d=Bt(t._toNumbers),e.s=Bt(t._strings),e),ie={t:0,n:0,u:null,o:null,d:null,s:null},oe={_rep:new WeakMap,_add:new Map},le=(t,e,n="_rep")=>{const s=oe[n];let r=s.get(t);return r||(r={},s.set(t,r)),r[e]?r[e]:r[e]={_head:null,_tail:null}},ae=(t,e)=>t._isOverridden||t._absoluteStartTime>e._absoluteStartTime,ce=t=>{t._isOverlapped=1,t._isOverridden=1,t._changeDuration=U,t._currentTime=U},he=(t,e)=>{const n=t._composition;if(n===z.replace){const n=t._absoluteStartTime;Ut(e,t,ae,"_prevRep","_nextRep");const s=t._prevRep;if(s){const e=s.parent,r=s._absoluteStartTime+s._changeDuration;if(t.parent.id!==e.id&&e.iterationCount>1&&r+(e.duration-e.iterationDuration)>n){ce(s);let t=s._prevRep;for(;t&&t.parent.id===e.id;)ce(t),t=t._prevRep}const i=n-t._delay;if(r>i){const t=s._startTime,e=St(i-(r-(t+s._updateDuration))-t,12);s._changeDuration=e,s._currentTime=e,s._isOverlapped=1,e<U&&ce(s)}let o=!0;if(Ot(e,(t=>{t._isOverlapped||(o=!1)})),o){const t=e.parent;if(t){let n=!0;Ot(t,(t=>{t!==e&&Ot(t,(t=>{t._isOverlapped||(n=!1)}))})),n&&t.cancel()}else e.cancel()}}}else if(n===z.blend){const e=le(t.target,t.property,"_add"),n=(t=>{let e=Pt.animation;return e||(e={duration:U,computeDeltaTime:X,_offset:0,_delay:0,_head:null,_tail:null},Pt.animation=e,Pt.update=()=>{t.forEach((t=>{for(let e in t){const n=t[e],s=n._head;if(s){const t=s._valueType,e=3===t||2===t?Bt(s._fromNumbers):null;let r=s._fromNumber,i=n._tail;for(;i&&i!==s;){if(e)for(let t=0,n=i._numbers.length;t<n;t++)e[t]+=i._numbers[t];else r+=i._number;i=i._prevAdd}s._toNumber=r,s._toNumbers=e}}})),Dt(e,1,1,0,2)}),e})(oe._add);let s=e._head;s||(s={...t},s._composition=z.replace,s._updateDuration=U,s._startTime=0,s._numbers=Bt(t._fromNumbers),s._number=0,s._next=null,s._prev=null,Ut(e,s),Ut(n,s));const r=t._toNumber;if(t._fromNumber=s._fromNumber-r,t._toNumber=0,t._numbers=Bt(t._fromNumbers),t._number=0,s._fromNumber=r,t._toNumbers){const e=Bt(t._toNumbers);e&&e.forEach(((e,n)=>{t._fromNumbers[n]=s._fromNumbers[n]-e,t._toNumbers[n]=0})),s._fromNumbers=e}Ut(e,t,null,"_prevAdd","_nextAdd")}return t},ue=t=>{const e=t._composition;if(e!==z.none){const n=t.target,s=t.property,r=oe._rep.get(n);if(jt(r[s],t,"_prevRep","_nextRep"),e===z.blend){const e=oe._add,r=e.get(n);if(!r)return;const i=r[s],o=Pt.animation;jt(i,t,"_prevAdd","_nextAdd");const l=i._head;if(l&&l===i._tail){jt(i,l,"_prevAdd","_nextAdd"),jt(o,l);let t=!0;for(let e in r)if(r[e]._head){t=!1;break}t&&e.delete(n)}}}return t},de=t=>(t.paused=!0,t.began=!1,t.completed=!1,t),fe=t=>t._cancelled?(Ot(t,t._hasChildren?fe:t=>{t._composition!==z.none&&he(t,le(t.target,t.property))}),t._cancelled=0,t):t;let pe=0;class ge extends Et{constructor(t={},e=null,n=0){super(0);const{id:s,delay:r,duration:i,reversed:o,alternate:l,loop:a,loopDelay:c,autoplay:h,frameRate:u,playbackRate:d,onComplete:f,onLoop:p,onPause:g,onBegin:b,onBeforeUpdate:m,onUpdate:v}=t,x=e?0:Yt._elapsedTime,y=e?e.defaults:nt.defaults,w=ct(r)||ht(r)?y.delay:+r,C=ct(i)||ht(i)?1/0:+i,k=Gt(a,y.loop),_=Gt(c,y.loopDelay),M=!0===k||k===1/0||k<0?1/0:k+1;let N=0;e?N=n:(Yt.reqId||Yt.requestTick(it()),N=(Yt._elapsedTime-Yt._startTime)*nt.timeScale),this.id=ht(s)?++pe:s,this.parent=e,this.duration=Tt((C+_)*M-_)||U,this.backwards=!1,this.paused=!0,this.began=!1,this.completed=!1,this.onBegin=b||y.onBegin,this.onBeforeUpdate=m||y.onBeforeUpdate,this.onUpdate=v||y.onUpdate,this.onLoop=p||y.onLoop,this.onPause=g||y.onPause,this.onComplete=f||y.onComplete,this.iterationDuration=C,this.iterationCount=M,this._autoplay=!e&&Gt(h,y.autoplay),this._offset=N,this._delay=w,this._loopDelay=_,this._iterationTime=0,this._currentIteration=0,this._resolve=X,this._running=!1,this._reversed=+Gt(o,y.reversed),this._reverse=this._reversed,this._cancelled=0,this._alternate=Gt(l,y.alternate),this._prev=null,this._next=null,this._elapsedTime=x,this._startTime=x,this._lastTime=x,this._fps=Gt(u,y.frameRate),this._speed=Gt(d,y.playbackRate)}get cancelled(){return!!this._cancelled}set cancelled(t){t?this.cancel():this.reset(1).play()}get currentTime(){return At(St(this._currentTime,nt.precision),-this._delay,this.duration)}set currentTime(t){const e=this.paused;this.pause().seek(+t),e||this.resume()}get iterationCurrentTime(){return St(this._iterationTime,nt.precision)}set iterationCurrentTime(t){this.currentTime=this.iterationDuration*this._currentIteration+t}get progress(){return At(St(this._currentTime/this.duration,10),0,1)}set progress(t){this.currentTime=this.duration*t}get iterationProgress(){return At(St(this._iterationTime/this.iterationDuration,10),0,1)}set iterationProgress(t){const e=this.iterationDuration;this.currentTime=e*this._currentIteration+e*t}get currentIteration(){return this._currentIteration}set currentIteration(t){this.currentTime=this.iterationDuration*At(+t,0,this.iterationCount-1)}get reversed(){return!!this._reversed}set reversed(t){t?this.reverse():this.play()}get speed(){return super.speed}set speed(t){super.speed=t,this.resetTime()}reset(t=0){return fe(this),this._reversed&&!this._reverse&&(this.reversed=!1),this._iterationTime=this.iterationDuration,It(this,0,1,t,2),de(this),this._hasChildren&&Ot(this,de),this}init(t=0){this.fps=this._fps,this.speed=this._speed,!t&&this._hasChildren&&It(this,this.duration,1,t,2),this.reset(t);const e=this._autoplay;return!0===e?this.resume():e&&!ht(e.linked)&&e.link(this),this}resetTime(){const t=1/(this._speed*Yt._speed);return this._startTime=it()-(this._currentTime+this._delay)*t,this}pause(){return this.paused||(this.paused=!0,this.onPause(this)),this}resume(){return this.paused?(this.paused=!1,this.duration<=U&&!this._hasChildren?It(this,U,0,0,2):(this._running||(Ut(Yt,this),Yt._hasChildren=!0,this._running=!0),this.resetTime(),this._startTime-=12,Yt.wake()),this):this}restart(){return this.reset(0).resume()}seek(t,e=0,n=0){fe(this),this.completed=!1;const s=this.paused;return this.paused=!0,It(this,t+this._delay,~~e,~~n,1),s?this:this.resume()}alternate(){const t=this._reversed,e=this.iterationCount,n=this.iterationDuration,s=e===1/0?_t(E/n):e;return this._reversed=+(!this._alternate||s%2?!t:t),e===1/0?this.iterationProgress=this._reversed?1-this.iterationProgress:this.iterationProgress:this.seek(n*s-this._currentTime),this.resetTime(),this}play(){return this._reversed&&this.alternate(),this.resume()}reverse(){return this._reversed||this.alternate(),this.resume()}cancel(){return this._hasChildren?Ot(this,(t=>t.cancel()),!0):Ot(this,ue),this._cancelled=1,this.pause()}stretch(t){const e=this.duration,n=Rt(t);if(e===n)return this;const s=t/e,r=t<=U;return this.duration=r?U:n,this.iterationDuration=r?U:Rt(this.iterationDuration*s),this._offset*=s,this._delay*=s,this._loopDelay*=s,this}revert(){It(this,0,1,0,1);const t=this._autoplay;return t&&t.linked&&t.linked===this&&t.revert(),this.cancel()}complete(){return this.seek(this.duration).cancel()}then(t=X){const e=this.then,n=()=>{this.then=null,t(this),this.then=e,this._resolve=X};return new Promise((t=>(this._resolve=()=>t(n()),this.completed&&this._resolve(),this)))}}const be=t=>t,me=(t,e,n)=>(((1-3*n+3*e)*t+(3*n-6*e))*t+3*e)*t,ve=(t=.5,e=0,n=.5,s=1)=>t===e&&n===s?be:r=>0===r||1===r?r:me(((t,e,n)=>{let s,r,i=0,o=1,l=0;do{r=i+(o-i)/2,s=me(r,e,n)-t,s>0?o=r:i=r}while(Ct(s)>1e-7&&++l<100);return r})(r,t,n),e,s),xe=(t=10,e)=>{const n=e?kt:_t;return e=>n(At(e,0,1)*t)*(1/t)},ye=(...t)=>{const e=t.length;if(!e)return be;const n=e-1,s=t[n],r=[0],i=[mt(t[0])];for(let e=1;e<n;e++){const s=t[e],o=at(s)?s.trim().split(" "):[s],l=o[0],a=o[1];r.push(ht(a)?e/n:mt(a)/100),i.push(mt(l))}return i.push(mt(s)),r.push(1),function(t){for(let e=1,n=r.length;e<n;e++){const n=r[e];if(t<=n){const s=r[e-1],o=i[e-1];return o+(i[e]-o)*(t-s)/(n-s)}}return i[i.length-1]}},we=(t=10,e=1)=>{const n=[0],s=t-1;for(let t=1;t<s;t++){const r=n[t-1],i=t/s,o=i+((t+1)/s-i)*Math.random();n.push(At(i*(1-e)+o*e,r,1))}return n.push(1),ye(...n)},Ce=Nt/2,ke=2*Nt,_e=(t=1.68)=>e=>vt(e,+t),Me={[I]:_e,Quad:_e(2),Cubic:_e(3),Quart:_e(4),Quint:_e(5),Sine:t=>1-wt(t*Ce),Circ:t=>1-xt(1-t*t),Expo:t=>t?vt(2,10*t-10):0,Bounce:t=>{let e,n=4;for(;t<((e=vt(2,--n))-1)/11;);return 1/vt(4,3-n)-7.5625*vt((3*e-2)/22-t,2)},Back:(t=1.70158)=>e=>(+t+1)*e*e*e-+t*e*e,Elastic:(t=1,e=.3)=>{const n=At(+t,1,10),s=At(+e,U,2),r=s/ke*Mt(1/n),i=ke/s;return t=>0===t||1===t?t:-n*vt(2,-10*(1-t))*yt((1-t-r)*i)}},Ne={in:t=>e=>t(e),out:t=>e=>1-t(1-e),inOut:t=>e=>e<.5?t(2*e)/2:1-t(-2*e+2)/2,outIn:t=>e=>e<.5?(1-t(1-2*e))/2:(t(2*e-1)+1)/2},$e=(()=>{const t={linear:ye,irregular:we,steps:xe,cubicBezier:ve};for(let e in Ne)for(let n in Me){const s=Me[n],r=Ne[e];t[e+n]=n===I||"Back"===n||"Elastic"===n?(t,e)=>r(s(t,e)):r(s)}return t})(),Ae={linear:be},Le=t=>ct(t)?t:at(t)?((t,e,n)=>{if(n[t])return n[t];if(t.indexOf("(")<=-1){const s=Ne[t]||t.includes("Back")||t.includes("Elastic")?e[t]():e[t];return s?n[t]=s:be}{const s=t.slice(0,-1).split("("),r=e[s[0]];return r?n[t]=r(...s[1].split(",")):be}})(t,$e,Ae):be,Se={},ze=(t,e,n)=>{if(3===n){return P.get(t)||t}if(2===n||1===n&&dt(e)&&t in e.style){const e=Se[t];if(e)return e;{const e=t?t.replace(K,"$1-$2").toLowerCase():t;return Se[t]=e,e}}return t},Te={deg:1,rad:180/Nt,turn:360},Re={},Be=(t,e,n,s=!1)=>{const r=e.u,i=e.n;if(1===e.t&&r===n)return e;const o=i+r+n,l=Re[o];if(ht(l)||s){let s;if(r in Te)s=i*Te[r]/Te[n];else{const e=100,o=t.cloneNode(),l=t.parentNode,a=l&&l!==S?l:S.body;a.appendChild(o);const c=o.style;c.width=e+r;const h=o.offsetWidth||e;c.width=e+n;const u=h/(o.offsetWidth||e);a.removeChild(o),s=u*i}e.n=s,Re[o]=s}else e.n=l;return e.u=n,e},Oe=t=>{if(t._hasChildren)Ot(t,Oe,!0);else{const e=t;e.pause(),Ot(e,(t=>{const n=t.property,s=t.target;if(s[R]){const r=s.style,i=e._inlineStyles[n];if(3===t._tweenType){const e=s[O];if(ht(i)||i===I?delete e[n]:e[n]=i,t._renderTransforms)if(Object.keys(e).length){let t=I;for(let n in e)t+=Z[n]+e[n]+") ";r.transform=t}else r.removeProperty("transform")}else ht(i)||i===I?r.removeProperty(n):r[n]=i;e._tail===t&&e.targets.forEach((t=>{t.getAttribute&&t.getAttribute("style")===I&&t.removeAttribute("style")}))}}))}return t},je={t:0,n:0,u:null,o:null,d:null,s:null},Ue={t:0,n:0,u:null,o:null,d:null,s:null},Ee={func:null},De=[null],Ie=[null,null],Pe={to:null};let He,Ze,Xe=0;class Ye extends ge{constructor(t,e,n,s,r=!1,i=0,o=0){super(e,n,s);const l=function(t){const e=function(t){if(ut(t))return[];if(!A)return ot(t)&&t.flat(1/0)||[t];if(ot(t)){const e=t.flat(1/0),n=[];for(let t=0,s=e.length;t<s;t++){const s=e[t];if(!ut(s)){const t=qt(s);if(t)for(let e=0,s=t.length;e<s;e++){const s=t[e];if(!ut(s)){let t=!1;for(let e=0,r=n.length;e<r;e++)if(n[e]===s){t=!0;break}t||n.push(s)}}else{let t=!1;for(let e=0,r=n.length;e<r;e++)if(n[e]===s){t=!0;break}t||n.push(s)}}}return n}const e=qt(t);return e?Array.from(e):[t]}(t),n=e.length;if(n)for(let t=0;t<n;t++){const n=e[t];if(!n[T]){n[T]=!0;const t=dt(n);(n.nodeType||t)&&(n[R]=!0,n[B]=t,n[O]={})}}return e}(t),a=l.length,c=e.keyframes,h=c?((t,e)=>{const n={...t};for(let s in e){const r=t[s];n[s]=ht(r)?e[s]:r}return n})(((t,e)=>{const n={};if(ot(t)){const e=[].concat(...t.map((t=>Object.keys(t)))).filter(bt);for(let s=0,r=e.length;s<r;s++){const r=e[s],i=t.map((t=>{const e={};for(let n in t){const s=t[n];bt(n)?n===r&&(e.to=s):e[n]=s}return e}));n[r]=i}}else{const s=Gt(e.duration,nt.defaults.duration),r=Object.keys(t).map((e=>({o:parseFloat(e)/100,p:t[e]}))).sort(((t,e)=>t.o-e.o));r.forEach((t=>{const e=t.o,r=t.p;for(let t in r)if(bt(t)){let i=n[t];i||(i=n[t]=[]);const o=e*s;let l=i.length,a=i[l-1];const c={to:r[t]};let h=0;for(let t=0;t<l;t++)h+=i[t].duration;1===l&&(c.from=a.to),r.ease&&(c.ease=r.ease),c.duration=o-(l?h:0),i.push(c)}return t}));for(let t in n){const e=n[t];let s;for(let t=0,n=e.length;t<n;t++){const n=e[t],r=n.ease;n.ease=s||void 0,s=r}e[0].duration||e.shift()}}return n})(c,e),e):e,{delay:u,duration:d,ease:f,playbackEase:p,modifier:g,composition:b,onRender:m}=h,v=n?n.defaults:nt.defaults,x=Gt(p,v.playbackEase),y=x?Le(x):null,w=!ht(f)&&!ht(f.ease),C=w?f.ease:Gt(f,y?"linear":v.ease),k=w?f.duration:Gt(d,v.duration),_=Gt(u,v.delay),M=g||v.modifier,N=ht(b)&&a>=D?z.none:ht(b)?v.composition:b,$={},L=this._offset+(n?n._offset:0);let S=NaN,j=NaN,E=0,I=0;for(let t=0;t<a;t++){const e=l[t],s=i||t,c=o||a;let u=NaN,d=NaN;for(let t in h)if(bt(t)){const i=Wt(e,t),o=ze(t,e,i);let l=h[t];const a=ot(l);if(r&&!a&&(Ie[0]=l,Ie[1]=l,l=Ie),a){const t=l.length,e=!lt(l[0]);2===t&&e?(Pe.to=l,De[0]=Pe,He=De):t>2&&e?(He=[],l.forEach(((t,e)=>{e?1===e?(Ie[1]=t,He.push(Ie)):He.push(t):Ie[0]=t}))):He=l}else De[0]=l,He=De;let f=null,p=null,g=NaN,b=0,m=0;for(let t=He.length;m<t;m++){const r=He[m];lt(r)?Ze=r:(Pe.to=r,Ze=Pe),Ee.func=null;const l=Kt(Ze.to,e,s,c,Ee);let a;lt(l)&&!ht(l.to)?(Ze=l,a=l.to):a=l;const h=Kt(Ze.from,e,s,c),u=Ze.ease,d=!ht(u)&&!ht(u.ease),v=d?u.ease:u||C,x=d?u.duration:Kt(Gt(Ze.duration,t>1?Kt(k,e,s,c)/t:k),e,s,c),y=Kt(Gt(Ze.delay,m?0:_),e,s,c),w=Kt(Gt(Ze.composition,N),e,s,c),A="number"!=typeof(P=w)||isNaN(P)?z[w]:w,S=Ze.modifier||M,T=!ht(h),R=!ht(a),B=ot(a),O=B||T&&R,j=p?b+y:y,D=St(L+j,12);I||!T&&!B||(I=1);let H=p;if(A!==z.none){f||(f=le(e,o));let t=f._head;for(;t&&!t._isOverridden&&t._absoluteStartTime<=D;)if(H=t,t=t._nextRep,t&&t._absoluteStartTime>=D)for(;t;)ce(t),t=t._nextRep}if(O?(se(B?Kt(a[0],e,s,c):h,je),se(B?Kt(a[1],e,s,c,Ee):a,Ue),0===je.t&&(H?1===H._valueType&&(je.t=1,je.u=H._unit):(se(ee(e,o,i,$),ie),1===ie.t&&(je.t=1,je.u=ie.u)))):(R?se(a,Ue):p?re(p,Ue):se(n&&H&&H.parent.parent===n?H._value:ee(e,o,i,$),Ue),T?se(h,je):p?re(p,je):se(n&&H&&H.parent.parent===n?H._value:ee(e,o,i,$),je)),je.o&&(je.n=ne(H?H._toNumber:se(ee(e,o,i,$),ie).n,je.n,je.o)),Ue.o&&(Ue.n=ne(je.n,Ue.n,Ue.o)),je.t!==Ue.t)if(3===je.t||3===Ue.t){const t=3===je.t?je:Ue,e=3===je.t?Ue:je;e.t=3,e.s=Bt(t.s),e.d=t.d.map((()=>e.n))}else if(1===je.t||1===Ue.t){const t=1===je.t?je:Ue,e=1===je.t?Ue:je;e.t=1,e.u=t.u}else if(2===je.t||2===Ue.t){const t=2===je.t?je:Ue,e=2===je.t?Ue:je;e.t=2,e.s=t.s,e.d=[0,0,0,1]}if(je.u!==Ue.u){let t=Ue.u?je:Ue;t=Be(e,t,Ue.u?Ue.u:je.u,!1)}if(Ue.d&&je.d&&Ue.d.length!==je.d.length){const t=je.d.length>Ue.d.length?je:Ue,e=t===je?Ue:je;e.d=t.d.map(((t,n)=>ht(e.d[n])?0:e.d[n])),e.s=Bt(t.s)}const Z=St(+x||U,12),X={parent:this,id:Xe++,property:o,target:e,_value:null,_func:Ee.func,_ease:Le(v),_fromNumbers:Bt(je.d),_toNumbers:Bt(Ue.d),_strings:Bt(Ue.s),_fromNumber:je.n,_toNumber:Ue.n,_numbers:Bt(je.d),_number:je.n,_unit:Ue.u,_modifier:S,_currentTime:0,_startTime:j,_delay:+y,_updateDuration:Z,_changeDuration:Z,_absoluteStartTime:D,_tweenType:i,_valueType:Ue.t,_composition:A,_isOverlapped:0,_isOverridden:0,_renderTransforms:0,_prevRep:null,_nextRep:null,_prevAdd:null,_nextAdd:null,_prev:null,_next:null};A!==z.none&&he(X,f),isNaN(g)&&(g=X._startTime),b=St(j+Z,12),p=X,E++,Ut(this,X)}(isNaN(j)||g<j)&&(j=g),(isNaN(S)||b>S)&&(S=b),3===i&&(u=E-m,d=E)}if(!isNaN(u)){let t=0;Ot(this,(e=>{t>=u&&t<d&&(e._renderTransforms=1,e._composition===z.blend&&Ot(Pt.animation,(t=>{t.id===e.id&&(t._renderTransforms=1)}))),t++}))}}var P;a||console.warn("No target found. Make sure the element you're trying to animate is accessible before creating your animation."),j?(Ot(this,(t=>{t._startTime-t._delay||(t._delay-=j),t._startTime-=j})),S-=j):j=0,S||(S=U,this.iterationCount=0),this.targets=l,this.duration=S===U?U:Tt((S+this._loopDelay)*this.iterationCount-this._loopDelay)||U,this.onRender=m||v.onRender,this._ease=y,this._delay=j,this.iterationDuration=S,this._inlineStyles=$,!this._autoplay&&I&&this.onRender(this)}stretch(t){const e=this.duration;if(e===Rt(t))return this;const n=t/e;return Ot(this,(t=>{t._updateDuration=Rt(t._updateDuration*n),t._changeDuration=Rt(t._changeDuration*n),t._currentTime*=n,t._startTime*=n,t._absoluteStartTime*=n})),super.stretch(t)}refresh(){return Ot(this,(t=>{const e=t._func;if(e){const n=ee(t.target,t.property,t._tweenType);se(n,ie),se(e(),Ue),t._fromNumbers=Bt(ie.d),t._fromNumber=ie.n,t._toNumbers=Bt(Ue.d),t._strings=Bt(Ue.s),t._toNumber=Ue.o?ne(ie.n,Ue.n,Ue.o):Ue.n}})),this}revert(){return super.revert(),Oe(this)}then(t){return super.then(t)}}const Fe=(t,e)=>new Ye(t,e,null,0,!1).init();let Qe,qe=[];const Je=c("white"),Ve=c("bada55");let Ge,Ke;const We=t=>{Qe&&(Ge&&Ge.pause(),Ge=Fe(Qe,{fill:c(t),ease:"inOutCubic"}))},tn=t=>{Qe&&(Ke&&Ke.pause(),Ke=Fe(Qe,{y:(e,n)=>qe[n]*((100-t[n])/100),ease:"inOutCubic"}))},en=()=>{const e=i.map((t=>(({id:t,height:e,width:n,x:s,y:r,drop:i})=>({id:t,height:e,width:n,x:s,y:r,maskId:`mask-${t}`,maskUri:`url('#mask-${t}')`,mask:`0.5,0.5,0.5,${e-.5},${n-.5},${e-i-.5},${n-.5},${i+.5}`,matrix:`matrix(1,0,0,1,${s},${r})`,points:`0,0,0,${e},${n},${e-i},${n},${i}`}))(t))),n="currentColor";return qe=Array(e.length),Qe=Array(e.length),t("div",{class:"funnel-gfx"},t("svg",{viewBox:"0 0 600 420"},t("desc",null,"Created with Snap"),t("defs",null,e.map((e=>t("mask",{id:e.maskId},t("polygon",{points:e.mask,fill:Je}))))),e.map(((e,s)=>{const{height:r,width:i,maskUri:o,matrix:l,points:a}=e;return qe[s]=r,t("g",{transform:l},t("polygon",{points:a,fill:Je,stroke:n}),t("rect",{ref:t=>Qe[s]=t,x:"0",y:r,width:i,height:r,mask:o,fill:Ve,stroke:n}))}))))},nn=e=>{const n=e.hex||"currentColor",s=e.size||24;return t("svg",{class:e.class,width:s,height:s,viewBox:"0 0 24 24",role:"img","aria-label":"title"},t("title",null,e.label||"fingerprint"),t("g",{fill:n},t("path",{d:"M17.81,4.47C17.73,4.47 17.65,4.45 17.58,4.41C15.66,3.42 14,3\n 12,3C10.03,3 8.15,3.47 6.44,4.41C6.2,4.54 5.9,4.45 5.76,4.21C5.63,3.97\n 5.72,3.66 5.96,3.53C7.82,2.5 9.86,2 12,2C14.14,2 16,2.47\n 18.04,3.5C18.29,3.65 18.38,3.95 18.25,4.19C18.16,4.37 18,4.47\n 17.81,4.47M3.5,9.72C3.4,9.72 3.3,9.69 3.21,9.63C3,9.47 2.93,9.16\n 3.09,8.93C4.08,7.53 5.34,6.43 6.84,5.66C10,4.04 14,4.03\n 17.15,5.65C18.65,6.42 19.91,7.5 20.9,8.9C21.06,9.12 21,9.44\n 20.78,9.6C20.55,9.76 20.24,9.71 20.08,9.5C19.18,8.22 18.04,7.23\n 16.69,6.54C13.82,5.07 10.15,5.07 7.29,6.55C5.93,7.25 4.79,8.25\n 3.89,9.5C3.81,9.65 3.66,9.72 3.5,9.72M9.75,21.79C9.62,21.79 9.5,21.74\n 9.4,21.64C8.53,20.77 8.06,20.21 7.39,19C6.7,17.77 6.34,16.27\n 6.34,14.66C6.34,11.69 8.88,9.27 12,9.27C15.12,9.27 17.66,11.69\n 17.66,14.66A0.5,0.5 0 0,1 17.16,15.16A0.5,0.5 0 0,1\n 16.66,14.66C16.66,12.24 14.57,10.27 12,10.27C9.43,10.27 7.34,12.24\n 7.34,14.66C7.34,16.1 7.66,17.43 8.27,18.5C8.91,19.66 9.35,20.15\n 10.12,20.93C10.31,21.13 10.31,21.44 10.12,21.64C10,21.74 9.88,21.79\n 9.75,21.79M16.92,19.94C15.73,19.94 14.68,19.64 13.82,19.05C12.33,18.04\n 11.44,16.4 11.44,14.66A0.5,0.5 0 0,1 11.94,14.16A0.5,0.5 0 0,1\n 12.44,14.66C12.44,16.07 13.16,17.4 14.38,18.22C15.09,18.7 15.92,18.93\n 16.92,18.93C17.16,18.93 17.56,18.9 17.96,18.83C18.23,18.78 18.5,18.96\n 18.54,19.24C18.59,19.5 18.41,19.77 18.13,19.82C17.56,19.93 17.06,19.94\n 16.92,19.94M14.91,22C14.87,22 14.82,22 14.78,22C13.19,21.54 12.15,20.95\n 11.06,19.88C9.66,18.5 8.89,16.64 8.89,14.66C8.89,13.04 10.27,11.72\n 11.97,11.72C13.67,11.72 15.05,13.04 15.05,14.66C15.05,15.73 16,16.6\n 17.13,16.6C18.28,16.6 19.21,15.73 19.21,14.66C19.21,10.89 15.96,7.83\n 11.96,7.83C9.12,7.83 6.5,9.41 5.35,11.86C4.96,12.67 4.76,13.62\n 4.76,14.66C4.76,15.44 4.83,16.67 5.43,18.27C5.53,18.53 5.4,18.82\n 5.14,18.91C4.88,19 4.59,18.87 4.5,18.62C4,17.31 3.77,16\n 3.77,14.66C3.77,13.46 4,12.37 4.45,11.42C5.78,8.63 8.73,6.82\n 11.96,6.82C16.5,6.82 20.21,10.33 20.21,14.65C20.21,16.27 18.83,17.59\n 17.13,17.59C15.43,17.59 14.05,16.27 14.05,14.65C14.05,13.58 13.12,12.71\n 11.97,12.71C10.82,12.71 9.89,13.58 9.89,14.65C9.89,16.36 10.55,17.96\n 11.76,19.16C12.71,20.1 13.62,20.62 15.03,21C15.3,21.08 15.45,21.36\n 15.38,21.62C15.33,21.85 15.12,22 14.91,22Z"})),t("path",{d:"M0 0h24v24H0z",fill:"none"}))},sn="eswat2",rn=()=>t("a",{class:"absolute right-8 top-8 text-clrs-gray hover:text-clrs-navy",href:"https://eswat2.dev","aria-label":sn,target:"blank",title:sn},t(nn,{label:"eswat2"})),on=class{constructor(t){s(this,t),this.tag="funnel-app"}componentDidLoad(){v("pick",We),v("values",tn),y.initApp()}render(){return t("div",{key:"7998626a3f01e8bb4b2ed4b2b80d8b8de4a11206",id:"app",class:"ds1-main relative"},t(rn,{key:"44437debf47c76557ac6a115eec78b43a0aa2648"}),t(en,{key:"f0806a91f365823850ab6ccebbc1339c18dd46b1"}),t(M,{key:"bfe9dc2f232eac7142d416c2dff3e7d8522930b7",actions:y,state:m}),t(w,{key:"23836d760ccb38b898857abd205ae186d8f05242",actions:y,state:m}),t("hr",{key:"33eae1954a6b50e6a7b8c3124e92895114a8412d",class:"ml-0 mr-0"}),t($,{key:"4d449b22dedd37ce95356c98b00d5137008b5345",state:m}))}};on.style="/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root,\n :host {\n --font-sans:\n ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji',\n 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n --spacing: 0.25rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --font-weight-bold: 700;\n }\n}\n@layer utilities {\n .absolute {\n position: absolute;\n }\n .relative {\n position: relative;\n }\n .top-8 {\n top: calc(var(--spacing) * 8);\n }\n .right-8 {\n right: calc(var(--spacing) * 8);\n }\n .mt-3 {\n margin-top: calc(var(--spacing) * 3);\n }\n .mt-5px {\n margin-top: 5px;\n }\n .mr-0 {\n margin-right: calc(var(--spacing) * 0);\n }\n .mr-10px {\n margin-right: 10px;\n }\n .mb-10px {\n margin-bottom: 10px;\n }\n .ml-0 {\n margin-left: calc(var(--spacing) * 0);\n }\n .ml-auto {\n margin-left: auto;\n }\n .flex {\n display: flex;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,)\n var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-center {\n align-items: center;\n }\n .border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .border-clrs-gray {\n border-color: var(--clrs-gray, #aaaaaa);\n }\n .border-clrs-slate {\n border-color: var(--clrs-slate, #708090);\n }\n .bg-clrs-blue {\n background-color: var(--clrs-blue, #0074d9);\n }\n .bg-clrs-red {\n background-color: var(--clrs-red, #ff4136);\n }\n .bg-clrs-silver {\n background-color: var(--clrs-silver, #dddddd);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .align-top {\n vertical-align: top;\n }\n .font-sans {\n font-family: var(--font-sans);\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .text-clrs-gray {\n color: var(--clrs-gray, #aaaaaa);\n }\n .text-clrs-navy {\n color: var(--clrs-navy, #001f3f);\n }\n .text-clrs-slate4 {\n color: var(--clrs-slate4, #4e5964);\n }\n .text-clrs-white {\n color: var(--clrs-white, #ffffff);\n }\n .italic {\n font-style: italic;\n }\n .shadow {\n --tw-shadow:\n 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)),\n 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow:\n var(--tw-inset-shadow), var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .hover\\:text-clrs-navy {\n &:hover {\n @media (hover: hover) {\n color: var(--clrs-navy, #001f3f);\n }\n }\n }\n .active\\:bg-clrs-gray {\n &:active {\n background-color: var(--clrs-gray, #aaaaaa);\n }\n }\n .active\\:text-clrs-navy {\n &:active {\n color: var(--clrs-navy, #001f3f);\n }\n }\n}\n@layer components {\n .ds1-main {\n display: flex;\n flex-direction: column;\n padding: calc(var(--spacing) * 4);\n font-family: var(--font-sans);\n color: var(--clrs-navy, #001f3f);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n .ds1-button {\n display: flex;\n align-items: center;\n --tw-border-style: solid;\n border-style: solid;\n border-color: var(--clrs-slate, #708090);\n color: var(--clrs-white, #ffffff);\n &:active {\n background-color: var(--clrs-gray, #aaaaaa);\n }\n &:active {\n color: var(--clrs-navy, #001f3f);\n }\n }\n .funnel-gfx {\n --tw-border-style: solid;\n border-style: solid;\n border-color: var(--clrs-gray, #aaaaaa);\n background-color: var(--clrs-silver, #dddddd);\n stroke-width: 1;\n }\n}\n.data-button {\n border-radius: 5px;\n border-width: 1px;\n padding: 5px;\n margin: 0px;\n margin-right: 5px;\n cursor: pointer;\n}\n.funnel-gfx {\n width: calc(100% - 20px);\n height: 100%;\n padding: 10px;\n padding-bottom: 7px;\n border-radius: 10px;\n border-width: 1px;\n}\n";export{on as funnel_app}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "funnel-gfx-wc",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.84",
|
|
4
4
|
"description": "prototype -- a simple SVG demo built with Stencil and Tailwind",
|
|
5
5
|
"main": "dist/index.cjs.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -29,13 +29,13 @@
|
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@stencil/core": "4.36.2",
|
|
31
31
|
"@stencil/store": "2.2.0",
|
|
32
|
-
"animejs": "4.1.
|
|
32
|
+
"animejs": "4.1.3"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"autoprefixer": "10.4.21",
|
|
36
36
|
"concurrently": "9.2.0",
|
|
37
37
|
"cspell": "9.2.0",
|
|
38
|
-
"eslint": "9.
|
|
38
|
+
"eslint": "9.33.0",
|
|
39
39
|
"postcss": "8.5.6",
|
|
40
40
|
"prettier": "3.6.2",
|
|
41
41
|
"prettier-plugin-tailwindcss": "0.6.14",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as t,g as e,f as n,r as s}from"./p-CSbg7fpQ.js";const r=e=>{const n=e.hex||"currentColor",s=e.selected||!1,r=e.size||24;return t("svg",{class:e.class,width:r,height:r,viewBox:"0 0 24 24",role:"img","aria-label":"title"},t("title",null,e.label||"radio")," ",t("g",{fill:n},t("path",s?{d:"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}:{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"})),t("path",{d:"M0 0h24v24H0z",fill:"none"}))},i=[{id:1,height:400,width:100,x:10,y:10,drop:20},{id:2,height:356,width:100,x:120,y:32,drop:20},{id:3,height:312,width:100,x:230,y:54,drop:20},{id:4,height:268,width:100,x:340,y:76,drop:20},{id:5,height:224,width:100,x:450,y:98,drop:20}],o=i.map((()=>0)),l={bada55:"#bada55",navy:"#001f3f",blue:"#0074d9",aqua:"#7fdbff",teal:"#39cccc",olive:"#3d9970",green:"#2ecc40",lime:"#01ff70",yellow:"#ffdc00",orange:"#ff851b",red:"#ff4136",maroon:"#85144b",fuchsia:"#f012be",purple:"#b10dc9",black:"#111111",gray:"#aaaaaa",silver:"#dddddd"},a={slate:"#708090",slate4:"#4e5964",white:"#ffffff"},c=t=>l[t]||a[t],h=Object.keys(l),u=t=>!("isConnected"in t)||t.isConnected,d=(()=>{let t;return(...e)=>{t&&clearTimeout(t),t=setTimeout((()=>{t=0,(t=>{for(let e of t.keys())t.set(e,t.get(e).filter(u))})(...e)}),2e3)}})(),f=t=>"function"==typeof t?t():t,p=(t,e)=>{const n=t.indexOf(e);n>=0&&(t[n]=t[t.length-1],t.length--)},g="funnel-gfx-wc::app-data",b=(()=>{const t=((t,e=(t,e)=>t!==e)=>{const n=f(t);let s=new Map(Object.entries(n??{}));const r={dispose:[],get:[],set:[],reset:[]},i=new Map,o=()=>{s=new Map(Object.entries(f(t)??{})),r.reset.forEach((t=>t()))},l=t=>(r.get.forEach((e=>e(t))),s.get(t)),a=(t,n)=>{const i=s.get(t);e(n,i,t)&&(s.set(t,n),r.set.forEach((e=>e(t,n,i))))},c="undefined"==typeof Proxy?{}:new Proxy(n,{get:(t,e)=>l(e),ownKeys:()=>Array.from(s.keys()),getOwnPropertyDescriptor:()=>({enumerable:!0,configurable:!0}),has:(t,e)=>s.has(e),set:(t,e,n)=>(a(e,n),!0)}),h=(t,e)=>(r[t].push(e),()=>{p(r[t],e)});return{state:c,get:l,set:a,on:h,onChange:(e,n)=>{const s=(t,s)=>{t===e&&n(s)},r=()=>n(f(t)[e]),o=h("set",s),l=h("reset",r);return i.set(n,{setHandler:s,resetHandler:r,propName:e}),()=>{o(),l(),i.delete(n)}},use:(...t)=>{const e=t.reduce(((t,e)=>(e.set&&t.push(h("set",e.set)),e.get&&t.push(h("get",e.get)),e.reset&&t.push(h("reset",e.reset)),e.dispose&&t.push(h("dispose",e.dispose)),t)),[]);return()=>e.forEach((t=>t()))},dispose:()=>{r.dispose.forEach((t=>t())),o()},reset:o,forceUpdate:t=>{const e=s.get(t);r.set.forEach((n=>n(t,e,e)))},removeListener:(t,e)=>{const n=i.get(e);n&&n.propName===t&&(p(r.set,n.setHandler),p(r.reset,n.resetHandler),i.delete(e))}}})({count:0,pick:"bada55",values:[...o]},void 0);return t.use((()=>{if("function"!=typeof e)return{};const t=new Map;return{dispose:()=>t.clear(),get:n=>{const s=e();s&&((t,e,n)=>{const s=t.get(e);s?s.includes(n)||s.push(n):t.set(e,[n])})(t,n,s)},set:e=>{const s=t.get(e);s&&t.set(e,s.filter(n)),d(t)},reset:()=>{t.forEach((t=>t.forEach(n))),d(t)}}})()),t})(),{state:m,onChange:v}=b,x=()=>{const{count:t,pick:e,values:n}=m;(t=>{const e=JSON.stringify(t);localStorage.setItem(g,e)})({count:t,pick:e,values:n})},y={initApp:()=>{const t=(()=>{const t=localStorage.getItem(g);return t?JSON.parse(t):void 0})();if(t){const{count:e,pick:n,values:s}=t;m.count=e,m.pick=n,m.values=s}},refresh:()=>{const t=o.map((()=>Math.floor(100*Math.random())));m.count=m.count+1,m.values=t,x()},reset:()=>{m.count=0,m.values=[...o],x()},updatePick:t=>{m.pick=t,x()}},w=e=>{const{actions:n,state:s}=e,{pick:i}=s;return t("div",{id:"toolbar",class:"flex flex-wrap",role:"radiogroup"},h.map((e=>{const s=c(e),o=i==e;return t("div",{"aria-label":e,"aria-checked":o?"true":"false",role:"radio",onClick:()=>{n.updatePick(e)}},t(r,{hex:s,selected:o,label:e}))})))},C=e=>{const n=e.hex||"currentColor",s=e.size||24;return t("svg",{class:e.class,width:s,height:s,viewBox:"0 0 24 24",role:"img","aria-label":"title"},t("title",null,e.label||"chevron-double-left"),t("g",{fill:n},t("path",{d:"M18.41,7.41L17,6L11,12L17,18L18.41,16.59L13.83,12L18.41,7.41M12.41,7.41L11,6L5,12L11,18L12.41,16.59L7.83,12L12.41,7.41Z"})),t("path",{d:"M0 0h24v24H0z",fill:"none"}))},k=e=>{const n=e.hex||"currentColor",s=e.size||24;return t("svg",{class:e.class,width:s,height:s,viewBox:"0 0 24 24",role:"img","aria-label":"title"},t("title",null,e.label||"close"),t("g",{fill:n},t("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})),t("path",{d:"M0 0h24v24H0z",fill:"none"}))},_=e=>{const n=e.hex||"currentColor",s=e.size||24;return t("svg",{class:e.class,width:s,height:s,viewBox:"0 0 24 24",role:"img","aria-label":"title"},t("title",null,e.label||"refresh"),t("g",{fill:n},t("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99\n 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65\n 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35\n 2.35z"})),t("path",{d:"M0 0h24v24H0z",fill:"none"}))},M=e=>{const{actions:n,state:s}=e,{count:r}=s;return t("div",{class:"mb-10px mt-3 flex items-center"},t("button",{"aria-label":"Refresh",class:"ds1-button data-button bg-clrs-blue",onClick:()=>{n.refresh()}},t(_,{label:"Refresh"})),t("button",{"aria-label":"Reset",class:"ds1-button data-button bg-clrs-red",onClick:()=>{n.reset()}},t(k,{label:"Reset"})),t("span",{class:"flex items-center"},t(C,{size:28}),t("span",{class:"italic"},"click a button... ",t("sup",null,r))))},N=()=>t("label",{class:"ml-auto align-top text-xs italic text-clrs-slate4"},"Tailwind ","4.1.11"),$=e=>{const{state:n}=e,{values:s,pick:r,count:i}=n;return t("div",{class:"flex"},t("div",{class:"flex flex-col"},t("div",{class:"flex"},t("span",{class:"mr-10px font-bold"},"color:"),t("span",{class:"italic text-clrs-slate4"},r)),t("div",{class:"mt-5px flex"},t("span",{class:"mr-10px font-bold"},"sample:"),t("span",{class:"italic text-clrs-slate4"},`${i>0?s:"..."}`))),t(N,null))},A="undefined"!=typeof window,L=A?window:null,S=A?document:null,z={replace:0,none:1,blend:2},T=Symbol(),R=Symbol(),B=Symbol(),O=Symbol(),j=Symbol(),U=1e-11,E=1e12,D=1e3,I="",P=(()=>{const t=new Map;return t.set("x","translateX"),t.set("y","translateY"),t.set("z","translateZ"),t})(),H=["translateX","translateY","translateZ","rotate","rotateX","rotateY","rotateZ","scale","scaleX","scaleY","scaleZ","skew","skewX","skewY","perspective","matrix","matrix3d"],Z=H.reduce(((t,e)=>({...t,[e]:e+"("})),{}),X=()=>{},Y=/(^#([\da-f]{3}){1,2}$)|(^#([\da-f]{4}){1,2}$)/i,F=/rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i,Q=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(-?\d+|-?\d*.\d+)\s*\)/i,q=/hsl\(\s*(-?\d+|-?\d*.\d+)\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)%\s*\)/i,J=/hsla\(\s*(-?\d+|-?\d*.\d+)\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)\s*\)/i,V=/[-+]?\d*\.?\d+(?:e[-+]?\d)?/gi,G=/^([-+]?\d*\.?\d+(?:e[-+]?\d+)?)([a-z]+|%)$/i,K=/([a-z])([A-Z])/g,W=/(\w+)(\([^)]+\)+)/g,tt={id:null,keyframes:null,playbackEase:null,playbackRate:1,frameRate:120,loop:0,reversed:!1,alternate:!1,autoplay:!0,duration:D,delay:0,loopDelay:0,ease:"out(2)",composition:z.replace,modifier:t=>t,onBegin:X,onBeforeUpdate:X,onUpdate:X,onLoop:X,onPause:X,onComplete:X,onRender:X},et={root:S},nt={defaults:tt,precision:4,timeScale:1,tickThreshold:200},st={version:"4.1.2",engine:null};A&&(L.AnimeJS||(L.AnimeJS=[]),L.AnimeJS.push(st));const rt=(t,e)=>0===t.indexOf(e),it=Date.now,ot=Array.isArray,lt=t=>t&&t.constructor===Object,at=t=>"string"==typeof t,ct=t=>"function"==typeof t,ht=t=>void 0===t,ut=t=>ht(t)||null===t,dt=t=>A&&t instanceof SVGElement,ft=t=>Y.test(t),pt=t=>rt(t,"rgb"),gt=t=>rt(t,"hsl"),bt=t=>!nt.defaults.hasOwnProperty(t),mt=t=>at(t)?parseFloat(t):t,vt=Math.pow,xt=Math.sqrt,yt=Math.sin,wt=Math.cos,Ct=Math.abs,kt=Math.ceil,_t=Math.floor,Mt=Math.asin,Nt=Math.PI,$t=Math.round,At=(t,e,n)=>t<e?e:t>n?n:t,Lt={},St=(t,e)=>{if(e<0)return t;if(!e)return $t(t);let n=Lt[e];return n||(n=Lt[e]=10**e),$t(t*n)/n},zt=(t,e,n)=>t+(e-t)*n,Tt=t=>t===1/0?E:t===-1/0?-1e12:t,Rt=t=>t<=U?U:Tt(St(t,11)),Bt=t=>ot(t)?[...t]:t,Ot=(t,e,n,s="_prev",r="_next")=>{let i=t._head,o=r;for(n&&(i=t._tail,o=s);i;){const t=i[o];e(i),i=t}},jt=(t,e,n="_prev",s="_next")=>{const r=e[n],i=e[s];r?r[s]=i:t._head=i,i?i[n]=r:t._tail=r,e[n]=null,e[s]=null},Ut=(t,e,n,s="_prev",r="_next")=>{let i=t._tail;for(;i&&n&&n(i,e);)i=i[s];const o=i?i[r]:t._head;i?i[r]=e:t._head=e,o?o[s]=e:t._tail=e,e[s]=i,e[r]=o};class Et{constructor(t=0){this.deltaTime=0,this._currentTime=t,this._elapsedTime=t,this._startTime=t,this._lastTime=t,this._scheduledTime=0,this._frameDuration=St(D/120,0),this._fps=120,this._speed=1,this._hasChildren=!1,this._head=null,this._tail=null}get fps(){return this._fps}set fps(t){const e=this._frameDuration,n=+t,s=n<U?U:n,r=St(D/s,0);this._fps=s,this._frameDuration=r,this._scheduledTime+=r-e}get speed(){return this._speed}set speed(t){const e=+t;this._speed=e<U?U:e}requestTick(t){const e=this._scheduledTime,n=this._elapsedTime;if(this._elapsedTime+=t-n,n<e)return 0;const s=this._frameDuration,r=n-e;return this._scheduledTime+=r<s?s:r,1}computeDeltaTime(t){const e=t-this._lastTime;return this.deltaTime=e,this._lastTime=t,e}}const Dt=(t,e,n,s,r)=>{const i=t.parent,o=t.duration,l=t.completed,a=t.iterationDuration,c=t.iterationCount,h=t._currentIteration,u=t._loopDelay,d=t._reversed,f=t._alternate,p=t._hasChildren,g=t._delay,b=t._currentTime,m=g+a,v=e-g,x=At(b,-g,o),y=At(v,-g,o),w=v-b,C=y>0,k=y>=o,_=o<=U,M=2===r;let N=0,$=v,A=0;c>1&&(t._currentIteration=At(~~(y/(a+(k?0:u))),0,c),k&&t._currentIteration--,N=t._currentIteration%2,$=y%(a+u)||0);const L=d^(f&&N),S=t._ease;let T=k?L?0:o:L?a-$:$;S&&(T=a*S(T/a)||0);const R=(i?i.backwards:v<b)?!L:!!L;if(t._currentTime=v,t._iterationTime=T,t.backwards=R,C&&!t.began?(t.began=!0,n||i&&(R||!i.began)||t.onBegin(t)):v<=0&&(t.began=!1),n||p||!C||t._currentIteration===h||t.onLoop(t),M||1===r&&(e>=g&&e<=m||e<=g&&x>g||e>=m&&x!==o)||T>=m&&x!==o||T<=g&&x>0||e<=x&&x===o&&l||k&&!l&&_){if(C&&(t.computeDeltaTime(x),n||t.onBeforeUpdate(t)),!p){const e=M||(R?-1*w:w)>=nt.tickThreshold,r=t._offset+(i?i._offset:0)+g+T;let o,l,a,c,h=t._head,u=0;for(;h;){const t=h._composition,n=h._currentTime,i=h._changeDuration,d=h._absoluteStartTime+h._changeDuration,f=h._nextRep,p=h._prevRep,g=t!==z.none;if((e||(n!==i||r<=d+(f?f._delay:0))&&(0!==n||r>=h._absoluteStartTime))&&(!g||!h._isOverridden&&(!h._isOverlapped||r<=d)&&(!f||f._isOverridden||r<=f._absoluteStartTime)&&(!p||p._isOverridden||r>=p._absoluteStartTime+p._changeDuration+h._delay))){const e=h._currentTime=At(T-h._startTime,0,i),n=h._ease(e/h._updateDuration),r=h._modifier,d=h._valueType,f=h._tweenType,p=0===f,b=0===d,m=b&&p||0===n||1===n?-1:nt.precision;let v,x;if(b)v=x=r(St(zt(h._fromNumber,h._toNumber,n),m));else if(1===d)x=r(St(zt(h._fromNumber,h._toNumber,n),m)),v=`${x}${h._unit}`;else if(2===d){const t=h._fromNumbers,e=h._toNumbers,s=St(At(r(zt(t[0],e[0],n)),0,255),0),i=St(At(r(zt(t[1],e[1],n)),0,255),0),o=St(At(r(zt(t[2],e[2],n)),0,255),0),l=At(r(St(zt(t[3],e[3],n),m)),0,1);if(v=`rgba(${s},${i},${o},${l})`,g){const t=h._numbers;t[0]=s,t[1]=i,t[2]=o,t[3]=l}}else if(3===d){v=h._strings[0];for(let t=0,e=h._toNumbers.length;t<e;t++){const e=r(St(zt(h._fromNumbers[t],h._toNumbers[t],n),m)),s=h._strings[t+1];v+=`${s?e+s:e}`,g&&(h._numbers[t]=e)}}if(g&&(h._number=x),s||t===z.blend)h._value=v;else{const t=h.property;o=h.target,p?o[t]=v:1===f?o.setAttribute(t,v):(l=o.style,3===f?(o!==a&&(a=o,c=o[O]),c[t]=v,u=1):2===f?l[t]=v:4===f&&l.setProperty(t,v)),C&&(A=1)}}if(u&&h._renderTransforms){let t=I;for(let e in c)t+=`${Z[e]}${c[e]}) `;l.transform=t,u=0}h=h._next}!n&&A&&t.onRender(t)}!n&&C&&t.onUpdate(t)}return i&&_?!n&&(i.began&&!R&&v>=o&&!l||R&&v<=U&&l)&&(t.onComplete(t),t.completed=!R):C&&k?c===1/0?t._startTime+=t.duration:t._currentIteration>=c-1&&(t.paused=!0,l||p||(t.completed=!0,n||i&&(R||!i.began)||(t.onComplete(t),t._resolve(t)))):t.completed=!1,A},It=(t,e,n,s,r)=>{const i=t._currentIteration;if(Dt(t,e,n,s,r),t._hasChildren){const o=t,l=o.backwards,a=s?e:o._iterationTime,c=it();let h=0,u=!0;if(!s&&o._currentIteration!==i){const t=o.iterationDuration;Ot(o,(e=>{if(l){const s=e.duration,r=e._offset+e._delay;n||!(s<=U)||r&&r+s!==t||e.onComplete(e)}else!e.completed&&!e.backwards&&e._currentTime<e.iterationDuration&&Dt(e,t,n,1,2),e.began=!1,e.completed=!1})),n||o.onLoop(o)}Ot(o,(t=>{const e=St((a-t._offset)*t._speed,12),i=t._fps<o._fps?t.requestTick(c):r;h+=Dt(t,e,n,s,i),!t.completed&&u&&(u=!1)}),l),!n&&h&&o.onRender(o),(u||l)&&o._currentTime>=o.duration&&(o.paused=!0,o.completed||(o.completed=!0,n||(o.onComplete(o),o._resolve(o))))}},Pt={animation:null,update:X},Ht=(()=>A?requestAnimationFrame:setImmediate)(),Zt=(()=>A?cancelAnimationFrame:clearImmediate)();class Xt extends Et{constructor(t){super(t),this.useDefaultMainLoop=!0,this.pauseOnDocumentHidden=!0,this.defaults=tt,this.paused=!(!A||!S.hidden),this.reqId=null}update(){const t=this._currentTime=it();if(this.requestTick(t)){this.computeDeltaTime(t);const e=this._speed,n=this._fps;let s=this._head;for(;s;){const r=s._next;s.paused?(jt(this,s),this._hasChildren=!!this._tail,s._running=!1,s.completed&&!s._cancelled&&s.cancel()):It(s,(t-s._startTime)*s._speed*e,0,0,s._fps<n?s.requestTick(t):1),s=r}Pt.update()}}wake(){return!this.useDefaultMainLoop||this.reqId||this.paused||(this.reqId=Ht(Ft)),this}pause(){return this.paused=!0,Qt()}resume(){if(this.paused)return this.paused=!1,Ot(this,(t=>t.resetTime())),this.wake()}get speed(){return this._speed*(1===nt.timeScale?1:D)}set speed(t){this._speed=t*nt.timeScale,Ot(this,(t=>t.speed=t._speed))}get timeUnit(){return 1===nt.timeScale?"ms":"s"}set timeUnit(t){const e="s"===t,n=e?.001:1;if(nt.timeScale!==n){nt.timeScale=n,nt.tickThreshold=200*n;const t=e?.001:D;this.defaults.duration*=t,this._speed*=t}}get precision(){return nt.precision}set precision(t){nt.precision=t}}const Yt=(()=>{const t=new Xt(it());return A&&(st.engine=t,S.addEventListener("visibilitychange",(()=>{t.pauseOnDocumentHidden&&(S.hidden?t.pause():t.resume())}))),t})(),Ft=()=>{Yt._head?(Yt.reqId=Ht(Ft),Yt.update()):Yt.reqId=0},Qt=()=>(Zt(Yt.reqId),Yt.reqId=0,Yt);function qt(t){const e=at(t)?et.root.querySelectorAll(t):t;if(e instanceof NodeList||e instanceof HTMLCollection)return e}const Jt=["opacity","rotate","overflow","color"],Vt=(t,e,n)=>(n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t),Gt=(t,e)=>ht(t)?e:t,Kt=(t,e,n,s,r)=>{if(ct(t)){const i=()=>{const r=t(e,n,s);return isNaN(+r)?r||0:+r};return r&&(r.func=i),i()}return t},Wt=(t,e)=>t[R]?t[B]&&((t,e)=>{if(Jt.includes(e))return!1;if(t.getAttribute(e)||e in t){if("scale"===e){const e=t.parentNode;return e&&"filter"===e.tagName}return!0}})(t,e)?1:H.includes(e)||P.get(e)?3:rt(e,"--")?4:e in t.style?2:e in t?0:1:0,te=(t,e,n)=>{const s=t.style[e];s&&n&&(n[e]=s);const r=s||getComputedStyle(t[j]||t).getPropertyValue(e);return"auto"===r?"0":r},ee=(t,e,n,s)=>{const r=ht(n)?Wt(t,e):n;return 0===r?t[e]||0:1===r?t.getAttribute(e):3===r?((t,e,n)=>{const s=t.style.transform;let r;if(s){const i=t[O];let o;for(;o=W.exec(s);){const t=o[1],s=o[2].slice(1,-1);i[t]=s,t===e&&(r=s,n&&(n[e]=s))}}return s&&!ht(r)?r:rt(e,"scale")?"1":rt(e,"rotate")||rt(e,"skew")?"0deg":"0px"})(t,e,s):4===r?te(t,e,s).trimStart():te(t,e,s)},ne=(t,e,n)=>"-"===n?t-e:"+"===n?t+e:t*e,se=(t,e)=>{if(e.t=0,e.n=0,e.u=null,e.o=null,e.d=null,e.s=null,!t)return e;const n=+t;if(isNaN(n)){let n=t;"="===n[1]&&(e.o=n[0],n=n.slice(2));const i=!n.includes(" ")&&G.exec(n);if(i)return e.t=1,e.n=+i[1],e.u=i[2],e;if(e.o)return e.n=+n,e;if(ft(r=n)||pt(r)||gt(r))return e.t=2,e.d=pt(s=n)?(t=>{const e=F.exec(t)||Q.exec(t),n=ht(e[4])?1:+e[4];return[+e[1],+e[2],+e[3],n]})(s):ft(s)?(t=>{const e=t.length,n=4===e||5===e;return[+("0x"+t[1]+t[n?1:2]),+("0x"+t[n?2:3]+t[n?2:4]),+("0x"+t[n?3:5]+t[n?3:6]),5===e||9===e?+(+("0x"+t[n?4:7]+t[n?4:8])/255).toFixed(3):1]})(s):gt(s)?(t=>{const e=q.exec(t)||J.exec(t),n=+e[1]/360,s=+e[2]/100,r=+e[3]/100,i=ht(e[4])?1:+e[4];let o,l,a;if(0===s)o=l=a=r;else{const t=r<.5?r*(1+s):r+s-r*s,e=2*r-t;o=St(255*Vt(e,t,n+1/3),0),l=St(255*Vt(e,t,n),0),a=St(255*Vt(e,t,n-1/3),0)}return[o,l,a,i]})(s):[0,0,0,1],e;{const t=n.match(V);return e.t=3,e.d=t?t.map(Number):[],e.s=n.split(V)||[],e}}var s,r;return e.n=n,e},re=(t,e)=>(e.t=t._valueType,e.n=t._toNumber,e.u=t._unit,e.o=null,e.d=Bt(t._toNumbers),e.s=Bt(t._strings),e),ie={t:0,n:0,u:null,o:null,d:null,s:null},oe={_rep:new WeakMap,_add:new Map},le=(t,e,n="_rep")=>{const s=oe[n];let r=s.get(t);return r||(r={},s.set(t,r)),r[e]?r[e]:r[e]={_head:null,_tail:null}},ae=(t,e)=>t._isOverridden||t._absoluteStartTime>e._absoluteStartTime,ce=t=>{t._isOverlapped=1,t._isOverridden=1,t._changeDuration=U,t._currentTime=U},he=(t,e)=>{const n=t._composition;if(n===z.replace){const n=t._absoluteStartTime;Ut(e,t,ae,"_prevRep","_nextRep");const s=t._prevRep;if(s){const e=s.parent,r=s._absoluteStartTime+s._changeDuration;if(t.parent.id!==e.id&&e.iterationCount>1&&r+(e.duration-e.iterationDuration)>n){ce(s);let t=s._prevRep;for(;t&&t.parent.id===e.id;)ce(t),t=t._prevRep}const i=n-t._delay;if(r>i){const t=s._startTime;s._changeDuration=i-(r-(t+s._updateDuration))-t,s._currentTime=s._changeDuration,s._isOverlapped=1,s._changeDuration<U&&ce(s)}let o=!0;if(Ot(e,(t=>{t._isOverlapped||(o=!1)})),o){const t=e.parent;if(t){let n=!0;Ot(t,(t=>{t!==e&&Ot(t,(t=>{t._isOverlapped||(n=!1)}))})),n&&t.cancel()}else e.cancel()}}}else if(n===z.blend){const e=le(t.target,t.property,"_add"),n=(t=>{let e=Pt.animation;return e||(e={duration:U,computeDeltaTime:X,_offset:0,_delay:0,_head:null,_tail:null},Pt.animation=e,Pt.update=()=>{t.forEach((t=>{for(let e in t){const n=t[e],s=n._head;if(s){const t=s._valueType,e=3===t||2===t?Bt(s._fromNumbers):null;let r=s._fromNumber,i=n._tail;for(;i&&i!==s;){if(e)for(let t=0,n=i._numbers.length;t<n;t++)e[t]+=i._numbers[t];else r+=i._number;i=i._prevAdd}s._toNumber=r,s._toNumbers=e}}})),Dt(e,1,1,0,2)}),e})(oe._add);let s=e._head;s||(s={...t},s._composition=z.replace,s._updateDuration=U,s._startTime=0,s._numbers=Bt(t._fromNumbers),s._number=0,s._next=null,s._prev=null,Ut(e,s),Ut(n,s));const r=t._toNumber;if(t._fromNumber=s._fromNumber-r,t._toNumber=0,t._numbers=Bt(t._fromNumbers),t._number=0,s._fromNumber=r,t._toNumbers){const e=Bt(t._toNumbers);e&&e.forEach(((e,n)=>{t._fromNumbers[n]=s._fromNumbers[n]-e,t._toNumbers[n]=0})),s._fromNumbers=e}Ut(e,t,null,"_prevAdd","_nextAdd")}return t},ue=t=>{const e=t._composition;if(e!==z.none){const n=t.target,s=t.property,r=oe._rep.get(n);if(jt(r[s],t,"_prevRep","_nextRep"),e===z.blend){const e=oe._add,r=e.get(n);if(!r)return;const i=r[s],o=Pt.animation;jt(i,t,"_prevAdd","_nextAdd");const l=i._head;if(l&&l===i._tail){jt(i,l,"_prevAdd","_nextAdd"),jt(o,l);let t=!0;for(let e in r)if(r[e]._head){t=!1;break}t&&e.delete(n)}}}return t},de=t=>(t.paused=!0,t.began=!1,t.completed=!1,t),fe=t=>t._cancelled?(Ot(t,t._hasChildren?fe:t=>{t._composition!==z.none&&he(t,le(t.target,t.property))}),t._cancelled=0,t):t;let pe=0;class ge extends Et{constructor(t={},e=null,n=0){super(0);const{id:s,delay:r,duration:i,reversed:o,alternate:l,loop:a,loopDelay:c,autoplay:h,frameRate:u,playbackRate:d,onComplete:f,onLoop:p,onPause:g,onBegin:b,onBeforeUpdate:m,onUpdate:v}=t,x=e?0:Yt._elapsedTime,y=e?e.defaults:nt.defaults,w=ct(r)||ht(r)?y.delay:+r,C=ct(i)||ht(i)?1/0:+i,k=Gt(a,y.loop),_=Gt(c,y.loopDelay),M=!0===k||k===1/0||k<0?1/0:k+1;let N=0;if(e)N=n;else{let t=it();Yt.paused&&(Yt.requestTick(t),t=Yt._elapsedTime),N=t-Yt._startTime}this.id=ht(s)?++pe:s,this.parent=e,this.duration=Tt((C+_)*M-_)||U,this.backwards=!1,this.paused=!0,this.began=!1,this.completed=!1,this.onBegin=b||y.onBegin,this.onBeforeUpdate=m||y.onBeforeUpdate,this.onUpdate=v||y.onUpdate,this.onLoop=p||y.onLoop,this.onPause=g||y.onPause,this.onComplete=f||y.onComplete,this.iterationDuration=C,this.iterationCount=M,this._autoplay=!e&&Gt(h,y.autoplay),this._offset=N,this._delay=w,this._loopDelay=_,this._iterationTime=0,this._currentIteration=0,this._resolve=X,this._running=!1,this._reversed=+Gt(o,y.reversed),this._reverse=this._reversed,this._cancelled=0,this._alternate=Gt(l,y.alternate),this._prev=null,this._next=null,this._elapsedTime=x,this._startTime=x,this._lastTime=x,this._fps=Gt(u,y.frameRate),this._speed=Gt(d,y.playbackRate)}get cancelled(){return!!this._cancelled}set cancelled(t){t?this.cancel():this.reset(1).play()}get currentTime(){return At(St(this._currentTime,nt.precision),-this._delay,this.duration)}set currentTime(t){const e=this.paused;this.pause().seek(+t),e||this.resume()}get iterationCurrentTime(){return St(this._iterationTime,nt.precision)}set iterationCurrentTime(t){this.currentTime=this.iterationDuration*this._currentIteration+t}get progress(){return At(St(this._currentTime/this.duration,10),0,1)}set progress(t){this.currentTime=this.duration*t}get iterationProgress(){return At(St(this._iterationTime/this.iterationDuration,10),0,1)}set iterationProgress(t){const e=this.iterationDuration;this.currentTime=e*this._currentIteration+e*t}get currentIteration(){return this._currentIteration}set currentIteration(t){this.currentTime=this.iterationDuration*At(+t,0,this.iterationCount-1)}get reversed(){return!!this._reversed}set reversed(t){t?this.reverse():this.play()}get speed(){return super.speed}set speed(t){super.speed=t,this.resetTime()}reset(t=0){return fe(this),this._reversed&&!this._reverse&&(this.reversed=!1),this._iterationTime=this.iterationDuration,It(this,0,1,t,2),de(this),this._hasChildren&&Ot(this,de),this}init(t=0){this.fps=this._fps,this.speed=this._speed,!t&&this._hasChildren&&It(this,this.duration,1,t,2),this.reset(t);const e=this._autoplay;return!0===e?this.resume():e&&!ht(e.linked)&&e.link(this),this}resetTime(){const t=1/(this._speed*Yt._speed);return this._startTime=it()-(this._currentTime+this._delay)*t,this}pause(){return this.paused||(this.paused=!0,this.onPause(this)),this}resume(){return this.paused?(this.paused=!1,this.duration<=U&&!this._hasChildren?It(this,U,0,0,2):(this._running||(Ut(Yt,this),Yt._hasChildren=!0,this._running=!0),this.resetTime(),this._startTime-=12,Yt.wake()),this):this}restart(){return this.reset(0).resume()}seek(t,e=0,n=0){fe(this),this.completed=!1;const s=this.paused;return this.paused=!0,It(this,t+this._delay,~~e,~~n,1),s?this:this.resume()}alternate(){const t=this._reversed,e=this.iterationCount,n=this.iterationDuration,s=e===1/0?_t(E/n):e;return this._reversed=+(!this._alternate||s%2?!t:t),e===1/0?this.iterationProgress=this._reversed?1-this.iterationProgress:this.iterationProgress:this.seek(n*s-this._currentTime),this.resetTime(),this}play(){return this._reversed&&this.alternate(),this.resume()}reverse(){return this._reversed||this.alternate(),this.resume()}cancel(){return this._hasChildren?Ot(this,(t=>t.cancel()),!0):Ot(this,ue),this._cancelled=1,this.pause()}stretch(t){const e=this.duration,n=Rt(t);if(e===n)return this;const s=t/e,r=t<=U;return this.duration=r?U:n,this.iterationDuration=r?U:Rt(this.iterationDuration*s),this._offset*=s,this._delay*=s,this._loopDelay*=s,this}revert(){It(this,0,1,0,1);const t=this._autoplay;return t&&t.linked&&t.linked===this&&t.revert(),this.cancel()}complete(){return this.seek(this.duration).cancel()}then(t=X){const e=this.then,n=()=>{this.then=null,t(this),this.then=e,this._resolve=X};return new Promise((t=>(this._resolve=()=>t(n()),this.completed&&this._resolve(),this)))}}const be=t=>t,me=(t,e,n)=>(((1-3*n+3*e)*t+(3*n-6*e))*t+3*e)*t,ve=(t=.5,e=0,n=.5,s=1)=>t===e&&n===s?be:r=>0===r||1===r?r:me(((t,e,n)=>{let s,r,i=0,o=1,l=0;do{r=i+(o-i)/2,s=me(r,e,n)-t,s>0?o=r:i=r}while(Ct(s)>1e-7&&++l<100);return r})(r,t,n),e,s),xe=(t=10,e)=>{const n=e?kt:_t;return e=>n(At(e,0,1)*t)*(1/t)},ye=(...t)=>{const e=t.length;if(!e)return be;const n=e-1,s=t[n],r=[0],i=[mt(t[0])];for(let e=1;e<n;e++){const s=t[e],o=at(s)?s.trim().split(" "):[s],l=o[0],a=o[1];r.push(ht(a)?e/n:mt(a)/100),i.push(mt(l))}return i.push(mt(s)),r.push(1),function(t){for(let e=1,n=r.length;e<n;e++){const n=r[e];if(t<=n){const s=r[e-1],o=i[e-1];return o+(i[e]-o)*(t-s)/(n-s)}}return i[i.length-1]}},we=(t=10,e=1)=>{const n=[0],s=t-1;for(let t=1;t<s;t++){const r=n[t-1],i=t/s,o=i+((t+1)/s-i)*Math.random();n.push(At(i*(1-e)+o*e,r,1))}return n.push(1),ye(...n)},Ce=Nt/2,ke=2*Nt,_e=(t=1.68)=>e=>vt(e,+t),Me={[I]:_e,Quad:_e(2),Cubic:_e(3),Quart:_e(4),Quint:_e(5),Sine:t=>1-wt(t*Ce),Circ:t=>1-xt(1-t*t),Expo:t=>t?vt(2,10*t-10):0,Bounce:t=>{let e,n=4;for(;t<((e=vt(2,--n))-1)/11;);return 1/vt(4,3-n)-7.5625*vt((3*e-2)/22-t,2)},Back:(t=1.70158)=>e=>(+t+1)*e*e*e-+t*e*e,Elastic:(t=1,e=.3)=>{const n=At(+t,1,10),s=At(+e,U,2),r=s/ke*Mt(1/n),i=ke/s;return t=>0===t||1===t?t:-n*vt(2,-10*(1-t))*yt((1-t-r)*i)}},Ne={in:t=>e=>t(e),out:t=>e=>1-t(1-e),inOut:t=>e=>e<.5?t(2*e)/2:1-t(-2*e+2)/2,outIn:t=>e=>e<.5?(1-t(1-2*e))/2:(t(2*e-1)+1)/2},$e=(()=>{const t={linear:ye,irregular:we,steps:xe,cubicBezier:ve};for(let e in Ne)for(let n in Me){const s=Me[n],r=Ne[e];t[e+n]=n===I||"Back"===n||"Elastic"===n?(t,e)=>r(s(t,e)):r(s)}return t})(),Ae={linear:be},Le=t=>ct(t)?t:at(t)?((t,e,n)=>{if(n[t])return n[t];if(t.indexOf("(")<=-1){const s=Ne[t]||t.includes("Back")||t.includes("Elastic")?e[t]():e[t];return s?n[t]=s:be}{const s=t.slice(0,-1).split("("),r=e[s[0]];return r?n[t]=r(...s[1].split(",")):be}})(t,$e,Ae):be,Se={},ze=(t,e,n)=>{if(3===n){return P.get(t)||t}if(2===n||1===n&&dt(e)&&t in e.style){const e=Se[t];if(e)return e;{const e=t?t.replace(K,"$1-$2").toLowerCase():t;return Se[t]=e,e}}return t},Te={deg:1,rad:180/Nt,turn:360},Re={},Be=(t,e,n,s=!1)=>{const r=e.u,i=e.n;if(1===e.t&&r===n)return e;const o=i+r+n,l=Re[o];if(ht(l)||s){let s;if(r in Te)s=i*Te[r]/Te[n];else{const e=100,o=t.cloneNode(),l=t.parentNode,a=l&&l!==S?l:S.body;a.appendChild(o);const c=o.style;c.width=e+r;const h=o.offsetWidth||e;c.width=e+n;const u=h/(o.offsetWidth||e);a.removeChild(o),s=u*i}e.n=s,Re[o]=s}else e.n=l;return e.u=n,e},Oe=t=>{if(t._hasChildren)Ot(t,Oe,!0);else{const e=t;e.pause(),Ot(e,(t=>{const n=t.property,s=t.target;if(s[R]){const r=s.style,i=e._inlineStyles[n];if(3===t._tweenType){const e=s[O];if(ht(i)||i===I?delete e[n]:e[n]=i,t._renderTransforms)if(Object.keys(e).length){let t=I;for(let n in e)t+=Z[n]+e[n]+") ";r.transform=t}else r.removeProperty("transform")}else ht(i)||i===I?r.removeProperty(n):r[n]=i;e._tail===t&&e.targets.forEach((t=>{t.getAttribute&&t.getAttribute("style")===I&&t.removeAttribute("style")}))}}))}return t},je={t:0,n:0,u:null,o:null,d:null,s:null},Ue={t:0,n:0,u:null,o:null,d:null,s:null},Ee={func:null},De=[null],Ie=[null,null],Pe={to:null};let He,Ze,Xe=0;class Ye extends ge{constructor(t,e,n,s,r=!1,i=0,o=0){super(e,n,s);const l=function(t){const e=function(t){if(ut(t))return[];if(ot(t)){const e=t.flat(1/0),n=[];for(let t=0,s=e.length;t<s;t++){const s=e[t];if(!ut(s)){const t=qt(s);if(t)for(let e=0,s=t.length;e<s;e++){const s=t[e];if(!ut(s)){let t=!1;for(let e=0,r=n.length;e<r;e++)if(n[e]===s){t=!0;break}t||n.push(s)}}else{let t=!1;for(let e=0,r=n.length;e<r;e++)if(n[e]===s){t=!0;break}t||n.push(s)}}}return n}if(!A)return[t];const e=qt(t);return e?Array.from(e):[t]}(t),n=e.length;if(n)for(let t=0;t<n;t++){const n=e[t];if(!n[T]){n[T]=!0;const t=dt(n);(n.nodeType||t)&&(n[R]=!0,n[B]=t,n[O]={})}}return e}(t),a=l.length,c=e.keyframes,h=c?((t,e)=>{const n={...t};for(let s in e){const r=t[s];n[s]=ht(r)?e[s]:r}return n})(((t,e)=>{const n={};if(ot(t)){const e=[].concat(...t.map((t=>Object.keys(t)))).filter(bt);for(let s=0,r=e.length;s<r;s++){const r=e[s],i=t.map((t=>{const e={};for(let n in t){const s=t[n];bt(n)?n===r&&(e.to=s):e[n]=s}return e}));n[r]=i}}else{const s=Gt(e.duration,nt.defaults.duration),r=Object.keys(t).map((e=>({o:parseFloat(e)/100,p:t[e]}))).sort(((t,e)=>t.o-e.o));r.forEach((t=>{const e=t.o,r=t.p;for(let t in r)if(bt(t)){let i=n[t];i||(i=n[t]=[]);const o=e*s;let l=i.length,a=i[l-1];const c={to:r[t]};let h=0;for(let t=0;t<l;t++)h+=i[t].duration;1===l&&(c.from=a.to),r.ease&&(c.ease=r.ease),c.duration=o-(l?h:0),i.push(c)}return t}));for(let t in n){const e=n[t];let s;for(let t=0,n=e.length;t<n;t++){const n=e[t],r=n.ease;n.ease=s||void 0,s=r}e[0].duration||e.shift()}}return n})(c,e),e):e,{delay:u,duration:d,ease:f,playbackEase:p,modifier:g,composition:b,onRender:m}=h,v=n?n.defaults:nt.defaults,x=Gt(p,v.playbackEase),y=x?Le(x):null,w=!ht(f)&&!ht(f.ease),C=w?f.ease:Gt(f,y?"linear":v.ease),k=w?f.duration:Gt(d,v.duration),_=Gt(u,v.delay),M=g||v.modifier,N=ht(b)&&a>=D?z.none:ht(b)?v.composition:b,$={},L=this._offset+(n?n._offset:0);let S=NaN,j=NaN,E=0,I=0;for(let t=0;t<a;t++){const e=l[t],s=i||t,c=o||a;let u=NaN,d=NaN;for(let t in h)if(bt(t)){const i=Wt(e,t),o=ze(t,e,i);let l=h[t];const a=ot(l);if(r&&!a&&(Ie[0]=l,Ie[1]=l,l=Ie),a){const t=l.length,e=!lt(l[0]);2===t&&e?(Pe.to=l,De[0]=Pe,He=De):t>2&&e?(He=[],l.forEach(((t,e)=>{e?1===e?(Ie[1]=t,He.push(Ie)):He.push(t):Ie[0]=t}))):He=l}else De[0]=l,He=De;let f=null,p=null,g=NaN,b=0,m=0;for(let t=He.length;m<t;m++){const r=He[m];lt(r)?Ze=r:(Pe.to=r,Ze=Pe),Ee.func=null;const l=Kt(Ze.to,e,s,c,Ee);let a;lt(l)&&!ht(l.to)?(Ze=l,a=l.to):a=l;const h=Kt(Ze.from,e,s,c),u=Ze.ease,d=!ht(u)&&!ht(u.ease),v=d?u.ease:u||C,x=d?u.duration:Kt(Gt(Ze.duration,t>1?Kt(k,e,s,c)/t:k),e,s,c),y=Kt(Gt(Ze.delay,m?0:_),e,s,c),w=Kt(Gt(Ze.composition,N),e,s,c),A="number"!=typeof(P=w)||isNaN(P)?z[w]:w,S=Ze.modifier||M,T=!ht(h),R=!ht(a),B=ot(a),O=B||T&&R,j=p?b+y:y,D=L+j;I||!T&&!B||(I=1);let H=p;if(A!==z.none){f||(f=le(e,o));let t=f._head;for(;t&&!t._isOverridden&&t._absoluteStartTime<=D;)if(H=t,t=t._nextRep,t&&t._absoluteStartTime>=D)for(;t;)ce(t),t=t._nextRep}if(O?(se(B?Kt(a[0],e,s,c):h,je),se(B?Kt(a[1],e,s,c,Ee):a,Ue),0===je.t&&(H?1===H._valueType&&(je.t=1,je.u=H._unit):(se(ee(e,o,i,$),ie),1===ie.t&&(je.t=1,je.u=ie.u)))):(R?se(a,Ue):p?re(p,Ue):se(n&&H&&H.parent.parent===n?H._value:ee(e,o,i,$),Ue),T?se(h,je):p?re(p,je):se(n&&H&&H.parent.parent===n?H._value:ee(e,o,i,$),je)),je.o&&(je.n=ne(H?H._toNumber:se(ee(e,o,i,$),ie).n,je.n,je.o)),Ue.o&&(Ue.n=ne(je.n,Ue.n,Ue.o)),je.t!==Ue.t)if(3===je.t||3===Ue.t){const t=3===je.t?je:Ue,e=3===je.t?Ue:je;e.t=3,e.s=Bt(t.s),e.d=t.d.map((()=>e.n))}else if(1===je.t||1===Ue.t){const t=1===je.t?je:Ue,e=1===je.t?Ue:je;e.t=1,e.u=t.u}else if(2===je.t||2===Ue.t){const t=2===je.t?je:Ue,e=2===je.t?Ue:je;e.t=2,e.s=t.s,e.d=[0,0,0,1]}if(je.u!==Ue.u){let t=Ue.u?je:Ue;t=Be(e,t,Ue.u?Ue.u:je.u,!1)}if(Ue.d&&je.d&&Ue.d.length!==je.d.length){const t=je.d.length>Ue.d.length?je:Ue,e=t===je?Ue:je;e.d=t.d.map(((t,n)=>ht(e.d[n])?0:e.d[n])),e.s=Bt(t.s)}const Z=St(+x||U,12),X={parent:this,id:Xe++,property:o,target:e,_value:null,_func:Ee.func,_ease:Le(v),_fromNumbers:Bt(je.d),_toNumbers:Bt(Ue.d),_strings:Bt(Ue.s),_fromNumber:je.n,_toNumber:Ue.n,_numbers:Bt(je.d),_number:je.n,_unit:Ue.u,_modifier:S,_currentTime:0,_startTime:j,_delay:+y,_updateDuration:Z,_changeDuration:Z,_absoluteStartTime:D,_tweenType:i,_valueType:Ue.t,_composition:A,_isOverlapped:0,_isOverridden:0,_renderTransforms:0,_prevRep:null,_nextRep:null,_prevAdd:null,_nextAdd:null,_prev:null,_next:null};A!==z.none&&he(X,f),isNaN(g)&&(g=X._startTime),b=St(j+Z,12),p=X,E++,Ut(this,X)}(isNaN(j)||g<j)&&(j=g),(isNaN(S)||b>S)&&(S=b),3===i&&(u=E-m,d=E)}if(!isNaN(u)){let t=0;Ot(this,(e=>{t>=u&&t<d&&(e._renderTransforms=1,e._composition===z.blend&&Ot(Pt.animation,(t=>{t.id===e.id&&(t._renderTransforms=1)}))),t++}))}}var P;a||console.warn("No target found. Make sure the element you're trying to animate is accessible before creating your animation."),j?(Ot(this,(t=>{t._startTime-t._delay||(t._delay-=j),t._startTime-=j})),S-=j):j=0,S||(S=U,this.iterationCount=0),this.targets=l,this.duration=S===U?U:Tt((S+this._loopDelay)*this.iterationCount-this._loopDelay)||U,this.onRender=m||v.onRender,this._ease=y,this._delay=j,this.iterationDuration=S,this._inlineStyles=$,!this._autoplay&&I&&this.onRender(this)}stretch(t){const e=this.duration;if(e===Rt(t))return this;const n=t/e;return Ot(this,(t=>{t._updateDuration=Rt(t._updateDuration*n),t._changeDuration=Rt(t._changeDuration*n),t._currentTime*=n,t._startTime*=n,t._absoluteStartTime*=n})),super.stretch(t)}refresh(){return Ot(this,(t=>{const e=t._func;if(e){const n=ee(t.target,t.property,t._tweenType);se(n,ie),se(e(),Ue),t._fromNumbers=Bt(ie.d),t._fromNumber=ie.n,t._toNumbers=Bt(Ue.d),t._strings=Bt(Ue.s),t._toNumber=Ue.o?ne(ie.n,Ue.n,Ue.o):Ue.n}})),this}revert(){return super.revert(),Oe(this)}then(t){return super.then(t)}}const Fe=(t,e)=>new Ye(t,e,null,0,!1).init();let Qe,qe=[];const Je=c("white"),Ve=c("bada55");let Ge,Ke;const We=t=>{Qe&&(Ge&&Ge.pause(),Ge=Fe(Qe,{fill:c(t),ease:"inOutCubic"}))},tn=t=>{Qe&&(Ke&&Ke.pause(),Ke=Fe(Qe,{y:(e,n)=>qe[n]*((100-t[n])/100),ease:"inOutCubic"}))},en=()=>{const e=i.map((t=>(({id:t,height:e,width:n,x:s,y:r,drop:i})=>({id:t,height:e,width:n,x:s,y:r,maskId:`mask-${t}`,maskUri:`url('#mask-${t}')`,mask:`0.5,0.5,0.5,${e-.5},${n-.5},${e-i-.5},${n-.5},${i+.5}`,matrix:`matrix(1,0,0,1,${s},${r})`,points:`0,0,0,${e},${n},${e-i},${n},${i}`}))(t))),n="currentColor";return qe=Array(e.length),Qe=Array(e.length),t("div",{class:"funnel-gfx"},t("svg",{viewBox:"0 0 600 420"},t("desc",null,"Created with Snap"),t("defs",null,e.map((e=>t("mask",{id:e.maskId},t("polygon",{points:e.mask,fill:Je}))))),e.map(((e,s)=>{const{height:r,width:i,maskUri:o,matrix:l,points:a}=e;return qe[s]=r,t("g",{transform:l},t("polygon",{points:a,fill:Je,stroke:n}),t("rect",{ref:t=>Qe[s]=t,x:"0",y:r,width:i,height:r,mask:o,fill:Ve,stroke:n}))}))))},nn=e=>{const n=e.hex||"currentColor",s=e.size||24;return t("svg",{class:e.class,width:s,height:s,viewBox:"0 0 24 24",role:"img","aria-label":"title"},t("title",null,e.label||"fingerprint"),t("g",{fill:n},t("path",{d:"M17.81,4.47C17.73,4.47 17.65,4.45 17.58,4.41C15.66,3.42 14,3\n 12,3C10.03,3 8.15,3.47 6.44,4.41C6.2,4.54 5.9,4.45 5.76,4.21C5.63,3.97\n 5.72,3.66 5.96,3.53C7.82,2.5 9.86,2 12,2C14.14,2 16,2.47\n 18.04,3.5C18.29,3.65 18.38,3.95 18.25,4.19C18.16,4.37 18,4.47\n 17.81,4.47M3.5,9.72C3.4,9.72 3.3,9.69 3.21,9.63C3,9.47 2.93,9.16\n 3.09,8.93C4.08,7.53 5.34,6.43 6.84,5.66C10,4.04 14,4.03\n 17.15,5.65C18.65,6.42 19.91,7.5 20.9,8.9C21.06,9.12 21,9.44\n 20.78,9.6C20.55,9.76 20.24,9.71 20.08,9.5C19.18,8.22 18.04,7.23\n 16.69,6.54C13.82,5.07 10.15,5.07 7.29,6.55C5.93,7.25 4.79,8.25\n 3.89,9.5C3.81,9.65 3.66,9.72 3.5,9.72M9.75,21.79C9.62,21.79 9.5,21.74\n 9.4,21.64C8.53,20.77 8.06,20.21 7.39,19C6.7,17.77 6.34,16.27\n 6.34,14.66C6.34,11.69 8.88,9.27 12,9.27C15.12,9.27 17.66,11.69\n 17.66,14.66A0.5,0.5 0 0,1 17.16,15.16A0.5,0.5 0 0,1\n 16.66,14.66C16.66,12.24 14.57,10.27 12,10.27C9.43,10.27 7.34,12.24\n 7.34,14.66C7.34,16.1 7.66,17.43 8.27,18.5C8.91,19.66 9.35,20.15\n 10.12,20.93C10.31,21.13 10.31,21.44 10.12,21.64C10,21.74 9.88,21.79\n 9.75,21.79M16.92,19.94C15.73,19.94 14.68,19.64 13.82,19.05C12.33,18.04\n 11.44,16.4 11.44,14.66A0.5,0.5 0 0,1 11.94,14.16A0.5,0.5 0 0,1\n 12.44,14.66C12.44,16.07 13.16,17.4 14.38,18.22C15.09,18.7 15.92,18.93\n 16.92,18.93C17.16,18.93 17.56,18.9 17.96,18.83C18.23,18.78 18.5,18.96\n 18.54,19.24C18.59,19.5 18.41,19.77 18.13,19.82C17.56,19.93 17.06,19.94\n 16.92,19.94M14.91,22C14.87,22 14.82,22 14.78,22C13.19,21.54 12.15,20.95\n 11.06,19.88C9.66,18.5 8.89,16.64 8.89,14.66C8.89,13.04 10.27,11.72\n 11.97,11.72C13.67,11.72 15.05,13.04 15.05,14.66C15.05,15.73 16,16.6\n 17.13,16.6C18.28,16.6 19.21,15.73 19.21,14.66C19.21,10.89 15.96,7.83\n 11.96,7.83C9.12,7.83 6.5,9.41 5.35,11.86C4.96,12.67 4.76,13.62\n 4.76,14.66C4.76,15.44 4.83,16.67 5.43,18.27C5.53,18.53 5.4,18.82\n 5.14,18.91C4.88,19 4.59,18.87 4.5,18.62C4,17.31 3.77,16\n 3.77,14.66C3.77,13.46 4,12.37 4.45,11.42C5.78,8.63 8.73,6.82\n 11.96,6.82C16.5,6.82 20.21,10.33 20.21,14.65C20.21,16.27 18.83,17.59\n 17.13,17.59C15.43,17.59 14.05,16.27 14.05,14.65C14.05,13.58 13.12,12.71\n 11.97,12.71C10.82,12.71 9.89,13.58 9.89,14.65C9.89,16.36 10.55,17.96\n 11.76,19.16C12.71,20.1 13.62,20.62 15.03,21C15.3,21.08 15.45,21.36\n 15.38,21.62C15.33,21.85 15.12,22 14.91,22Z"})),t("path",{d:"M0 0h24v24H0z",fill:"none"}))},sn="eswat2",rn=()=>t("a",{class:"absolute right-8 top-8 text-clrs-gray hover:text-clrs-navy",href:"https://eswat2.dev","aria-label":sn,target:"blank",title:sn},t(nn,{label:"eswat2"})),on=class{constructor(t){s(this,t),this.tag="funnel-app"}componentDidLoad(){v("pick",We),v("values",tn),y.initApp()}render(){return t("div",{key:"7998626a3f01e8bb4b2ed4b2b80d8b8de4a11206",id:"app",class:"ds1-main relative"},t(rn,{key:"44437debf47c76557ac6a115eec78b43a0aa2648"}),t(en,{key:"f0806a91f365823850ab6ccebbc1339c18dd46b1"}),t(M,{key:"bfe9dc2f232eac7142d416c2dff3e7d8522930b7",actions:y,state:m}),t(w,{key:"23836d760ccb38b898857abd205ae186d8f05242",actions:y,state:m}),t("hr",{key:"33eae1954a6b50e6a7b8c3124e92895114a8412d",class:"ml-0 mr-0"}),t($,{key:"4d449b22dedd37ce95356c98b00d5137008b5345",state:m}))}};on.style="/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root,\n :host {\n --font-sans:\n ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji',\n 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n --spacing: 0.25rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --font-weight-bold: 700;\n }\n}\n@layer utilities {\n .absolute {\n position: absolute;\n }\n .relative {\n position: relative;\n }\n .top-8 {\n top: calc(var(--spacing) * 8);\n }\n .right-8 {\n right: calc(var(--spacing) * 8);\n }\n .mt-3 {\n margin-top: calc(var(--spacing) * 3);\n }\n .mt-5px {\n margin-top: 5px;\n }\n .mr-0 {\n margin-right: calc(var(--spacing) * 0);\n }\n .mr-10px {\n margin-right: 10px;\n }\n .mb-10px {\n margin-bottom: 10px;\n }\n .ml-0 {\n margin-left: calc(var(--spacing) * 0);\n }\n .ml-auto {\n margin-left: auto;\n }\n .flex {\n display: flex;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,)\n var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-center {\n align-items: center;\n }\n .border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .border-clrs-gray {\n border-color: var(--clrs-gray, #aaaaaa);\n }\n .border-clrs-slate {\n border-color: var(--clrs-slate, #708090);\n }\n .bg-clrs-blue {\n background-color: var(--clrs-blue, #0074d9);\n }\n .bg-clrs-red {\n background-color: var(--clrs-red, #ff4136);\n }\n .bg-clrs-silver {\n background-color: var(--clrs-silver, #dddddd);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .align-top {\n vertical-align: top;\n }\n .font-sans {\n font-family: var(--font-sans);\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .text-clrs-gray {\n color: var(--clrs-gray, #aaaaaa);\n }\n .text-clrs-navy {\n color: var(--clrs-navy, #001f3f);\n }\n .text-clrs-slate4 {\n color: var(--clrs-slate4, #4e5964);\n }\n .text-clrs-white {\n color: var(--clrs-white, #ffffff);\n }\n .italic {\n font-style: italic;\n }\n .shadow {\n --tw-shadow:\n 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)),\n 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow:\n var(--tw-inset-shadow), var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .hover\\:text-clrs-navy {\n &:hover {\n @media (hover: hover) {\n color: var(--clrs-navy, #001f3f);\n }\n }\n }\n .active\\:bg-clrs-gray {\n &:active {\n background-color: var(--clrs-gray, #aaaaaa);\n }\n }\n .active\\:text-clrs-navy {\n &:active {\n color: var(--clrs-navy, #001f3f);\n }\n }\n}\n@layer components {\n .ds1-main {\n display: flex;\n flex-direction: column;\n padding: calc(var(--spacing) * 4);\n font-family: var(--font-sans);\n color: var(--clrs-navy, #001f3f);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n .ds1-button {\n display: flex;\n align-items: center;\n --tw-border-style: solid;\n border-style: solid;\n border-color: var(--clrs-slate, #708090);\n color: var(--clrs-white, #ffffff);\n &:active {\n background-color: var(--clrs-gray, #aaaaaa);\n }\n &:active {\n color: var(--clrs-navy, #001f3f);\n }\n }\n .funnel-gfx {\n --tw-border-style: solid;\n border-style: solid;\n border-color: var(--clrs-gray, #aaaaaa);\n background-color: var(--clrs-silver, #dddddd);\n stroke-width: 1;\n }\n}\n.data-button {\n border-radius: 5px;\n border-width: 1px;\n padding: 5px;\n margin: 0px;\n margin-right: 5px;\n cursor: pointer;\n}\n.funnel-gfx {\n width: calc(100% - 20px);\n height: 100%;\n padding: 10px;\n padding-bottom: 7px;\n border-radius: 10px;\n border-width: 1px;\n}\n";export{on as funnel_app}
|