@hypen-space/web 0.4.1 → 0.4.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/dist/canvas/accessibility.d.ts +47 -0
- package/dist/canvas/events.d.ts +87 -0
- package/dist/canvas/index.d.ts +11 -0
- package/dist/canvas/index.js +19 -13
- package/dist/canvas/index.js.map +6 -6
- package/dist/canvas/input.d.ts +56 -0
- package/dist/canvas/layout.d.ts +10 -0
- package/dist/canvas/layout.js +17 -12
- package/dist/canvas/layout.js.map +4 -4
- package/dist/canvas/paint.d.ts +14 -0
- package/dist/canvas/paint.js +3 -2
- package/dist/canvas/paint.js.map +4 -4
- package/dist/canvas/renderer.d.ts +99 -0
- package/dist/canvas/renderer.js +19 -13
- package/dist/canvas/renderer.js.map +6 -6
- package/dist/canvas/text.d.ts +22 -0
- package/dist/canvas/text.js +2 -2
- package/dist/canvas/text.js.map +2 -2
- package/dist/canvas/types.d.ts +96 -0
- package/dist/canvas/utils.d.ts +44 -0
- package/dist/client.d.ts +19 -0
- package/dist/client.js +46 -21
- package/dist/client.js.map +12 -11
- package/dist/dom/applicators/advanced-layout.d.ts +5 -0
- package/dist/dom/applicators/advanced-layout.js +1 -114
- package/dist/dom/applicators/advanced-layout.js.map +4 -5
- package/dist/dom/applicators/background.d.ts +5 -0
- package/dist/dom/applicators/border.d.ts +5 -0
- package/dist/dom/applicators/color.d.ts +5 -0
- package/dist/dom/applicators/display.d.ts +5 -0
- package/dist/dom/applicators/effects.d.ts +5 -0
- package/dist/dom/applicators/events.d.ts +8 -0
- package/dist/dom/applicators/events.js +3 -2
- package/dist/dom/applicators/events.js.map +3 -3
- package/dist/dom/applicators/font.d.ts +29 -0
- package/dist/dom/applicators/index.d.ts +76 -0
- package/dist/dom/applicators/index.js +3 -8
- package/dist/dom/applicators/index.js.map +4 -4
- package/dist/dom/applicators/layout.d.ts +10 -0
- package/dist/dom/applicators/margin.d.ts +11 -0
- package/dist/dom/applicators/padding.d.ts +11 -0
- package/dist/dom/applicators/size.d.ts +14 -0
- package/dist/dom/applicators/transform.d.ts +5 -0
- package/dist/dom/applicators/transition.d.ts +5 -0
- package/dist/dom/applicators/types.d.ts +6 -0
- package/dist/dom/applicators/typography.d.ts +5 -0
- package/dist/dom/canvas/index.d.ts +12 -0
- package/dist/dom/components/app.d.ts +8 -0
- package/dist/dom/components/app.js +55 -0
- package/dist/dom/components/app.js.map +10 -0
- package/dist/dom/components/audio.d.ts +5 -0
- package/dist/dom/components/avatar.d.ts +5 -0
- package/dist/dom/components/badge.d.ts +5 -0
- package/dist/dom/components/button.d.ts +9 -0
- package/dist/dom/components/card.d.ts +5 -0
- package/dist/dom/components/center.d.ts +9 -0
- package/dist/dom/components/checkbox.d.ts +5 -0
- package/dist/dom/components/column.d.ts +8 -0
- package/dist/dom/components/container.d.ts +5 -0
- package/dist/dom/components/divider.d.ts +5 -0
- package/dist/dom/components/grid.d.ts +7 -0
- package/dist/dom/components/heading.d.ts +5 -0
- package/dist/dom/components/hypenapp.d.ts +19 -0
- package/dist/dom/components/hypenapp.js +2 -4
- package/dist/dom/components/hypenapp.js.map +3 -3
- package/dist/dom/components/image.d.ts +5 -0
- package/dist/dom/components/index.d.ts +29 -0
- package/dist/dom/components/index.js +29 -5
- package/dist/dom/components/index.js.map +7 -6
- package/dist/dom/components/input.d.ts +5 -0
- package/dist/dom/components/link.d.ts +5 -0
- package/dist/dom/components/list.d.ts +5 -0
- package/dist/dom/components/paragraph.d.ts +5 -0
- package/dist/dom/components/progressbar.d.ts +5 -0
- package/dist/dom/components/route.d.ts +6 -0
- package/dist/dom/components/route.js +2 -2
- package/dist/dom/components/route.js.map +2 -2
- package/dist/dom/components/router.d.ts +5 -0
- package/dist/dom/components/row.d.ts +7 -0
- package/dist/dom/components/select.d.ts +5 -0
- package/dist/dom/components/slider.d.ts +5 -0
- package/dist/dom/components/spacer.d.ts +5 -0
- package/dist/dom/components/spinner.d.ts +5 -0
- package/dist/dom/components/stack.d.ts +5 -0
- package/dist/dom/components/switch.d.ts +5 -0
- package/dist/dom/components/text.d.ts +5 -0
- package/dist/dom/components/textarea.d.ts +5 -0
- package/dist/dom/components/video.d.ts +5 -0
- package/dist/dom/debug.d.ts +63 -0
- package/dist/dom/debug.js +2 -2
- package/dist/dom/debug.js.map +2 -2
- package/dist/dom/element-data.d.ts +94 -0
- package/dist/dom/events.d.ts +39 -0
- package/dist/dom/events.js +2 -2
- package/dist/dom/events.js.map +2 -2
- package/dist/dom/index.d.ts +10 -0
- package/dist/dom/index.js +46 -21
- package/dist/dom/index.js.map +12 -11
- package/dist/dom/renderer.d.ts +115 -0
- package/dist/dom/renderer.js +45 -20
- package/dist/dom/renderer.js.map +11 -10
- package/dist/hypen.d.ts +140 -0
- package/dist/hypen.js +46 -21
- package/dist/hypen.js.map +12 -11
- package/dist/index.d.ts +28 -0
- package/dist/index.js +64 -33
- package/dist/index.js.map +16 -15
- package/package.json +3 -2
- package/src/dom/components/index.ts +2 -0
- package/src/dom/renderer.ts +18 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hypen-space/web",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"description": "Hypen web renderers - DOM and Canvas rendering for browsers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -51,11 +51,12 @@
|
|
|
51
51
|
"scripts": {
|
|
52
52
|
"build": "bun run build.ts",
|
|
53
53
|
"build:types": "tsc --emitDeclarationOnly",
|
|
54
|
+
"prepublishOnly": "bun run build",
|
|
54
55
|
"typecheck": "tsc --noEmit",
|
|
55
56
|
"clean": "rm -rf dist"
|
|
56
57
|
},
|
|
57
58
|
"dependencies": {
|
|
58
|
-
"@hypen-space/core": "^0.4.
|
|
59
|
+
"@hypen-space/core": "^0.4.3"
|
|
59
60
|
},
|
|
60
61
|
"devDependencies": {
|
|
61
62
|
"@types/bun": "latest",
|
|
@@ -27,6 +27,7 @@ export class ComponentRegistry {
|
|
|
27
27
|
* Get handler for a component type
|
|
28
28
|
*/
|
|
29
29
|
get(type: string): ComponentHandler | undefined {
|
|
30
|
+
if (!type) return undefined;
|
|
30
31
|
return this.handlers.get(type.toLowerCase());
|
|
31
32
|
}
|
|
32
33
|
|
|
@@ -34,6 +35,7 @@ export class ComponentRegistry {
|
|
|
34
35
|
* Create element for a component type
|
|
35
36
|
*/
|
|
36
37
|
createElement(type: string, props: Record<string, any> = {}): HTMLElement | null {
|
|
38
|
+
if (!type) return null;
|
|
37
39
|
const handler = this.get(type);
|
|
38
40
|
if (!handler) return null;
|
|
39
41
|
|
package/src/dom/renderer.ts
CHANGED
|
@@ -123,26 +123,38 @@ export class DOMRenderer {
|
|
|
123
123
|
|
|
124
124
|
/**
|
|
125
125
|
* Apply a single patch
|
|
126
|
+
*
|
|
127
|
+
* Handles both camelCase (direct WASM) and snake_case (WebSocket JSON) field names.
|
|
126
128
|
*/
|
|
127
129
|
private applyPatch(patch: Patch): void {
|
|
130
|
+
// Normalize: accept both camelCase and snake_case field names.
|
|
131
|
+
// WASM serde outputs camelCase, but patches forwarded via JSON over WebSocket
|
|
132
|
+
// may arrive with snake_case depending on the serialization path.
|
|
133
|
+
const p = patch as any;
|
|
134
|
+
const id: string | undefined = patch.id ?? p.id;
|
|
135
|
+
const elementType: string | undefined = patch.elementType ?? p.element_type;
|
|
136
|
+
const parentId: string | undefined = patch.parentId ?? p.parent_id;
|
|
137
|
+
const beforeId: string | undefined = patch.beforeId ?? p.before_id;
|
|
138
|
+
const eventName: string | undefined = patch.eventName ?? p.event_name;
|
|
139
|
+
|
|
128
140
|
switch (patch.type) {
|
|
129
141
|
case "create":
|
|
130
|
-
this.onCreate(
|
|
142
|
+
this.onCreate(id!, elementType ?? "container", patch.props || {});
|
|
131
143
|
break;
|
|
132
144
|
case "setProp":
|
|
133
|
-
this.onSetProp(
|
|
145
|
+
this.onSetProp(id!, patch.name!, patch.value);
|
|
134
146
|
break;
|
|
135
147
|
case "setText":
|
|
136
|
-
this.onSetText(
|
|
148
|
+
this.onSetText(id!, patch.text!);
|
|
137
149
|
break;
|
|
138
150
|
case "insert":
|
|
139
|
-
this.onInsert(
|
|
151
|
+
this.onInsert(parentId!, id!, beforeId);
|
|
140
152
|
break;
|
|
141
153
|
case "move":
|
|
142
|
-
this.onMove(
|
|
154
|
+
this.onMove(parentId!, id!, beforeId);
|
|
143
155
|
break;
|
|
144
156
|
case "remove":
|
|
145
|
-
this.onRemove(
|
|
157
|
+
this.onRemove(id!);
|
|
146
158
|
break;
|
|
147
159
|
}
|
|
148
160
|
}
|