@lukoweb/apitogo 0.2.22 → 0.2.24
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 +94 -94
- package/cli.js +13 -13
- package/client.d.ts +8 -8
- package/dist/cli/cli.js +561 -232
- package/dist/declarations/cli/platform/client/platform-api.d.ts +18 -0
- package/dist/declarations/config/validators/InputNavigationSchema.d.ts +7 -7
- package/dist/declarations/config/validators/ZudokuConfig.d.ts +1 -1
- package/docs/cli/commands.md +75 -75
- package/docs/cli/go-live.md +123 -123
- package/docs/cli/overview.md +91 -91
- package/docs/cli/setup.md +141 -141
- package/docs/cli/shape.md +127 -127
- package/docs/components/alert.mdx +130 -130
- package/docs/components/badge.mdx +70 -70
- package/docs/components/button.mdx +132 -132
- package/docs/components/callout.mdx +112 -112
- package/docs/components/card.mdx +104 -104
- package/docs/components/checkbox.mdx +72 -72
- package/docs/components/client-only.mdx +79 -79
- package/docs/components/code-tabs.mdx +179 -179
- package/docs/components/dialog.mdx +167 -167
- package/docs/components/head.mdx +200 -200
- package/docs/components/icons.mdx +27 -27
- package/docs/components/input.mdx +96 -96
- package/docs/components/label.mdx +86 -86
- package/docs/components/link.mdx +242 -242
- package/docs/components/markdown.mdx +151 -151
- package/docs/components/mermaid.mdx +81 -81
- package/docs/components/playground.mdx +85 -85
- package/docs/components/secret.mdx +79 -79
- package/docs/components/select.mdx +176 -176
- package/docs/components/shadcn.mdx +73 -73
- package/docs/components/slider.mdx +108 -108
- package/docs/components/slot.mdx +119 -119
- package/docs/components/stepper.mdx +138 -138
- package/docs/components/switch.mdx +96 -96
- package/docs/components/syntax-highlight.mdx +602 -602
- package/docs/components/textarea.mdx +78 -78
- package/docs/components/tooltip.mdx +195 -195
- package/docs/components/typography.mdx +61 -61
- package/docs/components.mdx +60 -60
- package/docs/concepts/auth-provider-api-identities.md +105 -105
- package/docs/configuration/ai-assistants.md +65 -65
- package/docs/configuration/api-catalog.md +109 -109
- package/docs/configuration/api-reference.md +397 -397
- package/docs/configuration/authentication-auth0.md +181 -181
- package/docs/configuration/authentication-azure-ad.md +245 -245
- package/docs/configuration/authentication-clerk.md +117 -117
- package/docs/configuration/authentication-firebase.md +69 -69
- package/docs/configuration/authentication-pingfederate.md +143 -143
- package/docs/configuration/authentication-supabase.md +233 -233
- package/docs/configuration/authentication.md +159 -159
- package/docs/configuration/build-configuration.mdx +147 -147
- package/docs/configuration/docs.md +282 -282
- package/docs/configuration/footer.mdx +118 -118
- package/docs/configuration/gateway.md +221 -221
- package/docs/configuration/llms.md +90 -90
- package/docs/configuration/make-config.mdx +124 -124
- package/docs/configuration/manifest.md +128 -128
- package/docs/configuration/navigation.mdx +421 -421
- package/docs/configuration/overview.md +166 -166
- package/docs/configuration/plans.md +153 -153
- package/docs/configuration/protected-routes.md +150 -150
- package/docs/configuration/search.md +164 -164
- package/docs/configuration/sentry.mdx +44 -44
- package/docs/configuration/site.md +124 -124
- package/docs/configuration/slots.mdx +125 -125
- package/docs/configuration/vite-config.md +18 -18
- package/docs/custom-plugins.md +285 -285
- package/docs/customization/colors-theme.mdx +278 -278
- package/docs/customization/fonts.md +110 -110
- package/docs/customization/landing-page.md +188 -188
- package/docs/deploy/apache-nginx.md +41 -41
- package/docs/deploy/apitogo.md +17 -17
- package/docs/deploy/cloudflare-pages.md +74 -74
- package/docs/deploy/direct-upload.md +17 -17
- package/docs/deploy/github-pages.md +49 -49
- package/docs/deploy/vercel.md +101 -101
- package/docs/deployment.md +9 -9
- package/docs/extending/events.md +124 -124
- package/docs/guides/custom-pages.md +110 -110
- package/docs/guides/environment-variables.md +94 -94
- package/docs/guides/managing-api-keys-and-identities.md +89 -89
- package/docs/guides/mermaid.mdx +70 -70
- package/docs/guides/navigation-rules.mdx +203 -203
- package/docs/guides/processors.mdx +234 -234
- package/docs/guides/static-files.md +55 -55
- package/docs/guides/transforming-examples.md +156 -156
- package/docs/guides/using-multiple-apis.md +87 -87
- package/docs/markdown/admonitions.md +128 -128
- package/docs/markdown/code-blocks.md +196 -196
- package/docs/markdown/frontmatter.md +173 -173
- package/docs/markdown/mdx.md +68 -68
- package/docs/markdown/overview.md +275 -275
- package/docs/mcp/go-live.md +100 -100
- package/docs/mcp/overview.md +76 -76
- package/docs/mcp/setup.md +173 -173
- package/docs/mcp/shape.md +77 -77
- package/docs/mcp/tools.md +102 -102
- package/docs/plugins.md +24 -24
- package/docs/quickstart.md +72 -72
- package/docs/writing.mdx +72 -72
- package/package.json +1 -1
- package/src/app/ZuploBuildConfig.ts +36 -36
- package/src/app/apitogoBrandTheme.ts +47 -47
- package/src/app/defaultTheme.css +77 -77
- package/src/app/demo-cdn.html +37 -37
- package/src/app/demo.html +21 -21
- package/src/app/demo.tsx +77 -77
- package/src/app/entry.client.tsx +107 -107
- package/src/app/entry.server.tsx +160 -160
- package/src/app/env.ts +40 -40
- package/src/app/main.css +400 -400
- package/src/app/main.tsx +167 -167
- package/src/app/polyfills.ts +47 -47
- package/src/app/processRoutes.tsx +51 -51
- package/src/app/sentry.ts +24 -24
- package/src/app/standalone.html +23 -23
- package/src/app/standalone.tsx +60 -60
- package/src/app/utils/createRedirectRoutes.ts +11 -11
- package/src/config/apitogo-config-core.ts +7 -3
- package/src/config/apitogo-config-loader.browser.ts +17 -17
- package/src/config/apitogo-config-loader.node.ts +88 -88
- package/src/config/apitogo-config-loader.ts +6 -6
- package/src/config/build-apitogo-config.ts +61 -61
- package/src/config/config.ts +74 -74
- package/src/config/create-plugin.ts +71 -71
- package/src/config/default-landing-content.ts +149 -149
- package/src/config/file-exists.ts +6 -6
- package/src/config/gateway-limits.ts +128 -128
- package/src/config/landing-manifest.ts +11 -11
- package/src/config/landing-openapi-showcase.ts +124 -124
- package/src/config/loader.ts +375 -375
- package/src/config/local-manifest.ts +545 -545
- package/src/config/resolve-modules.ts +354 -354
- package/src/config/v2/__fixtures__/scenario-a-docs-only.json +6 -6
- package/src/config/v2/__fixtures__/scenario-b-managed-origin.json +14 -14
- package/src/config/v2/__fixtures__/scenario-c-proxy-oidc.json +15 -15
- package/src/config/v2/__fixtures__/scenario-h-full-stack.json +28 -28
- package/src/config/v2/docs-navigation.ts +72 -72
- package/src/config/v2/errors.ts +42 -42
- package/src/config/v2/gateway-reference.ts +220 -220
- package/src/config/v2/gateway-request.ts +123 -123
- package/src/config/v2/home-redirect.ts +98 -98
- package/src/config/v2/index.ts +126 -126
- package/src/config/v2/init.ts +273 -273
- package/src/config/v2/layout.ts +237 -237
- package/src/config/v2/ledger.ts +235 -235
- package/src/config/v2/link-directory.ts +34 -0
- package/src/config/v2/load.ts +70 -70
- package/src/config/v2/manifest.ts +452 -452
- package/src/config/v2/parse.ts +214 -214
- package/src/config/v2/paths.ts +54 -54
- package/src/config/v2/portal-profile.ts +88 -88
- package/src/config/v2/resolve.ts +188 -188
- package/src/config/v2/rules.ts +714 -714
- package/src/config/v2/schema.ts +245 -245
- package/src/config/v2/services.ts +663 -663
- package/src/config/v2/workspace.ts +3 -2
- package/src/config/v2/wrapper.ts +24 -2
- package/src/config/validators/BuildSchema.ts +95 -95
- package/src/config/validators/HeaderNavigationSchema.ts +44 -44
- package/src/config/validators/InputNavigationSchema.test-d.ts +178 -178
- package/src/config/validators/InputNavigationSchema.ts +206 -206
- package/src/config/validators/ModulesSchema.ts +502 -502
- package/src/config/validators/NavigationSchema.ts +352 -352
- package/src/config/validators/ProtectedRoutesSchema.ts +35 -35
- package/src/config/validators/ZudokuConfig.ts +792 -792
- package/src/config/validators/auth.ts +3 -3
- package/src/config/validators/reason-codes.ts +7 -7
- package/src/env.d.ts +11 -11
- package/src/index.ts +83 -83
- package/src/lib/MissingIcon.tsx +22 -22
- package/src/lib/assets/language-icons/bun.tsx +50 -50
- package/src/lib/assets/language-icons/c.tsx +31 -31
- package/src/lib/assets/language-icons/commonlisp.tsx +22 -22
- package/src/lib/assets/language-icons/cpp.tsx +35 -35
- package/src/lib/assets/language-icons/csharp.tsx +35 -35
- package/src/lib/assets/language-icons/css.tsx +36 -36
- package/src/lib/assets/language-icons/dart.tsx +39 -39
- package/src/lib/assets/language-icons/elixir.tsx +19 -19
- package/src/lib/assets/language-icons/go.tsx +19 -19
- package/src/lib/assets/language-icons/graphql.tsx +19 -19
- package/src/lib/assets/language-icons/html.tsx +24 -24
- package/src/lib/assets/language-icons/java.tsx +35 -35
- package/src/lib/assets/language-icons/javascript.tsx +11 -11
- package/src/lib/assets/language-icons/json.tsx +19 -19
- package/src/lib/assets/language-icons/kotlin.tsx +30 -30
- package/src/lib/assets/language-icons/markdown.tsx +19 -19
- package/src/lib/assets/language-icons/mdx.tsx +23 -23
- package/src/lib/assets/language-icons/npm.tsx +15 -15
- package/src/lib/assets/language-icons/objectivec.tsx +23 -23
- package/src/lib/assets/language-icons/ocaml.tsx +34 -34
- package/src/lib/assets/language-icons/php.tsx +19 -19
- package/src/lib/assets/language-icons/pnpm.tsx +32 -32
- package/src/lib/assets/language-icons/powershell.tsx +27 -27
- package/src/lib/assets/language-icons/python.tsx +23 -23
- package/src/lib/assets/language-icons/react.tsx +21 -21
- package/src/lib/assets/language-icons/ruby.tsx +19 -19
- package/src/lib/assets/language-icons/rust.tsx +19 -19
- package/src/lib/assets/language-icons/scala.tsx +19 -19
- package/src/lib/assets/language-icons/shell.tsx +19 -19
- package/src/lib/assets/language-icons/swift.tsx +19 -19
- package/src/lib/assets/language-icons/toml.tsx +23 -23
- package/src/lib/assets/language-icons/typescript.tsx +23 -23
- package/src/lib/assets/language-icons/xml.tsx +19 -19
- package/src/lib/assets/language-icons/yaml.tsx +23 -23
- package/src/lib/assets/language-icons/yarn.tsx +17 -17
- package/src/lib/assets/language-icons/zig.tsx +32 -32
- package/src/lib/auth/issuer.ts +34 -34
- package/src/lib/authentication/AuthenticationPlugin.tsx +33 -33
- package/src/lib/authentication/auth-header-nav.ts +46 -46
- package/src/lib/authentication/authentication.ts +51 -51
- package/src/lib/authentication/components/CallbackHandler.tsx +45 -45
- package/src/lib/authentication/components/OAuthErrorPage.tsx +197 -197
- package/src/lib/authentication/components/ProductionUnlockPage.tsx +26 -26
- package/src/lib/authentication/components/SignIn.tsx +46 -46
- package/src/lib/authentication/components/SignOut.tsx +15 -15
- package/src/lib/authentication/components/SignUp.tsx +48 -48
- package/src/lib/authentication/constants.ts +1 -1
- package/src/lib/authentication/errors.ts +34 -34
- package/src/lib/authentication/header-nav-filter.ts +35 -35
- package/src/lib/authentication/hook.ts +141 -141
- package/src/lib/authentication/providers/auth0.tsx +91 -91
- package/src/lib/authentication/providers/azureb2c.tsx +223 -223
- package/src/lib/authentication/providers/clerk.tsx +224 -224
- package/src/lib/authentication/providers/dev-portal-auth-pages.tsx +602 -602
- package/src/lib/authentication/providers/dev-portal-constants.ts +38 -38
- package/src/lib/authentication/providers/dev-portal-demo.ts +151 -151
- package/src/lib/authentication/providers/dev-portal-utils.ts +279 -279
- package/src/lib/authentication/providers/dev-portal.tsx +448 -448
- package/src/lib/authentication/providers/firebase.tsx +486 -486
- package/src/lib/authentication/providers/openid.tsx +516 -516
- package/src/lib/authentication/providers/supabase.tsx +412 -412
- package/src/lib/authentication/providers/util.ts +26 -26
- package/src/lib/authentication/state.ts +180 -180
- package/src/lib/authentication/ui/AuthCard.tsx +7 -7
- package/src/lib/authentication/ui/EmailLinkCallbackUi.tsx +129 -129
- package/src/lib/authentication/ui/EmailLinkSentUi.tsx +105 -105
- package/src/lib/authentication/ui/EmailLinkSignInUi.tsx +100 -100
- package/src/lib/authentication/ui/EmailVerificationUi.tsx +128 -128
- package/src/lib/authentication/ui/ZudokuAuthUi.tsx +620 -620
- package/src/lib/authentication/ui/icons/Apple.tsx +10 -10
- package/src/lib/authentication/ui/icons/Facebook.tsx +15 -15
- package/src/lib/authentication/ui/icons/Github.tsx +16 -16
- package/src/lib/authentication/ui/icons/Google.tsx +16 -16
- package/src/lib/authentication/ui/icons/Microsoft.tsx +12 -12
- package/src/lib/authentication/ui/icons/X.tsx +10 -10
- package/src/lib/authentication/utils/relativeRedirectUrl.ts +16 -16
- package/src/lib/components/AiAssistantMenuItems.tsx +102 -102
- package/src/lib/components/AnchorLink.tsx +24 -24
- package/src/lib/components/Autocomplete.tsx +123 -123
- package/src/lib/components/Banner.tsx +52 -52
- package/src/lib/components/Bootstrap.tsx +77 -77
- package/src/lib/components/BuildCheck.tsx +87 -87
- package/src/lib/components/CategoryHeading.tsx +19 -19
- package/src/lib/components/ClientOnly.tsx +19 -19
- package/src/lib/components/DeveloperHint.tsx +39 -39
- package/src/lib/components/ErrorPage.tsx +26 -26
- package/src/lib/components/Footer.tsx +146 -146
- package/src/lib/components/Framed.tsx +51 -51
- package/src/lib/components/Header.tsx +261 -261
- package/src/lib/components/HeaderAuthActions.tsx +32 -32
- package/src/lib/components/HeaderNavigation.tsx +176 -176
- package/src/lib/components/Heading.tsx +84 -84
- package/src/lib/components/InlineCode.tsx +15 -15
- package/src/lib/components/LandingLayout.tsx +27 -27
- package/src/lib/components/LanguageIcon.tsx +199 -199
- package/src/lib/components/Layout.tsx +59 -59
- package/src/lib/components/Main.tsx +52 -52
- package/src/lib/components/Markdown.tsx +55 -55
- package/src/lib/components/Mermaid.tsx +74 -74
- package/src/lib/components/Meta.tsx +46 -46
- package/src/lib/components/MobileTopNavigation.tsx +283 -283
- package/src/lib/components/MultiSelect.tsx +86 -86
- package/src/lib/components/NotFoundPage.tsx +37 -37
- package/src/lib/components/PageProgress.tsx +28 -28
- package/src/lib/components/PagefindSearchMeta.tsx +14 -14
- package/src/lib/components/Pagination.tsx +44 -44
- package/src/lib/components/PathRenderer.tsx +61 -61
- package/src/lib/components/PluginHeads.tsx +17 -17
- package/src/lib/components/Search.tsx +70 -70
- package/src/lib/components/SiteTitle.tsx +58 -58
- package/src/lib/components/Slot.tsx +65 -65
- package/src/lib/components/Spinner.tsx +5 -5
- package/src/lib/components/StatusPage.tsx +96 -96
- package/src/lib/components/ThemeSwitch.tsx +99 -99
- package/src/lib/components/TopNavigation.tsx +90 -90
- package/src/lib/components/Typography.tsx +12 -12
- package/src/lib/components/Zudoku.tsx +105 -105
- package/src/lib/components/cache.ts +27 -27
- package/src/lib/components/context/RenderContext.ts +11 -11
- package/src/lib/components/context/RouterEventsEmitter.tsx +19 -19
- package/src/lib/components/context/SlotProvider.tsx +149 -149
- package/src/lib/components/context/ViewportAnchorContext.tsx +137 -137
- package/src/lib/components/context/ZudokuContext.ts +140 -140
- package/src/lib/components/context/ZudokuProvider.tsx +20 -20
- package/src/lib/components/context/ZudokuReactContext.tsx +17 -17
- package/src/lib/components/index.ts +36 -36
- package/src/lib/components/navigation/Navigation.tsx +51 -51
- package/src/lib/components/navigation/NavigationBadge.tsx +48 -48
- package/src/lib/components/navigation/NavigationCategory.tsx +157 -157
- package/src/lib/components/navigation/NavigationFilterContext.tsx +28 -28
- package/src/lib/components/navigation/NavigationFilterInput.tsx +35 -35
- package/src/lib/components/navigation/NavigationItem.tsx +181 -181
- package/src/lib/components/navigation/NavigationWrapper.tsx +49 -49
- package/src/lib/components/navigation/PoweredByZudoku.tsx +39 -39
- package/src/lib/components/navigation/Toc.tsx +137 -137
- package/src/lib/components/navigation/ZudokuLogo.tsx +25 -25
- package/src/lib/components/navigation/ZuploLogo.tsx +14 -14
- package/src/lib/components/navigation/utils.ts +234 -234
- package/src/lib/core/RouteGuard.tsx +260 -260
- package/src/lib/core/ZudokuContext.ts +272 -272
- package/src/lib/core/plugins.ts +139 -139
- package/src/lib/core/react-query.ts +1 -1
- package/src/lib/core/router.ts +1 -1
- package/src/lib/core/transform-config.ts +67 -67
- package/src/lib/demo/DemoAnnouncement.tsx +17 -17
- package/src/lib/errors/ErrorAlert.tsx +28 -28
- package/src/lib/errors/ErrorMessage.tsx +50 -50
- package/src/lib/errors/RouterError.tsx +18 -18
- package/src/lib/errors/ServerError.tsx +5 -5
- package/src/lib/errors/TopLevelError.tsx +6 -6
- package/src/lib/hooks/index.ts +13 -13
- package/src/lib/hooks/useEvent.ts +41 -41
- package/src/lib/hooks/useHighlighter.ts +15 -15
- package/src/lib/hooks/useHotkey.ts +70 -70
- package/src/lib/icons.ts +2 -2
- package/src/lib/navigation/applyRules.ts +127 -127
- package/src/lib/navigation/pathMatcher.ts +81 -81
- package/src/lib/oas/graphql/circular.ts +69 -69
- package/src/lib/oas/graphql/constants.ts +2 -2
- package/src/lib/oas/graphql/index.ts +791 -791
- package/src/lib/oas/parser/dereference/index.ts +84 -84
- package/src/lib/oas/parser/dereference/resolveRef.ts +32 -32
- package/src/lib/oas/parser/index.ts +129 -129
- package/src/lib/oas/parser/schemas/v3.0.json +1489 -1489
- package/src/lib/oas/parser/schemas/v3.1.json +1298 -1298
- package/src/lib/oas/parser/upgrade/index.ts +174 -174
- package/src/lib/plugins/api-catalog/Catalog.tsx +80 -80
- package/src/lib/plugins/api-catalog/index.tsx +119 -119
- package/src/lib/plugins/api-keys/CreateApiKey.tsx +128 -128
- package/src/lib/plugins/api-keys/CreateApiKeyDialog.tsx +49 -49
- package/src/lib/plugins/api-keys/ProtectedRoute.tsx +33 -33
- package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +72 -72
- package/src/lib/plugins/api-keys/index.tsx +274 -274
- package/src/lib/plugins/api-keys/settings/ApiKeyItem.tsx +342 -342
- package/src/lib/plugins/api-keys/settings/ApiKeyList.tsx +67 -67
- package/src/lib/plugins/api-keys/settings/RevealApiKey.tsx +127 -127
- package/src/lib/plugins/custom-pages/index.tsx +32 -32
- package/src/lib/plugins/markdown/MdxPage.tsx +260 -260
- package/src/lib/plugins/markdown/assets/ChatGPTLogo.tsx +11 -11
- package/src/lib/plugins/markdown/assets/ClaudeLogo.tsx +19 -19
- package/src/lib/plugins/markdown/index.tsx +82 -82
- package/src/lib/plugins/openapi/ApiHeader.tsx +96 -96
- package/src/lib/plugins/openapi/CollapsibleCode.tsx +88 -88
- package/src/lib/plugins/openapi/ColorizedParam.tsx +115 -115
- package/src/lib/plugins/openapi/DownloadSchemaButton.tsx +94 -94
- package/src/lib/plugins/openapi/Endpoint.tsx +85 -85
- package/src/lib/plugins/openapi/GeneratedExampleSidecarBox.tsx +52 -52
- package/src/lib/plugins/openapi/MCPEndpoint.tsx +273 -273
- package/src/lib/plugins/openapi/OasProvider.tsx +74 -74
- package/src/lib/plugins/openapi/OperationList.tsx +275 -275
- package/src/lib/plugins/openapi/OperationListItem.tsx +183 -183
- package/src/lib/plugins/openapi/ParamInfos.tsx +96 -96
- package/src/lib/plugins/openapi/ParameterList.tsx +53 -53
- package/src/lib/plugins/openapi/ParameterListItem.tsx +161 -161
- package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +67 -67
- package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +63 -63
- package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +120 -120
- package/src/lib/plugins/openapi/SchemaInfo.tsx +344 -344
- package/src/lib/plugins/openapi/SchemaList.tsx +113 -113
- package/src/lib/plugins/openapi/Sidecar.tsx +314 -314
- package/src/lib/plugins/openapi/SidecarBox.tsx +57 -57
- package/src/lib/plugins/openapi/SidecarExamples.tsx +177 -177
- package/src/lib/plugins/openapi/SimpleSelect.tsx +46 -46
- package/src/lib/plugins/openapi/client/GraphQLClient.tsx +73 -73
- package/src/lib/plugins/openapi/client/GraphQLContext.tsx +16 -16
- package/src/lib/plugins/openapi/client/createServer.ts +35 -35
- package/src/lib/plugins/openapi/client/useCreateQuery.ts +44 -44
- package/src/lib/plugins/openapi/components/ConstValue.tsx +24 -24
- package/src/lib/plugins/openapi/components/EnumValues.tsx +58 -58
- package/src/lib/plugins/openapi/components/NonHighlightedCode.tsx +22 -22
- package/src/lib/plugins/openapi/components/ResponseContent.tsx +117 -117
- package/src/lib/plugins/openapi/components/SelectOnClick.tsx +29 -29
- package/src/lib/plugins/openapi/context.tsx +16 -16
- package/src/lib/plugins/openapi/graphql/fragment-masking.ts +104 -104
- package/src/lib/plugins/openapi/graphql/gql.ts +95 -95
- package/src/lib/plugins/openapi/graphql/graphql.ts +835 -835
- package/src/lib/plugins/openapi/graphql/index.ts +2 -2
- package/src/lib/plugins/openapi/index.tsx +221 -221
- package/src/lib/plugins/openapi/interfaces.ts +100 -100
- package/src/lib/plugins/openapi/playground/BodyPanel.tsx +274 -274
- package/src/lib/plugins/openapi/playground/CollapsibleHeader.tsx +51 -51
- package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +60 -60
- package/src/lib/plugins/openapi/playground/Headers.tsx +194 -194
- package/src/lib/plugins/openapi/playground/IdentityDialog.tsx +75 -75
- package/src/lib/plugins/openapi/playground/IdentitySelector.tsx +38 -38
- package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +45 -45
- package/src/lib/plugins/openapi/playground/PathParams.tsx +53 -53
- package/src/lib/plugins/openapi/playground/Playground.tsx +602 -602
- package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +62 -62
- package/src/lib/plugins/openapi/playground/QueryParams.tsx +151 -151
- package/src/lib/plugins/openapi/playground/RequestLoginDialog.tsx +70 -70
- package/src/lib/plugins/openapi/playground/Spinner.tsx +87 -87
- package/src/lib/plugins/openapi/playground/createUrl.ts +25 -25
- package/src/lib/plugins/openapi/playground/fileUtils.ts +36 -36
- package/src/lib/plugins/openapi/playground/rememberedIdentity.ts +26 -26
- package/src/lib/plugins/openapi/playground/request-panel/MultipartField.tsx +91 -91
- package/src/lib/plugins/openapi/playground/request-panel/UrlPath.tsx +31 -31
- package/src/lib/plugins/openapi/playground/request-panel/UrlQueryParams.tsx +29 -29
- package/src/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.ts +340 -340
- package/src/lib/plugins/openapi/playground/result-panel/AudioPlayer.tsx +50 -50
- package/src/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.tsx +117 -117
- package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +355 -355
- package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +106 -106
- package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.ts +36 -36
- package/src/lib/plugins/openapi/playground/serializeQueryParams.ts +125 -125
- package/src/lib/plugins/openapi/playground/useRememberSkipLoginDialog.tsx +23 -23
- package/src/lib/plugins/openapi/processors/injectApitogoGatewayServer.ts +36 -36
- package/src/lib/plugins/openapi/processors/removeExtensions.ts +29 -29
- package/src/lib/plugins/openapi/processors/removeParameters.ts +103 -103
- package/src/lib/plugins/openapi/processors/removePaths.ts +57 -57
- package/src/lib/plugins/openapi/processors/traverse.ts +1 -1
- package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +39 -39
- package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +189 -189
- package/src/lib/plugins/openapi/schema/SchemaView.tsx +299 -299
- package/src/lib/plugins/openapi/schema/UnionView.tsx +132 -132
- package/src/lib/plugins/openapi/schema/union-helpers.ts +123 -123
- package/src/lib/plugins/openapi/schema/utils.ts +49 -49
- package/src/lib/plugins/openapi/state.ts +36 -36
- package/src/lib/plugins/openapi/util/buildTagCategories.ts +54 -54
- package/src/lib/plugins/openapi/util/createHttpSnippet.ts +135 -135
- package/src/lib/plugins/openapi/util/createNavigationCategory.tsx +39 -39
- package/src/lib/plugins/openapi/util/generateSchemaExample.ts +191 -191
- package/src/lib/plugins/openapi/util/getRoutes.tsx +265 -265
- package/src/lib/plugins/openapi/util/methodColorMap.tsx +11 -11
- package/src/lib/plugins/openapi/util/methodToColor.ts +27 -27
- package/src/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.tsx +32 -32
- package/src/lib/plugins/openapi/util/useWarmupSchema.ts +23 -23
- package/src/lib/plugins/search-inkeep/index.tsx +108 -108
- package/src/lib/plugins/search-inkeep/inkeep.ts +24 -24
- package/src/lib/plugins/search-pagefind/IndexingDialog.tsx +162 -162
- package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +202 -202
- package/src/lib/plugins/search-pagefind/ResultList.tsx +122 -122
- package/src/lib/plugins/search-pagefind/get-results.tsx +74 -74
- package/src/lib/plugins/search-pagefind/index.tsx +21 -21
- package/src/lib/plugins/search-pagefind/types.ts +118 -118
- package/src/lib/shiki-constants.ts +24 -24
- package/src/lib/shiki.ts +179 -179
- package/src/lib/testing/index.tsx +147 -147
- package/src/lib/ui/Accordion.tsx +55 -55
- package/src/lib/ui/ActionButton.tsx +21 -21
- package/src/lib/ui/Alert.tsx +84 -84
- package/src/lib/ui/AlertDialog.tsx +195 -195
- package/src/lib/ui/AspectRatio.tsx +5 -5
- package/src/lib/ui/Badge.tsx +48 -48
- package/src/lib/ui/Breadcrumb.tsx +115 -115
- package/src/lib/ui/Button.tsx +65 -65
- package/src/lib/ui/ButtonGroup.tsx +80 -80
- package/src/lib/ui/Callout.tsx +113 -113
- package/src/lib/ui/Card.tsx +95 -95
- package/src/lib/ui/Carousel.tsx +259 -259
- package/src/lib/ui/Checkbox.tsx +28 -28
- package/src/lib/ui/CodeBlock.tsx +92 -92
- package/src/lib/ui/CodeTabPanel.tsx +13 -13
- package/src/lib/ui/CodeTabs.tsx +161 -161
- package/src/lib/ui/Collapsible.tsx +31 -31
- package/src/lib/ui/Command.tsx +191 -191
- package/src/lib/ui/Dialog.tsx +138 -138
- package/src/lib/ui/DismissibleAlert.tsx +74 -74
- package/src/lib/ui/Drawer.tsx +121 -121
- package/src/lib/ui/DropdownMenu.tsx +254 -254
- package/src/lib/ui/EmbeddedCodeBlock.tsx +99 -99
- package/src/lib/ui/Form.tsx +176 -176
- package/src/lib/ui/Frame.tsx +81 -81
- package/src/lib/ui/HoverCard.tsx +26 -26
- package/src/lib/ui/Input.tsx +23 -23
- package/src/lib/ui/InputGroup.tsx +168 -168
- package/src/lib/ui/Item.tsx +213 -213
- package/src/lib/ui/Kbd.tsx +28 -28
- package/src/lib/ui/Label.tsx +23 -23
- package/src/lib/ui/NativeSelect.tsx +48 -48
- package/src/lib/ui/NavigationMenu.tsx +169 -169
- package/src/lib/ui/Pagination.tsx +115 -115
- package/src/lib/ui/Popover.tsx +28 -28
- package/src/lib/ui/Progress.tsx +25 -25
- package/src/lib/ui/RadioGroup.tsx +41 -41
- package/src/lib/ui/ReactComponentDoc.tsx +68 -68
- package/src/lib/ui/ScrollArea.tsx +45 -45
- package/src/lib/ui/Secret.tsx +133 -133
- package/src/lib/ui/Select.tsx +184 -184
- package/src/lib/ui/Separator.tsx +25 -25
- package/src/lib/ui/Skeleton.tsx +15 -15
- package/src/lib/ui/Slider.tsx +25 -25
- package/src/lib/ui/Stepper.tsx +8 -8
- package/src/lib/ui/Switch.tsx +26 -26
- package/src/lib/ui/SyntaxHighlight.tsx +54 -54
- package/src/lib/ui/Tabs.tsx +52 -52
- package/src/lib/ui/Textarea.tsx +22 -22
- package/src/lib/ui/Toggle.tsx +42 -42
- package/src/lib/ui/ToggleGroup.tsx +58 -58
- package/src/lib/ui/Tooltip.tsx +65 -65
- package/src/lib/ui/Value.tsx +42 -42
- package/src/lib/ui/util.tsx +8 -8
- package/src/lib/util/MdxComponents.tsx +150 -150
- package/src/lib/util/cn.ts +6 -6
- package/src/lib/util/createVariantComponent.tsx +61 -61
- package/src/lib/util/ensureArray.ts +3 -3
- package/src/lib/util/flattenAllOf.ts +72 -72
- package/src/lib/util/flattenAllOfProcessor.ts +74 -74
- package/src/lib/util/hastToJsx.tsx +67 -67
- package/src/lib/util/humanFileSize.ts +15 -15
- package/src/lib/util/invariant.ts +52 -52
- package/src/lib/util/joinUrl.ts +60 -60
- package/src/lib/util/logInit.ts +9 -9
- package/src/lib/util/objectEntries.ts +5 -5
- package/src/lib/util/os.ts +18 -18
- package/src/lib/util/pastellize.ts +25 -25
- package/src/lib/util/problemJson.ts +63 -63
- package/src/lib/util/readFrontmatter.ts +14 -14
- package/src/lib/util/renderIf.ts +4 -4
- package/src/lib/util/scrollIntoViewIfNeeded.ts +18 -18
- package/src/lib/util/slugify.ts +21 -21
- package/src/lib/util/syncZustandState.ts +22 -22
- package/src/lib/util/traverse.ts +70 -70
- package/src/lib/util/types.ts +7 -7
- package/src/lib/util/url.ts +18 -18
- package/src/lib/util/useCopyToClipboard.ts +17 -17
- package/src/lib/util/useExposedProps.tsx +27 -27
- package/src/lib/util/useIsomorphicLayoutEffect.ts +6 -6
- package/src/lib/util/useLatest.ts +18 -18
- package/src/lib/util/useOnScreen.ts +34 -34
- package/src/lib/util/useScrollToAnchor.ts +75 -75
- package/src/lib/util/useScrollToTop.ts +18 -18
- package/src/types.d.ts +66 -66
- package/src/vite/api/SchemaManager.ts +371 -371
- package/src/vite/api/schema-codegen.ts +163 -163
- package/src/vite/build.ts +237 -237
- package/src/vite/config.ts +273 -273
- package/src/vite/css/collect.ts +42 -42
- package/src/vite/css/plugin.ts +105 -105
- package/src/vite/debug.ts +18 -18
- package/src/vite/dev-portal-env.ts +29 -29
- package/src/vite/dev-server.ts +294 -294
- package/src/vite/html.ts +52 -52
- package/src/vite/index.ts +2 -2
- package/src/vite/llms.ts +99 -99
- package/src/vite/mdx/rehype-extract-toc-with-jsx-export.ts +19 -19
- package/src/vite/mdx/rehype-extract-toc-with-jsx.ts +70 -70
- package/src/vite/mdx/remark-code-tabs.ts +47 -47
- package/src/vite/mdx/remark-inject-filepath.ts +13 -13
- package/src/vite/mdx/remark-last-modified.ts +103 -103
- package/src/vite/mdx/remark-link-rewrite.ts +23 -23
- package/src/vite/mdx/remark-normalize-image-url.ts +15 -15
- package/src/vite/mdx/remark-static-generation.ts +149 -149
- package/src/vite/mdx/utils.ts +32 -32
- package/src/vite/output.ts +261 -261
- package/src/vite/package-root.ts +12 -12
- package/src/vite/pagefind-dev-index.ts +100 -100
- package/src/vite/pagefind-dev-stub.ts +17 -17
- package/src/vite/plugin-api-keys.ts +55 -55
- package/src/vite/plugin-api.ts +328 -328
- package/src/vite/plugin-auth.ts +41 -41
- package/src/vite/plugin-component.ts +45 -45
- package/src/vite/plugin-config-reload.ts +47 -47
- package/src/vite/plugin-config.ts +131 -131
- package/src/vite/plugin-custom-pages.ts +36 -36
- package/src/vite/plugin-doc-metadata.ts +45 -45
- package/src/vite/plugin-docs.ts +205 -205
- package/src/vite/plugin-local-manifest.ts +100 -100
- package/src/vite/plugin-markdown-export.ts +214 -214
- package/src/vite/plugin-mdx.ts +149 -149
- package/src/vite/plugin-metadata.ts +30 -30
- package/src/vite/plugin-modules.ts +188 -188
- package/src/vite/plugin-navigation.ts +106 -106
- package/src/vite/plugin-offroot-resolve.ts +67 -67
- package/src/vite/plugin-search.ts +59 -59
- package/src/vite/plugin-shiki-register.ts +97 -97
- package/src/vite/plugin-theme.ts +458 -458
- package/src/vite/plugin.ts +48 -48
- package/src/vite/prerender/prerender.ts +242 -242
- package/src/vite/prerender/utils.ts +76 -76
- package/src/vite/prerender/worker.ts +118 -118
- package/src/vite/reporter.ts +34 -34
- package/src/vite/shadcn-registry.ts +48 -48
- package/src/vite/sitemap.ts +78 -78
- package/src/vite/ssr-templates/cloudflare.ts +19 -19
- package/src/vite/ssr-templates/node.ts +25 -25
- package/src/vite/ssr-templates/vercel.ts +22 -22
- package/src/vite/watch-ignore.ts +70 -70
- package/src/vite/zuplo.ts +30 -30
- package/src/vite-env.d.ts +6 -6
- package/src/zuplo/enrich-with-zuplo-mcp.ts +168 -168
- package/src/zuplo/enrich-with-zuplo.ts +256 -256
- package/src/zuplo/policy-types.ts +46 -46
- package/src/zuplo/with-zuplo-processors.ts +36 -36
- package/src/zuplo/with-zuplo.ts +14 -14
- package/dist/declarations/cli/platform/client/deploy-server.d.ts +0 -16
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: ClientOnly
|
|
3
|
-
sidebar_icon: monitor
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
A component that only renders its children on the client-side, preventing hydration mismatches
|
|
7
|
-
between server and client rendering.
|
|
8
|
-
|
|
9
|
-
## Import
|
|
10
|
-
|
|
11
|
-
```tsx
|
|
12
|
-
import { ClientOnly } from "@lukoweb/apitogo/components";
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Props
|
|
16
|
-
|
|
17
|
-
```ts
|
|
18
|
-
type ClientOnlyProps = {
|
|
19
|
-
children: ReactNode;
|
|
20
|
-
fallback?: ReactNode;
|
|
21
|
-
};
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Usage
|
|
25
|
-
|
|
26
|
-
### Basic Usage
|
|
27
|
-
|
|
28
|
-
```tsx
|
|
29
|
-
<ClientOnly>
|
|
30
|
-
<SomeClientOnlyComponent />
|
|
31
|
-
</ClientOnly>
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### With Fallback
|
|
35
|
-
|
|
36
|
-
```tsx
|
|
37
|
-
<ClientOnly fallback={<div>Loading...</div>}>
|
|
38
|
-
<InteractiveWidget />
|
|
39
|
-
</ClientOnly>
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## Examples
|
|
43
|
-
|
|
44
|
-
```tsx
|
|
45
|
-
function MyComponent() {
|
|
46
|
-
return (
|
|
47
|
-
<div>
|
|
48
|
-
<h1>This renders on both server and client</h1>
|
|
49
|
-
<ClientOnly fallback={<Spinner />}>
|
|
50
|
-
<ComponentThatUsesWindowObject />
|
|
51
|
-
</ClientOnly>
|
|
52
|
-
</div>
|
|
53
|
-
);
|
|
54
|
-
}
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Use Cases
|
|
58
|
-
|
|
59
|
-
- **Browser APIs**: Components that use `window`, `document`, or other browser-only APIs
|
|
60
|
-
- **Third-party Libraries**: Libraries that don't support SSR
|
|
61
|
-
- **Theme Switches**: Preventing flash of incorrect theme
|
|
62
|
-
- **Interactive Widgets**: Components with complex client-side state
|
|
63
|
-
- **Conditional Features**: Features that should only appear on the client
|
|
64
|
-
|
|
65
|
-
## Notes
|
|
66
|
-
|
|
67
|
-
:::caution
|
|
68
|
-
|
|
69
|
-
Use ClientOnly sparingly as it can impact SEO and initial page load performance. Only use it when
|
|
70
|
-
necessary for components that cannot be server-rendered.
|
|
71
|
-
|
|
72
|
-
:::
|
|
73
|
-
|
|
74
|
-
:::tip
|
|
75
|
-
|
|
76
|
-
Always provide a meaningful fallback that matches the approximate size and layout of your
|
|
77
|
-
client-only component to prevent layout shifts.
|
|
78
|
-
|
|
79
|
-
:::
|
|
1
|
+
---
|
|
2
|
+
title: ClientOnly
|
|
3
|
+
sidebar_icon: monitor
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
A component that only renders its children on the client-side, preventing hydration mismatches
|
|
7
|
+
between server and client rendering.
|
|
8
|
+
|
|
9
|
+
## Import
|
|
10
|
+
|
|
11
|
+
```tsx
|
|
12
|
+
import { ClientOnly } from "@lukoweb/apitogo/components";
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Props
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
type ClientOnlyProps = {
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
fallback?: ReactNode;
|
|
21
|
+
};
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Usage
|
|
25
|
+
|
|
26
|
+
### Basic Usage
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
<ClientOnly>
|
|
30
|
+
<SomeClientOnlyComponent />
|
|
31
|
+
</ClientOnly>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### With Fallback
|
|
35
|
+
|
|
36
|
+
```tsx
|
|
37
|
+
<ClientOnly fallback={<div>Loading...</div>}>
|
|
38
|
+
<InteractiveWidget />
|
|
39
|
+
</ClientOnly>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Examples
|
|
43
|
+
|
|
44
|
+
```tsx
|
|
45
|
+
function MyComponent() {
|
|
46
|
+
return (
|
|
47
|
+
<div>
|
|
48
|
+
<h1>This renders on both server and client</h1>
|
|
49
|
+
<ClientOnly fallback={<Spinner />}>
|
|
50
|
+
<ComponentThatUsesWindowObject />
|
|
51
|
+
</ClientOnly>
|
|
52
|
+
</div>
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Use Cases
|
|
58
|
+
|
|
59
|
+
- **Browser APIs**: Components that use `window`, `document`, or other browser-only APIs
|
|
60
|
+
- **Third-party Libraries**: Libraries that don't support SSR
|
|
61
|
+
- **Theme Switches**: Preventing flash of incorrect theme
|
|
62
|
+
- **Interactive Widgets**: Components with complex client-side state
|
|
63
|
+
- **Conditional Features**: Features that should only appear on the client
|
|
64
|
+
|
|
65
|
+
## Notes
|
|
66
|
+
|
|
67
|
+
:::caution
|
|
68
|
+
|
|
69
|
+
Use ClientOnly sparingly as it can impact SEO and initial page load performance. Only use it when
|
|
70
|
+
necessary for components that cannot be server-rendered.
|
|
71
|
+
|
|
72
|
+
:::
|
|
73
|
+
|
|
74
|
+
:::tip
|
|
75
|
+
|
|
76
|
+
Always provide a meaningful fallback that matches the approximate size and layout of your
|
|
77
|
+
client-only component to prevent layout shifts.
|
|
78
|
+
|
|
79
|
+
:::
|
|
@@ -1,179 +1,179 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: CodeTabs
|
|
3
|
-
sidebar_icon: columns-2
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
A tabbed code block component that groups multiple code blocks into a single unified view. Useful
|
|
7
|
-
for showing the same example in different languages or alternative commands for different package
|
|
8
|
-
managers.
|
|
9
|
-
|
|
10
|
-
:::note
|
|
11
|
-
|
|
12
|
-
In MDX, the `CodeTabs` component is available by default and doesn't need an explicit import.
|
|
13
|
-
|
|
14
|
-
:::
|
|
15
|
-
|
|
16
|
-
## Usage
|
|
17
|
-
|
|
18
|
-
Wrap multiple fenced code blocks with `<CodeTabs>` and they will render as tabs. Tab labels are
|
|
19
|
-
automatically inferred from the code block language.
|
|
20
|
-
|
|
21
|
-
<CodeTabs>
|
|
22
|
-
|
|
23
|
-
```ts
|
|
24
|
-
const greeting: string = "Hello, world!";
|
|
25
|
-
console.log(greeting);
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
```js
|
|
29
|
-
const greeting = "Hello, world!";
|
|
30
|
-
console.log(greeting);
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
```py
|
|
34
|
-
greeting = "Hello, world!"
|
|
35
|
-
print(greeting)
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
</CodeTabs>
|
|
39
|
-
|
|
40
|
-
````mdx
|
|
41
|
-
<CodeTabs>
|
|
42
|
-
|
|
43
|
-
```ts
|
|
44
|
-
const greeting: string = "Hello, world!";
|
|
45
|
-
console.log(greeting);
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
```js
|
|
49
|
-
const greeting = "Hello, world!";
|
|
50
|
-
console.log(greeting);
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
```py
|
|
54
|
-
greeting = "Hello, world!"
|
|
55
|
-
print(greeting)
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
</CodeTabs>
|
|
59
|
-
````
|
|
60
|
-
|
|
61
|
-
## Custom Labels
|
|
62
|
-
|
|
63
|
-
Use the `title` meta attribute on each code block to set a custom tab label. This is especially
|
|
64
|
-
useful when multiple code blocks share the same language.
|
|
65
|
-
|
|
66
|
-
<CodeTabs>
|
|
67
|
-
|
|
68
|
-
```sh /apitogo/ title="pnpm" showLineNumbers icon="pnpm"
|
|
69
|
-
pnpm add @lukoweb/apitogo
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
```sh title="npm" icon="npm"
|
|
73
|
-
npm install @lukoweb/apitogo
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
```sh title="yarn" icon="yarn"
|
|
77
|
-
yarn add @lukoweb/apitogo
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
</CodeTabs>
|
|
81
|
-
|
|
82
|
-
````mdx
|
|
83
|
-
<CodeTabs>
|
|
84
|
-
|
|
85
|
-
```sh title="pnpm" icon="pnpm"
|
|
86
|
-
pnpm add @lukoweb/apitogo
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
```sh title="npm" icon="npm"
|
|
90
|
-
npm install @lukoweb/apitogo
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
```sh title="yarn" icon="yarn"
|
|
94
|
-
yarn add @lukoweb/apitogo
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
</CodeTabs>
|
|
98
|
-
````
|
|
99
|
-
|
|
100
|
-
## Synced Tabs
|
|
101
|
-
|
|
102
|
-
Use the `syncKey` prop to keep multiple `CodeTabs` instances in sync. When a user selects a tab in
|
|
103
|
-
one group, all groups with the same `syncKey` update to match. The selection is persisted to
|
|
104
|
-
localStorage and synced across browser tabs.
|
|
105
|
-
|
|
106
|
-
<div className="flex justify-center gap-4 *:flex-1">
|
|
107
|
-
|
|
108
|
-
<CodeTabs syncKey="package-manager">
|
|
109
|
-
```sh title="pnpm" icon="pnpm"
|
|
110
|
-
pnpm run build
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
```sh title="npm" icon="npm"
|
|
114
|
-
npm run build
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
</CodeTabs>
|
|
118
|
-
|
|
119
|
-
<CodeTabs syncKey="package-manager">
|
|
120
|
-
```sh title="pnpm" icon="pnpm"
|
|
121
|
-
pnpm run build
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
```sh title="npm" icon="npm"
|
|
125
|
-
npm run build
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
</CodeTabs>
|
|
129
|
-
</div>
|
|
130
|
-
|
|
131
|
-
````mdx
|
|
132
|
-
<CodeTabs syncKey="package-manager">
|
|
133
|
-
```sh title="pnpm" icon="pnpm"
|
|
134
|
-
pnpm add @lukoweb/apitogo
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
```sh title="npm" icon="npm"
|
|
138
|
-
npm install @lukoweb/apitogo
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
</CodeTabs>
|
|
142
|
-
|
|
143
|
-
<!-- repeat above -->
|
|
144
|
-
````
|
|
145
|
-
|
|
146
|
-
## Programmatic Usage
|
|
147
|
-
|
|
148
|
-
Usually it's recommended to use fenced code blocks in MDX files. However, when building reusable
|
|
149
|
-
components (e.g. in your MDX component config), fenced code blocks aren't processed by the MDX
|
|
150
|
-
pipeline. Use `CodeTabPanel` directly instead:
|
|
151
|
-
|
|
152
|
-
```tsx
|
|
153
|
-
import { CodeTabs, CodeTabPanel } from "@lukoweb/apitogo/ui/CodeTabs";
|
|
154
|
-
|
|
155
|
-
const InstallTabs = ({ pkg }: { pkg: string }) => (
|
|
156
|
-
<CodeTabs syncKey="package-manager">
|
|
157
|
-
<CodeTabPanel language="sh" title="pnpm" icon="pnpm" code={`pnpm add ${pkg}`} />
|
|
158
|
-
<CodeTabPanel language="sh" title="npm" icon="npm" code={`npm install ${pkg}`} />
|
|
159
|
-
<CodeTabPanel language="sh" title="yarn" icon="yarn" code={`yarn add ${pkg}`} />
|
|
160
|
-
</CodeTabs>
|
|
161
|
-
);
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
### CodeTabPanel Props
|
|
165
|
-
|
|
166
|
-
| Prop | Type | Description |
|
|
167
|
-
| ---------- | -------- | --------------------------------------------------------------- |
|
|
168
|
-
| `code` | `string` | The code content to display. Required. |
|
|
169
|
-
| `language` | `string` | Language for syntax highlighting and label inference. |
|
|
170
|
-
| `title` | `string` | Custom tab label. Falls back to `language`. |
|
|
171
|
-
| `icon` | `string` | Override the language icon (e.g. `"pnpm"`, `"npm"`). |
|
|
172
|
-
| `meta` | `string` | Raw meta string like in code blocks (e.g. `"showLineNumbers"`). |
|
|
173
|
-
|
|
174
|
-
## Props
|
|
175
|
-
|
|
176
|
-
| Prop | Type | Description |
|
|
177
|
-
| ---------- | --------- | ----------------------------------------------------------------------------------------------------- |
|
|
178
|
-
| `syncKey` | `string` | Sync selected tab across all `CodeTabs` with the same key. Persisted to localStorage and across tabs. |
|
|
179
|
-
| `hideIcon` | `boolean` | Hide the language icon in tabs. Defaults to `false`. |
|
|
1
|
+
---
|
|
2
|
+
title: CodeTabs
|
|
3
|
+
sidebar_icon: columns-2
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
A tabbed code block component that groups multiple code blocks into a single unified view. Useful
|
|
7
|
+
for showing the same example in different languages or alternative commands for different package
|
|
8
|
+
managers.
|
|
9
|
+
|
|
10
|
+
:::note
|
|
11
|
+
|
|
12
|
+
In MDX, the `CodeTabs` component is available by default and doesn't need an explicit import.
|
|
13
|
+
|
|
14
|
+
:::
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
Wrap multiple fenced code blocks with `<CodeTabs>` and they will render as tabs. Tab labels are
|
|
19
|
+
automatically inferred from the code block language.
|
|
20
|
+
|
|
21
|
+
<CodeTabs>
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
const greeting: string = "Hello, world!";
|
|
25
|
+
console.log(greeting);
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
```js
|
|
29
|
+
const greeting = "Hello, world!";
|
|
30
|
+
console.log(greeting);
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
```py
|
|
34
|
+
greeting = "Hello, world!"
|
|
35
|
+
print(greeting)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
</CodeTabs>
|
|
39
|
+
|
|
40
|
+
````mdx
|
|
41
|
+
<CodeTabs>
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
const greeting: string = "Hello, world!";
|
|
45
|
+
console.log(greeting);
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
```js
|
|
49
|
+
const greeting = "Hello, world!";
|
|
50
|
+
console.log(greeting);
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
```py
|
|
54
|
+
greeting = "Hello, world!"
|
|
55
|
+
print(greeting)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
</CodeTabs>
|
|
59
|
+
````
|
|
60
|
+
|
|
61
|
+
## Custom Labels
|
|
62
|
+
|
|
63
|
+
Use the `title` meta attribute on each code block to set a custom tab label. This is especially
|
|
64
|
+
useful when multiple code blocks share the same language.
|
|
65
|
+
|
|
66
|
+
<CodeTabs>
|
|
67
|
+
|
|
68
|
+
```sh /apitogo/ title="pnpm" showLineNumbers icon="pnpm"
|
|
69
|
+
pnpm add @lukoweb/apitogo
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
```sh title="npm" icon="npm"
|
|
73
|
+
npm install @lukoweb/apitogo
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
```sh title="yarn" icon="yarn"
|
|
77
|
+
yarn add @lukoweb/apitogo
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
</CodeTabs>
|
|
81
|
+
|
|
82
|
+
````mdx
|
|
83
|
+
<CodeTabs>
|
|
84
|
+
|
|
85
|
+
```sh title="pnpm" icon="pnpm"
|
|
86
|
+
pnpm add @lukoweb/apitogo
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
```sh title="npm" icon="npm"
|
|
90
|
+
npm install @lukoweb/apitogo
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
```sh title="yarn" icon="yarn"
|
|
94
|
+
yarn add @lukoweb/apitogo
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
</CodeTabs>
|
|
98
|
+
````
|
|
99
|
+
|
|
100
|
+
## Synced Tabs
|
|
101
|
+
|
|
102
|
+
Use the `syncKey` prop to keep multiple `CodeTabs` instances in sync. When a user selects a tab in
|
|
103
|
+
one group, all groups with the same `syncKey` update to match. The selection is persisted to
|
|
104
|
+
localStorage and synced across browser tabs.
|
|
105
|
+
|
|
106
|
+
<div className="flex justify-center gap-4 *:flex-1">
|
|
107
|
+
|
|
108
|
+
<CodeTabs syncKey="package-manager">
|
|
109
|
+
```sh title="pnpm" icon="pnpm"
|
|
110
|
+
pnpm run build
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
```sh title="npm" icon="npm"
|
|
114
|
+
npm run build
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
</CodeTabs>
|
|
118
|
+
|
|
119
|
+
<CodeTabs syncKey="package-manager">
|
|
120
|
+
```sh title="pnpm" icon="pnpm"
|
|
121
|
+
pnpm run build
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
```sh title="npm" icon="npm"
|
|
125
|
+
npm run build
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
</CodeTabs>
|
|
129
|
+
</div>
|
|
130
|
+
|
|
131
|
+
````mdx
|
|
132
|
+
<CodeTabs syncKey="package-manager">
|
|
133
|
+
```sh title="pnpm" icon="pnpm"
|
|
134
|
+
pnpm add @lukoweb/apitogo
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
```sh title="npm" icon="npm"
|
|
138
|
+
npm install @lukoweb/apitogo
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
</CodeTabs>
|
|
142
|
+
|
|
143
|
+
<!-- repeat above -->
|
|
144
|
+
````
|
|
145
|
+
|
|
146
|
+
## Programmatic Usage
|
|
147
|
+
|
|
148
|
+
Usually it's recommended to use fenced code blocks in MDX files. However, when building reusable
|
|
149
|
+
components (e.g. in your MDX component config), fenced code blocks aren't processed by the MDX
|
|
150
|
+
pipeline. Use `CodeTabPanel` directly instead:
|
|
151
|
+
|
|
152
|
+
```tsx
|
|
153
|
+
import { CodeTabs, CodeTabPanel } from "@lukoweb/apitogo/ui/CodeTabs";
|
|
154
|
+
|
|
155
|
+
const InstallTabs = ({ pkg }: { pkg: string }) => (
|
|
156
|
+
<CodeTabs syncKey="package-manager">
|
|
157
|
+
<CodeTabPanel language="sh" title="pnpm" icon="pnpm" code={`pnpm add ${pkg}`} />
|
|
158
|
+
<CodeTabPanel language="sh" title="npm" icon="npm" code={`npm install ${pkg}`} />
|
|
159
|
+
<CodeTabPanel language="sh" title="yarn" icon="yarn" code={`yarn add ${pkg}`} />
|
|
160
|
+
</CodeTabs>
|
|
161
|
+
);
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### CodeTabPanel Props
|
|
165
|
+
|
|
166
|
+
| Prop | Type | Description |
|
|
167
|
+
| ---------- | -------- | --------------------------------------------------------------- |
|
|
168
|
+
| `code` | `string` | The code content to display. Required. |
|
|
169
|
+
| `language` | `string` | Language for syntax highlighting and label inference. |
|
|
170
|
+
| `title` | `string` | Custom tab label. Falls back to `language`. |
|
|
171
|
+
| `icon` | `string` | Override the language icon (e.g. `"pnpm"`, `"npm"`). |
|
|
172
|
+
| `meta` | `string` | Raw meta string like in code blocks (e.g. `"showLineNumbers"`). |
|
|
173
|
+
|
|
174
|
+
## Props
|
|
175
|
+
|
|
176
|
+
| Prop | Type | Description |
|
|
177
|
+
| ---------- | --------- | ----------------------------------------------------------------------------------------------------- |
|
|
178
|
+
| `syncKey` | `string` | Sync selected tab across all `CodeTabs` with the same key. Persisted to localStorage and across tabs. |
|
|
179
|
+
| `hideIcon` | `boolean` | Hide the language icon in tabs. Defaults to `false`. |
|