accented 0.0.0-20250223121749 → 0.0.0-20250404114312

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.
Files changed (83) hide show
  1. package/NOTICE +14 -0
  2. package/README.md +7 -3
  3. package/dist/accented.d.ts +2 -2
  4. package/dist/accented.d.ts.map +1 -1
  5. package/dist/accented.js +5 -2
  6. package/dist/accented.js.map +1 -1
  7. package/dist/constants.d.ts +1 -0
  8. package/dist/constants.d.ts.map +1 -1
  9. package/dist/constants.js +1 -0
  10. package/dist/constants.js.map +1 -1
  11. package/dist/dom-updater.d.ts.map +1 -1
  12. package/dist/dom-updater.js +38 -23
  13. package/dist/dom-updater.js.map +1 -1
  14. package/dist/elements/accented-dialog.d.ts.map +1 -1
  15. package/dist/elements/accented-dialog.js +60 -22
  16. package/dist/elements/accented-dialog.js.map +1 -1
  17. package/dist/elements/accented-trigger.d.ts +2 -0
  18. package/dist/elements/accented-trigger.d.ts.map +1 -1
  19. package/dist/elements/accented-trigger.js +64 -12
  20. package/dist/elements/accented-trigger.js.map +1 -1
  21. package/dist/fullscreen-listener.d.ts +2 -0
  22. package/dist/fullscreen-listener.d.ts.map +1 -0
  23. package/dist/fullscreen-listener.js +18 -0
  24. package/dist/fullscreen-listener.js.map +1 -0
  25. package/dist/scanner.d.ts.map +1 -1
  26. package/dist/scanner.js +15 -6
  27. package/dist/scanner.js.map +1 -1
  28. package/dist/state.d.ts +2 -1
  29. package/dist/state.d.ts.map +1 -1
  30. package/dist/state.js +3 -0
  31. package/dist/state.js.map +1 -1
  32. package/dist/types.d.ts +21 -8
  33. package/dist/types.d.ts.map +1 -1
  34. package/dist/utils/are-elements-with-issues-equal.d.ts +3 -0
  35. package/dist/utils/are-elements-with-issues-equal.d.ts.map +1 -0
  36. package/dist/utils/are-elements-with-issues-equal.js +5 -0
  37. package/dist/utils/are-elements-with-issues-equal.js.map +1 -0
  38. package/dist/utils/dom-helpers.d.ts +6 -0
  39. package/dist/utils/dom-helpers.d.ts.map +1 -0
  40. package/dist/utils/dom-helpers.js +19 -0
  41. package/dist/utils/dom-helpers.js.map +1 -0
  42. package/dist/utils/get-element-position.d.ts.map +1 -1
  43. package/dist/utils/get-element-position.js +53 -16
  44. package/dist/utils/get-element-position.js.map +1 -1
  45. package/dist/utils/get-parent.d.ts +2 -0
  46. package/dist/utils/get-parent.d.ts.map +1 -0
  47. package/dist/utils/get-parent.js +12 -0
  48. package/dist/utils/get-parent.js.map +1 -0
  49. package/dist/utils/get-scrollable-ancestors.d.ts +1 -1
  50. package/dist/utils/get-scrollable-ancestors.d.ts.map +1 -1
  51. package/dist/utils/get-scrollable-ancestors.js +6 -2
  52. package/dist/utils/get-scrollable-ancestors.js.map +1 -1
  53. package/dist/utils/shadow-dom-aware-mutation-observer.d.ts +10 -0
  54. package/dist/utils/shadow-dom-aware-mutation-observer.d.ts.map +1 -0
  55. package/dist/utils/shadow-dom-aware-mutation-observer.js +64 -0
  56. package/dist/utils/shadow-dom-aware-mutation-observer.js.map +1 -0
  57. package/dist/utils/transform-violations.d.ts +1 -1
  58. package/dist/utils/transform-violations.d.ts.map +1 -1
  59. package/dist/utils/transform-violations.js +18 -5
  60. package/dist/utils/transform-violations.js.map +1 -1
  61. package/dist/utils/update-elements-with-issues.d.ts.map +1 -1
  62. package/dist/utils/update-elements-with-issues.js +9 -5
  63. package/dist/utils/update-elements-with-issues.js.map +1 -1
  64. package/package.json +4 -3
  65. package/src/accented.ts +5 -2
  66. package/src/constants.ts +1 -0
  67. package/src/dom-updater.ts +38 -22
  68. package/src/elements/accented-dialog.ts +60 -22
  69. package/src/elements/accented-trigger.ts +70 -12
  70. package/src/fullscreen-listener.ts +17 -0
  71. package/src/scanner.ts +17 -6
  72. package/src/state.ts +10 -2
  73. package/src/types.ts +23 -9
  74. package/src/utils/are-elements-with-issues-equal.ts +9 -0
  75. package/src/utils/dom-helpers.ts +22 -0
  76. package/src/utils/get-element-position.ts +54 -15
  77. package/src/utils/get-parent.ts +14 -0
  78. package/src/utils/get-scrollable-ancestors.ts +10 -5
  79. package/src/utils/shadow-dom-aware-mutation-observer.ts +78 -0
  80. package/src/utils/transform-violations.test.ts +10 -8
  81. package/src/utils/transform-violations.ts +20 -6
  82. package/src/utils/update-elements-with-issues.test.ts +46 -11
  83. package/src/utils/update-elements-with-issues.ts +10 -5
