sibujs 3.1.0 → 3.2.1

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 (78) hide show
  1. package/README.md +6 -0
  2. package/dist/browser.cjs +16 -8
  3. package/dist/browser.js +6 -5
  4. package/dist/build.cjs +235 -147
  5. package/dist/build.js +35 -24
  6. package/dist/cdn.global.js +7 -7
  7. package/dist/{chunk-WYU7CYJ3.js → chunk-2C4E3HBM.js} +5 -5
  8. package/dist/{chunk-3DYB5B3S.js → chunk-4JCAUOLN.js} +45 -23
  9. package/dist/{chunk-2HAGQWDV.js → chunk-5N74TKLD.js} +1 -1
  10. package/dist/{chunk-SVVAUX7J.js → chunk-7XDYVJLE.js} +19 -9
  11. package/dist/{chunk-2N2UL7O4.js → chunk-BGNLPNGV.js} +20 -12
  12. package/dist/{chunk-RK4BQG25.js → chunk-C427DVQF.js} +1 -1
  13. package/dist/{chunk-ZIBE2SAT.js → chunk-FDY42FIU.js} +3 -2
  14. package/dist/{chunk-GQ7RRFPU.js → chunk-FOI23UJL.js} +11 -1
  15. package/dist/{chunk-2RA7SHDA.js → chunk-GOJMFRBL.js} +20 -4
  16. package/dist/{chunk-IVOUCSZL.js → chunk-GOUM4JCT.js} +6 -6
  17. package/dist/chunk-H3SRKIYX.js +17 -0
  18. package/dist/{chunk-3DJH25UO.js → chunk-H6PCHJZQ.js} +2 -2
  19. package/dist/{chunk-UCS6AMJ7.js → chunk-HMJFCBRR.js} +26 -3
  20. package/dist/{chunk-JYD2PWXH.js → chunk-HXMS4SNP.js} +22 -15
  21. package/dist/{chunk-SC437AMI.js → chunk-JYXOEYI4.js} +12 -18
  22. package/dist/{chunk-KB3BA2XK.js → chunk-NFYWLRUO.js} +11 -18
  23. package/dist/{chunk-QNQY5DUS.js → chunk-NPIEEKPT.js} +20 -11
  24. package/dist/{chunk-UYX2NDOH.js → chunk-OYLPZO4N.js} +33 -15
  25. package/dist/{chunk-LYTCUZ7H.js → chunk-RDRSWYNP.js} +1 -1
  26. package/dist/{chunk-2ZJ7TSW4.js → chunk-RLUJL2MV.js} +4 -8
  27. package/dist/{chunk-CR4MXPHB.js → chunk-V2MTG5FT.js} +99 -36
  28. package/dist/{chunk-CNZ35WI2.js → chunk-VJE6DDYM.js} +2 -2
  29. package/dist/{chunk-PMSDFTK3.js → chunk-VOCE4NNK.js} +157 -75
  30. package/dist/{chunk-WKUXSE7V.js → chunk-X67UYC74.js} +12 -11
  31. package/dist/{chunk-EFOAE5NC.js → chunk-YFDGQWDA.js} +1 -1
  32. package/dist/{chunk-3U4ZVXVD.js → chunk-Z2FWAE4B.js} +6 -2
  33. package/dist/data.cjs +190 -94
  34. package/dist/data.d.cts +7 -1
  35. package/dist/data.d.ts +7 -1
  36. package/dist/data.js +8 -8
  37. package/dist/devtools.cjs +38 -10
  38. package/dist/devtools.d.cts +1 -1
  39. package/dist/devtools.d.ts +1 -1
  40. package/dist/devtools.js +6 -6
  41. package/dist/ecosystem.cjs +123 -63
  42. package/dist/ecosystem.js +9 -9
  43. package/dist/extras.cjs +380 -196
  44. package/dist/extras.d.cts +2 -2
  45. package/dist/extras.d.ts +2 -2
  46. package/dist/extras.js +27 -24
  47. package/dist/index.cjs +214 -136
  48. package/dist/index.d.cts +15 -2
  49. package/dist/index.d.ts +15 -2
  50. package/dist/index.js +15 -13
  51. package/dist/{introspect-BZWKvQUZ.d.ts → introspect-DOZfmC-4.d.ts} +1 -1
  52. package/dist/{introspect-DsJlDD2T.d.cts → introspect-RjLfIFpL.d.cts} +1 -1
  53. package/dist/motion.cjs +10 -0
  54. package/dist/motion.js +3 -3
  55. package/dist/patterns.cjs +45 -40
  56. package/dist/patterns.js +8 -7
  57. package/dist/performance.cjs +101 -25
  58. package/dist/performance.d.cts +2 -2
  59. package/dist/performance.d.ts +2 -2
  60. package/dist/performance.js +8 -7
  61. package/dist/plugins.cjs +234 -160
  62. package/dist/plugins.d.cts +1 -1
  63. package/dist/plugins.d.ts +1 -1
  64. package/dist/plugins.js +127 -69
  65. package/dist/{ssr-FXD2PPMC.js → ssr-2QDQ27EV.js} +5 -3
  66. package/dist/{ssr-CrVNy6Pa.d.cts → ssr-D62yFwuw.d.cts} +8 -1
  67. package/dist/{ssr-CrVNy6Pa.d.ts → ssr-D62yFwuw.d.ts} +8 -1
  68. package/dist/ssr.cjs +145 -66
  69. package/dist/ssr.d.cts +1 -1
  70. package/dist/ssr.d.ts +1 -1
  71. package/dist/ssr.js +12 -10
  72. package/dist/testing.cjs +9 -4
  73. package/dist/testing.js +3 -3
  74. package/dist/ui.cjs +54 -38
  75. package/dist/ui.js +10 -9
  76. package/dist/widgets.cjs +40 -24
  77. package/dist/widgets.js +8 -8
  78. package/package.json +3 -1
