@nisli/core 0.53.0 → 0.54.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.
package/README.md CHANGED
@@ -1,123 +1,191 @@
1
1
  # nisli
2
2
 
3
- A reactive web component framework. Signals, templates, dependency injection — no build step, no virtual DOM, no dependencies.
3
+ A small, reactive web-component framework built on browser standards. Nisli
4
+ combines fine-grained signals, typed component factories, light-DOM templates,
5
+ dependency injection, routing, and static generation without a virtual DOM or
6
+ a framework compiler.
4
7
 
5
8
  ## Install
6
9
 
7
- ```bash
10
+ ```sh
8
11
  npm install @nisli/core
9
12
  ```
10
13
 
11
- To add the source-first component registry with Tailwind v4 animations:
14
+ `@nisli/core` has no runtime dependencies. It works with TypeScript or plain
15
+ JavaScript and does not require a framework-specific build step.
12
16
 
13
- ```bash
14
- npm install @nisli/core
15
- npm install -D @nisli/ui tailwindcss tw-animate-css
16
- npx nisli-ui init
17
- ```
17
+ ## Quick start
18
18
 
19
- Then import `tailwindcss`, `tw-animate-css`, and the copied
20
- `nisli-ui/styles/theme.css` in that order in your entry stylesheet.
21
-
22
- ## Quick Start
23
-
24
- ```typescript
25
- import { signal, component, html } from '@nisli/core';
19
+ ```ts
20
+ import { component, html, signal } from '@nisli/core';
26
21
 
27
22
  const Counter = component('x-counter', () => {
28
23
  const count = signal(0);
24
+
29
25
  return html`
30
26
  <button @click=${() => count.value++}>
31
27
  Count: ${count}
32
28
  </button>
33
29
  `;
34
30
  });
31
+
32
+ html`${Counter({})}`.mount(document.body);
33
+ ```
34
+
35
+ Signals are read with `.value` in TypeScript and passed directly to templates.
36
+ Only the bound text, attribute, class, or child slot updates when a signal
37
+ changes.
38
+
39
+ ## Components that also work as HTML
40
+
41
+ `component()` registers a standard custom element and returns its typed factory.
42
+ Factory callers can pass plain values or signals. The optional `attrs` map makes
43
+ selected host attributes live, so plain-HTML consumers and factory consumers
44
+ share the same component implementation.
45
+
46
+ ```ts
47
+ import {
48
+ children,
49
+ component,
50
+ html,
51
+ type ComponentAttrs,
52
+ } from '@nisli/core';
53
+
54
+ interface DisclosureProps {
55
+ open?: boolean;
56
+ children?: unknown;
57
+ }
58
+
59
+ const attrs = {
60
+ open: 'boolean',
61
+ } satisfies ComponentAttrs<DisclosureProps>;
62
+
63
+ const Disclosure = component<DisclosureProps, typeof attrs>(
64
+ 'x-disclosure',
65
+ (props) => {
66
+ const content = children('Nothing to show');
67
+ return html`
68
+ <section class:open=${props.open}>
69
+ ${content}
70
+ </section>
71
+ `;
72
+ },
73
+ { attrs },
74
+ );
75
+ ```
76
+
77
+ ```ts
78
+ html`${Disclosure({ open: true, children: 'Factory content' })}`;
35
79
  ```
36
80
 
