sibujs 4.4.0 → 4.6.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 (112) hide show
  1. package/README.md +11 -0
  2. package/dist/browser.cjs +339 -130
  3. package/dist/browser.d.cts +61 -16
  4. package/dist/browser.d.ts +61 -16
  5. package/dist/browser.js +8 -6
  6. package/dist/build.cjs +273 -82
  7. package/dist/build.js +15 -16
  8. package/dist/cdn.dev.global.js +12 -12
  9. package/dist/cdn.full.dev.global.js +11 -11
  10. package/dist/cdn.full.global.js +10 -10
  11. package/dist/cdn.global.js +12 -12
  12. package/dist/{chunk-IXKSNWV5.js → chunk-2INLLLMZ.js} +1 -1
  13. package/dist/chunk-3ISI6ACU.js +44 -0
  14. package/dist/{chunk-VCTAEPSB.js → chunk-47M47FOM.js} +11 -3
  15. package/dist/chunk-5HZXGZ6T.js +24 -0
  16. package/dist/{chunk-KKLW7YWL.js → chunk-5MT6SJ3P.js} +275 -144
  17. package/dist/{chunk-3BTTCZ5J.js → chunk-5Q4R7HCL.js} +42 -4
  18. package/dist/{chunk-ADM46X22.js → chunk-7GQCWFOE.js} +157 -61
  19. package/dist/{chunk-4Z3SPQ67.js → chunk-7NCARGJW.js} +16 -8
  20. package/dist/{chunk-5DXA2J44.js → chunk-7XHATCIH.js} +5 -2
  21. package/dist/{chunk-LQFGQNMV.js → chunk-AIF3Z2T7.js} +302 -39
  22. package/dist/{chunk-UCALUKB5.js → chunk-BAAG6ZTI.js} +98 -29
  23. package/dist/{chunk-NVNJH22U.js → chunk-D33YTSX5.js} +2 -2
  24. package/dist/{chunk-M2F7TZHH.js → chunk-DKGBBKOF.js} +136 -80
  25. package/dist/{chunk-NIOYEGBQ.js → chunk-HURREPU2.js} +27 -13
  26. package/dist/{chunk-HFCOH2GN.js → chunk-HYXDKS4N.js} +153 -110
  27. package/dist/chunk-J6FW5TV6.js +233 -0
  28. package/dist/{chunk-36S2YPP4.js → chunk-JSXPZCET.js} +1 -1
  29. package/dist/chunk-NYNYSPK7.js +318 -0
  30. package/dist/{chunk-HQSEH5F6.js → chunk-ORMZXBKQ.js} +108 -45
  31. package/dist/{chunk-LYVUX7NT.js → chunk-OXUY2A6L.js} +287 -130
  32. package/dist/{chunk-6GSIXTWX.js → chunk-PK6FK2G2.js} +187 -66
  33. package/dist/{chunk-W2EQ7X2L.js → chunk-QE4TTDU3.js} +47 -9
  34. package/dist/{chunk-XLO7SLIX.js → chunk-SXXVZMKZ.js} +262 -70
  35. package/dist/{chunk-R25EFXXC.js → chunk-TUCPL2HB.js} +3 -3
  36. package/dist/{chunk-RR7M3FHM.js → chunk-UZQ6ALFS.js} +3 -3
  37. package/dist/{chunk-PNIRUQ4C.js → chunk-VVWPJ543.js} +6 -8
  38. package/dist/{chunk-7GIHSAWB.js → chunk-XC4MEKGA.js} +3 -3
  39. package/dist/{chunk-SKPTERHP.js → chunk-XRRZKZYX.js} +55 -31
  40. package/dist/{contracts-DBdg9J_a.d.cts → contracts-DRIuclVT.d.cts} +10 -2
  41. package/dist/{contracts-DBdg9J_a.d.ts → contracts-DRIuclVT.d.ts} +10 -2
  42. package/dist/{customElement-CNZxEB9G.d.ts → customElement-MmInOW1U.d.cts} +59 -10
  43. package/dist/{customElement-CNZxEB9G.d.cts → customElement-MmInOW1U.d.ts} +59 -10
  44. package/dist/data.cjs +293 -125
  45. package/dist/data.d.cts +47 -9
  46. package/dist/data.d.ts +47 -9
  47. package/dist/data.js +12 -9
  48. package/dist/devtools.cjs +121 -58
  49. package/dist/devtools.js +7 -8
  50. package/dist/dispose-GEIG2KOF.js +28 -0
  51. package/dist/ecosystem.cjs +391 -112
  52. package/dist/ecosystem.d.cts +31 -7
  53. package/dist/ecosystem.d.ts +31 -7
  54. package/dist/ecosystem.js +12 -12
  55. package/dist/extras.cjs +2250 -879
  56. package/dist/extras.d.cts +10 -9
  57. package/dist/extras.d.ts +10 -9
  58. package/dist/extras.js +39 -28
  59. package/dist/index.cjs +273 -82
  60. package/dist/index.d.cts +44 -154
  61. package/dist/index.d.ts +44 -154
  62. package/dist/index.js +24 -27
  63. package/dist/motion.cjs +137 -42
  64. package/dist/motion.js +5 -5
  65. package/dist/patterns.cjs +397 -48
  66. package/dist/patterns.d.cts +32 -9
  67. package/dist/patterns.d.ts +32 -9
  68. package/dist/patterns.js +8 -8
  69. package/dist/performance.cjs +338 -217
  70. package/dist/performance.d.cts +2 -2
  71. package/dist/performance.d.ts +2 -2
  72. package/dist/performance.js +8 -9
  73. package/dist/plugin-DVgSnTfK.d.cts +112 -0
  74. package/dist/plugin-DVgSnTfK.d.ts +112 -0
  75. package/dist/plugins.cjs +587 -203
  76. package/dist/plugins.d.cts +3 -3
  77. package/dist/plugins.d.ts +3 -3
  78. package/dist/plugins.js +35 -23
  79. package/dist/signal-EotCj4hS.d.cts +110 -0
  80. package/dist/signal-EotCj4hS.d.ts +110 -0
  81. package/dist/{ssr-BiPRdZ6n.d.cts → ssr-Bli9XRW5.d.cts} +5 -0
  82. package/dist/{ssr-BiPRdZ6n.d.ts → ssr-Bli9XRW5.d.ts} +5 -0
  83. package/dist/{ssr-Y7XOEPEN.js → ssr-XOTUASDO.js} +4 -5
  84. package/dist/ssr.cjs +214 -73
  85. package/dist/ssr.d.cts +9 -3
  86. package/dist/ssr.d.ts +9 -3
  87. package/dist/ssr.js +11 -12
  88. package/dist/{startup-BMpaiMhP.d.ts → startup-BLfSeL15.d.cts} +73 -22
  89. package/dist/{startup-BMpaiMhP.d.cts → startup-BLfSeL15.d.ts} +73 -22
  90. package/dist/tagFactory-DFstCLQV.d.cts +117 -0
  91. package/dist/tagFactory-DkaNVUNV.d.ts +117 -0
  92. package/dist/testing.cjs +2481 -2153
  93. package/dist/testing.d.cts +56 -5
  94. package/dist/testing.d.ts +56 -5
  95. package/dist/testing.js +580 -307
  96. package/dist/ui.cjs +798 -328
  97. package/dist/ui.d.cts +40 -7
  98. package/dist/ui.d.ts +40 -7
  99. package/dist/ui.js +151 -56
  100. package/dist/widgets.cjs +319 -285
  101. package/dist/widgets.js +9 -10
  102. package/package.json +2 -2
  103. package/dist/chunk-2WLZ6757.js +0 -149
  104. package/dist/chunk-7NBDXVHS.js +0 -60
  105. package/dist/chunk-CCSJMTRN.js +0 -15
  106. package/dist/chunk-QKRPLZ2V.js +0 -108
  107. package/dist/chunk-WWV3SJ3L.js +0 -131
  108. package/dist/dispose-46BOMMQJ.js +0 -19
  109. package/dist/plugin-D30wlGW5.d.cts +0 -71
  110. package/dist/plugin-D30wlGW5.d.ts +0 -71
  111. package/dist/tagFactory-Bzupt4Pj.d.cts +0 -55
  112. package/dist/tagFactory-Bzupt4Pj.d.ts +0 -55
