{"version":3,"file":"getHTMLTextDir.cjs","names":[],"sources":["../../../src/localization/getHTMLTextDir.ts"],"sourcesContent":["import type { LocalesValues } from '@intlayer/types/module_augmentation';\n\ntype Dir = 'ltr' | 'rtl' | 'auto';\n\n/**\n * Returns the text direction of the given locale.\n *\n * Example:\n *\n * getHTMLTextDir('en-US') // 'ltr'\n * getHTMLTextDir('en') // 'ltr'\n * getHTMLTextDir('fr-CA') // 'ltr'\n * getHTMLTextDir('fr') // 'ltr'\n *\n * @param locale The locale to get the text direction for.\n * @returns The text direction of the given locale.\n */\nexport const getHTMLTextDir = (locale?: LocalesValues): Dir => {\n  if (!locale) return 'ltr';\n\n  try {\n    const localeInfo = new Intl.Locale(locale);\n\n    // Check for the 'textInfo' property (part of the Intl Enumeration API)\n    // Most modern browsers support 'direction' via 'getTextInfo()' or 'textInfo'\n    if ('getTextInfo' in localeInfo) {\n      return (localeInfo as any).getTextInfo().direction as Dir;\n    }\n\n    // Fallback for environments supporting 'textInfo' property\n    if ('textInfo' in localeInfo) {\n      return (localeInfo as any).textInfo.direction as Dir;\n    }\n\n    // Manual fallback for older environments using script detection\n    const maximized = localeInfo.maximize();\n    const rtlScripts = [\n      'Arab',\n      'Hebr',\n      'Thaa',\n      'Syrc',\n      'Mand',\n      'Adlm',\n      'Rohg',\n      'Nkoo',\n    ];\n\n    return rtlScripts.includes(maximized.script ?? '') ? 'rtl' : 'ltr';\n  } catch {\n    return 'ltr';\n  }\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAiBA,MAAa,kBAAkB,WAAgC;AAC7D,KAAI,CAAC,OAAQ,QAAO;AAEpB,KAAI;EACF,MAAM,aAAa,IAAI,KAAK,OAAO,OAAO;AAI1C,MAAI,iBAAiB,WACnB,QAAQ,WAAmB,aAAa,CAAC;AAI3C,MAAI,cAAc,WAChB,QAAQ,WAAmB,SAAS;EAItC,MAAM,YAAY,WAAW,UAAU;AAYvC,SAAO;GAVL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GAGe,CAAC,SAAS,UAAU,UAAU,GAAG,GAAG,QAAQ;SACvD;AACN,SAAO"}