accented 0.0.2 → 1.0.1

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 (217) hide show
  1. package/NOTICE +14 -0
  2. package/README.md +44 -187
  3. package/dist/accented.d.ts +8 -8
  4. package/dist/accented.d.ts.map +1 -1
  5. package/dist/accented.js +37 -30
  6. package/dist/accented.js.map +1 -1
  7. package/dist/common/strings.d.ts +2 -0
  8. package/dist/common/strings.d.ts.map +1 -0
  9. package/dist/common/strings.js +2 -0
  10. package/dist/common/strings.js.map +1 -0
  11. package/dist/common/tokens.d.ts +7 -0
  12. package/dist/common/tokens.d.ts.map +1 -0
  13. package/dist/common/tokens.js +8 -0
  14. package/dist/common/tokens.js.map +1 -0
  15. package/dist/constants.d.ts +2 -1
  16. package/dist/constants.d.ts.map +1 -1
  17. package/dist/constants.js +2 -1
  18. package/dist/constants.js.map +1 -1
  19. package/dist/dom-updater.d.ts +1 -1
  20. package/dist/dom-updater.d.ts.map +1 -1
  21. package/dist/dom-updater.js +73 -31
  22. package/dist/dom-updater.js.map +1 -1
  23. package/dist/elements/accented-dialog.d.ts +18 -10
  24. package/dist/elements/accented-dialog.d.ts.map +1 -1
  25. package/dist/elements/accented-dialog.js +116 -95
  26. package/dist/elements/accented-dialog.js.map +1 -1
  27. package/dist/elements/accented-trigger.d.ts +14 -9
  28. package/dist/elements/accented-trigger.d.ts.map +1 -1
  29. package/dist/elements/accented-trigger.js +83 -24
  30. package/dist/elements/accented-trigger.js.map +1 -1
  31. package/dist/fullscreen-listener.d.ts +2 -0
  32. package/dist/fullscreen-listener.d.ts.map +1 -0
  33. package/dist/fullscreen-listener.js +17 -0
  34. package/dist/fullscreen-listener.js.map +1 -0
  35. package/dist/intersection-observer.d.ts +1 -1
  36. package/dist/intersection-observer.d.ts.map +1 -1
  37. package/dist/intersection-observer.js +12 -6
  38. package/dist/intersection-observer.js.map +1 -1
  39. package/dist/log-and-rethrow.d.ts +1 -1
  40. package/dist/log-and-rethrow.d.ts.map +1 -1
  41. package/dist/log-and-rethrow.js +2 -3
  42. package/dist/log-and-rethrow.js.map +1 -1
  43. package/dist/logger.d.ts +4 -1
  44. package/dist/logger.d.ts.map +1 -1
  45. package/dist/logger.js +6 -3
  46. package/dist/logger.js.map +1 -1
  47. package/dist/register-elements.d.ts +1 -1
  48. package/dist/register-elements.d.ts.map +1 -1
  49. package/dist/register-elements.js +6 -7
  50. package/dist/register-elements.js.map +1 -1
  51. package/dist/resize-listener.d.ts +1 -1
  52. package/dist/resize-listener.d.ts.map +1 -1
  53. package/dist/resize-listener.js +3 -4
  54. package/dist/resize-listener.js.map +1 -1
  55. package/dist/scanner.d.ts +2 -2
  56. package/dist/scanner.d.ts.map +1 -1
  57. package/dist/scanner.js +76 -43
  58. package/dist/scanner.js.map +1 -1
  59. package/dist/scroll-listeners.d.ts +1 -1
  60. package/dist/scroll-listeners.d.ts.map +1 -1
  61. package/dist/scroll-listeners.js +3 -4
  62. package/dist/scroll-listeners.js.map +1 -1
  63. package/dist/state.d.ts +3 -2
  64. package/dist/state.d.ts.map +1 -1
  65. package/dist/state.js +5 -3
  66. package/dist/state.js.map +1 -1
  67. package/dist/task-queue.d.ts +4 -4
  68. package/dist/task-queue.d.ts.map +1 -1
  69. package/dist/task-queue.js +3 -2
  70. package/dist/task-queue.js.map +1 -1
  71. package/dist/types.d.ts +140 -49
  72. package/dist/types.d.ts.map +1 -1
  73. package/dist/types.js.map +1 -1
  74. package/dist/utils/are-elements-with-issues-equal.d.ts +3 -0
  75. package/dist/utils/are-elements-with-issues-equal.d.ts.map +1 -0
  76. package/dist/utils/are-elements-with-issues-equal.js +5 -0
  77. package/dist/utils/are-elements-with-issues-equal.js.map +1 -0
  78. package/dist/utils/are-issue-sets-equal.d.ts +2 -2
  79. package/dist/utils/are-issue-sets-equal.d.ts.map +1 -1
  80. package/dist/utils/are-issue-sets-equal.js +3 -3
  81. package/dist/utils/are-issue-sets-equal.js.map +1 -1
  82. package/dist/utils/containing-blocks.d.ts +3 -0
  83. package/dist/utils/containing-blocks.d.ts.map +1 -0
  84. package/dist/utils/containing-blocks.js +46 -0
  85. package/dist/utils/containing-blocks.js.map +1 -0
  86. package/dist/utils/contains.d.ts +2 -0
  87. package/dist/utils/contains.d.ts.map +1 -0
  88. package/dist/utils/contains.js +19 -0
  89. package/dist/utils/contains.js.map +1 -0
  90. package/dist/utils/deduplicate-nodes.d.ts +2 -0
  91. package/dist/utils/deduplicate-nodes.d.ts.map +1 -0
  92. package/dist/utils/deduplicate-nodes.js +4 -0
  93. package/dist/utils/deduplicate-nodes.js.map +1 -0
  94. package/dist/utils/deep-merge.d.ts +1 -1
  95. package/dist/utils/deep-merge.d.ts.map +1 -1
  96. package/dist/utils/deep-merge.js +8 -5
  97. package/dist/utils/deep-merge.js.map +1 -1
  98. package/dist/utils/dom-helpers.d.ts +9 -0
  99. package/dist/utils/dom-helpers.d.ts.map +1 -0
  100. package/dist/utils/dom-helpers.js +34 -0
  101. package/dist/utils/dom-helpers.js.map +1 -0
  102. package/dist/utils/ensure-non-empty.d.ts +2 -0
  103. package/dist/utils/ensure-non-empty.d.ts.map +1 -0
  104. package/dist/utils/ensure-non-empty.js +7 -0
  105. package/dist/utils/ensure-non-empty.js.map +1 -0
  106. package/dist/utils/get-element-html.d.ts +1 -1
  107. package/dist/utils/get-element-html.d.ts.map +1 -1
  108. package/dist/utils/get-element-html.js +4 -2
  109. package/dist/utils/get-element-html.js.map +1 -1
  110. package/dist/utils/get-element-position.d.ts +10 -2
  111. package/dist/utils/get-element-position.d.ts.map +1 -1
  112. package/dist/utils/get-element-position.js +64 -16
  113. package/dist/utils/get-element-position.js.map +1 -1
  114. package/dist/utils/get-parent.d.ts +2 -0
  115. package/dist/utils/get-parent.d.ts.map +1 -0
  116. package/dist/utils/get-parent.js +12 -0
  117. package/dist/utils/get-parent.js.map +1 -0
  118. package/dist/utils/get-scan-context.d.ts +3 -0
  119. package/dist/utils/get-scan-context.d.ts.map +1 -0
  120. package/dist/utils/get-scan-context.js +28 -0
  121. package/dist/utils/get-scan-context.js.map +1 -0
  122. package/dist/utils/get-scrollable-ancestors.d.ts +1 -1
  123. package/dist/utils/get-scrollable-ancestors.d.ts.map +1 -1
  124. package/dist/utils/get-scrollable-ancestors.js +10 -6
  125. package/dist/utils/get-scrollable-ancestors.js.map +1 -1
  126. package/dist/utils/is-node-in-scan-context.d.ts +3 -0
  127. package/dist/utils/is-node-in-scan-context.d.ts.map +1 -0
  128. package/dist/utils/is-node-in-scan-context.js +26 -0
  129. package/dist/utils/is-node-in-scan-context.js.map +1 -0
  130. package/dist/utils/is-non-empty.d.ts +2 -0
  131. package/dist/utils/is-non-empty.d.ts.map +1 -0
  132. package/dist/utils/is-non-empty.js +4 -0
  133. package/dist/utils/is-non-empty.js.map +1 -0
  134. package/dist/utils/normalize-context.d.ts +3 -0
  135. package/dist/utils/normalize-context.d.ts.map +1 -0
  136. package/dist/utils/normalize-context.js +59 -0
  137. package/dist/utils/normalize-context.js.map +1 -0
  138. package/dist/utils/recalculate-positions.d.ts +1 -1
  139. package/dist/utils/recalculate-positions.d.ts.map +1 -1
  140. package/dist/utils/recalculate-positions.js +5 -5
  141. package/dist/utils/recalculate-positions.js.map +1 -1
  142. package/dist/utils/recalculate-scrollable-ancestors.d.ts +1 -1
  143. package/dist/utils/recalculate-scrollable-ancestors.d.ts.map +1 -1
  144. package/dist/utils/recalculate-scrollable-ancestors.js +4 -4
  145. package/dist/utils/recalculate-scrollable-ancestors.js.map +1 -1
  146. package/dist/utils/shadow-dom-aware-mutation-observer.d.ts +10 -0
  147. package/dist/utils/shadow-dom-aware-mutation-observer.d.ts.map +1 -0
  148. package/dist/utils/shadow-dom-aware-mutation-observer.js +61 -0
  149. package/dist/utils/shadow-dom-aware-mutation-observer.js.map +1 -0
  150. package/dist/utils/supports-anchor-positioning.d.ts +1 -1
  151. package/dist/utils/supports-anchor-positioning.d.ts.map +1 -1
  152. package/dist/utils/supports-anchor-positioning.js +15 -2
  153. package/dist/utils/supports-anchor-positioning.js.map +1 -1
  154. package/dist/utils/transform-violations.d.ts +2 -2
  155. package/dist/utils/transform-violations.d.ts.map +1 -1
  156. package/dist/utils/transform-violations.js +25 -10
  157. package/dist/utils/transform-violations.js.map +1 -1
  158. package/dist/utils/update-elements-with-issues.d.ts +11 -5
  159. package/dist/utils/update-elements-with-issues.d.ts.map +1 -1
  160. package/dist/utils/update-elements-with-issues.js +56 -24
  161. package/dist/utils/update-elements-with-issues.js.map +1 -1
  162. package/dist/validate-options.d.ts +2 -2
  163. package/dist/validate-options.d.ts.map +1 -1
  164. package/dist/validate-options.js +91 -4
  165. package/dist/validate-options.js.map +1 -1
  166. package/package.json +16 -8
  167. package/src/accented.test.ts +2 -2
  168. package/src/accented.ts +45 -34
  169. package/src/common/strings.ts +2 -0
  170. package/src/common/tokens.ts +10 -0
  171. package/src/constants.ts +2 -1
  172. package/src/dom-updater.ts +87 -34
  173. package/src/elements/accented-dialog.ts +163 -123
  174. package/src/elements/accented-trigger.ts +128 -50
  175. package/src/fullscreen-listener.ts +21 -0
  176. package/src/intersection-observer.ts +27 -16
  177. package/src/log-and-rethrow.ts +2 -3
  178. package/src/logger.ts +14 -4
  179. package/src/register-elements.ts +7 -7
  180. package/src/resize-listener.ts +15 -11
  181. package/src/scanner.ts +113 -57
  182. package/src/scroll-listeners.ts +27 -19
  183. package/src/state.ts +27 -16
  184. package/src/task-queue.test.ts +5 -4
  185. package/src/task-queue.ts +8 -6
  186. package/src/types.ts +179 -76
  187. package/src/utils/are-elements-with-issues-equal.ts +11 -0
  188. package/src/utils/are-issue-sets-equal.test.ts +6 -7
  189. package/src/utils/are-issue-sets-equal.ts +8 -6
  190. package/src/utils/containing-blocks.ts +60 -0
  191. package/src/utils/contains.test.ts +54 -0
  192. package/src/utils/contains.ts +19 -0
  193. package/src/utils/deduplicate-nodes.ts +3 -0
  194. package/src/utils/deep-merge.test.ts +8 -1
  195. package/src/utils/deep-merge.ts +14 -8
  196. package/src/utils/dom-helpers.ts +42 -0
  197. package/src/utils/ensure-non-empty.ts +6 -0
  198. package/src/utils/get-element-html.ts +4 -2
  199. package/src/utils/get-element-position.ts +84 -16
  200. package/src/utils/get-parent.ts +14 -0
  201. package/src/utils/get-scan-context.test.ts +85 -0
  202. package/src/utils/get-scan-context.ts +36 -0
  203. package/src/utils/get-scrollable-ancestors.ts +15 -7
  204. package/src/utils/is-node-in-scan-context.test.ts +70 -0
  205. package/src/utils/is-node-in-scan-context.ts +29 -0
  206. package/src/utils/is-non-empty.ts +3 -0
  207. package/src/utils/normalize-context.test.ts +105 -0
  208. package/src/utils/normalize-context.ts +65 -0
  209. package/src/utils/recalculate-positions.ts +5 -5
  210. package/src/utils/recalculate-scrollable-ancestors.ts +4 -4
  211. package/src/utils/shadow-dom-aware-mutation-observer.ts +75 -0
  212. package/src/utils/supports-anchor-positioning.ts +19 -3
  213. package/src/utils/transform-violations.test.ts +29 -25
  214. package/src/utils/transform-violations.ts +32 -12
  215. package/src/utils/update-elements-with-issues.test.ts +145 -53
  216. package/src/utils/update-elements-with-issues.ts +123 -54
  217. package/src/validate-options.ts +154 -14
