@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
|
@@ -1,346 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
emptyOverrides
|
|
3
|
-
} from "./design-token-types.js";
|
|
4
|
-
import {
|
|
5
|
-
SEMANTIC_KEYS,
|
|
6
|
-
SEMANTIC_RAMP_DEFAULTS,
|
|
7
|
-
STATE_ROLES
|
|
8
|
-
} from "../color-scheme-utils.js";
|
|
9
|
-
const DESIGN_TOKEN_SCHEMA = "zudo-doc-design-tokens/v3";
|
|
10
|
-
const LEGACY_SCHEMA_V1 = "zudo-doc-design-tokens/v1";
|
|
11
|
-
const LEGACY_SCHEMA_V2 = "zudo-doc-design-tokens/v2";
|
|
12
|
-
const BASE_RAMP_LENGTH = 5;
|
|
13
|
-
const ACCENT_RAMP_LENGTH = 3;
|
|
14
|
-
class DesignTokenSchemaError extends Error {
|
|
15
|
-
reason;
|
|
16
|
-
actualSchema;
|
|
17
|
-
constructor(reason, message, actualSchema) {
|
|
18
|
-
super(message);
|
|
19
|
-
this.name = "DesignTokenSchemaError";
|
|
20
|
-
this.reason = reason;
|
|
21
|
-
this.actualSchema = actualSchema;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
function serialize(state, opts) {
|
|
25
|
-
const now = opts.now ? opts.now() : /* @__PURE__ */ new Date();
|
|
26
|
-
const out = {
|
|
27
|
-
$schema: DESIGN_TOKEN_SCHEMA,
|
|
28
|
-
exportedAt: now.toISOString()
|
|
29
|
-
};
|
|
30
|
-
const color = serializeColor(state.color, opts);
|
|
31
|
-
if (color) out.color = color;
|
|
32
|
-
const spacing = serializeOverrides(opts.manifest.spacing, state.spacing, opts);
|
|
33
|
-
if (spacing) out.spacing = spacing;
|
|
34
|
-
const font = serializeOverrides(opts.manifest.font, state.font, opts);
|
|
35
|
-
if (font) out.font = font;
|
|
36
|
-
const size = serializeOverrides(opts.manifest.size, state.size, opts);
|
|
37
|
-
if (size) out.size = size;
|
|
38
|
-
return out;
|
|
39
|
-
}
|
|
40
|
-
function serializeColor(color, opts) {
|
|
41
|
-
const baseline = opts.colorDefaults;
|
|
42
|
-
const full = opts.includeDefaults === true;
|
|
43
|
-
const out = {};
|
|
44
|
-
let changed = false;
|
|
45
|
-
if (full || !baseline || !deepEqual(color.ramps, baseline.ramps)) {
|
|
46
|
-
out.ramps = cloneRamps(color.ramps);
|
|
47
|
-
changed = true;
|
|
48
|
-
}
|
|
49
|
-
if (full || !baseline || !deepEqual(color.map, baseline.map)) {
|
|
50
|
-
out.map = cloneMap(color.map);
|
|
51
|
-
changed = true;
|
|
52
|
-
}
|
|
53
|
-
return changed ? out : void 0;
|
|
54
|
-
}
|
|
55
|
-
function serializeOverrides(manifest, overrides, opts) {
|
|
56
|
-
const full = opts.includeDefaults === true;
|
|
57
|
-
const out = {};
|
|
58
|
-
let wrote = false;
|
|
59
|
-
if (full) {
|
|
60
|
-
for (const t of manifest) {
|
|
61
|
-
if (t.readonly) continue;
|
|
62
|
-
const v = overrides[t.id];
|
|
63
|
-
out[t.cssVar] = typeof v === "string" && v.length > 0 ? v : t.default;
|
|
64
|
-
wrote = true;
|
|
65
|
-
}
|
|
66
|
-
} else {
|
|
67
|
-
for (const t of manifest) {
|
|
68
|
-
if (t.readonly) continue;
|
|
69
|
-
const v = overrides[t.id];
|
|
70
|
-
if (typeof v === "string" && v.length > 0 && v !== t.default) {
|
|
71
|
-
out[t.cssVar] = v;
|
|
72
|
-
wrote = true;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return wrote ? out : void 0;
|
|
77
|
-
}
|
|
78
|
-
function deserialize(input, opts) {
|
|
79
|
-
if (input === null || typeof input !== "object") {
|
|
80
|
-
throw new DesignTokenSchemaError(
|
|
81
|
-
"not-object",
|
|
82
|
-
"Input is not a JSON object."
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
const obj = input;
|
|
86
|
-
const schema = obj.$schema;
|
|
87
|
-
if (schema === void 0) {
|
|
88
|
-
throw new DesignTokenSchemaError(
|
|
89
|
-
"schema-missing",
|
|
90
|
-
`Missing "$schema" key. Expected "${DESIGN_TOKEN_SCHEMA}".`
|
|
91
|
-
);
|
|
92
|
-
}
|
|
93
|
-
const legacyV1 = schema === LEGACY_SCHEMA_V1;
|
|
94
|
-
const legacyV2 = schema === LEGACY_SCHEMA_V2;
|
|
95
|
-
if (schema !== DESIGN_TOKEN_SCHEMA && !legacyV1 && !legacyV2) {
|
|
96
|
-
throw new DesignTokenSchemaError(
|
|
97
|
-
"schema-mismatch",
|
|
98
|
-
`Unsupported "$schema" value: ${JSON.stringify(schema)}. Expected "${DESIGN_TOKEN_SCHEMA}".`,
|
|
99
|
-
schema
|
|
100
|
-
);
|
|
101
|
-
}
|
|
102
|
-
const warnings = [];
|
|
103
|
-
const unknownTokens = [];
|
|
104
|
-
const baseline = opts.colorDefaults ?? neutralColorDefaults();
|
|
105
|
-
const color = deserializeColor(obj.color, baseline, warnings, legacyV1, legacyV2);
|
|
106
|
-
const spacing = deserializeOverrides(
|
|
107
|
-
obj.spacing,
|
|
108
|
-
opts.manifest.spacing,
|
|
109
|
-
"spacing",
|
|
110
|
-
unknownTokens,
|
|
111
|
-
warnings
|
|
112
|
-
);
|
|
113
|
-
const font = deserializeOverrides(
|
|
114
|
-
obj.font,
|
|
115
|
-
opts.manifest.font,
|
|
116
|
-
"font",
|
|
117
|
-
unknownTokens,
|
|
118
|
-
warnings
|
|
119
|
-
);
|
|
120
|
-
const size = deserializeOverrides(
|
|
121
|
-
obj.size,
|
|
122
|
-
opts.manifest.size,
|
|
123
|
-
"size",
|
|
124
|
-
unknownTokens,
|
|
125
|
-
warnings
|
|
126
|
-
);
|
|
127
|
-
return {
|
|
128
|
-
state: { color, spacing, font, size },
|
|
129
|
-
unknownTokens,
|
|
130
|
-
warnings
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
function isLegacyColorPayload(raw) {
|
|
134
|
-
if (!raw || typeof raw !== "object") return false;
|
|
135
|
-
const c = raw;
|
|
136
|
-
return Array.isArray(c.palette) || c.base !== void 0;
|
|
137
|
-
}
|
|
138
|
-
function deserializeColor(raw, baseline, warnings, legacyV1, legacyV2) {
|
|
139
|
-
if (legacyV1 || isLegacyColorPayload(raw)) {
|
|
140
|
-
const msg = "Legacy v1 design-token color state detected; color was reset to the default scheme (the old 16-slot palette has no faithful ramp mapping).";
|
|
141
|
-
warnings.push(msg);
|
|
142
|
-
console.warn(`[zudo-doc] ${msg}`);
|
|
143
|
-
return cloneScheme(baseline);
|
|
144
|
-
}
|
|
145
|
-
if (legacyV2) {
|
|
146
|
-
const msg = "Legacy v2 design-token color state detected (pre-5/3-minimize ramps); color was reset to the default scheme.";
|
|
147
|
-
warnings.push(msg);
|
|
148
|
-
console.warn(`[zudo-doc] ${msg}`);
|
|
149
|
-
return cloneScheme(baseline);
|
|
150
|
-
}
|
|
151
|
-
if (!raw || typeof raw !== "object") {
|
|
152
|
-
return cloneScheme(baseline);
|
|
153
|
-
}
|
|
154
|
-
const c = raw;
|
|
155
|
-
const ramps = parseRamps(c.ramps, baseline.ramps, warnings);
|
|
156
|
-
const map = parseMap(c.map, baseline.map, warnings);
|
|
157
|
-
return { ramps, map };
|
|
158
|
-
}
|
|
159
|
-
function parseRamps(raw, baseline, warnings) {
|
|
160
|
-
if (raw === void 0) return cloneRamps(baseline);
|
|
161
|
-
if (!raw || typeof raw !== "object") {
|
|
162
|
-
warnings.push("color.ramps is not an object; kept baseline ramps.");
|
|
163
|
-
return cloneRamps(baseline);
|
|
164
|
-
}
|
|
165
|
-
const r = raw;
|
|
166
|
-
const base = parseOklchArray(r.base, BASE_RAMP_LENGTH, "color.ramps.base", warnings) ?? [...baseline.base];
|
|
167
|
-
const accent = parseOklchArray(r.accent, ACCENT_RAMP_LENGTH, "color.ramps.accent", warnings) ?? [...baseline.accent];
|
|
168
|
-
const state = parseState(r.state, baseline.state, warnings);
|
|
169
|
-
return { base, accent, state };
|
|
170
|
-
}
|
|
171
|
-
function parseOklchArray(raw, expectedLength, label, warnings) {
|
|
172
|
-
if (!Array.isArray(raw)) {
|
|
173
|
-
warnings.push(`${label}: expected an array of ${expectedLength} strings; kept baseline.`);
|
|
174
|
-
return null;
|
|
175
|
-
}
|
|
176
|
-
const strings = raw.filter((v) => typeof v === "string" && v.length > 0);
|
|
177
|
-
if (strings.length !== expectedLength || strings.length !== raw.length) {
|
|
178
|
-
warnings.push(
|
|
179
|
-
`${label}: expected ${expectedLength} non-empty string entries; got ${raw.length} (${strings.length} valid). Kept baseline.`
|
|
180
|
-
);
|
|
181
|
-
return null;
|
|
182
|
-
}
|
|
183
|
-
return strings;
|
|
184
|
-
}
|
|
185
|
-
function parseState(raw, baseline, warnings) {
|
|
186
|
-
const src = raw && typeof raw === "object" ? raw : {};
|
|
187
|
-
const out = {};
|
|
188
|
-
for (const role of STATE_ROLES) {
|
|
189
|
-
const v = src[role];
|
|
190
|
-
if (typeof v === "string" && v.length > 0) {
|
|
191
|
-
out[role] = v;
|
|
192
|
-
} else {
|
|
193
|
-
if (v !== void 0) {
|
|
194
|
-
warnings.push(`color.ramps.state.${role} is not a non-empty string; kept baseline.`);
|
|
195
|
-
}
|
|
196
|
-
out[role] = baseline[role];
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
return out;
|
|
200
|
-
}
|
|
201
|
-
function parseMap(raw, baseline, warnings) {
|
|
202
|
-
if (raw === void 0) return cloneMap(baseline);
|
|
203
|
-
if (!raw || typeof raw !== "object") {
|
|
204
|
-
warnings.push("color.map is not an object; kept baseline map.");
|
|
205
|
-
return cloneMap(baseline);
|
|
206
|
-
}
|
|
207
|
-
const m = raw;
|
|
208
|
-
const semRaw = m.semantic && typeof m.semantic === "object" ? m.semantic : {};
|
|
209
|
-
const semantic = {};
|
|
210
|
-
for (const key of SEMANTIC_KEYS) {
|
|
211
|
-
semantic[key] = parseRef(semRaw[key], baseline.semantic[key], `color.map.semantic.${key}`, warnings);
|
|
212
|
-
}
|
|
213
|
-
return {
|
|
214
|
-
bg: parseRef(m.bg, baseline.bg, "color.map.bg", warnings),
|
|
215
|
-
fg: parseRef(m.fg, baseline.fg, "color.map.fg", warnings),
|
|
216
|
-
selectionBg: parseRef(m.selectionBg, baseline.selectionBg, "color.map.selectionBg", warnings),
|
|
217
|
-
selectionFg: parseRef(m.selectionFg, baseline.selectionFg, "color.map.selectionFg", warnings),
|
|
218
|
-
semantic
|
|
219
|
-
};
|
|
220
|
-
}
|
|
221
|
-
function parseRef(raw, fallback, label, warnings) {
|
|
222
|
-
if (raw === void 0) return cloneRef(fallback);
|
|
223
|
-
if (isValidRampRef(raw)) return cloneRef(raw);
|
|
224
|
-
warnings.push(`${label} is not a valid RampRef (${JSON.stringify(raw)}); kept baseline.`);
|
|
225
|
-
return cloneRef(fallback);
|
|
226
|
-
}
|
|
227
|
-
function isValidRampRef(v) {
|
|
228
|
-
if (typeof v === "string") return v.length > 0;
|
|
229
|
-
if (!v || typeof v !== "object") return false;
|
|
230
|
-
const o = v;
|
|
231
|
-
if ("base" in o) return isRampIndex(o.base);
|
|
232
|
-
if ("accent" in o) return isRampIndex(o.accent);
|
|
233
|
-
if ("state" in o) {
|
|
234
|
-
return typeof o.state === "string" && STATE_ROLES.includes(o.state);
|
|
235
|
-
}
|
|
236
|
-
return false;
|
|
237
|
-
}
|
|
238
|
-
function isRampIndex(v) {
|
|
239
|
-
return typeof v === "number" && Number.isInteger(v) && v >= 0;
|
|
240
|
-
}
|
|
241
|
-
function deserializeOverrides(raw, manifest, label, unknownTokens, warnings) {
|
|
242
|
-
if (!raw || typeof raw !== "object") return emptyOverrides();
|
|
243
|
-
const byVar = /* @__PURE__ */ new Map();
|
|
244
|
-
for (const t of manifest) {
|
|
245
|
-
if (t.readonly) continue;
|
|
246
|
-
byVar.set(t.cssVar, t);
|
|
247
|
-
}
|
|
248
|
-
const out = {};
|
|
249
|
-
for (const [cssVar, value] of Object.entries(raw)) {
|
|
250
|
-
const t = byVar.get(cssVar);
|
|
251
|
-
if (!t) {
|
|
252
|
-
unknownTokens.push(cssVar);
|
|
253
|
-
continue;
|
|
254
|
-
}
|
|
255
|
-
if (typeof value !== "string" || value.length === 0) {
|
|
256
|
-
warnings.push(
|
|
257
|
-
`${label}.${cssVar} is not a non-empty string; ignored.`
|
|
258
|
-
);
|
|
259
|
-
continue;
|
|
260
|
-
}
|
|
261
|
-
out[t.id] = value;
|
|
262
|
-
}
|
|
263
|
-
return out;
|
|
264
|
-
}
|
|
265
|
-
function cloneRef(ref) {
|
|
266
|
-
return typeof ref === "string" ? ref : { ...ref };
|
|
267
|
-
}
|
|
268
|
-
function cloneRamps(ramps) {
|
|
269
|
-
return {
|
|
270
|
-
base: [...ramps.base],
|
|
271
|
-
accent: [...ramps.accent],
|
|
272
|
-
state: { ...ramps.state }
|
|
273
|
-
};
|
|
274
|
-
}
|
|
275
|
-
function cloneMap(map) {
|
|
276
|
-
const semantic = {};
|
|
277
|
-
for (const key of SEMANTIC_KEYS) {
|
|
278
|
-
semantic[key] = cloneRef(map.semantic[key]);
|
|
279
|
-
}
|
|
280
|
-
return {
|
|
281
|
-
bg: cloneRef(map.bg),
|
|
282
|
-
fg: cloneRef(map.fg),
|
|
283
|
-
selectionBg: cloneRef(map.selectionBg),
|
|
284
|
-
selectionFg: cloneRef(map.selectionFg),
|
|
285
|
-
semantic
|
|
286
|
-
};
|
|
287
|
-
}
|
|
288
|
-
function cloneScheme(scheme) {
|
|
289
|
-
return { ramps: cloneRamps(scheme.ramps), map: cloneMap(scheme.map) };
|
|
290
|
-
}
|
|
291
|
-
function deepEqual(a, b) {
|
|
292
|
-
if (a === b) return true;
|
|
293
|
-
if (typeof a !== typeof b) return false;
|
|
294
|
-
if (Array.isArray(a) || Array.isArray(b)) {
|
|
295
|
-
if (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length) return false;
|
|
296
|
-
return a.every((v, i) => deepEqual(v, b[i]));
|
|
297
|
-
}
|
|
298
|
-
if (a && b && typeof a === "object" && typeof b === "object") {
|
|
299
|
-
const ao = a;
|
|
300
|
-
const bo = b;
|
|
301
|
-
const aKeys = Object.keys(ao);
|
|
302
|
-
const bKeys = Object.keys(bo);
|
|
303
|
-
if (aKeys.length !== bKeys.length) return false;
|
|
304
|
-
return aKeys.every((k) => Object.prototype.hasOwnProperty.call(bo, k) && deepEqual(ao[k], bo[k]));
|
|
305
|
-
}
|
|
306
|
-
return false;
|
|
307
|
-
}
|
|
308
|
-
function neutralColorDefaults() {
|
|
309
|
-
const base = [
|
|
310
|
-
"oklch(0.965 0 0)",
|
|
311
|
-
"oklch(0.705 0 0)",
|
|
312
|
-
"oklch(0.480 0 0)",
|
|
313
|
-
"oklch(0.300 0 0)",
|
|
314
|
-
"oklch(0.185 0 0)"
|
|
315
|
-
];
|
|
316
|
-
const accent = [
|
|
317
|
-
"oklch(0.755 0 0)",
|
|
318
|
-
"oklch(0.700 0 0)",
|
|
319
|
-
"oklch(0.470 0 0)"
|
|
320
|
-
];
|
|
321
|
-
return {
|
|
322
|
-
ramps: {
|
|
323
|
-
base,
|
|
324
|
-
accent,
|
|
325
|
-
state: {
|
|
326
|
-
danger: "oklch(0.640 0.170 25)",
|
|
327
|
-
success: "oklch(0.680 0.145 145)",
|
|
328
|
-
warning: "oklch(0.760 0.135 82)",
|
|
329
|
-
info: "oklch(0.680 0.130 245)"
|
|
330
|
-
}
|
|
331
|
-
},
|
|
332
|
-
map: {
|
|
333
|
-
bg: { base: 4 },
|
|
334
|
-
fg: { base: 0 },
|
|
335
|
-
selectionBg: { base: 2 },
|
|
336
|
-
selectionFg: { base: 0 },
|
|
337
|
-
semantic: { ...SEMANTIC_RAMP_DEFAULTS }
|
|
338
|
-
}
|
|
339
|
-
};
|
|
340
|
-
}
|
|
341
|
-
export {
|
|
342
|
-
DESIGN_TOKEN_SCHEMA,
|
|
343
|
-
DesignTokenSchemaError,
|
|
344
|
-
deserialize,
|
|
345
|
-
serialize
|
|
346
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { ColorScheme } from "../color-scheme-utils.js";
|
|
2
|
-
/** The per-scheme color state the design-token panel edits — a ramp-native
|
|
3
|
-
* `ColorScheme`. Retained as a named alias so call sites reading
|
|
4
|
-
* `ColorTweakState` keep compiling after the ramp restructure. */
|
|
5
|
-
export type ColorTweakState = ColorScheme;
|
|
6
|
-
export type TokenOverrides = Record<string, string>;
|
|
7
|
-
export interface TweakState {
|
|
8
|
-
color: ColorScheme;
|
|
9
|
-
spacing: TokenOverrides;
|
|
10
|
-
font: TokenOverrides;
|
|
11
|
-
size: TokenOverrides;
|
|
12
|
-
}
|
|
13
|
-
export declare function emptyOverrides(): TokenOverrides;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
export declare const BRIDGE_SOURCE: "zudo-doc-theme-bridge";
|
|
2
|
-
export type CssVarPair = readonly [name: string, value: string];
|
|
3
|
-
export interface ApplyCssVarsMessage {
|
|
4
|
-
source: typeof BRIDGE_SOURCE;
|
|
5
|
-
type: "apply-css-vars";
|
|
6
|
-
vars: ReadonlyArray<CssVarPair>;
|
|
7
|
-
}
|
|
8
|
-
export interface ClearCssVarsMessage {
|
|
9
|
-
source: typeof BRIDGE_SOURCE;
|
|
10
|
-
type: "clear-css-vars";
|
|
11
|
-
names: ReadonlyArray<string>;
|
|
12
|
-
}
|
|
13
|
-
export interface ReadyMessage {
|
|
14
|
-
source: typeof BRIDGE_SOURCE;
|
|
15
|
-
type: "ready";
|
|
16
|
-
}
|
|
17
|
-
export interface ErrorMessage {
|
|
18
|
-
source: typeof BRIDGE_SOURCE;
|
|
19
|
-
type: "error";
|
|
20
|
-
reason: string;
|
|
21
|
-
}
|
|
22
|
-
export type BridgeMessage = ApplyCssVarsMessage | ClearCssVarsMessage | ReadyMessage | ErrorMessage;
|
|
23
|
-
/**
|
|
24
|
-
* Type guard. Accepts any postMessage payload and confirms it is a bridge
|
|
25
|
-
* envelope. Foreign messages are ignored silently.
|
|
26
|
-
*/
|
|
27
|
-
export declare function isBridgeMessage(value: unknown): value is BridgeMessage;
|
|
28
|
-
/** Send `apply-css-vars` to the iframe. No-op when the iframe has not loaded. */
|
|
29
|
-
export declare function sendApplyCssVars(iframe: HTMLIFrameElement | null, vars: ReadonlyArray<CssVarPair>): void;
|
|
30
|
-
/** Send `clear-css-vars` to the iframe so it removes inline overrides. */
|
|
31
|
-
export declare function sendClearCssVars(iframe: HTMLIFrameElement | null, names: ReadonlyArray<string>): void;
|
|
32
|
-
/**
|
|
33
|
-
* Install a message listener inside the preview iframe document that applies
|
|
34
|
-
* any incoming CSS-var batches onto `documentElement.style`. Returns a
|
|
35
|
-
* teardown function. Intended to be called once at iframe boot.
|
|
36
|
-
*/
|
|
37
|
-
export declare function installIframeReceiver(target?: Window): () => void;
|
|
38
|
-
/**
|
|
39
|
-
* Install a `ready` listener on the panel side so callers can defer the
|
|
40
|
-
* initial CSS-var sync until the iframe document has booted.
|
|
41
|
-
*/
|
|
42
|
-
export declare function onIframeReady(expectedSource: Window | null, callback: () => void): () => void;
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
const BRIDGE_SOURCE = "zudo-doc-theme-bridge";
|
|
2
|
-
function isBridgeMessage(value) {
|
|
3
|
-
if (!value || typeof value !== "object") return false;
|
|
4
|
-
const v = value;
|
|
5
|
-
return v.source === BRIDGE_SOURCE && typeof v.type === "string";
|
|
6
|
-
}
|
|
7
|
-
function sendApplyCssVars(iframe, vars) {
|
|
8
|
-
const win = iframe?.contentWindow;
|
|
9
|
-
if (!win) return;
|
|
10
|
-
const message = {
|
|
11
|
-
source: BRIDGE_SOURCE,
|
|
12
|
-
type: "apply-css-vars",
|
|
13
|
-
vars
|
|
14
|
-
};
|
|
15
|
-
win.postMessage(message, window.location.origin);
|
|
16
|
-
}
|
|
17
|
-
function sendClearCssVars(iframe, names) {
|
|
18
|
-
const win = iframe?.contentWindow;
|
|
19
|
-
if (!win) return;
|
|
20
|
-
const message = {
|
|
21
|
-
source: BRIDGE_SOURCE,
|
|
22
|
-
type: "clear-css-vars",
|
|
23
|
-
names
|
|
24
|
-
};
|
|
25
|
-
win.postMessage(message, window.location.origin);
|
|
26
|
-
}
|
|
27
|
-
function installIframeReceiver(target = window) {
|
|
28
|
-
function handler(event) {
|
|
29
|
-
if (event.origin !== target.location.origin) return;
|
|
30
|
-
const data = event.data;
|
|
31
|
-
if (!isBridgeMessage(data)) return;
|
|
32
|
-
if (data.type === "apply-css-vars") {
|
|
33
|
-
const root = target.document.documentElement;
|
|
34
|
-
for (const [name, value] of data.vars) {
|
|
35
|
-
root.style.setProperty(name, value);
|
|
36
|
-
}
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
if (data.type === "clear-css-vars") {
|
|
40
|
-
const root = target.document.documentElement;
|
|
41
|
-
for (const name of data.names) {
|
|
42
|
-
root.style.removeProperty(name);
|
|
43
|
-
}
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
target.addEventListener("message", handler);
|
|
48
|
-
const parent = target.parent;
|
|
49
|
-
if (parent && parent !== target) {
|
|
50
|
-
const ready = { source: BRIDGE_SOURCE, type: "ready" };
|
|
51
|
-
parent.postMessage(ready, target.location.origin);
|
|
52
|
-
}
|
|
53
|
-
return () => target.removeEventListener("message", handler);
|
|
54
|
-
}
|
|
55
|
-
function onIframeReady(expectedSource, callback) {
|
|
56
|
-
function handler(event) {
|
|
57
|
-
if (event.origin !== window.location.origin) return;
|
|
58
|
-
if (expectedSource && event.source !== expectedSource) return;
|
|
59
|
-
if (!isBridgeMessage(event.data)) return;
|
|
60
|
-
if (event.data.type === "ready") callback();
|
|
61
|
-
}
|
|
62
|
-
window.addEventListener("message", handler);
|
|
63
|
-
return () => window.removeEventListener("message", handler);
|
|
64
|
-
}
|
|
65
|
-
export {
|
|
66
|
-
BRIDGE_SOURCE,
|
|
67
|
-
installIframeReceiver,
|
|
68
|
-
isBridgeMessage,
|
|
69
|
-
onIframeReady,
|
|
70
|
-
sendApplyCssVars,
|
|
71
|
-
sendClearCssVars
|
|
72
|
-
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|