sibujs 3.3.3 → 3.4.0

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 (60) hide show
  1. package/dist/browser.cjs +1 -1
  2. package/dist/browser.js +4 -4
  3. package/dist/build.cjs +3348 -3021
  4. package/dist/build.js +11 -10
  5. package/dist/cdn.global.js +7 -7
  6. package/dist/{chunk-IEYFHN5V.js → chunk-3DVGCW7O.js} +3 -3
  7. package/dist/{chunk-5K6RVA2S.js → chunk-3Z2NGWQI.js} +1 -1
  8. package/dist/{chunk-MYXEBADX.js → chunk-APFRCIRI.js} +2907 -2577
  9. package/dist/{chunk-Y35NQNLG.js → chunk-AXFWGY32.js} +8 -8
  10. package/dist/{chunk-23VT3KZB.js → chunk-BUKYCWHX.js} +1 -1
  11. package/dist/{chunk-WFUUT6TG.js → chunk-CEBWDD63.js} +3 -3
  12. package/dist/{chunk-5Y34FWED.js → chunk-ELXMRSVN.js} +7 -7
  13. package/dist/{chunk-TVCCXPU2.js → chunk-FKQG7FTY.js} +4 -4
  14. package/dist/{chunk-TBDTU7UO.js → chunk-H5FI5WDP.js} +1 -1
  15. package/dist/{chunk-F3HO2MP7.js → chunk-ITWCTZYH.js} +1 -1
  16. package/dist/{chunk-WTFMV2RU.js → chunk-JCO7AHNU.js} +2 -2
  17. package/dist/{chunk-RZKGMHH4.js → chunk-JNGGM2XE.js} +2 -2
  18. package/dist/{chunk-SBPUXWCE.js → chunk-K35BAR4P.js} +1 -1
  19. package/dist/{chunk-IWFE4AHO.js → chunk-KZBEVFXZ.js} +1 -1
  20. package/dist/{chunk-IQN5W7GE.js → chunk-OAVXAFAY.js} +4 -4
  21. package/dist/{chunk-QCQQ2N5H.js → chunk-ODXVQ3CS.js} +6 -6
  22. package/dist/{chunk-UOMYIAG6.js → chunk-OOUQUCNN.js} +1 -1
  23. package/dist/{chunk-ZXCZWMZT.js → chunk-RT3IYFN2.js} +1 -1
  24. package/dist/{chunk-QTOOBABV.js → chunk-S3V6ZXPI.js} +2 -2
  25. package/dist/{chunk-25LY5SRH.js → chunk-WSGLJYFI.js} +1 -1
  26. package/dist/data.cjs +1 -1
  27. package/dist/data.js +6 -6
  28. package/dist/devtools.cjs +1 -1
  29. package/dist/devtools.js +4 -4
  30. package/dist/ecosystem.cjs +1 -1
  31. package/dist/ecosystem.d.cts +1 -1
  32. package/dist/ecosystem.d.ts +1 -1
  33. package/dist/ecosystem.js +7 -7
  34. package/dist/extras.cjs +1 -1
  35. package/dist/extras.d.cts +1 -1
  36. package/dist/extras.d.ts +1 -1
  37. package/dist/extras.js +20 -20
  38. package/dist/index.cjs +3350 -3017
  39. package/dist/index.d.cts +1175 -1056
  40. package/dist/index.d.ts +1175 -1056
  41. package/dist/index.js +23 -10
  42. package/dist/motion.cjs +1 -1
  43. package/dist/motion.js +3 -3
  44. package/dist/patterns.cjs +1 -1
  45. package/dist/patterns.js +5 -5
  46. package/dist/performance.cjs +1 -1
  47. package/dist/performance.js +5 -5
  48. package/dist/plugins.cjs +1 -1
  49. package/dist/plugins.js +9 -9
  50. package/dist/ssr.cjs +1 -1
  51. package/dist/ssr.js +8 -8
  52. package/dist/{tagFactory-S17H2qxu.d.cts → tagFactory-Bzupt4Pj.d.cts} +1 -1
  53. package/dist/{tagFactory-S17H2qxu.d.ts → tagFactory-Bzupt4Pj.d.ts} +1 -1
  54. package/dist/testing.cjs +1 -1
  55. package/dist/testing.js +2 -2
  56. package/dist/ui.cjs +1 -1
  57. package/dist/ui.js +9 -9
  58. package/dist/widgets.cjs +1 -1
  59. package/dist/widgets.js +6 -6
  60. package/package.json +4 -1
