@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.
Files changed (229) hide show
  1. package/README.md +20 -13
  2. package/dist/canvas/accessibility.d.ts +118 -11
  3. package/dist/canvas/accessibility.js +470 -108
  4. package/dist/canvas/accessibility.js.map +1 -1
  5. package/dist/canvas/dispatch.d.ts +24 -0
  6. package/dist/canvas/dispatch.js +62 -0
  7. package/dist/canvas/dispatch.js.map +1 -0
  8. package/dist/canvas/editing.d.ts +178 -0
  9. package/dist/canvas/editing.js +590 -0
  10. package/dist/canvas/editing.js.map +1 -0
  11. package/dist/canvas/events.d.ts +28 -23
  12. package/dist/canvas/events.js +90 -103
  13. package/dist/canvas/events.js.map +1 -1
  14. package/dist/canvas/focus.d.ts +78 -0
  15. package/dist/canvas/focus.js +182 -0
  16. package/dist/canvas/focus.js.map +1 -0
  17. package/dist/canvas/index.d.ts +3 -2
  18. package/dist/canvas/index.js +3 -2
  19. package/dist/canvas/index.js.map +1 -1
  20. package/dist/canvas/layout.js +68 -98
  21. package/dist/canvas/layout.js.map +1 -1
  22. package/dist/canvas/paint.d.ts +16 -3
  23. package/dist/canvas/paint.js +449 -110
  24. package/dist/canvas/paint.js.map +1 -1
  25. package/dist/canvas/renderer.d.ts +28 -4
  26. package/dist/canvas/renderer.js +201 -81
  27. package/dist/canvas/renderer.js.map +1 -1
  28. package/dist/canvas/selection.js +31 -177
  29. package/dist/canvas/selection.js.map +1 -1
  30. package/dist/canvas/text-geometry.d.ts +72 -0
  31. package/dist/canvas/text-geometry.js +244 -0
  32. package/dist/canvas/text-geometry.js.map +1 -0
  33. package/dist/canvas/text.js +44 -18
  34. package/dist/canvas/text.js.map +1 -1
  35. package/dist/canvas/types.d.ts +10 -1
  36. package/dist/canvas/utils.d.ts +0 -23
  37. package/dist/canvas/utils.js +3 -67
  38. package/dist/canvas/utils.js.map +1 -1
  39. package/dist/canvas/variants.d.ts +52 -0
  40. package/dist/canvas/variants.js +156 -0
  41. package/dist/canvas/variants.js.map +1 -0
  42. package/dist/dom/a11y-styles.d.ts +20 -0
  43. package/dist/dom/a11y-styles.js +61 -0
  44. package/dist/dom/a11y-styles.js.map +1 -0
  45. package/dist/dom/applicators/aria.d.ts +19 -0
  46. package/dist/dom/applicators/aria.js +36 -0
  47. package/dist/dom/applicators/aria.js.map +1 -0
  48. package/dist/dom/applicators/events.d.ts +7 -0
  49. package/dist/dom/applicators/events.js +36 -8
  50. package/dist/dom/applicators/events.js.map +1 -1
  51. package/dist/dom/applicators/font.d.ts +11 -6
  52. package/dist/dom/applicators/font.js +16 -27
  53. package/dist/dom/applicators/font.js.map +1 -1
  54. package/dist/dom/applicators/index.js +51 -45
  55. package/dist/dom/applicators/index.js.map +1 -1
  56. package/dist/dom/canvas/index.js +2 -2
  57. package/dist/dom/canvas/index.js.map +1 -1
  58. package/dist/dom/components/app.js +2 -2
  59. package/dist/dom/components/app.js.map +1 -1
  60. package/dist/dom/components/audio.js +2 -2
  61. package/dist/dom/components/audio.js.map +1 -1
  62. package/dist/dom/components/avatar.js +3 -4
  63. package/dist/dom/components/avatar.js.map +1 -1
  64. package/dist/dom/components/badge.js +3 -4
  65. package/dist/dom/components/badge.js.map +1 -1
  66. package/dist/dom/components/button.js +2 -2
  67. package/dist/dom/components/button.js.map +1 -1
  68. package/dist/dom/components/card.js +2 -2
  69. package/dist/dom/components/card.js.map +1 -1
  70. package/dist/dom/components/center.js +2 -2
  71. package/dist/dom/components/center.js.map +1 -1
  72. package/dist/dom/components/checkbox.js +4 -5
  73. package/dist/dom/components/checkbox.js.map +1 -1
  74. package/dist/dom/components/column.js +2 -2
  75. package/dist/dom/components/column.js.map +1 -1
  76. package/dist/dom/components/container.js +2 -2
  77. package/dist/dom/components/container.js.map +1 -1
  78. package/dist/dom/components/divider.js +2 -2
  79. package/dist/dom/components/divider.js.map +1 -1
  80. package/dist/dom/components/grid.js +10 -10
  81. package/dist/dom/components/grid.js.map +1 -1
  82. package/dist/dom/components/heading.js +4 -6
  83. package/dist/dom/components/heading.js.map +1 -1
  84. package/dist/dom/components/hypenapp.d.ts +25 -1
  85. package/dist/dom/components/hypenapp.js +215 -247
  86. package/dist/dom/components/hypenapp.js.map +1 -1
  87. package/dist/dom/components/icon.js +4 -5
  88. package/dist/dom/components/icon.js.map +1 -1
  89. package/dist/dom/components/image.js +2 -2
  90. package/dist/dom/components/image.js.map +1 -1
  91. package/dist/dom/components/index.d.ts +2 -2
  92. package/dist/dom/components/index.js +9 -2
  93. package/dist/dom/components/index.js.map +1 -1
  94. package/dist/dom/components/input.js +2 -2
  95. package/dist/dom/components/input.js.map +1 -1
  96. package/dist/dom/components/link.js +2 -2
  97. package/dist/dom/components/link.js.map +1 -1
  98. package/dist/dom/components/list.js +2 -2
  99. package/dist/dom/components/list.js.map +1 -1
  100. package/dist/dom/components/paragraph.js +3 -4
  101. package/dist/dom/components/paragraph.js.map +1 -1
  102. package/dist/dom/components/progressbar.js +3 -3
  103. package/dist/dom/components/progressbar.js.map +1 -1
  104. package/dist/dom/components/route.js +2 -2
  105. package/dist/dom/components/route.js.map +1 -1
  106. package/dist/dom/components/router.js +2 -2
  107. package/dist/dom/components/router.js.map +1 -1
  108. package/dist/dom/components/row.js +10 -10
  109. package/dist/dom/components/row.js.map +1 -1
  110. package/dist/dom/components/select.js +3 -4
  111. package/dist/dom/components/select.js.map +1 -1
  112. package/dist/dom/components/slider.js +2 -2
  113. package/dist/dom/components/slider.js.map +1 -1
  114. package/dist/dom/components/spacer.js +2 -2
  115. package/dist/dom/components/spacer.js.map +1 -1
  116. package/dist/dom/components/spinner.js +27 -13
  117. package/dist/dom/components/spinner.js.map +1 -1
  118. package/dist/dom/components/stack.js +10 -10
  119. package/dist/dom/components/stack.js.map +1 -1
  120. package/dist/dom/components/switch.js +5 -6
  121. package/dist/dom/components/switch.js.map +1 -1
  122. package/dist/dom/components/tabs.d.ts +27 -0
  123. package/dist/dom/components/tabs.js +69 -0
  124. package/dist/dom/components/tabs.js.map +1 -0
  125. package/dist/dom/components/text.js +4 -7
  126. package/dist/dom/components/text.js.map +1 -1
  127. package/dist/dom/components/textarea.js +2 -2
  128. package/dist/dom/components/textarea.js.map +1 -1
  129. package/dist/dom/components/video.js +2 -2
  130. package/dist/dom/components/video.js.map +1 -1
  131. package/dist/dom/components/visuallyhidden.d.ts +9 -0
  132. package/dist/dom/components/visuallyhidden.js +26 -0
  133. package/dist/dom/components/visuallyhidden.js.map +1 -0
  134. package/dist/dom/debug.js +6 -8
  135. package/dist/dom/debug.js.map +1 -1
  136. package/dist/dom/index.d.ts +0 -1
  137. package/dist/dom/index.js +0 -1
  138. package/dist/dom/index.js.map +1 -1
  139. package/dist/dom/operability.d.ts +100 -0
  140. package/dist/dom/operability.js +298 -0
  141. package/dist/dom/operability.js.map +1 -0
  142. package/dist/dom/renderer.d.ts +98 -5
  143. package/dist/dom/renderer.js +400 -66
  144. package/dist/dom/renderer.js.map +1 -1
  145. package/dist/dom/route-focus.d.ts +42 -0
  146. package/dist/dom/route-focus.js +88 -0
  147. package/dist/dom/route-focus.js.map +1 -0
  148. package/dist/dom/semantics.d.ts +35 -0
  149. package/dist/dom/semantics.js +184 -0
  150. package/dist/dom/semantics.js.map +1 -0
  151. package/dist/variants.d.ts +90 -0
  152. package/dist/variants.js +206 -0
  153. package/dist/variants.js.map +1 -0
  154. package/package.json +2 -2
  155. package/src/canvas/QUICKSTART.md +16 -11
  156. package/src/canvas/README.md +63 -34
  157. package/src/canvas/accessibility.ts +507 -115
  158. package/src/canvas/dispatch.ts +78 -0
  159. package/src/canvas/editing.ts +697 -0
  160. package/src/canvas/events.ts +104 -115
  161. package/src/canvas/focus.ts +216 -0
  162. package/src/canvas/index.ts +8 -9
  163. package/src/canvas/layout.ts +68 -103
  164. package/src/canvas/paint.ts +509 -109
  165. package/src/canvas/renderer.ts +239 -99
  166. package/src/canvas/selection.ts +52 -210
  167. package/src/canvas/text-geometry.ts +311 -0
  168. package/src/canvas/text.ts +45 -18
  169. package/src/canvas/types.ts +28 -1
  170. package/src/canvas/utils.ts +3 -69
  171. package/src/canvas/variants.ts +172 -0
  172. package/src/dom/README.md +8 -7
  173. package/src/dom/a11y-styles.ts +65 -0
  174. package/src/dom/applicators/aria.ts +41 -0
  175. package/src/dom/applicators/events.ts +39 -7
  176. package/src/dom/applicators/font.ts +16 -29
  177. package/src/dom/applicators/index.ts +61 -46
  178. package/src/dom/canvas/index.ts +2 -2
  179. package/src/dom/components/app.ts +2 -2
  180. package/src/dom/components/audio.ts +2 -2
  181. package/src/dom/components/avatar.ts +3 -4
  182. package/src/dom/components/badge.ts +3 -4
  183. package/src/dom/components/button.ts +2 -2
  184. package/src/dom/components/card.ts +2 -2
  185. package/src/dom/components/center.ts +2 -2
  186. package/src/dom/components/checkbox.ts +4 -5
  187. package/src/dom/components/column.ts +2 -2
  188. package/src/dom/components/container.ts +2 -2
  189. package/src/dom/components/divider.ts +2 -2
  190. package/src/dom/components/grid.ts +10 -10
  191. package/src/dom/components/heading.ts +4 -6
  192. package/src/dom/components/hypenapp.ts +246 -274
  193. package/src/dom/components/icon.ts +4 -5
  194. package/src/dom/components/image.ts +2 -2
  195. package/src/dom/components/index.ts +10 -3
  196. package/src/dom/components/input.ts +2 -2
  197. package/src/dom/components/link.ts +2 -2
  198. package/src/dom/components/list.ts +2 -2
  199. package/src/dom/components/paragraph.ts +3 -4
  200. package/src/dom/components/progressbar.ts +3 -3
  201. package/src/dom/components/route.ts +2 -2
  202. package/src/dom/components/router.ts +2 -2
  203. package/src/dom/components/row.ts +10 -10
  204. package/src/dom/components/select.ts +3 -4
  205. package/src/dom/components/slider.ts +2 -2
  206. package/src/dom/components/spacer.ts +2 -2
  207. package/src/dom/components/spinner.ts +34 -16
  208. package/src/dom/components/stack.ts +10 -10
  209. package/src/dom/components/switch.ts +5 -6
  210. package/src/dom/components/tabs.ts +76 -0
  211. package/src/dom/components/text.ts +4 -7
  212. package/src/dom/components/textarea.ts +2 -2
  213. package/src/dom/components/video.ts +2 -2
  214. package/src/dom/components/visuallyhidden.ts +30 -0
  215. package/src/dom/debug.ts +6 -8
  216. package/src/dom/index.ts +0 -8
  217. package/src/dom/operability.ts +312 -0
  218. package/src/dom/renderer.ts +457 -66
  219. package/src/dom/route-focus.ts +98 -0
  220. package/src/dom/semantics.ts +199 -0
  221. package/src/variants.ts +249 -0
  222. package/dist/canvas/input.d.ts +0 -76
  223. package/dist/canvas/input.js +0 -207
  224. package/dist/canvas/input.js.map +0 -1
  225. package/dist/client.d.ts +0 -36
  226. package/dist/client.js +0 -47
  227. package/dist/client.js.map +0 -1
  228. package/src/canvas/input.ts +0 -251
  229. 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 = `${eventType}:${actionName}`;
