zudoku 0.47.1 → 0.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/ZuploBuildConfig.d.ts +11 -121
- package/dist/app/ZuploBuildConfig.js +8 -8
- package/dist/app/ZuploBuildConfig.js.map +1 -1
- package/dist/app/demo.js +4 -3
- package/dist/app/demo.js.map +1 -1
- package/dist/app/entry.client.d.ts +0 -2
- package/dist/app/entry.client.js +0 -2
- package/dist/app/entry.client.js.map +1 -1
- package/dist/app/entry.server.d.ts +0 -2
- package/dist/app/entry.server.js +0 -2
- package/dist/app/entry.server.js.map +1 -1
- package/dist/app/env.d.ts +7 -7
- package/dist/app/env.js +8 -0
- package/dist/app/env.js.map +1 -1
- package/dist/app/main.d.ts +1 -0
- package/dist/app/main.js +6 -5
- package/dist/app/main.js.map +1 -1
- package/dist/app/standalone.js +4 -3
- package/dist/app/standalone.js.map +1 -1
- package/dist/config/loader.js +1 -2
- package/dist/config/loader.js.map +1 -1
- package/dist/config/validators/BuildSchema.d.ts +20 -44
- package/dist/config/validators/BuildSchema.js +3 -14
- package/dist/config/validators/BuildSchema.js.map +1 -1
- package/dist/config/validators/InputNavigationSchema.d.ts +7217 -0
- package/dist/config/validators/InputNavigationSchema.js +74 -0
- package/dist/config/validators/InputNavigationSchema.js.map +1 -0
- package/dist/config/validators/InputNavigationSchema.test-d.d.ts +1 -0
- package/dist/config/validators/InputNavigationSchema.test-d.js +146 -0
- package/dist/config/validators/InputNavigationSchema.test-d.js.map +1 -0
- package/dist/config/validators/NavigationSchema.d.ts +44 -0
- package/dist/config/validators/NavigationSchema.js +95 -0
- package/dist/config/validators/NavigationSchema.js.map +1 -0
- package/dist/config/validators/icon-types.d.ts +2 -1
- package/dist/config/validators/icon-types.js +1775 -1
- package/dist/config/validators/icon-types.js.map +1 -1
- package/dist/config/validators/validate.d.ts +451 -5666
- package/dist/config/validators/validate.js +59 -66
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/config/validators/validate.test.js +0 -2
- package/dist/config/validators/validate.test.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/auth/issuer.js +1 -1
- package/dist/lib/auth/issuer.js.map +1 -1
- package/dist/lib/auth/issuer.test.js +1 -1
- package/dist/lib/auth/issuer.test.js.map +1 -1
- package/dist/lib/authentication/components/CallbackHandler.js +1 -1
- package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
- package/dist/lib/components/BuildCheck.js +1 -1
- package/dist/lib/components/BuildCheck.js.map +1 -1
- package/dist/lib/components/Framed.d.ts +7 -0
- package/dist/lib/components/Framed.js +26 -0
- package/dist/lib/components/Framed.js.map +1 -0
- package/dist/lib/components/Header.js +10 -9
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/Heading.d.ts +6 -2
- package/dist/lib/components/Heading.js +2 -2
- package/dist/lib/components/Heading.js.map +1 -1
- package/dist/lib/components/Main.js +4 -4
- package/dist/lib/components/Main.js.map +1 -1
- package/dist/lib/components/MobileTopNavigation.js +6 -5
- package/dist/lib/components/MobileTopNavigation.js.map +1 -1
- package/dist/lib/components/PageProgress.d.ts +1 -0
- package/dist/lib/components/PageProgress.js +20 -0
- package/dist/lib/components/PageProgress.js.map +1 -0
- package/dist/lib/components/TopNavigation.d.ts +2 -3
- package/dist/lib/components/TopNavigation.js +45 -44
- package/dist/lib/components/TopNavigation.js.map +1 -1
- package/dist/lib/components/context/ZudokuContext.d.ts +3 -7
- package/dist/lib/components/context/ZudokuContext.js +44 -26
- package/dist/lib/components/context/ZudokuContext.js.map +1 -1
- package/dist/lib/components/navigation/Navigation.d.ts +5 -0
- package/dist/lib/components/navigation/Navigation.js +12 -0
- package/dist/lib/components/navigation/Navigation.js.map +1 -0
- package/dist/lib/components/navigation/{SidebarBadge.d.ts → NavigationBadge.d.ts} +1 -1
- package/dist/lib/components/navigation/{SidebarBadge.js → NavigationBadge.js} +2 -2
- package/dist/lib/components/navigation/NavigationBadge.js.map +1 -0
- package/dist/lib/components/navigation/NavigationCategory.d.ts +5 -0
- package/dist/lib/components/navigation/{SidebarCategory.js → NavigationCategory.js} +14 -12
- package/dist/lib/components/navigation/NavigationCategory.js.map +1 -0
- package/dist/lib/components/navigation/NavigationItem.d.ts +6 -0
- package/dist/lib/components/navigation/NavigationItem.js +47 -0
- package/dist/lib/components/navigation/NavigationItem.js.map +1 -0
- package/dist/lib/components/navigation/{SidebarWrapper.d.ts → NavigationWrapper.d.ts} +1 -1
- package/dist/lib/components/navigation/{SidebarWrapper.js → NavigationWrapper.js} +3 -3
- package/dist/lib/components/navigation/NavigationWrapper.js.map +1 -0
- package/dist/lib/components/navigation/utils.d.ts +7 -9
- package/dist/lib/components/navigation/utils.js +17 -17
- package/dist/lib/components/navigation/utils.js.map +1 -1
- package/dist/lib/core/ZudokuContext.d.ts +6 -8
- package/dist/lib/core/ZudokuContext.js +5 -7
- package/dist/lib/core/ZudokuContext.js.map +1 -1
- package/dist/lib/core/plugins.d.ts +2 -2
- package/dist/lib/hooks/useEvent.test.js +5 -3
- package/dist/lib/hooks/useEvent.test.js.map +1 -1
- package/dist/lib/plugins/api-catalog/Catalog.d.ts +1 -1
- package/dist/lib/plugins/api-catalog/index.d.ts +6 -6
- package/dist/lib/plugins/api-catalog/index.js +10 -10
- package/dist/lib/plugins/api-catalog/index.js.map +1 -1
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js +6 -6
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
- package/dist/lib/plugins/custom-pages/index.d.ts +3 -2
- package/dist/lib/plugins/custom-pages/index.js +15 -8
- package/dist/lib/plugins/custom-pages/index.js.map +1 -1
- package/dist/lib/plugins/markdown/MdxPage.js +6 -3
- package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
- package/dist/lib/plugins/markdown/index.d.ts +2 -1
- package/dist/lib/plugins/markdown/index.js +9 -26
- package/dist/lib/plugins/markdown/index.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationList.js +1 -1
- package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.js +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/SchemaList.js +1 -1
- package/dist/lib/plugins/openapi/SchemaList.js.map +1 -1
- package/dist/lib/plugins/openapi/graphql/gql.d.ts +1 -1
- package/dist/lib/plugins/openapi/graphql/gql.js +1 -1
- package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
- package/dist/lib/plugins/openapi/graphql/graphql.d.ts +3 -3
- package/dist/lib/plugins/openapi/graphql/graphql.js +2 -2
- package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
- package/dist/lib/plugins/openapi/index.d.ts +3 -3
- package/dist/lib/plugins/openapi/index.js +9 -9
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/plugins/openapi/interfaces.d.ts +3 -3
- package/dist/lib/plugins/openapi/schema/SchemaView.js +1 -1
- package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
- package/dist/lib/plugins/openapi/util/createNavigationCategory.d.ts +9 -0
- package/dist/lib/plugins/openapi/util/{createSidebarCategory.js → createNavigationCategory.js} +5 -4
- package/dist/lib/plugins/openapi/util/createNavigationCategory.js.map +1 -0
- package/dist/lib/plugins/openapi/util/getRoutes.js +2 -2
- package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -1
- package/dist/lib/plugins/openapi/util/methodColorMap.d.ts +1 -1
- package/dist/lib/ui/CodeBlock.js +1 -1
- package/dist/lib/ui/CodeBlock.js.map +1 -1
- package/dist/lib/util/MdxComponents.d.ts +6 -0
- package/dist/lib/util/MdxComponents.js +4 -2
- package/dist/lib/util/MdxComponents.js.map +1 -1
- package/dist/lib/util/useScrollToAnchor.js +3 -3
- package/dist/lib/util/useScrollToAnchor.js.map +1 -1
- package/dist/vite/api/SchemaManager.d.ts +4 -4
- package/dist/vite/api/SchemaManager.js +19 -19
- package/dist/vite/api/SchemaManager.js.map +1 -1
- package/dist/vite/api/SchemaManager.test.js +4 -4
- package/dist/vite/api/SchemaManager.test.js.map +1 -1
- package/dist/vite/config.js +1 -0
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/css/plugin.js +11 -0
- package/dist/vite/css/plugin.js.map +1 -1
- package/dist/vite/plugin-api.js +8 -8
- package/dist/vite/plugin-api.js.map +1 -1
- package/dist/vite/plugin-config-reload.js +2 -0
- package/dist/vite/plugin-config-reload.js.map +1 -1
- package/dist/vite/plugin-custom-pages.js +2 -2
- package/dist/vite/plugin-custom-pages.js.map +1 -1
- package/dist/vite/plugin-docs.js +61 -59
- package/dist/vite/plugin-docs.js.map +1 -1
- package/dist/vite/plugin-mdx.js +4 -2
- package/dist/vite/plugin-mdx.js.map +1 -1
- package/dist/vite/{plugin-sidebar.d.ts → plugin-navigation.d.ts} +1 -1
- package/dist/vite/{plugin-sidebar.js → plugin-navigation.js} +20 -19
- package/dist/vite/plugin-navigation.js.map +1 -0
- package/dist/vite/plugin-theme.d.ts +8 -0
- package/dist/vite/plugin-theme.js +223 -0
- package/dist/vite/plugin-theme.js.map +1 -0
- package/dist/vite/plugin-theme.test.d.ts +1 -0
- package/dist/vite/plugin-theme.test.js +270 -0
- package/dist/vite/plugin-theme.test.js.map +1 -0
- package/dist/vite/plugin.js +4 -6
- package/dist/vite/plugin.js.map +1 -1
- package/dist/vite/shadcn-registry.d.ts +45 -0
- package/dist/vite/shadcn-registry.js +29 -0
- package/dist/vite/shadcn-registry.js.map +1 -0
- package/lib/Drawer-BzkOKwgC.js.map +1 -1
- package/lib/{Markdown-r4buN85T.js → Markdown-DCAIYXF5.js} +885 -840
- package/lib/Markdown-DCAIYXF5.js.map +1 -0
- package/lib/{MdxPage-DYKsTerz.js → MdxPage-Cf9YXWoC.js} +30 -30
- package/lib/MdxPage-Cf9YXWoC.js.map +1 -0
- package/lib/OasProvider-JMVTfG6_.js +35 -0
- package/lib/OasProvider-JMVTfG6_.js.map +1 -0
- package/lib/{OperationList-BCVHtZNK.js → OperationList-m4tFCI4S.js} +8 -8
- package/lib/{OperationList-BCVHtZNK.js.map → OperationList-m4tFCI4S.js.map} +1 -1
- package/lib/{RouteGuard-B7GVW4oL.js → RouteGuard-gV7nvzi7.js} +2 -2
- package/lib/{RouteGuard-B7GVW4oL.js.map → RouteGuard-gV7nvzi7.js.map} +1 -1
- package/lib/{SchemaList-1oJKvBxh.js → SchemaList-_wRy4aQ0.js} +20 -20
- package/lib/SchemaList-_wRy4aQ0.js.map +1 -0
- package/lib/{SchemaView-CTqaB-79.js → SchemaView-CRl_cQYH.js} +13 -13
- package/lib/{SchemaView-CTqaB-79.js.map → SchemaView-CRl_cQYH.js.map} +1 -1
- package/lib/{SignUp-CRIKdWt9.js → SignUp-B6w5AwHM.js} +2 -2
- package/lib/{SignUp-CRIKdWt9.js.map → SignUp-B6w5AwHM.js.map} +1 -1
- package/lib/{Slot-B5qSAnwR.js → Slot-BkYrj_uC.js} +4 -4
- package/lib/{Slot-B5qSAnwR.js.map → Slot-BkYrj_uC.js.map} +1 -1
- package/lib/{SyntaxHighlight-CqKHkyEy.js → SyntaxHighlight-CH9OUJre.js} +2 -2
- package/lib/{SyntaxHighlight-CqKHkyEy.js.map → SyntaxHighlight-CH9OUJre.js.map} +1 -1
- package/lib/{Toc-lxYQEOzX.js → Toc-DRxqEsFc.js} +2 -2
- package/lib/{Toc-lxYQEOzX.js.map → Toc-DRxqEsFc.js.map} +1 -1
- package/lib/{circular-ZGGPtwMq.js → circular-wJaV4vh_.js} +2 -2
- package/lib/{circular-ZGGPtwMq.js.map → circular-wJaV4vh_.js.map} +1 -1
- package/lib/clerk-yAKDC3Qz.js.map +1 -1
- package/lib/{createServer-DUBpXfvA.js → createServer-DN5AJLcN.js} +3 -3
- package/lib/{createServer-DUBpXfvA.js.map → createServer-DN5AJLcN.js.map} +1 -1
- package/lib/{errors-D27ZTQgx.js → errors-D_5vKvUq.js} +10 -10
- package/lib/{errors-D27ZTQgx.js.map → errors-D_5vKvUq.js.map} +1 -1
- package/lib/hook-CHXroBFt.js +1503 -0
- package/lib/hook-CHXroBFt.js.map +1 -0
- package/lib/index-CrcNWbel.js.map +1 -1
- package/lib/{index-Cucjfk3D.js → index-DJVaRmzI.js} +63 -62
- package/lib/index-DJVaRmzI.js.map +1 -0
- package/lib/index-QzXzw_ra.js.map +1 -1
- package/lib/{mutation-C1XCQTQL.js → mutation-BpcyTgWI.js} +2 -2
- package/lib/{mutation-C1XCQTQL.js.map → mutation-BpcyTgWI.js.map} +1 -1
- package/lib/ui/CodeBlock.js +7 -7
- package/lib/ui/CodeBlock.js.map +1 -1
- package/lib/ui/SyntaxHighlight.js +2 -2
- package/lib/{useMutation-BKvPttRn.js → useMutation-N4ockVKi.js} +3 -3
- package/lib/{useMutation-BKvPttRn.js.map → useMutation-N4ockVKi.js.map} +1 -1
- package/lib/zudoku.auth-auth0.js +1 -1
- package/lib/zudoku.auth-azureb2c.js +2 -2
- package/lib/zudoku.auth-clerk.js +2 -2
- package/lib/zudoku.auth-openid.js +2 -2
- package/lib/zudoku.components.js +2756 -3423
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.hooks.js +2 -2
- package/lib/zudoku.plugin-api-catalog.js +44 -44
- package/lib/zudoku.plugin-api-catalog.js.map +1 -1
- package/lib/zudoku.plugin-api-keys.js +84 -73
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-custom-pages.js +22 -16
- package/lib/zudoku.plugin-custom-pages.js.map +1 -1
- package/lib/zudoku.plugin-markdown.js +20 -69
- package/lib/zudoku.plugin-markdown.js.map +1 -1
- package/lib/zudoku.plugin-openapi.js +5 -5
- package/lib/zudoku.plugin-search-pagefind.js +2 -2
- package/lib/zudoku.plugins.js.map +1 -1
- package/package.json +16 -13
- package/src/app/ZuploBuildConfig.ts +8 -8
- package/src/app/defaultTheme.css +68 -49
- package/src/app/demo.tsx +4 -3
- package/src/app/entry.client.tsx +0 -2
- package/src/app/entry.server.tsx +0 -2
- package/src/app/env.ts +8 -0
- package/src/app/main.css +6 -52
- package/src/app/main.tsx +7 -5
- package/src/app/standalone.tsx +4 -3
- package/src/lib/auth/issuer.test.ts +1 -1
- package/src/lib/auth/issuer.ts +1 -1
- package/src/lib/authentication/components/CallbackHandler.tsx +1 -1
- package/src/lib/components/BuildCheck.tsx +1 -1
- package/src/lib/components/Framed.tsx +51 -0
- package/src/lib/components/Header.tsx +5 -3
- package/src/lib/components/Heading.tsx +7 -3
- package/src/lib/components/Main.tsx +8 -8
- package/src/lib/components/MobileTopNavigation.tsx +16 -11
- package/src/lib/components/PageProgress.tsx +28 -0
- package/src/lib/components/TopNavigation.tsx +57 -66
- package/src/lib/components/context/ZudokuContext.ts +50 -32
- package/src/lib/components/navigation/{Sidebar.tsx → Navigation.tsx} +18 -16
- package/src/lib/components/navigation/{SidebarBadge.tsx → NavigationBadge.tsx} +1 -1
- package/src/lib/components/navigation/{SidebarCategory.tsx → NavigationCategory.tsx} +16 -14
- package/src/lib/components/navigation/{SidebarItem.tsx → NavigationItem.tsx} +23 -17
- package/src/lib/components/navigation/{SidebarWrapper.tsx → NavigationWrapper.tsx} +2 -2
- package/src/lib/components/navigation/utils.ts +27 -28
- package/src/lib/core/ZudokuContext.ts +9 -15
- package/src/lib/core/plugins.ts +2 -2
- package/src/lib/hooks/useEvent.test.tsx +7 -5
- package/src/lib/plugins/api-catalog/Catalog.tsx +1 -1
- package/src/lib/plugins/api-catalog/index.tsx +19 -19
- package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +14 -10
- package/src/lib/plugins/custom-pages/index.tsx +20 -11
- package/src/lib/plugins/markdown/MdxPage.tsx +6 -3
- package/src/lib/plugins/markdown/index.tsx +19 -40
- package/src/lib/plugins/openapi/OperationList.tsx +1 -1
- package/src/lib/plugins/openapi/OperationListItem.tsx +1 -1
- package/src/lib/plugins/openapi/SchemaList.tsx +2 -2
- package/src/lib/plugins/openapi/graphql/gql.ts +5 -5
- package/src/lib/plugins/openapi/graphql/graphql.ts +6 -6
- package/src/lib/plugins/openapi/index.tsx +11 -11
- package/src/lib/plugins/openapi/interfaces.ts +3 -3
- package/src/lib/plugins/openapi/schema/SchemaView.tsx +1 -1
- package/src/lib/plugins/openapi/util/{createSidebarCategory.tsx → createNavigationCategory.tsx} +6 -5
- package/src/lib/plugins/openapi/util/getRoutes.tsx +2 -2
- package/src/lib/plugins/openapi/util/methodColorMap.tsx +1 -1
- package/src/lib/ui/CodeBlock.tsx +1 -1
- package/src/lib/util/MdxComponents.tsx +13 -2
- package/src/lib/util/useScrollToAnchor.ts +3 -3
- package/dist/config/validators/InputSidebarSchema.d.ts +0 -220
- package/dist/config/validators/InputSidebarSchema.js +0 -63
- package/dist/config/validators/InputSidebarSchema.js.map +0 -1
- package/dist/config/validators/SidebarSchema.d.ts +0 -46
- package/dist/config/validators/SidebarSchema.js +0 -118
- package/dist/config/validators/SidebarSchema.js.map +0 -1
- package/dist/lib/components/navigation/Sidebar.d.ts +0 -5
- package/dist/lib/components/navigation/Sidebar.js +0 -10
- package/dist/lib/components/navigation/Sidebar.js.map +0 -1
- package/dist/lib/components/navigation/SidebarBadge.js.map +0 -1
- package/dist/lib/components/navigation/SidebarCategory.d.ts +0 -5
- package/dist/lib/components/navigation/SidebarCategory.js.map +0 -1
- package/dist/lib/components/navigation/SidebarItem.d.ts +0 -6
- package/dist/lib/components/navigation/SidebarItem.js +0 -44
- package/dist/lib/components/navigation/SidebarItem.js.map +0 -1
- package/dist/lib/components/navigation/SidebarWrapper.js.map +0 -1
- package/dist/lib/plugins/markdown/resolver.d.ts +0 -32
- package/dist/lib/plugins/markdown/resolver.js +0 -46
- package/dist/lib/plugins/markdown/resolver.js.map +0 -1
- package/dist/lib/plugins/openapi/util/createSidebarCategory.d.ts +0 -9
- package/dist/lib/plugins/openapi/util/createSidebarCategory.js.map +0 -1
- package/dist/vite/plugin-configure-tailwind.d.ts +0 -2
- package/dist/vite/plugin-configure-tailwind.js +0 -38
- package/dist/vite/plugin-configure-tailwind.js.map +0 -1
- package/dist/vite/plugin-sidebar.js.map +0 -1
- package/dist/vite/plugin-theme-css.d.ts +0 -5
- package/dist/vite/plugin-theme-css.js +0 -77
- package/dist/vite/plugin-theme-css.js.map +0 -1
- package/lib/Markdown-r4buN85T.js.map +0 -1
- package/lib/MdxPage-DYKsTerz.js.map +0 -1
- package/lib/OasProvider-8vNiLpIG.js +0 -33
- package/lib/OasProvider-8vNiLpIG.js.map +0 -1
- package/lib/SchemaList-1oJKvBxh.js.map +0 -1
- package/lib/hook-7wZANGJP.js +0 -1483
- package/lib/hook-7wZANGJP.js.map +0 -1
- package/lib/index-Cucjfk3D.js.map +0 -1
- package/lib/joinPath-B7kNnUX4.js +0 -8
- package/lib/joinPath-B7kNnUX4.js.map +0 -1
- package/src/lib/plugins/markdown/resolver.ts +0 -59
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zudoku",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.48.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"homepage": "https://zudoku.dev",
|
|
6
6
|
"repository": {
|
|
@@ -174,7 +174,7 @@
|
|
|
174
174
|
"@tailwindcss/vite": "4.1.7",
|
|
175
175
|
"@tanem/react-nprogress": "5.0.55",
|
|
176
176
|
"@tanstack/react-query": "5.74.3",
|
|
177
|
-
"@types/react": "19.1.
|
|
177
|
+
"@types/react": "19.1.8",
|
|
178
178
|
"@types/react-dom": "19.1.6",
|
|
179
179
|
"@vitejs/plugin-react": "4.4.1",
|
|
180
180
|
"@zudoku/httpsnippet": "10.0.9",
|
|
@@ -192,6 +192,7 @@
|
|
|
192
192
|
"fast-equals": "5.2.2",
|
|
193
193
|
"framer-motion": "^12.12.2",
|
|
194
194
|
"glob": "11.0.2",
|
|
195
|
+
"glob-parent": "6.0.2",
|
|
195
196
|
"graphql": "16.11.0",
|
|
196
197
|
"graphql-type-json": "0.3.2",
|
|
197
198
|
"graphql-yoga": "5.13.5",
|
|
@@ -200,6 +201,7 @@
|
|
|
200
201
|
"hast-util-to-string": "3.0.1",
|
|
201
202
|
"html-url-attributes": "^3.0.1",
|
|
202
203
|
"http-terminator": "3.2.0",
|
|
204
|
+
"json-schema-to-typescript-lite": "14.1.0",
|
|
203
205
|
"loglevel": "1.9.2",
|
|
204
206
|
"lru-cache": "11.0.2",
|
|
205
207
|
"lucide-react": "0.488.0",
|
|
@@ -211,7 +213,7 @@
|
|
|
211
213
|
"openapi-types": "12.1.3",
|
|
212
214
|
"pagefind": "1.4.0-alpha.1",
|
|
213
215
|
"picocolors": "1.1.1",
|
|
214
|
-
"piscina": "5.0.0
|
|
216
|
+
"piscina": "5.0.0",
|
|
215
217
|
"posthog-node": "4.17.1",
|
|
216
218
|
"react-error-boundary": "5.0.0",
|
|
217
219
|
"react-hook-form": "7.57.0",
|
|
@@ -245,18 +247,19 @@
|
|
|
245
247
|
"vite": "6.3.5",
|
|
246
248
|
"yaml": "2.8.0",
|
|
247
249
|
"yargs": "17.7.2",
|
|
248
|
-
"zod": "3.25.
|
|
249
|
-
"zod-
|
|
250
|
+
"zod": "3.25.56",
|
|
251
|
+
"zod-to-ts": "1.2.0",
|
|
250
252
|
"zustand": "5.0.5"
|
|
251
253
|
},
|
|
252
254
|
"devDependencies": {
|
|
253
|
-
"@graphql-codegen/cli": "5.0.
|
|
255
|
+
"@graphql-codegen/cli": "5.0.7",
|
|
254
256
|
"@graphql-codegen/client-preset": "4.8.0",
|
|
255
257
|
"@testing-library/dom": "10.4.0",
|
|
256
258
|
"@testing-library/jest-dom": "6.6.3",
|
|
257
259
|
"@testing-library/react": "16.3.0",
|
|
258
260
|
"@types/estree": "1.0.7",
|
|
259
261
|
"@types/express": "5.0.2",
|
|
262
|
+
"@types/glob-parent": "5.1.3",
|
|
260
263
|
"@types/har-format": "1.2.16",
|
|
261
264
|
"@types/hast": "^3.0.4",
|
|
262
265
|
"@types/json-schema": "7.0.15",
|
|
@@ -275,18 +278,18 @@
|
|
|
275
278
|
"react": "19.1.0",
|
|
276
279
|
"react-dom": "19.1.0",
|
|
277
280
|
"rollup-plugin-visualizer": "5.14.0",
|
|
281
|
+
"tsx": "4.19.4",
|
|
278
282
|
"typescript": "5.8.3",
|
|
279
|
-
"vitest": "3.
|
|
283
|
+
"vitest": "3.2.3"
|
|
280
284
|
},
|
|
281
285
|
"peerDependencies": {
|
|
282
|
-
"react": ">=19",
|
|
283
|
-
"react-dom": ">=19",
|
|
284
286
|
"@azure/msal-browser": "^4.13.0",
|
|
285
287
|
"@clerk/clerk-js": "^5.63.1",
|
|
286
288
|
"@sentry/react": "^9.12.0",
|
|
287
|
-
"@supabase/supabase-js": "^2.49.4"
|
|
289
|
+
"@supabase/supabase-js": "^2.49.4",
|
|
290
|
+
"react": ">=19",
|
|
291
|
+
"react-dom": ">=19"
|
|
288
292
|
},
|
|
289
|
-
"optionalDependencies": {},
|
|
290
293
|
"peerDependenciesMeta": {
|
|
291
294
|
"@azure/msal-browser": {
|
|
292
295
|
"optional": true
|
|
@@ -305,12 +308,12 @@
|
|
|
305
308
|
"build": "tsc --project tsconfig.app.json",
|
|
306
309
|
"build:dev": "esbuild './src/**/*.ts' --format=esm --platform=node --target=node22 --outdir=dist --splitting --log-level=warning",
|
|
307
310
|
"build:vite": "vite build",
|
|
308
|
-
"generate:types": "
|
|
311
|
+
"generate:types": "tsx scripts/generate-types.js && tsx scripts/generate-flat-config.js",
|
|
309
312
|
"build:standalone:vite": "vite build --mode standalone --config vite.standalone.config.ts",
|
|
310
313
|
"build:standalone:html": "cp ./src/app/standalone.html ./standalone/standalone.html && cp ./src/app/demo.html ./standalone/demo.html && cp ./src/app/demo-cdn.html ./standalone/index.html && cp standalone/zudoku.css standalone/style.css",
|
|
311
314
|
"clean": "tsc --build --clean",
|
|
312
315
|
"codegen": "graphql-codegen --config ./src/codegen.ts",
|
|
313
|
-
"test": "vitest run"
|
|
316
|
+
"test": "vitest run --typecheck"
|
|
314
317
|
},
|
|
315
318
|
"module": "./dist/index.js",
|
|
316
319
|
"types": "./dist/index.d.ts"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
2
|
|
|
3
3
|
export const EntitlementsSchema = z.object({
|
|
4
4
|
devPortalZuploBranding: z.boolean(),
|
|
@@ -19,14 +19,14 @@ export const EntitlementsSchema = z.object({
|
|
|
19
19
|
|
|
20
20
|
export const BuildConfigSchema = z.object({
|
|
21
21
|
entitlements: EntitlementsSchema,
|
|
22
|
-
environmentType: z.string(),
|
|
22
|
+
environmentType: z.string().optional(),
|
|
23
23
|
deploymentName: z.string(),
|
|
24
|
-
deploymentUrl: z.string(),
|
|
25
|
-
projectId: z.string(),
|
|
26
|
-
projectType: z.string(),
|
|
27
|
-
sourceType: z.string(),
|
|
28
|
-
accountName: z.string(),
|
|
29
|
-
projectName: z.string(),
|
|
24
|
+
deploymentUrl: z.string().optional(),
|
|
25
|
+
projectId: z.string().optional(),
|
|
26
|
+
projectType: z.string().optional(),
|
|
27
|
+
sourceType: z.string().optional(),
|
|
28
|
+
accountName: z.string().optional(),
|
|
29
|
+
projectName: z.string().optional(),
|
|
30
30
|
});
|
|
31
31
|
|
|
32
32
|
export type BuildConfig = z.infer<typeof BuildConfigSchema>;
|
package/src/app/defaultTheme.css
CHANGED
|
@@ -1,54 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default theme for Zudoku. Based on shadcn/ui zinc base colors.
|
|
3
|
+
* See: https://ui.shadcn.com/docs/theming#zinc
|
|
4
|
+
*/
|
|
5
|
+
|
|
1
6
|
:root {
|
|
2
|
-
--
|
|
3
|
-
--
|
|
4
|
-
--
|
|
5
|
-
--card
|
|
6
|
-
--
|
|
7
|
-
--popover
|
|
8
|
-
--
|
|
9
|
-
--primary
|
|
10
|
-
--
|
|
11
|
-
--secondary
|
|
12
|
-
--
|
|
13
|
-
--muted
|
|
14
|
-
--
|
|
15
|
-
--accent
|
|
16
|
-
--
|
|
17
|
-
--destructive
|
|
18
|
-
--border: oklch(
|
|
19
|
-
--input: oklch(92
|
|
20
|
-
--ring: oklch(
|
|
21
|
-
--chart-1: oklch(
|
|
22
|
-
--chart-2: oklch(
|
|
23
|
-
--chart-3: oklch(
|
|
24
|
-
--chart-4: oklch(
|
|
25
|
-
--chart-5: oklch(
|
|
26
|
-
--
|
|
7
|
+
--radius: 0.625rem;
|
|
8
|
+
--background: oklch(1 0 0);
|
|
9
|
+
--foreground: oklch(0.141 0.005 285.823);
|
|
10
|
+
--card: oklch(1 0 0);
|
|
11
|
+
--card-foreground: oklch(0.141 0.005 285.823);
|
|
12
|
+
--popover: oklch(1 0 0);
|
|
13
|
+
--popover-foreground: oklch(0.141 0.005 285.823);
|
|
14
|
+
--primary: oklch(0.21 0.006 285.885);
|
|
15
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
16
|
+
--secondary: oklch(0.967 0.001 286.375);
|
|
17
|
+
--secondary-foreground: oklch(0.21 0.006 285.885);
|
|
18
|
+
--muted: oklch(0.967 0.001 286.375);
|
|
19
|
+
--muted-foreground: oklch(0.552 0.016 285.938);
|
|
20
|
+
--accent: oklch(0.967 0.001 286.375);
|
|
21
|
+
--accent-foreground: oklch(0.21 0.006 285.885);
|
|
22
|
+
--destructive: oklch(0.577 0.245 27.325);
|
|
23
|
+
--border: oklch(0.92 0.004 286.32);
|
|
24
|
+
--input: oklch(0.92 0.004 286.32);
|
|
25
|
+
--ring: oklch(0.705 0.015 286.067);
|
|
26
|
+
--chart-1: oklch(0.646 0.222 41.116);
|
|
27
|
+
--chart-2: oklch(0.6 0.118 184.704);
|
|
28
|
+
--chart-3: oklch(0.398 0.07 227.392);
|
|
29
|
+
--chart-4: oklch(0.828 0.189 84.429);
|
|
30
|
+
--chart-5: oklch(0.769 0.188 70.08);
|
|
31
|
+
--sidebar: oklch(0.985 0 0);
|
|
32
|
+
--sidebar-foreground: oklch(0.141 0.005 285.823);
|
|
33
|
+
--sidebar-primary: oklch(0.21 0.006 285.885);
|
|
34
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
35
|
+
--sidebar-accent: oklch(0.967 0.001 286.375);
|
|
36
|
+
--sidebar-accent-foreground: oklch(0.21 0.006 285.885);
|
|
37
|
+
--sidebar-border: oklch(0.92 0.004 286.32);
|
|
38
|
+
--sidebar-ring: oklch(0.705 0.015 286.067);
|
|
27
39
|
}
|
|
28
40
|
|
|
29
41
|
.dark {
|
|
30
|
-
--background: oklch(
|
|
31
|
-
--foreground: oklch(
|
|
32
|
-
--card: oklch(
|
|
33
|
-
--card-foreground: oklch(
|
|
34
|
-
--popover: oklch(
|
|
35
|
-
--popover-foreground: oklch(
|
|
36
|
-
--primary: oklch(
|
|
37
|
-
--primary-foreground: oklch(21
|
|
38
|
-
--secondary: oklch(
|
|
39
|
-
--secondary-foreground: oklch(
|
|
40
|
-
--muted: oklch(
|
|
41
|
-
--muted-foreground: oklch(
|
|
42
|
-
--accent: oklch(
|
|
43
|
-
--accent-foreground: oklch(
|
|
44
|
-
--destructive: oklch(
|
|
45
|
-
--
|
|
46
|
-
--
|
|
47
|
-
--
|
|
48
|
-
--
|
|
49
|
-
--chart-
|
|
50
|
-
--chart-
|
|
51
|
-
--chart-
|
|
52
|
-
--chart-
|
|
53
|
-
--
|
|
42
|
+
--background: oklch(0.141 0.005 285.823);
|
|
43
|
+
--foreground: oklch(0.985 0 0);
|
|
44
|
+
--card: oklch(0.21 0.006 285.885);
|
|
45
|
+
--card-foreground: oklch(0.985 0 0);
|
|
46
|
+
--popover: oklch(0.21 0.006 285.885);
|
|
47
|
+
--popover-foreground: oklch(0.985 0 0);
|
|
48
|
+
--primary: oklch(0.92 0.004 286.32);
|
|
49
|
+
--primary-foreground: oklch(0.21 0.006 285.885);
|
|
50
|
+
--secondary: oklch(0.274 0.006 286.033);
|
|
51
|
+
--secondary-foreground: oklch(0.985 0 0);
|
|
52
|
+
--muted: oklch(0.274 0.006 286.033);
|
|
53
|
+
--muted-foreground: oklch(0.705 0.015 286.067);
|
|
54
|
+
--accent: oklch(0.274 0.006 286.033);
|
|
55
|
+
--accent-foreground: oklch(0.985 0 0);
|
|
56
|
+
--destructive: oklch(0.704 0.191 22.216);
|
|
57
|
+
--border: oklch(1 0 0 / 10%);
|
|
58
|
+
--input: oklch(1 0 0 / 15%);
|
|
59
|
+
--ring: oklch(0.552 0.016 285.938);
|
|
60
|
+
--chart-1: oklch(0.488 0.243 264.376);
|
|
61
|
+
--chart-2: oklch(0.696 0.17 162.48);
|
|
62
|
+
--chart-3: oklch(0.769 0.188 70.08);
|
|
63
|
+
--chart-4: oklch(0.627 0.265 303.9);
|
|
64
|
+
--chart-5: oklch(0.645 0.246 16.439);
|
|
65
|
+
--sidebar: oklch(0.21 0.006 285.885);
|
|
66
|
+
--sidebar-foreground: oklch(0.985 0 0);
|
|
67
|
+
--sidebar-primary: oklch(0.488 0.243 264.376);
|
|
68
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
69
|
+
--sidebar-accent: oklch(0.274 0.006 286.033);
|
|
70
|
+
--sidebar-accent-foreground: oklch(0.985 0 0);
|
|
71
|
+
--sidebar-border: oklch(1 0 0 / 10%);
|
|
72
|
+
--sidebar-ring: oklch(0.552 0.016 285.938);
|
|
54
73
|
}
|
package/src/app/demo.tsx
CHANGED
|
@@ -36,9 +36,10 @@ const config = {
|
|
|
36
36
|
message: <DemoAnnouncement />,
|
|
37
37
|
},
|
|
38
38
|
},
|
|
39
|
-
|
|
39
|
+
navigation: [
|
|
40
40
|
{
|
|
41
|
-
|
|
41
|
+
type: "link",
|
|
42
|
+
to: "/",
|
|
42
43
|
label: "API Reference",
|
|
43
44
|
},
|
|
44
45
|
],
|
|
@@ -47,7 +48,7 @@ const config = {
|
|
|
47
48
|
openApiPlugin({
|
|
48
49
|
type: "url",
|
|
49
50
|
input: apiUrl,
|
|
50
|
-
|
|
51
|
+
path: "/",
|
|
51
52
|
}),
|
|
52
53
|
],
|
|
53
54
|
} satisfies ZudokuConfig;
|
package/src/app/entry.client.tsx
CHANGED
|
@@ -5,10 +5,8 @@ import {
|
|
|
5
5
|
type RouteObject,
|
|
6
6
|
} from "react-router";
|
|
7
7
|
import config from "virtual:zudoku-config";
|
|
8
|
-
import "virtual:zudoku-theme.css";
|
|
9
8
|
import "vite/modulepreload-polyfill";
|
|
10
9
|
import { Bootstrap } from "zudoku/components";
|
|
11
|
-
import "./main.css";
|
|
12
10
|
import { getRoutesByConfig } from "./main.js";
|
|
13
11
|
|
|
14
12
|
const routes = getRoutesByConfig(config);
|
package/src/app/entry.server.tsx
CHANGED
|
@@ -10,12 +10,10 @@ import {
|
|
|
10
10
|
isRouteErrorResponse,
|
|
11
11
|
type RouteObject,
|
|
12
12
|
} from "react-router";
|
|
13
|
-
import "virtual:zudoku-theme.css";
|
|
14
13
|
import "vite/modulepreload-polyfill";
|
|
15
14
|
import { BootstrapStatic, ServerError } from "zudoku/components";
|
|
16
15
|
import { NO_DEHYDRATE } from "../lib/components/cache.js";
|
|
17
16
|
import type { PrerenderResponse } from "../vite/prerender/PrerenderResponse.js";
|
|
18
|
-
import "./main.css";
|
|
19
17
|
import { getRoutesByConfig } from "./main.js";
|
|
20
18
|
export { getRoutesByConfig };
|
|
21
19
|
|
package/src/app/env.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import z from "zod";
|
|
1
2
|
import { BuildConfigSchema } from "./ZuploBuildConfig.js";
|
|
2
3
|
|
|
3
4
|
const getZuploBuildConfig = () => {
|
|
@@ -9,6 +10,13 @@ const getZuploBuildConfig = () => {
|
|
|
9
10
|
);
|
|
10
11
|
return zuploBuildConfig;
|
|
11
12
|
} catch (error) {
|
|
13
|
+
if (error instanceof z.ZodError) {
|
|
14
|
+
// eslint-disable-next-line no-console
|
|
15
|
+
console.error("ZUPLO_BUILD_CONFIG is invalid.");
|
|
16
|
+
// eslint-disable-next-line no-console
|
|
17
|
+
console.log(error.errors);
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
12
20
|
// eslint-disable-next-line no-console
|
|
13
21
|
console.error(
|
|
14
22
|
"ZUPLO_BUILD_CONFIG is a reserved environment variable and cannot be used for custom configuration. Please remove it from your environment variables.",
|
package/src/app/main.css
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
/* @vite-plugin-inject
|
|
2
|
-
@import "./defaultTheme.css" layer(theme);
|
|
1
|
+
/* @vite-plugin-inject defaultTheme */
|
|
3
2
|
@import "tailwindcss" source("..");
|
|
4
3
|
|
|
5
4
|
/* @vite-plugin-inject main */
|
|
@@ -7,56 +6,6 @@
|
|
|
7
6
|
@plugin "@tailwindcss/typography";
|
|
8
7
|
@custom-variant dark (&:is(.dark *));
|
|
9
8
|
|
|
10
|
-
@theme inline {
|
|
11
|
-
--color-background: var(--background);
|
|
12
|
-
--color-foreground: var(--foreground);
|
|
13
|
-
--color-card: var(--card);
|
|
14
|
-
--color-card-foreground: var(--card-foreground);
|
|
15
|
-
--color-popover: var(--popover);
|
|
16
|
-
--color-popover-foreground: var(--popover-foreground);
|
|
17
|
-
--color-primary: var(--primary);
|
|
18
|
-
--color-primary-foreground: var(--primary-foreground);
|
|
19
|
-
--color-secondary: var(--secondary);
|
|
20
|
-
--color-secondary-foreground: var(--secondary-foreground);
|
|
21
|
-
--color-muted: var(--muted);
|
|
22
|
-
--color-muted-foreground: var(--muted-foreground);
|
|
23
|
-
--color-accent: var(--accent);
|
|
24
|
-
--color-accent-foreground: var(--accent-foreground);
|
|
25
|
-
--color-destructive: var(--destructive);
|
|
26
|
-
--color-destructive-foreground: var(--destructive-foreground);
|
|
27
|
-
--color-border: var(--border);
|
|
28
|
-
--color-input: var(--input);
|
|
29
|
-
--color-ring: var(--ring);
|
|
30
|
-
--color-chart-1: var(--chart-1);
|
|
31
|
-
--color-chart-2: var(--chart-2);
|
|
32
|
-
--color-chart-3: var(--chart-3);
|
|
33
|
-
--color-chart-4: var(--chart-4);
|
|
34
|
-
--color-chart-5: var(--chart-5);
|
|
35
|
-
|
|
36
|
-
--radius-sm: calc(var(--radius) - 4px);
|
|
37
|
-
--radius-md: calc(var(--radius) - 2px);
|
|
38
|
-
--radius-lg: var(--radius);
|
|
39
|
-
--radius-xl: calc(var(--radius) + 4px);
|
|
40
|
-
|
|
41
|
-
--shadow-2xs: var(--shadow-2xs);
|
|
42
|
-
--shadow-xs: var(--shadow-xs);
|
|
43
|
-
--shadow-sm: var(--shadow-sm);
|
|
44
|
-
--shadow: var(--shadow);
|
|
45
|
-
--shadow-md: var(--shadow-md);
|
|
46
|
-
--shadow-lg: var(--shadow-lg);
|
|
47
|
-
--shadow-xl: var(--shadow-xl);
|
|
48
|
-
--shadow-2xl: var(--shadow-2xl);
|
|
49
|
-
|
|
50
|
-
--color-sidebar: var(--sidebar);
|
|
51
|
-
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
52
|
-
--color-sidebar-primary: var(--sidebar-primary);
|
|
53
|
-
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
54
|
-
--color-sidebar-accent: var(--sidebar-accent);
|
|
55
|
-
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
56
|
-
--color-sidebar-border: var(--sidebar-border);
|
|
57
|
-
--color-sidebar-ring: var(--sidebar-ring);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
9
|
@utility prose {
|
|
61
10
|
a {
|
|
62
11
|
@apply font-normal underline-offset-4 hover:text-primary;
|
|
@@ -114,6 +63,11 @@
|
|
|
114
63
|
@apply h-full overscroll-none;
|
|
115
64
|
}
|
|
116
65
|
|
|
66
|
+
::view-transition-old(root),
|
|
67
|
+
::view-transition-new(root) {
|
|
68
|
+
animation: none;
|
|
69
|
+
}
|
|
70
|
+
|
|
117
71
|
details summary {
|
|
118
72
|
@apply cursor-pointer;
|
|
119
73
|
}
|
package/src/app/main.tsx
CHANGED
|
@@ -6,11 +6,11 @@ import {
|
|
|
6
6
|
} from "virtual:zudoku-api-plugins";
|
|
7
7
|
import { configuredAuthProvider } from "virtual:zudoku-auth";
|
|
8
8
|
import { configuredCustomPagesPlugin } from "virtual:zudoku-custom-pages-plugin";
|
|
9
|
-
import {
|
|
9
|
+
import { configuredDocsPlugin } from "virtual:zudoku-docs-plugin";
|
|
10
|
+
import { configuredNavigation } from "virtual:zudoku-navigation";
|
|
10
11
|
import { configuredRedirectPlugin } from "virtual:zudoku-redirect-plugin";
|
|
11
12
|
import { configuredSearchPlugin } from "virtual:zudoku-search-plugin";
|
|
12
13
|
import { registerShiki } from "virtual:zudoku-shiki-register";
|
|
13
|
-
import { configuredSidebar } from "virtual:zudoku-sidebar";
|
|
14
14
|
import "virtual:zudoku-theme.css";
|
|
15
15
|
import {
|
|
16
16
|
BuildCheck,
|
|
@@ -25,6 +25,7 @@ import type { ZudokuContextOptions } from "../lib/core/ZudokuContext.js";
|
|
|
25
25
|
import { isNavigationPlugin } from "../lib/core/plugins.js";
|
|
26
26
|
import { highlighter } from "../lib/shiki.js";
|
|
27
27
|
import { ZuploEnv } from "./env.js";
|
|
28
|
+
import "./main.css";
|
|
28
29
|
|
|
29
30
|
await registerShiki(highlighter);
|
|
30
31
|
|
|
@@ -48,12 +49,11 @@ export const convertZudokuConfigToOptions = (
|
|
|
48
49
|
title: "%s - Zudoku",
|
|
49
50
|
...config.metadata,
|
|
50
51
|
},
|
|
51
|
-
|
|
52
|
-
topNavigation: config.topNavigation,
|
|
52
|
+
navigation: configuredNavigation,
|
|
53
53
|
mdx: config.mdx,
|
|
54
54
|
plugins: [
|
|
55
55
|
...(configuredAuthProvider ? [configuredAuthProvider] : []),
|
|
56
|
-
...
|
|
56
|
+
...(configuredDocsPlugin ? [configuredDocsPlugin] : []),
|
|
57
57
|
...configuredApiPlugins,
|
|
58
58
|
...(configuredSearchPlugin ? [configuredSearchPlugin] : []),
|
|
59
59
|
...(configuredRedirectPlugin ? [configuredRedirectPlugin] : []),
|
|
@@ -99,6 +99,8 @@ export const getRoutesByOptions = (
|
|
|
99
99
|
},
|
|
100
100
|
]);
|
|
101
101
|
|
|
102
|
+
// @TODO Detect conflicts in routes and log warning
|
|
103
|
+
|
|
102
104
|
return routes;
|
|
103
105
|
};
|
|
104
106
|
|
package/src/app/standalone.tsx
CHANGED
|
@@ -31,10 +31,11 @@ const config = {
|
|
|
31
31
|
: undefined,
|
|
32
32
|
pageTitle,
|
|
33
33
|
},
|
|
34
|
-
|
|
34
|
+
navigation: [
|
|
35
35
|
{
|
|
36
|
-
|
|
36
|
+
type: "link",
|
|
37
37
|
label: "API Reference",
|
|
38
|
+
to: "/",
|
|
38
39
|
},
|
|
39
40
|
],
|
|
40
41
|
plugins: [
|
|
@@ -42,7 +43,7 @@ const config = {
|
|
|
42
43
|
openApiPlugin({
|
|
43
44
|
type: "url",
|
|
44
45
|
input: apiUrl!,
|
|
45
|
-
|
|
46
|
+
path: "/",
|
|
46
47
|
}),
|
|
47
48
|
],
|
|
48
49
|
} satisfies ZudokuConfig;
|
|
@@ -14,7 +14,7 @@ describe("getIssuer", () => {
|
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
const result = await getIssuer(config);
|
|
17
|
-
expect(result).toBe("tolerant-hornet-46.clerk.accounts.dev");
|
|
17
|
+
expect(result).toBe("https://tolerant-hornet-46.clerk.accounts.dev");
|
|
18
18
|
});
|
|
19
19
|
|
|
20
20
|
it("should throw error for invalid clerk public key format", async () => {
|
package/src/lib/auth/issuer.ts
CHANGED
|
@@ -17,7 +17,7 @@ export const getIssuer = async (config: ZudokuConfig) => {
|
|
|
17
17
|
const frontendApi = frontendApiParts.at(0);
|
|
18
18
|
invariant(frontendApi, "Clerk public key is invalid");
|
|
19
19
|
|
|
20
|
-
return frontendApi
|
|
20
|
+
return `https://${frontendApi}`;
|
|
21
21
|
}
|
|
22
22
|
case "auth0": {
|
|
23
23
|
return `https://${config.authentication.domain}/`;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { cva } from "class-variance-authority";
|
|
2
|
+
import type { PropsWithChildren } from "react";
|
|
3
|
+
import { cn } from "../util/cn.js";
|
|
4
|
+
|
|
5
|
+
const frameVariants = cva("", {
|
|
6
|
+
variants: {
|
|
7
|
+
size: {
|
|
8
|
+
sm: "max-w-sm",
|
|
9
|
+
md: "max-w-md",
|
|
10
|
+
lg: "max-w-lg",
|
|
11
|
+
xl: "max-w-xl",
|
|
12
|
+
"2xl": "max-w-2xl",
|
|
13
|
+
full: "max-w-full",
|
|
14
|
+
},
|
|
15
|
+
align: {
|
|
16
|
+
center: "mx-auto",
|
|
17
|
+
start: "me-auto",
|
|
18
|
+
end: "ms-auto",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
defaultVariants: {
|
|
22
|
+
size: "xl",
|
|
23
|
+
align: "center",
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
export const Framed = ({
|
|
28
|
+
caption,
|
|
29
|
+
className,
|
|
30
|
+
size = "xl",
|
|
31
|
+
align = "center",
|
|
32
|
+
children,
|
|
33
|
+
}: PropsWithChildren<{
|
|
34
|
+
caption?: string;
|
|
35
|
+
className?: string;
|
|
36
|
+
size?: "sm" | "md" | "lg" | "xl" | "2xl" | "full";
|
|
37
|
+
align?: "center" | "start" | "end";
|
|
38
|
+
}>) => (
|
|
39
|
+
<figure className={cn(frameVariants({ size, align }), className)}>
|
|
40
|
+
<div className="relative overflow-hidden rounded-lg border border-border bg-muted/50 p-1 shadow-sm">
|
|
41
|
+
<div className="not-prose rounded-md [&_img]:rounded-md! relative overflow-hidden bg-background">
|
|
42
|
+
{children}
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
{caption && (
|
|
46
|
+
<figcaption className="mt-3 text-center text-sm text-muted-foreground">
|
|
47
|
+
{caption}
|
|
48
|
+
</figcaption>
|
|
49
|
+
)}
|
|
50
|
+
</figure>
|
|
51
|
+
);
|
|
@@ -25,6 +25,7 @@ import { Banner } from "./Banner.js";
|
|
|
25
25
|
import { ClientOnly } from "./ClientOnly.js";
|
|
26
26
|
import { useZudoku } from "./context/ZudokuContext.js";
|
|
27
27
|
import { MobileTopNavigation } from "./MobileTopNavigation.js";
|
|
28
|
+
import { PageProgress } from "./PageProgress.js";
|
|
28
29
|
import { Search } from "./Search.js";
|
|
29
30
|
import { Slot } from "./Slot.js";
|
|
30
31
|
import { ThemeSwitch } from "./ThemeSwitch.js";
|
|
@@ -82,8 +83,9 @@ export const Header = memo(function HeaderInner() {
|
|
|
82
83
|
return (
|
|
83
84
|
<header className="sticky lg:top-0 z-10 bg-background/80 backdrop-blur w-full">
|
|
84
85
|
<Banner />
|
|
85
|
-
<div className={borderBottom}>
|
|
86
|
-
<
|
|
86
|
+
<div className={cn(borderBottom, "relative")}>
|
|
87
|
+
<PageProgress />
|
|
88
|
+
<div className="max-w-screen-2xl mx-auto flex items-center justify-between h-(--top-header-height) px-4 lg:px-8 border-transparent">
|
|
87
89
|
<div className="flex">
|
|
88
90
|
<Link to="/">
|
|
89
91
|
<div className="flex items-center gap-3.5">
|
|
@@ -182,7 +184,7 @@ export const Header = memo(function HeaderInner() {
|
|
|
182
184
|
</div>
|
|
183
185
|
</div>
|
|
184
186
|
<div className={cn("hidden lg:block", borderBottom)}>
|
|
185
|
-
<div className="max-w-screen-2xl mx-auto border-transparent">
|
|
187
|
+
<div className="max-w-screen-2xl mx-auto border-transparent relative">
|
|
186
188
|
<Slot.Target name="top-navigation-before" />
|
|
187
189
|
<TopNavigation />
|
|
188
190
|
<Slot.Target name="top-navigation-after" />
|
|
@@ -46,7 +46,11 @@ export type HeadingProps = HTMLAttributes<HTMLHeadingElement> &
|
|
|
46
46
|
className?: string;
|
|
47
47
|
id?: string;
|
|
48
48
|
level?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
49
|
-
|
|
49
|
+
/**
|
|
50
|
+
* This is to set labels as active when the heading is in the viewport.
|
|
51
|
+
* It's used in the navigation/toc to highlight the current section.
|
|
52
|
+
*/
|
|
53
|
+
registerNavigationAnchor?: boolean;
|
|
50
54
|
};
|
|
51
55
|
|
|
52
56
|
export const Heading = ({
|
|
@@ -54,7 +58,7 @@ export const Heading = ({
|
|
|
54
58
|
children,
|
|
55
59
|
id,
|
|
56
60
|
className,
|
|
57
|
-
|
|
61
|
+
registerNavigationAnchor,
|
|
58
62
|
}: HeadingProps) => {
|
|
59
63
|
const Component = getComponent(level ?? 1);
|
|
60
64
|
const { ref } = useRegisterAnchorElement();
|
|
@@ -65,7 +69,7 @@ export const Heading = ({
|
|
|
65
69
|
className: cn(className, "flex items-center gap-[0.33em]"),
|
|
66
70
|
level,
|
|
67
71
|
})}
|
|
68
|
-
ref={
|
|
72
|
+
ref={registerNavigationAnchor ? ref : undefined}
|
|
69
73
|
id={id}
|
|
70
74
|
>
|
|
71
75
|
{children}
|