{"version":3,"file":"tabbable.cjs","sources":["../../src/libs/tabbable.ts"],"sourcesContent":["const candidateSelectors = [\n  'input:not([disabled])',\n  'select:not([disabled])',\n  'textarea:not([disabled])',\n  'a[href]',\n  'button:not([disabled])',\n  '[tabindex]',\n  'audio[controls]',\n  'video[controls]',\n  '[contenteditable]:not([contenteditable=\"false\"])',\n  'details>summary',\n]\nconst candidateSelector = candidateSelectors.join(',')\n\ntype Option = {\n  shouldIgnoreVisibility: boolean\n}\nconst defaultOption: Option = {\n  shouldIgnoreVisibility: false,\n}\n\nexport function tabbable(el: HTMLElement, option?: Partial<Option>) {\n  const mergedOption = {\n    ...defaultOption,\n    ...option,\n  }\n  const candidates = Array.from(el.querySelectorAll<HTMLElement>(candidateSelector)).filter(\n    (element) => element.tabIndex >= 0,\n  )\n  if (mergedOption.shouldIgnoreVisibility) {\n    return candidates\n  }\n\n  return candidates.filter((candidate) => !isHidden(candidate))\n}\n\nfunction isHidden(node: Element) {\n  if (getComputedStyle(node).visibility === 'hidden') return true\n  if (isDisplayNone(node)) return true\n\n  return false\n}\n\nfunction isDisplayNone(node: Element | null): boolean {\n  if (!node) {\n    return false\n  }\n  if (getComputedStyle(node).display === 'none') return true\n  return isDisplayNone(node.parentElement)\n}\n"],"names":[],"mappings":";;AAAA,MAAM,kBAAkB,GAAG;IACzB,uBAAuB;IACvB,wBAAwB;IACxB,0BAA0B;IAC1B,SAAS;IACT,wBAAwB;IACxB,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,kDAAkD;IAClD,iBAAiB;CAClB;AACD,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;AAKtD,MAAM,aAAa,GAAW;AAC5B,IAAA,sBAAsB,EAAE,KAAK;CAC9B;AAEK,SAAU,QAAQ,CAAC,EAAe,EAAE,MAAwB,EAAA;AAChE,IAAA,MAAM,YAAY,GAAG;AACnB,QAAA,GAAG,aAAa;AAChB,QAAA,GAAG,MAAM;KACV;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAc,iBAAiB,CAAC,CAAC,CAAC,MAAM,CACvF,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ,IAAI,CAAC,CACnC;AACD,IAAA,IAAI,YAAY,CAAC,sBAAsB,EAAE;AACvC,QAAA,OAAO,UAAU;IACnB;AAEA,IAAA,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC/D;AAEA,SAAS,QAAQ,CAAC,IAAa,EAAA;AAC7B,IAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,QAAQ;AAAE,QAAA,OAAO,IAAI;IAC/D,IAAI,aAAa,CAAC,IAAI,CAAC;AAAE,QAAA,OAAO,IAAI;AAEpC,IAAA,OAAO,KAAK;AACd;AAEA,SAAS,aAAa,CAAC,IAAoB,EAAA;IACzC,IAAI,CAAC,IAAI,EAAE;AACT,QAAA,OAAO,KAAK;IACd;AACA,IAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM;AAAE,QAAA,OAAO,IAAI;AAC1D,IAAA,OAAO,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1C;;;;"}