@zag-js/aria-hidden 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +2 -27
- package/package.json +4 -4
- package/dist/index.mjs +0 -81
package/dist/index.js
CHANGED
|
@@ -1,28 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
1
|
// src/index.ts
|
|
21
|
-
var src_exports = {};
|
|
22
|
-
__export(src_exports, {
|
|
23
|
-
ariaHidden: () => ariaHidden
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(src_exports);
|
|
26
2
|
var elementCountMap = /* @__PURE__ */ new WeakMap();
|
|
27
3
|
function isLiveRegion(node, win) {
|
|
28
4
|
return node instanceof win.HTMLElement && node.dataset.liveAnnouncer === "true";
|
|
@@ -100,7 +76,6 @@ function ariaHidden(targets, rootEl) {
|
|
|
100
76
|
}
|
|
101
77
|
};
|
|
102
78
|
}
|
|
103
|
-
|
|
104
|
-
0 && (module.exports = {
|
|
79
|
+
export {
|
|
105
80
|
ariaHidden
|
|
106
|
-
}
|
|
81
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
+
"type": "module",
|
|
2
3
|
"name": "@zag-js/aria-hidden",
|
|
3
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.3",
|
|
4
5
|
"description": "Hide targets from screen readers",
|
|
5
6
|
"keywords": [
|
|
6
7
|
"js",
|
|
@@ -11,7 +12,6 @@
|
|
|
11
12
|
"homepage": "https://github.com/chakra-ui/zag#readme",
|
|
12
13
|
"license": "MIT",
|
|
13
14
|
"main": "dist/index.js",
|
|
14
|
-
"module": "dist/index.mjs",
|
|
15
15
|
"types": "dist/index.d.ts",
|
|
16
16
|
"repository": "https://github.com/chakra-ui/zag/tree/main/packages/utilities/aria-hidden",
|
|
17
17
|
"sideEffects": false,
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
"url": "https://github.com/chakra-ui/zag/issues"
|
|
26
26
|
},
|
|
27
27
|
"scripts": {
|
|
28
|
-
"build-fast": "tsup src/index.ts --format=esm
|
|
28
|
+
"build-fast": "tsup src/index.ts --format=esm",
|
|
29
29
|
"start": "pnpm build --watch",
|
|
30
|
-
"build": "tsup src/index.ts --format=esm
|
|
30
|
+
"build": "tsup src/index.ts --format=esm --dts",
|
|
31
31
|
"test": "jest --config ../../../jest.config.js --rootDir tests",
|
|
32
32
|
"lint": "eslint src --ext .ts,.tsx",
|
|
33
33
|
"test-ci": "pnpm test --ci --runInBand -u",
|
package/dist/index.mjs
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
// src/index.ts
|
|
2
|
-
var elementCountMap = /* @__PURE__ */ new WeakMap();
|
|
3
|
-
function isLiveRegion(node, win) {
|
|
4
|
-
return node instanceof win.HTMLElement && node.dataset.liveAnnouncer === "true";
|
|
5
|
-
}
|
|
6
|
-
function ariaHidden(targets, rootEl) {
|
|
7
|
-
const exclude = targets.filter(Boolean);
|
|
8
|
-
if (exclude.length === 0)
|
|
9
|
-
return;
|
|
10
|
-
const doc = exclude[0].ownerDocument || document;
|
|
11
|
-
const win = doc.defaultView ?? window;
|
|
12
|
-
const visibleNodes = new Set(exclude);
|
|
13
|
-
const hiddenNodes = /* @__PURE__ */ new Set();
|
|
14
|
-
const root = rootEl ?? doc.body;
|
|
15
|
-
const walker = doc.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {
|
|
16
|
-
acceptNode(node2) {
|
|
17
|
-
if (isLiveRegion(node2, win)) {
|
|
18
|
-
visibleNodes.add(node2);
|
|
19
|
-
}
|
|
20
|
-
if (visibleNodes.has(node2) || hiddenNodes.has(node2.parentElement)) {
|
|
21
|
-
return NodeFilter.FILTER_REJECT;
|
|
22
|
-
}
|
|
23
|
-
if (node2 instanceof win.HTMLElement && node2.getAttribute("role") === "row") {
|
|
24
|
-
return NodeFilter.FILTER_SKIP;
|
|
25
|
-
}
|
|
26
|
-
if (exclude.some((target) => node2.contains(target))) {
|
|
27
|
-
return NodeFilter.FILTER_SKIP;
|
|
28
|
-
}
|
|
29
|
-
return NodeFilter.FILTER_ACCEPT;
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
const hide = (node2) => {
|
|
33
|
-
let refCount = elementCountMap.get(node2) ?? 0;
|
|
34
|
-
if (node2.getAttribute("aria-hidden") === "true" && refCount === 0) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
if (refCount === 0) {
|
|
38
|
-
node2.setAttribute("aria-hidden", "true");
|
|
39
|
-
}
|
|
40
|
-
hiddenNodes.add(node2);
|
|
41
|
-
elementCountMap.set(node2, refCount + 1);
|
|
42
|
-
};
|
|
43
|
-
let node = walker.nextNode();
|
|
44
|
-
while (node != null) {
|
|
45
|
-
hide(node);
|
|
46
|
-
node = walker.nextNode();
|
|
47
|
-
}
|
|
48
|
-
const observer = new win.MutationObserver((changes) => {
|
|
49
|
-
for (let change of changes) {
|
|
50
|
-
if (change.type !== "childList" || change.addedNodes.length === 0)
|
|
51
|
-
continue;
|
|
52
|
-
if (![...visibleNodes, ...hiddenNodes].some((node2) => node2.contains(change.target))) {
|
|
53
|
-
for (const node2 of change.addedNodes) {
|
|
54
|
-
if (isLiveRegion(node2, win)) {
|
|
55
|
-
visibleNodes.add(node2);
|
|
56
|
-
} else if (node2 instanceof win.Element) {
|
|
57
|
-
hide(node2);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
observer.observe(root, { childList: true, subtree: true });
|
|
64
|
-
return () => {
|
|
65
|
-
observer.disconnect();
|
|
66
|
-
for (let node2 of hiddenNodes) {
|
|
67
|
-
let count = elementCountMap.get(node2);
|
|
68
|
-
if (count === 1) {
|
|
69
|
-
node2.removeAttribute("aria-hidden");
|
|
70
|
-
elementCountMap.delete(node2);
|
|
71
|
-
continue;
|
|
72
|
-
}
|
|
73
|
-
if (count !== void 0) {
|
|
74
|
-
elementCountMap.set(node2, count - 1);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
export {
|
|
80
|
-
ariaHidden
|
|
81
|
-
};
|