accented 0.0.0-20250404114312 → 0.0.0-20250618181418

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 (207) hide show
  1. package/README.md +0 -207
  2. package/dist/accented.d.ts +2 -2
  3. package/dist/accented.d.ts.map +1 -1
  4. package/dist/accented.js +29 -23
  5. package/dist/accented.js.map +1 -1
  6. package/dist/common/tokens.d.ts +2 -0
  7. package/dist/common/tokens.d.ts.map +1 -0
  8. package/dist/common/tokens.js +2 -0
  9. package/dist/common/tokens.js.map +1 -0
  10. package/dist/constants.d.ts.map +1 -1
  11. package/dist/dom-updater.d.ts +1 -1
  12. package/dist/dom-updater.d.ts.map +1 -1
  13. package/dist/dom-updater.js +43 -16
  14. package/dist/dom-updater.js.map +1 -1
  15. package/dist/elements/accented-dialog.d.ts +13 -10
  16. package/dist/elements/accented-dialog.d.ts.map +1 -1
  17. package/dist/elements/accented-dialog.js +46 -69
  18. package/dist/elements/accented-dialog.js.map +1 -1
  19. package/dist/elements/accented-trigger.d.ts +12 -9
  20. package/dist/elements/accented-trigger.d.ts.map +1 -1
  21. package/dist/elements/accented-trigger.js +14 -15
  22. package/dist/elements/accented-trigger.js.map +1 -1
  23. package/dist/fullscreen-listener.d.ts +1 -1
  24. package/dist/fullscreen-listener.d.ts.map +1 -1
  25. package/dist/fullscreen-listener.js +3 -4
  26. package/dist/fullscreen-listener.js.map +1 -1
  27. package/dist/intersection-observer.d.ts +1 -1
  28. package/dist/intersection-observer.d.ts.map +1 -1
  29. package/dist/intersection-observer.js +12 -6
  30. package/dist/intersection-observer.js.map +1 -1
  31. package/dist/log-and-rethrow.d.ts +1 -1
  32. package/dist/log-and-rethrow.d.ts.map +1 -1
  33. package/dist/log-and-rethrow.js +2 -3
  34. package/dist/log-and-rethrow.js.map +1 -1
  35. package/dist/logger.d.ts +1 -1
  36. package/dist/logger.d.ts.map +1 -1
  37. package/dist/logger.js +6 -3
  38. package/dist/logger.js.map +1 -1
  39. package/dist/register-elements.d.ts +1 -1
  40. package/dist/register-elements.d.ts.map +1 -1
  41. package/dist/register-elements.js +6 -7
  42. package/dist/register-elements.js.map +1 -1
  43. package/dist/resize-listener.d.ts +1 -1
  44. package/dist/resize-listener.d.ts.map +1 -1
  45. package/dist/resize-listener.js +3 -4
  46. package/dist/resize-listener.js.map +1 -1
  47. package/dist/scanner.d.ts +2 -2
  48. package/dist/scanner.d.ts.map +1 -1
  49. package/dist/scanner.js +39 -36
  50. package/dist/scanner.js.map +1 -1
  51. package/dist/scroll-listeners.d.ts +1 -1
  52. package/dist/scroll-listeners.d.ts.map +1 -1
  53. package/dist/scroll-listeners.js +3 -4
  54. package/dist/scroll-listeners.js.map +1 -1
  55. package/dist/state.d.ts +1 -1
  56. package/dist/state.d.ts.map +1 -1
  57. package/dist/state.js +4 -5
  58. package/dist/state.js.map +1 -1
  59. package/dist/task-queue.d.ts +4 -4
  60. package/dist/task-queue.d.ts.map +1 -1
  61. package/dist/task-queue.js +3 -2
  62. package/dist/task-queue.js.map +1 -1
  63. package/dist/types.d.ts +28 -6
  64. package/dist/types.d.ts.map +1 -1
  65. package/dist/types.js.map +1 -1
  66. package/dist/utils/are-elements-with-issues-equal.d.ts +2 -2
  67. package/dist/utils/are-elements-with-issues-equal.d.ts.map +1 -1
  68. package/dist/utils/are-elements-with-issues-equal.js +3 -3
  69. package/dist/utils/are-elements-with-issues-equal.js.map +1 -1
  70. package/dist/utils/are-issue-sets-equal.d.ts +2 -2
  71. package/dist/utils/are-issue-sets-equal.d.ts.map +1 -1
  72. package/dist/utils/are-issue-sets-equal.js +3 -3
  73. package/dist/utils/are-issue-sets-equal.js.map +1 -1
  74. package/dist/utils/containing-blocks.d.ts +3 -0
  75. package/dist/utils/containing-blocks.d.ts.map +1 -0
  76. package/dist/utils/containing-blocks.js +46 -0
  77. package/dist/utils/containing-blocks.js.map +1 -0
  78. package/dist/utils/contains.d.ts +2 -0
  79. package/dist/utils/contains.d.ts.map +1 -0
  80. package/dist/utils/contains.js +19 -0
  81. package/dist/utils/contains.js.map +1 -0
  82. package/dist/utils/deduplicate-nodes.d.ts +2 -0
  83. package/dist/utils/deduplicate-nodes.d.ts.map +1 -0
  84. package/dist/utils/deduplicate-nodes.js +4 -0
  85. package/dist/utils/deduplicate-nodes.js.map +1 -0
  86. package/dist/utils/deep-merge.d.ts +1 -1
  87. package/dist/utils/deep-merge.d.ts.map +1 -1
  88. package/dist/utils/deep-merge.js +6 -5
  89. package/dist/utils/deep-merge.js.map +1 -1
  90. package/dist/utils/dom-helpers.d.ts +3 -0
  91. package/dist/utils/dom-helpers.d.ts.map +1 -1
  92. package/dist/utils/dom-helpers.js +15 -0
  93. package/dist/utils/dom-helpers.js.map +1 -1
  94. package/dist/utils/ensure-non-empty.d.ts +2 -0
  95. package/dist/utils/ensure-non-empty.d.ts.map +1 -0
  96. package/dist/utils/ensure-non-empty.js +7 -0
  97. package/dist/utils/ensure-non-empty.js.map +1 -0
  98. package/dist/utils/get-element-html.d.ts +1 -1
  99. package/dist/utils/get-element-html.d.ts.map +1 -1
  100. package/dist/utils/get-element-html.js +4 -2
  101. package/dist/utils/get-element-html.js.map +1 -1
  102. package/dist/utils/get-element-position.d.ts +10 -2
  103. package/dist/utils/get-element-position.d.ts.map +1 -1
  104. package/dist/utils/get-element-position.js +34 -23
  105. package/dist/utils/get-element-position.js.map +1 -1
  106. package/dist/utils/get-parent.d.ts +1 -1
  107. package/dist/utils/get-parent.d.ts.map +1 -1
  108. package/dist/utils/get-parent.js +1 -1
  109. package/dist/utils/get-parent.js.map +1 -1
  110. package/dist/utils/get-scan-context.d.ts +3 -0
  111. package/dist/utils/get-scan-context.d.ts.map +1 -0
  112. package/dist/utils/get-scan-context.js +28 -0
  113. package/dist/utils/get-scan-context.js.map +1 -0
  114. package/dist/utils/get-scrollable-ancestors.d.ts +1 -1
  115. package/dist/utils/get-scrollable-ancestors.d.ts.map +1 -1
  116. package/dist/utils/get-scrollable-ancestors.js +5 -5
  117. package/dist/utils/get-scrollable-ancestors.js.map +1 -1
  118. package/dist/utils/is-node-in-scan-context.d.ts +3 -0
  119. package/dist/utils/is-node-in-scan-context.d.ts.map +1 -0
  120. package/dist/utils/is-node-in-scan-context.js +26 -0
  121. package/dist/utils/is-node-in-scan-context.js.map +1 -0
  122. package/dist/utils/is-non-empty.d.ts +2 -0
  123. package/dist/utils/is-non-empty.d.ts.map +1 -0
  124. package/dist/utils/is-non-empty.js +4 -0
  125. package/dist/utils/is-non-empty.js.map +1 -0
  126. package/dist/utils/normalize-context.d.ts +3 -0
  127. package/dist/utils/normalize-context.d.ts.map +1 -0
  128. package/dist/utils/normalize-context.js +59 -0
  129. package/dist/utils/normalize-context.js.map +1 -0
  130. package/dist/utils/recalculate-positions.d.ts +1 -1
  131. package/dist/utils/recalculate-positions.d.ts.map +1 -1
  132. package/dist/utils/recalculate-positions.js +5 -5
  133. package/dist/utils/recalculate-positions.js.map +1 -1
  134. package/dist/utils/recalculate-scrollable-ancestors.d.ts +1 -1
  135. package/dist/utils/recalculate-scrollable-ancestors.d.ts.map +1 -1
  136. package/dist/utils/recalculate-scrollable-ancestors.js +4 -4
  137. package/dist/utils/recalculate-scrollable-ancestors.js.map +1 -1
  138. package/dist/utils/shadow-dom-aware-mutation-observer.d.ts +1 -1
  139. package/dist/utils/shadow-dom-aware-mutation-observer.d.ts.map +1 -1
  140. package/dist/utils/shadow-dom-aware-mutation-observer.js +19 -22
  141. package/dist/utils/shadow-dom-aware-mutation-observer.js.map +1 -1
  142. package/dist/utils/supports-anchor-positioning.d.ts +1 -1
  143. package/dist/utils/supports-anchor-positioning.d.ts.map +1 -1
  144. package/dist/utils/supports-anchor-positioning.js +1 -1
  145. package/dist/utils/supports-anchor-positioning.js.map +1 -1
  146. package/dist/utils/transform-violations.d.ts +2 -2
  147. package/dist/utils/transform-violations.d.ts.map +1 -1
  148. package/dist/utils/transform-violations.js +9 -9
  149. package/dist/utils/transform-violations.js.map +1 -1
  150. package/dist/utils/update-elements-with-issues.d.ts +11 -5
  151. package/dist/utils/update-elements-with-issues.d.ts.map +1 -1
  152. package/dist/utils/update-elements-with-issues.js +54 -26
  153. package/dist/utils/update-elements-with-issues.js.map +1 -1
  154. package/dist/validate-options.d.ts +2 -2
  155. package/dist/validate-options.d.ts.map +1 -1
  156. package/dist/validate-options.js +91 -4
  157. package/dist/validate-options.js.map +1 -1
  158. package/package.json +11 -5
  159. package/src/accented.test.ts +2 -2
  160. package/src/accented.ts +38 -28
  161. package/src/common/tokens.ts +1 -0
  162. package/src/dom-updater.ts +59 -22
  163. package/src/elements/accented-dialog.ts +102 -106
  164. package/src/elements/accented-trigger.ts +58 -48
  165. package/src/fullscreen-listener.ts +15 -11
  166. package/src/intersection-observer.ts +27 -16
  167. package/src/log-and-rethrow.ts +2 -3
  168. package/src/logger.ts +14 -4
  169. package/src/register-elements.ts +7 -7
  170. package/src/resize-listener.ts +15 -11
  171. package/src/scanner.ts +70 -50
  172. package/src/scroll-listeners.ts +27 -19
  173. package/src/state.ts +24 -21
  174. package/src/task-queue.test.ts +5 -4
  175. package/src/task-queue.ts +8 -6
  176. package/src/types.ts +74 -42
  177. package/src/utils/are-elements-with-issues-equal.ts +7 -5
  178. package/src/utils/are-issue-sets-equal.test.ts +10 -6
  179. package/src/utils/are-issue-sets-equal.ts +8 -6
  180. package/src/utils/containing-blocks.ts +60 -0
  181. package/src/utils/contains.test.ts +55 -0
  182. package/src/utils/contains.ts +19 -0
  183. package/src/utils/deduplicate-nodes.ts +3 -0
  184. package/src/utils/deep-merge.test.ts +8 -1
  185. package/src/utils/deep-merge.ts +11 -8
  186. package/src/utils/dom-helpers.ts +20 -0
  187. package/src/utils/ensure-non-empty.ts +6 -0
  188. package/src/utils/get-element-html.ts +4 -2
  189. package/src/utils/get-element-position.ts +51 -22
  190. package/src/utils/get-parent.ts +1 -1
  191. package/src/utils/get-scan-context.test.ts +85 -0
  192. package/src/utils/get-scan-context.ts +36 -0
  193. package/src/utils/get-scrollable-ancestors.ts +8 -5
  194. package/src/utils/is-node-in-scan-context.test.ts +70 -0
  195. package/src/utils/is-node-in-scan-context.ts +29 -0
  196. package/src/utils/is-non-empty.ts +3 -0
  197. package/src/utils/normalize-context.test.ts +105 -0
  198. package/src/utils/normalize-context.ts +65 -0
  199. package/src/utils/recalculate-positions.ts +5 -5
  200. package/src/utils/recalculate-scrollable-ancestors.ts +4 -4
  201. package/src/utils/shadow-dom-aware-mutation-observer.ts +21 -24
  202. package/src/utils/supports-anchor-positioning.ts +3 -3
  203. package/src/utils/transform-violations.test.ts +22 -20
  204. package/src/utils/transform-violations.ts +14 -10
  205. package/src/utils/update-elements-with-issues.test.ts +102 -49
  206. package/src/utils/update-elements-with-issues.ts +122 -58
  207. package/src/validate-options.ts +154 -14
