@hypen-space/web 0.3.8 → 0.3.10

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 (205) hide show
  1. package/dist/{src/canvas → canvas}/index.js +10 -6
  2. package/dist/{src/canvas → canvas}/index.js.map +4 -4
  3. package/dist/{src/canvas → canvas}/layout.js +4 -2
  4. package/dist/{src/canvas → canvas}/layout.js.map +3 -3
  5. package/dist/{src/canvas → canvas}/paint.js +4 -2
  6. package/dist/{src/canvas → canvas}/paint.js.map +3 -3
  7. package/dist/{src/canvas → canvas}/renderer.js +10 -6
  8. package/dist/{src/canvas → canvas}/renderer.js.map +4 -4
  9. package/dist/{src/canvas → canvas}/text.js +4 -2
  10. package/dist/{src/canvas → canvas}/text.js.map +3 -3
  11. package/dist/dom/applicators/advanced-layout.js +245 -0
  12. package/dist/dom/applicators/advanced-layout.js.map +11 -0
  13. package/dist/{src/dom/applicators/margin.js → dom/applicators/background.js} +33 -21
  14. package/dist/{src/dom → dom}/applicators/background.js.map +3 -3
  15. package/dist/dom/applicators/border.js +97 -0
  16. package/dist/{src/dom → dom}/applicators/border.js.map +3 -3
  17. package/dist/dom/applicators/color.js +49 -0
  18. package/dist/{src/dom → dom}/applicators/color.js.map +3 -3
  19. package/dist/{src/dom/applicators/padding.js → dom/applicators/display.js} +36 -21
  20. package/dist/{src/dom → dom}/applicators/display.js.map +3 -3
  21. package/dist/dom/applicators/effects.js +138 -0
  22. package/dist/{src/dom → dom}/applicators/effects.js.map +3 -3
  23. package/dist/{src/dom → dom}/applicators/events.js +41 -48
  24. package/dist/dom/applicators/events.js.map +11 -0
  25. package/dist/{src/dom → dom}/applicators/font.js +76 -86
  26. package/dist/{src/dom → dom}/applicators/font.js.map +3 -3
  27. package/dist/dom/applicators/index.js +1728 -0
  28. package/dist/dom/applicators/index.js.map +26 -0
  29. package/dist/dom/applicators/layout.js +141 -0
  30. package/dist/dom/applicators/layout.js.map +10 -0
  31. package/dist/dom/applicators/margin.js +104 -0
  32. package/dist/dom/applicators/margin.js.map +10 -0
  33. package/dist/dom/applicators/padding.js +104 -0
  34. package/dist/dom/applicators/padding.js.map +10 -0
  35. package/dist/{src/dom → dom}/applicators/size.js +76 -76
  36. package/dist/dom/applicators/size.js.map +10 -0
  37. package/dist/dom/applicators/transform.js +105 -0
  38. package/dist/{src/dom → dom}/applicators/transform.js.map +3 -3
  39. package/dist/dom/applicators/transition.js +79 -0
  40. package/dist/{src/dom → dom}/applicators/transition.js.map +3 -3
  41. package/dist/dom/applicators/types.js +2 -0
  42. package/dist/dom/applicators/types.js.map +9 -0
  43. package/dist/dom/applicators/typography.js +100 -0
  44. package/dist/{src/dom → dom}/applicators/typography.js.map +3 -3
  45. package/dist/{src/dom → dom}/components/avatar.js +4 -3
  46. package/dist/dom/components/avatar.js.map +10 -0
  47. package/dist/{src/dom → dom}/components/button.js +11 -1
  48. package/dist/dom/components/button.js.map +10 -0
  49. package/dist/{src/dom → dom}/components/center.js +4 -1
  50. package/dist/dom/components/center.js.map +10 -0
  51. package/dist/dom/components/column.js.map +10 -0
  52. package/dist/{src/dom → dom}/components/container.js +1 -4
  53. package/dist/{src/dom → dom}/components/container.js.map +3 -3
  54. package/dist/{src/dom → dom}/components/grid.js +18 -2
  55. package/dist/dom/components/grid.js.map +10 -0
  56. package/dist/{src/dom → dom}/components/hypenapp.js +15 -13
  57. package/dist/dom/components/hypenapp.js.map +10 -0
  58. package/dist/{src/dom → dom}/components/index.js +64 -24
  59. package/dist/dom/components/index.js.map +41 -0
  60. package/dist/{src/dom → dom}/components/route.js +5 -3
  61. package/dist/dom/components/route.js.map +10 -0
  62. package/dist/{src/dom → dom}/components/row.js +5 -4
  63. package/dist/dom/components/row.js.map +10 -0
  64. package/dist/{src/dom → dom}/components/stack.js +5 -1
  65. package/dist/dom/components/stack.js.map +10 -0
  66. package/dist/{src/dom → dom}/components/text.js +5 -1
  67. package/dist/dom/components/text.js.map +10 -0
  68. package/dist/{src/dom → dom}/debug.js +5 -3
  69. package/dist/dom/debug.js.map +10 -0
  70. package/dist/{src/dom → dom}/element-data.js +6 -11
  71. package/dist/dom/element-data.js.map +10 -0
  72. package/dist/{src/dom → dom}/events.js +15 -12
  73. package/dist/dom/events.js.map +10 -0
  74. package/dist/{src/dom → dom}/index.js +1103 -1044
  75. package/dist/dom/index.js.map +62 -0
  76. package/dist/{src/dom → dom}/renderer.js +1089 -1033
  77. package/dist/dom/renderer.js.map +61 -0
  78. package/dist/{src/hypen.js → hypen.js} +1122 -1097
  79. package/dist/hypen.js.map +62 -0
  80. package/dist/{src/index.js → index.js} +1143 -1111
  81. package/dist/index.js.map +72 -0
  82. package/package.json +22 -22
  83. package/src/canvas/renderer.ts +7 -4
  84. package/src/canvas/text.ts +4 -1
  85. package/src/dom/applicators/background.ts +1 -1
  86. package/src/dom/applicators/border.ts +1 -1
  87. package/src/dom/applicators/color.ts +1 -1
  88. package/src/dom/applicators/display.ts +1 -1
  89. package/src/dom/applicators/effects.ts +1 -1
  90. package/src/dom/applicators/events.ts +8 -14
  91. package/src/dom/applicators/font.ts +1 -1
  92. package/src/dom/applicators/index.ts +49 -17
  93. package/src/dom/applicators/layout.ts +31 -8
  94. package/src/dom/applicators/margin.ts +56 -6
  95. package/src/dom/applicators/padding.ts +56 -6
  96. package/src/dom/applicators/size.ts +19 -4
  97. package/src/dom/applicators/transform.ts +1 -1
  98. package/src/dom/applicators/transition.ts +1 -1
  99. package/src/dom/applicators/types.ts +7 -0
  100. package/src/dom/applicators/typography.ts +1 -1
  101. package/src/dom/components/avatar.ts +4 -3
  102. package/src/dom/components/button.ts +17 -0
  103. package/src/dom/components/center.ts +9 -0
  104. package/src/dom/components/column.ts +4 -2
  105. package/src/dom/components/container.ts +2 -3
  106. package/src/dom/components/grid.ts +22 -0
  107. package/src/dom/components/hypenapp.ts +14 -11
  108. package/src/dom/components/route.ts +4 -1
  109. package/src/dom/components/row.ts +8 -7
  110. package/src/dom/components/stack.ts +4 -0
  111. package/src/dom/components/text.ts +7 -0
  112. package/src/dom/debug.ts +6 -2
  113. package/src/dom/element-data.ts +1 -1
  114. package/src/dom/events.ts +16 -12
  115. package/src/dom/renderer.ts +12 -9
  116. package/src/hypen.ts +32 -73
  117. package/dist/src/dom/applicators/advanced-layout.js +0 -250
  118. package/dist/src/dom/applicators/advanced-layout.js.map +0 -11
  119. package/dist/src/dom/applicators/background.js +0 -76
  120. package/dist/src/dom/applicators/border.js +0 -106
  121. package/dist/src/dom/applicators/color.js +0 -58
  122. package/dist/src/dom/applicators/display.js +0 -79
  123. package/dist/src/dom/applicators/effects.js +0 -147
  124. package/dist/src/dom/applicators/events.js.map +0 -11
  125. package/dist/src/dom/applicators/index.js +0 -1715
  126. package/dist/src/dom/applicators/index.js.map +0 -26
  127. package/dist/src/dom/applicators/layout.js +0 -138
  128. package/dist/src/dom/applicators/layout.js.map +0 -10
  129. package/dist/src/dom/applicators/margin.js.map +0 -10
  130. package/dist/src/dom/applicators/padding.js.map +0 -10
  131. package/dist/src/dom/applicators/size.js.map +0 -10
  132. package/dist/src/dom/applicators/transform.js +0 -114
  133. package/dist/src/dom/applicators/transition.js +0 -88
  134. package/dist/src/dom/applicators/typography.js +0 -109
  135. package/dist/src/dom/components/avatar.js.map +0 -10
  136. package/dist/src/dom/components/button.js.map +0 -10
  137. package/dist/src/dom/components/center.js.map +0 -10
  138. package/dist/src/dom/components/column.js.map +0 -10
  139. package/dist/src/dom/components/grid.js.map +0 -10
  140. package/dist/src/dom/components/hypenapp.js.map +0 -10
  141. package/dist/src/dom/components/index.js.map +0 -41
  142. package/dist/src/dom/components/route.js.map +0 -10
  143. package/dist/src/dom/components/row.js.map +0 -10
  144. package/dist/src/dom/components/stack.js.map +0 -10
  145. package/dist/src/dom/components/text.js.map +0 -10
  146. package/dist/src/dom/debug.js.map +0 -10
  147. package/dist/src/dom/element-data.js.map +0 -10
  148. package/dist/src/dom/events.js.map +0 -10
  149. package/dist/src/dom/index.js.map +0 -62
  150. package/dist/src/dom/renderer.js.map +0 -61
  151. package/dist/src/hypen.js.map +0 -62
  152. package/dist/src/index.js.map +0 -72
  153. /package/dist/{src/canvas → canvas}/accessibility.js +0 -0
  154. /package/dist/{src/canvas → canvas}/accessibility.js.map +0 -0
  155. /package/dist/{src/canvas → canvas}/events.js +0 -0
  156. /package/dist/{src/canvas → canvas}/events.js.map +0 -0
  157. /package/dist/{src/canvas → canvas}/input.js +0 -0
  158. /package/dist/{src/canvas → canvas}/input.js.map +0 -0
  159. /package/dist/{src/canvas → canvas}/types.js +0 -0
  160. /package/dist/{src/canvas → canvas}/types.js.map +0 -0
  161. /package/dist/{src/canvas → canvas}/utils.js +0 -0
  162. /package/dist/{src/canvas → canvas}/utils.js.map +0 -0
  163. /package/dist/{src/dom → dom}/canvas/index.js +0 -0
  164. /package/dist/{src/dom → dom}/canvas/index.js.map +0 -0
  165. /package/dist/{src/dom → dom}/components/audio.js +0 -0
  166. /package/dist/{src/dom → dom}/components/audio.js.map +0 -0
  167. /package/dist/{src/dom → dom}/components/badge.js +0 -0
  168. /package/dist/{src/dom → dom}/components/badge.js.map +0 -0
  169. /package/dist/{src/dom → dom}/components/card.js +0 -0
  170. /package/dist/{src/dom → dom}/components/card.js.map +0 -0
  171. /package/dist/{src/dom → dom}/components/checkbox.js +0 -0
  172. /package/dist/{src/dom → dom}/components/checkbox.js.map +0 -0
  173. /package/dist/{src/dom → dom}/components/column.js +0 -0
  174. /package/dist/{src/dom → dom}/components/divider.js +0 -0
  175. /package/dist/{src/dom → dom}/components/divider.js.map +0 -0
  176. /package/dist/{src/dom → dom}/components/heading.js +0 -0
  177. /package/dist/{src/dom → dom}/components/heading.js.map +0 -0
  178. /package/dist/{src/dom → dom}/components/image.js +0 -0
  179. /package/dist/{src/dom → dom}/components/image.js.map +0 -0
  180. /package/dist/{src/dom → dom}/components/input.js +0 -0
  181. /package/dist/{src/dom → dom}/components/input.js.map +0 -0
  182. /package/dist/{src/dom → dom}/components/link.js +0 -0
  183. /package/dist/{src/dom → dom}/components/link.js.map +0 -0
  184. /package/dist/{src/dom → dom}/components/list.js +0 -0
  185. /package/dist/{src/dom → dom}/components/list.js.map +0 -0
  186. /package/dist/{src/dom → dom}/components/paragraph.js +0 -0
  187. /package/dist/{src/dom → dom}/components/paragraph.js.map +0 -0
  188. /package/dist/{src/dom → dom}/components/progressbar.js +0 -0
  189. /package/dist/{src/dom → dom}/components/progressbar.js.map +0 -0
  190. /package/dist/{src/dom → dom}/components/router.js +0 -0
  191. /package/dist/{src/dom → dom}/components/router.js.map +0 -0
  192. /package/dist/{src/dom → dom}/components/select.js +0 -0
  193. /package/dist/{src/dom → dom}/components/select.js.map +0 -0
  194. /package/dist/{src/dom → dom}/components/slider.js +0 -0
  195. /package/dist/{src/dom → dom}/components/slider.js.map +0 -0
  196. /package/dist/{src/dom → dom}/components/spacer.js +0 -0
  197. /package/dist/{src/dom → dom}/components/spacer.js.map +0 -0
  198. /package/dist/{src/dom → dom}/components/spinner.js +0 -0
  199. /package/dist/{src/dom → dom}/components/spinner.js.map +0 -0
  200. /package/dist/{src/dom → dom}/components/switch.js +0 -0
  201. /package/dist/{src/dom → dom}/components/switch.js.map +0 -0
  202. /package/dist/{src/dom → dom}/components/textarea.js +0 -0
  203. /package/dist/{src/dom → dom}/components/textarea.js.map +0 -0
  204. /package/dist/{src/dom → dom}/components/video.js +0 -0
  205. /package/dist/{src/dom → dom}/components/video.js.map +0 -0
