@takazudo/zudo-doc 5.28.2 → 6.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 +22 -0
- package/README.md +49 -16
- package/bin/gen-z-index.mjs +18 -18
- package/dist/agent-docs/identity.d.ts +4 -0
- package/dist/agent-docs/identity.js +24 -0
- package/dist/agent-docs/index.d.ts +5 -0
- package/dist/agent-docs/index.js +5 -0
- package/dist/agent-docs/limits.d.ts +11 -0
- package/dist/agent-docs/limits.js +24 -0
- package/dist/agent-docs/search.d.ts +14 -0
- package/dist/agent-docs/search.js +82 -0
- package/dist/agent-docs/tokenize.d.ts +2 -0
- package/dist/agent-docs/tokenize.js +22 -0
- package/dist/agent-docs/types.d.ts +68 -0
- package/dist/agent-docs/types.js +0 -0
- package/dist/ai-chat-modal/index.d.ts +1 -4
- package/dist/ai-chat-modal/index.js +183 -123
- package/dist/asset-components/asset-card.d.ts +1 -2
- package/dist/asset-components/asset-card.js +12 -12
- package/dist/asset-components/asset-code.d.ts +1 -2
- package/dist/asset-components/asset-code.js +10 -10
- package/dist/asset-components/shared.d.ts +3 -4
- package/dist/asset-components/shared.js +4 -4
- package/dist/asset-index-page/body.d.ts +5 -6
- package/dist/asset-index-page/body.js +6 -6
- package/dist/asset-index-page/index.d.ts +1 -2
- package/dist/asset-index-page/index.js +1 -1
- package/dist/asset-page/body.d.ts +5 -9
- package/dist/asset-page/body.js +3 -3
- package/dist/asset-page/components.d.ts +16 -17
- package/dist/asset-page/components.js +10 -9
- package/dist/asset-page/index.d.ts +1 -2
- package/dist/asset-page/index.js +1 -1
- package/dist/auto-logo/index.d.ts +1 -2
- package/dist/auto-logo/index.js +2 -2
- package/dist/body-foot-util/body-foot-util-area.d.ts +3 -4
- package/dist/body-foot-util/body-foot-util-area.js +1 -2
- package/dist/body-foot-util/edit-link.d.ts +2 -3
- package/dist/body-foot-util/edit-link.js +1 -2
- package/dist/breadcrumb/breadcrumb.d.ts +6 -6
- package/dist/breadcrumb/breadcrumb.js +3 -4
- package/dist/category-nav/index.d.ts +1 -2
- package/dist/category-nav/index.js +11 -5
- package/dist/category-tree-nav/index.d.ts +1 -2
- package/dist/category-tree-nav/index.js +3 -3
- package/dist/chrome/derive.d.ts +18 -27
- package/dist/chrome/derive.js +47 -29
- package/dist/chrome/index.d.ts +5 -5
- package/dist/chrome/index.js +1 -1
- package/dist/chrome/island-data.d.ts +4 -0
- package/dist/chrome/island-data.js +52 -0
- package/dist/chrome/primary-slots.d.ts +2 -3
- package/dist/chrome-bindings.d.ts +28 -22
- package/dist/code-group/index.d.ts +3 -4
- package/dist/code-group/index.js +3 -7
- package/dist/code-syntax/code-block-enhancer.d.ts +1 -2
- package/dist/code-syntax/code-block-enhancer.js +2 -2
- package/dist/code-syntax/mermaid-init.d.ts +1 -2
- package/dist/code-syntax/mermaid-init.js +5 -2
- package/dist/code-syntax/tabs-init-script.js +1 -1
- package/dist/code-syntax/tabs-init.d.ts +1 -2
- package/dist/code-syntax/tabs-init.js +2 -2
- package/dist/code-syntax/tabs.d.ts +6 -6
- package/dist/code-syntax/tabs.js +8 -8
- package/dist/compiled.css +2933 -2943
- package/dist/config-assertions/index.d.ts +13 -0
- package/dist/config-assertions/index.js +14 -0
- package/dist/config.d.ts +36 -17
- package/dist/config.js +23 -95
- package/dist/content/content-blockquote.d.ts +2 -3
- package/dist/content/content-blockquote.js +3 -3
- package/dist/content/content-code.d.ts +3 -4
- package/dist/content/content-code.js +5 -5
- package/dist/content/content-link.d.ts +3 -4
- package/dist/content/content-link.js +10 -10
- package/dist/content/content-ol.d.ts +2 -3
- package/dist/content/content-ol.js +5 -4
- package/dist/content/content-paragraph.d.ts +2 -3
- package/dist/content/content-paragraph.js +1 -1
- package/dist/content/content-strong.d.ts +2 -3
- package/dist/content/content-strong.js +3 -3
- package/dist/content/content-table.d.ts +2 -3
- package/dist/content/content-table.js +4 -4
- package/dist/content/content-ul.d.ts +2 -3
- package/dist/content/content-ul.js +4 -4
- package/dist/content/heading-h2.d.ts +2 -3
- package/dist/content/heading-h2.js +4 -4
- package/dist/content/heading-h3.d.ts +2 -3
- package/dist/content/heading-h3.js +4 -4
- package/dist/content/heading-h4.d.ts +2 -3
- package/dist/content/heading-h4.js +4 -4
- package/dist/content-admonition/index.d.ts +3 -4
- package/dist/content-admonition/index.js +2 -2
- package/dist/content.css +35 -33
- package/dist/design-token-panel-bootstrap-controller.d.ts +178 -0
- package/dist/design-token-panel-bootstrap-controller.js +359 -0
- package/dist/design-token-panel-bootstrap-island.d.ts +5 -0
- package/dist/design-token-panel-bootstrap-island.js +19 -0
- package/dist/design-token-panel-bootstrap.d.ts +5 -195
- package/dist/design-token-panel-bootstrap.js +3 -288
- package/dist/desktop-sidebar-toggle-island/index.d.ts +2 -7
- package/dist/desktop-sidebar-toggle-island/index.js +2 -58
- package/dist/desktop-sidebar-toggle-island/island.d.ts +4 -0
- package/dist/desktop-sidebar-toggle-island/island.js +43 -0
- package/dist/desktop-sidebar-toggle-island/storage.d.ts +4 -0
- package/dist/desktop-sidebar-toggle-island/storage.js +29 -0
- package/dist/desktop-toc-toggle-island/index.d.ts +2 -7
- package/dist/desktop-toc-toggle-island/index.js +2 -58
- package/dist/desktop-toc-toggle-island/island.d.ts +4 -0
- package/dist/desktop-toc-toggle-island/island.js +43 -0
- package/dist/desktop-toc-toggle-island/storage.d.ts +4 -0
- package/dist/desktop-toc-toggle-island/storage.js +29 -0
- package/dist/details/details.d.ts +3 -4
- package/dist/details/details.js +1 -1
- package/dist/doc-body-end/index.d.ts +1 -2
- package/dist/doc-body-end/index.js +1 -1
- package/dist/doc-body-end-islands/design-token-panel-island.d.ts +2 -2
- package/dist/doc-body-end-islands/design-token-panel-island.js +3 -7
- package/dist/doc-body-end-islands/index.d.ts +4 -21
- package/dist/doc-body-end-islands/index.js +5 -3
- package/dist/doc-body-end-islands/theme-pack-switcher-island.d.ts +3 -13
- package/dist/doc-body-end-islands/theme-pack-switcher-island.js +11 -13
- package/dist/doc-content-header/index.d.ts +1 -2
- package/dist/doc-content-header/index.js +1 -1
- package/dist/doc-history/index.d.ts +1 -1
- package/dist/doc-history/index.js +166 -141
- package/dist/doc-history-area/index.d.ts +6 -4
- package/dist/doc-history-area/index.js +17 -16
- package/dist/doc-metainfo-area/index.d.ts +2 -3
- package/dist/doc-metainfo-area/index.js +1 -1
- package/dist/doc-page-renderer/index.d.ts +13 -7
- package/dist/doc-page-renderer/index.js +10 -1
- package/dist/doc-page-shell/index.d.ts +20 -7
- package/dist/doc-page-shell/index.js +17 -6
- package/dist/doc-pager/index.d.ts +1 -2
- package/dist/doc-pager/index.js +3 -3
- package/dist/doc-tags-area/index.d.ts +2 -3
- package/dist/doc-tags-area/index.js +1 -1
- package/dist/doclayout/doc-layout-with-defaults.d.ts +9 -9
- package/dist/doclayout/doc-layout-with-defaults.js +5 -15
- package/dist/doclayout/doc-layout.d.ts +26 -27
- package/dist/doclayout/doc-layout.js +23 -14
- package/dist/docs-schema/index.d.ts +4 -0
- package/dist/docs-schema/index.js +1 -0
- package/dist/extract-headings/index.js +43 -12
- package/dist/factory-context/index.d.ts +22 -19
- package/dist/features.css +70 -8
- package/dist/find-in-page/find-bar.d.ts +4 -2
- package/dist/find-in-page/find-bar.js +58 -69
- package/dist/find-in-page/index.d.ts +2 -8
- package/dist/find-in-page/index.js +33 -30
- package/dist/footer/footer.d.ts +3 -4
- package/dist/footer/footer.js +3 -3
- package/dist/footer-with-defaults/index.d.ts +2 -3
- package/dist/footer-with-defaults/index.js +1 -1
- package/dist/frontmatter-preview-defaults/index.js +1 -0
- package/dist/head/doc-head.d.ts +1 -1
- package/dist/head/doc-head.js +24 -32
- package/dist/head/og-tags.d.ts +1 -1
- package/dist/head/og-tags.js +8 -7
- package/dist/head/twitter-card.d.ts +1 -1
- package/dist/head/twitter-card.js +1 -1
- package/dist/head-with-defaults/index.d.ts +7 -2
- package/dist/head-with-defaults/index.js +46 -32
- package/dist/header/header.d.ts +8 -8
- package/dist/header/header.js +9 -11
- package/dist/header/types.d.ts +7 -7
- package/dist/header-with-defaults/index.d.ts +1 -2
- package/dist/header-with-defaults/index.js +18 -8
- package/dist/home-intro/index.d.ts +2 -5
- package/dist/home-intro/index.js +7 -5
- package/dist/home-intro/prepare.js +4 -3
- package/dist/home-page/index.d.ts +3 -3
- package/dist/home-page/index.js +19 -17
- package/dist/html-preview-wrapper/highlighted-code.d.ts +3 -4
- package/dist/html-preview-wrapper/highlighted-code.js +19 -17
- package/dist/html-preview-wrapper/html-preview-wrapper.d.ts +4 -25
- package/dist/html-preview-wrapper/html-preview-wrapper.js +2 -87
- package/dist/html-preview-wrapper/html-preview.d.ts +3 -10
- package/dist/html-preview-wrapper/html-preview.js +13 -37
- package/dist/html-preview-wrapper/index.d.ts +2 -1
- package/dist/html-preview-wrapper/index.js +1 -1
- package/dist/html-preview-wrapper/preview-base.d.ts +3 -5
- package/dist/html-preview-wrapper/preview-base.js +56 -59
- package/dist/html-preview-wrapper/wrapper.d.ts +20 -0
- package/dist/html-preview-wrapper/wrapper.js +37 -0
- package/dist/hydration-pending.d.ts +3 -5
- package/dist/hydration-pending.js +7 -5
- package/dist/i18n-version/language-switcher.d.ts +5 -32
- package/dist/i18n-version/language-switcher.js +5 -106
- package/dist/i18n-version/switcher-generated-scripts.d.ts +2 -0
- package/dist/i18n-version/switcher-generated-scripts.js +107 -0
- package/dist/i18n-version/switcher-url-state.d.ts +76 -0
- package/dist/i18n-version/switcher-url-state.js +103 -0
- package/dist/i18n-version/version-banner.d.ts +2 -3
- package/dist/i18n-version/version-banner.js +1 -1
- package/dist/i18n-version/version-switcher.d.ts +5 -50
- package/dist/i18n-version/version-switcher.js +5 -157
- package/dist/icons/index.d.ts +18 -19
- package/dist/icons/index.js +17 -33
- package/dist/image-enlarge/index.d.ts +1 -10
- package/dist/image-enlarge/index.js +80 -55
- package/dist/image-enlarge/public.d.ts +2 -0
- package/dist/image-enlarge/public.js +6 -0
- package/dist/image-enlarge/ssr-fallback.d.ts +2 -0
- package/dist/image-enlarge/ssr-fallback.js +8 -0
- package/dist/index.d.ts +11 -4
- package/dist/inline-version-switcher/index.d.ts +1 -2
- package/dist/inline-version-switcher/index.js +1 -1
- package/dist/island-types/index.d.ts +2 -2
- package/dist/island-types/index.js +1 -5
- package/dist/math-block/index.d.ts +4 -7
- package/dist/math-block/index.js +5 -5
- package/dist/mcp/handler.d.ts +8 -0
- package/dist/mcp/handler.js +129 -0
- package/dist/mcp/index.d.ts +4 -0
- package/dist/mcp/index.js +7 -0
- package/dist/mcp/loader.d.ts +19 -0
- package/dist/mcp/loader.js +202 -0
- package/dist/mdx-components/index.js +40 -108
- package/dist/mermaid-enlarge/index.d.ts +1 -8
- package/dist/mermaid-enlarge/index.js +174 -158
- package/dist/mermaid-enlarge/public.d.ts +2 -0
- package/dist/mermaid-enlarge/public.js +6 -0
- package/dist/mermaid-enlarge/ssr-fallback.d.ts +2 -0
- package/dist/mermaid-enlarge/ssr-fallback.js +8 -0
- package/dist/metainfo/doc-metainfo.d.ts +2 -3
- package/dist/metainfo/doc-metainfo.js +1 -4
- package/dist/metainfo/doc-tags.d.ts +2 -3
- package/dist/metainfo/doc-tags.js +1 -1
- package/dist/metainfo/frontmatter-preview.d.ts +3 -4
- package/dist/metainfo/frontmatter-preview.js +1 -1
- package/dist/nav-data-prep/index.js +6 -4
- package/dist/nav-indexing/category-nav.d.ts +2 -3
- package/dist/nav-indexing/category-nav.js +1 -2
- package/dist/nav-indexing/category-tree-nav.d.ts +2 -3
- package/dist/nav-indexing/category-tree-nav.js +1 -1
- package/dist/nav-indexing/doc-card-grid.d.ts +2 -3
- package/dist/nav-indexing/doc-card-grid.js +1 -2
- package/dist/nav-indexing/docs-sitemap.d.ts +2 -3
- package/dist/nav-indexing/docs-sitemap.js +2 -2
- package/dist/nav-indexing/index.d.ts +1 -1
- package/dist/nav-indexing/nav-card-grid.d.ts +2 -3
- package/dist/nav-indexing/nav-card-grid.js +1 -2
- package/dist/nav-indexing/note-tray-index-parts/card-list.d.ts +1 -2
- package/dist/nav-indexing/note-tray-index-parts/card-list.js +4 -4
- package/dist/nav-indexing/note-tray-index-parts/date-line.d.ts +2 -3
- package/dist/nav-indexing/note-tray-index-parts/date-line.js +1 -1
- package/dist/nav-indexing/note-tray-index-parts/index-list.d.ts +1 -2
- package/dist/nav-indexing/note-tray-index-parts/index-list.js +2 -2
- package/dist/nav-indexing/note-tray-index-parts/timeline.d.ts +1 -2
- package/dist/nav-indexing/note-tray-index-parts/timeline.js +2 -2
- package/dist/nav-indexing/note-tray-index.d.ts +1 -2
- package/dist/nav-indexing/note-tray-index.js +1 -1
- package/dist/nav-indexing/site-tree-nav-demo.d.ts +2 -3
- package/dist/nav-indexing/site-tree-nav-demo.js +2 -2
- package/dist/nav-indexing/tag-nav.d.ts +1 -2
- package/dist/nav-indexing/tag-nav.js +1 -1
- package/dist/nav-indexing/types.d.ts +2 -2
- package/dist/nav-indexing/versions-page-content.d.ts +2 -3
- package/dist/nav-indexing/versions-page-content.js +8 -8
- package/dist/note-tray-index/index.d.ts +1 -2
- package/dist/note-tray-index/index.js +1 -1
- package/dist/page-loading/page-loading-overlay.d.ts +1 -2
- package/dist/page-loading/page-loading-overlay.js +3 -5
- package/dist/plugins/agent-export.d.ts +3 -0
- package/dist/plugins/agent-export.js +34 -0
- package/dist/plugins/internal/agent-export/chunk.d.ts +5 -0
- package/dist/plugins/internal/agent-export/chunk.js +90 -0
- package/dist/plugins/internal/agent-export/index.d.ts +24 -0
- package/dist/plugins/internal/agent-export/index.js +123 -0
- package/dist/plugins/internal/agent-export/normalize.d.ts +5 -0
- package/dist/plugins/internal/agent-export/normalize.js +73 -0
- package/dist/plugins/internal/llms-txt/dev-middleware.d.ts +6 -0
- package/dist/plugins/internal/llms-txt/dev-middleware.js +8 -3
- package/dist/plugins/internal/llms-txt/emit.js +23 -6
- package/dist/plugins/internal/llms-txt/generate.d.ts +7 -1
- package/dist/plugins/internal/llms-txt/generate.js +9 -2
- package/dist/plugins/internal/llms-txt/load.d.ts +2 -0
- package/dist/plugins/internal/llms-txt/load.js +20 -4
- package/dist/plugins/internal/llms-txt/types.d.ts +10 -0
- package/dist/plugins/routes.js +4 -0
- package/dist/preset.d.ts +19 -9
- package/dist/preset.js +20 -1
- package/dist/route-context-payload/index.js +1 -1
- package/dist/routes/404.d.ts +2 -3
- package/dist/routes/404.js +1 -1
- package/dist/routes/_chrome.d.ts +5 -5
- package/dist/routes/_chrome.js +7 -2
- package/dist/routes/_context.d.ts +4 -4
- package/dist/routes/_design-token-panel-bootstrap.d.ts +1 -4
- package/dist/routes/_design-token-panel-bootstrap.js +9 -1
- package/dist/routes/docs-slug.d.ts +2 -3
- package/dist/routes/docs-tags-index.d.ts +2 -3
- package/dist/routes/docs-tags-index.js +1 -1
- package/dist/routes/docs-tags-tag.d.ts +2 -3
- package/dist/routes/docs-tags-tag.js +1 -1
- package/dist/routes/docs-versions.d.ts +2 -3
- package/dist/routes/docs-versions.js +1 -1
- package/dist/routes/files-path.d.ts +2 -3
- package/dist/routes/files-path.js +1 -1
- package/dist/routes/index.d.ts +2 -3
- package/dist/routes/index.js +1 -1
- package/dist/routes/locale-docs-slug.d.ts +2 -3
- package/dist/routes/locale-docs-tags-index.d.ts +2 -3
- package/dist/routes/locale-docs-tags-index.js +1 -1
- package/dist/routes/locale-docs-tags-tag.d.ts +2 -3
- package/dist/routes/locale-docs-tags-tag.js +1 -1
- package/dist/routes/locale-docs-versions.d.ts +2 -3
- package/dist/routes/locale-docs-versions.js +1 -1
- package/dist/routes/locale-files-path.d.ts +2 -3
- package/dist/routes/locale-files-path.js +1 -1
- package/dist/routes/locale-index.d.ts +2 -3
- package/dist/routes/locale-index.js +1 -1
- package/dist/routes/mcp.d.ts +5 -0
- package/dist/routes/mcp.js +25 -0
- package/dist/routes/v-docs-slug.d.ts +2 -3
- package/dist/routes/v-locale-docs-slug.d.ts +2 -3
- package/dist/search-widget/index.d.ts +1 -2
- package/dist/search-widget/index.js +4 -7
- package/dist/search-widget-script/generated-script.js +12 -5
- package/dist/settings-defaults.d.ts +2 -0
- package/dist/settings-defaults.js +93 -0
- package/dist/settings.d.ts +8 -2
- package/dist/sidebar/index.d.ts +1 -1
- package/dist/sidebar/sidebar.d.ts +12 -44
- package/dist/sidebar/sidebar.js +4 -3
- package/dist/sidebar/types.d.ts +14 -0
- package/dist/sidebar-prepaint/index.d.ts +1 -2
- package/dist/sidebar-prepaint/index.js +4 -6
- package/dist/sidebar-resizer/sidebar-resizer-init.d.ts +2 -3
- package/dist/sidebar-resizer/sidebar-resizer-init.js +3 -3
- package/dist/sidebar-toggle-island/index.d.ts +8 -11
- package/dist/sidebar-toggle-island/index.js +75 -62
- package/dist/sidebar-tree/build-tree.js +5 -6
- package/dist/sidebar-tree/types.d.ts +2 -0
- package/dist/sidebar-tree-island/index.d.ts +4 -19
- package/dist/sidebar-tree-island/index.js +782 -436
- package/dist/sidebar-tree-island/scope-state.d.ts +38 -0
- package/dist/sidebar-tree-island/scope-state.js +151 -0
- package/dist/sidebar-tree-island/sidebar-scroll-preserve.js +6 -2
- package/dist/sidebar-utils/index.d.ts +17 -19
- package/dist/sidebar-utils/index.js +100 -3
- package/dist/sidebar-utils/scope.d.ts +11 -0
- package/dist/sidebar-utils/scope.js +67 -0
- package/dist/sidebar-with-defaults/index.d.ts +1 -2
- package/dist/sidebar-with-defaults/index.js +19 -18
- package/dist/site-schema/nav-tree.js +15 -15
- package/dist/site-schema/types.d.ts +1 -0
- package/dist/site-tree-nav/index.d.ts +2 -3
- package/dist/site-tree-nav/index.js +11 -12
- package/dist/site-tree-nav/normalize-island-props.d.ts +16 -0
- package/dist/site-tree-nav/normalize-island-props.js +122 -0
- package/dist/site-tree-nav-island/index.d.ts +3 -3
- package/dist/site-tree-nav-island/index.js +243 -144
- package/dist/smart-break/index.d.ts +3 -4
- package/dist/smart-break/index.js +1 -1
- package/dist/tab-item/tab-item.d.ts +3 -4
- package/dist/tab-item/tab-item.js +1 -1
- package/dist/tag-pages/index.d.ts +3 -3
- package/dist/tag-pages/index.js +10 -10
- package/dist/theme/color-scheme-provider.d.ts +3 -3
- package/dist/theme/color-scheme-provider.js +3 -3
- package/dist/theme/theme-pack-provider.d.ts +1 -1
- package/dist/theme/theme-pack-provider.js +3 -3
- package/dist/theme/theme-toggle.d.ts +2 -3
- package/dist/theme/theme-toggle.js +1 -1
- package/dist/theme-pack-dialog/index.d.ts +1 -1
- package/dist/theme-pack-dialog/index.js +69 -75
- package/dist/theme-pack-dialog/theme-pack-card.d.ts +3 -4
- package/dist/theme-pack-dialog/theme-pack-card.js +19 -17
- package/dist/theme-pack-switcher/index.d.ts +4 -5
- package/dist/theme-pack-switcher/index.js +52 -49
- package/dist/theme-toggle/index.d.ts +1 -1
- package/dist/theme-toggle/index.js +154 -167
- package/dist/theme.css +47 -121
- package/dist/toc/mobile-toc.d.ts +3 -5
- package/dist/toc/mobile-toc.js +29 -27
- package/dist/toc/toc.d.ts +3 -4
- package/dist/toc/toc.js +18 -18
- package/dist/toc/use-active-heading.d.ts +5 -4
- package/dist/toc/use-active-heading.js +36 -30
- package/dist/toc-prepaint/index.d.ts +1 -2
- package/dist/toc-prepaint/index.js +4 -6
- package/dist/transitions/nested-island-props-refresh.d.ts +3 -16
- package/dist/transitions/nested-island-props-refresh.js +133 -151
- package/dist/transitions/page-events.d.ts +8 -13
- package/dist/tree-nav-shared/index.d.ts +4 -5
- package/dist/tree-nav-shared/index.js +6 -7
- package/dist/use-modal-dialog/index.d.ts +9 -63
- package/dist/use-modal-dialog/index.js +41 -59
- package/dist/versions-page/index.d.ts +3 -3
- package/dist/versions-page/index.js +5 -5
- package/dist/wind/index.d.ts +5 -0
- package/dist/wind/index.js +169 -0
- package/dist/wind.json +498 -0
- package/dist/z-index-defaults/index.d.ts +4 -4
- package/dist/zdtp-loader.d.ts +7 -0
- package/dist/zdtp-loader.js +8 -0
- package/eject/asset-components/asset-card.tsx +14 -16
- package/eject/asset-components/asset-code.tsx +10 -12
- package/eject/asset-components/shared.tsx +5 -7
- package/eject/breadcrumb/breadcrumb.tsx +15 -16
- package/eject/code-group/index.tsx +4 -10
- package/eject/content-admonition/index.tsx +5 -6
- package/eject/desktop-sidebar-toggle-island/index.ts +4 -0
- package/eject/desktop-sidebar-toggle-island/island.tsx +50 -0
- package/eject/desktop-sidebar-toggle-island/storage.ts +27 -0
- package/eject/details/details.tsx +3 -5
- package/eject/doc-history/index.tsx +193 -179
- package/eject/doc-pager/index.tsx +3 -4
- package/eject/footer/footer.tsx +7 -9
- package/eject/header/header.tsx +42 -54
- package/eject/header/nav-overflow-script.ts +1 -1
- package/eject/header/types.ts +12 -13
- package/eject/image-enlarge/index.tsx +84 -69
- package/eject/image-enlarge/public.ts +2 -0
- package/eject/image-enlarge/ssr-fallback.tsx +7 -0
- package/eject/page-loading/page-loading-overlay.tsx +8 -15
- package/eject/sidebar/index.ts +1 -0
- package/eject/sidebar/sidebar.tsx +16 -97
- package/eject/sidebar/types.ts +15 -0
- package/eject/sidebar-toggle-island/index.tsx +103 -102
- package/eject/sidebar-tree-island/index.tsx +827 -615
- package/eject/sidebar-tree-island/scope-state.ts +154 -0
- package/eject/sidebar-tree-island/sidebar-scroll-preserve.ts +8 -2
- package/eject/site-tree-nav-island/index.tsx +349 -222
- package/eject/tab-item/tab-item.tsx +2 -4
- package/eject/theme-toggle/hydration-pending.ts +6 -10
- package/eject/theme-toggle/index.tsx +133 -173
- package/eject/toc/mobile-toc.tsx +27 -31
- package/eject/toc/toc.tsx +21 -24
- package/eject/toc/use-active-heading.ts +43 -38
- package/package.json +40 -22
- package/routes-src/404.tsx +2 -3
- package/routes-src/_chrome.tsx +7 -2
- package/routes-src/_design-token-panel-bootstrap.tsx +1 -63
- package/routes-src/docs-slug.tsx +2 -3
- package/routes-src/docs-tags-index.tsx +2 -3
- package/routes-src/docs-tags-tag.tsx +2 -3
- package/routes-src/docs-versions.tsx +2 -3
- package/routes-src/files-path.tsx +2 -4
- package/routes-src/index.tsx +2 -3
- package/routes-src/locale-docs-slug.tsx +2 -3
- package/routes-src/locale-docs-tags-index.tsx +2 -3
- package/routes-src/locale-docs-tags-tag.tsx +2 -3
- package/routes-src/locale-docs-versions.tsx +2 -3
- package/routes-src/locale-files-path.tsx +2 -4
- package/routes-src/locale-index.tsx +2 -3
- package/routes-src/mcp.tsx +25 -0
- package/routes-src/v-docs-slug.tsx +2 -3
- package/routes-src/v-locale-docs-slug.tsx +2 -3
- package/tsconfig.base.json +1 -1
- package/dist/safelist.css +0 -2
- package/dist/theme-no-reset.css +0 -379
- package/eject/desktop-sidebar-toggle-island/index.tsx +0 -110
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { signal } from "@takazudo/zfb/zudo-react";
|
|
2
|
+
import type { Scope, Signal } from "@takazudo/zfb/zudo-react";
|
|
2
3
|
import type { HeadingItem } from "./types.js";
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -12,7 +13,7 @@ const DEBOUNCE_MS = 200;
|
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* Pure helper that picks the active heading id given the heading slug
|
|
15
|
-
* order and a slug→element map. Extracted from the
|
|
16
|
+
* order and a slug→element map. Extracted from the setup helper so it is unit-
|
|
16
17
|
* testable without DOM event plumbing.
|
|
17
18
|
*
|
|
18
19
|
* Algorithm: find the first heading whose top is at or below the
|
|
@@ -67,12 +68,12 @@ export function getActiveHeadingId(
|
|
|
67
68
|
}
|
|
68
69
|
|
|
69
70
|
export interface UseActiveHeadingResult {
|
|
70
|
-
activeId: string | null
|
|
71
|
+
activeId: Signal<string | null>;
|
|
71
72
|
activate: (id: string) => void;
|
|
72
73
|
}
|
|
73
74
|
|
|
74
75
|
/**
|
|
75
|
-
* Scroll-spy
|
|
76
|
+
* Scroll-spy setup helper. Tracks which heading slug should be highlighted
|
|
76
77
|
* based on the current scroll position. Provides an `activate(id)`
|
|
77
78
|
* imperatively-callable helper used by click handlers — sets the
|
|
78
79
|
* active id immediately and suppresses the scroll-driven update until
|
|
@@ -80,50 +81,44 @@ export interface UseActiveHeadingResult {
|
|
|
80
81
|
* for older Safari).
|
|
81
82
|
*/
|
|
82
83
|
export function useActiveHeading(
|
|
84
|
+
scope: Scope,
|
|
83
85
|
headings: readonly HeadingItem[],
|
|
84
86
|
): UseActiveHeadingResult {
|
|
85
|
-
const
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
setTimeout
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
87
|
+
const activeId = signal<string | null>(null);
|
|
88
|
+
const headingIds = headings.map((heading) => heading.slug);
|
|
89
|
+
let activateInScope: (id: string) => void = () => {};
|
|
90
|
+
const activate = (id: string) => activateInScope(id);
|
|
91
|
+
|
|
92
|
+
scope.onActivate(() => {
|
|
93
|
+
let suppressed = false;
|
|
94
|
+
let timerId: ReturnType<typeof setTimeout> | null = null;
|
|
95
|
+
let fallbackTimerId: ReturnType<typeof setTimeout> | null = null;
|
|
96
|
+
let suppressionTimerId: ReturnType<typeof setTimeout> | null = null;
|
|
97
|
+
|
|
98
|
+
activateInScope = (id: string) => {
|
|
99
|
+
activeId.value = id;
|
|
100
|
+
suppressed = true;
|
|
101
|
+
if (suppressionTimerId !== null) clearTimeout(suppressionTimerId);
|
|
102
|
+
// Safety timeout: unsuppress if no scroll event fires (target already in view).
|
|
103
|
+
suppressionTimerId = setTimeout(() => {
|
|
104
|
+
suppressionTimerId = null;
|
|
105
|
+
suppressed = false;
|
|
106
|
+
}, 2000);
|
|
107
|
+
};
|
|
102
108
|
|
|
103
109
|
const map = new Map<string, HTMLElement>();
|
|
104
|
-
for (const id of
|
|
110
|
+
for (const id of headingIds) {
|
|
105
111
|
const el = document.getElementById(id);
|
|
106
112
|
if (el) map.set(id, el);
|
|
107
113
|
}
|
|
108
|
-
elementMapRef.current = map;
|
|
109
|
-
|
|
110
|
-
let timerId: ReturnType<typeof setTimeout> | null = null;
|
|
111
114
|
|
|
112
115
|
function update() {
|
|
113
116
|
timerId = null;
|
|
114
|
-
|
|
115
|
-
getActiveHeadingId(
|
|
116
|
-
headingIdsRef.current,
|
|
117
|
-
elementMapRef.current,
|
|
118
|
-
window.innerHeight,
|
|
119
|
-
),
|
|
120
|
-
);
|
|
117
|
+
activeId.value = getActiveHeadingId(headingIds, map, window.innerHeight);
|
|
121
118
|
}
|
|
122
119
|
|
|
123
|
-
let fallbackTimerId: ReturnType<typeof setTimeout> | null = null;
|
|
124
|
-
|
|
125
120
|
function onScroll() {
|
|
126
|
-
if (
|
|
121
|
+
if (suppressed) {
|
|
127
122
|
// Fallback for browsers without scrollend (Safari < 18)
|
|
128
123
|
if (fallbackTimerId !== null) clearTimeout(fallbackTimerId);
|
|
129
124
|
fallbackTimerId = setTimeout(onScrollEnd, 1500);
|
|
@@ -134,7 +129,11 @@ export function useActiveHeading(
|
|
|
134
129
|
}
|
|
135
130
|
|
|
136
131
|
function onScrollEnd() {
|
|
137
|
-
|
|
132
|
+
suppressed = false;
|
|
133
|
+
if (suppressionTimerId !== null) {
|
|
134
|
+
clearTimeout(suppressionTimerId);
|
|
135
|
+
suppressionTimerId = null;
|
|
136
|
+
}
|
|
138
137
|
if (fallbackTimerId !== null) {
|
|
139
138
|
clearTimeout(fallbackTimerId);
|
|
140
139
|
fallbackTimerId = null;
|
|
@@ -143,20 +142,26 @@ export function useActiveHeading(
|
|
|
143
142
|
update();
|
|
144
143
|
}
|
|
145
144
|
|
|
145
|
+
// Browser position may reflect a restored scroll position or current hash.
|
|
146
|
+
// Read it only after hydration so the initial server/client tree agrees.
|
|
146
147
|
update();
|
|
147
|
-
|
|
148
148
|
window.addEventListener("scroll", onScroll, { passive: true });
|
|
149
149
|
window.addEventListener("resize", onScroll, { passive: true });
|
|
150
150
|
window.addEventListener("scrollend", onScrollEnd, { passive: true });
|
|
151
151
|
|
|
152
152
|
return () => {
|
|
153
|
+
activateInScope = () => {};
|
|
153
154
|
window.removeEventListener("scroll", onScroll);
|
|
154
155
|
window.removeEventListener("resize", onScroll);
|
|
155
156
|
window.removeEventListener("scrollend", onScrollEnd);
|
|
156
157
|
if (timerId !== null) clearTimeout(timerId);
|
|
158
|
+
timerId = null;
|
|
157
159
|
if (fallbackTimerId !== null) clearTimeout(fallbackTimerId);
|
|
160
|
+
fallbackTimerId = null;
|
|
161
|
+
if (suppressionTimerId !== null) clearTimeout(suppressionTimerId);
|
|
162
|
+
suppressionTimerId = null;
|
|
158
163
|
};
|
|
159
|
-
}
|
|
164
|
+
});
|
|
160
165
|
|
|
161
166
|
return { activeId, activate };
|
|
162
167
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@takazudo/zudo-doc",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "zudo-doc framework primitives layer that sits on top of zfb's engine — sidebar, theme, TOC, breadcrumb, layouts, head injection, View Transitions, SSR-skip wrappers (per ADR-003).",
|
|
6
6
|
"license": "MIT",
|
|
@@ -167,6 +167,10 @@
|
|
|
167
167
|
"types": "./dist/plugins/llms-txt.d.ts",
|
|
168
168
|
"default": "./dist/plugins/llms-txt.js"
|
|
169
169
|
},
|
|
170
|
+
"./plugins/agent-export": {
|
|
171
|
+
"types": "./dist/plugins/agent-export.d.ts",
|
|
172
|
+
"default": "./dist/plugins/agent-export.js"
|
|
173
|
+
},
|
|
170
174
|
"./plugins/changelog": {
|
|
171
175
|
"types": "./dist/plugins/changelog.d.ts",
|
|
172
176
|
"default": "./dist/plugins/changelog.js"
|
|
@@ -268,12 +272,11 @@
|
|
|
268
272
|
"default": "./dist/home-intro/prepare.js"
|
|
269
273
|
},
|
|
270
274
|
"./theme.css": "./dist/theme.css",
|
|
271
|
-
"./theme-no-reset.css": "./dist/theme-no-reset.css",
|
|
272
|
-
"./safelist.css": "./dist/safelist.css",
|
|
273
275
|
"./content.css": "./dist/content.css",
|
|
274
276
|
"./page-loading.css": "./dist/page-loading.css",
|
|
275
277
|
"./features.css": "./dist/features.css",
|
|
276
278
|
"./compiled.css": "./dist/compiled.css",
|
|
279
|
+
"./wind.json": "./dist/wind.json",
|
|
277
280
|
"./theme-packs/*": "./dist/theme-packs/*",
|
|
278
281
|
"./routes-src/*": "./routes-src/*",
|
|
279
282
|
"./tsconfig.base.json": "./tsconfig.base.json",
|
|
@@ -352,12 +355,12 @@
|
|
|
352
355
|
"default": "./dist/site-tree-nav-island/index.js"
|
|
353
356
|
},
|
|
354
357
|
"./image-enlarge": {
|
|
355
|
-
"types": "./dist/image-enlarge/
|
|
356
|
-
"default": "./dist/image-enlarge/
|
|
358
|
+
"types": "./dist/image-enlarge/public.d.ts",
|
|
359
|
+
"default": "./dist/image-enlarge/public.js"
|
|
357
360
|
},
|
|
358
361
|
"./mermaid-enlarge": {
|
|
359
|
-
"types": "./dist/mermaid-enlarge/
|
|
360
|
-
"default": "./dist/mermaid-enlarge/
|
|
362
|
+
"types": "./dist/mermaid-enlarge/public.d.ts",
|
|
363
|
+
"default": "./dist/mermaid-enlarge/public.js"
|
|
361
364
|
},
|
|
362
365
|
"./ai-chat-modal": {
|
|
363
366
|
"types": "./dist/ai-chat-modal/index.d.ts",
|
|
@@ -511,6 +514,10 @@
|
|
|
511
514
|
"types": "./dist/site-tree-nav/index.d.ts",
|
|
512
515
|
"default": "./dist/site-tree-nav/index.js"
|
|
513
516
|
},
|
|
517
|
+
"./routes/design-token-panel-bootstrap": {
|
|
518
|
+
"types": "./dist/routes/_design-token-panel-bootstrap.d.ts",
|
|
519
|
+
"default": "./dist/routes/_design-token-panel-bootstrap.js"
|
|
520
|
+
},
|
|
514
521
|
"./routes/index": {
|
|
515
522
|
"types": "./dist/routes/index.d.ts",
|
|
516
523
|
"default": "./dist/routes/index.js"
|
|
@@ -555,6 +562,14 @@
|
|
|
555
562
|
"types": "./dist/routes/api-ai-chat.d.ts",
|
|
556
563
|
"default": "./dist/routes/api-ai-chat.js"
|
|
557
564
|
},
|
|
565
|
+
"./routes/mcp": {
|
|
566
|
+
"types": "./dist/routes/mcp.d.ts",
|
|
567
|
+
"default": "./dist/routes/mcp.js"
|
|
568
|
+
},
|
|
569
|
+
"./mcp": {
|
|
570
|
+
"types": "./dist/mcp/index.d.ts",
|
|
571
|
+
"default": "./dist/mcp/index.js"
|
|
572
|
+
},
|
|
558
573
|
"./routes/locale-index": {
|
|
559
574
|
"types": "./dist/routes/locale-index.d.ts",
|
|
560
575
|
"default": "./dist/routes/locale-index.js"
|
|
@@ -716,17 +731,20 @@
|
|
|
716
731
|
"CHANGELOG.md"
|
|
717
732
|
],
|
|
718
733
|
"peerDependencies": {
|
|
734
|
+
"@modelcontextprotocol/sdk": "1.32.1",
|
|
719
735
|
"@takazudo/zdtp": "^0.5.2 || ^0.6.0 || ^0.7.0 || ^0.8.0",
|
|
720
|
-
"@takazudo/zfb": "^
|
|
721
|
-
"@takazudo/zfb-md-wasm": "^
|
|
722
|
-
"@takazudo/zfb-runtime": "^
|
|
723
|
-
"@takazudo/zudo-doc-history-server": "^
|
|
736
|
+
"@takazudo/zfb": "^4.3.1",
|
|
737
|
+
"@takazudo/zfb-md-wasm": "^4.3.1",
|
|
738
|
+
"@takazudo/zfb-runtime": "^4.3.1",
|
|
739
|
+
"@takazudo/zudo-doc-history-server": "^6.0.0",
|
|
724
740
|
"diff": "^8.0.0",
|
|
725
741
|
"katex": "^0.16.0",
|
|
726
|
-
"preact": "^10.29.1",
|
|
727
742
|
"zod": "^4.3.6"
|
|
728
743
|
},
|
|
729
744
|
"peerDependenciesMeta": {
|
|
745
|
+
"@modelcontextprotocol/sdk": {
|
|
746
|
+
"optional": true
|
|
747
|
+
},
|
|
730
748
|
"@takazudo/zudo-doc-history-server": {
|
|
731
749
|
"optional": true
|
|
732
750
|
},
|
|
@@ -756,34 +774,34 @@
|
|
|
756
774
|
"yaml": "^2.9.0"
|
|
757
775
|
},
|
|
758
776
|
"devDependencies": {
|
|
777
|
+
"@modelcontextprotocol/sdk": "1.32.1",
|
|
759
778
|
"@takazudo/mdx-formatter": "1.3.0",
|
|
760
|
-
"@takazudo/zfb": "
|
|
761
|
-
"@takazudo/zfb-md-wasm": "
|
|
762
|
-
"@takazudo/zfb-runtime": "
|
|
779
|
+
"@takazudo/zfb": "4.3.1",
|
|
780
|
+
"@takazudo/zfb-md-wasm": "4.3.1",
|
|
781
|
+
"@takazudo/zfb-runtime": "4.3.1",
|
|
763
782
|
"@types/fs-extra": "^11.0.4",
|
|
764
783
|
"@types/minimist": "^1.2.5",
|
|
765
784
|
"@types/node": "^25.3.5",
|
|
766
785
|
"@types/pluralize": "^0.0.33",
|
|
767
786
|
"happy-dom": "^20.10.6",
|
|
768
|
-
"preact": "^10.29.1",
|
|
769
|
-
"preact-render-to-string": "^6.6.6",
|
|
770
787
|
"tsup": "^8.0.0",
|
|
771
788
|
"typescript": "^5.0.0",
|
|
772
789
|
"vitest": "^4.1.0",
|
|
773
790
|
"zod": "^4.3.6",
|
|
774
|
-
"@takazudo/zudo-doc-history-server": "
|
|
791
|
+
"@takazudo/zudo-doc-history-server": "6.0.0"
|
|
775
792
|
},
|
|
776
793
|
"scripts": {
|
|
777
794
|
"gen:search-widget-script": "node scripts/gen-search-widget-script.mjs",
|
|
778
795
|
"gen:nav-overflow-script": "node scripts/gen-nav-overflow-script.mjs",
|
|
779
|
-
"
|
|
780
|
-
"
|
|
796
|
+
"gen:switcher-scripts": "node scripts/gen-switcher-scripts.mjs",
|
|
797
|
+
"build": "node scripts/gen-search-widget-script.mjs && node scripts/gen-nav-overflow-script.mjs && node scripts/gen-switcher-scripts.mjs && tsup && tsc -p tsconfig.build.json",
|
|
798
|
+
"predev": "node ../../scripts/ensure-workspace-build.mjs && node scripts/gen-search-widget-script.mjs && node scripts/gen-nav-overflow-script.mjs && node scripts/gen-switcher-scripts.mjs",
|
|
781
799
|
"// dev": "Do NOT add `--continue-on-error` here. It stops a fatal watcher exit from cascading, but the dead watcher then fails silently — a dead dev:dts leaves dist/*.d.ts frozen while the JS keeps updating, which typechecks cleanly against stale types instead of failing loudly like #3113's absent declarations did. See the #3129 section in CLAUDE.md.",
|
|
782
800
|
"dev": "node bin/run-parallel.mjs dev:js dev:dts",
|
|
783
801
|
"dev:js": "tsup --watch",
|
|
784
802
|
"dev:dts": "tsc -p tsconfig.build.json --watch --preserveWatchOutput",
|
|
785
|
-
"// check:prepack-contract": "
|
|
786
|
-
"check:prepack-contract": "pnpm --dir ../.. check:search-widget-drift && pnpm --dir ../.. check:nav-overflow-drift && pnpm --dir ../.. gen:changelog && node scripts/check-theme-css.mjs && node scripts/check-
|
|
803
|
+
"// check:prepack-contract": "Switcher, search-widget and nav-overflow drift checks run here (not just b4push/CI) because `prepare` regenerates frozen literals unconditionally — without a prepack gate, packing from a tree where a source changed but a literal was never re-committed would silently publish new script bytes and break every consumer's pinned CSP hash (#3534/#3535 for nav-overflow; #3540 extended the same gate to search-widget, the exact failure class the freezes exist to prevent).",
|
|
804
|
+
"check:prepack-contract": "bash ../../scripts/check-switcher-scripts-drift.sh && pnpm --dir ../.. check:search-widget-drift && pnpm --dir ../.. check:nav-overflow-drift && pnpm --dir ../.. gen:changelog && node scripts/check-theme-css.mjs && node scripts/check-wind-manifest.mjs && node scripts/check-content-css.mjs && node scripts/check-page-loading-css.mjs && node scripts/check-features-css.mjs && node scripts/check-compiled-css.mjs && node scripts/check-theme-packs.mjs && node scripts/check-catalog.mjs && node scripts/check-site-schema.mjs && node scripts/check-theme-packs-registry.mjs && node scripts/check-plugins.mjs && node scripts/check-plugin-resolution.mjs && node scripts/check-eject-sources.mjs && node scripts/check-routes-src.mjs && node scripts/check-shim-artifacts.mjs && node scripts/check-virtual-modules.mjs && node bin/gen-component-tokens.mjs --check && node scripts/check-route-context-payload.mjs && node scripts/check-asset-viewer-exports.mjs",
|
|
787
805
|
"test:plugin-resolution": "node scripts/check-plugin-resolution.mjs",
|
|
788
806
|
"test": "vitest run --config vitest.config.ts",
|
|
789
807
|
"test:slow": "vitest run --config vitest.slow.config.ts",
|
package/routes-src/404.tsx
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
/** @jsxImportSource preact */
|
|
3
2
|
// Package route entrypoint: /404 — package-owned equivalent of pages/404.tsx
|
|
4
3
|
// (A1 #2361). Static route; emitted as dist/404.html.
|
|
5
4
|
|
|
6
|
-
import type {
|
|
5
|
+
import type { Child } from "@takazudo/zfb/zudo-react";
|
|
7
6
|
import { DocLayoutWithDefaults } from "@takazudo/zudo-doc/doclayout";
|
|
8
7
|
import { resolveThemePackSsrSlug } from "@takazudo/zudo-doc/theme";
|
|
9
8
|
import { settings, defaultLocale, withBase, themePackRegistry } from "./_context.js";
|
|
@@ -17,7 +16,7 @@ import {
|
|
|
17
16
|
|
|
18
17
|
export const frontmatter = { title: "404" };
|
|
19
18
|
|
|
20
|
-
export default function NotFoundPage():
|
|
19
|
+
export default function NotFoundPage(): Child {
|
|
21
20
|
const locale = defaultLocale;
|
|
22
21
|
const title = "Page Not Found";
|
|
23
22
|
|
package/routes-src/_chrome.tsx
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Island } from "@takazudo/zfb";
|
|
1
2
|
// routes/_chrome — thin chrome shim for the package-owned route entrypoints
|
|
2
3
|
// (epic Package-First Finale #2356, A1 #2361).
|
|
3
4
|
//
|
|
@@ -12,7 +13,7 @@
|
|
|
12
13
|
|
|
13
14
|
import { routeCtx } from "./_context.js";
|
|
14
15
|
import { createChrome } from "@takazudo/zudo-doc/chrome";
|
|
15
|
-
import { DocHistory } from "@takazudo/zudo-doc/doc-history";
|
|
16
|
+
import { DocHistoryBoundary as DocHistory } from "@takazudo/zudo-doc/doc-history-area";
|
|
16
17
|
import type { DocNavNode } from "@takazudo/zudo-doc/site-schema";
|
|
17
18
|
// Imported via the BARE published subpath rather than a relative
|
|
18
19
|
// `../chrome-bindings.js`. This file is copied into consumer projects by the
|
|
@@ -74,9 +75,13 @@ import { ConfiguredDesignTokenPanelBootstrap } from "./_design-token-panel-boots
|
|
|
74
75
|
// It is spread BEFORE `...chromeBindings` (unlike `DocHistory`, which is spread
|
|
75
76
|
// after): a host's own `DesignTokenPanelBootstrap` slot value must still win,
|
|
76
77
|
// exactly as it did when the derive-level default was the only package wiring.
|
|
78
|
+
function ConfiguredDesignTokenPanelBoundary() {
|
|
79
|
+
return <><Island when="load"><ConfiguredDesignTokenPanelBootstrap /></Island></>;
|
|
80
|
+
}
|
|
81
|
+
|
|
77
82
|
const chrome = createChrome(routeCtx, {
|
|
78
83
|
...defineChromeBindings({
|
|
79
|
-
DesignTokenPanelBootstrap:
|
|
84
|
+
DesignTokenPanelBootstrap: ConfiguredDesignTokenPanelBoundary,
|
|
80
85
|
}),
|
|
81
86
|
...chromeBindings,
|
|
82
87
|
...defineChromeBindings({ DocHistory }),
|
|
@@ -1,63 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/** @jsxRuntime automatic */
|
|
4
|
-
/** @jsxImportSource preact */
|
|
5
|
-
|
|
6
|
-
// routes/_design-token-panel-bootstrap — the ROUTES-ONLY configured
|
|
7
|
-
// design-token-panel island (#3396, epic #3394).
|
|
8
|
-
//
|
|
9
|
-
// WHY THIS FILE EXISTS: `virtual:zudo-doc-design-token-panel-config` is
|
|
10
|
-
// registered by the routes plugin, so any module that imports it statically
|
|
11
|
-
// drags the plugin along as a hard requirement. Until #3396 that importer was
|
|
12
|
-
// `../design-token-panel-bootstrap.tsx`, which `chrome/derive.tsx` imports —
|
|
13
|
-
// meaning `@takazudo/zudo-doc/chrome` could not be bundled outside a zfb build
|
|
14
|
-
// (or by a `packageOwnedRoutes: false` host) without aliasing the specifier.
|
|
15
|
-
// Moving the import HERE confines it to the routes graph, which zfb always
|
|
16
|
-
// bundles with the plugin active.
|
|
17
|
-
//
|
|
18
|
-
// WHY A COMPONENT AND NOT A SETTER: the route/SSR module graph and the
|
|
19
|
-
// hydrated island bundle are SEPARATE graphs. A `setPanelConfigBuilder(...)`
|
|
20
|
-
// called while `_chrome.tsx` evaluates would configure only the server-side
|
|
21
|
-
// copy of the bootstrap module; the client bundle re-evaluates that module
|
|
22
|
-
// independently and would keep the package default. Passing the builder as an
|
|
23
|
-
// argument from a component that lives INSIDE the island bundle is the only
|
|
24
|
-
// shape that survives the boundary.
|
|
25
|
-
//
|
|
26
|
-
// ISLAND-SCANNER CONTRACT (#2480 lesson): `_chrome.tsx` imports this module
|
|
27
|
-
// STATICALLY and threads the component into `hostBindings`, so the scanner
|
|
28
|
-
// walks route → _chrome → here. The exported binding identifier and the
|
|
29
|
-
// `displayName` must stay IDENTICAL — zfb registers islands by the
|
|
30
|
-
// scanner-visible export name, and a marker whose name has no registry entry
|
|
31
|
-
// silently never hydrates. The name must also stay DISTINCT from
|
|
32
|
-
// `DesignTokenPanelBootstrap`: `chrome/derive.tsx` still statically imports
|
|
33
|
-
// that package default (it is the slot default for bare `createChrome`
|
|
34
|
-
// callers), so both components are in the scanned graph and a shared name
|
|
35
|
-
// would trip zfb's "island marker name collision" warning and drop one of them.
|
|
36
|
-
|
|
37
|
-
import type { JSX } from "preact";
|
|
38
|
-
import { runDesignTokenPanelBootstrapOnce } from "@takazudo/zudo-doc/design-token-panel-bootstrap";
|
|
39
|
-
// Host-callables channel, third virtual module (#2658, mirrors #2501's
|
|
40
|
-
// chromeBindingsModule): absent `settings.designTokenPanelConfigModule` →
|
|
41
|
-
// re-exports the package default (`@takazudo/zudo-doc/design-token-panel-config`);
|
|
42
|
-
// present → re-exports the host's module. Registered unconditionally by the
|
|
43
|
-
// routes plugin (`../plugins/routes.ts`) whenever `packageOwnedRoutes` is on.
|
|
44
|
-
// Not present on disk; the package ships ambient typings for it
|
|
45
|
-
// (`./_virtual.d.ts`).
|
|
46
|
-
import { buildDesignTokenPanelConfig } from "virtual:zudo-doc-design-token-panel-config";
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* The design-token-panel island injected routes mount instead of the package
|
|
50
|
-
* default: identical behavior, except the mode-scoped `PanelConfig` builder is
|
|
51
|
-
* the one the routes plugin resolved — the host's
|
|
52
|
-
* `settings.designTokenPanelConfigModule` when set, the package default
|
|
53
|
-
* otherwise.
|
|
54
|
-
*
|
|
55
|
-
* Renders `null` on both SSR and client (the panel self-mounts as a side
|
|
56
|
-
* effect of `bootstrapDesignTokenPanel`), matching the package default's
|
|
57
|
-
* non-`ssrFallback` `Island({ when: "load" })` shape.
|
|
58
|
-
*/
|
|
59
|
-
export function ConfiguredDesignTokenPanelBootstrap(): JSX.Element | null {
|
|
60
|
-
runDesignTokenPanelBootstrapOnce(buildDesignTokenPanelConfig, "configured");
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
ConfiguredDesignTokenPanelBootstrap.displayName = "ConfiguredDesignTokenPanelBootstrap";
|
|
1
|
+
export { ConfiguredDesignTokenPanelBootstrap } from "@takazudo/zudo-doc/routes/design-token-panel-bootstrap";
|
package/routes-src/docs-slug.tsx
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
/** @jsxImportSource preact */
|
|
3
2
|
// Package route entrypoint: /docs/[[...slug]] — package-owned equivalent of
|
|
4
3
|
// pages/docs/[[...slug]].tsx (epic Package-First Finale #2356, A1 #2361).
|
|
5
4
|
//
|
|
@@ -11,7 +10,7 @@
|
|
|
11
10
|
// is on; even then dropped if the user keeps a `pages/docs/[[...slug]].tsx`
|
|
12
11
|
// stub (Decision 6).
|
|
13
12
|
|
|
14
|
-
import type {
|
|
13
|
+
import type { Child } from "@takazudo/zfb/zudo-react";
|
|
15
14
|
import type { DocPageEntryProps, DocPageAutoIndexProps } from "@takazudo/zudo-doc/doc-page-props";
|
|
16
15
|
import { settings, defaultLocale, resolveNavSource, buildDocRouteEntries } from "./_context.js";
|
|
17
16
|
import { renderDocPage } from "./_chrome.js";
|
|
@@ -35,7 +34,7 @@ export function paths(): Array<{ params: { slug: string[] }; props: DocPageProps
|
|
|
35
34
|
|
|
36
35
|
type PageArgs = DocPageProps & { params: { slug: string[] } };
|
|
37
36
|
|
|
38
|
-
export default function DocsPage(props: PageArgs):
|
|
37
|
+
export default function DocsPage(props: PageArgs): Child {
|
|
39
38
|
return renderDocPage(props, {
|
|
40
39
|
locale: defaultLocale,
|
|
41
40
|
docHistoryContentDir: settings.docsDir,
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
/** @jsxImportSource preact */
|
|
3
2
|
// Package route entrypoint: /docs/tags — package-owned equivalent of
|
|
4
3
|
// pages/docs/tags/index.tsx (A1 #2361). Default-locale "All Tags" index.
|
|
5
4
|
|
|
6
|
-
import type {
|
|
5
|
+
import type { Child } from "@takazudo/zfb/zudo-react";
|
|
7
6
|
import { defaultLocale } from "./_context.js";
|
|
8
7
|
import { TagsIndexPageView } from "./_chrome.js";
|
|
9
8
|
|
|
10
9
|
export const frontmatter = { title: "All Tags" };
|
|
11
10
|
|
|
12
|
-
export default function DocsTagsIndexPage():
|
|
11
|
+
export default function DocsTagsIndexPage(): Child {
|
|
13
12
|
return <TagsIndexPageView locale={defaultLocale} />;
|
|
14
13
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
/** @jsxImportSource preact */
|
|
3
2
|
// Package route entrypoint: /docs/tags/[tag] — package-owned equivalent of
|
|
4
3
|
// pages/docs/tags/[tag].tsx (A1 #2361). One route per unique tag in the
|
|
5
4
|
// default-locale collection.
|
|
6
5
|
|
|
7
|
-
import type {
|
|
6
|
+
import type { Child } from "@takazudo/zfb/zudo-react";
|
|
8
7
|
import type { TagInfo } from "@takazudo/zudo-doc/tag-pages";
|
|
9
8
|
import { defaultLocale } from "./_context.js";
|
|
10
9
|
import { collectTagMapForLocale, TagDetailPageView } from "./_chrome.js";
|
|
@@ -24,6 +23,6 @@ interface PageProps {
|
|
|
24
23
|
tagInfo: TagInfo;
|
|
25
24
|
}
|
|
26
25
|
|
|
27
|
-
export default function DocTagPage({ params, tagInfo }: PageProps):
|
|
26
|
+
export default function DocTagPage({ params, tagInfo }: PageProps): Child {
|
|
28
27
|
return <TagDetailPageView locale={defaultLocale} tag={params.tag} tagInfo={tagInfo} />;
|
|
29
28
|
}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
/** @jsxImportSource preact */
|
|
3
2
|
// Package route entrypoint: /docs/versions — package-owned equivalent of
|
|
4
3
|
// pages/docs/versions.tsx (A1 #2361). Default-locale versions index; rendered
|
|
5
4
|
// by the package `VersionsPageView` (`_chrome`).
|
|
6
5
|
|
|
7
|
-
import type {
|
|
6
|
+
import type { Child } from "@takazudo/zfb/zudo-react";
|
|
8
7
|
import { defaultLocale } from "./_context.js";
|
|
9
8
|
import { VersionsPageView } from "./_chrome.js";
|
|
10
9
|
|
|
11
10
|
export const frontmatter = { title: "Versions" };
|
|
12
11
|
|
|
13
|
-
export default function VersionsPage():
|
|
12
|
+
export default function VersionsPage(): Child {
|
|
14
13
|
return <VersionsPageView locale={defaultLocale} />;
|
|
15
14
|
}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import type { JSX } from "preact";
|
|
2
|
+
import type { Child } from "@takazudo/zfb/zudo-react";
|
|
5
3
|
import recordsValue from "virtual:zudo-doc-asset-bodies";
|
|
6
4
|
import type { AssetRecords } from "@takazudo/zudo-doc/plugins";
|
|
7
5
|
import type { AssetIndexEntry } from "@takazudo/zudo-doc/route-context-payload";
|
|
@@ -28,7 +26,7 @@ export function paths(): Array<{
|
|
|
28
26
|
: assetPaths;
|
|
29
27
|
}
|
|
30
28
|
|
|
31
|
-
export default function FilesPathPage(props: FilesPathProps):
|
|
29
|
+
export default function FilesPathPage(props: FilesPathProps): Child {
|
|
32
30
|
if (props.kind === "index") return <AssetIndexPageView entries={props.entries} />;
|
|
33
31
|
const { entry } = props;
|
|
34
32
|
const records = recordsValue as AssetRecords;
|
package/routes-src/index.tsx
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
/** @jsxImportSource preact */
|
|
3
2
|
// Package route entrypoint: / — package-owned equivalent of pages/index.tsx
|
|
4
3
|
// (A1 #2361). Default-locale (EN) site index: site-map grid + optional tag
|
|
5
4
|
// count, rendered through the package chrome (`_chrome`). Static route — no
|
|
@@ -10,14 +9,14 @@
|
|
|
10
9
|
// `prepareHomeData` factory (#2519) for the data-prep sequence, then handing
|
|
11
10
|
// the result to the shared home body factory.
|
|
12
11
|
|
|
13
|
-
import type {
|
|
12
|
+
import type { Child } from "@takazudo/zfb/zudo-react";
|
|
14
13
|
import { defaultLocale, routeCtx, settings } from "./_context.js";
|
|
15
14
|
import { prepareHomeData } from "@takazudo/zudo-doc/home-page";
|
|
16
15
|
import { HomePageView } from "./_chrome.js";
|
|
17
16
|
|
|
18
17
|
export const frontmatter = { title: "Home" };
|
|
19
18
|
|
|
20
|
-
export default function IndexPage():
|
|
19
|
+
export default function IndexPage(): Child {
|
|
21
20
|
const locale = defaultLocale;
|
|
22
21
|
|
|
23
22
|
const { tree, categoryOrder, tagCount, tags } = prepareHomeData(routeCtx, locale);
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
/** @jsxImportSource preact */
|
|
3
2
|
// Package route entrypoint: /[locale]/docs/[[...slug]] — package-owned
|
|
4
3
|
// equivalent of pages/[locale]/docs/[[...slug]].tsx (A1 #2361).
|
|
5
4
|
//
|
|
@@ -7,7 +6,7 @@
|
|
|
7
6
|
// injected ONCE; `paths()` enumerates one route per (non-default locale, slug)
|
|
8
7
|
// with the locale-first + base-EN-fallback merge — reconstructed via `_context`.
|
|
9
8
|
|
|
10
|
-
import type {
|
|
9
|
+
import type { Child } from "@takazudo/zfb/zudo-react";
|
|
11
10
|
import type { DocPageEntryProps, DocPageAutoIndexProps } from "@takazudo/zudo-doc/doc-page-props";
|
|
12
11
|
import { settings, getLocaleConfig, resolveNavSource, buildDocRouteEntries } from "./_context.js";
|
|
13
12
|
import { renderDocPage } from "./_chrome.js";
|
|
@@ -60,7 +59,7 @@ export function paths(): Array<{
|
|
|
60
59
|
|
|
61
60
|
type PageArgs = DocPageProps & { params: { locale: string; slug: string[] } };
|
|
62
61
|
|
|
63
|
-
export default function LocaleDocsPage(props: PageArgs):
|
|
62
|
+
export default function LocaleDocsPage(props: PageArgs): Child {
|
|
64
63
|
return renderDocPage(props, {
|
|
65
64
|
locale: props.params.locale,
|
|
66
65
|
isFallback: props.isFallback,
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
/** @jsxImportSource preact */
|
|
3
2
|
// Package route entrypoint: /[locale]/docs/tags — package-owned equivalent of
|
|
4
3
|
// pages/[locale]/docs/tags/index.tsx (A1 #2361). One route per non-default
|
|
5
4
|
// locale; the tag map is computed at render time (locale-first + base merge).
|
|
6
5
|
|
|
7
|
-
import type {
|
|
6
|
+
import type { Child } from "@takazudo/zfb/zudo-react";
|
|
8
7
|
import { settings } from "./_context.js";
|
|
9
8
|
import { TagsIndexPageView } from "./_chrome.js";
|
|
10
9
|
|
|
@@ -18,6 +17,6 @@ interface PageProps {
|
|
|
18
17
|
params: { locale: string };
|
|
19
18
|
}
|
|
20
19
|
|
|
21
|
-
export default function LocaleTagsIndexPage({ params }: PageProps):
|
|
20
|
+
export default function LocaleTagsIndexPage({ params }: PageProps): Child {
|
|
22
21
|
return <TagsIndexPageView locale={params.locale} />;
|
|
23
22
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
/** @jsxImportSource preact */
|
|
3
2
|
// Package route entrypoint: /[locale]/docs/tags/[tag] — package-owned
|
|
4
3
|
// equivalent of pages/[locale]/docs/tags/[tag].tsx (A1 #2361). One route per
|
|
5
4
|
// (non-default locale, tag) pair.
|
|
6
5
|
|
|
7
|
-
import type {
|
|
6
|
+
import type { Child } from "@takazudo/zfb/zudo-react";
|
|
8
7
|
import type { TagInfo } from "@takazudo/zudo-doc/tag-pages";
|
|
9
8
|
import { settings } from "./_context.js";
|
|
10
9
|
import { collectTagMapForLocale, TagDetailPageView } from "./_chrome.js";
|
|
@@ -34,6 +33,6 @@ interface PageProps {
|
|
|
34
33
|
tagInfo: TagInfo;
|
|
35
34
|
}
|
|
36
35
|
|
|
37
|
-
export default function LocaleDocTagPage({ params, tagInfo }: PageProps):
|
|
36
|
+
export default function LocaleDocTagPage({ params, tagInfo }: PageProps): Child {
|
|
38
37
|
return <TagDetailPageView locale={params.locale} tag={params.tag} tagInfo={tagInfo} />;
|
|
39
38
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
/** @jsxImportSource preact */
|
|
3
2
|
// Package route entrypoint: /[locale]/docs/versions — package-owned equivalent
|
|
4
3
|
// of pages/[locale]/docs/versions.tsx (A1 #2361). One route per non-default
|
|
5
4
|
// locale; rendered by the shared package `VersionsPageView`.
|
|
6
5
|
|
|
7
|
-
import type {
|
|
6
|
+
import type { Child } from "@takazudo/zfb/zudo-react";
|
|
8
7
|
import { settings } from "./_context.js";
|
|
9
8
|
import { VersionsPageView } from "./_chrome.js";
|
|
10
9
|
|
|
@@ -18,6 +17,6 @@ interface PageProps {
|
|
|
18
17
|
params: { locale: string };
|
|
19
18
|
}
|
|
20
19
|
|
|
21
|
-
export default function LocaleVersionsPage({ params }: PageProps):
|
|
20
|
+
export default function LocaleVersionsPage({ params }: PageProps): Child {
|
|
22
21
|
return <VersionsPageView locale={params.locale} />;
|
|
23
22
|
}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import type { JSX } from "preact";
|
|
2
|
+
import type { Child } from "@takazudo/zfb/zudo-react";
|
|
5
3
|
import recordsValue from "virtual:zudo-doc-asset-bodies";
|
|
6
4
|
import type { AssetRecords } from "@takazudo/zudo-doc/plugins";
|
|
7
5
|
import type { AssetIndexEntry } from "@takazudo/zudo-doc/route-context-payload";
|
|
@@ -56,7 +54,7 @@ type PageArgs = LocaleFilesPathProps & {
|
|
|
56
54
|
params: { locale: string; path: string[] };
|
|
57
55
|
};
|
|
58
56
|
|
|
59
|
-
export default function LocaleFilesPathPage(props: PageArgs):
|
|
57
|
+
export default function LocaleFilesPathPage(props: PageArgs): Child {
|
|
60
58
|
if (props.kind === "index") {
|
|
61
59
|
return <AssetIndexPageView entries={props.entries} locale={props.params.locale} />;
|
|
62
60
|
}
|