@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":"index.js","sourceRoot":"","sources":["../../../src/dom/applicators/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dom/applicators/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * HypenApp Component
3
3
  *
4
- * Embeds a remote Hypen app via WebSocket
4
+ * Embeds a remote Hypen app via WebSocket.
5
5
  *
6
6
  * Usage in Hypen DSL:
7
7
  * ```hypen
@@ -9,9 +9,33 @@
9
9
  *
10
10
  * // Or with named prop:
11
11
  * HypenApp(url: "ws://localhost:3000")
12
+ *
13
+ * // With custom loading / error UI via slot children:
14
+ * HypenApp("ws://localhost:3000") {
15
+ * Column { Spinner() Text("Connecting to app...") }.slot("loading")
16
+ * Column { Text("Couldn't reach the app") }.slot("error")
17
+ * }
12
18
  * ```
19
+ *
20
+ * Slot children are rendered by the *host* app (they're ordinary host
21
+ * nodes with full access to host state and actions); the handler only
22
+ * toggles their visibility as the connection moves through
23
+ * loading → connected / error. Children without a recognized slot render
24
+ * unconditionally. When a slot isn't provided, a built-in fallback is
25
+ * used ("Connecting..." text / red error message).
26
+ *
27
+ * The embedded app is rendered by a full `DOMRenderer` driven by its own
28
+ * `RemoteEngine` — the exact pairing the generic client uses at top level —
29
+ * so embedded apps get identical styling, event dispatch, router patch
30
+ * handling, and a11y behavior to a standalone page. (Route-change focus is
31
+ * disabled: the *host* app owns focus management; an embedded frame stealing
32
+ * focus on its internal navigations would fight it.) It renders into a
33
+ * dedicated content wrapper so slot toggling and error handling never
34
+ * touch host-owned slot children, and vice versa.
13
35
  */
14
36
  import type { ComponentHandler } from "./index.js";
37
+ export declare const LOADING_SLOT = "loading";
38
+ export declare const ERROR_SLOT = "error";
15
39
  export declare const hypenAppHandler: ComponentHandler;
16
40
  /**
17
41
  * Disconnect a HypenApp instance
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * HypenApp Component
3
3
  *
4
- * Embeds a remote Hypen app via WebSocket
4
+ * Embeds a remote Hypen app via WebSocket.
5
5
  *
6
6
  * Usage in Hypen DSL:
7
7
  * ```hypen
@@ -9,13 +9,156 @@
9
9
  *
10
10
  * // Or with named prop:
11
11
  * HypenApp(url: "ws://localhost:3000")
12
+ *
13
+ * // With custom loading / error UI via slot children:
14
+ * HypenApp("ws://localhost:3000") {
15
+ * Column { Spinner() Text("Connecting to app...") }.slot("loading")
16
+ * Column { Text("Couldn't reach the app") }.slot("error")
17
+ * }
12
18
  * ```
19
+ *
20
+ * Slot children are rendered by the *host* app (they're ordinary host
21
+ * nodes with full access to host state and actions); the handler only
22
+ * toggles their visibility as the connection moves through
23
+ * loading → connected / error. Children without a recognized slot render
24
+ * unconditionally. When a slot isn't provided, a built-in fallback is
25
+ * used ("Connecting..." text / red error message).
26
+ *
27
+ * The embedded app is rendered by a full `DOMRenderer` driven by its own
28
+ * `RemoteEngine` — the exact pairing the generic client uses at top level —
29
+ * so embedded apps get identical styling, event dispatch, router patch
30
+ * handling, and a11y behavior to a standalone page. (Route-change focus is
31
+ * disabled: the *host* app owns focus management; an embedded frame stealing
32
+ * focus on its internal navigations would fight it.) It renders into a
33
+ * dedicated content wrapper so slot toggling and error handling never
34
+ * touch host-owned slot children, and vice versa.
13
35
  */
14
36
  import { RemoteEngine } from "@hypen-space/core/remote/client";
37
+ import { getElementDisposables } from "@hypen-space/core/disposable";
15
38
  import { frameworkLoggers } from "@hypen-space/core/logger";
16
39
  const log = frameworkLoggers.remote;
40
+ export const LOADING_SLOT = "loading";
41
+ export const ERROR_SLOT = "error";
17
42
  // Store active HypenApp instances for cleanup
18
43
  const activeInstances = new WeakMap();
