{"version":3,"sources":["../src/slide.tsx"],"sourcesContent":["import { cx } from \"@chakra-ui/shared-utils\"\nimport {\n  AnimatePresence,\n  HTMLMotionProps,\n  motion,\n  MotionStyle,\n  Variants as TVariants,\n} from \"framer-motion\"\nimport { forwardRef } from \"react\"\nimport {\n  SlideDirection,\n  getSlideTransition,\n  TRANSITION_EASINGS,\n  Variants,\n  withDelay,\n  WithTransitionConfig,\n} from \"./transition-utils\"\n\nexport type { SlideDirection }\n\nconst defaultTransition = {\n  exit: {\n    duration: 0.15,\n    ease: TRANSITION_EASINGS.easeInOut,\n  },\n  enter: {\n    type: \"spring\",\n    damping: 25,\n    stiffness: 180,\n  },\n}\n\nconst variants: Variants<SlideOptions> = {\n  exit: ({ direction, transition, transitionEnd, delay }) => {\n    const { exit: exitStyles } = getSlideTransition({ direction })\n    return {\n      ...exitStyles,\n      transition:\n        transition?.exit ?? withDelay.exit(defaultTransition.exit, delay),\n      transitionEnd: transitionEnd?.exit,\n    }\n  },\n  enter: ({ direction, transitionEnd, transition, delay }) => {\n    const { enter: enterStyles } = getSlideTransition({ direction })\n    return {\n      ...enterStyles,\n      transition:\n        transition?.enter ?? withDelay.enter(defaultTransition.enter, delay),\n      transitionEnd: transitionEnd?.enter,\n    }\n  },\n}\n\nexport interface SlideOptions {\n  /**\n   * The direction to slide from\n   * @default \"right\"\n   */\n  direction?: SlideDirection\n}\n\nexport interface SlideProps\n  extends WithTransitionConfig<HTMLMotionProps<\"div\">>,\n    SlideOptions {\n  motionProps?: HTMLMotionProps<\"div\">\n}\n\nexport const Slide = forwardRef<HTMLDivElement, SlideProps>(function Slide(\n  props,\n  ref,\n) {\n  const {\n    direction = \"right\",\n    style,\n    unmountOnExit,\n    in: isOpen,\n    className,\n    transition,\n    transitionEnd,\n    delay,\n    motionProps,\n    ...rest\n  } = props\n\n  const transitionStyles = getSlideTransition({ direction })\n  const computedStyle: MotionStyle = Object.assign(\n    { position: \"fixed\" },\n    transitionStyles.position,\n    style,\n  )\n\n  const show = unmountOnExit ? isOpen && unmountOnExit : true\n  const animate = isOpen || unmountOnExit ? \"enter\" : \"exit\"\n\n  const custom = { transitionEnd, transition, direction, delay }\n\n  return (\n    <AnimatePresence custom={custom}>\n      {show && (\n        <motion.div\n          {...rest}\n          ref={ref}\n          initial=\"exit\"\n          className={cx(\"chakra-slide\", className)}\n          animate={animate}\n          exit=\"exit\"\n          custom={custom}\n          variants={variants as TVariants}\n          style={computedStyle}\n          {...motionProps}\n        />\n      )}\n    </AnimatePresence>\n  )\n})\n\nSlide.displayName = \"Slide\"\n"],"mappings":";;;;;;;;AAAA,SAAS,UAAU;AACnB;AAAA,EACE;AAAA,EAEA;AAAA,OAGK;AACP,SAAS,kBAAkB;AA2FnB;AA/ER,IAAM,oBAAoB;AAAA,EACxB,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,MAAM,mBAAmB;AAAA,EAC3B;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,WAAW;AAAA,EACb;AACF;AAEA,IAAM,WAAmC;AAAA,EACvC,MAAM,CAAC,EAAE,WAAW,YAAY,eAAe,MAAM,MAAM;AAjC7D;AAkCI,UAAM,EAAE,MAAM,WAAW,IAAI,mBAAmB,EAAE,UAAU,CAAC;AAC7D,WAAO;AAAA,MACL,GAAG;AAAA,MACH,aACE,8CAAY,SAAZ,YAAoB,UAAU,KAAK,kBAAkB,MAAM,KAAK;AAAA,MAClE,eAAe,+CAAe;AAAA,IAChC;AAAA,EACF;AAAA,EACA,OAAO,CAAC,EAAE,WAAW,eAAe,YAAY,MAAM,MAAM;AA1C9D;AA2CI,UAAM,EAAE,OAAO,YAAY,IAAI,mBAAmB,EAAE,UAAU,CAAC;AAC/D,WAAO;AAAA,MACL,GAAG;AAAA,MACH,aACE,8CAAY,UAAZ,YAAqB,UAAU,MAAM,kBAAkB,OAAO,KAAK;AAAA,MACrE,eAAe,+CAAe;AAAA,IAChC;AAAA,EACF;AACF;AAgBO,IAAM,QAAQ,WAAuC,SAASA,OACnE,OACA,KACA;AACA,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,IAAI;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,mBAAmB,mBAAmB,EAAE,UAAU,CAAC;AACzD,QAAM,gBAA6B,OAAO;AAAA,IACxC,EAAE,UAAU,QAAQ;AAAA,IACpB,iBAAiB;AAAA,IACjB;AAAA,EACF;AAEA,QAAM,OAAO,gBAAgB,UAAU,gBAAgB;AACvD,QAAM,UAAU,UAAU,gBAAgB,UAAU;AAEpD,QAAM,SAAS,EAAE,eAAe,YAAY,WAAW,MAAM;AAE7D,SACE,oBAAC,mBAAgB,QACd,kBACC;AAAA,IAAC,OAAO;AAAA,IAAP;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,SAAQ;AAAA,MACR,WAAW,GAAG,gBAAgB,SAAS;AAAA,MACvC;AAAA,MACA,MAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACN,GAAG;AAAA;AAAA,EACN,GAEJ;AAEJ,CAAC;AAED,MAAM,cAAc;","names":["Slide"]}