@@ -1,5 +1,5 @@
1
- import { T as TrustedHTML } from './ssr-BiPRdZ6n.cjs';
2
- export { t as trustHTML } from './ssr-BiPRdZ6n.cjs';
1
+ import { T as TrustedHTML } from './ssr-Bli9XRW5.cjs';
2
+ export { t as trustHTML } from './ssr-Bli9XRW5.cjs';
3
3
 
4
4
  declare const Priority: {
5
5
  readonly IMMEDIATE: 0;
@@ -1,5 +1,5 @@
1
- import { T as TrustedHTML } from './ssr-BiPRdZ6n.js';
2
- export { t as trustHTML } from './ssr-BiPRdZ6n.js';
1
+ import { T as TrustedHTML } from './ssr-Bli9XRW5.js';
2
+ export { t as trustHTML } from './ssr-Bli9XRW5.js';
3
3
 
4
4
  declare const Priority: {
5
5
  readonly IMMEDIATE: 0;
@@ -33,18 +33,17 @@ import {
33
33
  transitionState,
34
34
  uniqueId,
35
35
  yieldToMain
36
- } from "./chunk-M2F7TZHH.js";
36
+ } from "./chunk-DKGBBKOF.js";
37
37
  import {
38
38
  trustHTML
39
- } from "./chunk-NIOYEGBQ.js";
40
- import "./chunk-IXKSNWV5.js";
39
+ } from "./chunk-HURREPU2.js";
40
+ import "./chunk-2INLLLMZ.js";
41
41
  import "./chunk-7ZHH77QA.js";
