{
  "version": 3,
  "sources": ["../../emotion-shim.js", "../../src/hooks/useMedia.tsx", "../../src/hooks/useTheme.tsx", "../../src/hooks/useBreakpoints.tsx", "../../src/hooks/useClickOutsideListener.tsx", "../../src/hooks/useConfirm.tsx", "../../src/Button.tsx", "../../src/system/index.ts", "../../src/system/background.ts", "../../src/system/border.ts", "../../src/system/colors.ts", "../../src/system/cursor.ts", "../../src/system/flexbox.ts", "../../src/system/grid.ts", "../../src/system/layout.ts", "../../src/system/position.ts", "../../src/system/shadow.ts", "../../src/system/space.ts", "../../src/system/typography.ts", "../../src/system/styled.ts", "../../src/Box.tsx", "../../src/LoadingDots.tsx", "../../src/ButtonPrimary.tsx", "../../src/ButtonSecondary.tsx", "../../src/CardContent.tsx", "../../src/CardFooter.tsx", "../../src/Text.tsx", "../../src/Heading.tsx", "../../src/HeadingLink.tsx", "../../src/hooks/useLinkComponent.tsx", "../../src/LinkComponentProvider.tsx", "../../src/Icon.tsx", "../../src/icons/shade/ExternalWindow.tsx", "../../src/CardHeader.tsx", "../../src/Modal.tsx", "../../src/Card.tsx", "../../src/hooks/useFirstRender.tsx", "../../src/hooks/useFlipList.tsx", "../../src/hooks/useMergeRefs.tsx", "../../src/hooks/usePrefersDarkMode.tsx", "../../src/hooks/useTimeout.tsx"],
  "sourcesContent": ["import { jsx } from \"@emotion/react\";\n\nexport { jsx };\n", "import { useState, useEffect } from \"react\";\n// Hook\nexport const useMedia = <T,>(\n  queries: string[],\n  values: T[],\n  defaultValue: T\n) => {\n  // Array containing a media query list for each query\n  const mediaQueryLists = queries.map((q) =>\n    typeof window !== \"undefined\" && window?.matchMedia\n      ? window.matchMedia(q)\n      : {\n          matches: false,\n          addListener: () => {},\n          removeListener: () => {},\n        }\n  );\n\n  // Function that gets value based on matching media query\n  const getValue = () => {\n    // Get index of first media query that matches\n    const index = mediaQueryLists.findIndex((mql) => mql.matches);\n    // Return related value or defaultValue if none\n    return values?.[index] || defaultValue;\n  };\n\n  // State and setter for matched value\n  const [value, setValue] = useState<T>(getValue);\n\n  useEffect(\n    () => {\n      // Event listener callback\n      // Note: By defining getValue outside of useEffect we ensure that it has ...\n      // ... current values of hook args (as this hook callback is created once on mount).\n      const handler = () => {\n        setValue(getValue);\n      };\n\n      // Set a listener for each media query with above handler as callback.\n      mediaQueryLists.forEach((mql) => mql.addListener(handler));\n\n      // Remove listeners on cleanup\n      return () =>\n        mediaQueryLists.forEach((mql) => mql.removeListener(handler));\n    },\n    [] // Empty array ensures effect is only run on mount and unmount\n  );\n\n  return value;\n};\n", "import { useTheme as useThemeEmotion } from \"@emotion/react\";\nimport { PartialDeep } from \"type-fest\";\nimport { Theme } from \"../themes\";\n\nexport const useTheme = (): [Theme, (theme: PartialDeep<Theme>) => void] => {\n  const theme = useThemeEmotion();\n\n  function setTheme() {}\n\n  return [theme, setTheme];\n};\n", "import { ResponsiveProp } from \"../system/types\";\nimport { useMedia } from \"./useMedia\";\nimport { useTheme } from \"./useTheme\";\n\nconst makeQuery = (breakpoint: string) => {\n  return `(min-width: ${breakpoint})`;\n};\n\nexport const useBreakpoints = <T,>(values: ResponsiveProp<T>) => {\n  const [theme] = useTheme();\n  const queries = theme.breakpoints.map((b) => makeQuery(b.toString()));\n  if (!values) {\n    values = [];\n  } else if (!Array.isArray(values)) {\n    values = [values];\n  }\n  // mutations are bad. Therefore, we make a copy.\n  const copyValues = [...values];\n  const defaultValue = copyValues.shift();\n  const value = useMedia<T | undefined>(queries, copyValues, defaultValue);\n\n  return value;\n};\n", "import { RefObject, useEffect } from \"react\";\n\nexport const useClickOutsideListener = <T extends HTMLElement>(\n  ref: RefObject<T>,\n  handler: any\n) => {\n  useEffect(\n    () => {\n      const listener = (event: any) => {\n        // Do nothing if clicking ref's element or descendent elements\n        if (!ref?.current || ref?.current?.contains(event.target)) {\n          return;\n        }\n        handler(event);\n      };\n\n      document.addEventListener(\"mousedown\", listener);\n      document.addEventListener(\"touchstart\", listener);\n\n      return () => {\n        document.removeEventListener(\"mousedown\", listener);\n        document.removeEventListener(\"touchstart\", listener);\n      };\n    },\n\n    // Add ref and handler to effect dependencies\n    // It's worth noting that because passed in handler is a new ...\n    // ... function on every render that will cause this effect ...\n    // ... callback/cleanup to run every render. It's not a big deal ...\n    // ... but to optimize you can wrap handler in useCallback before ...\n    // ... passing it into this hook.\n\n    [ref, handler]\n  );\n};\n", "import { ReactNode, useState } from \"react\";\nimport { ButtonPrimary, ButtonPrimaryProps } from \"../ButtonPrimary\";\nimport { ButtonSecondary } from \"../ButtonSecondary\";\nimport { CardContent } from \"../CardContent\";\nimport { CardFooter } from \"../CardFooter\";\nimport { CardHeader } from \"../CardHeader\";\nimport { Modal } from \"../Modal\";\n\nexport type useConfirmProps = {\n  title: string;\n  description?: ReactNode;\n  onConfirm: () => void;\n  onCancel?: () => void;\n  labels?: {\n    confirm: string;\n    cancel: string;\n  };\n  severity?: \"danger\" | \"warning\" | \"normal\";\n};\n\nexport const useConfirm = ({\n  title: defaultTitle,\n  description: defaultDescription,\n  onConfirm,\n  onCancel,\n  labels = {\n    confirm: \"Confirm\",\n    cancel: \"Cancel\",\n  },\n  severity = \"normal\",\n}: useConfirmProps): [\n  () => void,\n  ReactNode,\n  (title: string) => void,\n  (description: string) => void\n] => {\n  const [open, setOpen] = useState(false);\n  const [title, setTitle] = useState(defaultTitle);\n  const [description, setDescription] = useState(defaultDescription);\n\n  const handleClose = () => {\n    setOpen(false);\n    if (onCancel) {\n      onCancel();\n    }\n  };\n\n  const handleConfirm = () => {\n    setOpen(false);\n    onConfirm();\n  };\n\n  const requestConfirm = () => {\n    setOpen(true);\n  };\n\n  let tone: ButtonPrimaryProps[\"tone\"] = \"neutral\";\n  switch (severity) {\n    case \"danger\": {\n      tone = \"error\";\n      break;\n    }\n    case \"normal\": {\n      tone = \"neutral\";\n      break;\n    }\n    case \"warning\": {\n      tone = \"warning\";\n      break;\n    }\n  }\n\n  const modal = (\n    <Modal open={open} onClose={handleClose}>\n      <CardHeader>{title}</CardHeader>\n      {description && <CardContent>{description}</CardContent>}\n      <CardFooter>\n        <ButtonPrimary tone={tone} onClick={handleConfirm}>\n          {labels.confirm}\n        </ButtonPrimary>\n        <ButtonSecondary tone=\"neutral\" onClick={handleClose}>\n          {labels.cancel}\n        </ButtonSecondary>\n      </CardFooter>\n    </Modal>\n  );\n\n  return [requestConfirm, modal, setTitle, setDescription];\n};\n", "import { css, Theme } from \"@emotion/react\";\nimport { ButtonHTMLAttributes, forwardRef, ReactNode } from \"react\";\nimport { Box } from \"./Box\";\nimport { useBreakpoints } from \"./hooks/useBreakpoints\";\nimport { LoadingDots } from \"./LoadingDots\";\nimport {\n  color,\n  ColorProps,\n  compose,\n  shadow,\n  ShadowProps,\n  typography,\n  TypographyProps,\n  styled\n} from \"./system\";\nimport { ResponsiveProp } from \"./system/types\";\n\nexport type ButtonProps = {\n  children: ReactNode;\n  iconLeft?: ReactNode;\n  iconRight?: ReactNode;\n  disabled?: boolean;\n  type?: \"button\" | \"submit\" | \"reset\";\n  fullWidth?: boolean;\n  loading?: boolean;\n  size?: ResponsiveProp<\"xsmall\" | \"small\" | \"medium\" | \"large\">;\n} & ColorProps &\n  TypographyProps &\n  ShadowProps &\n  ButtonHTMLAttributes<HTMLButtonElement>;\n\nconst StyledButton = styled.button<ColorProps & TypographyProps & ShadowProps>(\n  compose(color, typography, shadow)\n);\n\nconst sizeStyle = (theme: Theme) => (size: ButtonProps[\"size\"]) => {\n  if (size === \"small\") {\n    return css`\n      font-size: ${theme.fontSizes.small};\n      padding-left: 10px;\n      padding-right: 10px;\n      padding-top: 8px;\n      padding-bottom: 8px;\n\n      span.icon-left,\n      span.icon-right {\n        width: ${theme.fontSizes.small};\n      }\n\n      span.icon-left {\n        margin-right: 8px;\n      }\n\n      span.icon-right {\n        margin-left: 8px;\n      }\n    `;\n  } else if (size === \"medium\") {\n    return css`\n      font-size: ${theme.fontSizes.standard};\n      padding-left: 16px;\n      padding-right: 16px;\n      padding-top: 12px;\n      padding-bottom: 12px;\n\n      span.icon-left,\n      span.icon-right {\n        width: ${theme.fontSizes.large};\n      }\n\n      span.icon-left {\n        margin-right: 12px;\n      }\n\n      span.icon-right {\n        margin-left: 12px;\n      }\n    `;\n  } else if (size === \"large\") {\n    return css`\n      font-size: ${theme.fontSizes.large};\n      padding-left: 30px;\n      padding-right: 30px;\n      padding-top: 15px;\n      padding-bottom: 15px;\n\n      span.icon-left,\n      span.icon-right {\n        width: ${theme.fontSizes.xlarge};\n      }\n\n      span.icon-left {\n        margin-right: 15px;\n      }\n\n      span.icon-right {\n        margin-left: 15px;\n      }\n    `;\n  } else if (size === \"xsmall\") {\n    return css`\n      font-size: ${theme.fontSizes.xsmall};\n      padding-left: 8px;\n      padding-right: 8px;\n      padding-top: 6px;\n      padding-bottom: 6px;\n\n      span.icon-left,\n      span.icon-right {\n        width: ${theme.fontSizes.xsmall};\n      }\n\n      span.icon-left {\n        margin-right: 6px;\n      }\n\n      span.icon-right {\n        margin-left: 6px;\n      }\n    `;\n  }\n\n  return css``;\n};\n\nconst fullWidthStyle = {\n  width: \"100%\",\n};\n\nconst baseStyle = (theme: Theme) => css`\n  border: none;\n  display: inline-flex;\n  justify-content: center;\n  align-items: center;\n  cursor: ${theme.cursor.pointer};\n  border-radius: ${theme.radii.standard};\n  font-weight: ${theme.fontWeights.semibold};\n  transition: all 0.1s ease-out;\n  &:focus {\n    outline: none;\n    box-shadow: ${theme.shadows.outline};\n  }\n\n  span.icon-left,\n  span.icon-right {\n    display: inline-flex;\n    text-align: center;\n    align-items: center;\n    justify-content: center;\n  }\n`;\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n  (\n    {\n      children,\n      iconLeft,\n      iconRight,\n      textColor,\n      fullWidth = false,\n      loading = false,\n      size = [\"small\"],\n      ...props\n    },\n    ref\n  ) => {\n    if (!Array.isArray(size)) {\n      size = [size];\n    }\n\n    const responsiveSize = useBreakpoints(size);\n\n    return (\n      <StyledButton\n        ref={ref}\n        css={(theme) => [\n          css`\n            position: relative;\n            &:disabled {\n              cursor: not-allowed;\n              opacity: 0.4;\n            }\n            &:hover:enabled {\n              opacity: 0.8;\n            }\n            &:active:enabled {\n              filter: brightness(80%);\n            }\n          `,\n          baseStyle(theme),\n          sizeStyle(theme)(responsiveSize),\n          fullWidth && fullWidthStyle,\n        ]}\n        textColor={textColor}\n        {...props}\n      >\n        {loading && (\n          <Box\n            position=\"absolute\"\n            display=\"flex\"\n            top=\"0px\"\n            left=\"0px\"\n            right=\"0px\"\n            bottom=\"0px\"\n            justifyContent=\"center\"\n            alignItems=\"center\"\n          >\n            <LoadingDots\n              textColor={textColor}\n              size={responsiveSize === \"large\" ? \"large\" : \"medium\"}\n            />\n          </Box>\n        )}\n        <Box\n          css={(theme) => [\n            baseStyle(theme),\n            loading &&\n              css`\n                visibility: hidden;\n              `,\n          ]}\n        >\n          {iconLeft && <span className=\"icon-left\">{iconLeft}</span>}\n          {children}\n          {iconRight && <span className=\"icon-right\">{iconRight}</span>}\n        </Box>\n      </StyledButton>\n    );\n  }\n);\n", "export { compose, variant } from \"styled-system\";\nexport { background } from \"./background\";\nexport type { BackgroundProps } from \"./background\";\nexport { border } from \"./border\";\nexport type { BorderProps } from \"./border\";\nexport { color } from \"./colors\";\nexport type { ColorProps } from \"./colors\";\nexport { cursor } from \"./cursor\";\nexport type { CursorProps } from \"./cursor\";\nexport { flexbox } from \"./flexbox\";\nexport type { FlexboxProps } from \"./flexbox\";\nexport { grid } from \"./grid\";\nexport type { GridProps } from \"./grid\";\nexport { layout } from \"./layout\";\nexport type { LayoutProps } from \"./layout\";\nexport { position } from \"./position\";\nexport type { PositionProps } from \"./position\";\nexport { shadow } from \"./shadow\";\nexport type { ShadowProps } from \"./shadow\";\nexport { space } from \"./space\";\nexport type { SpaceProps } from \"./space\";\nexport { typography } from \"./typography\";\nexport type { TypographyProps } from \"./typography\";\nexport { styled } from \"./styled\";\n", "import * as CSS from \"csstype\";\nexport { background } from \"styled-system\";\nimport { ResponsiveProp } from \"./types\";\n\nexport type BackgroundProps = {\n  background?: ResponsiveProp<CSS.Properties[\"background\"]>;\n  backgroundImage?: ResponsiveProp<CSS.Properties[\"backgroundImage\"]>;\n  backgroundSize?: ResponsiveProp<CSS.Properties[\"backgroundSize\"]>;\n  backgroundPosition?: ResponsiveProp<CSS.Properties[\"backgroundPosition\"]>;\n  backgroundRepeat?: ResponsiveProp<CSS.Properties[\"backgroundRepeat\"]>;\n};\n", "import * as CSS from \"csstype\";\nimport { SystemBorderWidths, SystemColor, SystemRadii } from \"./types\";\nexport { border } from \"styled-system\";\nimport { ResponsiveProp } from \"./types\";\n\nexport type BorderProps = {\n  borderStyle?: ResponsiveProp<CSS.Properties[\"borderStyle\"]>;\n  borderWidth?: ResponsiveProp<SystemBorderWidths>;\n  borderColor?: ResponsiveProp<SystemColor>;\n  borderRadius?: ResponsiveProp<SystemRadii>;\n  borderTopStyle?: ResponsiveProp<CSS.Properties[\"borderStyle\"]>;\n  borderTopWidth?: ResponsiveProp<SystemBorderWidths>;\n  borderTopColor?: ResponsiveProp<SystemColor>;\n  borderTopLeftRadius?: ResponsiveProp<SystemRadii>;\n  borderTopRightRadius?: ResponsiveProp<SystemRadii>;\n  borderBottomStyle?: ResponsiveProp<CSS.Properties[\"borderStyle\"]>;\n  borderBottomWidth?: ResponsiveProp<SystemBorderWidths>;\n  borderBottomColor?: ResponsiveProp<SystemColor>;\n  borderBottomLeftRadius?: ResponsiveProp<SystemRadii>;\n  borderBottomRightRadius?: ResponsiveProp<SystemRadii>;\n  borderLeftStyle?: ResponsiveProp<CSS.Properties[\"borderStyle\"]>;\n  borderLeftWidth?: ResponsiveProp<SystemBorderWidths>;\n  borderLeftColor?: ResponsiveProp<SystemColor>;\n  borderRightStyle?: ResponsiveProp<CSS.Properties[\"borderStyle\"]>;\n  borderRightWidth?: ResponsiveProp<SystemBorderWidths>;\n  borderRightColor?: ResponsiveProp<SystemColor>;\n};\n", "import { system } from \"styled-system\";\nimport { SystemColor, ResponsiveProp } from \"./types\";\n\nexport type ColorProps = {\n  textColor?: ResponsiveProp<SystemColor>;\n  backgroundColor?: ResponsiveProp<SystemColor>;\n  bg?: ResponsiveProp<SystemColor>;\n};\n\nexport const color = system({\n  textColor: {\n    scale: \"colors\",\n    property: \"color\",\n  },\n  backgroundColor: {\n    scale: \"colors\",\n    property: \"backgroundColor\",\n  },\n  bg: {\n    scale: \"colors\",\n    property: \"backgroundColor\",\n  },\n});\n", "import { system } from \"styled-system\";\nimport { ResponsiveProp, SystemCursor } from \"./types\";\n\nexport type CursorProps = {\n  cursor?: ResponsiveProp<SystemCursor>;\n};\n\nexport const cursor = system({\n  cursor: {\n    scale: \"cursor\",\n    property: \"cursor\",\n  },\n});\n", "import * as CSS from \"csstype\";\nimport { ResponsiveProp } from \"./types\";\nexport { flexbox } from \"styled-system\";\n\nexport type FlexboxProps = {\n  alignItems?: ResponsiveProp<CSS.Properties[\"alignItems\"]>;\n  alignContent?: ResponsiveProp<CSS.Properties[\"alignContent\"]>;\n  justifyItems?: ResponsiveProp<CSS.Properties[\"justifyItems\"]>;\n  justifyContent?: ResponsiveProp<CSS.Properties[\"justifyContent\"]>;\n  flexWrap?: ResponsiveProp<CSS.Properties[\"flexWrap\"]>;\n  flexDirection?: ResponsiveProp<CSS.Properties[\"flexDirection\"]>;\n  flex?: ResponsiveProp<CSS.Properties[\"flex\"]>;\n  flexGrow?: ResponsiveProp<CSS.Properties[\"flexGrow\"]>;\n  flexShrink?: ResponsiveProp<CSS.Properties[\"flexShrink\"]>;\n  flexBasis?: ResponsiveProp<CSS.Properties[\"flexBasis\"]>;\n  justifySelf?: ResponsiveProp<CSS.Properties[\"justifySelf\"]>;\n  alignSelf?: ResponsiveProp<CSS.Properties[\"alignSelf\"]>;\n  order?: ResponsiveProp<CSS.Properties[\"order\"]>;\n};\n", "import * as CSS from \"csstype\";\nimport { SystemSpace, ResponsiveProp } from \"./types\";\nexport { grid } from \"styled-system\";\n\nexport type GridProps = {\n  gridGap?: ResponsiveProp<SystemSpace>;\n  gridRowGap?: ResponsiveProp<SystemSpace>;\n  gridColumnGap?: ResponsiveProp<SystemSpace>;\n  gridColumn?: ResponsiveProp<CSS.Properties[\"gridColumn\"]>;\n  gridRow?: ResponsiveProp<CSS.Properties[\"gridRow\"]>;\n  gridArea?: ResponsiveProp<CSS.Properties[\"gridArea\"]>;\n  gridAutoFlow?: ResponsiveProp<CSS.Properties[\"gridAutoFlow\"]>;\n  gridAutoRows?: ResponsiveProp<CSS.Properties[\"gridAutoRows\"]>;\n  gridAutoColumns?: ResponsiveProp<CSS.Properties[\"gridAutoColumns\"]>;\n  gridTemplateRows?: ResponsiveProp<CSS.Properties[\"gridTemplateRows\"]>;\n  gridTemplateColumns?: ResponsiveProp<CSS.Properties[\"gridTemplateColumns\"]>;\n  gridTemplateAreas?: ResponsiveProp<CSS.Properties[\"gridTemplateAreas\"]>;\n};\n", "import * as CSS from \"csstype\";\nexport { layout } from \"styled-system\";\nimport { ResponsiveProp, SystemSizes } from \"./types\";\n\nexport type LayoutProps = {\n  width?: ResponsiveProp<SystemSizes | CSS.Properties[\"width\"]>;\n  height?: ResponsiveProp<SystemSizes | CSS.Properties[\"width\"]>;\n  minWidth?: ResponsiveProp<SystemSizes | CSS.Properties[\"width\"]>;\n  maxWidth?: ResponsiveProp<SystemSizes | CSS.Properties[\"width\"]>;\n  minHeight?: ResponsiveProp<SystemSizes | CSS.Properties[\"width\"]>;\n  maxHeight?: ResponsiveProp<SystemSizes | CSS.Properties[\"width\"]>;\n  size?: ResponsiveProp<SystemSizes>;\n  display?: ResponsiveProp<CSS.Properties[\"display\"]>;\n  verticalAlign?: ResponsiveProp<CSS.Properties[\"verticalAlign\"]>;\n  overflow?: ResponsiveProp<CSS.Properties[\"overflow\"]>;\n  overflowX?: ResponsiveProp<CSS.Properties[\"overflowX\"]>;\n  overflowY?: ResponsiveProp<CSS.Properties[\"overflowY\"]>;\n};\n", "import * as CSS from \"csstype\";\nexport { position } from \"styled-system\";\nimport { ResponsiveProp, SystemSpace, SystemZIndices } from \"./types\";\n\nexport type PositionProps = {\n  position?: ResponsiveProp<CSS.Properties[\"position\"]>;\n  zIndex?: ResponsiveProp<SystemZIndices>;\n  top?: ResponsiveProp<SystemSpace | CSS.Properties[\"top\"]>;\n  right?: ResponsiveProp<SystemSpace | CSS.Properties[\"right\"]>;\n  bottom?: ResponsiveProp<SystemSpace | CSS.Properties[\"bottom\"]>;\n  left?: ResponsiveProp<SystemSpace | CSS.Properties[\"left\"]>;\n};\n", "export { shadow } from \"styled-system\";\nimport { ResponsiveProp, SystemShadows } from \"./types\";\n\nexport type ShadowProps = {\n  textShadow?: ResponsiveProp<SystemShadows>;\n  boxShadow?: ResponsiveProp<SystemShadows>;\n};\n", "import { compose, space as styledSpace, system } from \"styled-system\";\nimport { ResponsiveProp, SystemSpace } from \"./types\";\n\nexport const space = compose(\n  styledSpace,\n  system({\n    gap: {\n      property: \"gap\",\n      scale: \"space\",\n    },\n  })\n);\n\nexport type SpaceProps = {\n  m?: ResponsiveProp<SystemSpace>;\n  mt?: ResponsiveProp<SystemSpace>;\n  mb?: ResponsiveProp<SystemSpace>;\n  mr?: ResponsiveProp<SystemSpace>;\n  ml?: ResponsiveProp<SystemSpace>;\n  mx?: ResponsiveProp<SystemSpace>;\n  my?: ResponsiveProp<SystemSpace>;\n  p?: ResponsiveProp<SystemSpace>;\n  pt?: ResponsiveProp<SystemSpace>;\n  pb?: ResponsiveProp<SystemSpace>;\n  pr?: ResponsiveProp<SystemSpace>;\n  pl?: ResponsiveProp<SystemSpace>;\n  px?: ResponsiveProp<SystemSpace>;\n  py?: ResponsiveProp<SystemSpace>;\n  margin?: ResponsiveProp<SystemSpace>;\n  marginTop?: ResponsiveProp<SystemSpace>;\n  marginBottom?: ResponsiveProp<SystemSpace>;\n  marginRight?: ResponsiveProp<SystemSpace>;\n  marginLeft?: ResponsiveProp<SystemSpace>;\n  marginX?: ResponsiveProp<SystemSpace>;\n  marginY?: ResponsiveProp<SystemSpace>;\n  padding?: ResponsiveProp<SystemSpace>;\n  paddingTop?: ResponsiveProp<SystemSpace>;\n  paddingBottom?: ResponsiveProp<SystemSpace>;\n  paddingRight?: ResponsiveProp<SystemSpace>;\n  paddingLeft?: ResponsiveProp<SystemSpace>;\n  paddingX?: ResponsiveProp<SystemSpace>;\n  paddingY?: ResponsiveProp<SystemSpace>;\n  gap?: ResponsiveProp<SystemSpace>;\n};\n", "import * as CSS from \"csstype\";\nexport { typography } from \"styled-system\";\nimport {\n  ResponsiveProp,\n  SystemFonts,\n  SystemFontWeights,\n  SystemLineHeights,\n  SystemLetterSpacings,\n  SystemFontSizes,\n} from \"./types\";\n\nexport type TypographyProps = {\n  fontFamily?: ResponsiveProp<SystemFonts>;\n  fontSize?: ResponsiveProp<SystemFontSizes>;\n  fontWeight?: ResponsiveProp<SystemFontWeights>;\n  lineHeight?: ResponsiveProp<SystemLineHeights>;\n  letterSpacing?: ResponsiveProp<SystemLetterSpacings>;\n  textAlign?: ResponsiveProp<CSS.Properties[\"textAlign\"]>;\n  fontStyle?: ResponsiveProp<CSS.Properties[\"fontStyle\"]>;\n};\n", "// see https://github.com/emotion-js/emotion/issues/2582\nimport emotionStyled from \"@emotion/styled\";\nconst anyEmotionStyled: any = emotionStyled;\nexport const styled: typeof emotionStyled =\n  \"default\" in emotionStyled ? anyEmotionStyled.default : emotionStyled;\n", "import { HTMLAttributes, Ref } from \"react\";\nimport {\n  background,\n  BackgroundProps,\n  border,\n  BorderProps,\n  color,\n  ColorProps,\n  compose,\n  cursor,\n  CursorProps,\n  flexbox,\n  FlexboxProps,\n  grid,\n  GridProps,\n  layout,\n  LayoutProps,\n  position,\n  PositionProps,\n  shadow,\n  ShadowProps,\n  space,\n  SpaceProps,\n  typography,\n  TypographyProps,\n  styled\n} from \"./system\";\nimport { SystemElements } from \"./system/types\";\n\nexport type BoxProps = {\n  as?: SystemElements;\n  id?: string;\n  role?: string;\n  href?: string;\n  className?: string;\n  tabIndex?: number;\n  ref?: Ref<HTMLDivElement>;\n} & ColorProps &\n  CursorProps &\n  SpaceProps &\n  TypographyProps &\n  LayoutProps &\n  FlexboxProps &\n  GridProps &\n  BackgroundProps &\n  BorderProps &\n  PositionProps &\n  ShadowProps &\n  HTMLAttributes<HTMLDivElement>;\n\n/**\n * \u2018Box\u2019 is the most low-level layout component provided by Braid. Its job is to render an individual element on the screen.\n * In terms of page layout, \u2018Box\u2019 most notably provides a set of padding options which can be used to create container elements with internal spacing.\n *\n * p\n * pX\n * pY\n * pt\n * pb\n * pl\n * pr\n *\n * These options accept a value from our space scale.\n *\n * The Box implements all styled-system apis. (see https://styled-system.com/api)\n *\n */\nexport const Box = styled.div<BoxProps>(\n  {\n    boxSizing: \"border-box\",\n    minWidth: 0,\n    transition: \"all 0.2s ease\",\n  },\n  compose(\n    color,\n    cursor,\n    space,\n    typography,\n    layout,\n    flexbox,\n    grid,\n    background,\n    border,\n    position,\n    shadow\n  )\n);\n", "import { css } from \"@emotion/react\";\nimport { ReactNode } from \"react\";\nimport { Box, BoxProps } from \"./Box\";\n\nexport type LoadingDotsProps = {\n  children?: ReactNode;\n  size?: \"small\" | \"medium\" | \"large\";\n  textColor?: BoxProps[\"textColor\"];\n};\n\nexport const LoadingDots = ({\n  children,\n  size = \"medium\",\n  textColor,\n}: LoadingDotsProps) => {\n  let width = \"0px\";\n  switch (size) {\n    case \"small\": {\n      width = \"2px\";\n      break;\n    }\n    case \"medium\": {\n      width = \"4px\";\n      break;\n    }\n    case \"large\": {\n      width = \"6px\";\n      break;\n    }\n  }\n  return (\n    <Box\n      css={css`\n        @keyframes blink {\n          /**\n     * At the start of the animation the dot\n     * has an opacity of .2\n     */\n          0% {\n            opacity: 0.2;\n          }\n          /**\n     * At 20% the dot is fully visible and\n     * then fades out slowly\n     */\n          20% {\n            opacity: 1;\n          }\n          /**\n     * Until it reaches an opacity of .2 and\n     * the animation can start again\n     */\n          100% {\n            opacity: 0.2;\n          }\n        }\n\n        & > span {\n          /**\n     * Use the blink animation, which is defined above\n     */\n          animation-name: blink;\n          /**\n     * The animation should take 1.4 seconds\n     */\n          animation-duration: 1.4s;\n          /**\n     * It will repeat itself forever\n     */\n          animation-iteration-count: infinite;\n          /**\n     * This makes sure that the starting style (opacity: .2)\n     * of the animation is applied before the animation starts.\n     * Otherwise we would see a short flash or would have\n     * to set the default styling of the dots to the same\n     * as the animation. Same applies for the ending styles.\n     */\n          animation-fill-mode: both;\n        }\n\n        & > span:nth-of-type(2) {\n          /**\n     * Starts the animation of the third dot\n     * with a delay of .2s, otherwise all dots\n     * would animate at the same time\n     */\n          animation-delay: 0.2s;\n        }\n\n        & > span:nth-of-type(3) {\n          /**\n     * Starts the animation of the third dot\n     * with a delay of .4s, otherwise all dots\n     * would animate at the same time\n     */\n          animation-delay: 0.4s;\n        }\n      `}\n      display=\"inline-flex\"\n      alignItems=\"center\"\n    >\n      {children && (\n        <Box\n          m=\"none\"\n          p=\"none\"\n          textColor={textColor}\n          as=\"p\"\n          marginRight=\"xsmall\"\n        >\n          {children}\n        </Box>\n      )}\n      <Box\n        backgroundColor={textColor || \"currentColor\"}\n        borderRadius=\"full\"\n        width={width}\n        marginRight=\"xxsmall\"\n        height={width}\n        as=\"span\"\n      ></Box>\n      <Box\n        backgroundColor={textColor || \"currentColor\"}\n        borderRadius=\"full\"\n        marginRight=\"xxsmall\"\n        width={width}\n        height={width}\n        as=\"span\"\n      ></Box>\n      <Box\n        backgroundColor={textColor || \"currentColor\"}\n        borderRadius=\"full\"\n        width={width}\n        height={width}\n        as=\"span\"\n      ></Box>\n    </Box>\n  );\n};\n", "import { ButtonHTMLAttributes, ReactNode, Ref } from \"react\";\nimport { Button, ButtonProps } from \"./Button\";\nimport { variant, styled } from \"./system\";\nimport { SystemColor, SystemColorNames } from \"./system/types\";\n\nexport type ButtonPrimaryProps = {\n  children: ReactNode;\n  tone?: SystemColorNames;\n  ref?: Ref<HTMLButtonElement>;\n} & ButtonHTMLAttributes<HTMLButtonElement> &\n  Pick<\n    ButtonProps,\n    | \"iconLeft\"\n    | \"iconRight\"\n    | \"size\"\n    | \"disabled\"\n    | \"type\"\n    | \"fullWidth\"\n    | \"loading\"\n  >;\n\nconst StyledButtonPrimary: React.FunctionComponent<ButtonPrimaryProps> = styled(\n  Button\n)<ButtonPrimaryProps>(\n  {},\n  variant<\n    {\n      color: SystemColor;\n      backgroundColor: SystemColor;\n    },\n    SystemColorNames,\n    string\n  >({\n    scale: \"buttonsPrimary\",\n    prop: \"tone\",\n    variants: {\n      primary: {\n        backgroundColor: \"primary.800\",\n        color: \"primary.50\",\n      },\n      accent: {\n        backgroundColor: \"accent.800\",\n        color: \"accent.50\",\n      },\n      neutral: {\n        backgroundColor: \"neutral.800\",\n        color: \"neutral.50\",\n      },\n      success: {\n        backgroundColor: \"success.800\",\n        color: \"success.50\",\n      },\n      warning: {\n        backgroundColor: \"warning.800\",\n        color: \"warning.50\",\n      },\n      error: {\n        backgroundColor: \"error.800\",\n        color: \"error.50\",\n      },\n      info: {\n        backgroundColor: \"info.800\",\n        color: \"info.50\",\n      },\n    },\n  })\n);\n\nexport const ButtonPrimary = StyledButtonPrimary;\nButtonPrimary.defaultProps = {\n  tone: \"primary\",\n};\n", "import { ButtonHTMLAttributes, ReactNode, Ref } from \"react\";\nimport { Button, ButtonProps } from \"./Button\";\nimport { variant, styled } from \"./system\";\nimport { SystemColor, SystemColorNames } from \"./system/types\";\n\nexport type ButtonSecondaryProps = {\n  children: ReactNode;\n  tone?: SystemColorNames;\n  ref?: Ref<HTMLButtonElement>;\n} & ButtonHTMLAttributes<HTMLButtonElement> &\n  Pick<\n    ButtonProps,\n    | \"iconLeft\"\n    | \"iconRight\"\n    | \"size\"\n    | \"disabled\"\n    | \"type\"\n    | \"fullWidth\"\n    | \"loading\"\n  >;\n\nconst StyledButtonSecondary: React.FunctionComponent<ButtonSecondaryProps> = styled(\n  Button\n)<ButtonSecondaryProps>(\n  () => ({}),\n  variant<\n    {\n      color: SystemColor;\n      backgroundColor: SystemColor;\n    },\n    SystemColorNames,\n    string\n  >({\n    scale: \"buttonsSecondary\",\n    prop: \"tone\",\n    variants: {\n      primary: {\n        color: \"primary.800\",\n        backgroundColor: \"primary.50\",\n      },\n      accent: {\n        color: \"accent.800\",\n        backgroundColor: \"accent.50\",\n      },\n      neutral: {\n        color: \"neutral.800\",\n        backgroundColor: \"neutral.50\",\n      },\n      success: {\n        color: \"success.800\",\n        backgroundColor: \"success.50\",\n      },\n      warning: {\n        color: \"warning.800\",\n        backgroundColor: \"warning.50\",\n      },\n      error: {\n        color: \"error.800\",\n        backgroundColor: \"error.50\",\n      },\n      info: {\n        color: \"info.800\",\n        backgroundColor: \"info.50\",\n      },\n    },\n  })\n);\n\nexport const ButtonSecondary = StyledButtonSecondary;\nButtonSecondary.defaultProps = {\n  tone: \"primary\",\n};\n", "import { ReactNode } from \"react\";\nimport { Box } from \"./Box\";\n\nexport type CardContentProps = {\n  children?: ReactNode;\n};\n\nexport const CardContent = ({ children }: CardContentProps) => (\n  <Box p=\"standard\">{children}</Box>\n);\n", "import { css } from \"@emotion/react\";\nimport { ReactNode } from \"react\";\nimport { Box } from \"./Box\";\n\nexport type CardFooterProps = {\n  noSpacing?: boolean;\n  children?: ReactNode;\n  align?: \"left\" | \"center\" | \"right\";\n};\n\nexport const CardFooter = ({\n  children,\n  noSpacing,\n  align = \"right\",\n}: CardFooterProps) => {\n  return (\n    <Box\n      display=\"flex\"\n      alignItems=\"center\"\n      backgroundColor=\"neutral.50\"\n      p=\"standard\"\n      css={(theme) => [\n        css`\n          justify-content: ${align === \"right\" && `flex-end`};\n          justify-content: ${align === \"left\" && `flex-start`};\n          justify-content: ${align === \"center\" && `center`};\n        `,\n        !noSpacing &&\n          css`\n            & > :not(:first-of-type) {\n              margin-left: ${theme.space[\"standard\"]};\n            }\n          `,\n      ]}\n    >\n      {children}\n    </Box>\n  );\n};\n", "import { css } from \"@emotion/react\";\nimport { Properties } from \"csstype\";\nimport { ReactNode } from \"react\";\nimport { Box } from \"./Box\";\nimport { useBreakpoints } from \"./hooks/useBreakpoints\";\nimport { ColorProps, SpaceProps, TypographyProps } from \"./system\";\nimport { ResponsiveProp, SystemElements } from \"./system/types\";\n\nexport type TextProps = {\n  id?: string;\n  htmlFor?: string;\n  as?: SystemElements;\n  truncate?: Properties[\"width\"];\n  lineClamp?: ResponsiveProp<number>;\n  children?: ReactNode;\n  href?: string;\n  className?: string;\n  role?: string;\n  title?: string;\n} & TypographyProps &\n  SpaceProps &\n  Pick<ColorProps, \"textColor\">;\n\nexport const Text = ({\n  truncate,\n  lineClamp,\n  as = \"p\",\n  ...props\n}: TextProps) => {\n  const responsiveLineClamp = useBreakpoints(lineClamp);\n  return (\n    <Box\n      p=\"none\"\n      m=\"none\"\n      display={as == \"span\" ? \"inline\" : undefined}\n      as={as}\n      css={[\n        lineClamp &&\n          css`\n            display: -webkit-box;\n            -webkit-box-orient: vertical;\n            -webkit-line-clamp: ${responsiveLineClamp};\n            overflow: hidden;\n          `,\n        truncate &&\n          css`\n            display: inline-block;\n            white-space: nowrap;\n            width: ${truncate};\n            overflow: hidden;\n            text-overflow: ellipsis;\n          `,\n      ]}\n      {...props}\n    />\n  );\n};\n", "import { ReactNode } from \"react\";\nimport { Text, TextProps } from \"./Text\";\n\nexport type HeadingProps = {\n  children?: ReactNode;\n  as?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n} & TextProps;\n\nexport const Heading = ({ as = \"h1\", ...props }: HeadingProps) => {\n  return <Text as={as} {...props} />;\n};\n", "import { css } from \"@emotion/react\";\nimport { forwardRef, ReactNode } from \"react\";\nimport { Heading, HeadingProps } from \"./Heading\";\nimport { useLinkComponent } from \"./hooks/useLinkComponent\";\nimport { Icon } from \"./Icon\";\nimport { ExternalWindow } from \"./icons/shade\";\nimport { LinkComponentProps } from \"./LinkComponentProvider\";\nimport { TextProps } from \"./Text\";\n\nexport type HeadingLinkProps = {\n  children?: ReactNode;\n  as?: HeadingProps[\"as\"];\n} & LinkComponentProps &\n  TextProps;\n\nexport const HeadingLink = forwardRef<HTMLAnchorElement, HeadingLinkProps>(\n  ({ children, href, color, as, ...props }, ref) => {\n    const LinkComponent = useLinkComponent(ref);\n    const external = href[0] !== \"/\" && href[0] !== \"#\";\n    return (\n      <Heading as={as} {...props}>\n        <LinkComponent\n          css={(theme) => css`\n            display: inline;\n            color: inherit;\n            text-decoration: none;\n            svg {\n              margin-left: ${theme.space.xxsmall};\n              width: auto;\n              height: 70%;\n            }\n\n            &:hover {\n              color: ${theme.colors.primary[800]};\n            }\n          `}\n          href={href}\n          ref={ref}\n          {...props}\n        >\n          {children}\n          {external && (\n            <Icon size=\"auto\" color=\"currentColor\">\n              <ExternalWindow />\n            </Icon>\n          )}\n        </LinkComponent>\n      </Heading>\n    );\n  }\n);\n", "// see: https://github.com/seek-oss/braid-design-system/blob/master/lib/components/BraidProvider/BraidProvider.tsx\nimport { Ref, useContext } from \"react\";\nimport { LinkComponentContext } from \"../LinkComponentProvider\";\n\nexport type useLinkComponentProps = {};\n\nexport const useLinkComponent = (ref: Ref<HTMLAnchorElement>) => {\n  const linkComponent = useContext(LinkComponentContext);\n\n  if (ref && !(\"__forwardRef__\" in linkComponent)) {\n    throw new Error(\n      `\n      You're passing a ref to a Patches link, but your app is providing a custom link component to 'PatchesProvider' that doesn't appear to support refs.\n      To fix this, you need to use Patches's 'makeLinkComponent' helper function when creating your custom link component. This ensures that refs are forwarded correctly, and allows us to silence this error message.\n    `\n    );\n  }\n\n  if (\"__forwardRef__\" in linkComponent) {\n    return linkComponent.__forwardRef__;\n  }\n\n  return linkComponent;\n};\n", "import {\n  AnchorHTMLAttributes,\n  ComponentType,\n  createContext,\n  forwardRef,\n  ForwardRefRenderFunction,\n  ReactNode,\n} from \"react\";\n\nexport interface LinkComponentProps\n  extends AnchorHTMLAttributes<HTMLAnchorElement> {\n  href: string;\n}\n\nexport const makeLinkComponent = (\n  render: ForwardRefRenderFunction<HTMLAnchorElement, LinkComponentProps>\n) => ({ __forwardRef__: forwardRef(render) } as const);\n\nexport type LinkComponent =\n  | ReturnType<typeof makeLinkComponent>\n  | ComponentType<LinkComponentProps>;\n\nconst DefaultLinkComponent = makeLinkComponent((props, ref) => (\n  <a ref={ref} {...props} />\n));\n\nexport type LinkComponentProviderProps = {\n  children?: ReactNode;\n  linkComponent: LinkComponent;\n};\n\nexport const LinkComponentContext = createContext<LinkComponent>(\n  DefaultLinkComponent\n);\n\nexport const LinkComponentProvider = ({\n  children,\n  linkComponent,\n}: LinkComponentProviderProps) => {\n  return (\n    <LinkComponentContext.Provider value={linkComponent}>\n      {children}\n    </LinkComponentContext.Provider>\n  );\n};\n", "import { css, Theme } from \"@emotion/react\";\nimport { ReactNode } from \"react\";\nimport { Box } from \"./Box\";\nimport { variant, styled } from \"./system\";\nimport { SystemColor, SystemColorNames } from \"./system/types\";\n\nexport type IconProps = {\n  children?: ReactNode;\n  color?: keyof Theme[\"colors\"];\n  size?: \"auto\" | \"small\" | \"large\";\n  badge?: {\n    tone: SystemColorNames;\n    count: number;\n  };\n};\n\nconst StyledBadge = styled(Box)(\n  variant<\n    {\n      color: SystemColor;\n      backgroundColor: SystemColor;\n      borderColor: SystemColor;\n    },\n    SystemColorNames,\n    string\n  >({\n    scale: \"badges\",\n    prop: \"tone\",\n    variants: {\n      primary: {\n        backgroundColor: \"primary.800\",\n        color: \"primary.100\",\n        borderColor: \"primary.100\",\n      },\n      accent: {\n        backgroundColor: \"accent.800\",\n        color: \"accent.100\",\n        borderColor: \"accent.100\",\n      },\n      neutral: {\n        backgroundColor: \"neutral.800\",\n        color: \"neutral.100\",\n        borderColor: \"neutral.100\",\n      },\n      success: {\n        backgroundColor: \"success.800\",\n        color: \"success.100\",\n        borderColor: \"success.100\",\n      },\n      warning: {\n        backgroundColor: \"warning.800\",\n        color: \"warning.100\",\n        borderColor: \"warning.100\",\n      },\n      error: {\n        backgroundColor: \"error.800\",\n        color: \"error.100\",\n        borderColor: \"error.100\",\n      },\n      info: {\n        backgroundColor: \"info.800\",\n        color: \"info.100\",\n        borderColor: \"info.100\",\n      },\n    },\n  })\n);\n\nconst style = (theme: Theme) => (\n  color: IconProps[\"color\"] = \"primary\",\n  size: IconProps[\"size\"] = \"small\"\n) => {\n  const palette = theme.colors[color];\n  let sizeCSS = css``;\n  switch (size) {\n    case \"auto\":\n      sizeCSS = css`\n        height: 1em;\n\n        svg {\n          height: 1em;\n        }\n      `;\n      break;\n    case \"small\":\n      sizeCSS = css`\n        width: 24px;\n        height: 24px;\n\n        svg {\n          width: 24px;\n          height: 24px;\n        }\n      `;\n      break;\n    case \"large\":\n      sizeCSS = css`\n        width: 48px;\n        height: 48px;\n        background-color: ${palette?.[100] || palette};\n\n        svg {\n          width: 24px;\n          height: 24px;\n        }\n      `;\n  }\n\n  return css`\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    color: ${palette?.[600] || palette};\n\n    ${sizeCSS};\n\n    svg .primary {\n      fill: ${palette?.[300] || palette};\n    }\n\n    svg .secondary {\n      fill: ${palette?.[600] || palette};\n    }\n  `;\n};\n\nexport const Icon = ({\n  children,\n  color = \"primary\",\n  size = \"small\",\n  badge,\n}: IconProps) => {\n  return (\n    <span\n      css={(theme) => [\n        css`\n          position: relative;\n          border-radius: ${theme.radii.full};\n        `,\n        style(theme)(color, size),\n      ]}\n    >\n      {badge && (\n        <StyledBadge\n          borderRadius=\"standard\"\n          fontWeight=\"semibold\"\n          css={css`\n            position: absolute;\n            padding: 2px;\n            font-size: 10px;\n            width: 23px;\n            text-align: center;\n            top: -6px;\n            right: -6px;\n          `}\n          tone={badge.tone}\n        >\n          {badge.count >= 100 ? \"99+\" : badge.count}\n        </StyledBadge>\n      )}\n      {children}\n    </span>\n  );\n};\n", "function ExternalWindowIcon(props: React.SVGProps<SVGSVGElement>) {\n  return (\n    <svg className=\"icon-external-window\" viewBox=\"0 0 24 24\" {...props}>\n      <path\n        d=\"M12 8a1 1 0 01-1 1H5v10h10v-6a1 1 0 012 0v6a2 2 0 01-2 2H5a2 2 0 01-2-2V9c0-1.1.9-2 2-2h6a1 1 0 011 1z\"\n        className=\"primary\"\n      />\n      <path\n        d=\"M19 6.41L8.7 16.71a1 1 0 11-1.4-1.42L17.58 5H14a1 1 0 010-2h6a1 1 0 011 1v6a1 1 0 01-2 0V6.41z\"\n        className=\"secondary\"\n      />\n    </svg>\n  );\n}\n\nexport default ExternalWindowIcon;\n", "import { ReactNode } from \"react\";\nimport { Box } from \"./Box\";\nimport { Heading, HeadingProps } from \"./Heading\";\nimport { HeadingLink } from \"./HeadingLink\";\n\nexport type CardHeaderProps = {\n  action?: ReactNode;\n  avatar?: ReactNode;\n  subtitle?: string;\n} & HeadingProps;\n\nexport const CardHeader = ({\n  action,\n  avatar,\n  children,\n  subtitle,\n  ...headingProps\n}: CardHeaderProps) => {\n  let HeadingComp: any = Heading;\n  if (headingProps.href) {\n    HeadingComp = HeadingLink;\n  }\n  return (\n    <Box\n      display=\"flex\"\n      alignItems=\"center\"\n      paddingX=\"standard\"\n      paddingY=\"small\"\n    >\n      {avatar && (\n        <Box display=\"flex\" alignItems=\"center\">\n          {avatar}\n        </Box>\n      )}\n      <Box flex=\"1\" ml={avatar ? \"standard\" : \"none\"}>\n        <HeadingComp margin=\"none\" fontSize=\"large\" {...headingProps}>\n          {children}\n        </HeadingComp>\n        {subtitle && (\n          <Box fontSize=\"small\" as=\"span\">\n            {subtitle}\n          </Box>\n        )}\n      </Box>\n      {action && (\n        <Box display=\"flex\" alignItems=\"center\">\n          {action}\n        </Box>\n      )}\n    </Box>\n  );\n};\n", "import { ClassNames } from \"@emotion/react\";\nimport { darken, transparentize } from \"polished\";\nimport { KeyboardEvent, MouseEvent, ReactNode, useEffect } from \"react\";\nimport ReactModal, { Props } from \"react-modal\";\nimport { Card } from \"./Card\";\nimport { useTheme } from \"./hooks/useTheme\";\n\nexport type ModalProps = {\n  /**\n   * Determines if the modal is visible or not.\n   */\n  open?: boolean;\n  onClose?: (event: MouseEvent | KeyboardEvent) => void;\n  /**\n   * React Modal's accessibility string.\n   */\n  contentLabel?: string;\n  children?: ReactNode;\n  /**\n   * The element that should be used as root for the\n   * React portal used to display the modal. See\n   * http://reactcommunity.org/react-modal/accessibility/#app-element\n   */\n  appElement?: string | HTMLElement;\n} & Partial<Omit<Props, \"appElement\">>;\n\nexport const TRANSITION_DURATION = 200;\nconst TOP_MARGIN = \"10vh\";\nconst TRANSFORM_Y_FLOATING = \"10vh\";\nconst FLOATING_TRANSITION = `${TRANSITION_DURATION}ms ease-in-out`;\nconst FIXED_TRANSITION = `${TRANSITION_DURATION}ms cubic-bezier(0, 0.37, 0.64, 1)`;\n\nconst makeQuery = (breakpoint: string) => {\n  return `@media screen and (min-width: ${breakpoint})`;\n};\n\n/**\n * Wrapper component for ReactModal. Uses the Card component\n * to wrap content passed as the children prop. Don't forget to set\n * the aria prop when using this.\n * http://reactcommunity.org/react-modal/accessibility/#aria\n */\nexport const Modal = ({\n  open = true,\n  onClose = () => {},\n  contentLabel = \"Modal\",\n  appElement = \"#patches-root\",\n  children,\n  ...props\n}: ModalProps) => {\n  const [theme] = useTheme();\n\n  useEffect(() => {\n    // in testing there is not appElement. Therefore, this would throw an error.\n    if (process.env.NODE_ENV !== \"test\") {\n      ReactModal.setAppElement(appElement);\n    }\n  }, [appElement]);\n\n  return (\n    <ClassNames>\n      {({ css }) => {\n        // React Modal styles\n        // https://reactcommunity.org/react-modal/styles/classes/\n\n        const className = {\n          base: css`\n            label: modal;\n            outline: none;\n            bottom: 0;\n            max-height: 80vh;\n            -webkit-overflow-scrolling: touch;\n            overflow-y: auto;\n            position: fixed;\n            transform: translateY(100%);\n            transition: transform ${FIXED_TRANSITION};\n            width: 100%;\n            width: 100vw;\n\n            ${makeQuery(theme.breakpoints[0].toString())} {\n              transition: transform ${FLOATING_TRANSITION},\n                opacity ${FLOATING_TRANSITION};\n              margin: ${TOP_MARGIN} auto auto;\n              max-height: 90vh;\n              max-width: 90%;\n              min-width: 450px;\n              opacity: 0;\n              position: relative;\n              transform: translateY(${TRANSFORM_Y_FLOATING});\n            }\n            ${makeQuery(theme.breakpoints[1].toString())} {\n              max-width: 720px;\n            }\n          `,\n          afterOpen: css`\n            label: modal--after-open;\n            transform: translateY(0);\n\n            ${makeQuery(theme.breakpoints[0].toString())} {\n              opacity: 1;\n              transform: translateY(0);\n            }\n          `,\n          beforeClose: css`\n            label: modal--before-close;\n            transform: translateY(100%);\n            ${makeQuery(theme.breakpoints[0].toString())} {\n              opacity: 0;\n              transform: translateY(${TRANSFORM_Y_FLOATING});\n            }\n          `,\n        };\n\n        const overlayClassName = {\n          base: css`\n            label: modal__overlay;\n            background: ${transparentize(\n              0.8,\n              darken(0.8, theme.colors.background)\n            )};\n            bottom: 0;\n            left: 0;\n            opacity: 0;\n            position: fixed;\n            right: 0;\n            top: 0;\n            transition: opacity 200ms ease-in-out;\n            z-index: ${theme.zIndices[50]};\n            ${makeQuery(theme.breakpoints[0].toString())} {\n              -webkit-overflow-scrolling: touch;\n              overflow-y: auto;\n            }\n          `,\n          afterOpen: css`\n            label: modal__overlay--after-open;\n            opacity: 1;\n          `,\n          beforeClose: css`\n            label: modal__overlay--before-close;\n            opacity: 0;\n          `,\n        };\n\n        const reactModalProps = {\n          isOpen: open,\n          className,\n          overlayClassName,\n          htmlOpenClassName: \"ReactModal__Html--open\",\n          shouldCloseOnOverlayClick: true,\n          contentLabel,\n          onRequestClose: onClose,\n          closeTimeoutMS: TRANSITION_DURATION,\n          ...props,\n        };\n        return (\n          <ReactModal {...reactModalProps}>\n            <Card boxShadow=\"xlarge\">{children}</Card>\n          </ReactModal>\n        );\n      }}\n    </ClassNames>\n  );\n};\n", "import { ReactNode } from \"react\";\nimport { Box, BoxProps } from \"./Box\";\n\nexport type CardProps = {\n  boxShadow?: BoxProps[\"boxShadow\"];\n  borderRadius?: BoxProps[\"borderRadius\"];\n  children?: ReactNode;\n};\n\nexport const Card = ({\n  boxShadow = \"standard\",\n  borderRadius = \"standard\",\n  children,\n}: CardProps) => {\n  return (\n    <Box\n      boxShadow={boxShadow}\n      borderRadius={borderRadius}\n      overflow=\"hidden\"\n      backgroundColor=\"card\"\n    >\n      {children}\n    </Box>\n  );\n};\n", "import { useEffect, useRef } from 'react'\n\nexport const useFirstRender = () => {\n  const firstRender = useRef(true)\n\n  useEffect(() => {\n    firstRender.current = false\n  }, [])\n\n  return firstRender.current\n}\n", "import { useCallback, useLayoutEffect, useMemo } from \"react\";\n\nconst animationTimeout = 300;\n\nconst entranceTransition = \"transform 0.2s ease, opacity 0.2s ease\";\nconst exitTransition = \"opacity 0.1s ease\";\n\ninterface Transform {\n  property: \"opacity\" | \"transform\" | \"scale\";\n  from?: string;\n  to?: string;\n}\n\nconst animate = (\n  element: HTMLElement,\n  transforms: Transform[],\n  transition: string,\n  done?: () => void\n) => {\n  const fallbackTimeout = setTimeout(() => {\n    if (done) {\n      done();\n    }\n  }, animationTimeout);\n\n  transforms.forEach(({ property, from = \"\" }) => {\n    element.style.setProperty(property, from);\n  });\n  element.style.setProperty(\"transition\", \"\");\n\n  const transitionEndHandler = (ev: TransitionEvent) => {\n    if (ev.target !== element) {\n      return;\n    }\n\n    element.style.setProperty(\"transition\", \"\");\n\n    if (done) {\n      done();\n    }\n\n    element.removeEventListener(\"transitionend\", transitionEndHandler);\n\n    clearTimeout(fallbackTimeout);\n  };\n\n  element.addEventListener(\"transitionend\", transitionEndHandler);\n\n  window.requestAnimationFrame(() => {\n    window.requestAnimationFrame(() => {\n      element.style.setProperty(\"transition\", transition);\n\n      transforms.forEach(({ property, to = \"\" }) => {\n        element.style.setProperty(property, to);\n      });\n    });\n  });\n};\n\nexport const useFlipList = () => {\n  const refs = useMemo(() => new Map<string, HTMLElement | null>(), []);\n  const positions = useMemo(() => new Map<string, number>(), []);\n\n  useLayoutEffect(() => {\n    const animations: Array<{\n      element: HTMLElement;\n      transforms: Transform[];\n      transition: string;\n    }> = [];\n\n    Array.from(refs.entries()).forEach(([id, element]) => {\n      if (element) {\n        const prevTop = positions.get(id);\n        const { top, height } = element.getBoundingClientRect();\n\n        if (typeof prevTop === \"number\" && prevTop !== top) {\n          // Move animation\n          animations.push({\n            element,\n            transition: entranceTransition,\n            transforms: [\n              {\n                property: \"transform\",\n                from: `translateY(${prevTop - top}px)`,\n              },\n            ],\n          });\n        } else if (typeof prevTop !== \"number\") {\n          // Enter animation\n          animations.push({\n            element,\n            transition: entranceTransition,\n            transforms: [\n              {\n                property: \"transform\",\n                from: `translateY(${height}px)`,\n              },\n              {\n                property: \"opacity\",\n                from: \"0\",\n              },\n            ],\n          });\n        }\n\n        positions.set(id, element.getBoundingClientRect().top);\n      } else {\n        refs.delete(id);\n      }\n    });\n\n    animations.forEach(({ element, transforms, transition }) => {\n      animate(element, transforms, transition);\n    });\n  });\n\n  const remove = useCallback(\n    (id: string, cb: () => void) => {\n      const element = refs.get(id);\n\n      if (element) {\n        // Removal animation\n        animate(\n          element,\n          [\n            {\n              property: \"opacity\",\n              to: \"0\",\n            },\n          ],\n          exitTransition,\n          cb\n        );\n      }\n    },\n    [refs]\n  );\n\n  const itemRef = useCallback(\n    (id: string) => (ref: HTMLElement | null) => {\n      refs.set(id, ref);\n    },\n    [refs]\n  );\n\n  return {\n    itemRef,\n    remove,\n  };\n};\n", "/**\n * @see https://github.com/JakeGinnivan/merge-refs-hook\n */\nimport React from 'react'\n\nfunction setRefs<T>(ref: React.Ref<T>, value: T) {\n  if (typeof ref === 'function') {\n    ref(value)\n  } else if (ref) {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    ;(ref as any).current = value\n  }\n}\n\nexport function useMergeRefs<ForwardRef, LocalRef extends ForwardRef>(\n  forwardedRef: React.Ref<ForwardRef>,\n  localRef: React.Ref<LocalRef>,\n): (instance: LocalRef | null) => void {\n  return React.useCallback(\n    (value) => {\n      setRefs(forwardedRef, value)\n      setRefs(localRef, value)\n    },\n    [forwardedRef, localRef],\n  )\n}\n", "import { useMedia } from \"./useMedia\";\n\nexport type usePrefersDarkModeProps = {};\n\nexport const usePrefersDarkMode = ({}: usePrefersDarkModeProps) => {\n  return useMedia([\"(prefers-color-scheme: dark\"], [true], false);\n};\n", "import { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport type useTimeoutProps = {\n  onTimeout: () => void;\n  duration: number;\n};\nexport const useTimeout = ({ onTimeout, duration }: useTimeoutProps) => {\n  const [activated, setActivated] = useState(true);\n  const timeoutRef = useRef<number | undefined>();\n\n  const stopTimeout = useCallback(() => {\n    window.clearTimeout(timeoutRef.current);\n    setActivated(false);\n  }, []);\n\n  useEffect(() => {\n    if (activated) {\n      timeoutRef.current = window.setTimeout(() => {\n        onTimeout();\n      }, duration);\n\n      return () => {\n        stopTimeout();\n      };\n    }\n\n    return () => {};\n  }, [onTimeout, activated, duration, stopTimeout]);\n\n  const startTimeout = useCallback(() => {\n    setActivated(true);\n  }, []);\n\n  return {\n    stopTimeout,\n    startTimeout,\n  };\n};\n"],
  "mappings": "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",
  "names": []
}
