@a11y-hud/vue 0.5.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -1
- package/dist/index.d.ts +10 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +13 -13
- package/dist/index.cjs +0 -143
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -71
package/README.md
CHANGED
|
@@ -67,10 +67,19 @@ const scopeRef = ref(null);
|
|
|
67
67
|
|
|
68
68
|
| Prop | Type | Default | Description |
|
|
69
69
|
|------|------|---------|-------------|
|
|
70
|
-
| `theme` | `"auto"
|
|
70
|
+
| `theme` | `Theme` | `"auto"` | Panel theme — `"auto"`, `"default"`, `"light"`, `"high-contrast"`, `"github-dark"`, `"github-light"`, `"tokyo-night"`, `"solarized-dark"` |
|
|
71
71
|
| `scope` | `Element \| null` | — | Restrict scan to a subtree |
|
|
72
72
|
| `autoScan` | `boolean` | `true` | Auto-rescan on DOM mutations |
|
|
73
73
|
| `debounce` | `number` | `500` | Debounce delay in ms |
|
|
74
|
+
| `runOnly` | `string[]` | — | Restrict axe to specific rule-set tags |
|
|
75
|
+
|
|
76
|
+
### Composable return value
|
|
77
|
+
|
|
78
|
+
`useA11yHud` returns `{ runScan, setTheme, setRunOnly, exportResults, ignores }`. `runScan()` resolves `Promise<AxeResults | null>` — `null` if called before the HUD has mounted.
|
|
79
|
+
|
|
80
|
+
### Server-side rendering
|
|
81
|
+
|
|
82
|
+
Importing `@a11y-hud/vue` is safe on the server (e.g. Nuxt); the HUD mounts in `onMounted`, so nothing renders server-side.
|
|
74
83
|
|
|
75
84
|
## License
|
|
76
85
|
|
package/dist/index.d.ts
CHANGED
|
@@ -19,6 +19,10 @@ declare const A11yHud: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
19
19
|
type: PropType<number>;
|
|
20
20
|
default: undefined;
|
|
21
21
|
};
|
|
22
|
+
runOnly: {
|
|
23
|
+
type: PropType<string[]>;
|
|
24
|
+
default: undefined;
|
|
25
|
+
};
|
|
22
26
|
}>, () => null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
|
|
23
27
|
theme: {
|
|
24
28
|
type: PropType<Theme>;
|
|
@@ -36,10 +40,15 @@ declare const A11yHud: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
36
40
|
type: PropType<number>;
|
|
37
41
|
default: undefined;
|
|
38
42
|
};
|
|
43
|
+
runOnly: {
|
|
44
|
+
type: PropType<string[]>;
|
|
45
|
+
default: undefined;
|
|
46
|
+
};
|
|
39
47
|
}>> & Readonly<{}>, {
|
|
40
48
|
theme: Theme;
|
|
41
49
|
autoScan: boolean;
|
|
42
50
|
debounce: number;
|
|
51
|
+
runOnly: string[];
|
|
43
52
|
scope: Element | null;
|
|
44
53
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
45
54
|
|
|
@@ -52,7 +61,7 @@ interface UseA11yHudOptions {
|
|
|
52
61
|
}
|
|
53
62
|
type A11yHudProps = UseA11yHudOptions;
|
|
54
63
|
interface UseA11yHudReturn {
|
|
55
|
-
runScan(): Promise<AxeResults>;
|
|
64
|
+
runScan(): Promise<AxeResults | null>;
|
|
56
65
|
setTheme(theme: Theme): void;
|
|
57
66
|
setRunOnly(tags: string[]): void;
|
|
58
67
|
exportResults(): string | null;
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/composable.ts","../src/component.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../src/composable.ts","../src/component.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { A11yHudElement, A11yHudInstance, AxeResults, Theme } from \"a11y-hud\";\nimport { mount } from \"a11y-hud\";\nimport { onMounted, onUnmounted, shallowRef, watch } from \"vue\";\nimport type { UseA11yHudOptions, UseA11yHudReturn } from \"./types.js\";\n\nexport function useA11yHud(options: UseA11yHudOptions = {}): UseA11yHudReturn {\n const instanceRef = shallowRef<A11yHudInstance | null>(null);\n const elementRef = shallowRef<A11yHudElement | null>(null);\n\n onMounted(() => {\n const { theme, autoScan, debounce, runOnly } = options;\n const instance = mount({\n ...(theme !== undefined && { theme }),\n ...(autoScan !== undefined && { autoScan }),\n ...(debounce !== undefined && { debounce }),\n ...(runOnly !== undefined && { runOnly }),\n });\n instanceRef.value = instance;\n elementRef.value = document.querySelector<A11yHudElement>(\"a11y-hud\");\n const el = elementRef.value;\n if (el) {\n el.scopeElement = options.scope ?? undefined;\n }\n void instance.runScan();\n });\n\n onUnmounted(() => {\n instanceRef.value?.unmount();\n instanceRef.value = null;\n elementRef.value = null;\n });\n\n // Render-settled signal: fires after the scope prop changes, syncing the CE's\n // scopeElement and triggering a rescan. Route changes and general DOM mutations\n // are handled by the core's MutationObserver; this watch covers the prop-change\n // path (e.g. enabling/disabling scope, passing a different ref).\n watch(\n () => options.scope,\n () => {\n const instance = instanceRef.value;\n const el = elementRef.value;\n if (!instance || !el) return;\n el.scopeElement = options.scope ?? undefined;\n void instance.runScan();\n },\n { flush: \"post\" }\n );\n\n watch(\n () => options.theme,\n (newTheme) => {\n if (newTheme !== undefined) instanceRef.value?.setTheme(newTheme);\n },\n { flush: \"post\" }\n );\n\n watch(\n () => options.autoScan,\n (newAutoScan) => {\n const el = elementRef.value;\n if (!el) return;\n if (newAutoScan === false) {\n el.removeAttribute(\"auto-scan\");\n } else {\n el.setAttribute(\"auto-scan\", \"\");\n }\n },\n { flush: \"post\" }\n );\n\n watch(\n () => options.debounce,\n (newDebounce) => {\n const el = elementRef.value;\n if (!el || newDebounce === undefined) return;\n el.setAttribute(\"debounce\", String(newDebounce));\n },\n { flush: \"post\" }\n );\n\n watch(\n () => options.runOnly,\n (newRunOnly) => {\n if (newRunOnly !== undefined) instanceRef.value?.setRunOnly(newRunOnly);\n },\n { flush: \"post\" }\n );\n\n function runScan(): Promise<AxeResults | null> {\n return instanceRef.value?.runScan() ?? Promise.resolve(null);\n }\n\n function setTheme(theme: Theme): void {\n instanceRef.value?.setTheme(theme);\n }\n\n function setRunOnly(tags: string[]): void {\n instanceRef.value?.setRunOnly(tags);\n }\n\n function exportResults(): string | null {\n return instanceRef.value?.exportResults() ?? null;\n }\n\n const ignores = {\n add(ruleId: string, selector?: string): void {\n instanceRef.value?.ignores.add(ruleId, selector);\n },\n remove(ruleId: string, selector?: string): void {\n instanceRef.value?.ignores.remove(ruleId, selector);\n },\n clear(): void {\n instanceRef.value?.ignores.clear();\n },\n list() {\n return instanceRef.value?.ignores.list() ?? [];\n },\n exportJson(): string {\n return instanceRef.value?.ignores.exportJson() ?? \"[]\";\n },\n importJson(json: string): void {\n instanceRef.value?.ignores.importJson(json);\n },\n };\n\n return { runScan, setTheme, setRunOnly, exportResults, ignores };\n}\n","import type { Theme } from \"a11y-hud\";\nimport type { PropType } from \"vue\";\nimport { defineComponent } from \"vue\";\nimport { useA11yHud } from \"./composable.js\";\nimport type { A11yHudProps } from \"./types.js\";\n\nexport const A11yHud = defineComponent({\n name: \"A11yHud\",\n props: {\n theme: {\n type: String as PropType<Theme>,\n default: undefined,\n },\n scope: {\n type: Object as PropType<Element | null>,\n default: undefined,\n },\n autoScan: {\n type: Boolean as PropType<boolean>,\n default: undefined,\n },\n debounce: {\n type: Number as PropType<number>,\n default: undefined,\n },\n runOnly: {\n type: Array as PropType<string[]>,\n default: undefined,\n },\n },\n setup(props) {\n useA11yHud(props as A11yHudProps);\n return () => null;\n },\n});\n"]}
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@a11y-hud/vue",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Vue adapter for a11y-hud — run axe-core accessibility audits in your Vue app with no DevTools required.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
"default": "./dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"./package.json": "./package.json"
|
|
12
12
|
},
|
|
13
|
-
"main": "./dist/index.
|
|
13
|
+
"main": "./dist/index.js",
|
|
14
14
|
"module": "./dist/index.js",
|
|
15
15
|
"types": "./dist/index.d.ts",
|
|
16
16
|
"files": [
|
|
@@ -19,20 +19,20 @@
|
|
|
19
19
|
"README.md"
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"a11y-hud": "0.
|
|
22
|
+
"a11y-hud": "1.0.0"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
25
|
"vue": ">=3.4"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@playwright/test": "^1.
|
|
29
|
-
"@
|
|
30
|
-
"@
|
|
31
|
-
"@
|
|
28
|
+
"@playwright/test": "^1.63.0",
|
|
29
|
+
"@vitejs/plugin-vue": "^6.0.9",
|
|
30
|
+
"@vitest/coverage-v8": "^4.1.11",
|
|
31
|
+
"@vue/test-utils": "^2.5.1",
|
|
32
32
|
"jsdom": "^29.1.1",
|
|
33
|
-
"tsup": "^8.
|
|
34
|
-
"
|
|
35
|
-
"
|
|
33
|
+
"tsup": "^8.5.1",
|
|
34
|
+
"vitest": "^4.1.11",
|
|
35
|
+
"vue": "^3.5.43"
|
|
36
36
|
},
|
|
37
37
|
"engines": {
|
|
38
38
|
"node": ">=22"
|
package/dist/index.cjs
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var vue = require('vue');
|
|
4
|
-
var a11yHud = require('a11y-hud');
|
|
5
|
-
|
|
6
|
-
// src/component.ts
|
|
7
|
-
function useA11yHud(options = {}) {
|
|
8
|
-
const instanceRef = vue.shallowRef(null);
|
|
9
|
-
const elementRef = vue.shallowRef(null);
|
|
10
|
-
vue.onMounted(() => {
|
|
11
|
-
const { theme, autoScan, debounce, runOnly } = options;
|
|
12
|
-
const instance = a11yHud.mount({
|
|
13
|
-
...theme !== void 0 && { theme },
|
|
14
|
-
...autoScan !== void 0 && { autoScan },
|
|
15
|
-
...debounce !== void 0 && { debounce },
|
|
16
|
-
...runOnly !== void 0 && { runOnly }
|
|
17
|
-
});
|
|
18
|
-
instanceRef.value = instance;
|
|
19
|
-
elementRef.value = document.querySelector("a11y-hud");
|
|
20
|
-
const el = elementRef.value;
|
|
21
|
-
if (el) {
|
|
22
|
-
el.scopeElement = options.scope ?? void 0;
|
|
23
|
-
}
|
|
24
|
-
void instance.runScan();
|
|
25
|
-
});
|
|
26
|
-
vue.onUnmounted(() => {
|
|
27
|
-
instanceRef.value?.unmount();
|
|
28
|
-
instanceRef.value = null;
|
|
29
|
-
elementRef.value = null;
|
|
30
|
-
});
|
|
31
|
-
vue.watch(
|
|
32
|
-
() => options.scope,
|
|
33
|
-
() => {
|
|
34
|
-
const instance = instanceRef.value;
|
|
35
|
-
const el = elementRef.value;
|
|
36
|
-
if (!instance || !el) return;
|
|
37
|
-
el.scopeElement = options.scope ?? void 0;
|
|
38
|
-
void instance.runScan();
|
|
39
|
-
},
|
|
40
|
-
{ flush: "post" }
|
|
41
|
-
);
|
|
42
|
-
vue.watch(
|
|
43
|
-
() => options.theme,
|
|
44
|
-
(newTheme) => {
|
|
45
|
-
if (newTheme !== void 0) instanceRef.value?.setTheme(newTheme);
|
|
46
|
-
},
|
|
47
|
-
{ flush: "post" }
|
|
48
|
-
);
|
|
49
|
-
vue.watch(
|
|
50
|
-
() => options.autoScan,
|
|
51
|
-
(newAutoScan) => {
|
|
52
|
-
const el = elementRef.value;
|
|
53
|
-
if (!el) return;
|
|
54
|
-
if (newAutoScan === false) {
|
|
55
|
-
el.removeAttribute("auto-scan");
|
|
56
|
-
} else {
|
|
57
|
-
el.setAttribute("auto-scan", "");
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
{ flush: "post" }
|
|
61
|
-
);
|
|
62
|
-
vue.watch(
|
|
63
|
-
() => options.debounce,
|
|
64
|
-
(newDebounce) => {
|
|
65
|
-
const el = elementRef.value;
|
|
66
|
-
if (!el || newDebounce === void 0) return;
|
|
67
|
-
el.setAttribute("debounce", String(newDebounce));
|
|
68
|
-
},
|
|
69
|
-
{ flush: "post" }
|
|
70
|
-
);
|
|
71
|
-
vue.watch(
|
|
72
|
-
() => options.runOnly,
|
|
73
|
-
(newRunOnly) => {
|
|
74
|
-
if (newRunOnly !== void 0) instanceRef.value?.setRunOnly(newRunOnly);
|
|
75
|
-
},
|
|
76
|
-
{ flush: "post" }
|
|
77
|
-
);
|
|
78
|
-
function runScan() {
|
|
79
|
-
return instanceRef.value?.runScan() ?? Promise.resolve(null);
|
|
80
|
-
}
|
|
81
|
-
function setTheme(theme) {
|
|
82
|
-
instanceRef.value?.setTheme(theme);
|
|
83
|
-
}
|
|
84
|
-
function setRunOnly(tags) {
|
|
85
|
-
instanceRef.value?.setRunOnly(tags);
|
|
86
|
-
}
|
|
87
|
-
function exportResults() {
|
|
88
|
-
return instanceRef.value?.exportResults() ?? null;
|
|
89
|
-
}
|
|
90
|
-
const ignores = {
|
|
91
|
-
add(ruleId, selector) {
|
|
92
|
-
instanceRef.value?.ignores.add(ruleId, selector);
|
|
93
|
-
},
|
|
94
|
-
remove(ruleId, selector) {
|
|
95
|
-
instanceRef.value?.ignores.remove(ruleId, selector);
|
|
96
|
-
},
|
|
97
|
-
clear() {
|
|
98
|
-
instanceRef.value?.ignores.clear();
|
|
99
|
-
},
|
|
100
|
-
list() {
|
|
101
|
-
return instanceRef.value?.ignores.list() ?? [];
|
|
102
|
-
},
|
|
103
|
-
exportJson() {
|
|
104
|
-
return instanceRef.value?.ignores.exportJson() ?? "[]";
|
|
105
|
-
},
|
|
106
|
-
importJson(json) {
|
|
107
|
-
instanceRef.value?.ignores.importJson(json);
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
return { runScan, setTheme, setRunOnly, exportResults, ignores };
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// src/component.ts
|
|
114
|
-
var A11yHud = vue.defineComponent({
|
|
115
|
-
name: "A11yHud",
|
|
116
|
-
props: {
|
|
117
|
-
theme: {
|
|
118
|
-
type: String,
|
|
119
|
-
default: void 0
|
|
120
|
-
},
|
|
121
|
-
scope: {
|
|
122
|
-
type: Object,
|
|
123
|
-
default: void 0
|
|
124
|
-
},
|
|
125
|
-
autoScan: {
|
|
126
|
-
type: Boolean,
|
|
127
|
-
default: void 0
|
|
128
|
-
},
|
|
129
|
-
debounce: {
|
|
130
|
-
type: Number,
|
|
131
|
-
default: void 0
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
setup(props) {
|
|
135
|
-
useA11yHud(props);
|
|
136
|
-
return () => null;
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
exports.A11yHud = A11yHud;
|
|
141
|
-
exports.useA11yHud = useA11yHud;
|
|
142
|
-
//# sourceMappingURL=index.cjs.map
|
|
143
|
-
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/composable.ts","../src/component.ts"],"names":["shallowRef","onMounted","mount","onUnmounted","watch","defineComponent"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { A11yHudElement, A11yHudInstance, AxeResults, Theme } from \"a11y-hud\";\nimport { mount } from \"a11y-hud\";\nimport { onMounted, onUnmounted, shallowRef, watch } from \"vue\";\nimport type { UseA11yHudOptions, UseA11yHudReturn } from \"./types.js\";\n\nexport function useA11yHud(options: UseA11yHudOptions = {}): UseA11yHudReturn {\n const instanceRef = shallowRef<A11yHudInstance | null>(null);\n const elementRef = shallowRef<A11yHudElement | null>(null);\n\n onMounted(() => {\n const { theme, autoScan, debounce, runOnly } = options;\n const instance = mount({\n ...(theme !== undefined && { theme }),\n ...(autoScan !== undefined && { autoScan }),\n ...(debounce !== undefined && { debounce }),\n ...(runOnly !== undefined && { runOnly }),\n });\n instanceRef.value = instance;\n elementRef.value = document.querySelector<A11yHudElement>(\"a11y-hud\");\n const el = elementRef.value;\n if (el) {\n el.scopeElement = options.scope ?? undefined;\n }\n void instance.runScan();\n });\n\n onUnmounted(() => {\n instanceRef.value?.unmount();\n instanceRef.value = null;\n elementRef.value = null;\n });\n\n // Render-settled signal: fires after the scope prop changes, syncing the CE's\n // scopeElement and triggering a rescan. Route changes and general DOM mutations\n // are handled by the core's MutationObserver; this watch covers the prop-change\n // path (e.g. enabling/disabling scope, passing a different ref).\n watch(\n () => options.scope,\n () => {\n const instance = instanceRef.value;\n const el = elementRef.value;\n if (!instance || !el) return;\n el.scopeElement = options.scope ?? undefined;\n void instance.runScan();\n },\n { flush: \"post\" }\n );\n\n watch(\n () => options.theme,\n (newTheme) => {\n if (newTheme !== undefined) instanceRef.value?.setTheme(newTheme);\n },\n { flush: \"post\" }\n );\n\n watch(\n () => options.autoScan,\n (newAutoScan) => {\n const el = elementRef.value;\n if (!el) return;\n if (newAutoScan === false) {\n el.removeAttribute(\"auto-scan\");\n } else {\n el.setAttribute(\"auto-scan\", \"\");\n }\n },\n { flush: \"post\" }\n );\n\n watch(\n () => options.debounce,\n (newDebounce) => {\n const el = elementRef.value;\n if (!el || newDebounce === undefined) return;\n el.setAttribute(\"debounce\", String(newDebounce));\n },\n { flush: \"post\" }\n );\n\n watch(\n () => options.runOnly,\n (newRunOnly) => {\n if (newRunOnly !== undefined) instanceRef.value?.setRunOnly(newRunOnly);\n },\n { flush: \"post\" }\n );\n\n function runScan(): Promise<AxeResults> {\n return instanceRef.value?.runScan() ?? Promise.resolve(null as unknown as AxeResults);\n }\n\n function setTheme(theme: Theme): void {\n instanceRef.value?.setTheme(theme);\n }\n\n function setRunOnly(tags: string[]): void {\n instanceRef.value?.setRunOnly(tags);\n }\n\n function exportResults(): string | null {\n return instanceRef.value?.exportResults() ?? null;\n }\n\n const ignores = {\n add(ruleId: string, selector?: string): void {\n instanceRef.value?.ignores.add(ruleId, selector);\n },\n remove(ruleId: string, selector?: string): void {\n instanceRef.value?.ignores.remove(ruleId, selector);\n },\n clear(): void {\n instanceRef.value?.ignores.clear();\n },\n list() {\n return instanceRef.value?.ignores.list() ?? [];\n },\n exportJson(): string {\n return instanceRef.value?.ignores.exportJson() ?? \"[]\";\n },\n importJson(json: string): void {\n instanceRef.value?.ignores.importJson(json);\n },\n };\n\n return { runScan, setTheme, setRunOnly, exportResults, ignores };\n}\n","import type { Theme } from \"a11y-hud\";\nimport type { PropType } from \"vue\";\nimport { defineComponent } from \"vue\";\nimport { useA11yHud } from \"./composable.js\";\nimport type { A11yHudProps } from \"./types.js\";\n\nexport const A11yHud = defineComponent({\n name: \"A11yHud\",\n props: {\n theme: {\n type: String as PropType<Theme>,\n default: undefined,\n },\n scope: {\n type: Object as PropType<Element | null>,\n default: undefined,\n },\n autoScan: {\n type: Boolean as PropType<boolean>,\n default: undefined,\n },\n debounce: {\n type: Number as PropType<number>,\n default: undefined,\n },\n },\n setup(props) {\n useA11yHud(props as A11yHudProps);\n return () => null;\n },\n});\n"]}
|
package/dist/index.d.cts
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import * as vue from 'vue';
|
|
2
|
-
import { PropType } from 'vue';
|
|
3
|
-
import { Theme, AxeResults, IgnoreEntry } from 'a11y-hud';
|
|
4
|
-
|
|
5
|
-
declare const A11yHud: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
6
|
-
theme: {
|
|
7
|
-
type: PropType<Theme>;
|
|
8
|
-
default: undefined;
|
|
9
|
-
};
|
|
10
|
-
scope: {
|
|
11
|
-
type: PropType<Element | null>;
|
|
12
|
-
default: undefined;
|
|
13
|
-
};
|
|
14
|
-
autoScan: {
|
|
15
|
-
type: PropType<boolean>;
|
|
16
|
-
default: undefined;
|
|
17
|
-
};
|
|
18
|
-
debounce: {
|
|
19
|
-
type: PropType<number>;
|
|
20
|
-
default: undefined;
|
|
21
|
-
};
|
|
22
|
-
}>, () => null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
|
|
23
|
-
theme: {
|
|
24
|
-
type: PropType<Theme>;
|
|
25
|
-
default: undefined;
|
|
26
|
-
};
|
|
27
|
-
scope: {
|
|
28
|
-
type: PropType<Element | null>;
|
|
29
|
-
default: undefined;
|
|
30
|
-
};
|
|
31
|
-
autoScan: {
|
|
32
|
-
type: PropType<boolean>;
|
|
33
|
-
default: undefined;
|
|
34
|
-
};
|
|
35
|
-
debounce: {
|
|
36
|
-
type: PropType<number>;
|
|
37
|
-
default: undefined;
|
|
38
|
-
};
|
|
39
|
-
}>> & Readonly<{}>, {
|
|
40
|
-
theme: Theme;
|
|
41
|
-
autoScan: boolean;
|
|
42
|
-
debounce: number;
|
|
43
|
-
scope: Element | null;
|
|
44
|
-
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
45
|
-
|
|
46
|
-
interface UseA11yHudOptions {
|
|
47
|
-
theme?: Theme;
|
|
48
|
-
scope?: Element | null;
|
|
49
|
-
autoScan?: boolean;
|
|
50
|
-
debounce?: number;
|
|
51
|
-
runOnly?: string[];
|
|
52
|
-
}
|
|
53
|
-
type A11yHudProps = UseA11yHudOptions;
|
|
54
|
-
interface UseA11yHudReturn {
|
|
55
|
-
runScan(): Promise<AxeResults>;
|
|
56
|
-
setTheme(theme: Theme): void;
|
|
57
|
-
setRunOnly(tags: string[]): void;
|
|
58
|
-
exportResults(): string | null;
|
|
59
|
-
ignores: {
|
|
60
|
-
add(ruleId: string, selector?: string): void;
|
|
61
|
-
remove(ruleId: string, selector?: string): void;
|
|
62
|
-
clear(): void;
|
|
63
|
-
list(): IgnoreEntry[];
|
|
64
|
-
exportJson(): string;
|
|
65
|
-
importJson(json: string): void;
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
declare function useA11yHud(options?: UseA11yHudOptions): UseA11yHudReturn;
|
|
70
|
-
|
|
71
|
-
export { A11yHud, type A11yHudProps, type UseA11yHudOptions, type UseA11yHudReturn, useA11yHud };
|