151
+ const eventKey = eventType;
147
152
  if (getRegisteredEvents(element).has(eventKey)) {
148
- // Already registered - skip to avoid duplicates
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: (fontName: string, doc?: Document) => void;
15
+ preload: typeof loadGoogleFont;
12
16
  /**
13
- * Check if a font has been loaded in the given document (defaults to global).
17
+ * Check if a font has been loaded.
14
18
  */
15
- isLoaded: (fontName: string, doc?: Document) => boolean;
19
+ isLoaded: (fontName: string) => boolean;
16
20
  /**
17
- * Get list of loaded fonts for the given document (defaults to global).
21
+ * Get list of loaded fonts.
18
22
  */
19
- getLoadedFonts: (doc?: Document) => string[];
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 per-document to avoid duplicate link tags
6
- const loadedGoogleFonts = new WeakMap();
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 into the given document.
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, doc) {
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 (loaded.has(normalized) || isSystemFont(normalized)) {
30
+ if (loadedGoogleFonts.has(normalized) || isSystemFont(normalized)) {
41
31
  return;
42
32
  }
43
33
  // Mark as loading to avoid duplicates
44
- loaded.add(normalized);
34
+ loadedGoogleFonts.add(normalized);
45
35
  // Create link element for Google Fonts
46
- const link = doc.createElement("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
- doc.head.appendChild(link);
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, doc) {
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, doc);
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, el.ownerDocument);
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: (fontName, doc = document) => loadGoogleFont(fontName, doc),
112
+ preload: loadGoogleFont,
124
113
  /**
125
- * Check if a font has been loaded in the given document (defaults to global).
114
+ * Check if a font has been loaded.
126
115
  */
127
- isLoaded: (fontName, doc = document) => getLoadedSet(doc).has(fontName.trim()),
116
+ isLoaded: (fontName) => loadedGoogleFonts.has(fontName.trim()),
128
117
  /**
129
- * Get list of loaded fonts for the given document (defaults to global).
118
+ * Get list of loaded fonts.
130
119
  */
131
- getLoadedFonts: (doc = document) => Array.from(getLoadedSet(doc)),
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":"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"}
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
- * Per-document stylesheet for variant CSS rules
31
+ * Singleton stylesheet for variant CSS rules
34
32
  */
35
- const variantStyleSheets = new Map();
33
+ let variantStyleSheet = null;
36
34
  /**
37
- * Track inserted rules to avoid duplicates (per-document)
35
+ * Track inserted rules to avoid duplicates
38
36
  */
39
- const insertedRules = new Map();
37
+ const insertedRules = new Set();
40
38
  /**
41
- * Get or create the variant stylesheet for a document
39
+ * Get or create the variant stylesheet
42
40
  */
43
- function getVariantStyleSheet(doc) {
44
- let sheet = variantStyleSheets.get(doc);
45
- if (!sheet) {
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
- doc.head.appendChild(style);
49
- sheet = style.sheet;
50
- variantStyleSheets.set(doc, sheet);
45
+ document.head.appendChild(style);
46
+ variantStyleSheet = style.sheet;
51
47
  }
52
- return sheet;
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 (!dedup.has(ruleKey)) {
293
- const sheet = getVariantStyleSheet(doc);
298
+ if (!insertedRules.has(ruleKey)) {
299
+ const sheet = getVariantStyleSheet();
294
300
  sheet.insertRule(`@media (min-width: ${minWidth}) { .${className} { ${cssName}: ${cssValue}; } }`, sheet.cssRules.length);
295
- dedup.add(ruleKey);
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
- const validStates = ['hover', 'focus', 'active', 'disabled', 'focus-visible', 'focus-within'];
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 (!dedup.has(ruleKey)) {
316
- const sheet = getVariantStyleSheet(doc);
318
+ if (!insertedRules.has(ruleKey)) {
319
+ const sheet = getVariantStyleSheet();
317
320
  sheet.insertRule(`.${className}:${state} { ${cssName}: ${cssValue}; }`, sheet.cssRules.length);
318
- dedup.add(ruleKey);
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