@ciderpress/ui 1.0.0-rc.1
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/LICENSE +21 -0
- package/README.md +23 -0
- package/dist/0~142.js +2 -0
- package/dist/0~164.js +2 -0
- package/dist/0~2.js +2 -0
- package/dist/0~225.js +2 -0
- package/dist/0~288.js +2 -0
- package/dist/0~299.js +2 -0
- package/dist/0~3.js +2 -0
- package/dist/0~301.js +2 -0
- package/dist/0~311.js +2 -0
- package/dist/0~326.js +2 -0
- package/dist/0~40.js +2 -0
- package/dist/0~43.js +2 -0
- package/dist/0~433.js +2 -0
- package/dist/0~453.js +2 -0
- package/dist/0~457.js +2 -0
- package/dist/0~497.js +2 -0
- package/dist/0~511.js +2 -0
- package/dist/0~603.js +2 -0
- package/dist/0~616.js +2 -0
- package/dist/0~659.js +2 -0
- package/dist/0~670.js +2 -0
- package/dist/0~687.js +2 -0
- package/dist/0~706.js +2 -0
- package/dist/0~729.js +2 -0
- package/dist/0~768.js +2 -0
- package/dist/0~819.js +2 -0
- package/dist/0~830.js +2 -0
- package/dist/0~854.js +2 -0
- package/dist/0~863.js +2 -0
- package/dist/0~879.js +2 -0
- package/dist/0~96.js +2 -0
- package/dist/0~97.js +2 -0
- package/dist/components/FileTree/FileTree.css +90 -0
- package/dist/components/FileTree/FileTree.d.ts +7 -0
- package/dist/components/FileTree/FileTree.js +531 -0
- package/dist/components/FileTree/FileTreeItem.d.ts +8 -0
- package/dist/components/FileTree/RemoteSvgIcon.d.ts +11 -0
- package/dist/components/FileTree/index.d.ts +4 -0
- package/dist/components/folder-icons.d.ts +32 -0
- package/dist/components/languages.d.ts +7 -0
- package/dist/components/tree-parser/tree-parser.d.ts +12 -0
- package/dist/components/tree-parser/types.d.ts +11 -0
- package/dist/head/css/loader-apple.css +1 -0
- package/dist/head/css/loader-backdrop.css +1 -0
- package/dist/head/css/loader-dots.css +1 -0
- package/dist/head/css/themes/amber.css +1 -0
- package/dist/head/css/themes/arcade.css +1 -0
- package/dist/head/css/themes/grannysmith.css +1 -0
- package/dist/head/css/themes/honeycrisp.css +1 -0
- package/dist/head/css/themes/midnight.css +1 -0
- package/dist/head/css/themes/mulled.css +1 -0
- package/dist/head/js/loader-dots.js +1 -0
- package/dist/head/js/vscode-nav.js +1 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.mjs +40 -0
- package/dist/node.d.ts +81 -0
- package/dist/node.mjs +17762 -0
- package/dist/plugins/mermaid/MermaidRenderer.tsx +480 -0
- package/dist/plugins/mermaid/mermaid.css +199 -0
- package/dist/theme/components/announcement/announcement-bar.css +103 -0
- package/dist/theme/components/announcement/announcement-bar.tsx +173 -0
- package/dist/theme/components/ask-ai/ask-ai-button.css +52 -0
- package/dist/theme/components/ask-ai/ask-ai-button.tsx +56 -0
- package/dist/theme/components/content-footer/content-footer-portal.tsx +70 -0
- package/dist/theme/components/content-footer/feedback.css +47 -0
- package/dist/theme/components/content-footer/feedback.tsx +96 -0
- package/dist/theme/components/content-footer/meta-actions.css +25 -0
- package/dist/theme/components/content-footer/meta-actions.tsx +57 -0
- package/dist/theme/components/content-footer/page-pager.css +61 -0
- package/dist/theme/components/content-footer/page-pager.tsx +110 -0
- package/dist/theme/components/edit-source-button.tsx +97 -0
- package/dist/theme/components/footer/site-footer.css +179 -0
- package/dist/theme/components/footer/site-footer.tsx +115 -0
- package/dist/theme/components/home/cta.css +67 -0
- package/dist/theme/components/home/cta.tsx +77 -0
- package/dist/theme/components/home/feature-card.css +52 -0
- package/dist/theme/components/home/feature-card.tsx +131 -0
- package/dist/theme/components/home/feature.tsx +79 -0
- package/dist/theme/components/home/hero-demo.css +66 -0
- package/dist/theme/components/home/hero-demo.tsx +46 -0
- package/dist/theme/components/home/hero.css +96 -0
- package/dist/theme/components/home/hero.tsx +111 -0
- package/dist/theme/components/home/layout.tsx +183 -0
- package/dist/theme/components/home/page-rail.css +21 -0
- package/dist/theme/components/home/page-rail.tsx +19 -0
- package/dist/theme/components/home/split.css +148 -0
- package/dist/theme/components/home/split.tsx +120 -0
- package/dist/theme/components/home/trust-strip.css +33 -0
- package/dist/theme/components/home/trust-strip.tsx +43 -0
- package/dist/theme/components/home/workspaces.tsx +71 -0
- package/dist/theme/components/nav/branch-tag.css +54 -0
- package/dist/theme/components/nav/branch-tag.tsx +101 -0
- package/dist/theme/components/nav/ciderpress-doc-layout.tsx +247 -0
- package/dist/theme/components/nav/ciderpress-docs-bar.css +505 -0
- package/dist/theme/components/nav/ciderpress-docs-bar.tsx +426 -0
- package/dist/theme/components/nav/ciderpress-header.css +172 -0
- package/dist/theme/components/nav/ciderpress-header.tsx +113 -0
- package/dist/theme/components/nav/ciderpress-layout-context.tsx +49 -0
- package/dist/theme/components/nav/ciderpress-nav-hamburger.css +193 -0
- package/dist/theme/components/nav/ciderpress-nav-hamburger.tsx +112 -0
- package/dist/theme/components/nav/ciderpress-nav-menu.css +130 -0
- package/dist/theme/components/nav/ciderpress-nav-menu.tsx +372 -0
- package/dist/theme/components/nav/ciderpress-nav-search.css +73 -0
- package/dist/theme/components/nav/ciderpress-nav-search.tsx +55 -0
- package/dist/theme/components/nav/ciderpress-nav-social-links.css +35 -0
- package/dist/theme/components/nav/ciderpress-nav-social-links.tsx +87 -0
- package/dist/theme/components/nav/floating-branch-indicator.css +106 -0
- package/dist/theme/components/nav/floating-branch-indicator.tsx +109 -0
- package/dist/theme/components/nav/layout.tsx +268 -0
- package/dist/theme/components/nav/mobile-nav-cta.tsx +79 -0
- package/dist/theme/components/nav/nav-divider.css +15 -0
- package/dist/theme/components/nav/nav-divider.tsx +19 -0
- package/dist/theme/components/nav/nav-logo.css +42 -0
- package/dist/theme/components/nav/nav-logo.tsx +262 -0
- package/dist/theme/components/nav/theme-switcher.css +92 -0
- package/dist/theme/components/nav/theme-switcher.tsx +298 -0
- package/dist/theme/components/nav/topbar-cta.css +45 -0
- package/dist/theme/components/nav/topbar-cta.tsx +39 -0
- package/dist/theme/components/nav/variant-toggle.css +70 -0
- package/dist/theme/components/nav/variant-toggle.tsx +83 -0
- package/dist/theme/components/nav/version-chip.css +31 -0
- package/dist/theme/components/nav/version-chip.tsx +45 -0
- package/dist/theme/components/nav/vscode-tag.css +32 -0
- package/dist/theme/components/nav/vscode-tag.tsx +20 -0
- package/dist/theme/components/openapi/code-sample.tsx +341 -0
- package/dist/theme/components/openapi/copy-markdown-button.tsx +41 -0
- package/dist/theme/components/openapi/icons.tsx +45 -0
- package/dist/theme/components/openapi/index.ts +6 -0
- package/dist/theme/components/openapi/method-badge.tsx +24 -0
- package/dist/theme/components/openapi/openapi.css +665 -0
- package/dist/theme/components/openapi/operation.tsx +200 -0
- package/dist/theme/components/openapi/overview.tsx +207 -0
- package/dist/theme/components/openapi/parameters-table.tsx +149 -0
- package/dist/theme/components/openapi/request-body.tsx +90 -0
- package/dist/theme/components/openapi/response-list.tsx +112 -0
- package/dist/theme/components/openapi/schema-viewer.tsx +277 -0
- package/dist/theme/components/openapi/security-badges.tsx +63 -0
- package/dist/theme/components/openapi/spec-utils.ts +122 -0
- package/dist/theme/components/shared/accordion.css +118 -0
- package/dist/theme/components/shared/accordion.stories.tsx +96 -0
- package/dist/theme/components/shared/accordion.tsx +191 -0
- package/dist/theme/components/shared/brand-logo.stories.tsx +49 -0
- package/dist/theme/components/shared/brand-mark.stories.tsx +53 -0
- package/dist/theme/components/shared/browser-window.css +1 -0
- package/dist/theme/components/shared/browser-window.stories.tsx +100 -0
- package/dist/theme/components/shared/browser-window.tsx +2 -0
- package/dist/theme/components/shared/card.stories.tsx +50 -0
- package/dist/theme/components/shared/card.tsx +35 -0
- package/dist/theme/components/shared/ciderpress-logo.tsx +93 -0
- package/dist/theme/components/shared/ciderpress-mark.tsx +77 -0
- package/dist/theme/components/shared/color.css +56 -0
- package/dist/theme/components/shared/color.stories.tsx +47 -0
- package/dist/theme/components/shared/color.tsx +69 -0
- package/dist/theme/components/shared/columns.css +37 -0
- package/dist/theme/components/shared/columns.stories.tsx +91 -0
- package/dist/theme/components/shared/columns.tsx +50 -0
- package/dist/theme/components/shared/desktop-window.css +339 -0
- package/dist/theme/components/shared/desktop-window.tsx +535 -0
- package/dist/theme/components/shared/field.css +158 -0
- package/dist/theme/components/shared/field.stories.tsx +100 -0
- package/dist/theme/components/shared/field.tsx +186 -0
- package/dist/theme/components/shared/frame.css +39 -0
- package/dist/theme/components/shared/frame.stories.tsx +49 -0
- package/dist/theme/components/shared/frame.tsx +76 -0
- package/dist/theme/components/shared/icon.stories.tsx +90 -0
- package/dist/theme/components/shared/icon.tsx +41 -0
- package/dist/theme/components/shared/prompt.css +178 -0
- package/dist/theme/components/shared/prompt.stories.tsx +57 -0
- package/dist/theme/components/shared/prompt.tsx +369 -0
- package/dist/theme/components/shared/resolve-card-icon.ts +28 -0
- package/dist/theme/components/shared/section-card.stories.tsx +51 -0
- package/dist/theme/components/shared/section-card.tsx +44 -0
- package/dist/theme/components/shared/section-grid.stories.tsx +46 -0
- package/dist/theme/components/shared/section-grid.tsx +15 -0
- package/dist/theme/components/shared/status-badge.css +37 -0
- package/dist/theme/components/shared/status-badge.stories.tsx +61 -0
- package/dist/theme/components/shared/status-badge.tsx +74 -0
- package/dist/theme/components/shared/steps.css +88 -0
- package/dist/theme/components/shared/steps.stories.tsx +68 -0
- package/dist/theme/components/shared/steps.tsx +100 -0
- package/dist/theme/components/shared/tech-icon-table.stories.tsx +29 -0
- package/dist/theme/components/shared/tech-icon-table.tsx +71 -0
- package/dist/theme/components/shared/tech-tag.stories.tsx +40 -0
- package/dist/theme/components/shared/tech-tag.tsx +31 -0
- package/dist/theme/components/shared/theme-color-palette.css +80 -0
- package/dist/theme/components/shared/theme-color-palette.stories.tsx +52 -0
- package/dist/theme/components/shared/theme-color-palette.tsx +275 -0
- package/dist/theme/components/shared/tooltip.css +69 -0
- package/dist/theme/components/shared/tooltip.stories.tsx +72 -0
- package/dist/theme/components/shared/tooltip.tsx +77 -0
- package/dist/theme/components/sidebar/framework-picker.css +77 -0
- package/dist/theme/components/sidebar/framework-picker.tsx +78 -0
- package/dist/theme/components/sidebar/sidebar-filter.test.ts +140 -0
- package/dist/theme/components/sidebar/sidebar-filter.ts +79 -0
- package/dist/theme/components/sidebar/sidebar-links.css +102 -0
- package/dist/theme/components/sidebar/sidebar-links.tsx +122 -0
- package/dist/theme/components/sidebar/sidebar-promo.css +42 -0
- package/dist/theme/components/sidebar/sidebar-promo.tsx +52 -0
- package/dist/theme/components/sidebar/sidebar-scope.tsx +151 -0
- package/dist/theme/components/sidebar/sidebar-toggle.css +181 -0
- package/dist/theme/components/sidebar/sidebar-toggle.tsx +127 -0
- package/dist/theme/components/theme-provider.tsx +637 -0
- package/dist/theme/components/workspaces/card.css +151 -0
- package/dist/theme/components/workspaces/card.tsx +166 -0
- package/dist/theme/components/workspaces/grid.tsx +62 -0
- package/dist/theme/css.d.ts +1 -0
- package/dist/theme/env.d.ts +12 -0
- package/dist/theme/fonts/GeistMono-Variable.woff2 +0 -0
- package/dist/theme/fonts/GeistPixel-Square.woff2 +0 -0
- package/dist/theme/fonts/GeistSans-Variable.woff2 +0 -0
- package/dist/theme/hooks/use-ciderpress.ts +61 -0
- package/dist/theme/hooks/use-nav-items.ts +76 -0
- package/dist/theme/icons/index.ts +2 -0
- package/dist/theme/icons/tech-map.ts +228 -0
- package/dist/theme/index.tsx +180 -0
- package/dist/theme/lib/read-social-links.ts +27 -0
- package/dist/theme/lib/route-link.tsx +126 -0
- package/dist/theme/lib/safe-url.test.ts +0 -0
- package/dist/theme/lib/safe-url.ts +68 -0
- package/dist/theme/lib/theme-favicon.ts +125 -0
- package/dist/theme/lib/user-config-stub.ts +12 -0
- package/dist/theme/styles/layers.css +32 -0
- package/dist/theme/styles/overrides/badge.css +26 -0
- package/dist/theme/styles/overrides/content-footer.css +80 -0
- package/dist/theme/styles/overrides/details.css +61 -0
- package/dist/theme/styles/overrides/fonts.css +32 -0
- package/dist/theme/styles/overrides/home-card.css +133 -0
- package/dist/theme/styles/overrides/home.css +243 -0
- package/dist/theme/styles/overrides/rail.css +337 -0
- package/dist/theme/styles/overrides/rspress.css +62 -0
- package/dist/theme/styles/overrides/scrollbar.css +25 -0
- package/dist/theme/styles/overrides/section-card.css +114 -0
- package/dist/theme/styles/overrides/sidebar.css +144 -0
- package/dist/theme/styles/overrides/tokens.css +288 -0
- package/dist/theme/styles/overrides/vscode.css +88 -0
- package/dist/theme/styles/themes/amber.css +545 -0
- package/dist/theme/styles/themes/arcade-fx.css +366 -0
- package/dist/theme/styles/themes/arcade.css +273 -0
- package/dist/theme/styles/themes/grannysmith.css +545 -0
- package/dist/theme/styles/themes/honeycrisp.css +545 -0
- package/dist/theme/styles/themes/midnight.css +273 -0
- package/dist/theme/styles/themes/mulled.css +817 -0
- package/package.json +103 -0
- package/src/theme/components/announcement/announcement-bar.css +103 -0
- package/src/theme/components/announcement/announcement-bar.tsx +173 -0
- package/src/theme/components/ask-ai/ask-ai-button.css +52 -0
- package/src/theme/components/ask-ai/ask-ai-button.tsx +56 -0
- package/src/theme/components/content-footer/content-footer-portal.tsx +70 -0
- package/src/theme/components/content-footer/feedback.css +47 -0
- package/src/theme/components/content-footer/feedback.tsx +96 -0
- package/src/theme/components/content-footer/meta-actions.css +25 -0
- package/src/theme/components/content-footer/meta-actions.tsx +57 -0
- package/src/theme/components/content-footer/page-pager.css +61 -0
- package/src/theme/components/content-footer/page-pager.tsx +110 -0
- package/src/theme/components/edit-source-button.tsx +97 -0
- package/src/theme/components/footer/site-footer.css +179 -0
- package/src/theme/components/footer/site-footer.tsx +115 -0
- package/src/theme/components/home/cta.css +67 -0
- package/src/theme/components/home/cta.tsx +77 -0
- package/src/theme/components/home/feature-card.css +52 -0
- package/src/theme/components/home/feature-card.tsx +131 -0
- package/src/theme/components/home/feature.tsx +79 -0
- package/src/theme/components/home/hero-demo.css +66 -0
- package/src/theme/components/home/hero-demo.tsx +46 -0
- package/src/theme/components/home/hero.css +96 -0
- package/src/theme/components/home/hero.tsx +111 -0
- package/src/theme/components/home/layout.tsx +183 -0
- package/src/theme/components/home/page-rail.css +21 -0
- package/src/theme/components/home/page-rail.tsx +19 -0
- package/src/theme/components/home/split.css +148 -0
- package/src/theme/components/home/split.tsx +120 -0
- package/src/theme/components/home/trust-strip.css +33 -0
- package/src/theme/components/home/trust-strip.tsx +43 -0
- package/src/theme/components/home/workspaces.tsx +71 -0
- package/src/theme/components/nav/branch-tag.css +54 -0
- package/src/theme/components/nav/branch-tag.tsx +101 -0
- package/src/theme/components/nav/ciderpress-doc-layout.tsx +247 -0
- package/src/theme/components/nav/ciderpress-docs-bar.css +505 -0
- package/src/theme/components/nav/ciderpress-docs-bar.tsx +426 -0
- package/src/theme/components/nav/ciderpress-header.css +172 -0
- package/src/theme/components/nav/ciderpress-header.tsx +113 -0
- package/src/theme/components/nav/ciderpress-layout-context.tsx +49 -0
- package/src/theme/components/nav/ciderpress-nav-hamburger.css +193 -0
- package/src/theme/components/nav/ciderpress-nav-hamburger.tsx +112 -0
- package/src/theme/components/nav/ciderpress-nav-menu.css +130 -0
- package/src/theme/components/nav/ciderpress-nav-menu.tsx +372 -0
- package/src/theme/components/nav/ciderpress-nav-search.css +73 -0
- package/src/theme/components/nav/ciderpress-nav-search.tsx +55 -0
- package/src/theme/components/nav/ciderpress-nav-social-links.css +35 -0
- package/src/theme/components/nav/ciderpress-nav-social-links.tsx +87 -0
- package/src/theme/components/nav/floating-branch-indicator.css +106 -0
- package/src/theme/components/nav/floating-branch-indicator.tsx +109 -0
- package/src/theme/components/nav/layout.tsx +268 -0
- package/src/theme/components/nav/mobile-nav-cta.tsx +79 -0
- package/src/theme/components/nav/nav-divider.css +15 -0
- package/src/theme/components/nav/nav-divider.tsx +19 -0
- package/src/theme/components/nav/nav-logo.css +42 -0
- package/src/theme/components/nav/nav-logo.tsx +262 -0
- package/src/theme/components/nav/theme-switcher.css +92 -0
- package/src/theme/components/nav/theme-switcher.tsx +298 -0
- package/src/theme/components/nav/topbar-cta.css +45 -0
- package/src/theme/components/nav/topbar-cta.tsx +39 -0
- package/src/theme/components/nav/variant-toggle.css +70 -0
- package/src/theme/components/nav/variant-toggle.tsx +83 -0
- package/src/theme/components/nav/version-chip.css +31 -0
- package/src/theme/components/nav/version-chip.tsx +45 -0
- package/src/theme/components/nav/vscode-tag.css +32 -0
- package/src/theme/components/nav/vscode-tag.tsx +20 -0
- package/src/theme/components/openapi/code-sample.tsx +341 -0
- package/src/theme/components/openapi/copy-markdown-button.tsx +41 -0
- package/src/theme/components/openapi/icons.tsx +45 -0
- package/src/theme/components/openapi/index.ts +6 -0
- package/src/theme/components/openapi/method-badge.tsx +24 -0
- package/src/theme/components/openapi/openapi.css +665 -0
- package/src/theme/components/openapi/operation.tsx +200 -0
- package/src/theme/components/openapi/overview.tsx +207 -0
- package/src/theme/components/openapi/parameters-table.tsx +149 -0
- package/src/theme/components/openapi/request-body.tsx +90 -0
- package/src/theme/components/openapi/response-list.tsx +112 -0
- package/src/theme/components/openapi/schema-viewer.tsx +277 -0
- package/src/theme/components/openapi/security-badges.tsx +63 -0
- package/src/theme/components/openapi/spec-utils.ts +122 -0
- package/src/theme/components/shared/accordion.css +118 -0
- package/src/theme/components/shared/accordion.stories.tsx +96 -0
- package/src/theme/components/shared/accordion.tsx +191 -0
- package/src/theme/components/shared/brand-logo.stories.tsx +49 -0
- package/src/theme/components/shared/brand-mark.stories.tsx +53 -0
- package/src/theme/components/shared/browser-window.css +1 -0
- package/src/theme/components/shared/browser-window.stories.tsx +100 -0
- package/src/theme/components/shared/browser-window.tsx +2 -0
- package/src/theme/components/shared/card.stories.tsx +50 -0
- package/src/theme/components/shared/card.tsx +35 -0
- package/src/theme/components/shared/ciderpress-logo.tsx +93 -0
- package/src/theme/components/shared/ciderpress-mark.tsx +77 -0
- package/src/theme/components/shared/color.css +56 -0
- package/src/theme/components/shared/color.stories.tsx +47 -0
- package/src/theme/components/shared/color.tsx +69 -0
- package/src/theme/components/shared/columns.css +37 -0
- package/src/theme/components/shared/columns.stories.tsx +91 -0
- package/src/theme/components/shared/columns.tsx +50 -0
- package/src/theme/components/shared/desktop-window.css +339 -0
- package/src/theme/components/shared/desktop-window.tsx +535 -0
- package/src/theme/components/shared/field.css +158 -0
- package/src/theme/components/shared/field.stories.tsx +100 -0
- package/src/theme/components/shared/field.tsx +186 -0
- package/src/theme/components/shared/frame.css +39 -0
- package/src/theme/components/shared/frame.stories.tsx +49 -0
- package/src/theme/components/shared/frame.tsx +76 -0
- package/src/theme/components/shared/icon.stories.tsx +90 -0
- package/src/theme/components/shared/icon.tsx +41 -0
- package/src/theme/components/shared/prompt.css +178 -0
- package/src/theme/components/shared/prompt.stories.tsx +57 -0
- package/src/theme/components/shared/prompt.tsx +369 -0
- package/src/theme/components/shared/resolve-card-icon.ts +28 -0
- package/src/theme/components/shared/section-card.stories.tsx +51 -0
- package/src/theme/components/shared/section-card.tsx +44 -0
- package/src/theme/components/shared/section-grid.stories.tsx +46 -0
- package/src/theme/components/shared/section-grid.tsx +15 -0
- package/src/theme/components/shared/status-badge.css +37 -0
- package/src/theme/components/shared/status-badge.stories.tsx +61 -0
- package/src/theme/components/shared/status-badge.tsx +74 -0
- package/src/theme/components/shared/steps.css +88 -0
- package/src/theme/components/shared/steps.stories.tsx +68 -0
- package/src/theme/components/shared/steps.tsx +100 -0
- package/src/theme/components/shared/tech-icon-table.stories.tsx +29 -0
- package/src/theme/components/shared/tech-icon-table.tsx +71 -0
- package/src/theme/components/shared/tech-tag.stories.tsx +40 -0
- package/src/theme/components/shared/tech-tag.tsx +31 -0
- package/src/theme/components/shared/theme-color-palette.css +80 -0
- package/src/theme/components/shared/theme-color-palette.stories.tsx +52 -0
- package/src/theme/components/shared/theme-color-palette.tsx +275 -0
- package/src/theme/components/shared/tooltip.css +69 -0
- package/src/theme/components/shared/tooltip.stories.tsx +72 -0
- package/src/theme/components/shared/tooltip.tsx +77 -0
- package/src/theme/components/sidebar/framework-picker.css +77 -0
- package/src/theme/components/sidebar/framework-picker.tsx +78 -0
- package/src/theme/components/sidebar/sidebar-filter.test.ts +140 -0
- package/src/theme/components/sidebar/sidebar-filter.ts +79 -0
- package/src/theme/components/sidebar/sidebar-links.css +102 -0
- package/src/theme/components/sidebar/sidebar-links.tsx +122 -0
- package/src/theme/components/sidebar/sidebar-promo.css +42 -0
- package/src/theme/components/sidebar/sidebar-promo.tsx +52 -0
- package/src/theme/components/sidebar/sidebar-scope.tsx +151 -0
- package/src/theme/components/sidebar/sidebar-toggle.css +181 -0
- package/src/theme/components/sidebar/sidebar-toggle.tsx +127 -0
- package/src/theme/components/theme-provider.tsx +637 -0
- package/src/theme/components/workspaces/card.css +151 -0
- package/src/theme/components/workspaces/card.tsx +166 -0
- package/src/theme/components/workspaces/grid.tsx +62 -0
- package/src/theme/css.d.ts +1 -0
- package/src/theme/env.d.ts +12 -0
- package/src/theme/fonts/GeistMono-Variable.woff2 +0 -0
- package/src/theme/fonts/GeistPixel-Square.woff2 +0 -0
- package/src/theme/fonts/GeistSans-Variable.woff2 +0 -0
- package/src/theme/hooks/use-ciderpress.ts +61 -0
- package/src/theme/hooks/use-nav-items.ts +76 -0
- package/src/theme/icons/index.ts +2 -0
- package/src/theme/icons/tech-map.ts +228 -0
- package/src/theme/index.tsx +180 -0
- package/src/theme/lib/read-social-links.ts +27 -0
- package/src/theme/lib/route-link.tsx +126 -0
- package/src/theme/lib/safe-url.test.ts +0 -0
- package/src/theme/lib/safe-url.ts +68 -0
- package/src/theme/lib/theme-favicon.ts +125 -0
- package/src/theme/lib/user-config-stub.ts +12 -0
- package/src/theme/styles/layers.css +32 -0
- package/src/theme/styles/overrides/badge.css +26 -0
- package/src/theme/styles/overrides/content-footer.css +80 -0
- package/src/theme/styles/overrides/details.css +61 -0
- package/src/theme/styles/overrides/fonts.css +32 -0
- package/src/theme/styles/overrides/home-card.css +133 -0
- package/src/theme/styles/overrides/home.css +243 -0
- package/src/theme/styles/overrides/rail.css +337 -0
- package/src/theme/styles/overrides/rspress.css +62 -0
- package/src/theme/styles/overrides/scrollbar.css +25 -0
- package/src/theme/styles/overrides/section-card.css +114 -0
- package/src/theme/styles/overrides/sidebar.css +144 -0
- package/src/theme/styles/overrides/tokens.css +288 -0
- package/src/theme/styles/overrides/vscode.css +88 -0
- package/src/theme/styles/themes/amber.css +545 -0
- package/src/theme/styles/themes/arcade-fx.css +366 -0
- package/src/theme/styles/themes/arcade.css +273 -0
- package/src/theme/styles/themes/grannysmith.css +545 -0
- package/src/theme/styles/themes/honeycrisp.css +545 -0
- package/src/theme/styles/themes/midnight.css +273 -0
- package/src/theme/styles/themes/mulled.css +817 -0
|
@@ -0,0 +1,505 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CiderpressDocsBar — sticky sub-header beneath the site nav, replaces
|
|
3
|
+
* Rspress's `.rp-doc-layout__menu` (which our DocLayout override no
|
|
4
|
+
* longer renders at all).
|
|
5
|
+
*
|
|
6
|
+
* Three-column layout that mirrors the rail below:
|
|
7
|
+
* [ Menu (sidebar-width) | Breadcrumbs (content-padding-x) | Outline (outline-width) ]
|
|
8
|
+
* Vertical hairlines between the columns line up with the dividers
|
|
9
|
+
* between sidebar / doc / outline in `.rp-doc-layout__container`.
|
|
10
|
+
*
|
|
11
|
+
* Theme-author API:
|
|
12
|
+
* --cp-docs-bar-height row height (default 46px)
|
|
13
|
+
* --cp-docs-bar-bg background colour
|
|
14
|
+
* --cp-docs-bar-border column-divider + outer hairline colour
|
|
15
|
+
*/
|
|
16
|
+
.cp-docs-bar {
|
|
17
|
+
position: sticky;
|
|
18
|
+
/* Clear the header AND the announcement bar above it. The
|
|
19
|
+
announcement self-reports its height via `--cp-announcement-height`
|
|
20
|
+
(see `<AnnouncementBar />`); it collapses to `0px` when dismissed
|
|
21
|
+
so the bar slides up against the header automatically. */
|
|
22
|
+
top: calc(var(--cp-header-height, 56px) + var(--cp-announcement-height, 0px));
|
|
23
|
+
/* Must sit ABOVE Rspress's sidebar (`--rp-z-index-sidebar: 50`) and
|
|
24
|
+
outline (`--rp-z-index-aside: 40`) — both are sticky-positioned in
|
|
25
|
+
the same flex row and would otherwise paint over the bar when the
|
|
26
|
+
page scrolls. Stay BELOW the site header (`--cp-header-z: 60`) so
|
|
27
|
+
the header still wins the top edge. */
|
|
28
|
+
z-index: 55;
|
|
29
|
+
display: flex;
|
|
30
|
+
align-items: stretch;
|
|
31
|
+
height: var(--cp-docs-bar-height, 46px);
|
|
32
|
+
margin: 0 var(--cp-frame-gutter);
|
|
33
|
+
background: var(--cp-docs-bar-bg, var(--cp-c-bg));
|
|
34
|
+
border-left: 1px solid var(--cp-docs-bar-border, var(--cp-c-border));
|
|
35
|
+
border-right: 1px solid var(--cp-docs-bar-border, var(--cp-c-border));
|
|
36
|
+
border-bottom: 1px solid var(--cp-c-divider);
|
|
37
|
+
font-size: 12.5px;
|
|
38
|
+
color: var(--cp-c-text-2);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* ── Left column: "Menu" button — width matches the sidebar below
|
|
42
|
+
so the hairline divider aligns with the sidebar / content seam. ── */
|
|
43
|
+
.cp-docs-bar__menu {
|
|
44
|
+
display: flex;
|
|
45
|
+
align-items: center;
|
|
46
|
+
flex-shrink: 0;
|
|
47
|
+
width: var(--rp-sidebar-width, 260px);
|
|
48
|
+
padding: 0 12px;
|
|
49
|
+
border-right: 1px solid var(--cp-docs-bar-border, var(--cp-c-border));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.cp-docs-bar__menu-btn {
|
|
53
|
+
display: inline-flex;
|
|
54
|
+
align-items: center;
|
|
55
|
+
gap: 8px;
|
|
56
|
+
font-size: 13px;
|
|
57
|
+
font-weight: 500;
|
|
58
|
+
color: var(--cp-c-text-2);
|
|
59
|
+
background: transparent;
|
|
60
|
+
border: 0;
|
|
61
|
+
padding: 6px 8px;
|
|
62
|
+
border-radius: var(--cp-radius-card);
|
|
63
|
+
cursor: pointer;
|
|
64
|
+
transition: all 0.15s ease;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.cp-docs-bar__menu-btn:hover {
|
|
68
|
+
background: var(--cp-c-bg-soft);
|
|
69
|
+
color: var(--cp-c-text-1);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* ── Middle column: breadcrumbs (left, takes remaining width) +
|
|
73
|
+
Copy Markdown / view-options dropdown (right, fixed).
|
|
74
|
+
|
|
75
|
+
NOTE: `overflow: hidden` cannot be set here — Rspress's
|
|
76
|
+
`<LlmsViewOptions />` renders its popover as a `position: absolute`
|
|
77
|
+
child of the trigger button (not a portal), so any clipping ancestor
|
|
78
|
+
hides the dropdown. Breadcrumb truncation is handled inside
|
|
79
|
+
`.cp-docs-bar__crumbs` instead. ──────────────────────────────── */
|
|
80
|
+
.cp-docs-bar__center {
|
|
81
|
+
display: flex;
|
|
82
|
+
align-items: center;
|
|
83
|
+
gap: 12px;
|
|
84
|
+
flex: 1 1 auto;
|
|
85
|
+
min-width: 0;
|
|
86
|
+
padding: 0 var(--cp-docs-bar-crumbs-pad-x, 20px);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.cp-docs-bar__crumbs {
|
|
90
|
+
display: flex;
|
|
91
|
+
align-items: center;
|
|
92
|
+
gap: 6px;
|
|
93
|
+
flex: 1 1 auto;
|
|
94
|
+
min-width: 0;
|
|
95
|
+
overflow: hidden;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.cp-docs-bar__crumb-wrap {
|
|
99
|
+
display: inline-flex;
|
|
100
|
+
align-items: center;
|
|
101
|
+
gap: 6px;
|
|
102
|
+
white-space: nowrap;
|
|
103
|
+
min-width: 0;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.cp-docs-bar__crumb-wrap:last-child {
|
|
107
|
+
color: var(--cp-c-text-1);
|
|
108
|
+
font-weight: 500;
|
|
109
|
+
overflow: hidden;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/* ── Home icon — anchors the breadcrumb trail at the root. Sits
|
|
113
|
+
inline with the section/page labels; the icon itself renders at 14px
|
|
114
|
+
to match the other docs-bar icons. ────────────────────────────── */
|
|
115
|
+
.cp-docs-bar__crumb-home {
|
|
116
|
+
display: inline-flex;
|
|
117
|
+
align-items: center;
|
|
118
|
+
justify-content: center;
|
|
119
|
+
flex-shrink: 0;
|
|
120
|
+
color: var(--cp-c-text-2);
|
|
121
|
+
text-decoration: none;
|
|
122
|
+
transition: color 0.15s ease;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.cp-docs-bar__crumb-home:hover {
|
|
126
|
+
color: var(--cp-c-text-1);
|
|
127
|
+
text-decoration: none;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.cp-docs-bar__crumb {
|
|
131
|
+
overflow: hidden;
|
|
132
|
+
text-overflow: ellipsis;
|
|
133
|
+
white-space: nowrap;
|
|
134
|
+
color: inherit;
|
|
135
|
+
text-decoration: none;
|
|
136
|
+
transition: color 0.15s ease;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/* Anchor variant — Rspress's global anchor styles can add underlines on
|
|
140
|
+
hover; reset so breadcrumb links read as inline text that brightens
|
|
141
|
+
on hover rather than gaining a rule beneath. */
|
|
142
|
+
a.cp-docs-bar__crumb:hover {
|
|
143
|
+
color: var(--cp-c-text-1);
|
|
144
|
+
text-decoration: none;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.cp-docs-bar__sep {
|
|
148
|
+
color: var(--cp-c-text-3, var(--cp-c-text-2));
|
|
149
|
+
flex-shrink: 0;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/* ── Right column wrapper — anchors the dropdown for the outline
|
|
153
|
+
"On this page" button. Position: relative so the absolutely-
|
|
154
|
+
positioned dropdown sits flush against the button's bottom edge. */
|
|
155
|
+
.cp-docs-bar__outline-wrap {
|
|
156
|
+
position: relative;
|
|
157
|
+
flex-shrink: 0;
|
|
158
|
+
display: flex;
|
|
159
|
+
align-items: stretch;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/* ── Right column: "On this page" — at desktop (>= 1280px) the
|
|
163
|
+
button toggles `data-cp-outline-collapsed` (hides the outline rail
|
|
164
|
+
via CSS in `sidebar-toggle.css`); at <= 1279px it toggles the
|
|
165
|
+
in-bar TOC dropdown below. Contents: label · scrolled-section
|
|
166
|
+
text · read percent · chevron. Width matches the rail's outline
|
|
167
|
+
column. ────────────────────────────────────────────────────── */
|
|
168
|
+
.cp-docs-bar__outline {
|
|
169
|
+
display: flex;
|
|
170
|
+
align-items: center;
|
|
171
|
+
gap: 8px;
|
|
172
|
+
flex-shrink: 0;
|
|
173
|
+
width: var(--rp-outline-width, 240px);
|
|
174
|
+
padding: 0 16px;
|
|
175
|
+
border-top: 0;
|
|
176
|
+
border-right: 0;
|
|
177
|
+
border-bottom: 0;
|
|
178
|
+
border-left: 1px solid var(--cp-docs-bar-border, var(--cp-c-border));
|
|
179
|
+
background: transparent;
|
|
180
|
+
color: var(--cp-c-text-2);
|
|
181
|
+
font: inherit;
|
|
182
|
+
cursor: pointer;
|
|
183
|
+
min-width: 0;
|
|
184
|
+
transition: background 0.15s ease;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.cp-docs-bar__outline:hover {
|
|
188
|
+
background: var(--cp-c-bg-soft);
|
|
189
|
+
color: var(--cp-c-text-1);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.cp-docs-bar__chev {
|
|
193
|
+
flex-shrink: 0;
|
|
194
|
+
margin-left: auto;
|
|
195
|
+
color: var(--cp-c-text-3, var(--cp-c-text-2));
|
|
196
|
+
transition: transform 0.15s ease;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
html[data-cp-outline-collapsed='true'] .cp-docs-bar__chev {
|
|
200
|
+
transform: rotate(-90deg);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/* ── Outline TOC dropdown — appears below the right column button
|
|
204
|
+
when `isOutlineOpen` is true (handled by `<CiderpressDocsBar />`).
|
|
205
|
+
Sits above the docs bar's own z-index so it overlaps the bar's
|
|
206
|
+
bottom border without being clipped. Click-outside closes via the
|
|
207
|
+
`mousedown` listener in `ciderpress-docs-bar.tsx`; clicks on `<a>`
|
|
208
|
+
links inside close via `makeLinkClickCloser` (hash-only navigation
|
|
209
|
+
doesn't trigger React Router's pathname effect, so this is the
|
|
210
|
+
actual closer). ─────────────────────────────────────────────── */
|
|
211
|
+
/*
|
|
212
|
+
* The dropdown carries TWO classes:
|
|
213
|
+
* - `.cp-docs-bar__outline-dropdown` — ours, owns positioning + visuals
|
|
214
|
+
* - `.rp-doc-layout__outline` — Rspress's, included only so its
|
|
215
|
+
* `<TocItem>` scroll-into-view boundary stops here instead of
|
|
216
|
+
* scrolling the whole page (the boundary check is `classList
|
|
217
|
+
* .contains('rp-doc-layout__outline') || classList.contains
|
|
218
|
+
* ('rspress-doc')`, hard-coded in Rspress's TocItem source).
|
|
219
|
+
*
|
|
220
|
+
* That second class drags in Rspress's `@media (width <= 1279px)`
|
|
221
|
+
* block which sets `visibility: hidden; opacity: 0; transform:
|
|
222
|
+
* translate3d(0, -10px, 0)` — same single-class specificity as ours,
|
|
223
|
+
* so source order alone decides who wins, and we kept losing once the
|
|
224
|
+
* entry animation completed (animation-fill-mode: none reverts the
|
|
225
|
+
* properties). Chaining both classes in our selector (specificity
|
|
226
|
+
* 0,2,0) definitively beats Rspress's 0,1,0 at every viewport width,
|
|
227
|
+
* and `forwards` on the animations pins the end state so the
|
|
228
|
+
* dropdown stays visible after the entry transition.
|
|
229
|
+
*/
|
|
230
|
+
.cp-docs-bar__outline-dropdown.rp-doc-layout__outline {
|
|
231
|
+
/* Default (>=1025px): side popout — full-height column on the
|
|
232
|
+
right edge, slides in from the right. */
|
|
233
|
+
position: fixed;
|
|
234
|
+
top: calc(
|
|
235
|
+
var(--cp-header-height, 56px) + var(--cp-docs-bar-height, 46px) +
|
|
236
|
+
var(--cp-announcement-height, 0px)
|
|
237
|
+
);
|
|
238
|
+
right: 0;
|
|
239
|
+
bottom: 0;
|
|
240
|
+
inset-inline-end: 0;
|
|
241
|
+
width: var(--rp-outline-width, 240px);
|
|
242
|
+
max-width: calc(100vw - 24px);
|
|
243
|
+
height: auto;
|
|
244
|
+
overflow-y: auto;
|
|
245
|
+
padding: 12px 0;
|
|
246
|
+
margin: 0;
|
|
247
|
+
background: var(--cp-c-bg);
|
|
248
|
+
backdrop-filter: none;
|
|
249
|
+
border: 0;
|
|
250
|
+
border-left: 1px solid var(--cp-c-border);
|
|
251
|
+
border-radius: 0;
|
|
252
|
+
box-shadow: -8px 0 24px rgba(0, 0, 0, 0.3);
|
|
253
|
+
visibility: visible;
|
|
254
|
+
opacity: 1;
|
|
255
|
+
transform: none;
|
|
256
|
+
transition: none;
|
|
257
|
+
font-size: 13px;
|
|
258
|
+
z-index: 70;
|
|
259
|
+
animation: cp-outline-slide-in 0.2s cubic-bezier(0.19, 1, 0.22, 1) forwards;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
@keyframes cp-outline-slide-in {
|
|
263
|
+
from {
|
|
264
|
+
transform: translateX(100%);
|
|
265
|
+
}
|
|
266
|
+
to {
|
|
267
|
+
transform: translateX(0);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/* Mobile (<=1024px) — outline button opens a *dropdown* (sized to
|
|
272
|
+
content, anchored under the button), not the full-height side
|
|
273
|
+
panel. The side panel is reserved for the 1025-1279 "tablet" range.
|
|
274
|
+
Selector chains both classes to keep specificity (0,2,0) above
|
|
275
|
+
Rspress's `.rp-doc-layout__outline` rules at <=1279px. */
|
|
276
|
+
@media (max-width: 1024px) {
|
|
277
|
+
.cp-docs-bar__outline-dropdown.rp-doc-layout__outline {
|
|
278
|
+
bottom: auto;
|
|
279
|
+
width: 280px;
|
|
280
|
+
max-width: calc(100vw - 16px);
|
|
281
|
+
max-height: calc(
|
|
282
|
+
100vh - var(--cp-header-height, 56px) - var(--cp-docs-bar-height, 46px) -
|
|
283
|
+
var(--cp-announcement-height, 0px) - 16px
|
|
284
|
+
);
|
|
285
|
+
margin-right: 8px;
|
|
286
|
+
padding: 6px 0;
|
|
287
|
+
border: 1px solid var(--cp-c-border);
|
|
288
|
+
border-radius: var(--cp-radius-card, 6px);
|
|
289
|
+
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
|
|
290
|
+
animation: cp-outline-fade-in 0.15s ease forwards;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
@keyframes cp-outline-fade-in {
|
|
295
|
+
from {
|
|
296
|
+
opacity: 0;
|
|
297
|
+
transform: translateY(-4px);
|
|
298
|
+
}
|
|
299
|
+
to {
|
|
300
|
+
opacity: 1;
|
|
301
|
+
transform: translateY(0);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/* `<TocItem>` ships a 10px top margin between items + a `:before`
|
|
306
|
+
active-marker hairline positioned at negative left of the outline
|
|
307
|
+
rail's padding. Inside a dropdown both look wrong — items want to
|
|
308
|
+
sit on a tighter rhythm and the `:before` indicator lands outside
|
|
309
|
+
the dropdown's clipping box, never visible. Strip both. */
|
|
310
|
+
.cp-docs-bar__outline-dropdown .rp-toc-item {
|
|
311
|
+
display: block;
|
|
312
|
+
margin: 0;
|
|
313
|
+
/* No padding on the link itself so hover/active backgrounds fill
|
|
314
|
+
full dropdown width AND `<TocItem>`'s inline `padding-left`
|
|
315
|
+
(depth × 12px) keeps providing the hierarchy indent. */
|
|
316
|
+
padding: 0;
|
|
317
|
+
color: var(--cp-c-text-2);
|
|
318
|
+
text-decoration: none;
|
|
319
|
+
position: relative;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
.cp-docs-bar__outline-dropdown .rp-toc-item::before {
|
|
323
|
+
display: none;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
.cp-docs-bar__outline-dropdown .rp-toc-item:hover {
|
|
327
|
+
background: var(--cp-c-bg-soft);
|
|
328
|
+
color: var(--cp-c-text-1);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
.cp-docs-bar__outline-dropdown .rp-toc-item--active {
|
|
332
|
+
background: var(--cp-c-bg-soft);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/* The actual visual padding lives on the text span — keeps the
|
|
336
|
+
hover/active background flush to the dropdown edges while the
|
|
337
|
+
text stays inset 16px from left and right. */
|
|
338
|
+
.cp-docs-bar__outline-dropdown .rp-toc-item__text {
|
|
339
|
+
display: block;
|
|
340
|
+
padding: 6px 16px;
|
|
341
|
+
color: inherit;
|
|
342
|
+
line-height: 1.4;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
.cp-docs-bar__outline-dropdown .rp-toc-item--active .rp-toc-item__text {
|
|
346
|
+
color: var(--cp-c-brand-1, var(--cp-c-text-1));
|
|
347
|
+
font-weight: 500;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
/* ── LlmsContainer (Copy Markdown + view-options dropdown) — Rspress
|
|
351
|
+
emits `.rp-llms-container` with its own float / margin meant for
|
|
352
|
+
the H1-adjacent placement. Inside our bar we override to a tight
|
|
353
|
+
inline-flex cluster of compact buttons. The Copy button shows
|
|
354
|
+
"Copy Markdown" inline with its icon on desktop; mobile collapses
|
|
355
|
+
the entire `.cp-docs-bar__center` so the label disappears with
|
|
356
|
+
it. The view-options trigger keeps just its caret icon. The
|
|
357
|
+
on-page render of `.rp-llms-container` is hidden separately in
|
|
358
|
+
`styles/overrides/rspress.css`. ──────────────────────────────── */
|
|
359
|
+
.cp-docs-bar__llms {
|
|
360
|
+
flex-shrink: 0;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
.cp-docs-bar__llms .rp-llms-container {
|
|
364
|
+
float: none;
|
|
365
|
+
margin: 0;
|
|
366
|
+
display: inline-flex;
|
|
367
|
+
align-items: center;
|
|
368
|
+
gap: 4px;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
/* Compact button reset — Rspress ships `.rp-llms-button` at 36px tall
|
|
372
|
+
with 12px horizontal padding and a 14px label, sized for the H1
|
|
373
|
+
placement. In the docs bar we squeeze to ~28px square so the cluster
|
|
374
|
+
reads as a row of icon affordances next to the chevron. */
|
|
375
|
+
.cp-docs-bar__llms .rp-llms-button {
|
|
376
|
+
height: 28px;
|
|
377
|
+
min-width: 28px;
|
|
378
|
+
padding: 0 6px;
|
|
379
|
+
gap: 4px;
|
|
380
|
+
font-size: 12px;
|
|
381
|
+
font-weight: 500;
|
|
382
|
+
border-radius: var(--cp-radius-card, 6px);
|
|
383
|
+
background: transparent;
|
|
384
|
+
border: 1px solid transparent;
|
|
385
|
+
color: var(--cp-c-text-2);
|
|
386
|
+
transition:
|
|
387
|
+
background 0.15s ease,
|
|
388
|
+
color 0.15s ease,
|
|
389
|
+
border-color 0.15s ease;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
.cp-docs-bar__llms .rp-llms-button:hover {
|
|
393
|
+
background: var(--cp-c-bg-soft);
|
|
394
|
+
color: var(--cp-c-text-1);
|
|
395
|
+
border-color: transparent;
|
|
396
|
+
box-shadow: none;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
/* Tighten the copy button's icon wrapper so it centres in the 28px box. */
|
|
400
|
+
.cp-docs-bar__llms .rp-llms-copy-button__icon-wrapper,
|
|
401
|
+
.cp-docs-bar__llms .rp-llms-copy-button__icon-copy,
|
|
402
|
+
.cp-docs-bar__llms .rp-llms-copy-button__icon-success {
|
|
403
|
+
width: 14px;
|
|
404
|
+
height: 14px;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
.cp-docs-bar__label {
|
|
408
|
+
font-size: 11px;
|
|
409
|
+
font-weight: 600;
|
|
410
|
+
letter-spacing: 0.04em;
|
|
411
|
+
text-transform: uppercase;
|
|
412
|
+
color: var(--cp-c-text-3, var(--cp-c-text-2));
|
|
413
|
+
flex-shrink: 0;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
.cp-docs-bar__section {
|
|
417
|
+
/* Active scrolled-section heading. Hidden on desktop because the
|
|
418
|
+
outline rail surfaces the active heading via its own active
|
|
419
|
+
state; shown on mobile (below) where the outline rail collapses
|
|
420
|
+
into a drawer and the bar is the only place to see what section
|
|
421
|
+
the user is currently reading. */
|
|
422
|
+
display: none;
|
|
423
|
+
color: var(--cp-c-text-1);
|
|
424
|
+
font-weight: 500;
|
|
425
|
+
overflow: hidden;
|
|
426
|
+
text-overflow: ellipsis;
|
|
427
|
+
white-space: nowrap;
|
|
428
|
+
min-width: 0;
|
|
429
|
+
flex: 1 1 auto;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
/* ── Layout flip — at <=1279px the Outline column collapses from a
|
|
433
|
+
sticky rail into a drawer (Rspress's own behaviour, matched by
|
|
434
|
+
`OUTLINE_DRAWER_MAX_WIDTH` in `ciderpress-docs-bar.tsx`). Flip the
|
|
435
|
+
bar's layout at the same threshold so the breadcrumbs + Copy-
|
|
436
|
+
Markdown cluster step out of the way and the two button affordances
|
|
437
|
+
("Menu" + "On this page") expand to fill the bar.
|
|
438
|
+
|
|
439
|
+
Gutter / side-border removal lives in a separate rule below so the
|
|
440
|
+
docs bar stays aligned with the doc rail beneath it (rail mobile
|
|
441
|
+
breakpoint is 1024px). */
|
|
442
|
+
@media (max-width: 1279px) {
|
|
443
|
+
.cp-docs-bar__menu {
|
|
444
|
+
width: auto;
|
|
445
|
+
flex: 1 1 auto;
|
|
446
|
+
border-right: 0;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
.cp-docs-bar__center {
|
|
450
|
+
display: none;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
.cp-docs-bar__outline {
|
|
454
|
+
width: auto;
|
|
455
|
+
padding: 0 12px;
|
|
456
|
+
gap: 6px;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
/* Hide the "On this page" label on mobile and surface the active
|
|
460
|
+
scrolled-section heading instead — the chevron telegraphs that
|
|
461
|
+
tapping opens a dropdown, and the section text tells the user
|
|
462
|
+
where they are without forcing the outline drawer open. */
|
|
463
|
+
.cp-docs-bar__outline .cp-docs-bar__label {
|
|
464
|
+
display: none;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
.cp-docs-bar__outline .cp-docs-bar__section {
|
|
468
|
+
display: block;
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
/* ── Gutter alignment — at <=1024px the doc rail beneath the bar
|
|
473
|
+
loses its side borders and frame gutter (see `rail.css`). Mirror
|
|
474
|
+
that here so the bar runs edge-to-edge against the same threshold
|
|
475
|
+
and the two stay visually flush. */
|
|
476
|
+
@media (max-width: 1024px) {
|
|
477
|
+
.cp-docs-bar {
|
|
478
|
+
margin: 0;
|
|
479
|
+
border-left: 0;
|
|
480
|
+
border-right: 0;
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
/* ── Sidebar drawer backdrop mask — rendered by `<CiderpressDocLayout />`
|
|
485
|
+
only when `isSidebarOpen` is true (the outline uses an in-bar
|
|
486
|
+
dropdown, not a drawer). Click closes the drawer.
|
|
487
|
+
|
|
488
|
+
`z-index: 45` sits between the page content (z=0) and the sidebar
|
|
489
|
+
drawer (Rspress's `--rp-z-index-sidebar: 50`), so the drawer
|
|
490
|
+
paints over the mask and clicks on drawer content reach the
|
|
491
|
+
drawer. Stays BELOW the docs bar (55) and header (60) so those
|
|
492
|
+
chrome elements remain visible and interactive. */
|
|
493
|
+
.cp-drawer-mask {
|
|
494
|
+
position: fixed;
|
|
495
|
+
inset: 0;
|
|
496
|
+
z-index: 45;
|
|
497
|
+
background: rgba(0, 0, 0, 0.5);
|
|
498
|
+
backdrop-filter: blur(2px);
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
/* ── Body scroll lock while a drawer is open. ──────────────────── */
|
|
502
|
+
html[data-cp-drawer-open='true'],
|
|
503
|
+
html[data-cp-drawer-open='true'] body {
|
|
504
|
+
overflow: hidden;
|
|
505
|
+
}
|