@graupl/core 1.0.0-beta.15 → 1.0.0-beta.8
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/package.json +3 -41
- package/scss/base/button.scss +1 -1
- package/scss/base/form.scss +1 -1
- package/scss/base/link.scss +1 -1
- package/scss/base/table.scss +1 -1
- package/scss/base.scss +1 -1
- package/scss/component/accordion.scss +1 -1
- package/scss/component/alert.scss +1 -1
- package/scss/component/card.scss +1 -1
- package/scss/component/carousel.scss +1 -1
- package/scss/component/input-group.scss +1 -1
- package/scss/component/list.scss +1 -1
- package/scss/component/menu.scss +1 -1
- package/scss/component/navigation.scss +1 -1
- package/scss/component.scss +1 -1
- package/scss/graupl.scss +1 -1
- package/scss/init.scss +1 -1
- package/scss/layout/columns.scss +1 -1
- package/scss/layout/container.scss +1 -1
- package/scss/layout/flex-columns.scss +1 -1
- package/scss/layout.scss +1 -1
- package/scss/normalize.scss +1 -1
- package/scss/state/focus.scss +1 -1
- package/scss/state.scss +1 -1
- package/scss/theme/color.scss +1 -1
- package/scss/theme/typography.scss +1 -1
- package/scss/theme.scss +1 -1
- package/scss/utilities/alignment.scss +1 -1
- package/scss/utilities/background.scss +1 -1
- package/scss/utilities/border.scss +1 -1
- package/scss/utilities/color.scss +1 -1
- package/scss/utilities/container.scss +1 -1
- package/scss/utilities/display.scss +1 -1
- package/scss/utilities/flex.scss +1 -1
- package/scss/utilities/gradient.scss +1 -1
- package/scss/utilities/height.scss +1 -1
- package/scss/utilities/inset.scss +1 -1
- package/scss/utilities/justification.scss +1 -1
- package/scss/utilities/list.scss +1 -1
- package/scss/utilities/order.scss +1 -1
- package/scss/utilities/position.scss +1 -1
- package/scss/utilities/ratio.scss +1 -1
- package/scss/utilities/spacing.scss +1 -1
- package/scss/utilities/typography.scss +1 -1
- package/scss/utilities/visibility.scss +1 -1
- package/scss/utilities/visually-hidden.scss +1 -1
- package/scss/utilities/width.scss +1 -1
- package/scss/utilities/z-index.scss +1 -1
- package/scss/utilities.scss +1 -1
- package/src/js/accordion/Accordion.js +1 -1
- package/src/js/accordion/index.js +7 -2
- package/src/js/alert/index.js +8 -2
- package/src/js/carousel/index.js +7 -2
- package/src/js/domHelpers.js +0 -76
- package/src/js/navigation/index.js +33 -2
- package/src/js/validate.js +0 -141
- package/src/scss/_defaults.scss +1 -1
- package/src/scss/_index.scss +1 -1
- package/src/scss/_init.scss +1 -1
- package/src/scss/_normalize.scss +1 -1
- package/src/scss/_variables.scss +1 -1
- package/src/scss/base/_index.scss +1 -1
- package/src/scss/base/button/_defaults.scss +1 -1
- package/src/scss/base/button/_index.scss +1 -1
- package/src/scss/base/button/_mixins.scss +1 -6
- package/src/scss/base/button/_variables.scss +1 -1
- package/src/scss/base/form/_defaults.scss +1 -1
- package/src/scss/base/form/_index.scss +1 -1
- package/src/scss/base/form/_variables.scss +1 -1
- package/src/scss/base/link/_defaults.scss +1 -1
- package/src/scss/base/link/_index.scss +1 -1
- package/src/scss/base/link/_variables.scss +1 -1
- package/src/scss/base/table/_defaults.scss +1 -1
- package/src/scss/base/table/_index.scss +1 -1
- package/src/scss/base/table/_variables.scss +1 -1
- package/src/scss/component/_index.scss +1 -1
- package/src/scss/component/accordion/_defaults.scss +1 -1
- package/src/scss/component/accordion/_index.scss +1 -1
- package/src/scss/component/accordion/_variables.scss +1 -1
- package/src/scss/component/alert/_defaults.scss +1 -1
- package/src/scss/component/alert/_index.scss +1 -1
- package/src/scss/component/alert/_variables.scss +1 -1
- package/src/scss/component/card/_defaults.scss +1 -1
- package/src/scss/component/card/_index.scss +1 -1
- package/src/scss/component/card/_variables.scss +1 -1
- package/src/scss/component/carousel/_defaults.scss +1 -1
- package/src/scss/component/carousel/_index.scss +1 -1
- package/src/scss/component/carousel/_variables.scss +1 -1
- package/src/scss/component/input-group/_defaults.scss +1 -1
- package/src/scss/component/input-group/_index.scss +1 -1
- package/src/scss/component/input-group/_variables.scss +1 -1
- package/src/scss/component/list/_defaults.scss +1 -1
- package/src/scss/component/list/_index.scss +1 -1
- package/src/scss/component/list/_variables.scss +1 -1
- package/src/scss/component/menu/_defaults.scss +1 -1
- package/src/scss/component/menu/_index.scss +1 -1
- package/src/scss/component/menu/_variables.scss +1 -1
- package/src/scss/component/navigation/_defaults.scss +1 -1
- package/src/scss/component/navigation/_index.scss +1 -1
- package/src/scss/component/navigation/_variables.scss +1 -1
- package/src/scss/functions/_container.scss +1 -1
- package/src/scss/functions/_important.scss +1 -1
- package/src/scss/functions/_screen.scss +1 -1
- package/src/scss/functions/_theme.scss +1 -1
- package/src/scss/functions/_utility.scss +1 -1
- package/src/scss/layout/_index.scss +1 -1
- package/src/scss/layout/columns/_defaults.scss +1 -1
- package/src/scss/layout/columns/_index.scss +1 -1
- package/src/scss/layout/columns/_variables.scss +1 -1
- package/src/scss/layout/container/_defaults.scss +1 -1
- package/src/scss/layout/container/_index.scss +1 -1
- package/src/scss/layout/container/_variables.scss +1 -1
- package/src/scss/layout/flex-columns/_defaults.scss +1 -1
- package/src/scss/layout/flex-columns/_index.scss +1 -1
- package/src/scss/layout/flex-columns/_variables.scss +1 -1
- package/src/scss/mixins/_animation.scss +1 -1
- package/src/scss/mixins/_container.scss +1 -1
- package/src/scss/mixins/_layer.scss +1 -1
- package/src/scss/mixins/_screen.scss +1 -1
- package/src/scss/mixins/_state.scss +1 -1
- package/src/scss/mixins/_theme.scss +1 -1
- package/src/scss/mixins/_utility.scss +1 -1
- package/src/scss/mixins/_visually-hidden.scss +1 -1
- package/src/scss/state/_index.scss +1 -1
- package/src/scss/state/focus/_defaults.scss +1 -1
- package/src/scss/state/focus/_index.scss +1 -1
- package/src/scss/state/focus/_mixins.scss +1 -1
- package/src/scss/state/focus/_variables.scss +1 -1
- package/src/scss/theme/_index.scss +1 -1
- package/src/scss/theme/color/_defaults.scss +1 -1
- package/src/scss/theme/color/_index.scss +1 -1
- package/src/scss/theme/color/_variables.scss +1 -1
- package/src/scss/theme/typography/_defaults.scss +1 -1
- package/src/scss/theme/typography/_index.scss +1 -1
- package/src/scss/theme/typography/_variables.scss +1 -1
- package/src/scss/utilities/_index.scss +1 -1
- package/src/scss/utilities/_template/_defaults.scss +1 -1
- package/src/scss/utilities/_template/_index.scss +1 -1
- package/src/scss/utilities/_template/_variables.scss +1 -1
- package/src/scss/utilities/alignment/_defaults.scss +1 -1
- package/src/scss/utilities/alignment/_index.scss +1 -1
- package/src/scss/utilities/alignment/_variables.scss +1 -1
- package/src/scss/utilities/background/_defaults.scss +1 -1
- package/src/scss/utilities/background/_index.scss +1 -1
- package/src/scss/utilities/background/_variables.scss +1 -1
- package/src/scss/utilities/border/_defaults.scss +1 -1
- package/src/scss/utilities/border/_index.scss +1 -1
- package/src/scss/utilities/border/_variables.scss +1 -1
- package/src/scss/utilities/color/_defaults.scss +1 -1
- package/src/scss/utilities/color/_index.scss +1 -1
- package/src/scss/utilities/color/_variables.scss +1 -1
- package/src/scss/utilities/container/_defaults.scss +1 -1
- package/src/scss/utilities/container/_index.scss +1 -1
- package/src/scss/utilities/container/_variables.scss +1 -1
- package/src/scss/utilities/display/_defaults.scss +1 -1
- package/src/scss/utilities/display/_index.scss +1 -1
- package/src/scss/utilities/display/_variables.scss +1 -1
- package/src/scss/utilities/flex/_defaults.scss +1 -1
- package/src/scss/utilities/flex/_index.scss +1 -1
- package/src/scss/utilities/flex/_variables.scss +1 -1
- package/src/scss/utilities/gradient/_defaults.scss +1 -1
- package/src/scss/utilities/gradient/_index.scss +1 -1
- package/src/scss/utilities/gradient/_variables.scss +1 -1
- package/src/scss/utilities/height/_defaults.scss +1 -1
- package/src/scss/utilities/height/_index.scss +1 -1
- package/src/scss/utilities/height/_variables.scss +1 -1
- package/src/scss/utilities/inset/_defaults.scss +1 -1
- package/src/scss/utilities/inset/_index.scss +1 -1
- package/src/scss/utilities/inset/_variables.scss +1 -1
- package/src/scss/utilities/justification/_defaults.scss +1 -1
- package/src/scss/utilities/justification/_index.scss +1 -1
- package/src/scss/utilities/justification/_variables.scss +1 -1
- package/src/scss/utilities/list/_defaults.scss +1 -1
- package/src/scss/utilities/list/_index.scss +1 -1
- package/src/scss/utilities/list/_variables.scss +1 -1
- package/src/scss/utilities/order/_defaults.scss +1 -1
- package/src/scss/utilities/order/_index.scss +1 -1
- package/src/scss/utilities/order/_variables.scss +1 -1
- package/src/scss/utilities/position/_defaults.scss +1 -1
- package/src/scss/utilities/position/_index.scss +1 -1
- package/src/scss/utilities/position/_variables.scss +1 -1
- package/src/scss/utilities/ratio/_defaults.scss +1 -1
- package/src/scss/utilities/ratio/_index.scss +1 -1
- package/src/scss/utilities/ratio/_variables.scss +1 -1
- package/src/scss/utilities/spacing/_defaults.scss +1 -1
- package/src/scss/utilities/spacing/_index.scss +1 -1
- package/src/scss/utilities/spacing/_variables.scss +1 -1
- package/src/scss/utilities/typography/_defaults.scss +1 -1
- package/src/scss/utilities/typography/_index.scss +1 -1
- package/src/scss/utilities/typography/_variables.scss +1 -1
- package/src/scss/utilities/visibility/_defaults.scss +1 -1
- package/src/scss/utilities/visibility/_index.scss +1 -1
- package/src/scss/utilities/visibility/_variables.scss +1 -1
- package/src/scss/utilities/visually-hidden/_defaults.scss +1 -1
- package/src/scss/utilities/visually-hidden/_index.scss +1 -1
- package/src/scss/utilities/visually-hidden/_variables.scss +1 -1
- package/src/scss/utilities/width/_defaults.scss +1 -1
- package/src/scss/utilities/width/_index.scss +1 -1
- package/src/scss/utilities/width/_variables.scss +1 -1
- package/src/scss/utilities/z-index/_defaults.scss +1 -1
- package/src/scss/utilities/z-index/_index.scss +1 -1
- package/src/scss/utilities/z-index/_variables.scss +1 -1
- package/README.md +0 -3
- package/dist/js/accordion.js +0 -5
- package/dist/js/accordion.js.map +0 -1
- package/dist/js/alert.js +0 -5
- package/dist/js/alert.js.map +0 -1
- package/dist/js/carousel.js +0 -5
- package/dist/js/carousel.js.map +0 -1
- package/dist/js/component/accordion.cjs.js +0 -5
- package/dist/js/component/accordion.cjs.js.map +0 -1
- package/dist/js/component/accordion.es.js +0 -5
- package/dist/js/component/accordion.es.js.map +0 -1
- package/dist/js/component/accordion.iife.js +0 -5
- package/dist/js/component/accordion.iife.js.map +0 -1
- package/dist/js/component/alert.cjs.js +0 -5
- package/dist/js/component/alert.cjs.js.map +0 -1
- package/dist/js/component/alert.es.js +0 -5
- package/dist/js/component/alert.es.js.map +0 -1
- package/dist/js/component/alert.iife.js +0 -5
- package/dist/js/component/alert.iife.js.map +0 -1
- package/dist/js/component/carousel.cjs.js +0 -5
- package/dist/js/component/carousel.cjs.js.map +0 -1
- package/dist/js/component/carousel.es.js +0 -5
- package/dist/js/component/carousel.es.js.map +0 -1
- package/dist/js/component/carousel.iife.js +0 -5
- package/dist/js/component/carousel.iife.js.map +0 -1
- package/dist/js/generator/accordion.cjs.js +0 -5
- package/dist/js/generator/accordion.cjs.js.map +0 -1
- package/dist/js/generator/accordion.es.js +0 -5
- package/dist/js/generator/accordion.es.js.map +0 -1
- package/dist/js/generator/accordion.iife.js +0 -5
- package/dist/js/generator/accordion.iife.js.map +0 -1
- package/dist/js/generator/alert.cjs.js +0 -5
- package/dist/js/generator/alert.cjs.js.map +0 -1
- package/dist/js/generator/alert.es.js +0 -5
- package/dist/js/generator/alert.es.js.map +0 -1
- package/dist/js/generator/alert.iife.js +0 -5
- package/dist/js/generator/alert.iife.js.map +0 -1
- package/dist/js/generator/carousel.cjs.js +0 -5
- package/dist/js/generator/carousel.cjs.js.map +0 -1
- package/dist/js/generator/carousel.es.js +0 -5
- package/dist/js/generator/carousel.es.js.map +0 -1
- package/dist/js/generator/carousel.iife.js +0 -5
- package/dist/js/generator/carousel.iife.js.map +0 -1
- package/dist/js/generator/navigation.cjs.js +0 -3
- package/dist/js/generator/navigation.cjs.js.map +0 -1
- package/dist/js/generator/navigation.es.js +0 -3
- package/dist/js/generator/navigation.es.js.map +0 -1
- package/dist/js/generator/navigation.iife.js +0 -3
- package/dist/js/generator/navigation.iife.js.map +0 -1
- package/dist/js/graupl.js +0 -9
- package/dist/js/graupl.js.map +0 -1
- package/dist/js/navigation.js +0 -3
- package/dist/js/navigation.js.map +0 -1
- package/src/js/accordion/generator.js +0 -27
- package/src/js/alert/generator.js +0 -29
- package/src/js/carousel/generator.js +0 -27
- package/src/js/main.js +0 -11
- package/src/js/navigation/generator.js +0 -49
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@graupl/core",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.8",
|
|
4
4
|
"description": "The core module of Graupl, providing essential styles and utilities.",
|
|
5
5
|
"main": "dist/js/graupl.cjs.js",
|
|
6
6
|
"module": "dist/js/graupl.es.js",
|
|
@@ -21,37 +21,6 @@
|
|
|
21
21
|
},
|
|
22
22
|
"./src/*.scss": {
|
|
23
23
|
"sass": "./src/scss/*.scss"
|
|
24
|
-
},
|
|
25
|
-
"./src/*.js": {
|
|
26
|
-
"import": "./src/js/*.js"
|
|
27
|
-
},
|
|
28
|
-
"./accordion": {
|
|
29
|
-
"import": "./dist/js/component/accordion.es.js",
|
|
30
|
-
"require": "./dist/js/component/accordion.cjs.js"
|
|
31
|
-
},
|
|
32
|
-
"./accordion/generator": {
|
|
33
|
-
"import": "./dist/js/generator/accordion.es.js",
|
|
34
|
-
"require": "./dist/js/generator/accordion.cjs.js"
|
|
35
|
-
},
|
|
36
|
-
"./alert": {
|
|
37
|
-
"import": "./dist/js/component/alert.es.js",
|
|
38
|
-
"require": "./dist/js/component/alert.cjs.js"
|
|
39
|
-
},
|
|
40
|
-
"./alert/generator": {
|
|
41
|
-
"import": "./dist/js/generator/alert.es.js",
|
|
42
|
-
"require": "./dist/js/generator/alert.cjs.js"
|
|
43
|
-
},
|
|
44
|
-
"./carousel": {
|
|
45
|
-
"import": "./dist/js/component/carousel.es.js",
|
|
46
|
-
"require": "./dist/js/component/carousel.cjs.js"
|
|
47
|
-
},
|
|
48
|
-
"./carousel/generator": {
|
|
49
|
-
"import": "./dist/js/generator/carousel.es.js",
|
|
50
|
-
"require": "./dist/js/generator/carousel.cjs.js"
|
|
51
|
-
},
|
|
52
|
-
"./navigation/generator": {
|
|
53
|
-
"import": "./dist/js/generator/navigation.es.js",
|
|
54
|
-
"require": "./dist/js/generator/navigation.cjs.js"
|
|
55
24
|
}
|
|
56
25
|
},
|
|
57
26
|
"repository": {
|
|
@@ -74,14 +43,7 @@
|
|
|
74
43
|
},
|
|
75
44
|
"license": "ISC",
|
|
76
45
|
"homepage": "https://github.com/Graupl/graupl/tree/main/packages/core#readme",
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"sass": "sass scss:dist/css --pkg-importer=node",
|
|
80
|
-
"postcss": "postcss 'dist/css/**/*.css' --replace --config ./postcss.config.cjs",
|
|
81
|
-
"prerolldown": "rm -rf dist/js/*",
|
|
82
|
-
"rolldown": "rolldown --config ./rolldown.config.js",
|
|
83
|
-
"build": "npm-run-all build:*",
|
|
84
|
-
"build:css": "npm run sass && npm run postcss",
|
|
85
|
-
"build:js": "npm run rolldown"
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"sass": "^1.89.2"
|
|
86
48
|
}
|
|
87
49
|
}
|
package/scss/base/button.scss
CHANGED
package/scss/base/form.scss
CHANGED
package/scss/base/link.scss
CHANGED
package/scss/base/table.scss
CHANGED
package/scss/base.scss
CHANGED
package/scss/component/card.scss
CHANGED
package/scss/component/list.scss
CHANGED
package/scss/component/menu.scss
CHANGED
package/scss/component.scss
CHANGED
package/scss/graupl.scss
CHANGED
package/scss/init.scss
CHANGED
package/scss/layout/columns.scss
CHANGED
package/scss/layout.scss
CHANGED
package/scss/normalize.scss
CHANGED
package/scss/state/focus.scss
CHANGED
package/scss/state.scss
CHANGED
package/scss/theme/color.scss
CHANGED
package/scss/theme.scss
CHANGED
package/scss/utilities/flex.scss
CHANGED
package/scss/utilities/list.scss
CHANGED
package/scss/utilities.scss
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Accordion from "./Accordion.js";
|
|
2
2
|
|
|
3
3
|
document.addEventListener("DOMContentLoaded", () => {
|
|
4
|
-
|
|
4
|
+
document.querySelectorAll(".accordion").forEach((accordionElement) => {
|
|
5
|
+
new Accordion({
|
|
6
|
+
accordionElement,
|
|
7
|
+
initialize: true,
|
|
8
|
+
});
|
|
9
|
+
});
|
|
5
10
|
});
|
package/src/js/alert/index.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Alert from "./Alert.js";
|
|
2
2
|
|
|
3
3
|
document.addEventListener("DOMContentLoaded", () => {
|
|
4
|
-
|
|
4
|
+
document.querySelectorAll(".alert").forEach((alertElement) => {
|
|
5
|
+
new Alert({
|
|
6
|
+
alertElement,
|
|
7
|
+
controllerElement: alertElement.querySelector(".alert-dismisser") || null,
|
|
8
|
+
initialize: true,
|
|
9
|
+
});
|
|
10
|
+
});
|
|
5
11
|
});
|
package/src/js/carousel/index.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Carousel from "./Carousel.js";
|
|
2
2
|
|
|
3
3
|
document.addEventListener("DOMContentLoaded", () => {
|
|
4
|
-
|
|
4
|
+
document.querySelectorAll(".carousel").forEach((carouselElement) => {
|
|
5
|
+
new Carousel({
|
|
6
|
+
carouselElement,
|
|
7
|
+
initialize: true,
|
|
8
|
+
});
|
|
9
|
+
});
|
|
5
10
|
});
|
package/src/js/domHelpers.js
CHANGED
|
@@ -35,79 +35,3 @@ export function removeClass(className, element) {
|
|
|
35
35
|
element.classList.remove(...className);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Select all focusable elements within a given context.
|
|
41
|
-
*
|
|
42
|
-
* @param {HTMLElement} [context = document] - The context in which to search for focusable elements.
|
|
43
|
-
* @return {HTMLElement[]} - An array of focusable elements.
|
|
44
|
-
*/
|
|
45
|
-
export function selectAllFocusableElements(context = document) {
|
|
46
|
-
const querySelector =
|
|
47
|
-
"a[href],area[href],input:not([disabled]),select:not([disabled]),textarea:not([disabled]),button:not([disabled]),[tabindex]";
|
|
48
|
-
const elements = Array.from(context.querySelectorAll(querySelector));
|
|
49
|
-
|
|
50
|
-
const tabbableElements = elements.filter((element) => {
|
|
51
|
-
let check = true;
|
|
52
|
-
|
|
53
|
-
if (element.getAttribute("tabindex") === "-1") check = false;
|
|
54
|
-
|
|
55
|
-
return check;
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
return tabbableElements;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Select the first focusable element within a given context.
|
|
63
|
-
*
|
|
64
|
-
* @param {HTMLElement} [context = document] - The context in which to search for focusable elements.
|
|
65
|
-
* @return {HTMLElement|boolean} - The first focusable element or false if none found.
|
|
66
|
-
*/
|
|
67
|
-
export function selectFirstFocusableElement(context = document) {
|
|
68
|
-
const tabbableElements = selectAllFocusableElements(context);
|
|
69
|
-
|
|
70
|
-
return tabbableElements[0] || false;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Select the last focusable element within a given context.
|
|
75
|
-
*
|
|
76
|
-
* @param {HTMLElement} [context = document] - The context in which to search for focusable elements.
|
|
77
|
-
* @return {HTMLElement|boolean} - The last focusable element or false if none found.
|
|
78
|
-
*/
|
|
79
|
-
export function selectLastFocusableElement(context = document) {
|
|
80
|
-
const tabbableElements = selectAllFocusableElements(context);
|
|
81
|
-
|
|
82
|
-
return tabbableElements[tabbableElements.length - 1] || false;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Select the next focusable element relative to the given element within a context.
|
|
87
|
-
*
|
|
88
|
-
* @param {HTMLElement} element - The reference element.
|
|
89
|
-
* @param {HTMLElement} [context = document] - The context in which to search for focusable elements.
|
|
90
|
-
* @return {HTMLElement|boolean} - The next focusable element or false if none found.
|
|
91
|
-
*/
|
|
92
|
-
export function selectNextFocusableElement(element, context = document) {
|
|
93
|
-
const tabbableElements = selectAllFocusableElements(context);
|
|
94
|
-
const index = tabbableElements.indexOf(element);
|
|
95
|
-
|
|
96
|
-
return index === tabbableElements.length - 1
|
|
97
|
-
? false
|
|
98
|
-
: tabbableElements[index + 1];
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Select the previous focusable element relative to the given element within a context.
|
|
103
|
-
*
|
|
104
|
-
* @param {HTMLElement} element - The reference element.
|
|
105
|
-
* @param {HTMLElement} [context = document] - The context in which to search for focusable elements.
|
|
106
|
-
* @return {HTMLElement|boolean} - The previous focusable element or false if none found.
|
|
107
|
-
*/
|
|
108
|
-
export function selectPreviousFocusableElement(element, context = document) {
|
|
109
|
-
const tabbableElements = selectAllFocusableElements(context);
|
|
110
|
-
const index = tabbableElements.indexOf(element);
|
|
111
|
-
|
|
112
|
-
return index === 0 ? false : tabbableElements[index - 1];
|
|
113
|
-
}
|
|
@@ -1,5 +1,36 @@
|
|
|
1
|
-
import
|
|
1
|
+
import storage from "../storage.js";
|
|
2
2
|
|
|
3
3
|
document.addEventListener("DOMContentLoaded", function () {
|
|
4
|
-
|
|
4
|
+
const navs = document.querySelectorAll(".navigation");
|
|
5
|
+
|
|
6
|
+
navs.forEach((nav) => {
|
|
7
|
+
const MenuConstructor = nav.dataset.grauplMenuType || DisclosureMenu;
|
|
8
|
+
|
|
9
|
+
if (window[MenuConstructor] === undefined) {
|
|
10
|
+
console.warn(
|
|
11
|
+
`Graupl navigation requires accessible-menu's ${MenuConstructor}. Please make sure to include it on this page.`
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const menuOptions =
|
|
18
|
+
JSON.parse(nav.dataset.grauplMenuOptions.replace(/'/g, '"')) || {};
|
|
19
|
+
const menuElement = nav.querySelector(".menu");
|
|
20
|
+
const controllerElement = nav.querySelector(".navigation-toggle") || null;
|
|
21
|
+
const containerElement = controllerElement ? nav : null;
|
|
22
|
+
const menu = new window[MenuConstructor]({
|
|
23
|
+
menuElement,
|
|
24
|
+
menuItemSelector: ".menu-item",
|
|
25
|
+
menuLinkSelector: ".menu-link",
|
|
26
|
+
submenuItemSelector: ".submenu-item",
|
|
27
|
+
submenuToggleSelector: ".submenu-toggle",
|
|
28
|
+
controllerElement,
|
|
29
|
+
containerElement,
|
|
30
|
+
...menuOptions,
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
storage.initializeStorage("menus");
|
|
34
|
+
storage.pushToStorage("menus", menu.dom.menu.id, menu);
|
|
35
|
+
});
|
|
5
36
|
});
|