@@ -1,13 +1,13 @@
1
1
  import { batch } from '@preact/signals-core';
2
2
  import { extendedElementsWithIssues } from '../state.js';
3
- import getScrollableAncestors from './get-scrollable-ancestors.js';
4
- export default function recalculateScrollableAncestors() {
3
+ import { getScrollableAncestors } from './get-scrollable-ancestors.js';
4
+ export function recalculateScrollableAncestors() {
5
5
  batch(() => {
6
- extendedElementsWithIssues.value.forEach(({ element, scrollableAncestors }) => {
6
+ for (const { element, scrollableAncestors } of extendedElementsWithIssues.value) {
7
7
  if (element.isConnected) {
8
8
  scrollableAncestors.value = getScrollableAncestors(element, window);
9
9
  }
10
- });
10
+ }
11
11
  });
12
12
  }
13
13
  //# sourceMappingURL=recalculate-scrollable-ancestors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"recalculate-scrollable-ancestors.js","sourceRoot":"","sources":["../../src/utils/recalculate-scrollable-ancestors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,sBAAsB,MAAM,+BAA+B,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,8BAA8B;IACpD,KAAK,CAAC,GAAG,EAAE;QACT,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,EAAE;YAC5E,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxB,mBAAmB,CAAC,KAAK,GAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"recalculate-scrollable-ancestors.js","sourceRoot":"","sources":["../../src/utils/recalculate-scrollable-ancestors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,UAAU,8BAA8B;IAC5C,KAAK,CAAC,GAAG,EAAE;QACT,KAAK,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,0BAA0B,CAAC,KAAK,EAAE,CAAC;YAChF,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxB,mBAAmB,CAAC,KAAK,GAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,4 +1,4 @@
1
- export default function createShadowDOMAwareMutationObserver(name: string, callback: MutationCallback): {
1
+ export declare function createShadowDOMAwareMutationObserver(name: string, callback: MutationCallback): {
2
2
  "__#4@#shadowRoots": Set<unknown>;
3
3
  "__#4@#options": MutationObserverInit | undefined;
4
4
  observe(target: Node, options?: MutationObserverInit): void;
@@ -1 +1 @@
1
- {"version":3,"file":"shadow-dom-aware-mutation-observer.d.ts","sourceRoot":"","sources":["../../src/utils/shadow-dom-aware-mutation-observer.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,oCAAoC,CAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB;;qBAIxF,oBAAoB,GAAG,SAAS;oBA8BjB,IAAI,YAAY,oBAAoB,GAAG,IAAI;kBAQ7C,IAAI;2CAKM,KAAK,CAAC,OAAO,GAAG,QAAQ,GAAG,gBAAgB,CAAC;0CAa7C,KAAK,CAAC,OAAO,GAAG,QAAQ,GAAG,gBAAgB,CAAC;;EAc/E"}
1
+ {"version":3,"file":"shadow-dom-aware-mutation-observer.d.ts","sourceRoot":"","sources":["../../src/utils/shadow-dom-aware-mutation-observer.ts"],"names":[],"mappings":"AAGA,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB;;qBAI/E,oBAAoB,GAAG,SAAS;oBA2BjB,IAAI,YAAY,oBAAoB,GAAG,IAAI;kBAQ7C,IAAI;iCAKJ,UAAU,KAAK,CAAC,OAAO,GAAG,QAAQ,GAAG,gBAAgB,CAAC;gCAcvD,UAAU,KAAK,CAAC,OAAO,GAAG,QAAQ,GAAG,gBAAgB,CAAC;;EAa/E"}
@@ -1,25 +1,22 @@
1
- import { isElement, isDocument, isDocumentFragment } from './dom-helpers.js';
2
1
  import { getAccentedElementNames } from '../constants.js';
3
- export default function createShadowDOMAwareMutationObserver(name, callback) {
2
+ import { isDocument, isDocumentFragment, isElement } from './dom-helpers.js';
3
+ export function createShadowDOMAwareMutationObserver(name, callback) {
4
4
  class ShadowDOMAwareMutationObserver extends MutationObserver {
5
5
  #shadowRoots = new Set();
6
6
  #options;
7
7
  constructor(callback) {
8
8
  super((mutations, observer) => {
9
9
  const accentedElementNames = getAccentedElementNames(name);
10
- const childListMutations = mutations
11
- .filter(mutation => mutation.type === 'childList');
10
+ const childListMutations = mutations.filter((mutation) => mutation.type === 'childList');
12
11
  const newElements = childListMutations
13
- .map(mutation => [...mutation.addedNodes])
14
- .flat()
15
- .filter(node => isElement(node))
16
- .filter(node => !accentedElementNames.includes(node.nodeName.toLowerCase()));
12
+ .flatMap((mutation) => [...mutation.addedNodes])
13
+ .filter((node) => isElement(node))
14
+ .filter((node) => !accentedElementNames.includes(node.nodeName.toLowerCase()));
17
15
  this.#observeShadowRoots(newElements);
18
16
  const removedElements = childListMutations
19
- .map(mutation => [...mutation.removedNodes])
20
- .flat()
21
- .filter(node => isElement(node))
22
- .filter(node => !accentedElementNames.includes(node.nodeName.toLowerCase()));
17
+ .flatMap((mutation) => [...mutation.removedNodes])
18
+ .filter((node) => isElement(node))
19
+ .filter((node) => !accentedElementNames.includes(node.nodeName.toLowerCase()));
23
20
  // Mutation observer has no "unobserve" method, so we're simply deleting
24
21
  // the elements from the set of shadow roots.
25
22
  this.#deleteShadowRoots(removedElements);
@@ -39,21 +36,21 @@ export default function createShadowDOMAwareMutationObserver(name, callback) {
39
36
  }
40
37
  #observeShadowRoots = (elements) => {
41
38
  const shadowRoots = elements
42
- .map(element => [...element.querySelectorAll('*')])
43
- .flat()
44
- .filter(element => element.shadowRoot)
45
- .map(element => element.shadowRoot);
39
+ .flatMap((element) => [...element.querySelectorAll('*')])
40
+ .filter((element) => element.shadowRoot)
41
+ .map((element) => element.shadowRoot);
46
42
  for (const shadowRoot of shadowRoots) {
47
- this.#shadowRoots.add(shadowRoot);
48
- this.observe(shadowRoot, this.#options);
43
+ if (shadowRoot) {
44
+ this.#shadowRoots.add(shadowRoot);
45
+ this.observe(shadowRoot, this.#options);
46
+ }
49
47
  }
50
48
  };
51
49
  #deleteShadowRoots = (elements) => {
52
50
  const shadowRoots = elements
53
- .map(element => [...element.querySelectorAll('*')])
54
- .flat()
55
- .filter(element => element.shadowRoot)
56
- .map(element => element.shadowRoot);
51
+ .flatMap((element) => [...element.querySelectorAll('*')])
52
+ .filter((element) => element.shadowRoot)
53
+ .map((element) => element.shadowRoot);
57
54
  for (const shadowRoot of shadowRoots) {
58
55
  this.#shadowRoots.delete(shadowRoot);
59
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shadow-dom-aware-mutation-observer.js","sourceRoot":"","sources":["../../src/utils/shadow-dom-aware-mutation-observer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shadow-dom-aware-mutation-observer.js","sourceRoot":"","sources":["../../src/utils/shadow-dom-aware-mutation-observer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  type WindowWithCSS = Window & {
2
2
  CSS: typeof CSS;
3
3
  };
4
- export default function supportsAnchorPositioning(win: WindowWithCSS): boolean;
4
+ export declare function supportsAnchorPositioning(win: WindowWithCSS): boolean;
5
5
  export {};
6
6
  //# sourceMappingURL=supports-anchor-positioning.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"supports-anchor-positioning.d.ts","sourceRoot":"","sources":["../../src/utils/supports-anchor-positioning.ts"],"names":[],"mappings":"AAAA,KAAK,aAAa,GAAG,MAAM,GAAG;IAC5B,GAAG,EAAE,OAAO,GAAG,CAAA;CAChB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,GAAG,EAAE,aAAa,WAEnE"}
1
+ {"version":3,"file":"supports-anchor-positioning.d.ts","sourceRoot":"","sources":["../../src/utils/supports-anchor-positioning.ts"],"names":[],"mappings":"AAAA,KAAK,aAAa,GAAG,MAAM,GAAG;IAC5B,GAAG,EAAE,OAAO,GAAG,CAAC;CACjB,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,aAAa,WAE3D"}
@@ -1,4 +1,4 @@
1
- export default function supportsAnchorPositioning(win) {
1
+ export function supportsAnchorPositioning(win) {
2
2
  return win.CSS.supports('anchor-name: --foo') && win.CSS.supports('position-anchor: --foo');
3
3
  }
4
4
  //# sourceMappingURL=supports-anchor-positioning.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"supports-anchor-positioning.js","sourceRoot":"","sources":["../../src/utils/supports-anchor-positioning.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,GAAkB;IAClE,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AAC9F,CAAC"}
1
+ {"version":3,"file":"supports-anchor-positioning.js","sourceRoot":"","sources":["../../src/utils/supports-anchor-positioning.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,yBAAyB,CAAC,GAAkB;IAC1D,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AAC9F,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import type { AxeResults } from 'axe-core';
2
- import type { ElementWithIssues } from '../types';
3
- export default function transformViolations(violations: typeof AxeResults.violations, name: string): ElementWithIssues[];
2
+ import type { ElementWithIssues } from '../types.ts';
3
+ export declare function transformViolations(violations: typeof AxeResults.violations, name: string): ElementWithIssues[];
4
4
  //# sourceMappingURL=transform-violations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transform-violations.d.ts","sourceRoot":"","sources":["../../src/utils/transform-violations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,UAAU,CAAC;AACxD,OAAO,KAAK,EAAS,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAwBzD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,UAAU,EAAE,OAAO,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,uBA4CjG"}
1
+ {"version":3,"file":"transform-violations.d.ts","sourceRoot":"","sources":["../../src/utils/transform-violations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,UAAU,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAS,MAAM,aAAa,CAAC;AA0B5D,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,OAAO,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,uBA8CzF"}
@@ -7,17 +7,17 @@ const violationsAffectedByAccentedTriggers = [
7
7
  'label-content-name-mismatch',
8
8
  'list',
9
9
  'nested-interactive',
10
- 'scrollable-region-focusable' // The Accented trigger might make the content grow such that scrolling is required.
10
+ 'scrollable-region-focusable', // The Accented trigger might make the content grow such that scrolling is required.
11
11
  ];
12
12
  function maybeCausedByAccented(violationId, element, name) {
13
- return violationsAffectedByAccentedTriggers.includes(violationId)
14
- && Boolean(element.querySelector(`${name}-trigger`));
13
+ return (violationsAffectedByAccentedTriggers.includes(violationId) &&
14
+ Boolean(element.querySelector(`${name}-trigger`)));
15
15
  }
16
16
  function impactCompare(a, b) {
17
17
  const impactOrder = [null, 'minor', 'moderate', 'serious', 'critical'];
18
18
  return impactOrder.indexOf(a) - impactOrder.indexOf(b);
19
19
  }
20
- export default function transformViolations(violations, name) {
20
+ export function transformViolations(violations, name) {
21
21
  const elementsWithIssues = [];
22
22
  for (const violation of violations) {
23
23
  for (const node of violation.nodes) {
@@ -35,18 +35,18 @@ export default function transformViolations(violations, name) {
35
35
  title: violation.help,
36
36
  description: node.failureSummary ?? violation.description,
37
37
  url: violation.helpUrl,
38
- impact: violation.impact ?? null
38
+ impact: violation.impact ?? null,
39
39
  };
40
- const existingElementIndex = elementsWithIssues.findIndex(elementWithIssues => elementWithIssues.element === element);
41
- if (existingElementIndex === -1) {
40
+ const existingElement = elementsWithIssues.find((elementWithIssues) => elementWithIssues.element === element);
41
+ if (existingElement === undefined) {
42
42
  elementsWithIssues.push({
43
43
  element,
44
44
  rootNode: element.getRootNode(),
45
- issues: [issue]
45
+ issues: [issue],
46
46
  });
47
47
  }
48
48
  else {
49
- elementsWithIssues[existingElementIndex].issues.push(issue);
49
+ existingElement.issues.push(issue);
50
50
  }
51
51
  }
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transform-violations.js","sourceRoot":"","sources":["../../src/utils/transform-violations.ts"],"names":[],"mappings":"AAGA,oFAAoF;AACpF,2FAA2F;AAC3F,MAAM,oCAAoC,GAAG;IAC3C,mBAAmB;IACnB,WAAW;IACX,iBAAiB;IACjB,6BAA6B;IAC7B,MAAM;IACN,oBAAoB;IACpB,6BAA6B,CAAC,oFAAoF;CACnH,CAAC;AAEF,SAAS,qBAAqB,CAAC,WAAmB,EAAE,OAAoB,EAAE,IAAY;IACpF,OAAO,oCAAoC,CAAC,QAAQ,CAAC,WAAW,CAAC;WAC5D,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,aAAa,CAAC,CAAc,EAAE,CAAc;IACnD,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACvE,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,UAAwC,EAAE,IAAY;IAChG,MAAM,kBAAkB,GAA6B,EAAE,CAAC;IAExD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YAEjC,4EAA4E;YAC5E,8EAA8E;YAC9E,2CAA2C;YAC3C,mGAAmG;YACnG,yEAAyE;YACzE,sHAAsH;YACtH,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAErC,IAAI,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;gBAClF,MAAM,KAAK,GAAU;oBACnB,EAAE,EAAE,SAAS,CAAC,EAAE;oBAChB,KAAK,EAAE,SAAS,CAAC,IAAI;oBACrB,WAAW,EAAE,IAAI,CAAC,cAAc,IAAI,SAAS,CAAC,WAAW;oBACzD,GAAG,EAAE,SAAS,CAAC,OAAO;oBACtB,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,IAAI;iBACjC,CAAC;gBACF,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;gBACtH,IAAI,oBAAoB,KAAK,CAAC,CAAC,EAAE,CAAC;oBAChC,kBAAkB,CAAC,IAAI,CAAC;wBACtB,OAAO;wBACP,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE;wBAC/B,MAAM,EAAE,CAAC,KAAK,CAAC;qBAChB,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,kBAAkB,CAAC,oBAAoB,CAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;QACnD,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"transform-violations.js","sourceRoot":"","sources":["../../src/utils/transform-violations.ts"],"names":[],"mappings":"AAGA,oFAAoF;AACpF,2FAA2F;AAC3F,MAAM,oCAAoC,GAAG;IAC3C,mBAAmB;IACnB,WAAW;IACX,iBAAiB;IACjB,6BAA6B;IAC7B,MAAM;IACN,oBAAoB;IACpB,6BAA6B,EAAE,oFAAoF;CACpH,CAAC;AAEF,SAAS,qBAAqB,CAAC,WAAmB,EAAE,OAAoB,EAAE,IAAY;IACpF,OAAO,CACL,oCAAoC,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC1D,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAClD,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,CAAc,EAAE,CAAc;IACnD,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACvE,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,UAAwC,EAAE,IAAY;IACxF,MAAM,kBAAkB,GAA6B,EAAE,CAAC;IAExD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YAEjC,4EAA4E;YAC5E,8EAA8E;YAC9E,2CAA2C;YAC3C,mGAAmG;YACnG,yEAAyE;YACzE,sHAAsH;YACtH,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAErC,IAAI,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;gBAClF,MAAM,KAAK,GAAU;oBACnB,EAAE,EAAE,SAAS,CAAC,EAAE;oBAChB,KAAK,EAAE,SAAS,CAAC,IAAI;oBACrB,WAAW,EAAE,IAAI,CAAC,cAAc,IAAI,SAAS,CAAC,WAAW;oBACzD,GAAG,EAAE,SAAS,CAAC,OAAO;oBACtB,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,IAAI;iBACjC,CAAC;gBACF,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAC7C,CAAC,iBAAiB,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,KAAK,OAAO,CAC7D,CAAC;gBACF,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;oBAClC,kBAAkB,CAAC,IAAI,CAAC;wBACtB,OAAO;wBACP,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE;wBAC/B,MAAM,EAAE,CAAC,KAAK,CAAC;qBAChB,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;QACnD,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
@@ -1,7 +1,13 @@
1
- import type { AxeResults } from 'axe-core';
2
1
  import type { Signal } from '@preact/signals-core';
3
- import type { ExtendedElementWithIssues } from '../types';
4
- export default function updateElementsWithIssues(extendedElementsWithIssues: Signal<Array<ExtendedElementWithIssues>>, violations: typeof AxeResults.violations, win: Window & {
5
- CSS: typeof CSS;
6
- }, name: string): void;
2
+ import type { AxeResults } from 'axe-core';
3
+ import type { ExtendedElementWithIssues, ScanContext } from '../types.ts';
4
+ export declare function updateElementsWithIssues({ extendedElementsWithIssues, scanContext, violations, win, name, }: {
5
+ extendedElementsWithIssues: Signal<Array<ExtendedElementWithIssues>>;
6
+ scanContext: ScanContext;
7
+ violations: typeof AxeResults.violations;
8
+ win: Window & {
9
+ CSS: typeof CSS;
10
+ };
11
+ name: string;
12
+ }): void;
7
13
  //# sourceMappingURL=update-elements-with-issues.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-elements-with-issues.d.ts","sourceRoot":"","sources":["../../src/utils/update-elements-with-issues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAY1D,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,0BAA0B,EAAE,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,UAAU,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,OAAO,GAAG,CAAA;CAAE,EAAE,IAAI,EAAE,MAAM,QAgE/M"}
1
+ {"version":3,"file":"update-elements-with-issues.d.ts","sourceRoot":"","sources":["../../src/utils/update-elements-with-issues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,KAAK,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA6B1E,wBAAgB,wBAAwB,CAAC,EACvC,0BAA0B,EAC1B,WAAW,EACX,UAAU,EACV,GAAG,EACH,IAAI,GACL,EAAE;IACD,0BAA0B,EAAE,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACrE,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,OAAO,UAAU,CAAC,UAAU,CAAC;IACzC,GAAG,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,OAAO,GAAG,CAAA;KAAE,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;CACd,QAiGA"}
@@ -1,38 +1,63 @@
1
1
  import { batch, signal } from '@preact/signals-core';
2
- import transformViolations from './transform-violations.js';
3
- import areElementsWithIssuesEqual from './are-elements-with-issues-equal.js';
4
- import areIssueSetsEqual from './are-issue-sets-equal.js';
5
- import getElementPosition from './get-element-position.js';
6
- import getScrollableAncestors from './get-scrollable-ancestors.js';
7
- import supportsAnchorPositioning from './supports-anchor-positioning.js';
2
+ import { areElementsWithIssuesEqual } from './are-elements-with-issues-equal.js';
3
+ import { areIssueSetsEqual } from './are-issue-sets-equal.js';
4
+ import { isSvgElement } from './dom-helpers.js';
5
+ import { getElementPosition } from './get-element-position.js';
6
+ import { getParent } from './get-parent.js';
7
+ import { getScrollableAncestors } from './get-scrollable-ancestors.js';
8
+ import { isNodeInScanContext } from './is-node-in-scan-context.js';
9
+ import { supportsAnchorPositioning } from './supports-anchor-positioning.js';
10
+ import { transformViolations } from './transform-violations.js';
11
+ function shouldSkipRender(element) {
12
+ // Skip rendering if the element is inside an SVG:
13
+ // https://github.com/pomerantsev/accented/issues/62
14
+ const parent = getParent(element);
15
+ const isInsideSvg = Boolean(parent && isSvgElement(parent));
16
+ // Some issues, such as meta-viewport, are on <head> descendants,
17
+ // but since <head> is never rendered, we don't want to output anything
18
+ // for those in the DOM.
19
+ // We're not anticipating the use of shadow DOM in <head>,
20
+ // so the use of .closest() should be fine.
21
+ const isInsideHead = element.closest('head') !== null;
22
+ return isInsideSvg || isInsideHead;
23
+ }
8
24
  let count = 0;
9
- export default function updateElementsWithIssues(extendedElementsWithIssues, violations, win, name) {
25
+ export function updateElementsWithIssues({ extendedElementsWithIssues, scanContext, violations, win, name, }) {
10
26
  const updatedElementsWithIssues = transformViolations(violations, name);
11
27
  batch(() => {
12
28
  for (const updatedElementWithIssues of updatedElementsWithIssues) {
13
- const existingElementIndex = extendedElementsWithIssues.value.findIndex(extendedElementWithIssues => areElementsWithIssuesEqual(extendedElementWithIssues, updatedElementWithIssues));
14
- if (existingElementIndex > -1 && extendedElementsWithIssues.value[existingElementIndex] && !areIssueSetsEqual(extendedElementsWithIssues.value[existingElementIndex].issues.value, updatedElementWithIssues.issues)) {
15
- extendedElementsWithIssues.value[existingElementIndex].issues.value = updatedElementWithIssues.issues;
29
+ const existingElementIndex = extendedElementsWithIssues.value.findIndex((extendedElementWithIssues) => areElementsWithIssuesEqual(extendedElementWithIssues, updatedElementWithIssues));
30
+ if (existingElementIndex > -1 &&
31
+ extendedElementsWithIssues.value[existingElementIndex] &&
32
+ !areIssueSetsEqual(extendedElementsWithIssues.value[existingElementIndex].issues.value, updatedElementWithIssues.issues)) {
33
+ extendedElementsWithIssues.value[existingElementIndex].issues.value =
34
+ updatedElementWithIssues.issues;
16
35
  }
17
36
  }
18
- const addedElementsWithIssues = updatedElementsWithIssues.filter(updatedElementWithIssues => {
19
- return !extendedElementsWithIssues.value.some(extendedElementWithIssues => areElementsWithIssuesEqual(extendedElementWithIssues, updatedElementWithIssues));
37
+ const addedElementsWithIssues = updatedElementsWithIssues.filter((updatedElementWithIssues) => {
38
+ return !extendedElementsWithIssues.value.some((extendedElementWithIssues) => areElementsWithIssuesEqual(extendedElementWithIssues, updatedElementWithIssues));
20
39
  });
21
- const removedElementsWithIssues = extendedElementsWithIssues.value.filter(extendedElementWithIssues => {
22
- return !updatedElementsWithIssues.some(updatedElementWithIssues => areElementsWithIssuesEqual(updatedElementWithIssues, extendedElementWithIssues));
40
+ // Only consider an element to be removed in two cases:
41
+ // 1. It has been removed from the DOM.
42
+ // 2. It is within the scan context, but not among updatedElementsWithIssues.
43
+ const removedElementsWithIssues = extendedElementsWithIssues.value.filter((extendedElementWithIssues) => {
44
+ const isConnected = extendedElementWithIssues.element.isConnected;
45
+ const hasNoMoreIssues = isNodeInScanContext(extendedElementWithIssues.element, scanContext) &&
46
+ !updatedElementsWithIssues.some((updatedElementWithIssues) => areElementsWithIssuesEqual(updatedElementWithIssues, extendedElementWithIssues));
47
+ return !isConnected || hasNoMoreIssues;
23
48
  });
24
49
  if (addedElementsWithIssues.length > 0 || removedElementsWithIssues.length > 0) {
25
50
  extendedElementsWithIssues.value = [...extendedElementsWithIssues.value]
26
- .filter(extendedElementWithIssues => {
27
- return !removedElementsWithIssues.some(removedElementWithIssues => areElementsWithIssuesEqual(removedElementWithIssues, extendedElementWithIssues));
51
+ .filter((extendedElementWithIssues) => {
52
+ return !removedElementsWithIssues.some((removedElementWithIssues) => areElementsWithIssuesEqual(removedElementWithIssues, extendedElementWithIssues));
28
53
  })
29
54
  .concat(addedElementsWithIssues
30
- .filter(addedElementWithIssues => addedElementWithIssues.element.isConnected)
31
- .map(addedElementWithIssues => {
55
+ .filter((addedElementWithIssues) => addedElementWithIssues.element.isConnected)
56
+ .map((addedElementWithIssues) => {
32
57
  const id = count++;
33
58
  const trigger = win.document.createElement(`${name}-trigger`);
34
- const elementZIndex = parseInt(win.getComputedStyle(addedElementWithIssues.element).zIndex, 10);
35
- if (!isNaN(elementZIndex)) {
59
+ const elementZIndex = Number.parseInt(win.getComputedStyle(addedElementWithIssues.element).zIndex, 10);
60
+ if (!Number.isNaN(elementZIndex)) {
36
61
  trigger.style.setProperty('z-index', (elementZIndex + 1).toString(), 'important');
37
62
  }
38
63
  trigger.style.setProperty('position-anchor', `--${name}-anchor-${id}`, 'important');
@@ -43,23 +68,26 @@ export default function updateElementsWithIssues(extendedElementsWithIssues, vio
43
68
  trigger.position = signal(position);
44
69
  trigger.visible = signal(true);
45
70
  trigger.element = addedElementWithIssues.element;
46
- const scrollableAncestors = supportsAnchorPositioning(win) ?
47
- new Set() :
48
- getScrollableAncestors(addedElementWithIssues.element, win);
71
+ const scrollableAncestors = supportsAnchorPositioning(win)
72
+ ? new Set()
73
+ : getScrollableAncestors(addedElementWithIssues.element, win);
49
74
  const issues = signal(addedElementWithIssues.issues);
50
75
  accentedDialog.issues = issues;
51
76
  accentedDialog.element = addedElementWithIssues.element;
52
77
  return {
53
78
  id,
54
79
  element: addedElementWithIssues.element,
80
+ skipRender: shouldSkipRender(addedElementWithIssues.element),
55
81
  rootNode: addedElementWithIssues.rootNode,
56
82
  visible: trigger.visible,
57
83
  position: trigger.position,
58
84
  scrollableAncestors: signal(scrollableAncestors),
59
- anchorNameValue: addedElementWithIssues.element.style.getPropertyValue('anchor-name')
60
- || win.getComputedStyle(addedElementWithIssues.element).getPropertyValue('anchor-name'),
85
+ anchorNameValue: addedElementWithIssues.element.style.getPropertyValue('anchor-name') ||
86
+ win
87
+ .getComputedStyle(addedElementWithIssues.element)
88
+ .getPropertyValue('anchor-name'),
61
89
  trigger,
62
- issues
90
+ issues,
63
91
  };
64
92
  }));
65
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"update-elements-with-issues.js","sourceRoot":"","sources":["../../src/utils/update-elements-with-issues.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-elements-with-issues.js","sourceRoot":"","sources":["../../src/utils/update-elements-with-issues.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import type { AccentedOptions } from './types';
2
- export default function validateOptions(options: AccentedOptions): void;
1
+ import type { AccentedOptions } from './types.ts';
2
+ export declare function validateOptions(options: AccentedOptions): void;
3
3
  //# sourceMappingURL=validate-options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-options.d.ts","sourceRoot":"","sources":["../src/validate-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAQ/C,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,OAAO,EAAE,eAAe,QAmC/D"}
1
+ {"version":3,"file":"validate-options.d.ts","sourceRoot":"","sources":["../src/validate-options.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EAMhB,MAAM,YAAY,CAAC;AA+GpB,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,QAgEvD"}
@@ -1,9 +1,91 @@
1
1
  import { allowedAxeOptions } from './types.js';
2
+ import { isNode, isNodeList } from './utils/dom-helpers.js';
3
+ function isSelector(contextFragment) {
4
+ return (typeof contextFragment === 'string' ||
5
+ isNode(contextFragment) ||
6
+ 'fromShadowDom' in contextFragment);
7
+ }
8
+ function validateSelector(selector) {
9
+ if (typeof selector === 'string') {
10
+ return;
11
+ }
12
+ if (isNode(selector)) {
13
+ return;
14
+ }
15
+ if ('fromShadowDom' in selector) {
16
+ if (!Array.isArray(selector.fromShadowDom) ||
17
+ selector.fromShadowDom.length < 2 ||
18
+ !selector.fromShadowDom.every((item) => typeof item === 'string')) {
19
+ throw new TypeError(`Accented: invalid argument. \`fromShadowDom\` must be an array of strings with at least 2 elements. It’s currently set to ${selector.fromShadowDom}.`);
20
+ }
21
+ return;
22
+ }
23
+ const neverSelector = selector;
24
+ throw new TypeError(`Accented: invalid argument. The selector must be one of: string, Node, or an object with a \`fromShadowDom\` property. It’s currently set to ${neverSelector}.`);
25
+ }
26
+ function isSelectorList(contextFragment) {
27
+ return ((typeof contextFragment === 'object' && isNodeList(contextFragment)) ||
28
+ (Array.isArray(contextFragment) && contextFragment.every((item) => isSelector(item))));
29
+ }
30
+ function validateSelectorList(selectorList) {
31
+ if (isNodeList(selectorList)) {
32
+ return;
33
+ }
34
+ if (Array.isArray(selectorList)) {
35
+ for (const selector of selectorList) {
36
+ validateSelector(selector);
37
+ }
38
+ }
39
+ else {
40
+ const neverSelectorList = selectorList;
41
+ throw new TypeError(`Accented: invalid argument. The selector list must either be a NodeList or an array. It’s currently set to ${neverSelectorList}.`);
42
+ }
43
+ }
44
+ function isContextProp(contextFragment) {
45
+ return isSelector(contextFragment) || isSelectorList(contextFragment);
46
+ }
47
+ function validateContextProp(context) {
48
+ if (isSelector(context)) {
49
+ validateSelector(context);
50
+ }
51
+ else if (isSelectorList(context)) {
52
+ validateSelectorList(context);
53
+ }
54
+ else {
55
+ const neverContext = context;
56
+ throw new TypeError(`Accented: invalid argument. The context property must either be a selector or a selector list. It’s currently set to ${neverContext}.`);
57
+ }
58
+ }
59
+ function isContextObject(contextFragment) {
60
+ return (typeof contextFragment === 'object' &&
61
+ contextFragment !== null &&
62
+ ('include' in contextFragment || 'exclude' in contextFragment));
63
+ }
64
+ function validateContextObject(contextObject) {
65
+ if ('include' in contextObject && contextObject.include !== undefined) {
66
+ validateContextProp(contextObject.include);
67
+ }
68
+ if ('exclude' in contextObject && contextObject.exclude !== undefined) {
69
+ validateContextProp(contextObject.exclude);
70
+ }
71
+ }
72
+ function validateContext(context) {
73
+ if (isContextProp(context)) {
74
+ validateContextProp(context);
75
+ }
76
+ else if (isContextObject(context)) {
77
+ validateContextObject(context);
78
+ }
79
+ else {
80
+ const neverContext = context;
81
+ throw new TypeError(`Accented: invalid context argument. It’s currently set to ${neverContext}.`);
82
+ }
83
+ }
2
84
  // The space of valid CSS and HTML names is wider than this,
3
85
  // but with Unicode it gets complicated quickly, so I'm sticking to only allowing
4
86
  // lowercase alphanumeric names that possibly contain dashes that start with a letter.
5
87
  const nameRegex = /^[a-z]([a-z0-9]|-)+$/;
6
- export default function validateOptions(options) {
88
+ export function validateOptions(options) {
7
89
  if (typeof options !== 'object' || options === null) {
8
90
  throw new TypeError(`Accented: invalid argument. The options parameter must be an object if provided. It’s currently set to ${options}.`);
9
91
  }
@@ -11,7 +93,8 @@ export default function validateOptions(options) {
11
93
  if (typeof options.throttle !== 'object' || options.throttle === null) {
12
94
  throw new TypeError(`Accented: invalid argument. \`throttle\` option must be an object if provided. It’s currently set to ${options.throttle}.`);
13
95
  }
14
- if (options.throttle.wait !== undefined && (typeof options.throttle.wait !== 'number' || options.throttle.wait < 0)) {
96
+ if (options.throttle.wait !== undefined &&
97
+ (typeof options.throttle.wait !== 'number' || options.throttle.wait < 0)) {
15
98
  throw new TypeError(`Accented: invalid argument. \`throttle.wait\` option must be a non-negative number if provided. It’s currently set to ${options.throttle.wait}.`);
16
99
  }
17
100
  }
@@ -26,17 +109,21 @@ export default function validateOptions(options) {
26
109
  if (options.callback !== undefined && typeof options.callback !== 'function') {
27
110
  throw new TypeError(`Accented: invalid argument. \`callback\` option must be a function if provided. It’s currently set to ${options.callback}.`);
28
111
  }
29
- if (options.name !== undefined && (typeof options.name !== 'string' || !options.name.match(nameRegex))) {
112
+ if (options.name !== undefined &&
113
+ (typeof options.name !== 'string' || !options.name.match(nameRegex))) {
30
114
  throw new TypeError(`Accented: invalid argument. \`name\` option must be a string that starts with a lowercase letter and only contains lowercase alphanumeric characters and dashes. It’s currently set to ${options.name}.`);
31
115
  }
32
116
  if (options.axeOptions !== undefined) {
33
117
  if (typeof options.axeOptions !== 'object' || options.axeOptions === null) {
34
118
  throw new TypeError(`Accented: invalid argument. \`axeOptions\` option must be an object if provided. It’s currently set to ${options.axeOptions}.`);
35
119
  }
36
- const unsupportedKeys = Object.keys(options.axeOptions).filter(key => !allowedAxeOptions.includes(key));
120
+ const unsupportedKeys = Object.keys(options.axeOptions).filter((key) => !allowedAxeOptions.includes(key));
37
121
  if (unsupportedKeys.length > 0) {
38
122
  throw new TypeError(`Accented: invalid argument. \`axeOptions\` contains the following unsupported keys: ${unsupportedKeys.join(', ')}. Valid options are: ${allowedAxeOptions.join(', ')}.`);
39
123
  }
40
124
  }
125
+ if (options.context !== undefined) {
126
+ validateContext(options.context);
127
+ }
41
128
  }
42
129
  //# sourceMappingURL=validate-options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-options.js","sourceRoot":"","sources":["../src/validate-options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-options.js","sourceRoot":"","sources":["../src/validate-options.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "accented",
3
- "version": "0.0.0-20250404114312",
3
+ "version": "0.0.0-20250618181418",
4
4
  "description": "Continuous accessibility testing and issue highlighting for web development",
5
5
  "type": "module",
6
6
  "main": "dist/accented.js",
@@ -20,21 +20,27 @@
20
20
  "axe-core"
21
21
  ],
22
22
  "author": "Pavel Pomerantsev",
23
- "license": "MIT AND MPL-2.0",
23
+ "license": "MIT",
24
24
  "bugs": {
25
25
  "url": "https://github.com/pomerantsev/accented/issues"
26
26
  },
27
27
  "homepage": "https://github.com/pomerantsev/accented#readme",
28
28
  "dependencies": {
29
29
  "@preact/signals-core": "^1.8.0",
30
- "axe-core": "^4.10.2"
30
+ "axe-core": "^4.10.3"
31
+ },
32
+ "devDependencies": {
33
+ "@types/jsdom": "^21.1.7",
34
+ "jsdom": "^26.0.0"
31
35
  },
32
36
  "scripts": {
33
- "build": "tsc",
37
+ "build": "pnpm copyCommon && tsc",
38
+ "copyCommon": "node --import tsx ./scripts/copy-common.ts",
39
+ "watchCommon": "node --import tsx ./scripts/watch-common.ts",
34
40
  "checkBuiltFiles": "node --import tsx ./scripts/check-built-files.ts",
35
41
  "checkImportsInBuiltFiles": "node ./dist/accented.js",
36
42
  "typecheckTests": "tsc -p ./tsconfig.test.json",
37
- "watch": "tsc --watch",
43
+ "watch": "pnpm copyCommon && (pnpm watchCommon & tsc --watch)",
38
44
  "test": "node --test --import tsx \"./**/*.test.ts\""
39
45
  }
40
46
  }
@@ -1,8 +1,8 @@
1
1
  import assert from 'node:assert/strict';
2
- import {suite, test} from 'node:test';
2
+ import { suite, test } from 'node:test';
3
3
  import type { Mock } from 'node:test';
4
4
 
5
- import accented from './accented.js';
5
+ import { accented } from './accented';
6
6
 
7
7
  suite('Accented', () => {
8
8
  test('runs without errors in NodeJS and issues a warning and a trace (it’s meant to be a no-op on the server side)', (t) => {