@hypen-space/web 0.5.2 → 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 (104) hide show
  1. package/dist/canvas/accessibility.d.ts +118 -11
  2. package/dist/canvas/accessibility.js +470 -108
  3. package/dist/canvas/accessibility.js.map +1 -1
  4. package/dist/canvas/dispatch.d.ts +24 -0
  5. package/dist/canvas/dispatch.js +62 -0
  6. package/dist/canvas/dispatch.js.map +1 -0
  7. package/dist/canvas/editing.d.ts +178 -0
  8. package/dist/canvas/editing.js +590 -0
  9. package/dist/canvas/editing.js.map +1 -0
  10. package/dist/canvas/events.d.ts +28 -23
  11. package/dist/canvas/events.js +76 -128
  12. package/dist/canvas/events.js.map +1 -1
  13. package/dist/canvas/focus.d.ts +78 -0
  14. package/dist/canvas/focus.js +182 -0
  15. package/dist/canvas/focus.js.map +1 -0
  16. package/dist/canvas/index.d.ts +3 -1
  17. package/dist/canvas/index.js +3 -1
  18. package/dist/canvas/index.js.map +1 -1
  19. package/dist/canvas/paint.d.ts +16 -3
  20. package/dist/canvas/paint.js +283 -41
  21. package/dist/canvas/paint.js.map +1 -1
  22. package/dist/canvas/renderer.d.ts +20 -1
  23. package/dist/canvas/renderer.js +181 -50
  24. package/dist/canvas/renderer.js.map +1 -1
  25. package/dist/canvas/selection.js +31 -177
  26. package/dist/canvas/selection.js.map +1 -1
  27. package/dist/canvas/text-geometry.d.ts +72 -0
  28. package/dist/canvas/text-geometry.js +244 -0
  29. package/dist/canvas/text-geometry.js.map +1 -0
  30. package/dist/canvas/text.js +42 -9
  31. package/dist/canvas/text.js.map +1 -1
  32. package/dist/canvas/types.d.ts +7 -1
  33. package/dist/canvas/variants.d.ts +4 -1
  34. package/dist/canvas/variants.js +22 -3
  35. package/dist/canvas/variants.js.map +1 -1
  36. package/dist/dom/a11y-styles.d.ts +20 -0
  37. package/dist/dom/a11y-styles.js +61 -0
  38. package/dist/dom/a11y-styles.js.map +1 -0
  39. package/dist/dom/applicators/aria.d.ts +19 -0
  40. package/dist/dom/applicators/aria.js +36 -0
  41. package/dist/dom/applicators/aria.js.map +1 -0
  42. package/dist/dom/applicators/events.d.ts +7 -0
  43. package/dist/dom/applicators/events.js +35 -8
  44. package/dist/dom/applicators/events.js.map +1 -1
  45. package/dist/dom/applicators/index.js +4 -0
  46. package/dist/dom/applicators/index.js.map +1 -1
  47. package/dist/dom/components/hypenapp.d.ts +25 -1
  48. package/dist/dom/components/hypenapp.js +213 -245
  49. package/dist/dom/components/hypenapp.js.map +1 -1
  50. package/dist/dom/components/index.js +7 -0
  51. package/dist/dom/components/index.js.map +1 -1
  52. package/dist/dom/components/spinner.js +24 -10
  53. package/dist/dom/components/spinner.js.map +1 -1
  54. package/dist/dom/components/tabs.d.ts +27 -0
  55. package/dist/dom/components/tabs.js +69 -0
  56. package/dist/dom/components/tabs.js.map +1 -0
  57. package/dist/dom/components/visuallyhidden.d.ts +9 -0
  58. package/dist/dom/components/visuallyhidden.js +26 -0
  59. package/dist/dom/components/visuallyhidden.js.map +1 -0
  60. package/dist/dom/operability.d.ts +100 -0
  61. package/dist/dom/operability.js +298 -0
  62. package/dist/dom/operability.js.map +1 -0
  63. package/dist/dom/renderer.d.ts +98 -5
  64. package/dist/dom/renderer.js +398 -63
  65. package/dist/dom/renderer.js.map +1 -1
  66. package/dist/dom/route-focus.d.ts +42 -0
  67. package/dist/dom/route-focus.js +88 -0
  68. package/dist/dom/route-focus.js.map +1 -0
  69. package/dist/dom/semantics.d.ts +35 -0
  70. package/dist/dom/semantics.js +184 -0
  71. package/dist/dom/semantics.js.map +1 -0
  72. package/package.json +2 -2
  73. package/src/canvas/QUICKSTART.md +4 -4
  74. package/src/canvas/README.md +55 -29
  75. package/src/canvas/accessibility.ts +507 -115
  76. package/src/canvas/dispatch.ts +78 -0
  77. package/src/canvas/editing.ts +697 -0
  78. package/src/canvas/events.ts +89 -142
  79. package/src/canvas/focus.ts +216 -0
  80. package/src/canvas/index.ts +8 -1
  81. package/src/canvas/paint.ts +339 -42
  82. package/src/canvas/renderer.ts +218 -70
  83. package/src/canvas/selection.ts +52 -210
  84. package/src/canvas/text-geometry.ts +311 -0
  85. package/src/canvas/text.ts +43 -9
  86. package/src/canvas/types.ts +14 -1
  87. package/src/canvas/variants.ts +24 -5
  88. package/src/dom/a11y-styles.ts +65 -0
  89. package/src/dom/applicators/aria.ts +41 -0
  90. package/src/dom/applicators/events.ts +38 -7
  91. package/src/dom/applicators/index.ts +5 -0
  92. package/src/dom/components/hypenapp.ts +244 -272
  93. package/src/dom/components/index.ts +7 -0
  94. package/src/dom/components/spinner.ts +31 -13
  95. package/src/dom/components/tabs.ts +76 -0
  96. package/src/dom/components/visuallyhidden.ts +30 -0
  97. package/src/dom/operability.ts +312 -0
  98. package/src/dom/renderer.ts +455 -63
  99. package/src/dom/route-focus.ts +98 -0
  100. package/src/dom/semantics.ts +199 -0
  101. package/dist/canvas/input.d.ts +0 -76
  102. package/dist/canvas/input.js +0 -207
  103. package/dist/canvas/input.js.map +0 -1
  104. package/src/canvas/input.ts +0 -251
