{"version":3,"sources":["../src/type.ts","../src/shared/constants.ts","../src/loader/falling-lines.tsx"],"names":["DEFAULT_COLOR","DEFAULT_WAI_ARIA_ATTRIBUTE","SVG_NAMESPACE","FallingLines","color","width","visible","jsxs","jsx"],"mappings":"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","file":"falling-lines.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","export const SVG_NAMESPACE = 'http://www.w3.org/2000/svg'\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"]}