funnel-gfx-wc 0.1.83 → 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.2
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 {Number|String}
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|StaggerFunction} [use]
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
- // Callback types ////////////////////////////////////////////////////////////
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
- // Animation types ////////////////////////////////////////////////////////////
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
- // Animatable types ///////////////////////////////////////////////////////////
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
- // Draggable types ////////////////////////////////////////////////////////////
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.2', engine: null };
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 = null;
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 && !this.paused) {
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 = absoluteUpdateStartTime - prevTLOffset - prevChangeStartTime;
2442
- prevSibling._currentTime = prevSibling._changeDuration;
2581
+ prevSibling._changeDuration = updatedPrevChangeDuration;
2582
+ prevSibling._currentTime = updatedPrevChangeDuration;
2443
2583
  prevSibling._isOverlapped = 1;
2444
2584
 
2445
- if (prevSibling._changeDuration < minValue) {
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 separatly
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
- let startTime = now();
2679
- // Make sure to tick the engine once if suspended to avoid big gaps with the following offsetPosition calculation
2680
- if (engine.paused) {
2681
- engine.requestTick(startTime);
2682
- startTime = engine._elapsedTime;
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} [args] - Points
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
- const absoluteStartTime = absoluteOffsetTime + tweenStartTime;
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.2
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 {Number|String}
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|StaggerFunction} [use]
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
- // Callback types ////////////////////////////////////////////////////////////
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
- // Animation types ////////////////////////////////////////////////////////////
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
- // Animatable types ///////////////////////////////////////////////////////////
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
- // Draggable types ////////////////////////////////////////////////////////////
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.2', engine: null };
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 = null;
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 && !this.paused) {
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 = absoluteUpdateStartTime - prevTLOffset - prevChangeStartTime;
2440
- prevSibling._currentTime = prevSibling._changeDuration;
2579
+ prevSibling._changeDuration = updatedPrevChangeDuration;
2580
+ prevSibling._currentTime = updatedPrevChangeDuration;
2441
2581
  prevSibling._isOverlapped = 1;
2442
2582
 
2443
- if (prevSibling._changeDuration < minValue) {
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 separatly
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
- let startTime = now();
2677
- // Make sure to tick the engine once if suspended to avoid big gaps with the following offsetPosition calculation
2678
- if (engine.paused) {
2679
- engine.requestTick(startTime);
2680
- startTime = engine._elapsedTime;
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} [args] - Points
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
- const absoluteStartTime = absoluteOffsetTime + tweenStartTime;
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 a=import.meta.url,s={};return""!==a&&(s.resourcesUrl=new URL(".",a).href),p(s)})().then((async p=>(await t(),a([["p-bdbba176",[[257,"funnel-app",{tag:[1]}]]]],p))));
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.83",
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,7 +29,7 @@
29
29
  "dependencies": {
30
30
  "@stencil/core": "4.36.2",
31
31
  "@stencil/store": "2.2.0",
32
- "animejs": "4.1.2"
32
+ "animejs": "4.1.3"
33
33
  },
34
34
  "devDependencies": {
35
35
  "autoprefixer": "10.4.21",
@@ -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}