package/dist/index.js CHANGED
@@ -19,13 +19,17 @@ import {
19
19
  deepSignal,
20
20
  defer,
21
21
  each,
22
+ enhance,
23
+ enhanceAll,
22
24
  getAction,
23
25
  getSlot,
24
26
  html,
25
27
  lazy,
28
+ lazyIsland,
26
29
  longPress,
27
30
  match,
28
31
  mount,
32
+ mountIslands,
29
33
  nextTick,
30
34
  onCleanup,
31
35
  onMount,
@@ -34,6 +38,7 @@ import {
34
38
  ref,
35
39
  registerAction,
36
40
  registerComponent,
41
+ registerIsland,
37
42
  resolveComponent,
38
43
  setGlobalErrorHandler,
39
44
  show,
@@ -44,9 +49,10 @@ import {
44
49
  transition,
45
50
  trapFocus,
46
51
  unregisterComponent,
52
+ unregisterIsland,
47
53
  when,
48
54
  writable
49
- } from "./chunk-MYXEBADX.js";
55
+ } from "./chunk-APFRCIRI.js";
50
56
  import {
51
57
  a,
52
58
  abbr,
@@ -184,10 +190,10 @@ import {
184
190
  use,
185
191
  var_,
186
192
  video
187
- } from "./chunk-5K6RVA2S.js";
193
+ } from "./chunk-3Z2NGWQI.js";
188
194
  import {
189
195
  watch
190
- } from "./chunk-TBDTU7UO.js";
196
+ } from "./chunk-H5FI5WDP.js";
191
197
  import {
192
198
  __resetIdCounter,
193
199
  createId
@@ -197,22 +203,23 @@ import {
197
203
  } from "./chunk-EX77FXTT.js";
198
204
  import {
199
205
  context
200
- } from "./chunk-ZXCZWMZT.js";
206
+ } from "./chunk-RT3IYFN2.js";
201
207
  import {
202
208
  SVG_NS,
203
209
  tagFactory
204
- } from "./chunk-RZKGMHH4.js";
210
+ } from "./chunk-JNGGM2XE.js";
205
211
  import {
206
212
  bindDynamic
207
- } from "./chunk-SBPUXWCE.js";
213
+ } from "./chunk-K35BAR4P.js";
208
214
  import {
209
215
  derived
210
- } from "./chunk-F3HO2MP7.js";
216
+ } from "./chunk-ITWCTZYH.js";
217
+ import "./chunk-7ZHH77QA.js";
211
218
  import "./chunk-L3GAGWCC.js";
212
219
  import {
213
220
  effect,
214
221
  on
215
- } from "./chunk-23VT3KZB.js";
222
+ } from "./chunk-BUKYCWHX.js";
216
223
  import {
217
224
  disableSSR,
218
225
  enableSSR,
@@ -232,12 +239,12 @@ import {
232
239
  enqueueBatchedSignal,
233
240
  isBatching,
234
241
  signal
235
- } from "./chunk-IWFE4AHO.js";
242
+ } from "./chunk-KZBEVFXZ.js";
236
243
  import {
237
244
  retrack,
238
245
  setMaxDrainIterations,
239
246
  untracked
240
- } from "./chunk-UOMYIAG6.js";
247
+ } from "./chunk-OOUQUCNN.js";
241
248
  import "./chunk-COY6PUD2.js";
