@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
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global accessibility stylesheet.
|
|
3
|
+
*
|
|
4
|
+
* Injects a single <style> element (idempotent, guarded by id) that:
|
|
5
|
+
* - honours `prefers-reduced-motion: reduce` by disabling transitions,
|
|
6
|
+
* animations and smooth scrolling on Hypen-rendered nodes;
|
|
7
|
+
* - renders a visible `:focus-visible` outline so keyboard users can see
|
|
8
|
+
* which element is focused;
|
|
9
|
+
* - keeps that focus indicator visible under `forced-colors: active`
|
|
10
|
+
* (Windows High Contrast), which strips box-shadow but honours outline; and
|
|
11
|
+
* - strengthens the outline under `prefers-contrast: more`.
|
|
12
|
+
*
|
|
13
|
+
* Scoped to `[data-hypen-id]` so it only affects Hypen-rendered elements and
|
|
14
|
+
* never the host page.
|
|
15
|
+
*/
|
|
16
|
+
const STYLE_ID = "hypen-a11y-styles";
|
|
17
|
+
const A11Y_CSS = `
|
|
18
|
+
@media (prefers-reduced-motion: reduce) {
|
|
19
|
+
[data-hypen-id] {
|
|
20
|
+
transition: none !important;
|
|
21
|
+
animation: none !important;
|
|
22
|
+
scroll-behavior: auto !important;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
[data-hypen-id]:focus-visible {
|
|
26
|
+
outline: 2px solid #1a73e8;
|
|
27
|
+
outline-offset: 2px;
|
|
28
|
+
}
|
|
29
|
+
@media (forced-colors: active) {
|
|
30
|
+
/* Forced-colors mode removes box-shadow and author colors but honours
|
|
31
|
+
outline: pin the focus indicator to an outline in the system Highlight
|
|
32
|
+
color, and drop any box-shadow-based indicator a component style set. */
|
|
33
|
+
[data-hypen-id]:focus-visible {
|
|
34
|
+
outline: 2px solid Highlight;
|
|
35
|
+
box-shadow: none;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
@media (prefers-contrast: more) {
|
|
39
|
+
/* A thicker outline for users who asked for higher contrast. */
|
|
40
|
+
[data-hypen-id]:focus-visible {
|
|
41
|
+
outline-width: 3px;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
`;
|
|
45
|
+
/**
|
|
46
|
+
* Inject the accessibility stylesheet once. Safe to call repeatedly and in
|
|
47
|
+
* non-DOM environments (server/tests without `document`), where it no-ops.
|
|
48
|
+
*/
|
|
49
|
+
export function ensureA11yStyles() {
|
|
50
|
+
if (typeof document === "undefined" || !document.head) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (typeof document.getElementById === "function" && document.getElementById(STYLE_ID)) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const style = document.createElement("style");
|
|
57
|
+
style.id = STYLE_ID;
|
|
58
|
+
style.textContent = A11Y_CSS;
|
|
59
|
+
document.head.appendChild(style);
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=a11y-styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a11y-styles.js","sourceRoot":"","sources":["../../src/dom/a11y-styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,QAAQ,GAAG,mBAAmB,CAAC;AAErC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BhB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtD,OAAO;IACT,CAAC;IAED,IAAI,OAAO,QAAQ,CAAC,cAAc,KAAK,UAAU,IAAI,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvF,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC;IACpB,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ARIA escape hatch applicator
|
|
3
|
+
*
|
|
4
|
+
* `.aria(key, value)` sets an arbitrary `aria-<key>` attribute on the element,
|
|
5
|
+
* e.g. `.aria("expanded", "true")` -> `aria-expanded="true"`.
|
|
6
|
+
*
|
|
7
|
+
* WEB-ONLY / NON-PORTABLE: this is a raw DOM escape hatch. It bypasses the
|
|
8
|
+
* engine-derived typed `Semantics` block, so the value does NOT reach the
|
|
9
|
+
* Canvas, iOS or Android renderers. Prefer the portable accessibility
|
|
10
|
+
* applicators (e.g. `.role()`, `.label()`) when one exists; reach for `.aria`
|
|
11
|
+
* only for DOM-specific ARIA attributes the typed semantics do not cover.
|
|
12
|
+
*/
|
|
13
|
+
import type { ApplicatorHandler } from "./types.js";
|
|
14
|
+
/**
|
|
15
|
+
* The grouped args arrive as `{ "0": key, "1": value }` for `.aria(key, value)`.
|
|
16
|
+
* A single positional arg (`.aria("busy")`) arrives as the bare key string.
|
|
17
|
+
*/
|
|
18
|
+
export declare const ariaHandler: ApplicatorHandler;
|
|
19
|
+
export declare const ariaHandlers: Record<string, ApplicatorHandler>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ARIA escape hatch applicator
|
|
3
|
+
*
|
|
4
|
+
* `.aria(key, value)` sets an arbitrary `aria-<key>` attribute on the element,
|
|
5
|
+
* e.g. `.aria("expanded", "true")` -> `aria-expanded="true"`.
|
|
6
|
+
*
|
|
7
|
+
* WEB-ONLY / NON-PORTABLE: this is a raw DOM escape hatch. It bypasses the
|
|
8
|
+
* engine-derived typed `Semantics` block, so the value does NOT reach the
|
|
9
|
+
* Canvas, iOS or Android renderers. Prefer the portable accessibility
|
|
10
|
+
* applicators (e.g. `.role()`, `.label()`) when one exists; reach for `.aria`
|
|
11
|
+
* only for DOM-specific ARIA attributes the typed semantics do not cover.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* The grouped args arrive as `{ "0": key, "1": value }` for `.aria(key, value)`.
|
|
15
|
+
* A single positional arg (`.aria("busy")`) arrives as the bare key string.
|
|
16
|
+
*/
|
|
17
|
+
export const ariaHandler = (el, value) => {
|
|
18
|
+
let key;
|
|
19
|
+
let attrValue = "";
|
|
20
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
21
|
+
const args = value;
|
|
22
|
+
key = args["0"];
|
|
23
|
+
attrValue = "1" in args ? args["1"] : "";
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
key = value;
|
|
27
|
+
}
|
|
28
|
+
if (key === undefined || key === null || key === "") {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
el.setAttribute("aria-" + String(key), String(attrValue));
|
|
32
|
+
};
|
|
33
|
+
export const ariaHandlers = {
|
|
34
|
+
aria: ariaHandler,
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=aria.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aria.js","sourceRoot":"","sources":["../../../src/dom/applicators/aria.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAsB,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;IAC1D,IAAI,GAAY,CAAC;IACjB,IAAI,SAAS,GAAY,EAAE,CAAC;IAE5B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,GAAG,KAAgC,CAAC;QAC9C,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,SAAS,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,KAAK,CAAC;IACd,CAAC;IAED,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACpD,OAAO;IACT,CAAC;IAED,EAAE,CAAC,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAsC;IAC7D,IAAI,EAAE,WAAW;CAClB,CAAC"}
|
|
@@ -5,4 +5,11 @@
|
|
|
5
5
|
* Uses a factory pattern to reduce boilerplate and ensure consistency.
|
|
6
6
|
*/
|
|
7
7
|
import type { ApplicatorHandler } from "./types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Dispatch the action encoded in an applicator value (e.g. `"@actions.save"`)
|
|
10
|
+
* to the element's engine. Shared by click wiring and keyboard activation so
|
|
11
|
+
* both routes dispatch identically. No-op if the value carries no action or
|
|
12
|
+
* the element has no engine.
|
|
13
|
+
*/
|
|
14
|
+
export declare function triggerElementAction(element: HTMLElement, value: unknown): void;
|
|
8
15
|
export declare const eventHandlers: Record<string, ApplicatorHandler>;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { getElementDisposables, disposableListener, disposableTimeout, } from "@hypen-space/core/disposable";
|
|
8
8
|
import { frameworkLoggers } from "@hypen-space/core/logger";
|
|
9
|
-
import { getEngine, getRegisteredEvents, registerEvent, unregisterEvent, getKeyTarget, setKeyTarget, } from "../element-data.js";
|
|
9
|
+
import { getEngine, getRegisteredEvents, registerEvent, unregisterEvent, getKeyTarget, setKeyTarget, getMeta, setMeta, } from "../element-data.js";
|
|
10
10
|
const log = frameworkLoggers.events;
|
|
11
11
|
// ============================================================================
|
|
12
12
|
// Utility Functions
|
|
@@ -134,19 +134,23 @@ function capitalize(str) {
|
|
|
134
134
|
* Create an event handler applicator with common boilerplate
|
|
135
135
|
*/
|
|
136
136
|
function createEventHandler(eventType, options = {}) {
|
|
137
|
+
const actionMetaKey = `event:${eventType}`;
|
|
137
138
|
return (element, value) => {
|
|
138
139
|
const { actionName, payload: customPayload } = extractActionDetails(value);
|
|
139
140
|
if (!actionName) {
|
|
140
141
|
log.warn(`${eventType} requires an action reference starting with @, got:`, value);
|
|
141
142
|
return;
|
|
142
143
|
}
|
|
144
|
+
// Store the current action on the element; the persistent listener reads
|
|
145
|
+
// it per event, so re-applying with a different action (e.g. a keyed-
|
|
146
|
+
// reused node) replaces the dispatch target instead of stacking listeners.
|
|
147
|
+
setMeta(element, actionMetaKey, { actionName, customPayload });
|
|
143
148
|
const disposables = getElementDisposables(element);
|
|
144
149
|
// Track that we've registered this event type
|
|
145
150
|
// The disposable stack handles cleanup automatically
|
|
146
|
-
const eventKey =
|
|
151
|
+
const eventKey = eventType;
|
|
147
152
|
if (getRegisteredEvents(element).has(eventKey)) {
|
|
148
|
-
//
|
|
149
|
-
// This can happen during re-renders
|
|
153
|
+
// Listener already installed — the meta update above retargets it
|
|
150
154
|
return;
|
|
151
155
|
}
|
|
152
156
|
registerEvent(element, eventKey);
|
|
@@ -154,6 +158,9 @@ function createEventHandler(eventType, options = {}) {
|
|
|
154
158
|
let throttleTimer = null;
|
|
155
159
|
// Create the event listener
|
|
156
160
|
const listener = (event) => {
|
|
161
|
+
const current = getMeta(element, actionMetaKey);
|
|
162
|
+
if (!current)
|
|
163
|
+
return;
|
|
157
164
|
// Handle throttling
|
|
158
165
|
if (options.throttleMs && throttleTimer) {
|
|
159
166
|
return;
|
|
@@ -168,8 +175,8 @@ function createEventHandler(eventType, options = {}) {
|
|
|
168
175
|
event.preventDefault();
|
|
169
176
|
}
|
|
170
177
|
// Build payload
|
|
171
|
-
const payload = Object.keys(customPayload).length > 0
|
|
172
|
-
? { ...customPayload }
|
|
178
|
+
const payload = Object.keys(current.customPayload).length > 0
|
|
179
|
+
? { ...current.customPayload }
|
|
173
180
|
: options.extractPayload
|
|
174
181
|
? options.extractPayload(event, element)
|
|
175
182
|
: extractEventData(event, element);
|
|
@@ -177,10 +184,10 @@ function createEventHandler(eventType, options = {}) {
|
|
|
177
184
|
const engine = getEngine(element);
|
|
178
185
|
if (engine) {
|
|
179
186
|
try {
|
|
180
|
-
engine.dispatchAction(actionName, payload);
|
|
187
|
+
engine.dispatchAction(current.actionName, payload);
|
|
181
188
|
}
|
|
182
189
|
catch (err) {
|
|
183
|
-
log.error(`Error dispatching action "${actionName}":`, err);
|
|
190
|
+
log.error(`Error dispatching action "${current.actionName}":`, err);
|
|
184
191
|
}
|
|
185
192
|
}
|
|
186
193
|
};
|
|
@@ -197,6 +204,26 @@ function createEventHandler(eventType, options = {}) {
|
|
|
197
204
|
});
|
|
198
205
|
};
|
|
199
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Dispatch the action encoded in an applicator value (e.g. `"@actions.save"`)
|
|
209
|
+
* to the element's engine. Shared by click wiring and keyboard activation so
|
|
210
|
+
* both routes dispatch identically. No-op if the value carries no action or
|
|
211
|
+
* the element has no engine.
|
|
212
|
+
*/
|
|
213
|
+
export function triggerElementAction(element, value) {
|
|
214
|
+
const { actionName, payload } = extractActionDetails(value);
|
|
215
|
+
if (!actionName)
|
|
216
|
+
return;
|
|
217
|
+
const engine = getEngine(element);
|
|
218
|
+
if (!engine)
|
|
219
|
+
return;
|
|
220
|
+
try {
|
|
221
|
+
engine.dispatchAction(actionName, payload);
|
|
222
|
+
}
|
|
223
|
+
catch (err) {
|
|
224
|
+
log.error(`Error dispatching action "${actionName}":`, err);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
200
227
|
/**
|
|
201
228
|
* Create a keyboard event handler that filters by key
|
|
202
229
|
*/
|
|
@@ -380,6 +407,7 @@ export const eventHandlers = {
|
|
|
380
407
|
// Mouse hover events
|
|
381
408
|
onMouseEnter: createEventHandler("mouseenter", { extractPayload: mousePayload }),
|
|
382
409
|
onMouseLeave: createEventHandler("mouseleave", { extractPayload: mousePayload }),
|
|
410
|
+
onHover: createEventHandler("mouseenter", { extractPayload: mousePayload }), // Alias for onMouseEnter
|
|
383
411
|
// Two-way binding for .bind(@state.x)
|
|
384
412
|
bind: ((element, value) => {
|
|
385
413
|
const bindPath = typeof value === "string" ? value : null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/dom/applicators/events.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/dom/applicators/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,23 +2,28 @@
|
|
|
2
2
|
* Font Applicators with Google Fonts support
|
|
3
3
|
*/
|
|
4
4
|
import type { ApplicatorHandler } from "./types.js";
|
|
5
|
+
/**
|
|
6
|
+
* Load a Google Font by injecting a link tag.
|
|
7
|
+
* @param fontName - The Google Font name (e.g., "Roboto", "Open Sans")
|
|
8
|
+
*/
|
|
9
|
+
declare function loadGoogleFont(fontName: string): void;
|
|
5
10
|
export declare const fontHandlers: Record<string, ApplicatorHandler>;
|
|
6
11
|
export declare const GoogleFonts: {
|
|
7
12
|
/**
|
|
8
13
|
* Preload a Google Font before it's used.
|
|
9
|
-
* Defaults to the global `document` if no doc is provided.
|
|
10
14
|
*/
|
|
11
|
-
preload:
|
|
15
|
+
preload: typeof loadGoogleFont;
|
|
12
16
|
/**
|
|
13
|
-
* Check if a font has been loaded
|
|
17
|
+
* Check if a font has been loaded.
|
|
14
18
|
*/
|
|
15
|
-
isLoaded: (fontName: string
|
|
19
|
+
isLoaded: (fontName: string) => boolean;
|
|
16
20
|
/**
|
|
17
|
-
* Get list of loaded fonts
|
|
21
|
+
* Get list of loaded fonts.
|
|
18
22
|
*/
|
|
19
|
-
getLoadedFonts: (
|
|
23
|
+
getLoadedFonts: () => string[];
|
|
20
24
|
/**
|
|
21
25
|
* Popular Google Fonts for reference.
|
|
22
26
|
*/
|
|
23
27
|
popular: string[];
|
|
24
28
|
};
|
|
29
|
+
export {};
|
|
@@ -2,16 +2,8 @@
|
|
|
2
2
|
* Font Applicators with Google Fonts support
|
|
3
3
|
*/
|
|
4
4
|
import { toCssLength } from "./size.js";
|
|
5
|
-
// Track loaded Google Fonts
|
|
6
|
-
const loadedGoogleFonts = new
|
|
7
|
-
function getLoadedSet(doc) {
|
|
8
|
-
let set = loadedGoogleFonts.get(doc);
|
|
9
|
-
if (!set) {
|
|
10
|
-
set = new Set();
|
|
11
|
-
loadedGoogleFonts.set(doc, set);
|
|
12
|
-
}
|
|
13
|
-
return set;
|
|
14
|
-
}
|
|
5
|
+
// Track loaded Google Fonts to avoid duplicate link tags
|
|
6
|
+
const loadedGoogleFonts = new Set();
|
|
15
7
|
// System font keywords that shouldn't be loaded from Google Fonts
|
|
16
8
|
const systemFontKeywords = new Set([
|
|
17
9
|
"default", "system", "system-ui", "inherit", "initial", "unset",
|
|
@@ -29,36 +21,34 @@ function isSystemFont(fontName) {
|
|
|
29
21
|
normalized.startsWith("ui-");
|
|
30
22
|
}
|
|
31
23
|
/**
|
|
32
|
-
* Load a Google Font by injecting a link tag
|
|
24
|
+
* Load a Google Font by injecting a link tag.
|
|
33
25
|
* @param fontName - The Google Font name (e.g., "Roboto", "Open Sans")
|
|
34
|
-
* @param doc - The Document to inject into.
|
|
35
26
|
*/
|
|
36
|
-
function loadGoogleFont(fontName
|
|
27
|
+
function loadGoogleFont(fontName) {
|
|
37
28
|
const normalized = fontName.trim();
|
|
38
|
-
const loaded = getLoadedSet(doc);
|
|
39
29
|
// Skip if already loaded or is a system font
|
|
40
|
-
if (
|
|
30
|
+
if (loadedGoogleFonts.has(normalized) || isSystemFont(normalized)) {
|
|
41
31
|
return;
|
|
42
32
|
}
|
|
43
33
|
// Mark as loading to avoid duplicates
|
|
44
|
-
|
|
34
|
+
loadedGoogleFonts.add(normalized);
|
|
45
35
|
// Create link element for Google Fonts
|
|
46
|
-
const link =
|
|
36
|
+
const link = document.createElement("link");
|
|
47
37
|
link.rel = "stylesheet";
|
|
48
38
|
link.href = `https://fonts.googleapis.com/css2?family=${encodeURIComponent(normalized)}:wght@100;200;300;400;500;600;700;800;900&display=swap`;
|
|
49
39
|
// Add to document head
|
|
50
|
-
|
|
40
|
+
document.head.appendChild(link);
|
|
51
41
|
}
|
|
52
42
|
/**
|
|
53
43
|
* Parse a fontFamily value and load any Google Fonts.
|
|
54
44
|
* Returns a CSS-safe font-family string.
|
|
55
45
|
*/
|
|
56
|
-
function processFontFamily(value
|
|
46
|
+
function processFontFamily(value) {
|
|
57
47
|
// Split by comma to handle font stacks
|
|
58
48
|
const fonts = value.split(",").map(f => f.trim().replace(/["']/g, ""));
|
|
59
49
|
for (const font of fonts) {
|
|
60
50
|
if (!isSystemFont(font)) {
|
|
61
|
-
loadGoogleFont(font
|
|
51
|
+
loadGoogleFont(font);
|
|
62
52
|
}
|
|
63
53
|
}
|
|
64
54
|
// Return original value with proper quoting for CSS
|
|
@@ -80,7 +70,7 @@ export const fontHandlers = {
|
|
|
80
70
|
fontFamily: (el, value) => {
|
|
81
71
|
const fontValue = String(value);
|
|
82
72
|
// Process font family and load Google Fonts as needed
|
|
83
|
-
el.style.fontFamily = processFontFamily(fontValue
|
|
73
|
+
el.style.fontFamily = processFontFamily(fontValue);
|
|
84
74
|
},
|
|
85
75
|
textAlign: (el, value) => {
|
|
86
76
|
const v = String(value);
|
|
@@ -118,17 +108,16 @@ export const fontHandlers = {
|
|
|
118
108
|
export const GoogleFonts = {
|
|
119
109
|
/**
|
|
120
110
|
* Preload a Google Font before it's used.
|
|
121
|
-
* Defaults to the global `document` if no doc is provided.
|
|
122
111
|
*/
|
|
123
|
-
preload:
|
|
112
|
+
preload: loadGoogleFont,
|
|
124
113
|
/**
|
|
125
|
-
* Check if a font has been loaded
|
|
114
|
+
* Check if a font has been loaded.
|
|
126
115
|
*/
|
|
127
|
-
isLoaded: (fontName
|
|
116
|
+
isLoaded: (fontName) => loadedGoogleFonts.has(fontName.trim()),
|
|
128
117
|
/**
|
|
129
|
-
* Get list of loaded fonts
|
|
118
|
+
* Get list of loaded fonts.
|
|
130
119
|
*/
|
|
131
|
-
getLoadedFonts: (
|
|
120
|
+
getLoadedFonts: () => Array.from(loadedGoogleFonts),
|
|
132
121
|
/**
|
|
133
122
|
* Popular Google Fonts for reference.
|
|
134
123
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"font.js","sourceRoot":"","sources":["../../../src/dom/applicators/font.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,
|
|
1
|
+
{"version":3,"file":"font.js","sourceRoot":"","sources":["../../../src/dom/applicators/font.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,48 +19,33 @@ import { advancedLayoutHandlers } from "./advanced-layout.js";
|
|
|
19
19
|
import { backgroundHandlers } from "./background.js";
|
|
20
20
|
import { displayHandlers } from "./display.js";
|
|
21
21
|
import { transitionHandlers } from "./transition.js";
|
|
22
|
+
import { BREAKPOINTS as VARIANT_BREAKPOINTS, VALID_STATES } from "../../variants.js";
|
|
23
|
+
import { ariaHandlers } from "./aria.js";
|
|
22
24
|
/**
|
|
23
|
-
* Tailwind breakpoint values for responsive variants
|
|
25
|
+
* Tailwind breakpoint values for responsive variants.
|
|
26
|
+
* Derived from the shared `variants.ts` table (single source of truth across
|
|
27
|
+
* DOM + Canvas renderers) and expressed as CSS `px` strings for media queries.
|
|
24
28
|
*/
|
|
25
|
-
const BREAKPOINTS = {
|
|
26
|
-
sm: '640px',
|
|
27
|
-
md: '768px',
|
|
28
|
-
lg: '1024px',
|
|
29
|
-
xl: '1280px',
|
|
30
|
-
'2xl': '1536px',
|
|
31
|
-
};
|
|
29
|
+
const BREAKPOINTS = Object.fromEntries(Object.entries(VARIANT_BREAKPOINTS).map(([name, px]) => [name, `${px}px`]));
|
|
32
30
|
/**
|
|
33
|
-
*
|
|
31
|
+
* Singleton stylesheet for variant CSS rules
|
|
34
32
|
*/
|
|
35
|
-
|
|
33
|
+
let variantStyleSheet = null;
|
|
36
34
|
/**
|
|
37
|
-
* Track inserted rules to avoid duplicates
|
|
35
|
+
* Track inserted rules to avoid duplicates
|
|
38
36
|
*/
|
|
39
|
-
const insertedRules = new
|
|
37
|
+
const insertedRules = new Set();
|
|
40
38
|
/**
|
|
41
|
-
* Get or create the variant stylesheet
|
|
39
|
+
* Get or create the variant stylesheet
|
|
42
40
|
*/
|
|
43
|
-
function getVariantStyleSheet(
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const style = doc.createElement('style');
|
|
41
|
+
function getVariantStyleSheet() {
|
|
42
|
+
if (!variantStyleSheet) {
|
|
43
|
+
const style = document.createElement('style');
|
|
47
44
|
style.id = 'hypen-variants';
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
variantStyleSheets.set(doc, sheet);
|
|
45
|
+
document.head.appendChild(style);
|
|
46
|
+
variantStyleSheet = style.sheet;
|
|
51
47
|
}
|
|
52
|
-
return
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Get or create the inserted-rules dedup set for a document
|
|
56
|
-
*/
|
|
57
|
-
function getInsertedRules(doc) {
|
|
58
|
-
let set = insertedRules.get(doc);
|
|
59
|
-
if (!set) {
|
|
60
|
-
set = new Set();
|
|
61
|
-
insertedRules.set(doc, set);
|
|
62
|
-
}
|
|
63
|
-
return set;
|
|
48
|
+
return variantStyleSheet;
|
|
64
49
|
}
|
|
65
50
|
/**
|
|
66
51
|
* Generate a simple hash for deduplication
|
|
@@ -276,23 +261,44 @@ export class ApplicatorRegistry {
|
|
|
276
261
|
setStyleProperty(element, name, value) {
|
|
277
262
|
const atIndex = name.indexOf('@');
|
|
278
263
|
const colonIndex = name.indexOf(':');
|
|
264
|
+
// Combined responsive + state variant: backgroundColor@md:hover.
|
|
265
|
+
// Canonical key order is `<prop>@<bp>:<state>`, so the breakpoint sits
|
|
266
|
+
// between '@' and ':'. Emitted as a pseudo-class rule nested in a media
|
|
267
|
+
// query so it applies only when BOTH the width matches AND the state holds.
|
|
268
|
+
if (atIndex !== -1 && colonIndex !== -1 && colonIndex > atIndex) {
|
|
269
|
+
const prop = name.slice(0, atIndex);
|
|
270
|
+
const breakpoint = name.slice(atIndex + 1, colonIndex);
|
|
271
|
+
const state = name.slice(colonIndex + 1);
|
|
272
|
+
const minWidth = BREAKPOINTS[breakpoint];
|
|
273
|
+
if (minWidth && VALID_STATES.includes(state)) {
|
|
274
|
+
const cssName = this.toKebabCase(prop);
|
|
275
|
+
const cssValue = this.formatCssValue(cssName, value);
|
|
276
|
+
const className = `hypen-${cssName.replace(/[^a-zA-Z0-9-]/g, '')}-${breakpoint}-${state}-${hashValue(value)}`;
|
|
277
|
+
const ruleKey = `${className}:${cssValue}`;
|
|
278
|
+
if (!insertedRules.has(ruleKey)) {
|
|
279
|
+
const sheet = getVariantStyleSheet();
|
|
280
|
+
sheet.insertRule(`@media (min-width: ${minWidth}) { .${className}:${state} { ${cssName}: ${cssValue}; } }`, sheet.cssRules.length);
|
|
281
|
+
insertedRules.add(ruleKey);
|
|
282
|
+
}
|
|
283
|
+
element.classList.add(className);
|
|
284
|
+
}
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
279
287
|
// Responsive variant: padding@md, width@lg, etc.
|
|
280
288
|
if (atIndex !== -1) {
|
|
281
289
|
const prop = name.slice(0, atIndex);
|
|
282
290
|
const breakpoint = name.slice(atIndex + 1);
|
|
283
291
|
const minWidth = BREAKPOINTS[breakpoint];
|
|
284
292
|
if (minWidth) {
|
|
285
|
-
const doc = element.ownerDocument;
|
|
286
|
-
const dedup = getInsertedRules(doc);
|
|
287
293
|
const cssName = this.toKebabCase(prop);
|
|
288
294
|
const cssValue = this.formatCssValue(cssName, value);
|
|
289
295
|
const className = `hypen-${cssName.replace(/[^a-zA-Z0-9-]/g, '')}-${breakpoint}-${hashValue(value)}`;
|
|
290
296
|
const ruleKey = `${className}:${cssValue}`;
|
|
291
297
|
// Avoid duplicate rule insertion
|
|
292
|
-
if (!
|
|
293
|
-
const sheet = getVariantStyleSheet(
|
|
298
|
+
if (!insertedRules.has(ruleKey)) {
|
|
299
|
+
const sheet = getVariantStyleSheet();
|
|
294
300
|
sheet.insertRule(`@media (min-width: ${minWidth}) { .${className} { ${cssName}: ${cssValue}; } }`, sheet.cssRules.length);
|
|
295
|
-
|
|
301
|
+
insertedRules.add(ruleKey);
|
|
296
302
|
}
|
|
297
303
|
element.classList.add(className);
|
|
298
304
|
}
|
|
@@ -302,20 +308,17 @@ export class ApplicatorRegistry {
|
|
|
302
308
|
if (colonIndex !== -1) {
|
|
303
309
|
const prop = name.slice(0, colonIndex);
|
|
304
310
|
const state = name.slice(colonIndex + 1);
|
|
305
|
-
// Only handle known CSS pseudo-states
|
|
306
|
-
|
|
307
|
-
if (validStates.includes(state)) {
|
|
308
|
-
const doc = element.ownerDocument;
|
|
309
|
-
const dedup = getInsertedRules(doc);
|
|
311
|
+
// Only handle known CSS pseudo-states (shared with the Canvas resolver)
|
|
312
|
+
if (VALID_STATES.includes(state)) {
|
|
310
313
|
const cssName = this.toKebabCase(prop);
|
|
311
314
|
const cssValue = this.formatCssValue(cssName, value);
|
|
312
315
|
const className = `hypen-${cssName.replace(/[^a-zA-Z0-9-]/g, '')}-${state}-${hashValue(value)}`;
|
|
313
316
|
const ruleKey = `${className}:${cssValue}`;
|
|
314
317
|
// Avoid duplicate rule insertion
|
|
315
|
-
if (!
|
|
316
|
-
const sheet = getVariantStyleSheet(
|
|
318
|
+
if (!insertedRules.has(ruleKey)) {
|
|
319
|
+
const sheet = getVariantStyleSheet();
|
|
317
320
|
sheet.insertRule(`.${className}:${state} { ${cssName}: ${cssValue}; }`, sheet.cssRules.length);
|
|
318
|
-
|
|
321
|
+
insertedRules.add(ruleKey);
|
|
319
322
|
}
|
|
320
323
|
element.classList.add(className);
|
|
321
324
|
}
|
|
@@ -414,6 +417,9 @@ export class ApplicatorRegistry {
|
|
|
414
417
|
for (const [name, handler] of Object.entries(transitionHandlers)) {
|
|
415
418
|
this.register(name, handler);
|
|
416
419
|
}
|
|
420
|
+
for (const [name, handler] of Object.entries(ariaHandlers)) {
|
|
421
|
+
this.register(name, handler);
|
|
422
|
+
}
|
|
417
423
|
}
|
|
418
424
|
}
|
|
419
425
|
//# sourceMappingURL=index.js.map
|