{"version":3,"file":"date.cjs","sources":["../../../src/utils/date.ts"],"sourcesContent":["import dayjs, { Dayjs } from 'dayjs';\n// NOTE: Explicit `.js` extension in dayjs\n// to ensure strict ESM compatibility for\n// consumers using \"type\": \"module\".\n// E.g. if the package doesn’t define subpaths\n// in exports resolution would fail in ESM environments\n// TODO: Maybe create a vite plugin to detect\n// if a package has missing exports and add extension\nimport advancedFormat from 'dayjs/plugin/advancedFormat.js';\nimport customParseFormat from 'dayjs/plugin/customParseFormat.js';\nimport duration from 'dayjs/plugin/duration.js';\nimport localizedFormat from 'dayjs/plugin/localizedFormat.js';\nimport relativeTime from 'dayjs/plugin/relativeTime.js';\nimport timezone from 'dayjs/plugin/timezone.js';\nimport updateLocale from 'dayjs/plugin/updateLocale.js';\nimport utc from 'dayjs/plugin/utc.js';\n\nconst thresholds = [\n  { l: 's', r: 1, d: 'second' },\n  { l: 'ss', r: 56, d: 'second' },\n  { l: 'm', r: 90, d: 'second' },\n  { l: 'mm', r: 55, d: 'minute' },\n  { l: 'h', r: 90, d: 'minute' },\n  { l: 'hh', r: 22, d: 'hour' },\n  { l: 'd', r: 40, d: 'hour' },\n  { l: 'dd', r: 31, d: 'day' },\n  { l: 'M', r: 45, d: 'day' },\n  { l: 'MM', r: 11, d: 'month' },\n  { l: 'y', r: 17, d: 'month' },\n  { l: 'yy', r: 2, d: 'year' },\n];\n\ndayjs.extend(advancedFormat);\ndayjs.extend(customParseFormat);\ndayjs.extend(duration);\ndayjs.extend(localizedFormat);\ndayjs.extend(timezone);\ndayjs.extend(updateLocale);\ndayjs.extend(utc);\ndayjs.extend(relativeTime, { thresholds });\n\ndayjs.updateLocale('en', {\n  relativeTime: {\n    future: 'In %s',\n    past: '%s ago',\n    s: 'a few seconds',\n    ss: '%d seconds',\n    m: '1 minute',\n    mm: '%d minutes',\n    h: '1 hour',\n    hh: '%d hours',\n    d: '1 day',\n    dd: '%d days',\n    w: '1 week',\n    ww: '%d weeks',\n    M: '1 month',\n    MM: '%d months',\n    y: '1 year',\n    yy: '%d years',\n  },\n});\n\nexport { dayjs };\nexport type { Dayjs };\n\nconst DEFAULT_DATE_LOCALE = 'en-US';\n\nexport const formatTimezone = ({\n  date,\n  timezone,\n  locale = DEFAULT_DATE_LOCALE,\n}: {\n  date: Dayjs;\n  timezone?: string;\n  locale?: string;\n}): string =>\n  new Intl.DateTimeFormat(locale, {\n    timeZone: timezone,\n    timeZoneName: 'short',\n  })\n    .formatToParts(date.toDate())\n    .find(part => part.type === 'timeZoneName')?.value ?? date.format('z');\n\nexport const DAYS = 'days';\nexport const MONTHS = 'months';\nexport const YEARS = 'years';\n\nexport const DAYS_IN_WEEK = 7;\n\ntype MonthNamesFormat = 'short' | 'long';\n\nexport const getMonthNames = (format: MonthNamesFormat = 'long') =>\n  Array.from({ length: 12 }, (_, i) =>\n    new Date(1970, i).toLocaleString(DEFAULT_DATE_LOCALE, { month: format })\n  );\n"],"names":["dayjs","advancedFormat","customParseFormat","duration","localizedFormat","timezone","updateLocale","utc","relativeTime"],"mappings":"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"}