{"version":3,"file":"index.cjs","sources":["../lib/new-tab.js","../lib/helper.js","../lib/values.js","../lib/button.js"],"sourcesContent":["import React from \"react\"\n\nexport const NewTab = () => (\n  <svg\n    height=\"16\"\n    width=\"16\"\n    fill=\"none\"\n    viewBox=\"0 0 16 16\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    data-testid=\"new-tab-icon\"\n  >\n    <path\n      d=\"M2.77772 13.2222L2.77772 2.55556L8.04509 2.55556C8.28084 2.55556 8.50693 2.46191 8.67363 2.29521C9.23116 1.73767 8.84043 0.786085 8.05538 0.777832H1.88889C1.4 0.777832 1 1.17783 1 1.66672V14.1112C1 14.3585 1.10235 14.583 1.26677 14.7446C1.4274 14.9023 1.64727 15 1.88883 15L14.3333 15C14.8222 15 15.2222 14.6 15.2222 14.1111V7.94459C15.2139 7.15956 14.2623 6.76884 13.7048 7.32637C13.5381 7.49307 13.4444 7.71916 13.4444 7.95491V13.2223H2.77778V13.2222H2.77772Z\"\n      fill=\"currentColor\"\n      fillRule=\"evenodd\"\n    />\n    <path\n      d=\"M15.1023 0H11.5467C11.0578 0 10.6578 0.39975 10.6578 0.888334C10.6578 1.37692 11.0578 1.77667 11.5467 1.77667H12.9601L10.0356 4.69929C9.87561 4.85919 9.77783 5.08127 9.77783 5.33C9.77783 5.81859 10.1778 6.21834 10.6667 6.21834C10.9156 6.21834 11.1378 6.12062 11.2978 5.96072L14.2223 3.0381V4.45055C14.2223 4.93914 14.6223 5.33889 15.1112 5.33889C15.6001 5.33889 16.0001 4.93914 16.0001 4.45055V0.897217C15.9912 0.39975 15.5912 0 15.1023 0Z\"\n      fill=\"currentColor\"\n      fillRule=\"evenodd\"\n    />\n  </svg>\n)\nNewTab.iconName = \"NewTab\"\n","/**\n * Deduces size for svg\n * @param {Object} sizeObj\n * @param {String} size\n * @returns {String}\n */\nexport const svgSize = (sizeObj, size) => {\n  switch (size) {\n    case \"xs\":\n      return sizeObj.xs\n    case \"s\":\n      return sizeObj.sm\n    case \"m\":\n      return sizeObj.md\n    case \"l\":\n      return sizeObj.lg\n    default:\n      return sizeObj.md\n  }\n}\n\n/**\n * Determines if a link opens in a new tab (or window)\n *\n * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types/noopener\n *\n * @param {string} target target attribute\n * @returns {boolean}\n */\nexport const opensInNewTab = (target) =>\n  target && !(target === \"_self\" || target === \"_top\" || target === \"_parent\")\n\n/**\n * Returns `rel` attribute if link opens in a new tab\n * to avoid [security and privacy risks](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#security_and_privacy)\n *\n * @param {string} target target attribute\n * @returns {Object}\n */\nexport const getRelAttributes = (target) =>\n  opensInNewTab(target) ? { rel: \"noreferrer\" } : {}\n\n/**\n * Gives supported size, defaults to 'm'\n * @param {string} size\n * @returns {string}\n */\nexport const resolveSizeProp = (size) => {\n  const supportedSizes = [\"xs\", \"s\", \"m\", \"l\"]\n  return supportedSizes.includes(size) ? size : \"m\"\n}\n","/**\n * size values\n */\nexport const sizes = { xs: \"xs\", s: \"s\", m: \"m\", l: \"l\" }\n\nexport const qualifierSVGSizes = {\n  xs: { height: \"12\", width: \"12\" },\n  sm: { height: \"14\", width: \"14\" },\n  md: { height: \"16\", width: \"16\" },\n  lg: { height: \"16\", width: \"16\" },\n}\n\nexport const iconSVGSizes = {\n  xs: { height: \"12\", width: \"12\" },\n  sm: { height: \"14\", width: \"14\" },\n  md: { height: \"16\", width: \"16\" },\n  lg: { height: \"18\", width: \"18\" },\n}\n","import React, { forwardRef } from \"react\"\nimport PropTypes from \"prop-types\"\nimport cn from \"classnames\"\n\nimport { SvgNormalizer } from \"@asphalt-react/svg-normalizer\"\nimport { svgUtil, propsUtil } from \"@asphalt-react/helper\"\nimport { Qualifier } from \"@asphalt-react/qualifier\"\n\nimport { NewTab } from \"./new-tab.js\"\nimport {\n  svgSize,\n  opensInNewTab,\n  getRelAttributes,\n  resolveSizeProp,\n} from \"./helper.js\"\nimport { qualifierSVGSizes, iconSVGSizes } from \"./values.js\"\n\nimport styles from \"./button.module.css\"\n\nconst { isSVG } = svgUtil\nconst { concatClasses, resolvePropCollision } = propsUtil\n\nexport const Button = forwardRef(\n  (\n    {\n      children,\n      size = \"m\",\n      primary = false,\n      secondary = false,\n      tertiary = false,\n      nude = false,\n      brand = false,\n      danger = false,\n      system = false,\n      qualifier = null,\n      qualifierEnd = false,\n      stretch = false,\n      icon = false,\n      compact = false,\n      link = false,\n      as: Link = \"a\",\n      asProps = { href: \".\" },\n      stickStart = false,\n      stickEnd = false,\n      stick = false,\n      underline = true,\n      ...props\n    },\n    ref\n  ) => {\n    const { collision: variantCollision, value: variant } =\n      resolvePropCollision(\n        {\n          primary,\n          secondary,\n          tertiary,\n          nude,\n        },\n        \"primary\"\n      )\n\n    if (variantCollision) {\n      console.warn(\n        `Button: Multiple variants detected, falling back to \"primary\"`\n      )\n    }\n\n    const { collision: intentCollision, value: intent } = resolvePropCollision(\n      {\n        brand,\n        danger,\n        system,\n      },\n      \"brand\"\n    )\n\n    if (intentCollision) {\n      console.warn(`Button: Multiple intents detected, falling back to \"brand\"`)\n    }\n\n    /* eslint-disable-next-line react/prop-types */\n    const { style, className, ...rest } = props\n\n    const isCompactIcon = icon && compact\n    const isCompactButton = !icon && compact\n    const resolvedSize = resolveSizeProp(size)\n\n    const compactIconClass = cn(\n      styles.compactIcon,\n      styles[`${concatClasses(\"compact\", \"icon\", resolvedSize)}`]\n    )\n\n    const compactClass = cn(styles[`${concatClasses(\"compact\", resolvedSize)}`])\n\n    const btnClasses = cn(\n      styles.Button,\n      styles[variant],\n      styles[`${concatClasses(variant, intent)}`],\n      { [styles[`${concatClasses(\"button\", resolvedSize)}`]]: !icon },\n      { [styles[`${concatClasses(\"icon\", resolvedSize)}`]]: icon },\n      {\n        [compactIconClass]: isCompactIcon,\n        [compactClass]: isCompactButton,\n      },\n      { [styles.link]: link },\n      { [styles.stretch]: stretch },\n      { [styles.stickStart]: stickStart },\n      { [styles.stickEnd]: stickEnd },\n      { [styles[`${concatClasses(\"stick\", variant)}`]]: stick },\n      { [styles.noUnderline]: link && !underline }\n    )\n\n    /**\n     * Add NewTab icon as default to hint that the link opens in a new tab (or window)\n     */\n    if (link && opensInNewTab(asProps?.target) && !qualifier) {\n      qualifier = <NewTab />\n    }\n\n    const getQualifier = () => (\n      <span\n        data-testid=\"qualifier\"\n        className={cn(\n          styles.qualifier,\n          qualifierEnd ? styles.qualifierEnd : styles.qualifierStart\n        )}\n      >\n        <div className={styles.qualifierWrapper}>\n          <Qualifier iconSize={svgSize(qualifierSVGSizes, size)}>\n            {qualifier}\n          </Qualifier>\n        </div>\n      </span>\n    )\n\n    const getIcon = () => {\n      if (icon && !isSVG(children)) {\n        console.warn(\"Icon can only be SVG\")\n        children = \"\"\n      }\n\n      return (\n        <div className={styles.iconWrapper}>\n          <SvgNormalizer dimension={svgSize(iconSVGSizes, size)}>\n            {children}\n          </SvgNormalizer>\n        </div>\n      )\n    }\n\n    const getQualifierWithChildren = () => {\n      return (\n        <>\n          {qualifier && !qualifierEnd && getQualifier()}\n          {children}\n          {qualifier && qualifierEnd && getQualifier()}\n        </>\n      )\n    }\n\n    if (link) {\n      const { style, ...restAsProps } = asProps || {}\n\n      /* eslint-disable-next-line react/prop-types */\n      if (props.disabled) {\n        console.warn(\"Button: LinkButton can not be disabled\")\n      }\n\n      return (\n        <Link\n          {...getRelAttributes(asProps?.target)}\n          {...restAsProps}\n          className={btnClasses}\n          ref={ref}\n        >\n          {icon ? getIcon() : getQualifierWithChildren()}\n        </Link>\n      )\n    }\n\n    if (icon) {\n      return (\n        <button type=\"button\" {...rest} className={btnClasses} ref={ref}>\n          {getIcon()}\n        </button>\n      )\n    }\n\n    return (\n      <button type=\"button\" {...rest} className={btnClasses} ref={ref}>\n        {getQualifierWithChildren()}\n      </button>\n    )\n  }\n)\n\nButton.displayName = \"Button\"\n\nButton.propTypes = {\n  /**\n   * React node for button's caption\n   */\n  children: PropTypes.node.isRequired,\n  /**\n   * Renders a primary variant\n   */\n  primary: PropTypes.bool,\n  /**\n   * Renders a secondary variant\n   */\n  secondary: PropTypes.bool,\n  /**\n   * Renders a tertiary variant\n   */\n  tertiary: PropTypes.bool,\n  /**\n   * Renders a nude variant\n   */\n  nude: PropTypes.bool,\n  /**\n   * Renders brand intent\n   */\n  brand: PropTypes.bool,\n  /**\n   * Renders danger intent\n   */\n  danger: PropTypes.bool,\n  /**\n   * Renders system intent\n   */\n  system: PropTypes.bool,\n  /**\n   * Renders a link button\n   */\n  link: PropTypes.bool,\n  /**\n   * Link element to render. Accepts an HTML element or a React component.\n   */\n  as: PropTypes.elementType,\n  /**\n   * Accepts props & attributes for the link element.\n   */\n  asProps: PropTypes.object,\n  /**\n   * Renders an icon button\n   */\n  icon: PropTypes.bool,\n  /**\n   * Shrinks the size of the Button keeping the size of the contents intact. Useful for use-cases with space-constraints.\n   */\n  compact: PropTypes.bool,\n  /**\n   * Qualifier is an icon or a word that enhances the caption. Button prepends the qualifier by default. Accepts SVG for icons. Checkout `@asphalt-react/iconpack` for SVG wrapped React components.\n   *\n   * > ⚠️ Do not use `qualifier` to render an icon button, use `icon` prop instead\n   */\n  qualifier: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n  /**\n   * Appends qualifier to the caption\n   */\n  qualifierEnd: PropTypes.bool,\n  /**\n   * Controls size of button. Possible values are \"xs\", \"s\", \"m\", \"l\" for extra small, small, medium & large respectively\n   */\n  size: PropTypes.oneOf([\"xs\", \"s\", \"m\", \"l\"]),\n  /**\n   * Stretches Button to take it's container width\n   */\n  stretch: PropTypes.bool,\n  /**\n   * Adapts to let other buttons stick to its start\n   */\n  stickStart: PropTypes.bool,\n  /**\n   * Adapts to let other buttons stick to its end\n   */\n  stickEnd: PropTypes.bool,\n  /**\n   * Enhances the style of the supporting button.\n   */\n  stick: PropTypes.bool,\n  /**\n   * Adds underline in link Button\n   */\n  underline: PropTypes.bool,\n}\n\nButton.defaultProps = {\n  size: \"m\",\n  stretch: false,\n  primary: false,\n  secondary: false,\n  tertiary: false,\n  nude: false,\n  brand: false,\n  danger: false,\n  system: false,\n  qualifier: null,\n  qualifierEnd: false,\n  icon: false,\n  compact: false,\n  link: false,\n  as: \"a\",\n  asProps: { href: \".\" },\n  stickEnd: false,\n  stickStart: false,\n  stick: false,\n  underline: true,\n}\n"],"names":["NewTab","React","createElement","height","width","fill","viewBox","xmlns","d","fillRule","iconName","svgSize","sizeObj","size","xs","sm","md","lg","opensInNewTab","target","getRelAttributes","rel","resolveSizeProp","supportedSizes","includes","qualifierSVGSizes","iconSVGSizes","isSVG","svgUtil","concatClasses","resolvePropCollision","propsUtil","Button","forwardRef","children","primary","secondary","tertiary","nude","brand","danger","system","qualifier","qualifierEnd","stretch","icon","compact","link","as","Link","asProps","href","stickStart","stickEnd","stick","underline","props","ref","collision","variantCollision","value","variant","console","warn","intentCollision","intent","style","className","rest","isCompactIcon","isCompactButton","resolvedSize","compactIconClass","cn","styles","compactIcon","compactClass","btnClasses","noUnderline","getQualifier","qualifierStart","qualifierWrapper","Qualifier","iconSize","getIcon","iconWrapper","SvgNormalizer","dimension","getQualifierWithChildren","Fragment","restAsProps","disabled","_extends","type","displayName","propTypes","PropTypes","node","isRequired","bool","elementType","object","oneOfType","element","string","oneOf","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;AAEO,MAAMA,MAAM,CAAGA,IACpBC,KAAA,CAAAC,aAAA,CAAA,KAAA,CAAA,CACEC,MAAM,CAAC,IAAI,CACXC,KAAK,CAAC,IAAI,CACVC,IAAI,CAAC,MAAM,CACXC,OAAO,CAAC,WAAW,CACnBC,KAAK,CAAC,4BAA4B,CAClC,aAAA,CAAY,cAAc,CAAA,CAE1BN,KAAA,CAAAC,aAAA,SACEM,CAAC,CAAC,+cAA+c,CACjdH,IAAI,CAAC,cAAc,CACnBI,QAAQ,CAAC,SAAS,CACnB,CAAC,CACFR,KAAA,CAAAC,aAAA,CAAA,MAAA,CAAA,CACEM,CAAC,CAAC,ybAAyb,CAC3bH,IAAI,CAAC,cAAc,CACnBI,QAAQ,CAAC,SAAS,CACnB,CACE,CACN,CACDT,MAAM,CAACU,QAAQ,CAAG,QAAQ;;ACjBnB,MAAMC,OAAO,CAAGA,CAACC,OAAO,CAAEC,IAAI,GAAK,CACxC,OAAQA,IAAI,EACV,KAAK,IAAI,CACP,OAAOD,OAAO,CAACE,EAAE,CACnB,KAAK,GAAG,CACN,OAAOF,OAAO,CAACG,EAAE,CACnB,KAAK,GAAG,CACN,OAAOH,OAAO,CAACI,EAAE,CACnB,KAAK,GAAG,CACN,OAAOJ,OAAO,CAACK,EAAE,CACnB,QACE,OAAOL,OAAO,CAACI,EACnB,CACF,CAAC,CAUM,MAAME,aAAa,CAAIC,MAAM,EAClCA,MAAM,EAAI,EAAEA,MAAM,GAAK,OAAO,EAAIA,MAAM,GAAK,MAAM,EAAIA,MAAM,GAAK,SAAS,CAAC,OASjEC,gBAAgB,CAAID,MAAM,EACrCD,aAAa,CAACC,MAAM,CAAC,CAAG,CAAEE,GAAG,CAAE,YAAa,CAAC,CAAG,EAAE,CAO7C,MAAMC,eAAe,CAAIT,IAAI,EAAK,CACvC,MAAMU,cAAc,CAAG,CAAC,IAAI,CAAE,GAAG,CAAE,GAAG,CAAE,GAAG,CAAC,CAC5C,OAAOA,cAAc,CAACC,QAAQ,CAACX,IAAI,CAAC,CAAGA,IAAI,CAAG,GAChD,CAAC;;AC7CM,MAAMY,iBAAiB,CAAG,CAC/BX,EAAE,CAAE,CAAEX,MAAM,CAAE,IAAI,CAAEC,KAAK,CAAE,IAAK,CAAC,CACjCW,EAAE,CAAE,CAAEZ,MAAM,CAAE,IAAI,CAAEC,KAAK,CAAE,IAAK,CAAC,CACjCY,EAAE,CAAE,CAAEb,MAAM,CAAE,IAAI,CAAEC,KAAK,CAAE,IAAK,CAAC,CACjCa,EAAE,CAAE,CAAEd,MAAM,CAAE,IAAI,CAAEC,KAAK,CAAE,IAAK,CAClC,CAAC,CAEM,MAAMsB,YAAY,CAAG,CAC1BZ,EAAE,CAAE,CAAEX,MAAM,CAAE,IAAI,CAAEC,KAAK,CAAE,IAAK,CAAC,CACjCW,EAAE,CAAE,CAAEZ,MAAM,CAAE,IAAI,CAAEC,KAAK,CAAE,IAAK,CAAC,CACjCY,EAAE,CAAE,CAAEb,MAAM,CAAE,IAAI,CAAEC,KAAK,CAAE,IAAK,CAAC,CACjCa,EAAE,CAAE,CAAEd,MAAM,CAAE,IAAI,CAAEC,KAAK,CAAE,IAAK,CAClC,CAAC;;;;ACED,KAAM,CAAEuB,KAAM,CAAC,CAAGC,cAAO,CACzB,KAAM,CAAEC,aAAa,CAAEC,oBAAqB,CAAC,CAAGC,gBAAS,CAE5C,MAAAC,MAAM,CAAGC,gBAAU,CAC9B,CACE,CACEC,QAAQ,CACRrB,IAAI,CAAG,GAAG,CACVsB,OAAO,CAAG,KAAK,CACfC,SAAS,CAAG,KAAK,CACjBC,QAAQ,CAAG,KAAK,CAChBC,IAAI,CAAG,KAAK,CACZC,KAAK,CAAG,KAAK,CACbC,MAAM,CAAG,KAAK,CACdC,MAAM,CAAG,KAAK,YACdC,WAAS,CAAG,IAAI,CAChBC,YAAY,CAAG,KAAK,CACpBC,OAAO,CAAG,KAAK,CACfC,IAAI,CAAG,KAAK,CACZC,OAAO,CAAG,KAAK,CACfC,IAAI,CAAG,KAAK,CACZC,EAAE,CAAEC,IAAI,CAAG,GAAG,CACdC,OAAO,CAAG,CAAEC,IAAI,CAAE,GAAI,CAAC,CACvBC,UAAU,CAAG,KAAK,CAClBC,QAAQ,CAAG,KAAK,CAChBC,KAAK,CAAG,KAAK,CACbC,SAAS,CAAG,IAAI,CAChB,GAAGC,KACL,CAAC,CACDC,GAAG,GACA,CACH,KAAM,CAAEC,SAAS,CAAEC,gBAAgB,CAAEC,KAAK,CAAEC,OAAQ,CAAC,CACnD/B,oBAAoB,CAClB,CACEK,OAAO,CACPC,SAAS,CACTC,QAAQ,CACRC,IACF,CAAC,CACD,SACF,CAAC,CAEH,GAAIqB,gBAAgB,CAAE,CACpBG,OAAO,CAACC,IAAI,CACV,CAAA,6DAAA,CACF,EACF,CAEA,KAAM,CAAEL,SAAS,CAAEM,eAAe,CAAEJ,KAAK,CAAEK,MAAO,CAAC,CAAGnC,oBAAoB,CACxE,CACES,KAAK,CACLC,MAAM,CACNC,MACF,CAAC,CACD,OACF,CAAC,CAED,GAAIuB,eAAe,CAAE,CACnBF,OAAO,CAACC,IAAI,CAAC,CAAA,0DAAA,CAA4D,EAC3E,CAGA,KAAM,CAAEG,KAAK,CAAEC,SAAS,CAAE,GAAGC,IAAK,CAAC,CAAGZ,KAAK,CAE3C,MAAMa,aAAa,CAAGxB,IAAI,EAAIC,OAAO,CACrC,MAAMwB,eAAe,CAAG,CAACzB,IAAI,EAAIC,OAAO,CACxC,MAAMyB,YAAY,CAAGjD,eAAe,CAACT,IAAI,CAAC,CAE1C,MAAM2D,gBAAgB,CAAGC,EAAE,CACzBC,MAAM,CAACC,WAAW,CAClBD,MAAM,CAAC,CAAA,EAAG7C,aAAa,CAAC,SAAS,CAAE,MAAM,CAAE0C,YAAY,CAAC,CAAA,CAAE,CAC5D,CAAC,CAED,MAAMK,YAAY,CAAGH,EAAE,CAACC,MAAM,CAAC,CAAA,EAAG7C,aAAa,CAAC,SAAS,CAAE0C,YAAY,CAAC,CAAA,CAAE,CAAC,CAAC,CAE5E,MAAMM,UAAU,CAAGJ,EAAE,CACnBC,MAAM,CAAC1C,MAAM,CACb0C,MAAM,CAACb,OAAO,CAAC,CACfa,MAAM,CAAC,CAAA,EAAG7C,aAAa,CAACgC,OAAO,CAAEI,MAAM,CAAC,CAAA,CAAE,CAAC,CAC3C,CAAE,CAACS,MAAM,CAAC,CAAA,EAAG7C,aAAa,CAAC,QAAQ,CAAE0C,YAAY,CAAC,CAAA,CAAE,CAAC,EAAG,CAAC1B,IAAK,CAAC,CAC/D,CAAE,CAAC6B,MAAM,CAAC,CAAA,EAAG7C,aAAa,CAAC,MAAM,CAAE0C,YAAY,CAAC,CAAA,CAAE,CAAC,EAAG1B,IAAK,CAAC,CAC5D,CACE,CAAC2B,gBAAgB,EAAGH,aAAa,CACjC,CAACO,YAAY,EAAGN,eAClB,CAAC,CACD,CAAE,CAACI,MAAM,CAAC3B,IAAI,EAAGA,IAAK,CAAC,CACvB,CAAE,CAAC2B,MAAM,CAAC9B,OAAO,EAAGA,OAAQ,CAAC,CAC7B,CAAE,CAAC8B,MAAM,CAACtB,UAAU,EAAGA,UAAW,CAAC,CACnC,CAAE,CAACsB,MAAM,CAACrB,QAAQ,EAAGA,QAAS,CAAC,CAC/B,CAAE,CAACqB,MAAM,CAAC,CAAA,EAAG7C,aAAa,CAAC,OAAO,CAAEgC,OAAO,CAAC,CAAA,CAAE,CAAC,EAAGP,KAAM,CAAC,CACzD,CAAE,CAACoB,MAAM,CAACI,WAAW,EAAG/B,IAAI,EAAI,CAACQ,SAAU,CAC7C,CAAC,CAKD,GAAIR,IAAI,EAAI7B,aAAa,CAACgC,OAAO,EAAE/B,MAAM,CAAC,EAAI,CAACuB,WAAS,CAAE,CACxDA,WAAS,CAAGzC,KAAA,CAAAC,aAAA,CAACF,MAAM,CAAA,IAAE,EACvB,CAEA,MAAM+E,YAAY,CAAGA,IACnB9E,KAAA,CAAAC,aAAA,CAAA,MAAA,CAAA,CACE,aAAA,CAAY,WAAW,CACvBiE,SAAS,CAAEM,EAAE,CACXC,MAAM,CAAChC,SAAS,CAChBC,YAAY,CAAG+B,MAAM,CAAC/B,YAAY,CAAG+B,MAAM,CAACM,cAC9C,CAAE,CAAA,CAEF/E,KAAA,CAAAC,aAAA,CAAA,KAAA,CAAA,CAAKiE,SAAS,CAAEO,MAAM,CAACO,gBAAiB,CAAA,CACtChF,KAAA,CAAAC,aAAA,CAACgF,mBAAS,CAAA,CAACC,QAAQ,CAAExE,OAAO,CAACc,iBAAiB,CAAEZ,IAAI,CAAE,CAAA,CACnD6B,WACQ,CACR,CACD,CACP,CAED,MAAM0C,OAAO,CAAGA,IAAM,CACpB,GAAIvC,IAAI,EAAI,CAAClB,KAAK,CAACO,QAAQ,CAAC,CAAE,CAC5B4B,OAAO,CAACC,IAAI,CAAC,sBAAsB,CAAC,CACpC7B,QAAQ,CAAG,GACb,CAEA,OACEjC,KAAA,CAAAC,aAAA,CAAA,KAAA,CAAA,CAAKiE,SAAS,CAAEO,MAAM,CAACW,WAAY,CAAA,CACjCpF,KAAA,CAAAC,aAAA,CAACoF,2BAAa,CAAA,CAACC,SAAS,CAAE5E,OAAO,CAACe,YAAY,CAAEb,IAAI,CAAE,CAAA,CACnDqB,QACY,CACZ,CAET,CAAC,CAED,MAAMsD,wBAAwB,CAAGA,IAAM,CACrC,OACEvF,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAwF,QAAA,CAAA,IAAA,CACG/C,WAAS,EAAI,CAACC,YAAY,EAAIoC,YAAY,EAAE,CAC5C7C,QAAQ,CACRQ,WAAS,EAAIC,YAAY,EAAIoC,YAAY,EAC1C,CAEN,CAAC,CAED,GAAIhC,IAAI,CAAE,CACR,KAAM,CAAEmB,KAAK,CAAE,GAAGwB,WAAY,CAAC,CAAGxC,OAAO,EAAI,EAAE,CAG/C,GAAIM,KAAK,CAACmC,QAAQ,CAAE,CAClB7B,OAAO,CAACC,IAAI,CAAC,wCAAwC,EACvD,CAEA,OACE9D,KAAA,CAAAC,aAAA,CAAC+C,IAAI,CAAA2C,QAAA,CAAA,EAAA,CACCxE,gBAAgB,CAAC8B,OAAO,EAAE/B,MAAM,CAAC,CACjCuE,WAAW,CAAA,CACfvB,SAAS,CAAEU,UAAW,CACtBpB,GAAG,CAAEA,GAAI,CAAA,CAAA,CAERZ,IAAI,CAAGuC,OAAO,EAAE,CAAGI,wBAAwB,EACxC,CAEV,CAEA,GAAI3C,IAAI,CAAE,CACR,OACE5C,KAAA,CAAAC,aAAA,CAAA,QAAA,CAAA0F,QAAA,CAAA,CAAQC,IAAI,CAAC,QAAQ,CAAA,CAAKzB,IAAI,CAAA,CAAED,SAAS,CAAEU,UAAW,CAACpB,GAAG,CAAEA,GAAI,CAAA,CAAA,CAC7D2B,OAAO,EACF,CAEZ,CAEA,OACEnF,KAAA,CAAAC,aAAA,CAAA,QAAA,CAAA0F,QAAA,CAAA,CAAQC,IAAI,CAAC,QAAQ,CAAA,CAAKzB,IAAI,CAAA,CAAED,SAAS,CAAEU,UAAW,CAACpB,GAAG,CAAEA,GAAI,CAAA,CAAA,CAC7D+B,wBAAwB,EACnB,CAEZ,CACF,EAEAxD,MAAM,CAAC8D,WAAW,CAAG,QAAQ,CAE7B9D,MAAM,CAAC+D,SAAS,CAAG,CAIjB7D,QAAQ,CAAE8D,SAAS,CAACC,IAAI,CAACC,UAAU,CAInC/D,OAAO,CAAE6D,SAAS,CAACG,IAAI,CAIvB/D,SAAS,CAAE4D,SAAS,CAACG,IAAI,CAIzB9D,QAAQ,CAAE2D,SAAS,CAACG,IAAI,CAIxB7D,IAAI,CAAE0D,SAAS,CAACG,IAAI,CAIpB5D,KAAK,CAAEyD,SAAS,CAACG,IAAI,CAIrB3D,MAAM,CAAEwD,SAAS,CAACG,IAAI,CAItB1D,MAAM,CAAEuD,SAAS,CAACG,IAAI,CAItBpD,IAAI,CAAEiD,SAAS,CAACG,IAAI,CAIpBnD,EAAE,CAAEgD,SAAS,CAACI,WAAW,CAIzBlD,OAAO,CAAE8C,SAAS,CAACK,MAAM,CAIzBxD,IAAI,CAAEmD,SAAS,CAACG,IAAI,CAIpBrD,OAAO,CAAEkD,SAAS,CAACG,IAAI,CAMvBzD,SAAS,CAAEsD,SAAS,CAACM,SAAS,CAAC,CAACN,SAAS,CAACO,OAAO,CAAEP,SAAS,CAACQ,MAAM,CAAC,CAAC,CAIrE7D,YAAY,CAAEqD,SAAS,CAACG,IAAI,CAI5BtF,IAAI,CAAEmF,SAAS,CAACS,KAAK,CAAC,CAAC,IAAI,CAAE,GAAG,CAAE,GAAG,CAAE,GAAG,CAAC,CAAC,CAI5C7D,OAAO,CAAEoD,SAAS,CAACG,IAAI,CAIvB/C,UAAU,CAAE4C,SAAS,CAACG,IAAI,CAI1B9C,QAAQ,CAAE2C,SAAS,CAACG,IAAI,CAIxB7C,KAAK,CAAE0C,SAAS,CAACG,IAAI,CAIrB5C,SAAS,CAAEyC,SAAS,CAACG,IACvB,CAAC,CAEDnE,MAAM,CAAC0E,YAAY,CAAG,CACpB7F,IAAI,CAAE,GAAG,CACT+B,OAAO,CAAE,KAAK,CACdT,OAAO,CAAE,KAAK,CACdC,SAAS,CAAE,KAAK,CAChBC,QAAQ,CAAE,KAAK,CACfC,IAAI,CAAE,KAAK,CACXC,KAAK,CAAE,KAAK,CACZC,MAAM,CAAE,KAAK,CACbC,MAAM,CAAE,KAAK,CACbC,SAAS,CAAE,IAAI,CACfC,YAAY,CAAE,KAAK,CACnBE,IAAI,CAAE,KAAK,CACXC,OAAO,CAAE,KAAK,CACdC,IAAI,CAAE,KAAK,CACXC,EAAE,CAAE,GAAG,CACPE,OAAO,CAAE,CAAEC,IAAI,CAAE,GAAI,CAAC,CACtBE,QAAQ,CAAE,KAAK,CACfD,UAAU,CAAE,KAAK,CACjBE,KAAK,CAAE,KAAK,CACZC,SAAS,CAAE,IACb,CAAC;;;;"}