aria-ease 2.0.1 → 2.0.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/README.md +2 -5
- package/dist/Types.d-p85gN5m_.d.cts +22 -0
- package/dist/Types.d-p85gN5m_.d.ts +22 -0
- package/dist/chunk-4366LRNM.js +38 -0
- package/dist/chunk-4366LRNM.js.map +1 -0
- package/dist/chunk-4WO5XJ5K.js +58 -0
- package/dist/chunk-4WO5XJ5K.js.map +1 -0
- package/dist/chunk-5HQ6LLC5.js +21 -0
- package/dist/chunk-5HQ6LLC5.js.map +1 -0
- package/dist/chunk-FBQ5LF2T.js +21 -0
- package/dist/chunk-FBQ5LF2T.js.map +1 -0
- package/dist/chunk-KGYGCX67.js +18 -0
- package/dist/chunk-KGYGCX67.js.map +1 -0
- package/dist/chunk-KVTLMA4J.js +58 -0
- package/dist/chunk-KVTLMA4J.js.map +1 -0
- package/dist/chunk-MEA5U2G4.js +24 -0
- package/dist/chunk-MEA5U2G4.js.map +1 -0
- package/dist/chunk-RK3JUAFZ.js +18 -0
- package/dist/chunk-RK3JUAFZ.js.map +1 -0
- package/dist/chunk-RT5IROW4.js +99 -0
- package/dist/chunk-RT5IROW4.js.map +1 -0
- package/dist/index.cjs +15 -73
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -123
- package/dist/index.d.ts +7 -123
- package/dist/index.js +7 -322
- package/dist/index.js.map +1 -1
- package/dist/src/accordion/index.cjs +25 -0
- package/dist/src/accordion/index.cjs.map +1 -0
- package/dist/src/accordion/index.d.cts +13 -0
- package/dist/src/accordion/index.d.ts +13 -0
- package/dist/src/accordion/index.js +2 -0
- package/dist/src/accordion/index.js.map +1 -0
- package/dist/src/block/index.cjs +121 -0
- package/dist/src/block/index.cjs.map +1 -0
- package/dist/src/block/index.d.cts +8 -0
- package/dist/src/block/index.d.ts +8 -0
- package/dist/src/block/index.js +3 -0
- package/dist/src/block/index.js.map +1 -0
- package/dist/src/checkbox/index.cjs +19 -0
- package/dist/src/checkbox/index.cjs.map +1 -0
- package/dist/src/checkbox/index.d.cts +13 -0
- package/dist/src/checkbox/index.d.ts +13 -0
- package/dist/src/checkbox/index.js +2 -0
- package/dist/src/checkbox/index.js.map +1 -0
- package/dist/src/menu/index.cjs +155 -0
- package/dist/src/menu/index.cjs.map +1 -0
- package/dist/src/menu/index.d.cts +17 -0
- package/dist/src/menu/index.d.ts +17 -0
- package/dist/src/menu/index.js +3 -0
- package/dist/src/menu/index.js.map +1 -0
- package/dist/src/radio/index.cjs +22 -0
- package/dist/src/radio/index.cjs.map +1 -0
- package/dist/src/radio/index.d.cts +13 -0
- package/dist/src/radio/index.d.ts +13 -0
- package/dist/src/radio/index.js +2 -0
- package/dist/src/radio/index.js.map +1 -0
- package/dist/src/toggle/index.cjs +22 -0
- package/dist/src/toggle/index.cjs.map +1 -0
- package/dist/src/toggle/index.d.cts +13 -0
- package/dist/src/toggle/index.d.ts +13 -0
- package/dist/src/toggle/index.js +2 -0
- package/dist/src/toggle/index.js.map +1 -0
- package/package.json +26 -2
- package/dist/index.d.mts +0 -140
- package/dist/index.mjs +0 -110
- package/dist/index.mjs.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,18 +1,4 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __export = function(target, all) {
|
|
4
|
-
for(var name in all)__defProp(target, name, {
|
|
5
|
-
get: all[name],
|
|
6
|
-
enumerable: true
|
|
7
|
-
});
|
|
8
|
-
};
|
|
9
|
-
// src/accordion/index.ts
|
|
10
|
-
var accordion_exports = {};
|
|
11
|
-
__export(accordion_exports, {
|
|
12
|
-
updateAccordionTriggerAriaAttributes: function() {
|
|
13
|
-
return updateAccordionTriggerAriaAttributes;
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
2
|
// src/accordion/src/updateAccordionTriggerAriaAttributes/updateAccordionTriggerAriaAttributes.ts
|
|
17
3
|
function updateAccordionTriggerAriaAttributes(accordionId, accordionTriggersClass, accordionStates, clickedTriggerIndex) {
|
|
18
4
|
var accordionDiv = document.querySelector("#".concat(accordionId));
|
|
@@ -29,24 +15,12 @@ function updateAccordionTriggerAriaAttributes(accordionId, accordionTriggersClas
|
|
|
29
15
|
accordionItems.forEach(function(accordionItem, index) {
|
|
30
16
|
var state = accordionStates[index];
|
|
31
17
|
var expanded = accordionItem.getAttribute("aria-expanded");
|
|
32
|
-
var label = accordionItem.getAttribute("aria-label");
|
|
33
18
|
var shouldBeExpanded = index === clickedTriggerIndex ? state.display ? "true" : "false" : "false";
|
|
34
|
-
var shouldBeLabel = state.display ? state.openedAriaLabel : state.closedAriaLabel;
|
|
35
19
|
if (expanded && expanded !== shouldBeExpanded) {
|
|
36
20
|
accordionItem.setAttribute("aria-expanded", shouldBeExpanded);
|
|
37
21
|
}
|
|
38
|
-
if (label && shouldBeLabel && label !== shouldBeLabel) {
|
|
39
|
-
accordionItem.setAttribute("aria-label", shouldBeLabel);
|
|
40
|
-
}
|
|
41
22
|
});
|
|
42
23
|
}
|
|
43
|
-
// src/block/index.ts
|
|
44
|
-
var block_exports = {};
|
|
45
|
-
__export(block_exports, {
|
|
46
|
-
makeBlockAccessible: function() {
|
|
47
|
-
return makeBlockAccessible;
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
24
|
// src/utils/handleKeyPress/handleKeyPress.ts
|
|
51
25
|
function isTextInput(el) {
|
|
52
26
|
if (el.tagName !== "INPUT") return false;
|
|
@@ -80,16 +54,15 @@ function moveFocus(elementItems, currentIndex, direction) {
|
|
|
80
54
|
function isClickableButNotSemantic(el) {
|
|
81
55
|
return el.getAttribute("data-custom-click") !== null || el.getAttribute("data-custom-click") !== void 0;
|
|
82
56
|
}
|
|
83
|
-
function handleMenuEscapeKeyPress(menuElement, menuTriggerButton
|
|
57
|
+
function handleMenuEscapeKeyPress(menuElement, menuTriggerButton) {
|
|
84
58
|
menuElement.style.display = "none";
|
|
85
59
|
var menuTriggerButtonId = menuTriggerButton.getAttribute("id");
|
|
86
60
|
if (!menuTriggerButtonId) {
|
|
87
61
|
throw new Error("Menu trigger button does not have id attribute");
|
|
88
62
|
}
|
|
89
63
|
menuTriggerButton.setAttribute("aria-expanded", "false");
|
|
90
|
-
menuTriggerButton.setAttribute("aria-label", menuClosedStateAriaLabel);
|
|
91
64
|
}
|
|
92
|
-
function handleKeyPress(event, elementItems, elementItemIndex, menuElementDiv, triggerButton
|
|
65
|
+
function handleKeyPress(event, elementItems, elementItemIndex, menuElementDiv, triggerButton) {
|
|
93
66
|
var currentEl = elementItems.item(elementItemIndex);
|
|
94
67
|
switch(event.key){
|
|
95
68
|
case "ArrowUp":
|
|
@@ -126,9 +99,9 @@ function handleKeyPress(event, elementItems, elementItemIndex, menuElementDiv, t
|
|
|
126
99
|
case "Escape":
|
|
127
100
|
{
|
|
128
101
|
event.preventDefault();
|
|
129
|
-
if (menuElementDiv && triggerButton
|
|
102
|
+
if (menuElementDiv && triggerButton) {
|
|
130
103
|
if (getComputedStyle(menuElementDiv).display === "block") {
|
|
131
|
-
handleMenuEscapeKeyPress(menuElementDiv, triggerButton
|
|
104
|
+
handleMenuEscapeKeyPress(menuElementDiv, triggerButton);
|
|
132
105
|
}
|
|
133
106
|
triggerButton.focus();
|
|
134
107
|
}
|
|
@@ -180,13 +153,6 @@ function makeBlockAccessible(blockId, blockElementsClass) {
|
|
|
180
153
|
});
|
|
181
154
|
};
|
|
182
155
|
}
|
|
183
|
-
// src/checkbox/index.ts
|
|
184
|
-
var checkbox_exports = {};
|
|
185
|
-
__export(checkbox_exports, {
|
|
186
|
-
updateCheckboxAriaAttributes: function() {
|
|
187
|
-
return updateCheckboxAriaAttributes;
|
|
188
|
-
}
|
|
189
|
-
});
|
|
190
156
|
// src/checkbox/src/updateCheckboxAriaAttributes/updateCheckboxAriaAttributes.ts
|
|
191
157
|
function updateCheckboxAriaAttributes(checkboxId, checkboxesClass, checkboxStates, currentPressedCheckboxIndex) {
|
|
192
158
|
var checkboxDiv = document.querySelector("#".concat(checkboxId));
|
|
@@ -200,36 +166,26 @@ function updateCheckboxAriaAttributes(checkboxId, checkboxesClass, checkboxState
|
|
|
200
166
|
checkboxItems.forEach(function(checkbox, index) {
|
|
201
167
|
if (index === currentPressedCheckboxIndex) {
|
|
202
168
|
checkbox.setAttribute("aria-checked", checkboxStates[index].checked ? "true" : "false");
|
|
203
|
-
checkbox.setAttribute("aria-label", checkboxStates[index].checked ? checkboxStates[index].checkedAriaLabel : checkboxStates[index].uncheckedAriaLabel);
|
|
204
169
|
}
|
|
205
170
|
});
|
|
206
171
|
}
|
|
207
|
-
// src/menu/index.ts
|
|
208
|
-
var menu_exports = {};
|
|
209
|
-
__export(menu_exports, {
|
|
210
|
-
makeMenuAccessible: function() {
|
|
211
|
-
return makeMenuAccessible;
|
|
212
|
-
}
|
|
213
|
-
});
|
|
214
172
|
// src/menu/src/makeMenuAccessible/makeMenuAccessible.ts
|
|
215
173
|
function makeMenuAccessible(param) {
|
|
216
|
-
var menuId = param.menuId, menuElementsClass = param.menuElementsClass, triggerId = param.triggerId
|
|
174
|
+
var menuId = param.menuId, menuElementsClass = param.menuElementsClass, triggerId = param.triggerId;
|
|
217
175
|
var menuDiv = document.querySelector("#".concat(menuId));
|
|
218
176
|
if (!menuDiv) throw new Error("Invalid menu div id provided");
|
|
219
177
|
var triggerButton = document.querySelector("#".concat(triggerId));
|
|
220
178
|
if (!triggerButton) throw new Error("Invalid trigger button id provided");
|
|
221
|
-
var menuClosedStateAriaLabel = closeLabel;
|
|
222
179
|
var handlerMap = /* @__PURE__ */ new Map();
|
|
223
|
-
function setAria(isOpen
|
|
180
|
+
function setAria(isOpen) {
|
|
224
181
|
triggerButton.setAttribute("aria-expanded", isOpen ? "true" : "false");
|
|
225
|
-
triggerButton.setAttribute("aria-label", label);
|
|
226
182
|
}
|
|
227
183
|
function addListeners() {
|
|
228
184
|
var menuItems = menuDiv.querySelectorAll(".".concat(menuElementsClass));
|
|
229
185
|
menuItems.forEach(function(menuItem, index) {
|
|
230
186
|
if (!handlerMap.has(menuItem)) {
|
|
231
187
|
var handler = function(event) {
|
|
232
|
-
return handleKeyPress(event, menuItems, index, menuDiv, triggerButton
|
|
188
|
+
return handleKeyPress(event, menuItems, index, menuDiv, triggerButton);
|
|
233
189
|
};
|
|
234
190
|
menuItem.addEventListener("keydown", handler);
|
|
235
191
|
handlerMap.set(menuItem, handler);
|
|
@@ -248,7 +204,7 @@ function makeMenuAccessible(param) {
|
|
|
248
204
|
}
|
|
249
205
|
function openMenu() {
|
|
250
206
|
menuDiv.style.display = "block";
|
|
251
|
-
setAria(true
|
|
207
|
+
setAria(true);
|
|
252
208
|
addListeners();
|
|
253
209
|
var menuItems = menuDiv.querySelectorAll(".".concat(menuElementsClass));
|
|
254
210
|
if (menuItems.length > 0) menuItems[0].focus();
|
|
@@ -256,7 +212,7 @@ function makeMenuAccessible(param) {
|
|
|
256
212
|
function closeMenu() {
|
|
257
213
|
removeListeners();
|
|
258
214
|
menuDiv.style.display = "none";
|
|
259
|
-
setAria(false
|
|
215
|
+
setAria(false);
|
|
260
216
|
triggerButton.focus();
|
|
261
217
|
}
|
|
262
218
|
function cleanup() {
|
|
@@ -268,13 +224,6 @@ function makeMenuAccessible(param) {
|
|
|
268
224
|
cleanup: cleanup
|
|
269
225
|
};
|
|
270
226
|
}
|
|
271
|
-
// src/radio/index.ts
|
|
272
|
-
var radio_exports = {};
|
|
273
|
-
__export(radio_exports, {
|
|
274
|
-
updateRadioAriaAttributes: function() {
|
|
275
|
-
return updateRadioAriaAttributes;
|
|
276
|
-
}
|
|
277
|
-
});
|
|
278
227
|
// src/radio/src/updateRadioAriaAttributes/updateRadioAriaAttributes.ts
|
|
279
228
|
function updateRadioAriaAttributes(radioId, radiosClass, radioStates, currentPressedRadioIndex) {
|
|
280
229
|
var radioDiv = document.querySelector("#".concat(radioId));
|
|
@@ -294,13 +243,6 @@ function updateRadioAriaAttributes(radioId, radiosClass, radioStates, currentPre
|
|
|
294
243
|
}
|
|
295
244
|
});
|
|
296
245
|
}
|
|
297
|
-
// src/toggle/index.ts
|
|
298
|
-
var toggle_exports = {};
|
|
299
|
-
__export(toggle_exports, {
|
|
300
|
-
updateToggleAriaAttribute: function() {
|
|
301
|
-
return updateToggleAriaAttribute;
|
|
302
|
-
}
|
|
303
|
-
});
|
|
304
246
|
// src/toggle/src/updateToggleAriaAttribute/updateToggleAriaAttribute.ts
|
|
305
247
|
function updateToggleAriaAttribute(toggleId, togglesClass, toggleStates, currentPressedToggleIndex) {
|
|
306
248
|
var toggleDiv = document.querySelector("#".concat(toggleId));
|
|
@@ -320,10 +262,10 @@ function updateToggleAriaAttribute(toggleId, togglesClass, toggleStates, current
|
|
|
320
262
|
}
|
|
321
263
|
});
|
|
322
264
|
}
|
|
323
|
-
exports.
|
|
324
|
-
exports.
|
|
325
|
-
exports.
|
|
326
|
-
exports.
|
|
327
|
-
exports.
|
|
328
|
-
exports.
|
|
265
|
+
exports.makeBlockAccessible = makeBlockAccessible;
|
|
266
|
+
exports.makeMenuAccessible = makeMenuAccessible;
|
|
267
|
+
exports.updateAccordionTriggerAriaAttributes = updateAccordionTriggerAriaAttributes;
|
|
268
|
+
exports.updateCheckboxAriaAttributes = updateCheckboxAriaAttributes;
|
|
269
|
+
exports.updateRadioAriaAttributes = updateRadioAriaAttributes;
|
|
270
|
+
exports.updateToggleAriaAttribute = updateToggleAriaAttribute; //# sourceMappingURL=index.cjs.map
|
|
329
271
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/macx/aria-ease/package/dist/index.cjs","../src/accordion/index.ts","../src/accordion/src/updateAccordionTriggerAriaAttributes/updateAccordionTriggerAriaAttributes.ts","../src/block/index.ts"],"names":["accordion_exports","__export","block_exports"],"mappings":"AAAA;SAK0D,GAAA,EAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,EAAA,GAAA,CAAA,IAAA,CAAA,KAAA,MAAA,EAAA,MAAA;SAAA,GAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,CAAA,IAAA,MAAA,MAAA,EAAA,MAAA;SAAA,GAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAA,MAAA,MAAA,EAAA,MAAA;QAAA,KAAA,GAAA,CAAA,KAAA;QAAA,YAAA;IAAA;IAAA;AAG1D,yBAAyB;ACRzB,IAAAA,oBAAA,CAAA;AAAAC,SAAAD,mBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;gDCa4F,EAAA,CAAA,CAAA,GAAA,EAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,ACb5F,EDa8F,ACb9FE,CDa8F,CCb9FA,EDa8F,ECb9FA,CAAAA,CDa8F,CAAA,GCb9FA,CDa8F,ACb9FA,CAAA,CAAA,EDa8F,ACb9FD,CAAA,CAAAA,EAAA,CAAAC,CDa8F,ACb9FA,CAAAA,CDa8F,CAAA,ACb9F,CAAAA,EAAA,AAAAA,CAAAA,CAAAA,EAAA,OAAAA,CAAAA,CDa8F,ACb9F,CDa8F,ACb9FA,EAAA,EDa8F,CCb9F,EAAA,IDa8F,CCb9F,GAAA,GAAA,EAAA,GAAA,EAAA,MAAA,EAAA,KAAA,KAAA,KAAA,EAAA,GAAA,EAAA,WAAA,KAAA,CAAA,EAAA,GAAA,EAAA","sourcesContent":["'use strict';\n\nvar __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/accordion/index.ts\nvar accordion_exports = {};\n__export(accordion_exports, {\n updateAccordionTriggerAriaAttributes: () => updateAccordionTriggerAriaAttributes\n});\n\n// src/accordion/src/updateAccordionTriggerAriaAttributes/updateAccordionTriggerAriaAttributes.ts\nfunction updateAccordionTriggerAriaAttributes(accordionStates, accordionsClass, currentClickedTriggerIndex) {\n console.log(\"Accordion updateAccordionTriggerAriaAttributes initiated\");\n}\n\n// src/block/index.ts\nvar block_exports = {};\n__export(block_exports, {\n makeBlockAccessible: () => makeBlockAccessible\n});\n\n// src/block/src/makeBlockAccessible/makeBlockAccessible.ts\nfunction makeBlockAccessible(blockId, blockItemsClass) {\n console.log(\"Block makeBlockAccessible initiated\");\n}\n\n// src/checkbox/index.ts\nvar checkbox_exports = {};\n__export(checkbox_exports, {\n updateGroupCheckboxesAriaAttributes: () => updateGroupCheckboxesAriaAttributes,\n updateSingleCheckboxAriaAttributes: () => updateSingleCheckboxAriaAttributes\n});\n\n// src/checkbox/src/single-checkbox/updateSingleCheckboxAriaAttributes/updateSingleCheckboxAriaAttributes.ts\nfunction updateSingleCheckboxAriaAttributes(checkboxClass, updatedAriaLabel) {\n console.log(\"Checkbox updateSingleCheckboxAriaAttributes initiated\");\n}\n\n// src/checkbox/src/group-checkbox/updateGroupCheckboxesAriaAttributes/updateGroupCheckboxesAriaAttributes.ts\nfunction updateGroupCheckboxesAriaAttributes(checkboxStates, checkboxesClass, currentPressedCheckboxIndex) {\n console.log(\"Checkbox updateGroupCheckboxesAriaAttributes initiated\");\n}\n\n// src/menu/index.ts\nvar menu_exports = {};\n__export(menu_exports, {\n cleanUpMenuEventListeners: () => cleanUpMenuEventListeners,\n makeMenuAccessible: () => makeMenuAccessible,\n updateMenuTriggerAriaAttributes: () => updateMenuTriggerAriaAttributes\n});\n\n// src/menu/src/cleanUpMenuEventListeners/cleanUpMenuEventListeners.ts\nfunction cleanUpMenuEventListeners(menuId, menuItemsClass) {\n console.log(\"Menu cleanUpMenuEventListeners initiated\");\n}\n\n// src/menu/src/makeMenuAccessible/makeMenuAccessible.ts\nfunction makeMenuAccessible(menuId, menuItemsClass) {\n console.log(\"Menu makeMenuAccessible initiated\");\n}\n\n// src/menu/src/updateMenuTriggerAriaAttributes/updateMenuTriggerAriaAttributes.ts\nfunction updateMenuTriggerAriaAttributes(triggerId, ariaLabel) {\n console.log(\"Menu updateMenuTriggerAriaAttributes initiated\");\n}\n\n// src/radio/index.ts\nvar radio_exports = {};\n__export(radio_exports, {\n updateGroupRadiosAriaAttributes: () => updateGroupRadiosAriaAttributes,\n updateSingleRadioAriaAttributes: () => updateSingleRadioAriaAttributes\n});\n\n// src/radio/src/single-radio/updateSingleRadioAriaAttributes.ts\nfunction updateSingleRadioAriaAttributes(radioClass) {\n console.log(\"Radio updateSingleRadioAriaAttributes initiated\");\n}\n\n// src/radio/src/group-radio/updateGroupRadiosAriaAttributes.ts\nfunction updateGroupRadiosAriaAttributes(radioStates, radiosClass, currentPressedRadioIndex) {\n console.log(\"Radio updateGroupRadiosAriaAttributes initiated\");\n}\n\n// src/toggle/index.ts\nvar toggle_exports = {};\n__export(toggle_exports, {\n updateGroupTogglesAriaAttributes: () => updateGroupTogglesAriaAttributes,\n updateSingleToggleAriaAttributes: () => updateSingleToggleAriaAttributes\n});\n\n// src/toggle/src/single-toggle/updateSingleToggleAriaAttributes.ts\nfunction updateSingleToggleAriaAttributes(toggleClass) {\n console.log(\"Toggle updateSingleToggleAriaAttributes initiated\");\n}\n\n// src/toggle/src/group-toggle/updateGroupTogglesAriaAttributes.ts\nfunction updateGroupTogglesAriaAttributes(toggleStates, togglesClass, currentPressedToggleIndex) {\n console.log(\"Toggle updateGroupTogglesAriaAttributes initiated\");\n}\n\nexports.Accordion = accordion_exports;\nexports.Block = block_exports;\nexports.Checkbox = checkbox_exports;\nexports.Menu = menu_exports;\nexports.Radio = radio_exports;\nexports.Toggle = toggle_exports;\n//# sourceMappingURL=index.cjs.map\n","import { updateAccordionTriggerAriaAttributes } from \"./src/updateAccordionTriggerAriaAttributes/updateAccordionTriggerAriaAttributes\";\n\nexport { updateAccordionTriggerAriaAttributes }","/**\n * Adds screen reader accessibility to accordions. Updates the aria attributes of the accordion trigger button. Trigger button element must possess the following aria attributes; aria-expanded, aria-controls, aria-label (for only non-text triggers).\n * @param {string} accordionId The id of the accordion triggers parent container.\n * @param {string} accordionTriggersClass The shared class of all the accordion triggers.\n * @param {AccordionStates[]} accordionStates Array of objects containing accordions state information.\n * @param {number} clickedTriggerIndex Index of the currently clicked accordion trigger within the accordion div container.\n*/\n\nimport { HTMLElement, AccordionStates } from \"../../../../Types\";\n\nexport function updateAccordionTriggerAriaAttributes(accordionId: string, accordionTriggersClass: string, accordionStates: AccordionStates[], clickedTriggerIndex: number): void {\n const accordionDiv: HTMLElement | null = document.querySelector(`#${accordionId}`);\n if (!accordionDiv) {\n throw new Error(\"Invalid accordion main div id provided.\");\n }\n\n const accordionItems: HTMLElement[] = Array.from(accordionDiv.querySelectorAll(`.${accordionTriggersClass}`));\n if (accordionItems.length === 0) {\n throw new Error(\"Invalid accordion items shared class provided.\");\n }\n\n if (accordionItems.length !== accordionStates.length) {\n throw new Error(`Accordion state/DOM length mismatch: found ${accordionItems.length} triggers, but got ${accordionStates.length} state objects.`);\n }\n\n accordionItems.forEach((accordionItem: HTMLElement, index: number) => {\n const state = accordionStates[index];\n const expanded = accordionItem.getAttribute(\"aria-expanded\");\n const label = accordionItem.getAttribute(\"aria-label\");\n const shouldBeExpanded = index === clickedTriggerIndex ? (state.display ? \"true\" : \"false\") : \"false\";\n const shouldBeLabel = state.display ? state.openedAriaLabel : state.closedAriaLabel;\n if (expanded && expanded !== shouldBeExpanded) {\n accordionItem.setAttribute(\"aria-expanded\", shouldBeExpanded);\n }\n if (label && shouldBeLabel && label !== shouldBeLabel) {\n accordionItem.setAttribute(\"aria-label\", shouldBeLabel);\n }\n });\n}","import { makeBlockAccessible } from \"./src/makeBlockAccessible/makeBlockAccessible\";\n\nexport { makeBlockAccessible }"]}
|
|
1
|
+
{"version":3,"sources":["/Users/macx/aria-ease/package/dist/index.cjs","../src/accordion/src/updateAccordionTriggerAriaAttributes/updateAccordionTriggerAriaAttributes.ts","../src/utils/handleKeyPress/handleKeyPress.ts","../src/block/src/makeBlockAccessible/makeBlockAccessible.ts","../src/checkbox/src/updateCheckboxAriaAttributes/updateCheckboxAriaAttributes.ts","../src/menu/src/makeMenuAccessible/makeMenuAccessible.ts"],"names":["Error","accordionItems","Array","from","accordionDiv","querySelectorAll","accordionTriggersClass","length","accordionStates","forEach","accordionItem","index","state","expanded","getAttribute","shouldBeExpanded","clickedTriggerIndex","display","setAttribute","el","tagName","includes","type","isTextArea","isNativeButton","isLink","moveFocus","elementItems","currentIndex","direction","len","nextIndex","item","focus","isClickableButNotSemantic","handleMenuEscapeKeyPress","menuElement","menuTriggerButton","style","menuTriggerButtonId","handleKeyPress","event","elementItemIndex","menuElementDiv","triggerButton","currentEl","key","isTextInput","preventDefault","cursorStart","selectionStart","value","cursorEnd","getComputedStyle","click","eventListenersMap","Map","makeBlockAccessible","blockId","blockElementsClass","blockDiv","document","querySelector","blockItems","blockItem","has","addEventListener","items","prototype","indexOf","call","handler","cleanUpBlockEventListeners","blockItemIndex","removeEventListener","delete","updateCheckboxAriaAttributes","checkboxId","checkboxesClass","checkboxStates","currentPressedCheckboxIndex","checkboxDiv","checkboxItems","checkbox","checked","makeMenuAccessible","menuId","menuElementsClass","triggerId","handlerMap","setAria","isOpen","addListeners","menuItems","menuDiv","menuItem","removeListeners","get"],"mappings":"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","sourcesContent":["'use strict';\n\n// src/accordion/src/updateAccordionTriggerAriaAttributes/updateAccordionTriggerAriaAttributes.ts\nfunction updateAccordionTriggerAriaAttributes(accordionId, accordionTriggersClass, accordionStates, clickedTriggerIndex) {\n const accordionDiv = document.querySelector(`#${accordionId}`);\n if (!accordionDiv) {\n throw new Error(\"Invalid accordion main div id provided.\");\n }\n const accordionItems = Array.from(accordionDiv.querySelectorAll(`.${accordionTriggersClass}`));\n if (accordionItems.length === 0) {\n throw new Error(\"Invalid accordion items shared class provided.\");\n }\n if (accordionItems.length !== accordionStates.length) {\n throw new Error(`Accordion state/DOM length mismatch: found ${accordionItems.length} triggers, but got ${accordionStates.length} state objects.`);\n }\n accordionItems.forEach((accordionItem, index) => {\n const state = accordionStates[index];\n const expanded = accordionItem.getAttribute(\"aria-expanded\");\n const shouldBeExpanded = index === clickedTriggerIndex ? state.display ? \"true\" : \"false\" : \"false\";\n if (expanded && expanded !== shouldBeExpanded) {\n accordionItem.setAttribute(\"aria-expanded\", shouldBeExpanded);\n }\n });\n}\n\n// src/utils/handleKeyPress/handleKeyPress.ts\nfunction isTextInput(el) {\n if (el.tagName !== \"INPUT\") return false;\n const type = el.type;\n return [\"text\", \"email\", \"password\", \"tel\", \"number\"].includes(type);\n}\nfunction isTextArea(el) {\n return el.tagName === \"TEXTAREA\";\n}\nfunction isNativeButton(el) {\n return el.tagName === \"BUTTON\" || el.tagName === \"INPUT\" && [\"button\", \"submit\", \"reset\"].includes(el.type);\n}\nfunction isLink(el) {\n return el.tagName === \"A\";\n}\nfunction moveFocus(elementItems, currentIndex, direction) {\n const len = elementItems.length;\n const nextIndex = (currentIndex + direction + len) % len;\n elementItems.item(nextIndex).focus();\n}\nfunction isClickableButNotSemantic(el) {\n return el.getAttribute(\"data-custom-click\") !== null || el.getAttribute(\"data-custom-click\") !== void 0;\n}\nfunction handleMenuEscapeKeyPress(menuElement, menuTriggerButton) {\n menuElement.style.display = \"none\";\n const menuTriggerButtonId = menuTriggerButton.getAttribute(\"id\");\n if (!menuTriggerButtonId) {\n throw new Error(\"Menu trigger button does not have id attribute\");\n }\n menuTriggerButton.setAttribute(\"aria-expanded\", \"false\");\n}\nfunction handleKeyPress(event, elementItems, elementItemIndex, menuElementDiv, triggerButton) {\n const currentEl = elementItems.item(elementItemIndex);\n switch (event.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\": {\n if (!isTextInput(currentEl) && !isTextArea(currentEl)) {\n event.preventDefault();\n moveFocus(elementItems, elementItemIndex, -1);\n } else if (isTextInput(currentEl) || isTextArea(currentEl)) {\n const cursorStart = currentEl.selectionStart;\n if (cursorStart === 0) {\n event.preventDefault();\n moveFocus(elementItems, elementItemIndex, -1);\n }\n }\n break;\n }\n case \"ArrowDown\":\n case \"ArrowRight\": {\n if (!isTextInput(currentEl) && !isTextArea(currentEl)) {\n event.preventDefault();\n moveFocus(elementItems, elementItemIndex, 1);\n } else if (isTextInput(currentEl) || isTextArea(currentEl)) {\n const value = currentEl.value;\n const cursorEnd = currentEl.selectionStart;\n if (cursorEnd === value.length) {\n event.preventDefault();\n moveFocus(elementItems, elementItemIndex, 1);\n }\n }\n break;\n }\n case \"Escape\": {\n event.preventDefault();\n if (menuElementDiv && triggerButton) {\n if (getComputedStyle(menuElementDiv).display === \"block\") {\n handleMenuEscapeKeyPress(menuElementDiv, triggerButton);\n }\n triggerButton.focus();\n }\n break;\n }\n case \"Enter\":\n case \" \": {\n if (!isNativeButton(currentEl) && !isLink(currentEl) && isClickableButNotSemantic(currentEl)) {\n event.preventDefault();\n currentEl.click();\n }\n break;\n }\n }\n}\n\n// src/block/src/makeBlockAccessible/makeBlockAccessible.ts\nvar eventListenersMap = /* @__PURE__ */ new Map();\nfunction makeBlockAccessible(blockId, blockElementsClass) {\n const blockDiv = document.querySelector(`#${blockId}`);\n if (!blockDiv) {\n throw new Error(\"Invalid block main div id provided.\");\n }\n const blockItems = blockDiv.querySelectorAll(`.${blockElementsClass}`);\n if (!blockItems) {\n throw new Error(\"Invalid block items shared class provided.\");\n }\n blockItems.forEach((blockItem) => {\n if (!eventListenersMap.has(blockItem)) {\n blockItem.addEventListener(\"keydown\", (event) => {\n const items = blockDiv.querySelectorAll(`.${blockElementsClass}`);\n const index = Array.prototype.indexOf.call(items, blockItem);\n handleKeyPress(event, items, index);\n const handler = (event2) => handleKeyPress(event2, items, index);\n eventListenersMap.set(blockItem, handler);\n });\n }\n });\n return function cleanUpBlockEventListeners() {\n blockItems.forEach((blockItem, blockItemIndex) => {\n if (eventListenersMap.has(blockItem)) {\n blockItem.removeEventListener(\"keydown\", (event) => handleKeyPress(event, blockItems, blockItemIndex));\n eventListenersMap.delete(blockItem);\n }\n });\n };\n}\n\n// src/checkbox/src/updateCheckboxAriaAttributes/updateCheckboxAriaAttributes.ts\nfunction updateCheckboxAriaAttributes(checkboxId, checkboxesClass, checkboxStates, currentPressedCheckboxIndex) {\n const checkboxDiv = document.querySelector(`#${checkboxId}`);\n if (!checkboxDiv) {\n throw new Error(\"Invalid checkbox main div id provided.\");\n }\n const checkboxItems = Array.from(document.querySelectorAll(`.${checkboxesClass}`));\n if (checkboxItems.length === 0) {\n throw new Error(\"Invalid checkboxes shared class provided.\");\n }\n checkboxItems.forEach((checkbox, index) => {\n if (index === currentPressedCheckboxIndex) {\n checkbox.setAttribute(\"aria-checked\", checkboxStates[index].checked ? \"true\" : \"false\");\n }\n });\n}\n\n// src/menu/src/makeMenuAccessible/makeMenuAccessible.ts\nfunction makeMenuAccessible({ menuId, menuElementsClass, triggerId }) {\n const menuDiv = document.querySelector(`#${menuId}`);\n if (!menuDiv) throw new Error(\"Invalid menu div id provided\");\n const triggerButton = document.querySelector(`#${triggerId}`);\n if (!triggerButton) throw new Error(\"Invalid trigger button id provided\");\n const handlerMap = /* @__PURE__ */ new Map();\n function setAria(isOpen) {\n triggerButton.setAttribute(\"aria-expanded\", isOpen ? \"true\" : \"false\");\n }\n function addListeners() {\n const menuItems = menuDiv.querySelectorAll(`.${menuElementsClass}`);\n menuItems.forEach((menuItem, index) => {\n if (!handlerMap.has(menuItem)) {\n const handler = (event) => handleKeyPress(event, menuItems, index, menuDiv, triggerButton);\n menuItem.addEventListener(\"keydown\", handler);\n handlerMap.set(menuItem, handler);\n }\n });\n }\n function removeListeners() {\n const menuItems = menuDiv.querySelectorAll(`.${menuElementsClass}`);\n menuItems.forEach((menuItem) => {\n const handler = handlerMap.get(menuItem);\n if (handler) {\n menuItem.removeEventListener(\"keydown\", handler);\n handlerMap.delete(menuItem);\n }\n });\n }\n function openMenu() {\n menuDiv.style.display = \"block\";\n setAria(true);\n addListeners();\n const menuItems = menuDiv.querySelectorAll(`.${menuElementsClass}`);\n if (menuItems.length > 0) menuItems[0].focus();\n }\n function closeMenu() {\n removeListeners();\n menuDiv.style.display = \"none\";\n setAria(false);\n triggerButton.focus();\n }\n function cleanup() {\n removeListeners();\n }\n return { openMenu, closeMenu, cleanup };\n}\n\n// src/radio/src/updateRadioAriaAttributes/updateRadioAriaAttributes.ts\nfunction updateRadioAriaAttributes(radioId, radiosClass, radioStates, currentPressedRadioIndex) {\n const radioDiv = document.querySelector(`#${radioId}`);\n if (!radioDiv) {\n throw new Error(\"Invalid radio main div id provided.\");\n }\n const radioItems = Array.from(radioDiv.querySelectorAll(`.${radiosClass}`));\n if (radioItems.length === 0) {\n throw new Error(\"Invalid radios shared class provided.\");\n }\n radioItems.forEach((radioItem, index) => {\n const state = radioStates[index];\n const checked = radioItem.getAttribute(\"aria-checked\");\n const shouldBeChecked = index === currentPressedRadioIndex ? state.checked ? \"true\" : \"false\" : \"false\";\n if (checked && checked !== shouldBeChecked) {\n radioItem.setAttribute(\"aria-checked\", shouldBeChecked);\n }\n });\n}\n\n// src/toggle/src/updateToggleAriaAttribute/updateToggleAriaAttribute.ts\nfunction updateToggleAriaAttribute(toggleId, togglesClass, toggleStates, currentPressedToggleIndex) {\n const toggleDiv = document.querySelector(`#${toggleId}`);\n if (!toggleDiv) {\n throw new Error(\"Invalid toggle main div id provided.\");\n }\n const toggleItems = Array.from(toggleDiv.querySelectorAll(`.${togglesClass}`));\n if (toggleItems.length === 0) {\n throw new Error(\"Invalid toggles shared class provided.\");\n }\n if (toggleItems.length !== toggleStates.length) {\n throw new Error(`Toggle state/DOM length mismatch: found ${toggleItems.length} triggers, but got ${toggleStates.length} state objects.`);\n }\n toggleItems.forEach((toggle, index) => {\n if (index === currentPressedToggleIndex) {\n toggle.setAttribute(\"aria-pressed\", toggleStates[index].pressed ? \"true\" : \"false\");\n }\n });\n}\n\nexports.makeBlockAccessible = makeBlockAccessible;\nexports.makeMenuAccessible = makeMenuAccessible;\nexports.updateAccordionTriggerAriaAttributes = updateAccordionTriggerAriaAttributes;\nexports.updateCheckboxAriaAttributes = updateCheckboxAriaAttributes;\nexports.updateRadioAriaAttributes = updateRadioAriaAttributes;\nexports.updateToggleAriaAttribute = updateToggleAriaAttribute;\n//# sourceMappingURL=index.cjs.map\n","/**\n * Adds screen reader accessibility to accordions. Updates the aria attributes of the accordion trigger button. Trigger button element must possess the following aria attributes; aria-expanded, aria-controls, aria-label (for only non-text triggers).\n * @param {string} accordionId The id of the accordion triggers parent container.\n * @param {string} accordionTriggersClass The shared class of all the accordion triggers.\n * @param {AccordionStates[]} accordionStates Array of objects containing accordions state information.\n * @param {number} clickedTriggerIndex Index of the currently clicked accordion trigger within the accordion div container.\n*/\n\nimport { HTMLElement, AccordionStates } from \"../../../../Types\";\n\nexport function updateAccordionTriggerAriaAttributes(accordionId: string, accordionTriggersClass: string, accordionStates: AccordionStates[], clickedTriggerIndex: number): void {\n const accordionDiv: HTMLElement | null = document.querySelector(`#${accordionId}`);\n if (!accordionDiv) {\n throw new Error(\"Invalid accordion main div id provided.\");\n }\n\n const accordionItems: HTMLElement[] = Array.from(accordionDiv.querySelectorAll(`.${accordionTriggersClass}`));\n if (accordionItems.length === 0) {\n throw new Error(\"Invalid accordion items shared class provided.\");\n }\n\n if (accordionItems.length !== accordionStates.length) {\n throw new Error(`Accordion state/DOM length mismatch: found ${accordionItems.length} triggers, but got ${accordionStates.length} state objects.`);\n }\n\n accordionItems.forEach((accordionItem: HTMLElement, index: number) => {\n const state = accordionStates[index];\n const expanded = accordionItem.getAttribute(\"aria-expanded\");\n const shouldBeExpanded = index === clickedTriggerIndex ? (state.display ? \"true\" : \"false\") : \"false\";\n if (expanded && expanded !== shouldBeExpanded) {\n accordionItem.setAttribute(\"aria-expanded\", shouldBeExpanded);\n }\n });\n}","import { NodeListOfHTMLElement, HTMLElement } from \"../../../Types\";\n\n\nfunction isTextInput(el: HTMLElement): boolean {\n if (el.tagName !== 'INPUT') return false;\n const type = (el as HTMLInputElement).type;\n return ['text', 'email', 'password', 'tel', 'number'].includes(type);\n}\n\nfunction isTextArea(el: HTMLElement): boolean {\n return el.tagName === 'TEXTAREA';\n}\n\nexport function isNativeButton(el: HTMLElement): boolean {\n return el.tagName === 'BUTTON' || (el.tagName === 'INPUT' && ['button', 'submit', 'reset'].includes((el as HTMLInputElement).type));\n}\n\nexport function isLink(el: HTMLElement): boolean {\n return el.tagName === 'A';\n}\n\nfunction moveFocus(elementItems: NodeListOfHTMLElement, currentIndex: number, direction: -1 | 1) {\n const len = elementItems.length;\n const nextIndex = (currentIndex + direction + len) % len;\n elementItems.item(nextIndex).focus();\n}\n\nfunction isClickableButNotSemantic(el: HTMLElement): boolean {\n return el.getAttribute(\"data-custom-click\") !== null || el.getAttribute(\"data-custom-click\") !== undefined;\n}\n\nfunction handleMenuEscapeKeyPress(menuElement: HTMLElement, menuTriggerButton: HTMLElement) {\n menuElement.style.display = 'none';\n const menuTriggerButtonId = menuTriggerButton.getAttribute('id');\n if (!menuTriggerButtonId) {\n throw new Error(\"Menu trigger button does not have id attribute\");\n }\n menuTriggerButton.setAttribute(\"aria-expanded\", \"false\");\n}\n\nexport function handleKeyPress(\n event: KeyboardEvent,\n elementItems: NodeListOfHTMLElement,\n elementItemIndex: number,\n menuElementDiv?: HTMLElement,\n triggerButton?: HTMLElement\n): void {\n const currentEl = elementItems.item(elementItemIndex);\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowLeft': {\n if (!isTextInput(currentEl) && !isTextArea(currentEl)) {\n event.preventDefault();\n moveFocus(elementItems, elementItemIndex, -1);\n } else if (isTextInput(currentEl) || isTextArea(currentEl)) {\n const cursorStart = (currentEl as HTMLInputElement | HTMLTextAreaElement).selectionStart;\n if (cursorStart === 0) {\n event.preventDefault();\n moveFocus(elementItems, elementItemIndex, -1);\n }\n }\n break;\n }\n case 'ArrowDown':\n case 'ArrowRight': {\n if (!isTextInput(currentEl) && !isTextArea(currentEl)) {\n event.preventDefault();\n moveFocus(elementItems, elementItemIndex, 1);\n } else if (isTextInput(currentEl) || isTextArea(currentEl)) {\n const value = (currentEl as HTMLInputElement | HTMLTextAreaElement).value;\n const cursorEnd = (currentEl as HTMLInputElement | HTMLTextAreaElement).selectionStart;\n if (cursorEnd === value.length) {\n event.preventDefault();\n moveFocus(elementItems, elementItemIndex, 1);\n }\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n if (menuElementDiv && triggerButton) {\n if (getComputedStyle(menuElementDiv).display === 'block') {\n handleMenuEscapeKeyPress(menuElementDiv, triggerButton);\n }\n triggerButton.focus();\n }\n break;\n }\n case 'Enter':\n case ' ': {\n if (!isNativeButton(currentEl) && !isLink(currentEl) && isClickableButNotSemantic(currentEl)) {\n event.preventDefault();\n currentEl.click();\n }\n break;\n }\n default:\n break;\n }\n}","/** \n * Adds keyboard interaction to block. The block traps focus and can be interacted with using the keyboard.\n * @param {string} blockId The id of the block container.\n * @param {string} blockElementsClass The shared class of the elements that are children of the block.\n*/\n\nimport { HTMLElement, NodeListOfHTMLElement } from \"../../../../Types\"\nimport { handleKeyPress } from \"../../../utils/handleKeyPress/handleKeyPress\";\n\nconst eventListenersMap = new Map<HTMLElement, (event: KeyboardEvent) => void>();\n\nexport function makeBlockAccessible(blockId: string, blockElementsClass: string) {\n const blockDiv: HTMLElement = document.querySelector(`#${blockId}`) as HTMLElement\n if(!blockDiv) {\n throw new Error(\"Invalid block main div id provided.\")\n }\n\n const blockItems: NodeListOfHTMLElement = blockDiv.querySelectorAll(`.${blockElementsClass}`);\n if(!blockItems) {\n throw new Error(\"Invalid block items shared class provided.\")\n }\n\n blockItems.forEach((blockItem: HTMLElement): void => {\n if (!eventListenersMap.has(blockItem)) {\n blockItem.addEventListener(\"keydown\", (event: KeyboardEvent) => {\n const items = blockDiv.querySelectorAll(`.${blockElementsClass}`) as NodeListOf<HTMLElement>;\n const index = Array.prototype.indexOf.call(items, blockItem);\n handleKeyPress(event, items, index);\n const handler = (event: KeyboardEvent) => handleKeyPress(event, items, index);\n eventListenersMap.set(blockItem, handler);\n });\n \n }\n });\n\n\n\n return function cleanUpBlockEventListeners(): void {\n blockItems.forEach((blockItem: HTMLElement, blockItemIndex: number): void => {\n if (eventListenersMap.has(blockItem)) {\n blockItem.removeEventListener(\"keydown\", (event: KeyboardEvent) => handleKeyPress(event, blockItems, blockItemIndex));\n eventListenersMap.delete(blockItem);\n }\n });\n };\n}","/**\n * Adds screen reader accessibility to multiple checkboxes. Updates the aria attributes of the checkboxes. Checkbox elements must possess the following aria attributes; aria-checked and aria-label.\n * @param {string} checkboxId The id of the checkbox parent container.\n * @param {string} checkboxesClass The shared class of all the checkboxes.\n * @param {CheckboxStates[]} checkboxStates Array of objects containing checkboxes state information.\n * @param {number} currentPressedCheckboxIndex Index of the currently checked or unchecked checkbox.\n*/\n\nimport { HTMLElement, CheckboxStates } from \"../../../../Types\";\n\nexport function updateCheckboxAriaAttributes(checkboxId: string, checkboxesClass: string, checkboxStates: CheckboxStates[], currentPressedCheckboxIndex: number): void {\n const checkboxDiv: HTMLElement | null = document.querySelector(`#${checkboxId}`);\n if (!checkboxDiv) {\n throw new Error(\"Invalid checkbox main div id provided.\");\n }\n \n const checkboxItems: HTMLElement[] = Array.from(document.querySelectorAll(`.${checkboxesClass}`));\n if (checkboxItems.length === 0) {\n throw new Error('Invalid checkboxes shared class provided.');\n };\n\n checkboxItems.forEach((checkbox: HTMLElement, index: number) => {\n if (index === currentPressedCheckboxIndex) {\n checkbox.setAttribute(\"aria-checked\", checkboxStates[index].checked ? 'true' : 'false');\n }\n });\n}","/**\n * Adds keyboard interaction to toggle menu. The menu traps focus and can be interacted with using the keyboard. The first interactive item of the menu has focus when menu open.\n * @param {string} menuId - The id of the menu.\n * @param {string} menuElementsClass - The class of the items that are children of the menu.\n * @param {string} triggerId - The id of the button that triggers the menu.\n*/\n\nimport { handleKeyPress } from \"../../../utils/handleKeyPress/handleKeyPress\";\nimport { NodeListOfHTMLElement } from \"../../../../Types\";\n\nexport function makeMenuAccessible({ menuId, menuElementsClass, triggerId }: {menuId: string; menuElementsClass: string; triggerId: string;}) {\n const menuDiv = document.querySelector(`#${menuId}`) as HTMLElement;\n if (!menuDiv) throw new Error(\"Invalid menu div id provided\");\n\n const triggerButton = document.querySelector(`#${triggerId}`) as HTMLElement;\n if (!triggerButton) throw new Error(\"Invalid trigger button id provided\");\n\n\n const handlerMap = new Map<HTMLElement, (event: KeyboardEvent) => void>();\n\n function setAria(isOpen: boolean) {\n triggerButton.setAttribute(\"aria-expanded\", isOpen ? \"true\" : \"false\");\n }\n\n function addListeners() {\n const menuItems = menuDiv.querySelectorAll(`.${menuElementsClass}`) as NodeListOfHTMLElement<HTMLElement>;\n menuItems.forEach((menuItem: HTMLElement, index: number) => {\n if (!handlerMap.has(menuItem)) {\n const handler = (event: KeyboardEvent) => handleKeyPress(event, menuItems, index, menuDiv, triggerButton);\n menuItem.addEventListener(\"keydown\", handler);\n handlerMap.set(menuItem, handler);\n }\n });\n }\n\n function removeListeners() {\n const menuItems = menuDiv.querySelectorAll(`.${menuElementsClass}`) as NodeListOfHTMLElement<HTMLElement>;\n menuItems.forEach((menuItem: HTMLElement) => {\n const handler = handlerMap.get(menuItem);\n if (handler) {\n menuItem.removeEventListener(\"keydown\", handler);\n handlerMap.delete(menuItem);\n }\n });\n }\n\n function openMenu() {\n menuDiv.style.display = \"block\";\n setAria(true);\n addListeners();\n \n const menuItems = menuDiv.querySelectorAll(`.${menuElementsClass}`) as NodeListOfHTMLElement<HTMLElement>;\n if (menuItems.length > 0) menuItems[0].focus();\n }\n\n function closeMenu() {\n removeListeners();\n menuDiv.style.display = \"none\";\n setAria(false);\n triggerButton.focus();\n }\n\n function cleanup() {\n removeListeners();\n }\n\n return { openMenu, closeMenu, cleanup };\n}"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,123 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
openedAriaLabel?: string;
|
|
9
|
-
closedAriaLabel?: string;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
interface CheckboxStates {
|
|
13
|
-
checked: boolean;
|
|
14
|
-
checkedAriaLabel: string;
|
|
15
|
-
uncheckedAriaLabel: string;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
interface RadioStates {
|
|
19
|
-
checked: boolean;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
interface ToggleStates {
|
|
23
|
-
pressed: boolean;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Adds screen reader accessibility to accordions. Updates the aria attributes of the accordion trigger button. Trigger button element must possess the following aria attributes; aria-expanded, aria-controls, aria-label (for only non-text triggers).
|
|
28
|
-
* @param {string} accordionId The id of the accordion triggers parent container.
|
|
29
|
-
* @param {string} accordionTriggersClass The shared class of all the accordion triggers.
|
|
30
|
-
* @param {AccordionStates[]} accordionStates Array of objects containing accordions state information.
|
|
31
|
-
* @param {number} clickedTriggerIndex Index of the currently clicked accordion trigger within the accordion div container.
|
|
32
|
-
*/
|
|
33
|
-
|
|
34
|
-
declare function updateAccordionTriggerAriaAttributes(accordionId: string, accordionTriggersClass: string, accordionStates: AccordionStates[], clickedTriggerIndex: number): void;
|
|
35
|
-
|
|
36
|
-
declare const index$5_updateAccordionTriggerAriaAttributes: typeof updateAccordionTriggerAriaAttributes;
|
|
37
|
-
declare namespace index$5 {
|
|
38
|
-
export { index$5_updateAccordionTriggerAriaAttributes as updateAccordionTriggerAriaAttributes };
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Adds keyboard interaction to block. The block traps focus and can be interacted with using the keyboard.
|
|
43
|
-
* @param {string} blockId The id of the block container.
|
|
44
|
-
* @param {string} blockElementsClass The shared class of the elements that are children of the block.
|
|
45
|
-
*/
|
|
46
|
-
declare function makeBlockAccessible(blockId: string, blockElementsClass: string): () => void;
|
|
47
|
-
|
|
48
|
-
declare const index$4_makeBlockAccessible: typeof makeBlockAccessible;
|
|
49
|
-
declare namespace index$4 {
|
|
50
|
-
export { index$4_makeBlockAccessible as makeBlockAccessible };
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Adds screen reader accessibility to multiple checkboxes. Updates the aria attributes of the checkboxes. Checkbox elements must possess the following aria attributes; aria-checked and aria-label.
|
|
55
|
-
* @param {string} checkboxId The id of the checkbox parent container.
|
|
56
|
-
* @param {string} checkboxesClass The shared class of all the checkboxes.
|
|
57
|
-
* @param {CheckboxStates[]} checkboxStates Array of objects containing checkboxes state information.
|
|
58
|
-
* @param {number} currentPressedCheckboxIndex Index of the currently checked or unchecked checkbox.
|
|
59
|
-
*/
|
|
60
|
-
|
|
61
|
-
declare function updateCheckboxAriaAttributes(checkboxId: string, checkboxesClass: string, checkboxStates: CheckboxStates[], currentPressedCheckboxIndex: number): void;
|
|
62
|
-
|
|
63
|
-
declare const index$3_updateCheckboxAriaAttributes: typeof updateCheckboxAriaAttributes;
|
|
64
|
-
declare namespace index$3 {
|
|
65
|
-
export { index$3_updateCheckboxAriaAttributes as updateCheckboxAriaAttributes };
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Adds keyboard interaction to toggle menu. The menu traps focus and can be interacted with using the keyboard. The first interactive item of the menu has focus when menu open.
|
|
70
|
-
* @param {string} menuId - The id of the menu.
|
|
71
|
-
* @param {string} menuElementsClass - The class of the items that are children of the menu.
|
|
72
|
-
* @param {string} triggerId - The id of the button that triggers the menu.
|
|
73
|
-
* @param {string} openLabel - The aria label of the menu trigger button when it is open, e.g, Open profile menu.
|
|
74
|
-
* @param {string} closeLabel - The aria label of the menu trigger button when it is closed, e.g Close profile menu.
|
|
75
|
-
*/
|
|
76
|
-
declare function makeMenuAccessible({ menuId, menuElementsClass, triggerId, openLabel, closeLabel }: {
|
|
77
|
-
menuId: string;
|
|
78
|
-
menuElementsClass: string;
|
|
79
|
-
triggerId: string;
|
|
80
|
-
openLabel: string;
|
|
81
|
-
closeLabel: string;
|
|
82
|
-
}): {
|
|
83
|
-
openMenu: () => void;
|
|
84
|
-
closeMenu: () => void;
|
|
85
|
-
cleanup: () => void;
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
declare const index$2_makeMenuAccessible: typeof makeMenuAccessible;
|
|
89
|
-
declare namespace index$2 {
|
|
90
|
-
export { index$2_makeMenuAccessible as makeMenuAccessible };
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Adds screen reader accessibility to multiple radio buttons. Updates the aria attributes of the radio buttons. Radio elements must possess the following aria attributes; aria-checked and aria-label.
|
|
95
|
-
* @param {string} radioId The id of the radio parent container.
|
|
96
|
-
* @param {string} radiosClass The shared class of all the radios.
|
|
97
|
-
* @param {RadioStates[]} radioStates Array of objects containing radio buttons state information.
|
|
98
|
-
* @param {number} currentPressedRadioIndex Index of the currently checked or unchecked radio button.
|
|
99
|
-
*/
|
|
100
|
-
|
|
101
|
-
declare function updateRadioAriaAttributes(radioId: string, radiosClass: string, radioStates: RadioStates[], currentPressedRadioIndex: number): void;
|
|
102
|
-
|
|
103
|
-
declare const index$1_updateRadioAriaAttributes: typeof updateRadioAriaAttributes;
|
|
104
|
-
declare namespace index$1 {
|
|
105
|
-
export { index$1_updateRadioAriaAttributes as updateRadioAriaAttributes };
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Adds screen reader accessibility to toggle buttons. Updates the aria attributes of the toggle buttons. Button must be a semantic button element or a non-semantic element with a role of button, and possess the aria-pressed attribute.
|
|
110
|
-
* @param {string} toggleId The id of the toggle buttons parent container.
|
|
111
|
-
* @param {string} togglesClass The shared class of all the toggle buttons.
|
|
112
|
-
* @param {ToggleStates[]} toggleStates Array of objects containing toggle buttons state information.
|
|
113
|
-
* @param {number} currentPressedToggleIndex Index of the currently pressed or unpressed toggle button.
|
|
114
|
-
*/
|
|
115
|
-
|
|
116
|
-
declare function updateToggleAriaAttribute(toggleId: string, togglesClass: string, toggleStates: ToggleStates[], currentPressedToggleIndex: number): void;
|
|
117
|
-
|
|
118
|
-
declare const index_updateToggleAriaAttribute: typeof updateToggleAriaAttribute;
|
|
119
|
-
declare namespace index {
|
|
120
|
-
export { index_updateToggleAriaAttribute as updateToggleAriaAttribute };
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
export { index$5 as Accordion, index$4 as Block, index$3 as Checkbox, index$2 as Menu, index$1 as Radio, index as Toggle };
|
|
1
|
+
export { updateAccordionTriggerAriaAttributes } from './src/accordion/index.cjs';
|
|
2
|
+
export { makeBlockAccessible } from './src/block/index.cjs';
|
|
3
|
+
export { updateCheckboxAriaAttributes } from './src/checkbox/index.cjs';
|
|
4
|
+
export { makeMenuAccessible } from './src/menu/index.cjs';
|
|
5
|
+
export { updateRadioAriaAttributes } from './src/radio/index.cjs';
|
|
6
|
+
export { updateToggleAriaAttribute } from './src/toggle/index.cjs';
|
|
7
|
+
import './Types.d-p85gN5m_.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,123 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
openedAriaLabel?: string;
|
|
9
|
-
closedAriaLabel?: string;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
interface CheckboxStates {
|
|
13
|
-
checked: boolean;
|
|
14
|
-
checkedAriaLabel: string;
|
|
15
|
-
uncheckedAriaLabel: string;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
interface RadioStates {
|
|
19
|
-
checked: boolean;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
interface ToggleStates {
|
|
23
|
-
pressed: boolean;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Adds screen reader accessibility to accordions. Updates the aria attributes of the accordion trigger button. Trigger button element must possess the following aria attributes; aria-expanded, aria-controls, aria-label (for only non-text triggers).
|
|
28
|
-
* @param {string} accordionId The id of the accordion triggers parent container.
|
|
29
|
-
* @param {string} accordionTriggersClass The shared class of all the accordion triggers.
|
|
30
|
-
* @param {AccordionStates[]} accordionStates Array of objects containing accordions state information.
|
|
31
|
-
* @param {number} clickedTriggerIndex Index of the currently clicked accordion trigger within the accordion div container.
|
|
32
|
-
*/
|
|
33
|
-
|
|
34
|
-
declare function updateAccordionTriggerAriaAttributes(accordionId: string, accordionTriggersClass: string, accordionStates: AccordionStates[], clickedTriggerIndex: number): void;
|
|
35
|
-
|
|
36
|
-
declare const index$5_updateAccordionTriggerAriaAttributes: typeof updateAccordionTriggerAriaAttributes;
|
|
37
|
-
declare namespace index$5 {
|
|
38
|
-
export { index$5_updateAccordionTriggerAriaAttributes as updateAccordionTriggerAriaAttributes };
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Adds keyboard interaction to block. The block traps focus and can be interacted with using the keyboard.
|
|
43
|
-
* @param {string} blockId The id of the block container.
|
|
44
|
-
* @param {string} blockElementsClass The shared class of the elements that are children of the block.
|
|
45
|
-
*/
|
|
46
|
-
declare function makeBlockAccessible(blockId: string, blockElementsClass: string): () => void;
|
|
47
|
-
|
|
48
|
-
declare const index$4_makeBlockAccessible: typeof makeBlockAccessible;
|
|
49
|
-
declare namespace index$4 {
|
|
50
|
-
export { index$4_makeBlockAccessible as makeBlockAccessible };
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Adds screen reader accessibility to multiple checkboxes. Updates the aria attributes of the checkboxes. Checkbox elements must possess the following aria attributes; aria-checked and aria-label.
|
|
55
|
-
* @param {string} checkboxId The id of the checkbox parent container.
|
|
56
|
-
* @param {string} checkboxesClass The shared class of all the checkboxes.
|
|
57
|
-
* @param {CheckboxStates[]} checkboxStates Array of objects containing checkboxes state information.
|
|
58
|
-
* @param {number} currentPressedCheckboxIndex Index of the currently checked or unchecked checkbox.
|
|
59
|
-
*/
|
|
60
|
-
|
|
61
|
-
declare function updateCheckboxAriaAttributes(checkboxId: string, checkboxesClass: string, checkboxStates: CheckboxStates[], currentPressedCheckboxIndex: number): void;
|
|
62
|
-
|
|
63
|
-
declare const index$3_updateCheckboxAriaAttributes: typeof updateCheckboxAriaAttributes;
|
|
64
|
-
declare namespace index$3 {
|
|
65
|
-
export { index$3_updateCheckboxAriaAttributes as updateCheckboxAriaAttributes };
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Adds keyboard interaction to toggle menu. The menu traps focus and can be interacted with using the keyboard. The first interactive item of the menu has focus when menu open.
|
|
70
|
-
* @param {string} menuId - The id of the menu.
|
|
71
|
-
* @param {string} menuElementsClass - The class of the items that are children of the menu.
|
|
72
|
-
* @param {string} triggerId - The id of the button that triggers the menu.
|
|
73
|
-
* @param {string} openLabel - The aria label of the menu trigger button when it is open, e.g, Open profile menu.
|
|
74
|
-
* @param {string} closeLabel - The aria label of the menu trigger button when it is closed, e.g Close profile menu.
|
|
75
|
-
*/
|
|
76
|
-
declare function makeMenuAccessible({ menuId, menuElementsClass, triggerId, openLabel, closeLabel }: {
|
|
77
|
-
menuId: string;
|
|
78
|
-
menuElementsClass: string;
|
|
79
|
-
triggerId: string;
|
|
80
|
-
openLabel: string;
|
|
81
|
-
closeLabel: string;
|
|
82
|
-
}): {
|
|
83
|
-
openMenu: () => void;
|
|
84
|
-
closeMenu: () => void;
|
|
85
|
-
cleanup: () => void;
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
declare const index$2_makeMenuAccessible: typeof makeMenuAccessible;
|
|
89
|
-
declare namespace index$2 {
|
|
90
|
-
export { index$2_makeMenuAccessible as makeMenuAccessible };
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Adds screen reader accessibility to multiple radio buttons. Updates the aria attributes of the radio buttons. Radio elements must possess the following aria attributes; aria-checked and aria-label.
|
|
95
|
-
* @param {string} radioId The id of the radio parent container.
|
|
96
|
-
* @param {string} radiosClass The shared class of all the radios.
|
|
97
|
-
* @param {RadioStates[]} radioStates Array of objects containing radio buttons state information.
|
|
98
|
-
* @param {number} currentPressedRadioIndex Index of the currently checked or unchecked radio button.
|
|
99
|
-
*/
|
|
100
|
-
|
|
101
|
-
declare function updateRadioAriaAttributes(radioId: string, radiosClass: string, radioStates: RadioStates[], currentPressedRadioIndex: number): void;
|
|
102
|
-
|
|
103
|
-
declare const index$1_updateRadioAriaAttributes: typeof updateRadioAriaAttributes;
|
|
104
|
-
declare namespace index$1 {
|
|
105
|
-
export { index$1_updateRadioAriaAttributes as updateRadioAriaAttributes };
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Adds screen reader accessibility to toggle buttons. Updates the aria attributes of the toggle buttons. Button must be a semantic button element or a non-semantic element with a role of button, and possess the aria-pressed attribute.
|
|
110
|
-
* @param {string} toggleId The id of the toggle buttons parent container.
|
|
111
|
-
* @param {string} togglesClass The shared class of all the toggle buttons.
|
|
112
|
-
* @param {ToggleStates[]} toggleStates Array of objects containing toggle buttons state information.
|
|
113
|
-
* @param {number} currentPressedToggleIndex Index of the currently pressed or unpressed toggle button.
|
|
114
|
-
*/
|
|
115
|
-
|
|
116
|
-
declare function updateToggleAriaAttribute(toggleId: string, togglesClass: string, toggleStates: ToggleStates[], currentPressedToggleIndex: number): void;
|
|
117
|
-
|
|
118
|
-
declare const index_updateToggleAriaAttribute: typeof updateToggleAriaAttribute;
|
|
119
|
-
declare namespace index {
|
|
120
|
-
export { index_updateToggleAriaAttribute as updateToggleAriaAttribute };
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
export { index$5 as Accordion, index$4 as Block, index$3 as Checkbox, index$2 as Menu, index$1 as Radio, index as Toggle };
|
|
1
|
+
export { updateAccordionTriggerAriaAttributes } from './src/accordion/index.js';
|
|
2
|
+
export { makeBlockAccessible } from './src/block/index.js';
|
|
3
|
+
export { updateCheckboxAriaAttributes } from './src/checkbox/index.js';
|
|
4
|
+
export { makeMenuAccessible } from './src/menu/index.js';
|
|
5
|
+
export { updateRadioAriaAttributes } from './src/radio/index.js';
|
|
6
|
+
export { updateToggleAriaAttribute } from './src/toggle/index.js';
|
|
7
|
+
import './Types.d-p85gN5m_.js';
|