zudoku 0.0.0-f62edde → 0.0.0-f687ed1
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 +2 -2
- package/dist/app/demo.js +17 -2
- package/dist/app/demo.js.map +1 -1
- package/dist/app/main.js +7 -13
- package/dist/app/main.js.map +1 -1
- package/dist/app/standalone.js +3 -3
- package/dist/app/standalone.js.map +1 -1
- package/dist/cli/build/handler.js +9 -1
- package/dist/cli/build/handler.js.map +1 -1
- package/dist/config/loader.js +2 -5
- package/dist/config/loader.js.map +1 -1
- package/dist/config/validators/BuildSchema.js +5 -0
- package/dist/config/validators/BuildSchema.js.map +1 -1
- package/dist/config/validators/InputNavigationSchema.d.ts +152 -5
- package/dist/config/validators/InputNavigationSchema.js +0 -3
- package/dist/config/validators/InputNavigationSchema.js.map +1 -1
- package/dist/config/validators/InputNavigationSchema.test-d.js +0 -1
- package/dist/config/validators/InputNavigationSchema.test-d.js.map +1 -1
- package/dist/config/validators/NavigationSchema.js +4 -3
- package/dist/config/validators/NavigationSchema.js.map +1 -1
- package/dist/config/validators/icon-types.d.ts +1 -1
- package/dist/config/validators/icon-types.js +38 -0
- package/dist/config/validators/icon-types.js.map +1 -1
- package/dist/config/validators/validate.d.ts +6 -3
- package/dist/config/validators/validate.js +15 -5
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/config/validators/validate.test.js +65 -2
- package/dist/config/validators/validate.test.js.map +1 -1
- package/dist/lib/authentication/authentication.d.ts +2 -0
- package/dist/lib/authentication/components/SignIn.js +4 -3
- package/dist/lib/authentication/components/SignIn.js.map +1 -1
- package/dist/lib/authentication/providers/openid.d.ts +4 -2
- package/dist/lib/authentication/providers/openid.js +11 -5
- package/dist/lib/authentication/providers/openid.js.map +1 -1
- package/dist/lib/components/Autocomplete.js +2 -2
- package/dist/lib/components/Autocomplete.js.map +1 -1
- package/dist/lib/components/Banner.js +2 -2
- package/dist/lib/components/Banner.js.map +1 -1
- package/dist/lib/components/CategoryHeading.js +1 -1
- package/dist/lib/components/CategoryHeading.js.map +1 -1
- package/dist/lib/components/ErrorPage.js +2 -2
- package/dist/lib/components/ErrorPage.js.map +1 -1
- package/dist/lib/components/Footer.js +1 -1
- package/dist/lib/components/Footer.js.map +1 -1
- package/dist/lib/components/Header.js +10 -10
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/Main.js +1 -1
- package/dist/lib/components/Markdown.d.ts +0 -1
- package/dist/lib/components/Markdown.js +2 -3
- package/dist/lib/components/Markdown.js.map +1 -1
- package/dist/lib/components/MobileTopNavigation.js +8 -5
- package/dist/lib/components/MobileTopNavigation.js.map +1 -1
- package/dist/lib/components/NotFoundPage.js +2 -2
- package/dist/lib/components/NotFoundPage.js.map +1 -1
- package/dist/lib/components/Pagination.js +1 -1
- package/dist/lib/components/Pagination.js.map +1 -1
- package/dist/lib/components/StatusPage.js +4 -0
- package/dist/lib/components/StatusPage.js.map +1 -1
- package/dist/lib/components/TopNavigation.d.ts +5 -0
- package/dist/lib/components/TopNavigation.js +16 -12
- package/dist/lib/components/TopNavigation.js.map +1 -1
- package/dist/lib/components/Typography.d.ts +5 -0
- package/dist/lib/components/Typography.js +8 -0
- package/dist/lib/components/Typography.js.map +1 -0
- package/dist/lib/components/index.d.ts +4 -0
- package/dist/lib/components/index.js +2 -0
- package/dist/lib/components/index.js.map +1 -1
- package/dist/lib/components/navigation/NavigationWrapper.js +2 -2
- package/dist/lib/components/navigation/NavigationWrapper.js.map +1 -1
- package/dist/lib/core/ZudokuContext.d.ts +7 -5
- package/dist/lib/core/ZudokuContext.js +16 -3
- package/dist/lib/core/ZudokuContext.js.map +1 -1
- package/dist/lib/errors/ErrorAlert.js +2 -3
- package/dist/lib/errors/ErrorAlert.js.map +1 -1
- package/dist/lib/hooks/useHotkey.d.ts +4 -0
- package/dist/lib/hooks/useHotkey.js +58 -0
- package/dist/lib/hooks/useHotkey.js.map +1 -0
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js +8 -12
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
- package/dist/lib/plugins/api-keys/index.js +1 -1
- package/dist/lib/plugins/custom-pages/index.d.ts +1 -4
- package/dist/lib/plugins/custom-pages/index.js +1 -3
- package/dist/lib/plugins/custom-pages/index.js.map +1 -1
- package/dist/lib/plugins/markdown/MdxPage.js +5 -5
- package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationList.js +3 -3
- package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.js +2 -2
- package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/ParameterListItem.js +1 -1
- package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/SchemaList.js +2 -3
- package/dist/lib/plugins/openapi/SchemaList.js.map +1 -1
- package/dist/lib/plugins/openapi/Sidecar.js +1 -1
- package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
- package/dist/lib/plugins/openapi/SidecarExamples.js +1 -1
- package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
- package/dist/lib/plugins/openapi/index.js +1 -1
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/BodyPanel.d.ts +2 -2
- package/dist/lib/plugins/openapi/playground/BodyPanel.js +16 -12
- package/dist/lib/plugins/openapi/playground/BodyPanel.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/CollapsibleHeader.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js +11 -0
- package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +2 -2
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Headers.d.ts +3 -2
- package/dist/lib/plugins/openapi/playground/Headers.js +52 -30
- package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/IdentityDialog.js +2 -1
- package/dist/lib/plugins/openapi/playground/IdentityDialog.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/IdentitySelector.js +1 -2
- package/dist/lib/plugins/openapi/playground/IdentitySelector.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/InlineInput.js +1 -1
- package/dist/lib/plugins/openapi/playground/InlineInput.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/ParamsGrid.js +2 -2
- package/dist/lib/plugins/openapi/playground/ParamsGrid.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/PathParams.js +1 -2
- package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Playground.js +50 -35
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +1 -1
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/QueryParams.d.ts +2 -2
- package/dist/lib/plugins/openapi/playground/QueryParams.js +38 -23
- package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Spinner.d.ts +2 -0
- package/dist/lib/plugins/openapi/playground/Spinner.js +63 -0
- package/dist/lib/plugins/openapi/playground/Spinner.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlPath.d.ts +3 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlPath.js +13 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlPath.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.d.ts +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js +12 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/Highlight.d.ts +12 -0
- package/dist/lib/plugins/openapi/playground/result-panel/Highlight.js +11 -0
- package/dist/lib/plugins/openapi/playground/result-panel/Highlight.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js +69 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.d.ts +7 -4
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +25 -32
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.d.ts +4 -2
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +8 -10
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +3 -3
- package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +2 -3
- package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/SchemaView.js +4 -4
- package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/utils.js +3 -2
- package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
- package/dist/lib/plugins/search-inkeep/index.d.ts +5 -22
- package/dist/lib/plugins/search-inkeep/index.js +35 -29
- package/dist/lib/plugins/search-inkeep/index.js.map +1 -1
- package/dist/lib/plugins/search-inkeep/inkeep.d.ts +5 -21
- package/dist/lib/plugins/search-inkeep/inkeep.js +10 -19
- package/dist/lib/plugins/search-inkeep/inkeep.js.map +1 -1
- package/dist/lib/plugins/search-pagefind/PagefindSearch.js +1 -1
- package/dist/lib/plugins/search-pagefind/PagefindSearch.js.map +1 -1
- package/dist/lib/plugins/search-pagefind/ResultList.d.ts +1 -1
- package/dist/lib/plugins/search-pagefind/ResultList.js +12 -5
- package/dist/lib/plugins/search-pagefind/ResultList.js.map +1 -1
- package/dist/lib/ui/Alert.d.ts +1 -1
- package/dist/lib/ui/CodeBlock.js +5 -6
- package/dist/lib/ui/CodeBlock.js.map +1 -1
- package/dist/lib/ui/Dialog.js +1 -1
- package/dist/lib/ui/Dialog.js.map +1 -1
- package/dist/lib/ui/EmbeddedCodeBlock.js +1 -1
- package/dist/lib/ui/EmbeddedCodeBlock.js.map +1 -1
- package/dist/lib/ui/Select.js +1 -1
- package/dist/lib/util/os.d.ts +2 -0
- package/dist/lib/util/os.js +21 -0
- package/dist/lib/util/os.js.map +1 -0
- package/dist/lib/util/useCopyToClipboard.d.ts +1 -0
- package/dist/lib/util/useCopyToClipboard.js +11 -0
- package/dist/lib/util/useCopyToClipboard.js.map +1 -0
- package/dist/vite/api/SchemaManager.js +6 -2
- package/dist/vite/api/SchemaManager.js.map +1 -1
- package/dist/vite/api/schema-codegen.js +42 -11
- package/dist/vite/api/schema-codegen.js.map +1 -1
- package/dist/vite/api/schema-codegen.test.js +82 -0
- package/dist/vite/api/schema-codegen.test.js.map +1 -1
- package/dist/vite/build.js +8 -2
- package/dist/vite/build.js.map +1 -1
- package/dist/vite/dev-server.js +10 -2
- package/dist/vite/dev-server.js.map +1 -1
- package/dist/vite/mdx/remark-last-modified.js +1 -28
- package/dist/vite/mdx/remark-last-modified.js.map +1 -1
- package/dist/vite/plugin-docs.js +11 -9
- package/dist/vite/plugin-docs.js.map +1 -1
- package/dist/vite/plugin-mdx.js +2 -3
- package/dist/vite/plugin-mdx.js.map +1 -1
- package/dist/vite/plugin-theme.js +91 -40
- package/dist/vite/plugin-theme.js.map +1 -1
- package/dist/vite/plugin-theme.test.js +47 -5
- package/dist/vite/plugin-theme.test.js.map +1 -1
- package/lib/Alert-_ISVjPaE.js +161 -0
- package/lib/Alert-_ISVjPaE.js.map +1 -0
- package/lib/{Button-BE9IVkWV.js → Button-B3o-2Xdf.js} +2 -2
- package/lib/{Button-BE9IVkWV.js.map → Button-B3o-2Xdf.js.map} +1 -1
- package/lib/CallbackHandler-CHrZoaQm.js +38 -0
- package/lib/CallbackHandler-CHrZoaQm.js.map +1 -0
- package/lib/{Card-DPhGbYUM.js → Card-CMDQUPM4.js} +2 -2
- package/lib/{Card-DPhGbYUM.js.map → Card-CMDQUPM4.js.map} +1 -1
- package/lib/ClientOnly-E7hGysn1.js.map +1 -1
- package/lib/CodeBlock-B-G0eKtw.js +85 -0
- package/lib/CodeBlock-B-G0eKtw.js.map +1 -0
- package/lib/Command-C9AC5cf-.js +140 -0
- package/lib/Command-C9AC5cf-.js.map +1 -0
- package/lib/{Dialog-BxpuVLh9.js → Dialog-DMWw1doX.js} +6 -6
- package/lib/Dialog-DMWw1doX.js.map +1 -0
- package/lib/{Drawer-BzkOKwgC.js → Drawer-DJ05s2pH.js} +86 -86
- package/lib/{Drawer-BzkOKwgC.js.map → Drawer-DJ05s2pH.js.map} +1 -1
- package/lib/MdxPage-CO_w2FI6.js +110 -0
- package/lib/MdxPage-CO_w2FI6.js.map +1 -0
- package/lib/{OasProvider-CUXXF3oj.js → OasProvider-BbVO6EgC.js} +3 -3
- package/lib/{OasProvider-CUXXF3oj.js.map → OasProvider-BbVO6EgC.js.map} +1 -1
- package/lib/{OperationList-P_vP7u7f.js → OperationList-Crvmqvd9.js} +726 -714
- package/lib/OperationList-Crvmqvd9.js.map +1 -0
- package/lib/{Pagination-tnJwvuLq.js → Pagination-Ct2YfjYl.js} +10 -9
- package/lib/Pagination-Ct2YfjYl.js.map +1 -0
- package/lib/RouteGuard-Vnlz_t51.js +737 -0
- package/lib/RouteGuard-Vnlz_t51.js.map +1 -0
- package/lib/{SchemaList-6GhTLPZt.js → SchemaList-DOYtqnab.js} +26 -37
- package/lib/SchemaList-DOYtqnab.js.map +1 -0
- package/lib/{SchemaView-DTIMiB_H.js → SchemaView-CyRfElaI.js} +94 -103
- package/lib/SchemaView-CyRfElaI.js.map +1 -0
- package/lib/SignUp-CcP8Tyfs.js +56 -0
- package/lib/SignUp-CcP8Tyfs.js.map +1 -0
- package/lib/{Markdown-BF7mJP8j.js → Slot-DqgTXQwt.js} +3359 -3002
- package/lib/Slot-DqgTXQwt.js.map +1 -0
- package/lib/Spinner-mNLZ6awP.js.map +1 -1
- package/lib/{SyntaxHighlight-C5ja40ix.js → SyntaxHighlight-bm761HDo.js} +756 -756
- package/lib/SyntaxHighlight-bm761HDo.js.map +1 -0
- package/lib/{Toc-BxYiZwxz.js → Toc-8NJ4k4Us.js} +3 -3
- package/lib/{Toc-BxYiZwxz.js.map → Toc-8NJ4k4Us.js.map} +1 -1
- package/lib/{chunk-DQRVZFIR-BblmKnHy.js → chunk-DQRVZFIR-DHK7_Ilc.js} +7 -7
- package/lib/{chunk-DQRVZFIR-BblmKnHy.js.map → chunk-DQRVZFIR-DHK7_Ilc.js.map} +1 -1
- package/lib/{circular-BBvOD6jV.js → circular-DZw_Mz7f.js} +2 -2
- package/lib/{circular-BBvOD6jV.js.map → circular-DZw_Mz7f.js.map} +1 -1
- package/lib/{cn-wvCW-ho6.js → cn-dYga0KKN.js} +2 -2
- package/lib/cn-dYga0KKN.js.map +1 -0
- package/lib/{createServer-CR5sbG6H.js → createServer-CQoCyFC1.js} +3398 -3552
- package/lib/createServer-CQoCyFC1.js.map +1 -0
- package/lib/errors-BfmB7Vsx.js +44 -0
- package/lib/errors-BfmB7Vsx.js.map +1 -0
- package/lib/{hook-CHXroBFt.js → hook-CZjW2buS.js} +423 -416
- package/lib/hook-CZjW2buS.js.map +1 -0
- package/lib/index-B3xY0rUq.js +3471 -0
- package/lib/index-B3xY0rUq.js.map +1 -0
- package/lib/index-BHBXOwle.js +3980 -0
- package/lib/index-BHBXOwle.js.map +1 -0
- package/lib/index-Bm35Tkgf.js +107 -0
- package/lib/index-Bm35Tkgf.js.map +1 -0
- package/lib/index-CrcNWbel.js.map +1 -1
- package/lib/{index-BvvmIczU.js → index-D-Vi7oy2.js} +2 -2
- package/lib/{index-BvvmIczU.js.map → index-D-Vi7oy2.js.map} +1 -1
- package/lib/index-DI5SPFK9.js.map +1 -1
- package/lib/index-DmNq2fbN.js.map +1 -1
- package/lib/index.esm-Cp4wkyud.js.map +1 -1
- package/lib/invariant-DAFpPywt.js.map +1 -1
- package/lib/jsx-runtime-C5mzlN2N.js.map +1 -1
- package/lib/processors/removeExtensions.js.map +1 -1
- package/lib/processors/removeParameters.js.map +1 -1
- package/lib/processors/removePaths.js.map +1 -1
- package/lib/processors/traverse.js.map +1 -1
- package/lib/ui/Accordion.js +1 -1
- package/lib/ui/Accordion.js.map +1 -1
- package/lib/ui/ActionButton.js +2 -2
- package/lib/ui/ActionButton.js.map +1 -1
- package/lib/ui/Alert.js +1 -1
- package/lib/ui/Alert.js.map +1 -1
- package/lib/ui/AlertDialog.js +1 -1
- package/lib/ui/AlertDialog.js.map +1 -1
- package/lib/ui/Badge.js +1 -1
- package/lib/ui/Badge.js.map +1 -1
- package/lib/ui/Breadcrumb.js +1 -1
- package/lib/ui/Breadcrumb.js.map +1 -1
- package/lib/ui/Button.js +1 -1
- package/lib/ui/Button.js.map +1 -1
- package/lib/ui/Callout.js +1 -1
- package/lib/ui/Callout.js.map +1 -1
- package/lib/ui/Card.js +1 -1
- package/lib/ui/Card.js.map +1 -1
- package/lib/ui/Carousel.js +1 -1
- package/lib/ui/Carousel.js.map +1 -1
- package/lib/ui/Checkbox.js +1 -1
- package/lib/ui/Checkbox.js.map +1 -1
- package/lib/ui/CodeBlock.js +6 -73
- package/lib/ui/CodeBlock.js.map +1 -1
- package/lib/ui/Command.js +2 -2
- package/lib/ui/Command.js.map +1 -1
- package/lib/ui/Dialog.js +24 -24
- package/lib/ui/Dialog.js.map +1 -1
- package/lib/ui/Drawer.js +2 -2
- package/lib/ui/DropdownMenu.js +1 -1
- package/lib/ui/DropdownMenu.js.map +1 -1
- package/lib/ui/EmbeddedCodeBlock.js +3 -3
- package/lib/ui/EmbeddedCodeBlock.js.map +1 -1
- package/lib/ui/Form.js +1 -1
- package/lib/ui/Form.js.map +1 -1
- package/lib/ui/HoverCard.js +1 -1
- package/lib/ui/HoverCard.js.map +1 -1
- package/lib/ui/Input.js +1 -1
- package/lib/ui/Input.js.map +1 -1
- package/lib/ui/Label.js +1 -1
- package/lib/ui/Label.js.map +1 -1
- package/lib/ui/Pagination.js +1 -1
- package/lib/ui/Pagination.js.map +1 -1
- package/lib/ui/Popover.js +1 -1
- package/lib/ui/Popover.js.map +1 -1
- package/lib/ui/Progress.js +1 -1
- package/lib/ui/Progress.js.map +1 -1
- package/lib/ui/RadioGroup.js +1 -1
- package/lib/ui/RadioGroup.js.map +1 -1
- package/lib/ui/ScrollArea.js +1 -1
- package/lib/ui/ScrollArea.js.map +1 -1
- package/lib/ui/Select.js +2 -2
- package/lib/ui/Select.js.map +1 -1
- package/lib/ui/Skeleton.js +1 -1
- package/lib/ui/Skeleton.js.map +1 -1
- package/lib/ui/Slider.js +1 -1
- package/lib/ui/Slider.js.map +1 -1
- package/lib/ui/Stepper.js.map +1 -1
- package/lib/ui/Switch.js +1 -1
- package/lib/ui/Switch.js.map +1 -1
- package/lib/ui/SyntaxHighlight.js +3 -3
- package/lib/ui/Tabs.js +1 -1
- package/lib/ui/Tabs.js.map +1 -1
- package/lib/ui/Textarea.js +1 -1
- package/lib/ui/Textarea.js.map +1 -1
- package/lib/ui/Toggle.js +1 -1
- package/lib/ui/Toggle.js.map +1 -1
- package/lib/ui/ToggleGroup.js +1 -1
- package/lib/ui/ToggleGroup.js.map +1 -1
- package/lib/ui/Tooltip.js +1 -1
- package/lib/ui/Tooltip.js.map +1 -1
- package/lib/ui/util.js +1 -1
- package/lib/{useExposedProps-BZQkZneR.js → useExposedProps-BIYjecPD.js} +2 -2
- package/lib/{useExposedProps-BZQkZneR.js.map → useExposedProps-BIYjecPD.js.map} +1 -1
- package/lib/zudoku.auth-auth0.js +1 -1
- package/lib/zudoku.auth-auth0.js.map +1 -1
- package/lib/zudoku.auth-azureb2c.js +40 -9885
- package/lib/zudoku.auth-azureb2c.js.map +1 -1
- package/lib/zudoku.auth-clerk.js +3 -3
- package/lib/zudoku.auth-clerk.js.map +1 -1
- package/lib/zudoku.auth-openid.js +131 -121
- package/lib/zudoku.auth-openid.js.map +1 -1
- package/lib/zudoku.auth-supabase.js +97 -0
- package/lib/zudoku.auth-supabase.js.map +1 -0
- package/lib/zudoku.components.js +33 -3534
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.hooks.js +10 -11
- package/lib/zudoku.hooks.js.map +1 -1
- package/lib/zudoku.icons.js.map +1 -1
- package/lib/zudoku.plugin-api-catalog.js +6 -6
- package/lib/zudoku.plugin-api-catalog.js.map +1 -1
- package/lib/zudoku.plugin-api-keys.js +128 -167
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-custom-pages.js +8 -20
- package/lib/zudoku.plugin-custom-pages.js.map +1 -1
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-markdown.js.map +1 -1
- package/lib/zudoku.plugin-openapi.js +3 -3
- package/lib/zudoku.plugin-redirect.js +1 -1
- package/lib/zudoku.plugin-redirect.js.map +1 -1
- package/lib/zudoku.plugin-search-inkeep.js +54 -57
- package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
- package/lib/zudoku.plugin-search-pagefind.js +211 -117
- package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
- package/lib/zudoku.plugins.js.map +1 -1
- package/package.json +31 -29
- package/src/app/demo.tsx +20 -3
- package/src/app/main.css +26 -5
- package/src/app/main.tsx +10 -18
- package/src/app/standalone.tsx +3 -3
- package/src/lib/authentication/authentication.ts +2 -2
- package/src/lib/authentication/components/SignIn.tsx +5 -12
- package/src/lib/authentication/providers/openid.tsx +23 -4
- package/src/lib/components/Autocomplete.tsx +2 -1
- package/src/lib/components/Banner.tsx +1 -2
- package/src/lib/components/CategoryHeading.tsx +4 -1
- package/src/lib/components/ErrorPage.tsx +3 -3
- package/src/lib/components/Footer.tsx +1 -1
- package/src/lib/components/Header.tsx +20 -19
- package/src/lib/components/Main.tsx +1 -1
- package/src/lib/components/Markdown.tsx +3 -5
- package/src/lib/components/MobileTopNavigation.tsx +58 -9
- package/src/lib/components/NotFoundPage.tsx +6 -5
- package/src/lib/components/Pagination.tsx +1 -0
- package/src/lib/components/StatusPage.tsx +5 -0
- package/src/lib/components/TopNavigation.tsx +30 -14
- package/src/lib/components/Typography.tsx +14 -0
- package/src/lib/components/index.ts +2 -0
- package/src/lib/components/navigation/NavigationWrapper.tsx +5 -2
- package/src/lib/core/ZudokuContext.ts +27 -5
- package/src/lib/errors/ErrorAlert.tsx +8 -16
- package/src/lib/hooks/useHotkey.ts +70 -0
- package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +18 -18
- package/src/lib/plugins/api-keys/index.tsx +1 -1
- package/src/lib/plugins/custom-pages/index.tsx +2 -6
- package/src/lib/plugins/markdown/MdxPage.tsx +7 -12
- package/src/lib/plugins/openapi/OperationList.tsx +11 -19
- package/src/lib/plugins/openapi/OperationListItem.tsx +2 -2
- package/src/lib/plugins/openapi/ParameterListItem.tsx +6 -0
- package/src/lib/plugins/openapi/SchemaList.tsx +3 -9
- package/src/lib/plugins/openapi/Sidecar.tsx +1 -1
- package/src/lib/plugins/openapi/SidecarExamples.tsx +2 -1
- package/src/lib/plugins/openapi/index.tsx +1 -1
- package/src/lib/plugins/openapi/playground/BodyPanel.tsx +40 -31
- package/src/lib/plugins/openapi/playground/CollapsibleHeader.tsx +47 -0
- package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +7 -3
- package/src/lib/plugins/openapi/playground/Headers.tsx +187 -89
- package/src/lib/plugins/openapi/playground/IdentityDialog.tsx +3 -2
- package/src/lib/plugins/openapi/playground/IdentitySelector.tsx +7 -12
- package/src/lib/plugins/openapi/playground/InlineInput.tsx +1 -1
- package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +2 -2
- package/src/lib/plugins/openapi/playground/PathParams.tsx +5 -6
- package/src/lib/plugins/openapi/playground/Playground.tsx +181 -126
- package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +1 -1
- package/src/lib/plugins/openapi/playground/QueryParams.tsx +104 -58
- package/src/lib/plugins/openapi/playground/Spinner.tsx +87 -0
- package/src/lib/plugins/openapi/playground/request-panel/UrlPath.tsx +31 -0
- package/src/lib/plugins/openapi/playground/request-panel/UrlQueryParams.tsx +25 -0
- package/src/lib/plugins/openapi/playground/result-panel/Highlight.tsx +26 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.tsx +115 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +103 -97
- package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +68 -92
- package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +3 -3
- package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +2 -3
- package/src/lib/plugins/openapi/schema/SchemaView.tsx +5 -10
- package/src/lib/plugins/openapi/schema/utils.ts +3 -2
- package/src/lib/plugins/search-inkeep/index.tsx +54 -58
- package/src/lib/plugins/search-inkeep/inkeep.ts +19 -21
- package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +1 -0
- package/src/lib/plugins/search-pagefind/ResultList.tsx +13 -4
- package/src/lib/ui/Alert.tsx +1 -1
- package/src/lib/ui/CodeBlock.tsx +5 -6
- package/src/lib/ui/Dialog.tsx +2 -2
- package/src/lib/ui/EmbeddedCodeBlock.tsx +2 -2
- package/src/lib/ui/Select.tsx +1 -1
- package/src/lib/util/os.ts +18 -0
- package/src/lib/util/useCopyToClipboard.ts +17 -0
- package/dist/lib/plugins/custom-pages/CustomPage.d.ts +0 -2
- package/dist/lib/plugins/custom-pages/CustomPage.js +0 -11
- package/dist/lib/plugins/custom-pages/CustomPage.js.map +0 -1
- package/dist/lib/plugins/openapi/playground/UrlDisplay.d.ts +0 -4
- package/dist/lib/plugins/openapi/playground/UrlDisplay.js +0 -22
- package/dist/lib/plugins/openapi/playground/UrlDisplay.js.map +0 -1
- package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.d.ts +0 -7
- package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js +0 -11
- package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js.map +0 -1
- package/lib/Callout-CoVxYafP.js +0 -231
- package/lib/Callout-CoVxYafP.js.map +0 -1
- package/lib/CategoryHeading-Cu2RwgjC.js +0 -10
- package/lib/CategoryHeading-Cu2RwgjC.js.map +0 -1
- package/lib/Dialog-BxpuVLh9.js.map +0 -1
- package/lib/Markdown-BF7mJP8j.js.map +0 -1
- package/lib/MdxPage-CJs98yjf.js +0 -121
- package/lib/MdxPage-CJs98yjf.js.map +0 -1
- package/lib/OperationList-P_vP7u7f.js.map +0 -1
- package/lib/Pagination-tnJwvuLq.js.map +0 -1
- package/lib/RouteGuard-gV7nvzi7.js +0 -55
- package/lib/RouteGuard-gV7nvzi7.js.map +0 -1
- package/lib/SchemaList-6GhTLPZt.js.map +0 -1
- package/lib/SchemaView-DTIMiB_H.js.map +0 -1
- package/lib/SignUp-B6w5AwHM.js +0 -63
- package/lib/SignUp-B6w5AwHM.js.map +0 -1
- package/lib/Slot-Di32B6gb.js +0 -161
- package/lib/Slot-Di32B6gb.js.map +0 -1
- package/lib/SyntaxHighlight-C5ja40ix.js.map +0 -1
- package/lib/clerk-BDZ31hjU.js +0 -25190
- package/lib/clerk-BDZ31hjU.js.map +0 -1
- package/lib/cn-wvCW-ho6.js.map +0 -1
- package/lib/createServer-CR5sbG6H.js.map +0 -1
- package/lib/errors-D_5vKvUq.js +0 -78
- package/lib/errors-D_5vKvUq.js.map +0 -1
- package/lib/hook-CHXroBFt.js.map +0 -1
- package/lib/index--oeBayMa.js +0 -86
- package/lib/index--oeBayMa.js.map +0 -1
- package/lib/index-Bn6Lc9tq.js +0 -9
- package/lib/index-Bn6Lc9tq.js.map +0 -1
- package/lib/index-DwJ9TXn0.js +0 -3227
- package/lib/index-DwJ9TXn0.js.map +0 -1
- package/lib/index-QzXzw_ra.js +0 -24
- package/lib/index-QzXzw_ra.js.map +0 -1
- package/lib/index.esm-BFcSKCe-.js +0 -683
- package/lib/index.esm-BFcSKCe-.js.map +0 -1
- package/lib/mutation-BpcyTgWI.js +0 -196
- package/lib/mutation-BpcyTgWI.js.map +0 -1
- package/lib/objectEntries-yMIkr2mI.js +0 -5
- package/lib/objectEntries-yMIkr2mI.js.map +0 -1
- package/lib/react-nprogress.esm-C2MPXjiJ.js +0 -389
- package/lib/react-nprogress.esm-C2MPXjiJ.js.map +0 -1
- package/lib/useLatest-hmRS46UF.js +0 -11
- package/lib/useLatest-hmRS46UF.js.map +0 -1
- package/lib/useMutation-N4ockVKi.js +0 -97
- package/lib/useMutation-N4ockVKi.js.map +0 -1
- package/src/lib/plugins/custom-pages/CustomPage.tsx +0 -18
- package/src/lib/plugins/openapi/playground/UrlDisplay.tsx +0 -32
- package/src/lib/plugins/openapi/playground/result-panel/RequestTab.tsx +0 -73
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zudoku",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-f687ed1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"homepage": "https://zudoku.dev",
|
|
6
6
|
"repository": {
|
|
@@ -133,13 +133,13 @@
|
|
|
133
133
|
},
|
|
134
134
|
"dependencies": {
|
|
135
135
|
"@apidevtools/json-schema-ref-parser": "12.0.2",
|
|
136
|
-
"@envelop/core": "5.
|
|
136
|
+
"@envelop/core": "5.3.0",
|
|
137
137
|
"@graphql-typed-document-node/core": "3.2.0",
|
|
138
138
|
"@hookform/resolvers": "4.1.3",
|
|
139
|
-
"@lekoarts/rehype-meta-as-attributes": "3.0.
|
|
139
|
+
"@lekoarts/rehype-meta-as-attributes": "3.0.3",
|
|
140
140
|
"@mdx-js/react": "3.1.0",
|
|
141
141
|
"@mdx-js/rollup": "3.1.0",
|
|
142
|
-
"@pothos/core": "4.
|
|
142
|
+
"@pothos/core": "4.7.0",
|
|
143
143
|
"@radix-ui/react-accordion": "1.2.11",
|
|
144
144
|
"@radix-ui/react-alert-dialog": "1.1.14",
|
|
145
145
|
"@radix-ui/react-aspect-ratio": "1.1.7",
|
|
@@ -162,18 +162,18 @@
|
|
|
162
162
|
"@radix-ui/react-toggle-group": "1.1.10",
|
|
163
163
|
"@radix-ui/react-tooltip": "1.2.7",
|
|
164
164
|
"@radix-ui/react-visually-hidden": "1.2.3",
|
|
165
|
-
"@scalar/openapi-parser": "0.
|
|
165
|
+
"@scalar/openapi-parser": "0.18.0",
|
|
166
166
|
"@sentry/node": "9.26.0",
|
|
167
|
-
"@shikijs/langs": "3.
|
|
168
|
-
"@shikijs/rehype": "3.
|
|
169
|
-
"@shikijs/themes": "3.
|
|
170
|
-
"@shikijs/transformers": "3.
|
|
167
|
+
"@shikijs/langs": "3.7.0",
|
|
168
|
+
"@shikijs/rehype": "3.7.0",
|
|
169
|
+
"@shikijs/themes": "3.7.0",
|
|
170
|
+
"@shikijs/transformers": "3.7.0",
|
|
171
171
|
"@sindresorhus/slugify": "2.2.1",
|
|
172
172
|
"@stefanprobst/rehype-extract-toc": "3.0.0",
|
|
173
173
|
"@tailwindcss/typography": "0.5.16",
|
|
174
|
-
"@tailwindcss/vite": "4.1.
|
|
174
|
+
"@tailwindcss/vite": "4.1.11",
|
|
175
175
|
"@tanem/react-nprogress": "5.0.55",
|
|
176
|
-
"@tanstack/react-query": "5.
|
|
176
|
+
"@tanstack/react-query": "5.81.5",
|
|
177
177
|
"@types/react": "19.1.8",
|
|
178
178
|
"@types/react-dom": "19.1.6",
|
|
179
179
|
"@vitejs/plugin-react": "4.4.1",
|
|
@@ -195,7 +195,7 @@
|
|
|
195
195
|
"glob-parent": "6.0.2",
|
|
196
196
|
"graphql": "16.11.0",
|
|
197
197
|
"graphql-type-json": "0.3.2",
|
|
198
|
-
"graphql-yoga": "5.
|
|
198
|
+
"graphql-yoga": "5.14.0",
|
|
199
199
|
"gray-matter": "4.0.3",
|
|
200
200
|
"hast-util-to-jsx-runtime": "^2.3.6",
|
|
201
201
|
"hast-util-to-string": "3.0.1",
|
|
@@ -204,18 +204,19 @@
|
|
|
204
204
|
"json-schema-to-typescript-lite": "14.1.0",
|
|
205
205
|
"loglevel": "1.9.2",
|
|
206
206
|
"lru-cache": "11.0.2",
|
|
207
|
-
"lucide-react": "0.
|
|
207
|
+
"lucide-react": "0.515.0",
|
|
208
208
|
"minimatch": "10.0.1",
|
|
209
|
+
"motion": "12.18.1",
|
|
209
210
|
"nanoevents": "^9.1.0",
|
|
210
|
-
"next-themes": "0.4.
|
|
211
|
+
"next-themes": "0.4.6",
|
|
211
212
|
"oauth4webapi": "2.17.0",
|
|
212
213
|
"object-hash": "3.0.0",
|
|
213
214
|
"openapi-types": "12.1.3",
|
|
214
215
|
"pagefind": "1.4.0-alpha.1",
|
|
215
216
|
"picocolors": "1.1.1",
|
|
216
|
-
"piscina": "5.
|
|
217
|
+
"piscina": "5.1.3",
|
|
217
218
|
"posthog-node": "4.17.1",
|
|
218
|
-
"react-error-boundary": "
|
|
219
|
+
"react-error-boundary": "6.0.0",
|
|
219
220
|
"react-hook-form": "7.57.0",
|
|
220
221
|
"react-is": "19.1.0",
|
|
221
222
|
"react-markdown": "10.1.0",
|
|
@@ -228,17 +229,17 @@
|
|
|
228
229
|
"remark-directive-rehype": "0.4.2",
|
|
229
230
|
"remark-frontmatter": "5.0.0",
|
|
230
231
|
"remark-gfm": "4.0.1",
|
|
231
|
-
"remark-mdx-frontmatter": "5.
|
|
232
|
+
"remark-mdx-frontmatter": "5.2.0",
|
|
232
233
|
"remark-parse": "^11.0.0",
|
|
233
234
|
"remark-rehype": "^11.1.2",
|
|
234
|
-
"rollup": "4.
|
|
235
|
-
"semver": "7.7.
|
|
236
|
-
"shiki": "3.
|
|
235
|
+
"rollup": "4.44.2",
|
|
236
|
+
"semver": "7.7.2",
|
|
237
|
+
"shiki": "3.7.0",
|
|
237
238
|
"sitemap": "8.0.0",
|
|
238
239
|
"spin-delay": "2.0.1",
|
|
239
240
|
"strip-ansi": "7.1.0",
|
|
240
|
-
"tailwind-merge": "3.3.
|
|
241
|
-
"tailwindcss": "4.1.
|
|
241
|
+
"tailwind-merge": "3.3.1",
|
|
242
|
+
"tailwindcss": "4.1.11",
|
|
242
243
|
"ulidx": "2.4.1",
|
|
243
244
|
"unified": "^11.0.5",
|
|
244
245
|
"unist-util-visit": "5.0.0",
|
|
@@ -246,18 +247,19 @@
|
|
|
246
247
|
"vfile": "6.0.3",
|
|
247
248
|
"vite": "6.3.5",
|
|
248
249
|
"yaml": "2.8.0",
|
|
249
|
-
"yargs": "
|
|
250
|
-
"zod": "3.25.
|
|
250
|
+
"yargs": "18.0.0",
|
|
251
|
+
"zod": "3.25.74",
|
|
251
252
|
"zod-to-ts": "1.2.0",
|
|
252
253
|
"zustand": "5.0.5"
|
|
253
254
|
},
|
|
254
255
|
"devDependencies": {
|
|
255
256
|
"@graphql-codegen/cli": "5.0.7",
|
|
256
|
-
"@graphql-codegen/client-preset": "4.8.
|
|
257
|
+
"@graphql-codegen/client-preset": "4.8.2",
|
|
258
|
+
"@inkeep/cxkit-types": "0.5.90",
|
|
257
259
|
"@testing-library/dom": "10.4.0",
|
|
258
260
|
"@testing-library/jest-dom": "6.6.3",
|
|
259
261
|
"@testing-library/react": "16.3.0",
|
|
260
|
-
"@types/estree": "1.0.
|
|
262
|
+
"@types/estree": "1.0.8",
|
|
261
263
|
"@types/express": "5.0.2",
|
|
262
264
|
"@types/glob-parent": "5.1.3",
|
|
263
265
|
"@types/har-format": "1.2.16",
|
|
@@ -273,14 +275,14 @@
|
|
|
273
275
|
"@types/yargs": "17.0.33",
|
|
274
276
|
"@vitest/coverage-v8": "3.2.1",
|
|
275
277
|
"esbuild": "0.25.1",
|
|
276
|
-
"happy-dom": "
|
|
278
|
+
"happy-dom": "18.0.1",
|
|
277
279
|
"mdast-util-mdx": "3.0.0",
|
|
278
280
|
"react": "19.1.0",
|
|
279
281
|
"react-dom": "19.1.0",
|
|
280
|
-
"rollup-plugin-visualizer": "
|
|
282
|
+
"rollup-plugin-visualizer": "6.0.3",
|
|
281
283
|
"tsx": "4.19.4",
|
|
282
284
|
"typescript": "5.8.3",
|
|
283
|
-
"vitest": "3.2.
|
|
285
|
+
"vitest": "3.2.4"
|
|
284
286
|
},
|
|
285
287
|
"peerDependencies": {
|
|
286
288
|
"@azure/msal-browser": "^4.13.0",
|
package/src/app/demo.tsx
CHANGED
|
@@ -10,6 +10,10 @@ import "./main.css";
|
|
|
10
10
|
import { getRoutesByConfig } from "./main.js";
|
|
11
11
|
|
|
12
12
|
const apiUrl = new URL(window.location.href).searchParams.get("api-url");
|
|
13
|
+
const logoUrl = new URL(window.location.href).searchParams.get("logo-url");
|
|
14
|
+
const logoWidth = new URL(window.location.href).searchParams.get("logo-width");
|
|
15
|
+
const title =
|
|
16
|
+
new URL(window.location.href).searchParams.get("title") ?? "Zudoku Demo";
|
|
13
17
|
|
|
14
18
|
if (!apiUrl) {
|
|
15
19
|
throw new Error(
|
|
@@ -29,9 +33,9 @@ if (!root) {
|
|
|
29
33
|
// IMPORTANT: This component must not contain tailwind classes
|
|
30
34
|
// This directory is not processed by the tailwind plugin
|
|
31
35
|
|
|
32
|
-
const config = {
|
|
33
|
-
|
|
34
|
-
|
|
36
|
+
const config: ZudokuConfig = {
|
|
37
|
+
site: {
|
|
38
|
+
title,
|
|
35
39
|
banner: {
|
|
36
40
|
message: <DemoAnnouncement />,
|
|
37
41
|
},
|
|
@@ -53,6 +57,19 @@ const config = {
|
|
|
53
57
|
],
|
|
54
58
|
} satisfies ZudokuConfig;
|
|
55
59
|
|
|
60
|
+
if (logoUrl && logoWidth) {
|
|
61
|
+
config.site = {
|
|
62
|
+
...config.site,
|
|
63
|
+
logo: {
|
|
64
|
+
src: {
|
|
65
|
+
light: logoUrl,
|
|
66
|
+
dark: logoUrl,
|
|
67
|
+
},
|
|
68
|
+
width: logoWidth,
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
|
|
56
73
|
const routes = getRoutesByConfig(config);
|
|
57
74
|
const router = createBrowserRouter(routes, {
|
|
58
75
|
basename: window.location.pathname,
|
package/src/app/main.css
CHANGED
|
@@ -121,6 +121,10 @@
|
|
|
121
121
|
.shiki {
|
|
122
122
|
counter-reset: line;
|
|
123
123
|
@apply leading-normal;
|
|
124
|
+
background-color: var(--shiki-light-bg) !important;
|
|
125
|
+
}
|
|
126
|
+
.dark .shiki {
|
|
127
|
+
background-color: var(--shiki-dark-bg) !important;
|
|
124
128
|
}
|
|
125
129
|
.code-block .shiki {
|
|
126
130
|
@apply grid grid-rows-1;
|
|
@@ -149,17 +153,34 @@
|
|
|
149
153
|
@apply tabular-nums inline-flex items-baseline justify-end me-4 w-3 text-muted-foreground/25;
|
|
150
154
|
}
|
|
151
155
|
|
|
152
|
-
.shiki.not-inline .line {
|
|
156
|
+
.light .shiki.not-inline .line {
|
|
153
157
|
@apply block -mx-4 px-4 w-[calc(100%+2rem)];
|
|
154
|
-
--highlighted-bg: hsl(
|
|
155
|
-
from var(--muted) h s calc(l + 4 * var(--dark)) / 50%
|
|
156
|
-
);
|
|
158
|
+
--highlighted-bg: hsl(from var(--shiki-light-bg) h s calc(l - 6));
|
|
157
159
|
}
|
|
160
|
+
.dark .shiki.not-inline .line {
|
|
161
|
+
@apply block -mx-4 px-4 w-[calc(100%+2rem)];
|
|
162
|
+
--highlighted-bg: hsl(from var(--shiki-dark-bg) h s calc(l + 10));
|
|
163
|
+
}
|
|
164
|
+
|
|
158
165
|
.shiki .line.highlighted {
|
|
159
|
-
@apply bg-(--highlighted-bg);
|
|
166
|
+
@apply bg-(--highlighted-bg) relative;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.shiki .line.highlighted:before {
|
|
170
|
+
position: absolute;
|
|
171
|
+
inset-inline-start: 0;
|
|
172
|
+
inset-block-start: 0;
|
|
173
|
+
inset-block-end: 0;
|
|
174
|
+
border-left: 2px solid
|
|
175
|
+
hsl(from var(--highlighted-bg) h s calc(l + 4 * var(--dark)));
|
|
176
|
+
content: "";
|
|
160
177
|
}
|
|
161
178
|
|
|
162
179
|
.shiki .highlighted-word {
|
|
180
|
+
--highlighted-bg: hsl(
|
|
181
|
+
from var(--muted) h s calc(l + 4 * var(--dark)) / 50%
|
|
182
|
+
);
|
|
183
|
+
|
|
163
184
|
@apply bg-(--highlighted-bg) px-0.5 rounded;
|
|
164
185
|
box-shadow: 0 0 0 4px var(--highlighted-bg);
|
|
165
186
|
}
|
package/src/app/main.tsx
CHANGED
|
@@ -36,12 +36,12 @@ export const convertZudokuConfigToOptions = (
|
|
|
36
36
|
basePath: config.basePath,
|
|
37
37
|
canonicalUrlOrigin: config.canonicalUrlOrigin,
|
|
38
38
|
protectedRoutes: config.protectedRoutes,
|
|
39
|
-
|
|
40
|
-
...config.
|
|
39
|
+
site: {
|
|
40
|
+
...config.site,
|
|
41
41
|
showPoweredBy:
|
|
42
42
|
ZuploEnv.buildConfig?.entitlements.devPortalZuploBranding ??
|
|
43
|
-
config.
|
|
44
|
-
logo: config.
|
|
43
|
+
config.site?.showPoweredBy,
|
|
44
|
+
logo: config.site?.logo,
|
|
45
45
|
},
|
|
46
46
|
slots: config.slots,
|
|
47
47
|
metadata: {
|
|
@@ -82,22 +82,13 @@ export const getRoutesByOptions = (
|
|
|
82
82
|
.flatMap((plugin) => (isNavigationPlugin(plugin) ? plugin.getRoutes() : []))
|
|
83
83
|
.concat(
|
|
84
84
|
enableStatusPages
|
|
85
|
-
? [400,
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}),
|
|
90
|
-
)
|
|
85
|
+
? [400, 404, 500].map((statusCode) => ({
|
|
86
|
+
path: `/${statusCode}`,
|
|
87
|
+
element: <StatusPage statusCode={statusCode} />,
|
|
88
|
+
}))
|
|
91
89
|
: [],
|
|
92
90
|
)
|
|
93
|
-
.concat([
|
|
94
|
-
{
|
|
95
|
-
path: "*",
|
|
96
|
-
loader: () => {
|
|
97
|
-
throw new Response("Not Found", { status: 404 });
|
|
98
|
-
},
|
|
99
|
-
},
|
|
100
|
-
]);
|
|
91
|
+
.concat([{ path: "*", element: <StatusPage statusCode={404} /> }]);
|
|
101
92
|
|
|
102
93
|
// @TODO Detect conflicts in routes and log warning
|
|
103
94
|
|
|
@@ -125,6 +116,7 @@ export const getRoutesByConfig = (config: ZudokuConfig): RouteObject[] => {
|
|
|
125
116
|
<Layout />
|
|
126
117
|
</Zudoku>
|
|
127
118
|
),
|
|
119
|
+
hydrateFallbackElement: <div>Loading...</div>,
|
|
128
120
|
children: [
|
|
129
121
|
{
|
|
130
122
|
element: <RouteGuard />,
|
package/src/app/standalone.tsx
CHANGED
|
@@ -13,14 +13,14 @@ if (!root) {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
const apiUrl = root.getAttribute("data-api-url");
|
|
16
|
-
const
|
|
16
|
+
const title = document.getElementsByTagName("title")[0]!.innerText;
|
|
17
17
|
const logoUrl = root.getAttribute("data-logo-url");
|
|
18
18
|
|
|
19
19
|
// IMPORTANT: This component must not contain tailwind classes
|
|
20
20
|
// This directory is not processed by the tailwind plugin
|
|
21
21
|
|
|
22
22
|
const config = {
|
|
23
|
-
|
|
23
|
+
site: {
|
|
24
24
|
logo: logoUrl
|
|
25
25
|
? {
|
|
26
26
|
src: {
|
|
@@ -29,7 +29,7 @@ const config = {
|
|
|
29
29
|
},
|
|
30
30
|
}
|
|
31
31
|
: undefined,
|
|
32
|
-
|
|
32
|
+
title,
|
|
33
33
|
},
|
|
34
34
|
navigation: [
|
|
35
35
|
{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export interface AuthenticationPlugin {
|
|
2
|
-
signUp(options?: { redirectTo?: string }): Promise<void>;
|
|
3
|
-
signIn(options?: { redirectTo?: string }): Promise<void>;
|
|
2
|
+
signUp(options?: { redirectTo?: string; replace?: boolean }): Promise<void>;
|
|
3
|
+
signIn(options?: { redirectTo?: string; replace?: boolean }): Promise<void>;
|
|
4
4
|
signOut(): Promise<void>;
|
|
5
5
|
// @deprecated use signRequest instead
|
|
6
6
|
getAccessToken(): Promise<string>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useEffect } from "react";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { useSearchParams } from "react-router";
|
|
3
|
+
import { Spinner } from "zudoku/components";
|
|
4
4
|
import {
|
|
5
5
|
Card,
|
|
6
6
|
CardContent,
|
|
@@ -16,6 +16,7 @@ export const SignIn = () => {
|
|
|
16
16
|
useEffect(() => {
|
|
17
17
|
void context.authentication?.signIn({
|
|
18
18
|
redirectTo: search.get("redirect") ?? undefined,
|
|
19
|
+
replace: true,
|
|
19
20
|
});
|
|
20
21
|
}, [context.authentication, search]);
|
|
21
22
|
|
|
@@ -30,16 +31,8 @@ export const SignIn = () => {
|
|
|
30
31
|
</CardDescription>
|
|
31
32
|
</CardHeader>
|
|
32
33
|
<CardContent>
|
|
33
|
-
<div className="flex
|
|
34
|
-
<
|
|
35
|
-
onClick={() => context.authentication?.signIn()}
|
|
36
|
-
variant="default"
|
|
37
|
-
>
|
|
38
|
-
Login
|
|
39
|
-
</Button>
|
|
40
|
-
<Button variant="link" className="text-muted-foreground" asChild>
|
|
41
|
-
<Link to="/">Go home</Link>
|
|
42
|
-
</Button>
|
|
34
|
+
<div className="flex items-center text-sm font-medium gap-2">
|
|
35
|
+
<Spinner /> Redirecting...
|
|
43
36
|
</div>
|
|
44
37
|
</CardContent>
|
|
45
38
|
</Card>
|
|
@@ -113,25 +113,41 @@ export class OpenIDAuthenticationProvider
|
|
|
113
113
|
});
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
-
async signUp({
|
|
116
|
+
async signUp({
|
|
117
|
+
redirectTo,
|
|
118
|
+
replace = false,
|
|
119
|
+
}: {
|
|
120
|
+
redirectTo?: string;
|
|
121
|
+
replace?: boolean;
|
|
122
|
+
} = {}) {
|
|
117
123
|
return this.authorize({
|
|
118
124
|
redirectTo: this.redirectToAfterSignUp ?? redirectTo ?? "/",
|
|
125
|
+
replace,
|
|
119
126
|
isSignUp: true,
|
|
120
127
|
});
|
|
121
128
|
}
|
|
122
129
|
|
|
123
|
-
async signIn({
|
|
130
|
+
async signIn({
|
|
131
|
+
redirectTo,
|
|
132
|
+
replace = false,
|
|
133
|
+
}: {
|
|
134
|
+
redirectTo?: string;
|
|
135
|
+
replace?: boolean;
|
|
136
|
+
} = {}) {
|
|
124
137
|
return this.authorize({
|
|
125
138
|
redirectTo: this.redirectToAfterSignIn ?? redirectTo ?? "/",
|
|
139
|
+
replace,
|
|
126
140
|
});
|
|
127
141
|
}
|
|
128
142
|
|
|
129
143
|
private async authorize({
|
|
130
144
|
redirectTo,
|
|
131
145
|
isSignUp = false,
|
|
146
|
+
replace = false,
|
|
132
147
|
}: {
|
|
133
148
|
redirectTo: string;
|
|
134
149
|
isSignUp?: boolean;
|
|
150
|
+
replace?: boolean;
|
|
135
151
|
}): Promise<void> {
|
|
136
152
|
const code_challenge_method = "S256";
|
|
137
153
|
const authorizationServer = await this.getAuthServer();
|
|
@@ -187,8 +203,11 @@ export class OpenIDAuthenticationProvider
|
|
|
187
203
|
sessionStorage.setItem(STATE_KEY, state);
|
|
188
204
|
authorizationUrl.searchParams.set("state", state);
|
|
189
205
|
|
|
190
|
-
|
|
191
|
-
|
|
206
|
+
if (replace) {
|
|
207
|
+
location.replace(authorizationUrl.href);
|
|
208
|
+
} else {
|
|
209
|
+
location.href = authorizationUrl.href;
|
|
210
|
+
}
|
|
192
211
|
}
|
|
193
212
|
|
|
194
213
|
async getAccessToken(): Promise<string> {
|
|
@@ -26,7 +26,7 @@ const AutocompletePopover = ({
|
|
|
26
26
|
options,
|
|
27
27
|
onChange,
|
|
28
28
|
className,
|
|
29
|
-
placeholder = "
|
|
29
|
+
placeholder = "Value",
|
|
30
30
|
onEnterPress,
|
|
31
31
|
ref,
|
|
32
32
|
}: AutocompleteProps) => {
|
|
@@ -39,6 +39,7 @@ const AutocompletePopover = ({
|
|
|
39
39
|
<Popover open={open}>
|
|
40
40
|
<PopoverAnchor>
|
|
41
41
|
<CommandInlineInput
|
|
42
|
+
autoComplete="off"
|
|
42
43
|
ref={(el) => {
|
|
43
44
|
inputRef.current = el;
|
|
44
45
|
if (typeof ref === "function") {
|
|
@@ -12,7 +12,7 @@ const COLOR_MAP = {
|
|
|
12
12
|
} as const;
|
|
13
13
|
|
|
14
14
|
export const Banner = () => {
|
|
15
|
-
const { page } = useZudoku();
|
|
15
|
+
const { site: page } = useZudoku();
|
|
16
16
|
const [isBannerOpen, setIsBannerOpen] = useState(true);
|
|
17
17
|
|
|
18
18
|
if (!page?.banner || !isBannerOpen) {
|
|
@@ -34,7 +34,6 @@ export const Banner = () => {
|
|
|
34
34
|
"relative text-primary-foreground text-sm font-medium px-4 py-2 flex gap-2 items-center lg:h-(--banner-height)",
|
|
35
35
|
mappedColor,
|
|
36
36
|
)}
|
|
37
|
-
data-pagefind-ignore="all"
|
|
38
37
|
style={style}
|
|
39
38
|
>
|
|
40
39
|
<div className="w-full">{page.banner.message}</div>
|
|
@@ -9,7 +9,10 @@ export const CategoryHeading = ({
|
|
|
9
9
|
className?: string;
|
|
10
10
|
}) => {
|
|
11
11
|
return (
|
|
12
|
-
<div
|
|
12
|
+
<div
|
|
13
|
+
className={cx("text-sm font-semibold text-primary mb-2", className)}
|
|
14
|
+
data-pagefind-ignore="all"
|
|
15
|
+
>
|
|
13
16
|
{children}
|
|
14
17
|
</div>
|
|
15
18
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import { CategoryHeading } from "./CategoryHeading.js";
|
|
3
3
|
import { Heading } from "./Heading.js";
|
|
4
|
-
import {
|
|
4
|
+
import { Typography } from "./Typography.js";
|
|
5
5
|
|
|
6
6
|
export const ErrorPage = ({
|
|
7
7
|
title = "An error occurred",
|
|
@@ -13,7 +13,7 @@ export const ErrorPage = ({
|
|
|
13
13
|
category?: ReactNode;
|
|
14
14
|
}) => {
|
|
15
15
|
return (
|
|
16
|
-
<
|
|
16
|
+
<Typography className={"h-full pt-(--padding-content-top)"}>
|
|
17
17
|
{category && <CategoryHeading>{category}</CategoryHeading>}
|
|
18
18
|
{title && (
|
|
19
19
|
<Heading level={1} className="flex gap-3.5 items-center">
|
|
@@ -21,6 +21,6 @@ export const ErrorPage = ({
|
|
|
21
21
|
</Heading>
|
|
22
22
|
)}
|
|
23
23
|
<p>{message}</p>
|
|
24
|
-
</
|
|
24
|
+
</Typography>
|
|
25
25
|
);
|
|
26
26
|
};
|
|
@@ -60,56 +60,57 @@ export const Header = memo(function HeaderInner() {
|
|
|
60
60
|
const auth = useAuth();
|
|
61
61
|
const { isAuthenticated, profile, isAuthEnabled } = useAuth();
|
|
62
62
|
const context = useZudoku();
|
|
63
|
-
const {
|
|
63
|
+
const { site, plugins, options } = context;
|
|
64
64
|
|
|
65
65
|
const accountItems = plugins
|
|
66
66
|
.filter((p) => isProfileMenuPlugin(p))
|
|
67
67
|
.flatMap((p) => p.getProfileMenuItems(context))
|
|
68
68
|
.sort((i) => i.weight ?? 0);
|
|
69
69
|
|
|
70
|
-
const logoLightSrc =
|
|
71
|
-
? /https?:\/\//.test(
|
|
72
|
-
?
|
|
73
|
-
: joinUrl(options.basePath,
|
|
70
|
+
const logoLightSrc = site?.logo
|
|
71
|
+
? /https?:\/\//.test(site.logo.src.light)
|
|
72
|
+
? site.logo.src.light
|
|
73
|
+
: joinUrl(options.basePath, site.logo.src.light)
|
|
74
74
|
: undefined;
|
|
75
|
-
const logoDarkSrc =
|
|
76
|
-
? /https?:\/\//.test(
|
|
77
|
-
?
|
|
78
|
-
: joinUrl(options.basePath,
|
|
75
|
+
const logoDarkSrc = site?.logo
|
|
76
|
+
? /https?:\/\//.test(site.logo.src.dark)
|
|
77
|
+
? site.logo.src.dark
|
|
78
|
+
: joinUrl(options.basePath, site.logo.src.dark)
|
|
79
79
|
: undefined;
|
|
80
80
|
|
|
81
81
|
const borderBottom = "inset-shadow-[0_-1px_0_0_var(--border)]";
|
|
82
82
|
|
|
83
83
|
return (
|
|
84
|
-
<header
|
|
84
|
+
<header
|
|
85
|
+
className="sticky lg:top-0 z-10 bg-background/80 backdrop-blur w-full"
|
|
86
|
+
data-pagefind-ignore="all"
|
|
87
|
+
>
|
|
85
88
|
<Banner />
|
|
86
89
|
<div className={cn(borderBottom, "relative")}>
|
|
87
90
|
<PageProgress />
|
|
88
91
|
<div className="max-w-screen-2xl mx-auto flex items-center justify-between h-(--top-header-height) px-4 lg:px-8 border-transparent">
|
|
89
92
|
<div className="flex">
|
|
90
|
-
<Link to="/">
|
|
93
|
+
<Link to={site?.logo?.href ?? "/"}>
|
|
91
94
|
<div className="flex items-center gap-3.5">
|
|
92
|
-
{
|
|
95
|
+
{site?.logo && (
|
|
93
96
|
<>
|
|
94
97
|
<img
|
|
95
98
|
src={logoLightSrc}
|
|
96
|
-
alt={
|
|
97
|
-
style={{ width:
|
|
99
|
+
alt={site.logo.alt ?? site.title}
|
|
100
|
+
style={{ width: site.logo.width }}
|
|
98
101
|
className="max-h-(--top-header-height) dark:hidden"
|
|
99
102
|
loading="lazy"
|
|
100
103
|
/>
|
|
101
104
|
<img
|
|
102
105
|
src={logoDarkSrc}
|
|
103
|
-
alt={
|
|
104
|
-
style={{ width:
|
|
106
|
+
alt={site.logo.alt ?? site.title}
|
|
107
|
+
style={{ width: site.logo.width }}
|
|
105
108
|
className="max-h-(--top-header-height) hidden dark:block"
|
|
106
109
|
loading="lazy"
|
|
107
110
|
/>
|
|
108
111
|
</>
|
|
109
112
|
)}
|
|
110
|
-
<span className="font-semibold text-2xl">
|
|
111
|
-
{page?.pageTitle}
|
|
112
|
-
</span>
|
|
113
|
+
<span className="font-semibold text-2xl">{site?.title}</span>
|
|
113
114
|
</div>
|
|
114
115
|
</Link>
|
|
115
116
|
</div>
|
|
@@ -16,7 +16,7 @@ export const Main = ({ children }: PropsWithChildren) => {
|
|
|
16
16
|
|
|
17
17
|
return (
|
|
18
18
|
<Drawer
|
|
19
|
-
direction={options.
|
|
19
|
+
direction={options.site?.dir === "rtl" ? "right" : "left"}
|
|
20
20
|
open={isDrawerOpen}
|
|
21
21
|
onOpenChange={(open) => setDrawerOpen(open)}
|
|
22
22
|
>
|
|
@@ -5,12 +5,10 @@ import remarkGfm from "remark-gfm";
|
|
|
5
5
|
import { createConfiguredShikiRehypePlugins } from "../shiki.js";
|
|
6
6
|
import { MdxComponents } from "../util/MdxComponents.js";
|
|
7
7
|
import { useZudoku } from "./context/ZudokuContext.js";
|
|
8
|
+
import { Typography } from "./Typography.js";
|
|
8
9
|
|
|
9
10
|
const remarkPlugins = [remarkGfm];
|
|
10
11
|
|
|
11
|
-
// other styles are defined in main.css .prose
|
|
12
|
-
export const ProseClasses = "prose dark:prose-invert prose-neutral";
|
|
13
|
-
|
|
14
12
|
export const Markdown = memo(
|
|
15
13
|
({
|
|
16
14
|
content,
|
|
@@ -36,7 +34,7 @@ export const Markdown = memo(
|
|
|
36
34
|
);
|
|
37
35
|
|
|
38
36
|
return (
|
|
39
|
-
<
|
|
37
|
+
<Typography className={className}>
|
|
40
38
|
<MarkdownHooks
|
|
41
39
|
remarkPlugins={remarkPlugins}
|
|
42
40
|
rehypePlugins={rehypePlugins}
|
|
@@ -44,7 +42,7 @@ export const Markdown = memo(
|
|
|
44
42
|
>
|
|
45
43
|
{content}
|
|
46
44
|
</MarkdownHooks>
|
|
47
|
-
</
|
|
45
|
+
</Typography>
|
|
48
46
|
);
|
|
49
47
|
},
|
|
50
48
|
);
|