@@ -58,9 +58,10 @@ function ensureRowStyles() {
58
58
  const style = document.createElement("style");
59
59
  style.id = "hypen-row-styles";
60
60
  style.textContent = `
61
- [data-hypen-type="row"] > * {
62
- flex: 1 1 0%;
63
- min-width: 0;
61
+ /* Row expands to fill width when it has children with flex/weight */
62
+ /* This matches iOS/Android behavior where weighted children cause parent to expand */
63
+ [data-hypen-type="row"]:has(> [data-hypen-flex]) {
64
+ width: 100%;
64
65
  }
65
66
  `;
66
67
  document.head.appendChild(style);
@@ -91,6 +92,10 @@ var init_text = __esm(() => {
91
92
  create() {
92
93
  const el = document.createElement("span");
93
94
  el.style.display = "inline-block";
95
+ el.style.lineHeight = "1";
96
+ el.style.verticalAlign = "top";
97
+ el.style.margin = "0";
98
+ el.style.padding = "0";
94
99
  el.dataset.hypenType = "text";
95
100
  return el;
96
101
  },
@@ -140,6 +145,16 @@ var init_button = __esm(() => {
140
145
  buttonHandler = {
141
146
  create() {
142
147
  const el = document.createElement("button");
148
+ el.style.border = "none";
149
+ el.style.background = "none";
150
+ el.style.padding = "0";
151
+ el.style.margin = "0";
152
+ el.style.font = "inherit";
153
+ el.style.color = "inherit";
154
+ el.style.cursor = "pointer";
155
+ el.style.display = "flex";
156
+ el.style.flexDirection = "column";
157
+ el.style.alignItems = "flex-start";
143
158
  el.dataset.hypenType = "button";
144
159
  return el;
145
160
  }
@@ -156,9 +171,6 @@ var init_container = __esm(() => {
156
171
  containerHandler = {
157
172
  create() {
158
173
  const el = document.createElement("div");
159
- el.style.display = "flex";
160
- el.style.flexDirection = "column";
161
- el.style.alignItems = "stretch";
162
174
  el.dataset.hypenType = "container";
163
175
  return el;
164
176
  }
@@ -178,6 +190,9 @@ var init_center = __esm(() => {
178
190
  el.style.display = "flex";
179
191
  el.style.alignItems = "center";
180
192
  el.style.justifyContent = "center";
193
+ el.style.width = "100%";
194
+ el.style.height = "100%";
195
+ el.style.alignSelf = "stretch";
181
196
  el.dataset.hypenType = "center";
182
197
  return el;
183
198
  }
@@ -428,12 +443,16 @@ function ensureStackStyles() {
428
443
  position: relative;
429
444
  display: grid;
430
445
  grid-template-areas: "stack";
446
+ /* Default alignment: top-left (matching iOS/Android ZStack default) */
447
+ justify-items: start;
448
+ align-items: start;
431
449
  /* Ensure Stack participates properly in flex layouts (Row/Column) */
432
450
  min-width: 0;
433
451
  min-height: 0;
434
452
  }
435
453
  [data-hypen-type="stack"] > * {
436
454
  grid-area: stack;
455
+ /* Don't set justify-self/align-self here - let parent's justify-items/align-items control */
437
456
  }
438
457
  `;
439
458
  document.head.appendChild(style);
@@ -487,10 +506,26 @@ var exports_grid = {};
487
506
  __export(exports_grid, {
488
507
  gridHandler: () => gridHandler
489
508
  });
490
- var gridHandler;
509
+ function ensureGridStyles() {
510
+ if (gridStylesInjected)
511
+ return;
512
+ gridStylesInjected = true;
513
+ const style = document.createElement("style");
514
+ style.id = "hypen-grid-styles";
515
+ style.textContent = `
516
+ /* Grid children stretch to fill cells by default (matches Android behavior) */
517
+ [data-hypen-type="grid"] > * {
518
+ justify-self: stretch;
519
+ align-self: stretch;
520
+ }
521
+ `;
522
+ document.head.appendChild(style);
523
+ }
524
+ var gridStylesInjected = false, gridHandler;
491
525
  var init_grid = __esm(() => {
492
526
  gridHandler = {
493
527
  create() {
528
+ ensureGridStyles();
494
529
  const el = document.createElement("div");
495
530
  el.style.display = "grid";
496
531
  el.dataset.hypenType = "grid";
@@ -791,9 +826,10 @@ var init_avatar = __esm(() => {
791
826
  return el;
792
827
  },
793
828
  applyProps(el, props) {
794
- if (props.src !== undefined) {
829
+ const src = props["src.0"] || props["0"] || props.src || props.source;
830
+ if (src !== undefined) {
795
831
  const img = document.createElement("img");
796
- img.src = String(props.src);
832
+ img.src = String(src);
797
833
  img.style.width = "100%";
798
834
  img.style.height = "100%";
799
835
  img.style.objectFit = "cover";
@@ -975,8 +1011,10 @@ var exports_route = {};
975
1011
  __export(exports_route, {
976
1012
  routeHandler: () => routeHandler
977
1013
  });
978
- var routeHandler;
1014
+ import { frameworkLoggers } from "@hypen-space/core";
1015
+ var log, routeHandler;
979
1016
  var init_route = __esm(() => {
1017
+ log = frameworkLoggers.router;
980
1018
  routeHandler = {
981
1019
  create() {
982
1020
  const el = document.createElement("div");
@@ -996,7 +1034,7 @@ var init_route = __esm(() => {
996
1034
  if (componentName) {
997
1035
  el.dataset.routeComponent = String(componentName);
998
1036
  }
999
- console.log(`\uD83D\uDEE3️ Route created: path="${path}", lazy=${isLazy}, component="${el.dataset.routeComponent || "none"}"`);
1037
+ log.debug(`Route created: path="${path}", lazy=${isLazy}, component="${el.dataset.routeComponent || "none"}"`);
1000
1038
  }
1001
1039
  };
1002
1040
  });
@@ -1008,11 +1046,12 @@ __export(exports_hypenapp, {
1008
1046
  disconnectHypenApp: () => disconnectHypenApp
1009
1047
  });
1010
1048
  import { RemoteEngine } from "@hypen-space/core/remote/client";
1049
+ import { frameworkLoggers as frameworkLoggers2 } from "@hypen-space/core";
1011
1050
  function applyPatches(container, nodes, patches, engine, onRoot) {
1012
1051
  for (const patch of patches) {
1013
1052
  switch (patch.type) {
1014
1053
  case "create": {
1015
- const el = createElement(patch.element_type, patch.props || {});
1054
+ const el = createElement(patch.elementType, patch.props || {});
1016
1055
  el.dataset.hypenId = patch.id;
1017
1056
  el.__hypenEngine = engine;
1018
1057
  nodes.set(patch.id, el);
@@ -1033,10 +1072,10 @@ function applyPatches(container, nodes, patches, engine, onRoot) {
1033
1072
  break;
1034
1073
  }
1035
1074
  case "insert": {
1036
- const parentId = patch.parent_id;
1075
+ const parentId = patch.parentId;
1037
1076
  const parent = parentId === "root" ? container : nodes.get(parentId);
1038
1077
  const child = nodes.get(patch.id);
1039
- const beforeId = patch.before_id;
1078
+ const beforeId = patch.beforeId;
1040
1079
  if (parent && child) {
1041
1080
  if (parentId === "root") {
1042
1081
  onRoot(patch.id);
@@ -1055,10 +1094,10 @@ function applyPatches(container, nodes, patches, engine, onRoot) {
1055
1094
  break;
1056
1095
  }
1057
1096
  case "move": {
1058
- const parentId = patch.parent_id;
1097
+ const parentId = patch.parentId;
1059
1098
  const parent = parentId === "root" ? container : nodes.get(parentId);
1060
1099
  const child = nodes.get(patch.id);
1061
- const beforeId = patch.before_id;
1100
+ const beforeId = patch.beforeId;
1062
1101
  if (parent && child) {
1063
1102
  if (beforeId) {
1064
1103
  const before = nodes.get(beforeId);
@@ -1192,8 +1231,9 @@ function disconnectHypenApp(element) {
1192
1231
  activeInstances.delete(element);
1193
1232
  }
1194
1233
  }
1195
- var activeInstances, hypenAppHandler;
1234
+ var log2, activeInstances, hypenAppHandler;
1196
1235
  var init_hypenapp = __esm(() => {
1236
+ log2 = frameworkLoggers2.remote;
1197
1237
  activeInstances = new WeakMap;
1198
1238
  hypenAppHandler = {
1199
1239
  create() {
@@ -1205,7 +1245,7 @@ var init_hypenapp = __esm(() => {
1205
1245
  applyProps(element, props) {
1206
1246
  const url = props["0"] || props.url;
1207
1247
  if (!url || typeof url !== "string") {
1208
- console.error("[HypenApp] URL is required");
1248
+ log2.error("HypenApp: URL is required");
1209
1249
  element.innerHTML = '<div style="color: red;">HypenApp: URL required</div>';
1210
1250
  return;
1211
1251
  }
@@ -1230,16 +1270,16 @@ var init_hypenapp = __esm(() => {
1230
1270
  element.innerHTML = '<div class="hypen-app-loading">Connecting...</div>';
1231
1271
  engine.connect().then(() => {
1232
1272
  element.innerHTML = "";
1233
- console.log(`[HypenApp] Connected to ${url}`);
1273
+ log2.debug(`HypenApp connected to ${url}`);
1234
1274
  }).catch((error) => {
1235
1275
  element.innerHTML = `<div style="color: red;">HypenApp: Connection failed - ${error.message}</div>`;
1236
- console.error("[HypenApp] Connection failed:", error);
1276
+ log2.error("HypenApp connection failed:", error);
1237
1277
  });
1238
1278
  engine.onDisconnect(() => {
1239
- console.log("[HypenApp] Disconnected");
1279
+ log2.debug("HypenApp disconnected");
1240
1280
  });
1241
1281
  engine.onError((error) => {
1242
- console.error("[HypenApp] Error:", error);
1282
+ log2.error("HypenApp error:", error);
1243
1283
  });
1244
1284
  const observer = new MutationObserver((mutations) => {
1245
1285
  for (const mutation of mutations) {
@@ -1248,7 +1288,7 @@ var init_hypenapp = __esm(() => {
1248
1288
  engine.disconnect();
1249
1289
  activeInstances.delete(element);
1250
1290
  observer.disconnect();
1251
- console.log("[HypenApp] Cleaned up");
1291
+ log2.debug("HypenApp cleaned up");
1252
1292
  return;
1253
1293
  }
1254
1294
  }
@@ -1261,149 +1301,306 @@ var init_hypenapp = __esm(() => {
1261
1301
  };
1262
1302
  });
1263
1303
 
1304
+ // src/dom/components/index.ts
1305
+ class ComponentRegistry {
1306
+ handlers = new Map;
1307
+ constructor() {
1308
+ this.registerDefaults();
1309
+ }
1310
+ register(type, handler) {
1311
+ this.handlers.set(type.toLowerCase(), handler);
1312
+ }
1313
+ get(type) {
1314
+ return this.handlers.get(type.toLowerCase());
1315
+ }
1316
+ createElement(type, props = {}) {
1317
+ const handler = this.get(type);
1318
+ if (!handler)
1319
+ return null;
1320
+ const element = handler.create();
1321
+ if (handler.applyProps) {
1322
+ handler.applyProps(element, props);
1323
+ }
1324
+ return element;
1325
+ }
1326
+ registerDefaults() {
1327
+ const { columnHandler: columnHandler2 } = (init_column(), __toCommonJS(exports_column));
1328
+ const { rowHandler: rowHandler2 } = (init_row(), __toCommonJS(exports_row));
1329
+ const { textHandler: textHandler2 } = (init_text(), __toCommonJS(exports_text));
1330
+ const { imageHandler: imageHandler2 } = (init_image(), __toCommonJS(exports_image));
1331
+ const { buttonHandler: buttonHandler2 } = (init_button(), __toCommonJS(exports_button));
1332
+ const { containerHandler: containerHandler2 } = (init_container(), __toCommonJS(exports_container));
1333
+ const { centerHandler: centerHandler2 } = (init_center(), __toCommonJS(exports_center));
1334
+ const { listHandler: listHandler2 } = (init_list(), __toCommonJS(exports_list));
1335
+ const { inputHandler: inputHandler2 } = (init_input(), __toCommonJS(exports_input));
1336
+ const { linkHandler: linkHandler2 } = (init_link(), __toCommonJS(exports_link));
1337
+ const { textareaHandler: textareaHandler2 } = (init_textarea(), __toCommonJS(exports_textarea));
1338
+ const { checkboxHandler: checkboxHandler2 } = (init_checkbox(), __toCommonJS(exports_checkbox));
1339
+ const { selectHandler: selectHandler2 } = (init_select(), __toCommonJS(exports_select));
1340
+ const { spacerHandler: spacerHandler2 } = (init_spacer(), __toCommonJS(exports_spacer));
1341
+ const { stackHandler: stackHandler2 } = (init_stack(), __toCommonJS(exports_stack));
1342
+ const { dividerHandler: dividerHandler2 } = (init_divider(), __toCommonJS(exports_divider));
1343
+ const { gridHandler: gridHandler2 } = (init_grid(), __toCommonJS(exports_grid));
1344
+ const { cardHandler: cardHandler2 } = (init_card(), __toCommonJS(exports_card));
1345
+ const { headingHandler: headingHandler2 } = (init_heading(), __toCommonJS(exports_heading));
1346
+ const { switchHandler: switchHandler2 } = (init_switch(), __toCommonJS(exports_switch));
1347
+ const { sliderHandler: sliderHandler2 } = (init_slider(), __toCommonJS(exports_slider));
1348
+ const { spinnerHandler: spinnerHandler2 } = (init_spinner(), __toCommonJS(exports_spinner));
1349
+ const { badgeHandler: badgeHandler2 } = (init_badge(), __toCommonJS(exports_badge));
1350
+ const { avatarHandler: avatarHandler2 } = (init_avatar(), __toCommonJS(exports_avatar));
1351
+ const { progressBarHandler: progressBarHandler2 } = (init_progressbar(), __toCommonJS(exports_progressbar));
1352
+ const { videoHandler: videoHandler2 } = (init_video(), __toCommonJS(exports_video));
1353
+ const { audioHandler: audioHandler2 } = (init_audio(), __toCommonJS(exports_audio));
1354
+ const { paragraphHandler: paragraphHandler2 } = (init_paragraph(), __toCommonJS(exports_paragraph));
1355
+ const { routerHandler: routerHandler2 } = (init_router(), __toCommonJS(exports_router));
1356
+ const { routeHandler: routeHandler2 } = (init_route(), __toCommonJS(exports_route));
1357
+ const { hypenAppHandler: hypenAppHandler2 } = (init_hypenapp(), __toCommonJS(exports_hypenapp));
1358
+ this.register("column", columnHandler2);
1359
+ this.register("row", rowHandler2);
1360
+ this.register("text", textHandler2);
1361
+ this.register("image", imageHandler2);
1362
+ this.register("button", buttonHandler2);
1363
+ this.register("container", containerHandler2);
1364
+ this.register("box", containerHandler2);
1365
+ this.register("center", centerHandler2);
1366
+ this.register("list", listHandler2);
1367
+ this.register("input", inputHandler2);
1368
+ this.register("link", linkHandler2);
1369
+ this.register("textarea", textareaHandler2);
1370
+ this.register("checkbox", checkboxHandler2);
1371
+ this.register("select", selectHandler2);
1372
+ this.register("spacer", spacerHandler2);
1373
+ this.register("stack", stackHandler2);
1374
+ this.register("divider", dividerHandler2);
1375
+ this.register("grid", gridHandler2);
1376
+ this.register("card", cardHandler2);
1377
+ this.register("heading", headingHandler2);
1378
+ this.register("switch", switchHandler2);
1379
+ this.register("slider", sliderHandler2);
1380
+ this.register("spinner", spinnerHandler2);
1381
+ this.register("badge", badgeHandler2);
1382
+ this.register("avatar", avatarHandler2);
1383
+ this.register("progressbar", progressBarHandler2);
1384
+ this.register("video", videoHandler2);
1385
+ this.register("audio", audioHandler2);
1386
+ this.register("paragraph", paragraphHandler2);
1387
+ this.register("router", routerHandler2);
1388
+ this.register("route", routeHandler2);
1389
+ this.register("hypenapp", hypenAppHandler2);
1390
+ }
1391
+ }
1392
+
1264
1393
  // src/dom/applicators/padding.ts
1265
- var exports_padding = {};
1266
- __export(exports_padding, {
1267
- paddingHandler: () => paddingHandler
1268
- });
1394
+ var getNumericValue = (value) => {
1395
+ if (typeof value === "number")
1396
+ return value;
1397
+ if (typeof value === "object" && value["0"] !== undefined)
1398
+ return Number(value["0"]);
1399
+ if (typeof value === "string")
1400
+ return parseFloat(value);
1401
+ return null;
1402
+ };
1269
1403
  var paddingHandler = (el, value) => {
1270
1404
  if (typeof value === "number") {
1271
1405
  el.style.padding = `${value}px`;
1272
1406
  } else if (typeof value === "object") {
1273
- if (value.left !== undefined)
1274
- el.style.paddingLeft = `${value.left}px`;
1275
- if (value.right !== undefined)
1276
- el.style.paddingRight = `${value.right}px`;
1277
- if (value.top !== undefined)
1278
- el.style.paddingTop = `${value.top}px`;
1279
- if (value.bottom !== undefined)
1280
- el.style.paddingBottom = `${value.bottom}px`;
1407
+ if (value["0"] !== undefined && Object.keys(value).length === 1) {
1408
+ el.style.padding = `${value["0"]}px`;
1409
+ } else {
1410
+ if (value.left !== undefined)
1411
+ el.style.paddingLeft = `${value.left}px`;
1412
+ if (value.right !== undefined)
1413
+ el.style.paddingRight = `${value.right}px`;
1414
+ if (value.top !== undefined)
1415
+ el.style.paddingTop = `${value.top}px`;
1416
+ if (value.bottom !== undefined)
1417
+ el.style.paddingBottom = `${value.bottom}px`;
1418
+ }
1281
1419
  } else {
1282
1420
  el.style.padding = String(value);
1283
1421
  }
1284
1422
  };
1423
+ var paddingTopHandler = (el, value) => {
1424
+ const v = getNumericValue(value);
1425
+ if (v !== null)
1426
+ el.style.paddingTop = `${v}px`;
1427
+ };
1428
+ var paddingBottomHandler = (el, value) => {
1429
+ const v = getNumericValue(value);
1430
+ if (v !== null)
1431
+ el.style.paddingBottom = `${v}px`;
1432
+ };
1433
+ var paddingLeftHandler = (el, value) => {
1434
+ const v = getNumericValue(value);
1435
+ if (v !== null)
1436
+ el.style.paddingLeft = `${v}px`;
1437
+ };
1438
+ var paddingRightHandler = (el, value) => {
1439
+ const v = getNumericValue(value);
1440
+ if (v !== null)
1441
+ el.style.paddingRight = `${v}px`;
1442
+ };
1443
+ var paddingHorizontalHandler = (el, value) => {
1444
+ const v = getNumericValue(value);
1445
+ if (v !== null) {
1446
+ el.style.paddingLeft = `${v}px`;
1447
+ el.style.paddingRight = `${v}px`;
1448
+ }
1449
+ };
1450
+ var paddingVerticalHandler = (el, value) => {
1451
+ const v = getNumericValue(value);
1452
+ if (v !== null) {
1453
+ el.style.paddingTop = `${v}px`;
1454
+ el.style.paddingBottom = `${v}px`;
1455
+ }
1456
+ };
1285
1457
 
1286
1458
  // src/dom/applicators/margin.ts
1287
- var exports_margin = {};
1288
- __export(exports_margin, {
1289
- marginHandler: () => marginHandler
1290
- });
1459
+ var getNumericValue2 = (value) => {
1460
+ if (typeof value === "number")
1461
+ return value;
1462
+ if (typeof value === "object" && value["0"] !== undefined)
1463
+ return Number(value["0"]);
1464
+ if (typeof value === "string")
1465
+ return parseFloat(value);
1466
+ return null;
1467
+ };
1291
1468
  var marginHandler = (el, value) => {
1292
1469
  if (typeof value === "number") {
1293
1470
  el.style.margin = `${value}px`;
1294
1471
  } else if (typeof value === "object") {
1295
- if (value.left !== undefined)
1296
- el.style.marginLeft = `${value.left}px`;
1297
- if (value.right !== undefined)
1298
- el.style.marginRight = `${value.right}px`;
1299
- if (value.top !== undefined)
1300
- el.style.marginTop = `${value.top}px`;
1301
- if (value.bottom !== undefined)
1302
- el.style.marginBottom = `${value.bottom}px`;
1472
+ if (value["0"] !== undefined && Object.keys(value).length === 1) {
1473
+ el.style.margin = `${value["0"]}px`;
1474
+ } else {
1475
+ if (value.left !== undefined)
1476
+ el.style.marginLeft = `${value.left}px`;
1477
+ if (value.right !== undefined)
1478
+ el.style.marginRight = `${value.right}px`;
1479
+ if (value.top !== undefined)
1480
+ el.style.marginTop = `${value.top}px`;
1481
+ if (value.bottom !== undefined)
1482
+ el.style.marginBottom = `${value.bottom}px`;
1483
+ }
1303
1484
  } else {
1304
1485
  el.style.margin = String(value);
1305
1486
  }
1306
1487
  };
1488
+ var marginTopHandler = (el, value) => {
1489
+ const v = getNumericValue2(value);
1490
+ if (v !== null)
1491
+ el.style.marginTop = `${v}px`;
1492
+ };
1493
+ var marginBottomHandler = (el, value) => {
1494
+ const v = getNumericValue2(value);
1495
+ if (v !== null)
1496
+ el.style.marginBottom = `${v}px`;
1497
+ };
1498
+ var marginLeftHandler = (el, value) => {
1499
+ const v = getNumericValue2(value);
1500
+ if (v !== null)
1501
+ el.style.marginLeft = `${v}px`;
1502
+ };
1503
+ var marginRightHandler = (el, value) => {
1504
+ const v = getNumericValue2(value);
1505
+ if (v !== null)
1506
+ el.style.marginRight = `${v}px`;
1507
+ };
1508
+ var marginHorizontalHandler = (el, value) => {
1509
+ const v = getNumericValue2(value);
1510
+ if (v !== null) {
1511
+ el.style.marginLeft = `${v}px`;
1512
+ el.style.marginRight = `${v}px`;
1513
+ }
1514
+ };
1515
+ var marginVerticalHandler = (el, value) => {
1516
+ const v = getNumericValue2(value);
1517
+ if (v !== null) {
1518
+ el.style.marginTop = `${v}px`;
1519
+ el.style.marginBottom = `${v}px`;
1520
+ }
1521
+ };
1307
1522
 
1308
1523
  // src/dom/applicators/color.ts
1309
- var exports_color = {};
1310
- __export(exports_color, {
1311
- colorHandlers: () => colorHandlers
1312
- });
1313
- var colorHandlers;
1314
- var init_color = __esm(() => {
1315
- colorHandlers = {
1316
- color: (el, value) => {
1317
- el.style.color = String(value);
1318
- },
1319
- backgroundColor: (el, value) => {
1320
- el.style.backgroundColor = String(value);
1321
- },
1322
- borderColor: (el, value) => {
1323
- el.style.borderColor = String(value);
1324
- },
1325
- opacity: (el, value) => {
1326
- el.style.opacity = String(value);
1327
- }
1328
- };
1329
- });
1524
+ var colorHandlers = {
1525
+ color: (el, value) => {
1526
+ el.style.color = String(value);
1527
+ },
1528
+ backgroundColor: (el, value) => {
1529
+ el.style.backgroundColor = String(value);
1530
+ },
1531
+ borderColor: (el, value) => {
1532
+ el.style.borderColor = String(value);
1533
+ },
1534
+ opacity: (el, value) => {
1535
+ el.style.opacity = String(value);
1536
+ }
1537
+ };
1330
1538
 
1331
1539
  // src/dom/applicators/border.ts
1332
- var exports_border = {};
1333
- __export(exports_border, {
1334
- borderHandlers: () => borderHandlers
1335
- });
1336
- var borderHandlers;
1337
- var init_border = __esm(() => {
1338
- borderHandlers = {
1339
- border: (el, value) => {
1340
- if (typeof value === "number") {
1341
- el.style.borderWidth = `${value}px`;
1342
- el.style.borderStyle = "solid";
1343
- } else if (typeof value === "object" && value !== null) {
1344
- const obj = value;
1345
- if (obj.width !== undefined) {
1346
- el.style.borderWidth = typeof obj.width === "number" ? `${obj.width}px` : String(obj.width);
1347
- }
1348
- if (obj.color !== undefined) {
1349
- el.style.borderColor = String(obj.color);
1350
- }
1351
- if (obj.style !== undefined) {
1352
- el.style.borderStyle = String(obj.style);
1353
- } else {
1354
- el.style.borderStyle = "solid";
1355
- }
1356
- if (obj.radius !== undefined) {
1357
- el.style.borderRadius = typeof obj.radius === "number" ? `${obj.radius}px` : String(obj.radius);
1358
- }
1359
- } else if (typeof value === "string") {
1360
- el.style.border = value;
1361
- }
1362
- },
1363
- borderWidth: (el, value) => {
1364
- el.style.borderWidth = typeof value === "number" ? `${value}px` : String(value);
1365
- },
1366
- borderStyle: (el, value) => {
1367
- el.style.borderStyle = String(value);
1368
- },
1369
- borderRadius: (el, value) => {
1370
- if (typeof value === "number") {
1371
- el.style.borderRadius = `${value}px`;
1372
- } else if (typeof value === "object" && value !== null) {
1373
- const obj = value;
1374
- const topLeft = obj.topLeft ?? obj.topStart ?? 0;
1375
- const topRight = obj.topRight ?? obj.topEnd ?? 0;
1376
- const bottomRight = obj.bottomRight ?? obj.bottomEnd ?? 0;
1377
- const bottomLeft = obj.bottomLeft ?? obj.bottomStart ?? 0;
1378
- const formatValue = (v) => typeof v === "number" ? `${v}px` : String(v);
1379
- el.style.borderRadius = `${formatValue(topLeft)} ${formatValue(topRight)} ${formatValue(bottomRight)} ${formatValue(bottomLeft)}`;
1540
+ var borderHandlers = {
1541
+ border: (el, value) => {
1542
+ if (typeof value === "number") {
1543
+ el.style.borderWidth = `${value}px`;
1544
+ el.style.borderStyle = "solid";
1545
+ } else if (typeof value === "object" && value !== null) {
1546
+ const obj = value;
1547
+ if (obj.width !== undefined) {
1548
+ el.style.borderWidth = typeof obj.width === "number" ? `${obj.width}px` : String(obj.width);
1549
+ }
1550
+ if (obj.color !== undefined) {
1551
+ el.style.borderColor = String(obj.color);
1552
+ }
1553
+ if (obj.style !== undefined) {
1554
+ el.style.borderStyle = String(obj.style);
1380
1555
  } else {
1381
- el.style.borderRadius = String(value);
1556
+ el.style.borderStyle = "solid";
1382
1557
  }
1383
- },
1384
- cornerRadius: (el, value) => {
1385
- if (typeof value === "number") {
1386
- el.style.borderRadius = `${value}px`;
1387
- } else if (typeof value === "object" && value !== null) {
1388
- const obj = value;
1389
- const topLeft = obj.topLeft ?? obj.topStart ?? 0;
1390
- const topRight = obj.topRight ?? obj.topEnd ?? 0;
1391
- const bottomRight = obj.bottomRight ?? obj.bottomEnd ?? 0;
1392
- const bottomLeft = obj.bottomLeft ?? obj.bottomStart ?? 0;
1393
- const formatValue = (v) => typeof v === "number" ? `${v}px` : String(v);
1394
- el.style.borderRadius = `${formatValue(topLeft)} ${formatValue(topRight)} ${formatValue(bottomRight)} ${formatValue(bottomLeft)}`;
1395
- } else {
1396
- el.style.borderRadius = String(value);
1558
+ if (obj.radius !== undefined) {
1559
+ el.style.borderRadius = typeof obj.radius === "number" ? `${obj.radius}px` : String(obj.radius);
1397
1560
  }
1561
+ } else if (typeof value === "string") {
1562
+ el.style.border = value;
1398
1563
  }
1399
- };
1400
- });
1564
+ },
1565
+ borderWidth: (el, value) => {
1566
+ el.style.borderWidth = typeof value === "number" ? `${value}px` : String(value);
1567
+ },
1568
+ borderStyle: (el, value) => {
1569
+ el.style.borderStyle = String(value);
1570
+ },
1571
+ borderRadius: (el, value) => {
1572
+ if (typeof value === "number") {
1573
+ el.style.borderRadius = `${value}px`;
1574
+ } else if (typeof value === "object" && value !== null) {
1575
+ const obj = value;
1576
+ const topLeft = obj.topLeft ?? obj.topStart ?? 0;
1577
+ const topRight = obj.topRight ?? obj.topEnd ?? 0;
1578
+ const bottomRight = obj.bottomRight ?? obj.bottomEnd ?? 0;
1579
+ const bottomLeft = obj.bottomLeft ?? obj.bottomStart ?? 0;
1580
+ const formatValue = (v) => typeof v === "number" ? `${v}px` : String(v);
1581
+ el.style.borderRadius = `${formatValue(topLeft)} ${formatValue(topRight)} ${formatValue(bottomRight)} ${formatValue(bottomLeft)}`;
1582
+ } else {
1583
+ el.style.borderRadius = String(value);
1584
+ }
1585
+ },
1586
+ cornerRadius: (el, value) => {
1587
+ if (typeof value === "number") {
1588
+ el.style.borderRadius = `${value}px`;
1589
+ } else if (typeof value === "object" && value !== null) {
1590
+ const obj = value;
1591
+ const topLeft = obj.topLeft ?? obj.topStart ?? 0;
1592
+ const topRight = obj.topRight ?? obj.topEnd ?? 0;
1593
+ const bottomRight = obj.bottomRight ?? obj.bottomEnd ?? 0;
1594
+ const bottomLeft = obj.bottomLeft ?? obj.bottomStart ?? 0;
1595
+ const formatValue = (v) => typeof v === "number" ? `${v}px` : String(v);
1596
+ el.style.borderRadius = `${formatValue(topLeft)} ${formatValue(topRight)} ${formatValue(bottomRight)} ${formatValue(bottomLeft)}`;
1597
+ } else {
1598
+ el.style.borderRadius = String(value);
1599
+ }
1600
+ }
1601
+ };
1401
1602
 
1402
1603
  // src/dom/applicators/size.ts
1403
- var exports_size = {};
1404
- __export(exports_size, {
1405
- sizeHandlers: () => sizeHandlers
1406
- });
1407
1604
  function parseSizeValue(value) {
1408
1605
  if (value === null || value === undefined)
1409
1606
  return null;
@@ -1454,88 +1651,113 @@ function parseSizeValue(value) {
1454
1651
  return `${num}px`;
1455
1652
  }
1456
1653
  }
1457
- var sizeHandlers;
1458
- var init_size = __esm(() => {
1459
- sizeHandlers = {
1460
- width: (el, value) => {
1654
+ var sizeHandlers = {
1655
+ width: (el, value) => {
1656
+ const size = parseSizeValue(value);
1657
+ if (size)
1658
+ el.style.width = size;
1659
+ },
1660
+ height: (el, value) => {
1661
+ const size = parseSizeValue(value);
1662
+ if (size)
1663
+ el.style.height = size;
1664
+ },
1665
+ minWidth: (el, value) => {
1666
+ const size = parseSizeValue(value);
1667
+ if (size)
1668
+ el.style.minWidth = size;
1669
+ },
1670
+ minHeight: (el, value) => {
1671
+ const size = parseSizeValue(value);
1672
+ if (size)
1673
+ el.style.minHeight = size;
1674
+ },
1675
+ maxWidth: (el, value) => {
1676
+ const size = parseSizeValue(value);
1677
+ if (size)
1678
+ el.style.maxWidth = size;
1679
+ },
1680
+ maxHeight: (el, value) => {
1681
+ const size = parseSizeValue(value);
1682
+ if (size)
1683
+ el.style.maxHeight = size;
1684
+ },
1685
+ size: (el, value) => {
1686
+ if (typeof value === "object" && value !== null) {
1687
+ const obj = value;
1688
+ if (obj.width !== undefined) {
1689
+ const w = parseSizeValue(obj.width);
1690
+ if (w)
1691
+ el.style.width = w;
1692
+ }
1693
+ if (obj.height !== undefined) {
1694
+ const h = parseSizeValue(obj.height);
1695
+ if (h)
1696
+ el.style.height = h;
1697
+ }
1698
+ } else {
1461
1699
  const size = parseSizeValue(value);
1462
- if (size)
1700
+ if (size) {
1463
1701
  el.style.width = size;
1464
- },
1465
- height: (el, value) => {
1466
- const size = parseSizeValue(value);
1467
- if (size)
1468
1702
  el.style.height = size;
1469
- },
1470
- minWidth: (el, value) => {
1471
- const size = parseSizeValue(value);
1472
- if (size)
1473
- el.style.minWidth = size;
1474
- },
1475
- minHeight: (el, value) => {
1476
- const size = parseSizeValue(value);
1477
- if (size)
1478
- el.style.minHeight = size;
1479
- },
1480
- maxWidth: (el, value) => {
1481
- const size = parseSizeValue(value);
1482
- if (size)
1483
- el.style.maxWidth = size;
1484
- },
1485
- maxHeight: (el, value) => {
1486
- const size = parseSizeValue(value);
1487
- if (size)
1488
- el.style.maxHeight = size;
1489
- },
1490
- size: (el, value) => {
1491
- if (typeof value === "object" && value !== null) {
1492
- const obj = value;
1493
- if (obj.width !== undefined) {
1494
- const w = parseSizeValue(obj.width);
1495
- if (w)
1496
- el.style.width = w;
1497
- }
1498
- if (obj.height !== undefined) {
1499
- const h = parseSizeValue(obj.height);
1500
- if (h)
1501
- el.style.height = h;
1502
- }
1503
- } else {
1504
- const size = parseSizeValue(value);
1505
- if (size) {
1506
- el.style.width = size;
1507
- el.style.height = size;
1508
- }
1509
1703
  }
1510
- },
1511
- fillMaxWidth: (el, value) => {
1512
- if (value === false)
1513
- return;
1514
- const fraction = typeof value === "number" ? value : 1;
1515
- el.style.width = `${fraction * 100}%`;
1516
- },
1517
- fillMaxHeight: (el, value) => {
1518
- if (value === false)
1519
- return;
1520
- const fraction = typeof value === "number" ? value : 1;
1521
- el.style.height = `${fraction * 100}%`;
1522
- },
1523
- fillMaxSize: (el, value) => {
1524
- if (value === false)
1525
- return;
1526
- const fraction = typeof value === "number" ? value : 1;
1704
+ }
1705
+ },
1706
+ fillMaxWidth: (el, value) => {
1707
+ if (value === false)
1708
+ return;
1709
+ const fraction = typeof value === "number" ? value : 1;
1710
+ if (fraction === 1) {
1711
+ el.style.alignSelf = "stretch";
1712
+ el.style.width = "100%";
1713
+ el.style.minWidth = "0";
1714
+ } else {
1527
1715
  el.style.width = `${fraction * 100}%`;
1528
- el.style.height = `${fraction * 100}%`;
1529
1716
  }
1530
- };
1531
- });
1717
+ el.style.justifySelf = "stretch";
1718
+ },
1719
+ fillMaxHeight: (el, value) => {
1720
+ if (value === false)
1721
+ return;
1722
+ const fraction = typeof value === "number" ? value : 1;
1723
+ el.style.height = `${fraction * 100}%`;
1724
+ },
1725
+ fillMaxSize: (el, value) => {
1726
+ if (value === false)
1727
+ return;
1728
+ const fraction = typeof value === "number" ? value : 1;
1729
+ el.style.width = `${fraction * 100}%`;
1730
+ el.style.height = `${fraction * 100}%`;
1731
+ el.style.alignSelf = "stretch";
1732
+ el.style.minWidth = "0";
1733
+ }
1734
+ };
1532
1735
 
1533
1736
  // src/dom/applicators/font.ts
1534
- var exports_font = {};
1535
- __export(exports_font, {
1536
- fontHandlers: () => fontHandlers,
1537
- GoogleFonts: () => GoogleFonts
1538
- });
1737
+ var loadedGoogleFonts = new Set;
1738
+ var systemFontKeywords = new Set([
1739
+ "default",
1740
+ "system",
1741
+ "system-ui",
1742
+ "inherit",
1743
+ "initial",
1744
+ "unset",
1745
+ "serif",
1746
+ "sans-serif",
1747
+ "monospace",
1748
+ "cursive",
1749
+ "fantasy",
1750
+ "-apple-system",
1751
+ "BlinkMacSystemFont",
1752
+ "Segoe UI",
1753
+ "Arial",
1754
+ "Helvetica",
1755
+ "Times New Roman",
1756
+ "Georgia",
1757
+ "Courier New",
1758
+ "Verdana",
1759
+ "Tahoma"
1760
+ ]);
1539
1761
  function isSystemFont(fontName) {
1540
1762
  const normalized = fontName.toLowerCase().trim();
1541
1763
  return systemFontKeywords.has(normalized) || normalized.startsWith("-") || normalized.startsWith("ui-");
@@ -1565,91 +1787,59 @@ function processFontFamily(value) {
1565
1787
  return f;
1566
1788
  }).join(", ");
1567
1789
  }
1568
- var loadedGoogleFonts, systemFontKeywords, fontHandlers, GoogleFonts;
1569
- var init_font = __esm(() => {
1570
- loadedGoogleFonts = new Set;
1571
- systemFontKeywords = new Set([
1572
- "default",
1573
- "system",
1574
- "system-ui",
1575
- "inherit",
1576
- "initial",
1577
- "unset",
1578
- "serif",
1579
- "sans-serif",
1580
- "monospace",
1581
- "cursive",
1582
- "fantasy",
1583
- "-apple-system",
1584
- "BlinkMacSystemFont",
1585
- "Segoe UI",
1586
- "Arial",
1587
- "Helvetica",
1588
- "Times New Roman",
1589
- "Georgia",
1590
- "Courier New",
1591
- "Verdana",
1592
- "Tahoma"
1593
- ]);
1594
- fontHandlers = {
1595
- fontSize: (el, value) => {
1596
- el.style.fontSize = typeof value === "number" ? `${value}px` : String(value);
1597
- },
1598
- fontWeight: (el, value) => {
1599
- el.style.fontWeight = String(value);
1600
- },
1601
- fontFamily: (el, value) => {
1602
- const fontValue = String(value);
1603
- el.style.fontFamily = processFontFamily(fontValue);
1604
- },
1605
- textAlign: (el, value) => {
1606
- el.style.textAlign = String(value);
1607
- },
1608
- lineHeight: (el, value) => {
1609
- el.style.lineHeight = String(value);
1610
- },
1611
- fontStyle: (el, value) => {
1612
- el.style.fontStyle = String(value);
1613
- },
1614
- textTransform: (el, value) => {
1615
- el.style.textTransform = String(value);
1616
- }
1617
- };
1618
- GoogleFonts = {
1619
- preload: loadGoogleFont,
1620
- isLoaded: (fontName) => loadedGoogleFonts.has(fontName.trim()),
1621
- getLoadedFonts: () => Array.from(loadedGoogleFonts),
1622
- popular: [
1623
- "Roboto",
1624
- "Open Sans",
1625
- "Lato",
1626
- "Montserrat",
1627
- "Poppins",
1628
- "Inter",
1629
- "Nunito",
1630
- "Playfair Display",
1631
- "Merriweather",
1632
- "Source Code Pro",
1633
- "Fira Code",
1634
- "JetBrains Mono",
1635
- "Raleway",
1636
- "Ubuntu",
1637
- "Oswald",
1638
- "Quicksand",
1639
- "Work Sans",
1640
- "Rubik",
1641
- "Karla",
1642
- "DM Sans"
1643
- ]
1644
- };
1645
- });
1790
+ var fontHandlers = {
1791
+ fontSize: (el, value) => {
1792
+ el.style.fontSize = typeof value === "number" ? `${value}px` : String(value);
1793
+ },
1794
+ fontWeight: (el, value) => {
1795
+ el.style.fontWeight = String(value);
1796
+ },
1797
+ fontFamily: (el, value) => {
1798
+ const fontValue = String(value);
1799
+ el.style.fontFamily = processFontFamily(fontValue);
1800
+ },
1801
+ textAlign: (el, value) => {
1802
+ el.style.textAlign = String(value);
1803
+ },
1804
+ lineHeight: (el, value) => {
1805
+ el.style.lineHeight = String(value);
1806
+ },
1807
+ fontStyle: (el, value) => {
1808
+ el.style.fontStyle = String(value);
1809
+ },
1810
+ textTransform: (el, value) => {
1811
+ el.style.textTransform = String(value);
1812
+ }
1813
+ };
1814
+ var GoogleFonts = {
1815
+ preload: loadGoogleFont,
1816
+ isLoaded: (fontName) => loadedGoogleFonts.has(fontName.trim()),
1817
+ getLoadedFonts: () => Array.from(loadedGoogleFonts),
1818
+ popular: [
1819
+ "Roboto",
1820
+ "Open Sans",
1821
+ "Lato",
1822
+ "Montserrat",
1823
+ "Poppins",
1824
+ "Inter",
1825
+ "Nunito",
1826
+ "Playfair Display",
1827
+ "Merriweather",
1828
+ "Source Code Pro",
1829
+ "Fira Code",
1830
+ "JetBrains Mono",
1831
+ "Raleway",
1832
+ "Ubuntu",
1833
+ "Oswald",
1834
+ "Quicksand",
1835
+ "Work Sans",
1836
+ "Rubik",
1837
+ "Karla",
1838
+ "DM Sans"
1839
+ ]
1840
+ };
1646
1841
 
1647
1842
  // src/dom/applicators/layout.ts
1648
- var exports_layout = {};
1649
- __export(exports_layout, {
1650
- mapAlignmentValue: () => mapAlignmentValue,
1651
- layoutHandlers: () => layoutHandlers
1652
- });
1653
1843
  function mapAlignmentValue(value) {
1654
1844
  const v = String(value).toLowerCase();
1655
1845
  switch (v) {
@@ -1678,76 +1868,87 @@ function mapAlignmentValue(value) {
1678
1868
  return v;
1679
1869
  }
1680
1870
  }
1681
- var layoutHandlers;
1682
- var init_layout = __esm(() => {
1683
- layoutHandlers = {
1684
- verticalAlignment: (el, value) => {
1685
- const val = mapAlignmentValue(String(value));
1686
- const flexDirection = getComputedStyle(el).flexDirection;
1687
- if (flexDirection === "column" || flexDirection === "column-reverse") {
1688
- el.style.justifyContent = val;
1689
- } else {
1690
- el.style.alignItems = val;
1691
- }
1692
- },
1693
- horizontalAlignment: (el, value) => {
1694
- const val = mapAlignmentValue(String(value));
1695
- const flexDirection = getComputedStyle(el).flexDirection;
1696
- if (flexDirection === "column" || flexDirection === "column-reverse") {
1697
- el.style.alignItems = val;
1698
- } else {
1699
- el.style.justifyContent = val;
1700
- }
1701
- },
1702
- horizontalAlign: (el, value) => {
1703
- el.style.justifyContent = mapAlignmentValue(String(value));
1704
- },
1705
- verticalAlign: (el, value) => {
1706
- el.style.alignItems = mapAlignmentValue(String(value));
1707
- },
1708
- gap: (el, value) => {
1709
- el.style.gap = typeof value === "number" ? `${value}px` : String(value);
1710
- },
1711
- weight: (el, value) => {
1712
- el.style.flex = String(value);
1713
- },
1714
- flex: (el, value) => {
1715
- el.style.flex = String(value);
1716
- },
1717
- flexGrow: (el, value) => {
1718
- el.style.flexGrow = String(value);
1719
- },
1720
- flexShrink: (el, value) => {
1721
- el.style.flexShrink = String(value);
1722
- },
1723
- cursor: (el, value) => {
1724
- el.style.cursor = String(value);
1725
- },
1726
- overflow: (el, value) => {
1727
- el.style.overflow = String(value);
1728
- },
1729
- scrollable: (el, value) => {
1730
- if (value === true || value === "true") {
1731
- el.style.overflow = "auto";
1732
- } else if (value === false || value === "false") {
1733
- el.style.overflow = "hidden";
1734
- } else if (value === "vertical") {
1735
- el.style.overflowX = "hidden";
1736
- el.style.overflowY = "auto";
1737
- } else if (value === "horizontal") {
1738
- el.style.overflowX = "auto";
1739
- el.style.overflowY = "hidden";
1740
- } else if (value === "both") {
1741
- el.style.overflow = "auto";
1742
- } else {
1743
- el.style.overflow = String(value);
1744
- }
1871
+ var layoutHandlers = {
1872
+ verticalAlignment: (el, value) => {
1873
+ const val = mapAlignmentValue(String(value));
1874
+ const display = el.style.display || getComputedStyle(el).display;
1875
+ const flexDirection = el.style.flexDirection || getComputedStyle(el).flexDirection;
1876
+ if (display === "grid") {
1877
+ el.style.alignItems = val;
1878
+ } else if (flexDirection === "column" || flexDirection === "column-reverse") {
1879
+ el.style.justifyContent = val;
1880
+ } else {
1881
+ el.style.alignItems = val;
1745
1882
  }
1746
- };
1747
- });
1883
+ },
1884
+ horizontalAlignment: (el, value) => {
1885
+ const val = mapAlignmentValue(String(value));
1886
+ const display = el.style.display || getComputedStyle(el).display;
1887
+ const flexDirection = el.style.flexDirection || getComputedStyle(el).flexDirection;
1888
+ if (display === "grid") {
1889
+ el.style.justifyItems = val;
1890
+ } else if (flexDirection === "column" || flexDirection === "column-reverse") {
1891
+ el.style.alignItems = val;
1892
+ } else if (flexDirection === "row" || flexDirection === "row-reverse") {
1893
+ el.style.justifyContent = val;
1894
+ if (val !== "flex-start" && el.style.overflow !== "auto" && el.style.overflowX !== "auto") {
1895
+ el.style.width = "100%";
1896
+ }
1897
+ } else {
1898
+ el.style.justifyContent = val;
1899
+ }
1900
+ },
1901
+ horizontalAlign: (el, value) => {
1902
+ el.style.justifyContent = mapAlignmentValue(String(value));
1903
+ },
1904
+ verticalAlign: (el, value) => {
1905
+ el.style.alignItems = mapAlignmentValue(String(value));
1906
+ },
1907
+ gap: (el, value) => {
1908
+ el.style.gap = typeof value === "number" ? `${value}px` : String(value);
1909
+ },
1910
+ weight: (el, value) => {
1911
+ el.style.flex = String(value);
1912
+ el.dataset.hypenFlex = "true";
1913
+ },
1914
+ flex: (el, value) => {
1915
+ el.style.flex = String(value);
1916
+ el.dataset.hypenFlex = "true";
1917
+ },
1918
+ flexGrow: (el, value) => {
1919
+ el.style.flexGrow = String(value);
1920
+ },
1921
+ flexShrink: (el, value) => {
1922
+ el.style.flexShrink = String(value);
1923
+ },
1924
+ cursor: (el, value) => {
1925
+ el.style.cursor = String(value);
1926
+ },
1927
+ overflow: (el, value) => {
1928
+ el.style.overflow = String(value);
1929
+ },
1930
+ scrollable: (el, value) => {
1931
+ if (value === true || value === "true") {
1932
+ el.style.overflow = "auto";
1933
+ } else if (value === false || value === "false") {
1934
+ el.style.overflow = "hidden";
1935
+ } else if (value === "vertical") {
1936
+ el.style.overflowX = "hidden";
1937
+ el.style.overflowY = "auto";
1938
+ } else if (value === "horizontal") {
1939
+ el.style.overflowX = "auto";
1940
+ el.style.overflowY = "hidden";
1941
+ } else if (value === "both") {
1942
+ el.style.overflow = "auto";
1943
+ } else {
1944
+ el.style.overflow = String(value);
1945
+ }
1946
+ }
1947
+ };
1748
1948
 
1749
1949
  // src/dom/element-data.ts
1750
- import { getElementDisposables } from "@hypen-space/core";
1950
+ import { getElementDisposables } from "@hypen-space/core/disposable";
1951
+ var elementDataMap = new WeakMap;
1751
1952
  function getHypenData(element) {
1752
1953
  let data = elementDataMap.get(element);
1753
1954
  if (!data) {
@@ -1817,6 +2018,9 @@ function disposeHypenElement(element) {
1817
2018
  } catch {}
1818
2019
  clearHypenData(element);
1819
2020
  }
2021
+ var HYPEN_ENGINE_SYMBOL = Symbol.for("hypen.engine");
2022
+ var REGISTERED_EVENTS_SYMBOL = Symbol.for("hypen.registeredEvents");
2023
+ var KEY_TARGET_SYMBOL = Symbol.for("hypen.keyTarget");
1820
2024
  function getLegacyEngine(element) {
1821
2025
  const engine = getEngine(element);
1822
2026
  if (engine)
@@ -1827,24 +2031,15 @@ function setLegacyEngine(element, engine) {
1827
2031
  setEngine(element, engine);
1828
2032
  element.__hypenEngine = engine;
1829
2033
  }
1830
- var elementDataMap, HYPEN_ENGINE_SYMBOL, REGISTERED_EVENTS_SYMBOL, KEY_TARGET_SYMBOL;
1831
- var init_element_data = __esm(() => {
1832
- elementDataMap = new WeakMap;
1833
- HYPEN_ENGINE_SYMBOL = Symbol.for("hypen.engine");
1834
- REGISTERED_EVENTS_SYMBOL = Symbol.for("hypen.registeredEvents");
1835
- KEY_TARGET_SYMBOL = Symbol.for("hypen.keyTarget");
1836
- });
1837
2034
 
1838
2035
  // src/dom/applicators/events.ts
1839
- var exports_events = {};
1840
- __export(exports_events, {
1841
- eventHandlers: () => eventHandlers
1842
- });
1843
2036
  import {
1844
2037
  getElementDisposables as getElementDisposables2,
1845
2038
  disposableListener,
1846
2039
  disposableTimeout
1847
- } from "@hypen-space/core";
2040
+ } from "@hypen-space/core/disposable";
2041
+ import { frameworkLoggers as frameworkLoggers3 } from "@hypen-space/core";
2042
+ var log3 = frameworkLoggers3.events;
1848
2043
  function toPlainObject(value) {
1849
2044
  if (value instanceof Map) {
1850
2045
  const obj = {};
@@ -1938,7 +2133,7 @@ function createEventHandler(eventType, options = {}) {
1938
2133
  return (element, value) => {
1939
2134
  const { actionName, payload: customPayload } = extractActionDetails(value);
1940
2135
  if (!actionName) {
1941
- console.warn(`[EventApplicator] ${eventType} requires an action reference starting with @, got:`, value);
2136
+ log3.warn(`${eventType} requires an action reference starting with @, got:`, value);
1942
2137
  return;
1943
2138
  }
1944
2139
  const disposables = getElementDisposables2(element);
@@ -1981,7 +2176,7 @@ function createKeyHandler(defaultKey = "Enter") {
1981
2176
  return (element, value) => {
1982
2177
  const { actionName, payload: customPayload } = extractActionDetails(value);
1983
2178
  if (!actionName) {
1984
- console.warn(`[EventApplicator] onKey requires an action reference starting with @, got:`, value);
2179
+ log3.warn(`onKey requires an action reference starting with @, got:`, value);
1985
2180
  return;
1986
2181
  }
1987
2182
  const disposables = getElementDisposables2(element);
@@ -2026,7 +2221,7 @@ function createLongClickHandler(thresholdMs = 500) {
2026
2221
  return (element, value) => {
2027
2222
  const { actionName, payload: customPayload } = extractActionDetails(value);
2028
2223
  if (!actionName) {
2029
- console.warn(`[EventApplicator] onLongClick requires an action reference starting with @, got:`, value);
2224
+ log3.warn(`onLongClick requires an action reference starting with @, got:`, value);
2030
2225
  return;
2031
2226
  }
2032
2227
  const disposables = getElementDisposables2(element);
@@ -2075,7 +2270,8 @@ var inputPayload = (event, element) => {
2075
2270
  value: target.value,
2076
2271
  input: target.value
2077
2272
  };
2078
- }, scrollPayload = (_event, element) => {
2273
+ };
2274
+ var scrollPayload = (_event, element) => {
2079
2275
  const scrollTop = element.scrollTop;
2080
2276
  const scrollHeight = element.scrollHeight;
2081
2277
  const clientHeight = element.clientHeight;
@@ -2095,11 +2291,13 @@ var inputPayload = (event, element) => {
2095
2291
  atBottom: scrollHeight - scrollTop === clientHeight,
2096
2292
  atTop: scrollTop === 0
2097
2293
  };
2098
- }, focusPayload = (event, element) => ({
2294
+ };
2295
+ var focusPayload = (event, element) => ({
2099
2296
  type: event.type,
2100
2297
  timestamp: Date.now(),
2101
2298
  value: element.value ?? undefined
2102
- }), mousePayload = (event, _element) => {
2299
+ });
2300
+ var mousePayload = (event, _element) => {
2103
2301
  const mouseEvent = event;
2104
2302
  return {
2105
2303
  type: event.type,
@@ -2107,637 +2305,495 @@ var inputPayload = (event, element) => {
2107
2305
  clientX: mouseEvent.clientX,
2108
2306
  clientY: mouseEvent.clientY
2109
2307
  };
2110
- }, eventHandlers;
2111
- var init_events = __esm(() => {
2112
- init_element_data();
2113
- eventHandlers = {
2114
- onClick: createEventHandler("click"),
2115
- onPress: createEventHandler("click"),
2116
- onChange: createEventHandler("change"),
2117
- onSubmit: createEventHandler("submit", { preventDefault: true }),
2118
- onInput: createEventHandler("input", { extractPayload: inputPayload }),
2119
- onKey: createKeyHandler("Enter"),
2120
- "onKey.key": (element, value) => {
2121
- setKeyTarget(element, String(value));
2122
- },
2123
- "onKey.action": createKeyHandler("Enter"),
2124
- onScroll: createEventHandler("scroll", {
2125
- throttleMs: 100,
2126
- passive: true,
2127
- extractPayload: scrollPayload
2128
- }),
2129
- onLongClick: createLongClickHandler(500),
2130
- onFocus: createEventHandler("focus", { extractPayload: focusPayload }),
2131
- onBlur: createEventHandler("blur", { extractPayload: focusPayload }),
2132
- onMouseEnter: createEventHandler("mouseenter", { extractPayload: mousePayload }),
2133
- onMouseLeave: createEventHandler("mouseleave", { extractPayload: mousePayload })
2134
- };
2135
- });
2308
+ };
2309
+ var eventHandlers = {
2310
+ onClick: createEventHandler("click"),
2311
+ onPress: createEventHandler("click"),
2312
+ onChange: createEventHandler("change"),
2313
+ onSubmit: createEventHandler("submit", { preventDefault: true }),
2314
+ onInput: createEventHandler("input", { extractPayload: inputPayload }),
2315
+ onKey: createKeyHandler("Enter"),
2316
+ "onKey.key": (element, value) => {
2317
+ setKeyTarget(element, String(value));
2318
+ },
2319
+ "onKey.action": createKeyHandler("Enter"),
2320
+ onScroll: createEventHandler("scroll", {
2321
+ throttleMs: 100,
2322
+ passive: true,
2323
+ extractPayload: scrollPayload
2324
+ }),
2325
+ onLongClick: createLongClickHandler(500),
2326
+ onFocus: createEventHandler("focus", { extractPayload: focusPayload }),
2327
+ onBlur: createEventHandler("blur", { extractPayload: focusPayload }),
2328
+ onMouseEnter: createEventHandler("mouseenter", { extractPayload: mousePayload }),
2329
+ onMouseLeave: createEventHandler("mouseleave", { extractPayload: mousePayload })
2330
+ };
2136
2331
 
2137
2332
  // src/dom/applicators/typography.ts
2138
- var exports_typography = {};
2139
- __export(exports_typography, {
2140
- typographyHandlers: () => typographyHandlers
2141
- });
2142
- var typographyHandlers;
2143
- var init_typography = __esm(() => {
2144
- typographyHandlers = {
2145
- textAlign: (el, value) => {
2146
- el.style.textAlign = String(value);
2147
- },
2148
- textTransform: (el, value) => {
2149
- el.style.textTransform = String(value);
2150
- },
2151
- textDecoration: (el, value) => {
2152
- el.style.textDecoration = String(value);
2153
- },
2154
- textDecorationColor: (el, value) => {
2155
- el.style.textDecorationColor = String(value);
2156
- },
2157
- textDecorationStyle: (el, value) => {
2158
- el.style.textDecorationStyle = String(value);
2159
- },
2160
- textDecorationThickness: (el, value) => {
2161
- el.style.textDecorationThickness = typeof value === "number" ? `${value}px` : String(value);
2162
- },
2163
- letterSpacing: (el, value) => {
2164
- el.style.letterSpacing = typeof value === "number" ? `${value}px` : String(value);
2165
- },
2166
- wordSpacing: (el, value) => {
2167
- el.style.wordSpacing = typeof value === "number" ? `${value}px` : String(value);
2168
- },
2169
- lineHeight: (el, value) => {
2170
- el.style.lineHeight = String(value);
2171
- },
2172
- textIndent: (el, value) => {
2173
- el.style.textIndent = typeof value === "number" ? `${value}px` : String(value);
2174
- },
2175
- textOverflow: (el, value) => {
2176
- el.style.textOverflow = String(value);
2177
- },
2178
- whiteSpace: (el, value) => {
2179
- el.style.whiteSpace = String(value);
2180
- },
2181
- wordBreak: (el, value) => {
2182
- el.style.wordBreak = String(value);
2183
- },
2184
- verticalAlign: (el, value) => {
2185
- el.style.verticalAlign = String(value);
2186
- },
2187
- fontVariant: (el, value) => {
2188
- el.style.fontVariant = String(value);
2189
- },
2190
- fontStretch: (el, value) => {
2191
- el.style.fontStretch = String(value);
2192
- },
2193
- fontStyle: (el, value) => {
2194
- el.style.fontStyle = String(value);
2195
- },
2196
- writingMode: (el, value) => {
2197
- el.style.writingMode = String(value);
2198
- },
2199
- maxLines: (el, value) => {
2200
- const lines = typeof value === "number" ? value : parseInt(String(value), 10);
2201
- if (!isNaN(lines) && lines > 0) {
2202
- el.style.display = "-webkit-box";
2203
- el.style.setProperty("-webkit-line-clamp", String(lines));
2204
- el.style.setProperty("-webkit-box-orient", "vertical");
2205
- el.style.overflow = "hidden";
2206
- }
2333
+ var typographyHandlers = {
2334
+ textAlign: (el, value) => {
2335
+ el.style.textAlign = String(value);
2336
+ },
2337
+ textTransform: (el, value) => {
2338
+ el.style.textTransform = String(value);
2339
+ },
2340
+ textDecoration: (el, value) => {
2341
+ el.style.textDecoration = String(value);
2342
+ },
2343
+ textDecorationColor: (el, value) => {
2344
+ el.style.textDecorationColor = String(value);
2345
+ },
2346
+ textDecorationStyle: (el, value) => {
2347
+ el.style.textDecorationStyle = String(value);
2348
+ },
2349
+ textDecorationThickness: (el, value) => {
2350
+ el.style.textDecorationThickness = typeof value === "number" ? `${value}px` : String(value);
2351
+ },
2352
+ letterSpacing: (el, value) => {
2353
+ el.style.letterSpacing = typeof value === "number" ? `${value}px` : String(value);
2354
+ },
2355
+ wordSpacing: (el, value) => {
2356
+ el.style.wordSpacing = typeof value === "number" ? `${value}px` : String(value);
2357
+ },
2358
+ lineHeight: (el, value) => {
2359
+ el.style.lineHeight = String(value);
2360
+ },
2361
+ textIndent: (el, value) => {
2362
+ el.style.textIndent = typeof value === "number" ? `${value}px` : String(value);
2363
+ },
2364
+ textOverflow: (el, value) => {
2365
+ el.style.textOverflow = String(value);
2366
+ },
2367
+ whiteSpace: (el, value) => {
2368
+ el.style.whiteSpace = String(value);
2369
+ },
2370
+ wordBreak: (el, value) => {
2371
+ el.style.wordBreak = String(value);
2372
+ },
2373
+ verticalAlign: (el, value) => {
2374
+ el.style.verticalAlign = String(value);
2375
+ },
2376
+ fontVariant: (el, value) => {
2377
+ el.style.fontVariant = String(value);
2378
+ },
2379
+ fontStretch: (el, value) => {
2380
+ el.style.fontStretch = String(value);
2381
+ },
2382
+ fontStyle: (el, value) => {
2383
+ el.style.fontStyle = String(value);
2384
+ },
2385
+ writingMode: (el, value) => {
2386
+ el.style.writingMode = String(value);
2387
+ },
2388
+ maxLines: (el, value) => {
2389
+ const lines = typeof value === "number" ? value : parseInt(String(value), 10);
2390
+ if (!isNaN(lines) && lines > 0) {
2391
+ el.style.display = "-webkit-box";
2392
+ el.style.setProperty("-webkit-line-clamp", String(lines));
2393
+ el.style.setProperty("-webkit-box-orient", "vertical");
2394
+ el.style.overflow = "hidden";
2207
2395
  }
2208
- };
2209
- });
2396
+ }
2397
+ };
2210
2398
 
2211
2399
  // src/dom/applicators/transform.ts
2212
- var exports_transform = {};
2213
- __export(exports_transform, {
2214
- transformHandlers: () => transformHandlers
2215
- });
2216
- var transformHandlers;
2217
- var init_transform = __esm(() => {
2218
- transformHandlers = {
2219
- transform: (el, value) => {
2220
- el.style.transform = String(value);
2221
- },
2222
- transformOrigin: (el, value) => {
2223
- el.style.transformOrigin = String(value);
2224
- },
2225
- translateX: (el, value) => {
2226
- const current = el.style.transform || "";
2227
- const val = typeof value === "number" ? `${value}px` : String(value);
2228
- el.style.transform = current ? `${current} translateX(${val})` : `translateX(${val})`;
2229
- },
2230
- translateY: (el, value) => {
2231
- const current = el.style.transform || "";
2232
- const val = typeof value === "number" ? `${value}px` : String(value);
2233
- el.style.transform = current ? `${current} translateY(${val})` : `translateY(${val})`;
2234
- },
2235
- translateZ: (el, value) => {
2236
- const current = el.style.transform || "";
2237
- const val = typeof value === "number" ? `${value}px` : String(value);
2238
- el.style.transform = current ? `${current} translateZ(${val})` : `translateZ(${val})`;
2239
- },
2240
- rotate: (el, value) => {
2241
- const current = el.style.transform || "";
2242
- const val = String(value);
2243
- el.style.transform = current ? `${current} rotate(${val})` : `rotate(${val})`;
2244
- },
2245
- rotateX: (el, value) => {
2246
- const current = el.style.transform || "";
2247
- const val = String(value);
2248
- el.style.transform = current ? `${current} rotateX(${val})` : `rotateX(${val})`;
2249
- },
2250
- rotateY: (el, value) => {
2251
- const current = el.style.transform || "";
2252
- const val = String(value);
2253
- el.style.transform = current ? `${current} rotateY(${val})` : `rotateY(${val})`;
2254
- },
2255
- rotateZ: (el, value) => {
2256
- const current = el.style.transform || "";
2257
- const val = String(value);
2258
- el.style.transform = current ? `${current} rotateZ(${val})` : `rotateZ(${val})`;
2259
- },
2260
- scale: (el, value) => {
2261
- const current = el.style.transform || "";
2262
- el.style.transform = current ? `${current} scale(${value})` : `scale(${value})`;
2263
- },
2264
- scaleX: (el, value) => {
2265
- const current = el.style.transform || "";
2266
- el.style.transform = current ? `${current} scaleX(${value})` : `scaleX(${value})`;
2267
- },
2268
- scaleY: (el, value) => {
2269
- const current = el.style.transform || "";
2270
- el.style.transform = current ? `${current} scaleY(${value})` : `scaleY(${value})`;
2271
- },
2272
- skew: (el, value) => {
2273
- const current = el.style.transform || "";
2274
- el.style.transform = current ? `${current} skew(${value})` : `skew(${value})`;
2275
- },
2276
- skewX: (el, value) => {
2277
- const current = el.style.transform || "";
2278
- el.style.transform = current ? `${current} skewX(${value})` : `skewX(${value})`;
2279
- },
2280
- skewY: (el, value) => {
2281
- const current = el.style.transform || "";
2282
- el.style.transform = current ? `${current} skewY(${value})` : `skewY(${value})`;
2283
- },
2284
- perspective: (el, value) => {
2285
- el.style.perspective = typeof value === "number" ? `${value}px` : String(value);
2286
- }
2287
- };
2288
- });
2400
+ var transformHandlers = {
2401
+ transform: (el, value) => {
2402
+ el.style.transform = String(value);
2403
+ },
2404
+ transformOrigin: (el, value) => {
2405
+ el.style.transformOrigin = String(value);
2406
+ },
2407
+ translateX: (el, value) => {
2408
+ const current = el.style.transform || "";
2409
+ const val = typeof value === "number" ? `${value}px` : String(value);
2410
+ el.style.transform = current ? `${current} translateX(${val})` : `translateX(${val})`;
2411
+ },
2412
+ translateY: (el, value) => {
2413
+ const current = el.style.transform || "";
2414
+ const val = typeof value === "number" ? `${value}px` : String(value);
2415
+ el.style.transform = current ? `${current} translateY(${val})` : `translateY(${val})`;
2416
+ },
2417
+ translateZ: (el, value) => {
2418
+ const current = el.style.transform || "";
2419
+ const val = typeof value === "number" ? `${value}px` : String(value);
2420
+ el.style.transform = current ? `${current} translateZ(${val})` : `translateZ(${val})`;
2421
+ },
2422
+ rotate: (el, value) => {
2423
+ const current = el.style.transform || "";
2424
+ const val = String(value);
2425
+ el.style.transform = current ? `${current} rotate(${val})` : `rotate(${val})`;
2426
+ },
2427
+ rotateX: (el, value) => {
2428
+ const current = el.style.transform || "";
2429
+ const val = String(value);
2430
+ el.style.transform = current ? `${current} rotateX(${val})` : `rotateX(${val})`;
2431
+ },
2432
+ rotateY: (el, value) => {
2433
+ const current = el.style.transform || "";
2434
+ const val = String(value);
2435
+ el.style.transform = current ? `${current} rotateY(${val})` : `rotateY(${val})`;
2436
+ },
2437
+ rotateZ: (el, value) => {
2438
+ const current = el.style.transform || "";
2439
+ const val = String(value);
2440
+ el.style.transform = current ? `${current} rotateZ(${val})` : `rotateZ(${val})`;
2441
+ },
2442
+ scale: (el, value) => {
2443
+ const current = el.style.transform || "";
2444
+ el.style.transform = current ? `${current} scale(${value})` : `scale(${value})`;
2445
+ },
2446
+ scaleX: (el, value) => {
2447
+ const current = el.style.transform || "";
2448
+ el.style.transform = current ? `${current} scaleX(${value})` : `scaleX(${value})`;
2449
+ },
2450
+ scaleY: (el, value) => {
2451
+ const current = el.style.transform || "";
2452
+ el.style.transform = current ? `${current} scaleY(${value})` : `scaleY(${value})`;
2453
+ },
2454
+ skew: (el, value) => {
2455
+ const current = el.style.transform || "";
2456
+ el.style.transform = current ? `${current} skew(${value})` : `skew(${value})`;
2457
+ },
2458
+ skewX: (el, value) => {
2459
+ const current = el.style.transform || "";
2460
+ el.style.transform = current ? `${current} skewX(${value})` : `skewX(${value})`;
2461
+ },
2462
+ skewY: (el, value) => {
2463
+ const current = el.style.transform || "";
2464
+ el.style.transform = current ? `${current} skewY(${value})` : `skewY(${value})`;
2465
+ },
2466
+ perspective: (el, value) => {
2467
+ el.style.perspective = typeof value === "number" ? `${value}px` : String(value);
2468
+ }
2469
+ };
2289
2470
 
2290
2471
  // src/dom/applicators/effects.ts
2291
- var exports_effects = {};
2292
- __export(exports_effects, {
2293
- effectsHandlers: () => effectsHandlers
2294
- });
2295
- var effectsHandlers;
2296
- var init_effects = __esm(() => {
2297
- effectsHandlers = {
2298
- boxShadow: (el, value) => {
2299
- if (typeof value === "string") {
2300
- el.style.boxShadow = value;
2301
- } else if (typeof value === "object" && value !== null) {
2302
- const obj = value;
2303
- const x = typeof obj.x === "number" ? `${obj.x}px` : obj.x ?? obj.offsetX ?? "0px";
2304
- const y = typeof obj.y === "number" ? `${obj.y}px` : obj.y ?? obj.offsetY ?? "0px";
2305
- const blur = typeof obj.blur === "number" ? `${obj.blur}px` : obj.blur ?? obj.radius ?? "0px";
2306
- const spread = typeof obj.spread === "number" ? `${obj.spread}px` : obj.spread ?? "0px";
2307
- const color = obj.color ?? "rgba(0,0,0,0.2)";
2308
- const inset = obj.inset ? "inset " : "";
2309
- el.style.boxShadow = `${inset}${x} ${y} ${blur} ${spread} ${color}`;
2310
- } else if (typeof value === "number") {
2311
- el.style.boxShadow = `0 ${value}px ${value * 2}px rgba(0,0,0,0.2)`;
2312
- }
2313
- },
2314
- shadow: (el, value) => {
2315
- if (typeof value === "object" && value !== null) {
2316
- const obj = value;
2317
- const x = typeof obj.x === "number" ? `${obj.x}px` : obj.x ?? obj.offsetX ?? "0px";
2318
- const y = typeof obj.y === "number" ? `${obj.y}px` : obj.y ?? obj.offsetY ?? "0px";
2319
- const blur = typeof obj.blur === "number" ? `${obj.blur}px` : obj.blur ?? obj.radius ?? "4px";
2320
- const color = obj.color ?? "rgba(0,0,0,0.2)";
2321
- el.style.boxShadow = `${x} ${y} ${blur} ${color}`;
2322
- } else if (typeof value === "number") {
2323
- el.style.boxShadow = `0 ${value}px ${value * 2}px rgba(0,0,0,0.2)`;
2324
- } else {
2325
- el.style.boxShadow = String(value);
2326
- }
2327
- },
2328
- elevation: (el, value) => {
2329
- const level = typeof value === "number" ? value : parseInt(String(value), 10);
2330
- if (!isNaN(level) && level >= 0) {
2331
- const y = level * 0.5;
2332
- const blur = level * 1.5;
2333
- const opacity = Math.min(0.1 + level * 0.02, 0.4);
2334
- el.style.boxShadow = `0 ${y}px ${blur}px rgba(0,0,0,${opacity})`;
2335
- }
2336
- },
2337
- textShadow: (el, value) => {
2338
- el.style.textShadow = String(value);
2339
- },
2340
- filter: (el, value) => {
2341
- el.style.filter = String(value);
2342
- },
2343
- backdropFilter: (el, value) => {
2344
- el.style.backdropFilter = String(value);
2345
- },
2346
- blur: (el, value) => {
2347
- const val = typeof value === "number" ? `${value}px` : String(value);
2348
- const current = el.style.filter || "";
2349
- el.style.filter = current ? `${current} blur(${val})` : `blur(${val})`;
2350
- },
2351
- brightness: (el, value) => {
2352
- const current = el.style.filter || "";
2353
- el.style.filter = current ? `${current} brightness(${value})` : `brightness(${value})`;
2354
- },
2355
- contrast: (el, value) => {
2356
- const current = el.style.filter || "";
2357
- el.style.filter = current ? `${current} contrast(${value})` : `contrast(${value})`;
2358
- },
2359
- grayscale: (el, value) => {
2360
- const current = el.style.filter || "";
2361
- el.style.filter = current ? `${current} grayscale(${value})` : `grayscale(${value})`;
2362
- },
2363
- hueRotate: (el, value) => {
2364
- const val = String(value);
2365
- const current = el.style.filter || "";
2366
- el.style.filter = current ? `${current} hue-rotate(${val})` : `hue-rotate(${val})`;
2367
- },
2368
- invert: (el, value) => {
2369
- const current = el.style.filter || "";
2370
- el.style.filter = current ? `${current} invert(${value})` : `invert(${value})`;
2371
- },
2372
- saturate: (el, value) => {
2373
- const current = el.style.filter || "";
2374
- el.style.filter = current ? `${current} saturate(${value})` : `saturate(${value})`;
2375
- },
2376
- sepia: (el, value) => {
2377
- const current = el.style.filter || "";
2378
- el.style.filter = current ? `${current} sepia(${value})` : `sepia(${value})`;
2379
- },
2380
- dropShadow: (el, value) => {
2381
- const current = el.style.filter || "";
2382
- el.style.filter = current ? `${current} drop-shadow(${value})` : `drop-shadow(${value})`;
2383
- },
2384
- mixBlendMode: (el, value) => {
2385
- el.style.mixBlendMode = String(value);
2386
- },
2387
- backgroundBlendMode: (el, value) => {
2388
- el.style.backgroundBlendMode = String(value);
2389
- },
2390
- clipPath: (el, value) => {
2391
- el.style.clipPath = String(value);
2392
- },
2393
- mask: (el, value) => {
2394
- el.style.mask = String(value);
2395
- },
2396
- maskImage: (el, value) => {
2397
- el.style.maskImage = String(value);
2472
+ var effectsHandlers = {
2473
+ boxShadow: (el, value) => {
2474
+ if (typeof value === "string") {
2475
+ el.style.boxShadow = value;
2476
+ } else if (typeof value === "object" && value !== null) {
2477
+ const obj = value;
2478
+ const x = typeof obj.x === "number" ? `${obj.x}px` : obj.x ?? obj.offsetX ?? "0px";
2479
+ const y = typeof obj.y === "number" ? `${obj.y}px` : obj.y ?? obj.offsetY ?? "0px";
2480
+ const blur = typeof obj.blur === "number" ? `${obj.blur}px` : obj.blur ?? obj.radius ?? "0px";
2481
+ const spread = typeof obj.spread === "number" ? `${obj.spread}px` : obj.spread ?? "0px";
2482
+ const color = obj.color ?? "rgba(0,0,0,0.2)";
2483
+ const inset = obj.inset ? "inset " : "";
2484
+ el.style.boxShadow = `${inset}${x} ${y} ${blur} ${spread} ${color}`;
2485
+ } else if (typeof value === "number") {
2486
+ el.style.boxShadow = `0 ${value}px ${value * 2}px rgba(0,0,0,0.2)`;
2398
2487
  }
2399
- };
2400
- });
2488
+ },
2489
+ shadow: (el, value) => {
2490
+ if (typeof value === "object" && value !== null) {
2491
+ const obj = value;
2492
+ const x = typeof obj.x === "number" ? `${obj.x}px` : obj.x ?? obj.offsetX ?? "0px";
2493
+ const y = typeof obj.y === "number" ? `${obj.y}px` : obj.y ?? obj.offsetY ?? "0px";
2494
+ const blur = typeof obj.blur === "number" ? `${obj.blur}px` : obj.blur ?? obj.radius ?? "4px";
2495
+ const color = obj.color ?? "rgba(0,0,0,0.2)";
2496
+ el.style.boxShadow = `${x} ${y} ${blur} ${color}`;
2497
+ } else if (typeof value === "number") {
2498
+ el.style.boxShadow = `0 ${value}px ${value * 2}px rgba(0,0,0,0.2)`;
2499
+ } else {
2500
+ el.style.boxShadow = String(value);
2501
+ }
2502
+ },
2503
+ elevation: (el, value) => {
2504
+ const level = typeof value === "number" ? value : parseInt(String(value), 10);
2505
+ if (!isNaN(level) && level >= 0) {
2506
+ const y = level * 0.5;
2507
+ const blur = level * 1.5;
2508
+ const opacity = Math.min(0.1 + level * 0.02, 0.4);
2509
+ el.style.boxShadow = `0 ${y}px ${blur}px rgba(0,0,0,${opacity})`;
2510
+ }
2511
+ },
2512
+ textShadow: (el, value) => {
2513
+ el.style.textShadow = String(value);
2514
+ },
2515
+ filter: (el, value) => {
2516
+ el.style.filter = String(value);
2517
+ },
2518
+ backdropFilter: (el, value) => {
2519
+ el.style.backdropFilter = String(value);
2520
+ },
2521
+ blur: (el, value) => {
2522
+ const val = typeof value === "number" ? `${value}px` : String(value);
2523
+ const current = el.style.filter || "";
2524
+ el.style.filter = current ? `${current} blur(${val})` : `blur(${val})`;
2525
+ },
2526
+ brightness: (el, value) => {
2527
+ const current = el.style.filter || "";
2528
+ el.style.filter = current ? `${current} brightness(${value})` : `brightness(${value})`;
2529
+ },
2530
+ contrast: (el, value) => {
2531
+ const current = el.style.filter || "";
2532
+ el.style.filter = current ? `${current} contrast(${value})` : `contrast(${value})`;
2533
+ },
2534
+ grayscale: (el, value) => {
2535
+ const current = el.style.filter || "";
2536
+ el.style.filter = current ? `${current} grayscale(${value})` : `grayscale(${value})`;
2537
+ },
2538
+ hueRotate: (el, value) => {
2539
+ const val = String(value);
2540
+ const current = el.style.filter || "";
2541
+ el.style.filter = current ? `${current} hue-rotate(${val})` : `hue-rotate(${val})`;
2542
+ },
2543
+ invert: (el, value) => {
2544
+ const current = el.style.filter || "";
2545
+ el.style.filter = current ? `${current} invert(${value})` : `invert(${value})`;
2546
+ },
2547
+ saturate: (el, value) => {
2548
+ const current = el.style.filter || "";
2549
+ el.style.filter = current ? `${current} saturate(${value})` : `saturate(${value})`;
2550
+ },
2551
+ sepia: (el, value) => {
2552
+ const current = el.style.filter || "";
2553
+ el.style.filter = current ? `${current} sepia(${value})` : `sepia(${value})`;
2554
+ },
2555
+ dropShadow: (el, value) => {
2556
+ const current = el.style.filter || "";
2557
+ el.style.filter = current ? `${current} drop-shadow(${value})` : `drop-shadow(${value})`;
2558
+ },
2559
+ mixBlendMode: (el, value) => {
2560
+ el.style.mixBlendMode = String(value);
2561
+ },
2562
+ backgroundBlendMode: (el, value) => {
2563
+ el.style.backgroundBlendMode = String(value);
2564
+ },
2565
+ clipPath: (el, value) => {
2566
+ el.style.clipPath = String(value);
2567
+ },
2568
+ mask: (el, value) => {
2569
+ el.style.mask = String(value);
2570
+ },
2571
+ maskImage: (el, value) => {
2572
+ el.style.maskImage = String(value);
2573
+ }
2574
+ };
2401
2575
 
2402
2576
  // src/dom/applicators/advanced-layout.ts
2403
- var exports_advanced_layout = {};
2404
- __export(exports_advanced_layout, {
2405
- advancedLayoutHandlers: () => advancedLayoutHandlers
2406
- });
2407
- var advancedLayoutHandlers;
2408
- var init_advanced_layout = __esm(() => {
2409
- init_layout();
2410
- advancedLayoutHandlers = {
2411
- flexDirection: (el, value) => {
2412
- el.style.flexDirection = String(value);
2413
- },
2414
- flexWrap: (el, value) => {
2415
- el.style.flexWrap = String(value);
2416
- },
2417
- flexBasis: (el, value) => {
2418
- el.style.flexBasis = typeof value === "number" ? `${value}px` : String(value);
2419
- },
2420
- justifyContent: (el, value) => {
2421
- el.style.justifyContent = mapAlignmentValue(String(value));
2422
- },
2423
- alignItems: (el, value) => {
2424
- el.style.alignItems = mapAlignmentValue(String(value));
2425
- },
2426
- alignContent: (el, value) => {
2427
- el.style.alignContent = String(value);
2428
- },
2429
- alignSelf: (el, value) => {
2430
- el.style.alignSelf = String(value);
2431
- },
2432
- order: (el, value) => {
2433
- el.style.order = String(value);
2434
- },
2435
- gridTemplateColumns: (el, value) => {
2577
+ var advancedLayoutHandlers = {
2578
+ flexDirection: (el, value) => {
2579
+ el.style.flexDirection = String(value);
2580
+ },
2581
+ flexWrap: (el, value) => {
2582
+ el.style.flexWrap = String(value);
2583
+ },
2584
+ flexBasis: (el, value) => {
2585
+ el.style.flexBasis = typeof value === "number" ? `${value}px` : String(value);
2586
+ },
2587
+ justifyContent: (el, value) => {
2588
+ el.style.justifyContent = mapAlignmentValue(String(value));
2589
+ },
2590
+ alignItems: (el, value) => {
2591
+ el.style.alignItems = mapAlignmentValue(String(value));
2592
+ },
2593
+ alignContent: (el, value) => {
2594
+ el.style.alignContent = String(value);
2595
+ },
2596
+ alignSelf: (el, value) => {
2597
+ el.style.alignSelf = String(value);
2598
+ },
2599
+ order: (el, value) => {
2600
+ el.style.order = String(value);
2601
+ },
2602
+ gridTemplateColumns: (el, value) => {
2603
+ el.style.gridTemplateColumns = String(value);
2604
+ },
2605
+ gridTemplateRows: (el, value) => {
2606
+ el.style.gridTemplateRows = String(value);
2607
+ },
2608
+ gridColumns: (el, value) => {
2609
+ if (typeof value === "number") {
2610
+ el.style.gridTemplateColumns = `repeat(${value}, 1fr)`;
2611
+ } else {
2436
2612
  el.style.gridTemplateColumns = String(value);
2437
- },
2438
- gridTemplateRows: (el, value) => {
2613
+ }
2614
+ },
2615
+ gridRows: (el, value) => {
2616
+ if (typeof value === "number") {
2617
+ el.style.gridTemplateRows = `repeat(${value}, 1fr)`;
2618
+ } else {
2439
2619
  el.style.gridTemplateRows = String(value);
2440
- },
2441
- gridColumns: (el, value) => {
2442
- if (typeof value === "number") {
2443
- el.style.gridTemplateColumns = `repeat(${value}, 1fr)`;
2444
- } else {
2445
- el.style.gridTemplateColumns = String(value);
2446
- }
2447
- },
2448
- gridRows: (el, value) => {
2449
- if (typeof value === "number") {
2450
- el.style.gridTemplateRows = `repeat(${value}, 1fr)`;
2451
- } else {
2452
- el.style.gridTemplateRows = String(value);
2453
- }
2454
- },
2455
- gridTemplateAreas: (el, value) => {
2456
- el.style.gridTemplateAreas = String(value);
2457
- },
2458
- gridColumn: (el, value) => {
2459
- el.style.gridColumn = String(value);
2460
- },
2461
- gridRow: (el, value) => {
2462
- el.style.gridRow = String(value);
2463
- },
2464
- gridArea: (el, value) => {
2465
- el.style.gridArea = String(value);
2466
- },
2467
- gridAutoFlow: (el, value) => {
2468
- el.style.gridAutoFlow = String(value);
2469
- },
2470
- gridAutoColumns: (el, value) => {
2471
- el.style.gridAutoColumns = String(value);
2472
- },
2473
- gridAutoRows: (el, value) => {
2474
- el.style.gridAutoRows = String(value);
2475
- },
2476
- rowGap: (el, value) => {
2477
- el.style.rowGap = typeof value === "number" ? `${value}px` : String(value);
2478
- },
2479
- columnGap: (el, value) => {
2480
- el.style.columnGap = typeof value === "number" ? `${value}px` : String(value);
2481
- },
2482
- placeItems: (el, value) => {
2483
- el.style.placeItems = String(value);
2484
- },
2485
- placeContent: (el, value) => {
2486
- el.style.placeContent = String(value);
2487
- },
2488
- placeSelf: (el, value) => {
2489
- el.style.placeSelf = String(value);
2490
- },
2491
- position: (el, value) => {
2492
- el.style.position = String(value);
2493
- },
2494
- top: (el, value) => {
2495
- el.style.top = typeof value === "number" ? `${value}px` : String(value);
2496
- },
2497
- right: (el, value) => {
2498
- el.style.right = typeof value === "number" ? `${value}px` : String(value);
2499
- },
2500
- bottom: (el, value) => {
2501
- el.style.bottom = typeof value === "number" ? `${value}px` : String(value);
2502
- },
2503
- left: (el, value) => {
2504
- el.style.left = typeof value === "number" ? `${value}px` : String(value);
2505
- },
2506
- inset: (el, value) => {
2507
- el.style.inset = typeof value === "number" ? `${value}px` : String(value);
2508
- },
2509
- zIndex: (el, value) => {
2510
- el.style.zIndex = String(value);
2511
2620
  }
2512
- };
2513
- });
2621
+ },
2622
+ gridTemplateAreas: (el, value) => {
2623
+ el.style.gridTemplateAreas = String(value);
2624
+ },
2625
+ gridColumn: (el, value) => {
2626
+ el.style.gridColumn = String(value);
2627
+ },
2628
+ gridRow: (el, value) => {
2629
+ el.style.gridRow = String(value);
2630
+ },
2631
+ gridArea: (el, value) => {
2632
+ el.style.gridArea = String(value);
2633
+ },
2634
+ gridAutoFlow: (el, value) => {
2635
+ el.style.gridAutoFlow = String(value);
2636
+ },
2637
+ gridAutoColumns: (el, value) => {
2638
+ el.style.gridAutoColumns = String(value);
2639
+ },
2640
+ gridAutoRows: (el, value) => {
2641
+ el.style.gridAutoRows = String(value);
2642
+ },
2643
+ rowGap: (el, value) => {
2644
+ el.style.rowGap = typeof value === "number" ? `${value}px` : String(value);
2645
+ },
2646
+ columnGap: (el, value) => {
2647
+ el.style.columnGap = typeof value === "number" ? `${value}px` : String(value);
2648
+ },
2649
+ placeItems: (el, value) => {
2650
+ el.style.placeItems = String(value);
2651
+ },
2652
+ placeContent: (el, value) => {
2653
+ el.style.placeContent = String(value);
2654
+ },
2655
+ placeSelf: (el, value) => {
2656
+ el.style.placeSelf = String(value);
2657
+ },
2658
+ position: (el, value) => {
2659
+ el.style.position = String(value);
2660
+ },
2661
+ top: (el, value) => {
2662
+ el.style.top = typeof value === "number" ? `${value}px` : String(value);
2663
+ },
2664
+ right: (el, value) => {
2665
+ el.style.right = typeof value === "number" ? `${value}px` : String(value);
2666
+ },
2667
+ bottom: (el, value) => {
2668
+ el.style.bottom = typeof value === "number" ? `${value}px` : String(value);
2669
+ },
2670
+ left: (el, value) => {
2671
+ el.style.left = typeof value === "number" ? `${value}px` : String(value);
2672
+ },
2673
+ inset: (el, value) => {
2674
+ el.style.inset = typeof value === "number" ? `${value}px` : String(value);
2675
+ },
2676
+ zIndex: (el, value) => {
2677
+ el.style.zIndex = String(value);
2678
+ }
2679
+ };
2514
2680
 
2515
2681
  // src/dom/applicators/background.ts
2516
- var exports_background = {};
2517
- __export(exports_background, {
2518
- backgroundHandlers: () => backgroundHandlers
2519
- });
2520
- var backgroundHandlers;
2521
- var init_background = __esm(() => {
2522
- backgroundHandlers = {
2523
- backgroundImage: (el, value) => {
2524
- el.style.backgroundImage = String(value);
2525
- },
2526
- backgroundSize: (el, value) => {
2527
- el.style.backgroundSize = String(value);
2528
- },
2529
- backgroundPosition: (el, value) => {
2530
- el.style.backgroundPosition = String(value);
2531
- },
2532
- backgroundRepeat: (el, value) => {
2533
- el.style.backgroundRepeat = String(value);
2534
- },
2535
- backgroundAttachment: (el, value) => {
2536
- el.style.backgroundAttachment = String(value);
2537
- },
2538
- backgroundClip: (el, value) => {
2539
- el.style.backgroundClip = String(value);
2540
- },
2541
- backgroundOrigin: (el, value) => {
2542
- el.style.backgroundOrigin = String(value);
2543
- },
2544
- linearGradient: (el, value) => {
2545
- el.style.backgroundImage = `linear-gradient(${value})`;
2546
- },
2547
- radialGradient: (el, value) => {
2548
- el.style.backgroundImage = `radial-gradient(${value})`;
2549
- },
2550
- conicGradient: (el, value) => {
2551
- el.style.backgroundImage = `conic-gradient(${value})`;
2552
- }
2553
- };
2554
- });
2682
+ var backgroundHandlers = {
2683
+ backgroundImage: (el, value) => {
2684
+ el.style.backgroundImage = String(value);
2685
+ },
2686
+ backgroundSize: (el, value) => {
2687
+ el.style.backgroundSize = String(value);
2688
+ },
2689
+ backgroundPosition: (el, value) => {
2690
+ el.style.backgroundPosition = String(value);
2691
+ },
2692
+ backgroundRepeat: (el, value) => {
2693
+ el.style.backgroundRepeat = String(value);
2694
+ },
2695
+ backgroundAttachment: (el, value) => {
2696
+ el.style.backgroundAttachment = String(value);
2697
+ },
2698
+ backgroundClip: (el, value) => {
2699
+ el.style.backgroundClip = String(value);
2700
+ },
2701
+ backgroundOrigin: (el, value) => {
2702
+ el.style.backgroundOrigin = String(value);
2703
+ },
2704
+ linearGradient: (el, value) => {
2705
+ el.style.backgroundImage = `linear-gradient(${value})`;
2706
+ },
2707
+ radialGradient: (el, value) => {
2708
+ el.style.backgroundImage = `radial-gradient(${value})`;
2709
+ },
2710
+ conicGradient: (el, value) => {
2711
+ el.style.backgroundImage = `conic-gradient(${value})`;
2712
+ }
2713
+ };
2555
2714
 
2556
2715
  // src/dom/applicators/display.ts
2557
- var exports_display = {};
2558
- __export(exports_display, {
2559
- displayHandlers: () => displayHandlers
2560
- });
2561
- var displayHandlers;
2562
- var init_display = __esm(() => {
2563
- displayHandlers = {
2564
- display: (el, value) => {
2565
- el.style.display = String(value);
2566
- },
2567
- visibility: (el, value) => {
2568
- el.style.visibility = String(value);
2569
- },
2570
- overflowX: (el, value) => {
2571
- el.style.overflowX = String(value);
2572
- },
2573
- overflowY: (el, value) => {
2574
- el.style.overflowY = String(value);
2575
- },
2576
- pointerEvents: (el, value) => {
2577
- el.style.pointerEvents = String(value);
2578
- },
2579
- userSelect: (el, value) => {
2580
- el.style.userSelect = String(value);
2581
- },
2582
- resize: (el, value) => {
2583
- el.style.resize = String(value);
2584
- },
2585
- boxSizing: (el, value) => {
2586
- el.style.boxSizing = String(value);
2587
- },
2588
- aspectRatio: (el, value) => {
2589
- el.style.aspectRatio = String(value);
2590
- },
2591
- objectFit: (el, value) => {
2592
- el.style.objectFit = String(value);
2593
- },
2594
- objectPosition: (el, value) => {
2595
- el.style.objectPosition = String(value);
2596
- }
2597
- };
2598
- });
2716
+ var displayHandlers = {
2717
+ display: (el, value) => {
2718
+ el.style.display = String(value);
2719
+ },
2720
+ visibility: (el, value) => {
2721
+ el.style.visibility = String(value);
2722
+ },
2723
+ overflowX: (el, value) => {
2724
+ el.style.overflowX = String(value);
2725
+ },
2726
+ overflowY: (el, value) => {
2727
+ el.style.overflowY = String(value);
2728
+ },
2729
+ pointerEvents: (el, value) => {
2730
+ el.style.pointerEvents = String(value);
2731
+ },
2732
+ userSelect: (el, value) => {
2733
+ el.style.userSelect = String(value);
2734
+ },
2735
+ resize: (el, value) => {
2736
+ el.style.resize = String(value);
2737
+ },
2738
+ boxSizing: (el, value) => {
2739
+ el.style.boxSizing = String(value);
2740
+ },
2741
+ aspectRatio: (el, value) => {
2742
+ el.style.aspectRatio = String(value);
2743
+ },
2744
+ objectFit: (el, value) => {
2745
+ el.style.objectFit = String(value);
2746
+ },
2747
+ objectPosition: (el, value) => {
2748
+ el.style.objectPosition = String(value);
2749
+ }
2750
+ };
2599
2751
 
2600
2752
  // src/dom/applicators/transition.ts
2601
- var exports_transition = {};
2602
- __export(exports_transition, {
2603
- transitionHandlers: () => transitionHandlers
2604
- });
2605
- var transitionHandlers;
2606
- var init_transition = __esm(() => {
2607
- transitionHandlers = {
2608
- transition: (el, value) => {
2609
- el.style.transition = String(value);
2610
- },
2611
- transitionProperty: (el, value) => {
2612
- el.style.transitionProperty = String(value);
2613
- },
2614
- transitionDuration: (el, value) => {
2615
- el.style.transitionDuration = String(value);
2616
- },
2617
- transitionTimingFunction: (el, value) => {
2618
- el.style.transitionTimingFunction = String(value);
2619
- },
2620
- transitionDelay: (el, value) => {
2621
- el.style.transitionDelay = String(value);
2622
- },
2623
- animation: (el, value) => {
2624
- el.style.animation = String(value);
2625
- },
2626
- animationName: (el, value) => {
2627
- el.style.animationName = String(value);
2628
- },
2629
- animationDuration: (el, value) => {
2630
- el.style.animationDuration = String(value);
2631
- },
2632
- animationTimingFunction: (el, value) => {
2633
- el.style.animationTimingFunction = String(value);
2634
- },
2635
- animationDelay: (el, value) => {
2636
- el.style.animationDelay = String(value);
2637
- },
2638
- animationIterationCount: (el, value) => {
2639
- el.style.animationIterationCount = String(value);
2640
- },
2641
- animationDirection: (el, value) => {
2642
- el.style.animationDirection = String(value);
2643
- },
2644
- animationFillMode: (el, value) => {
2645
- el.style.animationFillMode = String(value);
2646
- },
2647
- animationPlayState: (el, value) => {
2648
- el.style.animationPlayState = String(value);
2649
- }
2650
- };
2651
- });
2652
-
2653
- // src/dom/components/index.ts
2654
- class ComponentRegistry {
2655
- handlers = new Map;
2656
- constructor() {
2657
- this.registerDefaults();
2658
- }
2659
- register(type, handler) {
2660
- this.handlers.set(type.toLowerCase(), handler);
2661
- }
2662
- get(type) {
2663
- return this.handlers.get(type.toLowerCase());
2664
- }
2665
- createElement(type, props = {}) {
2666
- const handler = this.get(type);
2667
- if (!handler)
2668
- return null;
2669
- const element = handler.create();
2670
- if (handler.applyProps) {
2671
- handler.applyProps(element, props);
2672
- }
2673
- return element;
2674
- }
2675
- registerDefaults() {
2676
- const { columnHandler: columnHandler2 } = (init_column(), __toCommonJS(exports_column));
2677
- const { rowHandler: rowHandler2 } = (init_row(), __toCommonJS(exports_row));
2678
- const { textHandler: textHandler2 } = (init_text(), __toCommonJS(exports_text));
2679
- const { imageHandler: imageHandler2 } = (init_image(), __toCommonJS(exports_image));
2680
- const { buttonHandler: buttonHandler2 } = (init_button(), __toCommonJS(exports_button));
2681
- const { containerHandler: containerHandler2 } = (init_container(), __toCommonJS(exports_container));
2682
- const { centerHandler: centerHandler2 } = (init_center(), __toCommonJS(exports_center));
2683
- const { listHandler: listHandler2 } = (init_list(), __toCommonJS(exports_list));
2684
- const { inputHandler: inputHandler2 } = (init_input(), __toCommonJS(exports_input));
2685
- const { linkHandler: linkHandler2 } = (init_link(), __toCommonJS(exports_link));
2686
- const { textareaHandler: textareaHandler2 } = (init_textarea(), __toCommonJS(exports_textarea));
2687
- const { checkboxHandler: checkboxHandler2 } = (init_checkbox(), __toCommonJS(exports_checkbox));
2688
- const { selectHandler: selectHandler2 } = (init_select(), __toCommonJS(exports_select));
2689
- const { spacerHandler: spacerHandler2 } = (init_spacer(), __toCommonJS(exports_spacer));
2690
- const { stackHandler: stackHandler2 } = (init_stack(), __toCommonJS(exports_stack));
2691
- const { dividerHandler: dividerHandler2 } = (init_divider(), __toCommonJS(exports_divider));
2692
- const { gridHandler: gridHandler2 } = (init_grid(), __toCommonJS(exports_grid));
2693
- const { cardHandler: cardHandler2 } = (init_card(), __toCommonJS(exports_card));
2694
- const { headingHandler: headingHandler2 } = (init_heading(), __toCommonJS(exports_heading));
2695
- const { switchHandler: switchHandler2 } = (init_switch(), __toCommonJS(exports_switch));
2696
- const { sliderHandler: sliderHandler2 } = (init_slider(), __toCommonJS(exports_slider));
2697
- const { spinnerHandler: spinnerHandler2 } = (init_spinner(), __toCommonJS(exports_spinner));
2698
- const { badgeHandler: badgeHandler2 } = (init_badge(), __toCommonJS(exports_badge));
2699
- const { avatarHandler: avatarHandler2 } = (init_avatar(), __toCommonJS(exports_avatar));
2700
- const { progressBarHandler: progressBarHandler2 } = (init_progressbar(), __toCommonJS(exports_progressbar));
2701
- const { videoHandler: videoHandler2 } = (init_video(), __toCommonJS(exports_video));
2702
- const { audioHandler: audioHandler2 } = (init_audio(), __toCommonJS(exports_audio));
2703
- const { paragraphHandler: paragraphHandler2 } = (init_paragraph(), __toCommonJS(exports_paragraph));
2704
- const { routerHandler: routerHandler2 } = (init_router(), __toCommonJS(exports_router));
2705
- const { routeHandler: routeHandler2 } = (init_route(), __toCommonJS(exports_route));
2706
- const { hypenAppHandler: hypenAppHandler2 } = (init_hypenapp(), __toCommonJS(exports_hypenapp));
2707
- this.register("column", columnHandler2);
2708
- this.register("row", rowHandler2);
2709
- this.register("text", textHandler2);
2710
- this.register("image", imageHandler2);
2711
- this.register("button", buttonHandler2);
2712
- this.register("container", containerHandler2);
2713
- this.register("box", containerHandler2);
2714
- this.register("center", centerHandler2);
2715
- this.register("list", listHandler2);
2716
- this.register("input", inputHandler2);
2717
- this.register("link", linkHandler2);
2718
- this.register("textarea", textareaHandler2);
2719
- this.register("checkbox", checkboxHandler2);
2720
- this.register("select", selectHandler2);
2721
- this.register("spacer", spacerHandler2);
2722
- this.register("stack", stackHandler2);
2723
- this.register("divider", dividerHandler2);
2724
- this.register("grid", gridHandler2);
2725
- this.register("card", cardHandler2);
2726
- this.register("heading", headingHandler2);
2727
- this.register("switch", switchHandler2);
2728
- this.register("slider", sliderHandler2);
2729
- this.register("spinner", spinnerHandler2);
2730
- this.register("badge", badgeHandler2);
2731
- this.register("avatar", avatarHandler2);
2732
- this.register("progressbar", progressBarHandler2);
2733
- this.register("video", videoHandler2);
2734
- this.register("audio", audioHandler2);
2735
- this.register("paragraph", paragraphHandler2);
2736
- this.register("router", routerHandler2);
2737
- this.register("route", routeHandler2);
2738
- this.register("hypenapp", hypenAppHandler2);
2753
+ var transitionHandlers = {
2754
+ transition: (el, value) => {
2755
+ el.style.transition = String(value);
2756
+ },
2757
+ transitionProperty: (el, value) => {
2758
+ el.style.transitionProperty = String(value);
2759
+ },
2760
+ transitionDuration: (el, value) => {
2761
+ el.style.transitionDuration = String(value);
2762
+ },
2763
+ transitionTimingFunction: (el, value) => {
2764
+ el.style.transitionTimingFunction = String(value);
2765
+ },
2766
+ transitionDelay: (el, value) => {
2767
+ el.style.transitionDelay = String(value);
2768
+ },
2769
+ animation: (el, value) => {
2770
+ el.style.animation = String(value);
2771
+ },
2772
+ animationName: (el, value) => {
2773
+ el.style.animationName = String(value);
2774
+ },
2775
+ animationDuration: (el, value) => {
2776
+ el.style.animationDuration = String(value);
2777
+ },
2778
+ animationTimingFunction: (el, value) => {
2779
+ el.style.animationTimingFunction = String(value);
2780
+ },
2781
+ animationDelay: (el, value) => {
2782
+ el.style.animationDelay = String(value);
2783
+ },
2784
+ animationIterationCount: (el, value) => {
2785
+ el.style.animationIterationCount = String(value);
2786
+ },
2787
+ animationDirection: (el, value) => {
2788
+ el.style.animationDirection = String(value);
2789
+ },
2790
+ animationFillMode: (el, value) => {
2791
+ el.style.animationFillMode = String(value);
2792
+ },
2793
+ animationPlayState: (el, value) => {
2794
+ el.style.animationPlayState = String(value);
2739
2795
  }
2740
- }
2796
+ };
2741
2797
 
2742
2798
  // src/dom/applicators/index.ts
2743
2799
  var BREAKPOINTS = {
@@ -2973,60 +3029,57 @@ class ApplicatorRegistry {
2973
3029
  return !unitless.includes(prop);
2974
3030
  }
2975
3031
  registerDefaults() {
2976
- const { paddingHandler: paddingHandler2 } = __toCommonJS(exports_padding);
2977
- const { marginHandler: marginHandler2 } = __toCommonJS(exports_margin);
2978
- const { colorHandlers: colorHandlers2 } = (init_color(), __toCommonJS(exports_color));
2979
- const { borderHandlers: borderHandlers2 } = (init_border(), __toCommonJS(exports_border));
2980
- const { sizeHandlers: sizeHandlers2 } = (init_size(), __toCommonJS(exports_size));
2981
- const { fontHandlers: fontHandlers2 } = (init_font(), __toCommonJS(exports_font));
2982
- const { layoutHandlers: layoutHandlers2 } = (init_layout(), __toCommonJS(exports_layout));
2983
- const { eventHandlers: eventHandlers2 } = (init_events(), __toCommonJS(exports_events));
2984
- const { typographyHandlers: typographyHandlers2 } = (init_typography(), __toCommonJS(exports_typography));
2985
- const { transformHandlers: transformHandlers2 } = (init_transform(), __toCommonJS(exports_transform));
2986
- const { effectsHandlers: effectsHandlers2 } = (init_effects(), __toCommonJS(exports_effects));
2987
- const { advancedLayoutHandlers: advancedLayoutHandlers2 } = (init_advanced_layout(), __toCommonJS(exports_advanced_layout));
2988
- const { backgroundHandlers: backgroundHandlers2 } = (init_background(), __toCommonJS(exports_background));
2989
- const { displayHandlers: displayHandlers2 } = (init_display(), __toCommonJS(exports_display));
2990
- const { transitionHandlers: transitionHandlers2 } = (init_transition(), __toCommonJS(exports_transition));
2991
- this.register("padding", paddingHandler2);
2992
- this.register("margin", marginHandler2);
2993
- for (const [name, handler] of Object.entries(colorHandlers2)) {
3032
+ this.register("padding", paddingHandler);
3033
+ this.register("paddingTop", paddingTopHandler);
3034
+ this.register("paddingBottom", paddingBottomHandler);
3035
+ this.register("paddingLeft", paddingLeftHandler);
3036
+ this.register("paddingRight", paddingRightHandler);
3037
+ this.register("paddingHorizontal", paddingHorizontalHandler);
3038
+ this.register("paddingVertical", paddingVerticalHandler);
3039
+ this.register("margin", marginHandler);
3040
+ this.register("marginTop", marginTopHandler);
3041
+ this.register("marginBottom", marginBottomHandler);
3042
+ this.register("marginLeft", marginLeftHandler);
3043
+ this.register("marginRight", marginRightHandler);
3044
+ this.register("marginHorizontal", marginHorizontalHandler);
3045
+ this.register("marginVertical", marginVerticalHandler);
3046
+ for (const [name, handler] of Object.entries(colorHandlers)) {
2994
3047
  this.register(name, handler);
2995
3048
  }
2996
- for (const [name, handler] of Object.entries(borderHandlers2)) {
3049
+ for (const [name, handler] of Object.entries(borderHandlers)) {
2997
3050
  this.register(name, handler);
2998
3051
  }
2999
- for (const [name, handler] of Object.entries(sizeHandlers2)) {
3052
+ for (const [name, handler] of Object.entries(sizeHandlers)) {
3000
3053
  this.register(name, handler);
3001
3054
  }
3002
- for (const [name, handler] of Object.entries(fontHandlers2)) {
3055
+ for (const [name, handler] of Object.entries(fontHandlers)) {
3003
3056
  this.register(name, handler);
3004
3057
  }
3005
- for (const [name, handler] of Object.entries(layoutHandlers2)) {
3058
+ for (const [name, handler] of Object.entries(layoutHandlers)) {
3006
3059
  this.register(name, handler);
3007
3060
  }
3008
- for (const [name, handler] of Object.entries(eventHandlers2)) {
3061
+ for (const [name, handler] of Object.entries(eventHandlers)) {
3009
3062
  this.register(name, handler);
3010
3063
  }
3011
- for (const [name, handler] of Object.entries(typographyHandlers2)) {
3064
+ for (const [name, handler] of Object.entries(typographyHandlers)) {
3012
3065
  this.register(name, handler);
3013
3066
  }
3014
- for (const [name, handler] of Object.entries(transformHandlers2)) {
3067
+ for (const [name, handler] of Object.entries(transformHandlers)) {
3015
3068
  this.register(name, handler);
3016
3069
  }
3017
- for (const [name, handler] of Object.entries(effectsHandlers2)) {
3070
+ for (const [name, handler] of Object.entries(effectsHandlers)) {
3018
3071
  this.register(name, handler);
3019
3072
  }
3020
- for (const [name, handler] of Object.entries(advancedLayoutHandlers2)) {
3073
+ for (const [name, handler] of Object.entries(advancedLayoutHandlers)) {
3021
3074
  this.register(name, handler);
3022
3075
  }
3023
- for (const [name, handler] of Object.entries(backgroundHandlers2)) {
3076
+ for (const [name, handler] of Object.entries(backgroundHandlers)) {
3024
3077
  this.register(name, handler);
3025
3078
  }
3026
- for (const [name, handler] of Object.entries(displayHandlers2)) {
3079
+ for (const [name, handler] of Object.entries(displayHandlers)) {
3027
3080
  this.register(name, handler);
3028
3081
  }
3029
- for (const [name, handler] of Object.entries(transitionHandlers2)) {
3082
+ for (const [name, handler] of Object.entries(transitionHandlers)) {
3030
3083
  this.register(name, handler);
3031
3084
  }
3032
3085
  }
@@ -3074,6 +3127,8 @@ var canvasApplicators = {
3074
3127
  };
3075
3128
 
3076
3129
  // src/dom/debug.ts
3130
+ import { frameworkLoggers as frameworkLoggers4 } from "@hypen-space/core";
3131
+ var log4 = frameworkLoggers4.debug;
3077
3132
  var defaultDebugConfig = {
3078
3133
  enabled: false,
3079
3134
  showHeatmap: true,
@@ -3099,7 +3154,7 @@ class RerenderTracker {
3099
3154
  if (!this.config.enabled || !this.config.showHeatmap) {
3100
3155
  return;
3101
3156
  }
3102
- console.log(`\uD83D\uDD25 [Debug] Tracking re-render: ${id} - ${patchType}`);
3157
+ log4.debug(`Tracking re-render: ${id} - ${patchType}`);
3103
3158
  const currentCount = this.renderCounts.get(id) || 0;
3104
3159
  const newCount = currentCount + 1;
3105
3160
  this.renderCounts.set(id, newCount);
@@ -3107,7 +3162,7 @@ class RerenderTracker {
3107
3162
  }
3108
3163
  updateHeatmap(id, element, renderCount, patchType) {
3109
3164
  const opacity = Math.min(renderCount * this.config.heatmapIncrement / 100, this.config.maxOpacity);
3110
- console.log(`\uD83D\uDD25 [Debug] Updating heatmap for ${id}, count: ${renderCount}, opacity: ${opacity}`);
3165
+ log4.debug(`Updating heatmap for ${id}, count: ${renderCount}, opacity: ${opacity}`);
3111
3166
  const isInline = window.getComputedStyle(element).display.includes("inline");
3112
3167
  if (isInline || element.tagName === "SPAN") {
3113
3168
  if (!element.dataset.hypenDebugOriginalBg) {
@@ -3235,7 +3290,8 @@ class RerenderTracker {
3235
3290
  }
3236
3291
 
3237
3292
  // src/dom/renderer.ts
3238
- init_element_data();
3293
+ import { frameworkLoggers as frameworkLoggers5 } from "@hypen-space/core";
3294
+ var log5 = frameworkLoggers5.renderer;
3239
3295
 
3240
3296
  class DOMRenderer {
3241
3297
  container;
@@ -3270,13 +3326,13 @@ class DOMRenderer {
3270
3326
  }
3271
3327
  }
3272
3328
  updateState(state) {
3273
- console.log(`[Renderer] Updating state:`, state);
3329
+ log5.debug("Updating state:", state);
3274
3330
  this.currentState = state;
3275
3331
  this.interpolateAllText();
3276
3332
  }
3277
3333
  mergeComponentState(componentState) {
3278
3334
  this.currentState = { ...this.currentState, ...componentState };
3279
- console.log(`[Renderer] Merged state:`, this.currentState);
3335
+ log5.debug("Merged state:", this.currentState);
3280
3336
  this.interpolateAllText();
3281
3337
  }
3282
3338
  interpolateAllText() {
@@ -3309,7 +3365,7 @@ class DOMRenderer {
3309
3365
  applyPatch(patch) {
3310
3366
  switch (patch.type) {
3311
3367
  case "create":
3312
- this.onCreate(patch.id, patch.element_type, patch.props || {});
3368
+ this.onCreate(patch.id, patch.elementType, patch.props || {});
3313
3369
  break;
3314
3370
  case "setProp":
3315
3371
  this.onSetProp(patch.id, patch.name, patch.value);
@@ -3318,10 +3374,10 @@ class DOMRenderer {
3318
3374
  this.onSetText(patch.id, patch.text);
3319
3375
  break;
3320
3376
  case "insert":
3321
- this.onInsert(patch.parent_id, patch.id, patch.before_id);
3377
+ this.onInsert(patch.parentId, patch.id, patch.beforeId);
3322
3378
  break;
3323
3379
  case "move":
3324
- this.onMove(patch.parent_id, patch.id, patch.before_id);
3380
+ this.onMove(patch.parentId, patch.id, patch.beforeId);
3325
3381
  break;
3326
3382
  case "remove":
3327
3383
  this.onRemove(patch.id);
@@ -3336,7 +3392,7 @@ class DOMRenderer {
3336
3392
  fallback.dataset.hypenType = elementType.toLowerCase();
3337
3393
  fallback.style.display = "contents";
3338
3394
  element = fallback;
3339
- console.log(`[Renderer] Unknown component "${elementType}" - using transparent container`);
3395
+ log5.debug(`Unknown component "${elementType}" - using transparent container`);
3340
3396
  }
3341
3397
  element.dataset.hypenType = elementType.toLowerCase();
3342
3398
  element.dataset.hypenId = id;
@@ -3361,7 +3417,7 @@ class DOMRenderer {
3361
3417
  if (elementType === "input") {
3362
3418
  const inputEl = element;
3363
3419
  inputEl.value = String(value);
3364
- console.log(`[Renderer] Updated input value: "${value}"`);
3420
+ log5.debug(`Updated input value: "${value}"`);
3365
3421
  return;
3366
3422
  }
3367
3423
  const nextText = String(value);
@@ -3376,7 +3432,7 @@ class DOMRenderer {
3376
3432
  } else if (!currentLooksLikeTemplate) {
3377
3433
  element.dataset.textTemplate = nextText;
3378
3434
  }
3379
- console.log(`[Renderer] Updated text content: "${value}"`);
3435
+ log5.debug(`Updated text content: "${value}"`);
3380
3436
  return;
3381
3437
  }
3382
3438
  this.applicators.apply(element, name, value);
@@ -3391,7 +3447,7 @@ class DOMRenderer {
3391
3447
  onInsert(parentId, id, beforeId) {
3392
3448
  const parent = parentId === "root" ? this.container : this.nodes.get(parentId);
3393
3449
  const child = this.nodes.get(id);
3394
- console.log(`[Renderer] Inserting ${id} into ${parentId}`, {
3450
+ log5.debug(`Inserting ${id} into ${parentId}`, {
3395
3451
  parent: parent ? `${parent.tagName}#${parent.id || "no-id"}` : "null",
3396
3452
  child: child ? `${child.tagName}#${child.id || "no-id"}` : "null",
3397
3453
  childText: child?.textContent?.substring(0, 20)
@@ -3455,6 +3511,9 @@ class DOMRenderer {
3455
3511
  }
3456
3512
 
3457
3513
  // src/dom/events.ts
3514
+ import { frameworkLoggers as frameworkLoggers6 } from "@hypen-space/core";
3515
+ var log6 = frameworkLoggers6.events;
3516
+
3458
3517
  class EventManager {
3459
3518
  engine;
3460
3519
  bindings = new Map;
@@ -3463,22 +3522,22 @@ class EventManager {
3463
3522
  }
3464
3523
  attach(elementId, element, eventName, actionName) {
3465
3524
  const domEventName = eventName === "onClick" ? "click" : eventName;
3466
- console.log(`[EventManager] Attaching ${eventName} (DOM: ${domEventName}) to element ${elementId}, action: ${actionName}`);
3525
+ log6.debug(`Attaching ${eventName} (DOM: ${domEventName}) to element ${elementId}, action: ${actionName}`);
3467
3526
  const listener = (event) => {
3468
- console.log(`\uD83D\uDD25 [EventManager] Event fired: ${eventName} on ${elementId}, dispatching action: ${actionName}`);
3469
- console.log(`\uD83D\uDD25 [EventManager] Event object:`, event);
3470
- console.log(`\uD83D\uDD25 [EventManager] Element:`, element);
3527
+ log6.debug(`Event fired: ${eventName} on ${elementId}, dispatching action: ${actionName}`);
3528
+ log6.debug(`Event object:`, event);
3529
+ log6.debug(`Element:`, element);
3471
3530
  if (eventName === "submit" || eventName === "click" && element.tagName === "A") {
3472
3531
  event.preventDefault();
3473
3532
  }
3474
3533
  const payload = this.extractEventData(event, element);
3475
- console.log(`\uD83D\uDD25 [EventManager] Event payload:`, payload);
3476
- console.log(`\uD83D\uDD25 [EventManager] Calling engine.dispatchAction(${actionName})`);
3534
+ log6.debug(`Event payload:`, payload);
3535
+ log6.debug(`Calling engine.dispatchAction(${actionName})`);
3477
3536
  try {
3478
3537
  this.engine.dispatchAction(actionName, payload);
3479
- console.log(`\uD83D\uDD25 [EventManager] ✅ dispatchAction succeeded`);
3538
+ log6.debug(`dispatchAction succeeded`);
3480
3539
  } catch (error) {
3481
- console.error(`\uD83D\uDD25 [EventManager] ❌ dispatchAction failed:`, error);
3540
+ log6.error(`dispatchAction failed:`, error);
3482
3541
  }
3483
3542
  };
3484
3543
  let elementBindings = this.bindings.get(elementId);
@@ -3488,8 +3547,8 @@ class EventManager {
3488
3547
  }
3489
3548
  elementBindings.set(eventName, listener);
3490
3549
  element.addEventListener(domEventName, listener);
3491
- console.log(`[EventManager] Listener attached to DOM for ${domEventName}`);
3492
- console.log(`[EventManager] Element details:`, {
3550
+ log6.debug(`Listener attached to DOM for ${domEventName}`);
3551
+ log6.debug(`Element details:`, {
3493
3552
  tagName: element.tagName,
3494
3553
  id: element.id,
3495
3554
  dataset: element.dataset,
@@ -3497,7 +3556,7 @@ class EventManager {
3497
3556
  });
3498
3557
  if (domEventName === "click") {
3499
3558
  element.addEventListener("click", (e) => {
3500
- console.log(`\uD83E\uDDEA [TEST] Raw DOM click detected on ${element.tagName}`, e);
3559
+ log6.debug(`Raw DOM click detected on ${element.tagName}`, e);
3501
3560
  });
3502
3561
  }
3503
3562
  }
@@ -3566,4 +3625,4 @@ export {
3566
3625
  ApplicatorRegistry
3567
3626
  };
3568
3627
 
3569
- //# debugId=DAAB42C61CF69F0464756E2164756E21
3628
+ //# debugId=B4E923D0EBE0B01664756E2164756E21