{"version":3,"names":["getNodeName","isShadowRoot","ownerDocument","counters","inert","WeakMap","markerName","uncontrolledElementsSets","WeakSet","markerCounterMap","lockCount","getUncontrolledElementsSet","controlAttribute","supportsInert","HTMLElement","prototype","unwrapHost","node","host","parentNode","correctElements","parent","targets","map","target","contains","correctedTarget","filter","x","buildKeepSet","keep","Set","forEach","has","add","collectOutsideElements","root","keepElements","stopElements","outside","walk","Array","from","children","push","applyAttributeToOthers","uncorrectedAvoidElements","body","ariaHidden","mark","markerIgnoreElements","counterMap","uncontrolledElementsSet","avoidElements","markerIgnoreTargets","markerIgnoreSet","markerTargets","hiddenElements","markedElements","currentUncontrolledElementsSet","ariaLiveElements","querySelectorAll","controlElements","concat","controlTargets","attr","getAttribute","alreadyHidden","counterValue","get","set","setAttribute","markerValue","element","currentCounterValue","removeAttribute","delete","markOthers","options"],"sources":["mark-others.ts"],"sourcesContent":["// Modified from https://github.com/theKashey/aria-hidden/blob/9220c8f4a4fd35f63bee5510a9f41a37264382d4/src/index.ts\n// Ported from Base UI React's `markOthers.ts` 1:1.\n\nimport { getNodeName, isShadowRoot } from \"@floating-ui/utils/dom\";\n\nimport { ownerDocument } from \"../../dom/owner-document\";\n\ntype Undo = () => void;\n\ninterface MarkOthersOptions {\n\tariaHidden?: boolean | undefined;\n\tinert?: boolean | undefined;\n\tmark?: boolean | undefined;\n\tmarkerIgnoreElements?: Element[] | undefined;\n}\n\nconst counters = {\n\tinert: new WeakMap<Element, number>(),\n\t\"aria-hidden\": new WeakMap<Element, number>(),\n};\n\nconst markerName = \"data-quoin-inert\";\ntype ControlAttribute = keyof typeof counters;\n\nconst uncontrolledElementsSets: Record<ControlAttribute, WeakSet<Element>> = {\n\tinert: new WeakSet<Element>(),\n\t\"aria-hidden\": new WeakSet<Element>(),\n};\nlet markerCounterMap = new WeakMap<Element, number>();\nlet lockCount = 0;\n\nfunction getUncontrolledElementsSet(controlAttribute: ControlAttribute) {\n\treturn uncontrolledElementsSets[controlAttribute];\n}\n\nexport const supportsInert = (): boolean =>\n\ttypeof HTMLElement !== \"undefined\" && \"inert\" in HTMLElement.prototype;\n\nfunction unwrapHost(node: Node | null): Element | null {\n\tif (!node) {\n\t\treturn null;\n\t}\n\treturn isShadowRoot(node) ? node.host : unwrapHost(node.parentNode);\n}\n\nconst correctElements = (parent: HTMLElement, targets: Element[]): Element[] =>\n\ttargets\n\t\t.map((target) => {\n\t\t\tif (parent.contains(target)) {\n\t\t\t\treturn target;\n\t\t\t}\n\t\t\tconst correctedTarget = unwrapHost(target);\n\t\t\tif (parent.contains(correctedTarget)) {\n\t\t\t\treturn correctedTarget;\n\t\t\t}\n\t\t\treturn null;\n\t\t})\n\t\t.filter((x): x is Element => x != null);\n\nconst buildKeepSet = (targets: Element[]): Set<Node> => {\n\tconst keep = new Set<Node>();\n\n\ttargets.forEach((target) => {\n\t\tlet node: Node | null = target;\n\t\twhile (node && !keep.has(node)) {\n\t\t\tkeep.add(node);\n\t\t\tnode = node.parentNode;\n\t\t}\n\t});\n\n\treturn keep;\n};\n\nconst collectOutsideElements = (\n\troot: HTMLElement,\n\tkeepElements: Set<Node>,\n\tstopElements: Set<Node>,\n): Element[] => {\n\tconst outside: Element[] = [];\n\n\tconst walk = (parent: Element | null) => {\n\t\tif (!parent || stopElements.has(parent)) {\n\t\t\treturn;\n\t\t}\n\t\tArray.from(parent.children).forEach((node: Element) => {\n\t\t\tif (getNodeName(node) === \"script\") {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (keepElements.has(node)) {\n\t\t\t\twalk(node);\n\t\t\t} else {\n\t\t\t\toutside.push(node);\n\t\t\t}\n\t\t});\n\t};\n\n\twalk(root);\n\n\treturn outside;\n};\n\nfunction applyAttributeToOthers(\n\tuncorrectedAvoidElements: Element[],\n\tbody: HTMLElement,\n\tariaHidden: boolean,\n\tinert: boolean,\n\t{ mark = true, markerIgnoreElements = [] }: MarkOthersOptions,\n): Undo {\n\tlet controlAttribute: \"inert\" | \"aria-hidden\" | null = null;\n\tif (inert) {\n\t\tcontrolAttribute = \"inert\";\n\t} else if (ariaHidden) {\n\t\tcontrolAttribute = \"aria-hidden\";\n\t}\n\tlet counterMap: WeakMap<Element, number> | null = null;\n\tlet uncontrolledElementsSet: WeakSet<Element> | null = null;\n\tconst avoidElements = correctElements(body, uncorrectedAvoidElements);\n\tconst markerIgnoreTargets = mark\n\t\t? correctElements(body, markerIgnoreElements)\n\t\t: [];\n\tconst markerIgnoreSet = new Set<Node>(markerIgnoreTargets);\n\tconst markerTargets = mark\n\t\t? collectOutsideElements(\n\t\t\t\tbody,\n\t\t\t\tbuildKeepSet(avoidElements),\n\t\t\t\tnew Set<Node>(avoidElements),\n\t\t\t).filter((target) => !markerIgnoreSet.has(target))\n\t\t: [];\n\tconst hiddenElements: Element[] = [];\n\tconst markedElements: Element[] = [];\n\n\tif (controlAttribute) {\n\t\tconst map = counters[controlAttribute];\n\t\tconst currentUncontrolledElementsSet =\n\t\t\tgetUncontrolledElementsSet(controlAttribute);\n\t\tuncontrolledElementsSet = currentUncontrolledElementsSet;\n\t\tcounterMap = map;\n\t\tconst ariaLiveElements = correctElements(\n\t\t\tbody,\n\t\t\tArray.from(body.querySelectorAll(\"[aria-live]\")),\n\t\t);\n\t\tconst controlElements = avoidElements.concat(ariaLiveElements);\n\t\tconst controlTargets = collectOutsideElements(\n\t\t\tbody,\n\t\t\tbuildKeepSet(controlElements),\n\t\t\tnew Set<Node>(controlElements),\n\t\t);\n\n\t\tcontrolTargets.forEach((node) => {\n\t\t\tconst attr = node.getAttribute(controlAttribute);\n\t\t\tconst alreadyHidden = attr !== null && attr !== \"false\";\n\t\t\tconst counterValue = (map.get(node) || 0) + 1;\n\n\t\t\tmap.set(node, counterValue);\n\t\t\thiddenElements.push(node);\n\n\t\t\tif (counterValue === 1 && alreadyHidden) {\n\t\t\t\tcurrentUncontrolledElementsSet.add(node);\n\t\t\t}\n\n\t\t\tif (!alreadyHidden) {\n\t\t\t\tnode.setAttribute(\n\t\t\t\t\tcontrolAttribute,\n\t\t\t\t\tcontrolAttribute === \"inert\" ? \"\" : \"true\",\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\n\tif (mark) {\n\t\tmarkerTargets.forEach((node) => {\n\t\t\tconst markerValue = (markerCounterMap.get(node) || 0) + 1;\n\t\t\tmarkerCounterMap.set(node, markerValue);\n\t\t\tmarkedElements.push(node);\n\t\t\tif (markerValue === 1) {\n\t\t\t\tnode.setAttribute(markerName, \"\");\n\t\t\t}\n\t\t});\n\t}\n\n\tlockCount += 1;\n\n\treturn () => {\n\t\tif (counterMap) {\n\t\t\thiddenElements.forEach((element) => {\n\t\t\t\tconst currentCounterValue = counterMap.get(element) || 0;\n\t\t\t\tconst counterValue = currentCounterValue - 1;\n\t\t\t\tcounterMap.set(element, counterValue);\n\n\t\t\t\tif (!counterValue) {\n\t\t\t\t\tif (!uncontrolledElementsSet?.has(element) && controlAttribute) {\n\t\t\t\t\t\telement.removeAttribute(controlAttribute);\n\t\t\t\t\t}\n\t\t\t\t\tuncontrolledElementsSet?.delete(element);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (mark) {\n\t\t\tmarkedElements.forEach((element) => {\n\t\t\t\tconst markerValue = (markerCounterMap.get(element) || 0) - 1;\n\t\t\t\tmarkerCounterMap.set(element, markerValue);\n\t\t\t\tif (!markerValue) {\n\t\t\t\t\telement.removeAttribute(markerName);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlockCount -= 1;\n\n\t\tif (!lockCount) {\n\t\t\tcounters.inert = new WeakMap();\n\t\t\tcounters[\"aria-hidden\"] = new WeakMap();\n\t\t\tuncontrolledElementsSets.inert = new WeakSet();\n\t\t\tuncontrolledElementsSets[\"aria-hidden\"] = new WeakSet();\n\t\t\tmarkerCounterMap = new WeakMap();\n\t\t}\n\t};\n}\n\nexport function markOthers(\n\tavoidElements: Element[],\n\toptions: MarkOthersOptions = {},\n): Undo {\n\tconst {\n\t\tariaHidden = false,\n\t\tinert = false,\n\t\tmark = true,\n\t\tmarkerIgnoreElements = [],\n\t} = options;\n\tconst body = ownerDocument(avoidElements[0]).body;\n\treturn applyAttributeToOthers(avoidElements, body, ariaHidden, inert, {\n\t\tmark,\n\t\tmarkerIgnoreElements,\n\t});\n}\n"],"mappings":"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","ignoreList":[]}