37
- ## Features
38
-
39
- - **Signals** — Fine-grained reactivity with `signal`, `computed`, `effect`
40
- - **Components** — Web Components with a composition-style setup function
41
- - **Templates** — Tagged template literals with automatic signal binding
42
- - **Dependency Injection** — `inject` any class as a singleton, `provide` overrides for testing
43
- - **Queries** — Declarative async data loading with caching and auto-refetch
44
- - **Event Emitters** — Typed event bus with auto-disposal in component context
45
- - **Lifecycle** — `onMount`, `onCleanup`, `useHostEvent`
46
- - **Refs** — Direct element access via `ref()`
47
- - **Control Flow** — `when()` for toggles, `each()` for keyed list rendering
48
-
49
- ## API
50
-
51
- ```typescript
52
- // Reactivity
53
- signal(value) // Reactive signal
54
- computed(() => expr) // Derived signal (lazy, cached)
55
- effect(() => { ... }) // Side effect that tracks dependencies
56
-
57
- // Components
58
- component('tag-name', (props, host) => html`...`)
59
- component<Props>('tag-name', (props, host) => html`...`)
60
-
61
- // Templates — signals are implicit, no .value needed
62
- html`<div>${count}</div>`
63
- html`<button @click=${handler}>Go</button>`
64
- html`<div class:active=${isActive}>...</div>`
65
-
66
- // Control flow
67
- when(condition, () => html`...`)
68
- each(items, item => item.id, (item) => html`...`)
69
-
70
- // Dependency injection — class IS the token
71
- inject(MyService) // Auto-creates singleton
72
- provide(MyService, () => mock) // Override (testing)
73
-
74
- // Queries
75
- const { data, loading, error } = query(
76
- () => ['tasks', id.value], // Cache key (tracked)
77
- () => api.getTasks(id.value), // Fetcher
78
- )
79
-
80
- // Lifecycle
81
- onMount(() => { ... })
82
- onCleanup(() => { ... })
83
- useHostEvent(host, 'click', handler)
84
-
85
- // Refs
86
- const el = ref<HTMLDivElement>()
87
- html`<div ref="${el}">...</div>`
88
-
89
- // Events
90
- class Nav extends Emitter<{ select: { id: string } }> {}
91
- inject(Nav).emit('select', { id })
92
- inject(Nav).on('select', ({ id }) => { ... })
81
+ ```html
82
+ <x-disclosure open>Plain HTML content</x-disclosure>
93
83
  ```
94
84
 
95
- ## Static Site Generation
85
+ Declared string, boolean, number, and forwarded attributes react to
86
+ `setAttribute()` after mount. `children(fallback?)` projects factory children,
87
+ initial light-DOM children, and late parser children through one reactive slot.
88
+
89
+ ## Async derivations
90
+
91
+ Use `resource()` when a local value is derived asynchronously and does not need
92
+ query caching or invalidation policy. Only the synchronous source function is
93
+ tracked; stale work is aborted and cannot overwrite a newer result.
96
94
 
97
- Use the companion `@nisli/ssg` package when you want build-time pages,
98
- publication output, feeds, or other DOM-free static output.
95
+ ```ts
96
+ import { component, html, resource } from '@nisli/core';
99
97
 
100
- ```typescript
101
- import { buildStaticSite } from '@nisli/ssg';
98
+ const Markdown = component<{ content: string }>('x-markdown', (props) => {
99
+ const rendered = resource(
100
+ () => props.content.value || undefined,
101
+ (content, signal) => renderMarkdown(content, { signal }),
102
+ );
102
103
 
103
- await buildStaticSite({
104
- outDir: 'dist',
105
- routes: [
106
- { path: '/', render: () => '<article>...</article>' },
107
- ],
104
+ return html`<article html:inner=${rendered.data}></article>`;
108
105
  });
109
106
  ```
110
107
 