@@ -1 +1 @@
1
- {"version":3,"file":"hypenapp.js","sourceRoot":"","sources":["../../../src/dom/components/hypenapp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hypenapp.js","sourceRoot":"","sources":["../../../src/dom/components/hypenapp.ts"],"names":[],"mappings":"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"}
@@ -75,7 +75,10 @@ export class ComponentRegistry {
75
75
  const { hypenAppHandler } = require("./hypenapp.js");
76
76
  const { appHandler } = require("./app.js");
77
77
  const { iconHandler } = require("./icon.js");
78
+ const { visuallyHiddenHandler } = require("./visuallyhidden.js");
79
+ const { tabsHandler, tabHandler, tabPanelHandler, optionHandler } = require("./tabs.js");
78
80
  this.register("app", appHandler);
81
+ this.register("visuallyhidden", visuallyHiddenHandler);
79
82
  this.register("icon", iconHandler);
80
83
  this.register("column", columnHandler);
81
84
  this.register("row", rowHandler);
@@ -106,6 +109,10 @@ export class ComponentRegistry {
106
109
  this.register("video", videoHandler);
107
110
  this.register("audio", audioHandler);
108
111
  this.register("paragraph", paragraphHandler);
112
+ this.register("tabs", tabsHandler);
113
+ this.register("tab", tabHandler);
114
+ this.register("tabpanel", tabPanelHandler);
115
+ this.register("option", optionHandler);
109
116
  this.register("router", routerHandler);
110
117
  this.register("route", routeHandler);
111
118
  this.register("hypenapp", hypenAppHandler);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dom/components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dom/components/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,31 @@
1
1
  /**
2
2
  * Spinner Component (Loading Indicator)
3
3
  */
4
+ const STYLE_ID = "hypen-spinner-styles";
5
+ /**
6
+ * Inject the shared spin keyframes once (same singleton pattern as
7
+ * ensureA11yStyles). Safe to call repeatedly and in non-DOM environments.
8
+ */
9
+ function ensureSpinnerStyles() {
10
+ if (typeof document === "undefined" || !document.head) {
11
+ return;
12
+ }
13
+ if (typeof document.getElementById === "function" && document.getElementById(STYLE_ID)) {
14
+ return;
15
+ }
16
+ const style = document.createElement("style");
17
+ style.id = STYLE_ID;
18
+ style.textContent = `
19
+ @keyframes hypen-spin {
20
+ 0% { transform: rotate(0deg); }
21
+ 100% { transform: rotate(360deg); }
22
+ }
23
+ `;
24
+ document.head.appendChild(style);
25
+ }
4
26
  export const spinnerHandler = {
5
27
  create() {
28
+ ensureSpinnerStyles();
6
29
  const wrapper = document.createElement("div");
7
30
  wrapper.dataset.hypenType = "spinner";
8
31
  wrapper.style.display = "inline-block";
@@ -12,16 +35,7 @@ export const spinnerHandler = {
12
35
  spinner.style.border = "4px solid #f3f3f3";
13
36
  spinner.style.borderTop = "4px solid #3498db";
14
37
  spinner.style.borderRadius = "50%";
15
- spinner.style.animation = "spin 1s linear infinite";
16
- // Add keyframe animation
17
- const style = document.createElement("style");
18
- style.textContent = `
19
- @keyframes spin {
20
- 0% { transform: rotate(0deg); }
21
- 100% { transform: rotate(360deg); }
22
- }
23
- `;
24
- wrapper.appendChild(style);
38
+ spinner.style.animation = "hypen-spin 1s linear infinite";
25
39
  wrapper.appendChild(spinner);
26
40
  return wrapper;
27
41
  },
@@ -1 +1 @@
1
- {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../../src/dom/components/spinner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,cAAc,GAAqB;IAC9C,MAAM;QACJ,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC;QAEvC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,mBAAmB,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,yBAAyB,CAAC;QAEpD,yBAAyB;QACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,WAAW,GAAG;;;;;KAKnB,CAAC;QAEF,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE7B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,UAAU,CAAC,EAAe,EAAE,KAA0B;QACpD,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAgB,CAAC;QAClE,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,OAAO;QACP,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,OAAO,GAA2B;gBACtC,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,MAAM;aACd,CAAC;YACF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;QACpC,CAAC;QAED,QAAQ;QACR,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../../src/dom/components/spinner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,QAAQ,GAAG,sBAAsB,CAAC;AAExC;;;GAGG;AACH,SAAS,mBAAmB;IAC1B,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;;;;;GAKnB,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAqB;IAC9C,MAAM;QACJ,mBAAmB,EAAE,CAAC;QAEtB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC;QAEvC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,mBAAmB,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,+BAA+B,CAAC;QAE1D,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE7B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,UAAU,CAAC,EAAe,EAAE,KAA0B;QACpD,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAgB,CAAC;QAClE,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,OAAO;QACP,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,OAAO,GAA2B;gBACtC,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,MAAM;aACd,CAAC;YACF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;QACpC,CAAC;QAED,QAAQ;QACR,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Composite-widget hosts: Tabs / Tab / TabPanel / Option.
3
+ *
4
+ * These exist so the composite element types render *focusable, styleable*
5
+ * hosts instead of falling through to the unknown-component fallback (a
6
+ * `display: contents` div, which cannot reliably hold keyboard focus). The
7
+ * accessibility roles come from the engine-derived Semantics block
8
+ * (tablist/tab/tabpanel/option), not from these handlers; keyboard roving is
9
+ * wired by the renderer when it sees `role="tablist"` (see operability.ts).
10
+ */
11
+ import type { ComponentHandler } from "./index.js";
12
+ /** Tabs → a plain row container; role="tablist" arrives via semantics. */
13
+ export declare const tabsHandler: ComponentHandler;
14
+ /**
15
+ * Tab → a native `<button>` so focus and Enter/Space activation come free;
16
+ * the engine's `role="tab"` overrides the implicit button role (see the
17
+ * IMPLICIT_ROLE override logic in semantics.ts).
18
+ */
19
+ export declare const tabHandler: ComponentHandler;
20
+ /**
21
+ * TabPanel → a focusable region (`tabindex=0`) so a Tab keypress from the
22
+ * tablist lands inside the panel even when it has no focusable content
23
+ * (WAI-ARIA APG recommendation).
24
+ */
25
+ export declare const tabPanelHandler: ComponentHandler;
26
+ /** Option → a plain div host; role="option" arrives via semantics. */
27
+ export declare const optionHandler: ComponentHandler;
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Composite-widget hosts: Tabs / Tab / TabPanel / Option.
3
+ *
4
+ * These exist so the composite element types render *focusable, styleable*
5
+ * hosts instead of falling through to the unknown-component fallback (a
6
+ * `display: contents` div, which cannot reliably hold keyboard focus). The
7
+ * accessibility roles come from the engine-derived Semantics block
8
+ * (tablist/tab/tabpanel/option), not from these handlers; keyboard roving is
9
+ * wired by the renderer when it sees `role="tablist"` (see operability.ts).
10
+ */
11
+ /** Tabs → a plain row container; role="tablist" arrives via semantics. */
12
+ export const tabsHandler = {
13
+ create() {
14
+ const el = document.createElement("div");
15
+ el.dataset.hypenType = "tabs";
16
+ el.style.display = "flex";
17
+ el.style.flexDirection = "row";
18
+ return el;
19
+ },
20
+ };
21
+ /**
22
+ * Tab → a native `<button>` so focus and Enter/Space activation come free;
23
+ * the engine's `role="tab"` overrides the implicit button role (see the
24
+ * IMPLICIT_ROLE override logic in semantics.ts).
25
+ */
26
+ export const tabHandler = {
27
+ create() {
28
+ const el = document.createElement("button");
29
+ el.setAttribute("type", "button");
30
+ el.dataset.hypenType = "tab";
31
+ return el;
32
+ },
33
+ applyProps(el, props) {
34
+ const text = props["0"] ?? props.text;
35
+ if (text !== undefined) {
36
+ el.dataset.textTemplate = String(text);
37
+ el.textContent = String(text);
38
+ }
39
+ },
40
+ };
41
+ /**
42
+ * TabPanel → a focusable region (`tabindex=0`) so a Tab keypress from the
43
+ * tablist lands inside the panel even when it has no focusable content
44
+ * (WAI-ARIA APG recommendation).
45
+ */
46
+ export const tabPanelHandler = {
47
+ create() {
48
+ const el = document.createElement("div");
49
+ el.dataset.hypenType = "tabpanel";
50
+ el.tabIndex = 0;
51
+ return el;
52
+ },
53
+ };
54
+ /** Option → a plain div host; role="option" arrives via semantics. */
55
+ export const optionHandler = {
56
+ create() {
57
+ const el = document.createElement("div");
58
+ el.dataset.hypenType = "option";
59
+ return el;
60
+ },
61
+ applyProps(el, props) {
62
+ const text = props["0"] ?? props.text;
63
+ if (text !== undefined) {
64
+ el.dataset.textTemplate = String(text);
65
+ el.textContent = String(text);
66
+ }
67
+ },
68
+ };
69
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../src/dom/components/tabs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,0EAA0E;AAC1E,MAAM,CAAC,MAAM,WAAW,GAAqB;IAC3C,MAAM;QACJ,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;QAC9B,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC1B,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAqB;IAC1C,MAAM;QACJ,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC5C,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClC,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,UAAU,CAAC,EAAe,EAAE,KAA0B;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;QACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,EAAE,CAAC,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACvC,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAqB;IAC/C,MAAM;QACJ,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC;QAClC,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;CACF,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C,MAAM;QACJ,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,UAAU,CAAC,EAAe,EAAE,KAA0B;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;QACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,EAAE,CAAC,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACvC,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * VisuallyHidden Component
3
+ *
4
+ * Renders content that is invisible on screen but remains in the accessibility
5
+ * tree for screen readers — the standard "sr-only" pattern. Useful for giving
6
+ * an icon-only control readable text, announcing context, etc.
7
+ */
8
+ import type { ComponentHandler } from "./index.js";
9
+ export declare const visuallyHiddenHandler: ComponentHandler;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * VisuallyHidden Component
3
+ *
4
+ * Renders content that is invisible on screen but remains in the accessibility
5
+ * tree for screen readers — the standard "sr-only" pattern. Useful for giving
6
+ * an icon-only control readable text, announcing context, etc.
7
+ */
8
+ export const visuallyHiddenHandler = {
9
+ create() {
10
+ const el = document.createElement("span");
11
+ el.dataset.hypenType = "visuallyhidden";
12
+ // Standard visually-hidden (sr-only) styles: removed from the visual
13
+ // layout but still read by assistive technology.
14
+ el.style.position = "absolute";
15
+ el.style.width = "1px";
16
+ el.style.height = "1px";
17
+ el.style.padding = "0";
18
+ el.style.margin = "-1px";
19
+ el.style.overflow = "hidden";
20
+ el.style.clip = "rect(0, 0, 0, 0)";
21
+ el.style.whiteSpace = "nowrap";
22
+ el.style.border = "0";
23
+ return el;
24
+ },
25
+ };
26
+ //# sourceMappingURL=visuallyhidden.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visuallyhidden.js","sourceRoot":"","sources":["../../../src/dom/components/visuallyhidden.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,CAAC,MAAM,qBAAqB,GAAqB;IACrD,MAAM;QACJ,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC1C,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,gBAAgB,CAAC;QAExC,qEAAqE;QACrE,iDAAiD;QACjD,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QAC/B,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QACxB,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;QACvB,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,kBAAkB,CAAC;QACnC,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QAC/B,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;QAEtB,OAAO,EAAE,CAAC;IACZ,CAAC;CACF,CAAC"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Keyboard operability for actionable elements.
3
+ *
4
+ * Native interactive elements (`<button>`, `<a href>`) are keyboard-operable
5
+ * for free — the browser activates them on Enter/Space. But Hypen's actionable
6
+ * `Card` renders a plain `<div>`, which is neither focusable nor
7
+ * keyboard-activatable. This module closes that gap: a non-native actionable
8
+ * host is given a `button` role, made focusable (`tabindex=0`), and wired so
9
+ * Enter/Space dispatch the same action as a click.
10
+ *
11
+ * This is intentionally client-side: focus and key handling are synchronous
12
+ * interactions the streaming engine cannot mediate.
13
+ */
14
+ /**
15
+ * Make a non-native actionable element keyboard-operable. Idempotent across
16
+ * re-renders (guarded by a dataset flag). No-op for native interactive tags.
17
+ */
18
+ export declare function makeKeyboardActivatable(element: HTMLElement, actionValue: unknown): void;
19
+ /**
20
+ * Pick the focus target for a Tab keypress within a trapped container, wrapping
21
+ * at the ends.
22
+ *
23
+ * Pure over the ordered list of focusable descendants so it is testable without
24
+ * a real DOM: given the currently-focused element (`active`) and the Shift
25
+ * state, returns the element that should receive focus next, or `null` when
26
+ * there is nothing to focus. Tab past the last element wraps to the first;
27
+ * Shift+Tab past the first wraps to the last. When focus is outside the set,
28
+ * Tab lands on the first element and Shift+Tab on the last.
29
+ */
30
+ export declare function nextTrapFocus<T>(focusable: T[], active: T | null, shift: boolean): T | null;
31
+ /**
32
+ * Pick the tab that should receive focus for a keypress inside a roving
33
+ * tablist (WAI-ARIA APG "Tabs" keyboard contract). Pure over the ordered tab
34
+ * list so it is testable without a real DOM: Arrow Right/Down move to the
35
+ * next tab (wrapping), Arrow Left/Up to the previous (wrapping), Home/End to
36
+ * the first/last. Any other key — or an empty list — returns `null` (leave
37
+ * focus alone).
38
+ */
39
+ export declare function nextRovingFocus<T>(tabs: T[], active: T | null, key: string): T | null;
40
+ /**
41
+ * Pick the item typeahead should move focus to (WAI-ARIA APG first-character
42
+ * navigation). Pure over the ordered item list so it is testable without a
43
+ * real DOM: the search is a case-insensitive `startsWith` over `textOf(item)`,
44
+ * starting from the item AFTER `active` and wrapping; `active` itself is the
45
+ * last candidate, so a query the current item already matches keeps focus in
46
+ * place (multi-char accumulation refining onto the same item). Returns `null`
47
+ * when nothing matches or the query is empty. Query accumulation and its
48
+ * timeout live at the caller.
49
+ */
50
+ export declare function nextTypeaheadFocus<T>(items: T[], active: T | null, query: string, textOf: (item: T) => string): T | null;
51
+ /**
52
+ * Install the WAI-ARIA APG "Tabs" keyboard contract on a tablist container:
53
+ * roving tabindex over the `role="tab"` descendants plus first-character
54
+ * typeahead (see `installRovingWidget`).
55
+ */
56
+ export declare function makeRovingTablist(container: HTMLElement): void;
57
+ /**
58
+ * Install the WAI-ARIA APG "Listbox" keyboard contract on a listbox
59
+ * container: roving tabindex over the `role="option"` descendants plus
60
+ * first-character typeahead (see `installRovingWidget`). No-op for a native
61
+ * `<select>` host (Hypen's `Select`), where the browser already owns arrow
62
+ * and typeahead behaviour.
63
+ */
64
+ export declare function makeRovingListbox(container: HTMLElement): void;
65
+ /**
66
+ * Install a focus trap on a dialog-like container: Tab / Shift+Tab cycle focus
67
+ * among the container's focusable descendants and wrap at the ends. Closing is
68
+ * app state: Escape is handled by `installDialogEscape` only when the dialog
69
+ * declares an `onClose` action. Idempotent across re-renders, guarded by a
70
+ * dataset flag.
71
+ */
72
+ export declare function makeFocusTrap(container: HTMLElement): void;
73
+ /**
74
+ * First focusable descendant of `root` in document order, or `null`. Matches
75
+ * the focus trap's element set (`FOCUSABLE_SELECTOR`) but walks `children`
76
+ * recursively instead of `querySelectorAll`, so it works on hosts without
77
+ * selector support (test doubles) — document order is exactly child order.
78
+ */
79
+ export declare function findFirstFocusable(root: HTMLElement): HTMLElement | null;
80
+ /**
81
+ * Dialog auto-focus on mount (WAI-ARIA APG "Dialog (Modal)"): focus the
82
+ * dialog's first focusable descendant, else the dialog itself (granted
83
+ * programmatic focusability by `focusRouteTarget`). Returns the element that
84
+ * held focus before the dialog opened, so the caller can restore it on close.
85
+ */
86
+ export declare function focusDialogOnOpen(dialog: HTMLElement): HTMLElement | null;
87
+ /**
88
+ * Restore focus to the element that had it before a dialog opened. Skipped
89
+ * when the opener is gone: no longer connected to the document, or living
90
+ * inside the (now closed) dialog itself.
91
+ */
92
+ export declare function restoreDialogFocus(dialog: HTMLElement, opener: HTMLElement | null): void;
93
+ /**
94
+ * Escape-to-close for a dialog that declares an `onClose` action: Escape
95
+ * dispatches the action; the actual close (state flip, unmount) stays with
96
+ * the app. A dialog without `onClose` gets no Escape behaviour — the renderer
97
+ * cannot know how to close it. Idempotent across re-renders, guarded by a
98
+ * dataset flag.
99
+ */
100
+ export declare function installDialogEscape(dialog: HTMLElement, onCloseValue: unknown): void;