@takazudo/zudo-doc 3.3.0 → 4.0.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 +32 -0
- package/README.md +2 -2
- package/bin/tag-cli-config.ts +126 -0
- package/bin/tags-audit-runner.ts +60 -76
- package/bin/tags-audit.mjs +17 -36
- package/bin/tags-suggest-runner.ts +429 -0
- package/bin/tags-suggest.mjs +30 -0
- package/bin/zudo-doc.mjs +78 -25
- package/dist/breadcrumb/breadcrumb.d.ts +4 -4
- package/dist/breadcrumb/find-path.d.ts +2 -2
- package/dist/breadcrumb/index.d.ts +1 -1
- package/dist/breadcrumb/types.d.ts +0 -5
- package/dist/chrome/derive.d.ts +16 -10
- package/dist/chrome/derive.js +53 -4
- package/dist/chrome/index.d.ts +13 -10
- package/dist/chrome/index.js +12 -6
- package/dist/chrome/primary-slots.d.ts +21 -0
- package/dist/chrome/primary-slots.js +59 -0
- package/dist/chrome-bindings.d.ts +68 -0
- package/dist/code-syntax/code-block-enhancer-script.d.ts +4 -0
- package/dist/code-syntax/code-block-enhancer-script.js +7 -4
- package/dist/code-syntax/code-block-enhancer.d.ts +2 -2
- package/dist/code-syntax/code-block-enhancer.js +1 -3
- package/dist/code-syntax/index.d.ts +5 -5
- package/dist/code-syntax/index.js +4 -13
- package/dist/code-syntax/mermaid-init-script.d.ts +1 -22
- package/dist/code-syntax/mermaid-init-script.js +0 -2
- package/dist/code-syntax/mermaid-init.d.ts +0 -1
- package/dist/code-syntax/mermaid-init.js +3 -4
- package/dist/code-syntax/tabs-init.d.ts +0 -1
- package/dist/code-syntax/tabs-init.js +1 -3
- package/dist/code-syntax/tabs.d.ts +0 -1
- package/dist/code-syntax/tabs.js +1 -3
- package/dist/color-scheme-utils.d.ts +71 -3
- package/dist/color-scheme-utils.js +137 -0
- package/dist/color-schemes-defaults/index.js +13 -0
- package/dist/config.d.ts +28 -12
- package/dist/config.js +11 -2
- package/dist/content/component-map.d.ts +0 -16
- package/dist/content/component-map.js +2 -4
- package/dist/content/index.d.ts +1 -1
- package/dist/content/index.js +2 -3
- package/dist/content.css +1 -1
- package/dist/design-token-panel-bootstrap.d.ts +45 -40
- package/dist/design-token-panel-bootstrap.js +98 -21
- package/dist/design-token-panel-config/index.js +1 -4
- package/dist/doc-body-end-islands/design-token-panel-island.d.ts +15 -0
- package/dist/doc-body-end-islands/design-token-panel-island.js +31 -0
- package/dist/doc-body-end-islands/index.d.ts +39 -17
- package/dist/doc-body-end-islands/index.js +13 -21
- package/dist/doc-body-end-islands/theme-pack-switcher-island.d.ts +37 -0
- package/dist/doc-body-end-islands/theme-pack-switcher-island.js +18 -0
- package/dist/doc-content-header/index.js +1 -1
- package/dist/doc-history-area/index.d.ts +10 -4
- package/dist/doc-history-area/index.js +3 -2
- package/dist/doc-metainfo-area/index.d.ts +1 -0
- package/dist/doc-page-props/index.d.ts +7 -23
- package/dist/doc-page-renderer/index.d.ts +1 -0
- package/dist/doc-page-renderer/index.js +1 -0
- package/dist/doc-page-shell/index.js +19 -12
- package/dist/doc-pager/index.js +1 -1
- package/dist/doc-route-entries/index.d.ts +2 -2
- package/dist/doclayout/doc-layout-with-defaults.js +4 -4
- package/dist/doclayout/doc-layout.d.ts +8 -0
- package/dist/doclayout/doc-layout.js +10 -1
- package/dist/docs-schema/index.js +1 -5
- package/dist/eject/index.d.ts +16 -0
- package/dist/eject/index.js +122 -28
- package/dist/extract-headings/index.d.ts +5 -8
- package/dist/extract-headings/index.js +2 -9
- package/dist/factory-context/index.d.ts +42 -4
- package/dist/features.css +55 -43
- package/dist/footer/footer.js +1 -0
- package/dist/head-with-defaults/index.d.ts +2 -0
- package/dist/head-with-defaults/index.js +16 -0
- package/dist/header/header.d.ts +10 -5
- package/dist/header/header.js +45 -5
- package/dist/header/index.d.ts +1 -1
- package/dist/header/types.d.ts +30 -1
- package/dist/header-with-defaults/index.js +1 -0
- package/dist/home-page/index.d.ts +2 -0
- package/dist/home-page/index.js +11 -5
- package/dist/home-page/prepare-home-data.js +1 -1
- package/dist/locale-merge/index.d.ts +9 -14
- package/dist/locale-merge/index.js +6 -4
- package/dist/mdx-components/index.js +4 -4
- package/dist/plugins/claude-resources.d.ts +1 -0
- package/dist/plugins/claude-resources.js +4 -2
- package/dist/plugins/doc-history.js +1 -1
- package/dist/{integrations → plugins/internal}/claude-resources/index.d.ts +1 -16
- package/dist/{integrations → plugins/internal}/claude-resources/index.js +0 -9
- package/dist/{integrations → plugins/internal}/doc-history/index.d.ts +0 -17
- package/dist/{integrations → plugins/internal}/doc-history/index.js +0 -4
- package/dist/{integrations → plugins/internal}/doc-history/pre-build.d.ts +2 -4
- package/dist/plugins/internal/llms-txt/index.d.ts +7 -0
- package/dist/{integrations → plugins/internal}/llms-txt/load.d.ts +1 -1
- package/dist/{integrations → plugins/internal}/llms-txt/load.js +2 -2
- package/dist/{integrations → plugins/internal}/llms-txt/strip.d.ts +2 -3
- package/dist/{integrations → plugins/internal}/llms-txt/strip.js +1 -1
- package/dist/{integrations → plugins/internal}/llms-txt/types.d.ts +13 -22
- package/dist/{integrations → plugins/internal}/search-index/collect.js +1 -1
- package/dist/plugins/internal/theme-packs/copy.d.ts +32 -0
- package/dist/plugins/internal/theme-packs/copy.js +45 -0
- package/dist/plugins/internal/theme-packs/dev-middleware.d.ts +22 -0
- package/dist/plugins/internal/theme-packs/dev-middleware.js +80 -0
- package/dist/plugins/internal/theme-packs/index.d.ts +6 -0
- package/dist/plugins/internal/theme-packs/index.js +9 -0
- package/dist/plugins/internal/theme-packs/resolve.d.ts +17 -0
- package/dist/plugins/internal/theme-packs/resolve.js +17 -0
- package/dist/plugins/internal/theme-packs/types.d.ts +22 -0
- package/dist/plugins/internal/theme-packs/types.js +0 -0
- package/dist/plugins/llms-txt.js +1 -1
- package/dist/plugins/routes.js +11 -1
- package/dist/plugins/search-index.js +1 -1
- package/dist/plugins/theme-packs.d.ts +3 -0
- package/dist/plugins/theme-packs.js +40 -0
- package/dist/preset.d.ts +19 -14
- package/dist/preset.js +24 -9
- package/dist/route-context/index.js +4 -6
- package/dist/route-enumerators/index.d.ts +6 -18
- package/dist/route-enumerators/index.js +8 -6
- package/dist/routes/404.js +3 -1
- package/dist/routes/_chrome.js +2 -2
- package/dist/routes/_context.d.ts +7 -3
- package/dist/routes/_context.js +2 -0
- package/dist/routes/_docs-helpers.js +9 -21
- package/dist/safelist.css +1 -1
- package/dist/settings.d.ts +27 -12
- package/dist/sidebar-tree/build-tree.d.ts +3 -4
- package/dist/sidebar-tree/build-tree.js +4 -3
- package/dist/sidebar-tree/index.d.ts +2 -2
- package/dist/sidebar-tree/types.d.ts +6 -17
- package/dist/site-tree-nav-island/index.d.ts +3 -1
- package/dist/site-tree-nav-island/index.js +17 -5
- package/dist/site-tree-nav-island/state.d.ts +4 -0
- package/dist/site-tree-nav-island/state.js +10 -0
- package/dist/tag-helpers/index.d.ts +6 -13
- package/dist/tag-helpers/index.js +5 -23
- package/dist/tag-pages/index.d.ts +8 -21
- package/dist/tag-pages/index.js +14 -10
- package/dist/tags-audit.d.ts +16 -44
- package/dist/tags-audit.js +9 -172
- package/dist/theme/color-scheme-provider.d.ts +2 -3
- package/dist/theme/color-scheme-provider.js +2 -10
- package/dist/theme/index.d.ts +1 -4
- package/dist/theme/index.js +2 -30
- package/dist/theme/theme-pack-provider.d.ts +42 -0
- package/dist/theme/theme-pack-provider.js +75 -0
- package/dist/theme-cli/apply.d.ts +16 -0
- package/dist/theme-cli/apply.js +61 -0
- package/dist/theme-cli/config-io.d.ts +15 -0
- package/dist/theme-cli/config-io.js +51 -0
- package/dist/theme-cli/config-rewriter.d.ts +21 -0
- package/dist/theme-cli/config-rewriter.js +141 -0
- package/dist/theme-cli/config-scanner.d.ts +63 -0
- package/dist/theme-cli/config-scanner.js +288 -0
- package/dist/theme-cli/index.d.ts +7 -0
- package/dist/theme-cli/index.js +38 -0
- package/dist/theme-cli/list.d.ts +27 -0
- package/dist/theme-cli/list.js +64 -0
- package/dist/theme-cli/provenance.d.ts +17 -0
- package/dist/theme-cli/provenance.js +35 -0
- package/dist/theme-cli/registry.d.ts +14 -0
- package/dist/theme-cli/registry.js +13 -0
- package/dist/theme-pack-dialog/dialog-state.d.ts +25 -0
- package/dist/theme-pack-dialog/dialog-state.js +40 -0
- package/dist/theme-pack-dialog/index.d.ts +5 -0
- package/dist/theme-pack-dialog/index.js +152 -0
- package/dist/theme-pack-dialog/theme-pack-card.d.ts +25 -0
- package/dist/theme-pack-dialog/theme-pack-card.js +72 -0
- package/dist/theme-pack-switcher/index.d.ts +49 -0
- package/dist/theme-pack-switcher/index.js +205 -0
- package/dist/theme-pack-switcher/switcher-state.d.ts +56 -0
- package/dist/theme-pack-switcher/switcher-state.js +43 -0
- package/dist/theme-pack-switcher/theme-pack-sync.d.ts +85 -0
- package/dist/theme-pack-switcher/theme-pack-sync.js +121 -0
- package/dist/theme-packs/beacon/fonts/AtkinsonHyperlegible-400-latin.woff2 +0 -0
- package/dist/theme-packs/beacon/fonts/AtkinsonHyperlegible-700-latin.woff2 +0 -0
- package/dist/theme-packs/beacon/fonts/AtkinsonHyperlegible-italic-400-latin.woff2 +0 -0
- package/dist/theme-packs/beacon/fonts/AtkinsonHyperlegible-italic-700-latin.woff2 +0 -0
- package/dist/theme-packs/beacon/fonts/AtkinsonHyperlegibleMono-italic-latin.woff2 +0 -0
- package/dist/theme-packs/beacon/fonts/AtkinsonHyperlegibleMono-latin.woff2 +0 -0
- package/dist/theme-packs/beacon/fonts/OFL.txt +94 -0
- package/dist/theme-packs/beacon/meta.json +37 -0
- package/dist/theme-packs/beacon/pack.css +442 -0
- package/dist/theme-packs/broadsheet/fonts/CourierPrime-400-latin.woff2 +0 -0
- package/dist/theme-packs/broadsheet/fonts/CourierPrime-700-latin.woff2 +0 -0
- package/dist/theme-packs/broadsheet/fonts/OFL.txt +95 -0
- package/dist/theme-packs/broadsheet/fonts/PlayfairDisplay-italic-latin.woff2 +0 -0
- package/dist/theme-packs/broadsheet/fonts/PlayfairDisplay-latin.woff2 +0 -0
- package/dist/theme-packs/broadsheet/fonts/SourceSerif4-italic-latin.woff2 +0 -0
- package/dist/theme-packs/broadsheet/fonts/SourceSerif4-latin.woff2 +0 -0
- package/dist/theme-packs/broadsheet/meta.json +38 -0
- package/dist/theme-packs/broadsheet/pack.css +448 -0
- package/dist/theme-packs/brutalist/fonts/ArchivoBlack-latin.woff2 +0 -0
- package/dist/theme-packs/brutalist/fonts/IBMPlexMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/brutalist/fonts/IBMPlexMono-500-latin.woff2 +0 -0
- package/dist/theme-packs/brutalist/fonts/IBMPlexMono-700-latin.woff2 +0 -0
- package/dist/theme-packs/brutalist/fonts/OFL.txt +95 -0
- package/dist/theme-packs/brutalist/fonts/SpaceGrotesk-latin.woff2 +0 -0
- package/dist/theme-packs/brutalist/meta.json +38 -0
- package/dist/theme-packs/brutalist/pack.css +546 -0
- package/dist/theme-packs/default/meta.json +37 -0
- package/dist/theme-packs/drift/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
- package/dist/theme-packs/drift/fonts/IBMPlexMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/drift/fonts/IBMPlexMono-500-latin-ext.woff2 +0 -0
- package/dist/theme-packs/drift/fonts/IBMPlexMono-500-latin.woff2 +0 -0
- package/dist/theme-packs/drift/fonts/IBMPlexSans-italic-latin.woff2 +0 -0
- package/dist/theme-packs/drift/fonts/IBMPlexSans-latin-ext.woff2 +0 -0
- package/dist/theme-packs/drift/fonts/IBMPlexSans-latin.woff2 +0 -0
- package/dist/theme-packs/drift/fonts/OFL.txt +93 -0
- package/dist/theme-packs/drift/meta.json +37 -0
- package/dist/theme-packs/drift/pack.css +478 -0
- package/dist/theme-packs/fjord/fonts/Inter-latin-ext.woff2 +0 -0
- package/dist/theme-packs/fjord/fonts/Inter-latin.woff2 +0 -0
- package/dist/theme-packs/fjord/fonts/JetBrainsMono-latin-ext.woff2 +0 -0
- package/dist/theme-packs/fjord/fonts/JetBrainsMono-latin.woff2 +0 -0
- package/dist/theme-packs/fjord/fonts/OFL.txt +94 -0
- package/dist/theme-packs/fjord/meta.json +37 -0
- package/dist/theme-packs/fjord/pack.css +375 -0
- package/dist/theme-packs/foundry/fonts/Inter-latin-ext.woff2 +0 -0
- package/dist/theme-packs/foundry/fonts/Inter-latin.woff2 +0 -0
- package/dist/theme-packs/foundry/fonts/OFL.txt +93 -0
- package/dist/theme-packs/foundry/meta.json +37 -0
- package/dist/theme-packs/foundry/pack.css +202 -0
- package/dist/theme-packs/futura-editorial/fonts/Jost-latin.woff2 +0 -0
- package/dist/theme-packs/futura-editorial/fonts/NotoSans-italic-latin.woff2 +0 -0
- package/dist/theme-packs/futura-editorial/fonts/NotoSans-latin.woff2 +0 -0
- package/dist/theme-packs/futura-editorial/fonts/OFL.txt +95 -0
- package/dist/theme-packs/futura-editorial/fonts/SpaceMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/futura-editorial/fonts/SpaceMono-700-latin.woff2 +0 -0
- package/dist/theme-packs/futura-editorial/meta.json +38 -0
- package/dist/theme-packs/futura-editorial/pack.css +313 -0
- package/dist/theme-packs/hearth/fonts/Fraunces-italic-latin.woff2 +0 -0
- package/dist/theme-packs/hearth/fonts/Fraunces-latin.woff2 +0 -0
- package/dist/theme-packs/hearth/fonts/Nunito-latin.woff2 +0 -0
- package/dist/theme-packs/hearth/fonts/OFL.txt +95 -0
- package/dist/theme-packs/hearth/fonts/SplineSansMono-latin.woff2 +0 -0
- package/dist/theme-packs/hearth/meta.json +38 -0
- package/dist/theme-packs/hearth/pack.css +385 -0
- package/dist/theme-packs/hollow/fonts/OFL.txt +94 -0
- package/dist/theme-packs/hollow/fonts/SpaceGrotesk-latin.woff2 +0 -0
- package/dist/theme-packs/hollow/fonts/SpaceMono-400-italic-latin.woff2 +0 -0
- package/dist/theme-packs/hollow/fonts/SpaceMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/hollow/fonts/SpaceMono-700-latin.woff2 +0 -0
- package/dist/theme-packs/hollow/meta.json +37 -0
- package/dist/theme-packs/hollow/pack.css +428 -0
- package/dist/theme-packs/ledger/fonts/CrimsonPro-latin-ext-italic.woff2 +0 -0
- package/dist/theme-packs/ledger/fonts/CrimsonPro-latin-ext.woff2 +0 -0
- package/dist/theme-packs/ledger/fonts/CrimsonPro-latin-italic.woff2 +0 -0
- package/dist/theme-packs/ledger/fonts/CrimsonPro-latin.woff2 +0 -0
- package/dist/theme-packs/ledger/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
- package/dist/theme-packs/ledger/fonts/IBMPlexMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/ledger/fonts/IBMPlexMono-500-latin-ext.woff2 +0 -0
- package/dist/theme-packs/ledger/fonts/IBMPlexMono-500-latin.woff2 +0 -0
- package/dist/theme-packs/ledger/fonts/OFL.txt +94 -0
- package/dist/theme-packs/ledger/meta.json +37 -0
- package/dist/theme-packs/ledger/pack.css +463 -0
- package/dist/theme-packs/manuscript/fonts/CourierPrime-400-latin-ext.woff2 +0 -0
- package/dist/theme-packs/manuscript/fonts/CourierPrime-400-latin.woff2 +0 -0
- package/dist/theme-packs/manuscript/fonts/CourierPrime-700-latin-ext.woff2 +0 -0
- package/dist/theme-packs/manuscript/fonts/CourierPrime-700-latin.woff2 +0 -0
- package/dist/theme-packs/manuscript/fonts/EBGaramond-latin-italic.woff2 +0 -0
- package/dist/theme-packs/manuscript/fonts/EBGaramond-latin.woff2 +0 -0
- package/dist/theme-packs/manuscript/fonts/OFL.txt +94 -0
- package/dist/theme-packs/manuscript/meta.json +37 -0
- package/dist/theme-packs/manuscript/pack.css +376 -0
- package/dist/theme-packs/matcha/fonts/MPLUS1Code-latin.woff2 +0 -0
- package/dist/theme-packs/matcha/fonts/OFL.txt +95 -0
- package/dist/theme-packs/matcha/fonts/ShipporiMincho-500-latin.woff2 +0 -0
- package/dist/theme-packs/matcha/fonts/ShipporiMincho-700-latin.woff2 +0 -0
- package/dist/theme-packs/matcha/fonts/ZenKakuGothicNew-400-latin.woff2 +0 -0
- package/dist/theme-packs/matcha/fonts/ZenKakuGothicNew-500-latin.woff2 +0 -0
- package/dist/theme-packs/matcha/meta.json +38 -0
- package/dist/theme-packs/matcha/pack.css +409 -0
- package/dist/theme-packs/nocturne/fonts/CormorantGaramond-italic-latin.woff2 +0 -0
- package/dist/theme-packs/nocturne/fonts/CormorantGaramond-latin.woff2 +0 -0
- package/dist/theme-packs/nocturne/fonts/IBMPlexMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/nocturne/fonts/IBMPlexMono-500-latin.woff2 +0 -0
- package/dist/theme-packs/nocturne/fonts/IBMPlexMono-italic-latin.woff2 +0 -0
- package/dist/theme-packs/nocturne/fonts/Manrope-latin.woff2 +0 -0
- package/dist/theme-packs/nocturne/fonts/OFL.txt +95 -0
- package/dist/theme-packs/nocturne/meta.json +38 -0
- package/dist/theme-packs/nocturne/pack.css +502 -0
- package/dist/theme-packs/observatory/fonts/JosefinSans-latin.woff2 +0 -0
- package/dist/theme-packs/observatory/fonts/Jost-italic-latin.woff2 +0 -0
- package/dist/theme-packs/observatory/fonts/Jost-latin.woff2 +0 -0
- package/dist/theme-packs/observatory/fonts/OFL.txt +95 -0
- package/dist/theme-packs/observatory/fonts/SpaceMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/observatory/fonts/SpaceMono-700-latin.woff2 +0 -0
- package/dist/theme-packs/observatory/fonts/SpaceMono-italic-latin.woff2 +0 -0
- package/dist/theme-packs/observatory/meta.json +38 -0
- package/dist/theme-packs/observatory/pack.css +728 -0
- package/dist/theme-packs/onyx/fonts/CormorantGaramond-italic-latin.woff2 +0 -0
- package/dist/theme-packs/onyx/fonts/CormorantGaramond-latin.woff2 +0 -0
- package/dist/theme-packs/onyx/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
- package/dist/theme-packs/onyx/fonts/IBMPlexMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/onyx/fonts/IBMPlexMono-500-latin-ext.woff2 +0 -0
- package/dist/theme-packs/onyx/fonts/IBMPlexMono-500-latin.woff2 +0 -0
- package/dist/theme-packs/onyx/fonts/Jost-latin.woff2 +0 -0
- package/dist/theme-packs/onyx/fonts/OFL.txt +95 -0
- package/dist/theme-packs/onyx/meta.json +38 -0
- package/dist/theme-packs/onyx/pack.css +497 -0
- package/dist/theme-packs/phosphor/fonts/JetBrainsMono-latin-ext.woff2 +0 -0
- package/dist/theme-packs/phosphor/fonts/JetBrainsMono-latin.woff2 +0 -0
- package/dist/theme-packs/phosphor/fonts/OFL.txt +94 -0
- package/dist/theme-packs/phosphor/fonts/VT323-latin-ext.woff2 +0 -0
- package/dist/theme-packs/phosphor/fonts/VT323-latin.woff2 +0 -0
- package/dist/theme-packs/phosphor/meta.json +38 -0
- package/dist/theme-packs/phosphor/pack.css +493 -0
- package/dist/theme-packs/solar/fonts/OFL.txt +94 -0
- package/dist/theme-packs/solar/fonts/SourceCodePro-italic-latin.woff2 +0 -0
- package/dist/theme-packs/solar/fonts/SourceCodePro-latin.woff2 +0 -0
- package/dist/theme-packs/solar/fonts/SourceSans3-italic-latin.woff2 +0 -0
- package/dist/theme-packs/solar/fonts/SourceSans3-latin.woff2 +0 -0
- package/dist/theme-packs/solar/meta.json +37 -0
- package/dist/theme-packs/solar/pack.css +380 -0
- package/dist/theme-packs/sumi/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
- package/dist/theme-packs/sumi/fonts/IBMPlexMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/sumi/fonts/IBMPlexMono-500-latin-ext.woff2 +0 -0
- package/dist/theme-packs/sumi/fonts/IBMPlexMono-500-latin.woff2 +0 -0
- package/dist/theme-packs/sumi/fonts/OFL.txt +95 -0
- package/dist/theme-packs/sumi/fonts/ShipporiMinchoB1-600-latin.woff2 +0 -0
- package/dist/theme-packs/sumi/fonts/ShipporiMinchoB1-700-latin.woff2 +0 -0
- package/dist/theme-packs/sumi/fonts/ShipporiMinchoB1-800-latin.woff2 +0 -0
- package/dist/theme-packs/sumi/fonts/ZenKakuGothicNew-400-latin.woff2 +0 -0
- package/dist/theme-packs/sumi/fonts/ZenKakuGothicNew-500-latin.woff2 +0 -0
- package/dist/theme-packs/sumi/meta.json +38 -0
- package/dist/theme-packs/sumi/pack.css +502 -0
- package/dist/theme-packs/swissgrid/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
- package/dist/theme-packs/swissgrid/fonts/IBMPlexMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/swissgrid/fonts/IBMPlexMono-600-latin.woff2 +0 -0
- package/dist/theme-packs/swissgrid/fonts/Inter-latin-ext.woff2 +0 -0
- package/dist/theme-packs/swissgrid/fonts/Inter-latin.woff2 +0 -0
- package/dist/theme-packs/swissgrid/fonts/InterTight-latin.woff2 +0 -0
- package/dist/theme-packs/swissgrid/fonts/OFL.txt +95 -0
- package/dist/theme-packs/swissgrid/meta.json +38 -0
- package/dist/theme-packs/swissgrid/pack.css +518 -0
- package/dist/theme-packs/washi/fonts/MPlus1Code-400-latin.woff2 +0 -0
- package/dist/theme-packs/washi/fonts/MPlus1Code-500-latin.woff2 +0 -0
- package/dist/theme-packs/washi/fonts/OFL.txt +95 -0
- package/dist/theme-packs/washi/fonts/ShipporiMincho-500-latin.woff2 +0 -0
- package/dist/theme-packs/washi/fonts/ShipporiMincho-600-latin.woff2 +0 -0
- package/dist/theme-packs/washi/fonts/ShipporiMincho-700-latin.woff2 +0 -0
- package/dist/theme-packs/washi/fonts/ZenKakuGothicNew-400-latin.woff2 +0 -0
- package/dist/theme-packs/washi/fonts/ZenKakuGothicNew-500-latin.woff2 +0 -0
- package/dist/theme-packs/washi/fonts/ZenKakuGothicNew-700-latin.woff2 +0 -0
- package/dist/theme-packs/washi/meta.json +38 -0
- package/dist/theme-packs/washi/pack.css +479 -0
- package/dist/theme-packs-registry/index.d.ts +5 -0
- package/dist/theme-packs-registry/index.js +30 -0
- package/dist/theme-packs-registry/load-registry.d.ts +23 -0
- package/dist/theme-packs-registry/load-registry.js +64 -0
- package/dist/theme-packs-registry/meta-schema.d.ts +70 -0
- package/dist/theme-packs-registry/meta-schema.js +38 -0
- package/dist/theme-packs-registry/resolve-enabled-packs.d.ts +25 -0
- package/dist/theme-packs-registry/resolve-enabled-packs.js +43 -0
- package/dist/theme-packs-registry/token-manifest.d.ts +19 -0
- package/dist/theme-packs-registry/token-manifest.js +57 -0
- package/dist/theme-packs-registry/validator.d.ts +35 -0
- package/dist/theme-packs-registry/validator.js +284 -0
- package/dist/theme-toggle/color-scheme-sync.d.ts +2 -4
- package/dist/versions-page/index.d.ts +2 -2
- package/dist/versions-page/index.js +8 -8
- package/eject/breadcrumb/breadcrumb.tsx +4 -4
- package/eject/breadcrumb/find-path.ts +2 -2
- package/eject/breadcrumb/index.ts +1 -1
- package/eject/breadcrumb/types.ts +0 -6
- package/eject/code-group/index.tsx +2 -2
- package/eject/doc-history/index.tsx +1 -1
- package/eject/doc-pager/index.tsx +1 -1
- package/eject/footer/footer.tsx +1 -0
- package/eject/header/header.tsx +86 -21
- package/eject/header/index.ts +3 -0
- package/eject/header/types.ts +39 -1
- package/eject/site-tree-nav-island/index.tsx +15 -3
- package/eject/site-tree-nav-island/state.ts +9 -0
- package/eject/theme-toggle/color-scheme-sync.ts +2 -4
- package/package.json +35 -29
- package/routes-src/404.tsx +4 -1
- package/routes-src/_chrome.tsx +6 -5
- package/routes-src/_context.ts +4 -0
- package/routes-src/_docs-helpers.ts +9 -29
- package/routes-src/_virtual.d.ts +4 -0
- package/virtual-modules.d.ts +4 -0
- package/zfb-config-shim.d.ts +40 -18
- package/dist/integrations/llms-txt/index.d.ts +0 -33
- package/dist/theme/color-tweak-export-modal.d.ts +0 -16
- package/dist/theme/color-tweak-export-modal.js +0 -138
- package/dist/theme/design-token-serde.d.ts +0 -183
- package/dist/theme/design-token-serde.js +0 -346
- package/dist/theme/design-token-types.d.ts +0 -13
- package/dist/theme/design-token-types.js +0 -6
- package/dist/theme/iframe-bridge.d.ts +0 -42
- package/dist/theme/iframe-bridge.js +0 -72
- /package/dist/{integrations → plugins/internal}/claude-resources/escape-for-mdx.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/claude-resources/escape-for-mdx.js +0 -0
- /package/dist/{integrations → plugins/internal}/claude-resources/generate.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/claude-resources/generate.js +0 -0
- /package/dist/{integrations → plugins/internal}/doc-history/pre-build.js +0 -0
- /package/dist/{integrations → plugins/internal}/llms-txt/dev-middleware.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/llms-txt/dev-middleware.js +0 -0
- /package/dist/{integrations → plugins/internal}/llms-txt/emit.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/llms-txt/emit.js +0 -0
- /package/dist/{integrations → plugins/internal}/llms-txt/generate.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/llms-txt/generate.js +0 -0
- /package/dist/{integrations → plugins/internal}/llms-txt/index.js +0 -0
- /package/dist/{integrations → plugins/internal}/llms-txt/types.js +0 -0
- /package/dist/{integrations → plugins/internal}/search-index/build-emitter.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/search-index/build-emitter.js +0 -0
- /package/dist/{integrations → plugins/internal}/search-index/collect.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/search-index/dev-middleware.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/search-index/dev-middleware.js +0 -0
- /package/dist/{integrations → plugins/internal}/search-index/index.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/search-index/index.js +0 -0
- /package/dist/{integrations → plugins/internal}/search-index/types.d.ts +0 -0
- /package/dist/{integrations → plugins/internal}/search-index/types.js +0 -0
package/dist/preset.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* `zudoDocPreset()` returns the zfb config fragment that every zudo-doc
|
|
5
5
|
* project previously hand-wrote in its `zfb.config.ts` (collections loop,
|
|
6
|
-
* markdown.features,
|
|
6
|
+
* markdown.features, class-mode codeHighlight, resolveMarkdownLinks,
|
|
7
7
|
* stripMdExt, trailingSlash, minifyHtml, and the integration plugins array). The host
|
|
8
8
|
* config spreads this fragment into `defineConfig` and supplies only the
|
|
9
9
|
* project-specific shell fields it still owns (`framework`, `port`,
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
*/
|
|
35
35
|
import { z } from "zod";
|
|
36
36
|
import type { ColorScheme } from "./color-scheme-utils.js";
|
|
37
|
+
import type { TagVocabularyEntry } from "./settings.js";
|
|
37
38
|
/** A single locale's content directory (`settings.locales[code]`). */
|
|
38
39
|
export interface PresetLocaleConfig {
|
|
39
40
|
dir: string;
|
|
@@ -79,7 +80,6 @@ export interface PresetSettings {
|
|
|
79
80
|
minifyHtml?: boolean;
|
|
80
81
|
mermaid: boolean;
|
|
81
82
|
onBrokenMarkdownLinks: "warn" | "error" | "ignore";
|
|
82
|
-
headingIdStrategy: "flat" | "hierarchical";
|
|
83
83
|
llmsTxt?: boolean;
|
|
84
84
|
changelogs?: PresetChangelogConfig[] | false;
|
|
85
85
|
docHistory?: boolean;
|
|
@@ -121,6 +121,20 @@ export interface PresetSettings {
|
|
|
121
121
|
/** When `false`, disables zfb's CJK-friendly line-break behaviour.
|
|
122
122
|
* Absent means "use the engine default" (currently `true`). */
|
|
123
123
|
cjkFriendly?: boolean;
|
|
124
|
+
/**
|
|
125
|
+
* Active theme pack slug (ADR docs/adr/theme-packs.md, Decision 2/7).
|
|
126
|
+
* Threaded into the `@takazudo/zudo-doc/plugins/theme-packs` descriptor's
|
|
127
|
+
* options; the plugin's `setup()` validates it against the resolved
|
|
128
|
+
* registry and throws loudly on an unknown slug. Omit to use the package
|
|
129
|
+
* default (`"default"`).
|
|
130
|
+
*/
|
|
131
|
+
themePack?: string;
|
|
132
|
+
/**
|
|
133
|
+
* Enabled pack slugs, in switcher order (ADR Decision 7). `undefined` = all
|
|
134
|
+
* bundled packs. Threaded into the `@takazudo/zudo-doc/plugins/theme-packs`
|
|
135
|
+
* descriptor's options alongside `themePack`.
|
|
136
|
+
*/
|
|
137
|
+
themePacks?: string[];
|
|
124
138
|
}
|
|
125
139
|
/**
|
|
126
140
|
* The directives recipe map (`markdown.features.directives`): directive name →
|
|
@@ -143,16 +157,7 @@ export type PresetTranslations = Record<string, Record<string, string>>;
|
|
|
143
157
|
* data, threaded into the route-context virtual module when
|
|
144
158
|
* `packageOwnedRoutes` is on. Optional — only consumed by the routes plugin.
|
|
145
159
|
*/
|
|
146
|
-
export type PresetTagVocabularyEntry =
|
|
147
|
-
id: string;
|
|
148
|
-
label?: string;
|
|
149
|
-
description?: string;
|
|
150
|
-
group?: string;
|
|
151
|
-
aliases?: readonly string[];
|
|
152
|
-
deprecated?: boolean | {
|
|
153
|
-
redirect?: string;
|
|
154
|
-
};
|
|
155
|
-
};
|
|
160
|
+
export type PresetTagVocabularyEntry = TagVocabularyEntry;
|
|
156
161
|
/** Arguments to `zudoDocPreset`. */
|
|
157
162
|
export interface ZudoDocPresetArgs {
|
|
158
163
|
/** The project's `settings` object (structurally `PresetSettings`). */
|
|
@@ -216,8 +221,8 @@ export interface PresetMarkdown {
|
|
|
216
221
|
cjkFriendly?: boolean;
|
|
217
222
|
}
|
|
218
223
|
export interface PresetCodeHighlight {
|
|
219
|
-
|
|
220
|
-
|
|
224
|
+
mode: "class";
|
|
225
|
+
defaultStylesheet: true;
|
|
221
226
|
}
|
|
222
227
|
/** The config fragment returned by {@link zudoDocPreset}. */
|
|
223
228
|
export interface ZudoDocPresetResult {
|
package/dist/preset.js
CHANGED
|
@@ -15,13 +15,12 @@ function zudoDocPreset({
|
|
|
15
15
|
features: buildMarkdownFeatures(settings, directiveVocabulary),
|
|
16
16
|
...settings.cjkFriendly !== void 0 ? { cjkFriendly: settings.cjkFriendly } : {}
|
|
17
17
|
},
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
//
|
|
21
|
-
// code follows the in-page light/dark switch with zero client JS.
|
|
18
|
+
// zfb class mode keeps renderer output semantic and delegates color to
|
|
19
|
+
// the package's --zfb-hi-* → --zd-syntax-* CSS adapter. Keep the upstream
|
|
20
|
+
// layered stylesheet enabled as the fallback beneath zudo's unlayered CSS.
|
|
22
21
|
codeHighlight: {
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
mode: "class",
|
|
23
|
+
defaultStylesheet: true
|
|
25
24
|
},
|
|
26
25
|
resolveMarkdownLinks: buildResolveMarkdownLinks(settings),
|
|
27
26
|
// Strip `.md` / `.mdx` from in-page `<a href>` so author-written
|
|
@@ -105,9 +104,9 @@ function buildMarkdownFeatures(settings, directiveVocabulary) {
|
|
|
105
104
|
imageDimensions: {},
|
|
106
105
|
// warn-only: failOnBroken=false never fails the build.
|
|
107
106
|
linkValidation: { failOnBroken: false },
|
|
108
|
-
//
|
|
109
|
-
//
|
|
110
|
-
headingIds: { strategy:
|
|
107
|
+
// Hierarchical heading IDs are zudo-doc's sole contract. The host TOC
|
|
108
|
+
// builder mirrors the same allocator so anchors match the rendered IDs.
|
|
109
|
+
headingIds: { strategy: "hierarchical" }
|
|
111
110
|
};
|
|
112
111
|
}
|
|
113
112
|
function buildPlugins(settings, routeContext) {
|
|
@@ -195,6 +194,22 @@ function buildPlugins(settings, routeContext) {
|
|
|
195
194
|
base: settings.base
|
|
196
195
|
}
|
|
197
196
|
},
|
|
197
|
+
// Theme packs (ADR docs/adr/theme-packs.md, Decision 2, #2820) — a
|
|
198
|
+
// bare-specifier descriptor, added UNCONDITIONALLY like search-index
|
|
199
|
+
// above (never an imported plugin function, keeping this preset's
|
|
200
|
+
// node-free eval-graph guard green). The plugin internally no-ops
|
|
201
|
+
// (postBuild/devMiddleware write/serve nothing) when the resolved
|
|
202
|
+
// enabled set has no CSS-bearing pack (i.e. only "default" is enabled),
|
|
203
|
+
// so an unconfigured project pays no asset cost beyond the bundled
|
|
204
|
+
// registry scan at plugin setup.
|
|
205
|
+
{
|
|
206
|
+
name: "@takazudo/zudo-doc/plugins/theme-packs",
|
|
207
|
+
options: {
|
|
208
|
+
base: settings.base,
|
|
209
|
+
themePack: settings.themePack,
|
|
210
|
+
themePacks: settings.themePacks
|
|
211
|
+
}
|
|
212
|
+
},
|
|
198
213
|
...settings.llmsTxt ? [
|
|
199
214
|
{
|
|
200
215
|
name: "@takazudo/zudo-doc/plugins/llms-txt",
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { makeUrlHelpers } from "../url-helpers/index.js";
|
|
2
|
-
import { loadCategoryMeta } from "../sidebar-tree/index.js";
|
|
3
2
|
import { extractHeadings as extractHeadingsBase } from "../extract-headings/index.js";
|
|
4
3
|
import { toRouteSlug, toSlugParams } from "../slug/index.js";
|
|
5
4
|
import { resolveTag } from "../tag-helpers/index.js";
|
|
@@ -8,7 +7,6 @@ import {
|
|
|
8
7
|
getNavSectionForSlug as getNavSectionForSlugBase,
|
|
9
8
|
getNavSubtree as getNavSubtreeBase
|
|
10
9
|
} from "../nav-scope/index.js";
|
|
11
|
-
import { mergeLocaleDocs } from "../locale-merge/index.js";
|
|
12
10
|
import {
|
|
13
11
|
createNavSourceDocs
|
|
14
12
|
} from "../nav-source-docs/index.js";
|
|
@@ -33,6 +31,7 @@ function createRouteContext(payload, options = {}) {
|
|
|
33
31
|
const translations = payload.translations;
|
|
34
32
|
const tagVocabulary = payload.tagVocabulary;
|
|
35
33
|
const colorSchemes = payload.colorSchemes;
|
|
34
|
+
const themePackRegistry = payload.themePackRegistry ?? null;
|
|
36
35
|
const stableDocs = options.stableDocs ?? defaultStableDocs;
|
|
37
36
|
const defaultLocale = settings.defaultLocale;
|
|
38
37
|
const locales = [
|
|
@@ -64,8 +63,7 @@ function createRouteContext(payload, options = {}) {
|
|
|
64
63
|
function extractHeadings(body) {
|
|
65
64
|
return extractHeadingsBase(body, {
|
|
66
65
|
tocMinDepth: settings.tocMinDepth,
|
|
67
|
-
tocMaxDepth: settings.tocMaxDepth
|
|
68
|
-
strategy: settings.headingIdStrategy
|
|
66
|
+
tocMaxDepth: settings.tocMaxDepth
|
|
69
67
|
});
|
|
70
68
|
}
|
|
71
69
|
function getVocab() {
|
|
@@ -78,11 +76,10 @@ function createRouteContext(payload, options = {}) {
|
|
|
78
76
|
const tagMap = /* @__PURE__ */ new Map();
|
|
79
77
|
for (const entry of entries) {
|
|
80
78
|
const rawTags = entry.data.tags ?? [];
|
|
81
|
-
const slug = slugFn(entry.
|
|
79
|
+
const slug = slugFn(entry.slug, entry.data);
|
|
82
80
|
const seen = /* @__PURE__ */ new Set();
|
|
83
81
|
for (const raw of rawTags) {
|
|
84
82
|
const resolved = resolveTagBound(raw);
|
|
85
|
-
if (resolved.deprecated) continue;
|
|
86
83
|
if (seen.has(resolved.canonical)) continue;
|
|
87
84
|
seen.add(resolved.canonical);
|
|
88
85
|
if (!tagMap.has(resolved.canonical)) {
|
|
@@ -106,6 +103,7 @@ function createRouteContext(payload, options = {}) {
|
|
|
106
103
|
const base = {
|
|
107
104
|
settings,
|
|
108
105
|
colorSchemes,
|
|
106
|
+
themePackRegistry,
|
|
109
107
|
i18n,
|
|
110
108
|
defaultLocale,
|
|
111
109
|
locales,
|
|
@@ -3,20 +3,8 @@ import type { DocPageEntry, DocNavNode } from "../doc-page-props/index.js";
|
|
|
3
3
|
import type { CategoryMeta } from "../sidebar-tree/index.js";
|
|
4
4
|
import type { Settings } from "../settings.js";
|
|
5
5
|
export type { DocPageEntry, DocNavNode, NavSourceDocs };
|
|
6
|
-
/**
|
|
7
|
-
|
|
8
|
-
*/
|
|
9
|
-
export interface DocsEntryForTags {
|
|
10
|
-
id: string;
|
|
11
|
-
data: {
|
|
12
|
-
slug?: string;
|
|
13
|
-
draft?: boolean;
|
|
14
|
-
unlisted?: boolean;
|
|
15
|
-
category_no_page?: boolean;
|
|
16
|
-
tags?: string[];
|
|
17
|
-
[key: string]: unknown;
|
|
18
|
-
};
|
|
19
|
-
}
|
|
6
|
+
/** Current zfb docs entry used by tag enumeration. */
|
|
7
|
+
export type DocsEntryForTags = DocPageEntry;
|
|
20
8
|
/**
|
|
21
9
|
* Minimal version config shape needed for route enumeration.
|
|
22
10
|
*/
|
|
@@ -59,11 +47,11 @@ export interface RouteEnumeratorsContext {
|
|
|
59
47
|
/** Returns true for paths that are only shown in the default locale. */
|
|
60
48
|
isDefaultLocaleOnlyPath: (path: string) => boolean;
|
|
61
49
|
/** Aggregate a `tag → docs` index from a doc collection. */
|
|
62
|
-
collectTags: (docs: DocsEntryForTags[], slugFn: (
|
|
50
|
+
collectTags: (docs: DocsEntryForTags[], slugFn: (entrySlug: string, data: {
|
|
63
51
|
slug?: string;
|
|
64
52
|
}) => string) => Map<string, TagInfoForEnum>;
|
|
65
53
|
/** Convert a content entry slug to a canonical route slug. */
|
|
66
|
-
toRouteSlug: (
|
|
54
|
+
toRouteSlug: (entrySlug: string) => string;
|
|
67
55
|
/** Build the nav tree for a locale (4-arg form with an explicit href builder). */
|
|
68
56
|
buildNavTree: (docs: DocPageEntry[], locale: string, categoryMeta: Map<string, CategoryMeta> | undefined, buildHref: (slug: string, locale: string) => string) => DocNavNode[];
|
|
69
57
|
/** Collect auto-generated index nodes. */
|
|
@@ -122,10 +110,10 @@ export interface RouteEnumeratorsAPI {
|
|
|
122
110
|
* import { docsUrl, versionedDocsUrl, withBase, isDefaultLocaleOnlyPath } from "@/utils/base";
|
|
123
111
|
* import { buildNavTree, collectAutoIndexNodes } from "@/utils/docs";
|
|
124
112
|
* import { collectTags } from "@/utils/tags";
|
|
125
|
-
* import { toRouteSlug } from "
|
|
113
|
+
* import { toRouteSlug } from "@takazudo/zudo-doc/slug";
|
|
126
114
|
* import { loadDocs } from "../_data";
|
|
127
115
|
* import { resolveNavSource, resolveVersionedLocaleSource } from "./_nav-source-docs";
|
|
128
|
-
* import { mergeLocaleDocs } from "
|
|
116
|
+
* import { mergeLocaleDocs } from "@takazudo/zudo-doc/locale-merge";
|
|
129
117
|
*
|
|
130
118
|
* export const {
|
|
131
119
|
* enumerateDocsRoutes,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { mergeLocaleDocs
|
|
1
|
+
import { mergeLocaleDocs } from "../locale-merge/index.js";
|
|
2
2
|
function createRouteEnumerators(ctx) {
|
|
3
3
|
const defaultLocale = ctx.defaultLocale;
|
|
4
4
|
const getLocaleKeys = () => Object.keys(ctx.settings.locales);
|
|
@@ -15,7 +15,6 @@ function createRouteEnumerators(ctx) {
|
|
|
15
15
|
const collectAutoIndexNodes = ctx.collectAutoIndexNodes;
|
|
16
16
|
const resolveNavSource = ctx.resolveNavSource;
|
|
17
17
|
const resolveVersionedLocaleSource = ctx.resolveVersionedLocaleSource;
|
|
18
|
-
const mergeLocaleDocs = mergeLocaleDocsImpl;
|
|
19
18
|
function enumerateDocsRoutes(locale) {
|
|
20
19
|
const urls = [];
|
|
21
20
|
const { docs: allDocs, navDocs, categoryMeta } = resolveNavSource(
|
|
@@ -26,7 +25,7 @@ function createRouteEnumerators(ctx) {
|
|
|
26
25
|
const tree = buildNavTree(navDocs, locale, categoryMeta);
|
|
27
26
|
for (const doc of allDocs) {
|
|
28
27
|
if (doc.data.category_no_page === true) continue;
|
|
29
|
-
urls.push(docsUrl(doc.data.slug ?? toRouteSlug(doc.
|
|
28
|
+
urls.push(docsUrl(doc.data.slug ?? toRouteSlug(doc.slug), locale));
|
|
30
29
|
}
|
|
31
30
|
for (const node of collectAutoIndexNodes(tree)) {
|
|
32
31
|
urls.push(docsUrl(node.slug, locale));
|
|
@@ -52,7 +51,10 @@ function createRouteEnumerators(ctx) {
|
|
|
52
51
|
});
|
|
53
52
|
docs = result.docs.filter((d) => !d.data.category_no_page);
|
|
54
53
|
}
|
|
55
|
-
const tagMap = collectTags(
|
|
54
|
+
const tagMap = collectTags(
|
|
55
|
+
docs,
|
|
56
|
+
(entrySlug, data) => data.slug ?? toRouteSlug(entrySlug)
|
|
57
|
+
);
|
|
56
58
|
for (const tag of tagMap.keys()) {
|
|
57
59
|
const encoded = encodeURIComponent(tag);
|
|
58
60
|
const tagPath = locale === defaultLocale ? `/docs/tags/${encoded}` : `/${locale}/docs/tags/${encoded}`;
|
|
@@ -70,7 +72,7 @@ function createRouteEnumerators(ctx) {
|
|
|
70
72
|
const tree = buildNavTree(navDocs, defaultLocale, categoryMeta);
|
|
71
73
|
for (const doc of allDocs) {
|
|
72
74
|
if (doc.data.category_no_page === true) continue;
|
|
73
|
-
const slug = doc.data.slug ?? toRouteSlug(doc.
|
|
75
|
+
const slug = doc.data.slug ?? toRouteSlug(doc.slug);
|
|
74
76
|
urls.push(versionedDocsUrl(slug, version.slug));
|
|
75
77
|
}
|
|
76
78
|
for (const node of collectAutoIndexNodes(tree)) {
|
|
@@ -88,7 +90,7 @@ function createRouteEnumerators(ctx) {
|
|
|
88
90
|
const tree = buildNavTree(navDocs, locale, categoryMeta);
|
|
89
91
|
for (const doc of allDocs) {
|
|
90
92
|
if (doc.data.category_no_page === true) continue;
|
|
91
|
-
const slug = doc.data.slug ?? toRouteSlug(doc.
|
|
93
|
+
const slug = doc.data.slug ?? toRouteSlug(doc.slug);
|
|
92
94
|
urls.push(versionedDocsUrl(slug, version.slug, locale));
|
|
93
95
|
}
|
|
94
96
|
for (const node of collectAutoIndexNodes(tree)) {
|
package/dist/routes/404.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Fragment, jsx, jsxs } from "preact/jsx-runtime";
|
|
2
2
|
import { DocLayoutWithDefaults } from "../doclayout/index.js";
|
|
3
|
-
import {
|
|
3
|
+
import { resolveThemePackSsrSlug } from "../theme/theme-pack-provider.js";
|
|
4
|
+
import { settings, defaultLocale, withBase, themePackRegistry } from "./_context.js";
|
|
4
5
|
import {
|
|
5
6
|
HeadWithDefaults,
|
|
6
7
|
HeaderWithDefaults,
|
|
@@ -18,6 +19,7 @@ function NotFoundPage() {
|
|
|
18
19
|
title: composeMetaTitle(title),
|
|
19
20
|
head: /* @__PURE__ */ jsx(HeadWithDefaults, { title }),
|
|
20
21
|
lang: locale,
|
|
22
|
+
dataThemePack: resolveThemePackSsrSlug(themePackRegistry, settings),
|
|
21
23
|
noindex: true,
|
|
22
24
|
hideSidebar: true,
|
|
23
25
|
hideToc: true,
|
package/dist/routes/_chrome.js
CHANGED
|
@@ -4,8 +4,8 @@ import { DocHistory } from "../doc-history/index.js";
|
|
|
4
4
|
import { defineChromeBindings } from "@takazudo/zudo-doc/chrome-bindings";
|
|
5
5
|
import { chromeBindings } from "virtual:zudo-doc-chrome-bindings";
|
|
6
6
|
const chrome = createChrome(routeCtx, {
|
|
7
|
-
...
|
|
8
|
-
...
|
|
7
|
+
...chromeBindings,
|
|
8
|
+
...defineChromeBindings({ DocHistory })
|
|
9
9
|
});
|
|
10
10
|
const {
|
|
11
11
|
composeMetaTitle,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Settings } from "../settings.js";
|
|
2
2
|
import type { ColorScheme } from "../color-scheme-utils.js";
|
|
3
|
+
import type { ThemePackRegistry } from "../theme-packs-registry/index.js";
|
|
3
4
|
import { type RouteContextPayload } from "../route-context/index.js";
|
|
4
5
|
export type { RouteContextPayload, TagInfo } from "../route-context/index.js";
|
|
5
6
|
/** The serializable route-context payload (from the virtual module). */
|
|
@@ -10,19 +11,22 @@ export declare const settings: Settings;
|
|
|
10
11
|
/** Host color-scheme palette map. `null` when not supplied — `_chrome.tsx`
|
|
11
12
|
* falls back to `DEFAULT_SCHEME` in that case. */
|
|
12
13
|
export declare const colorSchemes: Record<string, ColorScheme> | null;
|
|
14
|
+
/** Resolved, enabled, ordered theme-pack registry. `null` when the routes
|
|
15
|
+
* plugin did not thread one (ADR `docs/adr/theme-packs.md`, Decision 2). */
|
|
16
|
+
export declare const themePackRegistry: ThemePackRegistry | null;
|
|
13
17
|
export declare const i18n: import("../factory-context/index.js").FactoryI18n, defaultLocale: string, locales: readonly string[], getLocaleConfig: (locale: string) => {
|
|
14
18
|
label: string;
|
|
15
19
|
dir: string;
|
|
16
20
|
} | undefined, getLocaleLabel: (locale: string) => string, t: (key: string, locale?: string) => string, urlHelpers: import("../url-helpers/index.js").UrlHelpers, withBase: (path: string) => string, stripBase: (path: string) => string, docsUrl: (slug: string, lang?: string) => string, versionedDocsUrl: (slug: string, versionSlug: string, lang?: string) => string, navHref: (path: string, lang: string | undefined, currentVersion: string | undefined) => string, isDefaultLocaleOnlyPath: (path: string) => boolean, absoluteUrl: (pageUrl: string) => string | undefined, isExternal: (href: string) => boolean, resolveHref: (href: string) => string, buildLocaleLinks: (currentPath: string, currentLang: string) => import("../url-helpers/index.js").LocaleLink[], getCategoryOrder: () => string[], getNavSectionForSlug: (slug: string) => string | undefined, getNavSubtree: (tree: import("./_docs-helpers.js").DocNavNode[], categoryMatch?: string) => import("./_docs-helpers.js").DocNavNode[], extractHeadings: (body: string) => import("../extract-headings/index.js").HeadingItem[], resolveTagBound: (raw: string) => import("../tag-helpers/index.js").ResolvedTag, collectTags: (entries: ReadonlyArray<{
|
|
17
|
-
|
|
21
|
+
slug: string;
|
|
18
22
|
data: {
|
|
19
23
|
slug?: string;
|
|
20
24
|
title?: string;
|
|
21
25
|
description?: string;
|
|
22
26
|
tags?: string[];
|
|
23
27
|
};
|
|
24
|
-
}>, slugFn: (
|
|
28
|
+
}>, slugFn: (entrySlug: string, data: {
|
|
25
29
|
slug?: string;
|
|
26
30
|
}) => string) => Map<string, import("./_context.js").TagInfo>, resolveNavSource: (lang: string, currentVersion: string | undefined, options?: import("../nav-source-docs/index.js").NavSourceOptions) => import("../nav-source-docs/index.js").NavSourceDocs, resolveVersionedLocaleSource: (versionSlug: string, versionDocsDir: string | undefined, lang: string, localeDir: string | undefined, options?: import("../nav-source-docs/index.js").NavSourceOptions) => import("../nav-source-docs/index.js").NavSourceDocs, loadNavSourceDocs: (lang: string, currentVersion: string | undefined) => import("../nav-source-docs/index.js").NavSourceDocs, buildDocRouteEntries: (args: import("../doc-route-entries/index.js").BuildDocRouteEntriesArgs) => import("../doc-route-entries/index.js").DocRouteEntry[], enumerateDocsRoutes: (locale: string) => string[], enumerateTagsRoutes: (locale: string) => string[], enumerateVersionedRoutes: (version: import("../route-enumerators/index.js").VersionConfigForEnum, locale: string) => string[], enumerateAllRoutes: () => Map<string, string>, buildNavTree: (docs: import("./_docs-helpers.js").DocPageEntry[], locale: string, categoryMeta: Map<string, import("./_docs-helpers.js").CategoryMeta> | undefined, buildHref: import("../factory-context/index.js").RouteHrefBuilder, options?: {
|
|
27
31
|
buildHref?: import("../factory-context/index.js").RouteHrefBuilder;
|
|
28
|
-
}) => import("./_docs-helpers.js").DocNavNode[], groupSatelliteNodes: (tree: import("./_docs-helpers.js").DocNavNode[], prefixes: string[]) => import("./_docs-helpers.js").DocNavNode[], findNode: (nodes: import("./_docs-helpers.js").DocNavNode[], slug: string) => import("./_docs-helpers.js").DocNavNode | undefined, firstRoutedHref: (node: import("./_docs-helpers.js").DocNavNode) => string | undefined, collectAutoIndexNodes: (nodes: import("./_docs-helpers.js").DocNavNode[]) => import("./_docs-helpers.js").DocNavNode[], isNavVisible: (doc: import("./_docs-helpers.js").DocPageEntry) => boolean, stableDocs: (collectionName: string) => import("./_docs-helpers.js").DocPageEntry[], toRouteSlug: (
|
|
32
|
+
}) => import("./_docs-helpers.js").DocNavNode[], groupSatelliteNodes: (tree: import("./_docs-helpers.js").DocNavNode[], prefixes: string[]) => import("./_docs-helpers.js").DocNavNode[], findNode: (nodes: import("./_docs-helpers.js").DocNavNode[], slug: string) => import("./_docs-helpers.js").DocNavNode | undefined, firstRoutedHref: (node: import("./_docs-helpers.js").DocNavNode) => string | undefined, collectAutoIndexNodes: (nodes: import("./_docs-helpers.js").DocNavNode[]) => import("./_docs-helpers.js").DocNavNode[], isNavVisible: (doc: import("./_docs-helpers.js").DocPageEntry) => boolean, stableDocs: (collectionName: string) => import("./_docs-helpers.js").DocPageEntry[], toRouteSlug: (entrySlug: string) => string, toSlugParams: (routeSlug: string) => string[];
|
package/dist/routes/_context.js
CHANGED
|
@@ -6,6 +6,7 @@ const ctx = routeContext;
|
|
|
6
6
|
const routeCtx = createRouteContext(ctx);
|
|
7
7
|
const settings = routeCtx.settings;
|
|
8
8
|
const colorSchemes = routeCtx.colorSchemes;
|
|
9
|
+
const themePackRegistry = routeCtx.themePackRegistry;
|
|
9
10
|
const {
|
|
10
11
|
i18n,
|
|
11
12
|
defaultLocale,
|
|
@@ -88,6 +89,7 @@ export {
|
|
|
88
89
|
stableDocs,
|
|
89
90
|
stripBase,
|
|
90
91
|
t,
|
|
92
|
+
themePackRegistry,
|
|
91
93
|
toRouteSlug,
|
|
92
94
|
toSlugParams,
|
|
93
95
|
urlHelpers,
|
|
@@ -9,29 +9,17 @@ import { toRouteSlug } from "../slug/index.js";
|
|
|
9
9
|
function snapshotAnchor(name) {
|
|
10
10
|
return getContentSnapshot()?.collections[name];
|
|
11
11
|
}
|
|
12
|
-
const
|
|
13
|
-
function
|
|
14
|
-
return
|
|
15
|
-
slug: e.slug,
|
|
16
|
-
id: toRouteSlug(e.slug),
|
|
17
|
-
collection: collectionName,
|
|
18
|
-
data: e.data,
|
|
19
|
-
body: e.body,
|
|
20
|
-
module_specifier: e.module_specifier,
|
|
21
|
-
Content: e.Content
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
function buildBridged(collectionName) {
|
|
25
|
-
const raw = getCollection(collectionName);
|
|
26
|
-
return raw.map((e) => bridgeEntry(e, collectionName)).filter((d) => !d.data.draft);
|
|
12
|
+
const docsByAnchor = /* @__PURE__ */ new WeakMap();
|
|
13
|
+
function buildDocs(collectionName) {
|
|
14
|
+
return getCollection(collectionName).filter((entry) => !entry.data.draft);
|
|
27
15
|
}
|
|
28
16
|
function stableDocs(collectionName) {
|
|
29
17
|
const anchor = snapshotAnchor(collectionName);
|
|
30
|
-
if (anchor === void 0) return
|
|
31
|
-
const cached =
|
|
18
|
+
if (anchor === void 0) return buildDocs(collectionName);
|
|
19
|
+
const cached = docsByAnchor.get(anchor);
|
|
32
20
|
if (cached) return cached;
|
|
33
|
-
const built =
|
|
34
|
-
|
|
21
|
+
const built = buildDocs(collectionName);
|
|
22
|
+
docsByAnchor.set(anchor, built);
|
|
35
23
|
return built;
|
|
36
24
|
}
|
|
37
25
|
function isNavVisible(doc) {
|
|
@@ -52,7 +40,7 @@ function toNavNode(node) {
|
|
|
52
40
|
function findRootIndexDoc(docs) {
|
|
53
41
|
let found;
|
|
54
42
|
for (const d of docs) {
|
|
55
|
-
const slug = d.data.slug ?? d.
|
|
43
|
+
const slug = d.data.slug ?? toRouteSlug(d.slug);
|
|
56
44
|
if (slug === "") found = d;
|
|
57
45
|
}
|
|
58
46
|
return found;
|
|
@@ -75,7 +63,7 @@ function toRootNavNode(doc, locale, buildHref, categoryMeta) {
|
|
|
75
63
|
function buildNavTree(docs, locale, categoryMeta, buildHref, options) {
|
|
76
64
|
const href = options?.buildHref ?? buildHref;
|
|
77
65
|
const sidebarTree = buildSidebarTree(
|
|
78
|
-
docs
|
|
66
|
+
docs,
|
|
79
67
|
locale,
|
|
80
68
|
{
|
|
81
69
|
categoryMeta,
|
package/dist/safelist.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* generated by gen-safelist.mjs — do not edit by hand */
|
|
2
|
-
@source inline("-link -mb-px -ml-hsp-sm -noscript -open -translate-x-full 2xl:w-[24px] [&::-webkit-details-marker]:hidden [&_a]:text-accent [&_a]:underline [&_nav]:mb-0 [data-admonition] [data-kbd-shortcut] [doc-history-meta] [doc-history] [doc-layout] [llms-txt] [zudo-doc] a a2 abbr about above absent absolute accent accent- accent:accent- across activated active actual added admonition admonition- admonition-body admonition-title admonition/callout after after-breadcrumb after-content after-navigate after-sidebar after-title against agent agents ai-chat ai-chat-md ai-chat-trigger alert align-top all allow-same-origin allow-scripts alone already already-executed already-multiline already-picked an anchor anchored and and/or animate-spin announce ansehen antialiased any anywhere anzeigen application/json application/xml applies apply-css-vars approach are area arg aria-atomic aria-busy aria-controls aria-current aria-disabled aria-expanded aria-haspopup aria-hidden aria-label aria-live aria-orientation aria-pressed aria-selected aria-valuemax aria-valuemin aria-valuenow arm arms array arrows article as asc aside aspect-[1200/630] aspect-square asset- assets assistant async at attach attribute attributes auf authored auto autogenerated available avoid await away b back backdrop:bg-bg/30 backdrop:bg-bg/80 backdrop:bg-overlay/60 backdrop:z-modal-backdrop background background-color backtick backticks baked banner bare base base- base64 base:base- based baseline batch be bearbeiten because been before below best between bg bg-[#fff] bg-accent bg-bg bg-chat-assistant-bg bg-chat-user-bg bg-code-bg bg-fg bg-info/10 bg-info/5 bg-muted bg-overlay/30 bg-surface bg-transparent bg-warning/10 bg-warning/5 bi bigint bin blank blanks blob block blockquote blocks blur body body-end-components body-end-scripts bold boolean bootstrap border border-accent border-b border-b-2 border-b-[5px] border-bg/30 border-collapse border-danger border-dashed border-fg border-info/30 border-l border-l-0 border-l-[3px] border-left-width border-muted border-none border-r border-radius border-solid border-t border-t-[2px] border-t-[3px] border-transparent border-warning/30 border-width border-y both bottom-vsp-xl boundaries box-border br brand breadcrumb:end breadcrumb:start break-words browser browsers btn bug build bundler but button buttons by bypassed byte-identical bytes cached call caller calls can cancellation cannot canonical canvas caption card card-grid carry cases cat-nav- catch category catppuccin-latte caught caution center center/contain ch chains change changed changelog changelogs changes checkbox child chrome ci circle cite class class-less claude claude-agents claude-commands claude-md claude-skills cleaned clear clear-css-vars clearing click client client-router client-side clip clobbering close closed closing code code-block-sr-announce code-group code-group-panel col col-resize colgroup collapses collision color color-scheme color-scheme-changed color-scheme-provider color-tweak colorization colors column comma command commands comment commit compare component component:github-link component:language-switcher component:search component:theme-toggle component:version-switcher compute computed concrete configuration configure configured confuse connect const construction consumer consumes container containers containing content content-admonition content-link content-type content-wrapper:end content-wrapper:start contents context controller controls converts copy corners correct correctly corrupt count covered covers cp crashes created cross-component crumb- cs css ctx cur current cursor-not-allowed cursor-pointer custom danger dark data data-active data-admonition data-base data-close-search data-current-locale data-default-locale data-find-active data-find-match data-group-id data-header data-header-logo data-header-nav data-header-right data-kbd-shortcut data-language-switcher data-loading-index data-mermaid-enlarge-ready data-mermaid-rendered data-mermaid-src data-nav-active data-nav-item data-nav-item-dropdown data-nav-more data-nav-more-menu data-nav-more-toggle data-no-results data-open-search data-pan-active data-processed data-result-count-template data-search-count data-search-count-narrow data-search-dialog data-search-input data-search-placeholder data-search-results data-search-unavailable data-sidebar-hidden data-sidebar-resizer data-site-nav data-tab-btn data-tab-default data-tab-label data-tab-value data-tabs data-taglist-group data-testid data-theme data-theme/style data-trailing-slash data-variant data-version-banner data-version-latest data-version-menu data-version-rewire data-version-slug data-version-switcher data-version-toggle data-version-trigger-label data-zd-nosidebar data-zd-toc data-zd-wide data-zfb-transition-persist dd decimal declare decoration decoration-muted default default-transition-duration defaults del delegated delete dependency depth der desc description design design-token design-token-panel design-token-trigger desktop desktop-sidebar desktop-sidebar-toggle desktop-sidebar-toggle-island destructive detach detached details detected deterministic develop dfn diagram diagrams dialog die dieser diff diff-line-added diff-line-content diff-line-empty diff-line-num diff-line-removed diff-row dir directly directories directory disabled disabled:opacity-50 disc display:none dist distinct div dl do doc doc-card- doc-content-band doc-history doc-history-generate doc-history-panel doc-history-trigger doc-page doc-pager doc-prose doc-title docs docs- docs-v- document document-level documentation documented does double-registration draft drag draggable drop dropdown dropdown-child dropdown-parent dropdowns dt duration-150 duration-200 during dynamically e2e each ease-in-out edge einer eject ejected el element elements els else em embedded emit emitting empty empty/undefined en enable end enlarged entire entities entries entry error escape escaped even eventually every exactly excerpt excludes existing exists exit expected export extends f factories failed faithful fall fallback fallbacks falling falls false family fast feature feed fg fields fieldset figcaption figure file fill fills finally find find-match find-match-active fire fires first fixed fixed-width fixtures flag flash flat flex flex-1 flex-col flex-wrap flip flipping flips flush-left focus focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2 focus-visible:underline focus:border-accent focus:outline-none focus:underline font font-bold font-family font-medium font-mono font-sans font-scale font-semibold font-size font-weight font-weight-bold font-weight-medium font-weight-normal font-weight-semibold footer footer- for form format found free fresh from frontmatter frontmatter-preview frozen fs-extra full fully function further g gap-[0.3em] gap-[clamp(1.5rem,3vw,4rem)] gap-hsp-2xs gap-hsp-md gap-hsp-sm gap-hsp-xl gap-hsp-xs gap-vsp-2xs gap-vsp-lg gap-vsp-md gap-vsp-xs gap-x-hsp-2xs gap-x-hsp-lg gap-x-hsp-md gap-x-hsp-sm gap-x-hsp-xs gap-y-vsp-2xs gap-y-vsp-lg gap-y-vsp-md gap-y-vsp-xs gaps gate geladen2026 generate generated generation genuine geometry get github github-dark github-link go got graph gray-matter grid grid-cols-1 grid-cols-2 group group-focus-visible:text-accent group-focus-visible:underline group-focus-within:block group-hover:bg-fg group-hover:block group-hover:text-accent group-hover:text-bg group-hover:underline group-open:rotate-90 guard h-[0.5rem] h-[0.625rem] h-[0.875rem] h-[1.125rem] h-[1.25rem] h-[1.575rem] h-[14px] h-[1em] h-[1lh] h-[2rem] h-[3.5rem] h-[3rem] h-[90vh] h-[calc(100%-3rem)] h-[calc(100vh-3.5rem)] h-dvh h-full h-icon-lg h-icon-md h-icon-sm h-icon-xs h1 h1s h2 h2s h3 h4 h5 h6 half hand hand-copied handle handled handler handlers has hash-link have head head-links head-scripts header header- header-call:end header-call:start heading heading-h2 heading-h3 heading-h4 headings height here hex hidden hierarchical highlight highlighter history hit horizontal host hover:bg-[color-mix(in_srgb,var(--color-surface)_80%,var(--color-fg)_20%)] hover:bg-accent-hover hover:bg-accent/10 hover:bg-surface hover:border-accent hover:border-accent-hover hover:border-fg hover:text-accent hover:text-accent-hover hover:text-fg hover:underline hr href hrefs hsp hsp-2xl hsp-2xs hsp-lg hsp-md hsp-sm hsp-xl hsp-xs html i i18n/theme. i2 i3 i4 icon icon-lg icon-md icon-sm icon-xs identical idle idx if iframe image image-enlarge image-overlay-inset image/png img implementation import important imports in inactive inbox includes index index2026 info inherit inherited initial initialised injected inline inline-block inline-flex inner input input-clear ins inset-0 inside install instance instanceof instead instructions intended intent into invalid inverse inversion invoke is issues it italic item item- items items-baseline items-center items-start its itself javascript justify-between justify-center justify-end justify-start katex kbd keep keeps kept keyboard keyboard-shortcut keydown keystroke keywords khroma kopieren label landing language-switcher last:border-b-0 later latest launch layout leading-normal leading-relaxed leading-snug leading-tight leaf- leak leaves left left-0 left:calc legend legitimate length letter-spacing lg lg:block lg:border lg:border-fg lg:border-solid lg:flex lg:flex-col lg:flex-row lg:gap-hsp-xl lg:grid-cols-[repeat(auto-fit,minmax(12rem,1fr))] lg:h-[90vh] lg:hidden lg:justify-start lg:m-auto lg:max-h-[90vh] lg:max-w-[52.5rem] lg:ml-[var(--zd-sidebar-w)] lg:pt-vsp-2xl lg:px-hsp-2xl lg:py-vsp-2xl lg:text-left lg:w-[90vw] lg:w-[clamp(16rem,25%,22rem)] li li2 library light like likely line line-height line/statement linger link link- links list-disc list-none listener literal literals lives llms llms-txt load local local-1 local-2 local-3 locale locales log longest-match look lostpointercapture lower luminance m m-0 m21 m6 main major make malformed malicious maps mark marks matches matching math math-display math-inline max max-h-[80vh] max-h-[85vh] max-h-[90vh] max-h-full max-h-none max-w-[46rem] max-w-[85%] max-w-[85vw] max-w-[90vw] max-w-[clamp(50rem,75vw,90rem)] max-w-full max-w-none max-width may mb-0 mb-vsp-2xs mb-vsp-lg mb-vsp-md mb-vsp-sm mb-vsp-xl mb-vsp-xs measures measuring mechanism menu merged mermaid message messages meta meta-knob metadata migration min-h-[60vh] min-h-[calc(100vh-3.5rem)] min-h-screen min-w-0 min-w-[10rem] min-w-[3rem] min-w-[8rem] minifier minor mirror mirrors missing mit ml-auto ml-hsp-2xl ml-hsp-lg ml-hsp-sm ml-hsp-xl mod modal modal-backdrop mode module monospace most mounted mouseenter mouseleave mr-hsp-sm ms mt-0 mt-vsp-2xl mt-vsp-2xs mt-vsp-3xs mt-vsp-lg mt-vsp-md mt-vsp-sm mt-vsp-xl must mutates mutation mutations muted mx-auto my-vsp-lg my-vsp-md name named native nav nav-active nav-card- nav/doc navigating navigation navigations near needs nested neutral new newly-swapped next nicht no no-enlarge no-op no-repeat no-underline noch node node:buffer node:fs node:fs/promises node:module node:path nodes nofollow noindex non-empty non-light-dark non-persisted none noopener noreferrer normal noscript not not-object notable note notes now null number numeric object object-contain observe observer occurred of off og:description og:image og:image:alt og:image:height og:image:width og:title og:type og:url oklch ol old older on once one only onto opacity-60 open open/close option or original other others out outline-none over overflow overflow-auto overflow-hidden overflow-x-auto overflow-y-auto overflow-y:auto overwrite own p p-0 p-hsp-lg p-hsp-md p-hsp-sm p-hsp-xl package package-owned packages padding page page-loading page-loading-overlay page-loading-spinner page-navigate-end page-title pages pages/. paint paint-and-read palette pan panel panels paren-balance-aware parent parse parsed pass passed passes patch path paths pattern pb-[50vh] pb-vsp-md pb-vsp-xl pb-vsp-xs per per-link permanently persisted pi pick picked picks picocolors pins pipelines pl-[1.25rem] pl-hsp-lg pl-hsp-sm pl-hsp-xl place placeholder placeholder:text-muted plain plural plus pnpm pointer-events-none pointercancel pointerdown pointermove pointerup polite polygon polyline popover populates port position position:fixed pr-[4px] pr-hsp-lg pr-hsp-md pr-hsp-sm pr-hsp-xl pre pre-lowercased preact preact/compat preact/hooks preact/jsx-runtime preconnect prefix preload pres preserving previously print produce produced produces production project project-root-relative properties property props prose provided proxy pt-[0.15rem] pt-[2px] pt-vsp-3xs pt-vsp-md pt-vsp-sm pt-vsp-xl pt-vsp-xs ptag- public purely px px-hsp-2xl px-hsp-2xs px-hsp-lg px-hsp-md px-hsp-sm px-hsp-xl px-hsp-xs py-0 py-[2px] py-[4px] py-[calc(var(--spacing-vsp-xs)+0.15rem)] py-hsp-2xs py-hsp-sm py-hsp-xs py-vsp-2xs py-vsp-3xs py-vsp-lg py-vsp-md py-vsp-sm py-vsp-xl py-vsp-xs q query question r radius radius-full radius-lg ramp range raw re-encode/decode re-querying re-render re-renders re-run re-running re-selects reach reached reaches read reading ready real real-value received receives recorded recovers redefine ref- references refetch refreshes regenerate regenerates regex reinit reinits relative release released reload relying rem remove removed render rendered renders reorder repaint repair repeated repeating replaced replaces repopulate repository requires reserved reset resize resize-x resolve resolved resolves response restore restores result result-click results results-area retry return returns revision revisions rewrite right right- right-0 ro robots role roles root rotate-180 rotate-90 round round-trip rounded rounded-[0.75rem] rounded-bl-[0.25rem] rounded-bl-[1rem] rounded-bl-lg rounded-br-[0.25rem] rounded-br-[1rem] rounded-full rounded-lg rounded-t-[1rem] rounds route router routes routes-src running runs runtime s safe safer same same-locale samp sans-serif scale scanned schema-mismatch schema-missing scheme scored script script- script-eval script-evaluation script-injection scripts scroll scrollbar scrolled scrollend search search-index section section- see sehen select select-none selection-bg selection-fg self self-start semantic semibold sentinel separator serialised serialize server server-rendered set sets setting setup shadow-[0_1px_3px_color-mix(in_srgb,var(--color-fg)_8%,transparent)] shadow-lg shadow-md shape share shared sharing shiki ship shipped ships short shortcut should show shown shrink-0 sidebar sidebar- sidebar-toggle-island sidebar-tree-island sidebar-w signal similarity single single-line singular site-search site-tree-nav-island sitemap- sites size skill skills skipping skips slash slug sm:border sm:border-muted sm:flex-row sm:grid-cols-2 sm:h-auto sm:items-center sm:justify-between sm:max-h-[80vh] sm:max-w-[52rem] sm:mx-auto sm:my-[10vh] sm:rounded-lg small smooth snapshot snapshots so soft soft-nav solid some somehow source sources space-y-vsp-2xs spacing spacing-0 spacing-px span spans spec specifier specifiers splitter square sr-only src stable stale standalone start state state- state:state- status stay staying sticky still stop stored stray strict string strings strip stripe stroke-linecap stroke-linejoin stroke-width strong stronger style style-attribute styled styles stylesheet sub subagents subsequent success successful summary sup surface surfaces survives svg swap swapped swaps synchronous synchronously syntactically syntect t tab tab-item tab-panel tabindex table tablist tabpanel tabs tabs-container tabs-content tabs-nav tag tag- tag-item- tagged tags tags:audit take tbody td temp-element template temporary temporary-element terminal terms test-results tested text text-accent text-bg text-body text-caption text-center text-chat-assistant-text text-chat-user-text text-code-fg text-danger text-decoration text-display text-fg text-fg/60 text-heading text-info text-left text-micro text-muted text-muted/50 text-right text-scale-2xl text-scale-2xs text-scale-lg text-scale-md text-scale-sm text-scale-xl text-scale-xs text-small text-title text-warning text/plain textarea tfoot th that the thead their them theme theme-color theme-toggle theme/token then there these they this through throw tighten time tip title to toast toc toggle toggle-ai-chat toggle-design-token-panel toggles token tokens tolerates too toolbar tooltip top-0 top-[3.5rem] top-full top-level total touches tp tr tracked tracking-wider trade-off transition transition-[background,color,border-color] transition-[left,color] transition-colors transition-transform translate-x-0 translated translations transparent treats tree tree-child- tree-item- tree-top- trigger trigger:ai-chat trigger:design-token-panel triggers true truncate truncated try turn twitter:card twitter:creator twitter:description twitter:image twitter:site twitter:title two type typography u ul umschalten unavailable unchanged und undefined under underline underlines understand unit-tested unknown unlisted unmaintained unobserve unreadable unrelated unreleased unset up up-to-date uppercase usage use used user uses utf-8 utf8 utilities utility v v1 v2 val valid value value-reader values var variable variant verbatim version version- version-menu version-switcher versions vertical via video viewing viewport virtual:zudo-doc-chrome-bindings virtual:zudo-doc-design-token-panel-config virtual:zudo-doc-route-context visible vitesse-dark vocabulary von vsp vsp-2xl vsp-2xs vsp-3xs vsp-lg vsp-md vsp-sm vsp-xl vsp-xs w w-1/2 w-48 w-[0.5rem] w-[0.625rem] w-[0.875rem] w-[1.125rem] w-[1.575rem] w-[1.5rem] w-[1.75rem] w-[14px] w-[16px] w-[16rem] w-[18px] w-[1em] w-[280px] w-[2rem] w-[320px] w-[90vw] w-[var(--zd-sidebar-w)] w-dvw w-full w-icon-lg w-icon-md w-icon-sm w-icon-xs want warn warning was watching wbr wbr- we website weight went were what when where whereas whether which while whitespace-nowrap whitespace-pre whole wide wide-gamut width will wird with without word working worktrees would wrap wrapper wrappers written wrong wrote wurde xl:flex xl:hidden y-scrollbar yet you your z-dropdown z-local-1 z-modal z-modal-backdrop z-sidebar z-toolbar zd-content zd-desktop-sidebar-toggle zd-doc-content-band zd-enlarge-btn zd-enlarge-dialog zd-enlarge-dialog-close zd-enlargeable zd-html-preview-code zd-mermaid-dialog zd-mermaid-enlargeable zd-mermaid-tool-btn zd-mermaid-toolbar zd-mermaid-transform zd-mermaid-viewport zd-sidebar-content-wrapper zd-sidebar-open zfb zfb:after-swap zfb:before-preparation zod zoom zudo-design-tokens/v3 zudo-doc zudo-doc-design-token-panel-modal zudo-doc-design-tokens zudo-doc-design-tokens/v1 zudo-doc-design-tokens/v2 zudo-doc-design-tokens/v3 zudo-doc-sidebar-visible zudo-doc-sidebar-width zudo-doc-theme zudo-doc-theme-bridge zudo-doc-tweak zum");
|
|
2
|
+
@source inline("-link -mb-px -ml-hsp-sm -noscript -open -translate-x-full 2xl:w-[24px] [&::-webkit-details-marker]:hidden [&_a]:text-accent [&_a]:underline [&_nav]:mb-0 [data-admonition] [data-kbd-shortcut] [data-switcher-launcher] [doc-history-meta] [doc-history] [doc-layout] [llms-txt] [zudo-doc] a a2 abbr about above absent absolute accent accent- accent:accent- across activated active actual added admonition admonition- admonition-body admonition-title admonition/callout after after-breadcrumb after-content after-navigate after-sidebar after-title against agent agents ai-chat ai-chat-md ai-chat-trigger alert align-top all allow-same-origin allow-scripts allowed alone already already-executed already-multiline already-picked also always an anchor and and/or animate-pulse animate-spin announce ansehen antialiased any anywhere anzeigen appear application/json application/xml applied applies apply approach are area arg argument aria-atomic aria-busy aria-controls aria-current aria-disabled aria-expanded aria-haspopup aria-hidden aria-label aria-labelledby aria-live aria-orientation aria-pressed aria-selected aria-valuemax aria-valuemin aria-valuenow arm arms arrows article as asc aside aspect-[1200/630] aspect-square asset- assets assistant async at attach attribute attributes auf authored auto autogenerated available avoid await away b back backdrop:bg-bg/30 backdrop:bg-bg/80 backdrop:bg-overlay/60 backdrop:z-modal-backdrop background background-color backtick backticks baked banner bare base base- base64 base:base- based batch be bearbeiten because been before below best between bg bg-[#fff] bg-accent bg-bg bg-chat-assistant-bg bg-chat-user-bg bg-code-bg bg-fg bg-info/10 bg-info/5 bg-muted bg-overlay/30 bg-surface bg-surface/50 bg-transparent bg-warning/10 bg-warning/5 bi bigint bin binaries bind blank blanks block blockquote blocks blur body body-end-components body-end-scripts bold boolean bootstrap border border-accent border-b border-b-2 border-b-[5px] border-bg/30 border-collapse border-danger border-dashed border-fg border-image border-info/30 border-l border-l-0 border-l-[3px] border-left-width border-muted border-none border-r border-radius border-solid border-t border-t-[2px] border-t-[3px] border-transparent border-warning/30 border-width border-y both bottom-hsp-lg bottom-vsp-xl boundaries box-border br brackets brand breadcrumb:end breadcrumb:start break-words brown browser browsers btn budget bug build built built-in bundler but button buttons by bypassed byte-identical bytes cached call callable called caller calls can cancellation cannot canonical canvas caption card card-grid carry cases cat-nav- catch category catppuccin-latte caught caution center center/contain ch chains change changed changelog changelogs changes child choose chrome ci circle cite class class-less class-mode claude claude-agents claude-commands claude-md claude-skills cleaned clear clearing click client client-router client-side clip clobbering close closed closing code code-block-sr-announce code-group code-group-panel col col-resize colgroup collapses collision color color-scheme color-scheme-changed color-scheme-provider color-tweak colorization colors column comma command commands comment commercial commercial-font-denylist commit compare component component:github-link component:language-switcher component:search component:theme-toggle component:version-switcher composition compute computed concrete config configuration configure configured confuse connect const construction consumer consumes container containers containing contains content content-admonition content-layer content-link content-type content-wrapper:end content-wrapper:start contents context contract controller controls converts copied copy corners correct correctly corrupt could count covered covers cp crashes created cross-component crumb- cs css css-presence ctx cur current cursor-not-allowed cursor-pointer custom danger dark data data-active data-admonition data-base data-close-search data-current-locale data-default-locale data-doc-description data-doc-pager data-find-active data-find-match data-footer data-group-id data-header data-header-logo data-header-nav data-header-right data-kbd-shortcut data-language-switcher data-loading-index data-mermaid-enlarge-ready data-mermaid-rendered data-mermaid-src data-nav-active data-nav-item data-nav-item-dropdown data-nav-more data-nav-more-menu data-nav-more-toggle data-no-results data-open-search data-pan-active data-processed data-result-count-template data-search-count data-search-count-narrow data-search-dialog data-search-input data-search-placeholder data-search-results data-search-unavailable data-sidebar-hidden data-sidebar-resizer data-site-nav data-switcher-card data-switcher-launcher data-tab-btn data-tab-default data-tab-label data-tab-value data-tabs data-taglist-group data-testid data-theme data-theme-pack data-theme-pack-switcher data-theme/style data-trailing-slash data-variant data-version-banner data-version-latest data-version-menu data-version-rewire data-version-slug data-version-switcher data-version-toggle data-version-trigger-label data-zd-nosidebar data-zd-theme-pack-css data-zd-theme-pack-css-loading data-zd-toc data-zd-wide data-zfb-transition-persist dd decimal declaration declare declares decoration decoration-muted default default-transition-duration defaults del delegated delete dependency depth der desc description design design-token-panel design-token-trigger desktop desktop-sidebar desktop-sidebar-toggle desktop-sidebar-toggle-island destructive detach detached details determine deterministic develop dfn diagram diagrams dialog die dieser diff diff-line-added diff-line-content diff-line-empty diff-line-num diff-line-removed diff-row dir directly directories directory disabled disabled:opacity-50 disabled:pointer-events-none disc display:none dist distinct div dl do doc doc-card- doc-content-band doc-history doc-history-generate doc-history-panel doc-history-trigger doc-page doc-pager doc-prose doc-title docs docs- docs-v- document document-level documentation documented does dog double-registration draft drag draggable drop dropdown dropdown-child dropdown-parent dropdowns dt duplicate duration-150 duration-200 during dynamically e2e each ease-in-out edge einer eject ejectable ejectables ejected el element elements els else em embedded emit emitting empty empty/undefined en enable enabled end enlarged entire entities entries entry equal error escape escaped even eventually every exactly exceeds excerpt excludes exclusively existing exists exit expected export extends f factories failed fall fallback fallbacks falling falls false family fast feature fg field fields fieldset figcaption figure file fill fills finally find find-match find-match-active fire fires first fixed fixed-width fixtures flag flash flat flex flex-1 flex-col flex-wrap flip flipping flips flush-left focus focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2 focus-visible:underline focus:border-accent focus:outline-none focus:underline font font-bold font-face-parity font-family font-medium font-mono font-sans font-scale font-semibold font-size font-weight font-weight-bold font-weight-medium font-weight-normal font-weight-semibold font/woff2 fonts footer footer- for form format found fox free fresh from frontmatter frontmatter-preview frozen fs-extra full fully function further g gap-[0.3em] gap-[clamp(1.5rem,3vw,4rem)] gap-hsp-2xs gap-hsp-lg gap-hsp-md gap-hsp-sm gap-hsp-xl gap-hsp-xs gap-vsp-2xs gap-vsp-3xs gap-vsp-lg gap-vsp-md gap-vsp-xs gap-x-hsp-2xs gap-x-hsp-lg gap-x-hsp-md gap-x-hsp-sm gap-x-hsp-xs gap-y-vsp-2xs gap-y-vsp-lg gap-y-vsp-md gap-y-vsp-xs gaps gate geladen2026 generate generated generation genuine geometry get github github-dark github-link go got gradient graph gray-matter grid grid-cols-1 grid-cols-2 group group-focus-visible:text-accent group-focus-visible:underline group-focus-within:block group-hover:bg-fg group-hover:block group-hover:text-accent group-hover:text-bg group-hover:underline group-open:rotate-90 guard h-10 h-40 h-[0.5rem] h-[0.625rem] h-[0.875rem] h-[1.125rem] h-[1.25rem] h-[1.575rem] h-[14px] h-[1em] h-[1lh] h-[2rem] h-[3.5rem] h-[3rem] h-[90vh] h-[calc(100%-3rem)] h-[calc(100vh-3.5rem)] h-dvh h-full h-icon-lg h-icon-md h-icon-sm h-icon-xs h1 h1s h2 h22013h4 h2s h3 h4 h5 h6 half hand-copied hand-editable handle handled handler handlers has hash-link have head head-links head-scripts header header- header-call:end header-call:start header-right heading heading-h2 heading-h3 heading-h4 heading-rule headings height here hex hidden hierarchical highlight history hit home horizontal host hover:bg-[color-mix(in_srgb,var(--color-surface)_80%,var(--color-fg)_20%)] hover:bg-accent-hover hover:bg-accent/10 hover:bg-danger/10 hover:bg-surface hover:border-accent hover:border-accent-hover hover:border-fg hover:text-accent hover:text-accent-hover hover:text-fg hover:underline hr href hrefs hsp hsp-2xl hsp-2xs hsp-lg hsp-md hsp-sm hsp-xl hsp-xs html i i18n/theme. i2 i3 i4 icon icon-lg icon-md icon-sm icon-xs identical idle idx if iframe image image-enlarge image-overlay-inset image/png img implementation import important important-allowlist imports in inactive inbox includes incomplete index index2026 info inherit inherited initial initialised injected inline inline-block inline-flex inner input input-clear ins inserted-after-color-mode inserted-after-color-scheme inserted-first inset-0 inside install installation installed instance instanceof instead instructions intended intent internal interpolation into invalid inverse inversion invoke is issues it italic item item- items items-baseline items-center items-end items-start its itself javascript jumps justify-between justify-center justify-end justify-start katex kbd keep keeping keeps keyboard keyboard-shortcut keydown keys keystroke keyword keywords khroma known-token-names kopieren label landing language-switcher last:border-b-0 later latest launch layout lazy leading-normal leading-relaxed leading-snug leading-tight leaf- leak leaves left left-0 left:calc legend legitimate length letter-spacing lg lg:block lg:border lg:border-fg lg:border-solid lg:flex lg:flex-col lg:flex-row lg:gap-hsp-xl lg:grid-cols-3 lg:grid-cols-[repeat(auto-fit,minmax(12rem,1fr))] lg:h-[90vh] lg:hidden lg:justify-start lg:m-auto lg:max-h-[90vh] lg:max-w-[52.5rem] lg:ml-[var(--zd-sidebar-w)] lg:pt-vsp-2xl lg:px-hsp-2xl lg:py-vsp-2xl lg:text-left lg:w-[90vw] lg:w-[clamp(16rem,25%,22rem)] li li2 library license light light/dark like likely line line-height line/statement linger link link- links list list-disc list-none listener lists literal literals lives llms llms-txt load loaded loading local local-1 local-2 local-3 locale locales log longer longest-match look lostpointercapture lower luminance m m-0 m-auto m21 m6 machinery main major make malformed malicious manually maps mark marks match matches matching math math-display math-inline max max-h-[85vh] max-h-[90vh] max-h-full max-h-none max-w-[64rem] max-w-[85%] max-w-[85vw] max-w-[90vw] max-w-[calc(100vw-2rem)] max-w-[clamp(50rem,75vw,90rem)] max-w-full max-w-none max-w-sm max-width may mb-0 mb-vsp-2xs mb-vsp-lg mb-vsp-md mb-vsp-sm mb-vsp-xl mb-vsp-xs measures measuring mechanism menu mermaid message messages meta meta-knob meta-schema metadata migration min-h-0 min-h-[60vh] min-h-[calc(100vh-3.5rem)] min-h-screen min-w-0 min-w-[10rem] min-w-[3rem] min-w-[8rem] minifier minor mirror mirrors missing mit ml-auto ml-hsp-2xl ml-hsp-lg ml-hsp-sm ml-hsp-xl mod modal modal-backdrop mode modify module monospace more most mounted mouseenter mouseleave mr-hsp-sm ms mt-0 mt-vsp-2xl mt-vsp-2xs mt-vsp-3xs mt-vsp-lg mt-vsp-md mt-vsp-xl must mutates mutation mutations muted mx-auto my-vsp-lg my-vsp-md n name named names native nav nav-active nav-card- nav/doc navigating navigation navigations near needs nested neutral new newly-swapped next nicht no no-color-scheme no-data-theme-selector no-enlarge no-op no-repeat no-underline noch node node:buffer node:fs node:fs/promises node:module node:path node:url nodes nofollow noindex non-empty non-light-dark non-literal non-persisted none noopener noreferrer normal noscript not notable note notes now null number numeric object object-contain observe observer occurred of off ofl-required og:description og:image og:image:alt og:image:height og:image:width og:title og:type og:url oklch ol old older on once one only onto opacity-60 open open/close option or original other others out outgoing outline-none over overflow overflow-auto overflow-hidden overflow-x-auto overflow-y-auto overflow-y:auto overrides overscroll-contain overwrite own owned p p-0 p-hsp-2xs p-hsp-lg p-hsp-md p-hsp-sm pack package package-owned packages packs padding page page-loading page-loading-overlay page-loading-spinner page-navigate-end page-title pages pages/. paint paint-and-read palette pan panel panels paren-balance-aware parent parse parsed parser part pass passed passes patch path paths pattern payload payload-budget pb-[50vh] pb-vsp-md pb-vsp-xl pb-vsp-xs per per-link permanently persisted pi pick picked picks picocolors pins pipelines pl-[1.25rem] pl-hsp-lg pl-hsp-sm pl-hsp-xl place placeholder placeholder:text-muted plain plural plus pnpm point pointer-events-none pointercancel pointerdown pointermove pointerup polite polygon polyline popover populates port position position:fixed pr-[4px] pr-hsp-lg pr-hsp-md pr-hsp-sm pr-hsp-xl pre pre-lowercased preact preact/compat preact/hooks preact/jsx-runtime preconnect prefix preload pres preserving preview preview-swatch-color previews2026 previously primary print produce produced produces production project project-owned project-root-relative properties property props prose provided proxy pt-[0.15rem] pt-[2px] pt-vsp-3xs pt-vsp-md pt-vsp-sm pt-vsp-xl pt-vsp-xs ptag- public purely px px-hsp-2xl px-hsp-2xs px-hsp-lg px-hsp-md px-hsp-sm px-hsp-xl px-hsp-xs py-0 py-[2px] py-[4px] py-[calc(var(--spacing-vsp-xs)+0.15rem)] py-hsp-2xs py-hsp-3xs py-hsp-sm py-hsp-xs py-vsp-2xs py-vsp-3xs py-vsp-lg py-vsp-md py-vsp-sm py-vsp-xl py-vsp-xs q query question quick r radius radius-full radius-lg ramp range raw re-encode/decode re-querying re-render re-renders re-run re-running re-selects reach reached reaches read reading real real-value received receives recorded recovers rect redefine redistribution ref- referenced references refetch refreshes regenerate regenerates regex registry reinit reinits rel relative release released reload relying rem remove removed render rendered renderer renderers renders reorder repaint repair repeated repeating replace replaced replacement replaces repopulate repository required requires reserved resize resize-x resolve resolved resolves responded response restore restores result result-click results results-area retry return returns revision revisions rewrite rewrites right right- right-0 right-hsp-lg ring-2 ring-accent risking ro robots role roles root rotate-180 rotate-90 round round-trip rounded rounded-[0.75rem] rounded-bl-[0.25rem] rounded-bl-[1rem] rounded-bl-lg rounded-br-[0.25rem] rounded-br-[1rem] rounded-full rounded-lg rounded-md rounded-t-[1rem] rounds route router routes routes-src running runs runtime s safe safely safer same same-locale samp sans sans-serif scale scanned scanning scheme scoped scoping scored script script- script-eval script-evaluation script-injection scripts scroll scrollbar scrolled scrollend search search-index section section- see sehen select select-none selection-bg selection-fg selector self self-hosted self-start semantic semibold semver sentinel separator serialised serialize server server-rendered set sets setting setup shadow-[0_1px_3px_color-mix(in_srgb,var(--color-fg)_8%,transparent)] shadow-lg shadow-md shape share shared sharing shiki ship shipped ships short shortcut should show shown shrink-0 sidebar sidebar- sidebar-toggle-island sidebar-tree-island sidebar-w signal similarity simple single single-line single-object-literal singular site site-search site-tree-nav-island sitemap- sites size skill skills skipping skips slash slug slug-dir-parity sm:border sm:border-muted sm:flex-row sm:grid-cols-2 sm:h-auto sm:items-center sm:justify-between sm:max-h-[80vh] sm:max-w-[52rem] sm:mx-auto sm:my-[10vh] sm:rounded-lg small smooth snapshot snapshots so soft soft-nav solid some somehow source sources space-y-vsp-2xs spacing spacing-0 spacing-px span spans spec specifiers splitter spread square sr-only src stable stale standalone start state state- state:state- status stay staying sticky still stock stop stored stray strict string strings strip stripe stroke-linecap stroke-linejoin stroke-width strong stronger style style-attribute styled styles stylesheet sub subagents subsequent substitute success successful summary sup supported surface surfaces survives svg swap swapped swaps switcher synchronous synchronously syntactically syntax t tab tab-item tab-panel tabindex table tablist tabpanel tabs tabs-container tabs-content tabs-nav tag tag- tag-item- tagged tags tags:audit take tbody td temp-element template temporary temporary-element terminal terms test-results tested text text-accent text-bg text-body text-caption text-center text-chat-assistant-text text-chat-user-text text-code-fg text-danger text-decoration text-display text-fg text-fg/60 text-heading text-info text-left text-micro text-muted text-muted/50 text-right text-scale-2xl text-scale-2xs text-scale-lg text-scale-md text-scale-sm text-scale-xl text-scale-xs text-small text-title text-warning text/css text/plain textarea tfoot th than that the thead their them theme theme-color theme-pack theme-pack-changed theme-packs theme-packs/index.json theme-toggle theme/token then there these they this threw through throw tighten time tip title to toast toc toggle toggle-ai-chat toggle-design-token-panel toggles token tokens tolerates too toolbar tooltip top-0 top-[3.5rem] top-full top-level total touches tp tr tracked tracking-wide tracking-wider trade-off transition transition-[background,color,border-color] transition-[left,color] transition-colors transition-transform translate-x-0 translated translations transparent treats tree tree-child- tree-item- tree-top- trigger trigger:ai-chat trigger:design-token-panel triggers true truncate truncated try turn twitter:card twitter:creator twitter:description twitter:image twitter:site twitter:title two type typeface typography u ul umschalten unavailable unbalanced unchanged und undefined under underline underlines understand unit-tested unknown unlisted unmaintained unobserve unreadable unrelated unreleased unset unterminated until up up-to-date uppercase use used user uses utf-8 utf8 utilities utility v v2 val value value-reader values var variable variant verbatim version version- version-menu version-switcher versions vertical via video viewing viewport virtual:zudo-doc-chrome-bindings virtual:zudo-doc-design-token-panel-config virtual:zudo-doc-route-context visible vitesse-dark vocabulary von vsp vsp-2xl vsp-2xs vsp-3xs vsp-lg vsp-md vsp-sm vsp-xl vsp-xs w w-1/2 w-10 w-48 w-72 w-[0.5rem] w-[0.625rem] w-[0.875rem] w-[1.125rem] w-[1.575rem] w-[1.5rem] w-[1.75rem] w-[14px] w-[16px] w-[16rem] w-[18px] w-[1em] w-[280px] w-[2rem] w-[320px] w-[90vw] w-[calc(100vw-2rem)] w-[var(--zd-sidebar-w)] w-dvw w-full w-icon-lg w-icon-md w-icon-sm w-icon-xs want warn warning was watching wbr wbr- we website weight went were what when where whereas whether which while whitespace-nowrap whitespace-pre whole wide wide-gamut width will wird wired with without word working worktrees would wrap wrapper wrappers written wrong wrote wurde xl:flex xl:hidden y-scrollbar yet you your z-dropdown z-local-1 z-modal z-modal-backdrop z-popover z-sidebar z-toolbar zd-content zd-desktop-sidebar-toggle zd-doc-content-band zd-enlarge-btn zd-enlarge-dialog zd-enlarge-dialog-close zd-enlargeable zd-html-preview-code zd-mermaid-dialog zd-mermaid-enlargeable zd-mermaid-tool-btn zd-mermaid-toolbar zd-mermaid-transform zd-mermaid-viewport zd-sidebar-content-wrapper zd-sidebar-open zd-theme-pack-dialog-title zfb zfb:after-swap zfb:before-preparation zod zoom zudo-design-tokens/v3 zudo-doc zudo-doc-design-token-panel-modal zudo-doc-design-tokens zudo-doc-sidebar-visible zudo-doc-sidebar-width zudo-doc-theme zudo-doc-theme-pack zudo-doc-tweak zum");
|
package/dist/settings.d.ts
CHANGED
|
@@ -18,22 +18,14 @@ export type TagGovernanceMode = "off" | "warn" | "strict";
|
|
|
18
18
|
* - `description`— optional short description for tooling / tag index pages.
|
|
19
19
|
* - `group` — optional grouping key used by the grouped tag footer
|
|
20
20
|
* (e.g. `"type"`, `"level"`, `"topic"`).
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* - `deprecated` — `true` marks the tag as deprecated with no redirect: the
|
|
24
|
-
* canonical id is dropped from aggregation. Pass
|
|
25
|
-
* `{ redirect: "<other-id>" }` to rewrite this tag to another
|
|
26
|
-
* canonical id when it appears in content.
|
|
21
|
+
* Content must use `id` exactly. Retired or misspelled ids are unknown tags;
|
|
22
|
+
* the vocabulary intentionally has no alias or deprecation migration fields.
|
|
27
23
|
*/
|
|
28
24
|
export interface TagVocabularyEntry {
|
|
29
25
|
id: string;
|
|
30
26
|
label?: string;
|
|
31
27
|
description?: string;
|
|
32
28
|
group?: string;
|
|
33
|
-
aliases?: readonly string[];
|
|
34
|
-
deprecated?: boolean | {
|
|
35
|
-
redirect?: string;
|
|
36
|
-
};
|
|
37
29
|
}
|
|
38
30
|
export interface HeaderNavChildItem {
|
|
39
31
|
label: string;
|
|
@@ -44,7 +36,12 @@ export interface HeaderNavChildItem {
|
|
|
44
36
|
export interface HeaderNavItem extends HeaderNavChildItem {
|
|
45
37
|
children?: HeaderNavChildItem[];
|
|
46
38
|
}
|
|
47
|
-
export type
|
|
39
|
+
export type HeaderRightBuiltinComponentName = "theme-toggle" | "language-switcher" | "version-switcher" | "github-link" | "search";
|
|
40
|
+
/**
|
|
41
|
+
* Serializable component name. Built-ins remain suggested, while host-owned
|
|
42
|
+
* names resolve through `ChromeHostBindings.headerRightComponents`.
|
|
43
|
+
*/
|
|
44
|
+
export type HeaderRightComponentName = HeaderRightBuiltinComponentName | (string & {});
|
|
48
45
|
export type HeaderRightTriggerName = "design-token-panel" | "ai-chat";
|
|
49
46
|
export interface HeaderRightComponentItem {
|
|
50
47
|
type: "component";
|
|
@@ -301,7 +298,6 @@ export interface Settings {
|
|
|
301
298
|
designTokenPanel: boolean;
|
|
302
299
|
tocMinDepth: number;
|
|
303
300
|
tocMaxDepth: number;
|
|
304
|
-
headingIdStrategy: "flat" | "hierarchical";
|
|
305
301
|
sidebarResizer: boolean;
|
|
306
302
|
sidebarToggle: boolean;
|
|
307
303
|
imageEnlarge: boolean;
|
|
@@ -408,4 +404,23 @@ export interface Settings {
|
|
|
408
404
|
* module. Irrelevant when `designTokenPanel` is `false`.
|
|
409
405
|
*/
|
|
410
406
|
designTokenPanelConfigModule?: string;
|
|
407
|
+
/**
|
|
408
|
+
* Active theme-pack slug (ADR `docs/adr/theme-packs.md`). `"default"` is
|
|
409
|
+
* the stock zudo-doc look — no pack stylesheet is loaded. Must be a member
|
|
410
|
+
* of the resolved `themePacks` list; an unknown slug fails the build
|
|
411
|
+
* loudly at plugin setup (`src/plugins/routes.ts`).
|
|
412
|
+
*/
|
|
413
|
+
themePack?: string;
|
|
414
|
+
/**
|
|
415
|
+
* Mount the bottom-right theme-pack switcher flyout (and its browse-all
|
|
416
|
+
* dialog) on every page.
|
|
417
|
+
*/
|
|
418
|
+
themePackSwitcher?: boolean;
|
|
419
|
+
/**
|
|
420
|
+
* Enabled theme-pack slugs, in switcher order. `undefined` = every bundled
|
|
421
|
+
* pack, `"default"` first then the rest in canonical (alphabetical-by-slug)
|
|
422
|
+
* order. An explicit list is authoritative: may omit `"default"`, reorder
|
|
423
|
+
* freely; duplicate or unknown slugs fail the build loudly.
|
|
424
|
+
*/
|
|
425
|
+
themePacks?: string[];
|
|
411
426
|
}
|
|
@@ -14,11 +14,10 @@ import type { BuildSidebarTreeOptions, CollectionEntryLike, SidebarFrontmatter,
|
|
|
14
14
|
* Build a recursive sidebar tree from `entries`. Visibility filtering is
|
|
15
15
|
* applied first; the resulting structure mirrors the filesystem.
|
|
16
16
|
*
|
|
17
|
-
* - Multi-segment
|
|
17
|
+
* - Multi-segment slugs (e.g. `getting-started/intro`) walk the tree creating
|
|
18
18
|
* intermediate category nodes as needed.
|
|
19
|
-
* -
|
|
20
|
-
*
|
|
21
|
-
* `getting-started`).
|
|
19
|
+
* - A trailing `/index` represents a category index page and is stripped from
|
|
20
|
+
* the canonical route slug.
|
|
22
21
|
* - Sibling order is determined by `sidebar_position` then alphabetical
|
|
23
22
|
* slug, with the parent's `sortOrder` (from `_category_.json`) flipping
|
|
24
23
|
* the comparator when set to `"desc"`.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
function toRouteSlug(
|
|
2
|
-
|
|
1
|
+
function toRouteSlug(slug) {
|
|
2
|
+
if (slug === "index") return "";
|
|
3
|
+
return slug.replace(/\/index$/, "");
|
|
3
4
|
}
|
|
4
5
|
function toTitleCase(str) {
|
|
5
6
|
return str.split("-").map((word) => word.length === 0 ? word : word[0].toUpperCase() + word.slice(1)).join(" ");
|
|
@@ -24,7 +25,7 @@ function buildSidebarTree(entries, locale, options = {}) {
|
|
|
24
25
|
};
|
|
25
26
|
for (const entry of entries) {
|
|
26
27
|
if (!isNavVisible(entry)) continue;
|
|
27
|
-
const slug = entry.data.slug ??
|
|
28
|
+
const slug = entry.data.slug ?? toRouteSlug(entry.slug);
|
|
28
29
|
if (!slug) continue;
|
|
29
30
|
const parts = slug.split("/");
|
|
30
31
|
if (parts.length <= 1) {
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
* type SidebarNode,
|
|
10
10
|
* } from "@takazudo/zudo-doc/sidebar-tree";
|
|
11
11
|
*
|
|
12
|
-
* The builder takes a flat list of
|
|
13
|
-
*
|
|
12
|
+
* The builder takes a flat list of current zfb collection entries plus a
|
|
13
|
+
* locale, and emits a recursive `SidebarNode[]`
|
|
14
14
|
* suitable for rendering or for further sidebar-config processing.
|
|
15
15
|
*/
|
|
16
16
|
export { buildSidebarTree, findSidebarNode, flattenSidebarTree, } from "./build-tree.js";
|