@takazudo/zfb 0.1.0-next.37 → 0.1.0-next.39
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 +26 -0
- package/dist/client-script.d.ts +55 -0
- package/dist/client-script.d.ts.map +1 -0
- package/dist/client-script.js +67 -0
- package/dist/client-script.js.map +1 -0
- package/dist/config.d.ts +101 -8
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/island.d.ts +10 -0
- package/dist/island.d.ts.map +1 -1
- package/dist/island.js +35 -2
- package/dist/island.js.map +1 -1
- package/dist/jsx-types.d.ts +16 -6
- package/dist/jsx-types.d.ts.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +74 -5
- package/dist/runtime.js.map +1 -1
- package/dist/slugify.d.ts +69 -0
- package/dist/slugify.d.ts.map +1 -0
- package/dist/slugify.js +197 -0
- package/dist/slugify.js.map +1 -0
- package/dist/types.d.ts +4 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -2
- package/dist/types.js.map +1 -1
- package/package.json +12 -7
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
> **Newer releases:** see https://takazudomodular.com/pj/zudo-front-builder/docs/changelog/ for v0.1.0-next.5 and later. Entries below are historical (kept for npm readers).
|
|
4
4
|
|
|
5
|
+
## Unreleased
|
|
6
|
+
|
|
7
|
+
### New features
|
|
8
|
+
|
|
9
|
+
**`VNode`, `VNodeArray`, `VNodeObject` exported from `"@takazudo/zfb"`** (#972):
|
|
10
|
+
|
|
11
|
+
The structural JSX-node types are now part of the public API:
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import type { VNode, VNodeArray, VNodeObject } from "@takazudo/zfb";
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
`VNode` now includes a bare `object` member (matching Preact's own `ComponentChild` design), making Preact's `ComponentChildren`, `VNode<Props>`, `JSX.Element`, and `JSX.Element[]` all assignable at `Island` input boundaries (`children` and `ssrFallback`) with zero `as unknown as` casts.
|
|
18
|
+
|
|
19
|
+
**Name-collision caveat for Preact consumers:** if a consumer file already has `import { VNode } from "preact"`, use a qualified import to avoid the clash:
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
import type { VNode as ZfbVNode } from "@takazudo/zfb";
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Breaking changes (pre-1.0)
|
|
26
|
+
|
|
27
|
+
**`linkValidation.allowExternal` removed** (#925):
|
|
28
|
+
|
|
29
|
+
The `allowExternal` config knob has been removed. It was accepted but never did anything — external URL network validation is out of scope. Migration: delete `allowExternal` from your `linkValidation` config; external URLs continue to be silently skipped (unchanged runtime behaviour).
|
|
30
|
+
|
|
5
31
|
## 0.1.0-next.4
|
|
6
32
|
|
|
7
33
|
### Bug fixes
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSR helper for referencing a client-script asset URL in a page or layout.
|
|
3
|
+
*
|
|
4
|
+
* ## Usage
|
|
5
|
+
*
|
|
6
|
+
* ```tsx
|
|
7
|
+
* import { clientScript } from "@takazudo/zfb";
|
|
8
|
+
*
|
|
9
|
+
* export default function MyPage() {
|
|
10
|
+
* return (
|
|
11
|
+
* <html>
|
|
12
|
+
* <head>
|
|
13
|
+
* <script type="module" src={clientScript("search-widget")} />
|
|
14
|
+
* </head>
|
|
15
|
+
* <body>…</body>
|
|
16
|
+
* </html>
|
|
17
|
+
* );
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* ## How it works
|
|
22
|
+
*
|
|
23
|
+
* `clientScript(name)` returns the **stable URL** for the named client-script
|
|
24
|
+
* entry: `${base}/assets/client/<name>.js`. The production build pipeline
|
|
25
|
+
* (`ProductionAssetPipeline`) rewrites every occurrence of this stable URL in
|
|
26
|
+
* rendered HTML to the content-hashed equivalent
|
|
27
|
+
* (`/assets/client/<name>-<hash>.js`), so the hash never needs to be known at
|
|
28
|
+
* SSR time.
|
|
29
|
+
*
|
|
30
|
+
* The `base` prefix is read from `globalThis.__zfb?.base` (emitted by the
|
|
31
|
+
* bundler when at least one `*.client.*` file exists in the project). For
|
|
32
|
+
* root-mounted sites (`base` is absent or `"/"`), the prefix is the empty
|
|
33
|
+
* string and `clientScript("search-widget")` returns
|
|
34
|
+
* `"/assets/client/search-widget.js"`. For a sub-path deploy
|
|
35
|
+
* (`base="/foo/"`), it returns `"/foo/assets/client/search-widget.js"`.
|
|
36
|
+
*
|
|
37
|
+
* ## SSR-only note (v1)
|
|
38
|
+
*
|
|
39
|
+
* This is an SSR-time helper. Calling it in browser-executed code works but
|
|
40
|
+
* the base prefix (`globalThis.__zfb.base`) is currently not shipped to the
|
|
41
|
+
* browser — `clientScript()` will return the unprefixed stable URL
|
|
42
|
+
* (`/assets/client/<name>.js`) in that context. For the common use-case of
|
|
43
|
+
* rendering a `<script src>` tag at SSR time this is not a problem.
|
|
44
|
+
*/
|
|
45
|
+
/**
|
|
46
|
+
* Returns the base-prefixed stable public URL for the named client-script entry.
|
|
47
|
+
*
|
|
48
|
+
* `name` is the entry name (file stem minus `.client`, e.g. `"search-widget"`
|
|
49
|
+
* for `search-widget.client.ts`).
|
|
50
|
+
*
|
|
51
|
+
* The returned URL is `${base}/assets/client/<name>.js`. The production
|
|
52
|
+
* pipeline rewrites it to the hashed URL; dev serves the stable URL directly.
|
|
53
|
+
*/
|
|
54
|
+
export declare function clientScript(name: string): string;
|
|
55
|
+
//# sourceMappingURL=client-script.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-script.d.ts","sourceRoot":"","sources":["../src/client-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAKH;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUjD"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSR helper for referencing a client-script asset URL in a page or layout.
|
|
3
|
+
*
|
|
4
|
+
* ## Usage
|
|
5
|
+
*
|
|
6
|
+
* ```tsx
|
|
7
|
+
* import { clientScript } from "@takazudo/zfb";
|
|
8
|
+
*
|
|
9
|
+
* export default function MyPage() {
|
|
10
|
+
* return (
|
|
11
|
+
* <html>
|
|
12
|
+
* <head>
|
|
13
|
+
* <script type="module" src={clientScript("search-widget")} />
|
|
14
|
+
* </head>
|
|
15
|
+
* <body>…</body>
|
|
16
|
+
* </html>
|
|
17
|
+
* );
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* ## How it works
|
|
22
|
+
*
|
|
23
|
+
* `clientScript(name)` returns the **stable URL** for the named client-script
|
|
24
|
+
* entry: `${base}/assets/client/<name>.js`. The production build pipeline
|
|
25
|
+
* (`ProductionAssetPipeline`) rewrites every occurrence of this stable URL in
|
|
26
|
+
* rendered HTML to the content-hashed equivalent
|
|
27
|
+
* (`/assets/client/<name>-<hash>.js`), so the hash never needs to be known at
|
|
28
|
+
* SSR time.
|
|
29
|
+
*
|
|
30
|
+
* The `base` prefix is read from `globalThis.__zfb?.base` (emitted by the
|
|
31
|
+
* bundler when at least one `*.client.*` file exists in the project). For
|
|
32
|
+
* root-mounted sites (`base` is absent or `"/"`), the prefix is the empty
|
|
33
|
+
* string and `clientScript("search-widget")` returns
|
|
34
|
+
* `"/assets/client/search-widget.js"`. For a sub-path deploy
|
|
35
|
+
* (`base="/foo/"`), it returns `"/foo/assets/client/search-widget.js"`.
|
|
36
|
+
*
|
|
37
|
+
* ## SSR-only note (v1)
|
|
38
|
+
*
|
|
39
|
+
* This is an SSR-time helper. Calling it in browser-executed code works but
|
|
40
|
+
* the base prefix (`globalThis.__zfb.base`) is currently not shipped to the
|
|
41
|
+
* browser — `clientScript()` will return the unprefixed stable URL
|
|
42
|
+
* (`/assets/client/<name>.js`) in that context. For the common use-case of
|
|
43
|
+
* rendering a `<script src>` tag at SSR time this is not a problem.
|
|
44
|
+
*/
|
|
45
|
+
/** Stable public-URL prefix for client-script entries, matching the Rust constant. */
|
|
46
|
+
const CLIENT_SCRIPTS_URL_PREFIX = "/assets/client/";
|
|
47
|
+
/**
|
|
48
|
+
* Returns the base-prefixed stable public URL for the named client-script entry.
|
|
49
|
+
*
|
|
50
|
+
* `name` is the entry name (file stem minus `.client`, e.g. `"search-widget"`
|
|
51
|
+
* for `search-widget.client.ts`).
|
|
52
|
+
*
|
|
53
|
+
* The returned URL is `${base}/assets/client/<name>.js`. The production
|
|
54
|
+
* pipeline rewrites it to the hashed URL; dev serves the stable URL directly.
|
|
55
|
+
*/
|
|
56
|
+
export function clientScript(name) {
|
|
57
|
+
// `globalThis.__zfb?.base` is set to the resolved base prefix by the
|
|
58
|
+
// bundler when the project has at least one `*.client.*` entry (#978).
|
|
59
|
+
// For root-mounted or no-base builds the value is `""`, yielding
|
|
60
|
+
// `/assets/client/<name>.js` as expected. The `?? ""` fallback handles
|
|
61
|
+
// the edge case where __zfb.base was not emitted (zero-script project,
|
|
62
|
+
// or a browser context where the slot was never populated).
|
|
63
|
+
const base = globalThis.__zfb;
|
|
64
|
+
const prefix = base?.base ?? "";
|
|
65
|
+
return `${prefix}${CLIENT_SCRIPTS_URL_PREFIX}${name}.js`;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=client-script.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-script.js","sourceRoot":"","sources":["../src/client-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,sFAAsF;AACtF,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;AAEpD;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,qEAAqE;IACrE,uEAAuE;IACvE,iEAAiE;IACjE,uEAAuE;IACvE,uEAAuE;IACvE,4DAA4D;IAC5D,MAAM,IAAI,GAAI,UAAsC,CAAC,KAAsC,CAAC;IAC5F,MAAM,MAAM,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;IAChC,OAAO,GAAG,MAAM,GAAG,yBAAyB,GAAG,IAAI,KAAK,CAAC;AAC3D,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -141,6 +141,31 @@ export type ZfbConfig = {
|
|
|
141
141
|
host?: string;
|
|
142
142
|
/** Optional dev/preview server port. */
|
|
143
143
|
port?: number;
|
|
144
|
+
/**
|
|
145
|
+
* Host header values the dev/preview server accepts when bound to a
|
|
146
|
+
* non-localhost interface (`--host 0.0.0.0`, the bare `--host` LAN
|
|
147
|
+
* shortcut, or `host` above) — the DNS-rebinding guard, mirroring
|
|
148
|
+
* Vite's `server.allowedHosts`.
|
|
149
|
+
*
|
|
150
|
+
* Defaults: only consulted for non-loopback binds — the default
|
|
151
|
+
* `localhost` bind skips validation entirely. `localhost`, the
|
|
152
|
+
* explicitly bound host, and any IP-literal Host — `127.0.0.1`,
|
|
153
|
+
* `[::1]`, the LAN URLs the startup banner prints — are always
|
|
154
|
+
* allowed (DNS rebinding needs a DNS name, so raw IPs are safe;
|
|
155
|
+
* Vite parity); requests with any other Host get a 403.
|
|
156
|
+
*
|
|
157
|
+
* Matching rules (the request Host's port is stripped first and
|
|
158
|
+
* comparison is case-insensitive):
|
|
159
|
+
*
|
|
160
|
+
* - `"example.com"` — matches exactly that host.
|
|
161
|
+
* - `".example.com"` (leading dot) — matches `example.com` and every
|
|
162
|
+
* subdomain (`api.example.com`).
|
|
163
|
+
* - IPv6 entries may be written with or without brackets
|
|
164
|
+
* (`"[::1]"` / `"::1"`).
|
|
165
|
+
*
|
|
166
|
+
* Mirrors `Config::allowed_hosts` in `crates/zfb/src/config.rs`.
|
|
167
|
+
*/
|
|
168
|
+
allowedHosts?: string[];
|
|
144
169
|
/** JSX framework runtime. Default: `preact`. */
|
|
145
170
|
framework?: Framework;
|
|
146
171
|
/** Content collections. Mirrors the JSON form one-for-one. */
|
|
@@ -250,7 +275,10 @@ export type ZfbConfig = {
|
|
|
250
275
|
* mdast pipeline so author-written `[label](./other.mdx)` links are
|
|
251
276
|
* rewritten to the corresponding rendered route URL — bypassing the
|
|
252
277
|
* file→directory transformation that breaks relative paths in dist
|
|
253
|
-
* HTML when `foo.mdx` becomes `foo/index.html`.
|
|
278
|
+
* HTML when `foo.mdx` becomes `foo/index.html`. Extensionless
|
|
279
|
+
* (`./other`) and directory-style (`other/`) targets resolve too,
|
|
280
|
+
* probing `{name}.mdx`, `{name}.md`, `{name}/index.mdx`,
|
|
281
|
+
* `{name}/index.md` in that order.
|
|
254
282
|
*
|
|
255
283
|
* Two ways to specify the source dirs:
|
|
256
284
|
*
|
|
@@ -344,6 +372,51 @@ export type ZfbConfig = {
|
|
|
344
372
|
* Mirrors `Config::emit_routes_manifest` in crates/zfb/src/config.rs.
|
|
345
373
|
*/
|
|
346
374
|
emitRoutesManifest?: boolean;
|
|
375
|
+
/**
|
|
376
|
+
* Syntect code-highlight options; absent = default theme
|
|
377
|
+
* (`base16-ocean.dark`). See {@link CodeHighlightConfig} for accepted
|
|
378
|
+
* theme names and custom-theme loading.
|
|
379
|
+
*
|
|
380
|
+
* Mirrors `Config::code_highlight` in crates/zfb/src/config.rs.
|
|
381
|
+
*/
|
|
382
|
+
codeHighlight?: CodeHighlightConfig;
|
|
383
|
+
/**
|
|
384
|
+
* Maximum seconds a single plugin lifecycle hook (preBuild, postBuild,
|
|
385
|
+
* setup, etc.) may run before the build fails with a diagnostic error
|
|
386
|
+
* and the plugin host is force-killed.
|
|
387
|
+
*
|
|
388
|
+
* Absent falls through to the `ZFB_PLUGIN_HOOK_TIMEOUT` env var, then
|
|
389
|
+
* the 120s built-in default. Set this when your plugins do long but
|
|
390
|
+
* bounded work (e.g. large sitemap generation) and you want a tighter
|
|
391
|
+
* or more explicit budget.
|
|
392
|
+
*
|
|
393
|
+
* Mirrors `Config::plugin_hook_timeout_secs` in crates/zfb/src/config.rs.
|
|
394
|
+
*/
|
|
395
|
+
pluginHookTimeoutSecs?: number;
|
|
396
|
+
/**
|
|
397
|
+
* Whether `copy_public_dir` copies `public/` under the `base`
|
|
398
|
+
* sub-path segment (`true`, default) or flat to the `dist/` root
|
|
399
|
+
* (`false`).
|
|
400
|
+
*
|
|
401
|
+
* - **`true` (default):** files land at
|
|
402
|
+
* `<outDir>/<base-segment>/<rel>`, matching the base-prefixed URLs
|
|
403
|
+
* that `withBase()` emits in the rendered HTML. Use this for
|
|
404
|
+
* projects served directly at their configured sub-path.
|
|
405
|
+
* - **`false`:** files land flat at `<outDir>/<rel>` regardless of
|
|
406
|
+
* `base`. Use this when the deploy pipeline relocates the entire
|
|
407
|
+
* `dist/` tree into the base segment itself (e.g.
|
|
408
|
+
* `cp -a dist/. deploy-root/pj/site/`), so putting the files under
|
|
409
|
+
* `<outDir>/<base>/...` would result in a double-nested path.
|
|
410
|
+
*
|
|
411
|
+
* **Note on `zfb preview`:** with `false`, base-prefixed public-asset
|
|
412
|
+
* URLs 404 under `zfb preview` because the flat copy lives at the
|
|
413
|
+
* dist root and `zfb preview` does not simulate deploy-side
|
|
414
|
+
* relocation. This is a known trade-off of the flat-copy deploy
|
|
415
|
+
* scheme.
|
|
416
|
+
*
|
|
417
|
+
* Mirrors `Config::copy_public_with_base` in crates/zfb/src/config.rs.
|
|
418
|
+
*/
|
|
419
|
+
copyPublicWithBase?: boolean;
|
|
347
420
|
/**
|
|
348
421
|
* Project output mode. Drives the V8-mode decision the build engine
|
|
349
422
|
* makes right after the no-SSR-without-adapter precondition check
|
|
@@ -382,6 +455,31 @@ export type ZfbConfig = {
|
|
|
382
455
|
* Mirrors `OutputMode` in crates/zfb/src/config.rs.
|
|
383
456
|
*/
|
|
384
457
|
export type OutputMode = "static" | "hybrid" | "auto";
|
|
458
|
+
/**
|
|
459
|
+
* Syntect code-highlight options.
|
|
460
|
+
*
|
|
461
|
+
* Unknown theme names are rejected at build start with a clear error
|
|
462
|
+
* rather than silently falling back.
|
|
463
|
+
*
|
|
464
|
+
* Mirrors `CodeHighlightConfig` in crates/zfb/src/config.rs.
|
|
465
|
+
*/
|
|
466
|
+
export type CodeHighlightConfig = {
|
|
467
|
+
/**
|
|
468
|
+
* Syntect built-in or user-loaded theme name. When absent the
|
|
469
|
+
* pipeline defaults to `"base16-ocean.dark"`.
|
|
470
|
+
*/
|
|
471
|
+
theme?: string;
|
|
472
|
+
/**
|
|
473
|
+
* Path to a directory of `.tmTheme` files, relative to the project
|
|
474
|
+
* root. Every `.tmTheme` file in the directory is loaded and becomes
|
|
475
|
+
* available by its declared `name` via {@link theme}. When absent
|
|
476
|
+
* only syntect's bundled themes are available.
|
|
477
|
+
*
|
|
478
|
+
* The path must be relative and must not escape the project root via
|
|
479
|
+
* `..`. A missing directory is reported as an error at build start.
|
|
480
|
+
*/
|
|
481
|
+
themesDir?: string;
|
|
482
|
+
};
|
|
385
483
|
/**
|
|
386
484
|
* Table-of-contents options. Wire via `markdown.toc` in `zfb.config.ts`.
|
|
387
485
|
*
|
|
@@ -590,8 +688,8 @@ export type ImageDimensionsConfig = Record<string, never>;
|
|
|
590
688
|
* Options for the `linkValidation` feature.
|
|
591
689
|
*
|
|
592
690
|
* Validates internal `[text](file.md#anchor)` and `[text](#anchor)` links at
|
|
593
|
-
* build time. External URLs (`http://`, `https://`, `mailto:`) are
|
|
594
|
-
*
|
|
691
|
+
* build time. External URLs (`http://`, `https://`, `mailto:`) are always
|
|
692
|
+
* skipped — network validation is out of scope.
|
|
595
693
|
*
|
|
596
694
|
* Mirrors `LinkValidationConfig` in `crates/zfb-md-ast/src/features_config.rs`.
|
|
597
695
|
*/
|
|
@@ -601,11 +699,6 @@ export type LinkValidationConfig = {
|
|
|
601
699
|
* Default: `false` (warn-only).
|
|
602
700
|
*/
|
|
603
701
|
failOnBroken?: boolean;
|
|
604
|
-
/**
|
|
605
|
-
* When `true` (default), external URLs are silently skipped.
|
|
606
|
-
* Set to `false` to validate external links as well.
|
|
607
|
-
*/
|
|
608
|
-
allowExternal?: boolean;
|
|
609
702
|
};
|
|
610
703
|
/**
|
|
611
704
|
* Options for the `transclude` feature.
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG;IAC1B,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,oDAAoD;IACpD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC;IAC9B,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,kEAAkE;AAClE,uEAAuE;AACvE,uEAAuE;AACvE,sEAAsE;AACtE,+BAA+B;AAC/B,EAAE;AACF,yEAAyE;AACzE,uEAAuE;AACvE,uEAAuE;AACvE,kEAAkE;AAClE,EAAE;AACF,uEAAuE;AACvE,uEAAuE;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,kEAAkE;AAClE,uEAAuE;AACvE,uEAAuE;AACvE,sEAAsE;AACtE,+BAA+B;AAC/B,EAAE;AACF,yEAAyE;AACzE,uEAAuE;AACvE,uEAAuE;AACvE,kEAAkE;AAClE,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AA8+BvE;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAiB;IAC5C,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
export { ANONYMOUS_COMPONENT_NAME, HYDRATE_MARKER_ATTR, Island, SKIP_SSR_MARKER_ATTR, resolveWhen, type IslandElement, type IslandProps, } from "./island.js";
|
|
2
2
|
export { scheduleHydrate, mountIslands, mountNewIslands, cancelPendingIslands, unmountIslands, } from "./runtime.js";
|
|
3
3
|
export type { IslandManifest, IslandManifestValue } from "./runtime.js";
|
|
4
|
+
export type { VNode, VNodeArray, VNodeObject } from "./jsx-types.js";
|
|
4
5
|
export { DEFAULT_WHEN, isWhen, WHEN_VALUES, type When } from "./types.js";
|
|
5
6
|
export { definePlugin, type ZfbBuildHookContext, type ZfbDevMiddlewareContext, type ZfbDevMiddlewareHandler, type ZfbDevMiddlewareRequest, type ZfbDevMiddlewareResponse, type ZfbPlugin, type ZfbPluginLogger, } from "./plugins.js";
|
|
7
|
+
export { slugify, SlugAllocator } from "./slugify.js";
|
|
8
|
+
export { clientScript } from "./client-script.js";
|
|
6
9
|
export { ContentBlockquote, ContentCode, ContentH2, ContentH3, ContentH4, ContentLink, ContentOl, ContentParagraph, ContentStrong, ContentTable, ContentUl, defaultComponents, mergeMdxComponents, type ContentComponentElement, type ContentComponentProps, type MdxComponents, } from "./content.js";
|
|
7
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,MAAM,EACN,oBAAoB,EACpB,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAW1E,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,MAAM,EACN,oBAAoB,EACpB,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAW1E,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -17,5 +17,7 @@ export { DEFAULT_WHEN, isWhen, WHEN_VALUES } from "./types.js";
|
|
|
17
17
|
// root entry re-exports them so simple plugins can pull everything from
|
|
18
18
|
// one path.
|
|
19
19
|
export { definePlugin, } from "./plugins.js";
|
|
20
|
+
export { slugify, SlugAllocator } from "./slugify.js";
|
|
21
|
+
export { clientScript } from "./client-script.js";
|
|
20
22
|
export { ContentBlockquote, ContentCode, ContentH2, ContentH3, ContentH4, ContentLink, ContentOl, ContentParagraph, ContentStrong, ContentTable, ContentUl, defaultComponents, mergeMdxComponents, } from "./content.js";
|
|
21
23
|
//# 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,sDAAsD;AACtD,EAAE;AACF,iFAAiF;AACjF,uDAAuD;AACvD,gFAAgF;AAChF,uCAAuC;AAEvC,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,MAAM,EACN,oBAAoB,EACpB,WAAW,GAGZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,cAAc,GACf,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,EAAE;AACF,iFAAiF;AACjF,uDAAuD;AACvD,gFAAgF;AAChF,uCAAuC;AAEvC,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,MAAM,EACN,oBAAoB,EACpB,WAAW,GAGZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAa,MAAM,YAAY,CAAC;AAE1E,yEAAyE;AACzE,iFAAiF;AACjF,oEAAoE;AACpE,+FAA+F;AAC/F,qCAAqC;AACrC,kEAAkE;AAClE,sEAAsE;AACtE,wEAAwE;AACxE,YAAY;AACZ,OAAO,EACL,YAAY,GAQb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,kBAAkB,GAInB,MAAM,cAAc,CAAC"}
|
package/dist/island.d.ts
CHANGED
|
@@ -33,6 +33,16 @@ export declare const PROPS_DATA_ATTR = "data-props";
|
|
|
33
33
|
export interface IslandProps {
|
|
34
34
|
/** Hydration scheduling strategy. Defaults to `"load"`. */
|
|
35
35
|
when?: When;
|
|
36
|
+
/**
|
|
37
|
+
* CSS media query string for `when="media"` islands. The island hydrates
|
|
38
|
+
* when this query first matches (including later viewport changes). The
|
|
39
|
+
* runtime uses `window.matchMedia(media)` to register a listener.
|
|
40
|
+
*
|
|
41
|
+
* Ignored when `when` is not `"media"` (a dev warning is emitted).
|
|
42
|
+
* Required when `when === "media"` (omitting it falls back to DEFAULT_WHEN
|
|
43
|
+
* with a dev warning).
|
|
44
|
+
*/
|
|
45
|
+
media?: string;
|
|
36
46
|
/**
|
|
37
47
|
* If supplied, switches the island into SSR-skip mode (Astro's
|
|
38
48
|
* `client:only` equivalent). The wrapper emits the
|
package/dist/island.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"island.d.ts","sourceRoot":"","sources":["../src/island.ts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"island.d.ts","sourceRoot":"","sources":["../src/island.ts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAA6B,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAMlE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AAErD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,6BAA6B,CAAC;AAE/D,uEAAuE;AACvE,eAAO,MAAM,wBAAwB,cAAc,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,eAAe,CAAC;AAE5C,4BAA4B;AAC5B,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa,CA6BxD;AAyED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAS9D;AAgBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAS9E"}
|
package/dist/island.js
CHANGED
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
// values and fall back to the default. In production we silently fall
|
|
41
41
|
// back to keep the bundle path small.
|
|
42
42
|
import { jsx } from "react/jsx-runtime";
|
|
43
|
-
import { resolveWhen } from "./types.js";
|
|
43
|
+
import { DEFAULT_WHEN, resolveWhen } from "./types.js";
|
|
44
44
|
// Re-export `resolveWhen` for back-compat: tests and downstream consumers
|
|
45
45
|
// historically imported it from `./island.js`. The implementation lives in
|
|
46
46
|
// `./types.js` so the runtime scheduler can pull it in without dragging
|
|
@@ -95,7 +95,9 @@ export const PROPS_DATA_ATTR = "data-props";
|
|
|
95
95
|
* through it.
|
|
96
96
|
*/
|
|
97
97
|
export function Island(props) {
|
|
98
|
-
const
|
|
98
|
+
const resolvedWhen = resolveMediaProps(props);
|
|
99
|
+
const when = resolvedWhen.when;
|
|
100
|
+
const media = resolvedWhen.media;
|
|
99
101
|
const componentName = captureComponentName(props.children);
|
|
100
102
|
const isSkipSsr = props.ssrFallback !== undefined;
|
|
101
103
|
// Always source props from `props.children` (the heavy component VNode),
|
|
@@ -108,6 +110,8 @@ export function Island(props) {
|
|
|
108
110
|
[SKIP_SSR_MARKER_ATTR]: componentName,
|
|
109
111
|
"data-when": when,
|
|
110
112
|
};
|
|
113
|
+
if (when === "media" && media !== undefined)
|
|
114
|
+
skipSsrProps["data-media"] = media;
|
|
111
115
|
if (dataProps !== undefined)
|
|
112
116
|
skipSsrProps[PROPS_DATA_ATTR] = dataProps;
|
|
113
117
|
return makeWrapper(skipSsrProps, props.ssrFallback ?? null);
|
|
@@ -116,10 +120,39 @@ export function Island(props) {
|
|
|
116
120
|
[HYDRATE_MARKER_ATTR]: componentName,
|
|
117
121
|
"data-when": when,
|
|
118
122
|
};
|
|
123
|
+
if (when === "media" && media !== undefined)
|
|
124
|
+
hydrateProps["data-media"] = media;
|
|
119
125
|
if (dataProps !== undefined)
|
|
120
126
|
hydrateProps[PROPS_DATA_ATTR] = dataProps;
|
|
121
127
|
return makeWrapper(hydrateProps, props.children);
|
|
122
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Validate and resolve the `when` / `media` props together.
|
|
131
|
+
*
|
|
132
|
+
* - `when="media"` without `media` → warn + fall back to `DEFAULT_WHEN`.
|
|
133
|
+
* - `media` without `when="media"` → warn-and-ignore; `media` is dropped.
|
|
134
|
+
*/
|
|
135
|
+
function resolveMediaProps(props) {
|
|
136
|
+
const when = resolveWhen(props.when);
|
|
137
|
+
const media = props.media;
|
|
138
|
+
if (when === "media" && !media) {
|
|
139
|
+
if (typeof process !== "undefined" && process.env && process.env["NODE_ENV"] !== "production") {
|
|
140
|
+
// eslint-disable-next-line no-console
|
|
141
|
+
console.warn(`[zfb] <Island when="media"> requires the \`media\` prop (a CSS media query string). ` +
|
|
142
|
+
`Falling back to "${DEFAULT_WHEN}".`);
|
|
143
|
+
}
|
|
144
|
+
return { when: DEFAULT_WHEN, media: undefined };
|
|
145
|
+
}
|
|
146
|
+
if (media && when !== "media") {
|
|
147
|
+
if (typeof process !== "undefined" && process.env && process.env["NODE_ENV"] !== "production") {
|
|
148
|
+
// eslint-disable-next-line no-console
|
|
149
|
+
console.warn(`[zfb] The \`media\` prop is only used when \`when="media"\`. ` +
|
|
150
|
+
`Current when="${when}" — \`media\` will be ignored.`);
|
|
151
|
+
}
|
|
152
|
+
return { when, media: undefined };
|
|
153
|
+
}
|
|
154
|
+
return { when, media };
|
|
155
|
+
}
|
|
123
156
|
/**
|
|
124
157
|
* Construct the wrapper element through the **automatic JSX runtime
|
|
125
158
|
* factory**, called explicitly so this file stays plain `.ts` (no JSX
|
package/dist/island.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"island.js","sourceRoot":"","sources":["../src/island.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,wEAAwE;AACxE,2EAA2E;AAC3E,2EAA2E;AAC3E,uEAAuE;AACvE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,EAAE;AACF,gDAAgD;AAChD,EAAE;AACF,cAAc;AACd,EAAE;AACF,wDAAwD;AACxD,kBAAkB;AAClB,WAAW;AACX,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,sEAAsE;AACtE,wEAAwE;AACxE,uEAAuE;AACvE,EAAE;AACF,0EAA0E;AAC1E,uEAAuE;AACvE,UAAU;AACV,EAAE;AACF,2EAA2E;AAC3E,MAAM;AACN,qDAAqD;AACrD,0BAA0B;AAC1B,WAAW;AACX,EAAE;AACF,0EAA0E;AAC1E,uEAAuE;AACvE,0BAA0B;AAC1B,EAAE;AACF,qEAAqE;AACrE,sEAAsE;AACtE,sCAAsC;AAEtC,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGxC,OAAO,EAAE,WAAW,EAAa,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"island.js","sourceRoot":"","sources":["../src/island.ts"],"names":[],"mappings":"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"}
|
package/dist/jsx-types.d.ts
CHANGED
|
@@ -21,15 +21,25 @@ export type VNodeObject = {
|
|
|
21
21
|
readonly key: unknown;
|
|
22
22
|
};
|
|
23
23
|
/**
|
|
24
|
-
* A renderable JSX node: a primitive, `null`, `undefined`, an array,
|
|
25
|
-
* structured VNode object
|
|
24
|
+
* A renderable JSX node: a primitive, `null`, `undefined`, an array, a
|
|
25
|
+
* structured VNode object, or a bare `object`.
|
|
26
26
|
*
|
|
27
27
|
* This union covers every value both Preact and React treat as valid
|
|
28
|
-
* `children`.
|
|
29
|
-
*
|
|
30
|
-
*
|
|
28
|
+
* `children`. The bare `object` member is required to make Preact's
|
|
29
|
+
* `ComponentChildren` / `VNode<{}>` assignable without casts — Preact's own
|
|
30
|
+
* `ComponentChild` uses the same widening pattern. The loosening is safe
|
|
31
|
+
* because all SDK runtime code duck-types `unknown` at the boundary
|
|
32
|
+
* (island.ts, content.ts) and the Rust pipeline is type-erased.
|
|
33
|
+
*
|
|
34
|
+
* Importantly, the union does **not** reference any framework-specific type,
|
|
35
|
+
* so packages that depend on `zfb` need not install a React / Preact `@types`
|
|
36
|
+
* package to satisfy this type.
|
|
37
|
+
*
|
|
38
|
+
* **Name-collision note for Preact consumers:** if your file already has
|
|
39
|
+
* `import { VNode } from "preact"`, use a qualifier on the zfb import:
|
|
40
|
+
* `import type { VNode as ZfbVNode } from "@takazudo/zfb"`.
|
|
31
41
|
*/
|
|
32
|
-
export type VNode = string | number | boolean | null | undefined | bigint | VNodeArray | VNodeObject;
|
|
42
|
+
export type VNode = string | number | boolean | null | undefined | bigint | VNodeArray | VNodeObject | object;
|
|
33
43
|
export interface VNodeArray extends ReadonlyArray<VNode> {
|
|
34
44
|
}
|
|
35
45
|
/** @deprecated Use `VNode` instead. */
|
package/dist/jsx-types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx-types.d.ts","sourceRoot":"","sources":["../src/jsx-types.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAAC;IAClG,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"jsx-types.d.ts","sourceRoot":"","sources":["../src/jsx-types.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAAC;IAClG,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,KAAK,GACb,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,MAAM,GACN,UAAU,GACV,WAAW,GACX,MAAM,CAAC;AAEX,MAAM,WAAW,UAAW,SAAQ,aAAa,CAAC,KAAK,CAAC;CAAG;AAK3D,uCAAuC;AACvC,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC"}
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAe,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAgDpD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,EAC/B,IAAI,EAAE,MAAM,IAAI,GACf,MAAM,IAAI,CAEZ;AAqLD;;;;;GAKG;AACH,KAAK,WAAW,GAAG,CACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,SAAS,GAAG,QAAQ,KACvB,IAAI,CAAC;AAEV,KAAK,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAEhD,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,YAAY,CAAC;AACxD,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAkC3E;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CA0B3D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAqBtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C;AA8OD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,IAAI,GAAE,UAA0B,GAAG,IAAI,CAUrE;AAqCD;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,GAC3C,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAIxC;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEpE"}
|
package/dist/runtime.js
CHANGED
|
@@ -10,12 +10,15 @@
|
|
|
10
10
|
// "visible" → IntersectionObserver, threshold 0.0, hydrate on first
|
|
11
11
|
// intersection, then disconnect.
|
|
12
12
|
// "idle" → requestIdleCallback if available, otherwise setTimeout(0).
|
|
13
|
+
// "media" → matchMedia(target's data-media), hydrate when the query
|
|
14
|
+
// first matches (now or on a later change event), then
|
|
15
|
+
// remove the listener.
|
|
13
16
|
// "load" → immediate, synchronous fire.
|
|
14
17
|
//
|
|
15
18
|
// Anything else is treated as "load" (with a console.warn in development).
|
|
16
19
|
// The helper is environment-tolerant: callers can run it in jsdom /
|
|
17
20
|
// happy-dom or bare Node, and the absence of `IntersectionObserver` /
|
|
18
|
-
// `requestIdleCallback` is handled gracefully.
|
|
21
|
+
// `requestIdleCallback` / `matchMedia` is handled gracefully.
|
|
19
22
|
import { resolveWhen } from "./types.js";
|
|
20
23
|
const g = globalThis;
|
|
21
24
|
/**
|
|
@@ -32,6 +35,9 @@ function scheduleHydrateInternal(target, when, fire) {
|
|
|
32
35
|
if (resolved === "idle") {
|
|
33
36
|
return { fired: false, cancel: scheduleIdle(fire) };
|
|
34
37
|
}
|
|
38
|
+
if (resolved === "media") {
|
|
39
|
+
return scheduleMedia(target, fire);
|
|
40
|
+
}
|
|
35
41
|
// "visible"
|
|
36
42
|
return scheduleVisible(target, fire);
|
|
37
43
|
}
|
|
@@ -123,6 +129,60 @@ function scheduleVisible(target, fire) {
|
|
|
123
129
|
},
|
|
124
130
|
};
|
|
125
131
|
}
|
|
132
|
+
function scheduleMedia(target, fire) {
|
|
133
|
+
const query = target.getAttribute("data-media");
|
|
134
|
+
// No matchMedia API (e.g. bare Node, very old browser) or missing/empty
|
|
135
|
+
// query — fail open and hydrate immediately so the island is at least
|
|
136
|
+
// functional.
|
|
137
|
+
if (typeof g.matchMedia !== "function" || !query) {
|
|
138
|
+
fire();
|
|
139
|
+
return { fired: true, cancel: noop };
|
|
140
|
+
}
|
|
141
|
+
const mql = g.matchMedia(query);
|
|
142
|
+
// Already matches — fire synchronously (no pending listener needed).
|
|
143
|
+
if (mql.matches) {
|
|
144
|
+
fire();
|
|
145
|
+
return { fired: true, cancel: noop };
|
|
146
|
+
}
|
|
147
|
+
const gate = oneShot(fire);
|
|
148
|
+
let removeListener = noop;
|
|
149
|
+
// Listen for the first change event where the query matches.
|
|
150
|
+
// We do NOT use `{once:true}` because we must ignore un-match events
|
|
151
|
+
// (e.g. viewport widens back above breakpoint) and only fire on the
|
|
152
|
+
// first match event — `{once:true}` would consume any change, including
|
|
153
|
+
// un-match changes.
|
|
154
|
+
const handler = (e) => {
|
|
155
|
+
if (!e.matches)
|
|
156
|
+
return; // ignore un-match changes
|
|
157
|
+
removeListener();
|
|
158
|
+
gate.run();
|
|
159
|
+
};
|
|
160
|
+
// Modern browsers expose the EventTarget API on MediaQueryList; older
|
|
161
|
+
// Safari (<14) only has the deprecated addListener/removeListener pair
|
|
162
|
+
// and throws on addEventListener. Prefer modern, fall back to legacy,
|
|
163
|
+
// and fail open when neither exists (mirrors the missing-matchMedia case).
|
|
164
|
+
if (typeof mql.addEventListener === "function") {
|
|
165
|
+
mql.addEventListener("change", handler);
|
|
166
|
+
removeListener = () => mql.removeEventListener("change", handler);
|
|
167
|
+
}
|
|
168
|
+
else if (typeof mql.addListener === "function") {
|
|
169
|
+
mql.addListener(handler);
|
|
170
|
+
removeListener = () => mql.removeListener(handler);
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
fire();
|
|
174
|
+
return { fired: true, cancel: noop };
|
|
175
|
+
}
|
|
176
|
+
return {
|
|
177
|
+
fired: false,
|
|
178
|
+
cancel: () => {
|
|
179
|
+
const alreadyFired = gate.cancel();
|
|
180
|
+
if (alreadyFired)
|
|
181
|
+
return;
|
|
182
|
+
removeListener();
|
|
183
|
+
},
|
|
184
|
+
};
|
|
185
|
+
}
|
|
126
186
|
// WeakMap<Element, unmount thunk> — replaces the old WeakSet.
|
|
127
187
|
// Value is a per-element function that calls the bundle's unmount(element)
|
|
128
188
|
// (or a noop if the bundle does not expose one). Used by unmountIslands()
|
|
@@ -147,7 +207,8 @@ const pending = new WeakSet();
|
|
|
147
207
|
// would require widening the event API or threading manifest into router options. The
|
|
148
208
|
// captured-manifest pattern keeps the package boundary clean.
|
|
149
209
|
let capturedManifest = null;
|
|
150
|
-
// Map of element → cancel-function for deferred-hydration islands
|
|
210
|
+
// Map of element → cancel-function for deferred-hydration islands
|
|
211
|
+
// (data-when="idle"|"visible"|"media").
|
|
151
212
|
// Populated in scheduleMount; consulted on `zfb:before-swap` so deferred fires do not run
|
|
152
213
|
// against orphan elements after a body swap. (W1B §12.5)
|
|
153
214
|
const pendingCancels = new Map();
|
|
@@ -286,7 +347,6 @@ function scheduleMount(manifest, element, componentName, mode) {
|
|
|
286
347
|
}
|
|
287
348
|
return;
|
|
288
349
|
}
|
|
289
|
-
const props = readProps(element);
|
|
290
350
|
const when = element.getAttribute("data-when") ?? undefined;
|
|
291
351
|
// Two manifest shapes:
|
|
292
352
|
//
|
|
@@ -297,7 +357,7 @@ function scheduleMount(manifest, element, componentName, mode) {
|
|
|
297
357
|
// constructed a mount function for it. Skip the dynamic import
|
|
298
358
|
// and call the supplied function directly.
|
|
299
359
|
if (typeof entry !== "string") {
|
|
300
|
-
fireInlineMount(element, entry,
|
|
360
|
+
fireInlineMount(element, entry, mode);
|
|
301
361
|
return;
|
|
302
362
|
}
|
|
303
363
|
const url = entry;
|
|
@@ -310,6 +370,11 @@ function scheduleMount(manifest, element, componentName, mode) {
|
|
|
310
370
|
// When the deferred fire actually runs, the cancel handle is no longer
|
|
311
371
|
// needed — remove it so pendingCancels doesn't hold stale entries.
|
|
312
372
|
pendingCancels.delete(element);
|
|
373
|
+
// Lazy props parse: read and parse data-props only now that we know we
|
|
374
|
+
// are actually going to mount this island. For deferred strategies
|
|
375
|
+
// (media, visible, idle) this avoids JSON.parse work at boot time for
|
|
376
|
+
// islands that may never hydrate (e.g. media query never matches).
|
|
377
|
+
const props = readProps(element);
|
|
313
378
|
// Mark as pending BEFORE firing the import so any concurrent
|
|
314
379
|
// `mountIslands` invocation that arrives during the await window
|
|
315
380
|
// is short-circuited by `scheduleMount`'s guard.
|
|
@@ -397,7 +462,7 @@ function scheduleMount(manifest, element, componentName, mode) {
|
|
|
397
462
|
* coordinate around — we just call `mount` / `default` directly,
|
|
398
463
|
* gated by the same `data-when` semantics as the URL path.
|
|
399
464
|
*/
|
|
400
|
-
function fireInlineMount(element, mod,
|
|
465
|
+
function fireInlineMount(element, mod, mode) {
|
|
401
466
|
const fn = mod.mount ?? mod.default;
|
|
402
467
|
if (typeof fn !== "function") {
|
|
403
468
|
if (typeof process !== "undefined" && process.env && process.env["NODE_ENV"] !== "production") {
|
|
@@ -419,6 +484,10 @@ function fireInlineMount(element, mod, props, mode) {
|
|
|
419
484
|
// was detached (e.g. body swap) while the idle/visible callback was queued.
|
|
420
485
|
if (!element.isConnected)
|
|
421
486
|
return;
|
|
487
|
+
// Lazy props parse: read and parse data-props only at mount time.
|
|
488
|
+
// For deferred strategies (media, visible, idle) this avoids JSON.parse
|
|
489
|
+
// work at boot time for islands that may never hydrate.
|
|
490
|
+
const props = readProps(element);
|
|
422
491
|
const unmountThunk = mod.unmount
|
|
423
492
|
? () => mod.unmount(element)
|
|
424
493
|
: () => {
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Heading-anchor slug utilities — a pure-TypeScript port of the Rust
|
|
3
|
+
* `slugify` / `next_slug` / `SlugAllocator` in
|
|
4
|
+
* `crates/zfb-content/src/plugins/heading_links.rs`.
|
|
5
|
+
*
|
|
6
|
+
* These functions produce the `id` attribute values that appear on
|
|
7
|
+
* `<h2>`–`<h6>` elements in the rendered HTML. They are intentionally
|
|
8
|
+
* **not** compatible with npm `github-slugger`: stripped punctuation
|
|
9
|
+
* collapses to a `-` separator (`"a,b"` → `"a-b"`), and leading/trailing
|
|
10
|
+
* whitespace / stripped chars emit nothing rather than a stray dash.
|
|
11
|
+
*
|
|
12
|
+
* ⚠️ These functions produce heading-anchor slugs (e.g. `"hello-world"`
|
|
13
|
+
* for `<h2 id="hello-world">`). They are **different** from
|
|
14
|
+
* `_relPathToSlug` in `content.ts`, which converts a file-system relative
|
|
15
|
+
* path into a URL slug for `CollectionEntry.slug`.
|
|
16
|
+
*
|
|
17
|
+
* Parity is enforced by the shared fixture at
|
|
18
|
+
* `crates/zfb-content/tests/fixtures/slugify-parity.json`, consumed by
|
|
19
|
+
* both a Rust integration test and the `slugify.test.ts` vitest suite.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Produce a heading-anchor slug from `input`, matching the Rust
|
|
23
|
+
* `slugify()` in `crates/zfb-content/src/plugins/heading_links.rs`.
|
|
24
|
+
*
|
|
25
|
+
* Algorithm (per Unicode code point):
|
|
26
|
+
* - whitespace or stripped punctuation → emit ONE `-` unless the last
|
|
27
|
+
* emitted character was already a `-` (leading separators are skipped
|
|
28
|
+
* because `lastDash` starts `true`).
|
|
29
|
+
* - anything else → push `ch.toLowerCase()` (per-code-point, not
|
|
30
|
+
* whole-string, to avoid Greek final-sigma context collapsing).
|
|
31
|
+
* - finally pop ONE trailing `-` if present.
|
|
32
|
+
*
|
|
33
|
+
* Divergence from npm github-slugger (intentional — parity target is
|
|
34
|
+
* the Rust function, not npm):
|
|
35
|
+
* - `"a,b"` → `"a-b"` (stripped punctuation emits a dash, not nothing)
|
|
36
|
+
* - `" --weird-- "` → `"--weird--"` (existing dashes/underscores pass
|
|
37
|
+
* through unchanged)
|
|
38
|
+
*/
|
|
39
|
+
export declare function slugify(input: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* Strategy-aware slug allocator for a single document.
|
|
42
|
+
*
|
|
43
|
+
* Mirrors Rust `SlugAllocator` in heading_links.rs:70-118.
|
|
44
|
+
*
|
|
45
|
+
* @param strategy `"flat"` (default) — per-document dedup counter, mirrors
|
|
46
|
+
* github-slugger numbering. `"hierarchical"` — each slug is prefixed with
|
|
47
|
+
* its ancestor chain and deduped on the full candidate path.
|
|
48
|
+
*
|
|
49
|
+
* Depth contract: callers pass `depth` values 2–6 (h2–h6). h1 is never
|
|
50
|
+
* allocated — it is handled by the page layout, not the markdown body.
|
|
51
|
+
*/
|
|
52
|
+
export declare class SlugAllocator {
|
|
53
|
+
private readonly strategy;
|
|
54
|
+
private seen;
|
|
55
|
+
/** Hierarchical ancestor stack of `[depth, finalId]` pairs. Unused in flat mode. */
|
|
56
|
+
private stack;
|
|
57
|
+
constructor(strategy?: "flat" | "hierarchical");
|
|
58
|
+
/**
|
|
59
|
+
* Allocate the slug for a heading of `depth` (2–6) whose slugified text
|
|
60
|
+
* is `base`. Returns `""` for an empty `base` without mutating state.
|
|
61
|
+
*/
|
|
62
|
+
allocate(depth: number, base: string): string;
|
|
63
|
+
/**
|
|
64
|
+
* Clear all per-document state (dedup counters AND the hierarchical
|
|
65
|
+
* ancestor stack). Call between documents to avoid slug counter leakage.
|
|
66
|
+
*/
|
|
67
|
+
reset(): void;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=slugify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slugify.d.ts","sourceRoot":"","sources":["../src/slugify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAqEH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAuB7C;AA0BD;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,IAAI,CAAsB;IAClC,oFAAoF;IACpF,OAAO,CAAC,KAAK,CAA0B;gBAE3B,QAAQ,GAAE,MAAM,GAAG,cAAuB;IAMtD;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAqB7C;;;OAGG;IACH,KAAK,IAAI,IAAI;CAId"}
|
package/dist/slugify.js
ADDED
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Heading-anchor slug utilities — a pure-TypeScript port of the Rust
|
|
3
|
+
* `slugify` / `next_slug` / `SlugAllocator` in
|
|
4
|
+
* `crates/zfb-content/src/plugins/heading_links.rs`.
|
|
5
|
+
*
|
|
6
|
+
* These functions produce the `id` attribute values that appear on
|
|
7
|
+
* `<h2>`–`<h6>` elements in the rendered HTML. They are intentionally
|
|
8
|
+
* **not** compatible with npm `github-slugger`: stripped punctuation
|
|
9
|
+
* collapses to a `-` separator (`"a,b"` → `"a-b"`), and leading/trailing
|
|
10
|
+
* whitespace / stripped chars emit nothing rather than a stray dash.
|
|
11
|
+
*
|
|
12
|
+
* ⚠️ These functions produce heading-anchor slugs (e.g. `"hello-world"`
|
|
13
|
+
* for `<h2 id="hello-world">`). They are **different** from
|
|
14
|
+
* `_relPathToSlug` in `content.ts`, which converts a file-system relative
|
|
15
|
+
* path into a URL slug for `CollectionEntry.slug`.
|
|
16
|
+
*
|
|
17
|
+
* Parity is enforced by the shared fixture at
|
|
18
|
+
* `crates/zfb-content/tests/fixtures/slugify-parity.json`, consumed by
|
|
19
|
+
* both a Rust integration test and the `slugify.test.ts` vitest suite.
|
|
20
|
+
*/
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
// Helpers — mirrors the Rust `is_stripped` predicate
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
/** Unicode General Category Cc (control characters). */
|
|
25
|
+
function isCc(ch) {
|
|
26
|
+
// \p{Cc} = general category "Control" (C0 + C1 blocks: U+0000–U+001F, U+007F–U+009F)
|
|
27
|
+
return /^\p{Cc}$/u.test(ch);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Returns true when the character should be stripped (maps to a dash
|
|
31
|
+
* separator in the output). Mirrors Rust's `is_stripped`:
|
|
32
|
+
* - Unicode Cc control characters
|
|
33
|
+
* - Explicit ASCII punctuation set: `! " # $ % & ' ( ) * + , . / : ; < = > ? @ [ \ ] ^ ` { | } ~`
|
|
34
|
+
*/
|
|
35
|
+
function isStripped(ch) {
|
|
36
|
+
if (isCc(ch))
|
|
37
|
+
return true;
|
|
38
|
+
return (ch === "!" ||
|
|
39
|
+
ch === '"' ||
|
|
40
|
+
ch === "#" ||
|
|
41
|
+
ch === "$" ||
|
|
42
|
+
ch === "%" ||
|
|
43
|
+
ch === "&" ||
|
|
44
|
+
ch === "'" ||
|
|
45
|
+
ch === "(" ||
|
|
46
|
+
ch === ")" ||
|
|
47
|
+
ch === "*" ||
|
|
48
|
+
ch === "+" ||
|
|
49
|
+
ch === "," ||
|
|
50
|
+
ch === "." ||
|
|
51
|
+
ch === "/" ||
|
|
52
|
+
ch === ":" ||
|
|
53
|
+
ch === ";" ||
|
|
54
|
+
ch === "<" ||
|
|
55
|
+
ch === "=" ||
|
|
56
|
+
ch === ">" ||
|
|
57
|
+
ch === "?" ||
|
|
58
|
+
ch === "@" ||
|
|
59
|
+
ch === "[" ||
|
|
60
|
+
ch === "\\" ||
|
|
61
|
+
ch === "]" ||
|
|
62
|
+
ch === "^" ||
|
|
63
|
+
ch === "`" ||
|
|
64
|
+
ch === "{" ||
|
|
65
|
+
ch === "|" ||
|
|
66
|
+
ch === "}" ||
|
|
67
|
+
ch === "~");
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Returns true when `ch` is a Unicode whitespace character.
|
|
71
|
+
*
|
|
72
|
+
* Mirrors Rust `char::is_whitespace` which is `\p{White_Space}/u` — NOT
|
|
73
|
+
* the JS `\s` class (`\s` wrongly matches U+FEFF BYTE ORDER MARK and
|
|
74
|
+
* misses U+0085 NEXT LINE).
|
|
75
|
+
*/
|
|
76
|
+
function isWhitespace(ch) {
|
|
77
|
+
return /^\p{White_Space}$/u.test(ch);
|
|
78
|
+
}
|
|
79
|
+
// ---------------------------------------------------------------------------
|
|
80
|
+
// slugify
|
|
81
|
+
// ---------------------------------------------------------------------------
|
|
82
|
+
/**
|
|
83
|
+
* Produce a heading-anchor slug from `input`, matching the Rust
|
|
84
|
+
* `slugify()` in `crates/zfb-content/src/plugins/heading_links.rs`.
|
|
85
|
+
*
|
|
86
|
+
* Algorithm (per Unicode code point):
|
|
87
|
+
* - whitespace or stripped punctuation → emit ONE `-` unless the last
|
|
88
|
+
* emitted character was already a `-` (leading separators are skipped
|
|
89
|
+
* because `lastDash` starts `true`).
|
|
90
|
+
* - anything else → push `ch.toLowerCase()` (per-code-point, not
|
|
91
|
+
* whole-string, to avoid Greek final-sigma context collapsing).
|
|
92
|
+
* - finally pop ONE trailing `-` if present.
|
|
93
|
+
*
|
|
94
|
+
* Divergence from npm github-slugger (intentional — parity target is
|
|
95
|
+
* the Rust function, not npm):
|
|
96
|
+
* - `"a,b"` → `"a-b"` (stripped punctuation emits a dash, not nothing)
|
|
97
|
+
* - `" --weird-- "` → `"--weird--"` (existing dashes/underscores pass
|
|
98
|
+
* through unchanged)
|
|
99
|
+
*/
|
|
100
|
+
export function slugify(input) {
|
|
101
|
+
let out = "";
|
|
102
|
+
let lastDash = true;
|
|
103
|
+
for (const ch of input) {
|
|
104
|
+
if (isWhitespace(ch) || isStripped(ch)) {
|
|
105
|
+
if (!lastDash) {
|
|
106
|
+
out += "-";
|
|
107
|
+
lastDash = true;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
// Per-code-point lowercase — avoids Greek final-sigma context:
|
|
112
|
+
// "ΦΟΣ" → "φοσ" not "φος".
|
|
113
|
+
out += ch.toLowerCase();
|
|
114
|
+
lastDash = false;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (out.endsWith("-")) {
|
|
118
|
+
out = out.slice(0, -1);
|
|
119
|
+
}
|
|
120
|
+
return out;
|
|
121
|
+
}
|
|
122
|
+
// ---------------------------------------------------------------------------
|
|
123
|
+
// next_slug
|
|
124
|
+
// ---------------------------------------------------------------------------
|
|
125
|
+
/**
|
|
126
|
+
* Allocate the next deduplicated slug for `base` against a per-document
|
|
127
|
+
* counter map.
|
|
128
|
+
*
|
|
129
|
+
* Mirrors Rust `next_slug`: first occurrence returns `base`, second
|
|
130
|
+
* returns `base-1`, third `base-2`, … Empty `base` short-circuits to
|
|
131
|
+
* `""` without mutating the map.
|
|
132
|
+
*/
|
|
133
|
+
function nextSlug(seen, base) {
|
|
134
|
+
if (base === "")
|
|
135
|
+
return "";
|
|
136
|
+
const count = seen.get(base) ?? 0;
|
|
137
|
+
const slug = count === 0 ? base : `${base}-${count}`;
|
|
138
|
+
seen.set(base, count + 1);
|
|
139
|
+
return slug;
|
|
140
|
+
}
|
|
141
|
+
// ---------------------------------------------------------------------------
|
|
142
|
+
// SlugAllocator
|
|
143
|
+
// ---------------------------------------------------------------------------
|
|
144
|
+
/**
|
|
145
|
+
* Strategy-aware slug allocator for a single document.
|
|
146
|
+
*
|
|
147
|
+
* Mirrors Rust `SlugAllocator` in heading_links.rs:70-118.
|
|
148
|
+
*
|
|
149
|
+
* @param strategy `"flat"` (default) — per-document dedup counter, mirrors
|
|
150
|
+
* github-slugger numbering. `"hierarchical"` — each slug is prefixed with
|
|
151
|
+
* its ancestor chain and deduped on the full candidate path.
|
|
152
|
+
*
|
|
153
|
+
* Depth contract: callers pass `depth` values 2–6 (h2–h6). h1 is never
|
|
154
|
+
* allocated — it is handled by the page layout, not the markdown body.
|
|
155
|
+
*/
|
|
156
|
+
export class SlugAllocator {
|
|
157
|
+
strategy;
|
|
158
|
+
seen;
|
|
159
|
+
/** Hierarchical ancestor stack of `[depth, finalId]` pairs. Unused in flat mode. */
|
|
160
|
+
stack;
|
|
161
|
+
constructor(strategy = "flat") {
|
|
162
|
+
this.strategy = strategy;
|
|
163
|
+
this.seen = new Map();
|
|
164
|
+
this.stack = [];
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Allocate the slug for a heading of `depth` (2–6) whose slugified text
|
|
168
|
+
* is `base`. Returns `""` for an empty `base` without mutating state.
|
|
169
|
+
*/
|
|
170
|
+
allocate(depth, base) {
|
|
171
|
+
if (this.strategy === "flat") {
|
|
172
|
+
return nextSlug(this.seen, base);
|
|
173
|
+
}
|
|
174
|
+
// Hierarchical mode
|
|
175
|
+
if (base === "")
|
|
176
|
+
return "";
|
|
177
|
+
// Pop ancestors whose depth >= this heading's depth
|
|
178
|
+
let top = this.stack.at(-1);
|
|
179
|
+
while (top !== undefined && top[0] >= depth) {
|
|
180
|
+
this.stack.pop();
|
|
181
|
+
top = this.stack.at(-1);
|
|
182
|
+
}
|
|
183
|
+
const candidate = top !== undefined ? `${top[1]}-${base}` : base;
|
|
184
|
+
const slug = nextSlug(this.seen, candidate);
|
|
185
|
+
this.stack.push([depth, slug]);
|
|
186
|
+
return slug;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Clear all per-document state (dedup counters AND the hierarchical
|
|
190
|
+
* ancestor stack). Call between documents to avoid slug counter leakage.
|
|
191
|
+
*/
|
|
192
|
+
reset() {
|
|
193
|
+
this.seen.clear();
|
|
194
|
+
this.stack = [];
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=slugify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slugify.js","sourceRoot":"","sources":["../src/slugify.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -8,8 +8,11 @@
|
|
|
8
8
|
* `setTimeout(0)` on platforms without `requestIdleCallback`.
|
|
9
9
|
* - `"load"` — hydrate immediately and synchronously. Default when
|
|
10
10
|
* `when` is omitted.
|
|
11
|
+
* - `"media"` — hydrate when a CSS media query first matches (matchMedia).
|
|
12
|
+
* Requires the companion `media` prop on `<Island>`. Degrades to immediate
|
|
13
|
+
* hydration when `window.matchMedia` is unavailable.
|
|
11
14
|
*/
|
|
12
|
-
export type When = "visible" | "idle" | "load";
|
|
15
|
+
export type When = "visible" | "idle" | "load" | "media";
|
|
13
16
|
/** Public set of allowed `When` values, useful for runtime validation. */
|
|
14
17
|
export declare const WHEN_VALUES: readonly When[];
|
|
15
18
|
/** Default `when` strategy applied when `when` is omitted. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAMA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzD,0EAA0E;AAC1E,eAAO,MAAM,WAAW,EAAE,SAAS,IAAI,EAAyC,CAAC;AAEjF,8DAA8D;AAC9D,eAAO,MAAM,YAAY,EAAE,IAAa,CAAC;AAEzC,6BAA6B;AAC7B,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAEpD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAW/C"}
|
package/dist/types.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// hydration runtime (Sub 3) reads the same attribute and dispatches on the
|
|
5
5
|
// same set of strings. Keep these in sync; the unit tests pin the spelling.
|
|
6
6
|
/** Public set of allowed `When` values, useful for runtime validation. */
|
|
7
|
-
export const WHEN_VALUES = ["visible", "idle", "load"];
|
|
7
|
+
export const WHEN_VALUES = ["visible", "idle", "load", "media"];
|
|
8
8
|
/** Default `when` strategy applied when `when` is omitted. */
|
|
9
9
|
export const DEFAULT_WHEN = "load";
|
|
10
10
|
/** Type guard for `When`. */
|
|
@@ -26,7 +26,7 @@ export function resolveWhen(when) {
|
|
|
26
26
|
if (typeof process !== "undefined" && process.env && process.env["NODE_ENV"] !== "production") {
|
|
27
27
|
// eslint-disable-next-line no-console
|
|
28
28
|
console.warn(`[zfb] <Island when="${String(when)}"> is not a valid value. ` +
|
|
29
|
-
`Expected "visible" | "idle" | "load". Falling back to "${DEFAULT_WHEN}".`);
|
|
29
|
+
`Expected "visible" | "idle" | "load" | "media". Falling back to "${DEFAULT_WHEN}".`);
|
|
30
30
|
}
|
|
31
31
|
return DEFAULT_WHEN;
|
|
32
32
|
}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,wEAAwE;AACxE,2EAA2E;AAC3E,4EAA4E;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,wEAAwE;AACxE,2EAA2E;AAC3E,4EAA4E;AAkB5E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,WAAW,GAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjF,8DAA8D;AAC9D,MAAM,CAAC,MAAM,YAAY,GAAS,MAAM,CAAC;AAEzC,6BAA6B;AAC7B,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,WAAiC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IAC5C,IAAI,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,YAAY,EAAE,CAAC;QAC9F,sCAAsC;QACtC,OAAO,CAAC,IAAI,CACV,uBAAuB,MAAM,CAAC,IAAI,CAAC,2BAA2B;YAC5D,oEAAoE,YAAY,IAAI,CACvF,CAAC;IACJ,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@takazudo/zfb",
|
|
3
|
-
"version": "0.1.0-next.
|
|
3
|
+
"version": "0.1.0-next.39",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Rust-built static-site engine for Astro and Next.js users — millisecond rebuilds, single binary. SDK with islands, content collections, pagination, and config helpers.",
|
|
@@ -57,6 +57,10 @@
|
|
|
57
57
|
"types": "./dist/frontmatter.d.ts",
|
|
58
58
|
"default": "./dist/frontmatter.js"
|
|
59
59
|
},
|
|
60
|
+
"./slugify": {
|
|
61
|
+
"types": "./dist/slugify.d.ts",
|
|
62
|
+
"default": "./dist/slugify.js"
|
|
63
|
+
},
|
|
60
64
|
"./package.json": "./package.json"
|
|
61
65
|
},
|
|
62
66
|
"bin": {
|
|
@@ -70,11 +74,11 @@
|
|
|
70
74
|
"LICENSE"
|
|
71
75
|
],
|
|
72
76
|
"optionalDependencies": {
|
|
73
|
-
"@takazudo/zfb-darwin-arm64": "0.1.0-next.
|
|
74
|
-
"@takazudo/zfb-darwin-x64": "0.1.0-next.
|
|
75
|
-
"@takazudo/zfb-linux-arm64-gnu": "0.1.0-next.
|
|
76
|
-
"@takazudo/zfb-linux-x64-gnu": "0.1.0-next.
|
|
77
|
-
"@takazudo/zfb-win32-x64-msvc": "0.1.0-next.
|
|
77
|
+
"@takazudo/zfb-darwin-arm64": "0.1.0-next.39",
|
|
78
|
+
"@takazudo/zfb-darwin-x64": "0.1.0-next.39",
|
|
79
|
+
"@takazudo/zfb-linux-arm64-gnu": "0.1.0-next.39",
|
|
80
|
+
"@takazudo/zfb-linux-x64-gnu": "0.1.0-next.39",
|
|
81
|
+
"@takazudo/zfb-win32-x64-msvc": "0.1.0-next.39"
|
|
78
82
|
},
|
|
79
83
|
"publishConfig": {
|
|
80
84
|
"access": "public"
|
|
@@ -87,13 +91,14 @@
|
|
|
87
91
|
"@types/node": "^22.0.0",
|
|
88
92
|
"@types/react": "^19.0.0",
|
|
89
93
|
"happy-dom": "^15.7.4",
|
|
94
|
+
"preact": "^10.29.0",
|
|
90
95
|
"react": "^19.2.3",
|
|
91
96
|
"typescript": "^5.9.0",
|
|
92
97
|
"vitest": "^2.1.9"
|
|
93
98
|
},
|
|
94
99
|
"scripts": {
|
|
95
100
|
"build": "tsc",
|
|
96
|
-
"test": "vitest run",
|
|
101
|
+
"test": "vitest run && tsc -p tsconfig.preact-fixture.json",
|
|
97
102
|
"test:watch": "vitest",
|
|
98
103
|
"typecheck": "tsc --noEmit"
|
|
99
104
|
}
|