@takazudo/zudo-doc 3.2.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 +61 -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 -4
- package/dist/chrome/derive.js +64 -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 +227 -0
- package/dist/chrome-bindings.js +6 -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 +72 -4
- package/dist/color-scheme-utils.js +137 -0
- package/dist/color-schemes-defaults/index.d.ts +23 -0
- package/dist/color-schemes-defaults/index.js +134 -0
- package/dist/config.d.ts +459 -0
- package/dist/config.js +125 -0
- 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 +82 -27
- package/dist/design-token-panel-bootstrap.js +110 -21
- package/dist/design-token-panel-config/index.d.ts +49 -0
- package/dist/design-token-panel-config/index.js +211 -0
- package/dist/design-token-panel-config/manifest.d.ts +46 -0
- package/dist/design-token-panel-config/manifest.js +105 -0
- package/dist/directive-vocabulary-defaults/index.d.ts +16 -0
- package/dist/directive-vocabulary-defaults/index.js +12 -0
- 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 +52 -7
- package/dist/doc-body-end-islands/index.js +19 -0
- 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.d.ts +67 -0
- package/dist/docs-schema/index.js +43 -0
- 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 +56 -4
- package/dist/features.css +65 -43
- package/dist/find-in-page/find-bar.d.ts +9 -0
- package/dist/find-in-page/find-bar.js +114 -0
- package/dist/find-in-page/find-in-page.d.ts +17 -0
- package/dist/find-in-page/find-in-page.js +131 -0
- package/dist/find-in-page/index.d.ts +11 -0
- package/dist/find-in-page/index.js +49 -0
- package/dist/footer/footer.js +1 -0
- package/dist/frontmatter-preview-defaults/index.d.ts +16 -0
- package/dist/frontmatter-preview-defaults/index.js +25 -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/i18n-defaults/index.d.ts +22 -0
- package/dist/i18n-defaults/index.js +167 -0
- 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 +55 -21
- 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 +28 -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 +3 -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 +64 -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/theme.css +319 -0
- package/dist/versions-page/index.d.ts +2 -2
- package/dist/versions-page/index.js +8 -8
- package/dist/z-index-defaults/index.d.ts +45 -0
- package/dist/z-index-defaults/index.js +34 -0
- 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 +82 -29
- package/routes-src/404.tsx +4 -1
- package/routes-src/_chrome.tsx +31 -8
- package/routes-src/_context.ts +4 -0
- package/routes-src/_docs-helpers.ts +9 -29
- package/routes-src/_virtual.d.ts +38 -2
- package/tsconfig.base.json +29 -0
- package/virtual-modules.d.ts +83 -0
- package/zfb-config-shim.d.ts +210 -0
- 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/theme.css
ADDED
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
/* ============================================================================
|
|
2
|
+
* @takazudo/zudo-doc — default design tokens + project-agnostic base rules
|
|
3
|
+
*
|
|
4
|
+
* Shipped to consumers as `@takazudo/zudo-doc/theme.css` (copied to
|
|
5
|
+
* `dist/theme.css` by scripts/copy-theme-css.mjs on build). Single source of
|
|
6
|
+
* truth for the default `@theme` token block (colors, spacing, icon sizes,
|
|
7
|
+
* elevation, typography, radius, breakpoints, z-index) plus the small set of
|
|
8
|
+
* project-agnostic base rules (scroll-margin, selection color, focus ring,
|
|
9
|
+
* search / find-in-page highlight, version-switcher visibility) every
|
|
10
|
+
* zudo-doc project needs. See zudolab/zudo-doc#2655.
|
|
11
|
+
*
|
|
12
|
+
* ── @import order (load-bearing) ────────────────────────────────────────────
|
|
13
|
+
* The consumer's global.css MUST import this file:
|
|
14
|
+
* 1. AFTER `@layer zd-preflight, zd-flow;` and the two Tailwind imports
|
|
15
|
+
* (`tailwindcss/preflight` layer(zd-preflight), `tailwindcss/utilities`).
|
|
16
|
+
* Those three lines stay project-side — path-relative `@source`/`@layer`
|
|
17
|
+
* resolution requires them to live in the consumer's own CSS file (see
|
|
18
|
+
* packages/create-zudo-doc/templates/base/src/styles/global.css).
|
|
19
|
+
* 2. BEFORE `@takazudo/zudo-doc/safelist.css`, `content.css`,
|
|
20
|
+
* `page-loading.css`, and `features.css` — all four consume the
|
|
21
|
+
* `@theme` tokens defined here (colors, spacing, typography, z-index),
|
|
22
|
+
* and `content.css`'s `@layer zd-flow` rule depends on the cascade
|
|
23
|
+
* layer order already being established by the time it loads.
|
|
24
|
+
* 3. BEFORE the project's own token-override `@theme { … }` block — Tailwind
|
|
25
|
+
* v4 `@theme` resolution is last-declaration-wins per custom property,
|
|
26
|
+
* so a later project block can redefine any default declared here.
|
|
27
|
+
*
|
|
28
|
+
* ── Consumer contract ────────────────────────────────────────────────────────
|
|
29
|
+
* The consumer must inject the `--zd-*` ramp/role custom properties this file
|
|
30
|
+
* aliases into `--color-*` tokens (`ColorSchemeProvider`, see
|
|
31
|
+
* `@takazudo/zudo-doc/theme`). Without them every `--color-*` token below
|
|
32
|
+
* resolves to nothing (the tight-token guardrail below wipes Tailwind's
|
|
33
|
+
* default palette; only `--zd-*`-backed aliases repopulate it).
|
|
34
|
+
*
|
|
35
|
+
* Deliberately NOT shipped here: `--color-page-loading-overlay`. That scrim
|
|
36
|
+
* token stays feature-injected by a project's `dynamicPageTransition` wiring
|
|
37
|
+
* (its default depends on `--color-overlay`, which IS defined below) — do
|
|
38
|
+
* not add it to this base block.
|
|
39
|
+
*
|
|
40
|
+
* ── Z-index defaults ─────────────────────────────────────────────────────────
|
|
41
|
+
* The 13 `--z-index-*` entries below are the package DEFAULT tiers (mirrors
|
|
42
|
+
* `defaultZIndexTiers` from `@takazudo/zudo-doc/z-index-defaults`, #2654).
|
|
43
|
+
* A project only needs its own `src/config/z-index-tokens.ts` +
|
|
44
|
+
* `gen:z-index`/`check:z-index` codegen wiring if it OVERRIDES a tier — its
|
|
45
|
+
* own `@theme` block (declared after this file's import) simply redefines
|
|
46
|
+
* the specific `--z-index-<name>` it wants to change.
|
|
47
|
+
* ============================================================================ */
|
|
48
|
+
|
|
49
|
+
@theme {
|
|
50
|
+
/* ========================================
|
|
51
|
+
* Tight-token color reset
|
|
52
|
+
*
|
|
53
|
+
* Wipes all Tailwind default color tokens (`--color-*`) so only
|
|
54
|
+
* project-defined palette and semantic tokens remain. This enforces
|
|
55
|
+
* zudo-doc's tight-token policy: "NEVER use Tailwind default colors"
|
|
56
|
+
* (documented per-project in src/CLAUDE.md's Color Rules). Semantic color
|
|
57
|
+
* tokens (defined below) are added back after this reset.
|
|
58
|
+
*
|
|
59
|
+
* The upstream split-import fix (zfb#159 / 9e37551, shipped in f68a9ba)
|
|
60
|
+
* eliminated the original leak cause (zfb no longer prepends the full
|
|
61
|
+
* @import "tailwindcss" bundle). The reset is retained as an explicit
|
|
62
|
+
* design guardrail — it prevents accidental default palette bleed from any
|
|
63
|
+
* future upstream change and keeps the color surface intentional.
|
|
64
|
+
*
|
|
65
|
+
* NOT reset: `--spacing` (the base spacing scale, default 0.25rem).
|
|
66
|
+
* Tailwind spacing utilities compute as calc(var(--spacing) * N); wiping
|
|
67
|
+
* `--spacing` collapses them to zero (observed in Wave 4 Sub-7 #1403).
|
|
68
|
+
* This guardrail resets ONLY the color namespace — never widen it.
|
|
69
|
+
* ======================================== */
|
|
70
|
+
--color-*: initial;
|
|
71
|
+
|
|
72
|
+
/* ========================================
|
|
73
|
+
* Colors — Three-tier token system
|
|
74
|
+
* ======================================== */
|
|
75
|
+
|
|
76
|
+
/* ── Base ── */
|
|
77
|
+
--color-bg: var(--zd-bg);
|
|
78
|
+
--color-fg: var(--zd-fg);
|
|
79
|
+
--color-sel-bg: var(--zd-selection-bg);
|
|
80
|
+
--color-sel-fg: var(--zd-selection-fg);
|
|
81
|
+
|
|
82
|
+
/* ── Semantic aliases ── */
|
|
83
|
+
--color-surface: var(--zd-surface);
|
|
84
|
+
--color-muted: var(--zd-muted);
|
|
85
|
+
--color-accent: var(--zd-accent);
|
|
86
|
+
--color-accent-hover: var(--zd-accent-hover);
|
|
87
|
+
--color-code-bg: var(--zd-code-bg);
|
|
88
|
+
--color-code-fg: var(--zd-code-fg);
|
|
89
|
+
--color-success: var(--zd-success);
|
|
90
|
+
--color-danger: var(--zd-danger);
|
|
91
|
+
--color-warning: var(--zd-warning);
|
|
92
|
+
--color-info: var(--zd-info);
|
|
93
|
+
/* Overlay is intentionally theme-independent (always dark, not scheme-driven) */
|
|
94
|
+
--color-overlay: #000;
|
|
95
|
+
--color-image-overlay-bg: var(--zd-image-overlay-bg);
|
|
96
|
+
--color-image-overlay-fg: var(--zd-image-overlay-fg);
|
|
97
|
+
--color-chat-user-bg: var(--zd-chat-user-bg);
|
|
98
|
+
--color-chat-user-text: var(--zd-chat-user-text);
|
|
99
|
+
--color-chat-assistant-bg: var(--zd-chat-assistant-bg);
|
|
100
|
+
--color-chat-assistant-text: var(--zd-chat-assistant-text);
|
|
101
|
+
--color-matched-keyword-bg: var(--zd-matched-keyword-bg);
|
|
102
|
+
--color-matched-keyword-fg: var(--zd-matched-keyword-fg);
|
|
103
|
+
|
|
104
|
+
/* ========================================
|
|
105
|
+
* Spacing — hsp (horizontal) + vsp (vertical)
|
|
106
|
+
* ======================================== */
|
|
107
|
+
--spacing-0: 0;
|
|
108
|
+
--spacing-px: 1px;
|
|
109
|
+
|
|
110
|
+
/* Horizontal spacing (7 steps) */
|
|
111
|
+
--spacing-hsp-2xs: 0.125rem; /* 2px — tight inline */
|
|
112
|
+
--spacing-hsp-xs: 0.375rem; /* 6px — compact inline */
|
|
113
|
+
--spacing-hsp-sm: 0.5rem; /* 8px — small padding */
|
|
114
|
+
--spacing-hsp-md: 0.75rem; /* 12px — default gaps */
|
|
115
|
+
--spacing-hsp-lg: 1rem; /* 16px — standard padding */
|
|
116
|
+
--spacing-hsp-xl: 1.5rem; /* 24px — generous padding */
|
|
117
|
+
--spacing-hsp-2xl: 2rem; /* 32px — large padding */
|
|
118
|
+
|
|
119
|
+
/* Vertical spacing (8 steps) */
|
|
120
|
+
--spacing-vsp-3xs: 0.25rem; /* 4px — hairline gap */
|
|
121
|
+
--spacing-vsp-2xs: 0.4375rem; /* 7px — tight gap */
|
|
122
|
+
--spacing-vsp-xs: 0.875rem; /* 14px — small gap */
|
|
123
|
+
--spacing-vsp-sm: 1.25rem; /* 20px — compact gap */
|
|
124
|
+
--spacing-vsp-md: 1.5rem; /* 24px — standard gap */
|
|
125
|
+
--spacing-vsp-lg: 1.75rem; /* 28px — section gap */
|
|
126
|
+
--spacing-vsp-xl: 2.5rem; /* 40px — large section gap */
|
|
127
|
+
--spacing-vsp-2xl: 3.5rem; /* 56px — page-level gap */
|
|
128
|
+
|
|
129
|
+
/* ========================================
|
|
130
|
+
* Element sizes — semantic icon dimensions
|
|
131
|
+
* ======================================== */
|
|
132
|
+
--spacing-icon-xs: 0.75rem; /* 12px — inline meta icons, chevrons */
|
|
133
|
+
--spacing-icon-sm: 1rem; /* 16px — standard UI icons */
|
|
134
|
+
--spacing-icon-md: 1.25rem; /* 20px — medium emphasis icons */
|
|
135
|
+
--spacing-icon-lg: 1.5rem; /* 24px — large / mobile icons */
|
|
136
|
+
|
|
137
|
+
/* Image overlay button chrome */
|
|
138
|
+
--spacing-image-overlay-inset: 0.5rem; /* 8px — overlay button corner inset + internal padding */
|
|
139
|
+
|
|
140
|
+
/* ========================================
|
|
141
|
+
* Elevation — the tight `@import "tailwindcss/utilities"` (no default
|
|
142
|
+
* @theme) drops Tailwind's default shadow scale, so `shadow-*` utilities
|
|
143
|
+
* generate nothing. Re-add the one elevation the components use: header
|
|
144
|
+
* and version-switcher dropdown panels apply `shadow-lg`. Value is
|
|
145
|
+
* Tailwind v4's default shadow-lg; the black is intentionally
|
|
146
|
+
* theme-independent (a drop shadow is absence of light, not a themed color).
|
|
147
|
+
* ======================================== */
|
|
148
|
+
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
|
|
149
|
+
|
|
150
|
+
/* ========================================
|
|
151
|
+
* Typography
|
|
152
|
+
* ======================================== */
|
|
153
|
+
|
|
154
|
+
/* ── Tier 2: Semantic font-size tokens (reference Tier 1 scale only) ── */
|
|
155
|
+
--text-micro: var(--text-scale-2xs); /* 12px — compact panel labels, color swatch annotations */
|
|
156
|
+
--text-caption: var(--text-scale-xs); /* labels, timestamps */
|
|
157
|
+
--text-small: var(--text-scale-sm); /* secondary text, nav items */
|
|
158
|
+
--text-body: var(--text-scale-md); /* paragraphs, default */
|
|
159
|
+
--text-title: var(--text-scale-lg); /* card titles, section labels */
|
|
160
|
+
--text-heading: var(--text-scale-xl); /* page headings */
|
|
161
|
+
--text-display: var(--text-scale-2xl); /* hero text */
|
|
162
|
+
|
|
163
|
+
/* Font families */
|
|
164
|
+
--font-sans: system-ui, sans-serif;
|
|
165
|
+
--font-mono: ui-monospace, monospace;
|
|
166
|
+
|
|
167
|
+
/* Font weights (4 steps) */
|
|
168
|
+
--font-weight-normal: 400;
|
|
169
|
+
--font-weight-medium: 500;
|
|
170
|
+
--font-weight-semibold: 600;
|
|
171
|
+
--font-weight-bold: 700;
|
|
172
|
+
|
|
173
|
+
/* Line heights (4 steps) */
|
|
174
|
+
--leading-tight: 1.25;
|
|
175
|
+
--leading-snug: 1.375;
|
|
176
|
+
--leading-normal: 1.5;
|
|
177
|
+
--leading-relaxed: 1.625;
|
|
178
|
+
|
|
179
|
+
/* Letter spacing / tracking (4 steps) */
|
|
180
|
+
--tracking-tight: -0.025em; /* headings, display text */
|
|
181
|
+
--tracking-normal: normal; /* browser default — resets any inherited tracking */
|
|
182
|
+
--tracking-wide: 0.05em; /* labels, UI text */
|
|
183
|
+
--tracking-wider: 0.1em; /* small caps, decorative */
|
|
184
|
+
|
|
185
|
+
/* ========================================
|
|
186
|
+
* Border radius (3 steps)
|
|
187
|
+
* ======================================== */
|
|
188
|
+
--radius-DEFAULT: 0.25rem; /* 4px — rounded */
|
|
189
|
+
--radius-lg: 0.5rem; /* 8px — rounded-lg */
|
|
190
|
+
--radius-full: 9999px; /* rounded-full */
|
|
191
|
+
|
|
192
|
+
/* ========================================
|
|
193
|
+
* Breakpoints (3 steps)
|
|
194
|
+
* ======================================== */
|
|
195
|
+
--breakpoint-sm: 640px;
|
|
196
|
+
--breakpoint-lg: 1024px;
|
|
197
|
+
--breakpoint-xl: 1280px;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/* ========================================
|
|
201
|
+
* Z-index tiers — semantic, single-namespace default scale.
|
|
202
|
+
*
|
|
203
|
+
* The 13 tokens below are the package DEFAULTS (mirrors defaultZIndexTiers
|
|
204
|
+
* from @takazudo/zudo-doc/z-index-defaults, #2654). Tailwind v4 reads each
|
|
205
|
+
* --z-index-<name> theme key and generates a `z-<name>` utility, so e.g.
|
|
206
|
+
* --z-index-toolbar: 20 produces `.z-toolbar { z-index: 20 }`; raw CSS can
|
|
207
|
+
* also reference `z-index: var(--z-index-<name>)`.
|
|
208
|
+
*
|
|
209
|
+
* A project only needs its own src/config/z-index-tokens.ts +
|
|
210
|
+
* gen:z-index/check:z-index codegen if it OVERRIDES a tier — the
|
|
211
|
+
* GENERATED:Z_INDEX block that used to live in every project's global.css is
|
|
212
|
+
* now opt-in customization only, not a mandatory per-project artifact.
|
|
213
|
+
* ======================================== */
|
|
214
|
+
@theme {
|
|
215
|
+
--z-index-content: 0;
|
|
216
|
+
--z-index-local-1: 1;
|
|
217
|
+
--z-index-local-2: 2;
|
|
218
|
+
--z-index-local-3: 3;
|
|
219
|
+
--z-index-sidebar: 10;
|
|
220
|
+
--z-index-toolbar: 20;
|
|
221
|
+
--z-index-dropdown: 30;
|
|
222
|
+
--z-index-popover: 40;
|
|
223
|
+
--z-index-modal-backdrop: 50;
|
|
224
|
+
--z-index-modal: 60;
|
|
225
|
+
--z-index-toast: 70;
|
|
226
|
+
--z-index-tooltip: 80;
|
|
227
|
+
--z-index-drag: 90;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
:root {
|
|
231
|
+
/* Default responsive range; sidebar-resizer.ts allows 192–448px for explicit resizing. */
|
|
232
|
+
--zd-sidebar-w: clamp(14rem, 20vw, 22rem);
|
|
233
|
+
|
|
234
|
+
/* ── Tier 1: Abstract font-size scale (raw values — NOT for direct component use) ── */
|
|
235
|
+
/* Used only as a source of truth for Tier 2 semantic tokens above. */
|
|
236
|
+
--text-scale-2xs: 0.75rem; /* 12px */
|
|
237
|
+
--text-scale-xs: 0.875rem; /* 14px */
|
|
238
|
+
--text-scale-sm: 1rem; /* 16px */
|
|
239
|
+
--text-scale-md: 1.2rem; /* 19.2px */
|
|
240
|
+
--text-scale-lg: 1.4rem; /* 22.4px */
|
|
241
|
+
--text-scale-xl: 3rem; /* 48px */
|
|
242
|
+
--text-scale-2xl: 3.75rem; /* 60px */
|
|
243
|
+
|
|
244
|
+
--default-transition-duration: 150ms; /* consumed by image-enlarge and hash-link opacity fade */
|
|
245
|
+
--zd-transition-slow: 200ms; /* sidebar transform/visibility and content-band max-width */
|
|
246
|
+
--zd-transition-slower: 300ms; /* view-transition fade-in (contentFadeIn animation) */
|
|
247
|
+
--zd-header-h: 80px; /* sticky header height; consumed by scroll-margin-top on [id] anchors */
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/* ========================================
|
|
251
|
+
* Base styles
|
|
252
|
+
* ======================================== */
|
|
253
|
+
|
|
254
|
+
[id] {
|
|
255
|
+
scroll-margin-top: var(--zd-header-h);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
body {
|
|
259
|
+
background-color: var(--color-bg);
|
|
260
|
+
color: var(--color-fg);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
::selection {
|
|
264
|
+
background-color: var(--color-sel-bg);
|
|
265
|
+
color: var(--color-sel-fg);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
@layer base {
|
|
269
|
+
a {
|
|
270
|
+
text-underline-offset: 4px;
|
|
271
|
+
}
|
|
272
|
+
button {
|
|
273
|
+
cursor: pointer;
|
|
274
|
+
}
|
|
275
|
+
:focus-visible {
|
|
276
|
+
outline: 2px solid var(--color-accent);
|
|
277
|
+
outline-offset: 2px;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/* ── Search highlight ── */
|
|
282
|
+
[data-search-results] mark {
|
|
283
|
+
background-color: var(--color-matched-keyword-bg);
|
|
284
|
+
color: var(--color-matched-keyword-fg);
|
|
285
|
+
padding: 0;
|
|
286
|
+
border-radius: 2px;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/* Version-switcher responsive visibility (was an inline <style> child of
|
|
290
|
+
* the data-version-switcher <div>; moved to global.css to avoid the
|
|
291
|
+
* <style>-inside-<div> HTML5 content-model violation flagged by
|
|
292
|
+
* html-validate — see zudolab/zudo-doc#1505).
|
|
293
|
+
*
|
|
294
|
+
* Pins onto the `.hidden` baseline that Tailwind always generates so
|
|
295
|
+
* consumers wrapping <VersionSwitcher> in `<div class="hidden lg:block">`
|
|
296
|
+
* still get the desktop override even when the content scanner did not
|
|
297
|
+
* generate `.lg:block`. Mobile (<64rem) falls through to `.hidden`'s
|
|
298
|
+
* `display: none`. Inert when no version-switcher is on the page. */
|
|
299
|
+
@media (min-width: 64rem) {
|
|
300
|
+
.hidden:has(> [data-version-switcher]) {
|
|
301
|
+
display: block;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/* ── Find-in-page highlight ── */
|
|
306
|
+
/* Deliberate ephemeral-vs-persistent split: find-in-page uses color-mix(warning)
|
|
307
|
+
* because it is a transient browser-controlled overlay that appears and disappears
|
|
308
|
+
* without page navigation. Search results use --color-matched-keyword-bg/fg because
|
|
309
|
+
* they are persistent semantic highlights tied to the current query state.
|
|
310
|
+
* Do NOT unify these two highlight strategies — the visual distinction is intentional. */
|
|
311
|
+
.find-match {
|
|
312
|
+
background-color: color-mix(in oklch, var(--color-warning) 40%, transparent);
|
|
313
|
+
border-radius: 2px;
|
|
314
|
+
}
|
|
315
|
+
.find-match-active {
|
|
316
|
+
background-color: color-mix(in oklch, var(--color-warning) 70%, transparent);
|
|
317
|
+
border-radius: 2px;
|
|
318
|
+
outline: 2px solid color-mix(in oklch, var(--color-warning) 90%, transparent);
|
|
319
|
+
}
|
|
@@ -22,11 +22,11 @@ export interface VersionsPageComponents {
|
|
|
22
22
|
title: string;
|
|
23
23
|
}) => JSX.Element;
|
|
24
24
|
HeaderWithDefaults: (props: {
|
|
25
|
-
lang
|
|
25
|
+
lang: string;
|
|
26
26
|
currentPath?: string;
|
|
27
27
|
}) => JSX.Element;
|
|
28
28
|
FooterWithDefaults: (props: {
|
|
29
|
-
lang
|
|
29
|
+
lang: string;
|
|
30
30
|
}) => JSX.Element;
|
|
31
31
|
BodyEndIslands: (props: {
|
|
32
32
|
basePath: string;
|
|
@@ -2,9 +2,9 @@ import { Fragment, jsx } from "preact/jsx-runtime";
|
|
|
2
2
|
import { DocLayoutWithDefaults } from "../doclayout/index.js";
|
|
3
3
|
import { VersionsPageContent } from "../nav-indexing/index.js";
|
|
4
4
|
import { createHeadWithDefaults } from "../head-with-defaults/index.js";
|
|
5
|
-
import {
|
|
6
|
-
import { createFooterWithDefaults } from "../footer-with-defaults/index.js";
|
|
5
|
+
import { resolveThemePackSsrSlug } from "../theme/theme-pack-provider.js";
|
|
7
6
|
import { deriveComposeMetaTitle, deriveBodyEndIslands } from "../chrome/derive.js";
|
|
7
|
+
import { derivePrimaryChromeSlots } from "../chrome/primary-slots.js";
|
|
8
8
|
import { assertChromeContext } from "../chrome/assert-chrome-context.js";
|
|
9
9
|
function createVersionsPageView(ctx) {
|
|
10
10
|
assertChromeContext(ctx, "createVersionsPageView");
|
|
@@ -14,13 +14,12 @@ function createVersionsPageView(ctx) {
|
|
|
14
14
|
const withBase = ctx.withBase;
|
|
15
15
|
const composeMetaTitle = deriveComposeMetaTitle(ctx);
|
|
16
16
|
const HeadWithDefaults = createHeadWithDefaults(ctx);
|
|
17
|
-
const HeaderWithDefaults =
|
|
18
|
-
ctx
|
|
19
|
-
);
|
|
20
|
-
const FooterWithDefaults = createFooterWithDefaults(
|
|
21
|
-
ctx
|
|
22
|
-
);
|
|
17
|
+
const { Header: HeaderWithDefaults, Footer: FooterWithDefaults } = derivePrimaryChromeSlots(ctx);
|
|
23
18
|
const BodyEndIslands = deriveBodyEndIslands(ctx);
|
|
19
|
+
const dataThemePack = resolveThemePackSsrSlug(
|
|
20
|
+
ctx.themePackRegistry,
|
|
21
|
+
ctx.settings
|
|
22
|
+
);
|
|
24
23
|
function VersionsPageView({ locale }) {
|
|
25
24
|
const isDefault = locale === defaultLocale;
|
|
26
25
|
const prefix = isDefault ? "" : `/${locale}`;
|
|
@@ -53,6 +52,7 @@ function createVersionsPageView(ctx) {
|
|
|
53
52
|
title: composeMetaTitle(pageTitle),
|
|
54
53
|
head: /* @__PURE__ */ jsx(HeadWithDefaults, { title: pageTitle }),
|
|
55
54
|
lang: locale,
|
|
55
|
+
dataThemePack,
|
|
56
56
|
noindex: settings.noindex,
|
|
57
57
|
hideSidebar: true,
|
|
58
58
|
hideToc: true,
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default z-index tiers — 13 tiers, `content` (0) through `drag` (90).
|
|
3
|
+
*
|
|
4
|
+
* Ported from the `create-zudo-doc` base template's
|
|
5
|
+
* `src/config/z-index-tokens.ts` `Z_INDEX_TIERS` export (epic
|
|
6
|
+
* zudolab/zudo-doc#2651, S4 #2654). Consumed by the theme-CSS default
|
|
7
|
+
* (#2655) for the shipped `@theme` z-index block; a project's own
|
|
8
|
+
* `gen-z-index` codegen (from `@takazudo/zudo-doc`'s `gen-z-index` bin)
|
|
9
|
+
* becomes opt-in customization on top of this default rather than the only
|
|
10
|
+
* source.
|
|
11
|
+
*
|
|
12
|
+
* Only `name`/`value` are carried in the exported shape — `purpose`/`kind`
|
|
13
|
+
* were documentation-only in the template and are preserved below as source
|
|
14
|
+
* comments instead.
|
|
15
|
+
*
|
|
16
|
+
* Strategy (from zudolab/zudo-css-wisdom z-index-strategy): semantic single-
|
|
17
|
+
* namespace tokens — names describe ROLES, never magnitudes. One flat ordered
|
|
18
|
+
* list. Values are deliberately gapped but otherwise arbitrary: renaming and
|
|
19
|
+
* reordering is cheap, which is the whole point. Tailwind v4 reads the
|
|
20
|
+
* `--z-index-<name>` theme key and generates a `z-<name>` utility, so e.g.
|
|
21
|
+
* `@theme { --z-index-toolbar: 20 }` produces `.z-toolbar { z-index: 20 }`.
|
|
22
|
+
*
|
|
23
|
+
* `local-1`/`local-2`/`local-3` ("local" kind in the template) are anonymous
|
|
24
|
+
* reusable helpers for promoting a child WITHIN a parent stacking context
|
|
25
|
+
* (`isolation: isolate` / `position: relative`), not a position on the
|
|
26
|
+
* global stacking scale. Every other tier is "global".
|
|
27
|
+
*
|
|
28
|
+
* Rationale for the two zudo-doc-specific additions (NOT in the generic
|
|
29
|
+
* overlay-centric strategy scale):
|
|
30
|
+
* - `sidebar` — persistent layout chrome (desktop sidebar, TOC, sidebar-toggle
|
|
31
|
+
* handle, resizer handle). The strategy's scale has no persistent-sidebar/TOC
|
|
32
|
+
* tier. `toolbar` (the sticky header) is deliberately placed ABOVE `sidebar`
|
|
33
|
+
* to preserve the existing header-wins ordering; they do not overlap
|
|
34
|
+
* spatially, but the historical relationship is kept explicit.
|
|
35
|
+
* - `drag` — transient drag affordance (sidebar-resizer ghost line). Replaces
|
|
36
|
+
* the old `z-9999` anti-pattern with a named top-of-steady-UI tier.
|
|
37
|
+
*
|
|
38
|
+
* `popover`, `toast`, and `tooltip` are reserved canonical tiers from the
|
|
39
|
+
* strategy's scale — kept for completeness (and so downstream `create-zudo-doc`
|
|
40
|
+
* users inherit the full scale) even though zudo-doc does not use them yet.
|
|
41
|
+
*/
|
|
42
|
+
export declare const defaultZIndexTiers: ReadonlyArray<{
|
|
43
|
+
name: string;
|
|
44
|
+
value: number;
|
|
45
|
+
}>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const defaultZIndexTiers = [
|
|
2
|
+
// global — default in-flow content (implicit baseline)
|
|
3
|
+
{ name: "content", value: 0 },
|
|
4
|
+
// local — child promotion inside an isolated parent stacking context
|
|
5
|
+
{ name: "local-1", value: 1 },
|
|
6
|
+
// local — child promotion inside an isolated parent stacking context
|
|
7
|
+
{ name: "local-2", value: 2 },
|
|
8
|
+
// local — child promotion inside an isolated parent stacking context
|
|
9
|
+
{ name: "local-3", value: 3 },
|
|
10
|
+
// global — persistent layout chrome: desktop sidebar, TOC, sidebar-toggle
|
|
11
|
+
// handle, resizer handle
|
|
12
|
+
{ name: "sidebar", value: 10 },
|
|
13
|
+
// global — sticky top header (sits above sidebar chrome)
|
|
14
|
+
{ name: "toolbar", value: 20 },
|
|
15
|
+
// global — header menus, version/language switchers
|
|
16
|
+
{ name: "dropdown", value: 30 },
|
|
17
|
+
// global — reserved: inline popovers (canonical scale; not yet used)
|
|
18
|
+
{ name: "popover", value: 40 },
|
|
19
|
+
// global — mobile drawer backdrop, <dialog> ::backdrop
|
|
20
|
+
{ name: "modal-backdrop", value: 50 },
|
|
21
|
+
// global — mobile sidebar drawer panel, search <dialog>
|
|
22
|
+
{ name: "modal", value: 60 },
|
|
23
|
+
// global — reserved: transient notifications (canonical scale; not yet used)
|
|
24
|
+
{ name: "toast", value: 70 },
|
|
25
|
+
// global — reserved: highest steady UI layer, below only the transient drag
|
|
26
|
+
// tier (canonical scale; not yet used)
|
|
27
|
+
{ name: "tooltip", value: 80 },
|
|
28
|
+
// global — transient drag affordance: sidebar-resizer ghost line (replaces
|
|
29
|
+
// the z-9999 anti-pattern)
|
|
30
|
+
{ name: "drag", value: 90 }
|
|
31
|
+
];
|
|
32
|
+
export {
|
|
33
|
+
defaultZIndexTiers
|
|
34
|
+
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
import type { ComponentChildren, VNode } from "preact";
|
|
5
5
|
import { findPath } from "./find-path.js";
|
|
6
|
-
import type { BreadcrumbItem,
|
|
6
|
+
import type { BreadcrumbItem, BreadcrumbNode } from "./types.js";
|
|
7
7
|
import { ChevronRight } from "../icons/index.js";
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -18,7 +18,7 @@ import { ChevronRight } from "../icons/index.js";
|
|
|
18
18
|
* with the original Astro breadcrumb component.
|
|
19
19
|
*/
|
|
20
20
|
export function buildBreadcrumbItems(
|
|
21
|
-
tree:
|
|
21
|
+
tree: BreadcrumbNode[],
|
|
22
22
|
currentId: string,
|
|
23
23
|
homeHref: string,
|
|
24
24
|
): BreadcrumbItem[] {
|
|
@@ -111,8 +111,8 @@ export interface BreadcrumbProps {
|
|
|
111
111
|
/** Pre-built items, or omit and pass `tree` + `currentId` instead. */
|
|
112
112
|
items?: BreadcrumbItem[];
|
|
113
113
|
/** Sidebar tree to derive the trail from. Required when `items` is omitted. */
|
|
114
|
-
tree?:
|
|
115
|
-
/** Id of the current page (matches
|
|
114
|
+
tree?: BreadcrumbNode[];
|
|
115
|
+
/** Id of the current page (matches BreadcrumbNode.id). Required when `items` is omitted. */
|
|
116
116
|
currentId?: string;
|
|
117
117
|
/** Href for the leading home rung. Defaults to "/". */
|
|
118
118
|
homeHref?: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BreadcrumbNode
|
|
1
|
+
import type { BreadcrumbNode } from "./types.js";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Walk the sidebar tree and return the chain of nodes from the root
|
|
@@ -11,7 +11,7 @@ import type { BreadcrumbNode, SidebarNode } from "./types.js";
|
|
|
11
11
|
* ancestry. The home/root crumb is the renderer's responsibility — this
|
|
12
12
|
* helper deals strictly with the tree itself.
|
|
13
13
|
*/
|
|
14
|
-
export function findPath<T extends BreadcrumbNode =
|
|
14
|
+
export function findPath<T extends BreadcrumbNode = BreadcrumbNode>(
|
|
15
15
|
nodes: readonly T[],
|
|
16
16
|
targetId: string,
|
|
17
17
|
): T[] {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { Breadcrumb, buildBreadcrumbItems } from "./breadcrumb.js";
|
|
2
2
|
export type { BreadcrumbProps } from "./breadcrumb.js";
|
|
3
3
|
export { findPath } from "./find-path.js";
|
|
4
|
-
export type { BreadcrumbItem,
|
|
4
|
+
export type { BreadcrumbItem, BreadcrumbNode } from "./types.js";
|
|
@@ -16,12 +16,6 @@ export interface BreadcrumbNode {
|
|
|
16
16
|
children?: readonly BreadcrumbNode[];
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
/**
|
|
20
|
-
* Backward-compatible alias retained for callers that previously imported
|
|
21
|
-
* `SidebarNode` from this subpath.
|
|
22
|
-
*/
|
|
23
|
-
export type SidebarNode = BreadcrumbNode;
|
|
24
|
-
|
|
25
19
|
/**
|
|
26
20
|
* One rung of the breadcrumb trail. `href` is omitted on the final
|
|
27
21
|
* (current-page) item so the renderer can present it as plain text.
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
// component zips the `tabs` label array with the `<pre data-lang>` children
|
|
15
15
|
// by index, wrapping each in a <TabItem> with the matching label.
|
|
16
16
|
//
|
|
17
|
-
// Code inside each <pre> is raw text (
|
|
18
|
-
//
|
|
17
|
+
// Code inside each <pre> is raw text (the class-mode highlighting pipeline
|
|
18
|
+
// does not run inside code-group fences). We render
|
|
19
19
|
// the <pre> inside a <TabItem> with explicit styling via Tailwind tokens
|
|
20
20
|
// so it looks like a code block visually.
|
|
21
21
|
//
|
|
@@ -460,7 +460,7 @@ export function DocHistory({ slug, locale, basePath = "/" }: DocHistoryProps) {
|
|
|
460
460
|
// under "index" (an empty path segment is unroutable — the server regex
|
|
461
461
|
// /^\/doc-history\/(.+)\.json$/ rejects ""). The host wrapper already passes
|
|
462
462
|
// the sentineled slug, but defend the boundary so the component is correct
|
|
463
|
-
// for any caller. Mirrors `toHistorySlug` in
|
|
463
|
+
// for any caller. Mirrors `toHistorySlug` in @takazudo/zudo-doc/slug (inlined here
|
|
464
464
|
// rather than imported to keep this bundled island free of host-util
|
|
465
465
|
// coupling — see .template-drift-allowlist). (#1891)
|
|
466
466
|
const historySlug = slug === "" ? "index" : slug;
|
|
@@ -50,7 +50,7 @@ export function createDocPager<S extends Settings = Settings>(
|
|
|
50
50
|
*/
|
|
51
51
|
function DocPager({ prev, next, locale }: DocPagerProps): JSX.Element {
|
|
52
52
|
return (
|
|
53
|
-
<nav class="mt-vsp-2xl grid grid-cols-2 gap-hsp-xl">
|
|
53
|
+
<nav class="mt-vsp-2xl grid grid-cols-2 gap-hsp-xl" data-doc-pager>
|
|
54
54
|
{prev ? (
|
|
55
55
|
<a
|
|
56
56
|
href={prev.href}
|
package/eject/footer/footer.tsx
CHANGED
|
@@ -87,6 +87,7 @@ export function Footer(props: FooterProps): VNode {
|
|
|
87
87
|
return (
|
|
88
88
|
<footer
|
|
89
89
|
class="border-t border-muted bg-surface"
|
|
90
|
+
data-footer
|
|
90
91
|
// Strategy B: locale-keyed persist (zudolab/zudo-doc#1546).
|
|
91
92
|
// The footer's locale-aware bits (link labels, copyright) are SSR'd
|
|
92
93
|
// per locale; a locale-keyed persist key (`footer-en`, `footer-ja`)
|