@zag-js/i18n-utils 0.70.0 → 0.71.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +13 -54
- package/dist/index.mjs +4 -20
- package/package.json +2 -2
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,36 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
'use strict';
|
|
19
2
|
|
|
20
|
-
|
|
21
|
-
var src_exports = {};
|
|
22
|
-
__export(src_exports, {
|
|
23
|
-
formatBytes: () => formatBytes,
|
|
24
|
-
formatDate: () => formatDate,
|
|
25
|
-
formatList: () => formatList,
|
|
26
|
-
formatNumber: () => formatNumber,
|
|
27
|
-
formatRelativeTime: () => formatRelativeTime,
|
|
28
|
-
getDefaultLocale: () => getDefaultLocale,
|
|
29
|
-
getLocaleDir: () => getLocaleDir,
|
|
30
|
-
isRTL: () => isRTL,
|
|
31
|
-
trackLocale: () => trackLocale
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(src_exports);
|
|
3
|
+
var domQuery = require('@zag-js/dom-query');
|
|
34
4
|
|
|
35
5
|
// src/cache.ts
|
|
36
6
|
function i18nCache(Ins) {
|
|
@@ -402,41 +372,30 @@ function getLocaleDir(locale) {
|
|
|
402
372
|
// src/locale.ts
|
|
403
373
|
function getDefaultLocale() {
|
|
404
374
|
let locale = typeof navigator !== "undefined" && (navigator.language || navigator.userLanguage) || "en-US";
|
|
405
|
-
try {
|
|
406
|
-
Intl.DateTimeFormat.supportedLocalesOf([locale]);
|
|
407
|
-
} catch {
|
|
408
|
-
locale = "en-US";
|
|
409
|
-
}
|
|
410
375
|
return {
|
|
411
376
|
locale,
|
|
412
377
|
dir: isRTL(locale) ? "rtl" : "ltr"
|
|
413
378
|
};
|
|
414
379
|
}
|
|
415
|
-
|
|
416
|
-
// src/track-locale.ts
|
|
417
|
-
var import_dom_query = require("@zag-js/dom-query");
|
|
418
380
|
function trackLocale(options = {}) {
|
|
419
381
|
const { getRootNode, onLocaleChange } = options;
|
|
420
382
|
onLocaleChange?.(getDefaultLocale());
|
|
421
383
|
const handleLocaleChange = () => {
|
|
422
384
|
onLocaleChange?.(getDefaultLocale());
|
|
423
385
|
};
|
|
424
|
-
const win = getRootNode ?
|
|
386
|
+
const win = getRootNode ? domQuery.getWindow(getRootNode()) : window;
|
|
425
387
|
win.addEventListener("languagechange", handleLocaleChange);
|
|
426
388
|
return () => {
|
|
427
389
|
win.removeEventListener("languagechange", handleLocaleChange);
|
|
428
390
|
};
|
|
429
391
|
}
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
trackLocale
|
|
441
|
-
});
|
|
442
|
-
//# sourceMappingURL=index.js.map
|
|
392
|
+
|
|
393
|
+
exports.formatBytes = formatBytes;
|
|
394
|
+
exports.formatDate = formatDate;
|
|
395
|
+
exports.formatList = formatList;
|
|
396
|
+
exports.formatNumber = formatNumber;
|
|
397
|
+
exports.formatRelativeTime = formatRelativeTime;
|
|
398
|
+
exports.getDefaultLocale = getDefaultLocale;
|
|
399
|
+
exports.getLocaleDir = getLocaleDir;
|
|
400
|
+
exports.isRTL = isRTL;
|
|
401
|
+
exports.trackLocale = trackLocale;
|
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { getWindow } from '@zag-js/dom-query';
|
|
2
|
+
|
|
1
3
|
// src/cache.ts
|
|
2
4
|
function i18nCache(Ins) {
|
|
3
5
|
const formatterCache = /* @__PURE__ */ new Map();
|
|
@@ -368,19 +370,11 @@ function getLocaleDir(locale) {
|
|
|
368
370
|
// src/locale.ts
|
|
369
371
|
function getDefaultLocale() {
|
|
370
372
|
let locale = typeof navigator !== "undefined" && (navigator.language || navigator.userLanguage) || "en-US";
|
|
371
|
-
try {
|
|
372
|
-
Intl.DateTimeFormat.supportedLocalesOf([locale]);
|
|
373
|
-
} catch {
|
|
374
|
-
locale = "en-US";
|
|
375
|
-
}
|
|
376
373
|
return {
|
|
377
374
|
locale,
|
|
378
375
|
dir: isRTL(locale) ? "rtl" : "ltr"
|
|
379
376
|
};
|
|
380
377
|
}
|
|
381
|
-
|
|
382
|
-
// src/track-locale.ts
|
|
383
|
-
import { getWindow } from "@zag-js/dom-query";
|
|
384
378
|
function trackLocale(options = {}) {
|
|
385
379
|
const { getRootNode, onLocaleChange } = options;
|
|
386
380
|
onLocaleChange?.(getDefaultLocale());
|
|
@@ -393,15 +387,5 @@ function trackLocale(options = {}) {
|
|
|
393
387
|
win.removeEventListener("languagechange", handleLocaleChange);
|
|
394
388
|
};
|
|
395
389
|
}
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
formatDate,
|
|
399
|
-
formatList,
|
|
400
|
-
formatNumber,
|
|
401
|
-
formatRelativeTime,
|
|
402
|
-
getDefaultLocale,
|
|
403
|
-
getLocaleDir,
|
|
404
|
-
isRTL,
|
|
405
|
-
trackLocale
|
|
406
|
-
};
|
|
407
|
-
//# sourceMappingURL=index.mjs.map
|
|
390
|
+
|
|
391
|
+
export { formatBytes, formatDate, formatList, formatNumber, formatRelativeTime, getDefaultLocale, getLocaleDir, isRTL, trackLocale };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zag-js/i18n-utils",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.71.0",
|
|
4
4
|
"description": "Interationalization utilities for Zag.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"clean-package": "../../../clean-package.config.json",
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@zag-js/dom-query": "0.
|
|
27
|
+
"@zag-js/dom-query": "0.71.0"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"clean-package": "2.2.0",
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/cache.ts","../src/format-number.ts","../src/format-bytes.ts","../src/format-date.ts","../src/format-list.ts","../src/format-relative-time.ts","../src/is-rtl.ts","../src/locale.ts","../src/track-locale.ts"],"sourcesContent":["export * from \"./format-bytes\"\nexport * from \"./format-date\"\nexport * from \"./format-list\"\nexport * from \"./format-number\"\nexport * from \"./format-relative-time\"\nexport { getLocaleDir, isRTL } from \"./is-rtl\"\nexport { getDefaultLocale } from \"./locale\"\nexport type { Locale } from \"./locale\"\nexport { trackLocale } from \"./track-locale\"\nexport type { LocaleOptions } from \"./track-locale\"\n","type FormatOptions<T> = T extends Intl.NumberFormat\n ? Intl.NumberFormatOptions\n : T extends Intl.DateTimeFormat\n ? Intl.DateTimeFormatOptions\n : T extends Intl.RelativeTimeFormat\n ? Intl.RelativeTimeFormatOptions\n : T extends Intl.ListFormat\n ? Intl.ListFormatOptions\n : T extends Intl.PluralRules\n ? Intl.PluralRulesOptions\n : never\n\nexport function i18nCache<T extends abstract new (...args: any) => any>(Ins: T) {\n const formatterCache = new Map<string, T>()\n\n return function create(locale: string, options?: FormatOptions<InstanceType<T>>): InstanceType<T> {\n const cacheKey =\n locale +\n (options\n ? Object.entries(options)\n .sort((a, b) => (a[0] < b[0] ? -1 : 1))\n .join()\n : \"\")\n\n if (formatterCache.has(cacheKey)) {\n return formatterCache.get(cacheKey) as any\n }\n\n // @ts-ignore\n let formatter = new Ins(locale, options)\n formatterCache.set(cacheKey, formatter)\n\n return formatter as any\n }\n}\n","import { i18nCache } from \"./cache\"\n\nconst getNumberFormatter = i18nCache(Intl.NumberFormat)\n\nexport function formatNumber(v: number, locale: string, options: Intl.NumberFormatOptions = {}) {\n const formatter = getNumberFormatter(locale, options)\n return formatter.format(v)\n}\n","import { formatNumber } from \"./format-number\"\n\nconst bitPrefixes = [\"\", \"kilo\", \"mega\", \"giga\", \"tera\"]\nconst bytePrefixes = [\"\", \"kilo\", \"mega\", \"giga\", \"tera\", \"peta\"]\n\nexport interface FormatBytesOptions {\n unit?: \"bit\" | \"byte\"\n unitDisplay?: \"long\" | \"short\" | \"narrow\"\n}\n\nexport const formatBytes = (bytes: number, locale = \"en-US\", options: FormatBytesOptions = {}) => {\n if (isNaN(bytes)) return \"\"\n if (bytes === 0) return \"0 B\"\n\n const { unit = \"byte\", unitDisplay = \"short\" } = options\n\n const prefix = unit === \"bit\" ? bitPrefixes : bytePrefixes\n const index = Math.max(0, Math.min(Math.floor(Math.log10(bytes) / 3), prefix.length - 1))\n\n const _unit = prefix[index] + unit\n const _unitDisplay = unitDisplay || \"short\"\n\n const v = parseFloat((bytes / Math.pow(1000, index)).toPrecision(3))\n\n return formatNumber(v, locale, {\n style: \"unit\",\n unit: _unit,\n unitDisplay: _unitDisplay,\n })\n}\n","const symbols = \"\\\\s|\\\\.|-|/|\\\\\\\\|,|\\\\$|\\\\!|\\\\?|:|;\"\n\nfunction createRegEx(sign: string) {\n return new RegExp(\"(^|>|\" + symbols + \")(\" + sign + \")($|<|\" + symbols + \")\", \"g\")\n}\n\n// prettier-ignore\nconst FORMATS = [\n\"G\",\"GG\",\"GGG\",\"GGGG\",\"GGGGG\",\n\"y\",\"yo\",\"yy\",\"yyy\",\"yyyy\",\n\"Y\",\"Yo\",\"YY\",\"YYY\",\"YYYY\",\n\"Q\",\"Qo\",\"QQ\",\"QQQ\",\"QQQQ\",\"QQQQQ\",\n\"M\",\"Mo\",\"MM\",\"MMM\",\"MMMM\",\"MMMMM\",\n\"E\",\"EE\",\"EEE\",\"EEEE\",\"EEEEE\",\"EEEEEE\",\n\"a\",\"aa\",\"aaa\",\"aaaa\",\"aaaaa\",\n\"d\",\"do\",\"dd\",\n\"D\",\"Do\",\"DD\",\"DDD\",\n\"w\",\"wo\",\"ww\",\n\"s\",\"so\",\"ss\",\n\"m\",\"mo\",\"mm\",\n\"h\",\"ho\",\"hh\",\n\"H\",\"Ho\",\"HH\",\n\"z\",\"zz\",\"zzz\",\"zzzz\",\n\"T\",\n] as const\n\ntype Format = (typeof FORMATS)[number]\n\ninterface FormatDateOptions {\n locale: string\n format: Format\n timeZone?: string\n}\n\nfunction ordinal(num: string | number) {\n const n = typeof num === \"string\" ? parseFloat(num) : num\n let suffix = \"th\"\n if (n % 10 === 1 && n % 100 !== 11) {\n suffix = \"st\"\n } else if (n % 10 === 2 && n % 100 !== 12) {\n suffix = \"nd\"\n } else if (n % 10 === 3 && n % 100 !== 13) {\n suffix = \"rd\"\n }\n return `${n}${suffix}`\n}\n\nfunction pad(num: number, length: number) {\n return String(num).padStart(length, \"0\")\n}\n\nfunction zone(str: string) {\n return str.split(/AM|PM/)[1].trim()\n}\n\nfunction getFormat(date: Date, options: FormatDateOptions) {\n const { locale, format, timeZone } = options\n\n switch (format) {\n // era\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return date.toLocaleString(locale, { era: \"short\" })\n case \"GGGG\":\n return date.toLocaleString(locale, { era: \"long\" })\n case \"GGGGG\":\n return date.toLocaleString(locale, { era: \"narrow\" })\n\n // year\n case \"y\":\n case \"Y\":\n return date.getFullYear()\n case \"yo\":\n case \"Yo\":\n return ordinal(date.toLocaleString(locale, { year: \"numeric\" }))\n case \"yy\":\n case \"YY\":\n return date.toLocaleString(locale, { year: \"2-digit\" })\n case \"yyy\":\n case \"YYY\":\n return date.toLocaleString(locale, { year: \"numeric\" }).padStart(3, \"0\")\n case \"yyyy\":\n case \"YYYY\":\n return date.toLocaleString(locale, { year: \"numeric\" }).padStart(4, \"0\")\n\n // quarter\n case \"Q\":\n case \"QQQQQ\":\n return Math.ceil((date.getMonth() + 1) / 3)\n case \"Qo\":\n return ordinal(Math.ceil((date.getMonth() + 1) / 3))\n case \"QQ\":\n return pad(Math.ceil((date.getMonth() + 1) / 3), 2)\n case \"QQQ\":\n return `Q${Math.ceil((date.getMonth() + 1) / 3)}`\n case \"QQQQ\": {\n const base = ordinal(String(Math.ceil((date.getMonth() + 1) / 3)))\n return `${base} quarter`\n }\n\n // month\n case \"M\":\n return date.getMonth() + 1\n case \"Mo\":\n return ordinal(date.getMonth() + 1)\n case \"MM\":\n return date.toLocaleString(locale, { month: \"2-digit\" })\n case \"MMM\":\n return date.toLocaleString(locale, { month: \"short\" })\n case \"MMMM\":\n return date.toLocaleString(locale, { month: \"long\" })\n case \"MMMMM\":\n return date.toLocaleString(locale, { month: \"narrow\" })\n\n // week\n case \"w\":\n return Math.ceil(date.getDate() / 7)\n case \"wo\":\n return ordinal(Math.ceil(date.getDate() / 7))\n case \"ww\":\n return pad(Math.ceil(date.getDate() / 7), 2)\n\n // day\n case \"d\":\n case \"D\":\n return date.getDate()\n case \"do\":\n case \"Do\":\n return ordinal(date.getDate())\n case \"dd\":\n case \"DD\":\n return date.toLocaleString(locale, { day: \"2-digit\" })\n case \"DDD\":\n return pad(date.getDate(), 3)\n\n // weekday\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return date.toLocaleString(locale, { weekday: \"short\" })\n case \"EEEE\":\n return date.toLocaleString(locale, { weekday: \"long\" })\n case \"EEEEE\":\n return date.toLocaleString(locale, { weekday: \"narrow\" })\n case \"EEEEEE\":\n return date.toLocaleString(locale, { weekday: \"short\" }).slice(0, 2)\n\n // hour\n case \"h\":\n return date.toLocaleString(locale, { hour: \"numeric\", hour12: true })\n case \"ho\":\n return ordinal(date.toLocaleString(locale, { hour: \"2-digit\", hour12: true }))\n case \"hh\":\n return date.toLocaleString(locale, { hour: \"2-digit\", hour12: true })\n case \"H\":\n return date.toLocaleString(locale, { hour: \"numeric\", hour12: false })\n case \"Ho\":\n return ordinal(+date.toLocaleString(locale, { hour: \"numeric\", hour12: false }))\n case \"HH\":\n return date.toLocaleString(locale, { hour: \"2-digit\", hour12: false })\n\n // minute\n case \"m\":\n return date.toLocaleString(locale, { minute: \"numeric\" })\n case \"mo\":\n return ordinal(date.toLocaleString(locale, { minute: \"numeric\" }))\n case \"mm\":\n return date.toLocaleString(locale, { minute: \"2-digit\" })\n\n // second\n case \"s\":\n return date.toLocaleString(locale, { second: \"numeric\" })\n case \"so\":\n return ordinal(date.toLocaleString(locale, { second: \"numeric\" }))\n case \"ss\":\n return date.toLocaleString(locale, { second: \"2-digit\" })\n\n // timestamp\n case \"T\":\n return date.getTime()\n\n // day period\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return date.toLocaleString(locale, { hour: \"numeric\", hour12: true }).toLocaleUpperCase()\n case \"aaaa\":\n return date.toLocaleString(locale, { hour: \"numeric\", hour12: true }).toLocaleLowerCase()\n case \"aaaaa\":\n return date.toLocaleString(locale, { hour: \"numeric\", hour12: true }).charAt(0)\n\n // TODO:Revise this\n case \"z\":\n case \"zz\":\n case \"zzz\": {\n return zone(date.toLocaleString(locale, { timeZone, timeZoneName: \"shortOffset\" }))\n }\n case \"zzzz\":\n return zone(date.toLocaleString(locale, { timeZone, timeZoneName: \"longOffset\" }))\n\n default:\n throw new Error(`Unknown format: ${format}`)\n }\n}\n\n/**\n * Formats a date using the given format string as defined in:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n */\nexport function formatDate(date: Date, format: string, locale: string, timeZone?: string) {\n let result = format\n for (const key of FORMATS) {\n const res = getFormat(date, { locale, format: key, timeZone })\n result = result.replace(createRegEx(key), \"$1\" + res + \"$3\")\n }\n return result\n}\n","import { i18nCache } from \"./cache\"\n\nconst getListFormatter = i18nCache(Intl.ListFormat)\n\nexport function formatList(list: string[], locale: string, options: Intl.ListFormatOptions = {}) {\n const formatter = getListFormatter(locale, options)\n return formatter.format(list)\n}\n","import { i18nCache } from \"./cache\"\n\nconst getRelativeTimeFormatter = i18nCache(Intl.RelativeTimeFormat)\n\nexport function formatRelativeTime(value: Date, locale: string, options: Intl.RelativeTimeFormatOptions = {}) {\n const rtf = getRelativeTimeFormatter(locale, options)\n\n const now = new Date()\n const diff = getDistance(now, value)\n\n if (diff.years > 0) return rtf.format(diff.years * diff.sign, \"year\")\n if (diff.months > 0) return rtf.format(diff.months * diff.sign, \"month\")\n if (diff.weeks > 0) return rtf.format(diff.weeks * diff.sign, \"week\")\n if (diff.days > 0) return rtf.format(diff.days * diff.sign, \"day\")\n if (diff.hours > 0) return rtf.format(diff.hours * diff.sign, \"hour\")\n if (diff.minutes > 0) return rtf.format(diff.minutes * diff.sign, \"minute\")\n\n return rtf.format(diff.seconds * diff.sign, \"second\")\n}\n\nconst SECOND_TO_MS = 1000\nconst MINUTE_TO_MS = 1000 * 60\nconst HOUR_TO_MS = 1000 * 60 * 60\nconst DAY_TO_MS = 1000 * 60 * 60 * 24\nconst WEEK_TO_MS = 1000 * 60 * 60 * 24 * 7\nconst MONTH_TO_MS = 1000 * 60 * 60 * 24 * 30\nconst YEAR_TO_MS = 1000 * 60 * 60 * 24 * 365\n\nfunction getDistance(startDate: Date, endDate: Date) {\n const endTime = endDate.getTime()\n const startTime = startDate.getTime()\n const distance = Math.abs(endTime - startTime)\n\n return {\n sign: Math.sign(endTime - startTime),\n days: Math.floor(distance / DAY_TO_MS),\n hours: Math.floor((distance % DAY_TO_MS) / HOUR_TO_MS),\n minutes: Math.floor((distance % HOUR_TO_MS) / MINUTE_TO_MS),\n seconds: Math.floor((distance % MINUTE_TO_MS) / SECOND_TO_MS),\n weeks: Math.floor(distance / WEEK_TO_MS),\n months: Math.floor(distance / MONTH_TO_MS),\n years: Math.floor(distance / YEAR_TO_MS),\n }\n}\n","const RTL_SCRIPTS = new Set([\n \"Avst\",\n \"Arab\",\n \"Armi\",\n \"Syrc\",\n \"Samr\",\n \"Mand\",\n \"Thaa\",\n \"Mend\",\n \"Nkoo\",\n \"Adlm\",\n \"Rohg\",\n \"Hebr\",\n])\n\nconst RTL_LANGS = new Set([\n \"ae\",\n \"ar\",\n \"arc\",\n \"bcc\",\n \"bqi\",\n \"ckb\",\n \"dv\",\n \"fa\",\n \"glk\",\n \"he\",\n \"ku\",\n \"mzn\",\n \"nqo\",\n \"pnb\",\n \"ps\",\n \"sd\",\n \"ug\",\n \"ur\",\n \"yi\",\n])\n\nexport function isRTL(locale: string) {\n if (Intl.Locale) {\n const script = new Intl.Locale(locale).maximize().script ?? \"\"\n return RTL_SCRIPTS.has(script)\n }\n\n const lang = locale.split(\"-\")[0]\n return RTL_LANGS.has(lang)\n}\n\nexport function getLocaleDir(locale: string) {\n return isRTL(locale) ? \"rtl\" : \"ltr\"\n}\n","import { isRTL } from \"./is-rtl\"\n\nexport type Direction = \"rtl\" | \"ltr\"\n\nexport interface Locale {\n locale: string\n dir: Direction\n}\n\ndeclare global {\n interface Navigator {\n userLanguage?: string\n }\n}\n\nexport function getDefaultLocale(): Locale {\n let locale = (typeof navigator !== \"undefined\" && (navigator.language || navigator.userLanguage)) || \"en-US\"\n\n try {\n Intl.DateTimeFormat.supportedLocalesOf([locale])\n } catch {\n locale = \"en-US\"\n }\n\n return {\n locale,\n dir: isRTL(locale) ? \"rtl\" : \"ltr\",\n }\n}\n","import { getWindow } from \"@zag-js/dom-query\"\nimport { getDefaultLocale, type Locale } from \"./locale\"\n\nexport interface LocaleOptions {\n locale?: string\n getRootNode?: () => ShadowRoot | Document | Node\n onLocaleChange?: (locale: Locale) => void\n}\n\nexport function trackLocale(options: LocaleOptions = {}) {\n const { getRootNode, onLocaleChange } = options\n\n onLocaleChange?.(getDefaultLocale())\n\n const handleLocaleChange = () => {\n onLocaleChange?.(getDefaultLocale())\n }\n\n const win = getRootNode ? getWindow(getRootNode()) : window\n\n win.addEventListener(\"languagechange\", handleLocaleChange)\n\n return () => {\n win.removeEventListener(\"languagechange\", handleLocaleChange)\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cache.ts","../src/format-number.ts","../src/format-bytes.ts","../src/format-date.ts","../src/format-list.ts","../src/format-relative-time.ts","../src/is-rtl.ts","../src/locale.ts","../src/track-locale.ts"],"sourcesContent":["type FormatOptions<T> = T extends Intl.NumberFormat\n ? Intl.NumberFormatOptions\n : T extends Intl.DateTimeFormat\n ? Intl.DateTimeFormatOptions\n : T extends Intl.RelativeTimeFormat\n ? Intl.RelativeTimeFormatOptions\n : T extends Intl.ListFormat\n ? Intl.ListFormatOptions\n : T extends Intl.PluralRules\n ? Intl.PluralRulesOptions\n : never\n\nexport function i18nCache<T extends abstract new (...args: any) => any>(Ins: T) {\n const formatterCache = new Map<string, T>()\n\n return function create(locale: string, options?: FormatOptions<InstanceType<T>>): InstanceType<T> {\n const cacheKey =\n locale +\n (options\n ? Object.entries(options)\n .sort((a, b) => (a[0] < b[0] ? -1 : 1))\n .join()\n : \"\")\n\n if (formatterCache.has(cacheKey)) {\n return formatterCache.get(cacheKey) as any\n }\n\n // @ts-ignore\n let formatter = new Ins(locale, options)\n formatterCache.set(cacheKey, formatter)\n\n return formatter as any\n }\n}\n","import { i18nCache } from \"./cache\"\n\nconst getNumberFormatter = i18nCache(Intl.NumberFormat)\n\nexport function formatNumber(v: number, locale: string, options: Intl.NumberFormatOptions = {}) {\n const formatter = getNumberFormatter(locale, options)\n return formatter.format(v)\n}\n","import { formatNumber } from \"./format-number\"\n\nconst bitPrefixes = [\"\", \"kilo\", \"mega\", \"giga\", \"tera\"]\nconst bytePrefixes = [\"\", \"kilo\", \"mega\", \"giga\", \"tera\", \"peta\"]\n\nexport interface FormatBytesOptions {\n unit?: \"bit\" | \"byte\"\n unitDisplay?: \"long\" | \"short\" | \"narrow\"\n}\n\nexport const formatBytes = (bytes: number, locale = \"en-US\", options: FormatBytesOptions = {}) => {\n if (isNaN(bytes)) return \"\"\n if (bytes === 0) return \"0 B\"\n\n const { unit = \"byte\", unitDisplay = \"short\" } = options\n\n const prefix = unit === \"bit\" ? bitPrefixes : bytePrefixes\n const index = Math.max(0, Math.min(Math.floor(Math.log10(bytes) / 3), prefix.length - 1))\n\n const _unit = prefix[index] + unit\n const _unitDisplay = unitDisplay || \"short\"\n\n const v = parseFloat((bytes / Math.pow(1000, index)).toPrecision(3))\n\n return formatNumber(v, locale, {\n style: \"unit\",\n unit: _unit,\n unitDisplay: _unitDisplay,\n })\n}\n","const symbols = \"\\\\s|\\\\.|-|/|\\\\\\\\|,|\\\\$|\\\\!|\\\\?|:|;\"\n\nfunction createRegEx(sign: string) {\n return new RegExp(\"(^|>|\" + symbols + \")(\" + sign + \")($|<|\" + symbols + \")\", \"g\")\n}\n\n// prettier-ignore\nconst FORMATS = [\n\"G\",\"GG\",\"GGG\",\"GGGG\",\"GGGGG\",\n\"y\",\"yo\",\"yy\",\"yyy\",\"yyyy\",\n\"Y\",\"Yo\",\"YY\",\"YYY\",\"YYYY\",\n\"Q\",\"Qo\",\"QQ\",\"QQQ\",\"QQQQ\",\"QQQQQ\",\n\"M\",\"Mo\",\"MM\",\"MMM\",\"MMMM\",\"MMMMM\",\n\"E\",\"EE\",\"EEE\",\"EEEE\",\"EEEEE\",\"EEEEEE\",\n\"a\",\"aa\",\"aaa\",\"aaaa\",\"aaaaa\",\n\"d\",\"do\",\"dd\",\n\"D\",\"Do\",\"DD\",\"DDD\",\n\"w\",\"wo\",\"ww\",\n\"s\",\"so\",\"ss\",\n\"m\",\"mo\",\"mm\",\n\"h\",\"ho\",\"hh\",\n\"H\",\"Ho\",\"HH\",\n\"z\",\"zz\",\"zzz\",\"zzzz\",\n\"T\",\n] as const\n\ntype Format = (typeof FORMATS)[number]\n\ninterface FormatDateOptions {\n locale: string\n format: Format\n timeZone?: string\n}\n\nfunction ordinal(num: string | number) {\n const n = typeof num === \"string\" ? parseFloat(num) : num\n let suffix = \"th\"\n if (n % 10 === 1 && n % 100 !== 11) {\n suffix = \"st\"\n } else if (n % 10 === 2 && n % 100 !== 12) {\n suffix = \"nd\"\n } else if (n % 10 === 3 && n % 100 !== 13) {\n suffix = \"rd\"\n }\n return `${n}${suffix}`\n}\n\nfunction pad(num: number, length: number) {\n return String(num).padStart(length, \"0\")\n}\n\nfunction zone(str: string) {\n return str.split(/AM|PM/)[1].trim()\n}\n\nfunction getFormat(date: Date, options: FormatDateOptions) {\n const { locale, format, timeZone } = options\n\n switch (format) {\n // era\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return date.toLocaleString(locale, { era: \"short\" })\n case \"GGGG\":\n return date.toLocaleString(locale, { era: \"long\" })\n case \"GGGGG\":\n return date.toLocaleString(locale, { era: \"narrow\" })\n\n // year\n case \"y\":\n case \"Y\":\n return date.getFullYear()\n case \"yo\":\n case \"Yo\":\n return ordinal(date.toLocaleString(locale, { year: \"numeric\" }))\n case \"yy\":\n case \"YY\":\n return date.toLocaleString(locale, { year: \"2-digit\" })\n case \"yyy\":\n case \"YYY\":\n return date.toLocaleString(locale, { year: \"numeric\" }).padStart(3, \"0\")\n case \"yyyy\":\n case \"YYYY\":\n return date.toLocaleString(locale, { year: \"numeric\" }).padStart(4, \"0\")\n\n // quarter\n case \"Q\":\n case \"QQQQQ\":\n return Math.ceil((date.getMonth() + 1) / 3)\n case \"Qo\":\n return ordinal(Math.ceil((date.getMonth() + 1) / 3))\n case \"QQ\":\n return pad(Math.ceil((date.getMonth() + 1) / 3), 2)\n case \"QQQ\":\n return `Q${Math.ceil((date.getMonth() + 1) / 3)}`\n case \"QQQQ\": {\n const base = ordinal(String(Math.ceil((date.getMonth() + 1) / 3)))\n return `${base} quarter`\n }\n\n // month\n case \"M\":\n return date.getMonth() + 1\n case \"Mo\":\n return ordinal(date.getMonth() + 1)\n case \"MM\":\n return date.toLocaleString(locale, { month: \"2-digit\" })\n case \"MMM\":\n return date.toLocaleString(locale, { month: \"short\" })\n case \"MMMM\":\n return date.toLocaleString(locale, { month: \"long\" })\n case \"MMMMM\":\n return date.toLocaleString(locale, { month: \"narrow\" })\n\n // week\n case \"w\":\n return Math.ceil(date.getDate() / 7)\n case \"wo\":\n return ordinal(Math.ceil(date.getDate() / 7))\n case \"ww\":\n return pad(Math.ceil(date.getDate() / 7), 2)\n\n // day\n case \"d\":\n case \"D\":\n return date.getDate()\n case \"do\":\n case \"Do\":\n return ordinal(date.getDate())\n case \"dd\":\n case \"DD\":\n return date.toLocaleString(locale, { day: \"2-digit\" })\n case \"DDD\":\n return pad(date.getDate(), 3)\n\n // weekday\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return date.toLocaleString(locale, { weekday: \"short\" })\n case \"EEEE\":\n return date.toLocaleString(locale, { weekday: \"long\" })\n case \"EEEEE\":\n return date.toLocaleString(locale, { weekday: \"narrow\" })\n case \"EEEEEE\":\n return date.toLocaleString(locale, { weekday: \"short\" }).slice(0, 2)\n\n // hour\n case \"h\":\n return date.toLocaleString(locale, { hour: \"numeric\", hour12: true })\n case \"ho\":\n return ordinal(date.toLocaleString(locale, { hour: \"2-digit\", hour12: true }))\n case \"hh\":\n return date.toLocaleString(locale, { hour: \"2-digit\", hour12: true })\n case \"H\":\n return date.toLocaleString(locale, { hour: \"numeric\", hour12: false })\n case \"Ho\":\n return ordinal(+date.toLocaleString(locale, { hour: \"numeric\", hour12: false }))\n case \"HH\":\n return date.toLocaleString(locale, { hour: \"2-digit\", hour12: false })\n\n // minute\n case \"m\":\n return date.toLocaleString(locale, { minute: \"numeric\" })\n case \"mo\":\n return ordinal(date.toLocaleString(locale, { minute: \"numeric\" }))\n case \"mm\":\n return date.toLocaleString(locale, { minute: \"2-digit\" })\n\n // second\n case \"s\":\n return date.toLocaleString(locale, { second: \"numeric\" })\n case \"so\":\n return ordinal(date.toLocaleString(locale, { second: \"numeric\" }))\n case \"ss\":\n return date.toLocaleString(locale, { second: \"2-digit\" })\n\n // timestamp\n case \"T\":\n return date.getTime()\n\n // day period\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return date.toLocaleString(locale, { hour: \"numeric\", hour12: true }).toLocaleUpperCase()\n case \"aaaa\":\n return date.toLocaleString(locale, { hour: \"numeric\", hour12: true }).toLocaleLowerCase()\n case \"aaaaa\":\n return date.toLocaleString(locale, { hour: \"numeric\", hour12: true }).charAt(0)\n\n // TODO:Revise this\n case \"z\":\n case \"zz\":\n case \"zzz\": {\n return zone(date.toLocaleString(locale, { timeZone, timeZoneName: \"shortOffset\" }))\n }\n case \"zzzz\":\n return zone(date.toLocaleString(locale, { timeZone, timeZoneName: \"longOffset\" }))\n\n default:\n throw new Error(`Unknown format: ${format}`)\n }\n}\n\n/**\n * Formats a date using the given format string as defined in:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n */\nexport function formatDate(date: Date, format: string, locale: string, timeZone?: string) {\n let result = format\n for (const key of FORMATS) {\n const res = getFormat(date, { locale, format: key, timeZone })\n result = result.replace(createRegEx(key), \"$1\" + res + \"$3\")\n }\n return result\n}\n","import { i18nCache } from \"./cache\"\n\nconst getListFormatter = i18nCache(Intl.ListFormat)\n\nexport function formatList(list: string[], locale: string, options: Intl.ListFormatOptions = {}) {\n const formatter = getListFormatter(locale, options)\n return formatter.format(list)\n}\n","import { i18nCache } from \"./cache\"\n\nconst getRelativeTimeFormatter = i18nCache(Intl.RelativeTimeFormat)\n\nexport function formatRelativeTime(value: Date, locale: string, options: Intl.RelativeTimeFormatOptions = {}) {\n const rtf = getRelativeTimeFormatter(locale, options)\n\n const now = new Date()\n const diff = getDistance(now, value)\n\n if (diff.years > 0) return rtf.format(diff.years * diff.sign, \"year\")\n if (diff.months > 0) return rtf.format(diff.months * diff.sign, \"month\")\n if (diff.weeks > 0) return rtf.format(diff.weeks * diff.sign, \"week\")\n if (diff.days > 0) return rtf.format(diff.days * diff.sign, \"day\")\n if (diff.hours > 0) return rtf.format(diff.hours * diff.sign, \"hour\")\n if (diff.minutes > 0) return rtf.format(diff.minutes * diff.sign, \"minute\")\n\n return rtf.format(diff.seconds * diff.sign, \"second\")\n}\n\nconst SECOND_TO_MS = 1000\nconst MINUTE_TO_MS = 1000 * 60\nconst HOUR_TO_MS = 1000 * 60 * 60\nconst DAY_TO_MS = 1000 * 60 * 60 * 24\nconst WEEK_TO_MS = 1000 * 60 * 60 * 24 * 7\nconst MONTH_TO_MS = 1000 * 60 * 60 * 24 * 30\nconst YEAR_TO_MS = 1000 * 60 * 60 * 24 * 365\n\nfunction getDistance(startDate: Date, endDate: Date) {\n const endTime = endDate.getTime()\n const startTime = startDate.getTime()\n const distance = Math.abs(endTime - startTime)\n\n return {\n sign: Math.sign(endTime - startTime),\n days: Math.floor(distance / DAY_TO_MS),\n hours: Math.floor((distance % DAY_TO_MS) / HOUR_TO_MS),\n minutes: Math.floor((distance % HOUR_TO_MS) / MINUTE_TO_MS),\n seconds: Math.floor((distance % MINUTE_TO_MS) / SECOND_TO_MS),\n weeks: Math.floor(distance / WEEK_TO_MS),\n months: Math.floor(distance / MONTH_TO_MS),\n years: Math.floor(distance / YEAR_TO_MS),\n }\n}\n","const RTL_SCRIPTS = new Set([\n \"Avst\",\n \"Arab\",\n \"Armi\",\n \"Syrc\",\n \"Samr\",\n \"Mand\",\n \"Thaa\",\n \"Mend\",\n \"Nkoo\",\n \"Adlm\",\n \"Rohg\",\n \"Hebr\",\n])\n\nconst RTL_LANGS = new Set([\n \"ae\",\n \"ar\",\n \"arc\",\n \"bcc\",\n \"bqi\",\n \"ckb\",\n \"dv\",\n \"fa\",\n \"glk\",\n \"he\",\n \"ku\",\n \"mzn\",\n \"nqo\",\n \"pnb\",\n \"ps\",\n \"sd\",\n \"ug\",\n \"ur\",\n \"yi\",\n])\n\nexport function isRTL(locale: string) {\n if (Intl.Locale) {\n const script = new Intl.Locale(locale).maximize().script ?? \"\"\n return RTL_SCRIPTS.has(script)\n }\n\n const lang = locale.split(\"-\")[0]\n return RTL_LANGS.has(lang)\n}\n\nexport function getLocaleDir(locale: string) {\n return isRTL(locale) ? \"rtl\" : \"ltr\"\n}\n","import { isRTL } from \"./is-rtl\"\n\nexport type Direction = \"rtl\" | \"ltr\"\n\nexport interface Locale {\n locale: string\n dir: Direction\n}\n\ndeclare global {\n interface Navigator {\n userLanguage?: string\n }\n}\n\nexport function getDefaultLocale(): Locale {\n let locale = (typeof navigator !== \"undefined\" && (navigator.language || navigator.userLanguage)) || \"en-US\"\n\n try {\n Intl.DateTimeFormat.supportedLocalesOf([locale])\n } catch {\n locale = \"en-US\"\n }\n\n return {\n locale,\n dir: isRTL(locale) ? \"rtl\" : \"ltr\",\n }\n}\n","import { getWindow } from \"@zag-js/dom-query\"\nimport { getDefaultLocale, type Locale } from \"./locale\"\n\nexport interface LocaleOptions {\n locale?: string\n getRootNode?: () => ShadowRoot | Document | Node\n onLocaleChange?: (locale: Locale) => void\n}\n\nexport function trackLocale(options: LocaleOptions = {}) {\n const { getRootNode, onLocaleChange } = options\n\n onLocaleChange?.(getDefaultLocale())\n\n const handleLocaleChange = () => {\n onLocaleChange?.(getDefaultLocale())\n }\n\n const win = getRootNode ? getWindow(getRootNode()) : window\n\n win.addEventListener(\"languagechange\", handleLocaleChange)\n\n return () => {\n win.removeEventListener(\"languagechange\", handleLocaleChange)\n }\n}\n"],"mappings":"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","names":[]}
|