accented 0.0.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) 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/tokens.d.ts +7 -0
  8. package/dist/common/tokens.d.ts.map +1 -0
  9. package/dist/common/tokens.js +8 -0
  10. package/dist/common/tokens.js.map +1 -0
  11. package/dist/constants.d.ts +2 -1
  12. package/dist/constants.d.ts.map +1 -1
  13. package/dist/constants.js +2 -1
  14. package/dist/constants.js.map +1 -1
  15. package/dist/dom-updater.d.ts +1 -1
  16. package/dist/dom-updater.d.ts.map +1 -1
  17. package/dist/dom-updater.js +73 -31
  18. package/dist/dom-updater.js.map +1 -1
  19. package/dist/elements/accented-dialog.d.ts +13 -10
  20. package/dist/elements/accented-dialog.d.ts.map +1 -1
  21. package/dist/elements/accented-dialog.js +110 -94
  22. package/dist/elements/accented-dialog.js.map +1 -1
  23. package/dist/elements/accented-trigger.d.ts +14 -9
  24. package/dist/elements/accented-trigger.d.ts.map +1 -1
  25. package/dist/elements/accented-trigger.js +77 -22
  26. package/dist/elements/accented-trigger.js.map +1 -1
  27. package/dist/fullscreen-listener.d.ts +2 -0
  28. package/dist/fullscreen-listener.d.ts.map +1 -0
  29. package/dist/fullscreen-listener.js +17 -0
  30. package/dist/fullscreen-listener.js.map +1 -0
  31. package/dist/intersection-observer.d.ts +1 -1
  32. package/dist/intersection-observer.d.ts.map +1 -1
  33. package/dist/intersection-observer.js +12 -6
  34. package/dist/intersection-observer.js.map +1 -1
  35. package/dist/log-and-rethrow.d.ts +1 -1
  36. package/dist/log-and-rethrow.d.ts.map +1 -1
  37. package/dist/log-and-rethrow.js +2 -3
  38. package/dist/log-and-rethrow.js.map +1 -1
  39. package/dist/logger.d.ts +1 -1
  40. package/dist/logger.d.ts.map +1 -1
  41. package/dist/logger.js +6 -3
  42. package/dist/logger.js.map +1 -1
  43. package/dist/register-elements.d.ts +1 -1
  44. package/dist/register-elements.d.ts.map +1 -1
  45. package/dist/register-elements.js +6 -7
  46. package/dist/register-elements.js.map +1 -1
  47. package/dist/resize-listener.d.ts +1 -1
  48. package/dist/resize-listener.d.ts.map +1 -1
  49. package/dist/resize-listener.js +3 -4
  50. package/dist/resize-listener.js.map +1 -1
  51. package/dist/scanner.d.ts +2 -2
  52. package/dist/scanner.d.ts.map +1 -1
  53. package/dist/scanner.js +76 -43
  54. package/dist/scanner.js.map +1 -1
  55. package/dist/scroll-listeners.d.ts +1 -1
  56. package/dist/scroll-listeners.d.ts.map +1 -1
  57. package/dist/scroll-listeners.js +3 -4
  58. package/dist/scroll-listeners.js.map +1 -1
  59. package/dist/state.d.ts +3 -2
  60. package/dist/state.d.ts.map +1 -1
  61. package/dist/state.js +5 -3
  62. package/dist/state.js.map +1 -1
  63. package/dist/task-queue.d.ts +4 -4
  64. package/dist/task-queue.d.ts.map +1 -1
  65. package/dist/task-queue.js +3 -2
  66. package/dist/task-queue.js.map +1 -1
  67. package/dist/types.d.ts +140 -49
  68. package/dist/types.d.ts.map +1 -1
  69. package/dist/types.js.map +1 -1
  70. package/dist/utils/are-elements-with-issues-equal.d.ts +3 -0
  71. package/dist/utils/are-elements-with-issues-equal.d.ts.map +1 -0
  72. package/dist/utils/are-elements-with-issues-equal.js +5 -0
  73. package/dist/utils/are-elements-with-issues-equal.js.map +1 -0
  74. package/dist/utils/are-issue-sets-equal.d.ts +2 -2
  75. package/dist/utils/are-issue-sets-equal.d.ts.map +1 -1
  76. package/dist/utils/are-issue-sets-equal.js +3 -3
  77. package/dist/utils/are-issue-sets-equal.js.map +1 -1
  78. package/dist/utils/containing-blocks.d.ts +3 -0
  79. package/dist/utils/containing-blocks.d.ts.map +1 -0
  80. package/dist/utils/containing-blocks.js +46 -0
  81. package/dist/utils/containing-blocks.js.map +1 -0
  82. package/dist/utils/contains.d.ts +2 -0
  83. package/dist/utils/contains.d.ts.map +1 -0
  84. package/dist/utils/contains.js +19 -0
  85. package/dist/utils/contains.js.map +1 -0
  86. package/dist/utils/deduplicate-nodes.d.ts +2 -0
  87. package/dist/utils/deduplicate-nodes.d.ts.map +1 -0
  88. package/dist/utils/deduplicate-nodes.js +4 -0
  89. package/dist/utils/deduplicate-nodes.js.map +1 -0
  90. package/dist/utils/deep-merge.d.ts +1 -1
  91. package/dist/utils/deep-merge.d.ts.map +1 -1
  92. package/dist/utils/deep-merge.js +8 -5
  93. package/dist/utils/deep-merge.js.map +1 -1
  94. package/dist/utils/dom-helpers.d.ts +9 -0
  95. package/dist/utils/dom-helpers.d.ts.map +1 -0
  96. package/dist/utils/dom-helpers.js +34 -0
  97. package/dist/utils/dom-helpers.js.map +1 -0
  98. package/dist/utils/ensure-non-empty.d.ts +2 -0
  99. package/dist/utils/ensure-non-empty.d.ts.map +1 -0
  100. package/dist/utils/ensure-non-empty.js +7 -0
  101. package/dist/utils/ensure-non-empty.js.map +1 -0
  102. package/dist/utils/get-element-html.d.ts +1 -1
  103. package/dist/utils/get-element-html.d.ts.map +1 -1
  104. package/dist/utils/get-element-html.js +4 -2
  105. package/dist/utils/get-element-html.js.map +1 -1
  106. package/dist/utils/get-element-position.d.ts +10 -2
  107. package/dist/utils/get-element-position.d.ts.map +1 -1
  108. package/dist/utils/get-element-position.js +64 -16
  109. package/dist/utils/get-element-position.js.map +1 -1
  110. package/dist/utils/get-parent.d.ts +2 -0
  111. package/dist/utils/get-parent.d.ts.map +1 -0
  112. package/dist/utils/get-parent.js +12 -0
  113. package/dist/utils/get-parent.js.map +1 -0
  114. package/dist/utils/get-scan-context.d.ts +3 -0
  115. package/dist/utils/get-scan-context.d.ts.map +1 -0
  116. package/dist/utils/get-scan-context.js +28 -0
  117. package/dist/utils/get-scan-context.js.map +1 -0
  118. package/dist/utils/get-scrollable-ancestors.d.ts +1 -1
  119. package/dist/utils/get-scrollable-ancestors.d.ts.map +1 -1
  120. package/dist/utils/get-scrollable-ancestors.js +10 -6
  121. package/dist/utils/get-scrollable-ancestors.js.map +1 -1
  122. package/dist/utils/is-node-in-scan-context.d.ts +3 -0
  123. package/dist/utils/is-node-in-scan-context.d.ts.map +1 -0
  124. package/dist/utils/is-node-in-scan-context.js +26 -0
  125. package/dist/utils/is-node-in-scan-context.js.map +1 -0
  126. package/dist/utils/is-non-empty.d.ts +2 -0
  127. package/dist/utils/is-non-empty.d.ts.map +1 -0
  128. package/dist/utils/is-non-empty.js +4 -0
  129. package/dist/utils/is-non-empty.js.map +1 -0
  130. package/dist/utils/normalize-context.d.ts +3 -0
  131. package/dist/utils/normalize-context.d.ts.map +1 -0
  132. package/dist/utils/normalize-context.js +59 -0
  133. package/dist/utils/normalize-context.js.map +1 -0
  134. package/dist/utils/recalculate-positions.d.ts +1 -1
  135. package/dist/utils/recalculate-positions.d.ts.map +1 -1
  136. package/dist/utils/recalculate-positions.js +5 -5
  137. package/dist/utils/recalculate-positions.js.map +1 -1
  138. package/dist/utils/recalculate-scrollable-ancestors.d.ts +1 -1
  139. package/dist/utils/recalculate-scrollable-ancestors.d.ts.map +1 -1
  140. package/dist/utils/recalculate-scrollable-ancestors.js +4 -4
  141. package/dist/utils/recalculate-scrollable-ancestors.js.map +1 -1
  142. package/dist/utils/shadow-dom-aware-mutation-observer.d.ts +10 -0
  143. package/dist/utils/shadow-dom-aware-mutation-observer.d.ts.map +1 -0
  144. package/dist/utils/shadow-dom-aware-mutation-observer.js +61 -0
  145. package/dist/utils/shadow-dom-aware-mutation-observer.js.map +1 -0
  146. package/dist/utils/supports-anchor-positioning.d.ts +1 -1
  147. package/dist/utils/supports-anchor-positioning.d.ts.map +1 -1
  148. package/dist/utils/supports-anchor-positioning.js +1 -1
  149. package/dist/utils/supports-anchor-positioning.js.map +1 -1
  150. package/dist/utils/transform-violations.d.ts +2 -2
  151. package/dist/utils/transform-violations.d.ts.map +1 -1
  152. package/dist/utils/transform-violations.js +23 -10
  153. package/dist/utils/transform-violations.js.map +1 -1
  154. package/dist/utils/update-elements-with-issues.d.ts +11 -5
  155. package/dist/utils/update-elements-with-issues.d.ts.map +1 -1
  156. package/dist/utils/update-elements-with-issues.js +56 -24
  157. package/dist/utils/update-elements-with-issues.js.map +1 -1
  158. package/dist/validate-options.d.ts +2 -2
  159. package/dist/validate-options.d.ts.map +1 -1
  160. package/dist/validate-options.js +91 -4
  161. package/dist/validate-options.js.map +1 -1
  162. package/package.json +15 -7
  163. package/src/accented.test.ts +2 -2
  164. package/src/accented.ts +45 -34
  165. package/src/common/tokens.ts +10 -0
  166. package/src/constants.ts +2 -1
  167. package/src/dom-updater.ts +87 -34
  168. package/src/elements/accented-dialog.ts +157 -122
  169. package/src/elements/accented-trigger.ts +119 -47
  170. package/src/fullscreen-listener.ts +21 -0
  171. package/src/intersection-observer.ts +27 -16
  172. package/src/log-and-rethrow.ts +2 -3
  173. package/src/logger.ts +14 -4
  174. package/src/register-elements.ts +7 -7
  175. package/src/resize-listener.ts +15 -11
  176. package/src/scanner.ts +113 -57
  177. package/src/scroll-listeners.ts +27 -19
  178. package/src/state.ts +27 -16
  179. package/src/task-queue.test.ts +5 -4
  180. package/src/task-queue.ts +8 -6
  181. package/src/types.ts +179 -76
  182. package/src/utils/are-elements-with-issues-equal.ts +11 -0
  183. package/src/utils/are-issue-sets-equal.test.ts +10 -6
  184. package/src/utils/are-issue-sets-equal.ts +8 -6
  185. package/src/utils/containing-blocks.ts +60 -0
  186. package/src/utils/contains.test.ts +54 -0
  187. package/src/utils/contains.ts +19 -0
  188. package/src/utils/deduplicate-nodes.ts +3 -0
  189. package/src/utils/deep-merge.test.ts +8 -1
  190. package/src/utils/deep-merge.ts +14 -8
  191. package/src/utils/dom-helpers.ts +42 -0
  192. package/src/utils/ensure-non-empty.ts +6 -0
  193. package/src/utils/get-element-html.ts +4 -2
  194. package/src/utils/get-element-position.ts +84 -16
  195. package/src/utils/get-parent.ts +14 -0
  196. package/src/utils/get-scan-context.test.ts +85 -0
  197. package/src/utils/get-scan-context.ts +36 -0
  198. package/src/utils/get-scrollable-ancestors.ts +15 -7
  199. package/src/utils/is-node-in-scan-context.test.ts +70 -0
  200. package/src/utils/is-node-in-scan-context.ts +29 -0
  201. package/src/utils/is-non-empty.ts +3 -0
  202. package/src/utils/normalize-context.test.ts +105 -0
  203. package/src/utils/normalize-context.ts +65 -0
  204. package/src/utils/recalculate-positions.ts +5 -5
  205. package/src/utils/recalculate-scrollable-ancestors.ts +4 -4
  206. package/src/utils/shadow-dom-aware-mutation-observer.ts +75 -0
  207. package/src/utils/supports-anchor-positioning.ts +3 -3
  208. package/src/utils/transform-violations.test.ts +28 -24
  209. package/src/utils/transform-violations.ts +30 -12
  210. package/src/utils/update-elements-with-issues.test.ts +139 -51
  211. package/src/utils/update-elements-with-issues.ts +123 -54
  212. 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,17 +1,17 @@
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;
@@ -40,13 +40,14 @@ declare const _default: () => {
40
40
  click(): void;
41
41
  hidePopover(): void;
42
42
  showPopover(): void;
43
- togglePopover(force?: boolean): boolean;
43
+ togglePopover(options?: boolean): boolean;
44
44
  addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
45
45
  addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
46
46
  removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
47
47
  removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
48
48
  readonly attributes: NamedNodeMap;
49
- readonly classList: DOMTokenList;
49
+ get classList(): DOMTokenList;
50
+ set classList(value: string);
50
51
  className: string;
51
52
  readonly clientHeight: number;
52
53
  readonly clientLeft: number;
@@ -61,7 +62,8 @@ declare const _default: () => {
61
62
  onfullscreenerror: ((this: Element, ev: Event) => any) | null;
62
63
  outerHTML: string;
63
64
  readonly ownerDocument: Document;
64
- readonly part: DOMTokenList;
65
+ get part(): DOMTokenList;
66
+ set part(value: string);
65
67
  readonly prefix: string | null;
66
68
  readonly scrollHeight: number;
67
69
  scrollLeft: number;
@@ -138,7 +140,7 @@ declare const _default: () => {
138
140
  readonly previousSibling: ChildNode | null;
139
141
  textContent: string | null;
140
142
  appendChild<T extends Node>(node: T): T;
141
- cloneNode(deep?: boolean): Node;
143
+ cloneNode(subtree?: boolean): Node;
142
144
  compareDocumentPosition(other: Node): number;
143
145
  contains(other: Node | null): boolean;
144
146
  getRootNode(options?: GetRootNodeOptions): Node;
@@ -200,6 +202,7 @@ declare const _default: () => {
200
202
  ariaPosInSet: string | null;
201
203
  ariaPressed: string | null;
202
204
  ariaReadOnly: string | null;
205
+ ariaRelevant: string | null;
203
206
  ariaRequired: string | null;
204
207
  ariaRoleDescription: string | null;
205
208
  ariaRowCount: string | null;
@@ -241,7 +244,8 @@ declare const _default: () => {
241
244
  replaceChildren(...nodes: (Node | string)[]): void;
242
245
  readonly assignedSlot: HTMLSlotElement | null;
243
246
  readonly attributeStyleMap: StylePropertyMap;
244
- readonly style: CSSStyleDeclaration;
247
+ get style(): CSSStyleDeclaration;
248
+ set style(cssText: string);
245
249
  contentEditable: string;
246
250
  enterKeyHint: string;
247
251
  inputMode: string;
@@ -352,5 +356,4 @@ declare const _default: () => {
352
356
  focus(options?: FocusOptions): void;
353
357
  };
354
358
  };
355
- export default _default;
356
359
  //# 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;;;;;qCAqJN,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBnC,CAAC"}
@@ -1,10 +1,11 @@
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
11
  <dialog dir="ltr" lang="en" aria-labelledby="title">
@@ -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,15 @@ 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
  }
345
359
  #onDialogClick(event) {
346
360
  const dialog = event.currentTarget;
347
- if (!dialog || typeof dialog.getBoundingClientRect !== 'function' || typeof dialog.close !== 'function') {
361
+ if (!dialog ||
362
+ typeof dialog.getBoundingClientRect !== 'function' ||
363
+ typeof dialog.close !== 'function') {
348
364
  return;
349
365
  }
350
366
  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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"}