{"version":3,"file":"toggle-selection.cjs","sources":["../../../../../../../packages/components/typography/src/copy/toggle-selection.ts"],"sourcesContent":["// copy from https://github.com/sudodoki/toggle-selection\n// refactor to esm\nfunction deselectCurrent(): (() => void) {\n  const selection = document.getSelection();\n  if (!selection.rangeCount)\n    return function () {};\n\n  let active = document.activeElement as any;\n\n  const ranges = [];\n  for (let i = 0; i < selection.rangeCount; i++)\n    ranges.push(selection.getRangeAt(i));\n\n  switch (\n    active.tagName.toUpperCase() // .toUpperCase handles XHTML\n  ) {\n    case 'INPUT':\n    case 'TEXTAREA':\n      active.blur();\n      break;\n\n    default:\n      active = null;\n      break;\n  }\n\n  selection.removeAllRanges();\n  return function () {\n    selection.type === 'Caret' && selection.removeAllRanges();\n\n    if (!selection.rangeCount) {\n      ranges.forEach((range) => {\n        selection.addRange(range);\n      });\n    }\n\n    active && active.focus();\n  };\n}\nexport default deselectCurrent;\n"],"names":[],"mappings":";;;;AAEA,SAAS,eAAgC,GAAA;AACvC,EAAM,MAAA,SAAA,GAAY,SAAS,YAAa,EAAA,CAAA;AACxC,EAAA,IAAI,CAAC,SAAU,CAAA,UAAA;AACb,IAAA,OAAO,WAAY;AAAA,KAAC,CAAA;AAEtB,EAAA,IAAI,SAAS,QAAS,CAAA,aAAA,CAAA;AAEtB,EAAA,MAAM,SAAS,EAAC,CAAA;AAChB,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,SAAA,CAAU,UAAY,EAAA,CAAA,EAAA;AACxC,IAAA,MAAA,CAAO,IAAK,CAAA,SAAA,CAAU,UAAW,CAAA,CAAC,CAAC,CAAA,CAAA;AAErC,EACE,QAAA,MAAA,CAAO,OAAQ,CAAA,WAAA,EACf;AAAA,IACA,KAAK,OAAA,CAAA;AAAA,IACL,KAAK,UAAA;AACH,MAAA,MAAA,CAAO,IAAK,EAAA,CAAA;AACZ,MAAA,MAAA;AAAA,IAEF;AACE,MAAS,MAAA,GAAA,IAAA,CAAA;AACT,MAAA,MAAA;AAAA,GACJ;AAEA,EAAA,SAAA,CAAU,eAAgB,EAAA,CAAA;AAC1B,EAAA,OAAO,WAAY;AACjB,IAAU,SAAA,CAAA,IAAA,KAAS,OAAW,IAAA,SAAA,CAAU,eAAgB,EAAA,CAAA;AAExD,IAAI,IAAA,CAAC,UAAU,UAAY,EAAA;AACzB,MAAO,MAAA,CAAA,OAAA,CAAQ,CAAC,KAAU,KAAA;AACxB,QAAA,SAAA,CAAU,SAAS,KAAK,CAAA,CAAA;AAAA,OACzB,CAAA,CAAA;AAAA,KACH;AAEA,IAAA,MAAA,IAAU,OAAO,KAAM,EAAA,CAAA;AAAA,GACzB,CAAA;AACF;;;;"}