@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,278 +1,278 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_icon: paintbrush
|
|
3
|
-
title: Colors & Theme
|
|
4
|
-
description:
|
|
5
|
-
Customize your APIToGo site's colors and theme with flexible options, including light/dark modes,
|
|
6
|
-
custom CSS, and shadcn registry integration.
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
APIToGo provides flexible theming options allowing you to customize colors, import themes from
|
|
10
|
-
[shadcn registries](https://ui.shadcn.com/docs/registry), and add custom CSS. You can create
|
|
11
|
-
cohesive light and dark mode experiences that match your brand.
|
|
12
|
-
|
|
13
|
-
:::tip
|
|
14
|
-
|
|
15
|
-
Try out the interactive [Theme Playground](/docs/theme-playground) to experiment with colors and see
|
|
16
|
-
real-time previews of your theme changes.
|
|
17
|
-
|
|
18
|
-
:::
|
|
19
|
-
|
|
20
|
-
The theme system is built on [shadcn/ui theming](https://ui.shadcn.com/docs/theming) and
|
|
21
|
-
[Tailwind v4](https://tailwindcss.com), giving us a great foundation to build upon:
|
|
22
|
-
|
|
23
|
-
- **CSS variables** match `shadcn/ui` conventions
|
|
24
|
-
- **Tailwind v4** CSS variable system for modern styling
|
|
25
|
-
- **Theme editors** like [tweakcn](https://tweakcn.com/) work out of the box
|
|
26
|
-
- **Shadcn registries** are supported
|
|
27
|
-
- **Landing homepage**, **portal footer**, and **MCP-generated custom pages** all use the same
|
|
28
|
-
semantic tokens (`bg-primary`, `text-muted-foreground`, `border-border`, etc.)
|
|
29
|
-
|
|
30
|
-
## Custom Colors
|
|
31
|
-
|
|
32
|
-
You can manually define colors for both light and dark modes, either by extending the
|
|
33
|
-
[default theme](#default-theme) or creating a completely custom theme. Colors can be specified as
|
|
34
|
-
hex values, RGB, HSL, OKLCH, etc. - basically anything that is supported by
|
|
35
|
-
[Tailwind CSS](https://tailwindcss.com):
|
|
36
|
-
|
|
37
|
-
```ts title=config
|
|
38
|
-
const config = {
|
|
39
|
-
theme: {
|
|
40
|
-
light: {
|
|
41
|
-
background: "#ffffff",
|
|
42
|
-
foreground: "#020817",
|
|
43
|
-
card: "#ffffff",
|
|
44
|
-
cardForeground: "#020817",
|
|
45
|
-
popover: "#ffffff",
|
|
46
|
-
popoverForeground: "#020817",
|
|
47
|
-
primary: "#0284c7",
|
|
48
|
-
primaryForeground: "#ffffff",
|
|
49
|
-
secondary: "#f1f5f9",
|
|
50
|
-
secondaryForeground: "#020817",
|
|
51
|
-
muted: "#f1f5f9",
|
|
52
|
-
mutedForeground: "#64748b",
|
|
53
|
-
accent: "#f1f5f9",
|
|
54
|
-
accentForeground: "#020817",
|
|
55
|
-
destructive: "#ef4444",
|
|
56
|
-
destructiveForeground: "#ffffff",
|
|
57
|
-
border: "#e2e8f0",
|
|
58
|
-
input: "#e2e8f0",
|
|
59
|
-
ring: "#0284c7",
|
|
60
|
-
radius: "0.5rem",
|
|
61
|
-
},
|
|
62
|
-
dark: {
|
|
63
|
-
background: "#020817",
|
|
64
|
-
foreground: "#f8fafc",
|
|
65
|
-
card: "#020817",
|
|
66
|
-
cardForeground: "#f8fafc",
|
|
67
|
-
popover: "#020817",
|
|
68
|
-
popoverForeground: "#f8fafc",
|
|
69
|
-
primary: "#0ea5e9",
|
|
70
|
-
primaryForeground: "#f8fafc",
|
|
71
|
-
secondary: "#1e293b",
|
|
72
|
-
secondaryForeground: "#f8fafc",
|
|
73
|
-
muted: "#1e293b",
|
|
74
|
-
mutedForeground: "#94a3b8",
|
|
75
|
-
accent: "#1e293b",
|
|
76
|
-
accentForeground: "#f8fafc",
|
|
77
|
-
destructive: "#ef4444",
|
|
78
|
-
destructiveForeground: "#f8fafc",
|
|
79
|
-
border: "#1e293b",
|
|
80
|
-
input: "#1e293b",
|
|
81
|
-
ring: "#0ea5e9",
|
|
82
|
-
radius: "0.5rem",
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
|
-
};
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
## Available Theme Variables
|
|
89
|
-
|
|
90
|
-
| Variable | Description |
|
|
91
|
-
| ----------------------- | ------------------------------------- |
|
|
92
|
-
| `background` | Main background color |
|
|
93
|
-
| `foreground` | Main text color |
|
|
94
|
-
| `card` | Card background color |
|
|
95
|
-
| `cardForeground` | Card text color |
|
|
96
|
-
| `popover` | Popover background color |
|
|
97
|
-
| `popoverForeground` | Popover text color |
|
|
98
|
-
| `primary` | Primary action color |
|
|
99
|
-
| `primaryForeground` | Text color on primary backgrounds |
|
|
100
|
-
| `secondary` | Secondary action color |
|
|
101
|
-
| `secondaryForeground` | Text color on secondary backgrounds |
|
|
102
|
-
| `muted` | Muted/subtle background color |
|
|
103
|
-
| `mutedForeground` | Text color for muted elements |
|
|
104
|
-
| `accent` | Accent color for highlights |
|
|
105
|
-
| `accentForeground` | Text color on accent backgrounds |
|
|
106
|
-
| `destructive` | Color for destructive actions |
|
|
107
|
-
| `destructiveForeground` | Text color on destructive backgrounds |
|
|
108
|
-
| `border` | Border color |
|
|
109
|
-
| `input` | Input field border color |
|
|
110
|
-
| `ring` | Focus ring color |
|
|
111
|
-
| `radius` | Border radius value |
|
|
112
|
-
|
|
113
|
-
:::note
|
|
114
|
-
|
|
115
|
-
While shadcn/ui defines additional theme variables, APIToGo currently uses only these core
|
|
116
|
-
variables.
|
|
117
|
-
|
|
118
|
-
:::
|
|
119
|
-
|
|
120
|
-
## shadcn Registry Integration
|
|
121
|
-
|
|
122
|
-
The easiest way to customize your theme is by using a Shadcn registry theme. For example you can use
|
|
123
|
-
the great [tweakcn](https://tweakcn.com/) visual theme editor.
|
|
124
|
-
|
|
125
|
-
### Using tweakcn Themes
|
|
126
|
-
|
|
127
|
-
<Stepper>
|
|
128
|
-
|
|
129
|
-
1. Visit [tweakcn.com](https://tweakcn.com/) to select a preset or customize your theme visually
|
|
130
|
-
|
|
131
|
-
<Framed align="start"></Framed>
|
|
132
|
-
<Framed align="start"></Framed>
|
|
133
|
-
|
|
134
|
-
1. Copy the registry URL from the "Copy" section
|
|
135
|
-
|
|
136
|
-
<Framed align="start"></Framed>
|
|
137
|
-
|
|
138
|
-
1. Add it to your configuration:
|
|
139
|
-
```ts title=config
|
|
140
|
-
const config = {
|
|
141
|
-
theme: {
|
|
142
|
-
registryUrl: "https://tweakcn.com/r/themes/northern-lights.json",
|
|
143
|
-
},
|
|
144
|
-
};
|
|
145
|
-
```
|
|
146
|
-
1. The theme will then be automatically imported with all color variables, fonts, and styling
|
|
147
|
-
configured for you 🚀
|
|
148
|
-
|
|
149
|
-
<Framed align="start"></Framed>
|
|
150
|
-
|
|
151
|
-
</Stepper>
|
|
152
|
-
|
|
153
|
-
You can still override specific values if needed:
|
|
154
|
-
|
|
155
|
-
```ts title=config
|
|
156
|
-
const config = {
|
|
157
|
-
theme: {
|
|
158
|
-
registryUrl: "https://tweakcn.com/api/registry/theme/xyz123",
|
|
159
|
-
// Override specific colors
|
|
160
|
-
light: {
|
|
161
|
-
primary: "#0066cc",
|
|
162
|
-
},
|
|
163
|
-
dark: {
|
|
164
|
-
primary: "#3399ff",
|
|
165
|
-
},
|
|
166
|
-
},
|
|
167
|
-
};
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
Alternatively, you can copy the CSS code and paste it into your `customCss` configuration:
|
|
171
|
-
|
|
172
|
-
```ts title=config
|
|
173
|
-
const config = {
|
|
174
|
-
theme: {
|
|
175
|
-
customCss: `
|
|
176
|
-
/* Copied CSS code */
|
|
177
|
-
`,
|
|
178
|
-
},
|
|
179
|
-
};
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
## Custom CSS
|
|
183
|
-
|
|
184
|
-
For advanced styling, you can add custom CSS either as a string or structured object:
|
|
185
|
-
|
|
186
|
-
:::note
|
|
187
|
-
|
|
188
|
-
Changes to `customCss` require restarting the development server to take effect.
|
|
189
|
-
|
|
190
|
-
:::
|
|
191
|
-
|
|
192
|
-
### CSS String
|
|
193
|
-
|
|
194
|
-
```ts title=config
|
|
195
|
-
const config = {
|
|
196
|
-
theme: {
|
|
197
|
-
customCss: `
|
|
198
|
-
.custom {
|
|
199
|
-
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
200
|
-
}
|
|
201
|
-
`,
|
|
202
|
-
},
|
|
203
|
-
};
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
### CSS Object
|
|
207
|
-
|
|
208
|
-
```ts title=config
|
|
209
|
-
const config = {
|
|
210
|
-
theme: {
|
|
211
|
-
customCss: {
|
|
212
|
-
".custom": {
|
|
213
|
-
background: "linear-gradient(135deg, #667eea 0%, #764ba2 100%)",
|
|
214
|
-
},
|
|
215
|
-
},
|
|
216
|
-
},
|
|
217
|
-
};
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
## Default Theme
|
|
221
|
-
|
|
222
|
-
APIToGo comes with a built-in default theme based on
|
|
223
|
-
[shadcn/ui zinc base colors](https://ui.shadcn.com/docs/theming#zinc). If you want to start
|
|
224
|
-
completely from scratch without any default styling, you can disable the default theme:
|
|
225
|
-
|
|
226
|
-
```ts title=config
|
|
227
|
-
const config = {
|
|
228
|
-
theme: {
|
|
229
|
-
noDefaultTheme: true,
|
|
230
|
-
// Your custom theme configuration
|
|
231
|
-
},
|
|
232
|
-
};
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
When `noDefaultTheme` is set to `true`, no default colors or styling will be applied, giving you
|
|
236
|
-
complete control over your theme. Changing this requires to restart the development server.
|
|
237
|
-
|
|
238
|
-
## Complete Example
|
|
239
|
-
|
|
240
|
-
Here's a comprehensive example combining multiple theming approaches:
|
|
241
|
-
|
|
242
|
-
```ts title=config
|
|
243
|
-
const config = {
|
|
244
|
-
theme: {
|
|
245
|
-
// Import base theme from registry
|
|
246
|
-
registryUrl: "https://tweakcn.com/api/registry/theme/modern-blue",
|
|
247
|
-
|
|
248
|
-
// Override specific colors
|
|
249
|
-
light: {
|
|
250
|
-
primary: "#0066cc",
|
|
251
|
-
accent: "#f0f9ff",
|
|
252
|
-
},
|
|
253
|
-
dark: {
|
|
254
|
-
primary: "#3399ff",
|
|
255
|
-
accent: "#0c1b2e",
|
|
256
|
-
},
|
|
257
|
-
|
|
258
|
-
// Custom fonts
|
|
259
|
-
fonts: {
|
|
260
|
-
sans: "Inter",
|
|
261
|
-
mono: "JetBrains Mono",
|
|
262
|
-
},
|
|
263
|
-
|
|
264
|
-
// Additional custom styling
|
|
265
|
-
customCss: {
|
|
266
|
-
".hero-section": {
|
|
267
|
-
background: "var(--primary)",
|
|
268
|
-
color: "var(--primary-foreground)",
|
|
269
|
-
padding: "2rem",
|
|
270
|
-
"border-radius": "var(--radius)",
|
|
271
|
-
},
|
|
272
|
-
},
|
|
273
|
-
},
|
|
274
|
-
};
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
This configuration imports a base theme, customizes colors for both light and dark modes, sets
|
|
278
|
-
fonts, and adds custom component styling.
|
|
1
|
+
---
|
|
2
|
+
sidebar_icon: paintbrush
|
|
3
|
+
title: Colors & Theme
|
|
4
|
+
description:
|
|
5
|
+
Customize your APIToGo site's colors and theme with flexible options, including light/dark modes,
|
|
6
|
+
custom CSS, and shadcn registry integration.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
APIToGo provides flexible theming options allowing you to customize colors, import themes from
|
|
10
|
+
[shadcn registries](https://ui.shadcn.com/docs/registry), and add custom CSS. You can create
|
|
11
|
+
cohesive light and dark mode experiences that match your brand.
|
|
12
|
+
|
|
13
|
+
:::tip
|
|
14
|
+
|
|
15
|
+
Try out the interactive [Theme Playground](/docs/theme-playground) to experiment with colors and see
|
|
16
|
+
real-time previews of your theme changes.
|
|
17
|
+
|
|
18
|
+
:::
|
|
19
|
+
|
|
20
|
+
The theme system is built on [shadcn/ui theming](https://ui.shadcn.com/docs/theming) and
|
|
21
|
+
[Tailwind v4](https://tailwindcss.com), giving us a great foundation to build upon:
|
|
22
|
+
|
|
23
|
+
- **CSS variables** match `shadcn/ui` conventions
|
|
24
|
+
- **Tailwind v4** CSS variable system for modern styling
|
|
25
|
+
- **Theme editors** like [tweakcn](https://tweakcn.com/) work out of the box
|
|
26
|
+
- **Shadcn registries** are supported
|
|
27
|
+
- **Landing homepage**, **portal footer**, and **MCP-generated custom pages** all use the same
|
|
28
|
+
semantic tokens (`bg-primary`, `text-muted-foreground`, `border-border`, etc.)
|
|
29
|
+
|
|
30
|
+
## Custom Colors
|
|
31
|
+
|
|
32
|
+
You can manually define colors for both light and dark modes, either by extending the
|
|
33
|
+
[default theme](#default-theme) or creating a completely custom theme. Colors can be specified as
|
|
34
|
+
hex values, RGB, HSL, OKLCH, etc. - basically anything that is supported by
|
|
35
|
+
[Tailwind CSS](https://tailwindcss.com):
|
|
36
|
+
|
|
37
|
+
```ts title=config
|
|
38
|
+
const config = {
|
|
39
|
+
theme: {
|
|
40
|
+
light: {
|
|
41
|
+
background: "#ffffff",
|
|
42
|
+
foreground: "#020817",
|
|
43
|
+
card: "#ffffff",
|
|
44
|
+
cardForeground: "#020817",
|
|
45
|
+
popover: "#ffffff",
|
|
46
|
+
popoverForeground: "#020817",
|
|
47
|
+
primary: "#0284c7",
|
|
48
|
+
primaryForeground: "#ffffff",
|
|
49
|
+
secondary: "#f1f5f9",
|
|
50
|
+
secondaryForeground: "#020817",
|
|
51
|
+
muted: "#f1f5f9",
|
|
52
|
+
mutedForeground: "#64748b",
|
|
53
|
+
accent: "#f1f5f9",
|
|
54
|
+
accentForeground: "#020817",
|
|
55
|
+
destructive: "#ef4444",
|
|
56
|
+
destructiveForeground: "#ffffff",
|
|
57
|
+
border: "#e2e8f0",
|
|
58
|
+
input: "#e2e8f0",
|
|
59
|
+
ring: "#0284c7",
|
|
60
|
+
radius: "0.5rem",
|
|
61
|
+
},
|
|
62
|
+
dark: {
|
|
63
|
+
background: "#020817",
|
|
64
|
+
foreground: "#f8fafc",
|
|
65
|
+
card: "#020817",
|
|
66
|
+
cardForeground: "#f8fafc",
|
|
67
|
+
popover: "#020817",
|
|
68
|
+
popoverForeground: "#f8fafc",
|
|
69
|
+
primary: "#0ea5e9",
|
|
70
|
+
primaryForeground: "#f8fafc",
|
|
71
|
+
secondary: "#1e293b",
|
|
72
|
+
secondaryForeground: "#f8fafc",
|
|
73
|
+
muted: "#1e293b",
|
|
74
|
+
mutedForeground: "#94a3b8",
|
|
75
|
+
accent: "#1e293b",
|
|
76
|
+
accentForeground: "#f8fafc",
|
|
77
|
+
destructive: "#ef4444",
|
|
78
|
+
destructiveForeground: "#f8fafc",
|
|
79
|
+
border: "#1e293b",
|
|
80
|
+
input: "#1e293b",
|
|
81
|
+
ring: "#0ea5e9",
|
|
82
|
+
radius: "0.5rem",
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Available Theme Variables
|
|
89
|
+
|
|
90
|
+
| Variable | Description |
|
|
91
|
+
| ----------------------- | ------------------------------------- |
|
|
92
|
+
| `background` | Main background color |
|
|
93
|
+
| `foreground` | Main text color |
|
|
94
|
+
| `card` | Card background color |
|
|
95
|
+
| `cardForeground` | Card text color |
|
|
96
|
+
| `popover` | Popover background color |
|
|
97
|
+
| `popoverForeground` | Popover text color |
|
|
98
|
+
| `primary` | Primary action color |
|
|
99
|
+
| `primaryForeground` | Text color on primary backgrounds |
|
|
100
|
+
| `secondary` | Secondary action color |
|
|
101
|
+
| `secondaryForeground` | Text color on secondary backgrounds |
|
|
102
|
+
| `muted` | Muted/subtle background color |
|
|
103
|
+
| `mutedForeground` | Text color for muted elements |
|
|
104
|
+
| `accent` | Accent color for highlights |
|
|
105
|
+
| `accentForeground` | Text color on accent backgrounds |
|
|
106
|
+
| `destructive` | Color for destructive actions |
|
|
107
|
+
| `destructiveForeground` | Text color on destructive backgrounds |
|
|
108
|
+
| `border` | Border color |
|
|
109
|
+
| `input` | Input field border color |
|
|
110
|
+
| `ring` | Focus ring color |
|
|
111
|
+
| `radius` | Border radius value |
|
|
112
|
+
|
|
113
|
+
:::note
|
|
114
|
+
|
|
115
|
+
While shadcn/ui defines additional theme variables, APIToGo currently uses only these core
|
|
116
|
+
variables.
|
|
117
|
+
|
|
118
|
+
:::
|
|
119
|
+
|
|
120
|
+
## shadcn Registry Integration
|
|
121
|
+
|
|
122
|
+
The easiest way to customize your theme is by using a Shadcn registry theme. For example you can use
|
|
123
|
+
the great [tweakcn](https://tweakcn.com/) visual theme editor.
|
|
124
|
+
|
|
125
|
+
### Using tweakcn Themes
|
|
126
|
+
|
|
127
|
+
<Stepper>
|
|
128
|
+
|
|
129
|
+
1. Visit [tweakcn.com](https://tweakcn.com/) to select a preset or customize your theme visually
|
|
130
|
+
|
|
131
|
+
<Framed align="start"></Framed>
|
|
132
|
+
<Framed align="start"></Framed>
|
|
133
|
+
|
|
134
|
+
1. Copy the registry URL from the "Copy" section
|
|
135
|
+
|
|
136
|
+
<Framed align="start"></Framed>
|
|
137
|
+
|
|
138
|
+
1. Add it to your configuration:
|
|
139
|
+
```ts title=config
|
|
140
|
+
const config = {
|
|
141
|
+
theme: {
|
|
142
|
+
registryUrl: "https://tweakcn.com/r/themes/northern-lights.json",
|
|
143
|
+
},
|
|
144
|
+
};
|
|
145
|
+
```
|
|
146
|
+
1. The theme will then be automatically imported with all color variables, fonts, and styling
|
|
147
|
+
configured for you 🚀
|
|
148
|
+
|
|
149
|
+
<Framed align="start"></Framed>
|
|
150
|
+
|
|
151
|
+
</Stepper>
|
|
152
|
+
|
|
153
|
+
You can still override specific values if needed:
|
|
154
|
+
|
|
155
|
+
```ts title=config
|
|
156
|
+
const config = {
|
|
157
|
+
theme: {
|
|
158
|
+
registryUrl: "https://tweakcn.com/api/registry/theme/xyz123",
|
|
159
|
+
// Override specific colors
|
|
160
|
+
light: {
|
|
161
|
+
primary: "#0066cc",
|
|
162
|
+
},
|
|
163
|
+
dark: {
|
|
164
|
+
primary: "#3399ff",
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Alternatively, you can copy the CSS code and paste it into your `customCss` configuration:
|
|
171
|
+
|
|
172
|
+
```ts title=config
|
|
173
|
+
const config = {
|
|
174
|
+
theme: {
|
|
175
|
+
customCss: `
|
|
176
|
+
/* Copied CSS code */
|
|
177
|
+
`,
|
|
178
|
+
},
|
|
179
|
+
};
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Custom CSS
|
|
183
|
+
|
|
184
|
+
For advanced styling, you can add custom CSS either as a string or structured object:
|
|
185
|
+
|
|
186
|
+
:::note
|
|
187
|
+
|
|
188
|
+
Changes to `customCss` require restarting the development server to take effect.
|
|
189
|
+
|
|
190
|
+
:::
|
|
191
|
+
|
|
192
|
+
### CSS String
|
|
193
|
+
|
|
194
|
+
```ts title=config
|
|
195
|
+
const config = {
|
|
196
|
+
theme: {
|
|
197
|
+
customCss: `
|
|
198
|
+
.custom {
|
|
199
|
+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
200
|
+
}
|
|
201
|
+
`,
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### CSS Object
|
|
207
|
+
|
|
208
|
+
```ts title=config
|
|
209
|
+
const config = {
|
|
210
|
+
theme: {
|
|
211
|
+
customCss: {
|
|
212
|
+
".custom": {
|
|
213
|
+
background: "linear-gradient(135deg, #667eea 0%, #764ba2 100%)",
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
};
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
## Default Theme
|
|
221
|
+
|
|
222
|
+
APIToGo comes with a built-in default theme based on
|
|
223
|
+
[shadcn/ui zinc base colors](https://ui.shadcn.com/docs/theming#zinc). If you want to start
|
|
224
|
+
completely from scratch without any default styling, you can disable the default theme:
|
|
225
|
+
|
|
226
|
+
```ts title=config
|
|
227
|
+
const config = {
|
|
228
|
+
theme: {
|
|
229
|
+
noDefaultTheme: true,
|
|
230
|
+
// Your custom theme configuration
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
When `noDefaultTheme` is set to `true`, no default colors or styling will be applied, giving you
|
|
236
|
+
complete control over your theme. Changing this requires to restart the development server.
|
|
237
|
+
|
|
238
|
+
## Complete Example
|
|
239
|
+
|
|
240
|
+
Here's a comprehensive example combining multiple theming approaches:
|
|
241
|
+
|
|
242
|
+
```ts title=config
|
|
243
|
+
const config = {
|
|
244
|
+
theme: {
|
|
245
|
+
// Import base theme from registry
|
|
246
|
+
registryUrl: "https://tweakcn.com/api/registry/theme/modern-blue",
|
|
247
|
+
|
|
248
|
+
// Override specific colors
|
|
249
|
+
light: {
|
|
250
|
+
primary: "#0066cc",
|
|
251
|
+
accent: "#f0f9ff",
|
|
252
|
+
},
|
|
253
|
+
dark: {
|
|
254
|
+
primary: "#3399ff",
|
|
255
|
+
accent: "#0c1b2e",
|
|
256
|
+
},
|
|
257
|
+
|
|
258
|
+
// Custom fonts
|
|
259
|
+
fonts: {
|
|
260
|
+
sans: "Inter",
|
|
261
|
+
mono: "JetBrains Mono",
|
|
262
|
+
},
|
|
263
|
+
|
|
264
|
+
// Additional custom styling
|
|
265
|
+
customCss: {
|
|
266
|
+
".hero-section": {
|
|
267
|
+
background: "var(--primary)",
|
|
268
|
+
color: "var(--primary-foreground)",
|
|
269
|
+
padding: "2rem",
|
|
270
|
+
"border-radius": "var(--radius)",
|
|
271
|
+
},
|
|
272
|
+
},
|
|
273
|
+
},
|
|
274
|
+
};
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
This configuration imports a base theme, customizes colors for both light and dark modes, sets
|
|
278
|
+
fonts, and adds custom component styling.
|