@zag-js/aria-hidden 1.24.2 → 1.26.0

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 CHANGED
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ var domQuery = require('@zag-js/dom-query');
4
+
3
5
  // src/walk-tree-outside.ts
4
6
  var counterMap = /* @__PURE__ */ new WeakMap();
5
7
  var uncontrolledNodes = /* @__PURE__ */ new WeakMap();
@@ -23,7 +25,7 @@ var isIgnoredNode = (node) => {
23
25
  return node.matches("[data-live-announcer]");
24
26
  };
25
27
  var walkTreeOutside = (originalTarget, props) => {
26
- const { parentNode, markerName, controlAttribute} = props;
28
+ const { parentNode, markerName, controlAttribute, followControlledElements = true } = props;
27
29
  const targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);
28
30
  markerMap[markerName] || (markerMap[markerName] = /* @__PURE__ */ new WeakMap());
29
31
  const markerCounter = markerMap[markerName];
@@ -35,7 +37,14 @@ var walkTreeOutside = (originalTarget, props) => {
35
37
  elementsToKeep.add(el);
36
38
  keep(el.parentNode);
37
39
  };
38
- targets.forEach(keep);
40
+ targets.forEach((target) => {
41
+ keep(target);
42
+ if (followControlledElements && domQuery.isHTMLElement(target)) {
43
+ domQuery.findControlledElements(target, (controlledElement) => {
44
+ keep(controlledElement);
45
+ });
46
+ }
47
+ });
39
48
  const deep = (parent) => {
40
49
  if (!parent || elementsToStop.has(parent)) {
41
50
  return;
@@ -102,12 +111,14 @@ var getParentNode = (originalTarget) => {
102
111
  const target = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;
103
112
  return target.ownerDocument.body;
104
113
  };
105
- var hideOthers = (originalTarget, parentNode = getParentNode(originalTarget), markerName = "data-aria-hidden") => {
114
+ var hideOthers = (originalTarget, parentNode = getParentNode(originalTarget), markerName = "data-aria-hidden", followControlledElements = true) => {
106
115
  if (!parentNode) return;
107
116
  return walkTreeOutside(originalTarget, {
108
117
  parentNode,
109
118
  markerName,
110
- controlAttribute: "aria-hidden"});
119
+ controlAttribute: "aria-hidden",
120
+ followControlledElements
121
+ });
111
122
  };
112
123
 
113
124
  // src/index.ts
package/dist/index.mjs CHANGED
@@ -1,3 +1,5 @@
1
+ import { isHTMLElement, findControlledElements } from '@zag-js/dom-query';
2
+
1
3
  // src/walk-tree-outside.ts
2
4
  var counterMap = /* @__PURE__ */ new WeakMap();
3
5
  var uncontrolledNodes = /* @__PURE__ */ new WeakMap();
@@ -21,7 +23,7 @@ var isIgnoredNode = (node) => {
21
23
  return node.matches("[data-live-announcer]");
22
24
  };
23
25
  var walkTreeOutside = (originalTarget, props) => {
24
- const { parentNode, markerName, controlAttribute} = props;
26
+ const { parentNode, markerName, controlAttribute, followControlledElements = true } = props;
25
27
  const targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);
26
28
  markerMap[markerName] || (markerMap[markerName] = /* @__PURE__ */ new WeakMap());
27
29
  const markerCounter = markerMap[markerName];
@@ -33,7 +35,14 @@ var walkTreeOutside = (originalTarget, props) => {
33
35
  elementsToKeep.add(el);
34
36
  keep(el.parentNode);
35
37
  };
36
- targets.forEach(keep);
38
+ targets.forEach((target) => {
39
+ keep(target);
40
+ if (followControlledElements && isHTMLElement(target)) {
41
+ findControlledElements(target, (controlledElement) => {
42
+ keep(controlledElement);
43
+ });
44
+ }
45
+ });
37
46
  const deep = (parent) => {
38
47
  if (!parent || elementsToStop.has(parent)) {
39
48
  return;
@@ -100,12 +109,14 @@ var getParentNode = (originalTarget) => {
100
109
  const target = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;
101
110
  return target.ownerDocument.body;
102
111
  };
103
- var hideOthers = (originalTarget, parentNode = getParentNode(originalTarget), markerName = "data-aria-hidden") => {
112
+ var hideOthers = (originalTarget, parentNode = getParentNode(originalTarget), markerName = "data-aria-hidden", followControlledElements = true) => {
104
113
  if (!parentNode) return;
105
114
  return walkTreeOutside(originalTarget, {
106
115
  parentNode,
107
116
  markerName,
108
- controlAttribute: "aria-hidden"});
117
+ controlAttribute: "aria-hidden",
118
+ followControlledElements
119
+ });
109
120
  };
110
121
 
111
122
  // src/index.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zag-js/aria-hidden",
3
- "version": "1.24.2",
3
+ "version": "1.26.0",
4
4
  "description": "Hide targets from screen readers",
5
5
  "keywords": [
6
6
  "js",
@@ -23,6 +23,9 @@
23
23
  },
24
24
  "clean-package": "../../../clean-package.config.json",
25
25
  "main": "dist/index.js",
26
+ "dependencies": {
27
+ "@zag-js/dom-query": "1.26.0"
28
+ },
26
29
  "devDependencies": {
27
30
  "clean-package": "2.2.0"
28
31
  },