@y14e/tabs 1.3.6 → 1.3.7
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 +28 -16
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +28 -16
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1,29 +1,41 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
// node_modules/@y14e/attributes-utils/dist/index.js
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
var defaultParser = (value) => value.split(/\s+/);
|
|
5
|
+
var defaultSerializer = (tokens) => tokens.join(" ");
|
|
6
|
+
function addTokenToAttribute(element, attribute, token, options = {}) {
|
|
7
|
+
const {
|
|
8
|
+
caseInsensitive = false,
|
|
9
|
+
parse = defaultParser,
|
|
10
|
+
serialize = defaultSerializer
|
|
11
|
+
} = options;
|
|
12
|
+
const value = element.getAttribute(attribute)?.trim();
|
|
13
|
+
const tokens = value ? parse(value).filter(Boolean) : [];
|
|
14
|
+
if (caseInsensitive) {
|
|
15
|
+
const lower = token.toLowerCase();
|
|
16
|
+
if (tokens.some((token2) => token2.toLowerCase() === lower)) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
tokens.push(token);
|
|
20
|
+
element.setAttribute(attribute, serialize(tokens));
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const set = new Set(tokens);
|
|
24
|
+
set.add(token);
|
|
25
|
+
element.setAttribute(attribute, serialize([...set]));
|
|
10
26
|
}
|
|
11
27
|
var snapshots = /* @__PURE__ */ new WeakMap();
|
|
12
28
|
function restoreAttributes(elements) {
|
|
13
|
-
|
|
29
|
+
for (const element of elements) {
|
|
14
30
|
const snapshot = snapshots.get(element);
|
|
15
31
|
if (!snapshot) {
|
|
16
|
-
|
|
32
|
+
continue;
|
|
17
33
|
}
|
|
18
34
|
for (const [attribute, value] of snapshot.entries()) {
|
|
19
|
-
|
|
20
|
-
element.removeAttribute(attribute);
|
|
21
|
-
} else {
|
|
22
|
-
element.setAttribute(attribute, value);
|
|
23
|
-
}
|
|
35
|
+
value === null ? element.removeAttribute(attribute) : element.setAttribute(attribute, value);
|
|
24
36
|
}
|
|
25
37
|
snapshots.delete(element);
|
|
26
|
-
}
|
|
38
|
+
}
|
|
27
39
|
}
|
|
28
40
|
function saveAttributes(elements, attributes) {
|
|
29
41
|
elements.forEach((element) => {
|
|
@@ -618,7 +630,7 @@ function isFocusable(element) {
|
|
|
618
630
|
* Tabs
|
|
619
631
|
* WAI-ARIA compliant tabs pattern implementation in TypeScript.
|
|
620
632
|
*
|
|
621
|
-
* @version 1.3.
|
|
633
|
+
* @version 1.3.7
|
|
622
634
|
* @author Yusuke Kamiyamane
|
|
623
635
|
* @license MIT
|
|
624
636
|
* @copyright Copyright (c) Yusuke Kamiyamane
|
|
@@ -630,7 +642,7 @@ function isFocusable(element) {
|
|
|
630
642
|
(**
|
|
631
643
|
* Attributes Utils
|
|
632
644
|
*
|
|
633
|
-
* @version 1.0.
|
|
645
|
+
* @version 1.0.5
|
|
634
646
|
* @author Yusuke Kamiyamane
|
|
635
647
|
* @license MIT
|
|
636
648
|
* @copyright Copyright (c) Yusuke Kamiyamane
|
package/dist/index.d.cts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,27 +1,39 @@
|
|
|
1
1
|
// node_modules/@y14e/attributes-utils/dist/index.js
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
var defaultParser = (value) => value.split(/\s+/);
|
|
3
|
+
var defaultSerializer = (tokens) => tokens.join(" ");
|
|
4
|
+
function addTokenToAttribute(element, attribute, token, options = {}) {
|
|
5
|
+
const {
|
|
6
|
+
caseInsensitive = false,
|
|
7
|
+
parse = defaultParser,
|
|
8
|
+
serialize = defaultSerializer
|
|
9
|
+
} = options;
|
|
10
|
+
const value = element.getAttribute(attribute)?.trim();
|
|
11
|
+
const tokens = value ? parse(value).filter(Boolean) : [];
|
|
12
|
+
if (caseInsensitive) {
|
|
13
|
+
const lower = token.toLowerCase();
|
|
14
|
+
if (tokens.some((token2) => token2.toLowerCase() === lower)) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
tokens.push(token);
|
|
18
|
+
element.setAttribute(attribute, serialize(tokens));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const set = new Set(tokens);
|
|
22
|
+
set.add(token);
|
|
23
|
+
element.setAttribute(attribute, serialize([...set]));
|
|
8
24
|
}
|
|
9
25
|
var snapshots = /* @__PURE__ */ new WeakMap();
|
|
10
26
|
function restoreAttributes(elements) {
|
|
11
|
-
|
|
27
|
+
for (const element of elements) {
|
|
12
28
|
const snapshot = snapshots.get(element);
|
|
13
29
|
if (!snapshot) {
|
|
14
|
-
|
|
30
|
+
continue;
|
|
15
31
|
}
|
|
16
32
|
for (const [attribute, value] of snapshot.entries()) {
|
|
17
|
-
|
|
18
|
-
element.removeAttribute(attribute);
|
|
19
|
-
} else {
|
|
20
|
-
element.setAttribute(attribute, value);
|
|
21
|
-
}
|
|
33
|
+
value === null ? element.removeAttribute(attribute) : element.setAttribute(attribute, value);
|
|
22
34
|
}
|
|
23
35
|
snapshots.delete(element);
|
|
24
|
-
}
|
|
36
|
+
}
|
|
25
37
|
}
|
|
26
38
|
function saveAttributes(elements, attributes) {
|
|
27
39
|
elements.forEach((element) => {
|
|
@@ -616,7 +628,7 @@ function isFocusable(element) {
|
|
|
616
628
|
* Tabs
|
|
617
629
|
* WAI-ARIA compliant tabs pattern implementation in TypeScript.
|
|
618
630
|
*
|
|
619
|
-
* @version 1.3.
|
|
631
|
+
* @version 1.3.7
|
|
620
632
|
* @author Yusuke Kamiyamane
|
|
621
633
|
* @license MIT
|
|
622
634
|
* @copyright Copyright (c) Yusuke Kamiyamane
|
|
@@ -628,7 +640,7 @@ function isFocusable(element) {
|
|
|
628
640
|
(**
|
|
629
641
|
* Attributes Utils
|
|
630
642
|
*
|
|
631
|
-
* @version 1.0.
|
|
643
|
+
* @version 1.0.5
|
|
632
644
|
* @author Yusuke Kamiyamane
|
|
633
645
|
* @license MIT
|
|
634
646
|
* @copyright Copyright (c) Yusuke Kamiyamane
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@y14e/tabs",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.7",
|
|
4
4
|
"description": "WAI-ARIA compliant tabs pattern implementation in TypeScript",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
},
|
|
43
43
|
"homepage": "https://github.com/y14e/tabs#readme",
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@y14e/attributes-utils": "^1.0.
|
|
45
|
+
"@y14e/attributes-utils": "^1.0.5",
|
|
46
46
|
"bun-types": "latest",
|
|
47
47
|
"tsup": "^8.0.0",
|
|
48
48
|
"typescript": "^5.6.0",
|