@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.js","sourceRoot":"","sources":["../../../src/dom/components/image.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,YAAY,GAAqB;IAC5C,MAAM
|
|
1
|
+
{"version":3,"file":"image.js","sourceRoot":"","sources":["../../../src/dom/components/image.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,YAAY,GAAqB;IAC5C,MAAM;QACJ,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;QAC/B,OAAO,EAAwB,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,EAAe,EAAE,KAA0B;QACpD,MAAM,GAAG,GAAG,EAAsB,CAAC;QAEnC,kDAAkD;QAClD,qEAAqE;QACrE,mEAAmE;QACnE,sDAAsD;QACtD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;QACjD,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YAC9B,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YACnB,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC5B,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Manages mappings from Hypen component types to DOM elements
|
|
5
5
|
*/
|
|
6
6
|
export interface ComponentHandler {
|
|
7
|
-
create(
|
|
7
|
+
create(): HTMLElement;
|
|
8
8
|
applyProps?(element: HTMLElement, props: Record<string, any>): void;
|
|
9
9
|
}
|
|
10
10
|
export declare class ComponentRegistry {
|
|
@@ -21,7 +21,7 @@ export declare class ComponentRegistry {
|
|
|
21
21
|
/**
|
|
22
22
|
* Create element for a component type
|
|
23
23
|
*/
|
|
24
|
-
createElement(type: string, props?: Record<string, any
|
|
24
|
+
createElement(type: string, props?: Record<string, any>): HTMLElement | null;
|
|
25
25
|
/**
|
|
26
26
|
* Register all default Hypen components
|
|
27
27
|
*/
|
|
@@ -25,13 +25,13 @@ export class ComponentRegistry {
|
|
|
25
25
|
/**
|
|
26
26
|
* Create element for a component type
|
|
27
27
|
*/
|
|
28
|
-
createElement(type, props = {}
|
|
28
|
+
createElement(type, props = {}) {
|
|
29
29
|
if (!type)
|
|
30
30
|
return null;
|
|
31
31
|
const handler = this.get(type);
|
|
32
32
|
if (!handler)
|
|
33
33
|
return null;
|
|
34
|
-
const element = handler.create(
|
|
34
|
+
const element = handler.create();
|
|
35
35
|
if (handler.applyProps) {
|
|
36
36
|
handler.applyProps(element, props);
|
|
37
37
|
}
|
|
@@ -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":"AAAA;;;;GAIG;AAOH,MAAM,OAAO,iBAAiB;IACpB,QAAQ,GAAkC,IAAI,GAAG,EAAE,CAAC;IAE5D;QACE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAY,EAAE,OAAyB;QAC9C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY;QACd,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAY,EAAE,QAA6B,EAAE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dom/components/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Input Component
|
|
3
3
|
*/
|
|
4
4
|
export const inputHandler = {
|
|
5
|
-
create(
|
|
6
|
-
const el =
|
|
5
|
+
create() {
|
|
6
|
+
const el = document.createElement("input");
|
|
7
7
|
el.dataset.hypenType = "input";
|
|
8
8
|
// Reset the default user-agent chrome so `.tw("bg-gray-100 rounded-lg")`
|
|
9
9
|
// on an Input reads the same as any other styled element. Without
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/dom/components/input.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,YAAY,GAAqB;IAC5C,MAAM
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/dom/components/input.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,YAAY,GAAqB;IAC5C,MAAM;QACJ,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;QAC/B,yEAAyE;QACzE,kEAAkE;QAClE,oEAAoE;QACpE,gEAAgE;QAChE,iEAAiE;QACjE,uCAAuC;QACvC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC1B,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAC;QACpC,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;QAC1B,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;QAC3B,OAAO,EAAwB,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,EAAe,EAAE,KAA0B;QACpD,MAAM,KAAK,GAAG,EAAsB,CAAC;QAErC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACpC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/dom/components/link.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,WAAW,GAAqB;IAC3C,MAAM
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/dom/components/link.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,WAAW,GAAqB;IAC3C,MAAM;QACJ,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACvC,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,UAAU,CAAC,EAAe,EAAE,KAA0B;QACpD,MAAM,MAAM,GAAG,EAAuB,CAAC;QAEvC,4CAA4C;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;QACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,kBAAkB;QAClB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,eAAe;QACf,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* List Component - Scrollable stack
|
|
3
3
|
*/
|
|
4
4
|
export const listHandler = {
|
|
5
|
-
create(
|
|
6
|
-
const el =
|
|
5
|
+
create() {
|
|
6
|
+
const el = document.createElement("div");
|
|
7
7
|
el.style.display = "flex";
|
|
8
8
|
el.style.flexDirection = "column"; // Default to vertical (like Android)
|
|
9
9
|
// Default to flex-start to match Android/iOS behavior
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/dom/components/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,WAAW,GAAqB;IAC3C,MAAM
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/dom/components/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,WAAW,GAAqB;IAC3C,MAAM;QACJ,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC1B,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC,qCAAqC;QACxE,sDAAsD;QACtD,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,CAAC;QACnC,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;QAC3B,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,UAAU,CAAC,EAAe,EAAE,KAA0B;QACpD,oCAAoC;QACpC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC;QAC9D,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;QACjC,CAAC;QAED,oBAAoB;QACpB,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC5B,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -2,15 +2,14 @@
|
|
|
2
2
|
* Paragraph Component
|
|
3
3
|
*/
|
|
4
4
|
export const paragraphHandler = {
|
|
5
|
-
create(
|
|
6
|
-
const el =
|
|
5
|
+
create() {
|
|
6
|
+
const el = document.createElement("p");
|
|
7
7
|
el.dataset.hypenType = "paragraph";
|
|
8
8
|
return el;
|
|
9
9
|
},
|
|
10
10
|
applyProps(el, props) {
|
|
11
11
|
// Text content
|
|
12
|
-
|
|
13
|
-
const text = props["0"] ?? props.text;
|
|
12
|
+
const text = props["0"] || props.text;
|
|
14
13
|
if (text !== undefined) {
|
|
15
14
|
el.textContent = String(text);
|
|
16
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paragraph.js","sourceRoot":"","sources":["../../../src/dom/components/paragraph.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,gBAAgB,GAAqB;IAChD,MAAM
|
|
1
|
+
{"version":3,"file":"paragraph.js","sourceRoot":"","sources":["../../../src/dom/components/paragraph.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,gBAAgB,GAAqB;IAChD,MAAM;QACJ,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACvC,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,UAAU,CAAC,EAAe,EAAE,KAA0B;QACpD,eAAe;QACf,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;QACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
* ProgressBar Component
|
|
3
3
|
*/
|
|
4
4
|
export const progressBarHandler = {
|
|
5
|
-
create(
|
|
6
|
-
const wrapper =
|
|
5
|
+
create() {
|
|
6
|
+
const wrapper = document.createElement("div");
|
|
7
7
|
wrapper.dataset.hypenType = "progressbar";
|
|
8
8
|
wrapper.style.width = "100%";
|
|
9
9
|
wrapper.style.height = "8px";
|
|
10
10
|
wrapper.style.backgroundColor = "#e0e0e0";
|
|
11
11
|
wrapper.style.borderRadius = "4px";
|
|
12
12
|
wrapper.style.overflow = "hidden";
|
|
13
|
-
const bar =
|
|
13
|
+
const bar = document.createElement("div");
|
|
14
14
|
bar.dataset.hypenBar = "true";
|
|
15
15
|
bar.style.height = "100%";
|
|
16
16
|
bar.style.backgroundColor = "#2196F3";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progressbar.js","sourceRoot":"","sources":["../../../src/dom/components/progressbar.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,kBAAkB,GAAqB;IAClD,MAAM
|
|
1
|
+
{"version":3,"file":"progressbar.js","sourceRoot":"","sources":["../../../src/dom/components/progressbar.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,kBAAkB,GAAqB;IAClD,MAAM;QACJ,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,aAAa,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAElC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,GAAG,CAAC,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC;QAC9B,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAC1B,GAAG,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC;QACtC,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,iBAAiB,CAAC;QACzC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QAEvB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,UAAU,CAAC,EAAe,EAAE,KAA0B;QACpD,MAAM,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,yBAAyB,CAAgB,CAAC;QACvE,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,gBAAgB;QAChB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACnE,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,UAAU,GAAG,CAAC;QAEnC,QAAQ;QACR,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,GAAG,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,SAAS;QACT,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7F,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3B,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
import { frameworkLoggers } from "@hypen-space/core/logger";
|
|
6
6
|
const log = frameworkLoggers.router;
|
|
7
7
|
export const routeHandler = {
|
|
8
|
-
create(
|
|
9
|
-
const el =
|
|
8
|
+
create() {
|
|
9
|
+
const el = document.createElement("div");
|
|
10
10
|
el.style.display = "flex";
|
|
11
11
|
el.style.flexDirection = "column";
|
|
12
12
|
el.style.width = "100%";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../src/dom/components/route.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAEpC,MAAM,CAAC,MAAM,YAAY,GAAqB;IAC5C,MAAM
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../../src/dom/components/route.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC;AAEpC,MAAM,CAAC,MAAM,YAAY,GAAqB;IAC5C,MAAM;QACJ,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC1B,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC;QAClC,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QACxB,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;QAC/B,EAAE,CAAC,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC,uCAAuC;QAC3E,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,UAAU,CAAC,EAAe,EAAE,KAA0B;QACpD,gCAAgC;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QAC7C,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAEpC,kDAAkD;QAClD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;QACrC,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAEtC,sEAAsE;QACtE,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,CAAC;QAC5D,IAAI,aAAa,EAAE,CAAC;YAClB,EAAE,CAAC,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QACpD,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,wBAAwB,IAAI,WAAW,MAAM,gBAAgB,EAAE,CAAC,OAAO,CAAC,cAAc,IAAI,MAAM,GAAG,CAAC,CAAC;IACjH,CAAC;CACF,CAAC"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Router Component - Container for routes
|
|
3
3
|
*/
|
|
4
4
|
export const routerHandler = {
|
|
5
|
-
create(
|
|
6
|
-
const el =
|
|
5
|
+
create() {
|
|
6
|
+
const el = document.createElement("div");
|
|
7
7
|
el.style.display = "flex";
|
|
8
8
|
el.style.flexDirection = "column";
|
|
9
9
|
el.style.width = "100%";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/dom/components/router.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C,MAAM
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/dom/components/router.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C,MAAM;QACJ,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC1B,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC;QAClC,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QACxB,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,UAAU,CAAC,EAAe,EAAE,KAA0B;QACpD,4CAA4C;QAC5C,oDAAoD;IACtD,CAAC;CACF,CAAC"}
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
* Children keep their intrinsic size by default (matching iOS/Android behavior).
|
|
4
4
|
* Use .weight(1) on children to make them expand equally.
|
|
5
5
|
*/
|
|
6
|
-
// Inject global styles for Row with flex/weighted children
|
|
7
|
-
|
|
8
|
-
function ensureRowStyles(
|
|
9
|
-
if (
|
|
6
|
+
// Inject global styles for Row with flex/weighted children
|
|
7
|
+
let rowStylesInjected = false;
|
|
8
|
+
function ensureRowStyles() {
|
|
9
|
+
if (rowStylesInjected)
|
|
10
10
|
return;
|
|
11
|
-
|
|
12
|
-
const style =
|
|
11
|
+
rowStylesInjected = true;
|
|
12
|
+
const style = document.createElement("style");
|
|
13
13
|
style.id = "hypen-row-styles";
|
|
14
14
|
style.textContent = `
|
|
15
15
|
/* Row expands to fill width when it has children with flex/weight */
|
|
@@ -18,12 +18,12 @@ function ensureRowStyles(doc) {
|
|
|
18
18
|
width: 100%;
|
|
19
19
|
}
|
|
20
20
|
`;
|
|
21
|
-
|
|
21
|
+
document.head.appendChild(style);
|
|
22
22
|
}
|
|
23
23
|
export const rowHandler = {
|
|
24
|
-
create(
|
|
25
|
-
ensureRowStyles(
|
|
26
|
-
const el =
|
|
24
|
+
create() {
|
|
25
|
+
ensureRowStyles();
|
|
26
|
+
const el = document.createElement("div");
|
|
27
27
|
el.style.display = "flex";
|
|
28
28
|
el.style.flexDirection = "row";
|
|
29
29
|
// Wrap to content by default (match iOS/Android behavior)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row.js","sourceRoot":"","sources":["../../../src/dom/components/row.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,
|
|
1
|
+
{"version":3,"file":"row.js","sourceRoot":"","sources":["../../../src/dom/components/row.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,2DAA2D;AAC3D,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAC9B,SAAS,eAAe;IACtB,IAAI,iBAAiB;QAAE,OAAO;IAC9B,iBAAiB,GAAG,IAAI,CAAC;IAEzB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,GAAG,kBAAkB,CAAC;IAC9B,KAAK,CAAC,WAAW,GAAG;;;;;;GAMnB,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAqB;IAC1C,MAAM;QACJ,eAAe,EAAE,CAAC;QAElB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC1B,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;QAC/B,0DAA0D;QAC1D,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,CAAC;QACnC,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;CACF,CAAC"}
|
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
* Select Component
|
|
3
3
|
*/
|
|
4
4
|
export const selectHandler = {
|
|
5
|
-
create(
|
|
6
|
-
const el =
|
|
5
|
+
create() {
|
|
6
|
+
const el = document.createElement("select");
|
|
7
7
|
el.dataset.hypenType = "select";
|
|
8
8
|
return el;
|
|
9
9
|
},
|
|
10
10
|
applyProps(el, props) {
|
|
11
|
-
const doc = el.ownerDocument;
|
|
12
11
|
const select = el;
|
|
13
12
|
// Value property
|
|
14
13
|
if (props.value !== undefined) {
|
|
@@ -28,7 +27,7 @@ export const selectHandler = {
|
|
|
28
27
|
select.innerHTML = "";
|
|
29
28
|
// Add new options
|
|
30
29
|
props.options.forEach((opt) => {
|
|
31
|
-
const option =
|
|
30
|
+
const option = document.createElement("option");
|
|
32
31
|
if (typeof opt === "string") {
|
|
33
32
|
option.value = opt;
|
|
34
33
|
option.textContent = opt;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/dom/components/select.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C,MAAM
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/dom/components/select.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C,MAAM;QACJ,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC5C,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;QAChC,OAAO,EAAwB,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,EAAe,EAAE,KAA0B;QACpD,MAAM,MAAM,GAAG,EAAuB,CAAC;QAEvC,iBAAiB;QACjB,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,WAAW;QACX,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAED,WAAW;QACX,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAED,gBAAgB;QAChB,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAClD,yBAAyB;YACzB,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;YAEtB,kBAAkB;YAClB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;gBACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAEhD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC5B,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;oBACnB,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC;gBAC3B,CAAC;qBAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBACnC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;oBACpD,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;oBAC1D,IAAI,GAAG,CAAC,QAAQ;wBAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAC3C,CAAC;gBAED,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.js","sourceRoot":"","sources":["../../../src/dom/components/slider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C,MAAM
|
|
1
|
+
{"version":3,"file":"slider.js","sourceRoot":"","sources":["../../../src/dom/components/slider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C,MAAM;QACJ,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC;QAClB,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;QAChC,OAAO,EAAwB,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,EAAe,EAAE,KAA0B;QACpD,MAAM,KAAK,GAAG,EAAsB,CAAC;QAErC,QAAQ;QACR,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,MAAM;QACN,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC5B,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,MAAM;QACN,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC5B,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,OAAO;QACP,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,WAAW;QACX,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACjC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Spacer Component - Flexible space in flex layouts
|
|
3
3
|
*/
|
|
4
4
|
export const spacerHandler = {
|
|
5
|
-
create(
|
|
6
|
-
const el =
|
|
5
|
+
create() {
|
|
6
|
+
const el = document.createElement("div");
|
|
7
7
|
el.style.flex = "1";
|
|
8
8
|
el.dataset.hypenType = "spacer";
|
|
9
9
|
return el;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spacer.js","sourceRoot":"","sources":["../../../src/dom/components/spacer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C,MAAM
|
|
1
|
+
{"version":3,"file":"spacer.js","sourceRoot":"","sources":["../../../src/dom/components/spacer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C,MAAM;QACJ,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;QACpB,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;CACF,CAAC"}
|
|
@@ -1,27 +1,41 @@
|
|
|
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
|
-
create(
|
|
6
|
-
|
|
27
|
+
create() {
|
|
28
|
+
ensureSpinnerStyles();
|
|
29
|
+
const wrapper = document.createElement("div");
|
|
7
30
|
wrapper.dataset.hypenType = "spinner";
|
|
8
31
|
wrapper.style.display = "inline-block";
|
|
9
|
-
const spinner =
|
|
32
|
+
const spinner = document.createElement("div");
|
|
10
33
|
spinner.style.width = "40px";
|
|
11
34
|
spinner.style.height = "40px";
|
|
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 = doc.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,
|
|
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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Stack Component - Overlaying elements with absolute positioning
|
|
3
3
|
*/
|
|
4
|
-
// Inject global styles once
|
|
5
|
-
|
|
6
|
-
function ensureStackStyles(
|
|
7
|
-
if (
|
|
4
|
+
// Inject global styles once
|
|
5
|
+
let stackStylesInjected = false;
|
|
6
|
+
function ensureStackStyles() {
|
|
7
|
+
if (stackStylesInjected)
|
|
8
8
|
return;
|
|
9
|
-
|
|
10
|
-
const style =
|
|
9
|
+
stackStylesInjected = true;
|
|
10
|
+
const style = document.createElement("style");
|
|
11
11
|
style.id = "hypen-stack-styles";
|
|
12
12
|
style.textContent = `
|
|
13
13
|
[data-hypen-type="stack"] {
|
|
@@ -26,12 +26,12 @@ function ensureStackStyles(doc) {
|
|
|
26
26
|
/* Don't set justify-self/align-self here - let parent's justify-items/align-items control */
|
|
27
27
|
}
|
|
28
28
|
`;
|
|
29
|
-
|
|
29
|
+
document.head.appendChild(style);
|
|
30
30
|
}
|
|
31
31
|
export const stackHandler = {
|
|
32
|
-
create(
|
|
33
|
-
ensureStackStyles(
|
|
34
|
-
const el =
|
|
32
|
+
create() {
|
|
33
|
+
ensureStackStyles();
|
|
34
|
+
const el = document.createElement("div");
|
|
35
35
|
el.dataset.hypenType = "stack";
|
|
36
36
|
return el;
|
|
37
37
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack.js","sourceRoot":"","sources":["../../../src/dom/components/stack.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,
|
|
1
|
+
{"version":3,"file":"stack.js","sourceRoot":"","sources":["../../../src/dom/components/stack.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,4BAA4B;AAC5B,IAAI,mBAAmB,GAAG,KAAK,CAAC;AAChC,SAAS,iBAAiB;IACxB,IAAI,mBAAmB;QAAE,OAAO;IAChC,mBAAmB,GAAG,IAAI,CAAC;IAE3B,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,GAAG,oBAAoB,CAAC;IAChC,KAAK,CAAC,WAAW,GAAG;;;;;;;;;;;;;;;;GAgBnB,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAqB;IAC5C,MAAM;QACJ,iBAAiB,EAAE,CAAC;QAEpB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;QAE/B,OAAO,EAAE,CAAC;IACZ,CAAC;CACF,CAAC"}
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
* Switch Component (Toggle)
|
|
3
3
|
*/
|
|
4
4
|
export const switchHandler = {
|
|
5
|
-
create(
|
|
6
|
-
const wrapper =
|
|
5
|
+
create() {
|
|
6
|
+
const wrapper = document.createElement("label");
|
|
7
7
|
wrapper.dataset.hypenType = "switch";
|
|
8
8
|
wrapper.style.display = "inline-flex";
|
|
9
9
|
wrapper.style.alignItems = "center";
|
|
10
10
|
wrapper.style.gap = "8px";
|
|
11
11
|
wrapper.style.cursor = "pointer";
|
|
12
|
-
const input =
|
|
12
|
+
const input = document.createElement("input");
|
|
13
13
|
input.type = "checkbox";
|
|
14
14
|
input.dataset.hypenSwitch = "true";
|
|
15
15
|
// Style the switch
|
|
@@ -22,7 +22,7 @@ export const switchHandler = {
|
|
|
22
22
|
input.style.cursor = "pointer";
|
|
23
23
|
input.style.transition = "background-color 0.2s";
|
|
24
24
|
// Add pseudo-element styling via CSS
|
|
25
|
-
const style =
|
|
25
|
+
const style = document.createElement("style");
|
|
26
26
|
style.textContent = `
|
|
27
27
|
input[data-hypen-switch="true"]::before {
|
|
28
28
|
content: "";
|
|
@@ -47,7 +47,6 @@ export const switchHandler = {
|
|
|
47
47
|
return wrapper;
|
|
48
48
|
},
|
|
49
49
|
applyProps(el, props) {
|
|
50
|
-
const doc = el.ownerDocument;
|
|
51
50
|
const input = el.querySelector('input[type="checkbox"]');
|
|
52
51
|
if (!input)
|
|
53
52
|
return;
|
|
@@ -66,7 +65,7 @@ export const switchHandler = {
|
|
|
66
65
|
const textNodes = Array.from(el.childNodes).filter(node => node.nodeType === Node.TEXT_NODE);
|
|
67
66
|
textNodes.forEach(node => node.remove());
|
|
68
67
|
// Add new label text
|
|
69
|
-
el.appendChild(
|
|
68
|
+
el.appendChild(document.createTextNode(String(label)));
|
|
70
69
|
}
|
|
71
70
|
},
|
|
72
71
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/dom/components/switch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C,MAAM
|
|
1
|
+
{"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/dom/components/switch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C,MAAM;QACJ,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,aAAa,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;QAEjC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;QACxB,KAAK,CAAC,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC;QAEnC,mBAAmB;QACnB,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;QAChC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QAC3B,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAC5B,KAAK,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC;QACrC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;QAClC,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QAClC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;QAC/B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,uBAAuB,CAAC;QAEjD,qCAAqC;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,WAAW,GAAG;;;;;;;;;;;;;;;;;;KAkBnB,CAAC;QACF,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE3B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,UAAU,CAAC,EAAe,EAAE,KAA0B;QACpD,MAAM,KAAK,GAAG,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAqB,CAAC;QAC7E,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,qBAAqB;QACrB,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC3B,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,WAAW;QACX,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACjC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;QAED,aAAa;QACb,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC;QACxC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,mCAAmC;YACnC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CAChD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,CACzC,CAAC;YACF,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAEzC,qBAAqB;YACrB,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzD,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;
|