{"version":3,"file":"index.mjs","sources":["../../../../packages/hooks/use-delayed-toggle/index.ts"],"sourcesContent":["import { unref } from 'vue'\nimport { useTimeout } from '../use-timeout'\n\nimport type { ToRefs, ExtractPropTypes } from 'vue'\n\nexport const useDelayedToggleProps = {\n  showAfter: {\n    type: Number,\n    default: 0,\n  },\n  hideAfter: {\n    type: Number,\n    default: 200,\n  },\n} as const\n\nexport type UseDelayedToggleProps = {\n  open: () => void\n  close: () => void\n} & ToRefs<ExtractPropTypes<typeof useDelayedToggleProps>>\n\nexport const useDelayedToggle = ({\n  showAfter,\n  hideAfter,\n  open,\n  close,\n}: UseDelayedToggleProps) => {\n  const { registerTimeout } = useTimeout()\n\n  const onOpen = () => {\n    registerTimeout(() => {\n      open()\n    }, unref(showAfter))\n  }\n\n  const onClose = () => {\n    registerTimeout(() => {\n      close()\n    }, unref(hideAfter))\n  }\n\n  return {\n    onOpen,\n    onClose,\n  }\n}\n"],"names":[],"mappings":";;;AAKO,MAAM,qBAAwB,GAAA;AAAA,EACnC,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,CAAA;AAAA,GACX;AAAA,EACA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,GAAA;AAAA,GACX;AACF,EAAA;AAOO,MAAM,mBAAmB,CAAC;AAAA,EAC/B,SAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AACF,CAA6B,KAAA;AAC3B,EAAM,MAAA,EAAE,eAAgB,EAAA,GAAI,UAAW,EAAA,CAAA;AAEvC,EAAA,MAAM,SAAS,MAAM;AACnB,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAK,IAAA,EAAA,CAAA;AAAA,KACP,EAAG,KAAM,CAAA,SAAS,CAAC,CAAA,CAAA;AAAA,GACrB,CAAA;AAEA,EAAA,MAAM,UAAU,MAAM;AACpB,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAM,KAAA,EAAA,CAAA;AAAA,KACR,EAAG,KAAM,CAAA,SAAS,CAAC,CAAA,CAAA;AAAA,GACrB,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,MAAA;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACF;;;;"}