{"version":3,"file":"timer.cjs","sources":["../../../src/components/timer.tsx"],"sourcesContent":["import React, { type ReactElement, useEffect, useState } from \"react\";\nimport { Typography, type TypographyProps } from \"./typography\";\nimport Clock from \"../icons/clock\";\nimport { mergedCva } from \"../utils/components\";\nimport { getDurationFromNowToUNIXTimestamp } from \"../utils/date\";\n\nconst rootStyles = mergedCva([\"cui-flex\", \"cui-gap-2\", \"cui-items-center\"]);\n\nconst iconStyles = mergedCva([\n    \"cui-text-black\",\n    \"dark:cui-text-white\",\n    \"cui-w-5\",\n    \"cui-h-5\",\n]);\n\nexport interface TimerProps {\n    to: number;\n    icon?: boolean;\n    countdown?: boolean;\n    variant?: TypographyProps[\"variant\"];\n    seconds?: boolean;\n    className?: {\n        root?: string;\n        icon?: string;\n    };\n}\n\nexport const Timer = ({\n    to,\n    countdown,\n    variant,\n    icon,\n    seconds,\n    className,\n}: TimerProps): ReactElement => {\n    const [duration, setDuration] = useState(\n        getDurationFromNowToUNIXTimestamp(to),\n    );\n\n    useEffect(() => {\n        if (!countdown) return;\n        const timer = setInterval(() => {\n            setDuration(getDurationFromNowToUNIXTimestamp(to));\n        }, 1_000);\n        return () => {\n            clearInterval(timer);\n        };\n    }, [countdown, duration, to]);\n\n    return (\n        <Typography\n            variant={variant}\n            className={{ root: rootStyles({ className: className?.root }) }}\n        >\n            {icon && (\n                <Clock className={iconStyles({ className: className?.icon })} />\n            )}\n            {duration.format(\n                seconds ? \"DD[D] HH[H] mm[M] ss[S]\" : \"DD[D] HH[H] mm[M]\",\n            )}\n        </Typography>\n    );\n};\n"],"names":["mergedCva","useState","getDurationFromNowToUNIXTimestamp","useEffect","Typography","Clock"],"mappings":";;;;;;;;AAMA,MAAM,aAAaA,oBAAU,CAAA,CAAC,UAAY,EAAA,WAAA,EAAa,kBAAkB,CAAC,CAAA,CAAA;AAE1E,MAAM,aAAaA,oBAAU,CAAA;AAAA,EACzB,gBAAA;AAAA,EACA,qBAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AACJ,CAAC,CAAA,CAAA;AAcM,MAAM,QAAQ,CAAC;AAAA,EAClB,EAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AACJ,CAAgC,KAAA;AAC5B,EAAM,MAAA,CAAC,QAAU,EAAA,WAAW,CAAI,GAAAC,cAAA;AAAA,IAC5BC,uCAAkC,EAAE,CAAA;AAAA,GACxC,CAAA;AAEA,EAAAC,eAAA,CAAU,MAAM;AACZ,IAAA,IAAI,CAAC,SAAA;AAAW,MAAA,OAAA;AAChB,IAAM,MAAA,KAAA,GAAQ,YAAY,MAAM;AAC5B,MAAY,WAAA,CAAAD,sCAAA,CAAkC,EAAE,CAAC,CAAA,CAAA;AAAA,OAClD,GAAK,CAAA,CAAA;AACR,IAAA,OAAO,MAAM;AACT,MAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAAA,KACvB,CAAA;AAAA,GACD,EAAA,CAAC,SAAW,EAAA,QAAA,EAAU,EAAE,CAAC,CAAA,CAAA;AAE5B,EACI,uBAAA,KAAA,CAAA,aAAA;AAAA,IAACE,qBAAA;AAAA,IAAA;AAAA,MACG,OAAA;AAAA,MACA,SAAA,EAAW,EAAE,IAAM,EAAA,UAAA,CAAW,EAAE,SAAW,EAAA,SAAA,EAAW,IAAK,EAAC,CAAE,EAAA;AAAA,KAAA;AAAA,IAE7D,IAAA,oBACI,KAAA,CAAA,aAAA,CAAAC,KAAA,EAAA,EAAM,SAAW,EAAA,UAAA,CAAW,EAAE,SAAW,EAAA,SAAA,EAAW,IAAK,EAAC,CAAG,EAAA,CAAA;AAAA,IAEjE,QAAS,CAAA,MAAA;AAAA,MACN,UAAU,yBAA4B,GAAA,mBAAA;AAAA,KAC1C;AAAA,GACJ,CAAA;AAER;;;;"}