111
- `@nisli/core` stays focused on component authoring and the browser runtime.
112
- `@nisli/ssg` owns static site generation; static rendering internals stay behind
113
- the build tool.
108
+ `data`, `loading`, and `error` are readonly signals. `refresh()` reruns the
109
+ current source; component teardown disposes automatically, while standalone
110
+ callers can use `dispose()`. Returning `undefined` from the source disables the
111
+ resource and clears its current state.
112
+
113
+ ## Core capabilities
114
+
115
+ - Fine-grained reactivity: `signal`, `computed`, `effect`, `untrack`, `flush`,
116
+ and awaitable `tick`.
117
+ - Typed web components: composition-style synchronous setup, signal-backed
118
+ props, typed factories, and live attribute declarations.
119
+ - Safe light-DOM templates: signal bindings, typed events and modifiers,
120
+ `class:*`, trusted `html:inner`, refs, and dynamic HTML tags through `el()`.
121
+ - Stable control flow: lazy `when()` branches and keyed `each()` lists that
122
+ preserve focus, scroll position, and component state.
123
+ - Two scopes of dependency injection: app-wide singleton services with
124
+ `inject`/`provide`, and portal-safe subtree state with `createContext`.
125
+ - Lifecycle and resilience: `onMount`, `onCleanup`, `useHostEvent`, automatic
126
+ effect/event cleanup, move-resilient disconnects, and component error
127
+ boundaries.
128
+ - Async work: `resource` handles local async derivations; `query` and
129
+ `QueryClient` add shared caching, invalidation, and reactive refetching.
130
+ - Typed application events with `Emitter` and automatic component cleanup.
131
+
132
+ ## Ecosystem
133
+
134
+ The Nisli repository contains four independently versioned packages and the
135
+ site that exercises them together:
136
+
137
+ - [`@nisli/core`](https://github.com/gkoreli/nisli/tree/main/packages/core) —
138
+ component authoring and browser runtime.
139
+ - [`@nisli/router`](https://github.com/gkoreli/nisli/tree/main/packages/router)
140
+ — one typed route catalog for browser, Vite, static builds, and edge/Worker
141
+ matching. It includes codecs, redirects, managed SEO metadata,
142
+ render-separated catalogs, and accessible outlets.
143
+ - [`@nisli/ssg`](https://github.com/gkoreli/nisli/tree/main/packages/ssg) —
144
+ renders normal Nisli templates and the shared application router to static
145
+ output.
146
+ - [`@nisli/ui`](https://github.com/gkoreli/nisli/tree/main/packages/ui) —
147
+ “shadcn for Nisli”: a CLI and source registry that copy accessible, Tailwind
148
+ v4 components into your project.
149
+ - [`packages/www`](https://github.com/gkoreli/nisli/tree/main/packages/www) —
150
+ the private nisli.dev application and end-to-end integration surface.
151
+
152
+ ### Source-owned UI components
153
+
154
+ ```sh
155
+ npm install -D @nisli/ui tailwindcss tw-animate-css
156
+ npx nisli-ui init
157
+ npx nisli-ui add button dialog tabs
158
+ ```
159
+
160
+ Import `tailwindcss`, `tw-animate-css`, and the copied
161
+ `nisli-ui/styles/theme.css` in that order. The copied `ui-*` components support
162
+ typed Nisli factories and plain HTML; your application owns the resulting
163
+ source.
164
+
165
+ ### One router across environments
166
+
167
+ ```ts
168
+ import { html } from '@nisli/core';
169
+ import { defineRouter, route } from '@nisli/router';
170
+
171
+ export const AppRouter = defineRouter({
172
+ home: route('/', {
173
+ metadata: { title: 'Home' },
174
+ render: () => html`<h1>Home</h1>`,
175
+ }),
176
+ });
177
+ ```
114
178
 
115
- ## Vite HMR Plugin
179
+ Mount `AppRouter({})` in the browser, pass the same router to
180
+ `nisliRoutes(AppRouter)` for Vite direct-route fallback, and pass it to
181
+ `buildStaticSite({ router: AppRouter })` for static output. Larger applications
182
+ can author an environment-neutral catalog from `@nisli/router/catalog` and
183
+ attach client renderers later with `bindRenders()`.
116
184
 
117
- `@nisli/core/vite-hmr` — a dev-only Vite plugin for granular component hot module replacement. Edit a component, it re-mounts in place with no page reload.
185
+ ### Vite HMR
118
186
 
119
187
  ```ts
120
- // vite.config.ts
188
+ import { defineConfig } from 'vite';
121
189
  import { nisliHmr } from '@nisli/core/vite-hmr';
122
190
 
123
191
  export default defineConfig({
@@ -125,21 +193,18 @@ export default defineConfig({
125
193
  });
126
194
  ```
127
195
 
128
- Used in production by [backlog-mcp](https://github.com/gkoreli/backlog-mcp) — a single Vite process serves the SPA + API on one origin, with component edits hot-swapping via this plugin.
196
+ The development-only plugin remounts an edited component in place without a
197
+ full page reload.
129
198
 
130
- ## Size
131
-
132
- ~2,600 lines of TypeScript. Zero dependencies.
199
+ Architecture decisions live in the
200
+ [`docs/adr`](https://github.com/gkoreli/nisli/tree/main/docs/adr) directory.
201
+ Package-specific usage and release history live beside each package.
133
202
 
134
203
  ## Inspiration
135
204
 
136
- nisli stands on the shoulders of giants:
137
-
138
- - [React](https://react.dev) — Component model, declarative UI
139
- - [Solid](https://www.solidjs.com) — Signals, fine-grained reactivity, no virtual DOM
140
- - [Lit](https://lit.dev) — Web Components, tagged template literals
141
- - [Angular](https://angular.dev) — Dependency injection, typed tokens
142
- - [Vue](https://vuejs.org) — Composition-style setup functions, reactive system design
205
+ Nisli stands on the shoulders of React's component model, Solid's fine-grained
206
+ reactivity, Lit's web components and templates, Angular's dependency injection,
207
+ and Vue's composition-style authoring.
143
208
 
144
209
  ## License
145
210
 
package/dist/component.js CHANGED
@@ -152,6 +152,7 @@ export function component(tagName, setup,
152
152
  _propsProxy = null;
153
153
  _mounted = false;
154
154
  _templateResult = null;
155
+ _errorTemplateResult = null;
155
156
  _teardownScheduled = false;
156
157
  // Props explicitly set via _setProp (factory / direct assignment) are
157
158
  // "pinned": an explicit prop wins, so attribute writes no longer overwrite
@@ -249,6 +250,17 @@ export function component(tagName, setup,
249
250
  catch (err) {
250
251
  const error = err instanceof Error ? err : new Error(String(err));
251
252
  console.error(`Component <${tagName}> setup error:`, error);
253
+ // Setup may already have registered effects/lifecycle cleanup, or
254
+ // mountTemplate() may have partially installed bindings before
255
+ // throwing. Tear that partial scope down BEFORE mounting the error
256
+ // fallback so no hidden work survives behind it (issue 0010).
257
+ if (this._templateResult?.dispose) {
258
+ this._templateResult.dispose();
259
+ }
260
+ this._templateResult = null;
261
+ host.dispose();
262
+ this._host = null;
263
+ this.replaceChildren();
252
264
  if (options?.onError) {
253
265
  try {
254
266
  const fallback = options.onError(error, this);
@@ -256,10 +268,15 @@ export function component(tagName, setup,
256
268
  this.innerHTML = fallback;
257
269
  }
258
270
  else {
271
+ this._errorTemplateResult = fallback;
259
272
  mountTemplate(this, fallback);
260
273
  }
261
274
  }
262
275
  catch (_) {
276
+ if (this._errorTemplateResult?.dispose) {
277
+ this._errorTemplateResult.dispose();
278
+ }
279
+ this._errorTemplateResult = null;
263
280
  this.innerHTML = `<div style="color:red;padding:4px">Error in &lt;${tagName}&gt;</div>`;
264
281
  }
265
282
  }
@@ -286,16 +303,43 @@ export function component(tagName, setup,
286
303
  this._teardownScheduled = false;
287
304
  if (this.isConnected)
288
305
  return;
289
- this._mounted = false;
290
- if (this._templateResult?.dispose) {
291
- this._templateResult.dispose();
292
- }
293
- if (this._host) {
294
- this._host.dispose();
295
- this._host = null;
296
- }
306
+ this._teardownNow();
297
307
  });
298
308
  }
309
+ /**
310
+ * Synchronously dispose the current component scope and restore any
311
+ * projected light-DOM children as direct host children. Normal disconnect
312
+ * calls this after the move-detection microtask; HMR calls it directly so
313
+ * reconnect cannot be defeated by the `_mounted` guard (issues 0001/0002).
314
+ */
315
+ _teardownNow() {
316
+ this._mounted = false;
317
+ if (this._templateResult?.dispose) {
318
+ this._templateResult.dispose();
319
+ }
320
+ this._templateResult = null;
321
+ if (this._errorTemplateResult?.dispose) {
322
+ this._errorTemplateResult.dispose();
323
+ }
324
+ this._errorTemplateResult = null;
325
+ if (this._host) {
326
+ this._host.dispose();
327
+ this._host = null;
328
+ }
329
+ // children() records the plain light-DOM nodes it owns during cleanup.
330
+ // Replacing the rendered tree with those nodes preserves author content
331
+ // for a later true reconnect/HMR setup; components without projection
332
+ // simply become empty before the fresh setup appends its new subtree.
333
+ const captured = this
334
+ .__capturedChildren ?? [];
335
+ this.replaceChildren(...captured);
336
+ }
337
+ /** @internal — transport-agnostic HMR in-place remount hook. */
338
+ _remount() {
339
+ this._teardownScheduled = false;
340
+ this._teardownNow();
341
+ this.connectedCallback();
342
+ }
299
343
  /**
300
344
  * Set a prop value. Called by the factory and by direct property assignment.
301
345
  * The Proxy intercepts and creates/updates backing signals.
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
@@ -106,6 +106,10 @@ export function remount(tag) {
106
106
  const elements = document.querySelectorAll(tag);
107
107
  elements.forEach((node) => {
108
108
  const el = node;
109
+ if (el._remount) {
110
+ el._remount();
111
+ return;
112
+ }
109
113
  // Dispose first: must run BEFORE clearing DOM or effects/subscriptions
110
114
  // leak across reloads (ADR 0008.1 hazard).
111
115
  el.disconnectedCallback?.();
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/hmr/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAYH,uEAAuE;AAEvE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;AAE7C,0EAA0E;AAC1E,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;AAC1C,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAE7B;;;;;GAKG;AACH,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAE9B;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB;IAC9B,iBAAiB,GAAG,IAAI,CAAC;IACzB,gBAAgB,GAAG,KAAK,CAAC;AAC3B,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,cAAc;IAC5B,iBAAiB,GAAG,KAAK,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,KAAe;IACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACzC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,iBAAiB;YAAE,eAAe,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,CAAC,KAAc,EAAE,IAAiB,EAAE,EAAE;QAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,GAAG,CAAC,CAAC;QAC9E,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,mBAAmB;IACjC,OAAO,eAAe,CAAC,IAAI,CAAC;AAC9B,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,aAAa;IAC3B,MAAM,IAAI,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;IAClC,eAAe,CAAC,KAAK,EAAE,CAAC;IACxB,gBAAgB,GAAG,KAAK,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,gBAAgB;QAAE,OAAO;IAC7B,gBAAgB,GAAG,IAAI,CAAC;IACxB,wEAAwE;IACxE,cAAc,CAAC,GAAG,EAAE;QAClB,IAAI,gBAAgB;YAAE,aAAa,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,uEAAuE;AAEvE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAChD,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,EAAE,GAAG,IAAyB,CAAC;QACrC,uEAAuE;QACvE,2CAA2C;QAC3C,EAAE,CAAC,oBAAoB,EAAE,EAAE,CAAC;QAC5B,wEAAwE;QACxE,EAAE,CAAC,eAAe,EAAE,CAAC;QACrB,gDAAgD;QAChD,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,eAAe;IAC7B,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,eAAe,CAAC,KAAK,EAAE,CAAC;IACxB,gBAAgB,GAAG,KAAK,CAAC;IACzB,iBAAiB,GAAG,KAAK,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/hmr/registry.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -24,3 +24,4 @@ export { ref, isRef, type Ref, } from './ref.js';
24
24
  export { onMount, onCleanup, useHostEvent, } from './lifecycle.js';
25
25
  export { children, } from './projection.js';
26
26
  export { query, QueryClient, type QueryResult, type QueryOptions, } from './query.js';
27
+ export { resource, type ResourceResult, } from './resource.js';
package/dist/index.js CHANGED
@@ -35,4 +35,6 @@ export { onMount, onCleanup, useHostEvent, } from './lifecycle.js';
35
35
  export { children, } from './projection.js';
36
36
  // ── Declarative data loading ────────────────────────────────────────
37
37
  export { query, QueryClient, } from './query.js';
38
+ // ── Local async derivations ─────────────────────────────────────────
39
+ export { resource, } from './resource.js';
38
40
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,uEAAuE;AACvE,OAAO,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,YAAY,GAGb,MAAM,aAAa,CAAC;AAErB,uEAAuE;AACvE,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,UAAU,GAEX,MAAM,cAAc,CAAC;AAEtB,uEAAuE;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,uEAAuE;AACvE,OAAO,EACL,MAAM,EACN,OAAO,EACP,WAAW,EACX,aAAa,GAGd,MAAM,eAAe,CAAC;AAEvB,uEAAuE;AACvE,OAAO,EACL,aAAa,GAGd,MAAM,sBAAsB,CAAC;AAE9B,uEAAuE;AACvE,OAAO,EACL,SAAS,GAUV,MAAM,gBAAgB,CAAC;AAExB,uEAAuE;AACvE,OAAO,EACL,IAAI,EACJ,EAAE,EACF,IAAI,EACJ,IAAI,GAKL,MAAM,eAAe,CAAC;AAEvB,uEAAuE;AACvE,OAAO,EACL,GAAG,EACH,KAAK,GAEN,MAAM,UAAU,CAAC;AAElB,uEAAuE;AACvE,OAAO,EACL,OAAO,EACP,SAAS,EACT,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,2DAA2D;AAC3D,OAAO,EACL,QAAQ,GACT,MAAM,iBAAiB,CAAC;AAEzB,uEAAuE;AACvE,OAAO,EACL,KAAK,EACL,WAAW,GAGZ,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,uEAAuE;AACvE,OAAO,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,YAAY,GAGb,MAAM,aAAa,CAAC;AAErB,uEAAuE;AACvE,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,UAAU,GAEX,MAAM,cAAc,CAAC;AAEtB,uEAAuE;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,uEAAuE;AACvE,OAAO,EACL,MAAM,EACN,OAAO,EACP,WAAW,EACX,aAAa,GAGd,MAAM,eAAe,CAAC;AAEvB,uEAAuE;AACvE,OAAO,EACL,aAAa,GAGd,MAAM,sBAAsB,CAAC;AAE9B,uEAAuE;AACvE,OAAO,EACL,SAAS,GAUV,MAAM,gBAAgB,CAAC;AAExB,uEAAuE;AACvE,OAAO,EACL,IAAI,EACJ,EAAE,EACF,IAAI,EACJ,IAAI,GAKL,MAAM,eAAe,CAAC;AAEvB,uEAAuE;AACvE,OAAO,EACL,GAAG,EACH,KAAK,GAEN,MAAM,UAAU,CAAC;AAElB,uEAAuE;AACvE,OAAO,EACL,OAAO,EACP,SAAS,EACT,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,2DAA2D;AAC3D,OAAO,EACL,QAAQ,GACT,MAAM,iBAAiB,CAAC;AAEzB,uEAAuE;AACvE,OAAO,EACL,KAAK,EACL,WAAW,GAGZ,MAAM,YAAY,CAAC;AAEpB,uEAAuE;AACvE,OAAO,EACL,QAAQ,GAET,MAAM,eAAe,CAAC"}
@@ -63,11 +63,9 @@ function textTemplate(text) {
63
63
  }
64
64
  /**
65
65
  * Normalize a slot value so the template ALWAYS sees a TemplateResult / factory
66
- * / array / null — never a bare primitive. The engine picks the slot binding
67
- * kind by probing the FIRST value: a bare string would bind a plain text node,
68
- * which then can't host a later template child (it stringifies to
69
- * "[object Object]"). Wrapping primitives keeps the slot a reactive-template
70
- * slot for its whole life.
66
+ * / array / null — never a bare primitive. Projection values may be detached
67
+ * and reinserted as fallback/light-DOM ownership changes, so wrapping primitive
68
+ * text keeps that projection value explicitly re-mountable.
71
69
  */
72
70
  function asSlot(value) {
73
71
  if (value == null || value === '')
@@ -100,6 +98,13 @@ export function children(fallback) {
100
98
  const childrenProp = host._propSignal ? host._propSignal('children') : undefined;
101
99
  // Projected light-DOM nodes; grows when the late-parser sweep finds more.
102
100
  const projectedNodes = signal(captured);
101
+ // A true disconnect/HMR teardown clears the component-owned rendered tree
102
+ // before setup runs again. Hand the plain light-DOM nodes back to component.ts
103
+ // so it can restore them as direct host children for the next capture.
104
+ onCleanup(() => {
105
+ const nodes = projectedNodes.value;
106
+ host.__capturedChildren = nodes.length ? nodes : undefined;
107
+ });
103
108
  onMount(() => {
104
109
  // The host's direct children right after mount are the rendered template
105
110
  // roots. Anything that appears later is a late parser/innerHTML child.
@@ -1 +1 @@
1
- {"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * resource.ts — Local async derivations with reactive source tracking.
3
+ *
4
+ * `resource()` is the async counterpart to a local computed value: source
5
+ * dependencies are tracked synchronously, while the loader runs outside the
6
+ * reactive observer and commits only the newest live generation.
7
+ */
8
+ import { type ReadonlySignal } from './signal.js';
9
+ export interface ResourceResult<T> {
10
+ /** Latest successful value. Retained while a newer load is pending. */
11
+ readonly data: ReadonlySignal<T | undefined>;
12
+ /** True while the current generation is loading. */
13
+ readonly loading: ReadonlySignal<boolean>;
14
+ /** Error from the current generation, or null. */
15
+ readonly error: ReadonlySignal<Error | null>;
16
+ /** Re-run the loader for the current source value. */
17
+ refresh(): void;
18
+ /** Stop source tracking and invalidate/abort outstanding work. */
19
+ dispose(): void;
20
+ }
21
+ /**
22
+ * Derive local async state from a synchronously tracked source.
23
+ *
24
+ * Only signal reads inside `source` are dependencies. `loader` starts in a
25
+ * microtask, outside the active observer, so signal reads before or after its
26
+ * first await never accidentally widen the source set.
27
+ */
28
+ export declare function resource<S, T>(source: () => S | undefined, loader: (source: S, signal: AbortSignal) => PromiseLike<T>): ResourceResult<T>;