@nifrajs/island-trigger 5.5.0 → 5.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # @nifrajs/island-trigger
2
2
 
3
+ ## 5.6.0
4
+
5
+ ### Patch Changes
6
+
7
+ - c403814: `@nifrajs/web/islands` now carries the reactive island runtime: `signal`, `computed`, `effect`, `batch` and `untrack` with auto-tracking, plus:
8
+
9
+ - `bindIsland(setup)` - an enhancer driven by markup. `state(key, fallback)` seeds a signal from the island's props, the returned handlers back `data-bind-on`, and the six `data-bind-*` attributes bind text, visibility, classes, attributes, values and events by name. `onDispose(fn)` runs on unmount, also when registered later from a handler, and at once when registered after the island unmounted. `ctx.props` is `undefined` when the props attribute is absent or malformed. A setup or binding that throws stops everything the island started; on unmount a cleanup that throws is logged and the others still run.
10
+ - `bindList(source, container, { key, create, update })` - keyed list rendering. A surviving item keeps its node, and a reorder moves only the nodes outside the longest run already in order: swapping two rows of 1,000 moves two nodes.
11
+ - `resource(source, fetcher)` - an async value keyed by a getter, with a `pending`/`ready`/`error` state. A newer key aborts the older request and only the newest result lands; `refetch()` and `dispose()` are on the returned reader; once disposed, `refetch()` does nothing.
12
+ - `islandProps(value)` - the JSON for an island's props attribute. Emit it through an escaping renderer inside quotes: `data-island-props="${...}"`.
13
+
14
+ Every effect, list binding and resource an enhancer creates belongs to its island and stops when `mountIslands`' disposer runs. An effect's run, the first included, finishes before the effects its writes trigger run, itself among them.
15
+
16
+ Island hosts are any element with `data-island="<id>"`; props, strategy and media move to `data-island-props`, `data-island-strategy` and `data-island-media`. `<nifra-island data-id>` markers are no longer mounted. Hosts inside `data-island-ignore` are skipped, and a host already mounted is not mounted twice. `mountIslands` accepts enhancers with different props types in one map.
17
+
18
+ The `@nifrajs/web-react` `<Island>` marker renders the new attributes, and `nifra scaffold` emits them.
19
+
20
+ `@nifrajs/web/nano` and the `@nifrajs/islets` package are removed; `@nifrajs/web/islands` replaces both. `nifra upgrade` moves the imports and the dependency, and its notes map each removed name to its replacement. A signal is read by calling it, `computed` tracks what it reads, and an island's effects, lists and resources stop when it unmounts, so no disposer needs collecting.
21
+
22
+ ## 5.5.1
23
+
24
+ No changes in this release.
25
+
3
26
  ## 5.5.0
4
27
 
5
28
  No changes in this release.
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # @nifrajs/island-trigger
2
2
 
3
- Framework-neutral, browser-side trigger scheduling shared by Nifra’s two island runtimes:
4
- `@nifrajs/web/islands` and `@nifrajs/islets`.
3
+ Framework-neutral, browser-side trigger scheduling for Nifra’s island runtime,
4
+ `@nifrajs/web/islands`.
5
5
 
6
6
  It has no DOM or UI-framework dependency. The public contract is the small `scheduleTrigger`
7
7
  primitive with these strategies:
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @nifrajs/island-trigger - the tiny browser-side trigger primitive shared by Nifra's two island
3
- * runtimes. It knows scheduling and browser capability fallbacks, but it knows nothing about markers,
2
+ * @nifrajs/island-trigger - the tiny browser-side trigger primitive behind `@nifrajs/web/islands`.
3
+ * It knows scheduling and browser capability fallbacks, but it knows nothing about markers,
4
4
  * registries, signals, or UI frameworks.
5
5
  */
6
6
  /** When an island's enhancer runs. An object strategy is intentionally limited to media queries. */
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @nifrajs/island-trigger - the tiny browser-side trigger primitive shared by Nifra's two island
3
- * runtimes. It knows scheduling and browser capability fallbacks, but it knows nothing about markers,
2
+ * @nifrajs/island-trigger - the tiny browser-side trigger primitive behind `@nifrajs/web/islands`.
3
+ * It knows scheduling and browser capability fallbacks, but it knows nothing about markers,
4
4
  * registries, signals, or UI frameworks.
5
5
  */
6
6
  /** The maximum media-query length accepted from an HTML data attribute. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nifrajs/island-trigger",
3
- "version": "5.5.0",
3
+ "version": "5.6.0",
4
4
  "description": "Tiny, framework-neutral island trigger scheduler for nifra.",
5
5
  "keywords": [
6
6
  "nifra",
package/src/index.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @nifrajs/island-trigger - the tiny browser-side trigger primitive shared by Nifra's two island
3
- * runtimes. It knows scheduling and browser capability fallbacks, but it knows nothing about markers,
2
+ * @nifrajs/island-trigger - the tiny browser-side trigger primitive behind `@nifrajs/web/islands`.
3
+ * It knows scheduling and browser capability fallbacks, but it knows nothing about markers,
4
4
  * registries, signals, or UI frameworks.
5
5
  */
6
6