242
249
  export {
243
250
  DynamicComponent,
@@ -311,6 +318,8 @@ export {
311
318
  em,
312
319
  embed,
313
320
  enableSSR,
321
+ enhance,
322
+ enhanceAll,
314
323
  enqueueBatchedSignal,
315
324
  fieldset,
316
325
  figcaption,
@@ -343,6 +352,7 @@ export {
343
352
  kbd,
344
353
  label,
345
354
  lazy,
355
+ lazyIsland,
346
356
  legend,
347
357
  li,
348
358
  line,
@@ -361,6 +371,7 @@ export {
361
371
  meta,
362
372
  meter,
363
373
  mount,
374
+ mountIslands,
364
375
  nav,
365
376
  nextTick,
366
377
  noscript,
@@ -391,6 +402,7 @@ export {
391
402
  registerAction,
392
403
  registerComponent,
393
404
  registerDisposer,
405
+ registerIsland,
394
406
  resolveComponent,
395
407
  retrack,
396
408
  rp,
@@ -443,6 +455,7 @@ export {
443
455
  u,
444
456
  ul,
445
457
  unregisterComponent,
458
+ unregisterIsland,
446
459
  untracked,
447
460
  use,
448
461
  var_,
package/dist/motion.cjs CHANGED
@@ -579,7 +579,7 @@ function forEachSubscriber(signal2, visit) {
579
579
 
580
580
  // src/reactivity/track.ts
581
581
  var _isDev4 = isDev();
582
- var _runtimeVersion = true ? "3.3.3" : "dev";
582
+ var _runtimeVersion = true ? "3.4.0" : "dev";
583
583
  var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.v1");
584
584
  function resolveReactiveApi() {
585
585
  const g = globalThis;
package/dist/motion.js CHANGED
@@ -20,10 +20,10 @@ import {
20
20
  stagger,
21
21
  transition,
22
22
  viewTransition
23
- } from "./chunk-25LY5SRH.js";
23
+ } from "./chunk-WSGLJYFI.js";
24
24
  import "./chunk-5VGSK6D2.js";
25
- import "./chunk-IWFE4AHO.js";
26
- import "./chunk-UOMYIAG6.js";
25
+ import "./chunk-KZBEVFXZ.js";
26
+ import "./chunk-OOUQUCNN.js";
27
27
  import "./chunk-COY6PUD2.js";
28
28
  export {
29
29
  TransitionGroup,
package/dist/patterns.cjs CHANGED
@@ -481,7 +481,7 @@ function forEachSubscriber(signal2, visit) {
481
481
 
482
482
  // src/reactivity/track.ts
483
483
  var _isDev3 = isDev();
484
- var _runtimeVersion = true ? "3.3.3" : "dev";
484
+ var _runtimeVersion = true ? "3.4.0" : "dev";
485
485
  var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.v1");
486
486
  function resolveReactiveApi() {
487
487
  const g = globalThis;
package/dist/patterns.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  optimisticList,
6
6
  persisted,
7
7
  timeline
8
- } from "./chunk-WFUUT6TG.js";
8
+ } from "./chunk-CEBWDD63.js";
9
9
  import {
10
10
  RenderProp,
11
11
  assertType,
@@ -23,11 +23,11 @@ import {
23
23
  withWrapper
24
24
  } from "./chunk-VJE6DDYM.js";
25
25
  import "./chunk-H3SRKIYX.js";
26
- import "./chunk-F3HO2MP7.js";
27
- import "./chunk-23VT3KZB.js";
26
+ import "./chunk-ITWCTZYH.js";
27
+ import "./chunk-BUKYCWHX.js";
28
28
  import "./chunk-S3NFJO6L.js";
29
- import "./chunk-IWFE4AHO.js";
30
- import "./chunk-UOMYIAG6.js";
29
+ import "./chunk-KZBEVFXZ.js";
30
+ import "./chunk-OOUQUCNN.js";
31
31
  import "./chunk-COY6PUD2.js";
32
32
  export {
33
33
  RenderProp,
@@ -668,7 +668,7 @@ function forEachSubscriber(signal2, visit) {
668
668
 
669
669
  // src/reactivity/track.ts
670
670
  var _isDev3 = isDev();
671
- var _runtimeVersion = true ? "3.3.3" : "dev";
671
+ var _runtimeVersion = true ? "3.4.0" : "dev";
672
672
  var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.v1");
673
673
  function resolveReactiveApi() {
674
674
  const g = globalThis;
@@ -33,17 +33,17 @@ import {
33
33
  transitionState,
34
34
  uniqueId,
35
35
  yieldToMain
36
- } from "./chunk-WTFMV2RU.js";
37
- import "./chunk-7ZHH77QA.js";
36
+ } from "./chunk-JCO7AHNU.js";
38
37
  import {
39
38
  trustHTML
40
39
  } from "./chunk-EX77FXTT.js";
40
+ import "./chunk-7ZHH77QA.js";
41
41
  import "./chunk-L3GAGWCC.js";
42
- import "./chunk-23VT3KZB.js";
42
+ import "./chunk-BUKYCWHX.js";
43
43
  import "./chunk-S3NFJO6L.js";
44
44
  import "./chunk-5VGSK6D2.js";
45
- import "./chunk-IWFE4AHO.js";
46
- import "./chunk-UOMYIAG6.js";
45
+ import "./chunk-KZBEVFXZ.js";
46
+ import "./chunk-OOUQUCNN.js";
47
47
  import "./chunk-COY6PUD2.js";
48
48
  export {
49
49
  DOMPool,
package/dist/plugins.cjs CHANGED
@@ -1228,7 +1228,7 @@ function forEachSubscriber(signal2, visit) {
1228
1228
 
1229
1229
  // src/reactivity/track.ts
1230
1230
  var _isDev3 = isDev();
1231
- var _runtimeVersion = true ? "3.3.3" : "dev";
1231
+ var _runtimeVersion = true ? "3.4.0" : "dev";
1232
1232
  var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.v1");
1233
1233
  function resolveReactiveApi() {
1234
1234
  const g2 = globalThis;
package/dist/plugins.js CHANGED
@@ -33,19 +33,19 @@ import {
33
33
  triggerPluginMount,
34
34
  triggerPluginUnmount
35
35
  } from "./chunk-WWV3SJ3L.js";
36
- import {
37
- globalSingleton
38
- } from "./chunk-7ZHH77QA.js";
39
36
  import {
40
37
  span
41
- } from "./chunk-5K6RVA2S.js";
38
+ } from "./chunk-3Z2NGWQI.js";
42
39
  import {
43
40
  escapeScriptJson,
44
41
  isDangerousMetaRefresh,
45
42
  renderToString
46
43
  } from "./chunk-EX77FXTT.js";
47
- import "./chunk-RZKGMHH4.js";
48
- import "./chunk-SBPUXWCE.js";
44
+ import "./chunk-JNGGM2XE.js";
45
+ import "./chunk-K35BAR4P.js";
46
+ import {
47
+ globalSingleton
48
+ } from "./chunk-7ZHH77QA.js";
49
49
  import {
50
50
  isUrlAttribute,
51
51
  sanitizeCSSValue,
@@ -54,7 +54,7 @@ import {
54
54
  } from "./chunk-L3GAGWCC.js";
55
55
  import {
56
56
  effect
57
- } from "./chunk-23VT3KZB.js";
57
+ } from "./chunk-BUKYCWHX.js";
58
58
  import "./chunk-S3NFJO6L.js";
59
59
  import {
60
60
  dispose,
@@ -62,10 +62,10 @@ import {
62
62
  } from "./chunk-5VGSK6D2.js";
63
63
  import {
64
64
  signal
65
- } from "./chunk-IWFE4AHO.js";
65
+ } from "./chunk-KZBEVFXZ.js";
66
66
  import {
67
67
  track
68
- } from "./chunk-UOMYIAG6.js";
68
+ } from "./chunk-OOUQUCNN.js";
69
69
  import "./chunk-COY6PUD2.js";
70
70
 
71
71
  // src/plugins/i18n.ts
package/dist/ssr.cjs CHANGED
@@ -1190,7 +1190,7 @@ function forEachSubscriber(signal2, visit) {
1190
1190
 
1191
1191
  // src/reactivity/track.ts
1192
1192
  var _isDev5 = isDev();
1193
- var _runtimeVersion = true ? "3.3.3" : "dev";
1193
+ var _runtimeVersion = true ? "3.4.0" : "dev";
1194
1194
  var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.v1");
1195
1195
  function resolveReactiveApi() {
1196
1196
  const g2 = globalThis;
package/dist/ssr.js CHANGED
@@ -22,9 +22,8 @@ import {
22
22
  wasm,
23
23
  worker,
24
24
  workerFn
25
- } from "./chunk-QCQQ2N5H.js";
26
- import "./chunk-7ZHH77QA.js";
27
- import "./chunk-5K6RVA2S.js";
25
+ } from "./chunk-ODXVQ3CS.js";
26
+ import "./chunk-3Z2NGWQI.js";
28
27
  import {
29
28
  collectStream,
30
29
  deserializeState,
@@ -45,14 +44,15 @@ import {
45
44
  suspenseSwapScript,
46
45
  trustHTML
47
46
  } from "./chunk-EX77FXTT.js";
48
- import "./chunk-RZKGMHH4.js";
49
- import "./chunk-SBPUXWCE.js";
47
+ import "./chunk-JNGGM2XE.js";
48
+ import "./chunk-K35BAR4P.js";
49
+ import "./chunk-7ZHH77QA.js";
50
50
  import "./chunk-L3GAGWCC.js";
51
- import "./chunk-23VT3KZB.js";
51
+ import "./chunk-BUKYCWHX.js";
52
52
  import "./chunk-S3NFJO6L.js";
53
53
  import "./chunk-5VGSK6D2.js";
54
- import "./chunk-IWFE4AHO.js";
55
- import "./chunk-UOMYIAG6.js";
54
+ import "./chunk-KZBEVFXZ.js";
55
+ import "./chunk-OOUQUCNN.js";
56
56
  import "./chunk-COY6PUD2.js";
57
57
  export {
58
58
  Head,
@@ -52,4 +52,4 @@ interface TagProps {
52
52
  */
53
53
  declare const tagFactory: (tag: string, ns?: string) => (first?: TagProps | NodeChildren, second?: NodeChildren) => Element;
54
54
 
55
- export { type Dispose as D, type NodeChildren as N, SVG_NS as S, type TagProps as T, type NodeChild as a, tagFactory as t };
55
+ export { type Dispose as D, type NodeChild as N, SVG_NS as S, type TagProps as T, type NodeChildren as a, tagFactory as t };
@@ -52,4 +52,4 @@ interface TagProps {
52
52
  */
53
53
  declare const tagFactory: (tag: string, ns?: string) => (first?: TagProps | NodeChildren, second?: NodeChildren) => Element;
54
54
 
55
- export { type Dispose as D, type NodeChildren as N, SVG_NS as S, type TagProps as T, type NodeChild as a, tagFactory as t };
55
+ export { type Dispose as D, type NodeChild as N, SVG_NS as S, type TagProps as T, type NodeChildren as a, tagFactory as t };
package/dist/testing.cjs CHANGED
@@ -1994,7 +1994,7 @@ function forEachSubscriber(signal, visit) {
1994
1994
 
1995
1995
  // src/reactivity/track.ts
1996
1996
  var _isDev4 = isDev();
1997
- var _runtimeVersion = true ? "3.3.3" : "dev";
1997
+ var _runtimeVersion = true ? "3.4.0" : "dev";
1998
1998
  var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.v1");
1999
1999
  function resolveReactiveApi() {
2000
2000
  const g = globalThis;
package/dist/testing.js CHANGED
@@ -3,12 +3,12 @@ import {
3
3
  } from "./chunk-7ZHH77QA.js";
4
4
  import {
5
5
  effect
6
- } from "./chunk-23VT3KZB.js";
6
+ } from "./chunk-BUKYCWHX.js";
7
7
  import "./chunk-S3NFJO6L.js";
8
8
  import {
9
9
  dispose
10
10
  } from "./chunk-5VGSK6D2.js";
11
- import "./chunk-UOMYIAG6.js";
11
+ import "./chunk-OOUQUCNN.js";
12
12
  import "./chunk-COY6PUD2.js";
13
13
 
14
14
  // src/testing/a11y.ts
package/dist/ui.cjs CHANGED
@@ -584,7 +584,7 @@ function forEachSubscriber(signal2, visit) {
584
584
 
585
585
  // src/reactivity/track.ts
586
586
  var _isDev4 = isDev();
587
- var _runtimeVersion = true ? "3.3.3" : "dev";
587
+ var _runtimeVersion = true ? "3.4.0" : "dev";
588
588
  var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.v1");
589
589
  function resolveReactiveApi() {
590
590
  const g = globalThis;
package/dist/ui.js CHANGED
@@ -38,7 +38,7 @@ import {
38
38
  toast,
39
39
  withScopedStyle,
40
40
  zipMask
41
- } from "./chunk-Y35NQNLG.js";
41
+ } from "./chunk-AXFWGY32.js";
42
42
  import {
43
43
  RenderProp,
44
44
  assertType,
@@ -55,26 +55,26 @@ import {
55
55
  withProps,
56
56
  withWrapper
57
57
  } from "./chunk-VJE6DDYM.js";
58
- import {
59
- globalSingleton
60
- } from "./chunk-7ZHH77QA.js";
61
58
  import {
62
59
  createId
63
60
  } from "./chunk-CCSJMTRN.js";
64
- import "./chunk-SBPUXWCE.js";
65
- import "./chunk-F3HO2MP7.js";
61
+ import "./chunk-K35BAR4P.js";
62
+ import "./chunk-ITWCTZYH.js";
63
+ import {
64
+ globalSingleton
65
+ } from "./chunk-7ZHH77QA.js";
66
66
  import "./chunk-L3GAGWCC.js";
67
67
  import {
68
68
  effect
69
- } from "./chunk-23VT3KZB.js";
69
+ } from "./chunk-BUKYCWHX.js";
70
70
  import "./chunk-S3NFJO6L.js";
71
71
  import {
72
72
  registerDisposer
73
73
  } from "./chunk-5VGSK6D2.js";
74
74
  import {
75
75
  signal
76
- } from "./chunk-IWFE4AHO.js";
77
- import "./chunk-UOMYIAG6.js";
76
+ } from "./chunk-KZBEVFXZ.js";
77
+ import "./chunk-OOUQUCNN.js";
78
78
  import "./chunk-COY6PUD2.js";
79
79
 
80
80
  // src/ui/formAction.ts
package/dist/widgets.cjs CHANGED
@@ -478,7 +478,7 @@ function forEachSubscriber(signal2, visit) {
478
478
 
479
479
  // src/reactivity/track.ts
480
480
  var _isDev3 = isDev();
481
- var _runtimeVersion = true ? "3.3.3" : "dev";
481
+ var _runtimeVersion = true ? "3.4.0" : "dev";
482
482
  var REGISTRY_KEY = /* @__PURE__ */ Symbol.for("sibujs.reactive.v1");
483
483
  function resolveReactiveApi() {
484
484
  const g = globalThis;
package/dist/widgets.js CHANGED
@@ -8,15 +8,15 @@ import {
8
8
  select,
9
9
  tabs,
10
10
  tooltip
11
- } from "./chunk-IQN5W7GE.js";
12
- import "./chunk-TBDTU7UO.js";
11
+ } from "./chunk-OAVXAFAY.js";
12
+ import "./chunk-H5FI5WDP.js";
13
13
  import "./chunk-CCSJMTRN.js";
14
- import "./chunk-F3HO2MP7.js";
14
+ import "./chunk-ITWCTZYH.js";
15
15
  import "./chunk-L3GAGWCC.js";
16
- import "./chunk-23VT3KZB.js";
16
+ import "./chunk-BUKYCWHX.js";
17
17
  import "./chunk-S3NFJO6L.js";
18
- import "./chunk-IWFE4AHO.js";
19
- import "./chunk-UOMYIAG6.js";
18
+ import "./chunk-KZBEVFXZ.js";
19
+ import "./chunk-OOUQUCNN.js";
20
20
  import "./chunk-COY6PUD2.js";
21
21
  export {
22
22
  accordion,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sibujs",
3
- "version": "3.3.3",
3
+ "version": "3.4.0",
4
4
  "description": "A lightweight, function-based frontend framework that combines the best of React, Svelte, and Vue — with zero VDOM and maximum simplicity. Designed for developers who want fine-grained reactivity and full control without compilation or magic.",
5
5
  "keywords": [
6
6
  "frontend",
@@ -33,6 +33,8 @@
33
33
  "format": "biome format --write src/ tests/",
34
34
  "test": "vitest",
35
35
  "test:ui": "vitest --ui",
36
+ "test:browser": "npm run build && playwright test",
37
+ "test:browser:install": "playwright install chromium firefox webkit",
36
38
  "build": "tsup index.ts data.ts browser.ts patterns.ts motion.ts ui.ts widgets.ts ssr.ts devtools.ts performance.ts ecosystem.ts plugins.ts build.ts testing.ts extras.ts --dts --format esm,cjs --out-dir dist --clean && tsup cdn.ts --format iife --globalName Sibu --out-dir dist --no-dts --minify",
37
39
  "bench": "node bench.mjs",
38
40
  "bench:save": "node bench.mjs --save",
@@ -135,6 +137,7 @@
135
137
  },
136
138
  "devDependencies": {
137
139
  "@biomejs/biome": "2.4.7",
140
+ "@playwright/test": "^1.61.1",
138
141
  "@types/node": "^25.5.0",
139
142
  "@vitest/coverage-v8": "^3.1.3",
140
143
  "@vitest/ui": "^3.1.3",