42
- import "./chunk-7GIHSAWB.js";
43
- import "./chunk-5DXA2J44.js";
44
- import "./chunk-QKRPLZ2V.js";
45
- import "./chunk-NVNJH22U.js";
46
- import "./chunk-3BTTCZ5J.js";
47
- import "./chunk-2WLZ6757.js";
42
+ import "./chunk-XC4MEKGA.js";
43
+ import "./chunk-7XHATCIH.js";
44
+ import "./chunk-D33YTSX5.js";
45
+ import "./chunk-5Q4R7HCL.js";
46
+ import "./chunk-NYNYSPK7.js";
48
47
  export {
49
48
  DOMPool,
50
49
  Features,
@@ -0,0 +1,112 @@
1
+ interface PluginContext {
2
+ /** Register a global hook */
3
+ onInit: (callback: () => void) => void;
4
+ onMount: (callback: (element: HTMLElement) => void) => void;
5
+ onUnmount: (callback: (element: HTMLElement) => void) => void;
6
+ onError: (callback: (error: Error) => void) => void;
7
+ /** Provide a value globally */
8
+ provide: (key: string, value: unknown) => void;
9
+ }
10
+ interface SibuPlugin {
11
+ name: string;
12
+ /**
13
+ * Register hooks and providers. May be async: the plugin is committed only
14
+ * when the returned promise fulfils, and a rejection commits nothing and
15
+ * leaves the plugin installable again.
16
+ */
17
+ install: (ctx: PluginContext, options?: unknown) => void | PromiseLike<void>;
18
+ }
19
+ interface PluginHooks {
20
+ init: Array<() => void>;
21
+ mount: Array<(element: HTMLElement) => void>;
22
+ unmount: Array<(element: HTMLElement) => void>;
23
+ error: Array<(error: Error) => void>;
24
+ }
25
+ /** Shared across duplicate copies of this module: see the class below. */
26
+ declare const CANCELLED_BRAND: unique symbol;
27
+ /**
28
+ * An installation that never took effect because `reset()` (or a newer install
29
+ * of the same name) invalidated it. Thrown by a synchronous install that reset
30
+ * its own registry, and the rejection of a cancelled async install — a
31
+ * deliberate cancellation, not a failure, so it is not reported as a runtime
32
+ * error.
33
+ */
34
+ declare class PluginInstallCancelledError extends Error {
35
+ /** The plugin whose installation was cancelled. */
36
+ readonly pluginName: string;
37
+ /**
38
+ * Brand, not identity: the default registry is shared across duplicate copies
39
+ * of this module, so the error a caller receives may come from another copy's
40
+ * constructor. `instanceof` is taught to recognise the brand instead.
41
+ */
42
+ readonly [CANCELLED_BRAND] = true;
43
+ constructor(pluginName: string);
44
+ static [Symbol.hasInstance](value: unknown): boolean;
45
+ }
46
+ /**
47
+ * Whether `value` is a cancelled-installation error, from this copy of the
48
+ * module or any duplicate of it.
49
+ */
50
+ declare function isPluginInstallCancelledError(value: unknown): value is PluginInstallCancelledError;
51
+ interface PluginRegistry {
52
+ readonly installedPlugins: Set<string>;
53
+ readonly hooks: PluginHooks;
54
+ readonly provided: Map<string, unknown>;
55
+ /**
56
+ * Install a plugin. Returns a promise for an async `install()` — awaited, it
57
+ * fulfils when the plugin is committed, rejects with the install failure, or
58
+ * rejects with {@link PluginInstallCancelledError} when `reset()` invalidated
59
+ * it; a synchronous install returns `undefined` and throws on failure.
60
+ */
61
+ plugin: (p: SibuPlugin, options?: unknown) => void | Promise<void>;
62
+ inject: <T = unknown>(key: string, defaultValue?: T) => T;
63
+ triggerMount: (element: HTMLElement) => void;
64
+ triggerUnmount: (element: HTMLElement) => void;
65
+ triggerError: (error: Error) => void;
66
+ reset: () => void;
67
+ }
68
+ /**
69
+ * Create an isolated plugin registry. Useful for tests, SSR per-request
70
+ * isolation, or embedding multiple independent SibuJS apps on one page.
71
+ */
72
+ declare function createPluginRegistry(): PluginRegistry;
73
+ /**
74
+ * Creates a plugin definition.
75
+ */
76
+ declare function createPlugin(name: string, install: (ctx: PluginContext, options?: unknown) => void | PromiseLike<void>): SibuPlugin;
77
+ /**
78
+ * Installs a plugin into the default (singleton) registry.
79
+ *
80
+ * Returns the installation's completion promise when `install()` is async —
81
+ * await it to know the plugin is ready, or to catch a failed installation — and
82
+ * `undefined` for a synchronous install (which throws on failure).
83
+ */
84
+ declare function plugin(plugin: SibuPlugin, options?: unknown): void | Promise<void>;
85
+ /**
86
+ * Retrieve a value provided by a plugin (from the default registry).
87
+ */
88
+ declare function inject<T = unknown>(key: string, defaultValue?: T): T;
89
+ /**
90
+ * Trigger mount hooks for an element (default registry).
91
+ */
92
+ declare function triggerPluginMount(element: HTMLElement): void;
93
+ /**
94
+ * Trigger unmount hooks for an element (default registry).
95
+ */
96
+ declare function triggerPluginUnmount(element: HTMLElement): void;
97
+ /**
98
+ * Trigger error hooks (default registry).
99
+ */
100
+ declare function triggerPluginError(error: Error): void;
101
+ /**
102
+ * Reset the default plugin registry (useful for testing).
103
+ */
104
+ declare function resetPlugins(): void;
105
+ /**
106
+ * Replace the default registry with an isolated one. Emits a dev warning
107
+ * if the default singleton already had plugins installed (to surface
108
+ * accidental interleaving of singleton + registry use).
109
+ */
110
+ declare function setDefaultPluginRegistry(registry: PluginRegistry): void;
111
+
112
+ export { type PluginContext as P, type SibuPlugin as S, PluginInstallCancelledError as a, type PluginRegistry as b, createPlugin as c, createPluginRegistry as d, isPluginInstallCancelledError as e, triggerPluginMount as f, triggerPluginUnmount as g, inject as i, plugin as p, resetPlugins as r, setDefaultPluginRegistry as s, triggerPluginError as t };
@@ -0,0 +1,112 @@
1
+ interface PluginContext {
2
+ /** Register a global hook */
3
+ onInit: (callback: () => void) => void;
4
+ onMount: (callback: (element: HTMLElement) => void) => void;
5
+ onUnmount: (callback: (element: HTMLElement) => void) => void;
6
+ onError: (callback: (error: Error) => void) => void;
7
+ /** Provide a value globally */
8
+ provide: (key: string, value: unknown) => void;
9
+ }
10
+ interface SibuPlugin {
11
+ name: string;
12
+ /**
13
+ * Register hooks and providers. May be async: the plugin is committed only
14
+ * when the returned promise fulfils, and a rejection commits nothing and
15
+ * leaves the plugin installable again.
16
+ */
17
+ install: (ctx: PluginContext, options?: unknown) => void | PromiseLike<void>;
18
+ }
19
+ interface PluginHooks {
20
+ init: Array<() => void>;
21
+ mount: Array<(element: HTMLElement) => void>;
22
+ unmount: Array<(element: HTMLElement) => void>;
23
+ error: Array<(error: Error) => void>;
24
+ }
25
+ /** Shared across duplicate copies of this module: see the class below. */
26
+ declare const CANCELLED_BRAND: unique symbol;
27
+ /**
28
+ * An installation that never took effect because `reset()` (or a newer install
29
+ * of the same name) invalidated it. Thrown by a synchronous install that reset
30
+ * its own registry, and the rejection of a cancelled async install — a
31
+ * deliberate cancellation, not a failure, so it is not reported as a runtime
32
+ * error.
33
+ */
34
+ declare class PluginInstallCancelledError extends Error {
35
+ /** The plugin whose installation was cancelled. */
36
+ readonly pluginName: string;
37
+ /**
38
+ * Brand, not identity: the default registry is shared across duplicate copies
39
+ * of this module, so the error a caller receives may come from another copy's
40
+ * constructor. `instanceof` is taught to recognise the brand instead.
41
+ */
42
+ readonly [CANCELLED_BRAND] = true;
43
+ constructor(pluginName: string);
44
+ static [Symbol.hasInstance](value: unknown): boolean;
45
+ }
46
+ /**
47
+ * Whether `value` is a cancelled-installation error, from this copy of the
48
+ * module or any duplicate of it.
49
+ */
50
+ declare function isPluginInstallCancelledError(value: unknown): value is PluginInstallCancelledError;
51
+ interface PluginRegistry {
52
+ readonly installedPlugins: Set<string>;
53
+ readonly hooks: PluginHooks;
54
+ readonly provided: Map<string, unknown>;
55
+ /**
56
+ * Install a plugin. Returns a promise for an async `install()` — awaited, it
57
+ * fulfils when the plugin is committed, rejects with the install failure, or
58
+ * rejects with {@link PluginInstallCancelledError} when `reset()` invalidated
59
+ * it; a synchronous install returns `undefined` and throws on failure.
60
+ */
61
+ plugin: (p: SibuPlugin, options?: unknown) => void | Promise<void>;
62
+ inject: <T = unknown>(key: string, defaultValue?: T) => T;
63
+ triggerMount: (element: HTMLElement) => void;
64
+ triggerUnmount: (element: HTMLElement) => void;
65
+ triggerError: (error: Error) => void;
66
+ reset: () => void;
67
+ }
68
+ /**
69
+ * Create an isolated plugin registry. Useful for tests, SSR per-request
70
+ * isolation, or embedding multiple independent SibuJS apps on one page.
71
+ */
72
+ declare function createPluginRegistry(): PluginRegistry;
73
+ /**
74
+ * Creates a plugin definition.
75
+ */
76
+ declare function createPlugin(name: string, install: (ctx: PluginContext, options?: unknown) => void | PromiseLike<void>): SibuPlugin;
77
+ /**
78
+ * Installs a plugin into the default (singleton) registry.
79
+ *
80
+ * Returns the installation's completion promise when `install()` is async —
81
+ * await it to know the plugin is ready, or to catch a failed installation — and
82
+ * `undefined` for a synchronous install (which throws on failure).
83
+ */
84
+ declare function plugin(plugin: SibuPlugin, options?: unknown): void | Promise<void>;
85
+ /**
86
+ * Retrieve a value provided by a plugin (from the default registry).
87
+ */
88
+ declare function inject<T = unknown>(key: string, defaultValue?: T): T;
89
+ /**
90
+ * Trigger mount hooks for an element (default registry).
91
+ */
92
+ declare function triggerPluginMount(element: HTMLElement): void;
93
+ /**
94
+ * Trigger unmount hooks for an element (default registry).
95
+ */
96
+ declare function triggerPluginUnmount(element: HTMLElement): void;
97
+ /**
98
+ * Trigger error hooks (default registry).
99
+ */
100
+ declare function triggerPluginError(error: Error): void;
101
+ /**
102
+ * Reset the default plugin registry (useful for testing).
103
+ */
104
+ declare function resetPlugins(): void;
105
+ /**
106
+ * Replace the default registry with an isolated one. Emits a dev warning
107
+ * if the default singleton already had plugins installed (to surface
108
+ * accidental interleaving of singleton + registry use).
109
+ */
110
+ declare function setDefaultPluginRegistry(registry: PluginRegistry): void;
111
+
112
+ export { type PluginContext as P, type SibuPlugin as S, PluginInstallCancelledError as a, type PluginRegistry as b, createPlugin as c, createPluginRegistry as d, isPluginInstallCancelledError as e, triggerPluginMount as f, triggerPluginUnmount as g, inject as i, plugin as p, resetPlugins as r, setDefaultPluginRegistry as s, triggerPluginError as t };