{"version":3,"file":"index-mBCUmZsI.js","sources":["../../app/javascript/components/components/data_entry/button/primary.ts","../../app/javascript/components/components/data_entry/button/secondary.ts","../../app/javascript/components/components/data_entry/button/tertiary.ts","../../app/javascript/components/components/data_entry/button/text.ts","../../app/javascript/components/components/data_entry/button/icon.ts","../../app/javascript/components/components/data_entry/button/index.tsx"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport { ButtonState } from \"./index\";\n\nconst shared = css<{ state: ButtonState }>`\n  cursor: pointer;\n  border: none;\n  border-radius: ${({ theme }) => theme.deprecatedBorder.radius.round};\n  background-color: ${({ theme, state }) =>\n    state === \"hover\"\n      ? theme.deprecatedColors.primary.dark\n      : state === \"pressed\"\n      ? theme.deprecatedColors.primary.extraDark\n      : theme.deprecatedColors.primary.normal};\n  color: ${({ theme }) => theme.deprecatedColors.text.light};\n  padding: ${({ theme }) => theme.deprecatedSpacing.component.four};\n  padding-left: ${({ theme }) => theme.deprecatedSpacing.component.six};\n  padding-right: ${({ theme }) => theme.deprecatedSpacing.component.six};\n\n  font-weight: ${({ theme }) => theme.font.weight.normal};\n  font-size: ${({ theme }) => theme.font.size.body.two};\n  text-transform: uppercase;\n  text-decoration: none;\n\n  &:disabled {\n    background-color: ${({ theme }) => theme.deprecatedColors.gray.seven};\n    cursor: not-allowed;\n  }\n`;\n\nexport const button = styled.button<{ state: ButtonState }>`\n  ${shared}\n`;\n\nexport const a = styled.a<{ state: ButtonState; href: string }>`\n  ${shared}\n`;\n","import styled, { css } from \"styled-components\";\nimport { ButtonState } from \".\";\n\nconst shared = css<{ state: ButtonState; destructiveAction: boolean }>`\n  cursor: pointer;\n  border: ${({ theme, destructiveAction }) =>\n    `${theme.deprecatedBorder.weight.heavy} solid ${\n      destructiveAction ? theme.deprecatedColors.error : theme.deprecatedColors.primary.normal\n    }`};\n  border-radius: ${({ theme }) => theme.deprecatedBorder.radius.normal};\n  background-color: ${({ theme, state, destructiveAction }) => {\n    const darkColor = destructiveAction\n      ? theme.deprecatedColors.error\n      : theme.deprecatedColors.primary.extraDark;\n    const color = destructiveAction\n      ? theme.deprecatedColors.error\n      : theme.deprecatedColors.primary.normal;\n    return state === \"pressed\"\n      ? darkColor\n      : state === \"hover\"\n      ? color\n      : theme.deprecatedColors.white;\n  }};\n  color: ${({ theme, state, destructiveAction }) =>\n    state === \"none\"\n      ? destructiveAction\n        ? theme.deprecatedColors.error\n        : theme.deprecatedColors.primary.normal\n      : theme.deprecatedColors.text.light};\n  padding: ${({ theme }) => theme.deprecatedSpacing.component.three};\n  padding-left: ${({ theme }) => theme.deprecatedSpacing.component.four};\n  padding-right: ${({ theme }) => theme.deprecatedSpacing.component.four};\n\n  font-weight: ${({ theme }) => theme.font.weight.normal};\n  font-size: ${({ theme }) => theme.font.size.body.two};\n  text-transform: uppercase;\n  text-decoration: none;\n  &:disabled {\n    background-color: ${({ theme }) => theme.deprecatedColors.gray.seven};\n    cursor: not-allowed;\n    border: none;\n  }\n`;\n\nexport const button = styled.button<{ state: ButtonState; destructiveAction: boolean }>`\n  ${shared}\n`;\n\nexport const a = styled.a<{ state: ButtonState; href: string; destructiveAction: boolean }>`\n  ${shared}\n`;\n","import styled, { css } from \"styled-components\";\nimport { ButtonState } from \".\";\n\nconst shared = css<{ state: ButtonState }>`\n  cursor: pointer;\n  border: none;\n  border-radius: ${({ theme }) => theme.deprecatedBorder.radius.normal};\n  background-color: ${({ theme, state }) =>\n    state === \"pressed\"\n      ? theme.deprecatedColors.secondary.normal\n      : state === \"hover\"\n      ? theme.deprecatedColors.secondary.light\n      : theme.deprecatedColors.secondary.extraLight};\n  color: ${({ theme }) => theme.deprecatedColors.secondary.extraDark};\n  padding: ${({ theme }) => theme.deprecatedSpacing.component.three};\n  padding-left: ${({ theme }) => theme.deprecatedSpacing.component.four};\n  padding-right: ${({ theme }) => theme.deprecatedSpacing.component.four};\n\n  font-weight: ${({ theme }) => theme.font.weight.normal};\n  font-size: ${({ theme }) => theme.font.size.body.two};\n  text-transform: uppercase;\n  text-decoration: none;\n\n  &:disabled {\n    background-color: ${({ theme }) => theme.deprecatedColors.gray.seven};\n    cursor: not-allowed;\n    border: none;\n  }\n`;\n\nexport const button = styled.button<{ state: ButtonState }>`\n  ${shared}\n`;\n\nexport const a = styled.a<{ state: ButtonState; href: string }>`\n  ${shared}\n`;\n","import styled, { css } from \"styled-components\";\nimport { ButtonState } from \".\";\n\nconst shared = css<{ state: ButtonState }>`\n  cursor: pointer;\n  border: none;\n  color: ${({ theme }) => theme.deprecatedColors.primary.normal};\n  padding: ${({ theme }) => theme.deprecatedSpacing.component.two};\n  padding-left: ${({ theme }) => theme.deprecatedSpacing.component.three};\n  padding-right: ${({ theme }) => theme.deprecatedSpacing.component.three};\n\n  font-weight: ${({ theme }) => theme.font.weight.normal};\n  text-transform: uppercase;\n  text-decoration: none;\n\n  &:disabled {\n    color: ${({ theme }) => theme.deprecatedColors.gray.eight};\n    cursor: not-allowed;\n  }\n`;\n\nconst pressedBtnBackground = css<{ state: ButtonState }>`\n  border-radius: ${({ theme }) => theme.deprecatedBorder.radius.normal};\n  background-color: ${({ theme, state }) =>\n    state === \"pressed\"\n      ? theme.deprecatedColors.primary.extraLight\n      : state === \"hover\"\n      ? theme.deprecatedColors.gray.ten\n      : \"transparent\"};\n`;\n\nexport const button = styled.button<{ state: ButtonState }>`\n  ${shared}\n  ${pressedBtnBackground}\n`;\n\nexport const buttonLink = styled.button<{ state: ButtonState }>`\n  ${shared}\n\n  background: none;\n\n  &:hover {\n    text-decoration: underline;\n  }\n`;\n\nexport const a = styled.a<{ state: ButtonState; href: string }>`\n  ${shared}\n  ${pressedBtnBackground}\n`;\n","import styled, { css } from \"styled-components\";\nimport { ButtonState } from \".\";\n\nconst shared = css<{ state: ButtonState }>`\n  cursor: pointer;\n  border: none;\n  color: ${({ theme }) => theme.deprecatedColors.gray.four};\n  background-color: transparent;\n\n  &:disabled {\n    color: ${({ theme }) => theme.deprecatedColors.gray.eight};\n    cursor: not-allowed;\n  }\n`;\n\nexport const button = styled.button<{ state: ButtonState }>`\n  ${shared}\n`;\n\nexport const a = styled.a<{ state: ButtonState; href: string }>`\n  ${shared}\n`;\n","import React, { useState } from \"react\";\nimport { button as Primary, a as PrimaryLink } from \"./primary\";\nimport { button as Secondary, a as SecondaryLink } from \"./secondary\";\nimport { button as Tertiary, a as TertiaryLink } from \"./tertiary\";\nimport { button as Text, a as Link, buttonLink as TextLink } from \"./text\";\nimport { button as Icon, a as IconLink } from \"./icon\";\nimport styled from \"styled-components\";\n\nexport enum ButtonType {\n  primary,\n  secondary,\n  tertiary,\n  text,\n  icon,\n  textLink,\n}\n\nexport const ModalButtonGroup = styled.div`\n  display: flex;\n  justify-content: flex-end;\n  padding-top: ${({ theme }) => theme.deprecatedSpacing.component.six};\n  button {\n    margin-left: ${({ theme }) => theme.deprecatedSpacing.component.four};\n  }\n`;\n\nexport type ButtonState = \"none\" | \"hover\" | \"pressed\";\n\ninterface ButtonProps extends React.HTMLProps<HTMLButtonElement> {\n  disabled?: boolean;\n  buttonType?: ButtonType;\n  destructiveAction?: boolean;\n  href?: string;\n  target?: string;\n  dataAnalyticsId?: string;\n}\n\nexport function Button({\n  disabled = false,\n  buttonType = ButtonType.primary,\n  href = \"\",\n  target = \"\",\n  type,\n  dataAnalyticsId,\n  ...props\n}: ButtonProps) {\n  let Button = href.length ? PrimaryLink : Primary;\n\n  switch (buttonType) {\n    case ButtonType.primary:\n      Button = href.length ? PrimaryLink : Primary;\n      break;\n    case ButtonType.secondary:\n      // not sure why ts is fine with the primary and tertiary links but not the secondary\n      // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n      // @ts-ignore\n      Button = href.length ? SecondaryLink : Secondary;\n      break;\n    case ButtonType.tertiary:\n      Button = href.length ? TertiaryLink : Tertiary;\n      break;\n    case ButtonType.text:\n      Button = href.length ? Link : Text;\n      break;\n    case ButtonType.icon:\n      Button = href.length ? IconLink : Icon;\n      break;\n    case ButtonType.textLink:\n      Button = TextLink;\n      break;\n  }\n  const [buttonState, setButtonState] = useState<ButtonState>(\"none\");\n  return (\n    // eslint-disable-next-line\n    // @ts-ignore something's going on with styled components and react types playing together\n    <Button\n      // @TODO these state controls still need some work, but good enough for now\n      onMouseEnter={() => setButtonState(\"hover\")}\n      onMouseLeave={() => setButtonState(\"none\")}\n      onMouseDown={() => setButtonState(\"pressed\")}\n      onMouseUp={() => setButtonState(\"none\")}\n      disabled={disabled}\n      state={buttonState}\n      type={!href.length && typeof type === \"undefined\" ? \"button\" : type}\n      data-analytics-id={dataAnalyticsId}\n      {...props}\n      {...(href.length ? { href } : {})}\n      {...(target.length ? { target } : {})}\n    />\n  );\n}\n\nexport default Button;\n\nexport const InlineLinkTextAsButton = styled(Button)`\n  text-transform: none;\n  padding-left: 0;\n  padding-right: 0;\n  // This color is part of our new Theme suite cyan500, but this file is still using deprecated theme (app/javascript/components/styling/colors.ts)\n  color: #0e7c86;\n`;\n"],"names":["shared","css","theme","state","button","styled","a","destructiveAction","darkColor","color","pressedBtnBackground","buttonLink","ButtonType","ButtonType2","ModalButtonGroup","Button","disabled","buttonType","href","target","type","dataAnalyticsId","props","PrimaryLink","Primary","SecondaryLink","Secondary","TertiaryLink","Tertiary","Link","Text","IconLink","Icon","TextLink","buttonState","setButtonState","useState","jsx"],"mappings":"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"}