@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
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { AGENT_MAX_ITEMS, AGENT_MAX_MANIFEST_BYTES, AGENT_MAX_SEARCH_INDEX_BYTES } from "../agent-docs/limits.js";
|
|
2
|
+
import { buildAgentSearchIndex } from "../agent-docs/search.js";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
const digest = z.string().regex(/^[a-f0-9]{64}$/);
|
|
5
|
+
const pageId = z.string().regex(/^p-[a-f0-9]{16}$/);
|
|
6
|
+
const itemId = z.string().regex(/^p-[a-f0-9]{16}-[0-9]{6}$/);
|
|
7
|
+
const part = z.number().int().positive();
|
|
8
|
+
const itemSchema = z.object({
|
|
9
|
+
id: itemId,
|
|
10
|
+
title: z.string(),
|
|
11
|
+
text: z.string(),
|
|
12
|
+
url: z.string(),
|
|
13
|
+
metadata: z.object({
|
|
14
|
+
locale: z.string(),
|
|
15
|
+
pageId,
|
|
16
|
+
fingerprint: digest,
|
|
17
|
+
part,
|
|
18
|
+
partCount: part,
|
|
19
|
+
description: z.string().optional(),
|
|
20
|
+
section: z.string().optional(),
|
|
21
|
+
unsupportedDynamicContent: z.boolean().optional()
|
|
22
|
+
})
|
|
23
|
+
});
|
|
24
|
+
const manifestSchema = z.object({
|
|
25
|
+
schemaVersion: z.literal(1),
|
|
26
|
+
fingerprint: digest,
|
|
27
|
+
site: z.object({ name: z.string(), url: z.string(), base: z.string() }),
|
|
28
|
+
defaultLocale: z.string(),
|
|
29
|
+
locales: z.array(z.string()),
|
|
30
|
+
searchIndex: z.object({ url: z.string(), sha256: digest }),
|
|
31
|
+
documents: z.array(z.object({
|
|
32
|
+
id: pageId,
|
|
33
|
+
key: pageId,
|
|
34
|
+
locale: z.string(),
|
|
35
|
+
title: z.string(),
|
|
36
|
+
url: z.string(),
|
|
37
|
+
markdownUrl: z.string(),
|
|
38
|
+
itemIds: z.array(itemId)
|
|
39
|
+
})),
|
|
40
|
+
items: z.array(z.object({
|
|
41
|
+
id: itemId,
|
|
42
|
+
key: itemId,
|
|
43
|
+
pageId,
|
|
44
|
+
url: z.string(),
|
|
45
|
+
artifactUrl: z.string(),
|
|
46
|
+
sha256: digest,
|
|
47
|
+
part,
|
|
48
|
+
partCount: part
|
|
49
|
+
})).max(AGENT_MAX_ITEMS)
|
|
50
|
+
});
|
|
51
|
+
const indexSchema = z.object({
|
|
52
|
+
schemaVersion: z.literal(1),
|
|
53
|
+
fingerprint: digest,
|
|
54
|
+
items: z.array(itemSchema).max(AGENT_MAX_ITEMS)
|
|
55
|
+
});
|
|
56
|
+
class CorpusUnavailable extends Error {
|
|
57
|
+
}
|
|
58
|
+
const encoder = new TextEncoder();
|
|
59
|
+
async function sha256(text) {
|
|
60
|
+
const bytes = await crypto.subtle.digest("SHA-256", encoder.encode(text));
|
|
61
|
+
return Array.from(new Uint8Array(bytes), (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
62
|
+
}
|
|
63
|
+
function basePath(base) {
|
|
64
|
+
return `/${base.split("/").filter(Boolean).join("/")}/agent/v1/`.replace(/^\/\//, "/");
|
|
65
|
+
}
|
|
66
|
+
function safePath(url, root, siteUrl) {
|
|
67
|
+
let path = url;
|
|
68
|
+
if (/^https?:\/\//.test(url)) {
|
|
69
|
+
let parsed;
|
|
70
|
+
try {
|
|
71
|
+
parsed = new URL(url);
|
|
72
|
+
} catch {
|
|
73
|
+
throw new CorpusUnavailable("Invalid agent corpus artifact URL.");
|
|
74
|
+
}
|
|
75
|
+
if (!siteUrl || parsed.origin !== new URL(siteUrl).origin || parsed.search || parsed.hash) throw new CorpusUnavailable("Invalid agent corpus artifact origin.");
|
|
76
|
+
path = parsed.pathname;
|
|
77
|
+
}
|
|
78
|
+
if (!path.startsWith(root) || path.includes("?") || path.includes("#") || path.includes("..") || path.includes("%")) {
|
|
79
|
+
throw new CorpusUnavailable("Invalid agent corpus artifact path.");
|
|
80
|
+
}
|
|
81
|
+
return path;
|
|
82
|
+
}
|
|
83
|
+
async function readText(read, path, max) {
|
|
84
|
+
let response;
|
|
85
|
+
try {
|
|
86
|
+
response = await read(path);
|
|
87
|
+
} catch {
|
|
88
|
+
throw new CorpusUnavailable(`Cannot read agent corpus artifact: ${path}`);
|
|
89
|
+
}
|
|
90
|
+
if (!response.ok || !response.body) throw new CorpusUnavailable(`Missing agent corpus artifact: ${path}`);
|
|
91
|
+
const reader = response.body.getReader();
|
|
92
|
+
const chunks = [];
|
|
93
|
+
let size = 0;
|
|
94
|
+
try {
|
|
95
|
+
for (; ; ) {
|
|
96
|
+
const { done, value } = await reader.read();
|
|
97
|
+
if (done) break;
|
|
98
|
+
size += value.byteLength;
|
|
99
|
+
if (size > max) {
|
|
100
|
+
await reader.cancel();
|
|
101
|
+
throw new CorpusUnavailable(`Agent corpus artifact exceeds ${max} bytes.`);
|
|
102
|
+
}
|
|
103
|
+
chunks.push(value);
|
|
104
|
+
}
|
|
105
|
+
} catch (error) {
|
|
106
|
+
if (error instanceof CorpusUnavailable) throw error;
|
|
107
|
+
throw new CorpusUnavailable(`Cannot read agent corpus artifact: ${path}`);
|
|
108
|
+
} finally {
|
|
109
|
+
reader.releaseLock();
|
|
110
|
+
}
|
|
111
|
+
const bytes = new Uint8Array(size);
|
|
112
|
+
let offset = 0;
|
|
113
|
+
for (const chunk of chunks) {
|
|
114
|
+
bytes.set(chunk, offset);
|
|
115
|
+
offset += chunk.length;
|
|
116
|
+
}
|
|
117
|
+
try {
|
|
118
|
+
return new TextDecoder("utf-8", { fatal: true }).decode(bytes);
|
|
119
|
+
} catch {
|
|
120
|
+
throw new CorpusUnavailable(`Invalid UTF-8 in agent corpus artifact: ${path}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
function parse(text, label, schema) {
|
|
124
|
+
let value;
|
|
125
|
+
try {
|
|
126
|
+
value = JSON.parse(text);
|
|
127
|
+
} catch {
|
|
128
|
+
throw new CorpusUnavailable(`Invalid agent ${label} JSON.`);
|
|
129
|
+
}
|
|
130
|
+
const result = schema.safeParse(value);
|
|
131
|
+
if (!result.success) throw new CorpusUnavailable(`Incompatible agent ${label}.`);
|
|
132
|
+
return result.data;
|
|
133
|
+
}
|
|
134
|
+
class AgentCorpusLoader {
|
|
135
|
+
constructor(read, base) {
|
|
136
|
+
this.read = read;
|
|
137
|
+
this.base = base;
|
|
138
|
+
}
|
|
139
|
+
read;
|
|
140
|
+
base;
|
|
141
|
+
current;
|
|
142
|
+
loading;
|
|
143
|
+
async load(manifest) {
|
|
144
|
+
const root = basePath(this.base);
|
|
145
|
+
const indexPath = safePath(manifest.searchIndex.url, root, manifest.site.url);
|
|
146
|
+
if (indexPath !== `${root}search-index.json`) throw new CorpusUnavailable("Invalid agent search index path.");
|
|
147
|
+
const raw = await readText(this.read, indexPath, AGENT_MAX_SEARCH_INDEX_BYTES);
|
|
148
|
+
if (await sha256(raw) !== manifest.searchIndex.sha256) throw new CorpusUnavailable("Agent search index digest mismatch.");
|
|
149
|
+
const data = parse(raw, "search index", indexSchema);
|
|
150
|
+
if (data.schemaVersion !== 1 || data.fingerprint !== manifest.fingerprint || !Array.isArray(data.items) || data.items.length > AGENT_MAX_ITEMS) {
|
|
151
|
+
throw new CorpusUnavailable("Incompatible agent search index.");
|
|
152
|
+
}
|
|
153
|
+
const byId = new Map(manifest.items.map((item) => [item.id, item]));
|
|
154
|
+
if (byId.size !== manifest.items.length || byId.size !== data.items.length || new Set(data.items.map((item) => item.id)).size !== data.items.length || data.items.some((item) => !byId.has(item.id) || item.metadata?.fingerprint !== manifest.fingerprint)) {
|
|
155
|
+
throw new CorpusUnavailable("Agent search index does not match manifest.");
|
|
156
|
+
}
|
|
157
|
+
const loaded = { fingerprint: manifest.fingerprint, manifest, index: buildAgentSearchIndex(data) };
|
|
158
|
+
this.current = loaded;
|
|
159
|
+
return loaded;
|
|
160
|
+
}
|
|
161
|
+
async corpus() {
|
|
162
|
+
const root = basePath(this.base);
|
|
163
|
+
const raw = await readText(this.read, `${root}manifest.json`, AGENT_MAX_MANIFEST_BYTES);
|
|
164
|
+
const manifest = parse(raw, "manifest", manifestSchema);
|
|
165
|
+
if (manifest.schemaVersion !== 1 || !/^[a-f0-9]{64}$/.test(manifest.fingerprint) || !Array.isArray(manifest.items) || manifest.items.length > AGENT_MAX_ITEMS || !manifest.searchIndex?.sha256) {
|
|
166
|
+
throw new CorpusUnavailable("Incompatible agent manifest.");
|
|
167
|
+
}
|
|
168
|
+
if (this.current?.fingerprint === manifest.fingerprint && this.current.manifest.searchIndex.sha256 === manifest.searchIndex.sha256) {
|
|
169
|
+
this.current = { ...this.current, manifest };
|
|
170
|
+
return this.current;
|
|
171
|
+
}
|
|
172
|
+
this.current = void 0;
|
|
173
|
+
if (this.loading) {
|
|
174
|
+
try {
|
|
175
|
+
const loaded = await this.loading;
|
|
176
|
+
if (loaded.fingerprint === manifest.fingerprint && loaded.manifest.searchIndex.sha256 === manifest.searchIndex.sha256) return { ...loaded, manifest };
|
|
177
|
+
} catch {
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
this.loading = this.load(manifest).finally(() => {
|
|
181
|
+
this.loading = void 0;
|
|
182
|
+
});
|
|
183
|
+
return this.loading;
|
|
184
|
+
}
|
|
185
|
+
async item(id) {
|
|
186
|
+
const { manifest } = await this.corpus();
|
|
187
|
+
const entry = manifest.items.find((item2) => item2.id === id);
|
|
188
|
+
if (!entry) return void 0;
|
|
189
|
+
const root = basePath(this.base);
|
|
190
|
+
const path = safePath(entry.artifactUrl, `${root}items/`, manifest.site.url);
|
|
191
|
+
if (path !== `${root}items/${entry.key}.json` || !/^p-[a-f0-9]{16}-[0-9]{6}$/.test(entry.key)) throw new CorpusUnavailable("Invalid agent item path.");
|
|
192
|
+
const raw = await readText(this.read, path, 256 * 1024);
|
|
193
|
+
if (await sha256(raw) !== entry.sha256) throw new CorpusUnavailable("Agent item digest mismatch.");
|
|
194
|
+
const item = parse(raw, "item", itemSchema);
|
|
195
|
+
if (item.id !== id || item.metadata?.fingerprint !== manifest.fingerprint || item.metadata.pageId !== entry.pageId) throw new CorpusUnavailable("Agent item does not match manifest.");
|
|
196
|
+
return item;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
export {
|
|
200
|
+
AgentCorpusLoader,
|
|
201
|
+
CorpusUnavailable
|
|
202
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { h, flattenChildren } from "@takazudo/zfb/zudo-react";
|
|
2
2
|
import { defaultComponents } from "../content/index.js";
|
|
3
3
|
import { createContentLink } from "../content/content-link.js";
|
|
4
4
|
import { decodeAuthoredHref, assetViewerHref } from "../asset-path/index.js";
|
|
@@ -18,58 +18,25 @@ function makeContentImg(base) {
|
|
|
18
18
|
if (finalTitle !== void 0) {
|
|
19
19
|
mergedProps.title = finalTitle;
|
|
20
20
|
}
|
|
21
|
-
return
|
|
21
|
+
return h("img", mergedProps);
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
const ENLARGE_SVG =
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
const ENLARGE_SVG = h(
|
|
25
|
+
"svg",
|
|
26
|
+
{
|
|
27
27
|
viewBox: "0 0 38.99 38.99",
|
|
28
28
|
fill: "currentColor",
|
|
29
|
-
|
|
30
|
-
"aria-hidden": "true",
|
|
31
|
-
children: [
|
|
32
|
-
{
|
|
33
|
-
type: "polygon",
|
|
34
|
-
props: {
|
|
35
|
-
points: "16.2 13.74 5.92 3.47 11.2 3.47 11.2 0 3.47 0 0 0 0 3.47 0 11.2 3.47 11.2 3.47 5.92 13.74 16.2 16.2 13.74"
|
|
36
|
-
},
|
|
37
|
-
key: null,
|
|
38
|
-
constructor: void 0
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
type: "polygon",
|
|
42
|
-
props: {
|
|
43
|
-
points: "25.24 16.2 35.52 5.92 35.52 11.2 38.99 11.2 38.99 3.47 38.99 0 35.52 0 27.79 0 27.79 3.47 33.07 3.47 22.79 13.74 25.24 16.2"
|
|
44
|
-
},
|
|
45
|
-
key: null,
|
|
46
|
-
constructor: void 0
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
type: "polygon",
|
|
50
|
-
props: {
|
|
51
|
-
points: "22.79 25.24 33.07 35.52 27.79 35.52 27.79 38.99 35.52 38.99 38.99 38.99 38.99 35.52 38.99 27.79 35.52 27.79 35.52 33.07 25.24 22.79 22.79 25.24"
|
|
52
|
-
},
|
|
53
|
-
key: null,
|
|
54
|
-
constructor: void 0
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
type: "polygon",
|
|
58
|
-
props: {
|
|
59
|
-
points: "13.74 22.79 3.47 33.07 3.47 27.79 0 27.79 0 35.52 0 38.99 3.47 38.99 11.2 38.99 11.2 35.52 5.92 35.52 16.2 25.24 13.74 22.79"
|
|
60
|
-
},
|
|
61
|
-
key: null,
|
|
62
|
-
constructor: void 0
|
|
63
|
-
}
|
|
64
|
-
]
|
|
29
|
+
"aria-hidden": "true"
|
|
65
30
|
},
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
31
|
+
h("polygon", { points: "16.2 13.74 5.92 3.47 11.2 3.47 11.2 0 3.47 0 0 0 0 3.47 0 11.2 3.47 11.2 3.47 5.92 13.74 16.2 16.2 13.74" }),
|
|
32
|
+
h("polygon", { points: "25.24 16.2 35.52 5.92 35.52 11.2 38.99 11.2 38.99 3.47 38.99 0 35.52 0 27.79 0 27.79 3.47 33.07 3.47 22.79 13.74 25.24 16.2" }),
|
|
33
|
+
h("polygon", { points: "22.79 25.24 33.07 35.52 27.79 35.52 27.79 38.99 35.52 38.99 38.99 38.99 38.99 35.52 38.99 27.79 35.52 27.79 35.52 33.07 25.24 22.79 22.79 25.24" }),
|
|
34
|
+
h("polygon", { points: "13.74 22.79 3.47 33.07 3.47 27.79 0 27.79 0 35.52 0 38.99 3.47 38.99 11.2 38.99 11.2 35.52 5.92 35.52 16.2 25.24 13.74 22.79" })
|
|
35
|
+
);
|
|
69
36
|
function makeEnlargeableParagraph(imageEnlarge, ContentImg, assetOptions) {
|
|
70
37
|
return function EnlargeableParagraph(props) {
|
|
71
38
|
const { children } = props;
|
|
72
|
-
const kids =
|
|
39
|
+
const kids = flattenChildren(children).filter((child) => {
|
|
73
40
|
if (typeof child === "string" || typeof child === "number") {
|
|
74
41
|
return String(child).trim() !== "";
|
|
75
42
|
}
|
|
@@ -90,71 +57,36 @@ function makeEnlargeableParagraph(imageEnlarge, ContentImg, assetOptions) {
|
|
|
90
57
|
) : void 0;
|
|
91
58
|
const canEnlarge = imageEnlarge && imgProps.title !== "no-enlarge";
|
|
92
59
|
if (canEnlarge || imageEntry) {
|
|
93
|
-
const enlargeBtn = {
|
|
60
|
+
const enlargeBtn = h("button", {
|
|
94
61
|
type: "button",
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
"aria-label": "Enlarge image",
|
|
100
|
-
children: ENLARGE_SVG
|
|
101
|
-
},
|
|
102
|
-
key: null,
|
|
103
|
-
constructor: void 0
|
|
104
|
-
};
|
|
62
|
+
class: "zd-enlarge-btn",
|
|
63
|
+
hidden: true,
|
|
64
|
+
"aria-label": "Enlarge image"
|
|
65
|
+
}, ENLARGE_SVG);
|
|
105
66
|
const captionText = typeof imgProps.alt === "string" ? imgProps.alt.trim() : "";
|
|
106
67
|
const dimensions = imageEntry?.width !== void 0 && imageEntry.height !== void 0 ? ` \xB7 ${imageEntry.width} \xD7 ${imageEntry.height}` : "";
|
|
107
|
-
const figcaption = imageEntry ?
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
class: "mt-vsp-2xs flex flex-wrap items-baseline justify-center gap-x-hsp-xs text-caption text-muted"
|
|
111
|
-
children: [
|
|
112
|
-
captionText ? {
|
|
113
|
-
type: "span",
|
|
114
|
-
props: { children: captionText },
|
|
115
|
-
key: null,
|
|
116
|
-
constructor: void 0
|
|
117
|
-
} : null,
|
|
118
|
-
captionText ? {
|
|
119
|
-
type: "span",
|
|
120
|
-
props: { "aria-hidden": "true", children: "|" },
|
|
121
|
-
key: null,
|
|
122
|
-
constructor: void 0
|
|
123
|
-
} : null,
|
|
124
|
-
{
|
|
125
|
-
type: "a",
|
|
126
|
-
props: {
|
|
127
|
-
class: "text-fg hover:text-accent focus-visible:text-accent hover:underline focus-visible:underline",
|
|
128
|
-
href: assetViewerHref({
|
|
129
|
-
base: assetOptions.base,
|
|
130
|
-
routePrefix: assetOptions.routePrefix,
|
|
131
|
-
path: imageEntry.path,
|
|
132
|
-
locale: assetOptions.isDefaultLocaleOnlyPath?.(
|
|
133
|
-
`/${assetOptions.routePrefix}/${imageEntry.path}`
|
|
134
|
-
) ? void 0 : assetOptions.locale
|
|
135
|
-
}),
|
|
136
|
-
children: `\u2922 Open asset page${dimensions}`
|
|
137
|
-
},
|
|
138
|
-
key: null,
|
|
139
|
-
constructor: void 0
|
|
140
|
-
}
|
|
141
|
-
]
|
|
142
|
-
},
|
|
143
|
-
key: null,
|
|
144
|
-
constructor: void 0
|
|
145
|
-
} : null;
|
|
146
|
-
return {
|
|
147
|
-
type: "figure",
|
|
148
|
-
props: {
|
|
149
|
-
class: [
|
|
150
|
-
canEnlarge ? "zd-enlargeable" : null,
|
|
151
|
-
imageEntry ? "p-hsp-lg" : null
|
|
152
|
-
].filter((className) => className !== null).join(" "),
|
|
153
|
-
children: [vnode, canEnlarge ? enlargeBtn : null, figcaption]
|
|
68
|
+
const figcaption = imageEntry ? h(
|
|
69
|
+
"figcaption",
|
|
70
|
+
{
|
|
71
|
+
class: "mt-vsp-2xs flex flex-wrap items-baseline justify-center gap-x-hsp-xs text-caption text-muted"
|
|
154
72
|
},
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
73
|
+
captionText ? h("span", null, captionText) : null,
|
|
74
|
+
captionText ? h("span", { "aria-hidden": "true" }, "|") : null,
|
|
75
|
+
h("a", {
|
|
76
|
+
class: "text-fg hover:text-accent focus-visible:text-accent hover:underline focus-visible:underline",
|
|
77
|
+
href: assetViewerHref({
|
|
78
|
+
base: assetOptions.base,
|
|
79
|
+
routePrefix: assetOptions.routePrefix,
|
|
80
|
+
path: imageEntry.path,
|
|
81
|
+
locale: assetOptions.isDefaultLocaleOnlyPath?.(
|
|
82
|
+
`/${assetOptions.routePrefix}/${imageEntry.path}`
|
|
83
|
+
) ? void 0 : assetOptions.locale
|
|
84
|
+
})
|
|
85
|
+
}, `\u2922 Open asset page${dimensions}`)
|
|
86
|
+
) : null;
|
|
87
|
+
return h("figure", {
|
|
88
|
+
class: [canEnlarge ? "zd-enlargeable" : null, imageEntry ? "p-hsp-lg" : null].filter((name) => name !== null).join(" ")
|
|
89
|
+
}, vnode, canEnlarge ? enlargeBtn : null, figcaption);
|
|
158
90
|
}
|
|
159
91
|
}
|
|
160
92
|
}
|
|
@@ -212,8 +144,8 @@ function createMdxComponents(options) {
|
|
|
212
144
|
// figures also receive the p-hsp-lg inset. Must come AFTER ...defaultComponents
|
|
213
145
|
// to override ContentParagraph.
|
|
214
146
|
p: EnlargeableParagraph,
|
|
215
|
-
// Admonitions —
|
|
216
|
-
//
|
|
147
|
+
// Admonitions — server-rendered components emitting the
|
|
148
|
+
// `data-admonition` / variant-class structure the design-system CSS
|
|
217
149
|
// targets. `:::note` directives emit <Note>; `<Note title="…">` JSX is
|
|
218
150
|
// also authored directly. github-alerts [!IMPORTANT]/[!CAUTION] map to
|
|
219
151
|
// Important/Caution — omitting those two 500s their SSR render.
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
export declare function MermaidEnlarge(): import("
|
|
1
|
+
export declare function MermaidEnlarge(): import("@takazudo/zfb").Description;
|
|
2
2
|
export declare namespace MermaidEnlarge {
|
|
3
3
|
var displayName: string;
|
|
4
4
|
}
|
|
5
|
-
/**
|
|
6
|
-
* Static SSR fallback for the {@link MermaidEnlarge} island.
|
|
7
|
-
*
|
|
8
|
-
* Renders an empty, closed `<dialog class="zd-mermaid-dialog ...">` so the
|
|
9
|
-
* dist HTML carries the dialog shell even before hydration.
|
|
10
|
-
*/
|
|
11
|
-
export declare function MermaidEnlargeSsrFallback(): import("preact").JSX.Element;
|