accented 1.1.1 → 1.2.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.
Files changed (67) hide show
  1. package/README.md +2 -2
  2. package/dist/accented.d.ts.map +1 -1
  3. package/dist/accented.js +2 -4
  4. package/dist/accented.js.map +1 -1
  5. package/dist/dom-updater.js +6 -6
  6. package/dist/dom-updater.js.map +1 -1
  7. package/dist/elements/accented-dialog.d.ts +2 -2
  8. package/dist/elements/accented-dialog.d.ts.map +1 -1
  9. package/dist/elements/accented-dialog.js +15 -14
  10. package/dist/elements/accented-dialog.js.map +1 -1
  11. package/dist/elements/accented-trigger.d.ts +6 -6
  12. package/dist/elements/accented-trigger.d.ts.map +1 -1
  13. package/dist/elements/accented-trigger.js +2 -2
  14. package/dist/elements/accented-trigger.js.map +1 -1
  15. package/dist/intersection-observer.js +2 -2
  16. package/dist/intersection-observer.js.map +1 -1
  17. package/dist/logger.d.ts +1 -4
  18. package/dist/logger.d.ts.map +1 -1
  19. package/dist/logger.js +15 -15
  20. package/dist/logger.js.map +1 -1
  21. package/dist/scanner.d.ts.map +1 -1
  22. package/dist/scanner.js +4 -5
  23. package/dist/scanner.js.map +1 -1
  24. package/dist/state.js +4 -4
  25. package/dist/state.js.map +1 -1
  26. package/dist/utils/get-element-position.d.ts +1 -1
  27. package/dist/utils/get-element-position.d.ts.map +1 -1
  28. package/dist/utils/get-element-position.js +6 -6
  29. package/dist/utils/get-element-position.js.map +1 -1
  30. package/dist/utils/get-scrollable-ancestors.d.ts +1 -1
  31. package/dist/utils/get-scrollable-ancestors.d.ts.map +1 -1
  32. package/dist/utils/get-scrollable-ancestors.js +2 -2
  33. package/dist/utils/get-scrollable-ancestors.js.map +1 -1
  34. package/dist/utils/recalculate-positions.js +1 -1
  35. package/dist/utils/recalculate-positions.js.map +1 -1
  36. package/dist/utils/recalculate-scrollable-ancestors.js +1 -1
  37. package/dist/utils/recalculate-scrollable-ancestors.js.map +1 -1
  38. package/dist/utils/shadow-dom-aware-mutation-observer.d.ts +4 -4
  39. package/dist/utils/shadow-dom-aware-mutation-observer.d.ts.map +1 -1
  40. package/dist/utils/shadow-dom-aware-mutation-observer.js +29 -29
  41. package/dist/utils/shadow-dom-aware-mutation-observer.js.map +1 -1
  42. package/dist/utils/supports-anchor-positioning.d.ts +1 -5
  43. package/dist/utils/supports-anchor-positioning.d.ts.map +1 -1
  44. package/dist/utils/supports-anchor-positioning.js +4 -6
  45. package/dist/utils/supports-anchor-positioning.js.map +1 -1
  46. package/dist/utils/update-elements-with-issues.d.ts +1 -4
  47. package/dist/utils/update-elements-with-issues.d.ts.map +1 -1
  48. package/dist/utils/update-elements-with-issues.js +8 -10
  49. package/dist/utils/update-elements-with-issues.js.map +1 -1
  50. package/package.json +5 -5
  51. package/src/accented.ts +2 -4
  52. package/src/dom-updater.ts +6 -6
  53. package/src/elements/accented-dialog.ts +16 -17
  54. package/src/elements/accented-trigger.ts +2 -2
  55. package/src/intersection-observer.ts +2 -2
  56. package/src/logger.ts +15 -15
  57. package/src/scanner.ts +4 -5
  58. package/src/state.ts +5 -5
  59. package/src/utils/get-element-position.ts +6 -6
  60. package/src/utils/get-scrollable-ancestors.ts +2 -2
  61. package/src/utils/recalculate-positions.ts +1 -1
  62. package/src/utils/recalculate-scrollable-ancestors.ts +1 -1
  63. package/src/utils/shadow-dom-aware-mutation-observer.test.ts +413 -0
  64. package/src/utils/shadow-dom-aware-mutation-observer.ts +36 -30
  65. package/src/utils/supports-anchor-positioning.ts +4 -10
  66. package/src/utils/update-elements-with-issues.test.ts +29 -54
  67. package/src/utils/update-elements-with-issues.ts +7 -11