package/README.md CHANGED
@@ -44,6 +44,12 @@ argument. This is **the canonical authoring style** — no `nodes:` key
44
44
  at any level of the tree. The first argument can be a className string,
45
45
  a props object, or the children themselves.
46
46
 
47
+ > **Lone string = text child.** A string is treated as a className only when
48
+ > children follow it (`div("card", [...])`). A *lone* string is a text child —
49
+ > `div("Hello")` renders the text "Hello". For a childless styled element use
50
+ > `div({ class: "..." })`. Dev builds warn when a lone string looks like a class
51
+ > list (e.g. `div("space-y-6")`) so the class names don't silently render as text.
52
+
47
53
  ```javascript
48
54
  import { div, h1, label, input, button } from "sibujs";
49
55
 
package/dist/browser.cjs CHANGED
@@ -506,11 +506,15 @@ function media(query) {
506
506
  var als = null;
507
507
  try {
508
508
  if (typeof process !== "undefined" && process.versions && process.versions.node) {
509
- const req = Function("return typeof require==='function'?require:null")();
510
- if (req) {
511
- const mod = req("node:async_hooks");
512
- als = new mod.AsyncLocalStorage();
509
+ let mod = null;
510
+ const getBuiltin = process.getBuiltinModule;
511
+ if (typeof getBuiltin === "function") {
512
+ mod = getBuiltin("node:async_hooks");
513
+ } else {
514
+ const req = Function("return typeof require==='function'?require:null")();
515
+ if (req) mod = req("node:async_hooks");
513
516
  }
517
+ if (mod) als = new mod.AsyncLocalStorage();
514
518
  }
515
519
  } catch {
516
520
  als = null;
@@ -612,6 +616,7 @@ function effect(effectFn, options) {
612
616
  ctx.fn(ctx.onCleanup);
613
617
  };
614
618
  const sub = (() => {
619
+ if (ctx.disposed) return;
615
620
  if (ctx.running) {
616
621
  ctx.rerunPending = true;
617
622
  return;
@@ -936,6 +941,12 @@ function clipboard() {
936
941
  return { text, copy, copied, dispose };
937
942
  }
938
943
 
944
+ // src/utils/guards.ts
945
+ var UNSAFE_KEYS = /* @__PURE__ */ new Set(["__proto__", "constructor", "prototype"]);
946
+ function isUnsafeKey(key) {
947
+ return UNSAFE_KEYS.has(key);
948
+ }
949
+
939
950
  // src/browser/dragDrop.ts
940
951
  function resolveTarget2(target) {
941
952
  return typeof target === "function" ? target : () => target.current;
@@ -1021,10 +1032,7 @@ function dropZone(element, options) {
1021
1032
  const raw = e.dataTransfer.getData("application/json");
1022
1033
  if (raw) {
1023
1034
  try {
1024
- transferData = JSON.parse(
1025
- raw,
1026
- (k, v) => k === "__proto__" || k === "constructor" || k === "prototype" ? void 0 : v
1027
- );
1035
+ transferData = JSON.parse(raw, (k, v) => isUnsafeKey(k) ? void 0 : v);
1028
1036
  } catch {
1029
1037
  transferData = raw;
1030
1038
  }
package/dist/browser.js CHANGED
@@ -35,11 +35,12 @@ import {
35
35
  visibility,
36
36
  wakeLock,
37
37
  windowSize
38
- } from "./chunk-IVOUCSZL.js";
39
- import "./chunk-ZIBE2SAT.js";
40
- import "./chunk-2RA7SHDA.js";
41
- import "./chunk-RK4BQG25.js";
42
- import "./chunk-3U4ZVXVD.js";
38
+ } from "./chunk-GOUM4JCT.js";
39
+ import "./chunk-H3SRKIYX.js";
40
+ import "./chunk-FDY42FIU.js";
41
+ import "./chunk-GOJMFRBL.js";
42
+ import "./chunk-C427DVQF.js";
43
+ import "./chunk-Z2FWAE4B.js";
43
44
  import "./chunk-LMLD24FC.js";
44
45
  export {
45
46
  animationFrame,