@hypen-space/web 0.4.980 → 0.5.3
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.
- package/README.md +20 -13
- package/dist/canvas/accessibility.d.ts +118 -11
- package/dist/canvas/accessibility.js +470 -108
- package/dist/canvas/accessibility.js.map +1 -1
- package/dist/canvas/dispatch.d.ts +24 -0
- package/dist/canvas/dispatch.js +62 -0
- package/dist/canvas/dispatch.js.map +1 -0
- package/dist/canvas/editing.d.ts +178 -0
- package/dist/canvas/editing.js +590 -0
- package/dist/canvas/editing.js.map +1 -0
- package/dist/canvas/events.d.ts +28 -23
- package/dist/canvas/events.js +90 -103
- package/dist/canvas/events.js.map +1 -1
- package/dist/canvas/focus.d.ts +78 -0
- package/dist/canvas/focus.js +182 -0
- package/dist/canvas/focus.js.map +1 -0
- package/dist/canvas/index.d.ts +3 -2
- package/dist/canvas/index.js +3 -2
- package/dist/canvas/index.js.map +1 -1
- package/dist/canvas/layout.js +68 -98
- package/dist/canvas/layout.js.map +1 -1
- package/dist/canvas/paint.d.ts +16 -3
- package/dist/canvas/paint.js +449 -110
- package/dist/canvas/paint.js.map +1 -1
- package/dist/canvas/renderer.d.ts +28 -4
- package/dist/canvas/renderer.js +201 -81
- package/dist/canvas/renderer.js.map +1 -1
- package/dist/canvas/selection.js +31 -177
- package/dist/canvas/selection.js.map +1 -1
- package/dist/canvas/text-geometry.d.ts +72 -0
- package/dist/canvas/text-geometry.js +244 -0
- package/dist/canvas/text-geometry.js.map +1 -0
- package/dist/canvas/text.js +44 -18
- package/dist/canvas/text.js.map +1 -1
- package/dist/canvas/types.d.ts +10 -1
- package/dist/canvas/utils.d.ts +0 -23
- package/dist/canvas/utils.js +3 -67
- package/dist/canvas/utils.js.map +1 -1
- package/dist/canvas/variants.d.ts +52 -0
- package/dist/canvas/variants.js +156 -0
- package/dist/canvas/variants.js.map +1 -0
- package/dist/dom/a11y-styles.d.ts +20 -0
- package/dist/dom/a11y-styles.js +61 -0
- package/dist/dom/a11y-styles.js.map +1 -0
- package/dist/dom/applicators/aria.d.ts +19 -0
- package/dist/dom/applicators/aria.js +36 -0
- package/dist/dom/applicators/aria.js.map +1 -0
- package/dist/dom/applicators/events.d.ts +7 -0
- package/dist/dom/applicators/events.js +36 -8
- package/dist/dom/applicators/events.js.map +1 -1
- package/dist/dom/applicators/font.d.ts +11 -6
- package/dist/dom/applicators/font.js +16 -27
- package/dist/dom/applicators/font.js.map +1 -1
- package/dist/dom/applicators/index.js +51 -45
- package/dist/dom/applicators/index.js.map +1 -1
- package/dist/dom/canvas/index.js +2 -2
- package/dist/dom/canvas/index.js.map +1 -1
- package/dist/dom/components/app.js +2 -2
- package/dist/dom/components/app.js.map +1 -1
- package/dist/dom/components/audio.js +2 -2
- package/dist/dom/components/audio.js.map +1 -1
- package/dist/dom/components/avatar.js +3 -4
- package/dist/dom/components/avatar.js.map +1 -1
- package/dist/dom/components/badge.js +3 -4
- package/dist/dom/components/badge.js.map +1 -1
- package/dist/dom/components/button.js +2 -2
- package/dist/dom/components/button.js.map +1 -1
- package/dist/dom/components/card.js +2 -2
- package/dist/dom/components/card.js.map +1 -1
- package/dist/dom/components/center.js +2 -2
- package/dist/dom/components/center.js.map +1 -1
- package/dist/dom/components/checkbox.js +4 -5
- package/dist/dom/components/checkbox.js.map +1 -1
- package/dist/dom/components/column.js +2 -2
- package/dist/dom/components/column.js.map +1 -1
- package/dist/dom/components/container.js +2 -2
- package/dist/dom/components/container.js.map +1 -1
- package/dist/dom/components/divider.js +2 -2
- package/dist/dom/components/divider.js.map +1 -1
- package/dist/dom/components/grid.js +10 -10
- package/dist/dom/components/grid.js.map +1 -1
- package/dist/dom/components/heading.js +4 -6
- package/dist/dom/components/heading.js.map +1 -1
- package/dist/dom/components/hypenapp.d.ts +25 -1
- package/dist/dom/components/hypenapp.js +215 -247
- package/dist/dom/components/hypenapp.js.map +1 -1
- package/dist/dom/components/icon.js +4 -5
- package/dist/dom/components/icon.js.map +1 -1
- package/dist/dom/components/image.js +2 -2
- package/dist/dom/components/image.js.map +1 -1
- package/dist/dom/components/index.d.ts +2 -2
- package/dist/dom/components/index.js +9 -2
- package/dist/dom/components/index.js.map +1 -1
- package/dist/dom/components/input.js +2 -2
- package/dist/dom/components/input.js.map +1 -1
- package/dist/dom/components/link.js +2 -2
- package/dist/dom/components/link.js.map +1 -1
- package/dist/dom/components/list.js +2 -2
- package/dist/dom/components/list.js.map +1 -1
- package/dist/dom/components/paragraph.js +3 -4
- package/dist/dom/components/paragraph.js.map +1 -1
- package/dist/dom/components/progressbar.js +3 -3
- package/dist/dom/components/progressbar.js.map +1 -1
- package/dist/dom/components/route.js +2 -2
- package/dist/dom/components/route.js.map +1 -1
- package/dist/dom/components/router.js +2 -2
- package/dist/dom/components/router.js.map +1 -1
- package/dist/dom/components/row.js +10 -10
- package/dist/dom/components/row.js.map +1 -1
- package/dist/dom/components/select.js +3 -4
- package/dist/dom/components/select.js.map +1 -1
- package/dist/dom/components/slider.js +2 -2
- package/dist/dom/components/slider.js.map +1 -1
- package/dist/dom/components/spacer.js +2 -2
- package/dist/dom/components/spacer.js.map +1 -1
- package/dist/dom/components/spinner.js +27 -13
- package/dist/dom/components/spinner.js.map +1 -1
- package/dist/dom/components/stack.js +10 -10
- package/dist/dom/components/stack.js.map +1 -1
- package/dist/dom/components/switch.js +5 -6
- package/dist/dom/components/switch.js.map +1 -1
- package/dist/dom/components/tabs.d.ts +27 -0
- package/dist/dom/components/tabs.js +69 -0
- package/dist/dom/components/tabs.js.map +1 -0
- package/dist/dom/components/text.js +4 -7
- package/dist/dom/components/text.js.map +1 -1
- package/dist/dom/components/textarea.js +2 -2
- package/dist/dom/components/textarea.js.map +1 -1
- package/dist/dom/components/video.js +2 -2
- package/dist/dom/components/video.js.map +1 -1
- package/dist/dom/components/visuallyhidden.d.ts +9 -0
- package/dist/dom/components/visuallyhidden.js +26 -0
- package/dist/dom/components/visuallyhidden.js.map +1 -0
- package/dist/dom/debug.js +6 -8
- package/dist/dom/debug.js.map +1 -1
- package/dist/dom/index.d.ts +0 -1
- package/dist/dom/index.js +0 -1
- package/dist/dom/index.js.map +1 -1
- package/dist/dom/operability.d.ts +100 -0
- package/dist/dom/operability.js +298 -0
- package/dist/dom/operability.js.map +1 -0
- package/dist/dom/renderer.d.ts +98 -5
- package/dist/dom/renderer.js +400 -66
- package/dist/dom/renderer.js.map +1 -1
- package/dist/dom/route-focus.d.ts +42 -0
- package/dist/dom/route-focus.js +88 -0
- package/dist/dom/route-focus.js.map +1 -0
- package/dist/dom/semantics.d.ts +35 -0
- package/dist/dom/semantics.js +184 -0
- package/dist/dom/semantics.js.map +1 -0
- package/dist/variants.d.ts +90 -0
- package/dist/variants.js +206 -0
- package/dist/variants.js.map +1 -0
- package/package.json +2 -2
- package/src/canvas/QUICKSTART.md +16 -11
- package/src/canvas/README.md +63 -34
- package/src/canvas/accessibility.ts +507 -115
- package/src/canvas/dispatch.ts +78 -0
- package/src/canvas/editing.ts +697 -0
- package/src/canvas/events.ts +104 -115
- package/src/canvas/focus.ts +216 -0
- package/src/canvas/index.ts +8 -9
- package/src/canvas/layout.ts +68 -103
- package/src/canvas/paint.ts +509 -109
- package/src/canvas/renderer.ts +239 -99
- package/src/canvas/selection.ts +52 -210
- package/src/canvas/text-geometry.ts +311 -0
- package/src/canvas/text.ts +45 -18
- package/src/canvas/types.ts +28 -1
- package/src/canvas/utils.ts +3 -69
- package/src/canvas/variants.ts +172 -0
- package/src/dom/README.md +8 -7
- package/src/dom/a11y-styles.ts +65 -0
- package/src/dom/applicators/aria.ts +41 -0
- package/src/dom/applicators/events.ts +39 -7
- package/src/dom/applicators/font.ts +16 -29
- package/src/dom/applicators/index.ts +61 -46
- package/src/dom/canvas/index.ts +2 -2
- package/src/dom/components/app.ts +2 -2
- package/src/dom/components/audio.ts +2 -2
- package/src/dom/components/avatar.ts +3 -4
- package/src/dom/components/badge.ts +3 -4
- package/src/dom/components/button.ts +2 -2
- package/src/dom/components/card.ts +2 -2
- package/src/dom/components/center.ts +2 -2
- package/src/dom/components/checkbox.ts +4 -5
- package/src/dom/components/column.ts +2 -2
- package/src/dom/components/container.ts +2 -2
- package/src/dom/components/divider.ts +2 -2
- package/src/dom/components/grid.ts +10 -10
- package/src/dom/components/heading.ts +4 -6
- package/src/dom/components/hypenapp.ts +246 -274
- package/src/dom/components/icon.ts +4 -5
- package/src/dom/components/image.ts +2 -2
- package/src/dom/components/index.ts +10 -3
- package/src/dom/components/input.ts +2 -2
- package/src/dom/components/link.ts +2 -2
- package/src/dom/components/list.ts +2 -2
- package/src/dom/components/paragraph.ts +3 -4
- package/src/dom/components/progressbar.ts +3 -3
- package/src/dom/components/route.ts +2 -2
- package/src/dom/components/router.ts +2 -2
- package/src/dom/components/row.ts +10 -10
- package/src/dom/components/select.ts +3 -4
- package/src/dom/components/slider.ts +2 -2
- package/src/dom/components/spacer.ts +2 -2
- package/src/dom/components/spinner.ts +34 -16
- package/src/dom/components/stack.ts +10 -10
- package/src/dom/components/switch.ts +5 -6
- package/src/dom/components/tabs.ts +76 -0
- package/src/dom/components/text.ts +4 -7
- package/src/dom/components/textarea.ts +2 -2
- package/src/dom/components/video.ts +2 -2
- package/src/dom/components/visuallyhidden.ts +30 -0
- package/src/dom/debug.ts +6 -8
- package/src/dom/index.ts +0 -8
- package/src/dom/operability.ts +312 -0
- package/src/dom/renderer.ts +457 -66
- package/src/dom/route-focus.ts +98 -0
- package/src/dom/semantics.ts +199 -0
- package/src/variants.ts +249 -0
- package/dist/canvas/input.d.ts +0 -76
- package/dist/canvas/input.js +0 -207
- package/dist/canvas/input.js.map +0 -1
- package/dist/client.d.ts +0 -36
- package/dist/client.js +0 -47
- package/dist/client.js.map +0 -1
- package/src/canvas/input.ts +0 -251
- package/src/client.ts +0 -88
package/dist/dom/renderer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/dom/renderer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/dom/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Route-change focus management.
|
|
3
|
+
*
|
|
4
|
+
* When the Router swaps routes, keyboard and screen-reader focus is left on
|
|
5
|
+
* an element that just left the document — the user is stranded and AT
|
|
6
|
+
* announces nothing. This module defines the focus contract for navigation
|
|
7
|
+
* (design Open Question #4) and the DOM renderer applies it after each patch
|
|
8
|
+
* batch:
|
|
9
|
+
*
|
|
10
|
+
* 1. A batch is a **navigation** when it contains at least one `detach` (the
|
|
11
|
+
* leaving route, unlinked but kept alive by the Router cache) and at least
|
|
12
|
+
* one incoming subtree root (an `attach` of a cached route, or a fresh
|
|
13
|
+
* `create`+`insert` route build).
|
|
14
|
+
* 2. On navigation, focus moves to — in order of preference:
|
|
15
|
+
* a. the element that held focus when the incoming subtree was detached
|
|
16
|
+
* (**focus restore** on cached re-entry), if it is still inside the
|
|
17
|
+
* subtree;
|
|
18
|
+
* b. the subtree's first heading (`h1`–`h6` / `role="heading"`) or `main`
|
|
19
|
+
* landmark — the "start of the new page" for AT users;
|
|
20
|
+
* c. the subtree root itself.
|
|
21
|
+
* Non-natively-focusable targets get `tabindex="-1"` (programmatic focus
|
|
22
|
+
* only — they do not join the Tab order).
|
|
23
|
+
* 3. Focus-restore memory is keyed by the detached subtree's root NodeId and
|
|
24
|
+
* is dropped the moment a `remove` arrives for that id (Router LRU
|
|
25
|
+
* eviction) — **focus restore never targets an evicted NodeId**, the
|
|
26
|
+
* invariant this contract exists to guarantee.
|
|
27
|
+
*
|
|
28
|
+
* The contract is opt-out: `DOMRendererOptions.routeFocus: "off"` disables it
|
|
29
|
+
* for apps that own focus management themselves.
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* Pick the element that should receive focus inside a freshly-shown route
|
|
33
|
+
* subtree: first heading, else first `main` landmark, else the root itself.
|
|
34
|
+
*/
|
|
35
|
+
export declare function findRouteFocusTarget(root: HTMLElement): HTMLElement;
|
|
36
|
+
/**
|
|
37
|
+
* Move focus to `target`, granting it programmatic focusability
|
|
38
|
+
* (`tabindex="-1"`) when it is neither natively focusable nor already
|
|
39
|
+
* carrying a tabindex. `-1` keeps it out of the Tab order — this is a
|
|
40
|
+
* navigation landing point, not a new tab stop.
|
|
41
|
+
*/
|
|
42
|
+
export declare function focusRouteTarget(target: HTMLElement): void;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Route-change focus management.
|
|
3
|
+
*
|
|
4
|
+
* When the Router swaps routes, keyboard and screen-reader focus is left on
|
|
5
|
+
* an element that just left the document — the user is stranded and AT
|
|
6
|
+
* announces nothing. This module defines the focus contract for navigation
|
|
7
|
+
* (design Open Question #4) and the DOM renderer applies it after each patch
|
|
8
|
+
* batch:
|
|
9
|
+
*
|
|
10
|
+
* 1. A batch is a **navigation** when it contains at least one `detach` (the
|
|
11
|
+
* leaving route, unlinked but kept alive by the Router cache) and at least
|
|
12
|
+
* one incoming subtree root (an `attach` of a cached route, or a fresh
|
|
13
|
+
* `create`+`insert` route build).
|
|
14
|
+
* 2. On navigation, focus moves to — in order of preference:
|
|
15
|
+
* a. the element that held focus when the incoming subtree was detached
|
|
16
|
+
* (**focus restore** on cached re-entry), if it is still inside the
|
|
17
|
+
* subtree;
|
|
18
|
+
* b. the subtree's first heading (`h1`–`h6` / `role="heading"`) or `main`
|
|
19
|
+
* landmark — the "start of the new page" for AT users;
|
|
20
|
+
* c. the subtree root itself.
|
|
21
|
+
* Non-natively-focusable targets get `tabindex="-1"` (programmatic focus
|
|
22
|
+
* only — they do not join the Tab order).
|
|
23
|
+
* 3. Focus-restore memory is keyed by the detached subtree's root NodeId and
|
|
24
|
+
* is dropped the moment a `remove` arrives for that id (Router LRU
|
|
25
|
+
* eviction) — **focus restore never targets an evicted NodeId**, the
|
|
26
|
+
* invariant this contract exists to guarantee.
|
|
27
|
+
*
|
|
28
|
+
* The contract is opt-out: `DOMRendererOptions.routeFocus: "off"` disables it
|
|
29
|
+
* for apps that own focus management themselves.
|
|
30
|
+
*/
|
|
31
|
+
/** Tags that are natively focusable without a tabindex. */
|
|
32
|
+
const NATIVELY_FOCUSABLE = new Set(["A", "BUTTON", "INPUT", "TEXTAREA", "SELECT"]);
|
|
33
|
+
/** Heading hosts (`<h1>`–`<h6>`). */
|
|
34
|
+
const HEADING_TAGS = new Set(["H1", "H2", "H3", "H4", "H5", "H6"]);
|
|
35
|
+
const matches = (el, pred) => {
|
|
36
|
+
try {
|
|
37
|
+
return pred(el);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
const isHeading = (el) => HEADING_TAGS.has(el.tagName?.toUpperCase() ?? "") ||
|
|
44
|
+
el.getAttribute?.("role") === "heading";
|
|
45
|
+
const isMain = (el) => el.tagName?.toUpperCase() === "MAIN" || el.getAttribute?.("role") === "main";
|
|
46
|
+
/**
|
|
47
|
+
* Depth-first search over `children` (works on both real DOM collections and
|
|
48
|
+
* test-double arrays) for the first element matching `pred`.
|
|
49
|
+
*/
|
|
50
|
+
function findFirst(root, pred) {
|
|
51
|
+
const children = Array.from((root.children ?? []));
|
|
52
|
+
for (const child of children) {
|
|
53
|
+
if (matches(child, pred))
|
|
54
|
+
return child;
|
|
55
|
+
const nested = findFirst(child, pred);
|
|
56
|
+
if (nested)
|
|
57
|
+
return nested;
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Pick the element that should receive focus inside a freshly-shown route
|
|
63
|
+
* subtree: first heading, else first `main` landmark, else the root itself.
|
|
64
|
+
*/
|
|
65
|
+
export function findRouteFocusTarget(root) {
|
|
66
|
+
const heading = findFirst(root, isHeading);
|
|
67
|
+
if (heading)
|
|
68
|
+
return heading;
|
|
69
|
+
const main = findFirst(root, isMain);
|
|
70
|
+
if (main)
|
|
71
|
+
return main;
|
|
72
|
+
return root;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Move focus to `target`, granting it programmatic focusability
|
|
76
|
+
* (`tabindex="-1"`) when it is neither natively focusable nor already
|
|
77
|
+
* carrying a tabindex. `-1` keeps it out of the Tab order — this is a
|
|
78
|
+
* navigation landing point, not a new tab stop.
|
|
79
|
+
*/
|
|
80
|
+
export function focusRouteTarget(target) {
|
|
81
|
+
const tag = target.tagName?.toUpperCase() ?? "";
|
|
82
|
+
const hasTabindex = target.getAttribute?.("tabindex") != null;
|
|
83
|
+
if (!NATIVELY_FOCUSABLE.has(tag) && !hasTabindex) {
|
|
84
|
+
target.setAttribute?.("tabindex", "-1");
|
|
85
|
+
}
|
|
86
|
+
target.focus?.();
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=route-focus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-focus.js","sourceRoot":"","sources":["../../src/dom/route-focus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,2DAA2D;AAC3D,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEnF,qCAAqC;AACrC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAQnE,MAAM,OAAO,GAAG,CAAC,EAAe,EAAE,IAAkC,EAAW,EAAE;IAC/E,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,EAAe,EAAW,EAAE,CAC7C,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACjD,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;AAE1C,MAAM,MAAM,GAAG,CAAC,EAAe,EAAW,EAAE,CAC1C,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,MAAM,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;AAE/E;;;GAGG;AACH,SAAS,SAAS,CAAC,IAAiB,EAAE,IAAkC;IACtE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAA2B,CAAC,CAAC;IAC7E,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACvC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAiB;IACpD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAmB,EAAE,SAAS,CAAC,CAAC;IAC1D,IAAI,OAAO;QAAE,OAAO,OAAsB,CAAC;IAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAmB,EAAE,MAAM,CAAC,CAAC;IACpD,IAAI,IAAI;QAAE,OAAO,IAAmB,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAmB;IAClD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAChD,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;IAC9D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Accessibility semantics → DOM.
|
|
3
|
+
*
|
|
4
|
+
* The engine derives a platform-neutral {@link Semantics} block (role, heading
|
|
5
|
+
* level, busy, and in later phases name/state/hidden/…) and ships it on
|
|
6
|
+
* `create` patches. This module is the DOM translation: it maps that block
|
|
7
|
+
* onto ARIA / native HTML.
|
|
8
|
+
*
|
|
9
|
+
* Guiding rule: **let native HTML do the work; never emit a redundant or
|
|
10
|
+
* misplaced role.** Most Hypen components render a semantic native element
|
|
11
|
+
* whose tag already conveys the correct role (`<button>`, `<a>`, `<p>`,
|
|
12
|
+
* `<img>`, `<input>`, `<select>`, `<textarea>`, `<h1>`–`<h6>`). Some render a
|
|
13
|
+
* wrapper around the real control (`Checkbox`/`Switch` are a `<label>` around a
|
|
14
|
+
* nested `<input>`), where putting the role on the wrapper would be flat wrong.
|
|
15
|
+
*
|
|
16
|
+
* So we only apply an explicit `role` when the host is a *generic* container
|
|
17
|
+
* (`<div>`/`<span>`) that conveys nothing on its own — which is exactly the
|
|
18
|
+
* handful of cases that need it (`Spinner`, `ProgressBar`). Everywhere else the
|
|
19
|
+
* native element is already correct, and the {@link Semantics} block still
|
|
20
|
+
* travels to the non-DOM renderers (Canvas shadow, iOS, Android) that lack
|
|
21
|
+
* native semantics.
|
|
22
|
+
*/
|
|
23
|
+
import type { Semantics } from "@hypen-space/core/types";
|
|
24
|
+
/**
|
|
25
|
+
* Apply derived accessibility semantics to a DOM element.
|
|
26
|
+
*
|
|
27
|
+
* Called at create (first paint) and again on every `setSemantics` patch
|
|
28
|
+
* with the node's complete re-resolved block. Idempotent, and **clearing**:
|
|
29
|
+
* an attribute this module set on a previous pass that the new block no
|
|
30
|
+
* longer produces is removed (a name reverting from explicit to derived
|
|
31
|
+
* must drop its stale `aria-label`, a cleared `.expanded` its
|
|
32
|
+
* `aria-expanded`). No-op when `semantics` was never present, so
|
|
33
|
+
* non-semantic nodes pay nothing.
|
|
34
|
+
*/
|
|
35
|
+
export declare function applySemantics(element: HTMLElement, semantics?: Semantics): void;
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Accessibility semantics → DOM.
|
|
3
|
+
*
|
|
4
|
+
* The engine derives a platform-neutral {@link Semantics} block (role, heading
|
|
5
|
+
* level, busy, and in later phases name/state/hidden/…) and ships it on
|
|
6
|
+
* `create` patches. This module is the DOM translation: it maps that block
|
|
7
|
+
* onto ARIA / native HTML.
|
|
8
|
+
*
|
|
9
|
+
* Guiding rule: **let native HTML do the work; never emit a redundant or
|
|
10
|
+
* misplaced role.** Most Hypen components render a semantic native element
|
|
11
|
+
* whose tag already conveys the correct role (`<button>`, `<a>`, `<p>`,
|
|
12
|
+
* `<img>`, `<input>`, `<select>`, `<textarea>`, `<h1>`–`<h6>`). Some render a
|
|
13
|
+
* wrapper around the real control (`Checkbox`/`Switch` are a `<label>` around a
|
|
14
|
+
* nested `<input>`), where putting the role on the wrapper would be flat wrong.
|
|
15
|
+
*
|
|
16
|
+
* So we only apply an explicit `role` when the host is a *generic* container
|
|
17
|
+
* (`<div>`/`<span>`) that conveys nothing on its own — which is exactly the
|
|
18
|
+
* handful of cases that need it (`Spinner`, `ProgressBar`). Everywhere else the
|
|
19
|
+
* native element is already correct, and the {@link Semantics} block still
|
|
20
|
+
* travels to the non-DOM renderers (Canvas shadow, iOS, Android) that lack
|
|
21
|
+
* native semantics.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* The implicit ARIA role each native host tag already conveys. An engine
|
|
25
|
+
* role equal to the implicit one is never applied (redundant-role smell:
|
|
26
|
+
* `role="button"` on `<button>`), but a *different* engine role is an
|
|
27
|
+
* intentional override and IS applied — `role="tab"` on a `<button>` host,
|
|
28
|
+
* `role="combobox"` on an `<input>` (the ARIA 1.2 combobox pattern).
|
|
29
|
+
*
|
|
30
|
+
* `LABEL` is special-cased below: it never takes a role at all, because
|
|
31
|
+
* Checkbox/Switch render a `<label>` *wrapper* whose role belongs to the
|
|
32
|
+
* nested `<input>` — putting it on the wrapper would be flat wrong.
|
|
33
|
+
*/
|
|
34
|
+
const IMPLICIT_ROLE = {
|
|
35
|
+
A: "link",
|
|
36
|
+
P: "paragraph",
|
|
37
|
+
IMG: "img",
|
|
38
|
+
INPUT: "textbox",
|
|
39
|
+
TEXTAREA: "textbox",
|
|
40
|
+
SELECT: "listbox",
|
|
41
|
+
BUTTON: "button",
|
|
42
|
+
H1: "heading",
|
|
43
|
+
H2: "heading",
|
|
44
|
+
H3: "heading",
|
|
45
|
+
H4: "heading",
|
|
46
|
+
H5: "heading",
|
|
47
|
+
H6: "heading",
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Attributes this module set on an element on its previous pass, so a
|
|
51
|
+
* re-apply (a reactive `setSemantics` patch) can clear exactly what it — and
|
|
52
|
+
* only it — owns. Tracking per element instead of blanket-removing every
|
|
53
|
+
* possible ARIA attribute keeps the `.aria()` escape hatch's attributes (and
|
|
54
|
+
* anything else outside this module) untouched.
|
|
55
|
+
*/
|
|
56
|
+
const appliedAttrs = new WeakMap();
|
|
57
|
+
/**
|
|
58
|
+
* Apply derived accessibility semantics to a DOM element.
|
|
59
|
+
*
|
|
60
|
+
* Called at create (first paint) and again on every `setSemantics` patch
|
|
61
|
+
* with the node's complete re-resolved block. Idempotent, and **clearing**:
|
|
62
|
+
* an attribute this module set on a previous pass that the new block no
|
|
63
|
+
* longer produces is removed (a name reverting from explicit to derived
|
|
64
|
+
* must drop its stale `aria-label`, a cleared `.expanded` its
|
|
65
|
+
* `aria-expanded`). No-op when `semantics` was never present, so
|
|
66
|
+
* non-semantic nodes pay nothing.
|
|
67
|
+
*/
|
|
68
|
+
export function applySemantics(element, semantics) {
|
|
69
|
+
if (!semantics && !appliedAttrs.has(element))
|
|
70
|
+
return;
|
|
71
|
+
// Everything this pass wants set, collected first so the diff against the
|
|
72
|
+
// previous pass is a plain list comparison.
|
|
73
|
+
const next = [];
|
|
74
|
+
if (semantics) {
|
|
75
|
+
if (semantics.hidden) {
|
|
76
|
+
// Decorative: remove from the accessibility tree entirely. Nothing
|
|
77
|
+
// else applies once hidden.
|
|
78
|
+
next.push(["aria-hidden", "true"]);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
// tagName is uppercase in real DOM; normalize so the lookup is robust
|
|
82
|
+
// against test doubles that preserve the as-created case.
|
|
83
|
+
const tag = element.tagName?.toUpperCase();
|
|
84
|
+
if (semantics.role &&
|
|
85
|
+
tag !== "LABEL" &&
|
|
86
|
+
IMPLICIT_ROLE[tag] !== semantics.role) {
|
|
87
|
+
// Applied when the host conveys nothing (div/span) or when the
|
|
88
|
+
// engine role intentionally overrides the tag's implicit role
|
|
89
|
+
// (`role="tab"` on a <button>). Skipped when redundant, and always
|
|
90
|
+
// skipped on <label> wrappers (the role belongs to the nested input).
|
|
91
|
+
next.push(["role", semantics.role]);
|
|
92
|
+
}
|
|
93
|
+
// An explicit author label overrides visible content, so it is applied
|
|
94
|
+
// as aria-label even on native elements. A *derived* name is
|
|
95
|
+
// deliberately not applied — the browser already exposes it from the
|
|
96
|
+
// visible content.
|
|
97
|
+
if (semantics.nameExplicit && semantics.name) {
|
|
98
|
+
next.push(["aria-label", semantics.name]);
|
|
99
|
+
}
|
|
100
|
+
if (semantics.description) {
|
|
101
|
+
next.push(["aria-description", semantics.description]);
|
|
102
|
+
}
|
|
103
|
+
// Self-state relationship attributes.
|
|
104
|
+
if (semantics.expanded !== undefined) {
|
|
105
|
+
next.push(["aria-expanded", String(semantics.expanded)]);
|
|
106
|
+
}
|
|
107
|
+
if (semantics.pressed !== undefined) {
|
|
108
|
+
next.push(["aria-pressed", String(semantics.pressed)]);
|
|
109
|
+
}
|
|
110
|
+
if (semantics.selected !== undefined) {
|
|
111
|
+
next.push(["aria-selected", String(semantics.selected)]);
|
|
112
|
+
}
|
|
113
|
+
if (semantics.current) {
|
|
114
|
+
next.push(["aria-current", semantics.current]);
|
|
115
|
+
}
|
|
116
|
+
if (semantics.checked !== undefined) {
|
|
117
|
+
next.push(["aria-checked", String(semantics.checked)]);
|
|
118
|
+
}
|
|
119
|
+
if (semantics.invalid !== undefined) {
|
|
120
|
+
// Reactive form validity — kept live via `setSemantics` re-emits;
|
|
121
|
+
// clearing (block drops the field) removes the attribute below.
|
|
122
|
+
next.push(["aria-invalid", String(semantics.invalid)]);
|
|
123
|
+
}
|
|
124
|
+
// Cross-node relationships by author-supplied id. DOM-only /
|
|
125
|
+
// web-leaning: these id-reference relationships have no equivalent in
|
|
126
|
+
// the string-hint native accessibility APIs, so they do not travel to
|
|
127
|
+
// Canvas / iOS / Android. See the guide's "Platform support" section
|
|
128
|
+
// (hypen-docs/content/docs/guide/accessibility.mdx).
|
|
129
|
+
if (semantics.id) {
|
|
130
|
+
// The anchor the references below resolve against — a real DOM id.
|
|
131
|
+
next.push(["id", semantics.id]);
|
|
132
|
+
}
|
|
133
|
+
if (semantics.dir) {
|
|
134
|
+
// Base text direction → the native HTML dir attribute (not ARIA).
|
|
135
|
+
// Managed like `id`: cleared when a later block drops it.
|
|
136
|
+
next.push(["dir", semantics.dir]);
|
|
137
|
+
}
|
|
138
|
+
if (semantics.controls) {
|
|
139
|
+
next.push(["aria-controls", semantics.controls]);
|
|
140
|
+
}
|
|
141
|
+
if (semantics.describedby) {
|
|
142
|
+
next.push(["aria-describedby", semantics.describedby]);
|
|
143
|
+
}
|
|
144
|
+
if (semantics.labelledby) {
|
|
145
|
+
next.push(["aria-labelledby", semantics.labelledby]);
|
|
146
|
+
}
|
|
147
|
+
if (semantics.activeDescendant) {
|
|
148
|
+
// Reactive roving-focus pointer — arrives initially on `create` and
|
|
149
|
+
// stays live via `setSemantics` re-emits as the bound state changes.
|
|
150
|
+
next.push(["aria-activedescendant", semantics.activeDescendant]);
|
|
151
|
+
}
|
|
152
|
+
if (semantics.owns) {
|
|
153
|
+
next.push(["aria-owns", semantics.owns]);
|
|
154
|
+
}
|
|
155
|
+
if (semantics.busy) {
|
|
156
|
+
next.push(["aria-busy", "true"]);
|
|
157
|
+
}
|
|
158
|
+
if (semantics.live) {
|
|
159
|
+
// Live-region politeness — engine-validated ("polite" | "assertive").
|
|
160
|
+
next.push(["aria-live", semantics.live]);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// Clear what the previous pass set but this one doesn't.
|
|
165
|
+
const previous = appliedAttrs.get(element);
|
|
166
|
+
if (previous) {
|
|
167
|
+
const keep = new Set(next.map(([name]) => name));
|
|
168
|
+
for (const name of previous) {
|
|
169
|
+
if (!keep.has(name)) {
|
|
170
|
+
element.removeAttribute(name);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
for (const [name, value] of next) {
|
|
175
|
+
element.setAttribute(name, value);
|
|
176
|
+
}
|
|
177
|
+
if (next.length > 0) {
|
|
178
|
+
appliedAttrs.set(element, next.map(([name]) => name));
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
appliedAttrs.delete(element);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=semantics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantics.js","sourceRoot":"","sources":["../../src/dom/semantics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared variant (responsive breakpoint + interaction state) support.
|
|
3
|
+
*
|
|
4
|
+
* The engine emits applicator props using the canonical key format:
|
|
5
|
+
*
|
|
6
|
+
* <camelBase><variant?><argSuffix>
|
|
7
|
+
*
|
|
8
|
+
* - camelBase: camelCase applicator name, e.g. "padding", "backgroundColor"
|
|
9
|
+
* - variant?: "@<bp>" and/or ":<state>", in that order if combined.
|
|
10
|
+
* bp in { sm, md, lg, xl, 2xl }
|
|
11
|
+
* state in { hover, focus, active, disabled,
|
|
12
|
+
* focus-visible, focus-within }
|
|
13
|
+
* combined example: "backgroundColor@md:hover" (BOTH md AND hover)
|
|
14
|
+
* - argSuffix: ".<index>" (almost always ".0") or ".<name>" for named args.
|
|
15
|
+
*
|
|
16
|
+
* Examples emitted by the engine:
|
|
17
|
+
* "padding.0", "padding@md.0", "backgroundColor:hover.0",
|
|
18
|
+
* "backgroundColor@md:hover.0".
|
|
19
|
+
*
|
|
20
|
+
* IMPORTANT: the variant marker sits BETWEEN the base name and the ".0" arg
|
|
21
|
+
* suffix. A lookup that forgets the ".0" (e.g. building just "padding@md")
|
|
22
|
+
* MISSES the real key. Always parse the variant out of the full key.
|
|
23
|
+
*
|
|
24
|
+
* Both the DOM applicator path and the Canvas renderer import this module so
|
|
25
|
+
* breakpoint pixels, state names, and precedence stay byte-compatible across
|
|
26
|
+
* renderers. The DOM renderer leans on the CSS engine for actual resolution
|
|
27
|
+
* (media queries + pseudo-classes), so it only needs PARSE_* here; Canvas does
|
|
28
|
+
* its own paint/layout and therefore also uses the runtime resolver.
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Tailwind breakpoint min-widths (px). Order matters: ascending min-width.
|
|
32
|
+
* Mirrors the DOM `BREAKPOINTS` table and the iOS reference.
|
|
33
|
+
*/
|
|
34
|
+
export declare const BREAKPOINTS: Record<string, number>;
|
|
35
|
+
/** Breakpoint names in ascending min-width order (sm < md < lg < xl < 2xl). */
|
|
36
|
+
export declare const BREAKPOINT_ORDER: readonly string[];
|
|
37
|
+
/** Interaction-state names recognised in variant keys (same set as the DOM). */
|
|
38
|
+
export declare const VALID_STATES: readonly string[];
|
|
39
|
+
/** Parsed shape of a single prop key. */
|
|
40
|
+
export interface ParsedVariantKey {
|
|
41
|
+
/** camelCase base applicator name, e.g. "backgroundColor". */
|
|
42
|
+
base: string;
|
|
43
|
+
/** Breakpoint name (sm/md/lg/xl/2xl) or null if none. */
|
|
44
|
+
breakpoint: string | null;
|
|
45
|
+
/** Interaction state name or null if none. */
|
|
46
|
+
state: string | null;
|
|
47
|
+
/** Arg suffix without the leading dot (e.g. "0", "to"), or null if none. */
|
|
48
|
+
arg: string | null;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Parse a prop key into `{ base, breakpoint, state, arg }`.
|
|
52
|
+
*
|
|
53
|
+
* Splits the arg suffix first (the LAST `.<token>`), then peels the variant
|
|
54
|
+
* markers (`@bp` and/or `:state`) off the remainder. An unknown breakpoint or
|
|
55
|
+
* state is left as part of the base name (caller decides what to do); this
|
|
56
|
+
* matches the DOM behaviour where an invalid `@invalid` / `:invalid` simply
|
|
57
|
+
* never matches a real variant.
|
|
58
|
+
*
|
|
59
|
+
* Examples:
|
|
60
|
+
* "padding.0" -> { base:"padding", breakpoint:null, state:null, arg:"0" }
|
|
61
|
+
* "padding@md.0" -> { base:"padding", breakpoint:"md", state:null, arg:"0" }
|
|
62
|
+
* "backgroundColor:hover.0" -> { base:"backgroundColor", breakpoint:null, state:"hover", arg:"0" }
|
|
63
|
+
* "backgroundColor@md:hover.0" -> { base:"backgroundColor", breakpoint:"md", state:"hover", arg:"0" }
|
|
64
|
+
* "backgroundColor@md:hover" -> { base:"backgroundColor", breakpoint:"md", state:"hover", arg:null }
|
|
65
|
+
*/
|
|
66
|
+
export declare function parseVariantKey(key: string): ParsedVariantKey;
|
|
67
|
+
/** The set of interaction states currently active on a node. */
|
|
68
|
+
export interface ActiveStates {
|
|
69
|
+
hover?: boolean;
|
|
70
|
+
focus?: boolean;
|
|
71
|
+
active?: boolean;
|
|
72
|
+
disabled?: boolean;
|
|
73
|
+
"focus-visible"?: boolean;
|
|
74
|
+
"focus-within"?: boolean;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Resolve variant-bearing props against the current viewport width and active
|
|
78
|
+
* interaction states, producing a flat map of `base -> winning value`.
|
|
79
|
+
*
|
|
80
|
+
* Input keys are the already-normalised flat applicator keys (variant markers
|
|
81
|
+
* present, arg suffix already stripped by the applicator-grouping pass), e.g.
|
|
82
|
+
* `{ padding: 8, "padding@md": 16, "backgroundColor:hover": "red" }`.
|
|
83
|
+
*
|
|
84
|
+
* Only bases that actually have at least one applicable variant appear in the
|
|
85
|
+
* result with an overridden value; a base with only its plain entry resolves to
|
|
86
|
+
* that plain value. The caller merges the result over the node's base props.
|
|
87
|
+
*/
|
|
88
|
+
export declare function resolveVariantProps(props: Record<string, unknown>, width: number, states: ActiveStates): Record<string, unknown>;
|
|
89
|
+
/** True if any key in `props` carries a variant marker (`@bp` or `:state`). */
|
|
90
|
+
export declare function hasVariantProps(props: Record<string, unknown>): boolean;
|