{"version":3,"sources":["../src/scale-fade.tsx"],"sourcesContent":["import type { ThemeProps } from \"@yamada-ui/core\"\nimport type {\n  MotionProps,\n  MotionTransitionVariants,\n  MotionVariants,\n  WithTransitionProps,\n} from \"@yamada-ui/motion\"\nimport { omitThemeProps, useComponentStyle } from \"@yamada-ui/core\"\nimport {\n  AnimatePresence,\n  motion,\n  motionForwardRef,\n  transitionEnter,\n  transitionExit,\n} from \"@yamada-ui/motion\"\nimport { cx } from \"@yamada-ui/utils\"\n\nconst variants: MotionVariants = {\n  enter: ({ delay, duration, enter, transition, transitionEnd } = {}) => ({\n    opacity: 1,\n    scale: 1,\n    transition: transitionEnter(transition?.enter)(delay, duration),\n    transitionEnd: transitionEnd?.enter,\n    ...enter,\n  }),\n  exit: ({\n    delay,\n    duration,\n    exit,\n    reverse,\n    scale,\n    transition,\n    transitionEnd,\n  } = {}) => ({\n    opacity: 0,\n    transition: transitionExit(transition?.exit)(delay, duration),\n    ...(reverse\n      ? { scale, transitionEnd: transitionEnd?.exit }\n      : { transitionEnd: { scale, ...transitionEnd?.exit } }),\n    ...exit,\n  }),\n} satisfies MotionTransitionVariants\n\nexport const scaleFadeProps = {\n  animate: \"enter\",\n  exit: \"exit\",\n  initial: \"exit\",\n  variants,\n}\n\ninterface ScaleFadeOptions {\n  /**\n   * If `true`, the element will transition back to exit state.\n   *\n   * @default true\n   */\n  reverse?: boolean\n  /**\n   * The initial scale of the element.\n   *\n   * @default 0.95\n   */\n  scale?: number\n}\n\nexport interface ScaleFadeProps\n  extends WithTransitionProps<Omit<MotionProps, \"scale\">>,\n    ScaleFadeOptions,\n    ThemeProps<\"ScaleFade\"> {}\n\n/**\n * `ScaleFade` is a component that gradually scales up to reveal or scales down to hide an element.\n *\n * @see Docs https://yamada-ui.com/components/transitions/scale-fade\n */\nexport const ScaleFade = motionForwardRef<ScaleFadeProps, \"div\">(\n  (props, ref) => {\n    const [style, mergedProps] = useComponentStyle(\"ScaleFade\", props)\n    const {\n      className,\n      delay,\n      duration,\n      isOpen,\n      open = isOpen,\n      reverse,\n      scale,\n      transition,\n      transitionEnd,\n      unmountOnExit,\n      ...rest\n    } = omitThemeProps(mergedProps)\n    const animate = open || unmountOnExit ? \"enter\" : \"exit\"\n    const custom = {\n      delay,\n      duration,\n      reverse,\n      scale,\n      transition,\n      transitionEnd,\n    }\n    const resolvedOpen = unmountOnExit ? open && unmountOnExit : true\n\n    return (\n      <AnimatePresence custom={custom}>\n        {resolvedOpen ? (\n          <motion.div\n            ref={ref}\n            className={cx(\"ui-scale-fade\", className)}\n            custom={custom}\n            {...scaleFadeProps}\n            animate={animate}\n            __css={style}\n            {...rest}\n          />\n        ) : null}\n      </AnimatePresence>\n    )\n  },\n)\n\nScaleFade.displayName = \"ScaleFade\"\nScaleFade.__ui__ = \"ScaleFade\"\n"],"mappings":";;;AAOA,SAAS,gBAAgB,yBAAyB;AAClD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,UAAU;AA0FT;AAxFV,IAAM,WAA2B;AAAA,EAC/B,OAAO,CAAC,EAAE,OAAO,UAAU,OAAO,YAAY,cAAc,IAAI,CAAC,OAAO;AAAA,IACtE,SAAS;AAAA,IACT,OAAO;AAAA,IACP,YAAY,gBAAgB,yCAAY,KAAK,EAAE,OAAO,QAAQ;AAAA,IAC9D,eAAe,+CAAe;AAAA,IAC9B,GAAG;AAAA,EACL;AAAA,EACA,MAAM,CAAC;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,CAAC,OAAO;AAAA,IACV,SAAS;AAAA,IACT,YAAY,eAAe,yCAAY,IAAI,EAAE,OAAO,QAAQ;AAAA,IAC5D,GAAI,UACA,EAAE,OAAO,eAAe,+CAAe,KAAK,IAC5C,EAAE,eAAe,EAAE,OAAO,GAAG,+CAAe,KAAK,EAAE;AAAA,IACvD,GAAG;AAAA,EACL;AACF;AAEO,IAAM,iBAAiB;AAAA,EAC5B,SAAS;AAAA,EACT,MAAM;AAAA,EACN,SAAS;AAAA,EACT;AACF;AA2BO,IAAM,YAAY;AAAA,EACvB,CAAC,OAAO,QAAQ;AACd,UAAM,CAAC,OAAO,WAAW,IAAI,kBAAkB,aAAa,KAAK;AACjE,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,IAAI,eAAe,WAAW;AAC9B,UAAM,UAAU,QAAQ,gBAAgB,UAAU;AAClD,UAAM,SAAS;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,UAAM,eAAe,gBAAgB,QAAQ,gBAAgB;AAE7D,WACE,oBAAC,mBAAgB,QACd,yBACC;AAAA,MAAC,OAAO;AAAA,MAAP;AAAA,QACC;AAAA,QACA,WAAW,GAAG,iBAAiB,SAAS;AAAA,QACxC;AAAA,QACC,GAAG;AAAA,QACJ;AAAA,QACA,OAAO;AAAA,QACN,GAAG;AAAA;AAAA,IACN,IACE,MACN;AAAA,EAEJ;AACF;AAEA,UAAU,cAAc;AACxB,UAAU,SAAS;","names":[]}