@@ -1,16 +1,40 @@
1
1
  import { effect } from '@preact/signals-core';
2
- import { extendedElementsWithIssues } from './state.js';
3
- import supportsAnchorPositioning from './utils/supports-anchor-positioning.js';
4
- export default function createDomUpdater(name, intersectionObserver) {
2
+ import { primaryColorDark } from './common/tokens.js';
3
+ import { extendedElementsWithIssues, rootNodes } from './state.js';
4
+ import { areElementsWithIssuesEqual } from './utils/are-elements-with-issues-equal.js';
5
+ import { isDocument, isDocumentFragment, isShadowRoot } from './utils/dom-helpers.js';
6
+ import { getParent } from './utils/get-parent.js';
7
+ import { supportsAnchorPositioning } from './utils/supports-anchor-positioning.js';
8
+ const shouldInsertTriggerInsideElement = (element) => {
9
+ /**
10
+ * No parent means that the element is a root node,
11
+ * which cannot have siblings.
12
+ */
13
+ const noParent = !getParent(element);
14
+ /**
15
+ * Table cells get a special treatment because if a sibling to a TH or TD is inserted,
16
+ * it alters the table layout, no matter how that sibling is positioned.
17
+ * We don't want tables to look broken, so we're inserting the trigger inside the table cell.
18
+ */
19
+ const isTableCell = element.nodeName === 'TH' || element.nodeName === 'TD';
20
+ /**
21
+ * We want to put the trigger inside the <summary> element,
22
+ * because otherwise it will be hidden by the browser when the <details> element is collapsed
23
+ * (since none of the siblings of <summary> are visible then).
24
+ */
25
+ const isSummary = element.nodeName === 'SUMMARY';
26
+ return noParent || isTableCell || isSummary;
27
+ };
28
+ export function createDomUpdater(name, intersectionObserver) {
5
29
  const attrName = `data-${name}`;
6
30
  function getAnchorNames(anchorNameValue) {
7
31
  return anchorNameValue
8
32
  .split(',')
9
- .map(anchorName => anchorName.trim())
10
- .filter(anchorName => anchorName.startsWith('--'));
33
+ .map((anchorName) => anchorName.trim())
34
+ .filter((anchorName) => anchorName.startsWith('--'));
11
35
  }
12
- function setAnchorName(element, id) {
13
- const anchorNameValue = element.style.getPropertyValue('anchor-name') || window.getComputedStyle(element).getPropertyValue('anchor-name');
36
+ function setAnchorName(elementWithIssues) {
37
+ const { element, id, anchorNameValue } = elementWithIssues;
14
38
  const anchorNames = getAnchorNames(anchorNameValue);
15
39
  if (anchorNames.length > 0) {
16
40
  element.style.setProperty('anchor-name', `${anchorNameValue}, --${name}-anchor-${id}`);
@@ -19,28 +43,30 @@ export default function createDomUpdater(name, intersectionObserver) {
19
43
  element.style.setProperty('anchor-name', `--${name}-anchor-${id}`);
20
44
  }
21
45
  }
22
- function removeAnchorName(element, id) {
23
- const anchorNameValue = element.style.getPropertyValue('anchor-name');
46
+ function removeAnchorName(elementWithIssues) {
47
+ const { element, anchorNameValue } = elementWithIssues;
24
48
  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');
49
+ if (anchorNames.length > 0) {
50
+ element.style.setProperty('anchor-name', anchorNames.join(', '));
28
51
  }
29
- else if (anchorNames.length > 1 && index > -1) {
30
- element.style.setProperty('anchor-name', anchorNames.filter((_, i) => i !== index).join(', '));
52
+ else {
53
+ element.style.removeProperty('anchor-name');
31
54
  }
32
55
  }
33
56
  function setIssues(extendedElementsWithIssues) {
34
57
  for (const elementWithIssues of extendedElementsWithIssues) {
58
+ if (elementWithIssues.skipRender) {
59
+ continue;
60
+ }
35
61
  elementWithIssues.element.setAttribute(attrName, elementWithIssues.id.toString());
36
62
  if (supportsAnchorPositioning(window)) {
37
- setAnchorName(elementWithIssues.element, elementWithIssues.id);
63
+ setAnchorName(elementWithIssues);
38
64
  }
39
- if (elementWithIssues.element.parentElement) {
40
- elementWithIssues.element.insertAdjacentElement('afterend', elementWithIssues.trigger);
65
+ if (shouldInsertTriggerInsideElement(elementWithIssues.element)) {
66
+ elementWithIssues.element.insertAdjacentElement('beforeend', elementWithIssues.trigger);
41
67
  }
42
68
  else {
43
- elementWithIssues.element.insertAdjacentElement('beforeend', elementWithIssues.trigger);
69
+ elementWithIssues.element.insertAdjacentElement('afterend', elementWithIssues.trigger);
44
70
  }
45
71
  if (intersectionObserver) {
46
72
  intersectionObserver.observe(elementWithIssues.element);
@@ -49,9 +75,12 @@ export default function createDomUpdater(name, intersectionObserver) {
49
75
  }
50
76
  function removeIssues(extendedElementsWithIssues) {
51
77
  for (const elementWithIssues of extendedElementsWithIssues) {
78
+ if (elementWithIssues.skipRender) {
79
+ continue;
80
+ }
52
81
  elementWithIssues.element.removeAttribute(attrName);
53
82
  if (supportsAnchorPositioning(window)) {
54
- removeAnchorName(elementWithIssues.element, elementWithIssues.id);
83
+ removeAnchorName(elementWithIssues);
55
84
  }
56
85
  elementWithIssues.trigger.remove();
57
86
  if (intersectionObserver) {
@@ -63,8 +92,10 @@ export default function createDomUpdater(name, intersectionObserver) {
63
92
  stylesheet.replaceSync(`
64
93
  @layer ${name} {
65
94
  :root {
66
- --${name}-primary-color: red;
67
- --${name}-secondary-color: white;
95
+ /* Ensure that the primary / secondary color combination meets WCAG 1.4.3 Contrast (Minimum) */
96
+ /* OKLCH stuff: https://oklch.com/ */
97
+ --${name}-primary-color: ${primaryColorDark};
98
+ --${name}-secondary-color: oklch(0.98 0 0);
68
99
  --${name}-outline-width: 2px;
69
100
  --${name}-outline-style: solid;
70
101
  }
@@ -78,25 +109,36 @@ export default function createDomUpdater(name, intersectionObserver) {
78
109
  }
79
110
  `);
80
111
  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);
112
+ let previousRootNodes = new Set();
113
+ const disposeOfStyleSheetsEffect = effect(() => {
114
+ const newRootNodes = rootNodes.value;
115
+ const addedRootNodes = [...newRootNodes].filter((rootNode) => !previousRootNodes.has(rootNode));
116
+ const removedRootNodes = [...previousRootNodes].filter((rootNode) => !newRootNodes.has(rootNode));
117
+ for (const rootNode of addedRootNodes) {
118
+ if (isDocument(rootNode) || (isDocumentFragment(rootNode) && isShadowRoot(rootNode))) {
119
+ rootNode.adoptedStyleSheets.push(stylesheet);
120
+ }
85
121
  }
86
- };
122
+ for (const rootNode of removedRootNodes) {
123
+ if (isDocument(rootNode) || (isDocumentFragment(rootNode) && isShadowRoot(rootNode))) {
124
+ rootNode.adoptedStyleSheets.splice(rootNode.adoptedStyleSheets.indexOf(stylesheet), 1);
125
+ }
126
+ }
127
+ previousRootNodes = newRootNodes;
128
+ });
87
129
  const disposeOfElementsEffect = effect(() => {
88
- const added = extendedElementsWithIssues.value.filter(elementWithIssues => {
89
- return !previousExtendedElementsWithIssues.some(previousElementWithIssues => previousElementWithIssues.element === elementWithIssues.element);
130
+ const added = extendedElementsWithIssues.value.filter((elementWithIssues) => {
131
+ return !previousExtendedElementsWithIssues.some((previousElementWithIssues) => areElementsWithIssuesEqual(previousElementWithIssues, elementWithIssues));
90
132
  });
91
- const removed = previousExtendedElementsWithIssues.filter(previousElementWithIssues => {
92
- return !extendedElementsWithIssues.value.some(elementWithIssues => elementWithIssues.element === previousElementWithIssues.element);
133
+ const removed = previousExtendedElementsWithIssues.filter((previousElementWithIssues) => {
134
+ return !extendedElementsWithIssues.value.some((elementWithIssues) => areElementsWithIssuesEqual(elementWithIssues, previousElementWithIssues));
93
135
  });
94
136
  removeIssues(removed);
95
137
  setIssues(added);
96
138
  previousExtendedElementsWithIssues = [...extendedElementsWithIssues.value];
97
139
  });
98
140
  return () => {
99
- removeStylesheet();
141
+ disposeOfStyleSheetsEffect();
100
142
  disposeOfElementsEffect();
101
143
  };
102
144
  }
@@ -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,20 +1,25 @@
1
- import type { Issue } from '../types';
2
1
  import type { Signal } from '@preact/signals-core';
2
+ import type { Issue } from '../types.ts';
3
3
  export interface AccentedDialog extends HTMLElement {
4
4
  issues: Signal<Array<Issue>> | undefined;
5
5
  element: Element | undefined;
6
6
  showModal: () => void;
7
+ open: boolean;
7
8
  }
8
- declare const _default: () => {
9
+ export declare const getAccentedDialog: () => {
9
10
  new (): {
10
- "__#1@#disposeOfEffect": (() => void) | undefined;
11
11
  "__#1@#abortController": AbortController | undefined;
12
12
  issues: Signal<Array<Issue>> | undefined;
13
13
  element: Element | undefined;
14
- "__#1@#elementMutationObserver": MutationObserver | undefined;
14
+ open: boolean;
15
15
  connectedCallback(): void;
16
16
  disconnectedCallback(): void;
17
17
  showModal(): void;
18
+ /**
19
+ * This can be removed once the closedBy attribute
20
+ * is available in all supported browsers:
21
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement/closedBy
22
+ */
18
23
  "__#1@#onDialogClick"(event: MouseEvent): void;
19
24
  accessKey: string;
20
25
  readonly accessKeyLabel: string;
@@ -40,13 +45,14 @@ declare const _default: () => {
40
45
  click(): void;
41
46
  hidePopover(): void;
42
47
  showPopover(): void;
43
- togglePopover(force?: boolean): boolean;
48
+ togglePopover(options?: boolean): boolean;
44
49
  addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
45
50
  addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
46
51
  removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
47
52
  removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
48
53
  readonly attributes: NamedNodeMap;
49
- readonly classList: DOMTokenList;
54
+ get classList(): DOMTokenList;
55
+ set classList(value: string);
50
56
  className: string;
51
57
  readonly clientHeight: number;
52
58
  readonly clientLeft: number;
@@ -61,7 +67,8 @@ declare const _default: () => {
61
67
  onfullscreenerror: ((this: Element, ev: Event) => any) | null;
62
68
  outerHTML: string;
63
69
  readonly ownerDocument: Document;
64
- readonly part: DOMTokenList;
70
+ get part(): DOMTokenList;
71
+ set part(value: string);
65
72
  readonly prefix: string | null;
66
73
  readonly scrollHeight: number;
67
74
  scrollLeft: number;
@@ -138,7 +145,7 @@ declare const _default: () => {
138
145
  readonly previousSibling: ChildNode | null;
139
146
  textContent: string | null;
140
147
  appendChild<T extends Node>(node: T): T;
141
- cloneNode(deep?: boolean): Node;
148
+ cloneNode(subtree?: boolean): Node;
142
149
  compareDocumentPosition(other: Node): number;
143
150
  contains(other: Node | null): boolean;
144
151
  getRootNode(options?: GetRootNodeOptions): Node;
@@ -200,6 +207,7 @@ declare const _default: () => {
200
207
  ariaPosInSet: string | null;
201
208
  ariaPressed: string | null;
202
209
  ariaReadOnly: string | null;
210
+ ariaRelevant: string | null;
203
211
  ariaRequired: string | null;
204
212
  ariaRoleDescription: string | null;
205
213
  ariaRowCount: string | null;
@@ -241,7 +249,8 @@ declare const _default: () => {
241
249
  replaceChildren(...nodes: (Node | string)[]): void;
242
250
  readonly assignedSlot: HTMLSlotElement | null;
243
251
  readonly attributeStyleMap: StylePropertyMap;
244
- readonly style: CSSStyleDeclaration;
252
+ get style(): CSSStyleDeclaration;
253
+ set style(cssText: string);
245
254
  contentEditable: string;
246
255
  enterKeyHint: string;
247
256
  inputMode: string;
@@ -352,5 +361,4 @@ declare const _default: () => {
352
361
  focus(options?: FocusOptions): void;
353
362
  };
354
363
  };
355
- export default _default;
356
364
  //# sourceMappingURL=accented-dialog.d.ts.map
@@ -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,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAInD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIzC,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;IACtB,IAAI,EAAE,OAAO,CAAC;CACf;AAID,eAAO,MAAM,iBAAiB;;iCAoOR,eAAe,GAAG,SAAS;gBAErC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS;iBAE/B,OAAO,GAAG,SAAS;;;;;QAqJ5B;;;;WAIG;qCACmB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBnC,CAAC"}
@@ -1,13 +1,14 @@
1
- import { effect } from '@preact/signals-core';
2
- import getElementHtml from '../utils/get-element-html.js';
1
+ import { colorDark, colorLight, fontSystemMono, fontSystemSans } from '../common/tokens.js';
3
2
  import { accentedUrl } from '../constants.js';
4
- import logAndRethrow from '../log-and-rethrow.js';
3
+ import { logAndRethrow } from '../log-and-rethrow.js';
4
+ import { getElementHtml } from '../utils/get-element-html.js';
5
+ import { isNonEmpty } from '../utils/is-non-empty.js';
5
6
  // We want Accented to not throw an error in Node, and use static imports,
6
7
  // so we can't export `class extends HTMLElement` because HTMLElement is not available in Node.
7
- export default () => {
8
+ export const getAccentedDialog = () => {
8
9
  const dialogTemplate = document.createElement('template');
9
10
  dialogTemplate.innerHTML = `
10
- <dialog dir="ltr" lang="en" aria-labelledby="title">
11
+ <dialog dir="ltr" lang="en" aria-labelledby="title" closedby="any">
11
12
  <div id="button-container">
12
13
  <button id="close" aria-label="Close">✕</button>
13
14
  </div>
@@ -44,20 +45,45 @@ export default () => {
44
45
  :host {
45
46
  all: initial !important;
46
47
 
47
- --light-color: white;
48
- --dark-color: black;
49
- --focus-color: #0078d4; /* Contrasts with both white and black. */
48
+ /* OKLCH stuff: https://oklch.com/ */
49
+ --light-color: ${colorLight};
50
+ --dark-color: ${colorDark};
50
51
 
51
- --impact-minor-color: lightgray;
52
- --impact-moderate-color: gold;
53
- --impact-serious-color: #ff9e00;
54
- --impact-critical-color: #f883ec;
52
+ --background-color: light-dark(var(--light-color), var(--dark-color));
53
+ --text-color: light-dark(var(--dark-color), var(--light-color));
54
+
55
+ --impact-lightness: 0.80;
56
+ --focus-lightness: 0.45;
57
+ @media (prefers-color-scheme: dark) {
58
+ --impact-lightness: 0.45;
59
+ --focus-lightness: 0.80;
60
+ }
61
+
62
+ --blue-hue: 230;
63
+ --gold-hue: 90;
64
+ --red-hue: 0;
65
+
66
+ /* Contrasts with background. */
67
+ --focus-color: oklch(var(--focus-lightness) 0.25 var(--blue-hue));
68
+
69
+ --impact-chroma: 0.16;
70
+
71
+ --impact-moderate-hue: var(--blue-hue);
72
+ --impact-serious-hue: var(--gold-hue);
73
+ --impact-critical-hue: var(--red-hue);
74
+
75
+ --impact-minor-color: oklch(var(--impact-lightness) 0 0);
76
+ --impact-moderate-color: oklch(var(--impact-lightness) var(--impact-chroma) var(--impact-moderate-hue));
77
+ --impact-serious-color: oklch(var(--impact-lightness) var(--impact-chroma) var(--impact-serious-hue));
78
+ --impact-critical-color: oklch(var(--impact-lightness) var(--impact-chroma) var(--impact-critical-hue));
79
+
80
+ --base-size: max(1rem, 16px);
55
81
 
56
82
  /* Spacing and typography custom props, inspired by https://utopia.fyi (simplified). */
57
83
 
58
84
  /* @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
85
  --ratio: 1.2;
60
- --step-0: 1rem;
86
+ --step-0: var(--base-size);
61
87
  --step-1: calc(var(--step-0) * var(--ratio));
62
88
  --step-2: calc(var(--step-1) * var(--ratio));
63
89
  --step-3: calc(var(--step-2) * var(--ratio));
@@ -65,15 +91,15 @@ export default () => {
65
91
  --step--1: calc(var(--step-0) / var(--ratio));
66
92
 
67
93
  /* @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;
94
+ --space-3xs: calc(0.25 * var(--base-size));
95
+ --space-2xs: calc(0.5 * var(--base-size));
96
+ --space-xs: calc(0.75 * var(--base-size));
97
+ --space-s: var(--base-size);
98
+ --space-m: calc(1.5 * var(--base-size));
99
+ --space-l: calc(2 * var(--base-size));
100
+ --space-xl: calc(3 * var(--base-size));
101
+ --space-2xl: calc(4 * var(--base-size));
102
+ --space-3xl: calc(6 * var(--base-size));
77
103
  }
78
104
 
79
105
  a[href], button {
@@ -86,6 +112,7 @@ export default () => {
86
112
  outline-style: solid;
87
113
  }
88
114
 
115
+ /* We should probably be comfortable with showing these styles on non-hover devices. */
89
116
  &:hover:not(:focus-visible) {
90
117
  outline-style: dashed;
91
118
  }
@@ -102,14 +129,17 @@ export default () => {
102
129
  dialog {
103
130
  box-sizing: border-box;
104
131
  overflow-wrap: break-word;
105
- font-family: system-ui;
132
+ font-family: ${fontSystemSans};
106
133
  line-height: 1.5;
107
- background-color: var(--light-color);
108
- color: var(--dark-color);
134
+ text-wrap: pretty;
135
+ background-color: var(--background-color);
136
+ color: var(--text-color);
109
137
  border: 2px solid currentColor;
110
138
  padding: var(--space-l);
111
139
  inline-size: min(90ch, calc(100% - var(--space-s)* 2));
112
140
  max-block-size: calc(100% - var(--space-s) * 2);
141
+
142
+ color-scheme: light dark;
113
143
  }
114
144
 
115
145
  #button-container {
@@ -117,8 +147,8 @@ export default () => {
117
147
  }
118
148
 
119
149
  #close {
120
- background-color: var(--light-color);
121
- color: var(--dark-color);
150
+ background-color: var(--background-color);
151
+ color: var(--text-color);
122
152
  border: 2px solid currentColor;
123
153
  padding-inline: var(--space-2xs);
124
154
  aspect-ratio: 1 / 1;
@@ -139,8 +169,7 @@ export default () => {
139
169
  }
140
170
 
141
171
  code {
142
- /* https://systemfontstack.com/ */
143
- font-family: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace;
172
+ font-family: ${fontSystemMono};
144
173
  font-size: var(--step--1);
145
174
  }
146
175
 
@@ -155,7 +184,7 @@ export default () => {
155
184
  }
156
185
 
157
186
  a {
158
- font-weight: bold;
187
+ font-weight: 500;
159
188
  }
160
189
  }
161
190
 
@@ -200,14 +229,13 @@ export default () => {
200
229
  }
201
230
  `);
202
231
  return class extends HTMLElement {
203
- #disposeOfEffect;
204
232
  #abortController;
205
233
  issues;
206
234
  element;
207
- #elementMutationObserver;
235
+ open = false;
208
236
  constructor() {
237
+ super();
209
238
  try {
210
- super();
211
239
  this.attachShadow({ mode: 'open' });
212
240
  const content = dialogTemplate.content.cloneNode(true);
213
241
  if (this.shadowRoot) {
@@ -242,70 +270,61 @@ export default () => {
242
270
  logAndRethrow(error);
243
271
  }
244
272
  }, { signal: this.#abortController.signal });
245
- this.#disposeOfEffect = effect(() => {
246
- if (this.issues) {
247
- const issues = this.issues.value;
248
- const issuesList = shadowRoot.getElementById('issues');
249
- if (issuesList) {
250
- issuesList.innerHTML = '';
251
- for (const issue of issues) {
252
- const issueContent = issueTemplate.content.cloneNode(true);
253
- const title = issueContent.querySelector('a');
254
- const impact = issueContent.querySelector('.impact');
255
- const description = issueContent.querySelector('.description');
256
- if (title && impact && description) {
257
- title.textContent = issue.title + ' (' + issue.id + ')';
258
- title.href = issue.url;
259
- impact.textContent = 'User impact: ' + issue.impact;
260
- impact.setAttribute('data-impact', String(issue.impact));
261
- const descriptionItems = issue.description.split(/\n\s*/);
262
- const descriptionContent = descriptionTemplate.content.cloneNode(true);
263
- const descriptionTitle = descriptionContent.querySelector('span');
264
- const descriptionList = descriptionContent.querySelector('ul');
265
- if (descriptionTitle && descriptionList && descriptionItems.length > 1) {
266
- descriptionTitle.textContent = descriptionItems[0];
267
- for (const descriptionItem of descriptionItems.slice(1)) {
268
- const li = document.createElement('li');
269
- li.textContent = descriptionItem;
270
- descriptionList.appendChild(li);
271
- }
272
- description.appendChild(descriptionContent);
273
- }
274
- }
275
- issuesList.appendChild(issueContent);
276
- }
277
- }
278
- }
279
- });
280
- const updateElementHtml = () => {
281
- if (this.element) {
282
- const elementHtmlContainer = shadowRoot.getElementById('element-html');
283
- if (elementHtmlContainer) {
284
- elementHtmlContainer.textContent = getElementHtml(this.element);
285
- }
286
- }
287
- };
288
- updateElementHtml();
289
- this.#elementMutationObserver = new MutationObserver(() => {
273
+ dialog?.addEventListener('keydown', (event) => {
290
274
  try {
291
- updateElementHtml();
275
+ if (event.key === 'Escape') {
276
+ event.stopPropagation();
277
+ }
292
278
  }
293
279
  catch (error) {
294
280
  logAndRethrow(error);
295
281
  }
296
- });
282
+ }, { signal: this.#abortController.signal });
283
+ if (this.issues) {
284
+ const issues = this.issues.value;
285
+ const issuesList = shadowRoot.getElementById('issues');
286
+ if (issuesList) {
287
+ issuesList.innerHTML = '';
288
+ for (const issue of issues) {
289
+ const issueContent = issueTemplate.content.cloneNode(true);
290
+ const title = issueContent.querySelector('a');
291
+ const impact = issueContent.querySelector('.impact');
292
+ const description = issueContent.querySelector('.description');
293
+ if (title && impact && description) {
294
+ title.textContent = `${issue.title} (${issue.id})`;
295
+ title.href = issue.url;
296
+ impact.textContent = `User impact: ${issue.impact}`;
297
+ impact.setAttribute('data-impact', String(issue.impact));
298
+ const descriptionItems = issue.description.split(/\n\s*/);
299
+ const descriptionContent = descriptionTemplate.content.cloneNode(true);
300
+ const descriptionTitle = descriptionContent.querySelector('span');
301
+ const descriptionList = descriptionContent.querySelector('ul');
302
+ if (descriptionTitle &&
303
+ descriptionList &&
304
+ isNonEmpty(descriptionItems) &&
305
+ descriptionItems.length > 1) {
306
+ descriptionTitle.textContent = descriptionItems[0];
307
+ for (const descriptionItem of descriptionItems.slice(1)) {
308
+ const li = document.createElement('li');
309
+ li.textContent = descriptionItem;
310
+ descriptionList.appendChild(li);
311
+ }
312
+ description.appendChild(descriptionContent);
313
+ }
314
+ }
315
+ issuesList.appendChild(issueContent);
316
+ }
317
+ }
318
+ }
297
319
  if (this.element) {
298
- // We're only outputting the element itself, not its subtree.
299
- // However, we're still listening for childList changes, because
300
- // we display an ellipsis if the element has innerHTML,
301
- // and we leave it empty if the element is empty.
302
- this.#elementMutationObserver.observe(this.element, {
303
- attributes: true,
304
- childList: true
305
- });
320
+ const elementHtmlContainer = shadowRoot.getElementById('element-html');
321
+ if (elementHtmlContainer) {
322
+ elementHtmlContainer.textContent = getElementHtml(this.element);
323
+ }
306
324
  }
307
325
  dialog?.addEventListener('close', () => {
308
326
  try {
327
+ this.open = false;
309
328
  this.dispatchEvent(new Event('close'));
310
329
  }
311
330
  catch (error) {
@@ -320,15 +339,9 @@ export default () => {
320
339
  }
321
340
  disconnectedCallback() {
322
341
  try {
323
- if (this.#disposeOfEffect) {
324
- this.#disposeOfEffect();
325
- }
326
342
  if (this.#abortController) {
327
343
  this.#abortController.abort();
328
344
  }
329
- if (this.#elementMutationObserver) {
330
- this.#elementMutationObserver.disconnect();
331
- }
332
345
  }
333
346
  catch (error) {
334
347
  logAndRethrow(error);
@@ -339,12 +352,20 @@ export default () => {
339
352
  const dialog = this.shadowRoot.querySelector('dialog');
340
353
  if (dialog) {
341
354
  dialog.showModal();
355
+ this.open = true;
342
356
  }
343
357
  }
344
358
  }
359
+ /**
360
+ * This can be removed once the closedBy attribute
361
+ * is available in all supported browsers:
362
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement/closedBy
363
+ */
345
364
  #onDialogClick(event) {
346
365
  const dialog = event.currentTarget;
347
- if (!dialog || typeof dialog.getBoundingClientRect !== 'function' || typeof dialog.close !== 'function') {
366
+ if (!dialog ||
367
+ typeof dialog.getBoundingClientRect !== 'function' ||
368
+ typeof dialog.close !== 'function') {
348
369
  return;
349
370
  }
350
371
  const rect = dialog.getBoundingClientRect();
@@ -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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"}