elements-kit 0.18.2 → 0.20.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 (156) hide show
  1. package/README.md +14 -0
  2. package/dist/await.d.mts +53 -0
  3. package/dist/await.mjs +70 -0
  4. package/dist/custom-elements.d.mts +1 -1
  5. package/dist/{element-xQwq4ulc.mjs → element-D3om9yA6.mjs} +71 -4
  6. package/dist/for.d.mts +20 -26
  7. package/dist/for.mjs +29 -4
  8. package/dist/fragment-ROPRBJQd.mjs +61 -0
  9. package/dist/hydrate/index.d.mts +41 -0
  10. package/dist/hydrate/index.mjs +2 -0
  11. package/dist/hydrate-6Qx4n4Su.mjs +380 -0
  12. package/dist/integrations/astro-client.d.mts +17 -0
  13. package/dist/integrations/astro-client.mjs +23 -0
  14. package/dist/integrations/astro-server.d.mts +15 -0
  15. package/dist/integrations/astro-server.mjs +39 -0
  16. package/dist/integrations/astro-slots.d.mts +12 -0
  17. package/dist/integrations/astro-slots.mjs +30 -0
  18. package/dist/integrations/astro.d.mts +46 -0
  19. package/dist/integrations/astro.mjs +64 -0
  20. package/dist/integrations/react.d.mts +1 -1
  21. package/dist/integrations/react.mjs +2 -2
  22. package/dist/jsx-runtime/index.d.mts +1 -1
  23. package/dist/jsx-runtime/index.mjs +2 -20
  24. package/dist/{lib-Dkc7cV5F.mjs → lib-DYypKhxk.mjs} +63 -5
  25. package/dist/render.mjs +1 -1
  26. package/dist/{scope-CnEvL9Nd.mjs → scope-zbEG299F.mjs} +1 -1
  27. package/dist/server/index.d.mts +43 -0
  28. package/dist/server/index.mjs +2 -0
  29. package/dist/server-iFSng50i.mjs +385 -0
  30. package/dist/signals/index.d.mts +2 -2
  31. package/dist/signals/index.mjs +5 -3
  32. package/dist/{slot-B8y0aEoz.d.mts → slot-BFWXeFRl.d.mts} +6 -0
  33. package/dist/{slot-Cne__au7.mjs → slot-Dvf30O0B.mjs} +12 -1
  34. package/dist/slot.d.mts +1 -1
  35. package/dist/slot.mjs +1 -1
  36. package/dist/{infer-B7T5hi_D.d.mts → types-ncUK9rki.d.mts} +140 -141
  37. package/dist/ui/overlay/index.css +70 -0
  38. package/dist/ui/overlay/index.d.mts +209 -0
  39. package/dist/ui/overlay/index.mjs +1001 -0
  40. package/dist/ui/overlay/overlay.css +332 -0
  41. package/dist/utilities/_observe.mjs +1 -1
  42. package/dist/utilities/active-element.d.mts +1 -1
  43. package/dist/utilities/active-element.mjs +1 -1
  44. package/dist/utilities/async.d.mts +19 -2
  45. package/dist/utilities/async.mjs +49 -2
  46. package/dist/utilities/context.mjs +1 -1
  47. package/dist/utilities/debounced.d.mts +1 -1
  48. package/dist/utilities/debounced.mjs +1 -1
  49. package/dist/utilities/dom-lifecycle.bench.mjs +3255 -1
  50. package/dist/utilities/dom-lifecycle.mjs +1 -1
  51. package/dist/utilities/element-rect.d.mts +1 -1
  52. package/dist/utilities/element-rect.mjs +1 -1
  53. package/dist/utilities/element-scroll.d.mts +1 -1
  54. package/dist/utilities/event-driven.d.mts +1 -1
  55. package/dist/utilities/event-driven.mjs +1 -1
  56. package/dist/utilities/event-listener.d.mts +1 -1
  57. package/dist/utilities/event-listener.mjs +1 -1
  58. package/dist/utilities/focus-within.d.mts +1 -1
  59. package/dist/utilities/focus-within.mjs +1 -1
  60. package/dist/utilities/form-object.d.mts +96 -0
  61. package/dist/utilities/form-object.mjs +285 -0
  62. package/dist/utilities/hover.d.mts +1 -1
  63. package/dist/utilities/hover.mjs +1 -1
  64. package/dist/utilities/interval.d.mts +1 -1
  65. package/dist/utilities/interval.mjs +1 -1
  66. package/dist/utilities/location.d.mts +1 -1
  67. package/dist/utilities/location.mjs +1 -1
  68. package/dist/utilities/media-devices.d.mts +1 -1
  69. package/dist/utilities/media-devices.mjs +1 -1
  70. package/dist/utilities/media-player.d.mts +1 -1
  71. package/dist/utilities/media-query.d.mts +1 -1
  72. package/dist/utilities/media-query.mjs +1 -1
  73. package/dist/utilities/network.d.mts +1 -1
  74. package/dist/utilities/network.mjs +1 -1
  75. package/dist/utilities/orientation.d.mts +1 -1
  76. package/dist/utilities/orientation.mjs +1 -1
  77. package/dist/utilities/previous.d.mts +1 -1
  78. package/dist/utilities/previous.mjs +1 -1
  79. package/dist/utilities/promise.d.mts +19 -2
  80. package/dist/utilities/promise.mjs +33 -3
  81. package/dist/utilities/retry.mjs +1 -1
  82. package/dist/utilities/routing.d.mts +1 -1
  83. package/dist/utilities/routing.mjs +1 -1
  84. package/dist/utilities/search-params.d.mts +1 -1
  85. package/dist/utilities/storage.d.mts +1 -1
  86. package/dist/utilities/throttled.d.mts +1 -1
  87. package/dist/utilities/throttled.mjs +1 -1
  88. package/dist/utilities/timeout.d.mts +1 -1
  89. package/dist/utilities/timeout.mjs +1 -1
  90. package/dist/utilities/window-focus.d.mts +1 -1
  91. package/dist/utilities/window-focus.mjs +1 -1
  92. package/dist/utilities/window-size.d.mts +1 -1
  93. package/dist/utilities/window-size.mjs +1 -1
  94. package/package.json +20 -5
  95. package/dist/benchmark.CX_oY03V-CSLAXL5f.mjs +0 -5145
  96. package/dist/magic-string.es-CXefOmkB.mjs +0 -1011
  97. package/dist/test.BmQO5GaM-Ddz9cDxc.mjs +0 -8266
  98. package/dist/utilities/active-element.test.d.mts +0 -1
  99. package/dist/utilities/active-element.test.mjs +0 -25
  100. package/dist/utilities/async.test.d.mts +0 -1
  101. package/dist/utilities/async.test.mjs +0 -275
  102. package/dist/utilities/context.test.d.mts +0 -1
  103. package/dist/utilities/context.test.mjs +0 -171
  104. package/dist/utilities/debounced.test.d.mts +0 -1
  105. package/dist/utilities/debounced.test.mjs +0 -68
  106. package/dist/utilities/dom-lifecycle.test.d.mts +0 -1
  107. package/dist/utilities/dom-lifecycle.test.mjs +0 -228
  108. package/dist/utilities/element-rect.test.d.mts +0 -1
  109. package/dist/utilities/element-rect.test.mjs +0 -101
  110. package/dist/utilities/element-scroll.test.d.mts +0 -1
  111. package/dist/utilities/element-scroll.test.mjs +0 -27
  112. package/dist/utilities/event-listener.test.d.mts +0 -1
  113. package/dist/utilities/event-listener.test.mjs +0 -60
  114. package/dist/utilities/focus-within.test.d.mts +0 -1
  115. package/dist/utilities/focus-within.test.mjs +0 -51
  116. package/dist/utilities/hover.test.d.mts +0 -1
  117. package/dist/utilities/hover.test.mjs +0 -54
  118. package/dist/utilities/intersection-observer.test.d.mts +0 -1
  119. package/dist/utilities/intersection-observer.test.mjs +0 -46
  120. package/dist/utilities/interval.test.d.mts +0 -1
  121. package/dist/utilities/interval.test.mjs +0 -115
  122. package/dist/utilities/location.test.d.mts +0 -1
  123. package/dist/utilities/location.test.mjs +0 -61
  124. package/dist/utilities/long-press.test.d.mts +0 -1
  125. package/dist/utilities/long-press.test.mjs +0 -54
  126. package/dist/utilities/media-devices.test.d.mts +0 -1
  127. package/dist/utilities/media-devices.test.mjs +0 -44
  128. package/dist/utilities/media-player.test.d.mts +0 -1
  129. package/dist/utilities/media-player.test.mjs +0 -102
  130. package/dist/utilities/mutation-observer.test.d.mts +0 -1
  131. package/dist/utilities/mutation-observer.test.mjs +0 -48
  132. package/dist/utilities/network.test.d.mts +0 -1
  133. package/dist/utilities/network.test.mjs +0 -30
  134. package/dist/utilities/on-click-outside.test.d.mts +0 -1
  135. package/dist/utilities/on-click-outside.test.mjs +0 -45
  136. package/dist/utilities/previous.test.d.mts +0 -1
  137. package/dist/utilities/previous.test.mjs +0 -90
  138. package/dist/utilities/promise.test.d.mts +0 -1
  139. package/dist/utilities/promise.test.mjs +0 -158
  140. package/dist/utilities/retry.test.d.mts +0 -1
  141. package/dist/utilities/retry.test.mjs +0 -85
  142. package/dist/utilities/routing.test.d.mts +0 -1
  143. package/dist/utilities/routing.test.mjs +0 -129
  144. package/dist/utilities/search-params.test.d.mts +0 -1
  145. package/dist/utilities/search-params.test.mjs +0 -37
  146. package/dist/utilities/ssr.test.d.mts +0 -1
  147. package/dist/utilities/ssr.test.mjs +0 -65
  148. package/dist/utilities/storage.test.d.mts +0 -1
  149. package/dist/utilities/storage.test.mjs +0 -139
  150. package/dist/utilities/throttled.test.d.mts +0 -1
  151. package/dist/utilities/throttled.test.mjs +0 -58
  152. package/dist/utilities/timeout.test.d.mts +0 -1
  153. package/dist/utilities/timeout.test.mjs +0 -121
  154. package/dist/utilities/window-size.test.d.mts +0 -1
  155. package/dist/utilities/window-size.test.mjs +0 -43
  156. /package/dist/{custom-elements-D5CgfNKc.d.mts → custom-elements-DK5VUcWA.d.mts} +0 -0
