@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/chrome/derive.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 { Island } from "@takazudo/zfb";
|
|
2
3
|
import { createComposeMetaTitle } from "../compose-meta-title/index.js";
|
|
3
4
|
import {
|
|
4
5
|
generateCssCustomProperties,
|
|
@@ -30,8 +31,10 @@ import {
|
|
|
30
31
|
remapVersionedHrefs,
|
|
31
32
|
getThemeDefaultMode as getThemeDefaultModeBase
|
|
32
33
|
} from "../nav-data-prep/index.js";
|
|
33
|
-
import {
|
|
34
|
+
import { buildSidebarNavigation } from "../sidebar-utils/index.js";
|
|
34
35
|
import { resolveDateFormats } from "../date-format-resolve/index.js";
|
|
36
|
+
import { normalizeIslandData } from "./island-data.js";
|
|
37
|
+
import { normalizeIslandData as normalizeIslandData2 } from "./island-data.js";
|
|
35
38
|
const GREY_RAMPS = {
|
|
36
39
|
base: [
|
|
37
40
|
"oklch(0.965 0.000 0)",
|
|
@@ -113,28 +116,32 @@ function deriveColorSchemeGenerators(ctx) {
|
|
|
113
116
|
}
|
|
114
117
|
function deriveNavDataPrep(ctx) {
|
|
115
118
|
function buildRootMenuItems(lang, currentVersion) {
|
|
116
|
-
return
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
119
|
+
return normalizeIslandData(
|
|
120
|
+
buildRootMenuItemsBase(
|
|
121
|
+
lang,
|
|
122
|
+
currentVersion,
|
|
123
|
+
ctx.settings.headerNav,
|
|
124
|
+
(key, l) => ctx.t(key, l),
|
|
125
|
+
(path, l, v, versioned) => ctx.navHref(path, l, v, versioned)
|
|
126
|
+
)
|
|
122
127
|
);
|
|
123
128
|
}
|
|
124
129
|
function buildLocaleLinksForNav(currentPath, lang, localeCount) {
|
|
125
|
-
return
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
+
return normalizeIslandData(
|
|
131
|
+
buildLocaleLinksForNavBase(
|
|
132
|
+
currentPath,
|
|
133
|
+
lang,
|
|
134
|
+
localeCount,
|
|
135
|
+
(path, l) => ctx.buildLocaleLinks(path, l)
|
|
136
|
+
)
|
|
130
137
|
);
|
|
131
138
|
}
|
|
132
139
|
const sidebarsConfig = ctx.hostBindings.sidebarsConfig ?? {};
|
|
133
|
-
function
|
|
134
|
-
if (navSection === void 0 && emptyWhenUnsectioned) return [];
|
|
140
|
+
function buildSidebarContext(lang, navSection, currentVersion, emptyWhenUnsectioned = true) {
|
|
141
|
+
if (navSection === void 0 && emptyWhenUnsectioned) return { nodes: [], navigation: void 0 };
|
|
135
142
|
const { navDocs, categoryMeta } = ctx.loadNavSourceDocs(lang, currentVersion);
|
|
136
143
|
const explicitPrefixes = ctx.getCategoryOrder().filter((cm) => cm !== "!");
|
|
137
|
-
const
|
|
144
|
+
const result = buildSidebarNavigation(
|
|
138
145
|
navDocs,
|
|
139
146
|
lang,
|
|
140
147
|
navSection,
|
|
@@ -148,17 +155,20 @@ function deriveNavDataPrep(ctx) {
|
|
|
148
155
|
),
|
|
149
156
|
explicitPrefixes
|
|
150
157
|
);
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
158
|
+
const remap = (nodes) => currentVersion ? remapVersionedHrefs(nodes, currentVersion, lang, (slug, v, l) => ctx.versionedDocsUrl(slug, v, l)) : nodes;
|
|
159
|
+
return normalizeIslandData({
|
|
160
|
+
nodes: remap(result.nodes),
|
|
161
|
+
navigation: { ...result.navigation, id: `${currentVersion ?? "current"}:${result.navigation.id}`, roots: remap(result.navigation.roots) }
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
function buildSidebarNodes(...args) {
|
|
165
|
+
const withoutIdentity = (nodes) => nodes.map(({ occurrenceId: _id, children, ...node }) => ({ ...node, children: withoutIdentity(children) }));
|
|
166
|
+
return withoutIdentity(buildSidebarContext(...args).nodes);
|
|
157
167
|
}
|
|
158
168
|
function getThemeDefaultMode() {
|
|
159
169
|
return getThemeDefaultModeBase(ctx.settings.colorMode);
|
|
160
170
|
}
|
|
161
|
-
return { buildRootMenuItems, buildLocaleLinksForNav, buildSidebarNodes, getThemeDefaultMode };
|
|
171
|
+
return { buildRootMenuItems, buildLocaleLinksForNav, buildSidebarNodes, buildSidebarContext, getThemeDefaultMode };
|
|
162
172
|
}
|
|
163
173
|
function deriveSearchWidgetSlot(ctx) {
|
|
164
174
|
function SearchWidgetBound(props) {
|
|
@@ -185,13 +195,19 @@ function deriveThemePackSwitcherProps(ctx) {
|
|
|
185
195
|
function skipsPackageDefaultDesignTokenPanel(settings) {
|
|
186
196
|
return Boolean(settings.designTokenPanelConfigModule) && settings.packageOwnedRoutes !== false;
|
|
187
197
|
}
|
|
198
|
+
function DefaultDesignTokenPanelBoundary() {
|
|
199
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(Island, { when: "load", children: /* @__PURE__ */ jsx(DesignTokenPanelBootstrap, {}) }) });
|
|
200
|
+
}
|
|
201
|
+
function DefaultThemePackSwitcherBoundary(props) {
|
|
202
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(Island, { when: "load", children: /* @__PURE__ */ jsx(ThemePackSwitcher, { ...props }) }) });
|
|
203
|
+
}
|
|
188
204
|
function deriveBodyEndIslands(ctx) {
|
|
189
205
|
const designTokenPanelDeps = {
|
|
190
|
-
DesignTokenPanelBootstrap: ctx.hostBindings.DesignTokenPanelBootstrap ?? (skipsPackageDefaultDesignTokenPanel(ctx.settings) ? void 0 :
|
|
206
|
+
DesignTokenPanelBootstrap: ctx.hostBindings.DesignTokenPanelBootstrap ?? (skipsPackageDefaultDesignTokenPanel(ctx.settings) ? void 0 : DefaultDesignTokenPanelBoundary)
|
|
191
207
|
};
|
|
192
208
|
const themePackSwitcherDeps = {
|
|
193
209
|
themePackSwitcherProps: deriveThemePackSwitcherProps(ctx),
|
|
194
|
-
ThemePackSwitcher
|
|
210
|
+
ThemePackSwitcher: DefaultThemePackSwitcherBoundary
|
|
195
211
|
};
|
|
196
212
|
const HostBodyEndIslands = ctx.hostBindings.BodyEndIslands;
|
|
197
213
|
if (!HostBodyEndIslands) {
|
|
@@ -351,11 +367,12 @@ function deriveMdxComponents(ctx) {
|
|
|
351
367
|
preview: ctx.t("htmlPreview.iframe.title", lang)
|
|
352
368
|
};
|
|
353
369
|
function HtmlPreviewBound(props) {
|
|
354
|
-
const
|
|
355
|
-
const
|
|
370
|
+
const definedProps = normalizeIslandData(props);
|
|
371
|
+
const labels = definedProps.labels;
|
|
372
|
+
const effectiveLang = definedProps.lang?.trim() ? definedProps.lang : lang.trim() ? lang : "en";
|
|
356
373
|
return HtmlPreviewWrapper({
|
|
357
|
-
globalConfig: ctx.settings.htmlPreview ?? null,
|
|
358
|
-
...
|
|
374
|
+
globalConfig: normalizeIslandData(ctx.settings.htmlPreview ?? null),
|
|
375
|
+
...definedProps,
|
|
359
376
|
lang: effectiveLang,
|
|
360
377
|
labels: {
|
|
361
378
|
mobile: labels?.mobile ?? localizedHtmlPreviewLabels.mobile,
|
|
@@ -416,5 +433,6 @@ export {
|
|
|
416
433
|
deriveMdxComponents,
|
|
417
434
|
deriveNavDataPrep,
|
|
418
435
|
deriveSearchWidgetSlot,
|
|
436
|
+
normalizeIslandData2 as normalizeIslandData,
|
|
419
437
|
skipsPackageDefaultDesignTokenPanel
|
|
420
438
|
};
|
package/dist/chrome/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
/** @jsxImportSource preact */
|
|
3
2
|
import type { RouteContext, ChromeHostBindings } from "../factory-context/index.js";
|
|
4
3
|
import type { Settings } from "../settings.js";
|
|
5
|
-
import type {
|
|
4
|
+
import type { Child } from "@takazudo/zfb/zudo-react";
|
|
5
|
+
import type { JSX } from "@takazudo/zfb/zudo-react/jsx-runtime";
|
|
6
6
|
import type { HeaderWithDefaultsProps } from "../header-with-defaults/index.js";
|
|
7
7
|
import type { SidebarWithDefaultsProps } from "../sidebar-with-defaults/index.js";
|
|
8
8
|
/**
|
|
@@ -19,7 +19,7 @@ export declare function createChrome<S extends Settings = Settings>(context: Rou
|
|
|
19
19
|
HeaderWithDefaults: (props: HeaderWithDefaultsProps) => JSX.Element;
|
|
20
20
|
FooterWithDefaults: (props: {
|
|
21
21
|
lang?: string;
|
|
22
|
-
}) =>
|
|
22
|
+
}) => Child;
|
|
23
23
|
SidebarWithDefaults: (props: SidebarWithDefaultsProps) => JSX.Element;
|
|
24
24
|
renderDocPage: (props: import("../doc-page-props/index.js").DocPageBaseProps, opts: import("../doc-page-renderer/index.js").RenderDocPageOptions) => JSX.Element;
|
|
25
25
|
VersionsPageView: (props: import("../versions-page/index.js").VersionsPageViewProps) => JSX.Element;
|
|
@@ -31,9 +31,9 @@ export declare function createChrome<S extends Settings = Settings>(context: Rou
|
|
|
31
31
|
}) => JSX.Element;
|
|
32
32
|
TagsIndexPageView: (props: {
|
|
33
33
|
locale: string;
|
|
34
|
-
children?:
|
|
34
|
+
children?: Child;
|
|
35
35
|
}) => JSX.Element;
|
|
36
|
-
SiteTreeNavWrapper: import("../
|
|
36
|
+
SiteTreeNavWrapper: import("../index.js").FactoryComponent;
|
|
37
37
|
BodyEndIslands: (props: import("../doc-body-end-islands/index.js").BodyEndIslandsProps) => JSX.Element;
|
|
38
38
|
HomePageView: (props: import("../home-page/index.js").HomePageViewProps) => JSX.Element;
|
|
39
39
|
AssetPageView: (props: import("../asset-page/index.js").AssetPageViewProps) => JSX.Element;
|
package/dist/chrome/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fragment, jsx } from "
|
|
1
|
+
import { Fragment, jsx } from "@takazudo/zfb/zudo-react/jsx-runtime";
|
|
2
2
|
import { createHeadWithDefaults } from "../head-with-defaults/index.js";
|
|
3
3
|
import { createRenderDocPage } from "../doc-page-renderer/index.js";
|
|
4
4
|
import { createVersionsPageView } from "../versions-page/index.js";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Copy transport data before constructing descriptions so SSR and the island
|
|
2
|
+
* serializer observe the same own keys. Optional record members are omitted;
|
|
3
|
+
* malformed arrays and runtime objects fail at the boundary. */
|
|
4
|
+
export declare function normalizeIslandData<T>(value: T): T;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
function normalizeIslandData(value) {
|
|
2
|
+
const active = /* @__PURE__ */ new WeakSet();
|
|
3
|
+
function copy(input, path) {
|
|
4
|
+
if (input === void 0 && path === "$island") return input;
|
|
5
|
+
if (input === null || typeof input === "string" || typeof input === "boolean") {
|
|
6
|
+
return input;
|
|
7
|
+
}
|
|
8
|
+
if (typeof input === "number" && Number.isFinite(input)) return input;
|
|
9
|
+
if (typeof input !== "object") throw new TypeError(`Invalid island data at ${path}`);
|
|
10
|
+
if (active.has(input)) throw new TypeError(`Cyclic island data at ${path}`);
|
|
11
|
+
const prototype = Object.getPrototypeOf(input);
|
|
12
|
+
if (!Array.isArray(input) && prototype !== Object.prototype && prototype !== null) {
|
|
13
|
+
throw new TypeError(`Invalid island record at ${path}`);
|
|
14
|
+
}
|
|
15
|
+
active.add(input);
|
|
16
|
+
try {
|
|
17
|
+
if (Array.isArray(input)) {
|
|
18
|
+
for (const key of Reflect.ownKeys(input)) {
|
|
19
|
+
if (key !== "length" && (typeof key !== "string" || !/^(0|[1-9][0-9]*)$/.test(key) || Number(key) >= input.length)) {
|
|
20
|
+
throw new TypeError(`Invalid island array key at ${path}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return Array.from({ length: input.length }, (_, index) => {
|
|
24
|
+
const descriptor = Object.getOwnPropertyDescriptor(input, index);
|
|
25
|
+
if (!descriptor) throw new TypeError(`Sparse island array at ${path}[${index}]`);
|
|
26
|
+
if (!("value" in descriptor)) {
|
|
27
|
+
throw new TypeError(`Accessor island data at ${path}[${index}]`);
|
|
28
|
+
}
|
|
29
|
+
return copy(descriptor.value, `${path}[${index}]`);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
const output = {};
|
|
33
|
+
for (const key of Reflect.ownKeys(input)) {
|
|
34
|
+
if (typeof key !== "string" || key === "__proto__" || key === "constructor" || key === "prototype") {
|
|
35
|
+
throw new TypeError(`Invalid island key at ${path}`);
|
|
36
|
+
}
|
|
37
|
+
const descriptor = Object.getOwnPropertyDescriptor(input, key);
|
|
38
|
+
if (!descriptor || !("value" in descriptor)) {
|
|
39
|
+
throw new TypeError(`Accessor island data at ${path}.${key}`);
|
|
40
|
+
}
|
|
41
|
+
if (descriptor.value !== void 0) output[key] = copy(descriptor.value, `${path}.${key}`);
|
|
42
|
+
}
|
|
43
|
+
return output;
|
|
44
|
+
} finally {
|
|
45
|
+
active.delete(input);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return copy(value, "$island");
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
normalizeIslandData
|
|
52
|
+
};
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
|
|
3
|
-
import type { ComponentChildren } from "preact";
|
|
2
|
+
import type { Child } from "@takazudo/zfb/zudo-react";
|
|
4
3
|
import type { ChromeContext } from "../factory-context/index.js";
|
|
5
4
|
import type { BreadcrumbSlotProps, DocPagerSlotProps, FooterSlotProps, HeaderSlotProps, SidebarSlotProps, TocSlotProps } from "../chrome-bindings.js";
|
|
6
5
|
import type { Settings } from "../settings.js";
|
|
7
|
-
type PrimarySlot<P> = (props: P) =>
|
|
6
|
+
type PrimarySlot<P> = (props: P) => Child;
|
|
8
7
|
/**
|
|
9
8
|
* Resolve all six primary chrome components through one binding object.
|
|
10
9
|
* Accessors keep package defaults lazy: a home view that only reads Header and
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Child, Component } from "@takazudo/zfb/zudo-react";
|
|
2
2
|
import type { BreadcrumbItem } from "./breadcrumb/index.js";
|
|
3
3
|
import type { DocPageNavNode } from "./doc-page-shell/index.js";
|
|
4
4
|
import type { HeadingItem } from "./toc/index.js";
|
|
@@ -34,12 +34,14 @@ export interface BodyEndIslandsSlotProps {
|
|
|
34
34
|
forceImageEnlarge?: boolean;
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
|
-
* Props the chrome passes to the `DocHistory`
|
|
37
|
+
* Props the chrome passes to the `DocHistory` server boundary slot — matches
|
|
38
38
|
* `DocHistoryProps` (`doc-history/index.tsx`) / `DocHistoryComponent`
|
|
39
39
|
* (`doc-history-area`), rendered as
|
|
40
40
|
* `<DocHistory slug=… locale=… basePath=… displayLocale=… dateFormats=… />`.
|
|
41
41
|
*/
|
|
42
42
|
export interface DocHistorySlotProps {
|
|
43
|
+
/** Server-only fallback consumed by the boundary, never serialized as client props. */
|
|
44
|
+
ssrFallback?: Child;
|
|
43
45
|
slug: string;
|
|
44
46
|
locale?: string;
|
|
45
47
|
basePath?: string;
|
|
@@ -50,8 +52,11 @@ export interface DocHistorySlotProps {
|
|
|
50
52
|
}
|
|
51
53
|
/**
|
|
52
54
|
* Props the chrome passes to the `DesignTokenPanelBootstrap` slot — NONE. It is
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
+
* a server boundary rendered with zero props behind the package settings gate.
|
|
56
|
+
* Return a Fragment containing an Island with a statically imported client
|
|
57
|
+
* target; do not pass the raw client component. The package owns the toggle
|
|
58
|
+
* shim but does not add an Island around this boundary.
|
|
59
|
+
* An empty object type (no index signature) so a
|
|
55
60
|
* zero-prop or all-optional-prop component is accepted while a component that
|
|
56
61
|
* REQUIRES any prop is drift.
|
|
57
62
|
*/
|
|
@@ -120,7 +125,7 @@ export interface TocSlotProps {
|
|
|
120
125
|
*/
|
|
121
126
|
export interface BreadcrumbSlotProps {
|
|
122
127
|
items: BreadcrumbItem[];
|
|
123
|
-
rightSlot?:
|
|
128
|
+
rightSlot?: Child;
|
|
124
129
|
}
|
|
125
130
|
/** Props supplied to the doc-route `DocPager` replacement. */
|
|
126
131
|
export interface DocPagerSlotProps {
|
|
@@ -134,30 +139,30 @@ export interface DocPagerSlotProps {
|
|
|
134
139
|
*/
|
|
135
140
|
export interface ChromeBindingsInput {
|
|
136
141
|
/** Primary header replacement — see {@link HeaderSlotProps}. */
|
|
137
|
-
Header?:
|
|
142
|
+
Header?: Component<HeaderSlotProps>;
|
|
138
143
|
/** Primary footer replacement — see {@link FooterSlotProps}. */
|
|
139
|
-
Footer?:
|
|
144
|
+
Footer?: Component<FooterSlotProps>;
|
|
140
145
|
/** Primary doc-sidebar replacement — see {@link SidebarSlotProps}. */
|
|
141
|
-
Sidebar?:
|
|
146
|
+
Sidebar?: Component<SidebarSlotProps>;
|
|
142
147
|
/** Primary desktop TOC replacement — see {@link TocSlotProps}. */
|
|
143
|
-
Toc?:
|
|
148
|
+
Toc?: Component<TocSlotProps>;
|
|
144
149
|
/** Primary breadcrumb replacement — see {@link BreadcrumbSlotProps}. */
|
|
145
|
-
Breadcrumb?:
|
|
150
|
+
Breadcrumb?: Component<BreadcrumbSlotProps>;
|
|
146
151
|
/** Primary previous/next pager replacement — see {@link DocPagerSlotProps}. */
|
|
147
|
-
DocPager?:
|
|
152
|
+
DocPager?: Component<DocPagerSlotProps>;
|
|
148
153
|
/** Header search widget — see {@link SearchWidgetSlotProps}. */
|
|
149
|
-
SearchWidget?:
|
|
154
|
+
SearchWidget?: Component<SearchWidgetSlotProps>;
|
|
150
155
|
/**
|
|
151
156
|
* Named header-right renderers. Values are callable-only and receive the
|
|
152
157
|
* exact `HeaderRightComponentProps` used by the header renderer.
|
|
153
158
|
*/
|
|
154
159
|
headerRightComponents?: HeaderRightComponentRegistry;
|
|
155
160
|
/** Body-end bootstrap islands — see {@link BodyEndIslandsSlotProps}. */
|
|
156
|
-
BodyEndIslands?:
|
|
157
|
-
/** DocHistory
|
|
158
|
-
DocHistory?:
|
|
159
|
-
/**
|
|
160
|
-
DesignTokenPanelBootstrap?:
|
|
161
|
+
BodyEndIslands?: Component<BodyEndIslandsSlotProps>;
|
|
162
|
+
/** Fixed-target DocHistory server boundary — see {@link DocHistorySlotProps}. */
|
|
163
|
+
DocHistory?: Component<DocHistorySlotProps>;
|
|
164
|
+
/** Server boundary for the design-token-panel bootstrap — see {@link DesignTokenPanelBootstrapSlotProps}. */
|
|
165
|
+
DesignTokenPanelBootstrap?: Component<DesignTokenPanelBootstrapSlotProps>;
|
|
161
166
|
/**
|
|
162
167
|
* Per-page git-history meta manifest (data slot). Read as
|
|
163
168
|
* `Record<string, DocHistoryMetaEntry>` inside `doc-metainfo-area` /
|
|
@@ -181,13 +186,14 @@ export interface ChromeBindingsInput {
|
|
|
181
186
|
* (parameter contravariance). Unlike `mdxExtras`, this slot has a fixed call
|
|
182
187
|
* site, so it carries the real contract rather than a loose `Record`.
|
|
183
188
|
*/
|
|
184
|
-
frontmatterRenderers?: Record<string,
|
|
189
|
+
frontmatterRenderers?: Record<string, Component<FrontmatterRendererSlotProps>>;
|
|
185
190
|
/**
|
|
186
|
-
* MDX content-component overrides (renderer record).
|
|
187
|
-
*
|
|
188
|
-
*
|
|
191
|
+
* MDX content-component overrides (renderer record). Component props are a
|
|
192
|
+
* broad record because each MDX component has its own authored prop shape;
|
|
193
|
+
* the showcase's `MdxStub = (_props: unknown) => null` is accepted because
|
|
194
|
+
* `unknown` safely accepts that record.
|
|
189
195
|
*/
|
|
190
|
-
mdxExtras?: Record<string, unknown
|
|
196
|
+
mdxExtras?: Record<string, Component<Record<string, unknown>>>;
|
|
191
197
|
/**
|
|
192
198
|
* Frontmatter preview entry builder. `doc-content-header` calls it with the
|
|
193
199
|
* page `data` (`Record<string, unknown>`) and spreads the result into
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/** @jsxRuntime automatic */
|
|
2
|
-
|
|
3
|
-
import type { ComponentChildren } from "preact";
|
|
2
|
+
import type { Child } from "@takazudo/zfb/zudo-react";
|
|
4
3
|
type Props = {
|
|
5
4
|
tabs?: string[];
|
|
6
|
-
children?:
|
|
5
|
+
children?: Child;
|
|
7
6
|
[key: string]: unknown;
|
|
8
7
|
};
|
|
9
|
-
export declare function CodeGroup({ tabs, children, name }: Props): import("
|
|
8
|
+
export declare function CodeGroup({ tabs, children, name }: Props): import("@takazudo/zfb").Description;
|
|
10
9
|
export {};
|
package/dist/code-group/index.js
CHANGED
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import { Fragment, jsx } from "
|
|
1
|
+
import { Fragment, jsx } from "@takazudo/zfb/zudo-react/jsx-runtime";
|
|
2
|
+
import { flattenChildren } from "@takazudo/zfb/zudo-react";
|
|
2
3
|
import { Tabs } from "../code-syntax/index.js";
|
|
3
4
|
import { TabItem } from "../tab-item/index.js";
|
|
4
|
-
function toArray(children) {
|
|
5
|
-
if (!children) return [];
|
|
6
|
-
if (Array.isArray(children)) return children;
|
|
7
|
-
return [children];
|
|
8
|
-
}
|
|
9
5
|
function CodeGroup({ tabs = [], children, name }) {
|
|
10
|
-
const childArray =
|
|
6
|
+
const childArray = flattenChildren(children);
|
|
11
7
|
const items = tabs.map((label, i) => {
|
|
12
8
|
const child = childArray[i];
|
|
13
9
|
return { label, child };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Fragment, jsx, jsxs } from "
|
|
1
|
+
import { Fragment, jsx, jsxs } from "@takazudo/zfb/zudo-react/jsx-runtime";
|
|
2
2
|
import { CODE_BLOCK_ENHANCER_SCRIPT } from "./code-block-enhancer-script.js";
|
|
3
3
|
function CodeBlockEnhancer() {
|
|
4
4
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5
5
|
/* @__PURE__ */ jsx("div", { class: "code-block-sr-announce", "aria-live": "polite" }),
|
|
6
|
-
/* @__PURE__ */ jsx("script", {
|
|
6
|
+
/* @__PURE__ */ jsx("script", { rawHtml: CODE_BLOCK_ENHANCER_SCRIPT })
|
|
7
7
|
] });
|
|
8
8
|
}
|
|
9
9
|
export {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx } from "
|
|
1
|
+
import { jsx } from "@takazudo/zfb/zudo-react/jsx-runtime";
|
|
2
2
|
import {
|
|
3
3
|
MERMAID_CDN_MODULE_URL,
|
|
4
4
|
buildMermaidInitScript
|
|
@@ -6,7 +6,10 @@ import {
|
|
|
6
6
|
const MERMAID_INIT_SCRIPT = buildMermaidInitScript(MERMAID_CDN_MODULE_URL);
|
|
7
7
|
function MermaidInit(props = {}) {
|
|
8
8
|
const script = props.script ?? (props.cdnUrl ? buildMermaidInitScript(props.cdnUrl) : MERMAID_INIT_SCRIPT);
|
|
9
|
-
|
|
9
|
+
if (/<\/script\b/i.test(script)) {
|
|
10
|
+
throw new Error("MermaidInit script must not contain a closing script tag");
|
|
11
|
+
}
|
|
12
|
+
return /* @__PURE__ */ jsx("script", { rawHtml: script });
|
|
10
13
|
}
|
|
11
14
|
export {
|
|
12
15
|
MermaidInit
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AFTER_NAVIGATE_EVENT } from "../transitions/page-events.js";
|
|
2
2
|
const TABS_INIT_SCRIPT = `(function () {
|
|
3
|
-
var BASE_BTN = "px-hsp-lg py-vsp-xs text-small font-medium border-b-[5px] -mb-px transition-colors";
|
|
3
|
+
var BASE_BTN = "px-hsp-lg py-vsp-xs text-small font-medium border-b-[5px] -mb-px transition-colors duration-0";
|
|
4
4
|
var ACTIVE_BTN = BASE_BTN + " text-accent border-accent";
|
|
5
5
|
var INACTIVE_BTN = BASE_BTN + " text-muted border-transparent hover:text-fg";
|
|
6
6
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { jsx } from "
|
|
1
|
+
import { jsx } from "@takazudo/zfb/zudo-react/jsx-runtime";
|
|
2
2
|
import { TABS_INIT_SCRIPT } from "./tabs-init-script.js";
|
|
3
3
|
function TabsInit() {
|
|
4
|
-
return /* @__PURE__ */ jsx("script", {
|
|
4
|
+
return /* @__PURE__ */ jsx("script", { rawHtml: TABS_INIT_SCRIPT });
|
|
5
5
|
}
|
|
6
6
|
export {
|
|
7
7
|
TabsInit
|
|
@@ -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
|
export interface TabsProps {
|
|
5
5
|
/**
|
|
6
6
|
* When set, clicking a tab in this group persists the chosen value to
|
|
@@ -9,15 +9,15 @@ export interface TabsProps {
|
|
|
9
9
|
*/
|
|
10
10
|
groupId?: string;
|
|
11
11
|
/** `<TabItem>` children (and any other content). */
|
|
12
|
-
children?:
|
|
12
|
+
children?: Child;
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
15
|
* Server-rendered tab container — JSX port of the legacy `tabs` component.
|
|
16
16
|
*
|
|
17
|
-
* Iterates `children` via `
|
|
17
|
+
* Iterates `children` via `flattenChildren` to discover `<TabItem>` elements
|
|
18
18
|
* and renders their labels as `<button>` elements in the tab nav bar.
|
|
19
|
-
*
|
|
20
|
-
* script component) activates
|
|
19
|
+
* The default panel is visible on first paint; `<TabsInit>` (the companion
|
|
20
|
+
* script component) activates a stored tab after hydration.
|
|
21
21
|
*
|
|
22
22
|
* Place `<TabsInit>` once in the layout — NOT inside each `<Tabs>`.
|
|
23
23
|
*
|
package/dist/code-syntax/tabs.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { jsx, jsxs } from "
|
|
2
|
-
import {
|
|
1
|
+
import { jsx, jsxs } from "@takazudo/zfb/zudo-react/jsx-runtime";
|
|
2
|
+
import { h, flattenChildren } from "@takazudo/zfb/zudo-react";
|
|
3
3
|
import { TabItem } from "../tab-item/tab-item.js";
|
|
4
|
-
const BASE_BTN_CLASS = "px-hsp-lg py-vsp-xs text-small font-medium border-b-[5px] -mb-px transition-colors";
|
|
4
|
+
const BASE_BTN_CLASS = "px-hsp-lg py-vsp-xs text-small font-medium border-b-[5px] -mb-px transition-colors duration-0";
|
|
5
5
|
const ACTIVE_BTN_CLASS = `${BASE_BTN_CLASS} text-accent border-accent`;
|
|
6
6
|
const INACTIVE_BTN_CLASS = `${BASE_BTN_CLASS} text-muted border-transparent hover:text-fg`;
|
|
7
7
|
function Tabs({ groupId, children }) {
|
|
8
|
-
const childArray =
|
|
8
|
+
const childArray = flattenChildren(children);
|
|
9
9
|
const tabItemNodes = childArray.filter(
|
|
10
10
|
(child) => typeof child === "object" && child !== null && child.type === TabItem
|
|
11
11
|
);
|
|
@@ -23,18 +23,18 @@ function Tabs({ groupId, children }) {
|
|
|
23
23
|
const props = node.props;
|
|
24
24
|
const value = props.value ?? props.label;
|
|
25
25
|
const isDefault = value === defaultValue;
|
|
26
|
-
return
|
|
26
|
+
return h(node.type, { ...node.props, default: isDefault, key: node.key });
|
|
27
27
|
}
|
|
28
28
|
return child;
|
|
29
29
|
});
|
|
30
30
|
return /* @__PURE__ */ jsxs(
|
|
31
31
|
"div",
|
|
32
32
|
{
|
|
33
|
-
class: "
|
|
33
|
+
class: "my-vsp-md",
|
|
34
34
|
"data-tabs": true,
|
|
35
35
|
"data-group-id": groupId,
|
|
36
36
|
children: [
|
|
37
|
-
/* @__PURE__ */ jsx("div", { class: "
|
|
37
|
+
/* @__PURE__ */ jsx("div", { class: "flex border-b border-muted", role: "tablist", "data-tabs-nav": true, children: tabItems.map((item) => {
|
|
38
38
|
const value = item.props.value ?? item.props.label;
|
|
39
39
|
const isActive = value === defaultValue;
|
|
40
40
|
return /* @__PURE__ */ jsx(
|
|
@@ -50,7 +50,7 @@ function Tabs({ groupId, children }) {
|
|
|
50
50
|
value
|
|
51
51
|
);
|
|
52
52
|
}) }),
|
|
53
|
-
/* @__PURE__ */ jsx("div", {
|
|
53
|
+
/* @__PURE__ */ jsx("div", { "data-tabs-content": true, children: renderedChildren })
|
|
54
54
|
]
|
|
55
55
|
}
|
|
56
56
|
);
|