package/NOTICE ADDED
@@ -0,0 +1,14 @@
1
+ NOTICE
2
+
3
+ This project, Accented, is licensed under the MIT License.
4
+
5
+ However, it depends on axe-core, which is licensed under the Mozilla Public License 2.0 (MPL-2.0). The source code for axe-core is available at:
6
+
7
+ https://github.com/dequelabs/axe-core
8
+
9
+ According to the MPL-2.0 requirements:
10
+ - Any modifications made to axe-core within this project will remain under the MPL-2.0 license.
11
+ - The original license and notices for axe-core are preserved.
12
+ - The full MPL-2.0 license can be found at: https://www.mozilla.org/MPL/2.0/
13
+
14
+ No changes have been made to axe-core within this project, beyond its use as a dependency.
package/README.md CHANGED
@@ -95,15 +95,19 @@ A function that Accented will call after every scan.
95
95
  It accepts a single `params` object with the following properties:
96
96
 
97
97
  * `elementsWithIssues`: the most up-to-date array of all elements with accessibility issues.
98
- * `scanDuration`: how long the last scan took, in milliseconds (may be useful for performance tracking).
98
+ * `performance`: runtime performance of the last scan. An object:
99
+ * `totalBlockingTime`: how long the main thread was blocked by Accented during the last scan, in milliseconds.
100
+ It’s further divided into the `scan` and `domUpdate` phases.
101
+ * `scan`: how long the `scan` phase took, in milliseconds.
102
+ * `domUpdate`: how long the `domUpdate` phase took, in milliseconds.
99
103
 
100
104
  **Example:**
101
105
 
102
106
  ```
103
107
  accented({
104
- callback: ({ elementsWithIssues, scanDuration }) => {
108
+ callback: ({ elementsWithIssues, performance }) => {
105
109
  console.log('Elements with issues:', elementsWithIssues);
106
- console.log('Scan duration:', scanDuration);
110
+ console.log('Total blocking time:', performance.totalBlockingTime);
107
111
  }
108
112
  });
109
113
  ```
@@ -19,9 +19,9 @@ export type { AccentedOptions, DisableAccented };
19
19
  * wait: 500,
20
20
  * leading: false
21
21
  * },
22
- * callback: ({ elementsWithIssues, scanDuration }) => {
22
+ * callback: ({ elementsWithIssues, performance }) => {
23
23
  * console.log('Elements with issues:', elementsWithIssues);
24
- * console.log('Scan duration:', scanDuration);
24
+ * console.log('Total blocking time:', performance.totalBlockingTime);
25
25
  * }
26
26
  * });
27
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"accented.d.ts","sourceRoot":"","sources":["../src/accented.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAKhE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,eAAe,CA4E/E"}
1
+ {"version":3,"file":"accented.d.ts","sourceRoot":"","sources":["../src/accented.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAKhE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,eAAe,CA8E/E"}
package/dist/accented.js CHANGED
@@ -4,6 +4,7 @@ import createLogger from './logger.js';
4
4
  import createScanner from './scanner.js';
5
5
  import setupScrollListeners from './scroll-listeners.js';
6
6
  import setupResizeListener from './resize-listener.js';
7
+ import setupFullscreenListener from './fullscreen-listener.js';
7
8
  import setupIntersectionObserver from './intersection-observer.js';
8
9
  import { enabled, extendedElementsWithIssues } from './state.js';
9
10
  import deepMerge from './utils/deep-merge.js';
@@ -29,9 +30,9 @@ import logAndRethrow from './log-and-rethrow.js';
29
30
  * wait: 500,
30
31
  * leading: false
31
32
  * },