@@ -2,8 +2,8 @@ import { createsContainingBlock } from './containing-blocks.js';
2
2
  import { isHtmlElement } from './dom-helpers.js';
3
3
  import { getParent } from './get-parent.js';
4
4
  // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_display/Containing_block#identifying_the_containing_block
5
- function isContainingBlock(element, win) {
6
- const style = win.getComputedStyle(element);
5
+ function isContainingBlock(element) {
6
+ const style = getComputedStyle(element);
7
7
  const { transform, perspective, contain, contentVisibility, containerType, filter, backdropFilter, willChange, } = style;
8
8
  const containItems = contain.split(' ');
9
9
  const willChangeItems = willChange.split(/\s*,\s*/);
@@ -16,11 +16,11 @@ function isContainingBlock(element, win) {
16
16
  (createsContainingBlock('backdropFilter') && backdropFilter !== 'none') ||
17
17
  willChangeItems.some((item) => ['transform', 'perspective', 'contain', 'filter', 'backdrop-filter'].includes(item)));
18
18
  }
19
- function getNonInitialContainingBlock(element, win) {
19
+ function getNonInitialContainingBlock(element) {
20
20
  let currentElement = element;
21
21
  while (currentElement) {
22
22
  currentElement = getParent(currentElement);
23
- if (currentElement && isContainingBlock(currentElement, win)) {
23
+ if (currentElement && isContainingBlock(currentElement)) {
24
24
  return currentElement;
25
25
  }
26
26
  }
@@ -34,8 +34,8 @@ function getNonInitialContainingBlock(element, win) {
34
34
  * * The element itself, or one of the element's ancestors has a scale or rotate transform.
35
35
  * * The browser doesn't support anchor positioning.
36
36
  */
37
- export function getElementPosition(element, win) {
38
- const nonInitialContainingBlock = getNonInitialContainingBlock(element, win);
37
+ export function getElementPosition(element) {
38
+ const nonInitialContainingBlock = getNonInitialContainingBlock(element);
39
39
  // If an element has a containing block as an ancestor,
40
40
  // and that containing block is not the <html> element (the initial containing block),
41
41
  // fixed positioning works differently.
@@ -1 +1 @@
1
- {"version":3,"file":"get-element-position.js","sourceRoot":"","sources":["../../src/utils/get-element-position.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-element-position.js","sourceRoot":"","sources":["../../src/utils/get-element-position.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare function getScrollableAncestors(element: Element, win: Window): Set<Element>;
1
+ export declare function getScrollableAncestors(element: Element): Set<Element>;
2
2
  //# sourceMappingURL=get-scrollable-ancestors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-scrollable-ancestors.d.ts","sourceRoot":"","sources":["../../src/utils/get-scrollable-ancestors.ts"],"names":[],"mappings":"AAIA,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAiBnE"}
1
+ {"version":3,"file":"get-scrollable-ancestors.d.ts","sourceRoot":"","sources":["../../src/utils/get-scrollable-ancestors.ts"],"names":[],"mappings":"AAIA,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,gBAiBtD"}
@@ -1,6 +1,6 @@
1
1
  import { getParent } from './get-parent.js';
2
2
  const scrollableOverflowValues = new Set(['auto', 'scroll', 'hidden']);
3
- export function getScrollableAncestors(element, win) {
3
+ export function getScrollableAncestors(element) {
4
4
  let currentElement = element;
5
5
  const scrollableAncestors = new Set();
6
6
  while (true) {
@@ -8,7 +8,7 @@ export function getScrollableAncestors(element, win) {
8
8
  if (!currentElement) {
9
9
  break;
10
10
  }
11
- const computedStyle = win.getComputedStyle(currentElement);
11
+ const computedStyle = getComputedStyle(currentElement);
12
12
  if (scrollableOverflowValues.has(computedStyle.overflowX) ||
13
13
  scrollableOverflowValues.has(computedStyle.overflowY)) {
14
14
  scrollableAncestors.add(currentElement);
@@ -1 +1 @@
1
- {"version":3,"file":"get-scrollable-ancestors.js","sourceRoot":"","sources":["../../src/utils/get-scrollable-ancestors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEvE,MAAM,UAAU,sBAAsB,CAAC,OAAgB,EAAE,GAAW;IAClE,IAAI,cAAc,GAAmB,OAAO,CAAC;IAC7C,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAW,CAAC;IAC/C,OAAO,IAAI,EAAE,CAAC;QACZ,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QAC3C,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM;QACR,CAAC;QACD,MAAM,aAAa,GAAG,GAAG,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAC3D,IACE,wBAAwB,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC;YACrD,wBAAwB,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,EACrD,CAAC;YACD,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"get-scrollable-ancestors.js","sourceRoot":"","sources":["../../src/utils/get-scrollable-ancestors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEvE,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,IAAI,cAAc,GAAmB,OAAO,CAAC;IAC7C,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAW,CAAC;IAC/C,OAAO,IAAI,EAAE,CAAC;QACZ,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QAC3C,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM;QACR,CAAC;QACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;QACvD,IACE,wBAAwB,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC;YACrD,wBAAwB,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,EACrD,CAAC;YACD,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}
@@ -14,7 +14,7 @@ export function recalculatePositions() {
14
14
  batch(() => {
15
15
  for (const { element, position, visible } of extendedElementsWithIssues.value) {
16
16
  if (visible.value && element.isConnected) {
17
- position.value = getElementPosition(element, window);
17
+ position.value = getElementPosition(element);
18
18
  }
19
19
  }
20
20
  });
@@ -1 +1 @@
1
- {"version":3,"file":"recalculate-positions.js","sourceRoot":"","sources":["../../src/utils/recalculate-positions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B,MAAM,UAAU,oBAAoB;IAClC,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IACD,cAAc,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC;YACH,cAAc,GAAG,KAAK,CAAC;YACvB,KAAK,CAAC,GAAG,EAAE;gBACT,KAAK,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,0BAA0B,CAAC,KAAK,EAAE,CAAC;oBAC9E,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;wBACzC,QAAQ,CAAC,KAAK,GAAG,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"recalculate-positions.js","sourceRoot":"","sources":["../../src/utils/recalculate-positions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B,MAAM,UAAU,oBAAoB;IAClC,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IACD,cAAc,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC;YACH,cAAc,GAAG,KAAK,CAAC;YACvB,KAAK,CAAC,GAAG,EAAE;gBACT,KAAK,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,0BAA0B,CAAC,KAAK,EAAE,CAAC;oBAC9E,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;wBACzC,QAAQ,CAAC,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBAC/C,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -5,7 +5,7 @@ export function recalculateScrollableAncestors() {
5
5
  batch(() => {
6
6
  for (const { element, scrollableAncestors } of extendedElementsWithIssues.value) {
7
7
  if (element.isConnected) {
8
- scrollableAncestors.value = getScrollableAncestors(element, window);
8
+ scrollableAncestors.value = getScrollableAncestors(element);
9
9
  }
10
10
  }
11
11
  });
@@ -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,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
+ {"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,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,10 +1,10 @@
1
1
  export declare function createShadowDOMAwareMutationObserver(name: string, callback: MutationCallback): {
2
- #shadowRoots: Set<unknown>;
3
- #options: MutationObserverInit | undefined;
2
+ "__#private@#shadowRoots": Map<ShadowRoot, /*elided*/ any>;
3
+ "__#private@#options": MutationObserverInit | undefined;
4
4
  observe(target: Node, options?: MutationObserverInit): void;
5
5
  disconnect(): void;
6
- #observeShadowRoots: (elements: Array<Element | Document | DocumentFragment>) => void;
7
- #deleteShadowRoots: (elements: Array<Element | Document | DocumentFragment>) => void;
6
+ "__#private@#observeShadowRoots": (elements: Array<Element | Document | DocumentFragment>) => void;
7
+ "__#private@#unobserveShadowRoots": (elements: Array<Element | Document | DocumentFragment>) => void;
8
8
  takeRecords(): MutationRecord[];
9
9
  };
10
10
  //# sourceMappingURL=shadow-dom-aware-mutation-observer.d.ts.map
@@ -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,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB;;cAI/E,oBAAoB,GAAG,SAAS;oBA2BjB,IAAI,YAAY,oBAAoB,GAAG,IAAI;kBAQ7C,IAAI;0BAKJ,UAAU,KAAK,CAAC,OAAO,GAAG,QAAQ,GAAG,gBAAgB,CAAC;yBAcvD,UAAU,KAAK,CAAC,OAAO,GAAG,QAAQ,GAAG,gBAAgB,CAAC;;EAa/E"}
1
+ {"version":3,"file":"shadow-dom-aware-mutation-observer.d.ts","sourceRoot":"","sources":["../../src/utils/shadow-dom-aware-mutation-observer.ts"],"names":[],"mappings":"AAaA,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB;;2BAgB/E,oBAAoB,GAAG,SAAS;oBAgBjB,IAAI,YAAY,oBAAoB,GAAG,IAAI;kBAQ7C,IAAI;uCAMJ,UAAU,KAAK,CAAC,OAAO,GAAG,QAAQ,GAAG,gBAAgB,CAAC;yCAUpD,UAAU,KAAK,CAAC,OAAO,GAAG,QAAQ,GAAG,gBAAgB,CAAC;;EAWlF"}
@@ -1,26 +1,30 @@
1
1
  import { getAccentedElementNames } from '../constants.js';
2
2
  import { isDocument, isDocumentFragment, isElement } from './dom-helpers.js';
3
+ function getShadowRoots(elements) {
4
+ return elements
5
+ .flatMap((element) => [element, ...Array.from(element.querySelectorAll('*'))])
6
+ .reduce((acc, element) => isElement(element) && element.shadowRoot ? acc.concat(element.shadowRoot) : acc, []);
7
+ }
3
8
  export function createShadowDOMAwareMutationObserver(name, callback) {
9
+ var _a;
10
+ const accentedElementNames = getAccentedElementNames(name);
11
+ function getMutationNodes(mutations, type) {
12
+ return mutations
13
+ .filter((mutation) => mutation.type === 'childList')
14
+ .flatMap((mutation) => Array.from(mutation[type]))
15
+ .filter((node) => isElement(node))
16
+ .filter((node) => !accentedElementNames.includes(node.nodeName.toLowerCase()));
17
+ }
4
18
  class ShadowDOMAwareMutationObserver extends MutationObserver {
5
- #shadowRoots = new Set();
19
+ #shadowRoots = new Map();
6
20
  #options;
7
- constructor(callback) {
21
+ constructor(mutationCallback) {
8
22
  super((mutations, observer) => {
9
- const accentedElementNames = getAccentedElementNames(name);
10
- const childListMutations = mutations.filter((mutation) => mutation.type === 'childList');
11
- const newElements = childListMutations
12
- .flatMap((mutation) => [...mutation.addedNodes])
13
- .filter((node) => isElement(node))
14
- .filter((node) => !accentedElementNames.includes(node.nodeName.toLowerCase()));
23
+ const newElements = getMutationNodes(mutations, 'addedNodes');
15
24
  this.#observeShadowRoots(newElements);
16
- const removedElements = childListMutations
17
- .flatMap((mutation) => [...mutation.removedNodes])
18
- .filter((node) => isElement(node))
19
- .filter((node) => !accentedElementNames.includes(node.nodeName.toLowerCase()));
20
- // Mutation observer has no "unobserve" method, so we're simply deleting
21
- // the elements from the set of shadow roots.
22
- this.#deleteShadowRoots(removedElements);
23
- callback(mutations, observer);
25
+ const removedElements = getMutationNodes(mutations, 'removedNodes');
26
+ this.#unobserveShadowRoots(removedElements);
27
+ mutationCallback(mutations, observer);
24
28
  });
25
29
  }
26
30
  observe(target, options) {
@@ -31,31 +35,27 @@ export function createShadowDOMAwareMutationObserver(name, callback) {
31
35
  super.observe(target, options);
32
36
  }
33
37
  disconnect() {
38
+ this.#unobserveShadowRoots(Array.from(this.#shadowRoots.keys()));
34
39
  this.#shadowRoots.clear();
35
40
  super.disconnect();
36
41
  }
37
42
  #observeShadowRoots = (elements) => {
38
- const shadowRoots = elements
39
- .flatMap((element) => [...element.querySelectorAll('*')])
40
- .filter((element) => element.shadowRoot)
41
- .map((element) => element.shadowRoot);
43
+ const shadowRoots = getShadowRoots(elements);
42
44
  for (const shadowRoot of shadowRoots) {
43
- if (shadowRoot) {
44
- this.#shadowRoots.add(shadowRoot);
45
- this.observe(shadowRoot, this.#options);
46
- }
45
+ const observer = new _a(callback);
46
+ observer.observe(shadowRoot, this.#options);
47
+ this.#shadowRoots.set(shadowRoot, observer);
47
48
  }
48
49
  };
49
- #deleteShadowRoots = (elements) => {
50
- const shadowRoots = elements
51
- .flatMap((element) => [...element.querySelectorAll('*')])
52
- .filter((element) => element.shadowRoot)
53
- .map((element) => element.shadowRoot);
50
+ #unobserveShadowRoots = (elements) => {
51
+ const shadowRoots = getShadowRoots(elements);
54
52
  for (const shadowRoot of shadowRoots) {
53
+ this.#shadowRoots.get(shadowRoot)?.disconnect();
55
54
  this.#shadowRoots.delete(shadowRoot);
56
55
  }
57
56
  };
58
57
  }
58
+ _a = ShadowDOMAwareMutationObserver;
59
59
  return new ShadowDOMAwareMutationObserver(callback);
60
60
  }
61
61
  //# sourceMappingURL=shadow-dom-aware-mutation-observer.js.map
@@ -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,2 @@
1
- type WindowWithCSS = Window & {
2
- CSS: typeof CSS;
3
- };
4
- export declare function supportsAnchorPositioning(win: WindowWithCSS): boolean;
5
- export {};
1
+ export declare function supportsAnchorPositioning(): boolean;
6
2
  //# 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,CAAC;CACjB,CAAC;AAcF,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,aAAa,WAM3D"}
1
+ {"version":3,"file":"supports-anchor-positioning.d.ts","sourceRoot":"","sources":["../../src/utils/supports-anchor-positioning.ts"],"names":[],"mappings":"AAYA,wBAAgB,yBAAyB,YAIxC"}
@@ -2,16 +2,14 @@
2
2
  * We have to do browser sniffing now and explicitly turn off Anchor positioning in Safari
3
3
  * since anchor positioning is not working correctly in Safari 26 Technology Preview.
4
4
  */
5
- function isWebKit(win) {
6
- const ua = win.navigator.userAgent;
5
+ function isWebKit() {
6
+ const ua = navigator.userAgent;
7
7
  return (/AppleWebKit/.test(ua) && !/Chrome/.test(ua)) || /\b(iPad|iPhone|iPod)\b/.test(ua);
8
8
  }
9
9
  // ATTENTION: sync with the implementation in end-to-end tests.
10
10
  // I didn't find a way to sync this with automatically with the implementation of supportsAnchorPositioning
11
11
  // in end-to-end tests, so it has to be synced manually.
12
- export function supportsAnchorPositioning(win) {
13
- return (win.CSS.supports('anchor-name: --foo') &&
14
- win.CSS.supports('position-anchor: --foo') &&
15
- !isWebKit(win));
12
+ export function supportsAnchorPositioning() {
13
+ return (CSS.supports('anchor-name: --foo') && CSS.supports('position-anchor: --foo') && !isWebKit());
16
14
  }
17
15
  //# 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;;;GAGG;AACH,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC;IACnC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED,+DAA+D;AAC/D,2GAA2G;AAC3G,wDAAwD;AACxD,MAAM,UAAU,yBAAyB,CAAC,GAAkB;IAC1D,OAAO,CACL,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACtC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAC1C,CAAC,QAAQ,CAAC,GAAG,CAAC,CACf,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"supports-anchor-positioning.js","sourceRoot":"","sources":["../../src/utils/supports-anchor-positioning.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,SAAS,QAAQ;IACf,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC;IAC/B,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED,+DAA+D;AAC/D,2GAA2G;AAC3G,wDAAwD;AACxD,MAAM,UAAU,yBAAyB;IACvC,OAAO,CACL,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAC5F,CAAC;AACJ,CAAC"}
@@ -1,13 +1,10 @@
1
1
  import type { Signal } from '@preact/signals-core';
2
2
  import type { AxeResults } from 'axe-core';
3
3
  import type { ExtendedElementWithIssues, ScanContext } from '../types.ts';
4
- export declare function updateElementsWithIssues({ extendedElementsWithIssues, scanContext, violations, win, name, }: {
4
+ export declare function updateElementsWithIssues({ extendedElementsWithIssues, scanContext, violations, name, }: {
5
5
  extendedElementsWithIssues: Signal<Array<ExtendedElementWithIssues>>;
6
6
  scanContext: ScanContext;
7
7
  violations: typeof AxeResults.violations;
8
- win: Window & {
9
- CSS: typeof CSS;
10
- };
11
8
  name: string;
12
9
  }): void;
13
10
  //# 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,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
+ {"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,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,IAAI,EAAE,MAAM,CAAC;CACd,QA+FA"}
@@ -22,7 +22,7 @@ function shouldSkipRender(element) {
22
22
  return isInsideSvg || isInsideHead;
23
23
  }
24
24
  let count = 0;
25
- export function updateElementsWithIssues({ extendedElementsWithIssues, scanContext, violations, win, name, }) {
25
+ export function updateElementsWithIssues({ extendedElementsWithIssues, scanContext, violations, name, }) {
26
26
  const updatedElementsWithIssues = transformViolations(violations, name);
27
27
  batch(() => {
28
28
  for (const updatedElementWithIssues of updatedElementsWithIssues) {
@@ -55,22 +55,22 @@ export function updateElementsWithIssues({ extendedElementsWithIssues, scanConte
55
55
  .filter((addedElementWithIssues) => addedElementWithIssues.element.isConnected)
56
56
  .map((addedElementWithIssues) => {
57
57
  const id = count++;
58
- const trigger = win.document.createElement(`${name}-trigger`);
59
- const elementZIndex = Number.parseInt(win.getComputedStyle(addedElementWithIssues.element).zIndex, 10);
58
+ const trigger = document.createElement(`${name}-trigger`);
59
+ const elementZIndex = Number.parseInt(getComputedStyle(addedElementWithIssues.element).zIndex, 10);
60
60
  if (!Number.isNaN(elementZIndex)) {
61
61
  trigger.style.setProperty('z-index', (elementZIndex + 1).toString(), 'important');
62
62
  }
63
63
  trigger.style.setProperty('position-anchor', `--${name}-anchor-${id}`, 'important');
64
64
  trigger.dataset.id = id.toString();
65
- const accentedDialog = win.document.createElement(`${name}-dialog`);
65
+ const accentedDialog = document.createElement(`${name}-dialog`);
66
66
  trigger.dialog = accentedDialog;
67
- const position = getElementPosition(addedElementWithIssues.element, win);
67
+ const position = getElementPosition(addedElementWithIssues.element);
68
68
  trigger.position = signal(position);
69
69
  trigger.visible = signal(true);
70
70
  trigger.element = addedElementWithIssues.element;
71
- const scrollableAncestors = supportsAnchorPositioning(win)
71
+ const scrollableAncestors = supportsAnchorPositioning()
72
72
  ? new Set()
73
- : getScrollableAncestors(addedElementWithIssues.element, win);
73
+ : getScrollableAncestors(addedElementWithIssues.element);
74
74
  const issues = signal(addedElementWithIssues.issues);
75
75
  accentedDialog.issues = issues;
76
76
  accentedDialog.element = addedElementWithIssues.element;
@@ -83,9 +83,7 @@ export function updateElementsWithIssues({ extendedElementsWithIssues, scanConte
83
83
  position: trigger.position,
84
84
  scrollableAncestors: signal(scrollableAncestors),
85
85
  anchorNameValue: addedElementWithIssues.element.style.getPropertyValue('anchor-name') ||
86
- win
87
- .getComputedStyle(addedElementWithIssues.element)
88
- .getPropertyValue('anchor-name'),
86
+ getComputedStyle(addedElementWithIssues.element).getPropertyValue('anchor-name'),
89
87
  trigger,
90
88
  issues,
91
89
  };
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "accented",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
4
4
  "description": "A frontend library for continuous accessibility testing and issue highlighting",
5
5
  "type": "module",
6
6
  "main": "dist/accented.js",
@@ -27,12 +27,12 @@
27
27
  },
28
28
  "homepage": "https://accented.dev",
29
29
  "dependencies": {
30
- "@preact/signals-core": "^1.11.0",
31
- "axe-core": "^4.10.3"
30
+ "@preact/signals-core": "^1.12.1",
31
+ "axe-core": "^4.11.0"
32
32
  },
33
33
  "devDependencies": {
34
- "@types/jsdom": "^21.1.7",
35
- "jsdom": "^26.1.0"
34
+ "@types/jsdom": "^27.0.0",
35
+ "jsdom": "^27.0.1"
36
36
  },
37
37
  "scripts": {
38
38
  "build": "pnpm copyCommon && tsc",
package/src/accented.ts CHANGED
@@ -100,10 +100,8 @@ export function accented(options: AccentedOptions = {}): DisableAccented {
100
100
  const cleanupDomUpdater = output.page ? createDomUpdater(name, intersectionObserver) : () => {};
101
101
  const cleanupLogger = output.console ? createLogger() : () => {};
102
102
  const cleanupScrollListeners = output.page ? setupScrollListeners() : () => {};
103
- const cleanupResizeListener = supportsAnchorPositioning(window)
104
- ? () => {}
105
- : setupResizeListener();
106
- const cleanupFullscreenListener = supportsAnchorPositioning(window)
103
+ const cleanupResizeListener = supportsAnchorPositioning() ? () => {} : setupResizeListener();
104
+ const cleanupFullscreenListener = supportsAnchorPositioning()
107
105
  ? () => {}
108
106
  : setupFullscreenListener();
109
107
 
@@ -61,13 +61,13 @@ export function createDomUpdater(name: string, intersectionObserver?: Intersecti
61
61
  }
62
62
  }
63
63
 
64
- function setIssues(extendedElementsWithIssues: Array<ExtendedElementWithIssues>) {
65
- for (const elementWithIssues of extendedElementsWithIssues) {
64
+ function setIssues(elementsWithIssues: Array<ExtendedElementWithIssues>) {
65
+ for (const elementWithIssues of elementsWithIssues) {
66
66
  if (elementWithIssues.skipRender) {
67
67
  continue;
68
68
  }
69
69
  elementWithIssues.element.setAttribute(attrName, elementWithIssues.id.toString());
70
- if (supportsAnchorPositioning(window)) {
70
+ if (supportsAnchorPositioning()) {
71
71
  setAnchorName(elementWithIssues);
72
72
  }
73
73
 
@@ -82,13 +82,13 @@ export function createDomUpdater(name: string, intersectionObserver?: Intersecti
82
82
  }
83
83
  }
84
84
 
85
- function removeIssues(extendedElementsWithIssues: Array<ExtendedElementWithIssues>) {
86
- for (const elementWithIssues of extendedElementsWithIssues) {
85
+ function removeIssues(elementsWithIssues: Array<ExtendedElementWithIssues>) {
86
+ for (const elementWithIssues of elementsWithIssues) {
87
87
  if (elementWithIssues.skipRender) {
88
88
  continue;
89
89
  }
90
90
  elementWithIssues.element.removeAttribute(attrName);
91
- if (supportsAnchorPositioning(window)) {
91
+ if (supportsAnchorPositioning()) {
92
92
  removeAnchorName(elementWithIssues);
93
93
  }
94
94
  elementWithIssues.trigger.remove();
@@ -140,10 +140,14 @@ export const getAccentedDialog = () => {
140
140
  color: var(--text-color);
141
141
  border: 2px solid currentColor;
142
142
  padding: var(--space-l);
143
- inline-size: min(90ch, calc(100% - var(--space-s)* 2));
143
+ inline-size: min(90ch, calc(100% - var(--space-s) * 2));
144
144
  max-block-size: calc(100% - var(--space-s) * 2);
145
145
 
146
146
  color-scheme: light dark;
147
+
148
+ &::backdrop {
149
+ pointer-events: none;
150
+ }
147
151
  }
148
152
 
149
153
  #button-container {
@@ -275,11 +279,11 @@ export const getAccentedDialog = () => {
275
279
  { signal: this.#abortController.signal },
276
280
  );
277
281
 
278
- dialog?.addEventListener(
282
+ document.addEventListener(
279
283
  'click',
280
284
  (event) => {
281
285
  try {
282
- this.#onDialogClick(event);
286
+ this.#onDocumentClick(event);
283
287
  } catch (error) {
284
288
  logAndRethrow(error);
285
289
  }
@@ -392,22 +396,17 @@ export const getAccentedDialog = () => {
392
396
  * is available in all supported browsers:
393
397
  * https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement/closedBy
394
398
  */
395
- #onDialogClick(event: MouseEvent) {
396
- const dialog = event.currentTarget as HTMLDialogElement;
397
- if (
398
- !dialog ||
399
- typeof dialog.getBoundingClientRect !== 'function' ||
400
- typeof dialog.close !== 'function'
401
- ) {
399
+ #onDocumentClick(event: MouseEvent) {
400
+ // If a click was anywhere in the dialog, the target will be
401
+ // the shadow host (this).
402
+ if (event.target === this) {
402
403
  return;
403
404
  }
404
- const rect = dialog.getBoundingClientRect();
405
- const isInsideDialog =
406
- event.clientX >= rect.left &&
407
- event.clientX <= rect.right &&
408
- event.clientY >= rect.top &&
409
- event.clientY <= rect.bottom;
410
- if (!isInsideDialog) {
405
+
406
+ // If the click was on the backdrop (the target in this case the HTML element),
407
+ // we want to close the dialog.
408
+ const dialog = this.shadowRoot?.querySelector('dialog');
409
+ if (dialog) {
411
410
  dialog.close();
412
411
  }
413
412
  }
@@ -30,7 +30,7 @@ export const getAccentedTrigger = (name: string) => {
30
30
  --base-size: max(1rem, 16px);
31
31
  position: fixed !important;
32
32
  ${
33
- supportsAnchorPositioning(window)
33
+ supportsAnchorPositioning()
34
34
  ? `
35
35
  inset-inline-start: anchor(self-start) !important;
36
36
  inset-inline-end: anchor(self-end) !important;
@@ -191,7 +191,7 @@ export const getAccentedTrigger = (name: string) => {
191
191
  { signal: this.#abortController.signal },
192
192
  );
193
193
 
194
- if (!supportsAnchorPositioning(window)) {
194
+ if (!supportsAnchorPositioning()) {
195
195
  this.#disposeOfPositionEffect = effect(() => {
196
196
  if (this.position && trigger) {
197
197
  const position = this.position.value;
@@ -18,8 +18,8 @@ export function setupIntersectionObserver() {
18
18
  // in an unexpected way when the container has `overflow: visible`.
19
19
  // So now we always set visibility in the intersection observer.
20
20
  extendedElementWithIssues.visible.value = entry.isIntersecting;
21
- if (entry.isIntersecting && !supportsAnchorPositioning(window)) {
22
- extendedElementWithIssues.position.value = getElementPosition(entry.target, window);
21
+ if (entry.isIntersecting && !supportsAnchorPositioning()) {
22
+ extendedElementWithIssues.position.value = getElementPosition(entry.target);
23
23
  }
24
24
  }
25
25
  }