{"version":3,"sources":["../../../src/Modal/VisualModal/VisualModal.tsx","../../../src/utilities/Absolute/Absolute.tsx","../../../src/utilities/Absolute/Absolute.hooks.ts","../../../src/utilities/Clay/Clay.tsx","../../../src/utilities/Flex/Flex.tsx","../../../src/utilities/Portal/Portal.tsx","../../../src/Modal/Modal.overlay.tsx","../../../src/Badge/Badge.tsx","../../../src/Badge/Badge.css.ts","../../../src/Typography/Typography.tsx","../../../src/Heading/Heading.tsx","../../../src/Heading/Heading.css.ts","../../../src/Modal/Modal.css.ts","../../../src/Modal/Modal.providers.tsx","../../../src/Modal/VisualModal/VisualModal.body.tsx","../../../src/Modal/VisualModal/VisualModal.container.tsx","../../../src/Modal/VisualModal/VisualModal.footer.tsx","../../../src/Modal/VisualModal/VisualModal.header.tsx","../../../src/Modal/VisualModal/VisualModal.visual.tsx"],"names":["useListenKeyboard","useScrollLock","cloneElement","isValidElement","useEffect","useState","useAbsolute","to","position","align","setDomRect","callback","x","height","y","width","style","fixedProperty","unFixedProperty","fixedAxisValue","fixedRelativeValue","alignAxisValue","alignRelativeValue","Absolute","children","offsetX","offsetY","autoMinWidth","floatStyle","__spreadProps","__spreadValues","vars","forwardRef","jsx","Clay","_a","ref","_b","className","_hover","_active","_after","_before","_focus","size","shape","sx","as","native","props","__objRest","ClayNameSpace","_Flex","Flex","_FlexCenter","FlexCenter","_FlexColumn","FlexColumn","FlexNameSpace","createPortal","Portal","container","absoluteProps","useLayoutEffect","useRef","css","primaryCSS","secondaryCSS","criticalCSS","sizeDefaultCSS","sizeLargeCSS","sizeSmallCSS","sizeVariant","typeVariant","dotPrimaryCSS","dotSecondaryCSS","dotCriticalCSS","dotTypeVariant","dotSmallSizeCSS","dotMediumSizeCSS","dotLargeSizeCSS","dotLargeBoldSizeCSS","dotSizeVariant","Badge","text","type","on","state","restProps","BadgeDot","classNames","_Typography","semanticToken","variant","colorToken","whiteSpace","numOfLine","textAlign","Typography","headingRecipe","jsxs","Heading","subtle","root","textVariant","HeadingBadge","HeadingNameSpace","keyframes","modalSizeMap","overlayAnimation","contentAnimation","createContext","useContext","SetCloseModalContext","ModalProvider","setClose","ModalOverlay","closeOnBackdrop","VisualModalBody","VisualModalContainer","e","VisualModalFooter","VisualModalHeader","_VisualModalVisual","restClayProps","VisualModalVisual","VisualModal","closeOnEsc","isOpen","VisualModalNamespace"],"mappings":"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","sourcesContent":["import { useListenKeyboard, useScrollLock } from \"@imwebme/clay-hooks\";\nimport { Portal } from \"../../utilities\";\nimport { ModalOverlay } from \"../Modal.overlay\";\nimport { ModalProvider } from \"../Modal.providers\";\nimport { VisualModalBody } from \"./VisualModal.body\";\nimport { VisualModalContainer } from \"./VisualModal.container\";\nimport { VisualModalFooter } from \"./VisualModal.footer\";\nimport { VisualModalHeader } from \"./VisualModal.header\";\nimport type { VisualModalProps } from \"./VisualModal.types\";\nimport { VisualModalVisual } from \"./VisualModal.visual\";\n\nconst VisualModal = ({\n  closeOnEsc = true,\n  setClose,\n  isOpen,\n  closeOnBackdrop,\n  children,\n  width,\n}: VisualModalProps) => {\n  useScrollLock({ enable: isOpen });\n\n  useListenKeyboard({\n    key: \"Escape\",\n    handler: setClose,\n    enable: closeOnEsc,\n  });\n\n  return isOpen ? (\n    <Portal>\n      <ModalProvider setClose={setClose}>\n        <ModalOverlay closeOnBackdrop={closeOnBackdrop} setClose={setClose}>\n          <VisualModalContainer width={width}>{children}</VisualModalContainer>\n        </ModalOverlay>\n      </ModalProvider>\n    </Portal>\n  ) : null;\n};\n\nconst VisualModalNamespace = Object.assign(VisualModal, {\n  /**\n   * Clay가 wrapper이기 때문에, height, width 다양한 커스텀이 가능합니다.\n   */\n  Visual: VisualModalVisual,\n  Header: VisualModalHeader,\n  Body: VisualModalBody,\n  Footer: VisualModalFooter,\n});\n\nexport { VisualModalNamespace as VisualModal };\n","import { cloneElement, isValidElement } from \"react\";\nimport { useAbsolute } from \"./Absolute.hooks\";\nimport type { AbsoluteProps } from \"./Absolute.types\";\n\n/**\n * children 요소를 `to` props로 전달받은 요소를 기준으로 띄우는 역할입니다.\n *\n * 기본 position 이 `absolute` 로 설정되어 있어, 부모 요소에 영향을 받습니다.\n *\n * 만약 부모 요소와 관계 없이 화면에서 자유롭게 위치를 설정하고 싶다면, `Portal.Absolute` 또는 `Portal`과 함께 사용해주세요\n *\n * > Docs의 예시는 ref가 깨져서 `show code` 용으로만 확인해주시면 됩니다.\n */\nexport const Absolute = ({\n  to,\n  children,\n  position = \"bottom\",\n  align = \"start\",\n  offsetX = \"0px\",\n  offsetY = \"0px\",\n  autoMinWidth = false,\n}: AbsoluteProps) => {\n  const floatStyle = useAbsolute({ to, position, align });\n\n  if (!floatStyle || !isValidElement<HTMLElement>(children)) return null;\n\n  const floated = cloneElement(children, {\n    style: {\n      ...children.props.style,\n      position: \"fixed\",\n      minWidth: autoMinWidth ? \"auto\" : \"max-content\",\n      top: \"0\",\n      left: \"0\",\n      zIndex: \"var(--clay-zIndex-modal)\",\n      transform: `translate(calc(${floatStyle.computedX} + ${offsetX}), calc(${floatStyle.computedY} + ${offsetY}))`,\n    },\n  });\n\n  return floated;\n};\n","import { useEffect, useState } from \"react\";\nimport type { AbsoluteProps } from \"./Absolute.types\";\n\nexport const useAbsolute = ({\n  to,\n  position,\n  align,\n}: Pick<AbsoluteProps, \"align\" | \"position\" | \"to\">): {\n  computedX: string;\n  computedY: string;\n} | null => {\n  const [, setDomRect] = useState<undefined | DOMRect>();\n\n  useEffect(() => {\n    const callback = () => {\n      if (to) setDomRect(to.getBoundingClientRect());\n    };\n\n    window.addEventListener(\"scroll\", callback, { passive: true, capture: false });\n\n    return () => {\n      window.removeEventListener(\"scroll\", callback);\n    };\n  }, [to]);\n\n  if (!to) return null;\n\n  const { x, height, y, width } = to.getBoundingClientRect();\n\n  const style = {\n    computedY: \"\",\n    computedX: \"\",\n  };\n\n  let fixedProperty: \"computedY\" | \"computedX\" = \"computedY\";\n  let unFixedProperty: \"computedY\" | \"computedX\" = \"computedX\";\n  let fixedAxisValue = y;\n  let fixedRelativeValue = height;\n  let alignAxisValue = x;\n  let alignRelativeValue = width;\n\n  if (position === \"left\" || position === \"right\") {\n    fixedProperty = \"computedX\";\n    unFixedProperty = \"computedY\";\n    fixedAxisValue = x;\n    fixedRelativeValue = width;\n    alignAxisValue = y;\n    alignRelativeValue = height;\n  }\n\n  if (position === \"left\" || position === \"top\")\n    style[fixedProperty] = `calc(-100% + ${fixedAxisValue}px)`;\n  else style[fixedProperty] = `${fixedAxisValue + fixedRelativeValue}px`;\n\n  if (align === \"start\") {\n    style[unFixedProperty] = `${alignAxisValue}px`;\n  }\n\n  if (align === \"center\") {\n    style[unFixedProperty] = `calc(${alignAxisValue + alignRelativeValue / 2}px - 50%)`;\n  }\n\n  if (align === \"end\") {\n    style[unFixedProperty] = `calc(${alignAxisValue + alignRelativeValue}px - 100%)`;\n  }\n\n  return style;\n};\n","/** @jsxImportSource @emotion/react */\n\nimport { vars } from \"@imwebme/clay-token\";\nimport type { ComponentPropsWithRef, ElementType, ReactElement } from \"react\";\nimport { forwardRef } from \"react\";\nimport type { ClayProps } from \"./Clay.types\";\n\nexport type ClayComponent = <C extends ElementType = \"div\">(\n  props: ClayProps<C> & {\n    ref?: ComponentPropsWithRef<C>[\"ref\"];\n  },\n) => ReactElement | null;\n\nconst Clay: ClayComponent = forwardRef(\n  <E extends ElementType>(\n    {\n      children,\n      className,\n      _hover,\n      _active,\n      _after,\n      _before,\n      _focus,\n      size,\n      width,\n      height,\n      shape,\n      sx,\n      as,\n      native,\n      ...props\n    }: ClayProps<E>,\n    ref: ComponentPropsWithRef<E>[\"ref\"],\n  ) => {\n    const Element = as || \"div\";\n\n    return (\n      <Element\n        ref={ref}\n        className={className}\n        css={{\n          width: size || width,\n          height: size || height,\n          ...(shape === \"circle\" && {\n            borderRadius: vars.rounded.full,\n          }),\n          \"&:hover\": _hover,\n          \"&:active\": _active,\n          \"&:after\": _after,\n          \"&:before\": _before,\n          \"&:focus\": _focus,\n          ...props,\n          ...sx,\n        }}\n        {...native}\n      >\n        {children}\n      </Element>\n    );\n  },\n);\n\nconst ClayNameSpace = Object.assign(Clay, { displayName: \"Clay\" });\n\nexport { ClayNameSpace as Clay };\n","import type { ComponentPropsWithRef, ElementType } from \"react\";\nimport { forwardRef } from \"react\";\nimport { Clay } from \"../Clay\";\nimport type { ClayComponent, ClayProps } from \"../Clay/Clay.types\";\n\nconst _Flex: ClayComponent = forwardRef(\n  <Element extends ElementType>(\n    props: ClayProps<Element>,\n    ref: ComponentPropsWithRef<Element>[\"ref\"],\n  ) => <Clay ref={ref} display=\"flex\" {...props} />,\n);\n\nconst Flex = Object.assign(_Flex, { displayName: \"Flex\" });\n\nconst _FlexCenter: ClayComponent = forwardRef(\n  <Element extends ElementType>(\n    props: ClayProps<Element>,\n    ref: ComponentPropsWithRef<Element>[\"ref\"],\n  ) => <Flex ref={ref} alignItems=\"center\" justifyContent=\"center\" {...props} />,\n);\n\nconst FlexCenter = Object.assign(_FlexCenter, { displayName: \"Flex.Center\" });\n\nconst _FlexColumn: ClayComponent = forwardRef(\n  <Element extends ElementType>(\n    { as = \"div\" as any, ...props }: ClayProps<Element>,\n    ref: ComponentPropsWithRef<Element>[\"ref\"],\n  ) => <Flex ref={ref} as={as} flexDirection=\"column\" {...props} />,\n);\n\nconst FlexColumn = Object.assign(_FlexColumn, { displayName: \"Flex.Column\" });\n\n/**\n * @deprecated Use `Flex.Column` instead\n */\nexport const Stack = FlexColumn;\n\nconst FlexNameSpace = Object.assign(Flex, { Center: FlexCenter, Column: FlexColumn });\n\nexport { FlexNameSpace as Flex };\n","import { isValidElement } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport type { AbsoluteProps } from \"../Absolute\";\nimport { Absolute } from \"../Absolute\";\nimport type { PortalProps } from \"./Portal.types\";\n\nexport const Portal = ({ children, container = globalThis?.document?.body }: PortalProps) => {\n  if (!container || !isValidElement(children)) return null;\n\n  return createPortal(children, container);\n};\n\nPortal.Absolute = ({ children, ...absoluteProps }: AbsoluteProps) => (\n  <Portal>\n    <Absolute {...absoluteProps}>{children}</Absolute>\n  </Portal>\n);\n","/** @jsxImportSource @emotion/react */\n\nimport { vars } from \"@imwebme/clay-token\";\nimport type { PropsWithChildren } from \"react\";\nimport { useLayoutEffect, useRef } from \"react\";\nimport type { ModalProps } from \"..\";\nimport { Flex } from \"..\";\nimport { overlayAnimation } from \"./Modal.css\";\n\nexport const ModalOverlay = ({\n  children,\n  closeOnBackdrop,\n  setClose,\n}: PropsWithChildren<Pick<ModalProps, \"closeOnBackdrop\" | \"setClose\">>) => {\n  const ref = useRef<HTMLDivElement>(null);\n\n  useLayoutEffect(() => {\n    if (ref.current) ref.current.focus();\n  }, []);\n\n  return (\n    <Flex.Center\n      ref={ref}\n      position=\"fixed\"\n      top={0}\n      left={0}\n      right={0}\n      bottom={0}\n      zIndex=\"var(--clay-zIndex-modal)\"\n      padding=\"32px\"\n      background={vars.semantic.color.backdrop}\n      animation={`${overlayAnimation} 0.1s ease-out`}\n      native={{\n        tabIndex: -1,\n        onClick: () => {\n          if (closeOnBackdrop) {\n            setClose();\n          }\n        },\n      }}\n    >\n      {children}\n    </Flex.Center>\n  );\n};\n\nModalOverlay.displayName = \"ModalOverlay\";\n","/** @jsxImportSource @emotion/react */\n\nimport { vars } from \"@imwebme/clay-token\";\nimport { Clay } from \"..\";\nimport { dotSizeVariant, dotTypeVariant, sizeVariant, typeVariant } from \"./Badge.css\";\nimport type { BadgeDotProp, BadgeProps } from \"./Badge.types\";\n\n/**\n * @deprecated `Badge` 컴포넌트는 더 이상 사용되지 않습니다. `Badge` 컴포넌트 대신 `NumberBadge` / `DotBadge` 컴포넌트를 사용해주세요.\n */\nexport const Badge = ({\n  text,\n  type,\n  on = false,\n  size = \"default\",\n  state = \"default\",\n  ...restProps\n}: BadgeProps) => {\n  return (\n    <Clay\n      display=\"inline-block\"\n      borderRadius={vars.rounded.full}\n      native={{\n        \"data-clay-badge-on\": on,\n        \"data-clay-badge-state\": state,\n      }}\n      height=\"fit-content\"\n      width=\"fit-content\"\n      transition=\"all 0.3s ease-out\"\n      css={[sizeVariant[size], typeVariant[type]]}\n      {...restProps}\n    >\n      {text}\n    </Clay>\n  );\n};\n\nconst BadgeDot = ({ size, type, sx }: BadgeDotProp) => (\n  <Clay\n    css={[\n      {\n        outlineColor: \"white\",\n        borderRadius: \"50%\",\n        outlineStyle: \"solid\",\n      },\n      dotTypeVariant[type],\n      dotSizeVariant[size],\n      sx,\n    ]}\n  />\n);\n\nBadge.Dot = BadgeDot;\n","import type { SerializedStyles } from \"@emotion/react\";\nimport { css } from \"@emotion/react\";\nimport { vars } from \"@imwebme/clay-token\";\nimport type { BadgeProps } from \".\";\n\nconst primaryCSS = css({\n  background: vars.semantic.color.layerSelected,\n  color: vars.semantic.color.textPrimary,\n\n  \"&[data-clay-badge-state='hover']\": {\n    background: vars.semantic.color.layerSelectedHover,\n  },\n\n  \"&[data-clay-badge-on='true']\": {\n    color: vars.semantic.color.textOn,\n    background: vars.color.imBlue[600],\n  },\n\n  \"&[data-clay-badge-state='disabled']\": {\n    color: vars.semantic.color.textDisabled,\n    background: vars.semantic.color.surfaceSub,\n  },\n});\n\nconst secondaryCSS = css({\n  background: vars.semantic.color.surfaceSub,\n  color: vars.semantic.color.textSub,\n\n  \"&[data-clay-badge-state='hover']\": {\n    background: vars.semantic.color.actionPrimaryDisabled,\n  },\n\n  \"&[data-clay-badge-on='true']\": {\n    color: vars.semantic.color.textOn,\n    background: vars.color.imBlue[600],\n  },\n\n  \"&[data-clay-badge-state='disabled']\": {\n    color: vars.semantic.color.textDisabled,\n    background: vars.semantic.color.surfaceSub,\n  },\n});\n\nconst criticalCSS = css({\n  background: vars.semantic.color.surfaceCritical,\n  color: vars.semantic.color.textCritical,\n\n  \"&[data-clay-badge-state='hover']\": {\n    // 똑같음\n  },\n\n  \"&[data-clay-badge-on='true']\": {\n    color: vars.semantic.color.textOn,\n    background: \"#D34\",\n  },\n\n  \"&[data-clay-badge-state='disabled']\": {\n    color: vars.semantic.color.textDisabled,\n    background: vars.semantic.color.surfaceSub,\n  },\n});\n\nconst sizeDefaultCSS = css({\n  padding: `${vars.spacing[\"05\"]} ${vars.spacing[\"15\"]}`,\n  minWidth: \"20px\",\n  ...vars.semantic.typography[\"label-small\"],\n});\n\nconst sizeLargeCSS = css({\n  padding: `0 ${vars.spacing[\"15\"]}`,\n  minWidth: \"24px\",\n  ...vars.semantic.typography[\"label-medium\"],\n});\n\nconst sizeSmallCSS = css({\n  padding: `${vars.spacing[\"1\"]} ${vars.spacing[\"15\"]}`,\n  minWidth: \"20px\",\n  ...vars.semantic.typography[\"label-xsmall\"],\n});\n\nexport const sizeVariant = {\n  default: sizeDefaultCSS,\n  large: sizeLargeCSS,\n  small: sizeSmallCSS,\n};\n\nexport const typeVariant: Record<BadgeProps[\"type\"], SerializedStyles> = {\n  primary: primaryCSS,\n  critical: criticalCSS,\n  secondary: secondaryCSS,\n};\n\nconst dotPrimaryCSS = css({\n  background: vars.semantic.color.iconAccent,\n});\n\nconst dotSecondaryCSS = css({\n  background: vars.semantic.color.icon,\n});\n\nconst dotCriticalCSS = css({\n  background: vars.semantic.color.iconCritical,\n});\n\nexport const dotTypeVariant = {\n  primary: dotPrimaryCSS,\n  critical: dotCriticalCSS,\n  secondary: dotSecondaryCSS,\n};\n\nconst dotSmallSizeCSS = css({\n  width: \"6px\",\n  height: \"6px\",\n  outlineWidth: \"2px\",\n});\n\nconst dotMediumSizeCSS = css({\n  width: \"8px\",\n  height: \"8px\",\n  outlineWidth: \"2px\",\n});\n\nconst dotLargeSizeCSS = css({\n  width: \"10px\",\n  height: \"10px\",\n  outlineWidth: \"2px\",\n});\n\nconst dotLargeBoldSizeCSS = css({\n  width: \"10px\",\n  height: \"10px\",\n  outlineWidth: \"3px\",\n});\n\nexport const dotSizeVariant = {\n  small: dotSmallSizeCSS,\n  medium: dotMediumSizeCSS,\n  large: dotLargeSizeCSS,\n  largeBold: dotLargeBoldSizeCSS,\n};\n","/** @jsxImportSource @emotion/react */\n\nimport { classNames, vars } from \"@imwebme/clay-token\";\nimport type { ElementType, Ref } from \"react\";\nimport { forwardRef } from \"react\";\nimport type { TypographyProps } from \"./Typography.types\";\n\n/**\n * token은 두 가지 방법으로 넣어줄 수 있습니다. semanticToken, variant\n * 값은 body-medium이 default 입니다.\n */\nconst _Typography = <Element extends ElementType>(\n  {\n    as,\n    semanticToken,\n    variant = \"body-medium\",\n    className = \"\",\n    colorToken = \"text\",\n    children,\n    whiteSpace,\n    numOfLine,\n    sx,\n    textAlign,\n    native,\n  }: TypographyProps<Element>,\n  ref: Ref<HTMLElement>,\n) => {\n  const Element = as || \"p\";\n\n  return (\n    <Element\n      className={`${classNames.typography[semanticToken || variant]} ${className}`}\n      ref={ref as any}\n      css={{\n        color: vars.semantic.color[colorToken],\n        ...(numOfLine && {\n          display: \"-webkit-box\",\n          overflow: \"hidden\",\n          textOverflow: \"ellipsis\",\n          WebkitBoxOrient: \"vertical\",\n          WebkitLineClamp: numOfLine,\n        }),\n        whiteSpace,\n        textAlign,\n        ...sx,\n      }}\n      {...native}\n    >\n      {children}\n    </Element>\n  );\n};\n\nexport const Typography = forwardRef(_Typography);\n\nTypography.displayName = \"Typography\";\n","import { vars } from \"@imwebme/clay-token\";\nimport type { ComponentPropsWithRef } from \"react\";\nimport { forwardRef } from \"react\";\nimport type { BadgeProps } from \"../Badge\";\nimport { Badge } from \"../Badge\";\nimport { Typography } from \"../Typography\";\nimport { Flex } from \"../utilities\";\nimport { headingRecipe } from \"./Heading.css\";\nimport type { HeadingProps } from \"./Heading.types\";\n\n/**\n * Badge를 사용할 경우 children으로 주입해주어야 합니다.\n *\n * @example\n * <Heading>\n *    <Heading.Badge text=\"56\" type=\"variant\" />\n * </Heading>\n */\nconst Heading = forwardRef(\n  (\n    { size, text, subtle, align, children, className, sx, as = \"div\", native }: HeadingProps,\n    ref: ComponentPropsWithRef<\"div\">[\"ref\"],\n  ) => {\n    const { root, textVariant } = headingRecipe({ size });\n\n    return (\n      <Flex.Column\n        as={as}\n        ref={ref}\n        native={native}\n        className={className}\n        sx={sx}\n        {...root}\n        {...(align === \"center\" && { textAlign: \"center\" })}\n      >\n        <Flex alignItems=\"center\" textAlign=\"inherit\" gap={vars.spacing[1]}>\n          <Typography\n            sx={{ flex: align === \"center\" ? 1 : 0 }}\n            variant={textVariant}\n            whiteSpace=\"pre\"\n          >\n            {text}\n          </Typography>\n\n          {children}\n        </Flex>\n\n        {subtle && (\n          <Typography colorToken=\"textSub\" variant=\"body-medium\" whiteSpace=\"pre\">\n            {subtle}\n          </Typography>\n        )}\n      </Flex.Column>\n    );\n  },\n);\n\nconst HeadingBadge = (props: Omit<BadgeProps, \"size\">) => <Badge size=\"default\" {...props} />;\n\nconst HeadingNameSpace = Object.assign(Heading, { Badge: HeadingBadge });\n\nexport { HeadingNameSpace as Heading };\n","import { vars } from \"@imwebme/clay-token\";\nimport type { CSSProperties } from \"react\";\nimport type { TypographyProps } from \"../Typography/Typography.types\";\nimport type { HeadingProps } from \"./Heading.types\";\n\nexport const headingRecipe = ({\n  size,\n}: Pick<HeadingProps, \"size\">): {\n  textVariant: TypographyProps<\"p\">[\"variant\"];\n  root: CSSProperties;\n} => {\n  switch (size) {\n    case \"small\":\n      return {\n        root: {\n          gap: vars.spacing[3],\n        },\n        textVariant: \"heading-medium-bold\",\n      };\n\n    case \"medium\":\n      return {\n        root: {\n          gap: vars.spacing[1],\n        },\n        textVariant: \"heading-large-bold\",\n      };\n\n    case \"large\":\n      return {\n        root: {\n          gap: vars.spacing[2],\n        },\n        textVariant: \"heading-xlarge-bold\",\n      };\n\n    default:\n      return {\n        root: {\n          gap: vars.spacing[3],\n        },\n        textVariant: \"heading-2xlarge-bold\",\n      };\n  }\n};\n","import { keyframes } from \"@emotion/react\";\nimport { vars } from \"@imwebme/clay-token\";\nimport type { ModalContainerProps } from \"./Modal.types\";\n\nexport const modalSizeMap = {\n  medium: \"540px\",\n  full: \"100%\",\n  large: \"720px\",\n  small: \"380px\",\n} satisfies Record<ModalContainerProps[\"width\"], string>;\n\nexport const overlayAnimation = keyframes`\n  from {\n    background-color: transparent;\n  }\n\n  to {\n    background: ${vars.semantic.color.backdrop};\n  }\n`;\n\nexport const contentAnimation = keyframes`\n    from {\n        transform: translateY(30px);\n        opacity: 0;\n    }\n\n    to {     \n        transform: translateY(0);\n        opacity: 1;\n    }\n`;\n","import type { PropsWithChildren } from \"react\";\nimport { createContext, useContext } from \"react\";\n\nconst SetCloseModalContext = createContext<VoidFunction>(() => null);\n\nexport const ModalProvider = ({\n  setClose,\n  children,\n}: PropsWithChildren<{\n  setClose: VoidFunction;\n}>) => {\n  return <SetCloseModalContext.Provider value={setClose}>{children}</SetCloseModalContext.Provider>;\n};\n\nexport const useCloseModal = () => useContext(SetCloseModalContext);\n","import { vars } from \"@imwebme/clay-token\";\nimport type { PropsWithChildren, Ref } from \"react\";\nimport { forwardRef } from \"react\";\nimport { Clay } from \"../../utilities\";\n\nexport const VisualModalBody = forwardRef((props: PropsWithChildren, ref: Ref<HTMLDivElement>) => {\n  return (\n    <Clay ref={ref} textAlign=\"center\" paddingLeft={vars.spacing[6]} paddingRight={vars.spacing[6]}>\n      {props.children}\n    </Clay>\n  );\n});\n\nVisualModalBody.displayName = \"VisualModalBody\";\n","import { vars } from \"@imwebme/clay-token\";\nimport type { Ref } from \"react\";\nimport { forwardRef } from \"react\";\nimport { Flex } from \"../../utilities\";\nimport { contentAnimation, modalSizeMap } from \"../Modal.css\";\nimport type { VisualModalContainerProps } from \"./VisualModal.types\";\n\nexport const VisualModalContainer = forwardRef(\n  ({ width, children }: VisualModalContainerProps, ref: Ref<HTMLDivElement>) => {\n    return (\n      <Flex.Column\n        ref={ref}\n        backgroundColor={vars.semantic.color.surface}\n        native={{ role: \"dialog\", onClick: (e) => e.stopPropagation() }}\n        borderRadius={vars.rounded.xlarge}\n        overflow=\"hidden\"\n        width={modalSizeMap[width]}\n        boxShadow={vars.dropShadow.modal}\n        animation={`${contentAnimation} 0.2s ease-out`}\n        gap={vars.spacing[6]}\n      >\n        {children}\n      </Flex.Column>\n    );\n  },\n);\n","import { vars } from \"@imwebme/clay-token\";\nimport type { PropsWithChildren, Ref } from \"react\";\nimport { forwardRef } from \"react\";\nimport { Flex } from \"../..\";\n\nexport const VisualModalFooter = forwardRef(\n  (props: PropsWithChildren, ref: Ref<HTMLDivElement>) => {\n    return (\n      <Flex.Column\n        ref={ref}\n        gap={vars.spacing[4]}\n        padding={`0 ${vars.spacing[6]} ${vars.spacing[4]}`}\n      >\n        {props.children}\n      </Flex.Column>\n    );\n  },\n);\n\nVisualModalFooter.displayName = \"VisualModalFooter\";\n","import { vars } from \"@imwebme/clay-token\";\nimport { Heading } from \"../../Heading\";\nimport type { HeadingProps } from \"../../Heading/Heading.types\";\n\nexport const VisualModalHeader = (props: Omit<HeadingProps, \"size\" | \"children\" | \"align\">) => {\n  return (\n    <Heading\n      align=\"center\"\n      size=\"large\"\n      sx={{\n        paddingLeft: vars.spacing[6],\n        paddingRight: vars.spacing[6],\n      }}\n      {...props}\n    />\n  );\n};\n","import type { ElementType, Ref } from \"react\";\nimport { forwardRef } from \"react\";\nimport type { ClayProps } from \"../../utilities\";\nimport { Clay } from \"../../utilities\";\n\nexport const _VisualModalVisual = <Element extends ElementType>(\n  { children, ...restClayProps }: ClayProps<Element>,\n  ref: Ref<HTMLElement>,\n) => {\n  return (\n    <Clay width=\"100%\" height=\"300px\" ref={ref} {...restClayProps}>\n      {children}\n    </Clay>\n  );\n};\n\nexport const VisualModalVisual = forwardRef(_VisualModalVisual);\n\nVisualModalVisual.displayName = \"VisualModalVisual\";\n"]}