32
- * callback: ({ elementsWithIssues, scanDuration }) => {
33
+ * callback: ({ elementsWithIssues, performance }) => {
33
34
  * console.log('Elements with issues:', elementsWithIssues);
34
- * console.log('Scan duration:', scanDuration);
35
+ * console.log('Total blocking time:', performance.totalBlockingTime);
35
36
  * }
36
37
  * });
37
38
  */
@@ -78,6 +79,7 @@ export default function accented(options = {}) {
78
79
  const cleanupLogger = output.console ? createLogger() : () => { };
79
80
  const cleanupScrollListeners = supportsAnchorPositioning(window) ? () => { } : setupScrollListeners();
80
81
  const cleanupResizeListener = supportsAnchorPositioning(window) ? () => { } : setupResizeListener();
82
+ const cleanupFullscreenListener = supportsAnchorPositioning(window) ? () => { } : setupFullscreenListener();
81
83
  return () => {
82
84
  try {
83
85
  enabled.value = false;
@@ -87,6 +89,7 @@ export default function accented(options = {}) {
87
89
  cleanupLogger();
88
90
  cleanupScrollListeners();
89
91
  cleanupResizeListener();
92
+ cleanupFullscreenListener();
90
93
  if (cleanupIntersectionObserver) {
91
94
  cleanupIntersectionObserver();
92
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"accented.js","sourceRoot":"","sources":["../src/accented.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accented.js","sourceRoot":"","sources":["../src/accented.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export declare const accentedUrl = "https://www.npmjs.com/package/accented";
2
2
  export declare const issuesUrl = "https://github.com/pomerantsev/accented/issues";
3
+ export declare const getAccentedElementNames: (name: string) => string[];
3
4
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,2CAA2C,CAAC;AACpE,eAAO,MAAM,SAAS,mDAAmD,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,2CAA2C,CAAC;AACpE,eAAO,MAAM,SAAS,mDAAmD,CAAC;AAC1E,eAAO,MAAM,uBAAuB,SAAU,MAAM,aAA0C,CAAC"}
package/dist/constants.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export const accentedUrl = 'https://www.npmjs.com/package/accented';
2
2
  export const issuesUrl = 'https://github.com/pomerantsev/accented/issues';
3
+ export const getAccentedElementNames = (name) => [`${name}-trigger`, `${name}-dialog`];
3
4
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,wCAAwC,CAAC;AACpE,MAAM,CAAC,MAAM,SAAS,GAAG,gDAAgD,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,wCAAwC,CAAC;AACpE,MAAM,CAAC,MAAM,SAAS,GAAG,gDAAgD,CAAC;AAC1E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,UAAU,EAAE,GAAG,IAAI,SAAS,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dom-updater.d.ts","sourceRoot":"","sources":["../src/dom-updater.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,oBAAoB,cA0GjG"}
1
+ {"version":3,"file":"dom-updater.d.ts","sourceRoot":"","sources":["../src/dom-updater.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,oBAAoB,cAuHjG"}
@@ -1,6 +1,9 @@
1
1
  import { effect } from '@preact/signals-core';
2
- import { extendedElementsWithIssues } from './state.js';
2
+ import { extendedElementsWithIssues, rootNodes } from './state.js';
3
+ import areElementsWithIssuesEqual from './utils/are-elements-with-issues-equal.js';
3
4
  import supportsAnchorPositioning from './utils/supports-anchor-positioning.js';
5
+ import { isDocument, isDocumentFragment, isShadowRoot } from './utils/dom-helpers.js';
6
+ import getParent from './utils/get-parent.js';
4
7
  export default function createDomUpdater(name, intersectionObserver) {
5
8
  const attrName = `data-${name}`;
6
9
  function getAnchorNames(anchorNameValue) {
@@ -9,8 +12,8 @@ export default function createDomUpdater(name, intersectionObserver) {
9
12
  .map(anchorName => anchorName.trim())
10
13
  .filter(anchorName => anchorName.startsWith('--'));
11
14
  }
12
- function setAnchorName(element, id) {
13
- const anchorNameValue = element.style.getPropertyValue('anchor-name') || window.getComputedStyle(element).getPropertyValue('anchor-name');
15
+ function setAnchorName(elementWithIssues) {
16
+ const { element, id, anchorNameValue } = elementWithIssues;
14
17
  const anchorNames = getAnchorNames(anchorNameValue);
15
18
  if (anchorNames.length > 0) {
16
19
  element.style.setProperty('anchor-name', `${anchorNameValue}, --${name}-anchor-${id}`);
@@ -19,24 +22,23 @@ export default function createDomUpdater(name, intersectionObserver) {
19
22
  element.style.setProperty('anchor-name', `--${name}-anchor-${id}`);
20
23
  }
21
24
  }
22
- function removeAnchorName(element, id) {
23
- const anchorNameValue = element.style.getPropertyValue('anchor-name');
25
+ function removeAnchorName(elementWithIssues) {
26
+ const { element, anchorNameValue } = elementWithIssues;
24
27
  const anchorNames = getAnchorNames(anchorNameValue);
25
- const index = anchorNames.indexOf(`--${name}-anchor-${id}`);
26
- if (anchorNames.length === 1 && index === 0) {
27
- element.style.removeProperty('anchor-name');
28
+ if (anchorNames.length > 0) {
29
+ element.style.setProperty('anchor-name', anchorNames.join(', '));
28
30
  }
29
- else if (anchorNames.length > 1 && index > -1) {
30
- element.style.setProperty('anchor-name', anchorNames.filter((_, i) => i !== index).join(', '));
31
+ else {
32
+ element.style.removeProperty('anchor-name');
31
33
  }
32
34
  }
33
35
  function setIssues(extendedElementsWithIssues) {
34
36
  for (const elementWithIssues of extendedElementsWithIssues) {
35
37
  elementWithIssues.element.setAttribute(attrName, elementWithIssues.id.toString());
36
38
  if (supportsAnchorPositioning(window)) {
37
- setAnchorName(elementWithIssues.element, elementWithIssues.id);
39
+ setAnchorName(elementWithIssues);
38
40
  }
39
- if (elementWithIssues.element.parentElement) {
41
+ if (getParent(elementWithIssues.element)) {
40
42
  elementWithIssues.element.insertAdjacentElement('afterend', elementWithIssues.trigger);
41
43
  }
42
44
  else {
@@ -51,7 +53,7 @@ export default function createDomUpdater(name, intersectionObserver) {
51
53
  for (const elementWithIssues of extendedElementsWithIssues) {
52
54
  elementWithIssues.element.removeAttribute(attrName);
53
55
  if (supportsAnchorPositioning(window)) {
54
- removeAnchorName(elementWithIssues.element, elementWithIssues.id);
56
+ removeAnchorName(elementWithIssues);
55
57
  }
56
58
  elementWithIssues.trigger.remove();
57
59
  if (intersectionObserver) {
@@ -63,8 +65,10 @@ export default function createDomUpdater(name, intersectionObserver) {
63
65
  stylesheet.replaceSync(`
64
66
  @layer ${name} {
65
67
  :root {
66
- --${name}-primary-color: red;
67
- --${name}-secondary-color: white;
68
+ /* Ensure that the primary / secondary color combination meets WCAG 1.4.3 Contrast (Minimum) */
69
+ /* OKLCH stuff: https://oklch.com/ */
70
+ --${name}-primary-color: oklch(0.5 0.3 0);
71
+ --${name}-secondary-color: oklch(0.98 0 0);
68
72
  --${name}-outline-width: 2px;
69
73
  --${name}-outline-style: solid;
70
74
  }
@@ -78,25 +82,36 @@ export default function createDomUpdater(name, intersectionObserver) {
78
82
  }
79
83
  `);
80
84
  let previousExtendedElementsWithIssues = [];
81
- document.adoptedStyleSheets.push(stylesheet);
82
- const removeStylesheet = () => {
83
- if (document.adoptedStyleSheets.includes(stylesheet)) {
84
- document.adoptedStyleSheets.splice(document.adoptedStyleSheets.indexOf(stylesheet), 1);
85
+ let previousRootNodes = new Set();
86
+ const disposeOfStyleSheetsEffect = effect(() => {
87
+ const newRootNodes = rootNodes.value;
88
+ const addedRootNodes = [...newRootNodes].filter(rootNode => !previousRootNodes.has(rootNode));
89
+ const removedRootNodes = [...previousRootNodes].filter(rootNode => !newRootNodes.has(rootNode));
90
+ for (const rootNode of addedRootNodes) {
91
+ if (isDocument(rootNode) || (isDocumentFragment(rootNode) && isShadowRoot(rootNode))) {
92
+ rootNode.adoptedStyleSheets.push(stylesheet);
93
+ }
85
94
  }
86
- };
95
+ for (const rootNode of removedRootNodes) {
96
+ if (isDocument(rootNode) || (isDocumentFragment(rootNode) && isShadowRoot(rootNode))) {
97
+ rootNode.adoptedStyleSheets.splice(rootNode.adoptedStyleSheets.indexOf(stylesheet), 1);
98
+ }
99
+ }
100
+ previousRootNodes = newRootNodes;
101
+ });
87
102
  const disposeOfElementsEffect = effect(() => {
88
103
  const added = extendedElementsWithIssues.value.filter(elementWithIssues => {
89
- return !previousExtendedElementsWithIssues.some(previousElementWithIssues => previousElementWithIssues.element === elementWithIssues.element);
104
+ return !previousExtendedElementsWithIssues.some(previousElementWithIssues => areElementsWithIssuesEqual(previousElementWithIssues, elementWithIssues));
90
105
  });
91
106
  const removed = previousExtendedElementsWithIssues.filter(previousElementWithIssues => {
92
- return !extendedElementsWithIssues.value.some(elementWithIssues => elementWithIssues.element === previousElementWithIssues.element);
107
+ return !extendedElementsWithIssues.value.some(elementWithIssues => areElementsWithIssuesEqual(elementWithIssues, previousElementWithIssues));
93
108
  });
94
109
  removeIssues(removed);
95
110
  setIssues(added);
96
111
  previousExtendedElementsWithIssues = [...extendedElementsWithIssues.value];
97
112
  });
98
113
  return () => {
99
- removeStylesheet();
114
+ disposeOfStyleSheetsEffect();
100
115
  disposeOfElementsEffect();
101
116
  };
102
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dom-updater.js","sourceRoot":"","sources":["../src/dom-updater.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dom-updater.js","sourceRoot":"","sources":["../src/dom-updater.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"accented-dialog.d.ts","sourceRoot":"","sources":["../../src/elements/accented-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAMnD,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC;IACzC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;;;iCA4MqB,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;iCAExB,eAAe,GAAG,SAAS;gBAErC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS;iBAE/B,OAAO,GAAG,SAAS;yCAEF,gBAAgB,GAAG,SAAS;;;;qCAgJhC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAhWpC,wBAgXE"}
1
+ {"version":3,"file":"accented-dialog.d.ts","sourceRoot":"","sources":["../../src/elements/accented-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAMnD,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC;IACzC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;;;iCAwOqB,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;iCAExB,eAAe,GAAG,SAAS;gBAErC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS;iBAE/B,OAAO,GAAG,SAAS;yCAEF,gBAAgB,GAAG,SAAS;;;;qCA0JhC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAtYpC,wBAsZE"}
@@ -44,20 +44,45 @@ export default () => {
44
44
  :host {
45
45
  all: initial !important;
46
46
 
47
- --light-color: white;
48
- --dark-color: black;
49
- --focus-color: #0078d4; /* Contrasts with both white and black. */
47
+ /* OKLCH stuff: https://oklch.com/ */
48
+ --light-color: oklch(0.98 0 0);
49
+ --dark-color: oklch(0.22 0 0);
50
50
 
51
- --impact-minor-color: lightgray;
52
- --impact-moderate-color: gold;
53
- --impact-serious-color: #ff9e00;
54
- --impact-critical-color: #f883ec;
51
+ --background-color: light-dark(var(--light-color), var(--dark-color));
52
+ --text-color: light-dark(var(--dark-color), var(--light-color));
53
+
54
+ --impact-lightness: 0.80;
55
+ --focus-lightness: 0.45;
56
+ @media (prefers-color-scheme: dark) {
57
+ --impact-lightness: 0.45;
58
+ --focus-lightness: 0.80;
59
+ }
60
+
61
+ --blue-hue: 230;
62
+ --gold-hue: 90;
63
+ --red-hue: 0;
64
+
65
+ /* Contrasts with background. */
66
+ --focus-color: oklch(var(--focus-lightness) 0.25 var(--blue-hue));
67
+
68
+ --impact-chroma: 0.16;
69
+
70
+ --impact-moderate-hue: var(--blue-hue);
71
+ --impact-serious-hue: var(--gold-hue);
72
+ --impact-critical-hue: var(--red-hue);
73
+
74
+ --impact-minor-color: oklch(var(--impact-lightness) 0 0);
75
+ --impact-moderate-color: oklch(var(--impact-lightness) var(--impact-chroma) var(--impact-moderate-hue));
76
+ --impact-serious-color: oklch(var(--impact-lightness) var(--impact-chroma) var(--impact-serious-hue));
77
+ --impact-critical-color: oklch(var(--impact-lightness) var(--impact-chroma) var(--impact-critical-hue));
78
+
79
+ --base-size: max(1rem, 16px);
55
80
 
56
81
  /* Spacing and typography custom props, inspired by https://utopia.fyi (simplified). */
57
82
 
58
83
  /* @link https://utopia.fyi/type/calculator?c=320,16,1.2,1240,16,1.2,5,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */
59
84
  --ratio: 1.2;
60
- --step-0: 1rem;
85
+ --step-0: var(--base-size);
61
86
  --step-1: calc(var(--step-0) * var(--ratio));
62
87
  --step-2: calc(var(--step-1) * var(--ratio));
63
88
  --step-3: calc(var(--step-2) * var(--ratio));
@@ -65,15 +90,15 @@ export default () => {
65
90
  --step--1: calc(var(--step-0) / var(--ratio));
66
91
 
67
92
  /* @link https://utopia.fyi/space/calculator?c=320,16,1.2,1240,16,1.2,5,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */
68
- --space-3xs: 0.25rem;
69
- --space-2xs: 0.5rem;
70
- --space-xs: 0.75rem;
71
- --space-s: 1rem;
72
- --space-m: 1.5rem;
73
- --space-l: 2rem;
74
- --space-xl: 3rem;
75
- --space-2xl: 4rem;
76
- --space-3xl: 6rem;
93
+ --space-3xs: calc(0.25 * var(--base-size));
94
+ --space-2xs: calc(0.5 * var(--base-size));
95
+ --space-xs: calc(0.75 * var(--base-size));
96
+ --space-s: var(--base-size);
97
+ --space-m: calc(1.5 * var(--base-size));
98
+ --space-l: calc(2 * var(--base-size));
99
+ --space-xl: calc(3 * var(--base-size));
100
+ --space-2xl: calc(4 * var(--base-size));
101
+ --space-3xl: calc(6 * var(--base-size));
77
102
  }
78
103
 
79
104
  a[href], button {
@@ -104,12 +129,15 @@ export default () => {
104
129
  overflow-wrap: break-word;
105
130
  font-family: system-ui;
106
131
  line-height: 1.5;
107
- background-color: var(--light-color);
108
- color: var(--dark-color);
132
+ text-wrap: pretty;
133
+ background-color: var(--background-color);
134
+ color: var(--text-color);
109
135
  border: 2px solid currentColor;
110
136
  padding: var(--space-l);
111
137
  inline-size: min(90ch, calc(100% - var(--space-s)* 2));
112
138
  max-block-size: calc(100% - var(--space-s) * 2);
139
+
140
+ color-scheme: light dark;
113
141
  }
114
142
 
115
143
  #button-container {
@@ -117,8 +145,8 @@ export default () => {
117
145
  }
118
146
 
119
147
  #close {
120
- background-color: var(--light-color);
121
- color: var(--dark-color);
148
+ background-color: var(--background-color);
149
+ color: var(--text-color);
122
150
  border: 2px solid currentColor;
123
151
  padding-inline: var(--space-2xs);
124
152
  aspect-ratio: 1 / 1;
@@ -155,7 +183,7 @@ export default () => {
155
183
  }
156
184
 
157
185
  a {
158
- font-weight: bold;
186
+ font-weight: 500;
159
187
  }
160
188
  }
161
189
 
@@ -242,6 +270,16 @@ export default () => {
242
270
  logAndRethrow(error);
243
271
  }
244
272
  }, { signal: this.#abortController.signal });
273
+ dialog?.addEventListener('keydown', (event) => {
274
+ try {
275
+ if (event.key === 'Escape') {
276
+ event.stopPropagation();
277
+ }
278
+ }
279
+ catch (error) {
280
+ logAndRethrow(error);
281
+ }
282
+ }, { signal: this.#abortController.signal });
245
283
  this.#disposeOfEffect = effect(() => {
246
284
  if (this.issues) {
247
285
  const issues = this.issues.value;
@@ -1 +1 @@
1
- {"version":3,"file":"accented-dialog.js","sourceRoot":"","sources":["../../src/elements/accented-dialog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accented-dialog.js","sourceRoot":"","sources":["../../src/elements/accented-dialog.ts"],"names":[],"mappings":"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"}
@@ -13,12 +13,14 @@ declare const _default: (name: string) => {
13
13
  "__#2@#dialogCloseAbortController": AbortController | undefined;
14
14
  "__#2@#disposeOfPositionEffect": (() => void) | undefined;
15
15
  "__#2@#disposeOfVisibilityEffect": (() => void) | undefined;
16
+ "__#2@#elementMutationObserver": MutationObserver | undefined;
16
17
  element: Element | undefined;
17
18
  dialog: AccentedDialog | undefined;
18
19
  position: Signal<Position> | undefined;
19
20
  visible: Signal<boolean> | undefined;
20
21
  connectedCallback(): void;
21
22
  disconnectedCallback(): void;
23
+ "__#2@#setTransform"(): void;
22
24
  accessKey: string;
23
25
  readonly accessKeyLabel: string;
24
26
  autocapitalize: string;
@@ -1 +1 @@
1
- {"version":3,"file":"accented-trigger.d.ts","sourceRoot":"","sources":["../../src/elements/accented-trigger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAInD,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;CACtC;+BAMqB,MAAM;;iCAmDN,eAAe,GAAG,SAAS;4CAEhB,eAAe,GAAG,SAAS;yCAE9B,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;2CAEtB,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;iBAE3C,OAAO,GAAG,SAAS;gBAEpB,cAAc,GAAG,SAAS;kBAExB,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;iBAE7B,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAjExC,wBAgKE"}
1
+ {"version":3,"file":"accented-trigger.d.ts","sourceRoot":"","sources":["../../src/elements/accented-trigger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAInD,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;CACtC;+BAIqB,MAAM;;iCAuEN,eAAe,GAAG,SAAS;4CAEhB,eAAe,GAAG,SAAS;yCAE9B,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;2CAEtB,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;yCAE1B,gBAAgB,GAAG,SAAS;iBAE7C,OAAO,GAAG,SAAS;gBAEpB,cAAc,GAAG,SAAS;kBAExB,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;iBAE7B,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAvFxC,wBA4NE"}
@@ -1,7 +1,6 @@
1
1
  import { effect } from '@preact/signals-core';
2
2
  import supportsAnchorPositioning from '../utils/supports-anchor-positioning.js';
3
3
  import logAndRethrow from '../log-and-rethrow.js';
4
- const triggerSize = 'max(32px, 2rem)';
5
4
  // We want Accented to not throw an error in Node, and use static imports,
6
5
  // so we can't export `class extends HTMLElement` because HTMLElement is not available in Node.
7
6
  export default (name) => {
@@ -14,21 +13,37 @@ export default (name) => {
14
13
  template.innerHTML = `
15
14
  <style>
16
15
  :host {
16
+ --ratio: 1.2;
17
+ --base-size: max(1rem, 16px);
17
18
  position: fixed !important;
19
+ inset-inline-start: anchor(self-start) !important;
18
20
  inset-inline-end: anchor(self-end) !important;
19
21
  inset-block-start: anchor(self-start) !important;
22
+ inset-block-end: anchor(self-end) !important;
20
23
 
21
24
  position-visibility: anchors-visible !important;
22
25
 
23
26
  /* Revert potential effects of white-space: pre; set on a trigger's ancestor. */
24
27
  white-space: normal !important;
28
+
29
+ pointer-events: none !important;
25
30
  }
26
31
 
27
32
  #trigger {
33
+ pointer-events: auto;
34
+
35
+ position: absolute;
36
+ inset-block-start: 4px;
37
+ inset-inline-end: 4px;
38
+
28
39
  box-sizing: border-box;
29
- font-size: 1rem;
30
- inline-size: ${triggerSize};
31
- block-size: ${triggerSize};
40
+ font-size: calc(var(--ratio) * var(--ratio) * var(--base-size));
41
+ inline-size: calc(2 * var(--base-size));
42
+ block-size: calc(2 * var(--base-size));
43
+
44
+ display: flex;
45
+ align-items: center;
46
+ justify-content: center;
32
47
 
33
48
  /* Make it look better in forced-colors mode. */
34
49
  border: 2px solid transparent;
@@ -36,6 +51,10 @@ export default (name) => {
36
51
  background-color: var(--${name}-primary-color);
37
52
  color: var(--${name}-secondary-color);
38
53
 
54
+ padding: 0;
55
+
56
+ border-radius: calc(0.25 * var(--base-size));
57
+
39
58
  outline-offset: -4px;
40
59
  outline-color: currentColor;
41
60
  outline-width: 2px;
@@ -50,13 +69,14 @@ export default (name) => {
50
69
  }
51
70
  }
52
71
  </style>
53
- <button id="trigger" lang="en">⚠</button>
72
+ <button id="trigger" lang="en">!</button>
54
73
  `;
55
74
  return class extends HTMLElement {
56
75
  #abortController;
57
76
  #dialogCloseAbortController;
58
77
  #disposeOfPositionEffect;
59
78
  #disposeOfVisibilityEffect;
79
+ #elementMutationObserver;
60
80
  element;
61
81
  dialog;
62
82
  position;
@@ -82,10 +102,29 @@ export default (name) => {
82
102
  if (trigger && this.element) {
83
103
  trigger.ariaLabel = `Accessibility issues in ${this.element.nodeName.toLowerCase()}`;
84
104
  }
105
+ this.#setTransform();
106
+ this.#elementMutationObserver = new MutationObserver(() => {
107
+ try {
108
+ this.#setTransform();
109
+ }
110
+ catch (error) {
111
+ logAndRethrow(error);
112
+ }
113
+ });
114
+ if (this.element) {
115
+ this.#elementMutationObserver.observe(this.element, {
116
+ attributes: true
117
+ });
118
+ }
85
119
  this.#abortController = new AbortController();
86
120
  trigger?.addEventListener('click', (event) => {
87
121
  try {
122
+ // event.preventDefault() ensures that if the issue is within a link,
123
+ // the link's default behavior (following the URL) is prevented.
88
124
  event.preventDefault();
125
+ // event.stopPropagation() ensures that if there's a click handler on the trigger's ancestor
126
+ // (a link, or a button, or anything else), it doesn't get triggered.
127
+ event.stopPropagation();
89
128
  // We append the dialog when the button is clicked,
90
129
  // and remove it from the DOM when the dialog is closed.
91
130
  // This gives us a performance improvement since Axe
@@ -113,13 +152,10 @@ export default (name) => {
113
152
  this.#disposeOfPositionEffect = effect(() => {
114
153
  if (this.position && trigger) {
115
154
  const position = this.position.value;
116
- this.style.setProperty('top', `${position.blockStartTop}px`, 'important');
117
- if (position.direction === 'ltr') {
118
- this.style.setProperty('left', `calc(${position.inlineEndLeft}px - ${triggerSize})`, 'important');
119
- }
120
- else if (this.position.value.direction === 'rtl') {
121
- this.style.setProperty('left', `${position.inlineEndLeft}px`, 'important');
122
- }
155
+ this.style.setProperty('top', `${position.top}px`, 'important');
156
+ this.style.setProperty('left', `${position.left}px`, 'important');
157
+ this.style.setProperty('width', `${position.width}px`, 'important');
158
+ this.style.setProperty('height', `${position.height}px`, 'important');
123
159
  }
124
160
  });
125
161
  this.#disposeOfVisibilityEffect = effect(() => {
@@ -149,11 +185,27 @@ export default (name) => {
149
185
  this.#disposeOfVisibilityEffect();
150
186
  this.#disposeOfVisibilityEffect = undefined;
151
187
  }
188
+ if (this.#elementMutationObserver) {
189
+ this.#elementMutationObserver.disconnect();
190
+ }
152
191
  }
153
192
  catch (error) {
154
193
  logAndRethrow(error);
155
194
  }
156
195
  }
196
+ #setTransform() {
197
+ // We read and write values in separate animation frames to avoid layout thrashing.
198
+ window.requestAnimationFrame(() => {
199
+ if (this.element) {
200
+ const transform = window.getComputedStyle(this.element).getPropertyValue('transform');
201
+ if (transform !== 'none') {
202
+ window.requestAnimationFrame(() => {
203
+ this.style.setProperty('transform', transform, 'important');
204
+ });
205
+ }
206
+ }
207
+ });
208
+ }
157
209
  };
158
210
  };
159
211
  //# sourceMappingURL=accented-trigger.js.map