mirror of
https://github.com/stack-auth/stack.git
synced 2026-06-04 21:04:37 +08:00
<!--
Make sure you've read the CONTRIBUTING.md guidelines:
https://github.com/stack-auth/stack-auth/blob/dev/CONTRIBUTING.md
-->
<!-- ELLIPSIS_HIDDEN -->
----
> [!IMPORTANT]
> Adds a unified documentation widget to the dashboard, enabling in-app
viewing and switching of documentation types with platform-specific
adaptations.
>
> - **Behavior**:
> - Adds `UnifiedDocsWidget` to `stack-companion.tsx` for viewing docs
within the dashboard.
> - Supports platform switching, back navigation, sidebar toggle,
loading/error states, and external opening.
> - Adapts content based on current page across dashboard, docs, and
API.
> - **Documentation**:
> - Adds embedded routes/layouts in `docs/src/app` for `api-embed`,
`dashboard-embed`, and `docs-embed`.
> - Implements `EmbeddedLinkInterceptor` and `PlatformChangeNotifier`
for link handling and platform change notifications.
> - Updates `generate-docs.js` to include dashboard docs generation.
> - **Configuration**:
> - Adds `NEXT_PUBLIC_STACK_DOCS_BASE_URL` to `.env.development` and
`env.tsx`.
> - Configures CORS headers in `next.config.mjs` for dashboard
embedding.
> - **Misc**:
> - Updates styling in `global.css` to support embedded content.
> - Adds `EmbeddedLink` component for MDX link handling in
`mdx-components.tsx`.
>
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=stack-auth%2Fstack-auth&utm_source=github&utm_medium=referral)<sup>
for 5760b90ea6. You can
[customize](https://app.ellipsis.dev/stack-auth/settings/summaries) this
summary. It will automatically update as commits are pushed.</sup>
----
<!-- ELLIPSIS_HIDDEN -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Unified embedded docs viewer added to the dashboard with multi-type
support, navigation controls, back navigation, and external-open
behavior
* In-iframe link interception and MDX embedded-link support for seamless
embedded navigation
* **Style**
* Improved CSS for embedded content: scrollbar hiding, overflow
handling, responsive media and code blocks
* **Chores**
* Added dashboard docs collection, embed routes/layouts, CORS headers,
and env config for docs embedding
* **UX**
* Consolidated account UI in mobile header; improved auth panel
open/close animations
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Konsti Wohlwend <n2d4xc@gmail.com>
51 lines
1.1 KiB
TypeScript
51 lines
1.1 KiB
TypeScript
import { api, dashboard, docs } from '@/.source';
|
|
import { loader } from 'fumadocs-core/source';
|
|
import { attachFile } from 'fumadocs-openapi/server';
|
|
import { icons } from 'lucide-react';
|
|
import { createElement } from 'react';
|
|
|
|
// Helper function to create icon resolver
|
|
function createIconResolver() {
|
|
return function icon(iconName?: string) {
|
|
if (!iconName) {
|
|
return;
|
|
}
|
|
|
|
if (iconName in icons) {
|
|
return createElement(icons[iconName as keyof typeof icons]);
|
|
}
|
|
|
|
return;
|
|
};
|
|
}
|
|
|
|
// Main docs source for /docs routes - includes all root sections
|
|
export const source = loader({
|
|
baseUrl: '/docs',
|
|
source: docs.toFumadocsSource(),
|
|
pageTree: {
|
|
attachFile,
|
|
},
|
|
icon: createIconResolver(),
|
|
});
|
|
|
|
// API source for /api routes
|
|
export const apiSource = loader({
|
|
baseUrl: '/api',
|
|
source: api.toFumadocsSource(),
|
|
pageTree: {
|
|
attachFile,
|
|
},
|
|
icon: createIconResolver(),
|
|
});
|
|
|
|
// Dashboard source for /dashboard routes
|
|
export const dashboardSource = loader({
|
|
baseUrl: '/dashboard',
|
|
source: dashboard.toFumadocsSource(),
|
|
pageTree: {
|
|
attachFile,
|
|
},
|
|
icon: createIconResolver(),
|
|
});
|