{"version":3,"sources":["../src/scale-fade.tsx"],"sourcesContent":["import { cx } from \"@chakra-ui/shared-utils\"\nimport {\n AnimatePresence,\n HTMLMotionProps,\n motion,\n Variants as _Variants,\n} from \"framer-motion\"\nimport { forwardRef } from \"react\"\nimport {\n TRANSITION_DEFAULTS,\n Variants,\n withDelay,\n WithTransitionConfig,\n} from \"./transition-utils\"\n\ninterface ScaleFadeOptions {\n /**\n * The initial scale of the element\n * @default 0.95\n */\n initialScale?: number\n /**\n * If `true`, the element will transition back to exit state\n * @default true\n */\n reverse?: boolean\n}\n\nconst variants: Variants = {\n exit: ({ reverse, initialScale, transition, transitionEnd, delay }) => ({\n opacity: 0,\n ...(reverse\n ? { scale: initialScale, transitionEnd: transitionEnd?.exit }\n : { transitionEnd: { scale: initialScale, ...transitionEnd?.exit } }),\n transition:\n transition?.exit ?? withDelay.exit(TRANSITION_DEFAULTS.exit, delay),\n }),\n enter: ({ transitionEnd, transition, delay }) => ({\n opacity: 1,\n scale: 1,\n transition:\n transition?.enter ?? withDelay.enter(TRANSITION_DEFAULTS.enter, delay),\n transitionEnd: transitionEnd?.enter,\n }),\n}\n\nexport const scaleFadeConfig: HTMLMotionProps<\"div\"> = {\n initial: \"exit\",\n animate: \"enter\",\n exit: \"exit\",\n variants: variants as _Variants,\n}\n\nexport interface ScaleFadeProps\n extends ScaleFadeOptions,\n WithTransitionConfig> {}\n\nexport const ScaleFade = forwardRef(\n function ScaleFade(props, ref) {\n const {\n unmountOnExit,\n in: isOpen,\n reverse = true,\n initialScale = 0.95,\n className,\n transition,\n transitionEnd,\n delay,\n ...rest\n } = props\n\n const show = unmountOnExit ? isOpen && unmountOnExit : true\n const animate = isOpen || unmountOnExit ? \"enter\" : \"exit\"\n\n const custom = { initialScale, reverse, transition, transitionEnd, delay }\n\n return (\n \n {show && (\n \n )}\n \n )\n },\n)\n\nScaleFade.displayName = \"ScaleFade\"\n"],"mappings":";;;;;;;AAAA,SAAS,UAAU;AACnB;AAAA,EACE;AAAA,EAEA;AAAA,OAEK;AACP,SAAS,kBAAkB;AAwEjB;AAnDV,IAAM,WAAuC;AAAA,EAC3C,MAAM,CAAC,EAAE,SAAS,cAAc,YAAY,eAAe,MAAM,MAAG;AA7BtE;AA6B0E;AAAA,MACtE,SAAS;AAAA,MACT,GAAI,UACA,EAAE,OAAO,cAAc,eAAe,+CAAe,KAAK,IAC1D,EAAE,eAAe,EAAE,OAAO,cAAc,GAAG,+CAAe,KAAK,EAAE;AAAA,MACrE,aACE,8CAAY,SAAZ,YAAoB,UAAU,KAAK,oBAAoB,MAAM,KAAK;AAAA,IACtE;AAAA;AAAA,EACA,OAAO,CAAC,EAAE,eAAe,YAAY,MAAM,MAAG;AArChD;AAqCoD;AAAA,MAChD,SAAS;AAAA,MACT,OAAO;AAAA,MACP,aACE,8CAAY,UAAZ,YAAqB,UAAU,MAAM,oBAAoB,OAAO,KAAK;AAAA,MACvE,eAAe,+CAAe;AAAA,IAChC;AAAA;AACF;AAEO,IAAM,kBAA0C;AAAA,EACrD,SAAS;AAAA,EACT,SAAS;AAAA,EACT,MAAM;AAAA,EACN;AACF;AAMO,IAAM,YAAY;AAAA,EACvB,SAASA,WAAU,OAAO,KAAK;AAC7B,UAAM;AAAA,MACJ;AAAA,MACA,IAAI;AAAA,MACJ,UAAU;AAAA,MACV,eAAe;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,IAAI;AAEJ,UAAM,OAAO,gBAAgB,UAAU,gBAAgB;AACvD,UAAM,UAAU,UAAU,gBAAgB,UAAU;AAEpD,UAAM,SAAS,EAAE,cAAc,SAAS,YAAY,eAAe,MAAM;AAEzE,WACE,oBAAC,mBAAgB,QACd,kBACC;AAAA,MAAC,OAAO;AAAA,MAAP;AAAA,QACC;AAAA,QACA,WAAW,GAAG,uBAAuB,SAAS;AAAA,QAC7C,GAAG;AAAA,QACJ;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,IACN,GAEJ;AAAA,EAEJ;AACF;AAEA,UAAU,cAAc;","names":["ScaleFade"]}