mono-jsx 0.8.0-beta.2 → 0.8.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -186,6 +186,14 @@ var isVNode = (v) => Array.isArray(v) && v.length === 3 && v[2] === $vnode;
186
186
  var isReactive = (v) => v instanceof Signal || v instanceof Compute;
187
187
  var createTextNode = (text = "") => document.createTextNode(text);
188
188
  var onAbort = (signal, callback) => signal?.addEventListener("abort", callback);
189
+ var setAttribute = (el, name, value) => {
190
+ const type = typeof value;
191
+ if (type === "boolean") {
192
+ el.toggleAttribute(name, value);
193
+ } else if (type === "number" || type === "string") {
194
+ el.setAttribute(name, String(value));
195
+ }
196
+ };
189
197
  var render = (scope, child, root, abortSignal) => {
190
198
  switch (typeof child) {
191
199
  case "boolean":
@@ -391,17 +399,17 @@ var render = (scope, child, root, abortSignal) => {
391
399
  evt.preventDefault();
392
400
  attrValue(new FormData(evt.target), evt);
393
401
  });
394
- } else if (isString(attrValue)) {
395
- el.setAttribute(attrName, attrValue);
402
+ } else {
403
+ setAttribute(el, attrName, attrValue);
396
404
  }
397
405
  break;
398
406
  default:
399
407
  if (attrName.startsWith("on") && isFunction(attrValue)) {
400
408
  el.addEventListener(attrName.slice(2).toLowerCase(), attrValue);
401
409
  } else if (isReactive(attrValue)) {
402
- attrValue.reactive((value) => el.setAttribute(attrName, String(value)));
410
+ attrValue.reactive((value) => setAttribute(el, attrName, value));
403
411
  } else {
404
- el.setAttribute(attrName, String(attrValue));
412
+ setAttribute(el, attrName, attrValue);
405
413
  }
406
414
  break;
407
415
  }
package/jsx-runtime.mjs CHANGED
@@ -166,7 +166,7 @@ var $vnode = Symbol.for("jsx.vnode");
166
166
  var $setup = Symbol.for("mono.setup");
167
167
 
168
168
  // version.ts
169
- var VERSION = "0.8.0-beta.1";
169
+ var VERSION = "0.8.0-beta.2";
170
170
 
171
171
  // render.ts
172
172
  var cdn = "https://raw.esm.sh";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mono-jsx",
3
- "version": "0.8.0-beta.2",
3
+ "version": "0.8.0-beta.3",
4
4
  "description": "`<html>` as a `Response`.",
5
5
  "type": "module",
6
6
  "module": "./index.mjs",