{"version":3,"file":"index.mjs","sources":[""],"sourcesContent":["export type TGetStrWithSlugArgs = Parameters<typeof getStrWithSlug>;\n\nexport type TGetStrWithSlugReturn = ReturnType<typeof getStrWithSlug>;\n\n/**\n * Creates a lowercase Unicode slug. Diacritics are removed, while non-Latin\n * letters such as Cyrillic are preserved.\n * @param {string} str Source string\n * @param {{ separator?: string; locale?: string; }} [options={}] Slug options\n * @returns {string} Slug\n * @throws {TypeError} getStrWithSlug: str must be a string\n * @throws {TypeError} getStrWithSlug: separator must be a non-empty string\n * @example\n * getStrWithSlug(\"Café: Привет мир!\"); // \"cafe-привет-мир\"\n * @example\n * // Create an SEO-friendly article pathname with a custom separator\n * const pathname = `/blog/${getStrWithSlug(article.title, { separator: \"-\" })}`;\n */\nexport const getStrWithSlug = (\n  str: string,\n  options: { separator?: string; locale?: string; } = {}\n): string => {\n  if (typeof str !== \"string\") {\n    throw new TypeError(\"getStrWithSlug: str must be a string\");\n  }\n  if (!options || typeof options !== \"object\" || Array.isArray(options)) {\n    throw new TypeError(\"getStrWithSlug: options must be a plain object\");\n  }\n  const { separator = \"-\", locale } = options;\n  if (typeof separator !== \"string\" || separator.length === 0) {\n    throw new TypeError(\"getStrWithSlug: separator must be a non-empty string\");\n  }\n  if (locale !== undefined && typeof locale !== \"string\") {\n    throw new TypeError(\"getStrWithSlug: locale must be a string if provided\");\n  }\n\n  return str\n    .normalize(\"NFKD\")\n    .replace(/\\p{M}+/gu, \"\")\n    .toLocaleLowerCase(locale)\n    .replace(/[^\\p{L}\\p{N}]+/gu, () => separator)\n    .split(separator)\n    .filter(Boolean)\n    .join(separator);\n};\n"],"names":["getStrWithSlug","str","options","TypeError","Array","isArray","separator","locale","length","undefined","normalize","replace","toLocaleLowerCase","split","filter","Boolean","join"],"mappings":"AAkBO,MAAMA,eAAiB,CAC5BC,IACAC,QAAoD,MAEpD,UAAWD,MAAQ,SACjB,MAAM,IAAIE,UAAU,wCAEtB,IAAKD,gBAAkBA,UAAY,UAAYE,MAAMC,QAAQH,SAC3D,MAAM,IAAIC,UAAU,kDAEtB,MAAMG,UAAEA,UAAY,IAAGC,OAAEA,QAAWL,QACpC,UAAWI,YAAc,UAAYA,UAAUE,SAAW,EACxD,MAAM,IAAIL,UAAU,wDAEtB,GAAII,cAAWE,UAAoBF,SAAW,SAC5C,MAAM,IAAIJ,UAAU,uDAGtB,OAAOF,IACJS,UAAU,QACVC,QAAQ,WAAY,IACpBC,kBAAkBL,QAClBI,QAAQ,mBAAoB,IAAML,WAClCO,MAAMP,WACNQ,OAAOC,SACPC,KAAKV"}