zudoku 0.0.0-eff6f9b → 0.0.0-f1a6fd4
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/README.md +121 -0
- package/dist/app/main.js +3 -3
- package/dist/app/main.js.map +1 -1
- package/dist/cli/dev/handler.js +2 -2
- package/dist/cli/dev/handler.js.map +1 -1
- package/dist/config/config.d.ts +2 -1
- package/dist/config/validators/InputSidebarSchema.d.ts +1 -0
- package/dist/config/validators/validate.d.ts +42 -23
- package/dist/config/validators/validate.js +6 -2
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/lib/authentication/state.d.ts +16 -0
- package/dist/lib/authentication/state.js +5 -0
- package/dist/lib/authentication/state.js.map +1 -1
- package/dist/lib/components/Banner.js +7 -1
- package/dist/lib/components/Banner.js.map +1 -1
- package/dist/lib/components/ErrorPage.js +1 -2
- package/dist/lib/components/ErrorPage.js.map +1 -1
- package/dist/lib/components/Header.js +1 -1
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/InlineCode.d.ts +2 -1
- package/dist/lib/components/InlineCode.js +9 -1
- package/dist/lib/components/InlineCode.js.map +1 -1
- package/dist/lib/components/Layout.js +1 -1
- package/dist/lib/components/Layout.js.map +1 -1
- package/dist/lib/components/MobileTopNavigation.js +2 -1
- package/dist/lib/components/MobileTopNavigation.js.map +1 -1
- package/dist/lib/components/Search.js +1 -1
- package/dist/lib/components/Search.js.map +1 -1
- package/dist/lib/components/SlotletProvider.d.ts +9 -2
- package/dist/lib/components/SlotletProvider.js +4 -2
- package/dist/lib/components/SlotletProvider.js.map +1 -1
- package/dist/lib/components/index.d.ts +2 -1
- package/dist/lib/components/index.js.map +1 -1
- package/dist/lib/core/DevPortalContext.d.ts +1 -1
- package/dist/lib/oas/graphql/index.d.ts +2 -1
- package/dist/lib/oas/graphql/index.js +23 -15
- package/dist/lib/oas/graphql/index.js.map +1 -1
- package/dist/lib/oas/parser/index.d.ts +1 -0
- package/dist/lib/oas/parser/index.js.map +1 -1
- package/dist/lib/plugins/custom-pages/CustomPage.d.ts +2 -0
- package/dist/lib/plugins/custom-pages/CustomPage.js +11 -0
- package/dist/lib/plugins/custom-pages/CustomPage.js.map +1 -0
- package/dist/lib/plugins/custom-pages/index.d.ts +10 -0
- package/dist/lib/plugins/custom-pages/index.js +11 -0
- package/dist/lib/plugins/custom-pages/index.js.map +1 -0
- package/dist/lib/plugins/markdown/MdxPage.js +2 -2
- package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
- package/dist/lib/plugins/openapi/Endpoint.d.ts +1 -3
- package/dist/lib/plugins/openapi/Endpoint.js +46 -8
- package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationList.js +2 -2
- package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.d.ts +2 -1
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +2 -2
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -1
- package/dist/lib/plugins/openapi/Route.d.ts +1 -1
- package/dist/lib/plugins/openapi/Route.js +1 -1
- package/dist/lib/plugins/openapi/Route.js.map +1 -1
- package/dist/lib/plugins/openapi/Sidecar.js +15 -4
- package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
- package/dist/lib/plugins/openapi/SimpleSelect.d.ts +2 -1
- package/dist/lib/plugins/openapi/SimpleSelect.js +1 -1
- package/dist/lib/plugins/openapi/SimpleSelect.js.map +1 -1
- package/dist/lib/plugins/openapi/client/createMemoryClient.js +1 -1
- package/dist/lib/plugins/openapi/client/createMemoryClient.js.map +1 -1
- package/dist/lib/plugins/openapi/client/createWorkerClient.js +1 -1
- package/dist/lib/plugins/openapi/client/createWorkerClient.js.map +1 -1
- package/dist/lib/plugins/openapi/graphql/gql.d.ts +10 -2
- package/dist/lib/plugins/openapi/graphql/gql.js +2 -1
- package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
- package/dist/lib/plugins/openapi/graphql/graphql.d.ts +26 -0
- package/dist/lib/plugins/openapi/graphql/graphql.js +87 -0
- package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
- package/dist/lib/plugins/openapi/index.js +3 -2
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Playground.d.ts +2 -1
- package/dist/lib/plugins/openapi/playground/Playground.js +13 -5
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/ResponseTab.js +1 -1
- package/dist/lib/plugins/openapi/playground/ResponseTab.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/createUrl.js +3 -1
- package/dist/lib/plugins/openapi/playground/createUrl.js.map +1 -1
- package/dist/lib/ui/Callout.d.ts +36 -35
- package/dist/lib/ui/Callout.js.map +1 -1
- package/dist/lib/ui/Drawer.d.ts +8 -10
- package/dist/lib/ui/Drawer.js.map +1 -1
- package/dist/lib/util/useExposedProps.d.ts +2 -0
- package/dist/lib/util/useExposedProps.js +8 -0
- package/dist/lib/util/useExposedProps.js.map +1 -0
- package/dist/vite/config.d.ts +1 -1
- package/dist/vite/config.js +21 -15
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/dev-server.d.ts +6 -1
- package/dist/vite/dev-server.js +14 -4
- package/dist/vite/dev-server.js.map +1 -1
- package/dist/vite/plugin-api.js +4 -7
- package/dist/vite/plugin-api.js.map +1 -1
- package/dist/vite/plugin-component.js +0 -1
- package/dist/vite/plugin-component.js.map +1 -1
- package/dist/vite/plugin-config-reload.js +9 -4
- package/dist/vite/plugin-config-reload.js.map +1 -1
- package/dist/vite/plugin-custom-pages.d.ts +4 -0
- package/dist/vite/plugin-custom-pages.js +30 -0
- package/dist/vite/plugin-custom-pages.js.map +1 -0
- package/dist/vite/plugin-frontmatter.d.ts +2 -0
- package/dist/vite/plugin-frontmatter.js +30 -0
- package/dist/vite/plugin-frontmatter.js.map +1 -0
- package/dist/vite/plugin-mdx.js +3 -0
- package/dist/vite/plugin-mdx.js.map +1 -1
- package/dist/vite/plugin-sidebar.js +14 -1
- package/dist/vite/plugin-sidebar.js.map +1 -1
- package/dist/vite/plugin.js +4 -2
- package/dist/vite/plugin.js.map +1 -1
- package/lib/{AuthenticationPlugin-gtf8JS3V.js → AuthenticationPlugin-CbgJ5SAh.js} +3 -3
- package/lib/{AuthenticationPlugin-gtf8JS3V.js.map → AuthenticationPlugin-CbgJ5SAh.js.map} +1 -1
- package/lib/{CategoryHeading-XnFqN2lJ.js → CategoryHeading-3Qtp2yZ8.js} +2 -2
- package/lib/{CategoryHeading-XnFqN2lJ.js.map → CategoryHeading-3Qtp2yZ8.js.map} +1 -1
- package/lib/{DeveloperHint-FBb2uXJe.js → DeveloperHint-BE9DzNhv.js} +2 -2
- package/lib/{DeveloperHint-FBb2uXJe.js.map → DeveloperHint-BE9DzNhv.js.map} +1 -1
- package/lib/ErrorPage-B0COs372.js +16 -0
- package/lib/ErrorPage-B0COs372.js.map +1 -0
- package/lib/Input-CHfE_2Qk.js +2229 -0
- package/lib/Input-CHfE_2Qk.js.map +1 -0
- package/lib/{Markdown-B4aR03g6.js → Markdown-CWI6lU11.js} +1448 -1286
- package/lib/Markdown-CWI6lU11.js.map +1 -0
- package/lib/{MdxPage-BcftTg5g.js → MdxPage-C3tlrV4j.js} +24 -24
- package/lib/MdxPage-C3tlrV4j.js.map +1 -0
- package/lib/{OperationList-Da36LrGl.js → OperationList-BO-ES1C5.js} +149 -108
- package/lib/OperationList-BO-ES1C5.js.map +1 -0
- package/lib/{Route-CWj1ECzh.js → Route-Dq6zv0Pi.js} +3 -4
- package/lib/Route-Dq6zv0Pi.js.map +1 -0
- package/lib/SidebarBadge-DmI5hT04.js +503 -0
- package/lib/SidebarBadge-DmI5hT04.js.map +1 -0
- package/lib/{SlotletProvider-DJMaOUDs.js → SlotletProvider-RvaeLR6z.js} +43 -42
- package/lib/{SlotletProvider-DJMaOUDs.js.map → SlotletProvider-RvaeLR6z.js.map} +1 -1
- package/lib/ZudokuContext-BEmsYQoq.js +1173 -0
- package/lib/ZudokuContext-BEmsYQoq.js.map +1 -0
- package/lib/assets/{index-B9EWVYfo.js → index-B_Jk_Yzp.js} +968 -938
- package/lib/assets/index-B_Jk_Yzp.js.map +1 -0
- package/lib/assets/{worker-TYRbYl6N.js → worker-Bf8vjASY.js} +6768 -4410
- package/lib/assets/worker-Bf8vjASY.js.map +1 -0
- package/lib/{index-BG0g4WW0.js → index-BRCiYFaL.js} +747 -737
- package/lib/index-BRCiYFaL.js.map +1 -0
- package/lib/{index-CLd8ycZz.js → index-CkwDvuPt.js} +947 -917
- package/lib/index-CkwDvuPt.js.map +1 -0
- package/lib/index-D06ATMgg.js +2094 -0
- package/lib/index-D06ATMgg.js.map +1 -0
- package/lib/index-DJqnphbT.js +35 -0
- package/lib/index-DJqnphbT.js.map +1 -0
- package/lib/{index-DIkaYL-l.js → index-DNfiZTPV.js} +1956 -1676
- package/lib/index-DNfiZTPV.js.map +1 -0
- package/lib/{index-BoXX7LeD.js → index-Do_BBSIs.js} +597 -544
- package/lib/index-Do_BBSIs.js.map +1 -0
- package/lib/{index-B_9xr661.js → index-Dvh1BL_e.js} +3 -3
- package/lib/{index-B_9xr661.js.map → index-Dvh1BL_e.js.map} +1 -1
- package/lib/joinPath-B7kNnUX4.js +8 -0
- package/lib/joinPath-B7kNnUX4.js.map +1 -0
- package/lib/router-Oe6YmY6B.js +3024 -0
- package/lib/router-Oe6YmY6B.js.map +1 -0
- package/lib/state-CsuHT8ZO.js +183 -0
- package/lib/state-CsuHT8ZO.js.map +1 -0
- package/lib/urql-core-KJnLL26g.js +1455 -0
- package/lib/urql-core-KJnLL26g.js.map +1 -0
- package/lib/useExposedProps-Csw8oAlt.js +9 -0
- package/lib/useExposedProps-Csw8oAlt.js.map +1 -0
- package/lib/{utils-DtEHoAvg.js → utils-Chi3p5nE.js} +101 -104
- package/lib/utils-Chi3p5nE.js.map +1 -0
- package/lib/zudoku.auth-auth0.js +1 -1
- package/lib/zudoku.auth-clerk.js +2 -2
- package/lib/zudoku.auth-openid.js +363 -350
- package/lib/zudoku.auth-openid.js.map +1 -1
- package/lib/zudoku.components.js +1695 -1621
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.openapi-worker.js +4671 -4383
- package/lib/zudoku.openapi-worker.js.map +1 -1
- package/lib/zudoku.plugin-api-keys.js +7 -7
- package/lib/zudoku.plugin-custom-pages.js +21 -0
- package/lib/zudoku.plugin-custom-pages.js.map +1 -0
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-openapi.js +10 -9
- package/lib/zudoku.plugin-openapi.js.map +1 -1
- package/lib/zudoku.plugin-redirect.js +1 -1
- package/package.json +71 -69
- package/src/app/main.tsx +3 -3
- package/src/lib/authentication/state.ts +17 -0
- package/src/lib/components/Banner.tsx +12 -2
- package/src/lib/components/ErrorPage.tsx +0 -2
- package/src/lib/components/Header.tsx +4 -2
- package/src/lib/components/InlineCode.tsx +10 -0
- package/src/lib/components/Layout.tsx +2 -1
- package/src/lib/components/MobileTopNavigation.tsx +4 -0
- package/src/lib/components/Search.tsx +1 -1
- package/src/lib/components/SlotletProvider.tsx +27 -4
- package/src/lib/components/index.ts +1 -1
- package/src/lib/core/DevPortalContext.ts +1 -1
- package/src/lib/oas/graphql/index.ts +35 -23
- package/src/lib/oas/parser/index.ts +1 -0
- package/src/lib/plugins/custom-pages/CustomPage.tsx +18 -0
- package/src/lib/plugins/custom-pages/index.tsx +24 -0
- package/src/lib/plugins/markdown/MdxPage.tsx +2 -2
- package/src/lib/plugins/openapi/Endpoint.tsx +86 -22
- package/src/lib/plugins/openapi/OperationList.tsx +4 -2
- package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +3 -0
- package/src/lib/plugins/openapi/Route.tsx +1 -2
- package/src/lib/plugins/openapi/Sidecar.tsx +18 -3
- package/src/lib/plugins/openapi/SimpleSelect.tsx +10 -2
- package/src/lib/plugins/openapi/client/createMemoryClient.ts +1 -6
- package/src/lib/plugins/openapi/client/createWorkerClient.ts +1 -6
- package/src/lib/plugins/openapi/graphql/gql.ts +11 -3
- package/src/lib/plugins/openapi/graphql/graphql.ts +113 -1
- package/src/lib/plugins/openapi/index.tsx +3 -6
- package/src/lib/plugins/openapi/playground/Playground.tsx +39 -5
- package/src/lib/plugins/openapi/playground/ResponseTab.tsx +0 -1
- package/src/lib/plugins/openapi/playground/createUrl.ts +6 -1
- package/src/lib/ui/Callout.tsx +7 -6
- package/src/lib/ui/Drawer.tsx +38 -36
- package/src/lib/util/useExposedProps.tsx +10 -0
- package/dist/lib/plugins/custom-page/index.d.ts +0 -8
- package/dist/lib/plugins/custom-page/index.js +0 -12
- package/dist/lib/plugins/custom-page/index.js.map +0 -1
- package/dist/lib/plugins/openapi/playground/Editor.d.ts +0 -1
- package/dist/lib/plugins/openapi/playground/Editor.js +0 -5
- package/dist/lib/plugins/openapi/playground/Editor.js.map +0 -1
- package/dist/lib/plugins/openapi/util/urql.d.ts +0 -7
- package/dist/lib/plugins/openapi/util/urql.js +0 -8
- package/dist/lib/plugins/openapi/util/urql.js.map +0 -1
- package/dist/lib/util/slugify.d.ts +0 -2
- package/dist/lib/util/slugify.js +0 -3
- package/dist/lib/util/slugify.js.map +0 -1
- package/dist/vite/plugin-icons.d.ts +0 -3
- package/dist/vite/plugin-icons.js +0 -47
- package/dist/vite/plugin-icons.js.map +0 -1
- package/lib/ErrorPage-knunPbKI.js +0 -18
- package/lib/ErrorPage-knunPbKI.js.map +0 -1
- package/lib/Input-B1kkVL1R.js +0 -2198
- package/lib/Input-B1kkVL1R.js.map +0 -1
- package/lib/Markdown-B4aR03g6.js.map +0 -1
- package/lib/MdxPage-BcftTg5g.js.map +0 -1
- package/lib/OperationList-Da36LrGl.js.map +0 -1
- package/lib/Route-CWj1ECzh.js.map +0 -1
- package/lib/SidebarBadge-DdvT2qep.js +0 -498
- package/lib/SidebarBadge-DdvT2qep.js.map +0 -1
- package/lib/ZudokuContext-em1gHkIY.js +0 -1084
- package/lib/ZudokuContext-em1gHkIY.js.map +0 -1
- package/lib/_commonjsHelpers-BkfeUUK-.js +0 -29
- package/lib/_commonjsHelpers-BkfeUUK-.js.map +0 -1
- package/lib/assets/index-B9EWVYfo.js.map +0 -1
- package/lib/assets/worker-TYRbYl6N.js.map +0 -1
- package/lib/index-BG0g4WW0.js.map +0 -1
- package/lib/index-BoXX7LeD.js.map +0 -1
- package/lib/index-CLd8ycZz.js.map +0 -1
- package/lib/index-DIkaYL-l.js.map +0 -1
- package/lib/router-D2p7Olpn.js +0 -2971
- package/lib/router-D2p7Olpn.js.map +0 -1
- package/lib/slugify-DbLhpSPt.js +0 -28
- package/lib/slugify-DbLhpSPt.js.map +0 -1
- package/lib/state-BUM4jc0J.js +0 -288
- package/lib/state-BUM4jc0J.js.map +0 -1
- package/lib/urql-YhcsXYy8.js +0 -1591
- package/lib/urql-YhcsXYy8.js.map +0 -1
- package/lib/utils-DtEHoAvg.js.map +0 -1
- package/lib/zudoku.plugin-custom-page.js +0 -13
- package/lib/zudoku.plugin-custom-page.js.map +0 -1
- package/src/lib/plugins/custom-page/index.tsx +0 -22
- package/src/lib/plugins/openapi/playground/Editor.tsx +0 -4
- package/src/lib/plugins/openapi/util/urql.ts +0 -8
- package/src/lib/util/slugify.ts +0 -3
package/README.md
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
<div align=center>
|
|
2
|
+
|
|
3
|
+
<a href="https://zudoku.dev" alt="Zudoku">
|
|
4
|
+
<img src="./assets/github-hero.png" width=630 alt="Zudoku Docs & Developer Portal">
|
|
5
|
+
</a>
|
|
6
|
+
|
|
7
|
+
[](https://github.com/zuplo/zudoku/license.md) [](https://www.npmjs.com/package/zudoku) [](https://www.npmjs.com/package/create-zudoku-app) [](https://zuplo.com)
|
|
8
|
+
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
# Zudoku
|
|
12
|
+
|
|
13
|
+
API documentation should always be free.
|
|
14
|
+
|
|
15
|
+
<a href="#-installation"><strong>Installation</strong></a> · <a href="https://zudoku.dev/docs/app-quickstart"><strong>Docs</strong></a> · <a href="#-examples"><strong>Examples</strong></a> · <a href="#-contributing--community"><strong>Contributing</strong></a> · <a href="#-motivation"><strong>Motivation</strong></a>
|
|
16
|
+
|
|
17
|
+
## Introduction
|
|
18
|
+
|
|
19
|
+
**Zudoku** (pronounced "zoo-doh-koo") is an open-source, highly customizable API documentation framework for building quality developer experiences around OpenAPI and, soon, GraphQL documents.
|
|
20
|
+
|
|
21
|
+
Because great API documentation frameworks should be:
|
|
22
|
+
|
|
23
|
+
🌍 Free & Open Source<br /> ✅ OpenAPI powered<br /> 🔩 Extensible with Plugins<br /> ⚡ Easy to setup & blazing fast to work with<br /> 🔧 Easy to maintain
|
|
24
|
+
|
|
25
|
+
## 🤩 Try it, right now!
|
|
26
|
+
|
|
27
|
+
You can test Zudoku with your own OpenAPI document at [zudoku.dev](https://zudoku.dev?utm_source=github&utm_medium=web&utm_content=link&ref=github) and see how good your documentation can look!
|
|
28
|
+
|
|
29
|
+
## ✨ Features
|
|
30
|
+
|
|
31
|
+
- 🚀 Generate documentation from a single or multiple [OpenAPI](https://swagger.io/specification/) schema
|
|
32
|
+
- 📄 Create [MDX pages](https://mdxjs.com/) for anything you want to document
|
|
33
|
+
- 🔐 Integrate your users with authentication via OpenID or OAuth2
|
|
34
|
+
- 🧪 Let users test their API calls using the Integrated Playground (includes authentication!)
|
|
35
|
+
- 🌑 Dark mode (of course!)
|
|
36
|
+
|
|
37
|
+
Zudoku is quick to implement, easy to configure and is highly composable with sensible defaults.
|
|
38
|
+
|
|
39
|
+
## ⚙️ Installation
|
|
40
|
+
|
|
41
|
+
You can use the CLI to generate a new project or use it standalone via CDN as a React component.
|
|
42
|
+
|
|
43
|
+
### ⚡️ Quick start
|
|
44
|
+
|
|
45
|
+
Fire up your new API docs using the command line generator:
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
npm create zudoku-app@latest
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 📦 Standalone via CDN
|
|
52
|
+
|
|
53
|
+
Add the package and styles to your `<head>` and pass the URL for your API schema to the `data-api-url` property, as shown here:
|
|
54
|
+
|
|
55
|
+
```html
|
|
56
|
+
<!doctype html>
|
|
57
|
+
<html>
|
|
58
|
+
<head>
|
|
59
|
+
<title>Zudoku Demo</title>
|
|
60
|
+
<meta charset="UTF-8" />
|
|
61
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
62
|
+
|
|
63
|
+
<link rel="icon" type="image/svg+xml" href="https://cdn.zudoku.dev/logos/favicon.svg" />
|
|
64
|
+
<script type="module" src="https://cdn.zudoku.dev/latest/main.js" crossorigin></script>
|
|
65
|
+
<link rel="stylesheet" href="https://cdn.zudoku.dev/latest/style.css" crossorigin />
|
|
66
|
+
</head>
|
|
67
|
+
<body>
|
|
68
|
+
<div data-api-url="https://api.example.com/openapi.json"></div>
|
|
69
|
+
</body>
|
|
70
|
+
</html>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 🧱 Getting started templates
|
|
74
|
+
|
|
75
|
+
To get started with some of the features Zudoku offers you can use one of these [example templates](https://github.com/zuplo/zudoku/tree/main/examples):
|
|
76
|
+
|
|
77
|
+
| Template | What it does |
|
|
78
|
+
| --------------------------------------------------------------------------------------- | ----------------------------------------------------- |
|
|
79
|
+
| [many-apis](https://github.com/zuplo/zudoku/tree/main/examples/many-apis) | Using more than one OpenAPI document with Zudoku |
|
|
80
|
+
| [with-auth0](https://github.com/zuplo/zudoku/tree/main/examples/with-auth0) | Authenticate users in docs with the Auth0 plugin |
|
|
81
|
+
| [with-config](https://github.com/zuplo/zudoku/tree/main/examples/with-config) | Barebones config, ready for you to setup how you like |
|
|
82
|
+
| [with-vite-config](https://github.com/zuplo/zudoku/tree/main/examples/with-vite-config) | Use Zudoku with your Vite config (Advanced) |
|
|
83
|
+
|
|
84
|
+
## 🎓 Examples
|
|
85
|
+
|
|
86
|
+
- [Rick & Morty API](https://zudoku.dev/demo?api-url=https://rickandmorty.zuplo.io/openapi.json)
|
|
87
|
+
- [Pet Store API](https://zudoku.dev/demo?api-url=https://zudoku.dev/petstore.oas.json)
|
|
88
|
+
- [Zuplo API Documentation](https://docs-zudoku.pages.dev/)
|
|
89
|
+
|
|
90
|
+
### Zudoku use cases
|
|
91
|
+
|
|
92
|
+
Zudoku is a flexible and highly customizable framework that can be used to create many things, including:
|
|
93
|
+
|
|
94
|
+
- Standalone documentation websites
|
|
95
|
+
- OpenAPI powered API references
|
|
96
|
+
- A developer portal with documentation, fully functional API reference for testing and authentication support for your user accounts.
|
|
97
|
+
- Internal documentation
|
|
98
|
+
|
|
99
|
+
## 🔧 Contributing & Community
|
|
100
|
+
|
|
101
|
+
For details on how to contribute to Zudoku, see the [contributing guide](CONTRIBUTING.md).
|
|
102
|
+
|
|
103
|
+
## Changelog
|
|
104
|
+
|
|
105
|
+
Details of the latest updates to Zudoku can be found in the [changelog](CHANGELOG.md).
|
|
106
|
+
|
|
107
|
+
## 🎯 Motivation
|
|
108
|
+
|
|
109
|
+
At Zuplo, we couldn’t find an open-source solution that met our high standards for both trustworthiness and programmability, so we decided to create our own. And since no one chooses Zuplo solely because of our documentation, we felt great about open-sourcing this tool and making it easy for anyone to self-host.
|
|
110
|
+
|
|
111
|
+
We hope that if you use it, you’ll think fondly of Zuplo, and one day, when you’re looking for a gateway or API management product, you’ll consider us as a vendor to evaluate.
|
|
112
|
+
|
|
113
|
+
Zudoku will always be open-source. It will always be free.
|
|
114
|
+
|
|
115
|
+
## License
|
|
116
|
+
|
|
117
|
+
Zudoku is licensed under MIT. See the full [license](LICENSE.md).
|
|
118
|
+
|
|
119
|
+
<a href="https://twitter.com/zuplo">
|
|
120
|
+
<img alt="X (formerly Twitter) Follow" src="https://img.shields.io/twitter/follow/zuplo">
|
|
121
|
+
</a>
|
package/dist/app/main.js
CHANGED
|
@@ -3,13 +3,13 @@ import { redirect } from "react-router-dom";
|
|
|
3
3
|
import { configuredApiKeysPlugin } from "virtual:zudoku-api-keys-plugin";
|
|
4
4
|
import { configuredApiPlugins } from "virtual:zudoku-api-plugins";
|
|
5
5
|
import { configuredAuthProvider } from "virtual:zudoku-auth";
|
|
6
|
+
import { configuredCustomPagesPlugin } from "virtual:zudoku-custom-pages-plugin";
|
|
6
7
|
import { configuredDocsPlugins } from "virtual:zudoku-docs-plugins";
|
|
7
8
|
import { configuredRedirectPlugin } from "virtual:zudoku-redirect-plugin";
|
|
8
9
|
import { configuredSidebar } from "virtual:zudoku-sidebar";
|
|
9
10
|
import "virtual:zudoku-theme.css";
|
|
10
11
|
import { DevPortal, Layout, RouterError } from "zudoku/components";
|
|
11
12
|
import { isNavigationPlugin } from "zudoku/internal";
|
|
12
|
-
import { customPagePlugin } from "zudoku/plugins/custom-page";
|
|
13
13
|
import { inkeepSearchPlugin } from "zudoku/plugins/search-inkeep";
|
|
14
14
|
import { traverseSidebar } from "../lib/components/navigation/utils.js";
|
|
15
15
|
import { joinPath } from "../lib/util/joinPath.js";
|
|
@@ -33,7 +33,7 @@ export const convertZudokuConfigToOptions = (config) => {
|
|
|
33
33
|
},
|
|
34
34
|
},
|
|
35
35
|
},
|
|
36
|
-
slotlets: config.
|
|
36
|
+
slotlets: config.UNSAFE_slotlets,
|
|
37
37
|
metadata: {
|
|
38
38
|
favicon: "https://cdn.zudoku.dev/logos/favicon.svg",
|
|
39
39
|
title: "%s - Zudoku",
|
|
@@ -51,7 +51,7 @@ export const convertZudokuConfigToOptions = (config) => {
|
|
|
51
51
|
...configuredApiPlugins,
|
|
52
52
|
...(configuredRedirectPlugin ? [configuredRedirectPlugin] : []),
|
|
53
53
|
...(configuredApiKeysPlugin ? [configuredApiKeysPlugin] : []),
|
|
54
|
-
...(
|
|
54
|
+
...(configuredCustomPagesPlugin ? [configuredCustomPagesPlugin] : []),
|
|
55
55
|
...(configuredAuthProvider?.getAuthenticationPlugin
|
|
56
56
|
? [configuredAuthProvider.getAuthenticationPlugin()]
|
|
57
57
|
: []),
|
package/dist/app/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/app/main.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAoB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/app/main.tsx"],"names":[],"mappings":"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"}
|
package/dist/cli/dev/handler.js
CHANGED
|
@@ -14,11 +14,11 @@ export async function dev(argv) {
|
|
|
14
14
|
}
|
|
15
15
|
const dir = path.resolve(process.cwd(), argv.dir);
|
|
16
16
|
const server = new DevServer({ dir, port, ssr: argv.ssr });
|
|
17
|
-
await server.start();
|
|
17
|
+
const { vite } = await server.start();
|
|
18
18
|
printDiagnosticsToConsole("Started development server");
|
|
19
19
|
printDiagnosticsToConsole("Ctrl+C to exit");
|
|
20
20
|
printDiagnosticsToConsole("");
|
|
21
|
-
printDiagnosticsToConsole(`🚀 Zudoku Portal: http://${host}:${port}`);
|
|
21
|
+
printDiagnosticsToConsole(`🚀 Zudoku Portal: http://${host}:${port}${vite.config.base.replace(/\/$/, "")}`);
|
|
22
22
|
printDiagnosticsToConsole("");
|
|
23
23
|
let hasExited = false;
|
|
24
24
|
return new Promise((resolve) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/cli/dev/handler.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAQ3D,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAe;IACvC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,aAAa,CAAC;IACrC,MAAM,IAAI,GAAG,WAAW,CAAC;IACzB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACrB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,IAAI,CAAC;QACZ,OAAO,CAAC,CAAC,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;YAC3D,IAAI,EAAE,CAAC;QACT,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAE3D,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/cli/dev/handler.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAQ3D,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAe;IACvC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,aAAa,CAAC;IACrC,MAAM,IAAI,GAAG,WAAW,CAAC;IACzB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACrB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,IAAI,CAAC;QACZ,OAAO,CAAC,CAAC,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;YAC3D,IAAI,EAAE,CAAC;QACT,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAE3D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAEtC,yBAAyB,CAAC,4BAA4B,CAAC,CAAC;IACxD,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;IAC5C,yBAAyB,CAAC,EAAE,CAAC,CAAC;IAC9B,yBAAyB,CACvB,4BAA4B,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CACjF,CAAC;IACF,yBAAyB,CAAC,EAAE,CAAC,CAAC;IAE9B,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnC,SAAS,IAAI;YACX,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM;qBACH,IAAI,EAAE;qBACN,IAAI,CAAC,GAAG,EAAE;oBACT,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;oBACX,sCAAsC;oBACtC,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;oBAC1C,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YACP,CAAC;QACH,CAAC;QAED,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE;YACpC,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;YACvC,KAAK,IAAI,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE;YACrC,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;YACxC,KAAK,IAAI,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/config/config.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { ZudokuConfig } from "./validators/validate.js";
|
|
2
|
+
import type { LoadedConfig } from "../vite/config.js";
|
|
2
3
|
export type URLString = `https://${string}` | `http://${string}`;
|
|
3
4
|
export { type ZudokuConfig };
|
|
4
|
-
export interface ZudokuPluginOptions extends
|
|
5
|
+
export interface ZudokuPluginOptions extends LoadedConfig {
|
|
5
6
|
rootDir: string;
|
|
6
7
|
moduleDir: string;
|
|
7
8
|
mode: "internal" | "module" | "standalone";
|
|
@@ -183,3 +183,4 @@ export type InputSidebarItemCategory = z.infer<typeof BaseInputSidebarItemCatego
|
|
|
183
183
|
export declare const InputSidebarItemCategorySchema: z.ZodType<InputSidebarItemCategory>;
|
|
184
184
|
export declare const InputSidebarSchema: z.ZodArray<z.ZodType<InputSidebarItem, z.ZodTypeDef, InputSidebarItem>, "many">;
|
|
185
185
|
export type InputSidebar = z.infer<typeof InputSidebarSchema>;
|
|
186
|
+
export type ConfigSidebar = Record<string, InputSidebar>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Options } from "@mdx-js/rollup";
|
|
2
|
-
import type { ReactNode } from "react";
|
|
2
|
+
import type { ComponentType, ReactNode } from "react";
|
|
3
3
|
import type { DevPortalPlugin } from "src/lib/core/plugins.js";
|
|
4
|
-
import z from "zod";
|
|
4
|
+
import z, { type ZodEnumDef, ZodOptional, ZodString, ZodType, ZodUnion } from "zod";
|
|
5
|
+
import type { ExposedComponentProps } from "../../lib/components/SlotletProvider.js";
|
|
5
6
|
import { DevPortalContext } from "../../lib/core/DevPortalContext.js";
|
|
6
7
|
import type { ApiKey } from "../../lib/plugins/api-keys/index.js";
|
|
7
8
|
declare const ApiSchema: z.ZodUnion<[z.ZodObject<z.objectUtil.extendShape<{
|
|
@@ -119,6 +120,10 @@ declare const DocsConfigSchema: z.ZodObject<{
|
|
|
119
120
|
disablePager?: boolean | undefined;
|
|
120
121
|
} | undefined;
|
|
121
122
|
}>;
|
|
123
|
+
type BannerColorType = ZodOptional<ZodUnion<[
|
|
124
|
+
ZodType<"note" | "tip" | "info" | "caution" | "danger" | (string & {}), ZodEnumDef>,
|
|
125
|
+
ZodString
|
|
126
|
+
]>>;
|
|
122
127
|
declare const ConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
123
128
|
basePath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
124
129
|
page: z.ZodOptional<z.ZodObject<{
|
|
@@ -154,21 +159,21 @@ declare const ConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
154
159
|
}>>;
|
|
155
160
|
banner: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
156
161
|
message: z.ZodType<NonNullable<ReactNode>, z.ZodTypeDef, NonNullable<ReactNode>>;
|
|
157
|
-
color:
|
|
162
|
+
color: BannerColorType;
|
|
158
163
|
dismissible: z.ZodOptional<z.ZodBoolean>;
|
|
159
164
|
}, "strip", z.ZodTypeAny, {
|
|
160
165
|
message: NonNullable<ReactNode>;
|
|
161
|
-
color?:
|
|
166
|
+
color?: string | (string & {}) | undefined;
|
|
162
167
|
dismissible?: boolean | undefined;
|
|
163
168
|
}, {
|
|
164
169
|
message: NonNullable<ReactNode>;
|
|
165
|
-
color?:
|
|
170
|
+
color?: string | (string & {}) | undefined;
|
|
166
171
|
dismissible?: boolean | undefined;
|
|
167
172
|
}>>>;
|
|
168
173
|
}, "strip", z.ZodTypeAny, {
|
|
169
174
|
banner?: {
|
|
170
175
|
message: NonNullable<ReactNode>;
|
|
171
|
-
color?:
|
|
176
|
+
color?: string | (string & {}) | undefined;
|
|
172
177
|
dismissible?: boolean | undefined;
|
|
173
178
|
} | undefined;
|
|
174
179
|
pageTitle?: string | undefined;
|
|
@@ -184,7 +189,7 @@ declare const ConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
184
189
|
}, {
|
|
185
190
|
banner?: {
|
|
186
191
|
message: NonNullable<ReactNode>;
|
|
187
|
-
color?:
|
|
192
|
+
color?: string | (string & {}) | undefined;
|
|
188
193
|
dismissible?: boolean | undefined;
|
|
189
194
|
} | undefined;
|
|
190
195
|
pageTitle?: string | undefined;
|
|
@@ -212,7 +217,7 @@ declare const ConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
212
217
|
default?: string | undefined;
|
|
213
218
|
}>, "many">>;
|
|
214
219
|
sidebar: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodType<import("./InputSidebarSchema.js").InputSidebarItem, z.ZodTypeDef, import("./InputSidebarSchema.js").InputSidebarItem>, "many">>>;
|
|
215
|
-
|
|
220
|
+
UNSAFE_slotlets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<ReactNode | ComponentType<ExposedComponentProps>, z.ZodTypeDef, ReactNode | ComponentType<ExposedComponentProps>>>>;
|
|
216
221
|
theme: z.ZodOptional<z.ZodObject<{
|
|
217
222
|
light: z.ZodOptional<z.ZodObject<{
|
|
218
223
|
background: z.ZodOptional<z.ZodString>;
|
|
@@ -731,13 +736,19 @@ declare const ConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
731
736
|
}>, "many">>;
|
|
732
737
|
customPages: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
733
738
|
path: z.ZodString;
|
|
734
|
-
element: z.ZodType<NonNullable<ReactNode>, z.ZodTypeDef, NonNullable<ReactNode
|
|
739
|
+
element: z.ZodOptional<z.ZodType<NonNullable<ReactNode>, z.ZodTypeDef, NonNullable<ReactNode>>>;
|
|
740
|
+
render: z.ZodOptional<z.ZodType<ComponentType<ExposedComponentProps>, z.ZodTypeDef, ComponentType<ExposedComponentProps>>>;
|
|
741
|
+
prose: z.ZodOptional<z.ZodBoolean>;
|
|
735
742
|
}, "strip", z.ZodTypeAny, {
|
|
736
743
|
path: string;
|
|
737
|
-
element
|
|
744
|
+
element?: NonNullable<ReactNode> | undefined;
|
|
745
|
+
render?: ComponentType<ExposedComponentProps> | undefined;
|
|
746
|
+
prose?: boolean | undefined;
|
|
738
747
|
}, {
|
|
739
748
|
path: string;
|
|
740
|
-
element
|
|
749
|
+
element?: NonNullable<ReactNode> | undefined;
|
|
750
|
+
render?: ComponentType<ExposedComponentProps> | undefined;
|
|
751
|
+
prose?: boolean | undefined;
|
|
741
752
|
}>, "many">>;
|
|
742
753
|
plugins: z.ZodOptional<z.ZodArray<z.ZodType<DevPortalPlugin, z.ZodTypeDef, DevPortalPlugin>, "many">>;
|
|
743
754
|
sitemap: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
@@ -859,7 +870,7 @@ declare const ConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
859
870
|
page?: {
|
|
860
871
|
banner?: {
|
|
861
872
|
message: NonNullable<ReactNode>;
|
|
862
|
-
color?:
|
|
873
|
+
color?: string | (string & {}) | undefined;
|
|
863
874
|
dismissible?: boolean | undefined;
|
|
864
875
|
} | undefined;
|
|
865
876
|
pageTitle?: string | undefined;
|
|
@@ -894,9 +905,9 @@ declare const ConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
894
905
|
redirectToAfterSignOut?: string | undefined;
|
|
895
906
|
audience?: string | undefined;
|
|
896
907
|
} | undefined;
|
|
897
|
-
slotlets?: Record<string, ReactNode> | undefined;
|
|
898
908
|
basePath?: string | undefined;
|
|
899
909
|
sidebar?: Record<string, import("./InputSidebarSchema.js").InputSidebarItem[]> | undefined;
|
|
910
|
+
UNSAFE_slotlets?: Record<string, ReactNode | ComponentType<ExposedComponentProps>> | undefined;
|
|
900
911
|
mdx?: {
|
|
901
912
|
components?: Readonly<import("mdx/types.js").MDXComponents> | import("node_modules/@mdx-js/react/lib/index.js").MergeComponents | null | undefined;
|
|
902
913
|
} | undefined;
|
|
@@ -961,7 +972,9 @@ declare const ConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
961
972
|
}[] | undefined;
|
|
962
973
|
customPages?: {
|
|
963
974
|
path: string;
|
|
964
|
-
element
|
|
975
|
+
element?: NonNullable<ReactNode> | undefined;
|
|
976
|
+
render?: ComponentType<ExposedComponentProps> | undefined;
|
|
977
|
+
prose?: boolean | undefined;
|
|
965
978
|
}[] | undefined;
|
|
966
979
|
sitemap?: {
|
|
967
980
|
siteUrl: string;
|
|
@@ -1046,7 +1059,7 @@ declare const ConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1046
1059
|
page?: {
|
|
1047
1060
|
banner?: {
|
|
1048
1061
|
message: NonNullable<ReactNode>;
|
|
1049
|
-
color?:
|
|
1062
|
+
color?: string | (string & {}) | undefined;
|
|
1050
1063
|
dismissible?: boolean | undefined;
|
|
1051
1064
|
} | undefined;
|
|
1052
1065
|
pageTitle?: string | undefined;
|
|
@@ -1081,9 +1094,9 @@ declare const ConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1081
1094
|
redirectToAfterSignOut?: string | undefined;
|
|
1082
1095
|
audience?: string | undefined;
|
|
1083
1096
|
} | undefined;
|
|
1084
|
-
slotlets?: Record<string, ReactNode> | undefined;
|
|
1085
1097
|
basePath?: string | undefined;
|
|
1086
1098
|
sidebar?: Record<string, import("./InputSidebarSchema.js").InputSidebarItem[]> | undefined;
|
|
1099
|
+
UNSAFE_slotlets?: Record<string, ReactNode | ComponentType<ExposedComponentProps>> | undefined;
|
|
1087
1100
|
mdx?: {
|
|
1088
1101
|
components?: Readonly<import("mdx/types.js").MDXComponents> | import("node_modules/@mdx-js/react/lib/index.js").MergeComponents | null | undefined;
|
|
1089
1102
|
} | undefined;
|
|
@@ -1148,7 +1161,9 @@ declare const ConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1148
1161
|
}[] | undefined;
|
|
1149
1162
|
customPages?: {
|
|
1150
1163
|
path: string;
|
|
1151
|
-
element
|
|
1164
|
+
element?: NonNullable<ReactNode> | undefined;
|
|
1165
|
+
render?: ComponentType<ExposedComponentProps> | undefined;
|
|
1166
|
+
prose?: boolean | undefined;
|
|
1152
1167
|
}[] | undefined;
|
|
1153
1168
|
sitemap?: {
|
|
1154
1169
|
siteUrl: string;
|
|
@@ -1233,7 +1248,7 @@ declare const ConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1233
1248
|
page?: {
|
|
1234
1249
|
banner?: {
|
|
1235
1250
|
message: NonNullable<ReactNode>;
|
|
1236
|
-
color?:
|
|
1251
|
+
color?: string | (string & {}) | undefined;
|
|
1237
1252
|
dismissible?: boolean | undefined;
|
|
1238
1253
|
} | undefined;
|
|
1239
1254
|
pageTitle?: string | undefined;
|
|
@@ -1268,9 +1283,9 @@ declare const ConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1268
1283
|
redirectToAfterSignOut?: string | undefined;
|
|
1269
1284
|
audience?: string | undefined;
|
|
1270
1285
|
} | undefined;
|
|
1271
|
-
slotlets?: Record<string, ReactNode> | undefined;
|
|
1272
1286
|
basePath?: string | undefined;
|
|
1273
1287
|
sidebar?: Record<string, import("./InputSidebarSchema.js").InputSidebarItem[]> | undefined;
|
|
1288
|
+
UNSAFE_slotlets?: Record<string, ReactNode | ComponentType<ExposedComponentProps>> | undefined;
|
|
1274
1289
|
mdx?: {
|
|
1275
1290
|
components?: Readonly<import("mdx/types.js").MDXComponents> | import("node_modules/@mdx-js/react/lib/index.js").MergeComponents | null | undefined;
|
|
1276
1291
|
} | undefined;
|
|
@@ -1335,7 +1350,9 @@ declare const ConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1335
1350
|
}[] | undefined;
|
|
1336
1351
|
customPages?: {
|
|
1337
1352
|
path: string;
|
|
1338
|
-
element
|
|
1353
|
+
element?: NonNullable<ReactNode> | undefined;
|
|
1354
|
+
render?: ComponentType<ExposedComponentProps> | undefined;
|
|
1355
|
+
prose?: boolean | undefined;
|
|
1339
1356
|
}[] | undefined;
|
|
1340
1357
|
sitemap?: {
|
|
1341
1358
|
siteUrl: string;
|
|
@@ -1420,7 +1437,7 @@ declare const ConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1420
1437
|
page?: {
|
|
1421
1438
|
banner?: {
|
|
1422
1439
|
message: NonNullable<ReactNode>;
|
|
1423
|
-
color?:
|
|
1440
|
+
color?: string | (string & {}) | undefined;
|
|
1424
1441
|
dismissible?: boolean | undefined;
|
|
1425
1442
|
} | undefined;
|
|
1426
1443
|
pageTitle?: string | undefined;
|
|
@@ -1455,9 +1472,9 @@ declare const ConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1455
1472
|
redirectToAfterSignOut?: string | undefined;
|
|
1456
1473
|
audience?: string | undefined;
|
|
1457
1474
|
} | undefined;
|
|
1458
|
-
slotlets?: Record<string, ReactNode> | undefined;
|
|
1459
1475
|
basePath?: string | undefined;
|
|
1460
1476
|
sidebar?: Record<string, import("./InputSidebarSchema.js").InputSidebarItem[]> | undefined;
|
|
1477
|
+
UNSAFE_slotlets?: Record<string, ReactNode | ComponentType<ExposedComponentProps>> | undefined;
|
|
1461
1478
|
mdx?: {
|
|
1462
1479
|
components?: Readonly<import("mdx/types.js").MDXComponents> | import("node_modules/@mdx-js/react/lib/index.js").MergeComponents | null | undefined;
|
|
1463
1480
|
} | undefined;
|
|
@@ -1522,7 +1539,9 @@ declare const ConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1522
1539
|
}[] | undefined;
|
|
1523
1540
|
customPages?: {
|
|
1524
1541
|
path: string;
|
|
1525
|
-
element
|
|
1542
|
+
element?: NonNullable<ReactNode> | undefined;
|
|
1543
|
+
render?: ComponentType<ExposedComponentProps> | undefined;
|
|
1544
|
+
prose?: boolean | undefined;
|
|
1526
1545
|
}[] | undefined;
|
|
1527
1546
|
sitemap?: {
|
|
1528
1547
|
siteUrl: string;
|
|
@@ -132,6 +132,7 @@ const ConfigSchema = z
|
|
|
132
132
|
message: z.custom(),
|
|
133
133
|
color: z
|
|
134
134
|
.enum(["note", "tip", "info", "caution", "danger"])
|
|
135
|
+
.or(z.string())
|
|
135
136
|
.optional(),
|
|
136
137
|
dismissible: z.boolean().optional(),
|
|
137
138
|
})
|
|
@@ -144,7 +145,8 @@ const ConfigSchema = z
|
|
|
144
145
|
default: z.string().optional(),
|
|
145
146
|
})),
|
|
146
147
|
sidebar: z.record(InputSidebarSchema),
|
|
147
|
-
slotlets
|
|
148
|
+
// slotlets are a concept we are working on and not yet finalized
|
|
149
|
+
UNSAFE_slotlets: z.record(z.string(), z.custom()),
|
|
148
150
|
theme: z
|
|
149
151
|
.object({
|
|
150
152
|
light: ThemeSchema,
|
|
@@ -203,7 +205,9 @@ const ConfigSchema = z
|
|
|
203
205
|
redirects: z.array(z.object({ from: z.string(), to: z.string() })),
|
|
204
206
|
customPages: z.array(z.object({
|
|
205
207
|
path: z.string(),
|
|
206
|
-
element: z.custom(),
|
|
208
|
+
element: z.custom().optional(),
|
|
209
|
+
render: z.custom().optional(),
|
|
210
|
+
prose: z.boolean().optional(),
|
|
207
211
|
})),
|
|
208
212
|
plugins: z.array(z.custom()),
|
|
209
213
|
sitemap: SiteMapSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/config/validators/validate.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/config/validators/validate.ts"],"names":[],"mappings":"AAGA,OAAO,CAMN,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAKjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC;KACD,OAAO,EAAE,CAAC;AAEb,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;IACxB,CAAC;SACE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;SACrD,KAAK,CAAC,eAAe,CAAC;IACzB,CAAC;SACE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;SACtD,KAAK,CAAC,eAAe,CAAC;IACzB,CAAC;SACE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;SACrD,KAAK,CAAC,eAAe,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC;IAC5B,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;KACrB,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACpB,OAAO,EAAE,CAAC,CAAC,MAAM,CACf,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,UAAU,CACnC;QACD,OAAO,EAAE,CAAC;aACP,MAAM,CAEL,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,UAAU,CAAC;aACpC,QAAQ,EAAE;QACb,SAAS,EAAE,CAAC;aACT,MAAM,CAEL,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,UAAU,CAAC;aACpC,QAAQ,EAAE;QACb,oBAAoB,EAAE,CAAC;aACpB,MAAM,CAKL,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,UAAU,CAAC;aACpC,QAAQ,EAAE;QACb,SAAS,EAAE,CAAC;aACT,MAAM,CAKL,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,UAAU,CAAC;aACpC,QAAQ,EAAE;KACd,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACtD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC;KACpB,MAAM,CAAC;IACN;;OAEG;IACH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB;;;OAGG;IACH,UAAU,EAAE,CAAC,CAAC,QAAQ,CACpB,CAAC,CAAC,IAAI,CAAC;QACL,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,OAAO;KACR,CAAC,CACH;IACD;;;OAGG;IACH,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B;;;OAGG;IACH,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnC;;;OAGG;IACH,OAAO,EAAE,CAAC;SACP,KAAK,CAAC;QACL,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACpB,CAAC;SACD,QAAQ,EAAE;CACd,CAAC;KACD,QAAQ,EAAE,CAAC;AAEd,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,cAAc,EAAE,CAAC;SACd,MAAM,CAAC;QACN,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE;QAChB,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;KAC1B,CAAC;SACD,OAAO,EAAE;SACT,QAAQ,EAAE;CACd,CAAC,CAAC;AAcH,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,CAAC;aACN,MAAM,CAAC;YACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAA0B;YAC3C,KAAK,EAAE,CAAC;iBACL,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;iBAClD,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACd,QAAQ,EAAqB;YAChC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SACpC,CAAC;aACD,QAAQ,EAAE;KACd,CAAC;SACD,OAAO,EAAE;IACZ,aAAa,EAAE,CAAC,CAAC,KAAK,CACpB,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC/B,CAAC,CACH;IACD,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC;IACrC,iEAAiE;IACjE,eAAe,EAAE,CAAC,CAAC,MAAM,CACvB,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,MAAM,EAAoD,CAC7D;IACD,KAAK,EAAE,CAAC;SACL,MAAM,CAAC;QACN,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,WAAW;KAClB,CAAC;SACD,OAAO,EAAE;IACZ,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;QAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;KACtB,CAAC;SACD,OAAO,EAAE;IACZ,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAqB;KAC1C,CAAC;SACD,OAAO,EAAE;IACZ,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC;QACtB,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;YACxB,WAAW,EAAE,CAAC,CAAC,MAAM,CACnB,CAAC,GAAG,EAAE,EAAE,CACN,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CACrE;YACD,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5C,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5C,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC9C,CAAC;QACF,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;YACxB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5C,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5C,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC9C,CAAC;KACH,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;QACzB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;QAC1B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;QAC7B,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE;KACpC,CAAC;IACF,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,OAAO,EAAE,aAAa;IACtB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAClE,WAAW,EAAE,CAAC,CAAC,KAAK,CAClB,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAA0B,CAAC,QAAQ,EAAE;QACtD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAwC,CAAC,QAAQ,EAAE;QACnE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAC9B,CAAC,CACH;IACD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAmB,CAAC;IAC7C,OAAO,EAAE,aAAa;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAGX;CACL,CAAC;KACD,OAAO,EAAE;KACT,WAAW,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;IAC3B,mDAAmD;IACnD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa;QAAE,OAAO;IAErD,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE9D,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CACxD,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAClC,CAAC;IAEF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,eAAe,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;+BAChD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC9C,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAOL,MAAM,UAAU,cAAc,CAAC,MAAe;IAC5C,MAAM,gBAAgB,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAExD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC9B,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export type { ZudokuConfig } from "./config/config.js";
|
|
2
|
-
export type {
|
|
2
|
+
export type { ConfigSidebar as Sidebar } from "./config/validators/InputSidebarSchema.js";
|
|
3
|
+
export type { ExposedComponentProps } from "./lib/components/SlotletProvider.js";
|
|
3
4
|
export type { MDXImport } from "./lib/plugins/markdown/index.js";
|
|
@@ -12,3 +12,19 @@ export interface UserProfile {
|
|
|
12
12
|
pictureUrl: string | undefined;
|
|
13
13
|
[key: string]: string | boolean | undefined;
|
|
14
14
|
}
|
|
15
|
+
interface SelectedServerState {
|
|
16
|
+
selectedServer?: string;
|
|
17
|
+
setSelectedServer: (newServer: string) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare const useSelectedServerStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<SelectedServerState>, "persist"> & {
|
|
20
|
+
persist: {
|
|
21
|
+
setOptions: (options: Partial<import("zustand/middleware").PersistOptions<SelectedServerState, SelectedServerState>>) => void;
|
|
22
|
+
clearStorage: () => void;
|
|
23
|
+
rehydrate: () => Promise<void> | void;
|
|
24
|
+
hasHydrated: () => boolean;
|
|
25
|
+
onHydrate: (fn: (state: SelectedServerState) => void) => () => void;
|
|
26
|
+
onFinishHydration: (fn: (state: SelectedServerState) => void) => () => void;
|
|
27
|
+
getOptions: () => Partial<import("zustand/middleware").PersistOptions<SelectedServerState, SelectedServerState>>;
|
|
28
|
+
};
|
|
29
|
+
}>;
|
|
30
|
+
export {};
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { create } from "zustand";
|
|
2
|
+
import { persist } from "zustand/middleware";
|
|
2
3
|
export const useAuthState = create(() => ({
|
|
3
4
|
isPending: false,
|
|
4
5
|
isAuthenticated: false,
|
|
5
6
|
}));
|
|
7
|
+
export const useSelectedServerStore = create()(persist((set) => ({
|
|
8
|
+
selectedServer: undefined,
|
|
9
|
+
setSelectedServer: (newServer) => set({ selectedServer: newServer }),
|
|
10
|
+
}), { name: "zudoku-selected-server" }));
|
|
6
11
|
//# sourceMappingURL=state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/lib/authentication/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/lib/authentication/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAY,GAAG,EAAE,CAAC,CAAC;IACnD,SAAS,EAAE,KAAK;IAChB,eAAe,EAAE,KAAK;CACvB,CAAC,CAAC,CAAC;AAsBJ,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,EAAuB,CACjE,OAAO,CACL,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACR,cAAc,EAAE,SAAS;IACzB,iBAAiB,EAAE,CAAC,SAAiB,EAAE,EAAE,CACvC,GAAG,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;CACrC,CAAC,EACF,EAAE,IAAI,EAAE,wBAAwB,EAAE,CACnC,CACF,CAAC"}
|
|
@@ -16,6 +16,12 @@ export const Banner = () => {
|
|
|
16
16
|
if (!page?.banner || !isBannerOpen) {
|
|
17
17
|
return _jsx("style", { children: `:root { --banner-height: 0px; }` });
|
|
18
18
|
}
|
|
19
|
-
|
|
19
|
+
const mappedColor = page.banner.color && page.banner.color in COLOR_MAP
|
|
20
|
+
? COLOR_MAP[page.banner.color]
|
|
21
|
+
: !page.banner.color
|
|
22
|
+
? "bg-primary"
|
|
23
|
+
: undefined;
|
|
24
|
+
const style = !mappedColor ? { backgroundColor: page.banner.color } : {};
|
|
25
|
+
return (_jsxs("div", { className: cn("relative text-primary-foreground text-sm font-medium px-4 py-2 flex gap-2 items-center", mappedColor), style: style, children: [_jsx("div", { className: "w-full", children: page.banner.message }), page.banner.dismissible && (_jsx("button", { type: "button", className: "md:absolute md:right-4 -m-1.5 p-1.5 hover:bg-accent-foreground/10 rounded-md", onClick: () => setIsBannerOpen(false), children: _jsx(CircleXIcon, { size: 16 }) }))] }));
|
|
20
26
|
};
|
|
21
27
|
//# sourceMappingURL=Banner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Banner.js","sourceRoot":"","sources":["../../../src/lib/components/Banner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,aAAa;IACnB,GAAG,EAAE,cAAc;IACnB,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,aAAa;
|
|
1
|
+
{"version":3,"file":"Banner.js","sourceRoot":"","sources":["../../../src/lib/components/Banner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,aAAa;IACnB,GAAG,EAAE,cAAc;IACnB,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,aAAa;CACb,CAAC;AAEX,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,EAAE;IACzB,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;IAC7B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEvD,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACnC,OAAO,0BAAQ,iCAAiC,GAAS,CAAC;IAC5D,CAAC;IAED,MAAM,WAAW,GACf,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS;QACjD,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAA+B,CAAC;QACxD,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;YAClB,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,SAAS,CAAC;IAElB,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzE,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,wFAAwF,EACxF,WAAW,CACZ,EACD,KAAK,EAAE,KAAK,aAEZ,cAAK,SAAS,EAAC,QAAQ,YAAE,IAAI,CAAC,MAAM,CAAC,OAAO,GAAO,EAClD,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAC1B,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,8EAA8E,EACxF,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,YAErC,KAAC,WAAW,IAAC,IAAI,EAAE,EAAE,GAAI,GAClB,CACV,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Link } from "react-router-dom";
|
|
3
2
|
import { CategoryHeading } from "./CategoryHeading.js";
|
|
4
3
|
import { Heading } from "./Heading.js";
|
|
5
4
|
import { ProseClasses } from "./Markdown.js";
|
|
6
5
|
export const ErrorPage = ({ title = "An error occurred", message, category, }) => {
|
|
7
|
-
return (_jsxs("div", { className: ProseClasses + " h-full pt-[--padding-content-top]", children: [category && _jsx(CategoryHeading, { children: category }), title && (_jsx(Heading, { level: 1, className: "flex gap-3.5 items-center", children: title })), _jsx("p", { children: message })
|
|
6
|
+
return (_jsxs("div", { className: ProseClasses + " h-full pt-[--padding-content-top]", children: [category && _jsx(CategoryHeading, { children: category }), title && (_jsx(Heading, { level: 1, className: "flex gap-3.5 items-center", children: title })), _jsx("p", { children: message })] }));
|
|
8
7
|
};
|
|
9
8
|
//# sourceMappingURL=ErrorPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorPage.js","sourceRoot":"","sources":["../../../src/lib/components/ErrorPage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ErrorPage.js","sourceRoot":"","sources":["../../../src/lib/components/ErrorPage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EACxB,KAAK,GAAG,mBAAmB,EAC3B,OAAO,EACP,QAAQ,GAKT,EAAE,EAAE;IACH,OAAO,CACL,eAAK,SAAS,EAAE,YAAY,GAAG,oCAAoC,aAChE,QAAQ,IAAI,KAAC,eAAe,cAAE,QAAQ,GAAmB,EACzD,KAAK,IAAI,CACR,KAAC,OAAO,IAAC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAC,2BAA2B,YACrD,KAAK,GACE,CACX,EACD,sBAAI,OAAO,GAAK,IACZ,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -30,6 +30,6 @@ export const Header = memo(function HeaderInner() {
|
|
|
30
30
|
.flatMap((p) => p.getProfileMenuItems(context))
|
|
31
31
|
.map((i) => _jsx(RecursiveMenu, { item: i }, i.label));
|
|
32
32
|
const ThemeIcon = isDark ? MoonStarIcon : SunIcon;
|
|
33
|
-
return (_jsxs("header", { className: "sticky lg:top-0 z-10 bg-background/80 backdrop-blur w-full", children: [_jsx(Banner, {}), _jsxs("div", { className: "max-w-screen-2xl mx-auto", children: [_jsxs("div", { className: "grid grid-cols-2 lg:grid-cols-[calc(var(--side-nav-width))_1fr] lg:gap-12 items-center border-b px-10 lg:px-12 h-[--top-header-height]", children: [_jsx("div", { className: "flex", children: _jsx(Link, { to: "/", children: _jsxs("div", { className: "flex items-center gap-3.5", children: [page?.logo && (_jsxs(_Fragment, { children: [_jsx("img", { src: page.logo.src.light, alt: page.logo.alt ?? page.pageTitle, style: { width: page.logo.width }, className: cn("h-10", isDark && "hidden"), loading: "lazy" }), _jsx("img", { src: page.logo.src.dark, alt: page.logo.alt ?? page.pageTitle, style: { width: page.logo.width }, className: cn("h-10", !isDark && "hidden"), loading: "lazy" })] })), _jsx("span", { className: "font-bold text-2xl text-foreground/85 tracking-wide", children: page?.pageTitle })] }) }) }), _jsxs("div", { className: "grid grid-cols-
|
|
33
|
+
return (_jsxs("header", { className: "sticky lg:top-0 z-10 bg-background/80 backdrop-blur w-full", children: [_jsx(Banner, {}), _jsxs("div", { className: "max-w-screen-2xl mx-auto", children: [_jsxs("div", { className: "grid grid-cols-2 lg:grid-cols-[calc(var(--side-nav-width))_1fr] lg:gap-12 items-center border-b px-10 lg:px-12 h-[--top-header-height]", children: [_jsx("div", { className: "flex", children: _jsx(Link, { to: "/", children: _jsxs("div", { className: "flex items-center gap-3.5", children: [page?.logo && (_jsxs(_Fragment, { children: [_jsx("img", { src: page.logo.src.light, alt: page.logo.alt ?? page.pageTitle, style: { width: page.logo.width }, className: cn("h-10", isDark && "hidden"), loading: "lazy" }), _jsx("img", { src: page.logo.src.dark, alt: page.logo.alt ?? page.pageTitle, style: { width: page.logo.width }, className: cn("h-10", !isDark && "hidden"), loading: "lazy" })] })), _jsx("span", { className: "font-bold text-2xl text-foreground/85 tracking-wide", children: page?.pageTitle })] }) }) }), _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-[--sidecar-grid-cols] items-center gap-8", children: [_jsx("div", { className: "w-full justify-center hidden lg:flex", children: _jsx(Search, {}) }), _jsx(MobileTopNavigation, {}), _jsxs("div", { className: "hidden lg:flex items-center justify-self-end text-sm gap-2", children: [_jsx(Slotlet, { name: "head-navigation-start" }), isAuthEnabled && !isAuthenticated ? (_jsx(Button, { variant: "ghost", onClick: () => auth.login(), children: "Login" })) : (accountItems.length > 0 && (_jsxs(DropdownMenu, { modal: false, children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", children: profile?.email ? `${profile.email}` : "My Account" }) }), _jsxs(DropdownMenuContent, { className: "w-56", children: [_jsx(DropdownMenuLabel, { children: "My Account" }), _jsx(DropdownMenuSeparator, {}), accountItems] })] }))), _jsx("button", { type: "button", "aria-label": isDark ? "Switch to light mode" : "Switch to dark mode", className: "cursor-pointer hover:bg-secondary p-2.5 -m-2.5 rounded-full", onClick: toggleTheme, children: _jsx(ThemeIcon, { size: 18 }) }), _jsx(Slotlet, { name: "head-navigation-end" })] })] })] }), _jsx(Slotlet, { name: "top-navigation-before" }), _jsx(TopNavigation, {}), _jsx(Slotlet, { name: "top-navigation-after" })] })] }));
|
|
34
34
|
});
|
|
35
35
|
//# sourceMappingURL=Header.js.map
|