@@ -1,4 +1,4 @@
1
- import { a as batch, m as signal, o as computed } from "../lib-Dkc7cV5F.mjs";
1
+ import { C as untracked, c as batch, l as computed, n as CLAIM, o as SEED, x as signal } from "../lib-DYypKhxk.mjs";
2
2
  import "../signals/index.mjs";
3
3
  //#region src/utilities/promise.ts
4
4
  /**
@@ -64,7 +64,34 @@ var ReactivePromise = class ReactivePromise extends Promise {
64
64
  p.then(resolve).catch(reject);
65
65
  });
66
66
  }
67
+ /**
68
+ * @internal Hydration seeding: settle the reactive state from a serialized
69
+ * server snapshot. The underlying promise is untouched — when it actually
70
+ * resolves or rejects, its handlers overwrite the seeded state
71
+ * (stale-while-revalidate). `await` still waits for the real settlement.
72
+ */
73
+ [SEED](value) {
74
+ batch(() => {
75
+ this.#state("fulfilled");
76
+ this.#value(value);
77
+ });
78
+ }
79
+ /**
80
+ * @internal Hydrate claim protocol: seed from the server record while the
81
+ * underlying promise is still pending. The promise fired at construction —
82
+ * there is no run to skip here (see `Async[CLAIM]` for that).
83
+ */
84
+ [CLAIM](record) {
85
+ if (record && untracked(() => this.#state()) === "pending") this[SEED](record.value);
86
+ }
67
87
  };
88
+ const REACTIVE_PROMISE_BRAND = Symbol.for("elements-kit.reactive-promise");
89
+ Object.defineProperty(ReactivePromise.prototype, REACTIVE_PROMISE_BRAND, { value: true });
90
+ /** @internal Cross-instance-safe `ReactivePromise` detection. */
91
+ function isReactivePromiseLike(value) {
92
+ if (value instanceof ReactivePromise) return true;
93
+ return value != null && (typeof value === "object" || typeof value === "function") && value[REACTIVE_PROMISE_BRAND] === true;
94
+ }
68
95
  const PROMISE_KEYS = new Set([
69
96
  "then",
70
97
  "catch",
@@ -72,7 +99,10 @@ const PROMISE_KEYS = new Set([
72
99
  "state",
73
100
  "value",
74
101
  "reason",
75
- "result"
102
+ "result",
103
+ SEED,
104
+ CLAIM,
105
+ REACTIVE_PROMISE_BRAND
76
106
  ]);
77
107
  function resolvePromise(from) {
78
108
  if (from instanceof ReactivePromise) return from;
@@ -99,4 +129,4 @@ function promise(from) {
99
129
  });
100
130
  }
101
131
  //#endregion
102
- export { ReactivePromise, promise };
132
+ export { ReactivePromise, isReactivePromiseLike, promise };
@@ -1,4 +1,4 @@
1
- import { g as untracked, s as effect } from "../lib-Dkc7cV5F.mjs";
1
+ import { C as untracked, u as effect } from "../lib-DYypKhxk.mjs";
2
2
  import "../signals/index.mjs";
3
3
  //#region src/utilities/retry.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { y as Computed } from "../infer-B7T5hi_D.mjs";
1
+ import { y as Computed } from "../types-ncUK9rki.mjs";
2
2
 
3
3
  //#region src/utilities/routing.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { o as computed } from "../lib-Dkc7cV5F.mjs";
1
+ import { l as computed } from "../lib-DYypKhxk.mjs";
2
2
  import "../signals/index.mjs";
3
3
  import { currentLocation } from "./location.mjs";
4
4
  //#region src/utilities/routing.ts
@@ -1,4 +1,4 @@
1
- import { y as Computed } from "../infer-B7T5hi_D.mjs";
1
+ import { y as Computed } from "../types-ncUK9rki.mjs";
2
2
 
3
3
  //#region src/utilities/search-params.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { x as Signal } from "../infer-B7T5hi_D.mjs";
1
+ import { x as Signal } from "../types-ncUK9rki.mjs";
2
2
 
3
3
  //#region src/utilities/storage.d.ts
4
4
  type StorageOptions<T> = {
@@ -1,4 +1,4 @@
1
- import { y as Computed } from "../infer-B7T5hi_D.mjs";
1
+ import { y as Computed } from "../types-ncUK9rki.mjs";
2
2
 
3
3
  //#region src/utilities/throttled.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { m as signal, s as effect } from "../lib-Dkc7cV5F.mjs";
1
+ import { u as effect, x as signal } from "../lib-DYypKhxk.mjs";
2
2
  import "../signals/index.mjs";
3
3
  import { createTimeout } from "./timeout.mjs";
4
4
  //#region src/utilities/throttled.ts
@@ -1,4 +1,4 @@
1
- import { y as Computed } from "../infer-B7T5hi_D.mjs";
1
+ import { y as Computed } from "../types-ncUK9rki.mjs";
2
2
 
3
3
  //#region src/utilities/timeout.d.ts
4
4
  type TimeoutResult = {
@@ -1,4 +1,4 @@
1
- import { m as signal, p as onCleanup } from "../lib-Dkc7cV5F.mjs";
1
+ import { _ as onCleanup, x as signal } from "../lib-DYypKhxk.mjs";
2
2
  import "../signals/index.mjs";
3
3
  //#region src/utilities/timeout.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { y as Computed } from "../infer-B7T5hi_D.mjs";
1
+ import { y as Computed } from "../types-ncUK9rki.mjs";
2
2
 
3
3
  //#region src/utilities/window-focus.d.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { m as signal } from "../lib-Dkc7cV5F.mjs";
1
+ import { x as signal } from "../lib-DYypKhxk.mjs";
2
2
  import "../signals/index.mjs";
3
3
  import { on } from "./event-listener.mjs";
4
4
  import { isBrowser } from "./environment.mjs";
@@ -1,4 +1,4 @@
1
- import { y as Computed } from "../infer-B7T5hi_D.mjs";
1
+ import { y as Computed } from "../types-ncUK9rki.mjs";
2
2
 
3
3
  //#region src/utilities/window-size.d.ts
4
4
  type WindowSizeResult = {
@@ -1,4 +1,4 @@
1
- import { o as computed } from "../lib-Dkc7cV5F.mjs";
1
+ import { l as computed } from "../lib-DYypKhxk.mjs";
2
2
  import "../signals/index.mjs";
3
3
  import { fromEvent, sync } from "./event-driven.mjs";
4
4
  import { isBrowser } from "./environment.mjs";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "elements-kit",
3
3
  "type": "module",
4
- "version": "0.18.2",
4
+ "version": "0.20.0",
5
5
  "description": "A lightweight reactive UI library that transforms native HTMLElements into reactive components with signals. Ideal for framework-agnostic applications and web components.",
6
6
  "keywords": [
7
7
  "webcomponents",
@@ -69,6 +69,21 @@
69
69
  "import": "./dist/render.mjs",
70
70
  "types": "./dist/render.d.mts"
71
71
  },
72
+ "./await": {
73
+ "source": "./src/await.ts",
74
+ "import": "./dist/await.mjs",
75
+ "types": "./dist/await.d.mts"
76
+ },
77
+ "./server": {
78
+ "source": "./src/server/index.ts",
79
+ "import": "./dist/server/index.mjs",
80
+ "types": "./dist/server/index.d.mts"
81
+ },
82
+ "./hydrate": {
83
+ "source": "./src/hydrate/index.ts",
84
+ "import": "./dist/hydrate/index.mjs",
85
+ "types": "./dist/hydrate/index.d.mts"
86
+ },
72
87
  "./jsx-runtime": {
73
88
  "source": "./src/jsx-runtime/index.ts",
74
89
  "import": "./dist/jsx-runtime/index.mjs",
@@ -90,15 +105,15 @@
90
105
  "types": "./dist/utilities/*.d.mts"
91
106
  },
92
107
  "./ui/overlay": {
93
- "source": "./src/ui/overlay/gestures.ts",
94
- "import": "./dist/ui/overlay/gestures.mjs",
95
- "types": "./dist/ui/overlay/gestures.d.mts"
108
+ "source": "./src/ui/overlay/index.ts",
109
+ "import": "./dist/ui/overlay/index.mjs",
110
+ "types": "./dist/ui/overlay/index.d.mts"
96
111
  },
97
112
  "./ui/*": "./dist/ui/*"
98
113
  },
99
114
  "scripts": {
100
115
  "build": "tsdown",
101
- "build:docs": "pnpm build && pnpm --filter elements-kit-docs build && pnpm build:storybook && rm -rf docs/dist/storybook && cp -R storybook/storybook-static docs/dist/storybook",
116
+ "build:docs": "pnpm build && pnpm --filter elements-kit-docs build",
102
117
  "build:storybook": "pnpm --filter elements-kit-storybook build",
103
118
  "storybook": "pnpm --filter elements-kit-storybook dev",
104
119
  "watch": "tsdown -w",