@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
package/dist/head/doc-head.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Fragment, jsx, jsxs } from "
|
|
1
|
+
import { Fragment, jsx, jsxs } from "@takazudo/zfb/zudo-react/jsx-runtime";
|
|
2
|
+
import { h } from "@takazudo/zfb/zudo-react";
|
|
2
3
|
import { OgTags } from "./og-tags.js";
|
|
3
4
|
import { TwitterCard } from "./twitter-card.js";
|
|
4
5
|
function DocHead(props) {
|
|
@@ -52,37 +53,28 @@ function DocHead(props) {
|
|
|
52
53
|
image: twitterImage
|
|
53
54
|
}
|
|
54
55
|
),
|
|
55
|
-
stylesheets?.map((s) =>
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
{
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
{
|
|
78
|
-
rel: "preload",
|
|
79
|
-
as: p.as,
|
|
80
|
-
href: p.href,
|
|
81
|
-
...p.type !== void 0 ? { type: p.type } : {},
|
|
82
|
-
...p.crossorigin !== void 0 ? { crossorigin: p.crossorigin } : {}
|
|
83
|
-
},
|
|
84
|
-
`preload:${p.as}:${p.href}`
|
|
85
|
-
))
|
|
56
|
+
stylesheets?.map((s) => h("link", {
|
|
57
|
+
key: `stylesheet:${s.href}`,
|
|
58
|
+
rel: "stylesheet",
|
|
59
|
+
href: s.href,
|
|
60
|
+
...s.integrity !== void 0 ? { integrity: s.integrity } : {},
|
|
61
|
+
...s.crossorigin !== void 0 ? { crossorigin: s.crossorigin } : {}
|
|
62
|
+
})),
|
|
63
|
+
alternateLinks?.map((l) => h("link", {
|
|
64
|
+
key: `${l.rel}:${l.type ?? ""}:${l.href}`,
|
|
65
|
+
rel: l.rel,
|
|
66
|
+
...l.type !== void 0 ? { type: l.type } : {},
|
|
67
|
+
href: l.href,
|
|
68
|
+
...l.title !== void 0 ? { title: l.title } : {}
|
|
69
|
+
})),
|
|
70
|
+
preload?.map((p) => h("link", {
|
|
71
|
+
key: `preload:${p.as}:${p.href}`,
|
|
72
|
+
rel: "preload",
|
|
73
|
+
as: p.as,
|
|
74
|
+
href: p.href,
|
|
75
|
+
...p.type !== void 0 ? { type: p.type } : {},
|
|
76
|
+
...p.crossorigin !== void 0 ? { crossorigin: p.crossorigin } : {}
|
|
77
|
+
}))
|
|
86
78
|
] });
|
|
87
79
|
}
|
|
88
80
|
export {
|
package/dist/head/og-tags.d.ts
CHANGED
package/dist/head/og-tags.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { Fragment,
|
|
1
|
+
import { Fragment, jsxs } from "@takazudo/zfb/zudo-react/jsx-runtime";
|
|
2
|
+
import { h } from "@takazudo/zfb/zudo-react";
|
|
2
3
|
function OgTags(props) {
|
|
3
4
|
const ogTitle = props.ogTitle ?? props.title;
|
|
4
5
|
const ogDescription = props.ogDescription ?? props.description;
|
|
5
6
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6
|
-
|
|
7
|
-
ogDescription !== void 0 &&
|
|
8
|
-
props.ogType !== void 0 &&
|
|
9
|
-
props.ogUrl !== void 0 &&
|
|
10
|
-
props.ogImage !== void 0 &&
|
|
11
|
-
props.ogSiteName !== void 0 &&
|
|
7
|
+
h("meta", { property: "og:title", content: ogTitle }),
|
|
8
|
+
ogDescription !== void 0 && h("meta", { property: "og:description", content: ogDescription }),
|
|
9
|
+
props.ogType !== void 0 && h("meta", { property: "og:type", content: props.ogType }),
|
|
10
|
+
props.ogUrl !== void 0 && h("meta", { property: "og:url", content: props.ogUrl }),
|
|
11
|
+
props.ogImage !== void 0 && h("meta", { property: "og:image", content: props.ogImage }),
|
|
12
|
+
props.ogSiteName !== void 0 && h("meta", { property: "og:site_name", content: props.ogSiteName })
|
|
12
13
|
] });
|
|
13
14
|
}
|
|
14
15
|
export {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fragment, jsx, jsxs } from "
|
|
1
|
+
import { Fragment, jsx, jsxs } from "@takazudo/zfb/zudo-react/jsx-runtime";
|
|
2
2
|
function TwitterCard(props) {
|
|
3
3
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4
4
|
/* @__PURE__ */ jsx("meta", { name: "twitter:card", content: props.card }),
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
|
|
3
|
-
import type { JSX } from "preact";
|
|
2
|
+
import type { JSX } from "@takazudo/zfb/zudo-react/jsx-runtime";
|
|
4
3
|
import type { HeadProps } from "../head/types.js";
|
|
5
4
|
import type { ColorSchemeProviderColorMode } from "../theme/color-scheme-provider.js";
|
|
6
5
|
import type { ChromeContext } from "../factory-context/index.js";
|
|
@@ -15,6 +14,8 @@ export interface HeadWithDefaultsProps {
|
|
|
15
14
|
* `<link rel="canonical" href="...">`.
|
|
16
15
|
*/
|
|
17
16
|
canonical?: string;
|
|
17
|
+
/** Page-specific alternate links, such as an exported Markdown version. */
|
|
18
|
+
alternateLinks?: HeadProps["alternateLinks"];
|
|
18
19
|
}
|
|
19
20
|
/** Settings subset read by {@link createHeadWithDefaults}. Retained for the
|
|
20
21
|
* `HeadProps`/`ColorSchemeProviderColorMode` type references it documents. */
|
|
@@ -29,6 +30,10 @@ export interface HeadWithDefaultsSettings {
|
|
|
29
30
|
twitterCreator?: string;
|
|
30
31
|
};
|
|
31
32
|
siteName: string;
|
|
33
|
+
/** Emit agent-discovery links only when the opt-in static export is enabled. */
|
|
34
|
+
agentExport?: boolean;
|
|
35
|
+
/** Existing llms.txt output setting; retained independently from agent export. */
|
|
36
|
+
llmsTxt?: boolean;
|
|
32
37
|
colorMode?: ColorSchemeProviderColorMode | null | false;
|
|
33
38
|
sidebarResizer?: boolean;
|
|
34
39
|
/** Configured theme-pack slug (ADR `docs/adr/theme-packs.md`, #2822). */
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Fragment, jsx, jsxs } from "
|
|
1
|
+
import { Fragment, jsx, jsxs } from "@takazudo/zfb/zudo-react/jsx-runtime";
|
|
2
|
+
import { h } from "@takazudo/zfb/zudo-react";
|
|
2
3
|
import { OgTags, TwitterCard } from "../head/index.js";
|
|
3
4
|
import { SIDEBAR_RESIZER_RESTORE_SCRIPT } from "../sidebar-resizer/index.js";
|
|
4
5
|
import ColorSchemeProvider from "../theme/color-scheme-provider.js";
|
|
@@ -9,6 +10,13 @@ import { DEFAULT_THEME_PACK_SLUG } from "../theme-pack-switcher/theme-pack-sync.
|
|
|
9
10
|
import { renderAutoLogoIconSvg } from "../auto-logo/icon.js";
|
|
10
11
|
import { deriveComposeMetaTitle, deriveColorSchemeGenerators } from "../chrome/derive.js";
|
|
11
12
|
import { assertChromeContext } from "../chrome/assert-chrome-context.js";
|
|
13
|
+
function mediaSwapHandler(media) {
|
|
14
|
+
const handler = `this.media='${media ?? "all"}'`;
|
|
15
|
+
if (!/^this\.media='[a-z\d\s(),:.%+\-/*<>=]*'$/i.test(handler)) {
|
|
16
|
+
throw new TypeError("Async stylesheet media cannot form a safe onload handler");
|
|
17
|
+
}
|
|
18
|
+
return handler;
|
|
19
|
+
}
|
|
12
20
|
const FAVICON_AUTO = "auto";
|
|
13
21
|
const DEFAULT_FAVICON = {
|
|
14
22
|
svg: "/favicon.svg",
|
|
@@ -97,7 +105,8 @@ function createHeadWithDefaults(ctx) {
|
|
|
97
105
|
function HeadWithDefaults({
|
|
98
106
|
title,
|
|
99
107
|
description,
|
|
100
|
-
canonical
|
|
108
|
+
canonical,
|
|
109
|
+
alternateLinks
|
|
101
110
|
}) {
|
|
102
111
|
const { metaTags } = settings;
|
|
103
112
|
const ogImageUrl = metaTags.ogImage != null && metaTags.ogImage !== false ? absoluteUrl(withBase(metaTags.ogImage)) : void 0;
|
|
@@ -117,9 +126,9 @@ function createHeadWithDefaults(ctx) {
|
|
|
117
126
|
),
|
|
118
127
|
metaTags.keywords !== false && metaTags.keywords && metaTags.keywords.length > 0 && /* @__PURE__ */ jsx("meta", { name: "keywords", content: metaTags.keywords }),
|
|
119
128
|
ogImageUrl !== void 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
129
|
+
h("meta", { property: "og:image:width", content: "1200" }),
|
|
130
|
+
h("meta", { property: "og:image:height", content: "630" }),
|
|
131
|
+
h("meta", { property: "og:image:alt", content: composeMetaTitle(title) })
|
|
123
132
|
] }),
|
|
124
133
|
metaTags.twitterCard !== false && metaTags.twitterCard !== void 0 && /* @__PURE__ */ jsx(
|
|
125
134
|
TwitterCard,
|
|
@@ -139,9 +148,20 @@ function createHeadWithDefaults(ctx) {
|
|
|
139
148
|
base: themePackBase
|
|
140
149
|
}
|
|
141
150
|
),
|
|
142
|
-
settings.sidebarResizer && /* @__PURE__ */ jsx("script", {
|
|
151
|
+
settings.sidebarResizer && /* @__PURE__ */ jsx("script", { rawHtml: SIDEBAR_RESIZER_RESTORE_SCRIPT }),
|
|
143
152
|
faviconLinks.map((attrs, i) => /* @__PURE__ */ jsx("link", { ...attrs }, i)),
|
|
144
153
|
canonical !== void 0 && /* @__PURE__ */ jsx("link", { rel: "canonical", href: canonical }),
|
|
154
|
+
alternateLinks?.map((alternate, i) => /* @__PURE__ */ jsx(
|
|
155
|
+
"link",
|
|
156
|
+
{
|
|
157
|
+
rel: alternate.rel,
|
|
158
|
+
href: alternate.href,
|
|
159
|
+
...alternate.type ? { type: alternate.type } : {},
|
|
160
|
+
...alternate.title ? { title: alternate.title } : {}
|
|
161
|
+
},
|
|
162
|
+
`page-alternate:${i}`
|
|
163
|
+
)),
|
|
164
|
+
settings.agentExport && settings.llmsTxt && /* @__PURE__ */ jsx("link", { rel: "alternate", href: withBase("/llms.txt"), type: "text/plain" }),
|
|
145
165
|
ctx.settings.head && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
146
166
|
ctx.settings.head.preconnect?.map((p, i) => /* @__PURE__ */ jsx(
|
|
147
167
|
"link",
|
|
@@ -152,28 +172,23 @@ function createHeadWithDefaults(ctx) {
|
|
|
152
172
|
},
|
|
153
173
|
i
|
|
154
174
|
)),
|
|
155
|
-
ctx.settings.head.preload?.map(
|
|
156
|
-
"link",
|
|
157
|
-
|
|
175
|
+
ctx.settings.head.preload?.map(
|
|
176
|
+
(p, i) => h("link", {
|
|
177
|
+
key: i,
|
|
158
178
|
rel: "preload",
|
|
159
179
|
as: p.as,
|
|
160
180
|
href: p.href,
|
|
161
181
|
...p.type ? { type: p.type } : {},
|
|
162
182
|
...p.crossorigin ? { crossorigin: p.crossorigin } : {}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
)),
|
|
183
|
+
})
|
|
184
|
+
),
|
|
166
185
|
ctx.settings.head.stylesheets?.map(
|
|
167
186
|
(s, i) => s.async ? (
|
|
168
187
|
// Non-render-blocking async stylesheet:
|
|
169
188
|
// <link rel="stylesheet" href media="print" onload="this.media='all'">
|
|
170
189
|
// <noscript><link rel="stylesheet" href></noscript>
|
|
171
190
|
//
|
|
172
|
-
//
|
|
173
|
-
// literal HTML attributes (only function-valued event handlers are
|
|
174
|
-
// stripped). We use `as any` to bypass Preact's JSX types, which
|
|
175
|
-
// expect a function for onload. The new unit test pins the exact
|
|
176
|
-
// emitted string to guard this contract.
|
|
191
|
+
// Preserve the bounded media swap before native JSX rendering.
|
|
177
192
|
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
178
193
|
/* @__PURE__ */ jsx(
|
|
179
194
|
"link",
|
|
@@ -182,19 +197,19 @@ function createHeadWithDefaults(ctx) {
|
|
|
182
197
|
href: s.href,
|
|
183
198
|
...s.crossorigin ? { crossorigin: s.crossorigin } : {},
|
|
184
199
|
media: "print",
|
|
185
|
-
|
|
200
|
+
onload: mediaSwapHandler(s.media)
|
|
186
201
|
},
|
|
187
202
|
`${i}-link`
|
|
188
203
|
),
|
|
189
|
-
/* @__PURE__ */ jsx(
|
|
190
|
-
"
|
|
204
|
+
/* @__PURE__ */ jsx("noscript", { children: /* @__PURE__ */ jsx(
|
|
205
|
+
"link",
|
|
191
206
|
{
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
)
|
|
207
|
+
rel: "stylesheet",
|
|
208
|
+
href: s.href,
|
|
209
|
+
...s.media ? { media: s.media } : {},
|
|
210
|
+
...s.crossorigin ? { crossorigin: s.crossorigin } : {}
|
|
211
|
+
}
|
|
212
|
+
) }, `${i}-noscript`)
|
|
198
213
|
] })
|
|
199
214
|
) : /* @__PURE__ */ jsx(
|
|
200
215
|
"link",
|
|
@@ -217,15 +232,14 @@ function createHeadWithDefaults(ctx) {
|
|
|
217
232
|
},
|
|
218
233
|
i
|
|
219
234
|
)),
|
|
220
|
-
ctx.settings.head.meta?.map(
|
|
221
|
-
"meta",
|
|
222
|
-
|
|
235
|
+
ctx.settings.head.meta?.map(
|
|
236
|
+
(m, i) => h("meta", {
|
|
237
|
+
key: i,
|
|
223
238
|
...m.name ? { name: m.name } : {},
|
|
224
239
|
...m.property ? { property: m.property } : {},
|
|
225
240
|
content: m.content
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
))
|
|
241
|
+
})
|
|
242
|
+
)
|
|
229
243
|
] })
|
|
230
244
|
] });
|
|
231
245
|
}
|
package/dist/header/header.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
|
|
3
|
-
import type {
|
|
2
|
+
import type { Child } from "@takazudo/zfb/zudo-react";
|
|
3
|
+
import type { JSX } from "@takazudo/zfb/zudo-react/jsx-runtime";
|
|
4
4
|
import type { HeaderNavItem, HeaderRightComponentRegistry, HeaderRightItem, Locale } from "./types.js";
|
|
5
5
|
/**
|
|
6
6
|
* Boundary helpers the host injects into `<Header>`. These are the URL
|
|
@@ -48,7 +48,7 @@ export interface HeaderProps {
|
|
|
48
48
|
* replaces the legacy `<slot name="sidebar" />`. Consumers pass the
|
|
49
49
|
* sidebar tree they want to surface in the mobile sheet.
|
|
50
50
|
*/
|
|
51
|
-
sidebarSlot?:
|
|
51
|
+
sidebarSlot?: Child;
|
|
52
52
|
/**
|
|
53
53
|
* Replacement for the `<SidebarToggle client:media="...">` element in
|
|
54
54
|
* the legacy template. Consumers wrap their preferred Preact /
|
|
@@ -57,19 +57,19 @@ export interface HeaderProps {
|
|
|
57
57
|
* that slot — the layout is still valid (e.g. doc pages with
|
|
58
58
|
* `hide_sidebar`).
|
|
59
59
|
*/
|
|
60
|
-
sidebarToggle?:
|
|
60
|
+
sidebarToggle?: Child;
|
|
61
61
|
/**
|
|
62
62
|
* Replacement for `<ThemeToggle client:load />`. Rendered only when
|
|
63
63
|
* `colorModeEnabled` is `true` AND a `theme-toggle` entry survives
|
|
64
64
|
* `filterHeaderRightItems` — matching the original template.
|
|
65
65
|
*/
|
|
66
|
-
themeToggle?:
|
|
66
|
+
themeToggle?: Child;
|
|
67
67
|
/** Replacement for the `<LanguageSwitcher />` Astro child. */
|
|
68
|
-
languageSwitcher?:
|
|
68
|
+
languageSwitcher?: Child;
|
|
69
69
|
/** Replacement for the `<VersionSwitcher />` Astro child. */
|
|
70
|
-
versionSwitcher?:
|
|
70
|
+
versionSwitcher?: Child;
|
|
71
71
|
/** Replacement for the `<Search />` Astro child. */
|
|
72
|
-
search?:
|
|
72
|
+
search?: Child;
|
|
73
73
|
/**
|
|
74
74
|
* Emits `data-zfb-transition-persist={persistKey}` on the
|
|
75
75
|
* `<header>` element so zfb's client-router preserves DOM-node identity
|
package/dist/header/header.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fragment, jsx, jsxs } from "
|
|
1
|
+
import { Fragment, jsx, jsxs } from "@takazudo/zfb/zudo-react/jsx-runtime";
|
|
2
2
|
import {
|
|
3
3
|
computeActiveNavPath,
|
|
4
4
|
isNavItemActive,
|
|
@@ -163,7 +163,7 @@ function Header(props) {
|
|
|
163
163
|
children: rightGroups
|
|
164
164
|
}
|
|
165
165
|
),
|
|
166
|
-
/* @__PURE__ */ jsx("script", {
|
|
166
|
+
/* @__PURE__ */ jsx("script", { rawHtml: NAV_OVERFLOW_SCRIPT }),
|
|
167
167
|
hasLocales ? (
|
|
168
168
|
// Keeps the persisted header's language-switcher hrefs pointing at the
|
|
169
169
|
// current page's equivalent in each other locale across same-locale SPA
|
|
@@ -172,7 +172,7 @@ function Header(props) {
|
|
|
172
172
|
/* @__PURE__ */ jsx(
|
|
173
173
|
"script",
|
|
174
174
|
{
|
|
175
|
-
|
|
175
|
+
rawHtml: LANGUAGE_SWITCHER_INIT_SCRIPT
|
|
176
176
|
}
|
|
177
177
|
)
|
|
178
178
|
) : null,
|
|
@@ -184,7 +184,7 @@ function Header(props) {
|
|
|
184
184
|
/* @__PURE__ */ jsx(
|
|
185
185
|
"script",
|
|
186
186
|
{
|
|
187
|
-
|
|
187
|
+
rawHtml: VERSION_SWITCHER_REWIRE_SCRIPT
|
|
188
188
|
}
|
|
189
189
|
)
|
|
190
190
|
) : null
|
|
@@ -219,7 +219,7 @@ function renderNavItem(item, activeNavPath, activeCategory, lang, currentVersion
|
|
|
219
219
|
"aria-haspopup": "true",
|
|
220
220
|
"aria-expanded": "false",
|
|
221
221
|
class: [
|
|
222
|
-
"flex items-center gap-x-hsp-xs px-hsp-md py-vsp-2xs text-small font-medium transition-colors",
|
|
222
|
+
"flex items-center gap-x-hsp-xs px-hsp-md py-vsp-2xs text-small font-medium transition-colors duration-0",
|
|
223
223
|
isActive ? NAV_TOP_ACTIVE.join(" ") : NAV_TOP_INACTIVE.join(" ")
|
|
224
224
|
].join(" "),
|
|
225
225
|
children: [
|
|
@@ -279,7 +279,7 @@ function renderNavItem(item, activeNavPath, activeCategory, lang, currentVersion
|
|
|
279
279
|
"data-nav-category": item.categoryMatch,
|
|
280
280
|
"data-nav-item": true,
|
|
281
281
|
class: [
|
|
282
|
-
"px-hsp-md py-vsp-2xs text-small font-medium transition-colors shrink-0",
|
|
282
|
+
"px-hsp-md py-vsp-2xs text-small font-medium transition-colors duration-0 shrink-0",
|
|
283
283
|
isActive ? NAV_TOP_ACTIVE.join(" ") : NAV_TOP_INACTIVE.join(" ")
|
|
284
284
|
].join(" "),
|
|
285
285
|
children: label
|
|
@@ -314,7 +314,7 @@ function TriggerButton({
|
|
|
314
314
|
{
|
|
315
315
|
id,
|
|
316
316
|
type: "button",
|
|
317
|
-
class: "flex h-[40px] w-[40px] shrink-0 items-center justify-center text-muted transition-colors hover:text-fg focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2",
|
|
317
|
+
class: "flex h-[40px] w-[40px] shrink-0 items-center justify-center text-muted transition-colors duration-0 hover:text-fg focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2",
|
|
318
318
|
"aria-label": ariaLabel,
|
|
319
319
|
...inlineOnclick,
|
|
320
320
|
children
|
|
@@ -347,7 +347,6 @@ const BASE_RIGHT_ITEM_DISPATCH = {
|
|
|
347
347
|
children: /* @__PURE__ */ jsxs(
|
|
348
348
|
"svg",
|
|
349
349
|
{
|
|
350
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
351
350
|
width: "20",
|
|
352
351
|
height: "20",
|
|
353
352
|
viewBox: "0 0 24 24",
|
|
@@ -378,7 +377,6 @@ const BASE_RIGHT_ITEM_DISPATCH = {
|
|
|
378
377
|
children: /* @__PURE__ */ jsxs(
|
|
379
378
|
"svg",
|
|
380
379
|
{
|
|
381
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
382
380
|
width: "20",
|
|
383
381
|
height: "20",
|
|
384
382
|
viewBox: "0 0 24 24",
|
|
@@ -401,7 +399,7 @@ const BASE_RIGHT_ITEM_DISPATCH = {
|
|
|
401
399
|
href: ctx.githubRepoUrl,
|
|
402
400
|
target: "_blank",
|
|
403
401
|
rel: "noopener noreferrer",
|
|
404
|
-
class: "flex h-[40px] w-[40px] shrink-0 items-center justify-center text-muted transition-colors hover:text-fg focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2",
|
|
402
|
+
class: "flex h-[40px] w-[40px] shrink-0 items-center justify-center text-muted transition-colors duration-0 hover:text-fg focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2",
|
|
405
403
|
"aria-label": ctx.githubLabel,
|
|
406
404
|
title: ctx.githubLabel,
|
|
407
405
|
children: [
|
|
@@ -447,7 +445,7 @@ const BASE_RIGHT_ITEM_DISPATCH = {
|
|
|
447
445
|
return /* @__PURE__ */ jsx(
|
|
448
446
|
"span",
|
|
449
447
|
{
|
|
450
|
-
|
|
448
|
+
rawHtml: item.html
|
|
451
449
|
},
|
|
452
450
|
`right-${index}`
|
|
453
451
|
);
|
package/dist/header/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Child, Component } from "@takazudo/zfb/zudo-react";
|
|
2
2
|
/**
|
|
3
3
|
* Locale code as seen by the header. Widened from the host's literal
|
|
4
|
-
* union (`"en" | "ja" | …`) to plain `string` at the
|
|
4
|
+
* union (`"en" | "ja" | …`) to plain `string` at the package boundary so the
|
|
5
5
|
* package can render for any project's locale set without a generic
|
|
6
6
|
* parameter (super-epic #1724, sub-issue #1729).
|
|
7
7
|
*/
|
|
@@ -47,15 +47,15 @@ export interface HeaderRightComponentProps {
|
|
|
47
47
|
lang: Locale | undefined;
|
|
48
48
|
githubRepoUrl: string | null;
|
|
49
49
|
githubLabel: string;
|
|
50
|
-
themeToggle:
|
|
51
|
-
languageSwitcher:
|
|
52
|
-
versionSwitcher:
|
|
53
|
-
search:
|
|
50
|
+
themeToggle: Child;
|
|
51
|
+
languageSwitcher: Child;
|
|
52
|
+
versionSwitcher: Child;
|
|
53
|
+
search: Child;
|
|
54
54
|
colorModeEnabled: boolean;
|
|
55
55
|
hasLocales: boolean;
|
|
56
56
|
}
|
|
57
57
|
/** A callable-only host registry keyed by serialized component name. */
|
|
58
|
-
export type HeaderRightComponentRegistry = Record<string,
|
|
58
|
+
export type HeaderRightComponentRegistry = Record<string, Component<HeaderRightComponentProps>>;
|
|
59
59
|
export interface HeaderRightTriggerItem {
|
|
60
60
|
type: "trigger";
|
|
61
61
|
trigger: HeaderRightTriggerName;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
|
|
3
|
-
import type { JSX } from "preact";
|
|
2
|
+
import type { JSX } from "@takazudo/zfb/zudo-react/jsx-runtime";
|
|
4
3
|
import type { ChromeContext } from "../factory-context/index.js";
|
|
5
4
|
import type { Settings } from "../settings.js";
|
|
6
5
|
import type { SidebarNavNode } from "../sidebar/types.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx } from "
|
|
1
|
+
import { jsx } from "@takazudo/zfb/zudo-react/jsx-runtime";
|
|
2
2
|
import { Island } from "@takazudo/zfb";
|
|
3
3
|
import { Header, filterHeaderRightItems } from "../header/index.js";
|
|
4
4
|
import {
|
|
@@ -29,7 +29,7 @@ function createHeaderWithDefaults(ctx) {
|
|
|
29
29
|
const docsUrl = ctx.docsUrl;
|
|
30
30
|
const navHref = ctx.navHref;
|
|
31
31
|
const versionedDocsUrl = ctx.versionedDocsUrl;
|
|
32
|
-
const { buildRootMenuItems, buildLocaleLinksForNav, buildSidebarNodes, getThemeDefaultMode } = deriveNavDataPrep(ctx);
|
|
32
|
+
const { buildRootMenuItems, buildLocaleLinksForNav, buildSidebarNodes, buildSidebarContext, getThemeDefaultMode } = deriveNavDataPrep(ctx);
|
|
33
33
|
const buildGitHubRepoUrl = () => buildGitHubRepoUrlBase(ctx.settings.githubUrl);
|
|
34
34
|
const SearchWidget = deriveSearchWidgetSlot(ctx);
|
|
35
35
|
const getUnavailableVersions = deriveGetUnavailableVersions(ctx);
|
|
@@ -50,7 +50,8 @@ function createHeaderWithDefaults(ctx) {
|
|
|
50
50
|
const themeDefaultMode = getThemeDefaultMode();
|
|
51
51
|
const themeRespectSystem = (ctx.settings.colorMode && ctx.settings.colorMode.respectPrefersColorScheme) ?? true;
|
|
52
52
|
const buildDefaultSidebarNodes = () => buildSidebarNodes(lang, navSection, currentVersion);
|
|
53
|
-
const
|
|
53
|
+
const defaultSidebar = sidebarNodesProp === void 0 ? buildSidebarContext(lang, navSection, currentVersion) : void 0;
|
|
54
|
+
const sidebarNodes = sidebarNodesProp === void 0 ? defaultSidebar.nodes : typeof sidebarNodesProp === "function" ? sidebarNodesProp({
|
|
54
55
|
lang,
|
|
55
56
|
navSection,
|
|
56
57
|
currentVersion,
|
|
@@ -62,12 +63,13 @@ function createHeaderWithDefaults(ctx) {
|
|
|
62
63
|
SidebarToggle,
|
|
63
64
|
{
|
|
64
65
|
nodes: sidebarNodes,
|
|
65
|
-
|
|
66
|
+
...defaultSidebar?.navigation ? { navigation: defaultSidebar.navigation } : {},
|
|
67
|
+
...currentSlug !== void 0 ? { currentSlug } : {},
|
|
66
68
|
rootMenuItems,
|
|
67
|
-
backToMenuLabel,
|
|
69
|
+
...backToMenuLabel !== void 0 ? { backToMenuLabel } : {},
|
|
68
70
|
locale: lang,
|
|
69
|
-
localeLinks,
|
|
70
|
-
themeDefaultMode,
|
|
71
|
+
...localeLinks !== void 0 ? { localeLinks } : {},
|
|
72
|
+
...themeDefaultMode !== void 0 ? { themeDefaultMode } : {},
|
|
71
73
|
themeLabels: themeToggleLabels(t, lang),
|
|
72
74
|
themeRespectSystem,
|
|
73
75
|
dateFormats: dateFormatsFor(lang)
|
|
@@ -76,7 +78,15 @@ function createHeaderWithDefaults(ctx) {
|
|
|
76
78
|
});
|
|
77
79
|
const themeToggle = Island({
|
|
78
80
|
when: "load",
|
|
79
|
-
children: /* @__PURE__ */ jsx(
|
|
81
|
+
children: /* @__PURE__ */ jsx(
|
|
82
|
+
ThemeToggle,
|
|
83
|
+
{
|
|
84
|
+
...themeDefaultMode !== void 0 ? { defaultMode: themeDefaultMode } : {},
|
|
85
|
+
labels: themeToggleLabels(t, lang),
|
|
86
|
+
respectPrefersColorScheme: themeRespectSystem,
|
|
87
|
+
pendingUntilHydrated: true
|
|
88
|
+
}
|
|
89
|
+
)
|
|
80
90
|
});
|
|
81
91
|
const searchWidget = /* @__PURE__ */ jsx(
|
|
82
92
|
SearchWidget,
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/** @jsxRuntime automatic */
|
|
2
|
-
/** @jsxImportSource preact */
|
|
3
|
-
import { h } from "preact";
|
|
4
1
|
import type { PreparedHomeIntro } from "./types.js";
|
|
5
2
|
export type { IntroNode, PreparedHomeIntro, PreparedHomeIntros } from "./types.js";
|
|
6
3
|
export { resolveHomeIntro } from "./resolve.js";
|
|
@@ -13,7 +10,7 @@ export { resolveHomeIntro } from "./resolve.js";
|
|
|
13
10
|
* double up against them.
|
|
14
11
|
*/
|
|
15
12
|
export declare const HOME_SECTION_HEADING_CLASS = "zd-home-heading text-title font-bold leading-tight";
|
|
16
|
-
/** Synchronous SSR view of output produced by home-intro/prepare.
|
|
13
|
+
/** Synchronous SSR view of output produced by home-intro/prepare. Ruby uses the native zudo-react vocabulary. */
|
|
17
14
|
export declare function CompactProse({ intro }: {
|
|
18
15
|
intro: PreparedHomeIntro | null | undefined;
|
|
19
|
-
}):
|
|
16
|
+
}): import("@takazudo/zfb").Description | null;
|
package/dist/home-intro/index.js
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import { jsx } from "
|
|
2
|
-
import { h } from "
|
|
1
|
+
import { jsx } from "@takazudo/zfb/zudo-react/jsx-runtime";
|
|
2
|
+
import { h } from "@takazudo/zfb/zudo-react";
|
|
3
3
|
import { defaultComponents } from "../content/index.js";
|
|
4
4
|
import { makeAdmonition } from "../content-admonition/index.js";
|
|
5
5
|
import { resolveHomeIntro } from "./resolve.js";
|
|
6
6
|
const HOME_SECTION_HEADING_CLASS = "zd-home-heading text-title font-bold leading-tight";
|
|
7
7
|
const { h2: _h2, h3: _h3, h4: _h4, ...typography } = defaultComponents;
|
|
8
8
|
const components = { ...typography };
|
|
9
|
-
components.h2 = ({ class: klass,
|
|
9
|
+
components.h2 = ({ class: klass, children, ...rest }) => h(
|
|
10
10
|
"h2",
|
|
11
|
-
{ ...rest, class: [HOME_SECTION_HEADING_CLASS, klass
|
|
11
|
+
{ ...rest, class: [HOME_SECTION_HEADING_CLASS, klass].filter(Boolean).join(" ") },
|
|
12
12
|
children
|
|
13
13
|
);
|
|
14
14
|
for (const variant of ["note", "tip", "info", "warning", "danger", "caution", "important"]) components[variant] = makeAdmonition(variant);
|
|
15
|
+
const voidTags = /* @__PURE__ */ new Set(["br", "hr", "img", "input"]);
|
|
15
16
|
function renderNode(node) {
|
|
16
17
|
if (typeof node === "string") return node;
|
|
17
|
-
|
|
18
|
+
const type = components[node.tag] ?? node.tag;
|
|
19
|
+
return voidTags.has(node.tag) ? h(type, node.attrs) : h(type, node.attrs, ...node.children.map(renderNode));
|
|
18
20
|
}
|
|
19
21
|
function CompactProse({ intro }) {
|
|
20
22
|
if (!intro?.nodes.length) return null;
|
|
@@ -37,7 +37,7 @@ function inspect(node, settings, locale, source = "") {
|
|
|
37
37
|
if ("children" in node && Array.isArray(node.children)) for (const child of node.children) inspect(child, settings, locale, source);
|
|
38
38
|
}
|
|
39
39
|
const allowedTags = new Set("p h1 h2 h3 h4 h5 h6 a img em strong del ul ol li blockquote pre code span br hr table thead tbody tr th td input div ruby rb rt rp note tip info warning danger caution important".split(" "));
|
|
40
|
-
const plainAttrs = /* @__PURE__ */ new Set(["title", "alt", "class", "id", "start", "
|
|
40
|
+
const plainAttrs = /* @__PURE__ */ new Set(["title", "alt", "class", "id", "start", "width", "height", "data-mermaid", "data-lang"]);
|
|
41
41
|
function prepareNode(node, settings, locale) {
|
|
42
42
|
if (node.nodeName === "#text") return node.value;
|
|
43
43
|
if (!("tagName" in node)) return null;
|
|
@@ -47,8 +47,9 @@ function prepareNode(node, settings, locale) {
|
|
|
47
47
|
for (const { name, value } of node.attrs) {
|
|
48
48
|
if (name === "href" && node.tagName === "a") attrs.href = resolveIntroUrl(value, settings, locale);
|
|
49
49
|
else if (name === "src" && node.tagName === "img") attrs.src = resolveIntroUrl(value, settings, locale, true);
|
|
50
|
-
else if (name === "style" && ["th", "td"].includes(node.tagName) &&
|
|
51
|
-
else if (
|
|
50
|
+
else if (name === "style" && ["th", "td"].includes(node.tagName) && /^text-align: (left|center|right);?$/u.test(value)) attrs.style = value;
|
|
51
|
+
else if (name === "align" && ["th", "td"].includes(node.tagName) && ["left", "center", "right"].includes(value)) attrs.style = `text-align: ${value}`;
|
|
52
|
+
else if (plainAttrs.has(name)) attrs[name] = value;
|
|
52
53
|
else if (node.tagName === "input" && name === "type" && value === "checkbox") attrs.type = value;
|
|
53
54
|
else if (node.tagName === "input" && (name === "checked" || name === "disabled")) attrs[name] = true;
|
|
54
55
|
else throw new Error(`home.introMarkdown: unsupported rendered attribute ${name}`);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
|
|
3
|
-
import type {
|
|
2
|
+
import type { Child } from "@takazudo/zfb/zudo-react";
|
|
3
|
+
import type { JSX } from "@takazudo/zfb/zudo-react/jsx-runtime";
|
|
4
4
|
import type { TagItem } from "../nav-indexing/types.js";
|
|
5
5
|
import type { DocNavNode } from "../doc-page-props/index.js";
|
|
6
6
|
import type { ChromeContext } from "../factory-context/index.js";
|
|
@@ -25,7 +25,7 @@ export interface HomePageViewProps {
|
|
|
25
25
|
* from it (a renderer). Resolved as `extras ?? hostBindings.homeExtras?.({
|
|
26
26
|
* locale })`.
|
|
27
27
|
*/
|
|
28
|
-
extras?:
|
|
28
|
+
extras?: Child;
|
|
29
29
|
/**
|
|
30
30
|
* Overrides the default first hero link, which is otherwise
|
|
31
31
|
* `settings.headerNav[0]` + `t("nav.overview", locale)`. `path` is
|