44
+ /** Direct children of the container tagged with `.slot(name)`. */
45
+ function slotChildren(element, name) {
46
+ const out = [];
47
+ for (const child of Array.from(element.children)) {
48
+ if (child.dataset?.hypenSlot === name) {
49
+ out.push(child);
50
+ }
51
+ }
52
+ return out;
53
+ }
54
+ /**
55
+ * Hide/show an element while preserving its inline display value —
56
+ * applicators set `display: flex` etc. inline, so a plain `display = ""`
57
+ * on re-show would lose the element's layout.
58
+ */
59
+ function setVisible(el, visible) {
60
+ const hidden = el.dataset.hypenSlotHidden === "true";
61
+ if (visible && hidden) {
62
+ el.style.display = el.dataset.hypenPrevDisplay ?? "";
63
+ delete el.dataset.hypenPrevDisplay;
64
+ delete el.dataset.hypenSlotHidden;
65
+ }
66
+ else if (!visible && !hidden) {
67
+ el.dataset.hypenPrevDisplay = el.style.display;
68
+ el.dataset.hypenSlotHidden = "true";
69
+ el.style.display = "none";
70
+ }
71
+ }
72
+ /**
73
+ * Connection-state → visibility controller for one HypenApp container.
74
+ *
75
+ * Slot children arrive via Insert patches *after* the container's Create
76
+ * (and can arrive/leave any time under ForEach/When), so visibility is
77
+ * re-applied from a MutationObserver rather than computed once.
78
+ */
79
+ class SlotVisibilityController {
80
+ element;
81
+ contentHost;
82
+ status = "loading";
83
+ errorMessage = "";
84
+ defaultLoading = null;
85
+ defaultError = null;
86
+ observer = null;
87
+ constructor(element, contentHost) {
88
+ this.element = element;
89
+ this.contentHost = contentHost;
90
+ // Slot children arrive via Insert patches *after* this controller is
91
+ // constructed, so re-apply visibility whenever the container's child
92
+ // list changes (falls back to status-change-only updates where
93
+ // MutationObserver is unavailable, e.g. non-DOM test envs).
94
+ if (typeof MutationObserver !== "undefined") {
95
+ this.observer = new MutationObserver(() => this.update());
96
+ this.observer.observe(element, { childList: true });
97
+ }
98
+ this.update();
99
+ }
100
+ setStatus(status, errorMessage) {
101
+ this.status = status;
102
+ if (errorMessage !== undefined)
103
+ this.errorMessage = errorMessage;
104
+ this.element.dataset.hypenAppStatus = status;
105
+ this.update();
106
+ }
107
+ update() {
108
+ const showLoading = this.status === "loading";
109
+ const showError = this.status === "error";
110
+ const loadingSlots = slotChildren(this.element, LOADING_SLOT);
111
+ const errorSlots = slotChildren(this.element, ERROR_SLOT);
112
+ for (const el of loadingSlots)
113
+ setVisible(el, showLoading);
114
+ for (const el of errorSlots)
115
+ setVisible(el, showError);
116
+ // Built-in fallbacks only cover states the host didn't style.
117
+ this.toggleDefaultLoading(showLoading && loadingSlots.length === 0);
118
+ this.toggleDefaultError(showError && errorSlots.length === 0);
119
+ // A failed connection may leave a partial embedded tree behind;
120
+ // don't show it alongside the error UI.
121
+ setVisible(this.contentHost, !showError);
122
+ }
123
+ toggleDefaultLoading(show) {
124
+ if (show && !this.defaultLoading) {
125
+ const el = document.createElement("div");
126
+ el.className = "hypen-app-loading";
127
+ el.textContent = "Connecting...";
128
+ this.defaultLoading = el;
129
+ this.element.appendChild(el);
130
+ }
131
+ else if (!show && this.defaultLoading) {
132
+ this.defaultLoading.remove();
133
+ this.defaultLoading = null;
134
+ }
135
+ }
136
+ toggleDefaultError(show) {
137
+ if (show && !this.defaultError) {
138
+ const el = document.createElement("div");
139
+ el.className = "hypen-app-error";
140
+ el.style.color = "red";
141
+ this.defaultError = el;
142
+ this.element.appendChild(el);
143
+ }
144
+ if (this.defaultError) {
145
+ if (show) {
146
+ this.defaultError.textContent = this.errorMessage || "HypenApp: Connection failed";
147
+ }
148
+ else {
149
+ this.defaultError.remove();
150
+ this.defaultError = null;
151
+ }
152
+ }
153
+ }
154
+ dispose() {
155
+ this.observer?.disconnect();
156
+ this.defaultLoading?.remove();
157
+ this.defaultError?.remove();
158
+ this.defaultLoading = null;
159
+ this.defaultError = null;
160
+ }
161
+ }
19
162
  export const hypenAppHandler = {
20
163
  create() {
21
164
  const el = document.createElement("div");
@@ -26,283 +169,108 @@ export const hypenAppHandler = {
26
169
  applyProps(element, props) {
27
170
  // Get URL from props (can be positional "0" or named "url")
28
171
  const url = props["0"] || props.url;
29
- if (!url || typeof url !== "string") {
30
- log.error("HypenApp: URL is required");
31
- element.innerHTML = '<div style="color: red;">HypenApp: URL required</div>';
32
- return;
33
- }
34
- // Check if already connected
35
172
  const existing = activeInstances.get(element);
36
173
  if (existing) {
37
- // Already connected, don't reconnect
174
+ if (existing.url === url)
175
+ return; // Already connected to this app
176
+ // URL changed (or became invalid) — tear down and reconnect below.
177
+ existing.dispose();
178
+ activeInstances.delete(element);
179
+ }
180
+ // The nested renderer owns this wrapper; host-owned slot children are
181
+ // siblings of it, so neither side's cleanup can clobber the other.
182
+ const contentHost = document.createElement("div");
183
+ contentHost.className = "hypen-app-content";
184
+ contentHost.style.display = "contents";
185
+ element.appendChild(contentHost);
186
+ const visibility = new SlotVisibilityController(element, contentHost);
187
+ if (!url || typeof url !== "string") {
188
+ log.error("HypenApp: URL is required");
189
+ visibility.setStatus("error", "HypenApp: URL required");
190
+ activeInstances.set(element, {
191
+ engine: null,
192
+ renderer: null,
193
+ url: null,
194
+ dispose() {
195
+ visibility.dispose();
196
+ contentHost.remove();
197
+ },
198
+ });
38
199
  return;
39
200
  }
40
- // Create the remote engine
201
+ // Lazy-required to break the static cycle:
202
+ // renderer.ts → components/index.ts → hypenapp.ts → renderer.ts
203
+ const { DOMRenderer: Renderer } = require("../renderer.js");
41
204
  const engine = new RemoteEngine(url, {
42
205
  autoReconnect: props.autoReconnect ?? true,
43
206
  reconnectInterval: props.reconnectInterval ?? 3000,
44
207
  maxReconnectAttempts: props.maxReconnectAttempts ?? 10,
45
208
  });
46
- // Map to track created nodes
47
- const nodes = new Map();
48
- let rootId = null;
49
- // Store instance for cleanup
50
- activeInstances.set(element, { engine, nodes });
51
- // Set up patch handling
209
+ const renderer = new Renderer(contentHost, engine, undefined, { routeFocus: "off" });
210
+ const instance = {
211
+ engine,
212
+ renderer,
213
+ url,
214
+ dispose() {
215
+ engine.disconnect();
216
+ visibility.dispose();
217
+ contentHost.remove();
218
+ },
219
+ };
220
+ activeInstances.set(element, instance);
221
+ // Same replacement-root handling as the generic client: a fresh root
222
+ // insert after we've already rendered one means "replace the tree".
223
+ let hasRenderedRoot = false;
52
224
  engine.onPatches((patches) => {
53
- applyPatches(element, nodes, patches, engine, (id) => {
54
- if (!rootId)
55
- rootId = id;
56
- });
225
+ visibility.setStatus("connected");
226
+ const createdIds = new Set(patches.filter((patch) => patch.type === "create").map((patch) => patch.id));
227
+ const hasReplacementRoot = patches.some((patch) => patch.type === "insert" &&
228
+ patch.parentId === "root" &&
229
+ createdIds.has(patch.id));
230
+ if (hasReplacementRoot && hasRenderedRoot) {
231
+ renderer.clear();
232
+ }
233
+ renderer.applyPatches(patches);
234
+ hasRenderedRoot = hasRenderedRoot || hasReplacementRoot;
57
235
  });
58
- // Show loading state
59
- element.innerHTML = '<div class="hypen-app-loading">Connecting...</div>';
60
- // Connect
61
236
  engine
62
237
  .connect()
63
- .then(() => {
64
- // Clear loading state - patches will populate content
65
- element.innerHTML = "";
238
+ .then((result) => {
239
+ if (result && result.ok === false) {
240
+ visibility.setStatus("error", `HypenApp: Connection failed - ${result.error?.message ?? result.error}`);
241
+ log.error("HypenApp connection failed:", result.error);
242
+ return;
243
+ }
66
244
  log.debug(`HypenApp connected to ${url}`);
67
245
  })
68
246
  .catch((error) => {
69
- element.innerHTML = `<div style="color: red;">HypenApp: Connection failed - ${error.message}</div>`;
247
+ visibility.setStatus("error", `HypenApp: Connection failed - ${error.message}`);
70
248
  log.error("HypenApp connection failed:", error);
71
249
  });
72
- // Handle disconnection
73
250
  engine.onDisconnect(() => {
74
251
  log.debug("HypenApp disconnected");
75
252
  });
76
253
  engine.onError((error) => {
77
254
  log.error("HypenApp error:", error);
78
255
  });
79
- // Cleanup on element removal
80
- const observer = new MutationObserver((mutations) => {
81
- for (const mutation of mutations) {
82
- for (const removedNode of mutation.removedNodes) {
83
- if (removedNode === element || removedNode.contains?.(element)) {
84
- engine.disconnect();
85
- activeInstances.delete(element);
86
- observer.disconnect();
87
- log.debug("HypenApp cleaned up");
88
- return;
89
- }
90
- }
91
- }
256
+ // Cleanup rides the renderer's element-disposal channel: the host
257
+ // DOMRenderer runs this on a real `remove` patch (and on `clear()`),
258
+ // but NOT on a Router `detach` — so a cached route keeps its live
259
+ // connection and re-attaches warm, while LRU eviction closes it.
260
+ getElementDisposables(element).addCallback(() => {
261
+ instance.dispose();
262
+ activeInstances.delete(element);
263
+ log.debug("HypenApp cleaned up");
92
264
  });
93
- // Observe parent for removal
94
- if (element.parentNode) {
95
- observer.observe(element.parentNode, { childList: true, subtree: true });
96
- }
97
265
  },
98
266
  };
99
- /**
100
- * Minimal patch application for HypenApp container
101
- */
102
- function applyPatches(container, nodes, patches, engine, onRoot) {
103
- for (const patch of patches) {
104
- switch (patch.type) {
105
- case "create": {
106
- const el = createElement(patch.elementType, patch.props || {});
107
- el.dataset.hypenId = patch.id;
108
- el.__hypenEngine = engine;
109
- nodes.set(patch.id, el);
110
- break;
111
- }
112
- case "setProp": {
113
- const el = nodes.get(patch.id);
114
- if (el) {
115
- applyProp(el, patch.name, patch.value);
116
- }
117
- break;
118
- }
119
- case "setText": {
120
- const el = nodes.get(patch.id);
121
- if (el) {
122
- el.textContent = patch.text;
123
- }
124
- break;
125
- }
126
- case "insert": {
127
- const parentId = patch.parentId;
128
- const parent = parentId === "root" ? container : nodes.get(parentId);
129
- const child = nodes.get(patch.id);
130
- const beforeId = patch.beforeId;
131
- if (parent && child) {
132
- if (parentId === "root") {
133
- onRoot(patch.id);
134
- }
135
- if (beforeId) {
136
- const before = nodes.get(beforeId);
137
- if (before && before.parentNode === parent) {
138
- parent.insertBefore(child, before);
139
- }
140
- else if (!parent.contains(child)) {
141
- parent.appendChild(child);
142
- }
143
- }
144
- else if (!parent.contains(child)) {
145
- parent.appendChild(child);
146
- }
147
- }
148
- break;
149
- }
150
- case "move": {
151
- const parentId = patch.parentId;
152
- const parent = parentId === "root" ? container : nodes.get(parentId);
153
- const child = nodes.get(patch.id);
154
- const beforeId = patch.beforeId;
155
- if (parent && child) {
156
- if (beforeId) {
157
- const before = nodes.get(beforeId);
158
- if (before && before.parentNode === parent) {
159
- parent.insertBefore(child, before);
160
- }
161
- }
162
- else {
163
- parent.appendChild(child);
164
- }
165
- }
166
- break;
167
- }
168
- case "remove": {
169
- const el = nodes.get(patch.id);
170
- if (el && el.parentNode) {
171
- el.parentNode.removeChild(el);
172
- }
173
- nodes.delete(patch.id);
174
- break;
175
- }
176
- }
177
- }
178
- }
179
- /**
180
- * Create element by type
181
- */
182
- function createElement(type, props) {
183
- const normalizedType = type.toLowerCase();
184
- // Map Hypen types to HTML elements
185
- const tagMap = {
186
- column: "div",
187
- row: "div",
188
- text: "span",
189
- button: "button",
190
- input: "input",
191
- image: "img",
192
- container: "div",
193
- box: "div",
194
- center: "div",
195
- list: "div",
196
- spacer: "div",
197
- stack: "div",
198
- divider: "hr",
199
- grid: "div",
200
- card: "div",
201
- heading: "h2",
202
- link: "a",
203
- textarea: "textarea",
204
- checkbox: "input",
205
- select: "select",
206
- slider: "input",
207
- switch: "input",
208
- spinner: "div",
209
- badge: "span",
210
- avatar: "img",
211
- progressbar: "div",
212
- video: "video",
213
- audio: "audio",
214
- };
215
- const tag = tagMap[normalizedType] || "div";
216
- const el = document.createElement(tag);
217
- el.dataset.hypenType = normalizedType;
218
- // Apply basic styles
219
- if (normalizedType === "column") {
220
- el.style.display = "flex";
221
- el.style.flexDirection = "column";
222
- }
223
- else if (normalizedType === "row") {
224
- el.style.display = "flex";
225
- el.style.flexDirection = "row";
226
- }
227
- else if (normalizedType === "center") {
228
- el.style.display = "flex";
229
- el.style.alignItems = "center";
230
- el.style.justifyContent = "center";
231
- }
232
- else if (normalizedType === "text") {
233
- // Text content from props
234
- if (props["0"]) {
235
- el.textContent = String(props["0"]);
236
- }
237
- }
238
- else if (normalizedType === "button") {
239
- el.style.cursor = "pointer";
240
- }
241
- else if (normalizedType === "checkbox" || normalizedType === "switch") {
242
- el.type = "checkbox";
243
- }
244
- else if (normalizedType === "slider") {
245
- el.type = "range";
246
- }
247
- return el;
248
- }
249
- /**
250
- * Apply a prop to an element
251
- */
252
- function applyProp(el, name, value) {
253
- // Text content
254
- if (name === "0" || name === "text") {
255
- el.textContent = String(value);
256
- return;
257
- }
258
- // Style props
259
- const styleProps = {
260
- padding: "padding",
261
- margin: "margin",
262
- backgroundColor: "backgroundColor",
263
- background: "background",
264
- color: "color",
265
- fontSize: "fontSize",
266
- fontWeight: "fontWeight",
267
- width: "width",
268
- height: "height",
269
- minWidth: "minWidth",
270
- minHeight: "minHeight",
271
- maxWidth: "maxWidth",
272
- maxHeight: "maxHeight",
273
- borderRadius: "borderRadius",
274
- border: "border",
275
- gap: "gap",
276
- flex: "flex",
277
- opacity: "opacity",
278
- overflow: "overflow",
279
- };
280
- if (styleProps[name]) {
281
- const cssValue = typeof value === "number" ? `${value}px` : String(value);
282
- el.style[styleProps[name]] = cssValue;
283
- return;
284
- }
285
- // Event handlers
286
- if (name === "onClick" || name === "onclick") {
287
- el.onclick = () => {
288
- const engine = el.__hypenEngine;
289
- if (engine && typeof value === "string" && value.startsWith("@actions.")) {
290
- const action = value.replace("@actions.", "");
291
- engine.dispatchAction(action);
292
- }
293
- };
294
- return;
295
- }
296
- // Other attributes
297
- el.setAttribute(name, String(value));
298
- }
299
267
  /**
300
268
  * Disconnect a HypenApp instance
301
269
  */
302
270
  export function disconnectHypenApp(element) {
303
271
  const instance = activeInstances.get(element);
304
272
  if (instance) {
305
- instance.engine.disconnect();
273
+ instance.engine?.disconnect();
306
274
  activeInstances.delete(element);
307
275
  }
308
276
  }