power-focusable 4.1.3 → 4.1.4
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.cjs +8 -8
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +8 -8
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -6,10 +6,10 @@ function createFocusTrap(container = document.body) {
|
|
|
6
6
|
if (!(container instanceof Element)) {
|
|
7
7
|
throw new Error("Invalid container element");
|
|
8
8
|
}
|
|
9
|
-
|
|
9
|
+
focusElement(container);
|
|
10
10
|
if (getActiveElement() !== container) {
|
|
11
11
|
const first = getFocusables(container, { composed: true })[0];
|
|
12
|
-
first &&
|
|
12
|
+
first && focusElement(first);
|
|
13
13
|
}
|
|
14
14
|
function onKeyDown(event) {
|
|
15
15
|
const { key, altKey, ctrlKey, metaKey, shiftKey } = event;
|
|
@@ -27,7 +27,7 @@ function createFocusTrap(container = document.body) {
|
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
29
29
|
event.preventDefault();
|
|
30
|
-
|
|
30
|
+
focusElement(focusable);
|
|
31
31
|
}
|
|
32
32
|
let controller = new AbortController();
|
|
33
33
|
document.addEventListener("keydown", onKeyDown, {
|
|
@@ -47,11 +47,11 @@ function getFocusables(container = document.body, options = {}) {
|
|
|
47
47
|
const { composed = false } = options;
|
|
48
48
|
let { filter, include } = options;
|
|
49
49
|
if (filter && typeof filter !== "function") {
|
|
50
|
-
console.warn("Invalid filter function
|
|
50
|
+
console.warn("Invalid filter function");
|
|
51
51
|
filter = void 0;
|
|
52
52
|
}
|
|
53
53
|
if (include && typeof include !== "function") {
|
|
54
|
-
console.warn("Invalid include function
|
|
54
|
+
console.warn("Invalid include function");
|
|
55
55
|
include = void 0;
|
|
56
56
|
}
|
|
57
57
|
const elements = [];
|
|
@@ -177,7 +177,7 @@ function getRelativeFocusable(container, offset, options) {
|
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
if (!containsComposed(container, anchor)) {
|
|
180
|
-
console.warn("
|
|
180
|
+
console.warn("Anchor (active) element not within container");
|
|
181
181
|
return null;
|
|
182
182
|
}
|
|
183
183
|
const focusables = getFocusables(container, { composed, filter, include });
|
|
@@ -360,7 +360,7 @@ function restoreInert(element) {
|
|
|
360
360
|
}
|
|
361
361
|
inertRefCounts.set(element, count - 1);
|
|
362
362
|
}
|
|
363
|
-
function
|
|
363
|
+
function focusElement(element) {
|
|
364
364
|
"focus" in element && typeof element.focus === "function" && element.focus();
|
|
365
365
|
}
|
|
366
366
|
function getActiveElement() {
|
|
@@ -411,7 +411,7 @@ function isUngroupedRadio(element) {
|
|
|
411
411
|
* High-precision focus management utility with full composed tree support.
|
|
412
412
|
* Handles complex focus rules including tabindex ordering, radio groups, inert.
|
|
413
413
|
*
|
|
414
|
-
* @version 4.1.
|
|
414
|
+
* @version 4.1.4
|
|
415
415
|
* @author Yusuke Kamiyamane
|
|
416
416
|
* @license MIT
|
|
417
417
|
* @copyright Copyright (c) Yusuke Kamiyamane
|
package/dist/index.d.cts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* High-precision focus management utility with full composed tree support.
|
|
4
4
|
* Handles complex focus rules including tabindex ordering, radio groups, inert.
|
|
5
5
|
*
|
|
6
|
-
* @version 4.1.
|
|
6
|
+
* @version 4.1.4
|
|
7
7
|
* @author Yusuke Kamiyamane
|
|
8
8
|
* @license MIT
|
|
9
9
|
* @copyright Copyright (c) Yusuke Kamiyamane
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* High-precision focus management utility with full composed tree support.
|
|
4
4
|
* Handles complex focus rules including tabindex ordering, radio groups, inert.
|
|
5
5
|
*
|
|
6
|
-
* @version 4.1.
|
|
6
|
+
* @version 4.1.4
|
|
7
7
|
* @author Yusuke Kamiyamane
|
|
8
8
|
* @license MIT
|
|
9
9
|
* @copyright Copyright (c) Yusuke Kamiyamane
|
package/dist/index.js
CHANGED
|
@@ -4,10 +4,10 @@ function createFocusTrap(container = document.body) {
|
|
|
4
4
|
if (!(container instanceof Element)) {
|
|
5
5
|
throw new Error("Invalid container element");
|
|
6
6
|
}
|
|
7
|
-
|
|
7
|
+
focusElement(container);
|
|
8
8
|
if (getActiveElement() !== container) {
|
|
9
9
|
const first = getFocusables(container, { composed: true })[0];
|
|
10
|
-
first &&
|
|
10
|
+
first && focusElement(first);
|
|
11
11
|
}
|
|
12
12
|
function onKeyDown(event) {
|
|
13
13
|
const { key, altKey, ctrlKey, metaKey, shiftKey } = event;
|
|
@@ -25,7 +25,7 @@ function createFocusTrap(container = document.body) {
|
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
27
|
event.preventDefault();
|
|
28
|
-
|
|
28
|
+
focusElement(focusable);
|
|
29
29
|
}
|
|
30
30
|
let controller = new AbortController();
|
|
31
31
|
document.addEventListener("keydown", onKeyDown, {
|
|
@@ -45,11 +45,11 @@ function getFocusables(container = document.body, options = {}) {
|
|
|
45
45
|
const { composed = false } = options;
|
|
46
46
|
let { filter, include } = options;
|
|
47
47
|
if (filter && typeof filter !== "function") {
|
|
48
|
-
console.warn("Invalid filter function
|
|
48
|
+
console.warn("Invalid filter function");
|
|
49
49
|
filter = void 0;
|
|
50
50
|
}
|
|
51
51
|
if (include && typeof include !== "function") {
|
|
52
|
-
console.warn("Invalid include function
|
|
52
|
+
console.warn("Invalid include function");
|
|
53
53
|
include = void 0;
|
|
54
54
|
}
|
|
55
55
|
const elements = [];
|
|
@@ -175,7 +175,7 @@ function getRelativeFocusable(container, offset, options) {
|
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
if (!containsComposed(container, anchor)) {
|
|
178
|
-
console.warn("
|
|
178
|
+
console.warn("Anchor (active) element not within container");
|
|
179
179
|
return null;
|
|
180
180
|
}
|
|
181
181
|
const focusables = getFocusables(container, { composed, filter, include });
|
|
@@ -358,7 +358,7 @@ function restoreInert(element) {
|
|
|
358
358
|
}
|
|
359
359
|
inertRefCounts.set(element, count - 1);
|
|
360
360
|
}
|
|
361
|
-
function
|
|
361
|
+
function focusElement(element) {
|
|
362
362
|
"focus" in element && typeof element.focus === "function" && element.focus();
|
|
363
363
|
}
|
|
364
364
|
function getActiveElement() {
|
|
@@ -409,7 +409,7 @@ function isUngroupedRadio(element) {
|
|
|
409
409
|
* High-precision focus management utility with full composed tree support.
|
|
410
410
|
* Handles complex focus rules including tabindex ordering, radio groups, inert.
|
|
411
411
|
*
|
|
412
|
-
* @version 4.1.
|
|
412
|
+
* @version 4.1.4
|
|
413
413
|
* @author Yusuke Kamiyamane
|
|
414
414
|
* @license MIT
|
|
415
415
|
* @copyright Copyright (c) Yusuke Kamiyamane
|