{"version":3,"sources":["../src/type.ts","../src/shared/svg-wrapper.tsx","../src/shared/constants.ts","../src/loader/audio.tsx","../src/loader/ball-triangle.tsx","../src/loader/bars.tsx","../src/shared/gradient.tsx","../src/loader/circles.tsx","../src/loader/circles-with-bar.tsx","../src/loader/grid.tsx","../src/loader/hearts.tsx","../src/loader/infinity-spin.tsx","../src/loader/line-wave.tsx","../src/loader/mutating-dots.tsx","../src/loader/oval.tsx","../src/loader/puff.tsx","../src/loader/revolving-dot.tsx","../src/loader/rings.tsx","../src/loader/rotating-square.tsx","../src/loader/rotating-lines.tsx","../src/loader/tail-spin.tsx","../src/loader/three-circles.tsx","../src/loader/three-dots.tsx","../src/loader/triangle.tsx","../src/loader/watch.tsx","../src/loader/falling-lines.tsx","../src/loader/vortex.tsx","../src/loader/rotating-triangles.tsx","../src/loader/radio.tsx","../src/loader/progress-bar.tsx","../src/loader/magnifying-glass.tsx","../src/loader/fidget-spinner.tsx","../src/loader/dna.tsx","../src/loader/discuss.tsx","../src/loader/color-ring.tsx","../src/loader/comment.tsx","../src/loader/blocks.tsx","../src/loader/circular-progress.tsx","../src/loader/hourglass.tsx"],"names":["DEFAULT_COLOR","DEFAULT_WAI_ARIA_ATTRIBUTE","SvgWrapper","styled","props","SVG_NAMESPACE","Audio","height","width","color","ariaLabel","wrapperStyle","wrapperClass","visible","jsx","jsxs","BallTriangle","radius","Bars","useGradient","colors","gradientType","gradientAngle","isGradient","gradientId","useMemo","defs","c","i","url","Circles","CirclesWithBar","outerCircleColor","innerCircleColor","barColor","Grid","Hearts","len","time","anim","keyframes","Path","InfinitySpin","LineWave","firstLineColor","middleLineColor","lastLineColor","MutatingDots","secondaryColor","RADIUS","getPath","getViewBoxSize","strokeWidth","secondaryStrokeWidth","maxStrokeWidth","startingPoint","endpoint","Oval","strokeWidthSecondary","animationDuration","Puff","RevolvingDot","Rings","RotatingSquare","POINTS","spin","Svg","Polyline","RotatingLines","strokeColor","lines","useCallback","point","TailSpin","strokeWidthNum","viewBoxValue","halfStrokeWidth","processedRadius","ThreeCircles","middleCircleColor","ThreeDots","VIEW_BOX_VALUES","POLYGON_POINTS","dash","Polygon","SVG","Triangle","Watch","FallingLines","Vortex","RotatingTriangles","Radio","ProgressBar","borderColor","MagnifyingGlass","glassColor","FidgetSpinner","backgroundColor","ballColors","DNA","dnaColorOne","dnaColorTwo","animatedColorOne","tinycolor","animatedColorTwo","Discuss","ColorRing","Comment","Blocks","CircularProgress","Hourglass"],"mappings":"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","file":"index.mjs","sourcesContent":["import { CSSProperties } from 'react'\n\nexport const DEFAULT_COLOR = '#4fa94d'\n\nexport const DEFAULT_WAI_ARIA_ATTRIBUTE = {\n  'aria-busy': true,\n  role: 'progressbar',\n}\n\n// Reuse React's CSSProperties for consistent style typing across components\nexport type Style = CSSProperties\n\n// PrimaryProps includes common props shared by experimental components\nexport interface PrimaryProps {\n  height?: string | number\n  width?: string | number\n  color?: string\n  ariaLabel?: string\n  wrapperStyle?: CSSProperties\n  wrapperClass?: string\n  visible?: boolean\n}\n\n\n","import styled from 'styled-components'\n\nexport const SvgWrapper = styled.div<{ $visible: boolean }>`\n  display: ${props => (props.$visible ? 'flex' : 'none')};\n`\n","export const SVG_NAMESPACE = 'http://www.w3.org/2000/svg'\n","import { FunctionComponent, ReactElement, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the Audio loader component.\n * \n * The Audio loader displays an animated visualization similar to audio equalizer bars,\n * with four vertical bars that animate up and down at different intervals to create\n * a dynamic audio visualization effect.\n * \n * @interface AudioProps\n */\ninterface AudioProps {\n  /** Height of the SVG (number interpreted as px). Defaults to '100'. */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). Defaults to '100'. */\n  width?: string | number\n  /** Primary color applied to the audio bars. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Accessible label announced to screen readers. Defaults to 'audio-loading'. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n}\n\nexport const Audio: FunctionComponent<AudioProps> = ({\n  height = '100',\n  width = '100',\n  color = DEFAULT_COLOR,\n  ariaLabel = 'audio-loading',\n  wrapperStyle = {},\n  wrapperClass,\n  visible = true,\n}): ReactElement => (\n  <SvgWrapper\n    $visible={visible}\n    style={{ ...wrapperStyle }}\n    className={wrapperClass}\n    data-testid=\"audio-loading\"\n    aria-label={ariaLabel}\n    {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n  >\n    <svg\n      height={`${height}`}\n      width={`${width}`}\n      fill={color}\n      viewBox=\"0 0 55 80\"\n      xmlns={SVG_NAMESPACE}\n      data-testid=\"audio-svg\"\n    >\n      <title>Audio Visualization</title>\n      <desc>Animated representation of audio data</desc>\n      <g transform=\"matrix(1 0 0 -1 0 80)\">\n        <rect width=\"10\" height=\"20\" rx=\"3\">\n          <animate\n            attributeName=\"height\"\n            begin=\"0s\"\n            dur=\"4.3s\"\n            values=\"20;45;57;80;64;32;66;45;64;23;66;13;64;56;34;34;2;23;76;79;20\"\n            calcMode=\"linear\"\n            repeatCount=\"indefinite\"\n          />\n        </rect>\n        <rect x=\"15\" width=\"10\" height=\"80\" rx=\"3\">\n          <animate\n            attributeName=\"height\"\n            begin=\"0s\"\n            dur=\"2s\"\n            values=\"80;55;33;5;75;23;73;33;12;14;60;80\"\n            calcMode=\"linear\"\n            repeatCount=\"indefinite\"\n          />\n        </rect>\n        <rect x=\"30\" width=\"10\" height=\"50\" rx=\"3\">\n          <animate\n            attributeName=\"height\"\n            begin=\"0s\"\n            dur=\"1.4s\"\n            values=\"50;34;78;23;56;23;34;76;80;54;21;50\"\n            calcMode=\"linear\"\n            repeatCount=\"indefinite\"\n          />\n        </rect>\n        <rect x=\"45\" width=\"10\" height=\"30\" rx=\"3\">\n          <animate\n            attributeName=\"height\"\n            begin=\"0s\"\n            dur=\"2s\"\n            values=\"30;45;13;80;56;72;45;76;34;23;67;30\"\n            calcMode=\"linear\"\n            repeatCount=\"indefinite\"\n          />\n        </rect>\n      </g>\n    </svg>\n  </SvgWrapper>\n)\n","import { FunctionComponent, ReactElement, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the BallTriangle loader component.\n * \n * The BallTriangle loader displays three animated balls positioned at the corners\n * of a triangle. Each ball moves in a circular path, creating a dynamic triangular\n * loading animation with smooth rotation and scaling effects.\n * \n * @interface BallTriangleProps\n */\ninterface BallTriangleProps {\n  /** Height of the SVG (number interpreted as px). Defaults to 100. */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). Defaults to 100. */\n  width?: string | number\n  /** Primary color applied to the balls. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Radius of each ball in the triangle. Defaults to 5. */\n  radius?: string | number\n  /** Accessible label announced to screen readers. Defaults to 'ball-triangle-loading'. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n}\n\nexport const BallTriangle: FunctionComponent<BallTriangleProps> = ({\n  height = 100,\n  width = 100,\n  radius = 5,\n  color = DEFAULT_COLOR,\n  ariaLabel = 'ball-triangle-loading',\n  wrapperClass,\n  wrapperStyle,\n  visible = true,\n}): ReactElement => (\n  <SvgWrapper\n    style={{ ...wrapperStyle }}\n    $visible={visible}\n    className={wrapperClass}\n    data-testid=\"ball-triangle-loading\"\n    aria-label={ariaLabel}\n    {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n  >\n    <svg\n      height={height}\n      width={width}\n      stroke={color}\n      viewBox=\"0 0 57 57\"\n      xmlns={SVG_NAMESPACE}\n      data-testid=\"ball-triangle-svg\"\n    >\n      <title>Ball Triangle</title>\n      <desc>Animated representation of three balls</desc>\n      <g fill=\"none\" fillRule=\"evenodd\">\n        <g transform=\"translate(1 1)\" strokeWidth=\"2\">\n          <circle cx=\"5\" cy=\"50\" r={radius}>\n            <animate\n              attributeName=\"cy\"\n              begin=\"0s\"\n              dur=\"2.2s\"\n              values=\"50;5;50;50\"\n              calcMode=\"linear\"\n              repeatCount=\"indefinite\"\n            />\n            <animate\n              attributeName=\"cx\"\n              begin=\"0s\"\n              dur=\"2.2s\"\n              values=\"5;27;49;5\"\n              calcMode=\"linear\"\n              repeatCount=\"indefinite\"\n            />\n          </circle>\n          <circle cx=\"27\" cy=\"5\" r={radius}>\n            <animate\n              attributeName=\"cy\"\n              begin=\"0s\"\n              dur=\"2.2s\"\n              from=\"5\"\n              to=\"5\"\n              values=\"5;50;50;5\"\n              calcMode=\"linear\"\n              repeatCount=\"indefinite\"\n            />\n            <animate\n              attributeName=\"cx\"\n              begin=\"0s\"\n              dur=\"2.2s\"\n              from=\"27\"\n              to=\"27\"\n              values=\"27;49;5;27\"\n              calcMode=\"linear\"\n              repeatCount=\"indefinite\"\n            />\n          </circle>\n          <circle cx=\"49\" cy=\"50\" r={radius}>\n            <animate\n              attributeName=\"cy\"\n              begin=\"0s\"\n              dur=\"2.2s\"\n              values=\"50;50;5;50\"\n              calcMode=\"linear\"\n              repeatCount=\"indefinite\"\n            />\n            <animate\n              attributeName=\"cx\"\n              from=\"49\"\n              to=\"49\"\n              begin=\"0s\"\n              dur=\"2.2s\"\n              values=\"49;5;27;49\"\n              calcMode=\"linear\"\n              repeatCount=\"indefinite\"\n            />\n          </circle>\n        </g>\n      </g>\n    </svg>\n  </SvgWrapper>\n)\n","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the Bars loader component.\n * \n * The Bars loader displays five animated vertical bars that move up and down\n * in a wave-like pattern, creating a loading animation similar to audio equalizer bars.\n * Each bar has a different animation timing to create a dynamic visual effect.\n * \n * @interface BarsProps\n */\ninterface BarsProps {\n  /** Height of the SVG (number interpreted as px). Defaults to 80. */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). Defaults to 80. */\n  width?: string | number\n  /** Primary color applied to the bars. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Accessible label announced to screen readers. Defaults to 'bars-loading'. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n}\n\nexport const Bars: FunctionComponent<BarsProps> = ({\n  height = 80,\n  width = 80,\n  color = DEFAULT_COLOR,\n  ariaLabel = 'bars-loading',\n  wrapperStyle,\n  wrapperClass,\n  visible = true,\n}) => (\n  <SvgWrapper\n    $visible={visible}\n    style={{ ...wrapperStyle }}\n    className={wrapperClass}\n    data-testid=\"bars-loading\"\n    aria-label={ariaLabel}\n    {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n  >\n    <svg\n      width={width}\n      height={height}\n      fill={color}\n      viewBox=\"0 0 135 140\"\n      xmlns={SVG_NAMESPACE}\n      data-testid=\"bars-svg\"\n    >\n      <rect y=\"10\" width=\"15\" height=\"120\" rx=\"6\">\n        <animate\n          attributeName=\"height\"\n          begin=\"0.5s\"\n          dur=\"1s\"\n          values=\"120;110;100;90;80;70;60;50;40;140;120\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n        <animate\n          attributeName=\"y\"\n          begin=\"0.5s\"\n          dur=\"1s\"\n          values=\"10;15;20;25;30;35;40;45;50;0;10\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </rect>\n      <rect x=\"30\" y=\"10\" width=\"15\" height=\"120\" rx=\"6\">\n        <animate\n          attributeName=\"height\"\n          begin=\"0.25s\"\n          dur=\"1s\"\n          values=\"120;110;100;90;80;70;60;50;40;140;120\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n        <animate\n          attributeName=\"y\"\n          begin=\"0.25s\"\n          dur=\"1s\"\n          values=\"10;15;20;25;30;35;40;45;50;0;10\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </rect>\n      <rect x=\"60\" width=\"15\" height=\"140\" rx=\"6\">\n        <animate\n          attributeName=\"height\"\n          begin=\"0s\"\n          dur=\"1s\"\n          values=\"120;110;100;90;80;70;60;50;40;140;120\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n        <animate\n          attributeName=\"y\"\n          begin=\"0s\"\n          dur=\"1s\"\n          values=\"10;15;20;25;30;35;40;45;50;0;10\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </rect>\n      <rect x=\"90\" y=\"10\" width=\"15\" height=\"120\" rx=\"6\">\n        <animate\n          attributeName=\"height\"\n          begin=\"0.25s\"\n          dur=\"1s\"\n          values=\"120;110;100;90;80;70;60;50;40;140;120\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n        <animate\n          attributeName=\"y\"\n          begin=\"0.25s\"\n          dur=\"1s\"\n          values=\"10;15;20;25;30;35;40;45;50;0;10\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </rect>\n      <rect x=\"120\" y=\"10\" width=\"15\" height=\"120\" rx=\"6\">\n        <animate\n          attributeName=\"height\"\n          begin=\"0.5s\"\n          dur=\"1s\"\n          values=\"120;110;100;90;80;70;60;50;40;140;120\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n        <animate\n          attributeName=\"y\"\n          begin=\"0.5s\"\n          dur=\"1s\"\n          values=\"10;15;20;25;30;35;40;45;50;0;10\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </rect>\n    </svg>\n  </SvgWrapper>\n)\n","import { useMemo } from 'react'\n\nexport interface GradientConfig {\n  colors?: string[]\n  gradientType?: 'linear' | 'radial'\n  gradientAngle?: number\n}\n\nexport const useGradient = ({\n  colors,\n  gradientType = 'linear',\n  gradientAngle = 0,\n}: GradientConfig) => {\n  const isGradient = !!colors && colors.length > 1\n  // Lightweight id generator to avoid pulling ESM-only libs for test env\n  const gradientId = useMemo(() => (isGradient ? `rls-grad-${Math.random().toString(36).slice(2, 8)}` : undefined), [isGradient])\n\n  const defs = useMemo(() => {\n    if (!isGradient || !gradientId || !colors) return null\n    if (gradientType === 'radial') {\n      return (\n        <radialGradient id={gradientId} cx=\"50%\" cy=\"50%\" r=\"50%\">\n          {colors.map((c, i) => (\n            <stop key={c + i} offset={`${(i / (colors.length - 1)) * 100}%`} stopColor={c} />\n          ))}\n        </radialGradient>\n      )\n    }\n    return (\n      <linearGradient id={gradientId} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\" gradientTransform={`rotate(${gradientAngle})`}>\n        {colors.map((c, i) => (\n            <stop key={c + i} offset={`${(i / (colors.length - 1)) * 100}%`} stopColor={c} />\n          ))}\n      </linearGradient>\n    )\n  }, [colors, gradientAngle, gradientId, gradientType, isGradient])\n\n  const url = gradientId ? `url(#${gradientId})` : undefined\n  return { isGradient, gradientId, defs, url }\n}\n","import { FunctionComponent, ReactElement, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\nimport { SVG_NAMESPACE } from '../shared/constants'\nimport { useGradient } from '../shared/gradient'\n\n/**\n * Props for the Circles loader component.\n * \n * The Circles loader displays a series of circular dots arranged in a circle\n * that animate with different opacity and scaling effects. Each dot fades in and out\n * in sequence to create a rotating loading animation.\n * \n * @interface CirclesProps\n */\ninterface CirclesProps {\n  /** Height of the SVG (number interpreted as px). Defaults to 80. */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). Defaults to 80. */\n  width?: string | number\n  /** Primary color applied to the circles. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Accessible label announced to screen readers. Defaults to 'circles-loading'. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the circles.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n}\n\nexport const Circles: FunctionComponent<CirclesProps> = ({\n  height = 80,\n  width = 80,\n  color = DEFAULT_COLOR,\n  colors,\n  gradientType,\n  gradientAngle,\n  ariaLabel = 'circles-loading',\n  wrapperStyle,\n  wrapperClass,\n  visible = true,\n}): ReactElement => {\n  const { defs, url } = useGradient({ colors, gradientType, gradientAngle })\n  const fillValue = url || color\n  return (\n    <SvgWrapper\n      style={wrapperStyle}\n      $visible={visible}\n      className={wrapperClass}\n      aria-label={ariaLabel}\n      data-testid=\"circles-loading\"\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <svg\n        width={width}\n        height={height}\n        viewBox=\"0 0 135 135\"\n        xmlns={SVG_NAMESPACE}\n        fill={fillValue}\n        data-testid=\"circles-svg\"\n      >\n        {defs && <defs>{defs}</defs>}\n        <title>circles-loading</title>\n        <desc>Animated representation of circles</desc>\n        <path d=\"M67.447 58c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10zm9.448 9.447c0 5.523 4.477 10 10 10 5.522 0 10-4.477 10-10s-4.478-10-10-10c-5.523 0-10 4.477-10 10zm-9.448 9.448c-5.523 0-10 4.477-10 10 0 5.522 4.477 10 10 10s10-4.478 10-10c0-5.523-4.477-10-10-10zM58 67.447c0-5.523-4.477-10-10-10s-10 4.477-10 10 4.477 10 10 10 10-4.477 10-10z\">\n          <animateTransform\n            attributeName=\"transform\"\n            type=\"rotate\"\n            from=\"0 67 67\"\n            to=\"-360 67 67\"\n            dur=\"2.5s\"\n            repeatCount=\"indefinite\"\n          />\n        </path>\n        <path d=\"M28.19 40.31c6.627 0 12-5.374 12-12 0-6.628-5.373-12-12-12-6.628 0-12 5.372-12 12 0 6.626 5.372 12 12 12zm30.72-19.825c4.686 4.687 12.284 4.687 16.97 0 4.686-4.686 4.686-12.284 0-16.97-4.686-4.687-12.284-4.687-16.97 0-4.687 4.686-4.687 12.284 0 16.97zm35.74 7.705c0 6.627 5.37 12 12 12 6.626 0 12-5.373 12-12 0-6.628-5.374-12-12-12-6.63 0-12 5.372-12 12zm19.822 30.72c-4.686 4.686-4.686 12.284 0 16.97 4.687 4.686 12.285 4.686 16.97 0 4.687-4.686 4.687-12.284 0-16.97-4.685-4.687-12.283-4.687-16.97 0zm-7.704 35.74c-6.627 0-12 5.37-12 12 0 6.626 5.373 12 12 12s12-5.374 12-12c0-6.63-5.373-12-12-12zm-30.72 19.822c-4.686-4.686-12.284-4.686-16.97 0-4.686 4.687-4.686 12.285 0 16.97 4.686 4.687 12.284 4.687 16.97 0 4.687-4.685 4.687-12.283 0-16.97zm-35.74-7.704c0-6.627-5.372-12-12-12-6.626 0-12 5.373-12 12s5.374 12 12 12c6.628 0 12-5.373 12-12zm-19.823-30.72c4.687-4.686 4.687-12.284 0-16.97-4.686-4.686-12.284-4.686-16.97 0-4.687 4.686-4.687 12.284 0 16.97 4.686 4.687 12.284 4.687 16.97 0z\">\n          <animateTransform\n            attributeName=\"transform\"\n            type=\"rotate\"\n            from=\"0 67 67\"\n            to=\"360 67 67\"\n            dur=\"8s\"\n            repeatCount=\"indefinite\"\n          />\n        </path>\n      </svg>\n    </SvgWrapper>\n  )\n}\n","import { FunctionComponent } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE, Style } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the CirclesWithBar loader component.\n * \n * The CirclesWithBar loader displays two circles rotating in opposite directions\n * with animated wave bars inside. The outer circle, inner circle, and bar colors\n * can be customized independently for a dynamic loading animation.\n * \n * @interface CirclesWithBarProps\n */\ninterface CirclesWithBarProps {\n  /** Height of the SVG (number interpreted as px). Defaults to 100. */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). Defaults to 100. */\n  width?: string | number\n  /** Primary color applied to the default elements. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Color of the outer rotating circle. Overrides default color. */\n  outerCircleColor?: string\n  /** Color of the inner rotating circle. Overrides default color. */\n  innerCircleColor?: string\n  /** Color of the animated wave bars. Overrides default color. */\n  barColor?: string\n  /** Accessible label announced to screen readers. Defaults to 'circles-with-bar-loading'. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: Style\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of solid colors.\n   * When 2 or more colors are supplied a gradient will be applied to the elements.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n}\n\n/**\n * @description contains two circles rotating in opposite direction\n * and a wave bars. outer circle, inner circle and bar\n * color can be set from props.\n */\nexport const CirclesWithBar: FunctionComponent<CirclesWithBarProps> = ({\n  wrapperStyle = {},\n  visible = true,\n  wrapperClass = '',\n  height = 100,\n  width = 100,\n  color = DEFAULT_COLOR,\n  outerCircleColor,\n  innerCircleColor,\n  barColor,\n  ariaLabel = 'circles-with-bar-loading',\n}) => {\n  return (\n    <SvgWrapper\n      style={wrapperStyle}\n      $visible={visible}\n      className={wrapperClass}\n      aria-label={ariaLabel}\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n      data-testid=\"circles-with-bar-wrapper\"\n    >\n      <svg\n        version=\"1.1\"\n        id=\"L1\"\n        xmlns={SVG_NAMESPACE}\n        x=\"0px\"\n        y=\"0px\"\n        height={`${height}`}\n        width={`${width}`}\n        viewBox=\"0 0 100 100\"\n        enableBackground=\"new 0 0 100 100\"\n        xmlSpace=\"preserve\"\n        data-testid=\"circles-with-bar-svg\"\n      >\n        <title>circles-with-bar-loading</title>\n        <desc>Animated representation of circles with bar</desc>\n        <circle\n          fill=\"none\"\n          stroke={`${outerCircleColor || color}`} // color\n          strokeWidth=\"6\"\n          strokeMiterlimit=\"15\"\n          strokeDasharray=\"14.2472,14.2472\"\n          cx=\"50\"\n          cy=\"50\"\n          r=\"47\"\n        >\n          <animateTransform\n            attributeName=\"transform\"\n            attributeType=\"XML\"\n            type=\"rotate\"\n            dur=\"5s\"\n            from=\"0 50 50\"\n            to=\"360 50 50\"\n            repeatCount=\"indefinite\"\n          />\n        </circle>\n        <circle\n          fill=\"none\"\n          stroke={`${innerCircleColor || color}`}\n          strokeWidth=\"1\"\n          strokeMiterlimit=\"10\"\n          strokeDasharray=\"10,10\"\n          cx=\"50\"\n          cy=\"50\"\n          r=\"39\"\n        >\n          <animateTransform\n            attributeName=\"transform\"\n            attributeType=\"XML\"\n            type=\"rotate\"\n            dur=\"5s\"\n            from=\"0 50 50\"\n            to=\"-360 50 50\"\n            repeatCount=\"indefinite\"\n          />\n        </circle>\n        <g fill={`${barColor || color}`} data-testid=\"circles-with-bar-svg-bar\">\n          <rect x=\"30\" y=\"35\" width=\"5\" height=\"30\">\n            <animateTransform\n              attributeName=\"transform\"\n              dur=\"1s\"\n              type=\"translate\"\n              values=\"0 5 ; 0 -5; 0 5\"\n              repeatCount=\"indefinite\"\n              begin=\"0.1\"\n            />\n          </rect>\n          <rect x=\"40\" y=\"35\" width=\"5\" height=\"30\">\n            <animateTransform\n              attributeName=\"transform\"\n              dur=\"1s\"\n              type=\"translate\"\n              values=\"0 5 ; 0 -5; 0 5\"\n              repeatCount=\"indefinite\"\n              begin=\"0.2\"\n            />\n          </rect>\n          <rect x=\"50\" y=\"35\" width=\"5\" height=\"30\">\n            <animateTransform\n              attributeName=\"transform\"\n              dur=\"1s\"\n              type=\"translate\"\n              values=\"0 5 ; 0 -5; 0 5\"\n              repeatCount=\"indefinite\"\n              begin=\"0.3\"\n            />\n          </rect>\n          <rect x=\"60\" y=\"35\" width=\"5\" height=\"30\">\n            <animateTransform\n              attributeName=\"transform\"\n              dur=\"1s\"\n              type=\"translate\"\n              values=\"0 5 ; 0 -5; 0 5\"\n              repeatCount=\"indefinite\"\n              begin=\"0.4\"\n            />\n          </rect>\n          <rect x=\"70\" y=\"35\" width=\"5\" height=\"30\">\n            <animateTransform\n              attributeName=\"transform\"\n              dur=\"1s\"\n              type=\"translate\"\n              values=\"0 5 ; 0 -5; 0 5\"\n              repeatCount=\"indefinite\"\n              begin=\"0.5\"\n            />\n          </rect>\n        </g>\n      </svg>\n    </SvgWrapper>\n  )\n}\n","import { FunctionComponent, ReactElement, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\n\n/**\n * Props for the Grid loader component.\n * \n * The Grid loader shows a grid of squares that appear and disappear in a pattern.\n * \n * @interface GridProps\n */\ninterface GridProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n  radius?: string | number\n}\n\nexport const Grid: FunctionComponent<GridProps> = ({\n  height = 80,\n  width = 80,\n  radius = 12.5,\n  color = DEFAULT_COLOR,\n  ariaLabel = 'grid-loading',\n  wrapperStyle,\n  wrapperClass,\n  visible = true,\n}): ReactElement => (\n  <SvgWrapper\n    style={wrapperStyle}\n    $visible={visible}\n    className={wrapperClass}\n    data-testid=\"grid-loading\"\n    aria-label={ariaLabel}\n    {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n  >\n    <svg\n      width={width}\n      height={height}\n      viewBox=\"0 0 105 105\"\n      fill={color}\n      data-testid=\"grid-svg\"\n    >\n      <circle cx=\"12.5\" cy=\"12.5\" r={`${radius}`}>\n        <animate\n          attributeName=\"fill-opacity\"\n          begin=\"0s\"\n          dur=\"1s\"\n          values=\"1;.2;1\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </circle>\n      <circle cx=\"12.5\" cy=\"52.5\" r={`${radius}`}>\n        <animate\n          attributeName=\"fill-opacity\"\n          begin=\"100ms\"\n          dur=\"1s\"\n          values=\"1;.2;1\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </circle>\n      <circle cx=\"52.5\" cy=\"12.5\" r={`${radius}`}>\n        <animate\n          attributeName=\"fill-opacity\"\n          begin=\"300ms\"\n          dur=\"1s\"\n          values=\"1;.2;1\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </circle>\n      <circle cx=\"52.5\" cy=\"52.5\" r={`${radius}`}>\n        <animate\n          attributeName=\"fill-opacity\"\n          begin=\"600ms\"\n          dur=\"1s\"\n          values=\"1;.2;1\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </circle>\n      <circle cx=\"92.5\" cy=\"12.5\" r={`${radius}`}>\n        <animate\n          attributeName=\"fill-opacity\"\n          begin=\"800ms\"\n          dur=\"1s\"\n          values=\"1;.2;1\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </circle>\n      <circle cx=\"92.5\" cy=\"52.5\" r={`${radius}`}>\n        <animate\n          attributeName=\"fill-opacity\"\n          begin=\"400ms\"\n          dur=\"1s\"\n          values=\"1;.2;1\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </circle>\n      <circle cx=\"12.5\" cy=\"92.5\" r={`${radius}`}>\n        <animate\n          attributeName=\"fill-opacity\"\n          begin=\"700ms\"\n          dur=\"1s\"\n          values=\"1;.2;1\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </circle>\n      <circle cx=\"52.5\" cy=\"92.5\" r={`${radius}`}>\n        <animate\n          attributeName=\"fill-opacity\"\n          begin=\"500ms\"\n          dur=\"1s\"\n          values=\"1;.2;1\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </circle>\n      <circle cx=\"92.5\" cy=\"92.5\" r={`${radius}`}>\n        <animate\n          attributeName=\"fill-opacity\"\n          begin=\"200ms\"\n          dur=\"1s\"\n          values=\"1;.2;1\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </circle>\n    </svg>\n  </SvgWrapper>\n)\n","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\n\n/**\n * Props for the Hearts loader component.\n * \n * The Hearts loader displays three animated heart shapes that pulsate and fade\n * in and out with different timing to create a romantic loading animation.\n * Each heart scales and changes opacity in a staggered pattern.\n * \n * @interface HeartsProps\n */\ninterface HeartsProps {\n  /** Height of the SVG (number interpreted as px). Defaults to 80. */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). Defaults to 80. */\n  width?: string | number\n  /** Primary color applied to the hearts. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Accessible label announced to screen readers. Defaults to 'hearts-loading'. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n}\n\nexport const Hearts: FunctionComponent<HeartsProps> = ({\n  height = 80,\n  width = 80,\n  color = DEFAULT_COLOR,\n  ariaLabel = 'hearts-loading',\n  wrapperStyle,\n  wrapperClass,\n  visible = true,\n}) => (\n  <SvgWrapper\n    style={wrapperStyle}\n    $visible={visible}\n    className={wrapperClass}\n    data-testid=\"hearts-loading\"\n    aria-label={ariaLabel}\n    {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n  >\n    <svg\n      width={width}\n      height={height}\n      viewBox=\"0 0 140 64\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      fill={color}\n      data-testid=\"hearts-svg\"\n    >\n      <path\n        d=\"M30.262 57.02L7.195 40.723c-5.84-3.976-7.56-12.06-3.842-18.063 3.715-6 11.467-7.65 17.306-3.68l4.52 3.76 2.6-5.274c3.717-6.002 11.47-7.65 17.305-3.68 5.84 3.97 7.56 12.054 3.842 18.062L34.49 56.118c-.897 1.512-2.793 1.915-4.228.9z\"\n        attributeName=\"fill-opacity\"\n        from=\"0\"\n        to=\".5\"\n      >\n        <animate\n          attributeName=\"fill-opacity\"\n          begin=\"0s\"\n          dur=\"1.4s\"\n          values=\"0.5;1;0.5\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </path>\n      <path\n        d=\"M105.512 56.12l-14.44-24.272c-3.716-6.008-1.996-14.093 3.843-18.062 5.835-3.97 13.588-2.322 17.306 3.68l2.6 5.274 4.52-3.76c5.84-3.97 13.592-2.32 17.307 3.68 3.718 6.003 1.998 14.088-3.842 18.064L109.74 57.02c-1.434 1.014-3.33.61-4.228-.9z\"\n        attributeName=\"fill-opacity\"\n        from=\"0\"\n        to=\".5\"\n      >\n        <animate\n          attributeName=\"fill-opacity\"\n          begin=\"0.7s\"\n          dur=\"1.4s\"\n          values=\"0.5;1;0.5\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </path>\n      <path d=\"M67.408 57.834l-23.01-24.98c-5.864-6.15-5.864-16.108 0-22.248 5.86-6.14 15.37-6.14 21.234 0L70 16.168l4.368-5.562c5.863-6.14 15.375-6.14 21.235 0 5.863 6.14 5.863 16.098 0 22.247l-23.007 24.98c-1.43 1.556-3.757 1.556-5.188 0z\" />\n    </svg>\n  </SvgWrapper>\n)\n","import { FunctionComponent, CSSProperties } from 'react'\nimport styled, { keyframes } from 'styled-components'\nimport { DEFAULT_COLOR } from '../type'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the InfinitySpin loader component.\n * \n * The InfinitySpin loader displays an infinity symbol with spinning animation.\n * \n * @interface InfinitySpinProps\n */\ninterface InfinitySpinProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. */\n  color?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n}\n\nconst len = 242.776657104492\nconst time = 1.6\n\nconst anim = keyframes`\n12.5% {\n  stroke-dasharray: ${len * 0.14}px, ${len}px;\n  stroke-dashoffset: -${len * 0.11}px;\n}\n43.75% {\n  stroke-dasharray: ${len * 0.35}px, ${len}px;\n  stroke-dashoffset: -${len * 0.35}px;\n}\n100% {\n  stroke-dasharray: ${len * 0.01}px, ${len}px;\n  stroke-dashoffset: -${len * 0.99}px;\n}\n`\n\nconst Path = styled.path`\n  stroke-dasharray: ${len * 0.01}px, ${len};\n  stroke-dashoffset: 0;\n  animation: ${anim} ${time}s linear infinite;\n`\n\nexport const InfinitySpin: FunctionComponent<InfinitySpinProps> = ({\n  color = DEFAULT_COLOR,\n  width = '200',\n}) => {\n  return (\n   <svg\n  xmlns={SVG_NAMESPACE}\n  width={`${width}`}\n  height={`${Number(width) * 0.5}`}\n  viewBox={`0 0 ${width} ${Number(200 * 0.5)}`}\n  data-testid=\"infinity-spin\"\n>\n  <defs>\n    <linearGradient id=\"gradientColor\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n      <stop offset=\"0%\" stopColor=\"#4fa94d\" />\n      <stop offset=\"100%\" stopColor=\"#00BFFF\" />\n    </linearGradient>\n  </defs>\n\n  <Path\n    data-testid=\"infinity-spin-path-1\"\n    stroke={color}\n    fill=\"none\"\n    strokeWidth=\"4\"\n    strokeLinecap=\"round\"\n    strokeLinejoin=\"round\"\n    strokeMiterlimit=\"10\"\n    d=\"M93.9,46.4c9.3,9.5,13.8,17.9,23.5,17.9s17.5-7.8,17.5-17.5s-7.8-17.6-17.5-17.5c-9.7,0.1-13.3,7.2-22.1,17.1 c-8.9,8.8-15.7,17.9-25.4,17.9s-17.5-7.8-17.5-17.5s7.8-17.5,17.5-17.5S86.2,38.6,93.9,46.4z\"\n  />\n  <path\n    data-testid=\"infinity-spin-path-2\"\n    opacity=\"0.07\"\n    fill=\"none\"\n    stroke={color}\n    strokeWidth=\"4\"\n    strokeLinecap=\"round\"\n    strokeLinejoin=\"round\"\n    strokeMiterlimit=\"10\"\n    d=\"M93.9,46.4c9.3,9.5,13.8,17.9,23.5,17.9s17.5-7.8,17.5-17.5s-7.8-17.6-17.5-17.5c-9.7,0.1-13.3,7.2-22.1,17.1 c-8.9,8.8-15.7,17.9-25.4,17.9s-17.5-7.8-17.5-17.5s7.8-17.5,17.5-17.5S86.2,38.6,93.9,46.4z\"\n  />\n</svg>\n      \n  )\n}\n","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the LineWave loader component.\n * \n * The LineWave loader displays animated lines creating a wave effect.\n * \n * @interface LineWaveProps\n */\ninterface LineWaveProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. */\n  color?: string\n  /** Color of the first line in the wave. Overrides default color. */\n  firstLineColor?: string\n  /** Color of the middle line in the wave. Overrides default color. */\n  middleLineColor?: string\n  /** Color of the last line in the wave. Overrides default color. */\n  lastLineColor?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n}\n\n/**\n * @description contains three lines in a wave motion\n * line colors are changeable\n */\nexport const LineWave: FunctionComponent<LineWaveProps> = ({\n  wrapperStyle = {},\n  visible = true,\n  wrapperClass = '',\n  height = 100,\n  width = 100,\n  color = DEFAULT_COLOR,\n  ariaLabel = 'line-wave-loading',\n  firstLineColor,\n  middleLineColor,\n  lastLineColor,\n}) => {\n  return (\n    <SvgWrapper\n      style={wrapperStyle}\n      $visible={visible}\n      className={wrapperClass}\n      data-testid=\"line-wave-wrapper\"\n      aria-label={ariaLabel}\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <svg\n        version=\"1.1\"\n        height={`${height}`}\n        width={`${width}`}\n        xmlns={SVG_NAMESPACE}\n        x=\"0px\"\n        y=\"0px\"\n        viewBox=\"0 0 100 100\"\n        enableBackground=\"new 0 0 0 0\"\n        xmlSpace=\"preserve\"\n        data-testid=\"line-wave-svg\"\n      >\n        <rect\n          x=\"20\"\n          y=\"50\"\n          width=\"4\"\n          height=\"10\"\n          fill={firstLineColor || color} /** First bar */\n        >\n          <animateTransform\n            attributeType=\"xml\"\n            attributeName=\"transform\"\n            type=\"translate\"\n            values=\"0 0; 0 20; 0 0\"\n            begin=\"0\"\n            dur=\"0.6s\"\n            repeatCount=\"indefinite\"\n          />\n        </rect>\n\n        <rect\n          x=\"30\"\n          y=\"50\"\n          width=\"4\"\n          height=\"10\"\n          fill={middleLineColor || color}\n        >\n          <animateTransform\n            attributeType=\"xml\"\n            attributeName=\"transform\"\n            type=\"translate\"\n            values=\"0 0; 0 20; 0 0\"\n            begin=\"0.2s\"\n            dur=\"0.6s\"\n            repeatCount=\"indefinite\"\n          />\n        </rect>\n\n        <rect\n          x=\"40\"\n          y=\"50\"\n          width=\"4\"\n          height=\"10\"\n          fill={lastLineColor || color} /** last bar */\n        >\n          <animateTransform\n            attributeType=\"xml\"\n            attributeName=\"transform\"\n            type=\"translate\"\n            values=\"0 0; 0 20; 0 0\"\n            begin=\"0.4s\"\n            dur=\"0.6s\"\n            repeatCount=\"indefinite\"\n          />\n        </rect>\n      </svg>\n    </SvgWrapper>\n  )\n}\n","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\n\n/**\n * Props for the MutatingDots loader component.\n * \n * The MutatingDots loader shows dots that mutate and change in size and position.\n * \n * @interface MutatingDotsProps\n */\ninterface MutatingDotsProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n  radius?: string | number\n  secondaryColor?: string\n}\n\nexport const MutatingDots: FunctionComponent<MutatingDotsProps> = ({\n  height = 90,\n  width = 80,\n  radius = 12.5,\n  color = DEFAULT_COLOR,\n  secondaryColor = DEFAULT_COLOR,\n  ariaLabel = 'mutating-dots-loading',\n  wrapperStyle,\n  wrapperClass,\n  visible = true,\n}) => (\n  <SvgWrapper\n    style={wrapperStyle}\n    $visible={visible}\n    className={wrapperClass}\n    data-testid=\"mutating-dots-loading\"\n    aria-label={ariaLabel}\n    {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n  >\n    <svg\n      id=\"goo-loader\"\n      width={width}\n      height={height}\n      data-testid=\"mutating-dots-svg\"\n    >\n      <filter id=\"fancy-goo\">\n        <feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"6\" result=\"blur\" />\n        <feColorMatrix\n          in=\"blur\"\n          mode=\"matrix\"\n          values=\"1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 19 -9\"\n          result=\"goo\"\n        />\n        <feComposite in=\"SourceGraphic\" in2=\"goo\" operator=\"atop\" />\n      </filter>\n      <g filter=\"url(#fancy-goo)\">\n        <animateTransform\n          id=\"mainAnim\"\n          attributeName=\"transform\"\n          attributeType=\"XML\"\n          type=\"rotate\"\n          from=\"0 50 50\"\n          to=\"359 50 50\"\n          dur=\"1.2s\"\n          repeatCount=\"indefinite\"\n        />\n        <circle cx=\"50%\" cy=\"40\" r={radius} fill={color}>\n          <animate\n            id=\"cAnim1\"\n            attributeType=\"XML\"\n            attributeName=\"cy\"\n            dur=\"0.6s\"\n            begin=\"0;cAnim1.end+0.2s\"\n            calcMode=\"spline\"\n            values=\"40;20;40\"\n            keyTimes=\"0;0.3;1\"\n            keySplines=\"0.09, 0.45, 0.16, 1;0.09, 0.45, 0.16, 1\"\n          />\n        </circle>\n        <circle cx=\"50%\" cy=\"60\" r={radius} fill={secondaryColor}>\n          <animate\n            id=\"cAnim2\"\n            attributeType=\"XML\"\n            attributeName=\"cy\"\n            dur=\"0.6s\"\n            begin=\"0.4s;cAnim2.end+0.2s\"\n            calcMode=\"spline\"\n            values=\"60;80;60\"\n            keyTimes=\"0;0.3;1\"\n            keySplines=\"0.09, 0.45, 0.16, 1;0.09, 0.45, 0.16, 1\"\n          />\n        </circle>\n      </g>\n    </svg>\n  </SvgWrapper>\n)\n","import { FunctionComponent, ReactElement, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\n\n/**\n * Props for the Oval loader component.\n * \n * The Oval loader displays a circular loading animation with two arcs:\n * a full circle in the background and a quarter circle that rotates to show progress.\n * The animation creates a smooth spinning effect.\n * \n * @interface OvalProps\n */\ninterface OvalProps {\n  /** Height of the SVG (number interpreted as px). Defaults to 80. */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). Defaults to 80. */\n  width?: string | number\n  /** Primary color applied to the rotating arc. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Stroke width of the rotating arc. Defaults to 2. */\n  strokeWidth?: string | number\n  /** Stroke width of the background circle. Uses strokeWidth if not provided. */\n  strokeWidthSecondary?: string | number\n  /** Color of the background circle. Defaults to DEFAULT_COLOR. */\n  secondaryColor?: string\n  /** Duration of the rotation animation in seconds. Defaults to 1. */\n  animationDuration?: string | number\n  /** Accessible label announced to screen readers. Defaults to 'oval-loading'. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n}\n\n/**\n * The radius of the circle\n * The Loader size is set with the width and height of the SVG\n * @type {number}\n */\nconst RADIUS = 20\n\n/**\n * Compute Path depending on circle radius\n * The structure with radius 20 is \"M20 0c0-9.94-8.06-20-20-20\"\n * @param radius of the circle radius default 20\n * @returns {string}\n */\nconst getPath = (radius: number): string => {\n  return ['M' + radius + ' 0c0-9.94-8.06', radius, radius, radius].join('-')\n}\n/**\n * Compute the size of the view box depending on the radius and Stroke-Width\n * @param strokeWidth Stroke-Width of the full circle\n * @param secondaryStrokeWidth Stroke-Width of the 1/4 circle\n * @param radius radius of the circle\n * @returns {string}\n */\nconst getViewBoxSize = (\n  strokeWidth: number,\n  secondaryStrokeWidth: number,\n  radius: number\n): string => {\n  const maxStrokeWidth = Math.max(strokeWidth, secondaryStrokeWidth)\n  const startingPoint = -radius - maxStrokeWidth / 2 + 1\n  const endpoint = radius * 2 + maxStrokeWidth\n  return [startingPoint, startingPoint, endpoint, endpoint].join(' ')\n}\n\nexport const Oval: FunctionComponent<OvalProps> = ({\n  height = 80,\n  width = 80,\n  color = DEFAULT_COLOR,\n  secondaryColor = DEFAULT_COLOR,\n  ariaLabel = 'oval-loading',\n  wrapperStyle,\n  wrapperClass,\n  visible = true,\n  strokeWidth = 2,\n  strokeWidthSecondary,\n  animationDuration = 1,\n}): ReactElement => (\n  <SvgWrapper\n    style={wrapperStyle}\n    $visible={visible}\n    className={wrapperClass}\n    data-testid=\"oval-loading\"\n    aria-label={ariaLabel}\n    {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n  >\n    <svg\n      width={width}\n      height={height}\n      viewBox={getViewBoxSize(\n        Number(strokeWidth),\n        Number(strokeWidthSecondary || strokeWidth),\n        RADIUS\n      )}\n      xmlns=\"http://www.w3.org/2000/svg\"\n      stroke={color}\n      data-testid=\"oval-svg\"\n    >\n      <g fill=\"none\" fillRule=\"evenodd\">\n        <g\n          transform=\"translate(1 1)\"\n          strokeWidth={Number(strokeWidthSecondary || strokeWidth)}\n          data-testid=\"oval-secondary-group\"\n        >\n          <circle\n            strokeOpacity=\".5\"\n            cx=\"0\"\n            cy=\"0\"\n            r={RADIUS}\n            stroke={secondaryColor}\n            strokeWidth={strokeWidth}\n          />\n          <path d={getPath(RADIUS)}>\n            <animateTransform\n              attributeName=\"transform\"\n              type=\"rotate\"\n              from=\"0 0 0\"\n              to=\"360 0 0\"\n              dur={`${animationDuration}s`}\n              repeatCount=\"indefinite\"\n            />\n          </path>\n        </g>\n      </g>\n    </svg>\n  </SvgWrapper>\n)\n","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the Puff loader component.\n * \n * The Puff loader displays a puffing cloud-like animation that expands and contracts.\n * \n * @interface PuffProps\n */\ninterface PuffProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n  radius?: string | number\n  secondaryColor?: string\n}\n\nexport const Puff: FunctionComponent<PuffProps> = ({\n  height = 80,\n  width = 80,\n  radius = 1,\n  color = DEFAULT_COLOR,\n  ariaLabel = 'puff-loading',\n  wrapperStyle,\n  wrapperClass,\n  visible = true,\n}) => (\n  <SvgWrapper\n    style={wrapperStyle}\n    $visible={visible}\n    className={wrapperClass}\n    data-testid=\"puff-loading\"\n    aria-label={ariaLabel}\n    {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n  >\n    <svg\n      width={width}\n      height={height}\n      viewBox=\"0 0 44 44\"\n      xmlns={SVG_NAMESPACE}\n      stroke={color}\n      data-testid=\"puff-svg\"\n    >\n      <g fill=\"none\" fillRule=\"evenodd\" strokeWidth=\"2\">\n        <circle cx=\"22\" cy=\"22\" r={radius}>\n          <animate\n            attributeName=\"r\"\n            begin=\"0s\"\n            dur=\"1.8s\"\n            values=\"1; 20\"\n            calcMode=\"spline\"\n            keyTimes=\"0; 1\"\n            keySplines=\"0.165, 0.84, 0.44, 1\"\n            repeatCount=\"indefinite\"\n          />\n          <animate\n            attributeName=\"strokeOpacity\"\n            begin=\"0s\"\n            dur=\"1.8s\"\n            values=\"1; 0\"\n            calcMode=\"spline\"\n            keyTimes=\"0; 1\"\n            keySplines=\"0.3, 0.61, 0.355, 1\"\n            repeatCount=\"indefinite\"\n          />\n        </circle>\n        <circle cx=\"22\" cy=\"22\" r={radius}>\n          <animate\n            attributeName=\"r\"\n            begin=\"-0.9s\"\n            dur=\"1.8s\"\n            values=\"1; 20\"\n            calcMode=\"spline\"\n            keyTimes=\"0; 1\"\n            keySplines=\"0.165, 0.84, 0.44, 1\"\n            repeatCount=\"indefinite\"\n          />\n          <animate\n            attributeName=\"strokeOpacity\"\n            begin=\"-0.9s\"\n            dur=\"1.8s\"\n            values=\"1; 0\"\n            calcMode=\"spline\"\n            keyTimes=\"0; 1\"\n            keySplines=\"0.3, 0.61, 0.355, 1\"\n            repeatCount=\"indefinite\"\n          />\n        </circle>\n      </g>\n    </svg>\n  </SvgWrapper>\n)\n","import { FunctionComponent, ReactElement, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the RevolvingDot loader component.\n * \n * The RevolvingDot loader shows a dot that revolves around a circular path.\n * \n * @interface RevolvingDotProps\n */\ninterface RevolvingDotProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n  radius?: number\n  secondaryColor?: string\n  strokeWidth?: number\n}\n\nexport const RevolvingDot: FunctionComponent<RevolvingDotProps> = ({\n  radius = 45,\n  strokeWidth = 5,\n  color = DEFAULT_COLOR,\n  secondaryColor,\n  ariaLabel = 'revolving-dot-loading',\n  wrapperStyle,\n  wrapperClass,\n  visible = true,\n}): ReactElement => (\n  <SvgWrapper\n    style={wrapperStyle}\n    $visible={visible}\n    className={wrapperClass}\n    aria-label={ariaLabel}\n    data-testid=\"revolving-dot-loading\"\n    {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n  >\n    <svg\n      version=\"1.1\"\n      width={`calc(${radius} * 2.5)`}\n      height={`calc(${radius} * 2.5)`}\n      xmlns={SVG_NAMESPACE}\n      x=\"0px\"\n      y=\"0px\"\n      data-testid=\"revolving-dot-svg\"\n    >\n      <circle\n        fill=\"none\"\n        stroke={secondaryColor || color}\n        strokeWidth={strokeWidth}\n        cx={`calc(${radius} * 1.28)`}\n        cy={`calc(${radius} * 1.28)`}\n        r={radius}\n        style={{ opacity: 0.5 }}\n      />\n      <circle\n        fill={color}\n        stroke={color}\n        strokeWidth=\"3\"\n        cx={`calc(${radius} * 1.28)`}\n        cy={`calc(${radius} / 3.5)`}\n        r={`calc(${radius} / 5)`}\n        style={{ transformOrigin: '50% 50%' }}\n      >\n        <animateTransform\n          attributeName=\"transform\"\n          dur=\"2s\"\n          type=\"rotate\"\n          from=\"0\"\n          to=\"360\"\n          repeatCount=\"indefinite\"\n        />\n      </circle>\n    </svg>\n  </SvgWrapper>\n)\n","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the Rings loader component.\n * \n * The Rings loader shows multiple concentric rings that rotate at different speeds.\n * \n * @interface RingsProps\n */\ninterface RingsProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n  radius?: string | number\n}\n\nexport const Rings: FunctionComponent<RingsProps> = ({\n  height = 80,\n  width = 80,\n  radius = 6,\n  color = DEFAULT_COLOR,\n  ariaLabel = 'rings-loading',\n  wrapperStyle,\n  wrapperClass,\n  visible = true,\n}) => (\n  <SvgWrapper\n    style={wrapperStyle}\n    $visible={visible}\n    className={wrapperClass}\n    data-testid=\"rings-loading\"\n    aria-label={ariaLabel}\n    {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n  >\n    <svg\n      width={width}\n      height={height}\n      viewBox=\"0 0 45 45\"\n      xmlns={SVG_NAMESPACE}\n      stroke={color}\n      data-testid=\"rings-svg\"\n    >\n      <g\n        fill=\"none\"\n        fillRule=\"evenodd\"\n        transform=\"translate(1 1)\"\n        strokeWidth=\"2\"\n      >\n        <circle cx=\"22\" cy=\"22\" r={radius} strokeOpacity=\"0\">\n          <animate\n            attributeName=\"r\"\n            begin=\"1.5s\"\n            dur=\"3s\"\n            values=\"6;22\"\n            calcMode=\"linear\"\n            repeatCount=\"indefinite\"\n          />\n          <animate\n            attributeName=\"stroke-opacity\"\n            begin=\"1.5s\"\n            dur=\"3s\"\n            values=\"1;0\"\n            calcMode=\"linear\"\n            repeatCount=\"indefinite\"\n          />\n          <animate\n            attributeName=\"stroke-width\"\n            begin=\"1.5s\"\n            dur=\"3s\"\n            values=\"2;0\"\n            calcMode=\"linear\"\n            repeatCount=\"indefinite\"\n          />\n        </circle>\n        <circle cx=\"22\" cy=\"22\" r={radius} strokeOpacity=\"0\">\n          <animate\n            attributeName=\"r\"\n            begin=\"3s\"\n            dur=\"3s\"\n            values=\"6;22\"\n            calcMode=\"linear\"\n            repeatCount=\"indefinite\"\n          />\n          <animate\n            attributeName=\"strokeOpacity\"\n            begin=\"3s\"\n            dur=\"3s\"\n            values=\"1;0\"\n            calcMode=\"linear\"\n            repeatCount=\"indefinite\"\n          />\n          <animate\n            attributeName=\"strokeWidth\"\n            begin=\"3s\"\n            dur=\"3s\"\n            values=\"2;0\"\n            calcMode=\"linear\"\n            repeatCount=\"indefinite\"\n          />\n        </circle>\n        <circle cx=\"22\" cy=\"22\" r={Number(radius) + 2}>\n          <animate\n            attributeName=\"r\"\n            begin=\"0s\"\n            dur=\"1.5s\"\n            values=\"6;1;2;3;4;5;6\"\n            calcMode=\"linear\"\n            repeatCount=\"indefinite\"\n          />\n        </circle>\n      </g>\n    </svg>\n  </SvgWrapper>\n)\n","import { FunctionComponent } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE, Style } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the RotatingSquare loader component.\n * \n * The RotatingSquare loader displays a square with rotating animation.\n * \n * @interface RotatingSquareProps\n */\ninterface RotatingSquareProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. */\n  color?: string\n  /** Stroke width of the square outline. Affects the thickness of the square border. */\n  strokeWidth?: string | number\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: Style\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n}\n\nexport const RotatingSquare: FunctionComponent<RotatingSquareProps> = ({\n  wrapperClass = '',\n  color = DEFAULT_COLOR,\n  height = 100,\n  width = 100,\n  strokeWidth = 4,\n  ariaLabel = 'rotating-square-loading',\n  wrapperStyle = {},\n  visible = true,\n}) => {\n  return (\n    <SvgWrapper\n      style={wrapperStyle}\n      $visible={visible}\n      className={wrapperClass}\n      data-testid=\"rotating-square-wrapper\"\n      aria-label={ariaLabel}\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <svg\n        version=\"1.1\"\n        xmlns={SVG_NAMESPACE}\n        x=\"0px\"\n        y=\"0px\"\n        viewBox=\"0 0 100 100\"\n        enableBackground=\"new 0 0 100 100\"\n        height={`${height}`}\n        width={`${width}`}\n        data-testid=\"rotating-square-svg\"\n        xmlSpace=\"preserve\"\n      >\n        <rect\n          fill=\"none\"\n          stroke={color}\n          strokeWidth={strokeWidth}\n          x=\"25\"\n          y=\"25\"\n          width=\"50\"\n          height=\"50\"\n        >\n          <animateTransform\n            attributeName=\"transform\"\n            dur=\"0.5s\"\n            from=\"0 50 50\"\n            to=\"180 50 50\"\n            type=\"rotate\"\n            id=\"strokeBox\"\n            attributeType=\"XML\"\n            begin=\"rectBox.end\"\n          />\n        </rect>\n        <rect x=\"27\" y=\"27\" fill={color} width=\"46\" height=\"50\">\n          <animate\n            attributeName=\"height\"\n            dur=\"1.3s\"\n            attributeType=\"XML\"\n            from=\"50\"\n            to=\"0\"\n            id=\"rectBox\"\n            fill=\"freeze\"\n            begin=\"0s;strokeBox.end\"\n          />\n        </rect>\n      </svg>\n    </SvgWrapper>\n  )\n}\n","import { useCallback, FunctionComponent, CSSProperties } from 'react'\nimport styled, { keyframes } from 'styled-components'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SVG_NAMESPACE } from '../shared/constants'\nimport { SvgWrapper } from '../shared/svg-wrapper'\n\n/**\n * Props for the RotatingLines loader component.\n * \n * The RotatingLines loader displays rotating lines in a circular pattern.\n * \n * @interface RotatingLinesProps\n */\ninterface RotatingLinesProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** Stroke width of the rotating lines. */\n  strokeWidth?: string | number\n  /** Duration of the rotation animation in seconds. */\n  animationDuration?: string | number\n  /** Color of the stroke for the lines. */\n  strokeColor?: string\n}\n\nconst POINTS = [0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330]\n\nconst spin = keyframes`\nto {\n   transform: rotate(360deg);\n }\n`\n\nconst Svg = styled.svg<{ $animationDuration: string | number }>`\n  animation: ${spin} ${props => (String(props.$animationDuration).endsWith('s') ? String(props.$animationDuration) : `${props.$animationDuration}s`)} steps(12, end) infinite;\n`\n\nconst Polyline = styled.polyline<{ $strokeWidth: string | number }>`\n  stroke-width: ${props => `${props.$strokeWidth}px`};\n  stroke-linecap: round;\n\n  &:nth-child(12n + 0) {\n    stroke-opacity: 0.08;\n  }\n\n  &:nth-child(12n + 1) {\n    stroke-opacity: 0.17;\n  }\n\n  &:nth-child(12n + 2) {\n    stroke-opacity: 0.25;\n  }\n\n  &:nth-child(12n + 3) {\n    stroke-opacity: 0.33;\n  }\n\n  &:nth-child(12n + 4) {\n    stroke-opacity: 0.42;\n  }\n\n  &:nth-child(12n + 5) {\n    stroke-opacity: 0.5;\n  }\n\n  &:nth-child(12n + 6) {\n    stroke-opacity: 0.58;\n  }\n\n  &:nth-child(12n + 7) {\n    stroke-opacity: 0.66;\n  }\n\n  &:nth-child(12n + 8) {\n    stroke-opacity: 0.75;\n  }\n\n  &:nth-child(12n + 9) {\n    stroke-opacity: 0.83;\n  }\n\n  &:nth-child(12n + 11) {\n    stroke-opacity: 0.92;\n  }\n`\n\nexport const RotatingLines: FunctionComponent<RotatingLinesProps> = ({\n  height = 96,\n  width = 96,\n  color = DEFAULT_COLOR,\n  strokeWidth = 5,\n  animationDuration = 0.75,\n  strokeColor,\n  visible = true,\n  ariaLabel = 'rotating-lines-loading',\n  wrapperStyle,\n  wrapperClass,\n}) => {\n  const lines = useCallback(\n    () =>\n      POINTS.map(point => (\n        <Polyline\n          key={point}\n          points=\"24,12 24,4\"\n          $strokeWidth={strokeWidth}\n          transform={`rotate(${point}, 24, 24)`}\n        />\n      )),\n    [strokeWidth]\n  )\n\n  if (!visible) return null\n\n  return (\n    <SvgWrapper\n      style={wrapperStyle}\n      $visible={visible}\n      className={wrapperClass}\n      aria-label={ariaLabel}\n      data-testid=\"rotating-lines-loading\"\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <Svg\n        xmlns={SVG_NAMESPACE}\n        viewBox=\"0 0 48 48\"\n        width={width}\n        height={height}\n        stroke={strokeColor ?? color}\n        $animationDuration={animationDuration}\n        speed={String(animationDuration)}\n        aria-label={ariaLabel}\n        data-testid=\"rotating-lines-svg\"\n        {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n      >\n        {lines()}\n      </Svg>\n    </SvgWrapper>\n  )\n}\n","import { FunctionComponent, ReactElement, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the TailSpin loader component.\n * \n * The TailSpin loader displays a spinning animation with a tail-like effect.\n * \n * @interface TailSpinProps\n */\ninterface TailSpinProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n  radius?: string | number\n  strokeWidth?: string | number\n}\n\nexport const TailSpin: FunctionComponent<TailSpinProps> = ({\n  height = 80,\n  width = 80,\n  strokeWidth = 2,\n  radius = 1,\n  color = DEFAULT_COLOR,\n  ariaLabel = 'tail-spin-loading',\n  wrapperStyle,\n  wrapperClass,\n  visible = true,\n}): ReactElement => {\n  const strokeWidthNum = parseInt(String(strokeWidth))\n  const viewBoxValue = strokeWidthNum + 36\n  const halfStrokeWidth = strokeWidthNum / 2\n  const processedRadius = halfStrokeWidth + parseInt(String(radius)) - 1\n  return (\n    <SvgWrapper\n      style={wrapperStyle}\n      $visible={visible}\n      className={wrapperClass}\n      data-testid=\"tail-spin-loading\"\n      aria-label={ariaLabel}\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <svg\n        width={width}\n        height={height}\n        viewBox={`0 0 ${viewBoxValue} ${viewBoxValue}`}\n        xmlns={SVG_NAMESPACE}\n        data-testid=\"tail-spin-svg\"\n      >\n        <defs>\n          <linearGradient x1=\"8.042%\" y1=\"0%\" x2=\"65.682%\" y2=\"23.865%\" id=\"a\">\n            <stop stopColor={color} stopOpacity=\"0\" offset=\"0%\" />\n            <stop stopColor={color} stopOpacity=\".631\" offset=\"63.146%\" />\n            <stop stopColor={color} offset=\"100%\" />\n          </linearGradient>\n        </defs>\n        <g fill=\"none\" fillRule=\"evenodd\">\n          <g transform={`translate(${halfStrokeWidth} ${halfStrokeWidth})`}>\n            <path\n              d=\"M36 18c0-9.94-8.06-18-18-18\"\n              id=\"Oval-2\"\n              stroke={color}\n              strokeWidth={strokeWidth}\n            >\n              <animateTransform\n                attributeName=\"transform\"\n                type=\"rotate\"\n                from=\"0 18 18\"\n                to=\"360 18 18\"\n                dur=\"0.9s\"\n                repeatCount=\"indefinite\"\n              />\n            </path>\n            <circle fill=\"#fff\" cx=\"36\" cy=\"18\" r={processedRadius}>\n              <animateTransform\n                attributeName=\"transform\"\n                type=\"rotate\"\n                from=\"0 18 18\"\n                to=\"360 18 18\"\n                dur=\"0.9s\"\n                repeatCount=\"indefinite\"\n              />\n            </circle>\n          </g>\n        </g>\n      </svg>\n    </SvgWrapper>\n  )\n}\n","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the ThreeCircles loader component.\n * \n * The ThreeCircles loader displays three circles with animated movement patterns.\n * \n * @interface ThreeCirclesProps\n */\ninterface ThreeCirclesProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. */\n  color?: string\n  /** Color of the outer circle. Overrides default color. */\n  outerCircleColor?: string\n  /** Color of the middle circle. Overrides default color. */\n  middleCircleColor?: string\n  /** Color of the inner circle. Overrides default color. */\n  innerCircleColor?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n}\n\n/**\n * @description contains three circles rotating in opposite direction\n * outer circle, middle circle and inner circle color can be set from props.\n */\nexport const ThreeCircles: FunctionComponent<ThreeCirclesProps> = ({\n  wrapperStyle = {},\n  visible = true,\n  wrapperClass = '',\n  height = 100,\n  width = 100,\n  color = DEFAULT_COLOR,\n  ariaLabel = 'three-circles-loading',\n  outerCircleColor,\n  innerCircleColor,\n  middleCircleColor,\n}) => {\n  return (\n    <SvgWrapper\n      style={wrapperStyle}\n      $visible={visible}\n      className={wrapperClass}\n      data-testid=\"three-circles-wrapper\"\n      aria-label={ariaLabel}\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <svg\n        version=\"1.1\"\n        height={`${height}`}\n        width={`${width}`}\n        xmlns={SVG_NAMESPACE}\n        viewBox=\"0 0 100 100\"\n        enableBackground=\"new 0 0 100 100\"\n        xmlSpace=\"preserve\"\n        data-testid=\"three-circles-svg\"\n      >\n        <path\n          fill={outerCircleColor || color} /** outer circle */\n          d=\"M31.6,3.5C5.9,13.6-6.6,42.7,3.5,68.4c10.1,25.7,39.2,38.3,64.9,28.1l-3.1-7.9c-21.3,8.4-45.4-2-53.8-23.3\n  c-8.4-21.3,2-45.4,23.3-53.8L31.6,3.5z\"\n        >\n          <animateTransform\n            attributeName=\"transform\"\n            attributeType=\"XML\"\n            type=\"rotate\"\n            dur=\"2s\"\n            from=\"0 50 50\"\n            to=\"360 50 50\"\n            repeatCount=\"indefinite\"\n          />\n        </path>\n        <path\n          fill={middleCircleColor || color} /** Middle circle */\n          d=\"M42.3,39.6c5.7-4.3,13.9-3.1,18.1,2.7c4.3,5.7,3.1,13.9-2.7,18.1l4.1,5.5c8.8-6.5,10.6-19,4.1-27.7\n  c-6.5-8.8-19-10.6-27.7-4.1L42.3,39.6z\"\n        >\n          <animateTransform\n            attributeName=\"transform\"\n            attributeType=\"XML\"\n            type=\"rotate\"\n            dur=\"1s\"\n            from=\"0 50 50\"\n            to=\"-360 50 50\"\n            repeatCount=\"indefinite\"\n          />\n        </path>\n        <path\n          fill={innerCircleColor || color} /** Inner circle */\n          d=\"M82,35.7C74.1,18,53.4,10.1,35.7,18S10.1,46.6,18,64.3l7.6-3.4c-6-13.5,0-29.3,13.5-35.3s29.3,0,35.3,13.5\n  L82,35.7z\"\n        >\n          <animateTransform\n            attributeName=\"transform\"\n            attributeType=\"XML\"\n            type=\"rotate\"\n            dur=\"2s\"\n            from=\"0 50 50\"\n            to=\"360 50 50\"\n            repeatCount=\"indefinite\"\n          />\n        </path>\n      </svg>\n    </SvgWrapper>\n  )\n}\n","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the ThreeDots loader component.\n * \n * The ThreeDots loader displays three dots that bounce up and down in sequence.\n * \n * @interface ThreeDotsProps\n */\ninterface ThreeDotsProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n  /** The radius of the dots */\n  radius?: string | number\n}\n\nexport const ThreeDots: FunctionComponent<ThreeDotsProps> = ({\n  height = 80,\n  width = 80,\n  radius = 9,\n  color = DEFAULT_COLOR,\n  ariaLabel = 'three-dots-loading',\n  wrapperStyle,\n  wrapperClass,\n  visible = true,\n}) => (\n  <SvgWrapper\n    style={wrapperStyle}\n    $visible={visible}\n    className={wrapperClass}\n    data-testid=\"three-dots-loading\"\n    aria-label={ariaLabel}\n    {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n  >\n    <svg\n      width={width}\n      height={height}\n      viewBox=\"0 0 120 30\"\n      xmlns={SVG_NAMESPACE}\n      fill={color}\n      data-testid=\"three-dots-svg\"\n    >\n      <circle cx=\"15\" cy=\"15\" r={Number(radius) + 6}>\n        <animate\n          attributeName=\"r\"\n          from=\"15\"\n          to=\"15\"\n          begin=\"0s\"\n          dur=\"0.8s\"\n          values=\"15;9;15\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n        <animate\n          attributeName=\"fill-opacity\"\n          from=\"1\"\n          to=\"1\"\n          begin=\"0s\"\n          dur=\"0.8s\"\n          values=\"1;.5;1\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </circle>\n      <circle\n        cx=\"60\"\n        cy=\"15\"\n        r={radius}\n        attributeName=\"fill-opacity\"\n        from=\"1\"\n        to=\"0.3\"\n      >\n        <animate\n          attributeName=\"r\"\n          from=\"9\"\n          to=\"9\"\n          begin=\"0s\"\n          dur=\"0.8s\"\n          values=\"9;15;9\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n        <animate\n          attributeName=\"fill-opacity\"\n          from=\"0.5\"\n          to=\"0.5\"\n          begin=\"0s\"\n          dur=\"0.8s\"\n          values=\".5;1;.5\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </circle>\n      <circle cx=\"105\" cy=\"15\" r={Number(radius) + 6}>\n        <animate\n          attributeName=\"r\"\n          from=\"15\"\n          to=\"15\"\n          begin=\"0s\"\n          dur=\"0.8s\"\n          values=\"15;9;15\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n        <animate\n          attributeName=\"fill-opacity\"\n          from=\"1\"\n          to=\"1\"\n          begin=\"0s\"\n          dur=\"0.8s\"\n          values=\"1;.5;1\"\n          calcMode=\"linear\"\n          repeatCount=\"indefinite\"\n        />\n      </circle>\n    </svg>\n  </SvgWrapper>\n)\n","import { FunctionComponent, CSSProperties } from 'react'\nimport styled, { keyframes } from 'styled-components'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the Triangle loader component.\n * \n * The Triangle loader displays a triangular shape with animated elements.\n * \n * @interface TriangleProps\n */\ninterface TriangleProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. */\n  color?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n}\n\nconst VIEW_BOX_VALUES = '-3 -4 39 39'\nconst POLYGON_POINTS = '16,0 32,32 0,32'\n\n/** Styles */\nconst dash = keyframes`\nto {\n   stroke-dashoffset: 136;\n }\n`\nconst Polygon = styled.polygon`\n  stroke-dasharray: 17;\n  animation: ${dash} 2.5s cubic-bezier(0.35, 0.04, 0.63, 0.95) infinite;\n`\nconst SVG = styled.svg`\n  transform-origin: 50% 65%;\n`\n/** Styles Ends */\n\nexport const Triangle: FunctionComponent<TriangleProps> = ({\n  height = 80,\n  width = 80,\n  color = DEFAULT_COLOR,\n  ariaLabel = 'triangle-loading',\n  wrapperStyle,\n  wrapperClass,\n  visible = true,\n}: TriangleProps) => {\n  return (\n    <SvgWrapper\n      style={wrapperStyle}\n      $visible={visible}\n      className={`${wrapperClass}`}\n      data-testid=\"triangle-loading\"\n      aria-label={ariaLabel}\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <SVG\n        id=\"triangle\"\n        width={width}\n        height={height}\n        xmlns={SVG_NAMESPACE}\n        viewBox={VIEW_BOX_VALUES}\n        data-testid=\"triangle-svg\"\n      >\n        <Polygon\n          fill=\"transparent\"\n          stroke={color}\n          strokeWidth=\"1\"\n          points={POLYGON_POINTS}\n        />\n      </SVG>\n    </SvgWrapper>\n  )\n}\n","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the Watch loader component.\n * \n * The Watch loader displays a watch-like circular animation with moving hands.\n * \n * @interface WatchProps\n */\ninterface WatchProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n  radius?: string | number\n}\n\nexport const Watch: FunctionComponent<WatchProps> = ({\n  height = 80,\n  width = 80,\n  radius = 48,\n  color = DEFAULT_COLOR,\n  ariaLabel = 'watch-loading',\n  wrapperStyle,\n  wrapperClass,\n  visible = true,\n}) => (\n  <SvgWrapper\n    style={wrapperStyle}\n    $visible={visible}\n    className={wrapperClass}\n    data-testid=\"watch-loading\"\n    aria-label={ariaLabel}\n    {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n  >\n    <svg\n      width={width}\n      height={height}\n      version=\"1.1\"\n      id=\"L2\"\n      xmlns={SVG_NAMESPACE}\n      x=\"0px\"\n      y=\"0px\"\n      viewBox=\"0 0 100 100\"\n      enableBackground=\"new 0 0 100 100\"\n      xmlSpace=\"preserve\"\n      data-testid=\"watch-svg\"\n    >\n      <circle\n        fill=\"none\"\n        stroke={color}\n        strokeWidth=\"4\"\n        strokeMiterlimit=\"10\"\n        cx=\"50\"\n        cy=\"50\"\n        r={radius}\n      />\n      <line\n        fill=\"none\"\n        strokeLinecap=\"round\"\n        stroke={color}\n        strokeWidth=\"4\"\n        strokeMiterlimit=\"10\"\n        x1=\"50\"\n        y1=\"50\"\n        x2=\"85\"\n        y2=\"50.5\"\n      >\n        <animateTransform\n          attributeName=\"transform\"\n          dur=\"2s\"\n          type=\"rotate\"\n          from=\"0 50 50\"\n          to=\"360 50 50\"\n          repeatCount=\"indefinite\"\n        />\n      </line>\n      <line\n        fill=\"none\"\n        strokeLinecap=\"round\"\n        stroke={color}\n        strokeWidth=\"4\"\n        strokeMiterlimit=\"10\"\n        x1=\"50\"\n        y1=\"50\"\n        x2=\"49.5\"\n        y2=\"74\"\n      >\n        <animateTransform\n          attributeName=\"transform\"\n          dur=\"15s\"\n          type=\"rotate\"\n          from=\"0 50 50\"\n          to=\"360 50 50\"\n          repeatCount=\"indefinite\"\n        />\n      </line>\n    </svg>\n  </SvgWrapper>\n)\n","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the FallingLines loader component.\n * \n * The FallingLines loader displays animated vertical lines that fall down\n * in a cascading pattern, creating a rain-like loading animation effect.\n * \n * @interface FallingLinesProps\n */\ninterface FallingLinesProps {\n  /** Height of the SVG (number interpreted as px). Defaults to '100'. */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). Defaults to '100'. */\n  width?: string | number\n  /** Primary color applied to the falling lines. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Accessible label announced to screen readers. Defaults to 'falling-lines-loading'. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the lines.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n}\n\nexport const FallingLines: FunctionComponent<FallingLinesProps> = ({\n  color = DEFAULT_COLOR,\n  width = '100',\n  visible = true,\n}) => {\n  return visible ? (\n    <svg\n      xmlns={SVG_NAMESPACE}\n      width={width}\n      height={width}\n      viewBox=\"0 0 100 100\"\n      data-testid=\"falling-lines\"\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <rect\n        y=\"25\"\n        width=\"10\"\n        height=\"50\"\n        rx=\"4\"\n        ry=\"4\"\n        fill={color}\n        data-testid=\"falling-lines-rect-1\"\n      >\n        <animate\n          attributeName=\"x\"\n          values=\"10;100\"\n          dur=\"1.2s\"\n          repeatCount=\"indefinite\"\n        />\n        <animateTransform\n          attributeName=\"transform\"\n          type=\"rotate\"\n          from=\"0 10 70\"\n          to=\"-60 100 70\"\n          dur=\"1.2s\"\n          repeatCount=\"indefinite\"\n        />\n        <animate\n          attributeName=\"opacity\"\n          values=\"0;1;0\"\n          dur=\"1.2s\"\n          repeatCount=\"indefinite\"\n        />\n      </rect>\n  <rect y=\"25\" width=\"10\" height=\"50\" rx=\"4\" ry=\"4\" fill={color} opacity={0}>\n        <animate\n          attributeName=\"x\"\n          values=\"10;100\"\n          dur=\"1.2s\"\n          begin=\"0.4s\"\n          repeatCount=\"indefinite\"\n        />\n        <animateTransform\n          attributeName=\"transform\"\n          type=\"rotate\"\n          from=\"0 10 70\"\n          to=\"-60 100 70\"\n          dur=\"1.2s\"\n          begin=\"0.4s\"\n          repeatCount=\"indefinite\"\n        />\n        <animate\n          attributeName=\"opacity\"\n          values=\"0;1;0\"\n          dur=\"1.2s\"\n          begin=\"0.4s\"\n          repeatCount=\"indefinite\"\n        />\n      </rect>\n\n      <rect\n        y=\"25\"\n        width=\"10\"\n        height=\"50\"\n        rx=\"4\"\n        ry=\"4\"\n        fill={color}\n        opacity={0}\n        data-testid=\"falling-lines-rect-2\"\n      >\n        <animate\n          attributeName=\"x\"\n          values=\"10;100\"\n          dur=\"1.2s\"\n          begin=\"0.8s\"\n          repeatCount=\"indefinite\"\n        />\n        <animateTransform\n          attributeName=\"transform\"\n          type=\"rotate\"\n          from=\"0 10 70\"\n          to=\"-60 100 70\"\n          dur=\"1.2s\"\n          begin=\"0.8s\"\n          repeatCount=\"indefinite\"\n        />\n        <animate\n          attributeName=\"opacity\"\n          values=\"0;1;0\"\n          dur=\"1.2s\"\n          begin=\"0.8s\"\n          repeatCount=\"indefinite\"\n        />\n      </rect>\n    </svg>\n  ) : null\n}\n","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the Vortex loader component.\n * \n * The Vortex loader displays a swirling animation that creates a vortex effect.\n * \n * @interface VortexProps\n */\ninterface VortexProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. */\n  color?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n}\n\nexport const Vortex: FunctionComponent<VortexProps> = ({\n  visible = true,\n  height = '80',\n  width = '80',\n  ariaLabel = 'vortex-loading',\n  wrapperStyle,\n  wrapperClass,\n  colors = ['#1B5299', '#EF8354', '#DB5461', '#1B5299', '#EF8354', '#DB5461'],\n}) => {\n  return !visible ? null : (\n    <svg\n      height={height}\n      width={width}\n      xmlns={SVG_NAMESPACE}\n      viewBox=\"0 0 100 100\"\n      preserveAspectRatio=\"xMidYMid\"\n      data-testid=\"vortex-svg\"\n      aria-label={ariaLabel}\n      style={wrapperStyle}\n      className={wrapperClass}\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <g transform=\"translate(50,50)\">\n        <g transform=\"scale(0.7)\">\n          <g transform=\"translate(-50,-50)\">\n            <g transform=\"rotate(137.831 50 50)\">\n              <animateTransform\n                attributeName=\"transform\"\n                type=\"rotate\"\n                repeatCount=\"indefinite\"\n                values=\"360 50 50;0 50 50\"\n                keyTimes=\"0;1\"\n                dur=\"1\"\n                keySplines=\"0.5 0.5 0.5 0.5\"\n                calcMode=\"spline\"\n              ></animateTransform>\n              <path\n                fill={colors[0]}\n                d=\"M30.4,9.7c-7.4,10.9-11.8,23.8-12.3,37.9c0.2,1,0.5,1.9,0.7,2.8c1.4-5.2,3.4-10.3,6.2-15.1 c2.6-4.4,5.6-8.4,9-12c0.7-0.7,1.4-1.4,2.1-2.1c7.4-7,16.4-12,26-14.6C51.5,3.6,40.2,4.9,30.4,9.7z\"\n              ></path>\n              <path\n                fill={colors[1]}\n                d=\"M24.8,64.2c-2.6-4.4-4.5-9.1-5.9-13.8c-0.3-0.9-0.5-1.9-0.7-2.8c-2.4-9.9-2.2-20.2,0.4-29.8 C10.6,25.5,6,36,5.3,46.8C11,58.6,20,68.9,31.9,76.3c0.9,0.3,1.9,0.5,2.8,0.8C31,73.3,27.6,69,24.8,64.2z\"\n              ></path>\n              <path\n                fill={colors[2]}\n                d=\"M49.6,78.9c-5.1,0-10.1-0.6-14.9-1.8c-1-0.2-1.9-0.5-2.8-0.8c-9.8-2.9-18.5-8.2-25.6-15.2 c2.8,10.8,9.5,20,18.5,26c13.1,0.9,26.6-1.7,38.9-8.3c0.7-0.7,1.4-1.4,2.1-2.1C60.7,78.2,55.3,78.9,49.6,78.9z\"\n              ></path>\n              <path\n                fill={colors[3]}\n                d=\"M81.1,49.6c-1.4,5.2-3.4,10.3-6.2,15.1c-2.6,4.4-5.6,8.4-9,12c-0.7,0.7-1.4,1.4-2.1,2.1 c-7.4,7-16.4,12-26,14.6c10.7,3,22.1,1.7,31.8-3.1c7.4-10.9,11.8-23.8,12.3-37.9C81.6,51.5,81.4,50.6,81.1,49.6z\"\n              ></path>\n              <path\n                fill={colors[4]}\n                d=\"M75.2,12.9c-13.1-0.9-26.6,1.7-38.9,8.3c-0.7,0.7-1.4,1.4-2.1,2.1c5.2-1.4,10.6-2.2,16.2-2.2 c5.1,0,10.1,0.6,14.9,1.8c1,0.2,1.9,0.5,2.8,0.8c9.8,2.9,18.5,8.2,25.6,15.2C90.9,28.1,84.2,18.9,75.2,12.9z\"\n              ></path>\n              <path\n                fill={colors[5]}\n                d=\"M94.7,53.2C89,41.4,80,31.1,68.1,23.7c-0.9-0.3-1.9-0.5-2.8-0.8c3.8,3.8,7.2,8.1,10,13 c2.6,4.4,4.5,9.1,5.9,13.8c0.3,0.9,0.5,1.9,0.7,2.8c2.4,9.9,2.2,20.2-0.4,29.8C89.4,74.5,94,64,94.7,53.2z\"\n              ></path>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  )\n}\n","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the RotatingTriangles loader component.\n * \n * The RotatingTriangles loader displays multiple triangles rotating around a center point.\n * \n * @interface RotatingTrianglesProps\n */\ninterface RotatingTrianglesProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. */\n  color?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n}\n\nexport const RotatingTriangles: FunctionComponent<RotatingTrianglesProps> = ({\n  visible = true,\n  height = '80',\n  width = '80',\n  wrapperClass = '',\n  wrapperStyle = {},\n  ariaLabel = 'rotating-triangle-loading',\n  colors = ['#1B5299', '#EF8354', '#DB5461'],\n}) => {\n  return !visible ? null : (\n    <svg\n      width={width}\n      height={height}\n      xmlns={SVG_NAMESPACE}\n      viewBox=\"0 0 100 100\"\n      preserveAspectRatio=\"xMidYMid\"\n      className={wrapperClass}\n      style={wrapperStyle}\n      aria-label={ariaLabel}\n      data-testid=\"rotating-triangle-svg\"\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <g transform=\"translate(50,42)\">\n        <g transform=\"scale(0.8)\">\n          <g transform=\"translate(-50,-50)\">\n            <polygon\n              points=\"72.5,50 50,11 27.5,50 50,50\"\n              fill={colors[0]}\n              transform=\"rotate(186 50 38.5)\"\n            >\n              <animateTransform\n                attributeName=\"transform\"\n                type=\"rotate\"\n                calcMode=\"linear\"\n                values=\"0 50 38.5;360 50 38.5\"\n                keyTimes=\"0;1\"\n                dur=\"1s\"\n                begin=\"0s\"\n                repeatCount=\"indefinite\"\n              ></animateTransform>\n            </polygon>\n            <polygon\n              points=\"5,89 50,89 27.5,50\"\n              fill={colors[1]}\n              transform=\"rotate(186 27.5 77.5)\"\n            >\n              <animateTransform\n                attributeName=\"transform\"\n                type=\"rotate\"\n                calcMode=\"linear\"\n                values=\"0 27.5 77.5;360 27.5 77.5\"\n                keyTimes=\"0;1\"\n                dur=\"1s\"\n                begin=\"0s\"\n                repeatCount=\"indefinite\"\n              ></animateTransform>\n            </polygon>\n            <polygon\n              points=\"72.5,50 50,89 95,89\"\n              fill={colors[2]}\n              transform=\"rotate(186 72.2417 77.5)\"\n            >\n              <animateTransform\n                attributeName=\"transform\"\n                type=\"rotate\"\n                calcMode=\"linear\"\n                values=\"0 72.5 77.5;360 72 77.5\"\n                keyTimes=\"0;1\"\n                dur=\"1s\"\n                begin=\"0s\"\n                repeatCount=\"indefinite\"\n              ></animateTransform>\n            </polygon>\n          </g>\n        </g>\n      </g>\n    </svg>\n  )\n}\n","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the Radio loader component.\n * \n * The Radio loader displays a circular animation with three colored segments\n * that rotate around the center, resembling radio waves or signal indicators.\n * Each segment can have a different color.\n * \n * @interface RadioProps\n */\ninterface RadioProps {\n  /** Height of the SVG (number interpreted as px). Defaults to '80'. */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). Defaults to '80'. */\n  width?: string | number\n  /** Array of three colors for the radio segments. Defaults to [DEFAULT_COLOR, DEFAULT_COLOR, DEFAULT_COLOR]. */\n  colors?: [string, string, string]\n  /** Accessible label announced to screen readers. Defaults to 'radio-loading'. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n}\n\nexport const Radio: FunctionComponent<RadioProps> = ({\n  visible = true,\n  height = '80',\n  width = '80',\n  wrapperClass = '',\n  wrapperStyle = {},\n  ariaLabel = 'radio-loading',\n  colors = [DEFAULT_COLOR, DEFAULT_COLOR, DEFAULT_COLOR],\n}) => {\n  return !visible ? null : (\n    <svg\n      width={width}\n      height={height}\n      xmlns={SVG_NAMESPACE}\n      viewBox=\"0 0 100 100\"\n      preserveAspectRatio=\"xMidYMid\"\n      className={wrapperClass}\n      style={wrapperStyle}\n      aria-label={ariaLabel}\n      data-testid=\"radio-bar-svg\"\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <circle cx=\"28\" cy=\"75\" r=\"11\" fill={colors[0]}>\n        <animate\n          attributeName=\"fill-opacity\"\n          calcMode=\"linear\"\n          values=\"0;1;1\"\n          keyTimes=\"0;0.2;1\"\n          dur=\"1\"\n          begin=\"0s\"\n          repeatCount=\"indefinite\"\n        ></animate>\n      </circle>\n      <path\n        d=\"M28 47A28 28 0 0 1 56 75\"\n        fill=\"none\"\n        strokeWidth=\"10\"\n        stroke={colors[1]}\n      >\n        <animate\n          attributeName=\"stroke-opacity\"\n          calcMode=\"linear\"\n          values=\"0;1;1\"\n          keyTimes=\"0;0.2;1\"\n          dur=\"1\"\n          begin=\"0.1s\"\n          repeatCount=\"indefinite\"\n        ></animate>\n      </path>\n      <path\n        d=\"M28 25A50 50 0 0 1 78 75\"\n        fill=\"none\"\n        strokeWidth=\"10\"\n        stroke={colors[2]}\n      >\n        <animate\n          attributeName=\"stroke-opacity\"\n          calcMode=\"linear\"\n          values=\"0;1;1\"\n          keyTimes=\"0;0.2;1\"\n          dur=\"1\"\n          begin=\"0.2s\"\n          repeatCount=\"indefinite\"\n        ></animate>\n      </path>\n    </svg>\n  )\n}\n","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the ProgressBar loader component.\n * \n * The ProgressBar loader displays a horizontal progress bar animation.\n * \n * @interface ProgressBarProps\n */\ninterface ProgressBarProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. */\n  color?: string\n  /** Color of the progress bar border. Defaults to '#F4442E'. */\n  borderColor?: string\n  /** Color of the progress bar fill. Defaults to '#51E5FF'. */\n  barColor?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n}\n\nexport const ProgressBar: FunctionComponent<ProgressBarProps> = ({\n  visible = true,\n  height = '80',\n  width = '80',\n  wrapperClass = '',\n  wrapperStyle = {},\n  ariaLabel = 'progress-bar-loading',\n  borderColor = '#F4442E',\n  barColor = '#51E5FF',\n}) => {\n  return !visible ? null : (\n    <svg\n      width={width}\n      height={height}\n      xmlns={SVG_NAMESPACE}\n      viewBox=\"0 0 100 100\"\n      preserveAspectRatio=\"xMidYMid\"\n      className={wrapperClass}\n      style={wrapperStyle}\n      aria-label={ariaLabel}\n      data-testid=\"progress-bar-svg\"\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <defs>\n        <clipPath\n          x=\"0\"\n          y=\"0\"\n          width=\"100\"\n          height=\"100\"\n          id=\"lds-progress-cpid-5009611b8a418\"\n        >\n          <rect x=\"0\" y=\"0\" width=\"66.6667\" height=\"100\">\n            <animate\n              attributeName=\"width\"\n              calcMode=\"linear\"\n              values=\"0;100;100\"\n              keyTimes=\"0;0.5;1\"\n              dur=\"1\"\n              begin=\"0s\"\n              repeatCount=\"indefinite\"\n            ></animate>\n            <animate\n              attributeName=\"x\"\n              calcMode=\"linear\"\n              values=\"0;0;100\"\n              keyTimes=\"0;0.5;1\"\n              dur=\"1\"\n              begin=\"0s\"\n              repeatCount=\"indefinite\"\n            ></animate>\n          </rect>\n        </clipPath>\n      </defs>\n      <path\n        fill=\"none\"\n        strokeWidth=\"2.7928\"\n        d=\"M82,63H18c-7.2,0-13-5.8-13-13v0c0-7.2,5.8-13,13-13h64c7.2,0,13,5.8,13,13v0C95,57.2,89.2,63,82,63z\"\n        stroke={borderColor}\n      ></path>\n      <path\n        d=\"M81.3,58.7H18.7c-4.8,0-8.7-3.9-8.7-8.7v0c0-4.8,3.9-8.7,8.7-8.7h62.7c4.8,0,8.7,3.9,8.7,8.7v0C90,54.8,86.1,58.7,81.3,58.7z\"\n        fill={barColor}\n        clipPath=\"url(#lds-progress-cpid-5009611b8a418)\"\n      ></path>\n    </svg>\n  )\n}\n","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the MagnifyingGlass loader component.\n * \n * The MagnifyingGlass loader displays a magnifying glass with a rotating animation.\n * \n * @interface MagnifyingGlassProps\n */\ninterface MagnifyingGlassProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n  glassColor?: string\n}\n\nexport const MagnifyingGlass: FunctionComponent<MagnifyingGlassProps> = ({\n  visible = true,\n  height = '80',\n  width = '80',\n  wrapperClass = '',\n  wrapperStyle = {},\n  ariaLabel = 'magnifying-glass-loading',\n  glassColor = '#c0efff',\n  color = '#e15b64',\n}) => {\n  return !visible ? null : (\n    <svg\n      width={width}\n      height={height}\n      xmlns={SVG_NAMESPACE}\n      viewBox=\"0 0 100 100\"\n      preserveAspectRatio=\"xMidYMid\"\n      className={wrapperClass}\n      style={wrapperStyle}\n      aria-label={ariaLabel}\n      data-testid=\"magnifying-glass-svg\"\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <g transform=\"translate(50,50)\">\n        <g transform=\"scale(0.82)\">\n          <g transform=\"translate(-50,-50)\">\n            <g transform=\"translate(16.3636 -20)\">\n              <animateTransform\n                attributeName=\"transform\"\n                type=\"translate\"\n                calcMode=\"linear\"\n                values=\"-20 -20;20 -20;0 20;-20 -20\"\n                keyTimes=\"0;0.33;0.66;1\"\n                dur=\"1s\"\n                begin=\"0s\"\n                repeatCount=\"indefinite\"\n              ></animateTransform>\n              <path\n                d=\"M44.19,26.158c-4.817,0-9.345,1.876-12.751,5.282c-3.406,3.406-5.282,7.934-5.282,12.751 c0,4.817,1.876,9.345,5.282,12.751c3.406,3.406,7.934,5.282,12.751,5.282s9.345-1.876,12.751-5.282 c3.406-3.406,5.282-7.934,5.282-12.751c0-4.817-1.876-9.345-5.282-12.751C53.536,28.033,49.007,26.158,44.19,26.158z\"\n                fill={glassColor}\n              ></path>\n              <path\n                d=\"M78.712,72.492L67.593,61.373l-3.475-3.475c1.621-2.352,2.779-4.926,3.475-7.596c1.044-4.008,1.044-8.23,0-12.238 c-1.048-4.022-3.146-7.827-6.297-10.979C56.572,22.362,50.381,20,44.19,20C38,20,31.809,22.362,27.085,27.085 c-9.447,9.447-9.447,24.763,0,34.21C31.809,66.019,38,68.381,44.19,68.381c4.798,0,9.593-1.425,13.708-4.262l9.695,9.695 l4.899,4.899C73.351,79.571,74.476,80,75.602,80s2.251-0.429,3.11-1.288C80.429,76.994,80.429,74.209,78.712,72.492z M56.942,56.942 c-3.406,3.406-7.934,5.282-12.751,5.282s-9.345-1.876-12.751-5.282c-3.406-3.406-5.282-7.934-5.282-12.751 c0-4.817,1.876-9.345,5.282-12.751c3.406-3.406,7.934-5.282,12.751-5.282c4.817,0,9.345,1.876,12.751,5.282 c3.406,3.406,5.282,7.934,5.282,12.751C62.223,49.007,60.347,53.536,56.942,56.942z\"\n                fill={color}\n              ></path>\n            </g>\n          </g>\n        </g>\n      </g>\n    </svg>\n  )\n}\n","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the FidgetSpinner loader component.\n * \n * The FidgetSpinner loader displays a fidget spinner with rotating animation.\n * \n * @interface FidgetSpinnerProps\n */\ninterface FidgetSpinnerProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Background color of the fidget spinner. Defaults to DEFAULT_COLOR. */\n  backgroundColor?: string\n  /** Array of colors for the spinner balls. Defaults to ['#fc636b', '#6a67ce', '#ffb900']. */\n  ballColors?: string[]\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n}\n\nexport const FidgetSpinner: FunctionComponent<FidgetSpinnerProps> = ({\n  width = '80',\n  height = '80',\n  backgroundColor = DEFAULT_COLOR,\n  ballColors = ['#fc636b', '#6a67ce', '#ffb900'],\n  wrapperClass = '',\n  wrapperStyle = {},\n  ariaLabel = 'fidget-spinner-loader',\n  visible = true,\n}) => {\n  return !visible ? null : (\n    <svg\n      width={width}\n      height={height}\n      xmlns={SVG_NAMESPACE}\n      viewBox=\"0 0 100 100\"\n      preserveAspectRatio=\"xMidYMid\"\n      className={wrapperClass}\n      style={wrapperStyle}\n      aria-label={ariaLabel}\n      data-testid=\"fidget-spinner-svg\"\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <g transform=\"rotate(6 50 50)\">\n        <g transform=\"translate(50 50)\">\n          <g transform=\"scale(0.9)\">\n            <g transform=\"translate(-50 -58)\">\n              <path\n                d=\"M27.1,79.4c-1.1,0.6-2.4,1-3.7,1c-2.6,0-5.1-1.4-6.4-3.7c-2-3.5-0.8-8,2.7-10.1c1.1-0.6,2.4-1,3.7-1c2.6,0,5.1,1.4,6.4,3.7 C31.8,72.9,30.6,77.4,27.1,79.4z\"\n                fill={ballColors[0]}\n              ></path>\n              <path\n                d=\"M72.9,79.4c1.1,0.6,2.4,1,3.7,1c2.6,0,5.1-1.4,6.4-3.7c2-3.5,0.8-8-2.7-10.1c-1.1-0.6-2.4-1-3.7-1c-2.6,0-5.1,1.4-6.4,3.7 C68.2,72.9,69.4,77.4,72.9,79.4z\"\n                fill={ballColors[1]}\n              ></path>\n              <circle cx=\"50\" cy=\"27\" r=\"7.4\" fill={ballColors[2]}></circle>\n              <path\n                d=\"M86.5,57.5c-3.1-1.9-6.4-2.8-9.8-2.8c-0.5,0-0.9,0-1.4,0c-0.4,0-0.8,0-1.1,0c-2.1,0-4.2-0.4-6.2-1.2 c-0.8-3.6-2.8-6.9-5.4-9.3c0.4-2.5,1.3-4.8,2.7-6.9c2-2.9,3.2-6.5,3.2-10.4c0-10.2-8.2-18.4-18.4-18.4c-0.3,0-0.6,0-0.9,0 C39.7,9,32,16.8,31.6,26.2c-0.2,4.1,1,7.9,3.2,11c1.4,2.1,2.3,4.5,2.7,6.9c-2.6,2.5-4.6,5.7-5.4,9.3c-1.9,0.7-4,1.1-6.1,1.1 c-0.4,0-0.8,0-1.2,0c-0.5,0-0.9-0.1-1.4-0.1c-3.1,0-6.3,0.8-9.2,2.5c-9.1,5.2-12,17-6.3,25.9c3.5,5.4,9.5,8.4,15.6,8.4 c2.9,0,5.8-0.7,8.5-2.1c3.6-1.9,6.3-4.9,8-8.3c1.1-2.3,2.7-4.2,4.6-5.8c1.7,0.5,3.5,0.8,5.4,0.8c1.9,0,3.7-0.3,5.4-0.8 c1.9,1.6,3.5,3.5,4.6,5.7c1.5,3.2,4,6,7.4,8c2.9,1.7,6.1,2.5,9.2,2.5c6.6,0,13.1-3.6,16.4-10C97.3,73.1,94.4,62.5,86.5,57.5z M29.6,83.7c-1.9,1.1-4,1.6-6.1,1.6c-4.2,0-8.4-2.2-10.6-6.1c-3.4-5.9-1.4-13.4,4.5-16.8c1.9-1.1,4-1.6,6.1-1.6 c4.2,0,8.4,2.2,10.6,6.1C37.5,72.8,35.4,80.3,29.6,83.7z M50,39.3c-6.8,0-12.3-5.5-12.3-12.3S43.2,14.7,50,14.7 c6.8,0,12.3,5.5,12.3,12.3S56.8,39.3,50,39.3z M87.2,79.2c-2.3,3.9-6.4,6.1-10.6,6.1c-2.1,0-4.2-0.5-6.1-1.6 c-5.9-3.4-7.9-10.9-4.5-16.8c2.3-3.9,6.4-6.1,10.6-6.1c2.1,0,4.2,0.5,6.1,1.6C88.6,65.8,90.6,73.3,87.2,79.2z\"\n                fill={backgroundColor}\n              ></path>\n            </g>\n          </g>\n        </g>\n        <animateTransform\n          attributeName=\"transform\"\n          type=\"rotate\"\n          calcMode=\"linear\"\n          values=\"0 50 50;360 50 50\"\n          keyTimes=\"0;1\"\n          dur=\"1s\"\n          begin=\"0s\"\n          repeatCount=\"indefinite\"\n        ></animateTransform>\n      </g>\n    </svg>\n  )\n}\n","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SVG_NAMESPACE } from '../shared/constants'\n// tinycolor2 is a robust library that handles many edge cases (like different color formats)\nimport tinycolor from 'tinycolor2'\n\n/**\n * Props for the DNA loader component.\n * \n * The DNA loader displays a double helix animation resembling DNA strands\n * with two configurable colors for the primary and secondary strands.\n * The animation shows the iconic twisted ladder structure of DNA.\n * \n * @interface DNAProps\n */\ninterface DNAProps {\n  /** Height of the SVG (number interpreted as px). Defaults to 80. */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). Defaults to 80. */\n  width?: string | number\n  /** The primary color of the DNA loader strands. Defaults to 'rgba(233, 12, 89, 0.51)'. */\n  dnaColorOne?: string\n  /** The secondary color of the DNA loader strands. Defaults to '#46dff0'. */\n  dnaColorTwo?: string\n  /** Accessible label announced to screen readers. Defaults to 'dna-loading'. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n}\n\nexport const DNA: FunctionComponent<DNAProps> = ({\n  visible = true,\n  width = '80',\n  height = '80',\n  wrapperClass = '',\n  wrapperStyle = {},\n  ariaLabel = 'dna-loading',\n  dnaColorOne = 'rgba(233, 12, 89, 0.51)',\n  dnaColorTwo = '#46dff0',\n}) => {\n\n  // Generated the animated shade for dnaColorOne: a brighter, fully opaque version\n  const animatedColorOne = tinycolor(dnaColorOne).lighten(15).setAlpha(1).toRgbString()\n\n  // Generate the animated shade for dnaColorTwo: a desaturated, faded version\n  const animatedColorTwo = tinycolor(dnaColorTwo)\n    .desaturate(60)\n    .setAlpha(0.15)\n    .toRgbString()\n\n  return !visible ? null : (\n    <svg\n      xmlns={SVG_NAMESPACE}\n      width={width}\n      height={height}\n      viewBox=\"0 0 100 100\"\n      preserveAspectRatio=\"xMidYMid\"\n      className={wrapperClass}\n      style={wrapperStyle}\n      aria-label={ariaLabel}\n      data-testid=\"dna-svg\"\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <circle\n        cx=\"6.451612903225806\"\n        cy=\"60.6229\"\n        r=\"3.41988\"\n        fill={dnaColorOne}\n      >\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-0.5s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"0s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorOne};${animatedColorOne};${dnaColorOne}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-0.5s\"\n        ></animate>\n      </circle>\n      <circle cx=\"6.451612903225806\" cy=\"39.3771\" r=\"2.58012\" fill={dnaColorTwo}>\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.5s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorTwo};${animatedColorTwo};${dnaColorTwo}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-0.5s\"\n        ></animate>\n      </circle>\n      <circle\n        cx=\"16.129032258064512\"\n        cy=\"68.1552\"\n        r=\"3.17988\"\n        fill={dnaColorOne}\n      >\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-0.7s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-0.2s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorOne};${animatedColorOne};${dnaColorOne}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-0.7s\"\n        ></animate>\n      </circle>\n      <circle cx=\"16.129032258064512\" cy=\"31.8448\" r=\"2.82012\" fill={dnaColorTwo}>\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.7s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.2s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorTwo};${animatedColorTwo};${dnaColorTwo}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-0.7s\"\n        ></animate>\n      </circle>\n      <circle\n        cx=\"25.806451612903224\"\n        cy=\"69.3634\"\n        r=\"2.93988\"\n        fill={dnaColorOne}\n      >\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-0.9s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-0.4s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorOne};${animatedColorOne};${dnaColorOne}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-0.9s\"\n        ></animate>\n      </circle>\n      <circle cx=\"25.806451612903224\" cy=\"30.6366\" r=\"3.06012\" fill={dnaColorTwo}>\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.9s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.4s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorTwo};${animatedColorTwo};${dnaColorTwo}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-0.9s\"\n        ></animate>\n      </circle>\n      <circle\n        cx=\"35.48387096774193\"\n        cy=\"65.3666\"\n        r=\"2.69988\"\n        fill={dnaColorOne}\n      >\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.1s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-0.6s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorOne};${animatedColorOne};${dnaColorOne}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.1s\"\n        ></animate>\n      </circle>\n      <circle cx=\"35.48387096774193\" cy=\"34.6334\" r=\"3.30012\" fill={dnaColorTwo}>\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-2.1s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.6s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorTwo};${animatedColorTwo};${dnaColorTwo}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.1s\"\n        ></animate>\n      </circle>\n      <circle\n        cx=\"45.16129032258064\"\n        cy=\"53.8474\"\n        r=\"2.45988\"\n        fill={dnaColorOne}\n      >\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.3s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-0.8s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorOne};${animatedColorOne};${dnaColorOne}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.3s\"\n        ></animate>\n      </circle>\n      <circle cx=\"45.16129032258064\" cy=\"46.1526\" r=\"3.54012\" fill={dnaColorTwo}>\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-2.3s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.8s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorTwo};${animatedColorTwo};${dnaColorTwo}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.3s\"\n        ></animate>\n      </circle>\n      <circle\n        cx=\"54.838709677419345\"\n        cy=\"39.3771\"\n        r=\"2.58012\"\n        fill={dnaColorOne}\n      >\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.5s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorOne};${animatedColorOne};${dnaColorOne}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.5s\"\n        ></animate>\n      </circle>\n      <circle cx=\"54.838709677419345\" cy=\"60.6229\" r=\"3.41988\" fill={dnaColorTwo}>\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-2.5s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-2s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorTwo};${animatedColorTwo};${dnaColorTwo}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.5s\"\n        ></animate>\n      </circle>\n      <circle\n        cx=\"64.51612903225805\"\n        cy=\"31.8448\"\n        r=\"2.82012\"\n        fill={dnaColorOne}\n      >\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.7s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.2s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorOne};${animatedColorOne};${dnaColorOne}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.7s\"\n        ></animate>\n      </circle>\n      <circle cx=\"64.51612903225805\" cy=\"68.1552\" r=\"3.17988\" fill={dnaColorTwo}>\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-2.7s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-2.2s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorTwo};${animatedColorTwo};${dnaColorTwo}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.7s\"\n        ></animate>\n      </circle>\n      <circle\n        cx=\"74.19354838709677\"\n        cy=\"30.6366\"\n        r=\"3.06012\"\n        fill={dnaColorOne}\n      >\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.9s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.4s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorOne};${animatedColorOne};${dnaColorOne}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.9s\"\n        ></animate>\n      </circle>\n      <circle cx=\"74.19354838709677\" cy=\"69.3634\" r=\"2.93988\" fill={dnaColorTwo}>\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-2.9s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-2.4s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorTwo};${animatedColorTwo};${dnaColorTwo}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.9s\"\n        ></animate>\n      </circle>\n      <circle\n        cx=\"83.87096774193547\"\n        cy=\"34.6334\"\n        r=\"3.30012\"\n        fill={dnaColorOne}\n      >\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-2.1s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.6s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorOne};${animatedColorOne};${dnaColorOne}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-2.1s\"\n        ></animate>\n      </circle>\n      <circle cx=\"83.87096774193547\" cy=\"65.3666\" r=\"2.69988\" fill={dnaColorTwo}>\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-3.1s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-2.6s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorTwo};${animatedColorTwo};${dnaColorTwo}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-2.1s\"\n        ></animate>\n      </circle>\n      <circle\n        cx=\"93.54838709677418\"\n        cy=\"46.1526\"\n        r=\"3.54012\"\n        fill={dnaColorOne}\n      >\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-2.3s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-1.8s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorOne};${animatedColorOne};${dnaColorOne}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-2.3s\"\n        ></animate>\n      </circle>\n      <circle cx=\"93.54838709677418\" cy=\"53.8474\" r=\"2.45988\" fill={dnaColorTwo}>\n        <animate\n          attributeName=\"r\"\n          keyTimes=\"0;0.5;1\"\n          values=\"2.4000000000000004;3.5999999999999996;2.4000000000000004\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-3.3s\"\n        ></animate>\n        <animate\n          attributeName=\"cy\"\n          keyTimes=\"0;0.5;1\"\n          values=\"30.5;69.5;30.5\"\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-2.8s\"\n          keySplines=\"0.5 0 0.5 1;0.5 0 0.5 1\"\n          calcMode=\"spline\"\n        ></animate>\n        <animate\n          attributeName=\"fill\"\n          keyTimes=\"0;0.5;1\"\n          values={`${dnaColorTwo};${animatedColorTwo};${dnaColorTwo}`}\n          dur=\"2s\"\n          repeatCount=\"indefinite\"\n          begin=\"-2.3s\"\n        ></animate>\n      </circle>\n    </svg>\n  )\n}\n","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the Discuss loader component.\n * \n * The Discuss loader displays a discussion bubble with animated elements.\n * \n * @interface DiscussProps\n */\ninterface DiscussProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. */\n  color?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n}\n\nexport const Discuss: FunctionComponent<DiscussProps> = ({\n  visible = true,\n  width = '80',\n  height = '80',\n  wrapperClass = '',\n  wrapperStyle = {},\n  ariaLabel = 'discuss-loading',\n  colors = ['#ff727d', '#ff727d'],\n}) => {\n  return !visible ? null : (\n    <svg\n      width={width}\n      height={height}\n      xmlns={SVG_NAMESPACE}\n      viewBox=\"0 0 100 100\"\n      preserveAspectRatio=\"xMidYMid\"\n      className={wrapperClass}\n      style={wrapperStyle}\n      aria-label={ariaLabel}\n      data-testid=\"discuss-svg\"\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <path\n        fill=\"none\"\n        d=\"M82 50A32 32 0 1 1 23.533421623214014 32.01333190873183 L21.71572875253809 21.7157287525381 L32.013331908731814 23.53342162321403 A32 32 0 0 1 82 50\"\n        strokeWidth=\"5\"\n        stroke={colors[0]}\n      ></path>\n      <circle\n        cx=\"50\"\n        cy=\"50\"\n        fill=\"none\"\n        strokeLinecap=\"round\"\n        r=\"20\"\n        strokeWidth=\"5\"\n        stroke={colors[1]}\n        strokeDasharray=\"31.41592653589793 31.41592653589793\"\n        transform=\"rotate(96 50 50)\"\n      >\n        <animateTransform\n          attributeName=\"transform\"\n          type=\"rotate\"\n          calcMode=\"linear\"\n          values=\"0 50 50;360 50 50\"\n          keyTimes=\"0;1\"\n          dur=\"1s\"\n          begin=\"0s\"\n          repeatCount=\"indefinite\"\n        ></animateTransform>\n      </circle>\n    </svg>\n  )\n}\n","import { ReactElement, FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\n\n/**\n * Props for the ColorRing loader component.\n * \n * The ColorRing loader displays a circular ring with animated color segments.\n * \n * @interface ColorRingProps\n */\ninterface ColorRingProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. */\n  color?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n}\n\nexport const ColorRing: FunctionComponent<ColorRingProps> = ({\n  visible = true,\n  width = '80',\n  height = '80',\n  colors = ['#e15b64', '#f47e60', '#f8b26a', '#abbd81', '#849b87'],\n  wrapperClass = '',\n  wrapperStyle = {},\n  ariaLabel = 'color-ring-loading',\n}): ReactElement | null => {\n  return !visible ? null : (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n      width={width}\n      height={height}\n      viewBox=\"0 0 100 100\"\n      preserveAspectRatio=\"xMidYMid\"\n      className={wrapperClass}\n      style={wrapperStyle}\n      aria-label={ariaLabel}\n      data-testid=\"color-ring-svg\"\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <defs>\n        <mask id=\"ldio-4offds5dlws-mask\">\n          <circle\n            cx=\"50\"\n            cy=\"50\"\n            r=\"26\"\n            stroke=\"#fff\"\n            strokeLinecap=\"round\"\n            strokeDasharray=\"122.52211349000194 40.840704496667314\"\n            strokeWidth=\"9\"\n            transform=\"rotate(198.018 50 50)\"\n          >\n            <animateTransform\n              attributeName=\"transform\"\n              type=\"rotate\"\n              values=\"0 50 50;360 50 50\"\n              keyTimes=\"0;1\"\n              dur=\"1s\"\n              repeatCount=\"indefinite\"\n            ></animateTransform>\n          </circle>\n        </mask>\n      </defs>\n      <g mask=\"url(#ldio-4offds5dlws-mask)\">\n        <rect x=\"14.5\" y=\"0\" width=\"15\" height=\"100\" fill={colors[0]}>\n          <animate\n            attributeName=\"fill\"\n            values={colors.join(';').toString()}\n            keyTimes=\"0;0.25;0.5;0.75;1\"\n            dur=\"1s\"\n            repeatCount=\"indefinite\"\n            begin=\"-0.8s\"\n          ></animate>\n        </rect>\n        <rect x=\"28.5\" y=\"0\" width=\"15\" height=\"100\" fill={colors[1]}>\n          <animate\n            attributeName=\"fill\"\n            values={colors.join(';').toString()}\n            keyTimes=\"0;0.25;0.5;0.75;1\"\n            dur=\"1s\"\n            repeatCount=\"indefinite\"\n            begin=\"-0.6s\"\n          ></animate>\n        </rect>\n        <rect x=\"42.5\" y=\"0\" width=\"15\" height=\"100\" fill={colors[2]}>\n          <animate\n            attributeName=\"fill\"\n            values={colors.join(';').toString()}\n            keyTimes=\"0;0.25;0.5;0.75;1\"\n            dur=\"1s\"\n            repeatCount=\"indefinite\"\n            begin=\"-0.4s\"\n          ></animate>\n        </rect>\n        <rect x=\"56.5\" y=\"0\" width=\"15\" height=\"100\" fill={colors[3]}>\n          <animate\n            attributeName=\"fill\"\n            values={colors.join(';').toString()}\n            keyTimes=\"0;0.25;0.5;0.75;1\"\n            dur=\"1s\"\n            repeatCount=\"indefinite\"\n            begin=\"-0.2s\"\n          ></animate>\n        </rect>\n        <rect x=\"70.5\" y=\"0\" width=\"15\" height=\"100\" fill={colors[4]}>\n          <animate\n            attributeName=\"fill\"\n            values={colors.join(';').toString()}\n            keyTimes=\"0;0.25;0.5;0.75;1\"\n            dur=\"1s\"\n            repeatCount=\"indefinite\"\n            begin=\"0s\"\n          ></animate>\n        </rect>\n      </g>\n    </svg>\n  )\n}\n","import { FunctionComponent, ReactElement, CSSProperties } from 'react'\nimport { DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the Comment loader component.\n * \n * The Comment loader shows a comment bubble with animated dots inside.\n * \n * @interface CommentProps\n */\ninterface CommentProps {\n  /** Height of the SVG (number interpreted as px). */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). */\n  width?: string | number\n  /** Primary color applied to the loader. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Accessible label announced to screen readers. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the loader.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n  backgroundColor?: string\n}\n\nexport const Comment: FunctionComponent<CommentProps> = ({\n  visible = true,\n  width = '80',\n  height = '80',\n  backgroundColor = '#ff6d00',\n  color = '#fff',\n  wrapperClass = '',\n  wrapperStyle = {},\n  ariaLabel = 'comment-loading',\n}): ReactElement | null => {\n  return !visible ? null : (\n    <svg\n      width={width}\n      height={height}\n      xmlns={SVG_NAMESPACE}\n      viewBox=\"0 0 100 100\"\n      preserveAspectRatio=\"xMidYMid\"\n      className={wrapperClass}\n      style={wrapperStyle}\n      aria-label={ariaLabel}\n      data-testid={'comment-svg'}\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <path\n        d=\"M78,19H22c-6.6,0-12,5.4-12,12v31c0,6.6,5.4,12,12,12h37.2c0.4,3,1.8,5.6,3.7,7.6c2.4,2.5,5.1,4.1,9.1,4 c-1.4-2.1-2-7.2-2-10.3c0-0.4,0-0.8,0-1.3h8c6.6,0,12-5.4,12-12V31C90,24.4,84.6,19,78,19z\"\n        fill={backgroundColor}\n      ></path>\n      <circle cx=\"30\" cy=\"47\" r=\"5\" fill={color}>\n        <animate\n          attributeName=\"opacity\"\n          calcMode=\"linear\"\n          values=\"0;1;1\"\n          keyTimes=\"0;0.2;1\"\n          dur=\"1\"\n          begin=\"0s\"\n          repeatCount=\"indefinite\"\n        ></animate>\n      </circle>\n      <circle cx=\"50\" cy=\"47\" r=\"5\" fill={color}>\n        <animate\n          attributeName=\"opacity\"\n          calcMode=\"linear\"\n          values=\"0;0;1;1\"\n          keyTimes=\"0;0.2;0.4;1\"\n          dur=\"1\"\n          begin=\"0s\"\n          repeatCount=\"indefinite\"\n        ></animate>\n      </circle>\n      <circle cx=\"70\" cy=\"47\" r=\"5\" fill={color}>\n        <animate\n          attributeName=\"opacity\"\n          calcMode=\"linear\"\n          values=\"0;0;1;1\"\n          keyTimes=\"0;0.4;0.6;1\"\n          dur=\"1\"\n          begin=\"0s\"\n          repeatCount=\"indefinite\"\n        ></animate>\n      </circle>\n    </svg>\n  )\n}\n","import { FunctionComponent, ReactElement, CSSProperties } from 'react'\nimport { DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the Blocks loader component.\n * \n * The Blocks loader displays a grid of animated square blocks that appear and disappear\n * in a wave-like pattern. The blocks fill in with color sequentially to create\n * a dynamic loading animation resembling falling tetris blocks.\n * \n * @interface BlocksProps\n */\ninterface BlocksProps {\n  /** Height of the SVG (number interpreted as px). Defaults to '80'. */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). Defaults to '80'. */\n  width?: string | number\n  /** Primary color applied to the blocks. Can be overridden by colors array. */\n  color?: string\n  /** Accessible label announced to screen readers. Defaults to 'blocks-loading'. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n}\n\nexport const Blocks: FunctionComponent<BlocksProps> = ({\n  visible = true,\n  width = '80',\n  height = '80',\n  wrapperClass = '',\n  wrapperStyle = {},\n  ariaLabel = 'blocks-loading',\n}): ReactElement | null => {\n  return !visible ? null : (\n    <svg\n      width={width}\n      height={height}\n      className={wrapperClass}\n      style={wrapperStyle}\n      xmlns={SVG_NAMESPACE}\n      viewBox=\"0 0 100 100\"\n      preserveAspectRatio=\"xMidYMid\"\n      aria-label={ariaLabel}\n      data-testid=\"blocks-svg\"\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <title>Blocks</title>\n      <desc>Animated representation of blocks</desc>\n      <rect x=\"17\" y=\"17\" width=\"20\" height=\"20\" fill=\"#577c9b\">\n        <animate\n          attributeName=\"fill\"\n          values=\"#0dceff;#577c9b;#577c9b\"\n          keyTimes=\"0;0.125;1\"\n          dur=\"1s\"\n          repeatCount=\"indefinite\"\n          begin=\"0s\"\n          calcMode=\"discrete\"\n        ></animate>\n      </rect>\n      <rect x=\"40\" y=\"17\" width=\"20\" height=\"20\" fill=\"#577c9b\">\n        <animate\n          attributeName=\"fill\"\n          values=\"#0dceff;#577c9b;#577c9b\"\n          keyTimes=\"0;0.125;1\"\n          dur=\"1s\"\n          repeatCount=\"indefinite\"\n          begin=\"0.125s\"\n          calcMode=\"discrete\"\n        ></animate>\n      </rect>\n      <rect x=\"63\" y=\"17\" width=\"20\" height=\"20\" fill=\"#577c9b\">\n        <animate\n          attributeName=\"fill\"\n          values=\"#0dceff;#577c9b;#577c9b\"\n          keyTimes=\"0;0.125;1\"\n          dur=\"1s\"\n          repeatCount=\"indefinite\"\n          begin=\"0.25s\"\n          calcMode=\"discrete\"\n        ></animate>\n      </rect>\n      <rect x=\"17\" y=\"40\" width=\"20\" height=\"20\" fill=\"#577c9b\">\n        <animate\n          attributeName=\"fill\"\n          values=\"#0dceff;#577c9b;#577c9b\"\n          keyTimes=\"0;0.125;1\"\n          dur=\"1s\"\n          repeatCount=\"indefinite\"\n          begin=\"0.875s\"\n          calcMode=\"discrete\"\n        ></animate>\n      </rect>\n      <rect x=\"63\" y=\"40\" width=\"20\" height=\"20\" fill=\"#577c9b\">\n        <animate\n          attributeName=\"fill\"\n          values=\"#0dceff;#577c9b;#577c9b\"\n          keyTimes=\"0;0.125;1\"\n          dur=\"1s\"\n          repeatCount=\"indefinite\"\n          begin=\"0.375s\"\n          calcMode=\"discrete\"\n        ></animate>\n      </rect>\n      <rect x=\"17\" y=\"63\" width=\"20\" height=\"20\" fill=\"#577c9b\">\n        <animate\n          attributeName=\"fill\"\n          values=\"#0dceff;#577c9b;#577c9b\"\n          keyTimes=\"0;0.125;1\"\n          dur=\"1s\"\n          repeatCount=\"indefinite\"\n          begin=\"0.75s\"\n          calcMode=\"discrete\"\n        ></animate>\n      </rect>\n      <rect x=\"40\" y=\"63\" width=\"20\" height=\"20\" fill=\"#577c9b\">\n        <animate\n          attributeName=\"fill\"\n          values=\"#0dceff;#577c9b;#577c9b\"\n          keyTimes=\"0;0.125;1\"\n          dur=\"1s\"\n          repeatCount=\"indefinite\"\n          begin=\"0.625s\"\n          calcMode=\"discrete\"\n        ></animate>\n      </rect>\n      <rect x=\"63\" y=\"63\" width=\"20\" height=\"20\" fill=\"#577c9b\">\n        <animate\n          attributeName=\"fill\"\n          values=\"#0dceff;#577c9b;#577c9b\"\n          keyTimes=\"0;0.125;1\"\n          dur=\"1s\"\n          repeatCount=\"indefinite\"\n          begin=\"0.5s\"\n          calcMode=\"discrete\"\n        ></animate>\n      </rect>\n    </svg>\n  )\n}\n","import { FunctionComponent, ReactElement, CSSProperties } from 'react'\nimport { DEFAULT_COLOR, DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\nimport { SvgWrapper } from '../shared/svg-wrapper'\nimport { SVG_NAMESPACE } from '../shared/constants'\n\n/**\n * Props for the CircularProgress loader component.\n * \n * The CircularProgress loader displays a circular progress indicator with customizable\n * stroke width and colors. Features a main circle with optional secondary background circle,\n * animated rotation, and configurable animation duration.\n * \n * @interface CircularProgressProps\n */\ninterface CircularProgressProps {\n  /** Height of the SVG (number interpreted as px). Defaults to '100'. */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). Defaults to '100'. */\n  width?: string | number\n  /** Primary color applied to the progress circle. Defaults to DEFAULT_COLOR. */\n  color?: string\n  /** Stroke width of the progress circle. Affects the thickness of the circular line. */\n  strokeWidth?: string | number\n  /** Color of the background/secondary circle. Optional background indicator. */\n  secondaryColor?: string\n  /** Duration of the rotation animation in seconds. Controls animation speed. */\n  animationDuration?: string | number\n  /** Accessible label announced to screen readers. Defaults to 'circular-progress-loading'. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n  /** \n   * Provide multiple colors to render a gradient instead of a solid color.\n   * When 2 or more colors are supplied a gradient will be applied to the progress circle.\n   */\n  colors?: string[]\n  /** Type of gradient (linear or radial). Defaults to linear. */\n  gradientType?: 'linear' | 'radial'\n  /** Angle (in degrees) applied via rotate() transform for linear gradients. */\n  gradientAngle?: number\n}\n\nexport const CircularProgress: FunctionComponent<CircularProgressProps> = ({\n  height = '100',\n  width = '100',\n  color = DEFAULT_COLOR,\n  secondaryColor,\n  ariaLabel = 'circular-progress-loading',\n  wrapperStyle = {},\n  wrapperClass,\n  visible = true,\n  strokeWidth = 2,\n  animationDuration = 1,\n}): ReactElement => (\n  <SvgWrapper\n    $visible={visible}\n    style={{ ...wrapperStyle }}\n    className={wrapperClass}\n    data-testid=\"circular-progress-loading\"\n    aria-label={ariaLabel}\n    {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n  >\n    <svg\n      height={`${height}`}\n      width={`${width}`}\n      fill=\"none\"\n      viewBox=\"0 0 16 16\"\n      xmlns={SVG_NAMESPACE}\n      data-testid=\"circular-progress-svg\"\n      style={{\n        animation: `spin ${animationDuration}s linear infinite`,\n      }}\n    >\n      <title>Circular Progress</title>\n      <desc>Animated circular progress indicator</desc>\n      <style>\n        {`\n          @keyframes spin {\n            from { transform: rotate(0deg); }\n            to { transform: rotate(360deg); }\n          }\n        `}\n      </style>\n      {/* Background circle with opacity */}\n      <path\n        fill=\"none\"\n        stroke={secondaryColor || color}\n        strokeWidth={strokeWidth}\n        d=\"M3.05 3.05a7 7 0 1 1 9.9 9.9 7 7 0 0 1-9.9-9.9Z\"\n        opacity=\"0.5\"\n      />\n      {/* Inner filled circle */}\n      <path\n        fill={color}\n        fillRule=\"evenodd\"\n        d=\"M8 4a4 4 0 1 0 0 8 4 4 0 0 0 0-8Z\"\n        clipRule=\"evenodd\"\n      />\n      {/* Progress arc */}\n      <path\n        fill={color}\n        d=\"M14 8a6 6 0 0 0-6-6V0a8 8 0 0 1 8 8h-2Z\"\n      />\n    </svg>\n  </SvgWrapper>\n)","import { FunctionComponent, CSSProperties } from 'react'\nimport { DEFAULT_WAI_ARIA_ATTRIBUTE } from '../type'\n\n/**\n * Props for the Hourglass loader component.\n * \n * The Hourglass loader displays a classic hourglass animation with sand\n * flowing from the top chamber to the bottom chamber. Features two\n * customizable colors for the gradient effect.\n * \n * @interface HourglassProps\n */\ninterface HourglassProps {\n  /** Height of the SVG (number interpreted as px). Defaults to '80'. */\n  height?: string | number\n  /** Width of the SVG (number interpreted as px). Defaults to '80'. */\n  width?: string | number\n  /** Array of two colors for the hourglass gradient. Defaults to ['#306cce', '#72a1ed']. */\n  colors?: [string, string]\n  /** Accessible label announced to screen readers. Defaults to 'hourglass-loading'. */\n  ariaLabel?: string\n  /** Inline style object applied to the wrapper element. */\n  wrapperStyle?: CSSProperties\n  /** CSS class applied to the wrapper for custom styling. */\n  wrapperClass?: string\n  /** When false, the loader is not rendered. Defaults to true. */\n  visible?: boolean\n}\n\nexport const Hourglass: FunctionComponent<HourglassProps> = ({\n  visible = true,\n  width = '80',\n  height = '80',\n  wrapperClass = '',\n  wrapperStyle = {},\n  ariaLabel = 'hourglass-loading',\n  colors = ['#306cce', '#72a1ed'],\n}) => {\n  return !visible ? null : (\n    <svg\n      width={width}\n      height={height}\n      xmlns=\"http://www.w3.org/2000/svg\"\n      viewBox=\"0 0 350 350\"\n      preserveAspectRatio=\"xMidYMid\"\n      className={wrapperClass}\n      style={wrapperStyle}\n      aria-label={ariaLabel}\n      data-testid=\"hourglass-svg\"\n      {...DEFAULT_WAI_ARIA_ATTRIBUTE}\n    >\n      <animateTransform\n        attributeName=\"transform\"\n        type=\"rotate\"\n        values=\"0; 0; -30; 360; 360\"\n        keyTimes=\"0; 0.40; 0.55; 0.65; 1\"\n        dur=\"3s\"\n        begin=\"0s\"\n        calcMode=\"linear\"\n        repeatCount=\"indefinite\"\n      ></animateTransform>\n\n      <g>\n        <path\n          fill={colors[0]}\n          stroke={colors[0]}\n          d=\"M324.658,20.572v-2.938C324.658,7.935,316.724,0,307.025,0H40.313c-9.699,0-17.635,7.935-17.635,17.634v2.938\n\t\t\t\tc0,9.699,7.935,17.634,17.635,17.634h6.814c3.5,0,3.223,3.267,3.223,4.937c0,19.588,8.031,42.231,14.186,56.698\n\t\t\t\tc12.344,29.012,40.447,52.813,63.516,69.619c4.211,3.068,3.201,5.916,0.756,7.875c-22.375,17.924-51.793,40.832-64.271,70.16\n\t\t\t\tc-6.059,14.239-13.934,36.4-14.18,55.772c-0.025,1.987,0.771,5.862-3.979,5.862h-6.064c-9.699,0-17.635,7.936-17.635,17.634v2.94\n\t\t\t\tc0,9.698,7.935,17.634,17.635,17.634h266.713c9.699,0,17.633-7.936,17.633-17.634v-2.94c0-9.698-7.934-17.634-17.633-17.634\n\t\t\t\th-3.816c-7,0-6.326-5.241-6.254-7.958c0.488-18.094-4.832-38.673-12.617-54.135c-17.318-34.389-44.629-56.261-61.449-68.915\n\t\t\t\tc-3.65-2.745-4.018-6.143,0-8.906c17.342-11.929,44.131-34.526,61.449-68.916c8.289-16.464,13.785-38.732,12.447-57.621\n\t\t\t\tc-0.105-1.514-0.211-4.472,3.758-4.472h6.482C316.725,38.206,324.658,30.272,324.658,20.572z M270.271,93.216\n\t\t\t\tc-16.113,31.998-41.967,54.881-64.455,68.67c-1.354,0.831-3.936,2.881-3.936,8.602v6.838c0,6.066,2.752,7.397,4.199,8.286\n\t\t\t\tc22.486,13.806,48.143,36.636,64.191,68.508c7.414,14.727,11.266,32.532,10.885,46.702c-0.078,2.947,1.053,8.308-6.613,8.308\n\t\t\t\tH72.627c-6.75,0-6.475-3.37-6.459-5.213c0.117-12.895,4.563-30.757,12.859-50.255c14.404-33.854,44.629-54.988,64.75-67.577\n\t\t\t\tc0.896-0.561,2.629-1.567,2.629-6.922v-10.236c0-5.534-2.656-7.688-4.057-8.57c-20.098-12.688-49.256-33.618-63.322-66.681\n\t\t\t\tc-8.383-19.702-12.834-37.732-12.861-50.657c-0.002-1.694,0.211-4.812,3.961-4.812h206.582c4.168,0,4.127,3.15,4.264,4.829\n\t\t\t\tC282.156,57.681,278.307,77.257,270.271,93.216z\"\n        />\n\n        <g>\n          <path\n            fill={colors[1]}\n            stroke={colors[1]}\n            d=\"M169.541,196.2l-68.748,86.03c-2.27,2.842-1.152,5.166,2.484,5.166h140.781c3.637,0,4.756-2.324,2.484-5.166\n\t\t\t\tl-68.746-86.03C175.525,193.358,171.811,193.358,169.541,196.2z\"\n          ></path>\n\n          <animate\n            attributeName=\"opacity\"\n            values=\"0; 0; 1; 1; 0; 0\"\n            keyTimes=\"0; 0.1; 0.4; 0.6; 0.61; 1\"\n            dur=\"3s\"\n            repeatCount=\"indefinite\"\n          />\n        </g>\n\n        <g>\n          <path\n            fill={colors[1]}\n            stroke={colors[1]}\n            d=\"M168.986,156.219c2.576,2.568,6.789,2.568,9.363,0l34.576-34.489c2.574-2.568,1.707-4.67-1.932-4.67H136.34\n\t\t\t\tc-3.637,0-4.506,2.102-1.932,4.67L168.986,156.219z\"\n          ></path>\n\n          <animate\n            attributeName=\"opacity\"\n            values=\"1; 1; 0; 0; 1; 1\"\n            keyTimes=\"0; 0.1; 0.4; 0.65; 0.66; 1\"\n            dur=\"3s\"\n            repeatCount=\"indefinite\"\n          />\n        </g>\n      </g>\n    </svg>\n  )\n}\n"]}